1、獲取社交網絡數據的途徑
- 電子郵件:一般只有具有郵件系統的公司有研究社交關係的機會;如果獲得了用戶的郵件,可以使用郵箱後綴得到社交關係信息;社交官網還可以從電子郵件聯繫人中導入好友,進行冷啓動。
- 用戶註冊信息:如學校、公司等
- 用戶的位置數據:在同一位置的相關性可能會更高
- 論壇和討論組:同時加入了很多一樣的組,或者在一個帖子裏面討論
- 即時聊天工具:好友列表和分組信息,有隱私問題
- 社交網站
- facebook:一般都是現實裏面認識的人,雙向確認,社會圖譜
- twitter:現實裏面不認識的,單向關注,興趣圖譜
2、社交網絡數據簡介
- 圖表示
- 三種不同的社交數據
- 雙向確認的社交網絡數據
- 單向關注的社交網絡數據
- 基於社區的社交網絡數據
- 社交網絡數據中的長尾分佈
- 用戶的入度近似長尾分佈
- 用戶的出度近似長尾分佈
3、基於社交網絡的推薦
社會化推薦的優點:
- 增加推薦的信任度
- 冷啓動問題
3.1 基於鄰域的社會化推薦算法
用戶u對物品i的興趣程度受到以下影響:
- 所有好友是否喜歡這個物品i,也就是r
- 用戶和該好友的熟悉程度和興趣相似程度,也就是W
熟悉度:用用戶之間的共同好友比例來度量
興趣相似程度:果兩個用戶 喜歡的物品集合重合度很高
3.2 基於圖的社會化推薦算法
- 頂點
- 用戶頂點(圓圈)
- 物品頂點(方塊)
- 邊
- 用戶和用戶是好友,會有邊
- 用戶對物品產生過行爲,會有邊
- 邊的權重
- 用戶和用戶之間邊的權重可以定義爲用戶之間相似度的α倍(包括熟悉程度和興趣相似度)
- 而用戶和物品之間的權重可以定義爲用 戶對物品喜歡程度的β倍。
- 如果我們希望用戶好友的行爲對推薦結果產生比較大的影響,那麼就可以選擇比較大的 α 。相反,如果我們希望用戶的歷史行爲 對推薦結果產生比較大的影響,就可以選擇比較大的β 。
- 算法:personalRank
- 如果再考慮社羣的話,可以得到這樣的圖
3.3 實際系統中的社會化推薦算法
該算法需要拿到用戶所有好友的歷史行爲數據,在實際系統中比較佔用資源。可以用下面的方法進行改進:
- 做兩次截斷:在拿用戶好友集合時並不拿出用戶所有的好友,而是隻拿出和用戶相似度最高的N個好友;查詢每個用戶的歷史行爲時,可以只返回用戶最近1個月的行爲
- 重新設計數據庫:給每個用戶維護一個消息隊列(twitter方案)
基於twitter方案的系統設計:
- 爲每個用戶維護一個消息隊列,用於存儲他的推薦列表
- 當一個用戶喜歡一個物品時,就將(物品ID、用戶ID和時間)這條記錄寫入關注該用戶 的推薦列表消息隊列中
- 當用戶訪問推薦系統時,讀出他的推薦列表消息隊列,對於這個消息隊列中的每個物品, 重新計算該物品的權重。計算權重時需要考慮物品在隊列中出現的次數,物品對應的用戶和當前用戶的熟悉程度、物品的時間戳。同時,計算出每個物品被哪些好友喜歡過, 用這些好友作爲物品的推薦解釋。
3.4 社會化推薦系統和協同過濾推薦系統
社會化推薦的優勢不在於增加預測準確 度,而是在於通過用戶的好友增加用戶對推薦結果的信任度,從而讓用戶單擊那些很冷門的推薦 結果。
小規模樣本研究發現:社會化推薦系統推薦結果的用戶滿意度明顯高於主要基於協同過濾算法的幾個真實推薦系統。
不過這個實驗存在着一些問題。
3.5 信息流推薦
- Facebook的EdgeRank算法,在信息流推薦的時候主要考慮這些內容
- 產生行爲的用戶和當前用戶的相似度,這裏的相似度主要是在社交網絡圖中的熟悉度
- 指行爲的權重,這裏的行爲包括創建、評論、like(喜歡)、打標籤等,不同的行爲有 不同的權重。
- 時間衰減參數,越早的行爲對權重的影響越低。
- Jilin Chen的實驗研究結果:
- 綜合考慮用戶的社會興趣和個人興趣對於提高用戶滿意度是有幫助的
4、給用戶推薦好友
好友推薦系統的目的是根據用戶現有的好友、 用戶的行爲記錄給用戶推薦新的好友,從而增加整個社交網絡的稠密程度和社交網站用戶的活躍度
4.1 基於內容的匹配
給用戶推薦和他們有相似內容屬性的用戶作爲好友
- 用戶人口統計學屬性,包括年齡、性別、職業、畢業學校和工作單位等。
- 用戶的興趣,包括用戶喜歡的物品和發佈過的言論等。
- 用戶的位置信息,包括用戶的住址、IP地址和郵編等。
4.2 基於共同興趣的好友推薦
基於用戶的發言、對物品的行爲等計算共同的興趣
4.3 基於社交網絡圖的好友推薦
- 推薦好友的好友
- 推薦相似度很高的朋友
- 相似度的計算:共同好友比例,分別是:基於出度,基於入度,有向的相似度,在前者的基礎上控制和名人的相似度
- 相似度的計算:共同好友比例,分別是:基於出度,基於入度,有向的相似度,在前者的基礎上控制和名人的相似度
- 離線實驗:不同數據集上不同算法的性能並不相同
4.4 基於用戶調查的好友推薦算法對比
比較的四個算法:
- InterestBased 給用戶推薦和他興趣相似的其他用戶作爲好友。
- SocialBased 基於社交網絡給用戶推薦他好友的好友作爲好友。
- Interest+Social 將InterestBased算法推薦的好友和SocialBased算法推薦的好友按照一定 權重融合。
- SONA SONA是IBM內部的推薦算法,該算法利用大量用戶信息建立了IBM員工之間的 社交網絡。這些信息包括所在的部門、共同發表的文章、共同寫的Wiki、IBM的內部社交 網絡信息、共同合作的專利等。
結果與分析
- SONA因爲用到了部門信息、共同寫論文和發表專利的信息,所以推薦的好友大部分都是用戶認識的,因此新穎度不高。
- 如果用戶認識推薦結果中的人,那麼絕大部分用戶都會覺得這是一個好的推薦結果,而如果用戶不認識推薦結果中的人,絕大多數人都覺得推薦結果不好。