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