abstract

本节讲到的东西不涉及DeepLearning

treat the web as a graph

page rank的目的是给作为node的网页排序

We will cover the following Link Analysis approaches to compute the importance of nodes in a graph:

  1. PageRank
  2. Personalized PageRank (PPR)
  3. Random Walk with Restarts

3种方法是类似的,是逐渐改进的。目的是计算node的importance


Idea: Links as votes

  1. Page is more important if it has more links
  2. In-coming link count more than out-going link

Notions and formular

Rank vector r r r

长度为node(web page)数量,其中每个值 r i r_i ri​为第i个节点的importance, d i d_i di​表示第i个节点的out link数量

  1. If page i with importance r i r_i ri​ has d i d_i di​ out-links, each link gets r i d i \frac{r_i}{d_i} di​ri​​ votes(importance)
  2. Page j’s own importance r j r_j rj​ is the sum of the votes on its inlinks:
    r j = ∑ i → j r i d i r_j=\sum\limits_{i \rightarrow j} \frac{r_i}{d_i} rj​=i→j∑​di​ri​​
  3. ∑ i r i = 1 \sum_i r_i = 1 ∑i​ri​=1,importance大小是相对的,没有绝对的实际权重。

下面两幅图是例子:

理解

  1. A page is important if it is pointed to by other important pages
  2. A “vote” from an important page is worth more

Stochastic adjacency matrix M M M

if j → i j\rightarrow i j→i, then M i j = 1 d j M_{ij}=\frac{1}{d_j} Mij​=dj​1​
if j ↛ i j\nrightarrow i j↛i, then M i j = 0 M_{ij}=0 Mij​=0

M M M 第i行表示链接到i的node以及link的importance,第j列表示从node j链接到别的node的link以及importance

r = M ⋅ r r=M \cdot r r=M⋅r

和random walk的联系

Imagine a random web surfer, 它做如下行为:

  1. At any time t t t, surfer is on some page i i i
  2. At time t + 1 t+1 t+1, the surfer follows an out-link from i i i uniformly at random, Ends up on some page j j j linked from i i i
  3. Process repeats indefinitely

p ( t ) p(t) p(t)是web surfer在时刻 t t t所处node的概率分布,表示为一个向量,长度为node数量, p ( t ) p(t) p(t)的第 i i i维表示时刻 t t t web surfer处于node i i i的概率

在 t + 1 t+1 t+1时刻web surfer所处node的概率分布: p ( t + 1 ) = M ⋅ p ( t ) p(t+1)=M\cdot p(t) p(t+1)=M⋅p(t)

p ( t ) p(t) p(t)表示时刻t处于各个node的概率, M i M_i Mi​( M M M的第i行)表示从各个node随机挑选下一个节点跳转到node i的概率, M i M_i Mi​和 p ( t ) p(t) p(t)求点积表示t时刻处于各个节点的概率再乘以从所在节点跳转到节点i的概率再求和,就等于时刻t+1用户处于节点i的概率

stationary distribution

假设web surfer 走着走着进入了一种状态,状态为:

p ( t ) = M ⋅ p ( t ) p(t)=M\cdot p(t) p(t)=M⋅p(t)

则 p ( t ) p(t) p(t) 为 stationary distribution of a random walk

p ( t ) = M ⋅ p ( t ) p(t)=M\cdot p(t) p(t)=M⋅p(t)表示无论这个random surfer从哪里出发,最终会形成一个稳定的它处于哪里的分布 p ( t ) p(t) p(t)。这个和 r = M ⋅ r r=M \cdot r r=M⋅r是类似的,可以将 r r r看成一个random surfer在某一时刻处于什么位置的概率分布。

和 Engienvector centrality的联系

Engienvector centrality是一种获取graph里node representation的方法见笔记

λ c = A c \lambda c = Ac λc=Ac

其中λ为eigenvalue,是一个正的常数, A A A为adjacency matrix, c c c为eigenvector,

如果 λ = 1 \lambda=1 λ=1,则

1 ⋅ c = A ⋅ c 1\cdot c = A\cdot c 1⋅c=A⋅c

