1. 程式人生 > >推薦系統方法概覽

推薦系統方法概覽

1>基於使用者屬性的推薦:根據系統使用者的基本資訊發現使用者的相關程度,然後將相似使用者喜愛的其他物品推薦給當前使用者。系統首先會根據使用者的屬性建模,比如使用者的年齡,性別,興趣等資訊。根據這些特徵計算使用者間的相似度。比如系統通過計算髮現使用者AC比較相似,就會把A喜歡的物品推薦給C

優勢:

a 不需要歷史資料,沒有冷啟動問題

b 不依賴於物品的屬性,因此其他領域的問題都可無縫接入。

  不足:

  演算法比較粗糙,效果很難令人滿意,只適合簡單的推薦

2>基於內容的推薦使用物品本身的相似度而不是使用者的相似度。系統首先對物品的屬性進行建模,實際應用中,只根據型別顯然過於粗糙,還需要考慮演員,導演等更多資訊。通過相似度計算,發現電影

AC相似度較高,因為他們都屬於愛情類。系統還會發現使用者A喜歡電影A,由此得出結論,使用者A很可能對電影C也感興趣。於是將電影C推薦給A

優勢:

  對使用者興趣可以很好的建模,並通過對物品屬性維度的增加,獲得更好的推薦精度

  不足:

a 物品的屬性有限,很難有效的得到更多資料

b 物品相似度的衡量標準只考慮到了物品本身,有一定的片面性

c 需要使用者的物品的歷史資料,有冷啟動的問題

3>基於關聯規則的推薦主要是挖掘一些資料的依賴關係,典型的場景就是購物籃問題,通過關聯規則的挖掘,我們可以找到哪些物品經常被同時購買,或者使用者購買了一些物品後通常會購買哪些其他的物品。

4>協同過濾

:是利用集體智慧的一個典型方法(如果你現在想看個電影,但你不知道具體看哪部,你會怎麼做?大部分的人會問問周圍的朋友,看看最近有什麼好看的電影推薦,而我們一般更傾向於從口味比較類似的朋友那裡得到推薦)。

三步驟:收集資料(使用者的歷史行為資料)——找到相似使用者和物品(計算使用者間以及物品間的相似度)——進行推薦(分為基於使用者、基於物品的協同過濾)

  基於使用者的協同過濾——基於使用者屬性的推薦比較

都是計算使用者的相似度,並基於鄰居使用者群計算推薦,但它們所不同的是如何計算使用者的相似度基於使用者屬性的機制只考慮使用者本身的特徵,而基於使用者的協同過濾機制可是在使用者的歷史偏好的資料上計算使用者的相似度

,它的基本假設是,喜歡類似物品的使用者可能有相同或者相似的口味和偏好。計算上,就是一個使用者所有物品的偏好作為一個向量來計算使用者之間的相似度

‚  基於物品的協同過濾——基於內容的推薦比較

都是基於物品相似度預測推薦,只是相似度計算的方法不一樣前者是從使用者歷史的偏好推斷,而後者是基於物品本身的屬性特徵資訊。計算上,就是將有使用者某個物品的偏好作為一個向量來計算物品之間的相似度,得到物品的相似物品後,根據使用者歷史的偏好預測當前使用者還沒有表示偏好的物品,計算得到一個排序的物品列表作為推薦。

對於物品 A,根據所有使用者的歷史偏好,喜歡物品 A的使用者都喜歡物品 C,得出物品 A 和物品 C 比較相似,而使用者 C 喜歡物品 A,那麼可以推斷出使用者 C 可能也喜歡物品 C

Item CF 從效能和複雜度上比 User CF 更優,原因:對於一個線上網站(飛豬),使用者的數量往往大大超過物品的數量,同時物品的資料相對穩定,因此計算物品的相似度不但計算量較小,同時也不必頻繁更新。內容內在的聯絡是很重要的推薦原則,比基於相似使用者的推薦原則更加有效。比如在購書網站(飛豬)上,當你看一本書(一個酒店)的時候,推薦引擎會給你推薦相關的書籍(酒店),這個推薦的重要性遠遠超過了網站首頁對該使用者的綜合推薦。可以看到,在這種情況下,Item CF 的推薦成為了引導使用者瀏覽的重要手段。

ƒ  基於模型的協同過濾推薦

基於樣本的使用者喜好資訊,訓練一個推薦模型,然後根據實時的使用者喜好的資訊進行預測,計算推薦。

協同過濾的優勢:

a 它不需要對物品或者使用者進行嚴格的建模,而且不要求物品的描述是機器可理解的,所以這種方法也是領域無關的。

b 這種方法計算出來的推薦是開放的,可以共用他人的經驗,很好的支援使用者發現潛在的興趣偏好

  不足:

a 方法的核心是基於歷史資料,所以對新物品和新使用者都有冷啟動的問題。

b 推薦的效果依賴於使用者歷史偏好資料的多少和準確性。

c 在大部分的實現中,使用者歷史偏好是用稀疏矩陣進行儲存的,而稀疏矩陣上的計算有些明顯的問題,包括可能少部分人的錯誤偏好會對推薦的準確度有很大的影響等等。

d 對於一些特殊品味的使用者不能給予很好的推薦。

e 由於以歷史資料為基礎,抓取和建模使用者的偏好後,很難修改或者根據使用者的使用演變,從而導致這個方法不夠靈活。

5>混合推薦機制

1.      加權的混合(Weighted Hybridization: 用線性公式(linearformula)將幾種不同的推薦按照一定權重組合起來,具體權重的值需要在測試資料集上反覆實驗,從而達到最好的推薦效果。

2.      切換的混合(Switching Hybridization):前面也講到,其實對於不同的情況(資料量,系統執行狀況,使用者和物品的數目等),推薦策略可能有很大的不同,那麼切換的混合方式,就是允許在不同的情況下,選擇最為合適的推薦機制計算推薦。

3.      分割槽的混合(Mixed Hybridization):採用多種推薦機制,並將不同的推薦結果分不同的區顯示給使用者。其實,Amazon,噹噹網等很多電子商務網站都是採用這樣的方式,使用者可以得到很全面的推薦,也更容易找到他們想要的東西。

4.      分層的混合(Meta-Level Hybridization: 採用多種推薦機制,並將一個推薦機制的結果作為另一個的輸入,從而綜合各個推薦機制的優缺點,得到更加準確的推薦