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值,如此相乘,就把迭代计算转化为了矩阵语言。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!