So the rank vector r r r is an eigenvector of the stochastic adjacency matrix M M M with eigenvalue 1. r r r is called the principal eigenvector of M M M

3者的联系

PageRank = Limiting distribution = principal eigenvector of M M M

3个东西为同一个数学问题在不同内容上应用的形式,可以用同样的方法来解

How to Solve

Power iteration

  1. Initialize: r 0 = [ 1 N , ⋯ , 1 N ] T r^0=[\frac{1}{N},\cdots,\frac{1}{N}]^T r0=[N1​,⋯,N1​]T

  2. Iterate: r t + 1 = M ⋅ r t r^{t+1}=M\cdot r^t rt+1=M⋅rt

    这一步执行的操作就是 r j t + 1 = ∑ i → j r i t d i r^{t+1}_j=\sum\limits_{i\rightarrow j}\frac{r_i^t}{d_i} rjt+1​=i→j∑​di​rit​​

  3. stop when ∣ r t + 1 − r t ∣ 1 < ε |r^{t+1}-r^{t}|_1<\varepsilon ∣rt+1−rt∣1​<ε

    ∣ x ∣ 1 = ∑ 1 N ∣ x i ∣ |x|_1=\sum_1^N|x_i| ∣x∣1​=∑1N​∣xi​∣是 x x x的 L 1 L_1 L1​ norm,用来表示两个rank vector之间的距离,这里也可以替换成其他可以度量距离的方法。

迭代完成以后就得到了各个网页的权重。

About 50 iterations is sufficient to estimate the limiting solution.

谷歌每天都对所有网页做这个操作

two problem

dead ends (have no out-links) cause importance to “leak out”

dead end:有的节点只有指向它的link,没有它指向的link,如下图的b节点

如何 leak out?
  1. 对出度和入度都大于0的节点,在迭代的第 t t t步,它会接收指向它的节点在 t − 1 t-1 t−1时刻的importance,并将自己在 t − 1 t-1 t−1时刻的importance传给它指向的节点。

    如果每个节点都是这样的节点那么所有节点总的importance是保持不变且和为1的。

  2. dead end节点,在迭代的第 t t t步,它会接收指向它的节点在 t − 1 t-1 t−1时刻的importance,而它自己在 t − 1 t-1 t−1时刻的importance不会传给任何节点,会凭空消失。它在第 t t t步完成后的importance完全是别的节点传给它的,它在上一步的importance自己不会继承下来,也没有传给其他节点,而是凭空消失了。

    this cause importance to “leak out”。总的importance随着迭代进行越来越少,最终趋近于0。

存在dead ends时,无法收敛

怎么解决

对 M M M做预处理,假设dead end节点有指向所有节点(包括它自己)的link,也就是将dead end节点在 M M M中对应的列由原来的全是0,改为 1 N \frac{1}{N} N1​,这样就把importance传出去了,如下图为一个例子

Spider traps

all out-links are within the group

a group of nodes 有group以外的节点指向它们,但是它们只会指向它们group以内的节点

Eventually spider traps absorb all importance
  1. 因为group以外的节点有指向group内节点的link,所以group以外的节点会向group内传递importance
  2. 而group内的节点的link都指向group内的节点,所以importance一旦到了group内,就无法再从group中传出去
  3. 不断迭代以后,group内的importance就会越来越大,group外的importance越来越小,最终group里的节点会吸收到掉整个graph的importance

存在Spider traps时,依然可以收敛,但是不符合我们的期待

怎么解决?
PageRank equation

r j = ∑ i → j β r i d i + ( 1 − β ) 1 N r_j=\sum\limits_{i \rightarrow j} \beta \frac{r_i}{d_i} + (1-\beta)\frac{1}{N} rj​=i→j∑​βdi​ri​​+(1−β)N1​

∑ j = 1 N r j = β ∑ j = 1 N ∑ i → j r i d i + ( 1 − β ) 1 N × N = β × 1 + ( 1 − β ) = 1 \sum\limits_{j=1}^{N}r_j \\=\beta \sum\limits_{j=1}^{N}\sum\limits_{i \rightarrow j} \frac{r_i}{d_i} + (1-\beta) \frac{1}{N}\times N \\=\beta \times 1+ (1-\beta) \\=1 j=1∑N​rj​=βj=1∑N​i→j∑​di​ri​​+(1−β)N1​×N=β×1+(1−β)=1

