首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MapReduce实现PageRank

使用MapReduce实现PageRank
EN

Stack Overflow用户
提问于 2011-02-17 21:03:57
回答 3查看 16.1K关注 0票数 11

我正在尝试解决一个关于用MapReduce实现PageRank的理论问题。

我有以下三个节点的简单场景:A、B、C。

邻接矩阵如下:

代码语言:javascript
复制
A { B, C }
B { A }

例如,B的PageRank等于:

代码语言:javascript
复制
(1-d)/N + d ( PR(A) / C(A) ) 

N     = number of incoming links to B
PR(A) = PageRank of incoming link A
C(A)  = number of outgoing links from page A

我对所有的原理图以及映射器和减速器如何工作都很满意,但我不明白在减速器计算的时候,C(A)是如何知道的。在通过将传入链接聚合到B来计算B的PageRank时,reducer将如何知道每个页面的传出链接的数量。这是否需要在某些外部数据源中进行查找?

EN

回答 3

Stack Overflow用户

发布于 2012-11-26 23:49:18

下面是一个伪代码:

代码语言:javascript
复制
map( key: [url, pagerank], value: outlink_list )
    for each outlink in outlink_list
        emit( key: outlink, value: pagerank/size(outlink_list) )

    emit( key: url, value: outlink_list )

reducer( key: url, value: list_pr_or_urls )
    outlink_list = []
    pagerank = 0

    for each pr_or_urls in list_pr_or_urls
        if is_list( pr_or_urls )
            outlink_list = pr_or_urls
        else
            pagerank += pr_or_urls

    pagerank = 1 - DAMPING_FACTOR + ( DAMPING_FACTOR * pagerank )

    emit( key: [url, pagerank], value: outlink_list )

在reduce中,你应该输出外部链接而不是内部链接,这一点很重要,正如intenret上的一些文章所建议的那样。这样,连续的迭代也会有外部链接作为映射器的输入。

请注意,来自同一页面的具有相同地址的多个外部链接被视为一个链接。另外,不要计算循环次数(页面链接到自身)。

传统上,阻尼因子为0.85,不过您也可以使用其他值。

票数 19
EN

Stack Overflow用户

发布于 2011-02-18 07:21:41

A detailed explanation with Python code,迈克尔·尼尔森著。

票数 4
EN

Stack Overflow用户

发布于 2011-02-17 21:50:33

我们迭代地评估PR。PR(x) = Sum(PR(a)*weight(a),a in in_links) by

代码语言:javascript
复制
map ((url,PR), out_links) //PR = random at start
for link in out_links
   emit(link, ((PR/size(out_links)), url))

reduce(url, List[(weight, url)):
   PR =0
   for v in weights
       PR = PR + v
   Set urls = all urls from list

   emit((url, PR), urls)

所以输出等于输入,我们可以这样做,直到覆盖。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5029285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档