PageRank算法在社交网络上的应用

PageRank算法介绍

pagerank算法的核心思想是,计算一个用户随机点击一个网站然后不停点击从而到达各个网站的概率。而一个网站的打开概率又取决于那些指向他自己的那些网站的概率,所以这个概率的计算是一个不断迭代的过程。

一个简单的例子:B,C,D同时指向A,我们认为,BCD的PR是0.25,那么A的PR值就是0.75
这里写图片描述

但是,如下图,如果网站D有3个外链,那么你从网站D跳到网站A的概率就不一定是100%了,这是我们要给它做一个权重衰减,我们给PR值除以3
这里写图片描述

这个模型可以写作以下公式:
P R ( u ) = ∑ v ∈ B u P R ( v ) L ( v ) PR(u) = \sum_{v \in B_u} \frac{PR(v)}{L(v)} PR(u)=vBuL(v)PR(v)
其中L表示结点的出度, B u B_u Bu是所有指向u的结点。然而一个用户在点击网页的时候是不会无限点下去了,他最终肯定会在某个结点上停止,于是,我们可以引入一个damping factor来表达这种关系,当你计算PR的时候,要乘一个衰减的系数来认为有一定概率会在上一个页面停止,而不会跳转到这个页面来。于是PR的公式可以改写成这样:
P R ( p i ) = 1 − d N + d ∑ p j ∈ M ( p i ) P R ( p j ) L ( p j ) PR(p_i) = \frac{1-d}{N} + d \sum_{p_j \in M(p_i)} \frac{PR (p_j)}{L(p_j)} PR(pi)=N1d+dpjM(pi)L(pj)PR(pj)
d就是damping factor,d一般取0.85,N是结点数量,那个1-d/N是为了保证这个概率值在0到1之间。这个表达式可以写成矩阵的形式:
R = [ P R ( p 1 ) P R ( p 2 ) ⋮ P R ( p N ) ] \mathbf{R} = \begin{bmatrix} PR(p_1) \\ PR(p_2) \\ \vdots \\ PR(p_N) \end{bmatrix} R=PR(p1)PR(p2)PR(pN)

R = [ ( 1 − d ) / N ( 1 − d ) / N ⋮ ( 1 − d ) / N ] + d [ ℓ ( p 1 , p 1 ) ℓ ( p 1 , p 2 ) ⋯ ℓ ( p 1 , p N ) ℓ ( p 2 , p 1 ) ⋱ ⋮ ⋮ ℓ ( p i , p j ) ℓ ( p N , p 1 ) ⋯ ℓ ( p N , p N ) ] R \mathbf{R} = \begin{bmatrix} {(1-d)/ N} \\ {(1-d) / N} \\ \vdots \\ {(1-d) / N} \end{bmatrix} +d \begin{bmatrix} \ell(p_1,p_1) & \ell(p_1,p_2) & \cdots & \ell(p_1,p_N) \\ \ell(p_2,p_1) & \ddots & & \vdots \\ \vdots & & \ell(p_i,p_j) & \\ \ell(p_N,p_1) & \cdots & & \ell(p_N,p_N) \end{bmatrix} \mathbf{R} R=(1d)/N(1d)/N(1d)/N+d(p1,p1)(p2,p1)(pN,p1)(p1,p2)(pi,pj)(p1,pN)(pN,pN)R

其中 l ( p i , p j ) l(p_i,p_j) l(pi,pj)表示结点 p i p_i pi p j p_j pj的影响程度,比如在例子2,里面, l ( B , A ) = 1 / 2 l(B,A)=1/2 l(B,A)=1/2.写成矩阵形式,这里P其实相当于邻接矩阵:
R = d P R + 1 − d N 1 \mathbf{R} = d P\mathbf{R} + \frac{1-d}{N} \mathbf{1} R=dPR+N1d1
我们只要求解这个R,就能得到每个结点的PR值。

Ranking Users in Social Networks with Higher-Order Structures

这里介绍一种改进的方法,这是在社交网络上的应用,在计算PR的时候,其实我们默认了,在一个网站上以相同概率跳转到其他的结点,但这其实在社交网络里面是有问题的。看下面的例子。

用户1同时关注了2,3,4在三个用户,但是,很显然,用户1其实是更信任用户2多过用户4的,因为用户1同时关注了2跟3.
这里写图片描述

所以我们要做的就是,考虑这种三角结构:
这里写图片描述

一共有7种。举个例子,当我们考虑M6时。
这里写图片描述

对于结点3而言,M6结构一共出现了2次,分别是153,123.所以矩阵第1行第3列等于2.

上面的这个考虑了三角结构的邻接矩阵可以用下面的公式计算。其中 B = W ⊙ W T B=W\odot W^T B=WWT, U = W − B U=W-B U=WB,其中 ⊙ \odot 是对应元素相乘
这里写图片描述

最后对于PR的计算公式:
R = d P R + 1 − d N 1 \mathbf{R} = d P\mathbf{R} + \frac{1-d}{N} \mathbf{1} R=dPR+N1d1
我们用
H M k = α W + ( 1 − α ) W M k H_{M_k}=\alpha W+(1-\alpha)W_{M_k} HMk=αW+(1α)WMk
来替换掉P就能取得很好的效果。

扩展资料

其实PR只是目前页面排序的一个小小的权重,这是目前谷歌最新的企鹅算法

参考资料

Zhao, Huan, et al. “Ranking Users in Social Networks with Higher-Order Structures.” (AAAI 2018)

PageRank-wiki

作为分享主义者(sharism),本人所有互联网发布的图文均遵从CC版权,转载请保留作者信息并注明作者a358463121专栏:http://blog.csdn.net/a358463121,如果涉及源代码请注明GitHub地址:https://github.com/358463121/。商业使用请联系作者。

  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值