理解:importance 传递时,importance分为2部分:

  1. 原来计算方式的importance乘以一个比例 β \beta β传给下一个时刻
    这一部分所有节点的importance总和为 β \beta β
  2. 整个graph节点所剩余的 ( 1 − β ) (1-\beta) (1−β)部分再平均分配给每个节点
    1. 这一部分所有节点的importance总和为 ( 1 − β ) (1-\beta) (1−β),
    2. 每个节点都被分配 ( 1 − β ) 1 N (1-\beta)\frac{1}{N} (1−β)N1​,且随着迭代的进行,它始终保持不变
  3. 注意:This formulation assumes that M M M has no dead ends.我们可以提前把dead ends 去掉
  4. Common values for β \beta β are in the range 0.8 to 0.9
为什么可以解决?
  1. group内的节点的importance还是会随着迭代变大
  2. group以外节点的importance不会随着迭代变为0,最小也会是 ( 1 − β ) 1 N (1-\beta)\frac{1}{N} (1−β)N1​

所以解决了Spider traps

能否解决dead ends?

不能解决dead ends,因为 dead end节点上的importance还是消失了。

The Google Matrix G (PageRank equation 的矩阵形式)

G = β M + ( 1 − β ) [ 1 N ] N × N G=\beta M+ (1-\beta)[\frac{1}{N}]_{N \times N} G=βM+(1−β)[N1​]N×N​

其中 [ 1 N ] N × N [\frac{1}{N}]_{N \times N} [N1​]N×N​表示一个 N × N N\times N N×N的矩阵,其中所有元素都是 1 N \frac{1}{N} N1​

r = G ⋅ r r=G\cdot r r=G⋅r

r = G ⋅ r = ( β M + ( 1 − β ) [ 1 N ] N × N ) ⋅ r = β M ⋅ r + ( 1 − β ) [ 1 N ] N × N ⋅ r = β M ⋅ r + ( 1 − β ) [ 1 N ] N r=G\cdot r \\=(\beta M+ (1-\beta)[\frac{1}{N}]_{N \times N})\cdot r \\=\beta M \cdot r +(1-\beta)[\frac{1}{N}]_{N \times N} \cdot r \\=\beta M \cdot r + (1-\beta)[\frac{1}{N}]_{N} r=G⋅r=(βM+(1−β)[N1​]N×N​)⋅r=βM⋅r+(1−β)[N1​]N×N​⋅r=βM⋅r+(1−β)[N1​]N​

β M ⋅ r \beta M \cdot r βM⋅r就是原来的部分乘以了 β \beta β
( 1 − β ) [ 1 N ] N × N (1-\beta)[\frac{1}{N}]_{N \times N} (1−β)[N1​]N×N​矩阵中每个值都是 1 N \frac{1}{N} N1​,而rank vector r r r的和所以为1,所以 ( 1 − β ) [ 1 N ] N × N ⋅ r (1-\beta)[\frac{1}{N}]_{N \times N} \cdot r (1−β)[N1​]N×N​⋅r得到一个长度为 N N N的向量 ( 1 − β ) [ 1 N ] N (1-\beta)[\frac{1}{N}]_{N} (1−β)[N1​]N​,其中每个值还是 1 N \frac{1}{N} N1​

In practice b = 0.8,0.9 (make 5 steps on avg., jump)


以下部分视频里讲的很省略,太多内容没有讲,以后需要的话再回来重新学习


视频里说两个变种的数学形式和PageRank一样,但是他们怎么理解呢?user是图里的节点吗?random walk怎么体现成类似 r = G ⋅ r r=G\cdot r r=G⋅r的形式?

variants of PageRank

这里提到了2个变种,2种方法都可以和PageRank一样用上面的数学形式表示和求解。

下面内容以 recommendation来举例

