推薦系統中常用算法 以及優點缺點對比
【Martin導讀】隨著互聯網特別是社會化網絡的快速發展,我們正處于信息過載的時代。用戶面對過量的信息很難找到自己真正感興趣的內容,而內容提供商也很難把優質的內容準確推送給感興趣的用戶。推薦系統被認為是解決這些問題的有效方法,它對用戶的歷史行為進行挖掘,對用戶興趣進行建模,并對用戶未來的行為進行預測,從而建立了用戶和內容的關系。
本文詳細介紹了推薦系統中的常用算法及優缺點對比,以便我們能在不同的情況下,選擇合適的推薦技術和方案。
推薦方法是整個推薦系統中最核心、最關鍵的部分,很大程度上決定了推薦系統性能的優劣。目前,主要的推薦方法包括:基于內容推薦、協同過濾推薦、基于關聯規則推薦、基于效用推薦、基于知識推薦和組合推薦。
一、基于內容推薦
基于內容的推薦(Content-based Recommendation)是信息過濾技術的延續與發展,它是建立在項目的內容信息上作出推薦的,而不需要依據用戶對項目的評價意見,更多地需要用機 器學習的方法從關于內容的特征描述的事例中得到用戶的興趣資料。在基于內容的推薦系統中,項目或對象是通過相關的特征的屬性來定義,系統基于用戶評價對象 的特征,學習用戶的興趣,考察用戶資料與待預測項目的相匹配程度。用戶的資料模型取決于所用學習方法,常用的有決策樹、神經網絡和基于向量的表示方法等。 基于內容的用戶資料是需要有用戶的歷史數據,用戶資料模型可能隨著用戶的偏好改變而發生變化。
基于內容推薦方法的優點是:
1)不需要其它用戶的數據,沒有冷開始問題和稀疏問題。
2)能為具有特殊興趣愛好的用戶進行推薦。
3)能推薦新的或不是很流行的項目,沒有新項目問題。
4)通過列出推薦項目的內容特征,可以解釋為什么推薦那些項目。
5)已有比較好的技術,如關于分類學習方面的技術已相當成熟。
缺點是要求內容能容易抽取成有意義的特征,要求特征內容有良好的結構性,并且用戶的口味必須能夠用內容特征形式來表達,不能顯式地得到其它用戶的判斷情況。
二、協同過濾推薦
協同過濾推薦(Collaborative Filtering Recommendation)技術是推薦系統中應用最早和最為成功的技術之一。它一般采用最近鄰技術,利用用戶的歷史喜好信息計算用戶之間的距離,然后 利用目標用戶的最近鄰居用戶對商品評價的加權評價值來預測目標用戶對特定商品的喜好程度,系統從而根據這一喜好程度來對目標用戶進行推薦。協同過濾最大優 點是對推薦對象沒有特殊的要求,能處理非結構化的復雜對象,如音樂、電影。
協同過濾是基于這樣的假設:為一用戶找到他真正感興趣的內容的好方法是首先找到與此用戶有相似興趣的其他用戶,然后將他們感興趣的內容推薦給此用戶。其基本 思想非常易于理解,在日常生活中,我們往往會利用好朋友的推薦來進行一些選擇。協同過濾正是把這一思想運用到電子商務推薦系統中來,基于其他用戶對某一內 容的評價來向目標用戶進行推薦。
基于協同過濾的推薦系統可以說是從用戶的角度來進行相應推薦的,而且是自動的,即用戶獲得的推薦是系統從購買模式或瀏覽行為等隱式獲得的,不需要用戶努力地找到適合自己興趣的推薦信息,如填寫一些調查表格等。
和基于內容的過濾方法相比,協同過濾具有如下的優點:
1) 能夠過濾難以進行機器自動內容分析的信息,如藝術品,音樂等。
2) 共享其他人的經驗,避免了內容分析的不完全和不精確,并且能夠基于一些復雜的,難以表述的概念(如信息質量、個人品味)進行過濾。
3) 有推薦新信息的能力??梢园l現內容上完全不相似的信息,用戶對推薦信息的內容事先是預料不到的。這也是協同過濾和基于內容的過濾一個較大的差別,基于內容的過濾推薦很多都是用戶本來就熟悉的內容,而協同過濾可以發現用戶潛在的但自己尚未發現的興趣偏好。
4) 能夠有效的使用其他相似用戶的反饋信息,較少用戶的反饋量,加快個性化學習的速度。
雖然協同過濾作為一種典型的推薦技術有其相當的應用,但協同過濾仍有許多的問題需要解決。最典型的問題有稀疏問題(Sparsity)和可擴展問題(Scalability)。
三、基于關聯規則推薦
基于關聯規則的推薦(Association Rule-based Recommendation)是以關聯規則為基礎,把已購商品作為規則頭,規則體為推薦對象。關聯規則挖掘可以發現不同商品在銷售過程中的相關性,在零 售業中已經得到了成功的應用。管理規則就是在一個交易數據庫中統計購買了商品集X的交易中有多大比例的交易同時購買了商品集Y,其直觀的意義就是用戶在購 買某些商品的時候有多大傾向去購買另外一些商品。比如購買牛奶的同時很多人會同時購買面包。
算法的第一步關聯規則的發現最為關鍵且最耗時,是算法的瓶頸,但可以離線進行。其次,商品名稱的同義性問題也是關聯規則的一個難點。
四、基于效用推薦
基于效用的推薦(Utility-based Recommendation)是建立在對用戶使用項目的效用情況上計算的,其核心問題是怎么樣為每一個用戶去創建一個效用函數,因此,用戶資料模型很大 程度上是由系統所采用的效用函數決定的。基于效用推薦的好處是它能把非產品的屬性,如提供商的可靠性(Vendor Reliability)和產品的可得性(Product Availability)等考慮到效用計算中。
五、基于知識推薦
基于知識的推薦(Knowledge-based Recommendation)在某種程度是可以看成是一種推理(Inference)技術,它不是建立在用戶需要和偏好基礎上推薦的?;谥R的方法因 它們所用的功能知識不同而有明顯區別。效用知識(Functional Knowledge)是一種關于一個項目如何滿足某一特定用戶的知識,因此能解釋需要和推薦的關系,所以用戶資料可以是任何能支持推理的知識結構,它可以 是用戶已經規范化的查詢,也可以是一個更詳細的用戶需要的表示。
六、組合推薦
由于各種推薦方法都有優缺點,所以在實際中,組合推薦(Hybrid Recommendation)經常被采用。研究和應用最多的是內容推薦和協同過濾推薦的組合。最簡單的做法就是分別用基于內容的方法和協同過濾推薦方法 去產生一個推薦預測結果,然后用某方法組合其結果。盡管從理論上有很多種推薦組合方法,但在某一具體問題中并不見得都有效,組合推薦一個最重要原則就是通 過組合后要能避免或彌補各自推薦技術的弱點。
在組合方式上,有研究人員提出了七種組合思路:
1)加權(Weight):加權多種推薦技術結果。
2)變換(Switch):根據問題背景和實際情況或要求決定變換采用不同的推薦技術。
3)混合(Mixed):同時采用多種推薦技術給出多種推薦結果為用戶提供參考。
4)特征組合(Feature combination):組合來自不同推薦數據源的特征被另一種推薦算法所采用。
5)層疊(Cascade):先用一種推薦技術產生一種粗糙的推薦結果,第二種推薦技術在此推薦結果的基礎上進一步作出更精確的推薦。
6)特征擴充(Feature augmentation):一種技術產生附加的特征信息嵌入到另一種推薦技術的特征輸入中。
7)元級別(Meta-level):用一種推薦方法產生的模型作為另一種推薦方法的輸入。
七、主要推薦方法的對比
各種推薦方法都有其各自的優點和缺點,見表1。
文章來源:36大數據
優秀 不錯的文章