zoukankan      html  css  js  c++  java
  • 【百度搜索研发部】以求医为例谈搜索引擎排序算法的基础原理(转)

    我们向搜索引擎网站提交处理一个查问,搜索引擎网站会从先到后列出数量多的最后结果,这些个最后结果排序的标准是啥子呢?这个看似简单的问题,却是信息检索资深专家们研讨的中心困难的问题之一。

    为理解释明白这个问题,我们来研讨一个比搜索引擎网站更加古老的话题:求医。譬如,假如我牙疼,应当去看怎样的医生呢?如果我只有三种挑选: 

    A医生,既治眼病,又治胃病; 

    B医生,既治牙病,又治胃病,还治眼病; 

    C医生,专治牙病。 

    A医生肯定不在思索问题之列。B医生和C医生之间,貌视更应当挑选C医生,由于他更专注,更适应我的病情。如果再加一个条件:B医生内行,有二十年从医经历,医疗技术高超,而C医生只有五年从医经验,这个问题就不那末容易判断了,是优先挑选更加专注的C医生,仍然优先挑选医疗技术更加高超的B医生,确实成了一个需求仔细衡量的问题。 

    至少,我们获得了一个论断,择医需求思索问题两个条件:医生的专长与病情的适配程度;医生的医疗技术。大家肯定感到这个论断不容置疑,并且可以很天然地联想到,搜索引擎网站排序不也是这么吗,既要思索问题网页内部实质意义与用户查问的般配程度,又要思索问题网页本身的品质。不过,怎么把这两种因素接合起来,获得一个,而不是两个或多个排序标准呢?如果我们把这两种因素表达成数字,最后的排序根据是把这两个数字加起来,仍然乘起来,或是按决策树的方法把他们团体起来?若是加起来,是简单相加,仍然带权重加呢? 

    我们可以依据直觉和经验,经过试错的方法,把这两个因素接合起来。但更好的方法是我们能找到一个明确的根据,最好能跟算术这么坚实的学科结合起来。提起来,根据素朴的经验,人的总称在古代就能建筑出高楼;但要建筑出高达数百米的 挨天大厦,假如没有建造力学、材料力学这么坚实的学科作为后盾,则是十分十分艰难的。同理,根据素朴的经验构建的搜索引擎网站算法,用来处置上万的网页聚齐应当是没问题的;但要检索上亿的网页,则需求更为坚固的理论基础。 

    求医,病人会优先挑选诊断正确、医治效果好的医生;对于搜索引擎网站来说,普通按网页满意用户需要的几率从大到小排序。假如用q表达用户给出了一个特别指定的查问,用d表达一个特别指定的网页满意了用户的需要,那末排序的根据可以用一个条件几率来表达: 

    P(dq)

    这个简单的条件几率,将搜索引擎网站排序算法与几率论这门坚实的学科结合了起来,这就像在沧海中航行的船舶装备了南针同样。利用贝叶斯公式,这个条件几率可以表达为:

    可以明白地看见,搜索引擎网站的排序标准,是由三个局部组成的:查问本身的属性P(q);网页本身的属性P(d);两者的般配关系P(qd)。对于同一次查问来说,全部网页对应的P(q)都是同样的,因为这个排序时可以不思索问题,即

    公式左面,是已知用户的查问,求网页满意该用户需要的几率。搜索引擎网站为了增长响应用户查问的性能,需求事前对所要等待查问的网页做预处置。预处置时,只晓得网页,不晓得用户查问,因为这个需求倒过来计算,即剖析每个网页能满意哪一些需要,该网页分了多大比例来满意该需要,即获得公式右面的第1项P(qd),这相当于上文绍介的医生的专门程度。譬如,一个网页专门绍介牙病,另一个网页既绍介牙病又绍介胃病,那末对于“牙疼”这个查问来说,前一个网页的P(qd)值便会更高一点。

    公式右面的第二项P(d),是一个网页满意用户需要的几率,它反映了网页本身的好坏,与查问无关。如果要向一个陌陌生人引荐网页(我们并不晓得他需求啥子),那末P(d)就相当于某个特别指定的网页被引荐的几率。在传统的信息检索板型中,这一个量不太被看得起,如传统的矢量空间板型、BM25板型,都打算只依据查问与文档的般配关系来获得排序的权重。而其实,这个与查问无关的量是十分关紧的。如果我们用网页被过访的频次来估计它满意用户需要的几率,可以看出对于两个不一样的网页,这个量有着非常很大的差别:有的网页每日只被过访一两次,而有的网页每日被过访成千累万次。能够供给这么很大差别的量,竟长时期被传统的搜索引擎网站疏忽,一直到Google创造了pagerank并让它参加到排序中。Pagerank是对P(d)值的一个不赖的估计,这个因素的参加使搜索引擎网站的效果迅即升涨到达一个新的阶梯。

     这个公式一样应答了上文提出的问题,网页与查问的般配程度,和网页本身的好坏,这两个因素应当怎样接合起来参加排序。这个公式以不可以反驳的理由奉告我们,假如网页与查问的般配程度用P(qd)来表达,网页本身的好坏用P(d)来表达,那末应当按他们的乘积来施行排序。在现代经济活动搜索引擎网站中,需求思索问题更多更细节的排序因素,这些个因素有可能有结果百上千个,要把他们合成一体起来是更加复杂和难题。

    https://seofangfa.com/baidu-tech/sorting-algorithm.html 

  • 相关阅读:
    POJ 2752 Seek the Name, Seek the Fame
    POJ 2406 Power Strings
    KMP 算法总结
    SGU 275 To xor or not to xor
    hihocoder 1196 高斯消元.二
    hihoCoder 1195 高斯消元.一
    UvaLive 5026 Building Roads
    HDU 2196 computer
    Notions of Flow Networks and Flows
    C/C++代码中的笔误
  • 原文地址:https://www.cnblogs.com/wxdlut/p/7479707.html
Copyright © 2011-2022 走看看