当前位置: 首页 > news >正文

信息检索(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。我们的方法相对简单,有助于提高结果的可重复性,并为文档扩展的进一步改进铺平了道路

相关文章:

  • Spring框架学习笔记(本地印象笔记搬运)(整理中)
  • TensorRT-LLM加速框架的基本使用
  • 数据库原理与安全复习笔记(未完待续)
  • 【Linux】使用 iptables 验证访问HDFS 所使用到的端口
  • 光纤通讯资料收集
  • java课程设计GUI学生信息管理系统
  • 爬虫阶段思考
  • 【Rust】——所有可能会用到模式的位置
  • Spring Cloud学习:如何实现Gateway 服务网关限流
  • ESP32 esp-idf esp-adf环境安装及.a库创建与编译
  • OpenCV颜色检测
  • 网络编程(六)TCP并发服务器
  • B3996 [洛谷 202406GESP 模拟 三级] 小洛的数字游戏
  • SpringMVC:拦截Mybatis的mapper
  • 如何设计高可用的淘客返利系统
  • 2019年如何成为全栈工程师?
  • co.js - 让异步代码同步化
  • CSS实用技巧
  • es6--symbol
  • GraphQL学习过程应该是这样的
  • HTML-表单
  • java正则表式的使用
  • Kibana配置logstash,报表一体化
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • windows下mongoDB的环境配置
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 聚类分析——Kmeans
  • 深度学习中的信息论知识详解
  • 我的zsh配置, 2019最新方案
  • 阿里云ACE认证之理解CDN技术
  • ​VRRP 虚拟路由冗余协议(华为)
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • ​你们这样子,耽误我的工作进度怎么办?
  • #1015 : KMP算法
  • #数据结构 笔记一
  • ${ }的特别功能
  • (6)设计一个TimeMap
  • (7)摄像机和云台
  • (day6) 319. 灯泡开关
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (二)斐波那契Fabonacci函数
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (论文阅读30/100)Convolutional Pose Machines
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (十一)手动添加用户和文件的特殊权限
  • (四)汇编语言——简单程序
  • (学习日记)2024.01.09
  • (转)Unity3DUnity3D在android下调试
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...