BERT-QE

论文名称:EMNLP2020 | BERT-QE: Contextualized Query Expansion for Document Re-ranking

arxiv地址:https://arxiv.org/abs/2009.07258v1

代码:https://github.com/zh-zheng/BERT-QE


1)Intro

查询扩展通过对用户的初始查询进行扩展和重构,解决了用户查询用词与文档用词不匹配以及用户表达不完整的问题。其目的为减少查询中使用的语言与文档中使用的语言之间的不匹配。伪相关反馈(pseudo relevance feedback,PRF)方法是一种极其有效的方法,通常将Top-k篇文档认作相关文档,使用如TF-IDF权重的方法从这些排名靠前的文档中提取m个关键词,将这些关键词加入到查询中,然后再去匹配查询所返回的文档,最终返回最相关的文档。显然,这种方法的效果非常依赖于所选择的扩展词语的质量。

然而,查询扩展方法在扩展查询时可能会引入不相关的信息。为了解决这一问题,受近年来诸如BERT之类的上下文模型应用于文档检索任务的进展的启发,该文提出了一种新的利用上下文的查询扩展模型。

目前使用预训练模型进行信息检索任务依旧遵循“Retrieve+Rerank”的pipline机制。Retrieve阶段使用BM25或DPH+KL等检索算法对文档集合进行粗排,一般取前1000篇作为feedback document。Rerank阶段就使用BERT等预训练模型进行重排,获取最终的文档排名。

该篇论文主要在Rerank阶段做了一些工作,提出了一种新的查询扩展模型。与19年的Simple Applications of BERT for Ad Hoc Document Retrieval不同的是,该篇论文并不是把文档分成段落,而是使用滑动窗口的方式,在更小的粒度上以期获得更深层的语义信息。

这项工作的贡献有三点:

  1. 提出一种新的查询扩展模型,增强BERT模型获取反馈文档中相关信息的能力;
  2. 在两个TREC测试集Robust04和GOV2上进行了评估,在模型的三个阶段中均使用BERT-Large可以显著提高BERT-Large在浅池和深池中的性能;
  3. 在不同阶段应用不同大小的BERT模型,可以权衡效率和精度。

 2)Method

fine-tune阶段

该模型使用了基于交互的方式,以查询query为Segment A ,以段落passage为Segment B构建BERT的输入序列S,如下图所示。输出则为最后一层[CLS]的向量表示,以此来获得Segment A和Segment B的相关性得分。

BERT-QE中首先使用在MS MARCO数据集上训练过的BERT模型为基础,然后在目标数据集(如:Robust04)上进行微调。微调阶段首先使用BERT获取目标数据中排名靠前的passages,然后用这些query-passages对,使用如等式1所示的损失函数对BERT进行微调。

其中,分别是相关文档和非相关文档的索引集,是文档与查询相关的概率。

Rerank阶段

阶段1:首先使用DPH+KL得到k篇粗排文档,基于给定的query与文档使用经过微调的BERT获取如等式2所示的文档的相关性得分,依据这些相关性得分对文档进行初步重排。

阶段2:将初步重排后的个文档作为PRF文档,使用滑动窗口的方法将每一篇文档分为长度为m个词项的文本块,如下图所示。相邻的两个滑动窗口最多重叠m/2个词项,也就是说,使用了长度为m,步长为m/2的滑动窗口来把文档划分为文本块。

使用微调后的BERT模型对每个文本块进行相关性评估,选择其中得分最高的个文本块,用代表第i个文本块,这些最相关的文本块集合表示为

阶段3:使用阶段2得到的文本块与原始query结合,获得最终的文档排名。过程如下图所示:

对于每一个文档d,都用阶段2中得到的top文本块来评估文档的相关性。可以理解为文本块与query的相关性得分越高排名就越靠前,如果文档d与这些排名靠前的文本块的相关性得分也很高,那么就代表了文档d和query越相关。将个文本块与文档d的相关性分数聚合,生成文档的查询扩展项的相关性分数,具体如下:

其中,是query与文本块的相关性分数,通过softmax函数进行归一化,获取每个文本块在文档中所占权重;为文本块与文档d的相关性分数;通过加权求和,获得了最终的查询扩展项分数。

最后,将此分数与原始查询线性结合,生成基于反馈与原始查询的组合分数,依据此分数来进行最后阶段的文档排序,具体如下:

其中,是控制两部分重要性的超参数。

注意:三个阶段可以分别使用不同规模的BERT模型,例如BERT-QE-LLL就是三个阶段均使用BERT-Large,以此类推BERT-QE-TML即第一阶段Tiny,第二阶段Medium,第三阶段Large。


3)Experimental Setup

模型最大序列长度设置为384,在TPU v3进行训练,batch_size为32,训练2个epoch;使用Adam optimizer,学习率初始值为1e-6。并且进行了五折交叉验证,将query等分成5份,每一次,使用三分进行训练、一份进行验证,一份进行测试。

经过测试的最佳超参数为:阶段2中,文本块切割时的窗口大小m为10个words;阶段1中, 为靠前的10个文档。为10个文本块。在阶段1和阶段3中,使用BERT模型对前1000个文档进行重新排序。

使用的BERT模型规模如下图所示:


4)Results

如表3所示,该论文比较了BERT-QE-LLL、BERT Base和BERT Large在Robust04和GOV2上的性能。可以看出,无论是否使用查询扩展,BERT-Large都显著优于所有非BERT基线。在Robust04数据集上BERT-QE-LLL与BERT Large相比,在NDCG@20与MAP@1K这两个评价指标上分别提高了2.5%和3.3%。

