于乐乐

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

PageRank:搜索引擎在使用PageRank的时候,需要计算每个节点的PageRank的值:

上图给出了这个值的计算公式,每个节点的PageRank值由2部分构成,一个是节点初始的PageRank值,另一个是它连接的所有邻居节点的PageRank值。

前者意味着邻居节点多则PageRank值高,后者意味着邻居节点的质量也会影响节点本身的PageRank值。

以社交网络为例:2个人,每个人都有5个朋友,甲的朋友是Lily,Lucy,Andy,Kitty,Rocky,而乙的朋友是奥巴马,Bill Gates之类的精英,那么显然乙的重要程度应该高于甲。

上述计算过程需要反复迭代多次,在实现的时候使用了MapReduce算法,将计算任务分发给多个节点并行计算(Map),然后汇总多个节点的计算结果(Reduce)。

 

而2000年以后,PageRank的计算已经不使用MapReduce,而是使用Pregel。

相比MapReduce,不同之处在于Pregel以节点为中心,而不是以整个图为整体。每个节点计算出一个值以后,会主动发送消息给其他节点,告知更新后的结果。

每个节点收到邻居节点发送的Msg以后,提取出邻居节点的值,就可以进行新一轮更新计算,如下图所示:

posted on 2015-03-20 15:27  于乐乐  阅读(418)  评论(0编辑  收藏  举报