1、背景和问题

  • 据统计超过80%的用户靠搜索引擎获取信息
  • 网站排名是网络搜索引擎的核心
  • 目前Google数据库存储上百亿网页信息, 每天提供查询服务达到3亿多次

2、google查询过程示意图

3、Google搜索的核心算法

  • PageRank是 Google 用于评价一个网页的重要性的一种方法.  通过该方法,  Google 将各个网站进行排名.  用户进行相关搜索时,  Google 会将符合条件的网站按排名顺序输出.
  • PageRank 算法中使用的数学知识包括:正矩阵性质、特征值和特征向量、幂迭代算法、Gauss-Seidel迭代算法等.
  • PageRank 得分是介于 0 和 1 之间的一个数,得分越大表示网页越重要.

4、PageRank算法思想简介

1)、 PageRank基于假设关系

“许多优质的网页中超链接的网页,必定是优质网页”,以此判定所有网页的重要性。

重要性由该网页被访问的概率大小来刻画。

  • 导入链接:单纯意义上的受欢迎度指标
  • 导入链接是否来自受欢迎程度高的:有根据的受欢迎指标
  • 导入链接源页面的导出链接:被选中的概率指标

2)、PageRank 是基于这样一个理论:

  • 若 B 网页上有连接到 A 网页的链接( 称 B 为 A 的导入链接 ),  说明 B 认为 A 有链接价值,是一个“重要”的网页.  当 B 网页级别 ( 重要性 ) 比较高时, 则A 网页可从 B 网页这个导入链接分得一定的级别 ( 重要性 ), 并平均分配给 A 网页上的所有导出链接.(导出链接就是网站或者页面中有指向别的网站的链接)
  • 在PageRank算法中,  一个网页的级别(重要性)大致由下面两个因素决定:该网页的导入链接的数量和这些导入链接的级别(重要性).

5、PageRank计算

1)、邻接矩阵
  • 互联网是一个有向图
  • 每一个网页是图的一个顶点
  • 网页间的每一个超链接是图的一个有向边
  • 用邻接矩阵G来表示有向图,  即,若网页j到网页i有超链接, 则gij=1,  否则为gij=0.

邻接矩阵是一个十分庞大有相当稀疏的方阵(用黑色代表1, 用白色代表0)

  • 用邻接矩阵G来表示图,  即,若网页j到网页i有超链接, 则gij=1,  否则为gij=0.
  • 定义矩阵G的列和与行和

其中 cj(列和) 是页面j的导出链接数目,

     ri(行和) 是页面 的导入链接数目.


2)、转移概率矩阵

  • 假设我们在上网的时候浏览页面并选择下一个页面, 这个过程与过去浏览过哪些页面无关, 而仅依赖于当前所在的页面, 那么这一选择过程可以认为是一个有限状态、离散时间的随机过程, 其状态转移规律可用Markov链描述.
  • 定义转移概率矩阵

3)、85%与15%

  • 但还要考虑到用户虽然在许多场合都顺着当前页面中的链接前进, 但时常又会跳跃到完全无关的页面.
  • 经过统计, Google采用个15%来表示[时常], 即用户在85%的情况下沿着链接前进, 但有15%的情况下突然跳跃到无关的页面中去.
  • 从而修正状态转移矩阵

4)、网页的最终PageRank值.

  • 根据Markov链的基本性质,以上A' 是一个正则Markov链,  存在平稳分布x= (x1,x2,x3, ...,xm),满足

  • x表示在极限状态(转移次数趋于无限)下各网页被访问的概率分布.
  • x定义为网页的PageRank向量,  xi  表示第 个网页的PageRank值. 显然概率越大,  其重要性越高是合理的.
  • 分量 应满足方程

  • 从另一角度看,  网页  j 将它的PageRank值xj 分成cj份,  分别“投票”给它链出的网页.
  • 网页的PageRank值 xk就是所有页面投票给网页k的最终值.

5)、解的讨论

由Markov性质,  A' 的最大特征值是1, 即求特征值1对应的特征向量.

问:上述方程组的解是否唯一解?解是否有意义(即不会出现负数或大于1的数)?

答:上述方程组的解唯一且分量都大于0!

理由:Perron-Frobnius 定理.

6、Perron-Frobnius 定理

1)、如果 A 是正的方阵(所有元素均大于0),  则

A 的谱半径 r(A)>0,其中l1,l2, ... ,ln 为A 的特征值。

l =r (A) 是A 的特征值,  且代数重数为 1,  即为单特征值。

存在唯一的 >0,  满足 A x x,  且

l 是的特征值,  且l ¹r (A), 则|l| <r(A) .

2)、l = 1 是 A 的特征值(Ax=x)的简单证明

7、网页排名举例

例:用PageRank 算法计算下面的小型网络中各网页的排名,  其中取 p=0.85.

解得

x = (0.2675, 0.2524, 0.1323, 0.1698, 0.0625, 0.1156)T


  • 网页1的重要性最高, 虽然2的导入链接数只有1, 但却是网页1唯一的外链,  所以其重要性也显著提高!
  • 网页3虽是网页2的外链, 但只能得到网页2一半的分数.

