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的转置M是概率转移矩阵。

 初始化的PR向量为

 

 我们让 t = MT*PR,有:

 

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

 

 

 

 

 


 

posted @   戒不掉的尼古丁  阅读(855)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示