信息检索(53):Document Expansion by Query Prediction

Document Expansion by Query Prediction

  • 摘要
  • 1 引言
  • 2 相关工作
  • 3 方法:Doc2query
  • 4 实验设置
  • 5 结果
  • 6 结论


发布时间(2019)


摘要

提高搜索引擎检索效率的一种方法是使用与文档内容相关或具有代表性的术语来扩展文档。从问答系统的角度来看,这可能包括文档可能回答的问题。根据这一观察,我们提出了一种简单的方法,该方法可以预测将针对给定文档发出哪些查询,然后使用原始序列到序列模型将这些预测扩展,该模型使用由查询和相关文档对组成的数据集进行训练。通过将我们的方法与高效的重新排序组件相结合,我们在两个检索任务中实现了最先进的水平。在延迟关键机制下,单独的检索结果(不进行重新排序)接近计算成本更高的神经重新排序器的有效性,但速度要快得多。

1 引言

1)虽然密集方法可以学习语义,解决词汇不匹配问题
2)稀疏方法的优势在于精确匹配
“词汇不匹配”问题是信息检索的核心挑战之一,即用户使用的查询词与相关文档中使用的词不同。在神经检索模型出现之前,这个问题通常是使用查询扩展技术来解决的,其中初始轮检索可以提供有用的术语来增强原始查询。然而,连续向量空间表示和神经网络不再依赖于离散的单热表示,因此提供了一种令人兴奋的新方法来应对这一挑战
尽管神经模型有可能在语义层面匹配文档以提高排名,但大多数可扩展搜索引擎使用查询和文档之间的精确术语匹配来执行初始检索。查询扩展是关于丰富查询表示,同时保持文档表示静态。在本文中,我们探索了一种基于丰富文档表示(在索引之前)的替代方法。专注于问答,我们训练一个序列到序列模型,给定一个文档,生成该文档可能回答的可能问题。图 1 显示了所提出方法的概述。
我们认为这项工作有几个贡献:这是我们所知的首次使用神经网络成功应用文档扩展。在最近的 MS MARCO 数据集(Bajaj 等人,2016 年)上,我们的方法与官方排行榜上的最佳结果相媲美,并且我们报告了 TREC CAR(Dietz 等人,2017 年)上最著名的结果。我们进一步表明,在这两个数据集上,文档扩展比查询扩展更有效。我们使用现有的开源工具包通过相对简单的模型实现了这一点,这可以轻松复制我们的结果。文档扩展还具有另一个主要优势,因为丰富是在索引之前执行的:虽然可以使用神经模型进一步重新排序检索到的输出以大大提高有效性,但输出也可以按原样返回。这些结果已经比“词袋”基线的有效性有了显着提高,而无需在检索时应用昂贵且缓慢的神经网络推理。

2 相关工作

该方法的缺点:
每次扩展技术发生变化时,都需要重新索引语料库(通常,这是一个昂贵的过程)
相反,对查询表示的操作可以在检索时发生(因此速度要快得多)
在连续向量空间表示和神经排序模型出现之前,信息检索技术大多局限于关键字匹配(即“独热”表示)。诸如潜在语义索引(Deerwester 等人,1990 年)及其各种后继者之类的替代方案从未真正获得重大关注。在这些限制内解决词汇不匹配问题的方法包括相关性反馈(Rocchio,1971 年)、查询扩展(Voorhees,1994 年;Xu 和 Croft,2000 年)以及使用统计翻译对术语关系进行建模(Berger 和 Lafferty,1999 年)。这些技术的共同重点是增强查询表示以更好地匹配文档。

在本研究中,我们采用了丰富文档表示的替代方法(Tao 等人,2006;Pickens 等人,2010;Efron 等人,2012),这种方法特别适用于语音(Singhal 和 Pereira,1999)和多语言检索,因为这些检索中的术语比较嘈杂。文档扩展技术在 IR 研究人员中不太受欢迎,因为它们不太适合快速试验。每次扩展技术发生变化时,都需要重新索引语料库(通常是一个昂贵的过程);相反,对查询表示的操作可以在检索时进行(因此速度要快得多)。文档扩展的成功也有好有坏;例如,Billerbeck 和 Zobel(2005)在同一框架中探索了查询扩展和文档扩展,并得出结论,前者始终更有效。

