pageRank 算法
首先放出讲解视频:https://www.bilibili.com/video/BV1m4411P76G?p=4&vd_source=276fe0d3adccaace7186685da6d3b4c0
PageRank算法:
历史上,PageRank算法作为计算互联网网页重要度的算法被提出。PageRank是定义在网页集合上的一个函数,它对每个网页给出一个正实数,表示网页的重要程度,整体构成一个向量,PageRank值越高,网页就越重要,在互联网搜索的排序中可能就被排在前面。
PageRank是一个图算法(对于网页及网页间的链接则抽象为图结构),对于每个节点计算其PageRank值,下面简称PR值。
公式如下:

这是一个迭代公式,是循环次数,是节点的第轮的PR值。
是其他指向的节点的第轮PR值。
是其他指向的节点的出链数。
其中算法规定,为节点总数,每个节点初始PR值默认一致。
例:
|
PR
循环次数i |
PR(A) |
PR(B) |
PR(C) |
PR(D) |
|
0 |
1/4 |
1/4 |
1/4 |
1/4 |
|
1 |
|
|
|
|
初始值ABCD四个节点的PR值均为1/4
第一轮计算:
可发现指向A节点的节点有C、D两个节点。
故
=1/4 , C节点直接指向A 和C节点指向D两条出链
1/4, D节点直接指向A节点的一条出链
故
同理
|
PR
循环次数i |
PR(A) |
PR(B) |
PR(C) |
PR(D) |
|
0 |
1/4 |
1/4 |
1/4 |
1/4 |
|
1 |
3/8 |
1/8 |
3/8 |
1/8 |
可以看到经过一轮PR计算后AC两节点的PR值变大,重要程度上升
把上述过程一直进行下去,各个节点的pr值将会收敛到一定范围,最终pr值即为各网站的权重
公式化语言(矩阵语言)
介绍数学概念:转移概率矩阵
转移概率矩阵:矩阵各元素都是非负的,并且各行元素之和等于1,各元素用概率表示,在一定条件下是互相转移的,故称为转移概率矩阵。P(k)表示k步转移概率矩阵。

这个矩阵可以将我们上面的迭代公式转化为我们所需要的矩阵运算。
上面的例图

我们可以看到 A点的出度为2,从A出发可以到达B、C,如果我是一个随机的策略的话,那个我可以说从A转移到B点概率为1/2,从A转移到C点概率为1/2,而从A转移到D点概率为0.(转移的概念是必须转移到下一个节点,不得停留,所以A到A概率为0)
那么如果我们使用行数表示要出发的节点,列数表示要到达的节点,显然上述信息可以看成一个向量(矩阵),如下

这个行向量表示的是A的转移概率状态,如果依次按照此法表示B C D三个节点的概率转移状态,并把这4个行向量组成矩阵,就得到了转移概率矩阵M

我们可以发现,矩阵M的转置MT 是概率转移矩阵。
初始化的PR向量为

我们让 t = MT*PR,有:

我们发现这个正好是上节中我们计算一轮PR值的结果,所以t是第二轮的pr,所以第三轮的pr计算应该对第二轮的pr列向量的左边乘上MT就得到了第三轮pr值,如此相乘,就把迭代计算转化为了矩阵语言。

浙公网安备 33010602011771号