自然语言处理-PageRank(上)

NLP.jpg

PageRank 是什么

PageRank 一种是用来进行网页排序的算法,由Google的创始人拉里·佩奇和谢尔盖·布林于1998年在斯坦福大学提出的这个算法。

算法的核心思想有两点:

  • 如果一个网页 A 被多个网页链接到,那说明这个网页 A 重要程度高,也就是 值高
  • 如果一个PageRank 值高的网页 A 指向了另外一个网页 B,那么 B PageRank 值也会相应升高

这其实很好理解,就像一位女生,有很多男生追她,说明这位女生的魅力大。如果这位女生说,自己的一个女性朋友也很好,即使这位女性朋友之前很普通,但因为那位女生的一句话,也变得有魅力起来。

怎么计算 PageRank

先来一张图


网页有向图01.png

这张图里有 A、B、C、D 四个网页,单个网页有自己的出入链,我们根据某个网页的入链来计算该网页的 PageRank 值。

以 A 网页为例,有 B、D 两个网页指向它,A 的 PageRank 值可以简单的表示为:
PR(A) = PR(B) + PR(D)

但是仔细一看会发现,B 除了指向 A 以外,还指向了 D,对,网页 B 分心了,分心的结果就是,在 B 的心中,A 不是它的全部,它还想着 D,我们先假设 A 和 D 在 B 的心中是同等重要的,所以 A 的 PageRank 值应该改为:
PR(A) = PR(B)/2 + PR(D)

再来看一张图


网页有向图02.png

这张图里,C 不再指向 A 了,这就导致了 网页 C 的出度为0,那这样就代表 C 对其他三位都不感兴趣吗,这可不尽然,可能是不好意思说罢了。咱也不敢问,咱也不敢说,就当是 C 对 A、B、D 都感兴趣吧,并且可能还有点自恋。这时候,A 的 PageRank 值应该改为:
PR(A) = PR(B)/2 + PR(D)/4

还有一张图

网页有向图03.png

这张图里,C 指向了自己,这是摆明了对其他三个人无感,这样的话,C 会永远停留在自己世界的死循环中,这当然是不现实的,或许某一天,C 也会开始与其他三位交流,所以,引入一个参数 q,学名叫 阻尼系数

阻尼系数q的意义是,在任意时刻,用户到达某页面后并继续向后浏览的概率。1-q就是用户停止点击,随机跳到新URL的概率。

说明白一点,1-q 就是 C 会开始与其他三位交流的概率,所以 A 的 PageRank 值应该改为:
PR(A) = (PR(B)/2)*q + (1-q)/4
更一般的公式可以写为:


公式.png

公式中,N 是所有页面的数量,p1,p2,...,pn是被研究的网页,L(pj) 是 pj 网页的出链数。

这些只是简单介绍一下 PageRank 的原理,今天有点晚了,具体的算法实现下一次再记录。

你可能感兴趣的:(自然语言处理-PageRank(上))