蔡杰作者北京大学硕士生学校QA研究方向

ACL 2020 | 基于稠密段落检索的开放域问答系统技术

论文标题:Dense Passage Retrieval for Open-Domain Question Answering

论文来源:ACL 2020

论文链接:https://arxiv.org/abs/2004.04906

引言

Open-domain 的 Question Answering (QA) 一般需要先从大量的文档库中检索出一些和问题相关的文档(retrive),相关的方法有 TF-IDF 和 BM25。这篇文章发现学习 dense 的文档向量去替换 retrive 阶段的传统方法是可行的,并且本文提出的检索系统在 top-20 文章检索准确率上比 Lucene-BM25 系统高出 9%-19%。

介绍

近年来随着深度学习的兴起,目前大部分做 Open-domain 的 QA 使一般沿用两阶段框架:1)retriever 首先选择一小部分段落,其中一些包含问题的答案;2)reader 可以看到 retriever 检索到的上下文并从中识别正确的答案。

目前主流的 retriever 使用传统的信息检索(IR)方法,包括 TF-IDF unigram/bigram matching 或词权重支持 BM25 词权重的工具,如 Lucene 和 Elastic-search。

TF-IDF 和 BM25 将 query 和 context 用高维的 sparse 向量来表示,这些sparse向量可以通过倒排索引进行有效搜索,并且对于那些通常需要根据关键字显著缩小搜索空间的问题回答有效。

但是 TF-IDF 和 BM25 也有一些缺点就是无法很好的建模词与词之间的语义关系(两个同义词可能长的完全不一样),所以一些 encoding 文本为 dense 向量的方法给 TF-IDF 和 BM25 这一类方法做了补充。

本文通过学习 dense representations 代替传统的 IR 方法进行检索改进 Open-domain 的 Question Answering。

Dense Passage Retriever (DPR)

在检索之前先用一个 dense encoder 给文档库中的所有文档都进行 encoding。在检索的时候用另一个 dense encoder 给 question 进行 encoding,之后根据下图公式算两个 representation 的 similarity,取 top-k 作为结果。

公式(1)比较简单,但是作者说该方式是最有效的。作者用的 encoder 是 bert-base-uncased,然后拿 [CLS] 的 vector 作为 representation。由于文档库可能会很大,所以作者用了 FAISS(一个非常高效的开源库,用于 dense 向量的相似性搜索和聚类,可以很容易地应用于数十亿个向量)来索引 encode 之后的向量。

当然,为了让公式(1)的效果更好,对encoder的训练是不可避免的。每一个 example 由一个 question 和一堆 paragraph 组成,paragraph 中有一个是和 question 相关的,n 个和 question 无关的,loss 也就是对数似然:

一般情况下,正负例的比例会差很多,作者在选负例的时候也采用了一些 trick:

  • (1) Random: any random passage from the corpus;
  • (2) BM25: top passages returned by BM25 which don’t contain the answer but match question tokens heavily;
  • (3) Gold: positive passages paired with other questions which appear in the training set. (效果最好)

question 和 passage 在 encoding 之后,作者还采用了一种节省计算量的方法,称之为 In-batch negatives,原文描述如下:

Experiments: Passage Retrieval

Table 2 使用 top-k 精度(k 为 20 或 100)比较了五个 QA 数据集上不同的文章检索系统。除了 SQuAD,DPR 在所有数据集上都比 BM25 表现得更好。当k值较小时,差距尤其大(例如,NQ 的 top-20 78.4% vs 59.1%)。

当使用多个数据集进行训练时,TREC(五种数据集中最小的数据集)可以从更多的训练示例中获益。相比之下,NQ 和 WebQuestions 得到了适度的改进,而 TriviaQA 则略有下降。在某些情况下,可以通过在单数据集和多数据集设置中结合 DPR 和 BM25 进一步改进结果。

作者还探讨了需要多少训练实例才能获得一个良好的文章检索性能。

作者也尝试了不同的 DPR 训练方案。表 4 中总结了 NQ dev 集的结果。

最后,作者根据不同的DPR,对后续的 QA 的效果也做了对比:

结论

首先,本文演示了在适当的训练设置下,只需对现有 question and passage encoder 进行 fine-tuning 就足以在 top-k 检索精度方面大大超过强大的 Lucene-BM25 系统。

dense 表示法是 sparse 向量表示法的补充,将它们结合起来可以进一步提高性能。其次,我们验证了,在开放域 QA 的上下文中,较高的检索准确度确实可以转化为较高的 end-to-end QA 准确度。
PaperWeekly
PaperWeekly

推荐、解读、讨论和报道人工智能前沿论文成果的学术平台。

理论问答系统ACL 2020
1
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

信息检索技术

信息检索(IR)是基于用于查询检索信息的任务。流行的信息检索模型包括布尔模型、向量空间模型、概率模型和语言模型。信息检索最典型和最常见的应用是搜索引擎。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

聚类技术

将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。

推荐文章
暂无评论
暂无评论~