如表4所示,BERT-QE-LLL的计算量为BERT-Large的11.19倍,计算成本非常高。如果第三节阶段使用小规模模型,那么计算成本将会急剧下降,可以看到BERT-QE-LMT和BERT-QE-LLS的计算量分别为BERT-Large的1.03倍和1.30倍,但是仍然有改进效果。


5)Analysis

由于计算开销太大,这个方法即使有效果,也很难在工业界应用落地。可以对其进行一些改进,如融入SBERT或者colBERT这种弱交互的模型框架,应该可以有效减少计算开销。

BERT-QE:用于文档Rerank的上下文化查询扩展模型相关推荐

  1. DocuWare平台——用于文档管理和工作流程自动化的内容服务平台详细介绍(上)

    DocuWare平台--用于文档管理和工作流程自动化的内容服务平台 成功实现办公自动化所需的一切 DocuWare 是一个先进的平台,可让您集中.快速.有效地管理.处理和利用业务信息. 我们的文档管理 ...

  2. LSR:用于文档关系抽取的潜在图结构迭代优化推理方法

    每天给你送来NLP技术干货! 来自:AI自然语言处理与知识图谱 大家好,我是大林,今天给大家分享一篇ACL2020文档关系抽取的文章,作者是Brauch. 论文题目: Reasoning with L ...

  3. DocuWare平台——用于文档管理和工作流程自动化的内容服务平台详细介绍(下)

    接上篇~~ 三.处理文档.控制工作流程 顺畅的信息流是每个生产过程的基础.自动化任何基于文档的任务(从有效的重新提交文档到复杂的审批工作流程),让您的团队在跨组织和跨部门的工作中畅通无阻. 具有列表的 ...

  4. 用于文档上下文感知推荐的卷积矩阵分解

    论文:Kim D H, Park C, Oh J, et al. Convolutional Matrix Factorization for Document Context-Aware Recom ...

  5. 一份非常详细的MongoDB数据库基本常用命令总结(文档基本CRUD +其他常用查询)

    文章目录 一.示例数据库结构 二.数据库操作 2.1 选择和创建数据库 2.2 数据库的删除 2.3 集合操作 2.3.1 集合的显式创建 2.3.2 集合的隐式创建 2.3.3 集合的删除 2.4 ...

  6. jQuery EasyUI 1.5 离线简体中文API文档 含完整开发工具包+皮肤+扩展+演示

    例行更新,不过本次有新组件加入,感觉这次的组件早就应该有了,居然到现在才加入进来,不管怎么说有总比没有好.这次还是以改进为主,改进项占了大多数.废话不多说具体内容大家看更新说明吧!另外由于经常收到ch ...

  7. 敏捷,文档,人才,文化——谈小公司研发管理

    下面是最近对公司研发管理的一些思考,和大家一起讨论. 一:关于敏捷: 1)敏捷是否适合电信行业? 对于想互联网这样"小而快"的行业,敏捷开发无疑是适合的.但是对于电信行业这种&qu ...

  8. OCR 中文汉字识别,可用于文档识别,身份证识别,名片识别,采用字库+卷积神经网络...

    图片数据个人百度云可以私聊我哈哈 第一步:制作汉字样本数据, 这里写图片描述 常用的汉字如下: char_set = u"0123456789QWERTYUIOPASDFGHJKLZXCVB ...

  9. Qt文档阅读笔记-Qt4 Lower-Level API扩展Qt Applications(Qt4中Plugin的使用)解析与实例

    目录 官方解析 博主栗子 官方解析 Qt应用程序可以对插件进行扩展,要使用QPluginLoader这个类进行加载.插件可以提供任意的功能,而且不限制数据库驱动,图像格式,以及其他的Qt功能插件. 当 ...

最新文章

  1. 常用对称加密算法(DES/AES)类(PHP)
  2. 《Head first设计模式》学习笔记 – 迭代器模式
  3. erlang md5
  4. 【CH4302】Interval GCD
  5. Qt下QTableWidget的使用
  6. pyqt5 qscrollarea到达_PyQt5如何用QPainter在QScrollArea上画线?
  7. java-不用辅助变量,两变量直接交换
  8. c需要实现安装卸载Linux模块,Linux内核模块编译与加载
  9. 简述vue-router实现原理
  10. JAVA对MYSQL进行连接、插入、修改、删除操作
  11. bug-Skipping optimization due to error while loading function libraries: Invalid argument: Functions
  12. 容器技术Docker K8s 18 容器服务ACK基础与进阶-容器网络管理
  13. 在Windows8系统下exe格式会计课件下载播放帮助图解
  14. 习题 3.10 有一函数:写一程序,输入x,输出y值。
  15. kubeadm部署单Master节点kubernetes集群 1.21.0
  16. Python画中国地图-数据导入
  17. 有线广电如何转型和发展
  18. java截取固定大小图片_JAVA技巧(长字符串按指定长度截取)
  19. [2016 版] 常见操作性能对比
  20. ambari全攻略流程,开发ambari(四)

热门文章

  1. 分析1996~2015年人口数据各个特征的分布与分散情况
  2. vue3+vant开发微信公众号网页爬坑不完全指北
  3. 学习《华为基本法》(13):市场营销
  4. Java中的this关键字
  5. javaScript高级程序设计-------总结随笔
  6. Ubuntu 16.04+CUDA8.0+Caffe+OpenCV3.1
  7. OneDrive无法登陆正常使用 There was a problem connecting to onedrive
  8. 别再无脑get、set了,快使用lombok,从此不用再get、set
  9. 龙家贰少的MarkDown学习笔记
  10. 程序员自我修养-总结 (1)