1.15k likes | 1.49k Views
第五章 链接分析. 郭宇春. Web graph. Web pages - Web links – Web pages Web graph . 本章内容. Pagerank Pagerank 的快速计算 面向主题的 Pagerank 链接作弊 导航页和权威 页 用 PageRank 发现网络中的 社区. 5.1 Pagerank. 如何找到需要的网页 ? . 早期: page directory Yahoo!, DMOZ, Looksmart , 分类 索引. 早期的搜索引擎及词项作弊.
E N D
第五章 链接分析 郭宇春
Web graph • Web pages - Web links – Web pages Web graph
本章内容 Pagerank Pagerank的快速计算 面向主题的Pagerank 链接作弊 导航页和权威页 用 PageRank发现网络中的社区
如何找到需要的网页? • 早期:page directory • Yahoo!, DMOZ, Looksmart, • 分类索引
早期的搜索引擎及词项作弊 • Information Retrieval 信息查询 • 反向索引 Inverted indexing • 接收到一个用户查询请求后,提取关键词 • 把含有用户关键词的网页返回给用户 • 排序:根据关键词的位置和关键词的出现次数 • 小规模可信集合 • newspaper articles, Patents, etc. • Web search 中词项作弊 • 卖衣服的网站在网页里放置多个movie • 或者查询movie,把结果放在自己网页里面 • 把作弊项颜色设为背景,隐藏作弊内容
谷歌的想法 多个冲浪者从随机网页出发,每次从当前页面的输出链接随机出发。 不同页面经过的次数不同 经过次数多的页面的重要性大,应排在前面 成立的假设:用户倾向于链接那些有用的页面
谷歌的想法 • 在判断网页内容的时候,不仅考虑网页本身的词项,还要考虑指向该页面的链接所使用的词项 • 他人的评价(链接)相比自己的评价(词项)更重要 • 作弊者无法控制其他人的页面 • Pagerank算法 (Larry Page,Sergey Brin) • 根据链路结构 Link structure确定每个网页的重要性取值(pagerank),据此对网页排序
pagerank的定义 • Pagerank是一个函数,赋予每个页面一个实数值-rank值 • 值越大,页面越重要 • 如何确定rank值?——链接投票 • 有大量链接的网页更重要 • 出链接 / 入链接 (in/out link)? • 谁的票更重要? • 高rank值的网页所投出的票
例子:Mathematical PageRanks for a simple network http://en.wikipedia.org/wiki/PageRank
递归计算 每条链路上的选票正比于源网页的重要性 若页面P的重要度为x,且有n条出链路, 每条链路上分得x/n选票 页面P自己的重要度是其入链路上选票之和
Y A M Pagerank: 流模型 y = y /2 + a /2 a = y /2 + m m = a /2 y/2 y a/2 y/2 m a/2 m a • 方程组: • 无唯一解,无穷多解,模尺度因子等价 • 增加约束条件,唯一解 • y+a+m = 1 • y = 2/5, a = 2/5, m = 1/5 • 高斯消元法不能适应大图
Pagerank:转移矩阵 • M: 每行/列分别对应一个网页 • 如果网页i有di个出链接, • If ji, then Mji=1/di • Else Mji=0 • M 是列随机矩阵(column stochastic matrix) • 列和为 1 • 设 r 为rank vector • rj网页j 的重要度分数 • |r| = 1 • 流方程 r = M r • Rank vector r:矩阵M的 特征向量 eigenvector
j i j = 1/3 M r 例 i r 设网页i链接到包括j在内的3个网页
Y r = Mr A M y 1/2 1/2 0 y a = 1/2 0 1 a m 0 1/2 0 m 例 y a m y 1/2 1/2 0 a 1/2 0 1 m 0 1/2 0 y = y /2 + a /2 a = y /2 + m m = a /2
特征向量 NOTE: x is an eigenvector with the corresponding eigenvalue λ if: 𝑨𝒙=𝝀𝒙 • 流方程 r = Mr • Rank vector r:矩阵M的 特征向量 eigenvector • 主特征向量,对应特征值1 • M 的最大特征值为 1,因为M是列随机 • r 最大值为1,且 M 各列和为1,故 𝑴𝒓≤𝟏 • 幂迭代法
幂迭代法 • 迭代法(亦称松弛relaxation) • 设有 N个网页 • 初始化: r0 = [1/N,….,1/N]T • 迭代: rk+1 = Mrk • 停止条件 |rk+1 - rk|1 < • |x|1 = 1≤i≤N|xi| is the L1 norm • 可以使用其他距离测度e.g., Euclidean
Y A M 例 y a m y 1/2 1/2 0 a 1/2 0 1 m 0 1/2 0 y = y /2 + a /2 a = y /2 + m m = a /2 y a = m 1/3 1/3 1/3 1/3 1/2 1/6 5/12 1/3 1/4 3/8 11/24 1/6 2/5 2/5 1/5 . . .
随机游走 • 设想一个网络随机冲浪者 • 任意时刻t, 停留在页面P • t+1时刻,从页面P以等概率沿着一条出链路前行 • 到达P所链接的一个页面Q • 无限重复上述过程 • 页面停留概率分布矢量p(t) • 第i个分量为冲浪者在 t时刻停在 i页面的概率
平稳分布 • t+1时刻冲浪者在哪里? • 随机地沿着某条链路出行 • p(t+1) = Mp(t) • 设随机游走到达一个状态满足 p(t+1) = Mp(t) = p(t) 则 p(t)为随机游走的平稳分布stationary distribution • Rank vector r 满足 r = Mr • 因此r是随机游走的平稳分布
Pagerank:2个问题 • Deadends (终止点,死胡同) • 没有出链路,最终吸收所有的重要度 • Spidertraps (爬虫陷阱) • 出链路仅在组内,最终会吸收所有的重要度
爬虫陷阱 Spider trap Y y = y /2 + a /2 a = y /2 + m m = a /2 A M y a m y 1/2 1/2 0 a 1/2 0 0 m 0 1/2 1 y a = m 1/3 1/3 1/3 2/6 1/6 3/6 3/12 2/12 7/12 5/24 3/24 16/24 0 0 1 . . . • 幂次迭代 • 设rj=1 • 迭代 • 例:M 成为陷阱
措施:随机跳转(Random teleports) • Google solution for spider traps • 每个时间步,随机冲浪者有两个选项 • 以概率, 随机选择一个链接 • 以概率 1-, 随机地跳至一个页面 • 一般取值在 0.8 ~ 0.9 • 冲浪者可经过几个时间步跳出spider trap
y y y 1/3 1/3 1/3 y 1/2 a 1/2 m 0 1/2 1/2 0 + 0.2* 0.8* 随机跳转(Random teleports) 0.2*1/3 1/2 Y 0.8*1/2 1/2 0.2*1/3 0.8*1/2 0.2*1/3 1/2 1/2 0 1/2 0 0 0 1/2 1 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 + 0.2 A M 0.8 y 7/15 7/15 1/15 a 7/15 1/15 1/15 m 1/15 7/15 13/15
随机跳转(Random teleports) 1/2 1/2 0 1/2 0 0 0 1/2 1 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 + 0.2 Y 0.8 y 7/15 7/15 1/15 a 7/15 1/15 1/15 m 1/15 7/15 13/15 A M y a = m 1 1 1 1.00 0.60 1.40 0.84 0.60 1.56 0.776 0.536 1.688 7/11 5/11 21/11 . . .
Non- stochastic! 终止点 Dead ends Yahoo 1/2 1/2 0 1/2 0 0 0 1/2 0 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 0.8 + 0.2 y 7/15 7/15 1/15 a 7/15 1/15 1/15 m 1/15 7/15 1/15 Amazon M’soft y a = m 1 1 1 1 0.6 0.6 0.787 0.547 0.387 0.648 0.430 0.333 0 0 0 . . . • 没有出链路的网页称为“终止点(dead ends)” (死胡同) • 下一步无路可走
对付dead ends • 删除和传播 • 预先删除图中的dead-ends • 可能需进行多轮迭代删除 • 在删减后的修正图上计算page rank • 将传播(propagate)修正图的rank值获得deadends的近似值
对付dead ends • 随机跳转 • 在dead ends,以概率1随机跳转 • 相应调整矩阵
计算page rank • 关键:矩阵-矢量乘法 • rnew = Arold • 如果有足够空间存储A, rold, rnew,则简单 • 若N = 1 billion pages • 设每一项需要4 字节 • 矢量有2 billion 项,需要约8GB • 矩阵 A 有 N2项 • 1018!
矩阵形成 • 设有N个页面 • 考虑网页j ,其出度为dj • 则若ji有Mij = 1/dj,否则Mij = 0 • 随机跳转等价于 • 增加了一条由j 到任一其他页面的链路,转移概率为(1-)/N • 将原来的每条出链路的概率由 1/dj降至/dj • 等价于: 对每个页面的分值抽取比例为(1-)的税,重新平均分配
整理方程 r = Ar, where Aij = Mij + (1-)/N ri= 1 ≤ j ≤ NAijrj ri= 1 ≤ j ≤ N [Mij+ (1-)/N] rj = 1 ≤ j ≤ NMijrj+ (1-)/N 1 ≤ j ≤ N rj = 1 ≤ j ≤ NMijrj+ (1-)/N, since |r| = 1 r = Mr+ [(1-)/N]N where [x]N is an N-vector with all entries x
稀疏矩阵形成 • 整理page rank 公式: r = Mr + [(1-)/N]N • [(1-)/N]N是 N维向量,所有分量均为(1-)/N • M 为稀疏矩阵(设无deadends) • 每个节点10 links,约 10N 项 • 每一次迭代中,需要 • 计算 rnew = Mrold • rnew的每一项增加一个常量值 (1-)/N • 若M包含deadends,则|rnew |<1 ,则须对rnew再归一化使其模值为1
稀疏矩阵表示 • 仅用非零项表示稀疏矩阵 • 空间基本上与链接数成比例 • 例如10N, 或4*10*1 billion = 40GB • 仍然不能写入内存,但是可以存入硬盘 source node degree destination nodes
更新步骤 Initialize all entries of rnew to (1-)/N For each page p (out-degree n): Read into memory: p, n, dest1,…,destn, rold(p) for j = 1..n: rnew(destj) += *rold(p)/n rold rnew 0 0 src degree destination 1 1 2 2 3 3 4 4 5 5 6 6 • 假设有足够的RAM存放rnew, • 在硬盘上存放rold and 矩阵 M • 迭代法的第一步
分析 • 假设有足够的RAM存放rnew • 在硬盘上存放rold及矩阵 M • 每一次迭代中 • 读rold和M • rnew写至硬盘 • IO Cost = 2|r| + |M| • 问题:如果连rnew都不能容纳? • 10 billion pages • Map-reduce
Block-based update algorithm基于块的更新算法 rold rnew src degree destination 0 0 1 1 2 3 2 4 3 5 4 5
块更新的分析 • 类似于数据库中的嵌套循环连接(nested-loop join) • 将rnew分成k块,以便能存入内存 • 为每一块扫描一次M和rold • k 次扫描M和rold • k(|M| + |r|) + |r| = k|M| + (k+1)|r| • 改进? • 提示: M远大于r(约10-20x), 可以避免每一次迭代对M读取k 次
Block-Stripe Update algorithm块-条更新算法 src degree destination rnew 0 rold 1 0 1 2 3 2 4 3 5 4 5
块-条更新分析 • 将M分成条 • 每一条仅包括rnew中对应块所包括的目的节点 • 每条附加开销 • 通常是值得的 • 每次迭代的代价 • |M|(1+) + (k+1)|r|
小结 • PageRank • PageRank的定义 • PageRank的迭代计算 • 随机游走 • 平稳分布 • 针对终止点与采集器陷阱的措施 • 随机跳转 • PageRank的实际算法(快速) • 稀疏矩阵表示 • 块更新 • 块条更新
PageRank 的一些问题 • 衡量一个页面的流行度 • 对某些特定主题的权威有偏差,例:jaguar • 方案:Topic-specificPageRank • 使用单一的重要性测度 • 其他模型,如hubs-and-authorities • 方案:hubs-and-authorities • 对连接作弊(LinkSpam)易感 • 为了提高页面排序的人为生成的网页连接拓扑 • 方案:TrustRank