PageRank算法详解

xiaoxiao2021-02-28  112

PageRank算法详解

主要内容 PageRank算法简介PageRank算法详解 基本PageRank模型终止点问题陷阱问题解决终止点问题和陷阱问题

1、PageRank算法简介   PageRank,网页排名,又称网页级别或佩奇排名,是一种根据网页间相互超链接进行网页排名的技术,以Google公司创办人拉里·佩奇(Larry Page)之姓来命名。Google用它来体现网页的相关性和重要性,在搜索引擎优化操作中是评估网页优化的有效指标之一。Google的创始人拉里·佩奇和谢尔盖·布林于1998年在斯坦福大学发明了这项技术。   PageRank通过网络浩瀚的超链接关系来确定一个页面的等级。Google把从A页面到B页面的链接解释为A页面给B页面投票,Google根据投票来源(甚至来源的来源)和投票目标的等级来决定新的等级。简单的说,一个高等级的页面可以使其他低等级页面的等级提升。

2、PageRank算法详解 2.1 基本PageRank模型   互联网中的网页可以看成是一个有向图,其中网页是结点,如果网页 A 有链接到网页B,则存在一条有向边 AB ,下面是一个简单的示例:

  这个例子中只有四个网页,如果当前在 A 网页,那么悠闲的上网者将会各以1/3的概率跳转到 BCD ,这里的 3 表示A 3 条出链,如果一个网页有k条出链,那么跳转任意一个出链上的概率是 1/k ,同理 D BC的概率各为 1/2 ,而 B C的概率为 0 。一般用转移矩阵表示上网者的跳转概率,如果用n表示网页的数目,则转移矩阵 M 是一个n×n的方阵;如果网页 j k个出链,那么对每一个出链指向的网页 i ,有M[i][j]=1/k,而其他网页的 M[i][j]=0 ;上面示例图对应的转移矩阵如下:   初试时,假设上网者在每一个网页的概率都是相等的,即 1/n ,于是初试的概率分布就是一个所有值都为 1/n n 维列向量V0,用 M 乘以V0,就得到了第一步之后上网者的概率分布向量 V1 (n×n)×(n×1) 依然得到一个 n×1 的矩阵。下面是 V1 的计算过程:   注意矩阵 M M[i][j]不为 0 表示用一个链接从j指向 i M的第一行乘以 V0 ,表示累加所有网页到网页 A 的概率即得到9/24。得到了 V1 后,再用 M 乘以V1得到 V2 ,一直下去,最终 V 会收敛,即Vn=M×Vn1,上面的图示例,不断的迭代,最终得到 V=[3/9,2/9,2/9,2/9] : 2.2 终止点问题   上述上网者的行为是一个马尔科夫过程的实例,要满足收敛性,需要具备一个条件:

图是强连通的,即从任意网页可以到达其他任意网页

  互联网上的网页不满足强连通的特性,因为有一些网页不指向任何网页,如果按照上面的计算,上网者到达这样的网页后便走投无路、四顾茫然,导致前面累计得到的转移概率被清零,这样下去,最终的得到的概率分布向量所有元素几乎都为 0 。假设我们把上面图中C A 的链接丢掉,C变成了一个终止点,得到下面这个图:

对应的转移矩阵为: 连续迭代下去,最终所有元素都为 0

2.3 陷阱问题   另外一个问题就是陷阱问题,即有些网页不存在指向其他网页的链接,但存在指向自己的链接。比如下面这个图:

  上网者跑到C网页后,就像跳进了陷阱,陷入了漩涡,再也不能从 C 中出来,将最终导致概率分布值全部转移到C上来,这使得其他网页的概率分布值为 0 ,从而整个网页排名就失去了意义。如果按照上面图对应的转移矩阵为: 不断的迭代下去,就变成了这样:

2.4 解决终止点问题和陷阱问题   上面过程,我们忽略了一个问题,那就是上网者是一个悠闲的上网者,而不是一个愚蠢的上网者,我们的上网者是聪明而悠闲,他悠闲,漫无目的,总是随机的选择网页,他聪明在走到一个终结网页或者一个陷阱网页(比如两个示例中的C),不会傻傻的干着急,他会在浏览器的地址随机输入一个地址,当然这个地址可能又是原来的网页,但这里给了他一个逃离的机会,让他离开这万丈深渊。模拟聪明而又悠闲的上网者,对算法进行改进,每一步,上网者可能都不想看当前网页了,不看当前网页也就不会点击上面的连接,而上悄悄地在地址栏输入另外一个地址,而在地址栏输入而跳转到各个网页的概率是 1/n 。假设上网者每一步查看当前网页的概率为 α ,那么他从浏览器地址栏跳转的概率为 (1α) ,于是原来的迭代公式转化为: V=αMV+(1α)e 其中, e=[1/n,1/n,...,1/n] 。   现在我们来计算前文2.3节中带陷阱的网页图的概率分布:

重复迭代下去,得到:

转载请注明原文地址: https://www.6miu.com/read-75469.html

最新回复(0)