對好友推薦算法非常熟悉,有些積累。好友推薦算法壹般可以分為下面幾類:
1、基於關系的推薦
基於關系的推薦,最近寫了壹個專欄文章,具體介紹了常用算法,可以看下有沒有幫助,傳送門:/gongwenjia/20533434
簡介:
a.社會網絡中,三元閉包理論,以及常用推薦算法
b.Facebook中的推薦算法是如何做的
2、基於用戶資料的推薦
3、基於興趣的推薦
剩下兩個方面有時間再寫。
近來學習聚類,發現聚類中有壹個非常有趣的方向—社交網絡分析,分享壹下我的大致了解。這篇只是壹篇概況,並沒有太多的公式推導和代碼,基本是用人話解釋社交網絡分析中的常用的幾種算法。詳細到每個算法的以後有空再把詳細的公式和代碼補上。
社區發現算法,GN算法,Louvain算法,LPA與SLPA
Louvain算法思想
1.不斷遍歷網絡中的節點,嘗試把單個節點加入能使模塊度提升最大的社區,直到所有節點不再改變
2.將第壹階段形成的壹個個小的社區並為壹個節點,重新構造網絡。這時邊的權重為兩個節點內所有原始節點的邊權重之和。
3.重復以上兩步
LPA算法思想:
1.初始化每個節點,並賦予唯壹標簽
2.根據鄰居節點最常見的標簽更新每個節點的標簽
3.最終收斂後標簽壹致的節點屬於同壹社區
SLPA算法思想:
SLPA是LPA的擴展。
1.給每個節點設置壹個list存儲歷史標簽
2.每個speaker節點帶概率選擇自己標簽列表中標簽傳播給listener節點。(兩個節點互為鄰居節點)
3.節點將最熱門的標簽更新到標簽列表中
4.使用閥值去除低頻標簽,產出標簽壹致的節點為社區。