写点什么

架构师训练营 W13 作业

用户头像
Geek_f06ede
关注
发布于: 2021 年 01 月 15 日

Google 搜索引擎是如何对搜索结果进行排序的?(请用自己的语言描述 PageRank 算法。)


Google 对搜索结果的排序主要基于两方面的因素,一是网页本身的质量,二是网页与搜索关键词的相关程度。前者主要是基于 PageRank 算法来计算,后者主要基于 TF-IDF 算法来计算。

PageRank 算法

PageRank 算法是 Google 的核心技术之一,也是 Google 搜索结果显著优于其他搜索引擎的关键所在。它的基本原理是:一个网页的权重,是由其他链接到它的网页的权重之和决定的。说白了这就是一个民主投票策略,简单来说,一个网页获得的来自其他网页的链接越多,那么说明它越重要,越受到大家的认可;另一方面,高权重的网页可以提升其链接到的网页的权重。

PageRank 算法将整个互联网视为一个整体进行计算,由于网页之间是相互链接的,一个网页的排名由其他指向它的网页决定,而那些指向它的网页的排名又需要使用同样的算法得出,因此最终整个运算变成了一个递归运算。为了避免出现死循环,实际操作上先为所有网页取一个相同的初始权重值,然后逐步迭代计算每个页面的权重,并在两次迭代计算差别足够小时停止迭代,这时候运算结果就已经收敛到基本准确。

在实际实现上,还需要考虑两种特殊的情况,一是页面只有入链没有出链,二是单个或多个页面之间的链接形成闭环,这两种情况都会导致这些页面不断吸收其他页面的 PR 值,使得其他页面的 PR 值最终趋于 0,这显然是不合理的。既然理论上无法解决这个问题,则从实际出发,无论是没有出链的情况还是闭环链接的情况,对于真实的访问者来说,他都有一定的概率通过直接输入网址来跳转到其他页面,而不会因为这两种特殊情况而陷入僵局。因此,最终的改进算法对网页权重的考量结合了来自其他页面的入链,以及用户直接通过输入网址进入该页面的概率。


对于整个搜索引擎收录的海量网页进行整体计算显然是计算量非常大的,为了便于拆分成 MapReduce 之类的分布式并行计算,PageRank 算法实际上使用了矩阵运算作为每次迭代的计算方式。

TF-IDF 算法

TF 即词频,指的是某个词在网页中出现的频率,它的计算方式是该词在网页中出现的次数除以网页的总词数。对于多个词组成的搜索关键词,整个关键词的词频是其分词过后每个词的词频之和。

IDF 即逆文档频率,指的是一个词的特殊程度,即当页面中出现该词的时候,能够以此确定页面主题的程度,其计算公式是对所有页面总数和包含该词的页面数的商取对数。

针对给定的关键词和页面,计算出该词的 TF 值与 IDF 值的乘积,该乘积越大则表明给定网页与该词的相关性越高。


发布于: 2021 年 01 月 15 日阅读数: 12
用户头像

Geek_f06ede

关注

还未添加个人签名 2019.12.09 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营W13作业