一、算法定义
PageRank,网页排名,又称网页级别、Google左侧排名或佩奇排名,是一种由 [1] 根据网页之间相互的超链接计算的技术,而作为网页排名的要素之一,以Google公司创办人拉里·佩奇(Larry Page)之姓来命名。Google用它来体现网页的相关性和重要性,在搜索引擎优化操作中是经常被用来评估网页优化的成效因素之一。Google的创始人拉里·佩奇和谢尔盖·布林于1998年在斯坦福大学发明了这项技术。
PageRank通过网络浩瀚的超链接关系来确定一个页面的等级。Google把从A页面到B页面的链接解释为A页面给B页面投票,Google根据投票来源(甚至来源的来源,即链接到A页面的页面)和投票目标的等级来决定新的等级。简单的说,一个高等级的页面可以使其他低等级页面的等级提升。
二、算法来源
这个要从搜索引擎的发展讲起。最早的搜索引擎采用的是 分类目录[^ref_1] 的方法,即通过人工进行网页分类并整理出高质量的网站。那时 Yahoo 和国内的 hao123 就是使用的这种方法。
后来网页越来越多,人工分类已经不现实了。搜索引擎进入了 文本检索 的时代,即计算用户查询关键词与网页内容的相关程度来返回搜索结果。这种方法突破了数量的限制,但是搜索结果不是很好。因为总有某些网页来回地倒腾某些关键词使自己的搜索排名靠前。
于是我们的主角要登场了。没错,谷歌的两位创始人,当时还是美国斯坦福大学 (Stanford University) 研究生的佩奇 (Larry Page) 和布林 (Sergey Brin) 开始了对网页排序问题的研究。他们的借鉴了学术界评判学术论文重要性的通用方法, 那就是看论文的引用次数。由此想到网页的重要性也可以根据这种方法来评价。于是PageRank的核心思想就诞生了[^ref_2],非常简单:
1.如果一个网页被很多其他网页链接到的话说明这个网页比较重要,也就是PageRank值会相对较高
2.如果一个PageRank值很高的网页链接到一个其他的网页,那么被链接到的网页的PageRank值会相应地因此而提高
三、搜索引擎
搜索引擎的功能主要是:根据用户输入的关键字,返回文档的链接结果。
搜索引擎主要解决的三大问题:(1)如何获取文档资料 (2)如何根据关键词检索到相关文档 (3)如何对文档进行排序,返回给用户满意的页面。
1.获取文档资料
利用爬虫程序,获取互联网的页面资料。爬虫技术先从一个网页出发,将该网页的内容记录下来,保存到资料库,接着分析页面中的超链接,分别递归得去获取超链接页面。
2.如何根据关键词检索到相关文档
采用倒排索引算法。简单的说,倒排索引是一对key-value对,key代表关键词,value代表拥有这些关键词的文档编号或者url。
3.文档排序
这是搜索引擎最核心的问题,也是google发家致富的法宝 – PageRank算法。
四、算法原理
4.1PageRank的两个假设
数量假设:1.如果一个网页被很多其他网页链接到的话说明这个网页比较重要,也就是PageRank值会相对较高。
质量假设:2.如果一个PageRank值很高的网页链接到一个其他的网页,那么被链接到的网页的PageRank值会相应地因此而提高。
4.2PageRank的算法原理
PageRank算法总的来说就是预先给每个网页一个PR值(下面用PR值指代PageRank值),由于PR值物理意义上为一个网页被访问概率,所以一般是1/N,其中N为网页总数。
预先给定PR值后,通过下面的算法不断迭代,直至达到平稳分布为止。
PageRank值主要是的是节点的入链值。
4.3PageRank的简单计算
假设一个由只有4个页面组成的集合:A,B,C和D。如果所有页面都链向A,那么A的PR(PageRank)值将是B,C及D的和。
PR(A)=PR(B)+PR(C)+PR(D)
P
R
(
A
)
=
P
R
(
B
)
+
P
R
(
C
)
+
P
R
(
D
)
继续假设B也有链接到C,并且D也有链接到包括A的3个页面。一个页面不能投票2次。所以B给每个页面半票。以同样的逻辑,D投出的票只有三分之一算到了A的PageRank上。
PR(A)=PR(B)2+PR(C)1+PR(D)3
P
R
(
A
)
=
P
R
(
B
)
2
+
P
R
(
C
)
1
+
P
R
(
D
)
3
也就是说可以写成如下公式:
PR(A)=PR(B)L(B)+PR(C)L(C)+PR(D)L(D)
P
R
(
A
)
=
P
R
(
B
)
L
(
B
)
+
P
R
(
C
)
L
(
C
)
+
P
R
(
D
)
L
(
D
)
正式公式可以写成下面的形式:
PR(Pi)=∑Pj∈MPiPR(Pj)L(Pj)
P
R
(
P
i
)
=
∑
P
j
∈
M
P
i
P
R
(
P
j
)
L
(
P
j
)
其中Mpi是所有对pi网页有出链的网页集合,L(pj)是网页pj的出链数目
4.4PageRank的修正计算
由于存在一些出链为0,也就是那些不链接任何其他网页的网, 也称为孤立网页,使得很多网页能被访问到。因此需要对 PageRank公式进行修正,即在简单公式的基础上增加了阻尼系数(damping factor)q, q一般取值q=0.85。
PR(Pi)=q∑Pj∈MPiPR(Pj)L(Pj)+(1−qN) P R ( P i ) = q ∑ P j ∈ M P i P R ( P j ) L ( P j ) + ( 1 − q N )
其中Mpi是所有对pi网页有出链的网页集合,L(pj)是网页pj的出链数目,N是网页总数,q一般取0.85。
参考:
[1]https://wenku.baidu.com/view/675d08f81711cc7931b716c9.html