1. 程式人生 > >基於隱語義模型的推薦系統

基於隱語義模型的推薦系統

img

如何根據上邊兩位豆瓣使用者的圖書列表做出推薦?

傳統的推薦方法

UserCF,首先需要找到和他們看了同樣書的其他使用者,然後給他們推薦那些使用者喜歡的其他書。

ItemCF,需要給他們推薦和他們已經看的書相似的書。

基於隱語義模型

通過矩陣分解建立使用者和隱類之間的關係,物品和隱

類之間的關係,最終得到使用者對物品的偏好關係。

隱語義模型(LFM)

假設我們想要發現 F 個隱類, 我們的任務就是找到兩個矩陣 U 和 V,使這兩個矩陣的乘積近似等於R,即將使用者物品評分矩陣 R 分解成為兩個低維矩陣相乘,如下所示:

然後定義損失函式,利用隨機梯度下降法處理損失函式,求出U和V。

1、利用隱語義模型主要解決了以下問題

  • 分類的可靠性。分類來自對使用者行為的統計,代表了使用者對物品分類的看法。

  • 可控制分類的粒度。允許我們自己指定有多少個隱類。

  • 將一個物品多類化。通過統計使用者行為來決定某物品在每個類中的權重。

2、通過舉例理解隱語義模型

這裡寫圖片描述

其中P矩陣是user-class矩陣,矩陣值Pij表示的是user i對class j的興趣度;Q矩陣式class-item矩陣,矩陣值Qij表示的是item j在class i中的權重,權重越高越能作為該類的代表

ToyExample

這裡寫圖片描述

User-Item Matrix

ToyExample的分解U、V

這裡寫圖片描述

Class-User Matrix

這裡寫圖片描述

Class-Item Matrix

注意:每次得到的U、V可能有所不同,原因是初始值是隨機的。

ToyExample的預測

這裡寫圖片描述

Predicted User-Item Matrix

3、隱語義模型核心程式碼分析

這裡寫圖片描述

4、隱語義模型在實際應用的缺點

  • 資料稀疏會導致效能降低。甚至不如UserCF和 ItemCF的效能。

  • 不能線上實時推薦。因為LFM在生成推薦列表時速度太慢。

  • 不能給出推薦解釋。因為LFM計算的是各個隱類,但每個類別不會自動生成這個類的類別標籤。

改進的隱語義模型

1、基於標籤的隱語義模型

標籤是一種表示使用者興趣和物品語義的重要方式,當一個使用者對一個物品打上了一個標籤,這個標籤一方面描述了使用者的興趣,另一方面則表示了物品的語義,利用社交標籤可以提高推薦的精度

1.1、標籤關係分解
TagRec演算法、SoRecUser演算法、SoRecItem演算法。標籤關係分解演算法舉例:
TagRec:同時考慮了使用者物品評分矩陣,使用者標籤矩陣和物品標籤矩陣,構建了一個統一的概率矩陣分解模型,使用者的隱特徵向量既可以從使用者物品評分矩陣中學習,也可以從物品標籤矩陣中學習。
缺點:標籤存在質量不高和語義等問題。

1.2、標籤關係不分解
NHPMF演算法、TagiCoFi演算法。標籤關係不分解演算法舉例:
NHPMF:根據使用者標籤詞頻和物品標籤詞頻分別計算使用者最鄰近和物品最鄰近,然後將領域資訊融入矩陣分解模型之中,同時對使用者和物品的相似關係進行了傳播。
缺點:標籤存在質量不高和語義等問題。

2、基於社交的隱語義模型

利用社交信任來提高推薦精度。而且,通過社交信任,能緩解資料的稀疏性和冷啟動問題。當一個新的使用者幾乎沒有評分的狀態下,使用相似度來計算相似使用者幾乎不可行,但是在系統中我們存在大量的社交信任關係的話,那我們就可以根據信任關係進行推薦。

