推薦演算法之好友推薦

2021-09-01 14:51:25 字數 735 閱讀 9481

寫點自己的理解,大牛請直接略過。

好友推薦裡有推薦一些你可能認識的人,其中二度人脈是其中一種。

比如: 何炅和謝娜 在微博上相互關注,那用二度人脈的方法就是找和謝娜相互關注的人(如 張杰,海濤,某人), 這時候[張杰,海濤,某人]就是何炅的二度人脈,排除掉何炅已經相互關注的張杰,剩下[張杰和某人],於是何炅發現忘記關注海濤了,接著互粉了。

在hadoop上計算使用者們的二度人脈採用兩步:表示

1.第乙個map輸入互粉的 , , , ,

reduce階段: 得到

輸出(2=二度人脈,1=互粉)

2. map輸入上乙個階段輸出。

reduce階段:開始累加二度的值,出現是互粉的則為非二度。

其實b和d 已經互粉。

c和d是二度人脈,出現值為2,出現的越高表示他們月有可能相互認識。越值得推薦給對方。

按照微博的使用者數量估計一下資料量。

1. 1億的使用者,平均有100個互粉使用者,則有100億的資料奔向reduce階段。

(假設其中有1萬的使用者,他們有1000個互粉,則reduce輸出可能達到1w*1000*1000=100億的資料量輸出,容易發生資料傾斜的情況。)總的有可能會有 1億*100*100 = 1萬億的輸出資料, 儲存空間需要20t左右(未壓縮),

2. 第二個階段的資料量由第乙個階段決定。但是第二階段需要啟動更多reduce去算完這1萬億的資料,所以這個階段會和第乙個階段一樣耗時。

希望有跑過這個量級的朋友分享一下經驗。

Spark實現之 好友推薦

網上好多好推薦之類的部落格都是基於二度好友的推薦,下面介紹基於鄰接表的好友推薦的spark實現。輸入 1 2,3,4,5,6,7,8 2 1,3,4,5,7 3 1,2 4 1,2,6 5 1,2 6 1,4 7 1,2 8 1第一列表示使用者,後面的表示使用者的所有好友。思路 1 key為user...

MapReduce案例 好友推薦

用過各種社交平台 如qq 微博 朋友網等等 的小夥伴應該都知道有乙個叫 可能認識 或者 好友推薦 的功能 如下圖 它的演算法主要是根據你們之間的共同好友數進行推薦,當然也有其他如愛好 特長等等。共同好友的數量越多,表明你們可能認識,系統便會自動推薦。今天我將向大家介紹如何使用mapreduce計算共...

社交網路的好友推薦

我們平時光計算使用者的關係親密度,比如兩者的sns互動次數 媒介場景關係度 地理位置相關度,這些缺陷都很依賴使用者之間的活躍程度。後來又有人提出了好友的好友 圈子 共同興趣 共同話題等方面角度進行研究。實際場景中我們也是會結合 社交 興趣 兩點平衡,找到乙個比較融合的權衡,推薦使用者感興趣的cont...