如何优雅的理解PageRank

博客引流

一口气开始别憋气

终于Tex调好了 刚好最近又多次提及PageRank 于是~

目测这一系列 有个两三篇blog

PageRank 是 由佩奇(Larry Page)等人提出 的 Google 最为有名的技术之一
我 乔治 甘拜下风

PageRank 是一种基于随机游走 的 评价网站权值的算法

言而总之 PageRank是一种十分重要的算法 不管在学术界 还是在产业界

Node Similarity & Proximity

在介绍PageRank 需要先来提一下 什么叫节点相似

假设在一个有向图集合G(V, E)中研究两个节点u, v之间的相关性

image

上图, 我们可以从感性的认识上判断u, v之间的相似高要比u, w之间的相似度要高

那如何来具体定义相似度呢

Common neighbor

我们很容易可以想到 好像 一个节点的邻居集合可以表征这个节点的周围结构

实际上这就是CN算法(common neighbor)

规定CN(u, v)=nei(u)\cap nei(v)

Jaccard

单纯的数值对于估计一个节点的相似度 可能存在标准不统一的情况

故jaccard在CN的基础上做了一个归一化的处理

得到Jaccard=\dfrac{CN(u, v)}{nei(u)\cup nei(v)}

Adamic-Adar Index

Adamic-Adar Index=\sum \dfrac{1}{logN(v)}

当然还可以按计算时用到部分点还是全部点来进行分类

  • local
    • Common Neighbors(CN), Jaccard, Adamic-Adar Index
  • grobal
    • Personalized PageRank(PPR), SimRank, Katz

事实上 节点相似度在生产过程中有极强的落地场景

尤其是和社交网络分析相关的好友推荐

另外 还可以运用在Top-k的关系发现当中

传言王者荣耀的好友推荐 就是用PPR做的

最后需要提一句 Node Similarity\not = Node Proximity

一般而言, sim(u, v) = sim(v, u), 但p(u, v) \not = p(v, u)

Naive PageRank

PR(u)=\sum\limits_{v \in N_{in}(u)}^N \dfrac{1}{N_{out}(v)}PR(v)

S.t. PR(u) \ge 0, \sum PR = 1

直观上看PR值的计算是一个迭代的过程,通过出度把PR值分配给下游节点

但Naive PageRank在计算的过程中会出现一些问题

\vec {PR} = P^T \cdot\vec{PR},其中P为行向量

\vec {PR}^T = \vec{PR} ^T \cdot P

因为上述PageRank的定义是一个递归过程,所以需要一个递归停止条件-Error

max|\vec {PR}^{(l+1)}(i) - \vec {PR}^{(l)}(i)|\le \epsilon

其实严格上还需要证明上述递推关系的收敛性 , 事实上Naive PageRank是不一定收敛的

当然还有解的存在性,唯一性 等等

Flaw 1 Multiple Solutions

image

对于图示这种情况 PR的值其实有无数钟取法

只要满足PR_a = PR_b = PR_c, PR_p = PR_q = PR_r

Flaw 2 Link Spam

还是上面的例子a, b, c 此时PR_a = PR_b = PR_c = \dfrac{1}{3}

如果把c->a的边改为c->b, 迭代后就会造成 PR_a = 0, PR_b = PR_c = \dfrac{1}{2}

当一个平衡建立之后,如果因为少数几个节点的异常更改,就会造成全部PR值的改变,这就很容易导致少数几个节点操控整个系统的PR值

image

Flaw 3 Dead Ends and Spider Traps

其实仔细想一想 Flaw2是因为其他节点变得没有入度造成的

那么如果有那么一些点是只入不出的,则会造成PR值随着迭代向该点聚集

这样的点 可以看做 强连通子图

PageRank

为解决上述的问题 佩奇 提出 PR() =\alpha \sum\limits_{v \in N_{in}(u)}^N \dfrac{1}{N_{out}(v)}PR(v) + (1-\alpha) \dfrac{1}{n}

相对于Naive PageRank 相对于做了一个平滑处理 给一个偏置量

  • Flaw 1. PR(a) = PR(b) = PR(c) = PR(p) = PR(q) = PR(r) = \dfrac{1}{6}
  • Flaw 2. 减少出现Link Spam的可能性
  • Flaw 3. Doesn’t help ☹
    • 移除没有出度的节点或者结构
    • 加一条回边
image

正如前面所说的,因为PageRank define by 递归

所以,我们需要证明解的存在性,唯一性,收敛性,此处省略若干证明

收敛性: 我们用矩阵形式表示\pi = \vec {PR}

则根据上述定义可得,\pi_v^{(t)}= (1-\epsilon)\sum\limits_{(w,v) \in E} \dfrac{\pi_w^{(t-1)}}{d_w}+\dfrac{\epsilon}{n}

Let Err(t)=\sum\limits_v|\pi_v^{(t)}-\pi_v^*|

|\pi_v^{(t)}-\pi_v^*| \le (1-\epsilon)\sum\limits_{(w,v) \in E} \dfrac{\pi_w^{(t-1)} - \pi_w^*}{d_w}

Err(t)=\sum\limits_v|\pi_v^{(t)}-\pi_v^*|\le (1-\epsilon)\sum\limits_w [\pi_w^{(t-1)} - \pi_w^* ]\le(1-\epsilon)Err(t-1)\le(1-\epsilon)^tErr(0)

0<\epsilon <1时,上述递推关系式具有收敛性

把第t轮递推式子依次带入t-1, t-2, ...

得到\vec{PR}^{l \cdot T}=\alpha ^l\vec{PR}^{0\cdot T}P^l+\dfrac{1-\alpha}{n}\vec{1}^T(\alpha^{l-1}\cdot P^{l-1}+\cdot \cdot \cdot+\alpha P + I)

可以看出当迭代轮数l比较大时,\alpha ^l会是一个小量,造成PR只剩下第二项

\vec{PR_v}^T=\dfrac{1-\alpha}{n}\vec{1}^T(\alpha^{l-1}\cdot P^{l-1}+\cdot \cdot \cdot+\alpha P + I)

对于这个式子的含义学术界有很多解释

  • Random-Walk: 看作是以概率\alpha留下, 1-\alpha转移随机游走的概率值
    • PR(v) = # walks ends at \dfrac{v}{nr}
  • 看做是一个长时间随机游走的结果
  • \alpha-Walk: 与Random Walk一致, 看做是一个以概率\alpha留下, 1-\alpha转移随机游走过程,约定经过某个点,该点的score(w) +=(1-\alpha)
    • \alpha-Walk相对于Random Walk,方差更小,复杂度很低,实际效果更好,是目前研究的热点方向

Next maybe Talk About PPR/SimRank or maybe Top-k PPR

一口气结束 hhh

Reference

  1. The PageRank Citation Ranking: Bringing Order to the Web
  2. Fast Distributed PageRank Computation
  3. PageRank and The Random Surfer Model
  4. bidirectional-random-walk, 大图的随机游走( 个性化 PageRank ) 算法
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容