搜索引擎排序不也是这样吗,既要考虑网页内容与用户查询的匹配程度,又要考虑网页本身的质量。但是,怎么把这两种因素结合起来,得到一个,而不是两个或多个排序标准呢?假如我们把这两种因素表示成数值,最终的排序依据是把这两个数值加起来,还是乘起来,或是按决策树的办法把它们组织起来?如果是加起来,是简单相加,还是带权重加呢?
我们可以根据直觉和经验,通过试错的办法,把这两个因素结合起来。但更好的办法是我们能找到一个明确的依据,最好能跟数学这样坚实的学科联系起来。说起来,依据朴素的经验,人类在古代就能建造出高楼;但要建造出高达数百米的 摩天大厦,如果没有建筑力学、材料力学这样坚实的学科作为后盾,则是非常非常困难的。同理,依据朴素的经验构建的搜索引擎算法,用来处理上万的网页集合应该是没问题的;但要检索上亿的网页,则需要更为牢固的理论基础。
求医,病人会优先选择诊断准确、治疗效果好的医生;对于搜索引擎来说,一般按网页满足用户需求的概率从大到小排序。如果用q表示用户给出了一个特定的查询,用d表示一个特定的网页满足了用户的需求,那么排序的依据可以用一个条件概率来表示:
P(d|q)
这个简单的条件概率,将搜索引擎排序算法与概率论这门坚实的学科联系了起来,这就像在大海中航行的船只装备了指南针一样。利用贝叶斯公式,这个条件概率可以表示为:
贝叶斯公式
可以清楚地看到,搜索引擎的排序标准,是由三个部分组成的:查询本身的属性P(q);网页本身的属性P(d);两者的匹配关系P(q|d)。对于同一次查询来说,所有网页对应的P(q)都是一样的,因此排序时可以不考虑,即
正比相关性
公式左边,是已知用户的查询,求网页满足该用户需求的概率。搜索引擎为了提高响应用户查询的性能,需要事先对所有待查询的网页做预处理。预处理时,只知道网页,不知道用户查询,因此需要倒过来计算,即分析每个网页能满足哪些需求,该网页分了多大比例来满足该需求,即得到公式右边的第一项P(q|d),这相当于上文介绍的医生的专门程度。比如,一个网页专门介绍牙病,另一个网页既介绍牙病又介绍胃病,那么对于“牙疼”这个查询来说,前一个网页的P(q|d)值就会更高一些。
公式右边的第二项P(d),是一个网页满足用户需求的概率,它反映了网页本身的好坏,与查询无关。假如要向一个陌生人推荐网页(我们并不知道他需要什么),那么P(d)就相当于某个特定的网页被推荐的概率。在传统的信息检索模型中,这一个量不太被重视,如传统的向量空间模型、BM25模型,都试图只根据查询与文档的匹配关系来得到排序的权重。而实际上,这个与查询无关的量是非常重要的。假如我们用网页被访问的频次来估计它满足用户需求的概率,可以看出对于两个不同的网页,这个量有着极其巨大的差异:有的网页每天只被访问一两次,而有的网页每天被访问成千上万次。能够提供如此巨大差异的量,竟长期被传统的搜索引擎忽略,直到Google发明了pagerank并让它参与到排序中。Pagerank是对P(d)值的一个不错的估计,这个因素的加入使搜索引擎的效果立即上升到了一个新的台阶。
这个公式同样回答了上文提出的问题,网页与查询的匹配程度,和网页本身的好坏,这两个因素应该怎样结合起来参与排序。这个公式以不可辩驳的理由告诉我们,如果网页与查询的匹配程度用P(q|d)来表示,网页本身的好坏用P(d)来表示,那么应该按它们的乘积来进行排序。在现代商业搜索引擎中,需要考虑更多更细节的排序因素,这些因素可能有成百上千个,要把它们融合起来是更加复杂和困难的问题。
分享到:
相关推荐
在实际设计中,这些知识点可以用来构建高效的定点乘法器电路,通过选择合适的算法和结构,可以满足特定性能需求,例如速度、功耗和面积优化。通过Verilog HDL进行建模和仿真,可以验证设计的正确性和可靠性,确保在...
1. "复数乘法器.txt":这可能是一个关于复数乘法器的设计文档或代码示例。在数字信号处理和其他高级应用中,复数乘法器是必要的,它涉及实部和虚部的乘法运算。 2. "乘法器lut.txt":LUT(查找表)是FPGA中实现逻辑...
总的来说,“九九乘法表-MFC中单文档界面”是一个基础但实用的案例,适合初学者了解MFC和SDI应用程序开发,同时也为有经验的开发者提供了一个快速构建简单应用的模板。通过这个项目,你可以学习到C++编程、MFC框架的...
总的来说,《乘法口诀配合使用的教具》这份文档为教师提供了丰富的资源和灵感,帮助他们创新数学课堂,让乘法口诀的学习变得生动有趣,从而提升学生的学习效果。通过结合实际操作和理论讲解,教具设计和教学方法的...
《蒋小龙乘法器实现说明文档》是一份详细介绍定点乘法器设计的文档,作者蒋小龙在2002年12月29日完成。本文档主要关注Verilog语言在实现乘法器过程中的关键步骤和技术,包括编码、压缩和加法选择等多个方面。 定点...
文档的乘法口诀的乘法口诀演示PPT学习教案.pptx
在这个特定的案例中,"C#开发的乘法口诀"项目是针对C#初学者设计的一个简单练习,目的是帮助他们更好地理解和掌握C#的基本语法和编程逻辑。 乘法口诀是我们小时候学习数学的基础,它展示了1到9之间所有数字的乘积。...
综上所述,针对大整数乘法问题,合理的数据结构选择至关重要。字符数组因其节省空间和易于操作的特点成为首选方案。同时,算法的选择也需要根据具体的应用场景和数据规模来决定。对于一般情况下的大整数乘法,...
根据所提供的文件信息,我们可以挖掘出的知识点主要集中在“算法文档无代码多项式乘法”的主题上。由于文件内容提供的信息比较有限,我们将结合相关知识点进行扩展,以便提供一个详尽的介绍。 多项式乘法是计算机...
总之,这个“九九乘法口诀表(超清晰打印版)”是针对学龄前和小学低年级儿童设计的教育资源,利用Microsoft Word文档的特性提供了高质量的打印版本,便于家庭教学使用。通过这份文档,孩子们可以在轻松愉快的环境中...
设计乘法器时,必须考虑这种表示方式,确保乘法过程中不会引入错误。 乘法器的基本结构通常包括多个部分:预处理器、乘法阵列和累加器。预处理器处理输入的有符号小数,可能包括扩展符号位、对齐小数点等操作。乘法...
128乘法模拟器 c M位乘N位不带符号整数的阵列乘法中加法---移位操作的被加数矩阵.每一部分乘积项ab叫做一个被加数.m*n个被加数可以用m*n个”与门”并行...这种乘法器实现n位×n位时,需要n(n-1)个全加器和n2个”与”门.
在分析时间复杂度时,我们可以看到,无论是递归还是非递归算法,俄式乘法的时间复杂度都是O(n),其中n为输入数字的位数。这是因为每一步都需要处理n位数字。这比传统的乘法算法(如学校教的竖式乘法)的O(n^2)时间...
4. **乘法分配律**:虽然文档没有展示这个定律,但在实际解题时可能会用到。它表明乘法可以分配到加法上,如(a+b)×c=a×c+b×c。 5. **乘法的0和1的特性**:任何数与0相乘得0,任何数与1相乘都等于它本身。如20×1...
在创建99乘法表时,开发者可能使用表格(`<table>`元素)来呈现乘法表的布局,每行每列对应一个乘法表达式。 2. **CSS样式**:CSS用于控制网页的视觉呈现。为了让乘法表看起来清晰且易于阅读,开发者可能使用CSS来...
在处理电子电路设计相关主题时,模拟乘法器是一个重要的概念。它是一种电路,其输出信号的大小与两个输入信号的大小成正比。模拟乘法器在多种应用中非常有用,例如在通信、控制系统、模拟计算以及信号处理等领域。...
这篇文档是针对人教版小学二年级上册数学的一个乘法口诀表的学习教案,旨在帮助学生掌握基础的乘法运算。乘法是数学中的基本运算之一,对于孩子们来说,理解并熟练运用乘法口诀是至关重要的。下面将详细阐述乘法口诀...
在计算机硬件设计中,乘法器是至关重要的组成部分,特别是在数字信号处理和计算密集型应用中。本项目涉及到了32位无符号乘法器和带符号乘法器的Verilog实现,这两种类型的乘法器在不同的计算场景中有各自的用途。 ...
在设计FPGA乘法器时,通常需要考虑算法的效率、资源的使用以及速度等因素。 华莱士树(Wallace Tree)算法是一种用于优化数字乘法器的算法,通过减少多路加法器树的高度来降低乘法操作的延迟。该算法通过使用全加器...