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。


0 0
原创粉丝点击