大数据行业指标及 Google PageRank 算法原理
Author: Jessie
Date: 2020/9/7
1. 你所在的行业,常用的数据指标有哪些?请简述。
对收视、订购、用户等进行数据分析。

2. Google PageRank算法原理
PageRank:网页排名算法。根据网页间的超链接计算技术,作为网页排名的要素之一。
原理:
通过网络的超链接关系来确定一个页面的等级。如果A页面中包含B页面的链接,则记为A页面为B页面投票。Google根据投标的来源页面和投票页面的等级决定新的等级。
也就是说一个页面得票数由指向它的页面的重要性来决定。一个页面的PageRank由所有链向它的页面的重要性经过递归算法得到。
PageRank算法

假设一个这样的四个页面(A\B\C\D)。箭头表明页面中包含一个链接。如图: A页面由三个指向它的箭头,分别来源于B、C、D。页面B、C、D页面都包含A的页面链接。简单来讲:
PR(A)=PR(B)+PR(C)+PR(D)
但由于每个页面都同事也为其他页面投标,假设每个页面总共投1票。PageRank算法预先给每个网页设定一个PR值,PR值物理意义上代表一个网页被访问的概率,常规设置为1/N,N为网页总数。所有网页的PR值总和为1。
上例中:那么平分到A的页面,就是其他页面总数分之一的总和。
PR(A)=PR(B)/2+PR(C)/1+PR(D)/3
抽象出来,链出总数评分要给页面的PR值,如下:
PR(A)=PR(B)/L(B)+PR(C)/L(C)+PR(D)/L(C)
这里L表示: 该页面链出页面的总数。 L(B)为2……
为了方位,有些页面作弊,只对自己出链,不对外链接。如下图所示

这里就规定一个阻尼系数来模拟用户停止搜索的情况,google这里用a,一般0.85代表跳出率。
假设投票到本页面后占0.85; 跳出率为1-a,跳到其他页面,再除以页面的总和,就为跳到其他页面的跳出值。备注:例子如下图,一个简单的计算示意,其中总页面数为4。

抽象的算法公式总结如下:
备注:d为阻尼系数,N为总页面数。
Pj页面的pagerank值为:(指向它的所有页面Pj的pagerank值/Pj包含的总链接)* 阻尼系数,再加上跳出到页面的可能值:(1-d)/N。

如何计算?对于Google利用大数据根据公式写出程序?
一种方法就是把这些PageRank值组成一个矩阵,


将所有页面排成一个N*N的矩阵(稀疏矩阵:大部分为0)。
如果两个页面有链接,则该值为1.如上图:l(p1,p2)表示左边的页面到右边的页面是否有链接,p1->p2有链接则为1.
通过Mapreduce计算得到R值,每次计算R值带到公式中计算,直到R不再变化或约定的次数,则完成。
具体可以参考:
版权声明: 本文为 InfoQ 作者【架构5班杨娟Jessie】的原创文章。
原文链接:【http://xie.infoq.cn/article/727293b4b847ef821250ba2cd】。文章转载请联系作者。
评论