1 / 113

第五章 链接分析

第五章 链接分析. 郭宇春. Web graph. Web pages - Web links – Web pages  Web graph . 本章内容. Pagerank Pagerank 的快速计算 面向主题的 Pagerank 链接作弊 导航页和权威 页 用 PageRank 发现网络中的 社区. 5.1 Pagerank. 如何找到需要的网页 ? . 早期: page directory Yahoo!, DMOZ, Looksmart , 分类 索引. 早期的搜索引擎及词项作弊.

ataret
Download Presentation

第五章 链接分析

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第五章 链接分析 郭宇春

  2. Web graph • Web pages - Web links – Web pages Web graph

  3. 本章内容 Pagerank Pagerank的快速计算 面向主题的Pagerank 链接作弊 导航页和权威页 用 PageRank发现网络中的社区

  4. 5.1 Pagerank

  5. 如何找到需要的网页? • 早期:page directory • Yahoo!, DMOZ, Looksmart, • 分类索引

  6. 早期的搜索引擎及词项作弊 • Information Retrieval 信息查询 • 反向索引 Inverted indexing • 接收到一个用户查询请求后,提取关键词 • 把含有用户关键词的网页返回给用户 • 排序:根据关键词的位置和关键词的出现次数 • 小规模可信集合 • newspaper articles, Patents, etc. • Web search 中词项作弊 • 卖衣服的网站在网页里放置多个movie • 或者查询movie,把结果放在自己网页里面 • 把作弊项颜色设为背景,隐藏作弊内容

  7. 谷歌的想法 多个冲浪者从随机网页出发,每次从当前页面的输出链接随机出发。 不同页面经过的次数不同 经过次数多的页面的重要性大,应排在前面 成立的假设:用户倾向于链接那些有用的页面

  8. 谷歌的想法 • 在判断网页内容的时候,不仅考虑网页本身的词项,还要考虑指向该页面的链接所使用的词项 • 他人的评价(链接)相比自己的评价(词项)更重要 • 作弊者无法控制其他人的页面 • Pagerank算法 (Larry Page,Sergey Brin) • 根据链路结构 Link structure确定每个网页的重要性取值(pagerank),据此对网页排序

  9. pagerank的定义 • Pagerank是一个函数,赋予每个页面一个实数值-rank值 • 值越大,页面越重要 • 如何确定rank值?——链接投票 • 有大量链接的网页更重要 • 出链接 / 入链接 (in/out link)? • 谁的票更重要? • 高rank值的网页所投出的票

  10. 例子:Mathematical PageRanks for a simple network http://en.wikipedia.org/wiki/PageRank

  11. 递归计算 每条链路上的选票正比于源网页的重要性 若页面P的重要度为x,且有n条出链路, 每条链路上分得x/n选票 页面P自己的重要度是其入链路上选票之和

  12. 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 • 高斯消元法不能适应大图

  13. Pagerank:转移矩阵 • M: 每行/列分别对应一个网页 • 如果网页i有di个出链接, • If ji, 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

  14. j i j = 1/3 M r 例 i r 设网页i链接到包括j在内的3个网页

  15. 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

  16. 特征向量 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,故 𝑴𝒓≤𝟏 • 幂迭代法

  17. 幂迭代法 • 迭代法(亦称松弛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

  18. 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 . . .

  19. 随机游走 • 设想一个网络随机冲浪者 • 任意时刻t, 停留在页面P • t+1时刻,从页面P以等概率沿着一条出链路前行 • 到达P所链接的一个页面Q • 无限重复上述过程 • 页面停留概率分布矢量p(t) • 第i个分量为冲浪者在 t时刻停在 i页面的概率

  20. 平稳分布 • t+1时刻冲浪者在哪里? • 随机地沿着某条链路出行 • p(t+1) = Mp(t) • 设随机游走到达一个状态满足 p(t+1) = Mp(t) = p(t) 则 p(t)为随机游走的平稳分布stationary distribution • Rank vector r 满足 r = Mr • 因此r是随机游走的平稳分布

  21. Pagerank:2个问题 • Deadends (终止点,死胡同) • 没有出链路,最终吸收所有的重要度 • Spidertraps (爬虫陷阱) • 出链路仅在组内,最终会吸收所有的重要度

  22. 爬虫陷阱 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 成为陷阱

  23. 措施:随机跳转(Random teleports) • Google solution for spider traps • 每个时间步,随机冲浪者有两个选项 • 以概率, 随机选择一个链接 • 以概率 1-, 随机地跳至一个页面 • 一般取值在 0.8 ~ 0.9 • 冲浪者可经过几个时间步跳出spider trap

  24. 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

  25. 随机跳转(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 . . .

  26. 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)” (死胡同) • 下一步无路可走

  27. 对付dead ends • 删除和传播 • 预先删除图中的dead-ends • 可能需进行多轮迭代删除 • 在删减后的修正图上计算page rank • 将传播(propagate)修正图的rank值获得deadends的近似值

  28. 对付dead ends • 随机跳转 • 在dead ends,以概率1随机跳转 • 相应调整矩阵

  29. 5.2 Pagerank快速计算

  30. 计算page rank • 关键:矩阵-矢量乘法 • rnew = Arold • 如果有足够空间存储A, rold, rnew,则简单 • 若N = 1 billion pages • 设每一项需要4 字节 • 矢量有2 billion 项,需要约8GB • 矩阵 A 有 N2项 • 1018!

  31. 矩阵形成 • 设有N个页面 • 考虑网页j ,其出度为dj • 则若ji有Mij = 1/dj,否则Mij = 0 • 随机跳转等价于 • 增加了一条由j 到任一其他页面的链路,转移概率为(1-)/N • 将原来的每条出链路的概率由 1/dj降至/dj • 等价于: 对每个页面的分值抽取比例为(1-)的税,重新平均分配

  32. 整理方程 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

  33. 稀疏矩阵形成 • 整理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

  34. 稀疏矩阵表示 • 仅用非零项表示稀疏矩阵 • 空间基本上与链接数成比例 • 例如10N, 或4*10*1 billion = 40GB • 仍然不能写入内存,但是可以存入硬盘 source node degree destination nodes

  35. 更新步骤 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 • 迭代法的第一步

  36. 分析 • 假设有足够的RAM存放rnew • 在硬盘上存放rold及矩阵 M • 每一次迭代中 • 读rold和M • rnew写至硬盘 • IO Cost = 2|r| + |M| • 问题:如果连rnew都不能容纳? • 10 billion pages •  Map-reduce

  37. Block-based update algorithm基于块的更新算法 rold rnew src degree destination 0 0 1 1 2 3 2 4 3 5 4 5

  38. 块更新的分析 • 类似于数据库中的嵌套循环连接(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 次

  39. Block-Stripe Update algorithm块-条更新算法 src degree destination rnew 0 rold 1 0 1 2 3 2 4 3 5 4 5

  40. 块-条更新分析 • 将M分成条 • 每一条仅包括rnew中对应块所包括的目的节点 • 每条附加开销 • 通常是值得的 • 每次迭代的代价 • |M|(1+) + (k+1)|r|

  41. 小结 • PageRank • PageRank的定义 • PageRank的迭代计算 • 随机游走 • 平稳分布 • 针对终止点与采集器陷阱的措施 • 随机跳转 • PageRank的实际算法(快速) • 稀疏矩阵表示 • 块更新 • 块条更新

  42. PageRank 的一些问题 • 衡量一个页面的流行度 • 对某些特定主题的权威有偏差,例:jaguar • 方案:Topic-specificPageRank • 使用单一的重要性测度 • 其他模型,如hubs-and-authorities • 方案:hubs-and-authorities • 对连接作弊(LinkSpam)易感 • 为了提高页面排序的人为生成的网页连接拓扑 • 方案:TrustRank

  43. 5.2 面向主题的Pagerank

More Related