新一代神经排名模型基于连续词表示和学习高度非线性相关性模型的能力,为词汇不匹配问题提供了解决方案;请参阅 Onal 等人 (2018) 和 Mitra 和 Craswell (2019a) 的最新概述。然而,由于大多数语料库的规模以及对查询的每个文档应用推理的不切实际,当今几乎所有实现都将神经网络部署为使用标准倒排索引和基于术语的排名模型(如 BM25)检索的初始候选集的重新排名器(Robertson 等人,1994)。我们的工作符合这种广泛的方法,我们利用神经网络在索引之前增强文档表示;然后基于术语的检索与以前完全一样。当然,检索到的结果仍然可以通过最先进的神经模型重新排名(Nogueira 和 Cho,2019),但基于术语的排名的输出似乎已经相当不错了。换句话说,我们的文档扩展方法可以利用神经网络,而无需承担高昂的推理时间成本。

3 方法:Doc2query

我们提出的方法称为“Doc2query”,其流程如下:对于每个文档,任务是预测与该文档相关的一组查询。给定一个(查询,相关文档)对的数据集,我们使用一个序列到序列转换器模型(Vaswani 等人,2017),该模型将文档术语作为输入并生成查询。使用 Moses 标记器对文档和目标查询进行标记后,使用 BPE(Sennrich 等人,2015)对其进行分段。1 为避免过度使用内存,我们将每个文档截断为 400 个标记,将查询截断为 100 个标记。我们的转换器模型的架构和训练细节在附录 A 中描述。
模型训练完成后,我们使用 top-k 随机抽样 (Fan et al, 2018) 预测 10 个查询,并将它们附加到语料库中的每个文档中。我们没有添加任何特殊标记来区分原始文档文本和预测的查询。扩展的文档被编入索引,我们使用 BM25 (Robertson et al, 1994) 检索每个查询的文档排序列表。我们可选择使用 BERT (Devlin et al, 2018) 对这些检索到的文档进行重新排序,如 Nogueira 和 Cho (2019) 所述。

4 实验设置

为了训练和评估模型,我们使用以下两个数据集:
为了评估这些方法在 MS MARCO 上的有效性,我们使用了其官方指标,即前 10 个文档的平均倒数排名 (MRR@10)。对于 TREC-CAR,我们使用平均准确率 (M​​AP)。

5 结果

两个数据集的结果如表 1 所示。 BM25 是基线。使用我们的方法 (BM25 + Doc2query) 进行文档扩展可将两个数据集的检索效率提高约 15%。 当我们将文档扩展与最先进的重新排序器 (BM25 + Doc2query + BERT) 相结合时,我们在 TREC CAR 上取得了迄今为止最著名的结果;对于 MS MARCO,我们接近最先进的水平。4 我们的完整重新排序条件 (BM25 + Doc2query + BERT) 胜过单独的 BM25 + BERT,这验证了 Doc2query 的贡献确实与索引后重新排序的贡献正交。

这些更好的分数究竟从何而来?我们在表 2 中展示了我们的 Doc2query 模型在 MS MARCO 上训练后生成的查询示例。我们注意到该模型倾向于从输入文档中复制一些单词(例如,华盛顿特区、河流、染色体),这意味着它可以有效地执行术语重新加权(即增加关键术语的重要性)。然而,该模型也会生成输入文档中不存在的单词(例如,天气、关系),这些单词可以被描述为同义词和其他相关术语的扩展。

为了量化这一分析,我们测量了原始文档中存在(复制)与不存在(新)的预测词的比例。排除停用词(占预测查询词的 51%),我们发现 31% 是新词,其余(69%)是复制的。如果我们仅使用新词扩展 MS MARCO 文档并使用 BM25 检索开发集查询,我们将获得 18.8 的 MRR@10(而使用原始文档进行索引时为 18.4)。使用复制的单词进行扩展可获得 19.7 的 MRR@10。 当使用两种类型的单词扩展文档时,我们实现了更高的 21.5 的 MRR@10,表明它们是互补的。

