作者 | 太子长琴 整理 | NewBeeNLP
近年来与传统的检索模型和反馈方法相比,大规模预训练的效果有了显著提高。不过这些结果主要是基于 MS Macro/ TREC[1] 设置,非常特殊,我们对模型为什么好的理解是分散的。
今天分享一篇 Paper:How Different are Pre-trained Transformers for Text Ranking?[2]。在文档检索任务上分析了 BERT 的交叉编码器与传统的 BM25 ,研究两个问题:
第一,它们的相似之处在哪里?深度学习方法在多大程度上包含了 BM25 的能力,性能的提升是否由于相同文档的排名更高。第二,它们的不同之处是什么?深度学习方法能否检索 BM25 漏掉的文档。
一句话概述:BM25 粗排+ CE(Cross-Encoder) 精排,你值得拥有。
BERT 的超多参数让它可以处理更长的依赖和复杂的句子结构。当用在排序中时,可以通过在 query 和 document 之间构造深度交互用于揭示复杂的相关性模式。但我们对其相关性估计的基本匹配原则知之甚少,还有模型中编码了哪些特征,以及与传统的稀疏排序器(如 BM25)的关系等。
本文首先通过回答以下问题深入了解 CE(Cross-Encoder)BERT和 BM25(排名)的相互关系:
然后,隔离和量化「精确和软文档」匹配对整体性能的贡献,具体就是探索以下问题:
之前的相关工作并不太多,主要包括:
实验设置 如下:
Baseline 如下:
另外,下面的描述中,10 100 等分别表示 1-10,10-100,即约定数字表示范围的上界。
结果如下图(a)所示:
结果如图(bcd)所示:
结果如图(bc)CE@10 所示:
把文档中所有非查询词替换为 [MASK]
Token,强制它仅依赖查询词和文档之间的精确匹配。结果如下表(第一行)所示,仅有 query 的 CE 比 BM25 差了很多,说明 CE 没有充分利用精确匹配。
MASK 掉文档中出现的 query 词,模型只使用文档的上下文(此时由于文档中没有 query 词,BM25 返回是随机的)。结果如下表(第二行)所示,相比正常情况掉了不少点,但比第一行结果好很多,说明 CE 能够从上下文中填充 MASK 掉的 Token。
本文主要探索了深度学习语义排序和传统以词匹配为主的排序,这一类的文章并不多见,不过也许——因为这个太直观了?因为这个背后的本质其实有点类似传统的稀疏表征和稠密表征的区别,结果显然是——显然的——两者各有所长,应当结合使用。另外说一句,这篇论文看着不复杂,但读起来特别吃力,不知道其他小伙伴有没有这种感觉。
[1]
MS Macro/ TREC: https://github.com/microsoft/MSMARCO-Passage-Ranking
[2]
[2204.07233] How Different are Pre-trained Transformers for Text Ranking?: https://arxiv.org/abs/2204.07233