pagerank
博客引流
一口气
开始别憋气
终于Tex调好了 刚好最近又多次提及pagerank 于是~
目测这一系列 有个两三篇blog
PageRank 是 由佩奇(Larry Page)
等人提出 的 Google 最为有名的技术之一
我 乔治 甘拜下风
言而总之 PageRank是一种十分重要的算法 不管在学术界 还是在产业界
Node Similarity & Proximity
在介绍PageRank 需要先来提一下 什么叫节点相似
假设在一个有向图集合G(V, E)中研究两个节点u, v之间的相关性
上图, 我们可以从感性的认识上判断u, v之间的相似高要比u, w之间的相似度要高
那如何来具体定义相似度呢
Common neighbor
我们很容易可以想到 好像 一个节点的邻居集合可以表征这个节点的周围结构
实际上这就是CN算法(common neighbor)
规定CN(u,v)=nei(u)∩nei(v)
Jaccard
单纯的数值对于估计一个节点的相似度 可能存在标准不统一的情况
故jaccard在CN的基础上做了一个归一化的处理
得到Jaccard=nei(u)∪nei(v)CN(u,v)
Adamic-Adar Index
Adamic−AdarIndex=∑logN(v)1
当然还可以按计算时用到部分点还是全部点来进行分类
local
- Common Neighbors(CN), Jaccard, Adamic-Adar Index
grobal
- personalized PageRank(PPR), SimRank, Katz
事实上 节点相似度在生产过程中有极强的落地场景
另外 还可以运用在Top-k的关系发现当中
传言王者荣耀的好友推荐 就是用PPR做的
最后需要提一句 NodeSimilarity̸=NodeProximity
一般而言, sim(u,v)=sim(v,u), 但p(u,v)̸=p(v,u)
Naive PageRank
PR(u)=v∈Nin(u)∑NNout(v)1PR(v)
S.t. PR(u)≥0, ∑PR=1
直观上看pr值的计算是一个迭代的过程,通过出度把PR值分配给下游节点
但Naive PageRank在计算的过程中会出现一些问题
PR=PT⋅PR,其中P为行向量
故PRT=PRT⋅P
因为上述PageRank的定义是一个递归过程,所以需要一个递归停止条件-ERROR
max∣PR(l+1)(i)−PR(l)(i)∣≤ϵ
其实严格上还需要证明上述递推关系的收敛性 , 事实上Naive PageRank是不一定收敛的
当然还有解的存在性,唯一性 等等
Flaw 1 Multiple Solutions
对于图示这种情况 PR的值其实有无数钟取法
只要满足PRa=PRb=PRc,PRp=PRq=PRr
Flaw 2 Link Spam
还是上面的例子a, b, c 此时PRa=PRb=PRc=31
如果把c−>a的边改为c−>b, 迭代后就会造成 PRa=0,PRb=PRc=21
当一个平衡建立之后,如果因为少数几个节点的异常更改,就会造成全部PR值的改变,这就很容易导致少数几个节点操控整个系统的PR值
Flaw 3 Dead Ends and Spider Traps
其实仔细想一想 Flaw2是因为其他节点变得没有入度造成的
那么如果有那么一些点是只入不出的,则会造成PR值随着迭代向该点聚集
这样的点 可以看做 强连通子图
PageRank
为解决上述的问题 佩奇
提出 PR()=αv∈Nin(u)∑NNout(v)1PR(v)+(1−α)n1
相对于Naive PageRank 相对于做了一个平滑处理 给一个偏置量
- Flaw 1. PR(a)=PR(b)=PR(c)=PR(p)=PR(q)=PR(r)=61
- Flaw 2. 减少出现Link Spam的可能性
- Flaw 3. Doesn’t help ☹
- 移除没有出度的节点或者结构
- 加一条回边
正如前面所说的,因为PageRank define by 递归
所以,我们需要证明解的存在性,唯一性,收敛性,此处省略若干证明
收敛性: 我们用矩阵形式表示π=PR
则根据上述定义可得,πv(t)=(1−ϵ)(w,v)∈E∑dwπw(t−1)+nϵ
Let Err(t)=v∑∣πv(t)−πv∗∣
而∣πv(t)−πv∗∣≤(1−ϵ)(w,v)∈E∑dwπw(t−1)−πw∗
则Err(t)=v∑∣πv(t)−πv∗∣≤(1−ϵ)w∑[πw(t−1)−πw∗]≤(1−ϵ)Err(t−1)≤(1−ϵ)tErr(0)
当0<ϵ<1时,上述递推关系式具有收敛性
把第t轮递推式子依次带入t-1, t-2, …
得到PRl⋅T=αlPR0⋅TPl+n1−α1T(αl−1⋅Pl−1+⋅⋅⋅+αP+I)
可以看出当迭代轮数l比较大时,αl会是一个小量,造成PR只剩下第二项
故PRvT=n1−α1T(αl−1⋅Pl−1+⋅⋅⋅+αP+I)
对于这个式子的含义学术界有很多解释
- Random−Walk: 看作是以概率α留下, 1−α转移随机游走的概率值
- PR(v) = # walks ends at nrv
- 看做是一个长时间随机游走的结果
- α−Walk: 与Random Walk一致, 看做是一个以概率α留下, 1−α转移随机游走过程,约定经过某个点,该点的score(w)+=(1−α)
- α−Walk相对于Random Walk,方差更小,复杂度很低,实际效果更好,是目前研究的热点方向
Next maybe Talk About PPR/SimRank or maybe Top-k PPR
好 一口气
结束 hhh
Reference
- The PageRank Citation Ranking: Bringing order to the Web
- Fast Distributed PageRank Computation
- PageRank and The Random Surfer Model
- bidirectional-random-walk, 大图的随机游走( 个性化 PageRank ) 算法
相关阅读
正文共835个字,8
作者简介:Treant 人工智能爱好者社区专栏作者博客专栏:https://www.cnblogs.com/en-heng 引言 PageRank是Sergey Brin与Larry Pa
PageRank算法介绍 pagerank算法的核心思想是,计算一个用户随机点击一个网站然后不停点击从而到达各个网站的概率。而一个网站的打
站长之家(Chinaz.com)10月8日消息 早在2013年10月份,谷歌工程师Matt Cutts便曾暗示13年内谷歌不会再对TBPR(ToolBar PageRank)进行更新
就在一年前,整个搜索引擎营销及优化行业和各大网络营销论坛一致认定,Google提供的PR(PageRank)指标应该从排名关键算法中除名。如今,一