2.1、社交關係分解
SoRec演算法、CTRPMF演算法。社交關係分解演算法舉例:
SoRec:假定社交關係矩陣表徵了使用者在社交網路中重要互動資訊,對其進行分解可以學習到使用者社交行為的低維潛在重要特徵。通過共享使用者隱特徵向量空間把使用者評分資訊和使用者社交資訊聯絡起來,使用者的隱特徵向量既從使用者物品評分矩陣中學習,又從使用者社交矩陣中學習。
缺點:可能洩露使用者隱私。

2.2、社交關係不分解
SocialMF演算法、STE演算法、RSTE演算法、RWD演算法、RWT演算法。社交關係不分解演算法舉例:
SocialMF:根據使用者之間的信任關係,在計算使用者隱特徵向量的時候,考慮了這個使用者信任的使用者對其隱特徵向量的影響,同時對使用者的信任關係進行了一步或者兩步的傳播。
缺點:可能洩露使用者隱私。

3、基於時間的隱語義模型

利用時間資訊來提高推薦精度。不同的時間,對應了使用者、物品以及使用者-物品的變化情況。通過分析這一系列的變化,做出合理的推薦。

3.1、時間關係分解
TimeSVD演算法。時間關係分解演算法舉例:
TimeSVD:整個社會的興趣隨著時間在變化,使用者的興趣隨著時間在變化,物品的流行度隨著時間在變化,使用者對物品的興趣隨著時間在變化。
缺點:在實時系統中,演算法的可擴充套件性還不夠好。

3.2、時間關係不分解
TimeSVD++演算法、Sequential-MF演算法。時間關係不分解演算法舉例:
SequentialMF:通過時序資訊,構建使用者物品之間的結構關係,建立了使用者消費網路和產品消費網路。
缺點:在實時系統中,演算法的可擴充套件性還不夠好。

4、其他改進的隱語義模型

  • 貝葉斯概率矩陣分解模型BPMF,採用馬爾可夫鏈蒙特卡羅進行取樣
  • 隱語義模型的泛化表示形式——因子分解機FM(Factorization Machines)
  • 貝葉斯因子分解機模型BFM

研究趨勢

1、標籤:利用標籤的遷移學習來做交叉領域的推薦

例如,豆瓣網含有豐富的電影標籤和評論的資訊,但不提供電影服務;優酷網提供電影服務,但電影的標籤和評論資訊較少。

2、社交:社交信任傳播演算法與使用者物品的評價結合

社交信任包含了信任和不信任兩種情況,根據不信任的關係來約束信任關係的傳播。

3、時間:與其他資訊相結合來做推薦

例如,時間與位置資訊相結合,來計算使用者在特定時間,特定地方對物品的偏好程度。

4、其它:將隱語義模型與交叉領域推薦相結合

例如,將深度信度網路DBN與概率矩陣分解PMF相結合做推薦。現在很多學者已經用深度學習來做推薦。

2016 RecSys大會

來自工業界的經驗分享報告《Lessons learned from build real-life Recsys》

觀點:MF是最好的single approach,MF的變形包括FM,SVD++,ALS等;Quora開源了他們的MF模型QMF

工業界推崇的矩陣分解技術

SVD++,factorization machine,ALS等

值得關注的幾篇論文

1.Field-awareFactorization Machines for CTR Prediction

2.AreYou Influenced by Others When Rating? Improve Rating Prediction by ConformityModeling

3.Recommendingfor the World (Netflix)

4.Tutorial:Lessons Learned from Building Real-life Recommender Systems (Xavier’ tutorial)

參考文獻

[1] 王升升, 趙海燕, 陳慶奎,等. 個性化推薦中的隱語義模型[J]. 小型微型計算機系統, 2016, 37(5):881-889.

[2] 項亮. 推薦系統實踐[M]. 人民郵電出版社, 2012.

[3] MaH, Yang H, Lyu M R, et al. SoRec: Social Recommendation Using ProbabilisticMatrix Factorization[C]// ACM Conference on Information and KnowledgeManagement, CIKM 2008, Napa Valley, California, Usa, October. 2008:931-940.