进一步的分析表明,改进的一个来源是让重排序器考虑更多相关文档。我们发现 MS MARCO 开发集的 Recall@1000 从 85.3(BM25)增加到 89.3(BM25 + Doc2query)。结果表明,BERT 确实能够从改进的候选池中识别出这些正确答案,并将它们置于排序列表的顶部,从而提高整体 MRR。

作为对比条件,我们发现使用 RM3 的查询扩展对两个数据集都不利,无论是应用于未扩展的语料库 (BM25 + RM3) 还是扩展版本 (BM25 + Doc2query + RM3)。这是一个有点令人惊讶的结果,因为查询扩展通常会提高文档检索的有效性,但这很可能是由于 MS MARCO 和 CAR 都是以精度为导向的。这个结果表明,文档扩展比查询扩展更有效,很可能是因为文档更长,可以利用的信号更多。

最后,对于生产检索系统,延迟通常是一个重要因素。我们的无重新排序器方法(BM25 + Doc2query)比基线 BM25 增加了少量延迟(50 毫秒 vs. 90 毫秒),但比 MRR@10 高 3 个点的神经重新排序器(Single Duet v2,组织者在 MS MARCO 中将其作为基线呈现)快大约七倍。对于某些操作场景,这种质量与速度的权衡可能是值得的。

6 结论

我们首次成功使用基于神经网络的文档扩展。文档扩展对神经模型来说具有巨大的潜力,因为文档更长,因此包含更丰富的输入信号。此外,这种通用方法允许开发人员将神经网络推理的计算成本从检索转移到索引。
我们的实现基于集成三个开源工具包:OpenNMT(Klein 等人,2017 年)、Anserini 和 TensorFlow BERT。我们的方法相对简单,有助于提高结果的可重复性,并为文档扩展的进一步改进铺平了道路

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/34186.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FLASH仿真EEPROM---基于智芯Z20K11XM

一、介绍 电可擦和可编程只读存储器(EEPROM)可以对字节或字编程和擦除。EEPROM中的数据即使断电也能保持,但Z20K1xx芯片不含EEPROM。然而,闪存可以通过EEPROM仿真软件来模拟EEPROM。Z20K1xx包含两个flash阵列。编程和擦除操作可以在一个数组上进行&#…

go sync包(三) 读写锁(一)

