研究领域:信息检索(information retrieval)

任务定义:文档检索 是从 大型文档集合 中 查找与特定查询相关的文档的任务

下游任务:开放域问答(open domain question answering)、事实核查( fact checking)……

传统做法(基于词频):利用词汇相似性来匹配查询和文档,属于稀疏方法(sparse methods)

代表方法:TF-IDF、BM25

问题所在:存在 “词汇鸿沟” 问题,泛化能力较差(suffer from the lexical gap and do not generalize well)

神经网络:能够学习词汇相似性之外的特征

缺点:

  • 数据量大,手工标注不现实
  • “零样本”场景,效果不如传统做法
  • 除英语外,其他语言通常缺乏大规模标注数据集

过去尝试:

  • 通过使用近似检索(approximates retrieva)的辅助任务,可以实现无监督密集检索器的训练。给定一个文档,可以生成一个合成查询,然后训练网络在给定查询的情况下从多个文档中检索原始文档
  • 逆完型填空任务(inverse Cloze task (ICT)) :用于预训练检索器,该任务使用给定句子作为查询,并预测其周围的上下文。作为零样本检索器时性能仍落后于 BM25

提出背景:使用神经网络的密集检索器(dense retrievalers),在没有训练数据的新应用中迁移能力较差


文章做法:探索对比学习作为训练无监督密集检索器的方法的局限性,并表明它在各种检索场景中具有强大的性能


模型结构:使用双编码器架构,其中文档和查询独立编码,相关度得分由两者表示向量的点积计算得出。

s(q, d) = \langle f_0(q), f_\theta(d) \rangle.

其中​q 为查询,​d为文档,​f_\theta 为 Transformer 网络


对比学习的核心假设是:每个文档在某种意义上是唯一的,这种唯一性信号是无监督场景下唯一可用的信息。损失函数如下:

\mathcal{L}(q, k_+) = - \frac{\exp(s(q, k_+)/\tau)}{\exp(s(q, k_+)/\tau) + \sum_{i=1}^{K} \exp(s(q, k_i)/\tau)},

​k_+ 正样本文档,​\{k_i\}^K_{i=1} 为负样本集合。(注意这里,正样本为单个,而负样本为集合。目前的猜测是:如果正样本也是集合的话,其中一个很大,结果就会大,不便于判断是否真的学会)​\tau 为温度系数

文中提到了两种构建正样本对的方法:

  • ICT,从文档中随机采样一个片段作为查询,剩余文档作为键(有的做法,会10%保留裁剪的内容)
  • 独立裁剪:从文档中独立采样两个片段形成正样本对。(允许片段重叠)
  • 其他数据增强:随机词删除、替换或掩码等增强方式,作为随机裁剪的补充

构建大规模负样本集合

  • 批次内负样本(In-batch Negatives):将同一批次中的其他样本作为负样本。此方法的梯度需反向传播至查询和键的表示,但需要极大的批次规模才能有效
  • 跨批次负样本(Negatives across Batches):将历史批次的表示存入队列,作为当前批次的负样本。允许较小批次规模,但会引入不对称性。(这里提到了MoCo技术)

最终做法:带随机裁剪的 MoCo 方法


数据集和评价指标

数据集

  • 维基百科数据和 CCNet 数据混合样本:用于训练
  • NaturalQuestions 和 TriviaQA:用于评估
  • BEIR 基准:评估。BEIR 的大多数数据集不含训练集,其核心目标是评估零样本检索性能
  • MS MARCO:用于监督微调的
  • Mr. TyDi:评估mContriever
  • MKQA:评估mContriever

评价指标:

  • 报告 top-k 检索准确率,即至少有一个 top-k 段落包含答案的问题数量占比:对于QA数据集
  • nDCG@10 :关注前 10 名检索文档的排序质量,适用于评估搜索引擎返回给用户的排名
  • Recall@100 :适用于评估机器学习系统(如问答系统)中的检索器性能,这类系统可处理数百篇文档并忽略其排序

辅助材料

Bi-Encoder 和 Cross-Encoder 分别是什么?

Bi-Encoder:给定句子生成句子的embedding。我们将句子 A 和 B 独立地传递给 BERT,从而产生句子嵌入 u 和 v,然后可以使用余弦相似度比较。

Cross-Encoder:同时将两个句子传递给 Transformer 网络。它产生一个介于 0 和 1 之间的输出值,表示输入句对的相似性。不产生句子的 embedding。 并且,无法将单个句子传递给Cross-Encoder。

Bi-Encoder和Cross-Encoder的比较

评价指标的释义:

对于检索结果,通常排序靠前的结果往往更加重要,因此这些评价指标都会针对top-k结果进行计算(记作@k)


可能需要了解的一些内容
  • TF-IDF
  • BM25
  • DPR
  • 对比学习
  • hard negative 是什么
  • MoCo
  • 通过交叉编码器对检索文档进行重排序(This strong recall@100 performance can be further exploited by using a cross-encoder2 to re-rank the retrieved documents)?这是什么
  • negative mining and do not use distillation