PageRank算法原理
来源:互联网 发布:ogg 中同步表数据变动 编辑:程序博客网 时间:2024/06/05 10:14
定义问题
某网页 i 的PageRank 定义为上网者某一次点击鼠标到达网页 i 概率,记做 。
比如,某网页的 PageRank 是0.000005 意味着一个人随机点击鼠标到达该网页的概率是 0.000005 。
在网络世界里,对某一次点击来说,所有网页的 PageRank 之和为1 。
建模
网络世界中的各个节点可以表达成一幅巨大的有向图。如果节点 i 能链接到节点 j,则从i到 j有一条有向边。对于某节点 i ,它有一定的出度和入度,出度指的是从该点出发的有向边的数量,入度指的是到达该点的有向边的数量。比如上图,节点 A 的入度是3 ,出度是 2 。定义假设节点 i的出度为 L(i) ,能到达节点 i的所有节点的集合为 IN(i) 。
数学推导
假如上网者是从别的节点j 跳转到某节点 i 的,那么因为节点 j的出度是 L(j) ,在概率平均的情况下,有 PR(j)/L(j) 的概率从j 跳转到 i,所以从别的节点链接到节点 i 的概率就是:这里的 j 属于能到达节点 i的所有节点的集合。
那么扩展到更一般的情况:假设 指第t 次鼠标点击后,网页 i 出现的概率;那么在完成第 t 次点击后,用户有可能继续点击链接,也有可能在浏览器里新打开了一个标签输入 URL ,或者直接关掉电脑去找女朋友了(两天后他又上了网,开始了 t+1 次点击)。 反正无论怎样,用户在 t+1 次点击时得到的网页,有一定概率 d 是从第t 次点击得到的网页中链接过去的,也有可能是输入一个网址得到的,易得这个概率是 1-d 。假设互联网中所有网页数量是 N ,那么随机进入网页 i的概率就是 1/N ,所以:当 t很大时, t+1 时的PR(i) 和 t时的 PR(i) 可以认为相同,也就得到了下面的公式:
用这个公式直接计算 PageRank 是复杂度极大的,但我们可以把它转化成矩阵的计算。假设 ,那么这里 1 是一个N 行的全 1矩阵 现在的关键是求 M ,根据上面的推导可知:所以,假设图得邻接矩阵为 A ,所有节点的出度矩阵为 K ,那么,所以代入 M 进 可得所有节点的 PageRank。
定义问题
某网页 i 的PageRank 定义为上网者某一次点击鼠标到达网页 i 概率,记做 。
比如,某网页的 PageRank 是0.000005 意味着一个人随机点击鼠标到达该网页的概率是 0.000005 。
在网络世界里,对某一次点击来说,所有网页的 PageRank 之和为1 。
建模
网络世界中的各个节点可以表达成一幅巨大的有向图。如果节点 i 能链接到节点 j,则从i到 j有一条有向边。对于某节点 i ,它有一定的出度和入度,出度指的是从该点出发的有向边的数量,入度指的是到达该点的有向边的数量。比如上图,节点 A 的入度是3 ,出度是 2 。定义假设节点 i的出度为 L(i) ,能到达节点 i的所有节点的集合为 IN(i) 。
数学推导
假如上网者是从别的节点j 跳转到某节点 i 的,那么因为节点 j的出度是 L(j) ,在概率平均的情况下,有 PR(j)/L(j) 的概率从j 跳转到 i,所以从别的节点链接到节点 i 的概率就是:
这里的 j 属于能到达节点 i的所有节点的集合。
那么扩展到更一般的情况:假设 指第t 次鼠标点击后,网页 i 出现的概率;那么在完成第 t 次点击后,用户有可能继续点击链接,也有可能在浏览器里新打开了一个标签输入 URL ,或者直接关掉电脑去找女朋友了(两天后他又上了网,开始了 t+1 次点击)。 反正无论怎样,用户在 t+1 次点击时得到的网页,有一定概率 d 是从第t 次点击得到的网页中链接过去的,也有可能是输入一个网址得到的,易得这个概率是 1-d 。
假设互联网中所有网页数量是 N ,那么随机进入网页 i的概率就是 1/N ,所以:
当 t很大时, t+1 时的PR(i) 和 t时的 PR(i) 可以认为相同,也就得到了下面的公式:
用这个公式直接计算 PageRank 是复杂度极大的,但我们可以把它转化成矩阵的计算。
假设 ,那么
这里 1 是一个N 行的全 1矩阵
现在的关键是求 M ,根据上面的推导可知:
所以,假设图得邻接矩阵为 A ,所有节点的出度矩阵为 K ,那么
,所以代入 M 进
可得所有节点的 PageRank。
0 0
- PageRank算法原理
- PageRank算法原理详解
- 深入探讨PageRank(一):PageRank算法原理入门
- 深入探讨PageRank(一):PageRank算法原理入门
- PageRank算法的实现源代码和原理
- PageRank算法原理剖析及Spark实现
- PageRank算法--从原理到实现
- PageRank算法--从原理到实现
- PageRank算法--从原理到实现
- PageRank算法--从原理到实现
- PageRank算法--从原理到实现
- PageRank算法
- PageRank算法
- PageRank 算法
- PageRank算法
- PageRank算法
- PageRank算法
- PageRank算法
- 关于Xcode中工程文件名后面的小方框里字母的含义
- 关于使用STM32- PB3引脚的一些问题
- LeetCode OJ Decode Ways
- 红黑树 c++实现
- 黑马程序员——Java集合框架(二)
- PageRank算法原理
- 2、程序流程控制
- 64位ubuntu运行adt缺少libstdc++.so.6和libz.so.1文件
- Eclipse中ctrl+2+L快捷键的使用
- 静态链接和动态链接
- 旱冰场造价
- C++虚函数实现机制
- 【spring教程之十】spring注自动检测标注bean
- 图论之欧拉回路