社交网络与网页图的算法实现:FoF与PageRank
1. 朋友的朋友(FoF)算法
1.1 FoF算法概述
社交网络如领英和脸书会使用朋友的朋友(FoF)算法,帮助用户拓展社交网络。该算法会推荐用户可能认识,但不在其直接社交网络内的朋友。通常,FoF被视为二度分隔关系。成功运用此算法的关键在于,根据共同朋友的数量对FoF进行排序,这样能增加用户认识FoF的可能性。
1.2 问题与解决方案
- 问题 :要在MapReduce中实现FoF算法。
- 解决方案 :需两个MapReduce作业来计算社交网络中每个用户的FoF。第一个作业计算每个用户的共同朋友,第二个作业根据与朋友的连接数量对共同朋友进行排序,然后可根据排序后的列表选择排名靠前的FoF来推荐新朋友。
1.3 示例分析
以一个包含用户关系的文本文件为例,文件内容如下:
joe
jon
kia
bob
ali
kia
joe
jim
dee
dee
kia
ali
ali
dee
jim
bob
joe
jon
jon
joe
ali
bob
joe
ali
jim
jim
kia
bob
ali
1.3.1 第一个MapReduce作业
此作业计算FoF,并统计每个FoF的共同朋友数量。排除已为朋友的关系后,每个FoF关系对应一行输出。以下是该作业的代码实现:
超级会员免费看
订阅专栏 解锁全文
849

被折叠的 条评论
为什么被折叠?



