PageRank可以较为直观的理解为是对网页重要性排序的一种算法。

Googel 能在全球互联网搜索引擎中处于较高地位,该算法功不可没。

导 读

早期的搜索引擎通过计算用户查询关键词与网页内容的相关程度来返回搜索结果,即键词匹配算法

但该种搜索引擎会极容易遭受Term Spam攻击,导致用户体验满意度大打折扣。

例如,在页面上添加一个像“电影”这样的术语,并做数千次,搜索引擎就会认为这是一个非常重要的电影页面。当用户搜索“电影”时,搜索引擎将首先列出该页面。

Web页面数量非常巨大,所以一个检索的结果条目数量也非常多,用户不可能从如此众多的结果中一一查找对自己有用的信息,所以,一个好的搜索引擎必须想办法将“质量”较高的页面排在前面。

在实际使用搜索引擎时,我们并不太关心页面返回的个数,而在乎前一两页是否能找到我们所需要的。

因此,对搜索结果按重要性合理的排序就成为搜索引擎的最大核心。

在上述背景下,谷歌的创始人提出了PageRank算法,该算法借鉴学术界论文重要性的评估方法:谁被引用的次数多,谁就越重要

PageRank算法的核心细想

1、数量指标,如果越多的网页指向A,即A的入链数量越多,则该网页越重要;

2、质量指标,如果指向A的网页质量越高,则A越重要,即权重因素不同。

PageRank将数量指标和质量指标有效结合,形成一个有效的评估值,该值越大,代表页面越重要即页面搜索结果返回时越靠前。

PageRank值的计算过程

假设有四个页面,抽象结构如下:

  • 初始时每个页面的PR值为1/N,这里就是1/4。

  • 每个页面跳转到页面上每个被链页面的概率是相同的。例如A页面链向B、C、D,所以一个用户从A跳转到B、C、D的概率各为1/3。

  • 每个页面的PR值由所有指向它的页面的PR值共同确定。

(一)数学表达式计算:

计算网页B的PR值:

B的入链有A和D ,意味着A和D分别引用了B,并且A跳转到B的概率为1/3,D跳转到B的概率为1/2,因此:

PR(B) = PR(A) + PR(D) = 1/4 * 1/3 + 1/4 * 1/2= 5/24

同理,

PR(A) = PR(B) + PR(D) = 1/4*1/2 + 1/4*1/2 = 1/4

PR(C) = PR(A) + PR(B) = 1/4*1/3 + 1/4 *1/2 = 5/24

PR(D) = PR(A) + PR(C) = 1/4*1/3 + 1/4 = 1/3

所有网页PR值一直迭代计算,终止条件:

1) 每个网页的PR值前后误差小于自定义误差阈值;

2) 迭代次数超过了自定义的迭代次数阈值。

(二)矩阵计算:

构建4*4链接概率转移矩阵,其中i行j列的值表示从页面j跳转到页面i的概率,对照上图构建矩阵如下:

按A-D顺序将页面PR值置成向量v:

矩阵M第一行分别是A、B、C和D转移到页面A的概率,而v的第一列分别是A、B、C和D当前的PR值,因此用M的第一行乘以v的第一列,所得结果就是页面A最新PR值的合理估计。

同理,Mv的结果就分别代表A、B、C、D新PR值:

然后用M再乘以这个新的PR向量,又会产生一个更新的PR向量。

迭代这个过程,可以证明v最终会收敛,即v约等于Mv,此时计算停止。

最终的v就是各个页面的PageRank值。

例如上面的向量经过几步迭代后,大约收敛在(1/4, 1/4, 1/5, 1/4),这就是A、B、C、D最后的PageRank。

终止点问题和陷阱问题

上面的计算的是强连通图,然而现实中并不总会有如此理想的图,事实上会出现各种问题,帮助我们强化算法。

终止点问题:某些网页不指向任何网页。

陷阱问题:是指有些网页不存在指向其他网页的链接,但存在指向自己的链接。

导致怎样的后果呢?

若按照上面公式迭代计算下去,导致前面累计得到的转移概率被清零,最终得到的概率分布向量所有元素几乎都为0。

如何解决上述问题呢?

加入阻尼系数α:假设跳转到当前页面(包括当前页面上的链接)的概率为α,那么跳转到其他页面概率为(1−α)。通常 α 取值为0.85

则最终的数学表达式计算公式和矩阵计算公式分别为:

其中,p1,p2,...,pN是被研究的页面,M(pi)是pi链入页面的数量,L(pj)是pi链出页面的数量,N是网页总数。

其中:e是网页数目的倒数。

其他领域的应用

互联网中存在数以亿计的网页,哪些网页比较重要、值得投放医疗广告呢?

学术论文在引用和被引用的过程中实现了知识的传递,那么哪些论文是学科发展的关键节点呢?

一个由人构成的社会网络中,哪些是“大人物”呢?

