1.介绍
PageRank算法是一种表示网页排名,用模拟上网者随机选择网页的方法,不停迭代,得到分布在各个网页上的概率。
PageRank核心思想:
1.如果一个网页被很多网页连接到,说明这个网页比较重要,PageRank值较高。
2.如果一个PageRank值很高的网页连接到一个其他的网页,那么被连接到的网页PageRank会相应提高。
2.数学建模
假设n是所有的可访问的网页数目,定义 n × n 的 网 页 连 接 矩 阵 G = ( g i j ) n\times n的网页连接矩阵G=(g_{ij}) n×n的网页连接矩阵G=(gij),其中 g i j = 1 表 示 从 网 页 j 有 一 个 连 接 到 网 页 i g_{ij}=1表示从网页j有一个连接到网页i gij=1表示从网页j有一个连接到网页i,矩阵 G G G的特点如下:
- G是大规模的稀疏矩阵
- G中非零元素的数目为整个网络中存在的连接数量
- 定义第i个网页的入度为 r i = ∑ j = 1 n g i j r_i=\sum_{j=1}^ng_{ij} ri=∑j=1ngij
- 定义第i个网页的出度为
r
i
=
∑
j
=
1
n
g
j
i
r_i=\sum_{j=1}^ng_{ji}
ri=∑j=1ngji
对随机上网的过程有两种选择:
(1)在当前页面选择一个连接进入下一个页面
(2)随即打开一个新的页面
此过程在数学上称为马尔可夫过程(下一步的状态只和目前状态有关,与过去的状态无关),某网页的被访问的极限概率就是PageRank的值。
p——在当前页面的连接上进行选择。假设当前页面为j则下一步转移到页面i的情况分为两种:
(1)i在网页j上则概率为 p × 1 c j + ( 1 − p ) × 1 n p\times \frac{1}{c_j}+(1-p)\times \frac{1}{n} p×cj1+(1−p)×n1
(2)i不在页面j上则概率为 ( 1 − p ) × 1 n (1-p)\times \frac{1}{n} (1−p)×n1
两式可合并表示,用a_{ij}表示从j页面转移到i的概率为: a i j = g i j [ p × 1 c j + ( 1 − p ) × 1 n ] + ( 1 − g i j ) ( 1 − p ) × 1 n = p g i j c j + 1 − p n a_{ij}=g_{ij}[p\times \frac{1}{c_j}+(1-p)\times \frac{1}{n}]+(1-g_{ij})(1-p)\times \frac{1}{n}=\frac{pg_{ij}}{c_j}+\frac{1-p}{n} aij=gij[p×cj1+(1−p)×n1]+(1−gij)(1−p)×n1=cjpgij+n1−p
若 c j = 0 c_j=0 cj=0则改为 a i j = 1 n a_{ij}=\frac{1}{n} aij=n1
将任意两个王爷之间的转移概率组成矩阵 A = ( a i j ) n × n A=(a_{ij})_{n\times n} A=(aij)n×n。设矩阵 D D D为各个页面出度的倒数(若没有出度设为1)构成n阶对角矩阵。E为n阶单位矩阵则可用下式计算:
A = p G D + 1 − p n E A=pGD+\frac{1-p}{n}E A=pGD+n1−pE
定义 x i k x_i^{k} xik表示k时刻浏览网页i的概率, X = ( x i ) , i = 1 , 2 , . . . , n 的 列 向 量 X=(x_i),i=1,2,...,n的列向量 X=(xi),i=1,2,...,n的列向量,则 X k + 1 = A X k X^{k+1}=AX^k Xk+1=AXk无限循环这一过程达到极限的情况,最后得到的极限向量 x 为 个 页 面 的 P a g e R a n k , 满 足 A x = x x为个页面的PageRank,满足Ax=x x为个页面的PageRank,满足Ax=x,实际上就是求矩阵 A A A的特征值为1的特征向量。
由于 X k = A X k − 1 = A 2 X k − 2 = . . . = A k − 1 X 1 X^{k}=AX^{k-1}=A^2X^{k-2}=...=A^{k-1}X^1 Xk=AXk−1=A2Xk−2=...=Ak−1X1可用幂法求得 X k X^k Xk。
3.个性化PageRank算法
个性化的pagerank的目标是要计算所有节点相对于用户u的相关度。从用户u对应的节点开始游走,每到一个节点都以1-d的概率停止游走并从u重新开始,或者以d的概率继续游走,从当前节点指向的节点中按照均匀分布随机选择一个节点往下游走。这样经过很多轮游走之后,每个顶点被访问到的概率也会收敛趋于稳定,这个时候我们就可以用概率来进行排名了。
个性化的pagerank跟传统pagerank不同的是,每次重新游走时,总是从用户u节点开始。另外,每个节点权重初始化时,个性化的pagerank是这样子的,假如对用户u推荐,则对用户u节点初始化为1,其他节点都初始化为0。
参考:
https://segmentfault.com/a/1190000000711128
https://blog.csdn.net/lingerlanlan/article/details/46991167