MapReduce之可能认识的好友
背景
目前有大量的社交网络有一个共同的特性,就是可以推荐联系人,基本思想是:如果A是B的好友,而A又是C的好友(也就是说,A是B和C的共同好友,但B和C彼此并不认识),那么社交网络系统喔咕就会向B推荐C,或者向C推荐B。换句话说,如果两个人有一组共同好友,但这两个人本身不是好友,那么社交网络就会推荐他们相互联络
原理
所有用户之间的好友关系可以表示为一个图,在数学中,图是一个有序对G=(V,E)G=(V,E)G=(V,E),包括顶点集VVV,以及边集EEE,边集EEE是VVV的两元素子集(也就是说,边与两个顶点相关,这个关系表示为关于这个特定边的一个无序的顶点对)。这种图可以准确的描述无向图或简单图,在MapReduce解决方案中,假设人们之间的好友关系可以用一个无向图表示(如果A是B的一个好友,那么B也是A的好友),社交网络都使用双向好友关系
在这里,图是一个有序对$ G=(V,E) $,其中:
- VVV是由人(社交网络的用户)构成的一个有限集
- EEE是VVV上的一个二元关系,称为边集,其中的元素称为一个好友关系。
从图论的角度来看,对于一个特定的社交网络的各个人或成员来说,如果他在某个人A的两个度内,会统计这个人与A之间存在多少条不同的路径(包括两个连接边),然后根据路径数对这个列表中所有人评分,显示出A要联系的人,因此目标是为社交网络中的每

本文介绍了一种基于MapReduce的社交网络好友推荐算法,通过分析用户间的好友关系图,找出共同好友最多的潜在联系人进行推荐。文章详细阐述了算法原理、输入输出格式以及mapper和reducer阶段的具体实现。
最低0.47元/天 解锁文章
504

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



