02.链接分析(Link Analysis):PageRank算法


Kaisa主讲
公式输入请参考: 在线Latex公式

Internet网络的图结构及概念复习

将Internet网络中网页看做节点,把超链接看做有向边。


网页的分类老师提到两类,早期多是静态HTML,属于第一类,典型的就是hao123网站。以下内容来自:http://www.thuir.org/group/~YQLiu/thesis/05Content.pdf
导航类(Navigational):目标是查找某个特定的站点或者网页。如“上海
市政府网站”、“清华大学招生简章”等(摘自百度网站“搜索风向标”栏目,
下同)。
信息事务类(Informational):目标是获取可能位于一个或某几个网页上的
信息。如“现代企业制度的形式”、“农村党员队伍状况” 等。
事务类(Transactional):目标是查找能够处理某些以 Web 为媒介的事务的
网页。如“连连看下载”、“歌词查询”等。


In/Out-component:指图中那些节点能够到达当前节点的集合(包含当前节点在内)/指图中从当前节点可以到达那些节点的集合(包含当前节点在内)

Strongly connected components of the graph:强连通分量(SCC)是满足以下性质的节点的集合 S S S

  1. S S S中的任何一对节点都可以互相到达
  2. 没有包含 S S S的更大的集合满足上述性质

所有有向图都是基于它的强连通分量的有向无环图。就是将有向图中的所有强连通分量看做一个节点,那么这些新节点组成的新有向图(原来图中的强连通分量)是一个有向无环图(环都变成节点了,当然就变成无环图了呀)
这个结论对于今天要学习的算法还蛮重要。
因此先要学会找强连通分量(隐含上周作业解决方案。。。):
找出一个图的In/Out-component两个集合,求他们的交集,就是该图的SCC
经过科学家(大佬们)的实验,得出结论:Bowtie Structure of Web
在这里插入图片描述

PageRank:给网页的“重要性”排名

创建搜索引擎有三步:
1.使用爬虫类工具爬取网页数据并建库
2.创建倒排索引(inverted index),使得搜索引擎可以快速根据关键词找到包含这个词的网页
3.用PageRank根据重要性对搜索结果进行排序

本次课主要针对第三点进行讲解,早期的搜索引擎对于网页重要性排序有两种方式:
1.不排序,直接出结果
2.根据关键字匹配数量进行排序(网页可以针对这个算法大量注入大量关键字)

对于Pagerank算法:

基本的PageRank算法

