【机器学习】【PageRank算法-1】PageRank算法原理介绍

与他算法一样,虽然PageRank算法满天有,但是自己写出来能够记忆深刻和灵活使用,还是要写一下PageRank算法。

1.PageRank算法简介

1.1开门见山

PageRank算法以前就是Google的屠龙刀,倚天剑,降龙十八掌。Google显示符合用户搜索的网页的依次显示呢?在以前Google及用过PageRank算法,对每个目标网页进行附上权值,权值大的就靠前显示,权值小的就靠后显示。对,PageRank算法就是给每个网页附加权值的~。PageRank算法借鉴学术界论文重要性的评估方法:谁被引用的次数多,谁就越重要。注:PageRank算法不单单是按照“被索引数”来给网页付权值的,用PR值表示每个网页被PageRank算法附加的权值。

1.2PageRank算法的核心细想

PageRank算法的核心思想就跃然纸上:

(1)如果一个网页被很多其他网页链接到的话说明这个网页比较重要,也就是PageRank值会相对较高
(2)如果一个PageRank值很高的网页链接到一个其他的网页,那么被链接到的网页的PageRank值会相应地因此而提高

这就是为什么在后面讲解的例子中计算PR(A)时,如果B对A有出链,PR(B)就会给PR(A)增加贡献~~

2.算法原理

2.1基本概念

先了解几个基本概念,一遍后面内容理解

(1)出链

如果在网页A中附加了网页B的超链接B-Link,用户浏览网页A时可以点击B-Link然后进入网页B。上面这种A附有B-Link这种情况表示A出链B。可知,网页A也可以出链C,如果A中也附件了网页C的超链接C-Link。

(2)入链

上面通过点击网页A中B-Link进入B,表示由A入链B。如果用户自己在浏览器输入栏输入网页B的URL,然后进入B,表示用户通过输入URL入链B

(3)无出链

如果网页A中没有附加其他网页的超链接,则表示A无出链

(4)只对自己出链

如果网页A中没有附件其他网页的超链接,而只有他自己的超链接A-Link,则表示A只对自己出链

(5)PR值

一个网页的PR值,概率上理解就是此网页被访问的概率,PR值越高其排名越高。

下面给出计算PR值可能遇到的几种不同情况

2.2 几种网页出入链关系

注:以下图形来自 PageRank算法--从原理到实现

2.2.1 case1:网页都有出入链

【机器学习】【PageRank算法-1】PageRank算法原理介绍_第1张图片

此种情况下的网页A的PR值计算公式为:


2.2.2 case2:存在没有出链的网页

【机器学习】【PageRank算法-1】PageRank算法原理介绍_第2张图片

网页C是没有出链。因为C没有出链,所以对A,B,D网页没有PR值的贡献。PageRank算法的策略:从数学上考虑,为了满足Markov链,设定C对A,B,C,D都有出链(也对他自己也出链~)。你也可以理解为:没有出链的网页,我们强制让他对所有的网页都有出链,即让他对所有网页都有PR值贡献。

此种情况PR(A)的计算公式:


2.2.3 case3:存在只对自己出链的网页

【机器学习】【PageRank算法-1】PageRank算法原理介绍_第3张图片

C是只对自己出链的网页。

此时访问C时,不会傻乎乎的停留在C页面,一直点击C-Link循环进入C,即C网页只对自己的网页PR值有贡献。正常的做法是,进入C后,存在这种情况:在地址输入栏输入A/B/C/D的URL地址,然后跳转到A/B/C/D进行浏览,这就是PageRank算法解决这种情况的策略:设定存在一定概率为α,用户在地址栏输入A/B/C/D地址,然后从C跳转到A/B/C/D进行浏览。

此时PR(A)的计算公式为:

,一般取值α=0.85

2.3算法公式

一般情况下,一个网页的PR值计算公式为:


注:Mpi是有出链到pi的所有网页集合,L(pj)是有网页pj的出链总数,N是网页总数,α一般取值为0.85

所有网页PR值同时计算需要迭代计算:一直迭代计算,停止直到下面2情况之一发生:每个网页的PR值前后误差dleta_pr小于自定义误差阈值,或者迭代次数超过了自定义的迭代次数阈值

3.PR值计算方法

3.0几个基本公式

使用case3(存在只对自己出链的网页)中的网页出入链关系图

矩阵S:

【机器学习】【PageRank算法-1】PageRank算法原理介绍_第4张图片

S[i][j]表示网页j对网页i的出链,可知S[i]表示所有网页对网页i的出链值,S[:,j]是网页j对所有网页的出链值。

矩阵A:


其中e是所有分量为1的列向量,即e=(1,…1…,1)T,N是网页总数,一般取值α=0.85

3.1幂迭代法


先对P0赋随机初值,然后通过上面公式进行迭代计算,直到满足条件停止迭代计算:一直迭代计算,停止直到下面2情况之一发生:每个网页的PR值前后误差dleta_pr小于自定义误差阈值,或者迭代次数超过了自定义的迭代次数阈值

3.2特征值法

Markov Chain收敛时,存在:


3.3代数法

Markov Chain收敛时,存在:

【机器学习】【PageRank算法-1】PageRank算法原理介绍_第5张图片

可以通过上面公式计算出来PR值矩阵。

参考文献

[1]深入浅出PageRank算法

[2]张洋:前戏PageRank算法

[3]PageRank算法简介及Map-Reduce实现

[4]MapReduce原理与设计细想

[5]PageRank算法-从原理到实现

你可能感兴趣的:(人工智能,机器学习,跟我一起学机器学习,Machine,Learning)