使用概率矩陣模型在推薦系統中整合多種信息

做推薦時,往往會有不同的數據可用。如Netflix數據集中,有用戶的顯示評分信息(1-5),也有用戶隱式評分信息(即用戶觀看記錄,但沒有評分);在上下文廣告推薦中,有用戶訪問網頁信息R1、用戶點擊廣告信息R2和廣告與網頁關聯度信息R3。那如何集成這些不同的信息,來做更好的推薦呢?


首先,SVD++算是一種集成。它通過在原有評分矩陣分解的基礎上集成了隱式評分信息,但它的集成過程不是十分直觀。若換成上下文廣告推薦,要通過啓發式的方法集成上述3個矩陣就變得更加困難了。不過,初步的想法是:對每個矩陣都進行latent semantic factor, 將R1分解成用戶特徵矩陣U和網頁特徵矩陣W,將R2分解成U和廣告特徵矩陣A,將R3分解成A和W。可以看到,這三個矩陣之間是有共享隱語義信息的。這強烈暗示着我們能把這三個矩陣結合起來,但具體如何做?目前據我所知,一個有效的模型是概率矩陣分解。


[1]如果將每個矩陣裏的分數分別建成一個高斯分佈,那麼可以很自然地將不同矩陣使用聯合概率分佈結合起來。優化目標和單個高斯分佈是一樣的:使聯合概率最大[1]。


採用同樣的思想和方法,[2]將社交網絡之中的trust信息同評分矩陣結合起來。它將用戶之間的信任矩陣同樣分解成用戶特徵矩陣U與另一個矩陣Z。雖然推薦準確度上升了,但個人覺得這個模型缺少一個合理地解釋。因爲矩陣Z的含義未知。我們知道矩陣U代表用戶的偏好,“它與物品屬性相乘得到用戶對物品的評分”很合理。但用戶偏好與什麼相乘會得出用戶對其他人的信任度呢?一個可能的解釋是,一個用戶會把另一個用戶標註爲信任的前提是,那個人跟他有相同的興趣愛好。

 

最後,[3]中作者指出,以往的推薦模型將所有用戶的評分同等對待。但要知道,有些評分是不能客觀地反應一個物品的真正質量的。如,有些評分是很subjective的。於是作者很巧妙在概率模型中改變方差,引入評分質量以提高推薦的質量。具體模型可以參見論文,這裏說下這個改進基於的intuition:對於質量好的實際評分,隱語義模型得出的預測應該會與該評分比較接近;而對於質量差的實際評分,隱語義模型的預測與該評分的差別就可能會較大—— 因爲這個時候,打分的用戶可能帶入了自身的偏見,單從用戶喜好(這正是隱語義要做的事)無法捕捉這種偏見。因此,高質量評分允許小方差,低質量評分允許大方差。那評分的質量如何得來?[3]使用的數據中,每條評分記錄包含了用戶ID,物品ID,用戶的評分,用戶的評論,以及其他用戶給該條評論點讚的次數,等。由於點贊次數無法準確反應一個評論的質量:因爲新來的高質量評論,點贊次數也會很少。因此作者將點贊次數多的評分作爲訓練樣本,訓練一個迴歸模型給其他評論打質量分。質量模型使用了兩類feature:文本信息(bag-of-word特徵,用LDA提取的topic特徵)和用戶元數據信息(打分用戶平均獲得的讚的個數,評論文本長度,評論的時間等)。作者指出,用戶元數據信息能捕捉絕大多數的質量信息;相反,LDA提取的topic特徵趨向於捕捉語義信息,而不擅長捕捉質量信息(也就是說,質量有區別的評論在用詞上區別不大)。


參考文獻:

[1] 基於聯合概率矩陣分解的上下文廣告推薦算法

[2] SoRec:  Social Recommendation Using Probabilistic Matrix Factorization

[3] Review Quality Aware Collaborative Filtering

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章