MS MARCO Passage Ranking Leaderboard —— BM25 + monoBERT + duoBERT + TCP

    本文对MS MARCO Passage Ranking 榜单的 BM25 + monoBERT + duoBERT + TCP 进行解读,原文地址请点击此处

1. 背景介绍

    这个模型在MS MARCO上的最好成绩是0.38,和目前的SOTA 0.45有一定差距,但由于作者 Rodrigo Nogueira 等人在此前的一篇论文《Passage Re-ranking with BERT》中首次将BERT用于检索中的重排序任务,是将BERT作为重排序器的鼻祖,因此他的 BM25 + monoBERT + duoBERT + TCP 还是要解读一遍的。在《Passage Re-ranking with BERT》中,Rodrigo Nogueira 给出了BERT作为重排序器(查询与段落拼接,当成BERT句子对分类任务来做)的 Baseline 结果,如下图,
在这里插入图片描述
    BM25 + monoBERT + duoBERT + TCP 这个模型探索了BERT作为重排序器的更多玩法,比朴素地使用BERT的效果提升约3个点,我们在后面介绍。

2. Multi-Stage Ranking with BERT

在这里插入图片描述
    如图所示,作者将检索+重排序分为了三个阶段: H 0 H_{0} H0 H 1 H_{1} H1 H 2 H_{2} H2

  • H 0 H_{0} H0 :“Bag of Words” BM25
        阶段 H 0 H_{0} H0 使用 BM25 进行精确的词条匹配,接收查询 q q q ,输出 top- k 0 k_{0} k0 个候选 R 0 R_{0} R0

  • H 1 H_{1} H1 :monoBERT
        monoBERT 就是最原始的BERT用法,将查询与段落按照BERT的方式拼接,计算他们之间的相关性分数,论文将这种方式称为 Pointwise re-ranker。阶段 H 1 H_{1} H1 基于 monoBERT 生成的相关性分数,输出 top- k 1 k_{1} k1 个候选 R 1 R_{1} R1

  • H 2 H_{2} H2 :duoBERT
        这个 duoBERT 比较新鲜,采用了 Pairwise 的方式训练 re-ranker。注意到这里出现的 Pairwise 和 前面的 Pointwise,这两其实是之前机器学习排序模型(Learning to Rank)中的概念:
    在这里插入图片描述

    根据学习目标的不同,排序模型大体可以分为Pointwise、Pairwise和Listwise。这三种方法的示意图如上图所示。其中,Pointwise方法直接预测每个文档和问题的相关分数,尽管这种方法很容易实现,但对于排序来说,更重要的是学到不同文档之间的排序关系。基于这种思想,Pairwise方法将排序问题转换为对两两文档的比较。具体来讲,给定一个问题,每个文档都会和其他的文档两两比较,判断该文档是否优于其他文档。这样的话,模型就学习到了不同文档之间的相对关系。

    然而,Pairwise的排序任务存在两个问题:第一,这种方法优化两两文档的比较而非更多文档的排序,跟文档排序的目标不同;第二,随机从文档中抽取Pair容易造成训练数据偏置的问题。为了弥补这些问题,Listwise方法将Pairwsie的思路加以延伸,直接学习排序之间的相互关系。根据使用的损失函数形式,研究人员提出了多种不同的Listwise模型。比如,ListNet直接使用每个文档的top-1概率分布作为排序列表,并使用交叉熵损失来优化。ListMLE使用最大似然来优化。SoftRank直接使用NDCG这种排序的度量指标来进行优化。大多数研究表明,相比于Pointwise和Pairwise方法,Listwise的学习方式能够产生更好的排序结果。(以上两段引用自这里

    回到本文,duoBERT 将查询 q q q,候选段落 d i d_{i} di 和候选段落 d j d_{j} dj 拼接送入BERT,取[CLS]输出向量计算概率,因为有 k 1 k_{1} k1 个候选段落,所以要计算 k 1 ∗ ( k 1 − 1 ) k_{1} * (k_{1}-1) k1(k11) 次概率。 训练时采用以下损失函数:
L duo  = − ∑ i ∈ J pos  , j ∈ J neg  log ⁡ ( p i , j ) − ∑ i ∈ J neg  , j ∈ J p o s log ⁡ ( 1 − p i , j ) \begin{aligned} L_{\text {duo }}=-& \sum_{i \in J_{\text {pos }}, j \in J_{\text {neg }}} \log \left(p_{i, j}\right) \\ &-\sum_{i \in J_{\text {neg }}, j \in J_{\mathrm{pos}}} \log \left(1-p_{i, j}\right) \end{aligned} Lduo =iJpos ,jJneg log(pi,j)iJneg ,jJposlog(1pi,j)

    根据损失函数来看,建模的任务应该是最大化段落 d i d_{i} di 与查询 q q q 的相关分数大于段落 d j d_{j} dj 与查询 q q q 的相关分数的概率,即 d i d_{i} di 优于 d j d_{j} dj 的概率。在推理时,聚合成对分数 p i , j p_{i,j} pi,j,以便每个文档都收到一个分数 s i s_{i} si。论文给出了五种不同的聚合方法(SUM、BINARY、MIN、MAX 和 SAMPLE):
 SUM  : s i = ∑ j ∈ J i p i , j ,  BINARY  : s i = ∑ j ∈ J i 1 p i , j > 0.5 ,  MIN  : s i = min ⁡ j ∈ J i p i , j ,  MAX  : s i = max ⁡ j ∈ J i p i , j ,  SAMPLE  : s i = ∑ j ∈ J i ( m ) p i , j , \begin{aligned} \text { SUM }: s_{i} &=\sum_{j \in J_{i}} p_{i, j}, \\ \text { BINARY }: s_{i}&= \sum_{j \in J_{i}} \mathbb{1}_{p_{i, j}>0.5}, \\ \text { MIN }: s_{i} &=\min _{j \in J_{i}} p_{i, j}, \\ \text { MAX }: s_{i} &=\max _{j \in J_{i}} p_{i, j}, \\ \text { SAMPLE }: s_{i} &=\sum_{j \in J_{i}(m)} p_{i, j}, \end{aligned}  SUM :si BINARY :si MIN :si MAX :si SAMPLE :si=jJipi,j,=jJi1pi,j>0.5,=jJiminpi,j,=jJimaxpi,j,=jJi(m)pi,j,

    其中 J i = { 0 ≤ j < ∣ R 1 ∣ , j ≠ i } J_{i}=\left\{0 \leq j<\left|R_{1}\right|, j \neq i\right\} Ji={0j<R1,j=i} m m m 是从集合 J i J_{i} Ji 中不放回抽取的样本数。最终的候选列表 R 2 R_{2} R2 根据分数 s i s_{i} si 重新排列 R 1 R_{1} R1 中的候选得到。

3. 实验结果分析

    等等,BM25 + monoBERT + duoBERT + TCP 里面的 TCP 呢?这是个什么东西?协议?其实 TCP 是 Target Corpus Pre-training 的缩写,即在目标语料库 MS MARCO 进一步预训练的意思,就这么简单。
在这里插入图片描述
    上图显示了在 MS MARCO 数据集上的实验结果,Anserini 实现的 BM25 要比微软的效果好两个点,造成差异的原因有以下几种: tokenization、停用词选择、词干提取和参数调整等。这种多阶段的方法还是比较费时的,毕竟要接连过两个交互式BERT,duoBERT 还要计算 k 1 ∗ ( k 1 − 1 ) k_{1} * (k_{1}-1) k1(k11) 次,很大程度上增加了检索延迟,但是将 Pairwise 应用于 BERT 上这一点还是很有借鉴性的,这篇论文也在一定程度上为后来的榜首 DR-BERT (美团提出的)提供了思路。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值