搜索引擎排序不也是这样吗,既要考虑网页内容与用户查询的匹配程度,又要考虑网页本身的质量。但是,怎么把这两种因素结合起来,得到一个,而不是两个或多个排序标准呢?假如我们把这两种因素表示成数值,最终的排序依据是把这两个数值加起来,还是乘起来,或是按决策树的办法把它们组织起来?如果是加起来,是简单相加,还是带权重加呢?
我们可以根据直觉和经验,通过试错的办法,把这两个因素结合起来。但更好的办法是我们能找到一个明确的依据,最好能跟数学这样坚实的学科联系起来。说起来,依据朴素的经验,人类在古代就能建造出高楼;但要建造出高达数百米的 摩天大厦,如果没有建筑力学、材料力学这样坚实的学科作为后盾,则是非常非常困难的。同理,依据朴素的经验构建的搜索引擎算法,用来处理上万的网页集合应该是没问题的;但要检索上亿的网页,则需要更为牢固的理论基础。
求医,病人会优先选择诊断准确、治疗效果好的医生;对于搜索引擎来说,一般按网页满足用户需求的概率从大到小排序。如果用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之间所有数字的乘积。...
综上所述,针对大整数乘法问题,合理的数据结构选择至关重要。字符数组因其节省空间和易于操作的特点成为首选方案。同时,算法的选择也需要根据具体的应用场景和数据规模来决定。对于一般情况下的大整数乘法,...
根据所提供的文件信息,我们可以挖掘出的知识点主要集中在“算法文档无代码多项式乘法”的主题上。由于文件内容提供的信息比较有限,我们将结合相关知识点进行扩展,以便提供一个详尽的介绍。 多项式乘法是计算机...
设计乘法器时,必须考虑这种表示方式,确保乘法过程中不会引入错误。 乘法器的基本结构通常包括多个部分:预处理器、乘法阵列和累加器。预处理器处理输入的有符号小数,可能包括扩展符号位、对齐小数点等操作。乘法...
乘法是数学中的基础运算之一,而100×100乘法表和100以内的乘法口诀则是这一基础中的基石。它们不仅对于儿童来说是学习数学的重要工具,也是成人培养逻辑思维、提高计算能力不可或缺的训练材料。掌握这些内容,对于...
文档格式选择了Microsoft Word,即“msword”标签,这使得文件具有广泛的兼容性和操作性。无论是Mac还是PC平台,大多数家庭都能轻松打开和打印这份文档。同时,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...
在本文中,我们将深入探讨如何实现一个64位乘法器,特别关注使用分时复用(Time-Multiplexing)技术以及在Verilog/FPGA环境中进行设计的方法。标题中的"source_code_source_code_乘法器复用_64乘法器_分时复用_...
在创建99乘法表时,开发者可能使用表格(`<table>`元素)来呈现乘法表的布局,每行每列对应一个乘法表达式。 2. **CSS样式**:CSS用于控制网页的视觉呈现。为了让乘法表看起来清晰且易于阅读,开发者可能使用CSS来...
在处理电子电路设计相关主题时,模拟乘法器是一个重要的概念。它是一种电路,其输出信号的大小与两个输入信号的大小成正比。模拟乘法器在多种应用中非常有用,例如在通信、控制系统、模拟计算以及信号处理等领域。...
在计算机硬件设计中,乘法器是至关重要的组成部分,特别是在数字信号处理和计算密集型应用中。本项目涉及到了32位无符号乘法器和带符号乘法器的Verilog实现,这两种类型的乘法器在不同的计算场景中有各自的用途。 ...