32丨PageRank(上):搞懂Google的PageRank算法
32丨PageRank(上):搞懂Google的PageRank算法
讲述:陈旸
时长08:34大小7.86M
PageRank 的简化模型
PageRank 的随机浏览模型
PageRank 在社交影响力评估中的应用
PageRank 给我们带来的启发
总结
赞 12
提建议
精选留言(21)
- 滨滨2019-04-14pagerank算法就是通过你的邻居的影响力来评判你的影响力,当然然无法通过邻居来访问你,并不代表你没有影响力,因为可以直接访问你,所以引入阻尼因子的概念。现实生活中,顾客比较多的店铺质量比较好,但是要看看顾客是不是托。
编辑回复: 这个应用例子也很有趣,让顾客来投票。
共 2 条评论21 - third2019-02-26复习感悟: 1.PageRank算法,有点像 海纳百川有容乃大(网页影响力=所有入链集合的页面的加权影响力之和) 像我汇聚的东西,越多,我就越厉害。 2.随机访问模型 有点像下雨。 海洋除了有河流流经,还有雨水,但是下雨是随机的(网页影响力=阻尼影响力+所有入链集合页面的加权影响力之和)展开
编辑回复: 这个比喻不错~ 河流之间是有入链和出链的,但是也可能遇到等级泄露和等级沉没的问题,下雨就类似是随机浏览模型,给每个节点提供补充。
15 - third2019-02-25作业 1.原理 1)基础:网页影响力=所有入链集合的页面的加权影响力之和 2)拉里佩奇加入随机访问模型,即有概率用户通过输入网址访问 网页影响力=阻尼影响力+所有入链集合页面的加权影响力之和 2.应用场景: 评估某个新行业怎么样,通过计算涌入这个行业的人的智力和数量。 如果这个行业,正在有大量的聪明人涌入,说明这是一个正在上升的行业。 作业及问题 转移矩阵 第一列是A的出链的概率 A0B1/3C1/3D1/3 第二列是B的的出链的概率 A1/2B0C0D1/2 第三列是C的出链概率 A1B0C0D0 第四列是D的出链概率 A0B1/2C1/2D0 等级泄露的转移矩阵应该是 M=[0 0 1/2 0] [1 0 0 0] [0 0 1/2 0] [0 1 0 0] 还是 M=[0 0 0 1/2] [1 0 0 0 ] [0 0 0 1/2] [0 1 0 0 ] 假设概率相同,都为1/4 进行第一次转移之后,会发现,后面的 W1=[1/8] [1/4] [1/8] [1/4] 总和已经小于1了,在不断转移的过程中,会使得所有PR为0 等级沉没的转移矩阵怎么写? M=[0 0 1 0] [1 0 0 0] [0 0 0 0] [0 1 0 0]展开
编辑回复: 应用场景这个举例很有趣,回答你的问题: 对应文章中的例子,等级泄露的转移矩阵: M=[0 0 0 1/2] [1 0 0 0 ] [0 0 0 1/2] [0 1 0 0 ] 等级沉没的转移矩阵 M=[0 0 1/2 1] [1 0 0 0 ] [0 0 0 0] [0 1 1/2 0 ]
8 - 白色纯度2019-06-18转移矩阵用到了Marcov过程的部分知识,转移概率矩阵并不一定收敛,需满足条件:不可约,平稳(可逆)。等级泄露和等级沉没都是破坏了不可约的情况,使得马氏矩阵不具备平稳概率。而解决该问题的思想又与朴素贝叶斯的平滑处理相似,浅见,若老师有时间还望指正。6
- 李沛欣2019-03-01有人的地方,就有入世和出世 有网络和地方,就有入链和出链 入世的人,链接的大牛越多,越有影响力, 对网站而言,链接出去的网页越多,说明网站影响力越大,但是越多链接进来你这里的网页,也直接影响到网站的价值。 出链太多,如同出世一样,耗散内力,排名等级越来越低,最终江湖再见。 入链太多,就可能成为流量黑洞,如同涉世太深的人一样走火入魔。 谷歌创始人拉里佩奇则力图破解等级泄露和等级沉没困境,创造了随机浏览模型。展开
编辑回复: 这个总结和分析很不错。当遇到了一些问题,有时候不是直接解决它,而是跳脱出来提出了“随机浏览模型”反而把之前的等级泄露和等级沉没问题解决了。
6 - 梁智行2020-05-05用网络科学来理解算法就是,网页的影响力(中心度),体现在:很多人说这网页好(度中心度),说这网页好的网页也要好(特征向量中心度),就好像一个人牛不牛逼,首先他自己要很牛逼,然后很多人说他牛逼,最后说他很牛逼的人也要很牛逼。
作者回复: 同学理解的很透彻!
2 - Ling2019-11-21其实提出阻尼系数,还是为了解决某些网站明明存在大量出链(入链),但是影响力却非常大的情形。比如说 www.hao123.com 一样的导航网页,这种网页就完全是导航页,存在极其多出链;还有各种搜索引擎,比如 www.baidu.com、www.google.com 这种网站,基本不存在出链,但是入链可能非常多。这两种网站的影响力其实非常大。
作者回复: 更符合人们实际浏览网页的场景
4 - S.Mona2019-10-16PageRank和机器学习和数据分析的关系是怎样的?
作者回复: PageRank是基于图论的影响力模型,也是机器学习,数据分析的10大算法之一。机器学习和数据分析 很多时候概念有重叠,两者都是用数据解决问题,使用到很多模型,比如PageRank
3 - 听妈妈的话2019-03-23有个人博客的人互互相交换友链,也是为了提高搜索引擎收录的rank吗?3
- 白夜2019-02-251.把影响力转化为每日使用时间考虑。 在感兴趣的人或事身上投入了相对多的时间。对其相关的人事物也会投入一定的时间。 那个人或事,被关注的越多,它的影响力/受众也就越大。而每个人的时间有限,一般来说最多与150人保持联系,相当于最多有150个出链。 其中,一部分人,没人关注,只有出链没有入链,他们就需要社会最低限度的关照,这个就是社会福利(阻尼)。 2.矩阵以前学了一直不知道在哪里可以应用,今天学了用处感觉还蛮爽的。展开
编辑回复: 矩阵在推导的过程中还是有用的,现在很多函数都封装好了,可以直接使用,所以矩阵接触的就少了。自己能跑通了确实会比较爽。
3 - 王彬成2019-02-25一、学完今天的内容,你不妨说说 PageRank 的算法原理? 1、PageRank 的算法原理核心思想: -如果一个网页被很多其他网页链接到的话说明这个网页比较重要,也就是PageRank值会相对较高; -如果一个PageRank值很高的网页链接到一个其他的网页,那么被链接到的网页的PageRank值会相应地因此而提高。 2、公式 PR(u)=PR(v1)/N1+PR(v2)/N2+…… 其中PR(u), PR(v1) 为页面影响力。N1, N2是v1, v2页面对应的出链总数。 3、算法过程 1)给每个页面分配相同的PR值,比如PR(u)=PR(v1)=PR(v2)=……=1 2)按照每个页面的PR影响力计算公式,给每个页面的PR值重新计算一遍 3)重复步骤2,迭代结束的收敛条件:比如上次迭代结果与本次迭代结果小于某个误差,我们结束程序运行;或者比如还可以设置最大循环次数。 二、你还能说一些 PageRank 都有哪些应用场景吗? 引用链接:https://36kr.com/p/214680.html 1、研究某段时间最重要的文学作品 2、研究与遗传有关的肿瘤基因 3、图书馆图书推荐展开
编辑回复: 最有影响力的文学作品,肿瘤基因,图书推荐 这几个场景不错。
3 - FeiFei2019-08-27PageRank原理: 通过聚合入链和出链的权重,来判断自身的排序。 因为可能没有入链或者外链,因此加入阻尼因子d,来将这种情况规避。
作者回复: 对 阻尼因子是为了避免Rank Leak, Rank Sink的情况
2 - sunny2019-02-27这个计算PR权重的时候,是计算对象的每个入链的权重除以出链数量的之和,那从一开始计算的时候每个页面需要有个原始的权重值才行,这个原始权重是否就是1
编辑回复: 针对节点的初始权重:如果N个节点的总权重是1,那么可以设置每个节点的权重为1/N
2 - Geek_34dbb72020-05-17淘宝商品流量,某件商品流量越大,销量也会越好,但也要排除刷单
作者回复: 需要排除刷单。
1 - Geek_c9fa4e2020-04-29PageRank算法原理: 一个网页的影响力=所有入链集合页面的加权影响力之和。 简单来说,根据你周围的人来去判断你这个人得影响力。
作者回复: 总结的很棒
1 - Simon2020-04-08为什么Rank Leak会造成PR为0,怎么算的?
作者回复: 如果一个网页没有出链 ,就会吸收其它网页的PR不释放,最终会导致其它网页的PR为 0 ,这种现象叫做 等级泄露 。 就如我们Rank Leak下面的有向图,C节点只有入度没有出度,则转移矩阵中,C节点到其他节点的影响力都是0,则循环计算影响力后,其他节点的影响力将都是0
1 - William~Zhang2019-11-14老师,在计算一个网页u的影响力的时候,用到v的影响力,这是怎么得到的?
作者回复: 这个是通过转移矩阵来计算的,初始的时候 可以按照平均值的方式来划分每个页面的影响力,然后每次都通过转移矩阵来更新这些网页的影响力,多次迭代更新之后,影响力就趋于平稳了
1 - 吃饭睡觉打窦窦2019-07-06为啥等级泄露,我的代码跑出来4个点的pr值没有出现0的情况
编辑回复: 先检查下等级泄露的矩阵,这里设置的是: M=[0 0 0 1/2] [1 0 0 0 ] [0 0 0 1/2] [0 1 0 0 ] 然后看下你迭代的次数。参考代码: import numpy as np a_leak = np.array([[0, 0, 0, 1/2], [1, 0, 0, 0], [0, 0, 0, 1/2], [0, 1, 0, 0]]) b = np.array([1/4, 1/4, 1/4, 1/4]) w = b print(a1) for i in range(100): w = np.dot(a_leak, w) print(w)
共 3 条评论1 - lipan2019-06-12最后图解。早期搜索引擎问题,写的是k-means算法的流程。1
- Soul of the Drago...2021-04-24PageRank算法的原理:PageRank算法首先根据不同网页节点的出链数量计算出它们的跳转概率并构成转移矩阵,然后指定各个节点的初始影响力,两个矩阵相乘形成第一次转移,之后不断用 转移矩阵乘以新形成的影响力矩阵,反复迭代,直至第n次后影响力矩阵不再发生变化,各个网页的影响力趋于平衡。 实际例子:一个演员如果都是与知名导演合作,并且演的都是重要角色,说明这个演员在圈内的影响力较高。展开