好友推荐算法-基于关系的推荐

Posted on Leave a comment

最近在搞社交网络的算法,前面简单叙述了pagerank的相关以及graphx的实现,现在简单介绍好友推荐算法,每当我们在QQ的添加好友等的时候,下面总会出现腾讯推荐给我们的好友,你会发现推荐的好友大多都是你某个好友的好友(即二度好友),而且其中还有一些比较详细的规则,下面简单介绍: 一、六度分割理论: 1967年,美国哈佛大学的心理学教授Stanley Milgram(1933-1984)想要描绘一个连结人与社区的人际联系网,做过一次连锁信实验,结果发现了”六度分隔”现象。六度分隔(Six Degrees of Separation)现象(又称为“小世界现象”small world phenomenon),可通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。” “六度分隔”说明了社会中普遍存在的“弱纽带”,但是却发挥着非常强大的作用。有很多人在找工作时会体会到这种弱纽带的效果。 […]

几个大型网站的Feeds(Timeline)设计简单对比

Posted on Leave a comment

  Facebook起源的NewsFeed,以及Twitter起源的Timeline,核心问题都是如何处理巨大的消息(活动,activity)分发。“推Push”和“拉Pull”或者“推拉结合”,是主要的处理方式。 以前各大网站陆续透露的文档,以及这次QCon2012 London和深圳的架构师会议,较大程度的公开了各自的实现方式。本文从 消息分发模式;内部通信工具、协议;存储方式 3方面总结。 各大网站都大量使用的Nginx, memcached, MySQL等开源产品,都标配了,文中不再提。实现技术上,异步消息队列的引入,来模块解耦和尖峰削平;Cache的精良设计等,也都是各家大量使用的技能,可看参看文档,不再详述。 推 […]