事实上, 问题还不是这么简单!

  • Google要面对上百亿的网页, 计算量特别大,
  • 尤其计算特征值Ax=x对计算能力要求特别高,需要关注计算的复杂度,这里用到许多数值计算工具。
  • 此外还要讨论网页的索引、查询等方法。

参考资料:google查询搜索图示过程

Google搜索引擎的奥秘相关推荐

  1. 【图】2015年Google搜索引擎排名算法(完整版)

    2015年中旬,国外SEO网站发布了一份2015年Google搜索引擎排名算法的最新数据,从各个角度看待搜索引擎算法排名影响因素的变化.其组织每两年都会成立一个SEO专家调查小组,针对"Go ...

  2. Google搜索引擎的十大应用

    Google搜索引擎的十大应用 1.汉语拼音输入检索 为了方便使用中文的用户在网上搜索,Google允许用户直接在键盘上输入汉语拼音来检索相关事物,例如: 输入 shanghaishikebiao 检 ...

  3. 火狐浏览器(Google搜索引擎)点击新链接默认为在新版标签页打开链接

    参考链接1: (已解决)使火狐浏览器默认在新版标签页打开链接_可可与鱼的博客-CSDN博客_火狐浏览器设置打开网页在新的标签 参考链接2: google设置在新标签页打开的方法_科大云炬的博客-CSD ...

  4. Google搜索引擎使用技巧大全

    Google搜索引擎使用技巧大全 一,GOOGLE简介 Google(www.google.com)是一个搜索引擎,由两个斯坦福大学博士生Larry Page与Sergey Brin于1998年9月发 ...

  5. 修改google搜索引擎非hk方法

    C:\Users\Administrator\AppData\Local\360Chrome\Chrome\User Data中找到Local State搜索hk并删除,然后修改Local State ...

  6. 要想文章上Google搜索引擎首页,SEO 要做好下面7个点优化

    当Google SEO 除了关键字分析,还学会语意判读,你该如何花最少的力气抢占关键字首页?接着,我们会从过往撰写SEO 文章的经验中,汇整出一套SEO 文章的撰写步骤,并且在讲解步骤之前会先一一拆解 ...

  7. 采集google搜索引擎的10个经典方法

    google搜索引擎提供网站搜索.新闻搜索.网页数据抓取.全网搜索.网页爬虫.采集网站数据.网页数据采集软件.python爬虫.HTM网页提取.APP数据抓包.APP数据采集.一站式网站采集技术.BI ...

  8. Google搜索引擎工作原理简介

    实在是写不出来高质量的原创文章,今天再次转载一篇网络上看到的文章吧,叫Google搜索引擎工作原理简介,其中比较详细的介绍和分析了google搜索引擎相关工作机制,下面是原文内容: 这篇文章是基于Go ...

  9. Google搜索引擎原理

    来源:csdn 作者:蝶澈 2007-12-25 22:36 这篇文章中,介绍了google,它是一个大型的搜索引擎(of a large-scale search engine)的原型,搜索引擎在超 ...

最新文章

  1. DDD+中台+微服务,yyds
  2. 【Android 逆向】启动 DEX 字节码中的 Activity 组件 ( 使用 DexClassLoader 获取组件类失败 | 失败原因分析 | 自定义类加载器没有加载组件类的权限 )
  3. c++11 auto 类型说明符详解
  4. qt无法找到动态链接库文件怎么办?
  5. jqGrid细节备注—pager文字的设置,更改默认的提交方式
  6. Android ping命令 -- Runtime
  7. ubuntu终端命令停止_从命令行关闭Linux计算机的5种方法
  8. (大数据工程师学习路径)第五步 MySQL参考手册中文版----MySQL视图
  9. React Native : 自定义视图
  10. 《数学之美》—闪光的不一定是金子
  11. eclipse maven 打war包的几种方式
  12. sql处理null值
  13. 人工智能十大算法_【读书】人工智能和大数据:新智能的诞生/人工智能科学与技术丛书...
  14. 初学用于华为鸿蒙系统(HarmonyOS)的编程开发工具HUAWEI DevEco Studio
  15. Linux命令大全(超详细版)
  16. 计算机sci转让,sci论文有没有转让的
  17. 数据分析——从入门到精通(十二)
  18. linux 搭建论坛(虚拟机)
  19. mysql:Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)解决方法
  20. 魅蓝e android无限重启,魅蓝E怎么Root?魅蓝E一键ROOT教程(系统自带Root功能)

热门文章

  1. Python Tutorial中英双语对照文档5
  2. H5新特性 - 新增标签
  3. 软件工程学习笔记(一)
  4. uniapp组件-uni-rate评分
  5. 电商系统-优惠券部分设计
  6. 【知识总结】分块和值域分块
  7. Linux下文件的备份
  8. SQL--ExecuteQuery和ExecuteNonQuery
  9. oracle数据库问题吗,Oracle数据库常见问题答疑一
  10. Qt编写安防视频监控系统15-远程回放