什么是信息检索?
信息检索简史
信息检索的根源可以追溯到古代,那时,人们设立图书馆和档案馆来整理和存储信息,包括对学术著作编制索引和按照字母顺序排列。到了 19 世纪,人们使用打孔卡片来处理信息。1931 年,伊曼纽尔·戈德堡 (Emanuel Goldberg) 获得了首个成功的机电文档检索设备的专利,该设备被称为“统计机”,用于搜索编码在胶片上的数据。
随着现代计算机的发展,信息检索在 20 世纪中叶开始正式成为一门科学学科。杰拉德·索尔顿 (Gerard Salton) 和汉斯·彼得·卢恩 (Hans Peter Luhn) 最早推出了自动化文档检索的早期模型。索尔顿及其康奈尔大学的同事在 20 世纪 60 年代创建了 SMART 信息检索系统,这是该领域的一个里程碑,被认为为现代信息检索技术和关键概念奠定了基础,其中包括词语-文档矩阵、矢量空间模型、相关性反馈和 Rocchio 分类。
到 20 世纪 70 年代,随着更先进的检索技术、概率模型和缜密的矢量处理框架的出现,该领域取得了显著进步。随着 20 世纪 90 年代末搜索引擎的问世,曾经主要应用于学术界、机构和图书馆的信息检索系统和模型被广泛使用。
信息检索模型的类型
不同类型的信息检索模型是为了应对特定的挑战和建立检索相关信息的流程。经典模型构成了该领域的基础,非经典模型试图消除传统方法的局限性,而替代信息检索模型则更进一步,经常会与 Machine Learning 和语言模型等先进技术相集成。一般来说,最常见的信息检索模型类型包括:
布尔模型
布尔模型是最早也最简单的信息检索模型之一,它基于布尔逻辑,使用包括 AND、OR 和 NOT 在内的运算符来组合查询词。文档表示为词语的集合,查询会进行处理以识别与指定条件匹配的文档。尽管布尔模型对精确查询匹配很有效,但无法根据相关性对文档进行排序,也无法提供部分匹配项。
矢量空间模型
在此模型中,文档和查询表示为多维空间中的矢量。每个维度对应一个唯一的词语,每个维度中的值表示该词语在文档或查询中的重要性和出现的频率。通过计算查询矢量和文档矢量之间的余弦相似性,可确定文档与查询的相关性。矢量空间模型在一定程度上是为了解决布尔模型的缺点而开发的,它可以根据相关性分数提供排序结果,并广泛用于文本检索。
概率模型
此模型会估算文档与给定查询相关的概率。它在计算相关性概率时会考虑词语出现频率和文档长度等因素。它在处理大量数据时特别有用。由于该模型使用加权统计,因此非常适合提供排序结果。
潜在语义索引 (LSI)
LSI 使用奇异值分解 (SVD) 来捕获词语与文档之间的语义关系。和语义搜索一样,语义索引使用意图和上下文来识别概念上相关的文档,即使这些文档没有完全相同的词语亦可执行。这一关键能力使 LSI 可用于在一段文本中提取词语的上下文含义。
Okapi BM25
BM25 是概率模型中比较流行的变体之一,同时也是一个搜索相关性排名函数。搜索引擎使用它来估算文档与搜索查询之间的相关性。它不考虑文档中词语之间的相互关系,而是根据查询词在每个文档中的出现次数对一组文档进行排序,它由许多具有不同组件和参数的评分函数组成。BM 是 Best Matching 的简写,意思是“最佳匹配”。
信息检索的重要性
在信息时代,每秒钟都有数据产生,其规模是以前无法想象的。如果没有访问信息的可行方法,这些数据实际上毫无用处。信息检索系统可确保用户能够在日益增长的信息超载干扰中获得所需的相关信息。
信息检索在现代世界的几乎所有行业和领域都发挥着至关重要的作用,从学术界和电子商务,到医疗保健和国防,都是如此。它是一个人机界面,可以在企业和个人层面上协助决策、研究和发现知识。从搜索本地化桌面到发现世界新闻,或者从研究基因组到过滤垃圾邮件,信息检索几乎构成了我们生活方方面面的基础。
搜索引擎依靠信息检索模型来提供准确的搜索结果。电子商务平台使用检索模型根据用户偏好和行为来推荐产品。数字图书馆依靠信息检索科学来帮助用户进行研究。在医疗保健领域,信息检索系统可协助在数据库中搜索相关患者病历、医学研究和治疗方案。法律专业人士使用信息检索来梳理大量法律案例以寻找判例。
信息检索系统的工作原理
当用户向系统输入说明其信息需求的正式查询时,通常会触发信息检索过程。信息检索系统会在内容集合或信息数据库中创建一个文档索引。系统会对数据对象(包括来自文本文档、图像、音频和视频的数据对象)进行处理来提取相关词语和替代数据,然后使用数据结构高效地存储和检索这些实体。
当用户提交查询时,系统会对其进行处理以识别相关词语并确定其重要性。然后,系统根据文档与查询的相关性对文档进行排序。在许多情况下,会使用信息检索模型和算法,根据集合或数据库中每个对象与查询的匹配程度来算出一个数字分数。许多查询并不完全匹配:最相关的文档将以排序列表的形式呈现给用户。这些排序结果是信息检索搜索与数据库搜索之间的主要区别之一。
信息检索系统的主要组件
信息检索系统由几个关键组件构成:
文档集合
系统可以从中检索信息的文档集。
索引组件
源数据和文档经过处理以创建索引,同时将词语和数据映射到包含它们的文档 — 通常采用专用的优化数据结构。
查询处理器
查询处理器会分析用户查询和关键词,并对其进行处理以与索引实体进行匹配。
排序算法
排序算法用于确定文档与查询的相关性,并为其分配分数。最常见的是 BM25(最佳匹配 25)排序算法,该算法因其经过修改的词语频率处理方式而出名,该方法可避免文档中包含过多关键词和重复词语。
用户界面
UI 是用户与系统交互和提交查询的显示画面,并用于呈现结果。在 UI 上,结果会基于其与用户查询的相关性进行调整。在某些情况下,相关机制可能会允许用户提供有关检索到的文档的相关性的反馈,这些反馈可用于改进将来的检索。
信息检索的优势
信息检索模型的显著优势包括:
- 高效地访问信息:首先,信息检索系统为用户节省了大量的时间和精力。信息检索使用户能够快速访问相关信息,而无需手动搜索大量文档和数据。
- 发现知识:信息检索是一个强大的工具,可以让我们了解数据。使用信息检索系统,用户可以识别数据中最初可能并不明显的趋势、模式和关系。
- 个性化:一些信息检索系统可以根据个别用户的偏好和行为,以有意义的方式为他们量身定制结果。
- 支持决策:专业人员能够在需要时访问最相关的信息,从而做出明智的决策。
信息检索面临的挑战与局限性
尽管取得了重大进步,但信息检索从来都不完美。已知的问题、挑战和局限性仍然存在,包括:
歧义 自然语言本质上就是模棱两可的,因此很难准确地解释用户查询。类似的模糊性和不确定性问题会影响索引和评估流程,尤其是对于图像和视频等对象。
相关性 相关性的确定具有主观性,可能会因用户上下文和意图而异。用于确定价值和重要性的标准可能受一组不完善的通用标准的约束,而这些标准无法反映个别用户的特定需求。
语义差距 由于文本表示与人的理解力之间存在差异,检索系统可能难以捕捉内容的更深层含义。信息和用户表达缺乏明确性是成功实现信息检索的主要障碍。由 AI 驱动的高级自然语言处理旨在缩小这些语义和歧义差距。
可扩展性 随着数据量的增加,维持高效和有效的检索和索引变得越来越复杂,需要的资源和计算能力也越来越多。
信息检索的未来趋势
随着生成式 AI 和 Machine Learning 最近取得了突破,据我们所知,信息检索可能正处于转型变革的边缘。
先进的 Machine Learning 技术已经在通过从用户交互中学习并适应不断变化的上下文、位置和偏好来增强检索。经过改进的自然语言处理和语义分析可以更好地理解用户查询和文档内容。检索系统也在不断发展,以便更有效地处理不断涌现的多媒体内容。
生成式 AI 可能会对信息检索产生变革性影响。我们会收到问题的实际答案,而不是我们习惯的结果排序表,后者需要手动对现有链接和文档进行排序才能找到我们想要的内容。上下文将从一个问题转到另一个问题,以便进行复杂的、对话式的、多步骤查询,这几乎消除了人类语言处理和意图的障碍。与其自己拼凑答案,不如让搜索引擎为我们完成这项工作,以原始内容的形式将信息组合成具体的定制结果,提供的正是我们所需要的,而没有一点是我们不想要的。
深入了解 2024 年技术搜索趋势。请观看此网络研讨会,了解 2024 年的最佳实践、新兴方法以及热门趋势对开发人员的影响。
使用 Elasticsearch 进行信息检索
Elastic 致力于不断改进 Elastic Stack 中的信息检索功能。我们最新的检索模型 Elastic Learned Sparse Encoder 通过预先训练的语言模型增强了 Elastic 的开箱即用检索功能。为了实现真正的一键式体验,我们将其与新的 Elasticsearch Relevance Engine 集成在一起。
Elasticsearch 还具有出色的词汇检索功能和丰富的工具,可用于组合不同查询的结果,这一概念称为混合检索。我们还使用自然语言处理和矢量搜索增强聊天机器人功能,同时发布用于文本嵌入的第三方自然语言处理模型,并使用 BEIR 的子集评估我们的性能。
您接下来应该怎么做
当您准备好后,我们可以通过下面四种方法帮助您从业务数据中获取见解:
- 开始免费试用,并了解 Elastic 可以为贵公司提供什么帮助。
- 浏览我们的解决方案,了解 Elasticsearch 平台的运作方式,以及这些解决方案如何满足您的需求。
- 了解如何在企业中提供生成式 AI。
- 与您认识且喜欢阅读此类内容的人分享本篇文章。通过电子邮件、LinkedIn、Twitter 或 Facebook 将本篇文章分享给他们。