我们向搜索引擎提交一个查询,搜索引擎会从先到后列出大量的结果,排序的不同带来的经济效应也不同,我们想要的就是让自己的搜索结果靠前,最好是能得到NO.1。那么这些搜索结果排序的标准是什么呢?
还是看看百度搜索研发部以求医为例谈搜索引擎排序算法的基础原理。
比如,如果我牙疼,应该去看怎样的医生呢?假设只有三种选择:
A医生,既治眼病,又治胃病;
B医生,既治牙病,又治胃病,还治眼病;
C医生,专治牙病。
A医生肯定不在考虑之列,B医生和C医生之间,貌视更应该选择C医生,因为他更专注,更适合我的病情。假如再加一个条件:B医生经验丰富,有二十年从医经历,医术高明,而C医生只有五年从医经验,这个问题就不那么容易判断了,是优先选择更加专注的C医生,还是优先选择医术更加高明的B医生,的确成了一个需要仔细权衡的问题。
至少,我们得到了一个结论,择医需要考虑两个条件:医生的专长与病情的适配程度、医生的医术。大家肯定觉得这个结论理所当然,而且可以很自然地联想到,搜索引擎排序不也是这样吗,既要考虑网页内容与用户搜索查询的匹配程度,又要考虑网页本身的质量。
但是,怎么把这两种因素结合起来,得到一个,而不是两个或多个排序标准呢?简单的加减乘除是不够严谨的,最好能跟数学这样坚实的学科联系起来。人类在古代就能建造出高楼,但要建造出高达数百米的摩天大厦,如果没有建筑力学、材料力学这样坚实的学科作为后盾,则是非常非常困难的。同理,搜索引擎算法要处理上亿的网页,也需要更为牢固的理论基础。
求医,病人会优先选择诊断准确、治疗效果好的医生。而对于搜索引擎来说,一般按网页满足用户需求的概率从大到小排序。如果用q表示用户给出了一个特定的搜索查询,用d表示一个特定的网页满足了用户的需求,那么排序的依据可以用一个条件概率来表示:
这个简单的条件概率,将搜索引擎排序算法与概率论这门坚实的学科联系了起来。可以看到,搜索引擎的排序标准,是由三个部分组成的:搜索查询本身的属性P(q)、网页本身的属性P(d)、两者的匹配关系P(q|d)。对于同一次查询来说,所有网页对应的P(q)都是一样的,因此排序时可以不考虑,即
搜索引擎为了提高响应用户搜索查询的性能,需要事先对所有待查询的网页做预处理。预处理时,搜索引擎预处理只知道网页,还不知道用户查询,因此需要倒过来计算,即分析每个网页能满足哪些需求,该网页分了多大比例来满足该需求,即得到公式右边的第一项P(q|d),这相当于医生的专注程度。
比如,一个网页专门介绍牙病,另一个网页既介绍牙病又介绍胃病,那么对于“牙疼”这个查询来说,前一个网页的P(q|d)值就会更高一些。
公式右边的第二项P(d),是一个网页满足用户需求的概率,它反映了网页本身的好坏,与查询无关。假如要向一个陌生人推荐网页(我们并不知道他需要什么),那么P(d)就相当于某个特定的网页被推荐的概率。在传统的信息检索模型中,这个不太被重视,之前都试图只根据查询与文档的匹配关系来得到排序的权重。而实际上,这个与查询无关的量是非常重要的。
假如我们用网页被访问的频次来估计它满足用户需求的概率,可以看出对于两个不同的网页,这个量有着极其巨大的差异:有的网页每天只被访问一两次,而有的网页每天被访问成千上万次,这对于排序非常重要。
总而言之,这个公式模型告诉了我们网页与查询的匹配程度,和网页本身的好坏都是参与排序排名的重要因素。
怎么样?文章中的内容在现在是不是有很多都似曾相似,是不是在互联网上看到很多文章都和这类似?其实很多内容都是从这里衍生出去的。比如搜索引擎的综合得分排序、比如关键词与网页内容的相关度、比如网页本身好坏对排序影响等等。
一个最简单的例子,著名的搜索引擎排序算法pagerank算法,其实就是为了弥补传统算法对P(d)值(页面本身好坏判断)的不足而产生的,Pagerank是对网页好坏判断的一个不错的标准。而现在的网页点击量、停留时间、跳出率、页面访问速度等都是对网页满足用户需求概率的预估,这一个因素越来越重要。
其实也是大篇幅的在谈谈网页本身好坏这一点。随着用户时代来临,用户投票越来越影响搜索排名,而用户主要衡量的除了需求满足外就是网页本身质量。所以,网页本身质量不管对于用户还是搜索引擎,在排序上都变得越来越重要。
一句话,很多时候需要透过现象去看本质,而你看透这个本质后,再看其他现象,一切都那么明了。谢谢阅读,希望能帮到大家,请继续关注脚本之家,我们会努力分享更多优秀的文章。