在之前的文章中,我们公司也采用该算法对疫情进行了分析

详见 https://mp.weixin.qq.com/s/DBdy8l9dFp34BxtXaETpww

文章参考:

 

https://www.jianshu.com/p/f6d66ab97332

https://www.jianshu.com/p/7485cac02e95

https://www.sohu.com/a/206416048_236505

https://zhuanlan.zhihu.com/p/95050418

Chapter5 LinkAnalysis

- 完 -

想了解更多关于人工智能的资讯

欢迎关注普适极客

技术08期:十大经典数据挖掘算法【PageRank篇】相关推荐

  1. 【十大经典数据挖掘算法】PageRank

    作者简介: Treant 人工智能爱好者社区专栏作者 博客专栏:https://www.cnblogs.com/en-heng 引言 PageRank是Sergey Brin与Larry Page于1 ...

  2. 十大经典数据挖掘算法:SVM

    作者简介: Treant 人工智能爱好者社区专栏作者 博客专栏:https://www.cnblogs.com/en-heng SVM(Support Vector Machines)是分类算法中应用 ...

  3. 【十大经典数据挖掘算法】k-means

    [十大经典数据挖掘算法]k-means https://mp.weixin.qq.com/s/SWlE-KBJ4mVza92nJFX1hg 作者简介: Treant  人工智能爱好者社区专栏作者 博客 ...

  4. 【十大经典数据挖掘算法】Naïve Bayes

    [十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 朴素贝叶斯(Naïve Bayes) ...

  5. 【十大经典数据挖掘算法】C4.5

    [十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 1. 决策树模型与学习 决策树(de ...

  6. k均值例子 数据挖掘_【十大经典数据挖掘算法】k-means

    作者简介: Treant 人工智能爱好者社区专栏作者 博客专栏:https://www.cnblogs.com/en-heng 1.引言 k-means与kNN虽然都是以k打头,但却是两类算法--kN ...

  7. 十大经典数据挖掘算法之k-means

    kmeans聚类理论篇 前言 kmeans是最简单的聚类算法之一,但是运用十分广泛.最近在工作中也经常遇到这个算法.kmeans一般在数据分析前期使用,选取适当的k,将数据分类后,然后分类研究不同聚类 ...

  8. 【十大经典数据挖掘算法】EM

    作者简介: Treant 人工智能爱好者社区专栏作者 博客专栏:https://www.cnblogs.com/en-heng 1.极大似然 极大似然(Maximum Likelihood)估计为用于 ...

  9. 十大经典数据挖掘算法:EM

    作者简介: Treant 人工智能爱好者社区专栏作者 博客专栏:https://www.cnblogs.com/en-heng 1.极大似然 极大似然(Maximum Likelihood)估计为用于 ...

最新文章

  1. Codeforces #536 div2 E (1106E)Lunar New Year and Red Envelopes (DP)
  2. 卸载sharepoint2013
  3. 安装32位mysql报错_在CentOS中安装32位或64位MySql报错error: Failed dependencies解决办法...
  4. 转载--redis密码管理
  5. 科大星云诗社动态20220103
  6. java finalize 析构_close,析构函数和finalize:Java矛盾
  7. LeetCode 9. 回文数
  8. 配置文件上传的Action
  9. bert 是单标签还是多标签 的分类_标签感知的文档表示用于多标签文本分类(EMNLP 2019)...
  10. ASN1对象与OID之间转换的函数
  11. Windows 下mysqldump备份1045错误解决办法
  12. 枚举题——四大明湖排序(本菜优化了一下)
  13. cad快捷栏怎么调出来_cad左边工具栏不见了怎么办|cad工具栏怎么调出来_PC6教学...
  14. javaweb面试题2
  15. 什么是法线贴图 今天教你如何制作法线贴图
  16. 2019-04-01 银行的零售业务和对公业务
  17. 贝叶斯估计理论——引子
  18. QT绘制多边形-----五边形
  19. 小身躯,大志向,宇通智能巴士有哪些黑科技
  20. 计算机网络学习笔记:多路复用(频分多路复用、时分多路复用、波分多路复用、码分多路复用)

热门文章

  1. 从原理到落地,七大维度读懂协同过滤推荐算法
  2. 最新剑桥《AI全景报告》出炉:中国发表机器学习学术研究超过美国
  3. 薅百度GPU羊毛!PaddlePaddle大升级,比Google更懂中文,打响AI开发者争夺战
  4. 一文看懂模糊搜索1.0到3.0的算法迭代历程
  5. 微信高级研究员解析深度学习在NLP中的发展和应用 | 公开课笔记
  6. 能在不同的深度学习框架之间转换模型?微软的MMdnn做到了
  7. 有没有想过,手写一个连接池?
  8. 谈 Kubernetes 的架构设计与实现原理
  9. 数据可视化教程来了!
  10. 重大布局!北京大学,落子上海!