如上面的bipartite user-item graph所示,user之间item可以建立连接,user和user之间、item和item之间没有连接。

bipartite graph可以用adjacency matrix来表示,行(或者列)表示user,列(或者行)表示item, A u , v = 1 A_{u,v}=1 Au,v​=1表示user u u u购买了item v v v

What items should we recommend to a user who interacts with item Q?

Intuition: if items Q and P are interacted by similar users, recommend P when user interacts with Q

how to quantify proximity or relevance of different items?

  1. path between 2 items 越短越相关
  2. 有共同的user购买的item更相似

Personalized PageRank

Ranks proximity of nodes to the teleport nodes S S S

与PageRank相比的差别是:PageRank 可以teletport到任何节点,且概率都一样,Personalized PageRank只能teleport到部分节点

真正的公式视频里没有提到,推测在形式化的式子上的差别应该是把下式的后半部分替换成了每个节点Personalized的一个矩阵。
G = β M + ( 1 − β ) [ 1 N ] N × N G=\beta M+ (1-\beta)[\frac{1}{N}]_{N \times N} G=βM+(1−β)[N1​]N×N​

意思是每个节点不会跟graph里所有节点都有关系,而只和特定的一部分节点有关,看起来这是一个更好的选择。

如果有需要学习了再把公式补充在这里

问题

  1. Personalized PageRank用在哪里?还是网页排序吗?
  2. 真实的网页排序用的是PageRank还是Personalized PageRank?
  3. proximity 是相对于两个节点之间的,PageRank里的importance是整个graph中所有节点之间的,这怎么类比?
  4. 每个node都有一个相对于其他所有node的proximity吗?怎么让每个node的proximity不同的?

Random Walks with Restarts

与PageRank相比的差别是:PageRank 可以teletport到任何节点,且概率都一样,Random Walks with Restarts只能teleport到它自己。

random walking view

从random walking 的视角来看Random Walks with Restarts

方法如下图所示

PageRank的random walk视角中,一个random surfer随机的访问所有网页,ranking vector表示的是random surfer在各个节点的概率。

Random Walks with Restarts 同样是一个random surfer随机访问网页,区别是每一步都有一定的概率从头开始。

PageRank的random walk视角中, p ( t ) i p(t)_i p(t)i​会在下一个时刻平均分配给节点 i i i指向的节点

Random Walks with Restarts中, p ( t ) i p(t)_i p(t)i​会把一部分在下一个时刻分配给节点 i i i指向的节点,另一部分分配给初始的节点。

从一个node开始的Random Walks with Restarts最后得到的number of visits可以代表从这一个节点出发后在某一时刻在某个节点的概率,但是这怎么对应到给所有node排序?

问题:

  1. number of visits代表了什么?代表了一个node Q的proximity吗?
  2. 要对每个节点都这样走一遍吗?
  3. 节点之间的proximity对整个graph 按node排序的作用是什么?
  4. 节点 v v v和 u u u都指向了节点 i i i,节点 i i i是怎么知道是开始节点是哪个的?

page rank view

试着从这个角度理解一下
课程里没讲,有需要的时候再学习了补充到这里

为什么要restart?restart有什么好处?

restart考虑了如下信息:

  1. Multiple connections
  2. Multiple paths
  3. Direct and indirect connections
  4. Degree of the node

为什么要找the highest proximity to the QUERY_NODES?

是要用一个node proximit a group of nodes吗?

这里的proximity指的是什么?

Personalized PageRank是每个节点都有不同的a specific set of nodes和node对应的概率吗?

Random Walk with Restarts怎么体现出只能跳转到1个节点的?

bipartite graph 怎么和全是node的graph类比?怎么表示成matrix?

问题

  1. 稳定的状态是什么意思?为什么会形成stationary distribution?一定会形成稳定状态吗?

    视频里没有讲到

  2. 联系这三个东西有什么意义?

  3. PageRank随着进行spider trap会不会group外全是1/N?

  4. random walk with restarts 有什么意义?可以用在哪里?

  5. Personalized PageRank用在哪里?