读写锁 RWMutex 读操作是天生的幂等操作,因为不涉及到数据的修改,如果在一个读多写少的场景使用普通的互斥锁,每个读、写操作都要加索,会影响性能。 type RWMutex struct {w Mutex // held if there are pendi…

AIGC发展方向和前景

引言 背景介绍 AIGC的定义及其发展历程 AIGC,即人工智能生成内容,是近年来在人工智能领域兴起的一项重要技术。它通过使用机器学习和深度学习等技术,使得计算机能够自动生成各种形式的数字内容,如文本、图像、音频和视频等。 …

【UIDynamic-动力学-UIAttachmentBehavior-附着行为-弹性附着 Objective-C语言】

一、弹性附着啊,我们来看一下, 1.刚才我们说了刚性附着,弹性附着,怎么着做啊,实际上,只需要多添加两个属性,就可以了, 实际上,添加一个,也可以啊, 我们把这个length,先注释掉, 先注释掉,self.attach.length = 100;这句话, 固定的长度啊,给它注释掉, 然后呢…

vue3中h函数的使用

h函数是用于创建一个 vnodes ,它既可以用于创建原生元素,也可以创建组件,其渲染后的效果等同于使用模版语言来进行创建。 h函数的传参如下: // 完整参数签名 function h(type: string | Component,props?: object | null,child…

Docker配置国内镜像加速-2

Docker 官方镜像仓库(如 Docker Hub)可能由于网络原因,在某些地区或网络环境下下载速度较慢。使用镜像加速可以从距离用户更近、网络条件更好的镜像服务器获取镜像,从而显著提高下载速度,节省时间。 1.测试是否安装 d…

RedHat运维-Linux文本操作基础-AWK基础

你不用整理,跟着敲一遍,有个印象,然后把它保存到本地,以后要用再去看,如果有了新东西,你自个再添加。这是我参考同行的,只不过换成了问答的方式而已。不用背,就算是我自己亲自敲&…

MongoDB可视化工具全面指南

MongoDB可视化工具概述 1.1 什么是MongoDB可视化工具 MongoDB可视化工具是指那些通过图形用户界面(GUI)来管理和操作MongoDB数据库的软件工具。这些工具提供了一种直观的方式来执行数据库管理任务,如数据查询、索引管理、性能监控和数据导入…

探索Elastic Search:强大的开源搜索引擎,详解及使用

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引…

三维点云目标识别对抗攻击研究综述

源自:电子与信息学报 作者:刘伟权 郑世均 郭宇 王程 注:若出现无法显示完全的情况,可 V 搜索“人工智能技术与咨询”查看完整文章 摘 要 当前,人工智能系统在诸多领域都取得了巨大的成功,其中深度学…

TensorRT-LLM加速框架的基本使用

TensorRT-LLM是英伟达发布的针对大模型的加速框架,TensorRT-LLM是TensorRT的延申。TensorRT-LLM的GitHub地址是 https://github.com/NVIDIA/TensorRT-LLM 这个框架在0.8版本有一个比较大的更新,原先的逻辑被统一了,所以早期的版本就不介绍了…

告别繁琐代码,迈向编程新境界—Java集合与泛型全面解析

在Java编程的征途中,集合(Collection)与泛型(Generics)是两大里程碑式的特性,它们不仅极大地提升了代码的灵活性和安全性,还帮助开发者简化了数据结构的处理逻辑,让编程之旅变得更加…

Hadoop 2.0 大家族(四)

目录 七、Flume(一)Flume简介(二)Flume入门 八、Mahout(一)Mahout简介(二)Mahout入门 七、Flume Flume是一个分布式高性能、高可靠的数据传输工具,它可用简单的方式将不同…

Langchain实战:构建高效的知识问答系统

引言 知识问答系统(KQA)是自然语言处理领域的核心技术之一,它能够帮助用户从大量数据中快速准确地检索到所需信息。知识问答系统成为了帮助个人和企业快速获取、筛选和处理信息的重要工具。它们在很多领域都发挥着重要作用,例如在…

《计算机英语》Unit 1 Computer Overview 计算机概述

期末试卷组成 1、选择20道 2、判断20道 3、词汇翻译(单词词组,参照课后习题) 4、翻译2道(一道原题,参照作业) SectionA About Computer 关于计算机 algorithm n. 算法 operate v.…

邦芒贴士:领导最反感下属这6种表现

在单位里面,如果在工作上出现了下面六种情况,就说明领导已经开始嫌弃你了,你的工作方式和方法一定要发生一些变化,及时的适应领导,如果再按部就班,那可就是真的犯傻。 1.安排事情时你总是排在第一个 安排任…

爬虫阶段思考

内容:写这篇文章是因为最近帮同学改了很多的爬虫代码,感触良多。 我用豆瓣为例,并不是不会用别的,而是这个我个人感觉最经典。然后还会写我遇到的一些问题以及解决方法。 首先,我们得先知道怎样爬取。我用的scrapy框…

2024广东省职业技能大赛云计算赛项实战——容器化部署MariaDB

容器化部署MariaDB 前言 今年比赛的容器化部署第一道考的好像就是这个,是往年国赛的题,直接给照搬过来了,今天就做做这道题: 编写Dockerfile构建镜像erp-mysql:v1.0,要求使用centos7.9.2009镜像作为基础镜像&#xf…

深入探讨Redis集群方案

一、什么是Redis集群 Redis集群(Redis Cluster)是Redis官方提供的分布式数据库解决方案,旨在通过将数据分散到多个节点上来实现水平扩展和高可用性。Redis集群提供了以下几个核心功能: 数据分片:将数据分布到多个节点…

Java变量命名规则

局部变量 使用驼峰命名以小写字母开头int myLocalVariable 实例变量(成员变量) 使用驼峰命名法小写字母开头myInstanceVariable 静态变量 使用驼峰命名法,以小写字母开头也可以使用大写蛇形命名法,全大写字母,单词…