AI100问(51)搜索引擎是如何判断网页的重要性的?
Posted AI光影社
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AI100问(51)搜索引擎是如何判断网页的重要性的?相关的知识,希望对你有一定的参考价值。
搜索引擎提供的搜索结果,最基础的要求是与查询词相关,另外一个要求网页足够重要。那么,搜索引擎是如何判断一个网页的重要性的呢?这要归结为一个称为PageRank的排序算法。
我们知道一个网页中往往会有一些超链接,用户点击这些链接会指向其他网页。仔细思考一下,网页设计者为什么会设计这些链接呢?这是因为被链接的网页与当前网页相关,或者有某种联系,或者对了解该网页有所帮助……,总之链接本身提供了一种和网页内容本身无关的信息,这种信息更重要的价值是评价网页彼此之间的相关性。可以认为,如果一个网页被很多网页链接,那么有理由说明该网页比较重要。
如果我们将网页之间的链接关系表示成一张有向图,其中节点表示网页,节点间的边表示两个网页之间存在链接,边的方向代表链接指向,如图1所示。依据前述讨论,如果某个节点被很多边链接,则该节点是一个重要节点,对应的网页比较重要。由此,我们得到了一个判断网页重要性的方法。
图1:描述网页间的链接关系的有向图
然而,实际情况要复杂一点点,这是因为不同的链接本身的重要性是不一样的,来自重要网页的链接比来自普通网页的链接应更受重视,这是因为如果当前网页被某个重要网页链接,说明这个网页自身也是重要的。基于这一思路,在计算网页重要性时可以将链接来源的重要性考虑在内,使得重要性的计算更合理。那么问题来了,当我计算A的重要性时,需要利用链接B->A的源网页B的重要性,回过头来,计算B的重要性时,也有可能用到源网页A的重要性,这样就形成了一个循环,需要一个迭代算法来求解。谷歌的PageRank算法[1]正是这样一种迭代求解算法。
图2:基于PageRank算法对网页计算重要性 [2]
在PageRank算法中,一个网页的PageRank值反应了该网页被访问的概率,概率越大说明网页的重要性越大。假定网页P链接到了网页A,并且P链接到包括A在内的K个链接,PageRank(P)为访问到P的概率,再假定用户访问到P后,按照均匀分布访问P链接到的K个网页,则从P访问A的概率为PageRank(P)/K。如果有n个网页链接到了A,分别为Pi(i=1,2,…,n),而网页Pi分别链接到Ki个网页,则通过这些网页访问A的总概率为通过这些网页访问A的概率之和,即:
除了通过链接访问网页A之外,该网页还有可能被用户随机访问。假设共有N个网页,且被随机访问的概率是均匀分布,则网页A被随机访问的概率为1/N。这样的话,网页A被访问的总概率应为随机访问概率和链接访问概率的加权和,即:
图3:PageRank 迭代过程[3]
需要注意的是,公式(1)是一个迭代计算公式,因为PageRank(A)的计算需要用到PageRank(Pi),因此PageRank是一个迭代算法,每次迭代会对所有网页的PageRank值进行更新,更新后的值用到下一轮迭代中,这一迭代过程持续进行,直到PageRank的计算值收敛为止。实际搜索引擎中,网页的PageRank值是线下计算好的,处理搜索请求的时候直接应用就可以了。由于互联网上的网页是动态变化的,每隔一段时间,PageRank就需要重新计算一次,以满足网页动态变化的需求。
参考文献:
[1].Page L, Brin S, Motwani R, et al. The PageRank citation ranking: Bringing order to the web[R]. Stanford InfoLab, 1999.
[2].How to get web traffic from Google, https://www.ethanhein.com/wp/2010/how-to-get-web-traffic-from-google/
[3].https://sandipanweb.files.wordpress.com/2017/09/anipr.gif?w=676
By:清华大学 马少平,王东
以上是关于AI100问(51)搜索引擎是如何判断网页的重要性的?的主要内容,如果未能解决你的问题,请参考以下文章