GNN-CS224W: 4 Link Analysis: PageRank相关推荐

  1. 图的链接分析 (link analysis): PageRank 算法

    目录 PageRank 的定义 前置知识 基本想法 PageRank 的基本定义 PageRank 的一般定义 PageRank 的计算 代数算法 迭代算法 幂法 (power method) Why ...

  2. cs224w(图机器学习)2021冬季课程学习笔记4 Link Analysis: PageRank (Graph as Matrix)

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. Graph as Matrix 2. PageRank / the Google Algor ...

  3. 链路分析(Link analysis)

    随机游走(random walk) Flow Formulation 当某个网页的输入链接越多时,说明该网页越重要(Page is more important if it has more out- ...

  4. cs224w(图机器学习)2021冬季课程学习笔记21 Scaling Up GNNs to Large Graphs

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. 介绍scale up GNN问题 2. GraphSAGE Neighbor Samplin ...

  5. cs224w(图机器学习)2021冬季课程学习笔记10 Applications of Graph Neural Networks

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. Graph Augmentation for GNNs 1.1 图特征增强Feature A ...

  6. 课程 | 2021年斯坦福大学Jure Leskovec主讲CS224W 图机器学习

    图科学实验室Graph Science Lab 来源:斯坦福大学 SNAP 近年来,图神经网络(GNN)成为网络表示学习和分析的热点研究问题,其特点是将以神经网络为代表深度学习技术用于网络结构的建模与 ...

  7. 机器学习/深度学习/图机器学习 学习小结

    目录 前言 学习小结 一.机器学习部分 二.深度学习部分 三.图神经网络 概念清晰!概念清晰!概念清晰! 磨刀不误砍柴工! 最难的是开始,最简单的也是开始! 前言 历时将近一年吧,因为疫情原因在家,终 ...

  8. 常用的Python3关键词提取方法

    诸神缄默不语-个人CSDN博文目录 本文将介绍一些简单的使用Python3实现关键词提取的算法.目前仅整理了一些比较简单的方法,如后期将了解更多.更前沿的算法,会继续更新本文. 文章目录 1. 基于T ...

  9. python复杂网络全局效率计算_python复杂网络库networkx:算法

    Networks算法Algorithms 最短路径Shortest Paths 简单路径Simple Paths all_simple_paths(G, source, target[, cutoff ...

最新文章

  1. 新书上市 | 《复分析:可视化方法》
  2. 存储过程mysql into select into_mysql 存储过程select into select into select的搜索结果-阿里云开发者社区...
  3. HTML5地区自转代码
  4. acquireQueued
  5. PHP封装curd,CURD · TookPHP开发手册 · 看云
  6. 【例1】 给定n(n>=1),用递归的方法计算1+2+3+4+...+(n-1)+n。
  7. DbHelper重用性方案 优化工具类 jdbc
  8. 飞线5根连接图_手机主板焊盘掉点飞线维修方法
  9. 随想录(exe和dll的相互调用)
  10. atitit.编辑表单的实现最佳实践dwr jq easyui
  11. 初级商业数字营销师超级推荐
  12. 毕业设计任务书----基于Android的学生考勤管理系统设计与实现
  13. 计算机科学与技术的学习路线
  14. CSS利用checkbook实现开关按钮
  15. 博客搭建六:绑定自己域名的方法
  16. qt实现视频播放器,基本功能都有,可以当毕设用
  17. CDMA移动通信网的关键技术(转)
  18. php入门学习-----父类子类继承
  19. CTF-Crypto必备自动解密神器-Ciphey
  20. Python 括号问题

热门文章

  1. 课程设计实训-3 英文词典
  2. 企业如何利用数据库加速AI之旅
  3. 终结DbHelper鬼画符1:Scrum实战演示
  4. Android Audio开发——AAudio基础(十五)
  5. windows10 修复print spooler无法启动问题 错误代码:0x8007076b 无法创建终结点映射表数据库项
  6. 川崎机器人零点调整_如何对FANUC机器人进行零点复位?
  7. 关于求解循环节的长度
  8. 串口协议(1-Wire)解析
  9. 上传图片预览并在后台处理
  10. Uncaught TypeError: Cannot read property 'top' of undefined