【读书笔记】数学之美2-搜索引擎

8.简单之美——布尔代数和搜索引擎

建立一个搜索引擎大致需要做的几件事情:

  1. 自动下载尽可能多的网页;
  2. 建立快速有效的索引;
  3. 根据相关性对网页进行公平准确的排序。

这就是搜索的“道”。

关键词=布尔运算(词1,词2,词3);接着判断词i是否在文献中,以得到一串二进制数;再根据几个词的布尔关系做布尔运算;最终便得到满足要求的文献。

由于索引之大,一开始是依靠分布式的方式存储到不同的服务器上 ,然后每接受一个查询,这个查询就被分发到许许多多的服务器中,这些服务器同时并行处理用户请求;后来再大,就变成根据网页的重要性、质量和访问频率建立常用和不常用等不同等级别的索引。

但是无论索引多么复杂,原理上依然非常简单,即等价于布尔运算。

9.图论和网络爬虫

第八章讲到了如何建立搜索引擎的索引,那么如何自动下载互联网所有的网页呢?这需要用到图论中的遍历算法

图论就是节点+连接节点的弧,而遍历算法有两种:

  1. 广度优先搜索(Breadth-First Search,BFS)
  2. 深度优先搜索(Depth-First Search,DFS)

互联网其实就是一张大图而已——可以把每一个网页当作一个节点,把那些超链接当做连接网页的弧。用图的遍历算法,自动地访问每一个网页并把它们存起来。完成这个功能的程序叫做“网络爬虫”。

10.PageRank——Google的民主表决式网页排名技术

搜索引擎返回了成千上万条结果,那么应该如何排序呢?无异于两组信息:关于网页的质量信息,以及这个查询与每个网页的相关性信息

10.1 PageRank算法的原理

核心在于:在互联网上,如果一个网页被很多其他网页所链接,说明它受到普遍的承认和信赖,那么它的排名就高(就像是学术论文的引用量和重要因子,越高那它的排名也就越高)。

理论问题解决了,又遇到实际问题。因为这个量实在是太大了,于是佩奇和布林利用了稀疏矩阵计算的技巧,大大简化了计算量。而后Google又发明了并行计算工具MapReduce,使得PageRank的并行计算完全自动化了。

网页排名算法的高明之处在于它把整个互联网当作一个整体来对待。这无意中符合了系统论的观点。

10.2 PageRank的计算方法

假定向向量

\mathbf{B=(b_{1},b_{2},b_{3},\cdot \cdot \cdot ,b_{N})^{T}}    (10.1)

为第一、第二、第三、...第N个网页的网页排名。矩阵A为网页之间链接的数目,其中a(mn)代表第m个网页指向第n个网页的链接数。

初试假设:所有网页排名都是1/N,即各个网页的概率是一样的,不确定性最大,熵最大:

\mathbf{B_{0}=(\frac{1}{N},\frac{1}{N},\cdot \cdot \cdot \frac{1}{N})}   

接着就是进行迭代运算:

\mathbf{B_{i}=A\cdot B_{i-1}}    (10.2)

直至Bi和B(i-1)之间的差异非常小,接近于零时,停止迭代,算法结束。一般来讲10次就收敛了。

由于网页之间链接的数量相比互联网的规模非常稀疏,因此计算网页的网页排名也需要对零概率或者小概率事件进行平滑处理。则公式(10.2)就变成:

\mathbf{B_{i}=[\frac{\alpha }{N}\cdot I+(1-\alpha )A]\cdot B_{i-1}}    (10.3)

其中N是互联网网页的数量,α是一个(较小的)常数,I是单位矩阵

 

11.如何确定网页和查询的相关性

影响搜索引擎质量的诸多因素,除了用户的点击数据之外,可以被归纳成下面四大类:

  1. 完备的索引;
  2. 对网页质量的度量;
  3. 用户偏好;
  4. 确定一个网页和某个查询的相关性的方法。

11.1 搜索关键词权重的科学度量TF-IDF

根据网页的长度,对关键词的出现次数进行归一化,也就是用关键词的次数除以网页的总字数。把所得的商成为“关键词频率”(Term Frequency)

由于关键词中各分词的分量应该是不一样的,所以必须设定不同的权重,且所设应满足下面两个条件:

  1. 一个词的预测主题的能力越强,权重越大,反之,权重越小;
  2. 停止词的权重为零

假定一个关键词w在Dw个网页中出现过,那么Dw越大,w的权重越小,反之亦然。如此称为“逆文本频率指数”(Inverse Document Frequency),它的公式是:

\mathbf{log(\frac{D}{D_{w}})}    (11.1)       其中D是全部网页数。(这个公式其实就是前面的交叉熵公式所演变而来)

所以相关性计算的公式就为:

\mathbf{TF_{1}\cdot IDF_{1}+TF_{2}\cdot IDF_{2}+\cdot \cdot \cdot +TF_{N}\cdot IDF_{N}}    (11.2)

 

12.有限状态机和动态规划——地图与本地搜索的核心技术

就是我们日常使用最多的功能:确认地点、查看地图、查找路线。而新的技术使得我们省去了自行查地图、规划路线的时间和经理。其中只有三项关键技术:

  1. 利用卫星定位(传统的导航仪都可以做到)
  2. 地址的识别(有限状态机)
  3. 根据用户输入的起点和终点,在地图上规划最短路线或者最快路线(动态规划)

12.1 地址分析和有限状态机

总的来说就是,用有限状态机来识别输入的地址是否合理。有限状态机是一个特殊的有向图,它包括一些状态(节点)和连接这些状态的有向弧。

当用户输入的地址不太标准或者有错别字时,有限状态机会束手无策,因为它只能进行严格的匹配。为了解决这个问题,我们希望可以看到进行模糊匹配,并给出一个字符串为正确地址的可能性。为了实现这一目的,科学家们提出了基于概率的有限状态机。这种基于概率的有限状态机和离散的马尔科夫链基本上等效。

12.2 全球导航和动态规划

动态规划,其实就是将一个大问题分解成几个小问题,通过求解得几个局部最优解,最后得到大问题的最优解。

疑问:我觉得...这样会不会最终是收敛于一个局部最优解,而不是全局最优解,就像决策树的算法一般。不知道是怎么保证其收敛于全局最优解的?!会不会是因为决策树的最终目的地是不一样的,而有限状态机的最终目的地是“结束”,无论哪条路径都是一样的,所以基于动态规划的有限状态机可以保证全局最优解。

13.Google AK-47的设计者——艾米特·辛格博士

  1. 做事情的哲学,先帮助用户解决80%的问题,再慢慢解决剩下的20%的问题;
  2. 所选择的方案要容易解释每一个步骤和方法背后的道理,这样不仅便于出了问题时查错(Debug),而且容易找到今后改进的目标;
  3. 在倡导靠机器学习和大数据时,也必须要求能对机器学习出来的参数和公式给予合理的物理解释。

   

猜你喜欢

转载自blog.csdn.net/qq_29567851/article/details/83505858
今日推荐