PageRank算法利用网络的图结构来评价网页的重要性,这里的图结构是指指向网页的链接,也就是Inlink。PageRank算法有两种假设:
数量假设:指向该网站的数量越多,重要性越高
质量假设:指向该网站越权威,重要性越高(每个链接权重不一样)
PageRank模型的描述如下:
网页 i i i的rank(重要度)是 r i r_i ri,有 d i d_i di个outlinks,那么每个链接获得 r i d i \cfrac{r_i}{d_i} diri权重的投票;
网页 j j j的rank(重要性) r j r_j rj是它的inlinks的投票权重的总和, r j r_j rj定义如下:
r j = ∑ i → j r i d i (1) r_j=\sum_{i\rightarrow j}\cfrac{r_i}{d_i}\tag1 rj=ijdiri(1)
例子:
在这里插入图片描述
上图中三个节点 r a , r b , r c r_a,r_b,r_c ra,rb,rc的重要性可以列出如下线性方程组:
{ r a = r c + r b / 2 r b = r b / 2 + r a / 2 r c = r a / 2 \begin{cases} r_a=r_c+r_b/2 \\ r_b=r_b/2+r_a/2 \\ r_c=r_a/2 \\ \end{cases} ra=rc+rb/2rb=rb/2+ra/2rc=ra/2
当然还有一个额外的约束:
r a + r b + r c = 1 r_a+r_b+r_c=1 ra+rb+rc=1
解出来为: r a = 2 5 , r b = 2 5 , r c = 1 5 r_a=\cfrac{2}{5},r_b=\cfrac{2}{5},r_c=\cfrac{1}{5} ra=52,rb=52,rc=51
当节点较少的时候,还可以消元法解一下,如果计算互联网上上亿个节点就需要用特殊的优化方法:

PageRank的矩阵表达

Column stochastic (列随机) 矩阵 M M M(每一个列上的元素之和为1,暗暗符合上面的图中约束条件,当然还有行随机矩阵和双随机矩阵),我们假设网页 j j j d j d_j dj个外链接,假设第 j j j个外链接是指向 i i i网页,那么:
M i j = 1 d j M_{ij}=\cfrac{1}{d_j} Mij=dj1
将某个网页 i i i的重要度 r r r看做一个向量,且满足所有网页的重要度和为1: ∑ i r i = 1 \sum_ir_i=1 iri=1,那么公式1的矩阵表达如下:
r = M ⋅ r (2) r=M\cdot r\tag2 r=Mr(2)


根据特征向量的定义可知:若
A x = λ x Ax=\lambda x Ax=λx
x x x为矩阵 A A A的特征值为 λ \lambda λ的特征向量
把公式2写成:
1 ⋅ r = M ⋅ r 1\cdot r=M\cdot r 1r=Mr
则重要度向量 r r r是矩阵 M M M对应特征值为1的特征向量


PageRank的矩阵表达实例

先把上面的图拉下来:
在这里插入图片描述
写出上图的(列随机) 矩阵 M M M
r a r b r c r a 0 1 / 2 1 r b 1 / 2 1 / 2 0 r c 1 / 2 0 0 \begin{matrix} & r_a& r_b &r_c \\ r_a & 0& 1/2 &1 \\ r_b & 1/2 & 1/2 & 0\\ r_c & 1/2& 0 & 0 \end{matrix} rarbrcra01/21/2rb1/21/20rc100
根据公式2:
[ r a r b r c ] = [ 0 1 / 2 1 1 / 2 1 / 2 0 1 / 2 0 0 ] [ r a r b r c ] \begin{bmatrix} r_a\\ r_b\\ r_c \end{bmatrix}=\begin{bmatrix} 0& 1/2 &1\\ 1/2 & 1/2 & 0 \\ 1/2& 0 & 0 \end{bmatrix}\begin{bmatrix} r_a\\ r_b\\ r_c \end{bmatrix} rarbrc=01/21/21/21/20100rarbrc
展开就是对应的方程组:
{ r a = r b / 2 + r c r b = r a / 2 + r b / 2 r c = r a / 2 \begin{cases} r_a=r_b/2+r_c \\ r_b=r_a/2+ r_b/2\\ r_c=r_a/2 \\ \end{cases} ra=rb/2+rcrb=ra/2+rb/2rc=ra/2

从Markov的角度来看PageRank

这块听懂了定义,最后的平稳分布没懂的可以看这里(https://blog.csdn.net/qq_34652535/article/details/85343518)
定义:

考虑一个网上的随机冲浪者
 在时间t,在网页i
 在时间t+1,沿着网页i的outlinks uniformly at random(就是按出度均匀分布概率1/dj),到达网页i指向的另一网页j
无限重复以上的步骤

冲浪者在图中随机游走的过程就是一个马尔科夫链,记向量 p ( t ) p(t) p(t)为冲浪者时间步 t t t到达网页 i i i的概率
p ( t ) p(t) p(t)可以看做所有网页的一个概率分布
M就相当于马尔科夫中的状态转移矩阵,因此在 t + 1 t+1 t+1时刻,冲浪者位置:
p ( t + 1 ) = M ⋅ p ( t ) p(t+1)=M\cdot p(t) p(t+1)=Mp(t)

当随机游走到达以下状态时
p ( t + 1 ) = M ⋅ p ( t ) = p ( t ) p(t+1)=M\cdot p(t)=p(t) p(t+1)=Mp(t)=p(t)
p ( t ) p(t) p(t)为该随机游走的平稳分布
对比公式2,可知: r r r就是在网络图上随机游走的平稳分布。

Power Iteration Method

上面讲完我们知道了,现在要找重要度向量,实际上就是要求转移矩阵M的特征值为1的特征值向量。求这个特征向量的方法就是Power Iteration Method,该方法是求绝对值最大的特征值向量的方法:
假设图中有N个网页,且将网页看做节点,把超链接看做有向边。使用Power Iteration求特征向量 r r r的步骤为:
1.初始化(随机选点): r ( 0 ) = [ 1 N , ⋯   , 1 N ] T r^{(0)}=[\cfrac{1}{N},\cdots,\cfrac{1}{N}]^T r(0)=[N1,,N1]T
2.Iteration循环(相当开始随机游走): r ( t + 1 ) = M ⋅ r ( t ) r^{(t+1)}=M\cdot r^{(t)} r(t+1)=Mr(t)
3.循环终止条件(达到平稳分布): ∣ r ( t + 1 ) − r ( t ) ∣ 1 < ϵ |r^{(t+1)}-r^{(t)}|_1<\epsilon r(t+1)r(t)1<ϵ
其中:
r j ( t + 1 ) = ∑ r ( t ) d i r_j^{(t+1)}=\sum\cfrac{r^{(t)}}{d_i} rj(t+1)=dir(t)
下面就用这个方法来重新算一下上面三个网页的例子:
在这里插入图片描述
三个网页,每个网页作为起始点的概率为 1 N = 1 3 \cfrac{1}{N}=\cfrac{1}{3} N1=31
[ r a r b r c ] = [ 1 / 3 1 / 3 1 / 3 ] \begin{bmatrix} r_a\\ r_b\\ r_c \end{bmatrix}=\begin{bmatrix} 1/3\\ 1/3\\ 1/3 \end{bmatrix} rarbrc=1/31/31/3
下面开始在左边乘转移矩阵(https://zs.symbolab.com/solver/matrix-multiply-calculator):
[ 0 1 / 2 1 1 / 2 1 / 2 0 1 / 2 0 0 ] \begin{bmatrix} 0& 1/2 &1\\ 1/2 & 1/2 & 0 \\ 1/2& 0 & 0 \end{bmatrix} 01/21/21/21/20100
开始第1次:
[ r a r b r c ] = [ 1 / 2 1 / 3 1 / 6 ] \begin{bmatrix} r_a\\ r_b\\ r_c \end{bmatrix}=\begin{bmatrix} 1/2\\ 1/3\\ 1/6 \end{bmatrix} rarbrc=1/21/31/6
第2次:
[ r a r b r c ] = [ 1 / 3 5 / 12 1 / 4 ] \begin{bmatrix} r_a\\ r_b\\ r_c \end{bmatrix}=\begin{bmatrix} 1/3\\ 5/12\\ 1/4 \end{bmatrix} rarbrc=1/35/121/4
第3次:
[ r a r b r c ] = [ 11 / 24 3 / 8 1 / 6 ] \begin{bmatrix} r_a\\ r_b\\ r_c \end{bmatrix}=\begin{bmatrix} 11/24\\ 3/8\\ 1/6 \end{bmatrix} rarbrc=11/243/81/6
第4次:
[ r a r b r c ] = [ 17 / 48 5 / 12 11 / 48 ] \begin{bmatrix} r_a\\ r_b\\ r_c \end{bmatrix}=\begin{bmatrix} 17/48\\ 5/12\\ 11/48 \end{bmatrix} rarbrc=17/485/1211/48
第5次:
[ r a r b r c ] = [ 7 / 16 37 / 96 17 / 96 ] \begin{bmatrix} r_a\\ r_b\\ r_c \end{bmatrix}=\begin{bmatrix} 7/16\\ 37/96\\ 17/96 \end{bmatrix} rarbrc=7/1637/9617/96
第6次:
[ r a r b r c ] = [ 71 / 192 79 / 192 7 / 32 ] \begin{bmatrix} r_a\\ r_b\\ r_c \end{bmatrix}=\begin{bmatrix} 71/192\\ 79/192\\ 7/32 \end{bmatrix} rarbrc=71/19279/1927/32
第7次:
[ r a r b r c ] = [ 163 / 384 25 / 64 71 / 384 ] \begin{bmatrix} r_a\\ r_b\\ r_c \end{bmatrix}=\begin{bmatrix} 163/384\\ 25/64\\ 71/384 \end{bmatrix} rarbrc=163/38425/6471/384
第8次:
[ r a r b r c ] = [ 73 / 192 313 / 768 163 / 384 ] \begin{bmatrix} r_a\\ r_b\\ r_c \end{bmatrix}=\begin{bmatrix} 73/192\\ 313/768\\ 163/384 \end{bmatrix} rarbrc=73/192313/768163/384
第9次:
[ r a r b r c ] = [ 213 / 512 605 / 1536 73 / 384 ] \begin{bmatrix} r_a\\ r_b\\ r_c \end{bmatrix}=\begin{bmatrix} 213/512\\ 605/1536\\ 73/384\end{bmatrix} rarbrc=213/512605/153673/384
第10次:
[ r a r b r c ] = [ 1189 / 3072 311 / 768 213 / 1024 ] \begin{bmatrix} r_a\\ r_b\\ r_c \end{bmatrix}=\begin{bmatrix} 1189/3072\\ 311/768\\ 213/1024\end{bmatrix} rarbrc=1189/3072311/768213/1024
第11次:
[ r a r b r c ] = [ 1261 / 3072 811 / 2048 1189 / 6144 ] \begin{bmatrix} r_a\\ r_b\\ r_c \end{bmatrix}=\begin{bmatrix} 1261/3072\\ 811/2048\\ 1189/6144\end{bmatrix} rarbrc=1261/3072811/20481189/6144
( 4811 12288 4955 12288 1261 6144 ) \begin{pmatrix}\frac{4811}{12288}\\ \frac{4955}{12288}\\ \frac{1261}{6144}\end{pmatrix} 12288481112288495561441261
( 3333 8192 4883 12288 4811 24576 ) \begin{pmatrix}\frac{3333}{8192}\\ \frac{4883}{12288}\\ \frac{4811}{24576}\end{pmatrix} 81923333122884883245764811
( 4847 12288 19765 49152 3333 16384 ) \begin{pmatrix}\frac{4847}{12288}\\ \frac{19765}{49152}\\ \frac{3333}{16384}\end{pmatrix} 1228848474915219765163843333
( 39763 98304 13051 32768 4847 24576 ) \begin{pmatrix}\frac{39763}{98304}\\ \frac{13051}{32768}\\ \frac{4847}{24576}\end{pmatrix} 98304397633276813051245764847

最后应该是:
[ r a r b r c ] = [ 2 / 5 2 / 5 1 / 5 ] \begin{bmatrix} r_a\\ r_b\\ r_c \end{bmatrix}=\begin{bmatrix} 2/5\\ 2/5\\ 1/5\end{bmatrix} rarbrc=2/52/51/5

缺点

无法处理以下两种情况:
1.网页只有入度没有出度Dead End
第一种情况中,在经过若干时间步随机游走之后,会使得网页重要性向量趋向于0(leaky rank现象)。原因是在随机游走的时候,不断乘上的转移矩阵是列随机矩阵,其每列和为1,而由网页只有入度没有出度,会导致转移矩阵中某列和为0,因此会使得最后相乘结果为0。
2.网页即使有出度也是指向其本身Spider Traps
第二种情况中,转移矩阵本来就是比较稀疏的,导致网页重要性向量不平滑,由于Spider Traps的存在,会加剧这种不平滑的现象,使得这些指向自己的节点的重要性加大。
第一种情况Dead End是一个大问题;第二种情况Spider Traps不会对收敛性产生影响,但收敛到的PageRank不是我们想要的

解决方法:teleport(随机跳转)
在这里插入图片描述

进阶版本的PageRank

在每个时间点t,随机冲浪者有两个选择:
 沿着一个随机的边去它的相邻网页,概率=𝛽
 Teleport(随机跳转)到任意一个随机选择的其他网页,概率=1-𝛽
 𝛽一般在0.8-0.9之间

可以看到,Teleport可以有1-𝛽的概率跳出Dead End或者Spider Traps,当然每个网页被随机跳转到的概率是一样的。
例如下面三个网页(C节点是Dead End),在这里插入图片描述
其转移矩阵为:
r a r b r c r a 0 1 / 2 0 r b 1 / 2 1 / 2 0 r c 1 / 2 0 0 \begin{matrix} & r_a& r_b &r_c \\ r_a & 0& 1/2 &0\\ r_b & 1/2 & 1/2 & 0\\ r_c & 1/2& 0 & 0 \end{matrix} rarbrcra01/21/2rb1/21/20rc000
加入Teleport后,转移概率矩阵就变成了:
r a r b r c r a 0 1 / 2 1 / 3 r b 1 / 2 1 / 2 1 / 3 r c 1 / 2 0 1 / 3 \begin{matrix} & r_a& r_b &r_c \\ r_a & 0& 1/2 &1/3\\ r_b & 1/2 & 1/2 & 1/3\\ r_c & 1/2& 0 & 1/3 \end{matrix} rarbrcra01/21/2rb1/21/20rc1/31/31/3
注意新的转移矩阵还是列随机矩阵。
这里就得到了PageRank的形式[Brin-Page,1998]:
r j = ∑ i → j β r i d i + ( 1 − β ) 1 N r_j=\sum_{i\rightarrow j}\beta\cfrac{r_i}{d_i}+(1-\beta)\cfrac{1}{N} rj=ijβdiri+(1β)N1
要对Dead End节点进行预处理,两种方式,第一种是直接在转移矩阵中去掉Dead End节点,另外是直接将其转移概率设置为1/N。上式写成矩阵方式:
A = β M + ( 1 − β ) [ 1 N ] N × N (3) A=\beta M+(1-\beta)[\cfrac{1}{N}]_{N\times N}\tag3 A=βM+(1β)[N1]N×N(3)

Teleport例子

就用这个方法来重新算一下上面三个网页的例子:
在这里插入图片描述
M = [ 0 1 / 2 1 1 / 2 1 / 2 0 1 / 2 0 0 ] , [ 1 N ] N × N = [ 1 / 3 1 / 3 1 / 3 1 / 3 1 / 3 1 / 3 1 / 3 1 / 3 1 / 3 ] M=\begin{bmatrix} 0& 1/2 &1\\ 1/2 & 1/2 & 0 \\ 1/2& 0 & 0 \end{bmatrix},[\cfrac{1}{N}]_{N\times N}=\begin{bmatrix} 1/3& 1/3 &1/3\\ 1/3 & 1/3 & 1/3 \\ 1/3& 1/3 & 1/3 \end{bmatrix} M=01/21/21/21/20100,[N1]N×N=1/31/31/31/31/31/31/31/31/3
假设取 β = 0.8 \beta=0.8 β=0.8,将上面的东东代入公式3可得:
0.8 M + ( 1 − 0.8 ) [ 1 N ] N × N = 0.8 [ 0 1 / 2 1 1 / 2 1 / 2 0 1 / 2 0 0 ] + 0.2 [ 1 / 3 1 / 3 1 / 3 1 / 3 1 / 3 1 / 3 1 / 3 1 / 3 1 / 3 ] 0.8M+(1-0.8)[\cfrac{1}{N}]_{N\times N}=0.8\begin{bmatrix} 0& 1/2 &1\\ 1/2 & 1/2 & 0 \\ 1/2& 0 & 0 \end{bmatrix}+0.2\begin{bmatrix} 1/3& 1/3 &1/3\\ 1/3 & 1/3 & 1/3 \\ 1/3& 1/3 & 1/3 \end{bmatrix} 0.8M+(10.8)[N1]N×N=0.801/21/21/21/20100+0.21/31/31/31/31/31/31/31/31/3
= [ 1 15 7 15 13 15 7 15 7 15 1 15 7 15 1 15 1 15 ] =\begin{bmatrix}\cfrac{1}{15}&\cfrac{7}{15}&\cfrac{13}{15}\\ \cfrac{7}{15}&\cfrac{7}{15}&\cfrac{1}{15}\\ \cfrac{7}{15}&\cfrac{1}{15}&\cfrac{1}{15}\end{bmatrix} =1511571571571571511513151151
也就是图变成了:
在这里插入图片描述
其中红色箭头是原来转移矩阵中没有边的部分。
然后就是一样的,三个网页,每个网页作为起始点的概率为 1 N = 1 3 \cfrac{1}{N}=\cfrac{1}{3} N1=31
[ r a r b r c ] = [ 1 / 3 1 / 3 1 / 3 ] \begin{bmatrix} r_a\\ r_b\\ r_c \end{bmatrix}=\begin{bmatrix} 1/3\\ 1/3\\ 1/3 \end{bmatrix} rarbrc=1/31/31/3
开始在左边乘A,一直乘到收敛为止

PageRank计算效率分析

可以看到上面的计算过程中的关键步骤为:
r t + 1 = A ⋅ r t r^{t+1}=A\cdot r^{t} rt+1=Art
A相对于M来说,M是初始的转移矩阵,是比较稀疏的,存储起来还行,但是加上瞬移后,变成A后就是密集矩阵了,每个位置都有值,假如我们有上亿个网页,这个玩意的存储和计算都是问题。
下面是推导过程:


r j = ∑ i → j β r i d i + ( 1 − β ) 1 N r_j=\sum_{i\rightarrow j}\beta\cfrac{r_i}{d_i}+(1-\beta)\cfrac{1}{N} rj=ijβdiri+(1β)N1
A = β M + ( 1 − β ) [ 1 N ] N × N A=\beta M+(1-\beta)[\cfrac{1}{N}]_{N\times N} A=βM+(1β)[N1]N×N

开始:
r = A ⋅ r , where  A i j = β M i j + 1 − β N r i = ∑ j = 1 N A i j ⋅ r j = ∑ j = 1 N [ β M i j + 1 − β N ] ⋅ r j = ∑ j = 1 N β M i j ⋅ r j + ∑ j = 1 N 1 − β N r j , 由 于 ∑ r j = 1 = ∑ j = 1 N β M i j ⋅ r j + 1 − β N = β ∑ j = 1 N M i j ⋅ r j + 1 − β N r = β M ⋅ r + [ 1 − β N ] N \begin{aligned}r&=A\cdot r,\text{where } A_{ij}=\beta M_{ij}+\cfrac{1-\beta}{N} \\ r_i&=\sum_{j=1}^NA_{ij}\cdot r_j \\ &=\sum_{j=1}^N\left[\beta M_{ij}+\cfrac{1-\beta}{N}\right]\cdot r_j\\ &=\sum_{j=1}^N\beta M_{ij}\cdot r_j+\sum_{j=1}^N\cfrac{1-\beta}{N} r_j,由于\sum r_j=1\\ &=\sum_{j=1}^N\beta M_{ij}\cdot r_j+\cfrac{1-\beta}{N}\\ &=\beta\sum_{j=1}^N M_{ij}\cdot r_j+\cfrac{1-\beta}{N}\\ r&=\beta M\cdot r+[\cfrac{1-\beta}{N}]_N\end{aligned} rrir=Ar,where Aij=βMij+N1β=j=1NAijrj=j=1N[βMij+N1β]rj=j=1NβMijrj+j=1NN1βrj,rj=1=j=1NβMijrj+N1β=βj=1NMijrj+N1β=βMr+[N1β]N
其中 [ 1 − β N ] N [\cfrac{1-\beta}{N}]_N [N1β]N是N个元素都为 1 − β N \cfrac{1-\beta}{N} N1β的向量


可以看到结果不需要用稠密矩阵A,而是用稀疏矩阵M来求解r(M中的Dead End要进行处理,有Dead End转移矩阵每列和会小于1 ,因此要对该列进行重新归一化。)

最终版本的完整算法

输入:网络图 G G G和瞬移参数 β \beta β,图中可以出现Dead Ends和Spider Traps
输出:网页的重要程度PageRank向量 r r r
1.设置在第一个时间不的初始化PageRank向量: r j ( 0 ) = 1 N , t = 1 r_j^{(0)}=\cfrac{1}{N},t=1 rj(0)=N1,t=1
2.开始循环,直到 ∑ j ∣ r j ( t ) − r j ( t − 1 ) ∣ < ϵ \sum_j|r_j^{(t)}-r_j^{(t-1)}|<\epsilon jrj(t)rj(t1)<ϵ
2.1 ∀ j : r ′ j ( t ) = ∑ i → j β r i ( t − 1 ) d i if  j  入度为0:  r ′ j ( t ) = 0 2.1\quad\forall j:{r'}_j^{(t)}=\sum_{i\rightarrow j}\beta\cfrac{r_i^{(t-1)}}{d_i}\\ \text{if } j \text{ 入度为0: }{r'}_j^{(t)}=0 2.1j:rj(t)=ijβdiri(t1)if j 入度为0: rj(t)=0
2.2 ∀ j : r j ( t ) = r ′ j ( t ) + 1 − S N S = ∑ j r ′ j ( t ) 2.2\quad\forall j:r_j^{(t)}={r'}_j^{(t)}+\cfrac{1-S}{N}\\ S=\sum_j{r'}_j^{(t)} 2.2j:rj(t)=rj(t)+N1SS=jrj(t)
2.3 t = t + 1 2.3\quad t=t+1 2.3t=t+1

基于主题的Topic-specific PageRank

原始的pagerank算法只能提供通用的importance score。
目标:不只是根据importance score来评估网页,而是加上该网页离某个主题的距离,例如运动、娱乐、历史等。
就是要考虑各种权重。

方法

改变随机转移的网页集合
·原始PageRank:任意网页
·基于主题的PageRank:和该主题有关的事先选择好的网页集合(teleport set)
有偏随机游走(Bias the Random Walk)
·冲浪者随机转移到在主题有关的teleport set S S S中的一个网页
·每一个不同的teleport set S S S,会得到一个对应的PageRank向量 r s r_s rs

矩阵表达

只需要改变原始PageRank中的随机转移的部分
A i j = { β M i j + ( 1 − β ) ∣ S ∣  if  i ∈ S β M i j + 0  otherwise  A_{ij}=\begin{cases} \beta M_{ij}+ {\color{Red}\cfrac{(1-\beta)}{|S|} }& \text{ if } i\in S \\ \beta M_{ij}+0 & \text{ otherwise } \end{cases} Aij=βMij+S(1β)βMij+0 if iS otherwise 
可以这样理解,随机冲浪者不再随机跳转到所有网页了,而是随机跳转到所有网页的某个子集合 S S S,这个子集合和某个主题有关。

作业

PageRank Formulation

给定有向图 G = ( V , E ) G=(V,E) G=(V,E)
V = { 1 , 2 , 3 , 4 , 5 } V=\{1,2,3,4,5\} V={1,2,3,4,5}
E = { ( 1 , 2 ) , ( 1 , 3 ) , ( 2 , 1 ) , ( 2 , 3 ) , ( 3 , 4 ) , ( 3 , 5 ) , ( 4 , 5 ) , ( 5 , 4 ) } E=\{(1,2),(1,3),(2, 1),(2,3),(3,4),(3,5), (4, 5), (5, 4)\} E={(1,2),(1,3),(2,1),(2,3),(3,4),(3,5),(4,5),(5,4)}
在这里插入图片描述

1.给出 G G G的邻接矩阵,以及对应的随机转移矩阵 M M M,由于没有给权重,把每个节点权重看为1:
邻接矩阵
[ 0 1 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 ] \begin{bmatrix}0 & 1 & 1& 0 & 0\\ 1& 0 & 1 & 0&0 \\ 0& 0 & 0& 1 & 1\\ 0& 0 & 0 & 0 &1 \\ 0& 0 &0 & 1 & 0 \end{bmatrix} 0100010000110000010100110
随机转移矩阵 M M M先把出入的component画一下,再按 r j = ∑ i → j r i d i (1) r_j=\sum_{i\rightarrow j}\cfrac{r_i}{d_i}\tag1 rj=ijdiri(1)
在这里插入图片描述
计算每个节点的in-component,结果:
[ 0 1 / 2 0 0 0 1 / 2 0 0 0 0 1 / 2 1 / 2 0 0 0 0 0 1 / 2 0 1 0 0 1 / 2 1 0 ] \begin{bmatrix} 0 & 1/2 & 0& 0 & 0\\ 1/2& 0 & 0 & 0&0 \\ 1/2& 1/2 & 0& 0 & 0\\ 0& 0 & 1/2 & 0 &1 \\ 0& 0 &1/2 & 1 & 0 \end{bmatrix} 01/21/2001/201/2000001/21/20000100010
2.假设瞬移概率 ( 1 − β ) (1-\beta) (1β)为0.2,写出计算图G的PageRank的公式,并计算出结果
5个网页,每个网页作为起始点的概率为 1 N = 1 5 \cfrac{1}{N}=\cfrac{1}{5} N1=51

新的转移矩阵A计算公式如下:
A = β M + ( 1 − β ) [ 1 N ] N × N (3) A=\beta M+(1-\beta)[\cfrac{1}{N}]_{N\times N}\tag3 A=βM+(1β)[N1]N×N(3)
A = 0.8 [ 0 1 / 2 0 0 0 1 / 2 0 0 0 0 1 / 2 1 / 2 0 0 0 0 0 1 / 2 0 1 0 0 1 / 2 1 0 ] + 0.2 [ 1 / 5 1 / 5 1 / 5 1 / 5 1 / 5 1 / 5 1 / 5 1 / 5 1 / 5 1 / 5 1 / 5 1 / 5 1 / 5 1 / 5 1 / 5 1 / 5 1 / 5 1 / 5 1 / 5 1 / 5 1 / 5 1 / 5 1 / 5 1 / 5 1 / 5 ] = [ 1 25 11 25 1 25 1 25 1 25 11 25 1 25 1 25 1 25 1 25 11 25 11 25 1 25 1 25 1 25 1 25 1 25 11 25 1 25 21 25 1 25 1 25 11 25 21 25 1 25 ] A=0.8\begin{bmatrix} 0 & 1/2 & 0& 0 & 0\\ 1/2& 0 & 0 & 0&0 \\ 1/2& 1/2 & 0& 0 & 0\\ 0& 0 & 1/2 & 0 &1 \\ 0& 0 &1/2 & 1 & 0 \end{bmatrix}+0.2\begin{bmatrix} 1/5 & 1/5 & 1/5& 1/5 & 1/5\\ 1/5 & 1/5 & 1/5& 1/5 & 1/5 \\ 1/5 & 1/5 & 1/5& 1/5 & 1/5\\ 1/5 & 1/5 & 1/5& 1/5 & 1/5\\ 1/5 & 1/5 & 1/5& 1/5 & 1/5 \end{bmatrix}\\ =\begin{bmatrix}\cfrac{1}{25}&\cfrac{11}{25}&\cfrac{1}{25}&\cfrac{1}{25}&\cfrac{1}{25}\\ \cfrac{11}{25}&\cfrac{1}{25}&\cfrac{1}{25}&\cfrac{1}{25}&\cfrac{1}{25}\\ \cfrac{11}{25}&\cfrac{11}{25}&\cfrac{1}{25}&\cfrac{1}{25}&\cfrac{1}{25}\\ \cfrac{1}{25}&\cfrac{1}{25}&\cfrac{11}{25}&\cfrac{1}{25}&\cfrac{21}{25}\\ \cfrac{1}{25}&\cfrac{1}{25}&\cfrac{11}{25}&\cfrac{21}{25}&\cfrac{1}{25}\end{bmatrix} A=0.801/21/2001/201/2000001/21/20000100010+0.21/51/51/51/51/51/51/51/51/51/51/51/51/51/51/51/51/51/51/51/51/51/51/51/51/5=25125112511251251251125125112512512512512512511251125125125125125212512512512521251

5个网页,每个网页作为起始点的概率为 1 N = 1 5 \cfrac{1}{N}=\cfrac{1}{5} N1=51
[ r 1 r 2 r 3 r 4 r 5 ] = [ 1 / 5 1 / 5 1 / 5 1 / 5 1 / 5 ] \begin{bmatrix} r_1\\ r_2\\ r_3\\ r_4\\ r_5\end{bmatrix}=\begin{bmatrix} 1/5\\ 1/5\\ 1/5\\ 1/5\\ 1/5 \end{bmatrix} r1r2r3r4r5=1/51/51/51/51/5
在初始矩阵 R 0 R_0 R0左边不断乘A,直到收敛
在这里插入图片描述
[ r 1 r 2 r 3 r 4 r 5 ] 11 = [ 0.055448 0.055448 0.077627 0.321597 0.321597 ] \begin{bmatrix} r_1\\ r_2\\ r_3\\ r_4\\ r_5\end{bmatrix}_{11}=\begin{bmatrix} 0.055448\\ 0.055448\\ 0.077627\\ 0.321597\\ 0.321597\end{bmatrix} r1r2r3r4r511=0.0554480.0554480.0776270.3215970.321597
3.假设主题子集为 { 1 , 2 } \{1,2\} {1,2},重新计算图G的PageRank
主题子集的转移矩阵计算公式为:
A i j = { β M i j + ( 1 − β ) ∣ S ∣  if  i ∈ S β M i j + 0  otherwise  A_{ij}=\begin{cases} \beta M_{ij}+ {\color{Red}\cfrac{(1-\beta)}{|S|} }& \text{ if } i\in S \\ \beta M_{ij}+0 & \text{ otherwise } \end{cases} Aij=βMij+S(1β)βMij+0 if iS otherwise 
A = 0.8 [ 0 1 / 2 0 0 0 1 / 2 0 0 0 0 1 / 2 1 / 2 0 0 0 0 0 1 / 2 0 1 0 0 1 / 2 1 0 ] + 0.2 [ 1 / 2 1 / 2 0 0 0 1 / 2 1 / 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] = [ 33 250 113 250 4 125 4 125 4 125 113 250 33 250 4 125 4 125 4 125 113 250 113 250 4 125 4 125 4 125 33 250 33 250 44 125 4 125 84 125 33 250 33 250 44 125 84 125 4 125 ] A=0.8\begin{bmatrix} 0 & 1/2 & 0& 0 & 0\\ 1/2& 0 & 0 & 0&0 \\ 1/2& 1/2 & 0& 0 & 0\\ 0& 0 & 1/2 & 0 &1 \\ 0& 0 &1/2 & 1 & 0 \end{bmatrix}+0.2\begin{bmatrix} 1/2 & 1/2 & 0& 0 & 0\\ 1/2 & 1/2 & 0& 0 & 0 \\ 0 & 0 & 0& 0 & 0\\ 0 & 0 & 0& 0 & 0\\ 0 & 0 & 0& 0 & 0 \end{bmatrix}\\ =\begin{bmatrix}\cfrac{33}{250}&\cfrac{113}{250}&\cfrac{4}{125}&\cfrac{4}{125}&\cfrac{4}{125}\\ \cfrac{113}{250}&\cfrac{33}{250}&\cfrac{4}{125}&\cfrac{4}{125}&\cfrac{4}{125}\\ \cfrac{113}{250}&\cfrac{113}{250}&\cfrac{4}{125}&\cfrac{4}{125}&\cfrac{4}{125}\\ \cfrac{33}{250}&\cfrac{33}{250}&\cfrac{44}{125}&\cfrac{4}{125}&\cfrac{84}{125}\\ \cfrac{33}{250}&\cfrac{33}{250}&\cfrac{44}{125}&\cfrac{84}{125}&\cfrac{4}{125}\end{bmatrix} A=0.801/21/2001/201/2000001/21/20000100010+0.21/21/20001/21/2000000000000000000=2503325011325011325033250332501132503325011325033250331254125412541254412544125412541254125412584125412541254125841254
4.给出5个范例 ( S , v ) ,  where  S ⊆ V  and  v ∈ V (S,v), \text{ where }S\subseteq V\text{ and }v\in V (S,v), where SV and vV,v对于子集S的PageRank为0,解释原因。

Dead ends in PageRank computation

懒得翻译了,直接上题目。。。
Let the matrix of the Web M M M be an n n n-by- n n n matrix, where n is the number of Web pages. The entry m i j m_{ij} mij in row i i i and column j j j is 0, unless there is an arc from node (page) j j j to node i i i. In that case, the value of m i j m_{ij} mij is 1 k \cfrac{1}{k} k1 , where k k k is the number of arcs (links) out of node j j j. Notice that if node j j j has k > 0 k > 0 k>0 arcs out, then column j j j has k k k values of 1 k \cfrac{1}{k} k1 and the rest 0’s. If node j j j is a dead end (i.e.,it has zero arcs out), then column j j j is all 0’s.

Let r = [ r 1 , r 2 , ⋯   , r n ] T r = [r_1, r_2,\cdots, r_n]^T r=[r1,r2,,rn]T be (an estimate of) the PageRank vector; that is, r i r_i ri is the estimate of the PageRank of node i i i. Definne w ( r ) w(r) w(r) to be the sum of the components of r r r; that is w ( r ) = ∑ i = 1 n r i w(r)=\sum_{i=1}^nr_i w(r)=i=1nri

In one iteration of the PageRank algorithm, we compute the next estimate r ′ r' r of the PageRank as: r ′ = M r r'= Mr r=Mr. Specifically, for each i i i we compute r i ′ = ∑ j = 1 n M i j r j r'_i=\sum_{j=1}^nM_{ij}r_j ri=j=1nMijrj. Define w ( r ′ ) w(r') w(r) to be the sum of components of r r r that is w ( r ′ ) = ∑ i = 1 n r i ′ w(r')=\sum_{i=1}^nr'_i w(r)=i=1nri. You may use D (the set of dead nodes) in your equation.

1.假设图(网络)中没有Dead End。 证明 w ( r ′ ) = w ( r ) w(r')=w(r) w(r)=w(r).

2.假设图(网络)中没有Dead End,且瞬移概率 1 − β , 0 < β < 1 1-\beta, 0<\beta<1 1β,0<β<1。预测下一个重要性向量的公式为:
r i ′ = β ∑ j = 1 n M i j r j + ( 1 − β ) / n r'_i=\beta\sum_{j=1}^nM_{ij}r_j+(1-\beta)/n ri=βj=1nMijrj+(1β)/n
什么情况下 w ( r ′ ) = w ( r ) w(r')=w(r) w(r)=w(r),给出证明步骤。

3.瞬移概率为 1 − β , 0 < β < 1 1-\beta, 0<\beta<1 1β,0<β<1,但网络中存在Dead End。
对于非Dead End,每个节点j的跳转到其他节点的概率为: ( 1 − β ) r j / n (1-\beta)r_j/n (1β)rj/n
对于Dead End,每个节点j的跳转到其他节点的概率为: r j / n r_j/n rj/n
给出 r i ′ r'_i ri的公式,并证明 w ( r ′ ) = 1 w(r')=1 w(r)=1

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oldmao_2000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值