CS224W-11 成就了谷歌的PageRank

  众所周知(并不是),谷歌最早是依靠搜索引擎起家的,而PageRank作为一种网页排序算法为谷歌的发展立下了汗马功劳。可以说,没有PageRank就没有今天的谷歌。

本次课程的主题包括:

  1. Web structure

  2. Pagerank推导和计算方式

  3. 应用:Graph Search(个人认为反而是重要的部分)

1. Web Structure

1.1 定义:有向图

: 所有能够到达v的节点集合

:所有v能够到达的节点集合

img

有向图的两种类别:

strongly connected:节点间是互通的,能够通过有向路径实现互达

directed acyclic graph:有向无环图,u可以达到v,但v不能到达u

img

Strongly connected component

  1. 这个集合内节点可以互达

  2. 这已经是最大的满足这种要求的集合,不能更大了

每一个有向图都是在SCC上构成的DAG

意思是说,如果把有向图中能够互达的节点集合揉成一个新结点,那么就是一个DAG了

img

问题来了:想看看真是Web网络,是如何在其SCC上构成整个DAG图的?

  1. 首先,对于一个节点v,如何找到包含这个v的SCC?

定义:

是G的反向图

img
  1. 实验结果

  • 数据来源:爬取的网络结构,2.03亿 urls,15亿links

  • 方法:任意节点v,使用BFS策略(宽度优先)计算In(v)和Out(v)

  • 观察结果:BFS策略要么访问极少的节点,要么可以访问居多的节点

img

说明,网络结构是一个领带形式的玩意。

img

2. Ranking nodes on the graph

Intuition:网络中不同节点的重要度肯定是不同的,stanford vs 野鸡大学

所以,我们要排序!

rank the pages using the web graph link structure

Link Analysis Algorithms

  • pagerank

  • personalized pagerank

  • random walk with restarts

PageRank

Idea:将link视为votes,链接越多越重要

还有一个问题,所有链接都一样吗?

那肯定不行啊,杀人游戏中,警长还有两票的投票权呢

从重要节点投出的票会更加重要!

那怎么分配链接上的权重呢?平均

  • 对于page with importance ,有 个外向连接(出度),那每个链接得到的投票权为:

  • 对于节点 j ,其重要度就是所有指向它的投票权之和:

img
img

用矩阵定义这种形式,引入邻接矩阵M

如果 ,   的出度为 ,那么

M的列和为1,表示所有从j出去的投票权

rank vector r:每个节点的重要度

矩阵形式:

img

接下来的论述是,设想是一个surfer在这样的web上一直随机游走,最后停留在各个页面上的概率

这样论述的目的在于得到一个概率形式:

那么 就是最后的稳态概率,对应意义说各个节点重要度也会收敛起来

这可以有两个解释:

1、马尔可夫过程的收敛

其实给定矩阵 ,计算   的过程就是一个重复的过程

相当于是一个马尔可夫链最后的收敛状态

2、特征值分解

对比一下,其实就是特征值为1的特征向量!

工业上如何求得r呢?——Power Iteration Method

迭代过程很简单:三步

  • 初始化:

  • 迭代:

  • 终止条件:

  • 终止条件:

  • 终止条件:

相关文章
相关标签/搜索