??第6章的標(biāo)題是“利用社交網(wǎng)絡(luò)數(shù)據(jù)”,為什么要用社交網(wǎng)絡(luò)數(shù)據(jù)?答:好友的推薦對(duì)于增加用戶對(duì)推薦結(jié)果的信任度非常重要。
??社交網(wǎng)絡(luò)定義了用戶之間的聯(lián)系,可以用圖G(V,E,w)定義社交網(wǎng)絡(luò)。一般來(lái)說(shuō),有3種不同的社交網(wǎng)絡(luò)數(shù)據(jù):
- 雙向確認(rèn)的社交網(wǎng)絡(luò)數(shù)據(jù),用戶A和B之間形成好友關(guān)系需要通過(guò)雙方的確認(rèn),一般用無(wú)向圖表示
- 單向關(guān)注的社交網(wǎng)絡(luò)數(shù)據(jù),用戶A可以關(guān)注用戶B而不需要得到用戶B的允許,一般用有向圖表示
- 基于社區(qū)的社交網(wǎng)絡(luò)數(shù)據(jù),用戶之間沒(méi)有明確的關(guān)系
??基于社交網(wǎng)絡(luò)的推薦的優(yōu)勢(shì)在于1)好友推薦可以增加推薦的信任度;2)社交網(wǎng)絡(luò)可以解決冷啟動(dòng)問(wèn)題。但是,社會(huì)化推薦并不一定能提高推薦算法的離線精度。我是這樣理解的,好友之間的興趣一般都不太一樣,所以直接根據(jù)社交信息推薦不一定準(zhǔn)確,但是社交信息可以適當(dāng)拓展用戶的興趣,也許一個(gè)用戶一開(kāi)始對(duì)某個(gè)物品并不感興趣,但是他發(fā)現(xiàn)他的好友對(duì)這個(gè)物品感興趣,說(shuō)不定就增加了他對(duì)這個(gè)物品的興趣,這樣就可以為該物品拓展新的用戶。
??對(duì)于社會(huì)化推薦算法,作者在本章介紹了2種相關(guān)算法。一種是基于鄰域的社會(huì)化推薦算法,該算法和UserCF類似,只不過(guò)此時(shí)不是計(jì)算用戶之間的相似度,而是計(jì)算用戶之間的熟悉度(用戶之間的共同好友比例),即。另外一種就是基于圖的社會(huì)化推薦算法,此時(shí)的圖模型與之前的圖模型有一點(diǎn)不同,基于社交網(wǎng)絡(luò)數(shù)據(jù)的圖模型依然是一個(gè)用戶物品二分圖,但是用戶節(jié)點(diǎn)之間是有邊的,之前的圖模型只是用戶節(jié)點(diǎn)和物品節(jié)點(diǎn)之間有邊。
??基于圖的社會(huì)化推薦模型在實(shí)際中實(shí)現(xiàn)是比較困難的,原因就是當(dāng)用戶數(shù)量很大的時(shí)候系統(tǒng)很難在短時(shí)間內(nèi)將所有用戶的歷史行為數(shù)據(jù)讀入,而在推薦時(shí)好友的歷史行為數(shù)據(jù)時(shí)必須的。改進(jìn)方法有兩種,一種是對(duì)數(shù)據(jù)進(jìn)行截?cái)啵扑]時(shí)只參考部分好友的部分歷史行為數(shù)據(jù),但這只是治標(biāo)不治本。另外一種就是重新設(shè)計(jì)數(shù)據(jù)庫(kù),為每個(gè)用戶都維護(hù)一個(gè)消息隊(duì)列,當(dāng)一個(gè)用戶產(chǎn)生一條行為數(shù)據(jù)時(shí),每個(gè)與之相關(guān)的用戶的消息隊(duì)列都會(huì)寫(xiě)入一條信息,這種改進(jìn)方式的好處在于推薦時(shí)數(shù)據(jù)的讀取很快,缺點(diǎn)就是行為數(shù)據(jù)產(chǎn)生時(shí)會(huì)有大量的寫(xiě)操作。
個(gè)人總結(jié):社會(huì)化推薦對(duì)推薦結(jié)果準(zhǔn)確率沒(méi)有多大提升效果,關(guān)鍵在于通過(guò)用戶好友增加用戶對(duì)推薦結(jié)果的信任度,從而讓用戶單擊那些很冷門(mén)的推薦結(jié)果。