《推薦系統(tǒng)實踐》第六章學(xué)習(xí)筆記

??第6章的標(biāo)題是“利用社交網(wǎng)絡(luò)數(shù)據(jù)”,為什么要用社交網(wǎng)絡(luò)數(shù)據(jù)?答:好友的推薦對于增加用戶對推薦結(jié)果的信任度非常重要
??社交網(wǎng)絡(luò)定義了用戶之間的聯(lián)系,可以用圖G(V,E,w)定義社交網(wǎng)絡(luò)。一般來說,有3種不同的社交網(wǎng)絡(luò)數(shù)據(jù):

  • 雙向確認(rèn)的社交網(wǎng)絡(luò)數(shù)據(jù),用戶A和B之間形成好友關(guān)系需要通過雙方的確認(rèn),一般用無向圖表示
  • 單向關(guān)注的社交網(wǎng)絡(luò)數(shù)據(jù),用戶A可以關(guān)注用戶B而不需要得到用戶B的允許,一般用有向圖表示
  • 基于社區(qū)的社交網(wǎng)絡(luò)數(shù)據(jù),用戶之間沒有明確的關(guān)系

??基于社交網(wǎng)絡(luò)的推薦的優(yōu)勢在于1)好友推薦可以增加推薦的信任度;2)社交網(wǎng)絡(luò)可以解決冷啟動問題。但是,社會化推薦并不一定能提高推薦算法的離線精度。我是這樣理解的,好友之間的興趣一般都不太一樣,所以直接根據(jù)社交信息推薦不一定準(zhǔn)確,但是社交信息可以適當(dāng)拓展用戶的興趣,也許一個用戶一開始對某個物品并不感興趣,但是他發(fā)現(xiàn)他的好友對這個物品感興趣,說不定就增加了他對這個物品的興趣,這樣就可以為該物品拓展新的用戶。
??對于社會化推薦算法,作者在本章介紹了2種相關(guān)算法。一種是基于鄰域的社會化推薦算法,該算法和UserCF類似,只不過此時不是計算用戶之間的相似度,而是計算用戶之間的熟悉度(用戶之間的共同好友比例),即familiarity(u,v)=\frac{|out(u) \bigcap out(v)|}{|out(u) \bigcup out(v)|}。另外一種就是基于圖的社會化推薦算法,此時的圖模型與之前的圖模型有一點不同,基于社交網(wǎng)絡(luò)數(shù)據(jù)的圖模型依然是一個用戶物品二分圖,但是用戶節(jié)點之間是有邊的,之前的圖模型只是用戶節(jié)點和物品節(jié)點之間有邊。
??基于圖的社會化推薦模型在實際中實現(xiàn)是比較困難的,原因就是當(dāng)用戶數(shù)量很大的時候系統(tǒng)很難在短時間內(nèi)將所有用戶的歷史行為數(shù)據(jù)讀入,而在推薦時好友的歷史行為數(shù)據(jù)時必須的。改進(jìn)方法有兩種,一種是對數(shù)據(jù)進(jìn)行截斷,推薦時只參考部分好友的部分歷史行為數(shù)據(jù),但這只是治標(biāo)不治本。另外一種就是重新設(shè)計數(shù)據(jù)庫,為每個用戶都維護(hù)一個消息隊列,當(dāng)一個用戶產(chǎn)生一條行為數(shù)據(jù)時,每個與之相關(guān)的用戶的消息隊列都會寫入一條信息,這種改進(jìn)方式的好處在于推薦時數(shù)據(jù)的讀取很快,缺點就是行為數(shù)據(jù)產(chǎn)生時會有大量的寫操作。

個人總結(jié):社會化推薦對推薦結(jié)果準(zhǔn)確率沒有多大提升效果,關(guān)鍵在于通過用戶好友增加用戶對推薦結(jié)果的信任度,從而讓用戶單擊那些很冷門的推薦結(jié)果。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容