理解和建模人们如何比较文本,设计计算机算法的区别
优采云 发布时间: 2021-06-27 07:22理解和建模人们如何比较文本,设计计算机算法的区别
1.1什么是信息检索
信息检索是一个与信息的结构、分析、组织、存储、搜索和检索有关的领域。来自杰拉德·索尔顿
信息检索是一个涉及信息结构、分析、组织、存储、搜索和检索的领域。
信息检索的主要焦点是文本和文本文件。文档和典型数据库记录的区别:
文档主要是文本和非结构化的。典型的数据库记录是结构化的,具有字段和属性。
结构化数据的含义和格式非常明确,非常容易比较和查询。非结构化数据并不那么容易。以以下为例:
现在考虑有关两家银行合并的新闻报道。故事会有一些属性,例如故事的标题和来源,但主要内容是故事本身。在数据库系统中,这些关键信息通常存储为没有内部结构的单个大属性。提交给网络搜索引擎(例如 Google)的与此故事相关的大多数查询都将采用“银行合并”或“银行收购”的形式。要执行此搜索,我们必须设计一种算法,可以将查询文本与故事文本进行比较,并确定故事是否收录正在搜索的信息。定义单词、句子、段落或整个新闻故事的含义比定义帐户要困难得多,因此比较文本并不容易。理解和建模人们如何比较文本并设计计算机算法以准确执行这种比较是信息检索的核心。
此外,信息检索不仅广泛用于结构化数据和文本内容,还广泛用于多媒体(图像、音频和视频)应用。
信息检索场景:用户将结果输入搜索引擎,得到排序后的结果。
如万维网、企业搜索、垂直搜索(特定主题)、桌面搜索、点对点搜索(在没有任何集中控制的节点或计算机网络中查找信息)
搜索和相关信息检索技术用于广告、情报分析、科学发现、医疗保健、客户支持、房地产等。任何涉及文本集合或其他非结构化信息的应用都需要组织和搜索这些信息。
基于用户查询的搜索(有时称为临时搜索 [ad hoc search],因为可能查询的范围很大且未预先确定)并不是信息检索中研究的唯一基于文本的任务。其他任务包括过滤、分类和问答。过滤或跟踪涉及根据个人兴趣检测感兴趣的故事,并使用电子邮件或其他机制提醒用户。分类使用一组定义的标签或类别(例如 Yahoo! Directory 中列出的标签)并自动将这些标签分配给文档。问答与搜索类似,但针对更具体的问题,例如“珠穆朗玛峰的高度是多少?” Q&A 的目标是返回在文本中找到的特定答案,而不是文档列表。表1.1 总结了信息检索领域的一些方面或维度。
屏幕截图 2018-10-14 PM9.13.17.png
1.2 信息检索的大问题
在使用数十亿网页的商业网络搜索引擎时代,信息检索研究人员的几个关键问题仍然同样重要,就像 1960 年代在收录大约1.5 兆字节文本的文档集合中一样。测试。问题之一是相关性。相关性是信息检索的基本概念。简而言之,相关文档收录人们在向搜索引擎提交查询时正在寻找的信息。虽然这听起来很简单,但在一个人决定某个特定文件是否相关时,有很多因素。在设计用于比较文本和排序文档的算法时,必须考虑这些因素。简单地将查询文本与文档文本进行比较并寻找精确匹配,如在数据库系统中或在 Unix 中使用 grep 实用程序所做的那样,在相关性方面产生非常差的结果。一个明显的原因是语言可以用许多不同的方式来表达同一个概念,通常使用的词是不同的。在信息检索中称为词汇不匹配问题(vocabulary mismatch problem)。
区分主题相关性和用户相关性也很重要。如果文本文档属于同一主题,则该文档与查询主题相关。例如,有关堪萨斯州龙卷风的新闻报道将与有关“恶劣天气事件”的查询相关。提出问题的人(称为用户)可能认为它与这个故事无关。但是,如果她以前看过这个故事,或者这个故事是很多年前的故事,或者这个故事是中国出版社用中文出版的,那么这个故事与用户相关。用户相关性会考虑故事的这些附加特征。
为了解决相关性问题,研究人员提出了检索模型并测试了它们的工作条件。检索模型是匹配查询和文档的过程的正式表示。它是搜索引擎中用于生成文档排序列表的排序算法的基础。一个好的检索模型会找到提交查询的人可能认为相关的文档。一些检索模型侧重于主题相关性,但在实际环境中部署的搜索引擎必须使用收录用户相关性的排名算法。
用于信息检索的检索模型的一个有趣特征是它们通常模仿文本的统计属性而不是语言结构。例如,排名算法通常更关注单词出现的次数,而不是单词是名词还是形容词。更高级别的模型确实收录语言特征,但它们往往是次要的。使用词频信息来表示文本始于 H.P. Luhn (1950s),信息检索的先驱。直到 1990 年代,文本视图才在其他计算机科学领域(如自然语言处理)流行起来。
信息检索的另一个核心问题是评估。由于文档排序的质量取决于它与人们期望的匹配程度,因此有必要尽早开发评估方法和实验程序以获取这些数据并将其用于比较排序算法。 Cyril Cleverdon 在 1960 年代初期开发了评估方法。他使用的两个指标,精确率和召回率,仍然很受欢迎。准确度是一个非常直观的衡量标准。它是检索到的相关文档的比例(检索到的相关文档数/检索到的文档数)。 Recall 是检索到的相关文档的比例(检索到的相关文档数/所有相关文档数)。当使用召回措施时,假设给定查询的所有相关文档都是已知的。这个假设在网络搜索环境中显然是有问题的,但对于一个小的文档测试集,这个指标可能有用。用于信息检索实验的测试集包括一组文本文档、一个典型查询的样本以及每个查询的相关文档列表(相关性判断)。最著名的测试合集是与TREC(Text Retrieval Conference)评测论坛相关的合集。
检索模型和搜索引擎评估是一个非常活跃的领域。目前,大部分时间都集中在使用来自用户交互的大量日志数据,例如点击数据,它记录了在搜索会话期间点击的文档。点击率和其他日志数据与相关性密切相关,因此可以用来评估搜索,但搜索引擎公司除了日志数据之外,仍然使用相关性判断来确保其结果的有效性。
信息检索的第三个核心问题是强调用户及其信息需求(信息需求)。应该很清楚,因为搜索评估是以用户为中心的。搜索引擎用户是质量的最终判断者。关于人们如何与搜索引擎交互的许多研究已经启动,特别是帮助人们表达其信息需求的技术的开发。信息需求是人们向搜索引擎提交查询的根本原因。与对数据库系统的请求(例如银行帐户余额的请求)相反,文本查询对用户实际想要的内容的描述很差。诸如“cat”之类的单个词查询可能是对有关猫的购买地点或百老汇音乐描述的信息的请求。然而,尽管缺乏特定的城市,单词查询在网络搜索中非常普遍。技术问卷、查询扩展和相关反馈使用交互和上下文来重新初始化查询,以生成更好的排名列表。
这个问题将出现在本书中,并将在相当详细的讨论中进行讨论。我们现在有足够的背景来开始讨论信息检索研究的主要产品——即搜索引擎。
1.3 搜索引擎
搜索引擎是信息检索技术在*敏*感*词*文本采集中的实际应用。 Web 搜索引擎是一个明显的例子,但如前所述,搜索引擎可以在许多不同的应用程序中找到,例如桌面搜索或企业搜索。搜索引擎已经存在多年。例如,在线医学文献检索系统 MEDLINE 始于 1970 年代。术语“搜索引擎”最初是指用于文本搜索的专用硬件。但是,从 80 年代中期开始,它逐渐被用作优先使用“信息检索系统”的软件系统的名称,该系统将查询与文档进行比较并生成文档结果的排序列表。当然,搜索引擎比排序算法更多,我们将在下一章讨论这些系统的总体架构。
搜索引擎有许多配置来反映其设计目标。谷歌和雅虎等网络搜索引擎必须能够捕获或抓取数 TB 的数据,然后为每天从世界各地提交的数百万次查询提供亚秒级响应时间。企业搜索引擎(例如,Autonomy)必须能够处理公司中的各种信息源,并将公司特定的知识用作搜索和相关任务(例如数据挖掘)的一部分。数据挖掘是指自动发现数据中有趣的结构,包括聚类等技术。桌面搜索引擎,例如 Microso VistaTM 搜索功能,必须能够在用户创建或查看新文档、网页和电子邮件时快速合并,并提供直观的界面来搜索这种异构信息组合。 Google 等系统在这些类别之间重叠,可用于企业和桌面搜索配置。
开源搜索引擎是另一类重要的系统,其设计目标与商业搜索引擎有些不同。这些系统有很多,维基百科上的信息检索页面提供了许多系统的链接。特别感兴趣的系统是 Lucene、Lemur 和本书中提供的系统 Galago。 Lucene 是一种流行的基于 Java 的搜索引擎,已广泛用于商业应用。它使用的信息检索技术比较简单。 Lemur 是一个开源工具包,包括一个基于 Indri C++ 的搜索引擎。 Lemur 主要供信息检索研究人员用来比较高级搜索技术。 Galago 是一个基于 Java 的搜索引擎,基于 Lemur 和 Indri 项目。 Galago 在本书的作业中被广泛使用。它旨在快速、适应性强且易于理解,并结合了非常有效的信息检索技术。
搜索引擎设计中的“大问题”包括已确定的信息检索问题:有效的排名算法、评估和用户交互。然而,搜索引擎的许多其他关键特性是由于它们在*敏*感*词*操作环境中的部署。这些功能中最重要的是搜索引擎在响应时间、查询吞吐量和索引速度方面的性能。响应时间是提交查询和接收结果列表之间的延迟,吞吐量衡量在给定时间内可以处理的查询数量,索引速度是文本文档可以转换为搜索索引的速率。索引是一种提高搜索速度的数据结构。搜索引擎索引设计是本书的主要主题之一。
另一个重要的性能指标是新数据添加到索引的速度。搜索应用程序通常处理动态的、不断变化的信息。覆盖率衡量的是公司信息环境中的现有信息有多少被索引并存储在搜索引擎中,而新近度或新鲜度衡量了存储信息的“年龄”。
搜索引擎可用于小型集合(例如桌面上的数百封电子邮件和文档)或非常大的集合(例如整个网络)。一个给定的应用程序可能只有几个用户,也可能有数千个用户。可扩展性显然是搜索引擎设计中的一个重要问题。随着数据量和用户数量的增长,给定应用程序的设计应该继续有效。在1.1 部分,我们描述了搜索引擎如何在许多应用程序和许多任务中使用。为此,它们必须是可定制的或适应性强的。这意味着搜索引擎的许多不同方面,例如排名算法、界面或索引策略,都必须能够根据应用程序的要求进行调整和调整。
影响搜索引擎设计的实际问题也可能出现在某些应用程序中。最好的例子是网络搜索中的垃圾邮件。垃圾邮件通常被认为是不受欢迎的电子邮件,但更一般地说,它可能被定义为为某些商业利益而设计的文档中的误导性、不适当或不相关的信息。有多种类型的垃圾邮件,但搜索引擎必须处理的一种类型是放入文档中的垃圾邮件词,以便在响应流行查询时检索它。 “垃圾邮件索引”的做法会显着降低搜索引擎排名的质量。 Web 搜索引擎设计者必须开发识别垃圾邮件和删除这些文档的技术。图1.1总结了搜索引擎设计涉及的主要问题。
截图 2018-10-14, 1 pm1.05.11.png
基于对信息检索和搜索引擎之间关系的讨论,我们现在考虑计算机科学家和其他人在搜索引擎的设计和使用中的作用。
搜索引擎工程师
信息检索研究涉及文本和语言数学模型的开发、对测试集或用户的*敏*感*词*实验以及大量学术论文的撰写。由于这些原因,它通常由研究实验室的学者或人员完成。这些人主要接受计算机科学方面的培训,但他们也接受过信息科学、数学以及偶尔的社会科学和计算语言学方面的培训。那么谁与搜索引擎合作?很大程度上是同一类型的人,只是更注重实践。计算机行业已经开始使用术语搜索工程师来描述这种类型的人。搜索工程师主要是受过计算机科学培训的人,主要有系统或数据库背景。令人惊讶的是,他们中很少有人接受过信息检索方面的培训,这也是本书的主要动机之一。
搜索工程师的角色是什么?当然,在设计和实现新搜索引擎的主要网络搜索公司工作的人是搜索工程师,但大多数搜索工程师是为广泛的商业应用修改、扩展、维护或调整现有搜索引擎的人。为搜索引擎设计或“优化”内容的人也是搜索工程师,实施垃圾邮件处理技术的人也是。搜索工程师使用的搜索引擎涵盖了上一节提到的整个范围:他们主要使用开源和企业搜索引擎进行应用程序开发,但也充分利用桌面和网络搜索引擎。
搜索在现代计算机应用中的重要性和普遍性意味着搜索工程已经成为计算机行业的一个重要职业。但是,计算机科学系教授的课程很少,可以让学生了解所涉及的各种问题,尤其是从信息检索的角度。本书旨在为潜在的搜索工程师提供他们所需的理解和工具。
参考
在每一章中,我们都提供了一些论文和书籍的指针,这些论文和书籍提供了有关所涵盖主题的更详细信息。理解本书不需要额外阅读,但在某些情况下提供了更多背景和深入的内容。对于本书未涉及的高级主题、技术和研究成果,将进行描述。在我们看来,信息检索方面的经典参考文献是 Salton (1968; 1983) and van Rijsbergen (1979)) 的著作。Van Rijsbergen 的书仍然很受欢迎,因为它可以在线获取。所有这三本书提供了对 1970 年代后期信息检索早期研究的完美描述。索尔顿的早期著作对定义计算机科学信息检索领域尤为重要。最近的著作包括 Baeza-Yates 和 Ribeiro-Neto(1999) 和 Manning 等等(2008 年)。
可以在计算机协会会议记录 (ACM) 信息检索特别兴趣小组 (SIGIR) 会议上找到有关本书涵盖的所有主题的研究论文。这些程序作为 ACM 数字图书馆的一部分在线提供。信息检索和搜索方面的优秀论文还出现在欧洲信息检索会议(ECIR)、信息和知识管理会议(CIKM)和网络搜索和数据挖掘会议(WSDM)上。 WSDM 会议是万维网会议(WWW)的衍生产品,其中收录了一些关于网络搜索的重要论文。 TREC 研讨会的会议记录可在线获取,其中收录对来自许多不同学术和行业团体的新研究技术的有用描述。 TREC 实验的概述可以在 Voorhees 和 Harman (2005)) 中找到。越来越多的搜索相关论文开始出现在数据库会议上,例如 VLDB 和 SIGMOD。偶尔也有论文出现在语言技术会议上。例如如 ACL 和 HLT(计算语言学和人类语言技术协会)、机器学习会议等。