预训练模型与传统方法在排序上有啥不同?
作者 | 太子长琴
整理 | 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(排名)的相互关系:
CE 和 BM25 排名有何不同?
CE 能否对 BM25 检索到的文档进行更好地排名?
CE 能否更好地找到 BM25 漏掉的文档?
然后,隔离和量化「精确和软文档」匹配对整体性能的贡献,具体就是探索以下问题:
CE 是否包含「精确匹配」?
CE 还能找到「不可能」的相关结果吗?
之前的相关工作并不太多,主要包括:
将 BERT 当做黑盒,经验性地发现精确的 query 匹配和 query 的重要性似乎起着重要作用。
测试并定义 IR 公理,或试图通过正则化来执行这些公理。
强制实施稀疏编码,并将神经网络排名与稀疏检索相关联。不过这个工作分别独立编码 query 和文档,更加关注(BERT 和 BM25)交互,而不是相互关系。
实验设置 如下:
使用原始的 BERT CE,输入是 query 和文档的拼接,最后 CLS 接二分类,判断相关还是不相关。
BM25(不带 stemming)获取 top-1000 文档,CE 重排。
Baseline 如下:
另外,下面的描述中,10 100 等分别表示 1-10,10-100,即约定数字表示范围的上界。
问题1:CE 和 BM25 排名有何不同?
结果如下图(a)所示:
CE 和 BM25 在顶部差异很大(CE@10 33%),低排名(CE@1000 60%)时相反。
CE 将许多文档提升到更高的级别。
BM25 排名靠前的文档很少被 CE 评为低,说明精确匹配是一种重要的基础排名策略。
问题2:CE 能否对 BM25 检索到的文档进行更好地排名?
结果如图(bcd)所示:
图(b 第一个)显示,二者都对高度相关的文档表现出 CE@10 的低一致(40%),暗示了两种方法在靠前排名的相关性。
相关文档(图c 第一行)观察到两者在前排有有 46% 的交叉,32% 来自 BM25@100,意味着 BM25 低估了许多文档的相关性。另外,出现在较低级别中的高度相关文档源自 BM25 中的高级别(图b图c 第一列),说明 CE 失败并低估了这些文档的相关性。
在考虑两种方法都排名较低的文档时,发现@1000的完美一致(图b右下),表明这两种方法将相同(高度)相关的文档标识为不相关。
对不相关文档(图d),CE 从低排名中给 CE@10 带来了大量不相关文件,高估了 BM25 正确认为不相关的文档。
问题3:CE 能否更好地找到 BM25 漏掉的文档?
结果如图(bc)CE@10 所示:
图b:42% 高相关但在 BM25@100 里的被排到 CE@10,13% BM@500;图c 结果类似。说明 CE 可以提取 BM25 漏掉的相关文档,即使原来的排名非常低也没关系。
问题4:CE 是否包含「精确匹配」?
把文档中所有非查询词替换为 [MASK]
Token,强制它仅依赖查询词和文档之间的精确匹配。结果如下表(第一行)所示,仅有 query 的 CE 比 BM25 差了很多,说明 CE 没有充分利用精确匹配。
问题5:CE 还能找到「不可能」的相关结果吗?
MASK 掉文档中出现的 query 词,模型只使用文档的上下文(此时由于文档中没有 query 词,BM25 返回是随机的)。结果如下表(第二行)所示,相比正常情况掉了不少点,但比第一行结果好很多,说明 CE 能够从上下文中填充 MASK 掉的 Token。
结论
排名靠前的文档通常排名非常不同,但排名底部的文档似乎存在更强的一致性。
CE 低估了 BM25 正确排名的一些高度相关的文档,同时又高估了不相关的文档。精度的提高主要源于将高度相关的文档从 BM25 的后面提到前面。这也说明了 BM25 可用于召回或粗排,而 CE 则主要用于精排。
CE 无法仅基于 query 词精确匹配进行排名(效果远差于 BM25),但把文档中的 query 词 MASK 掉后 CE 依然可以排序,尽管性能有所下降。这也是深度学习模型相比传统方法的真正优势。
本文主要探索了深度学习语义排序和传统以词匹配为主的排序,这一类的文章并不多见,不过也许——因为这个太直观了?因为这个背后的本质其实有点类似传统的稀疏表征和稠密表征的区别,结果显然是——显然的——两者各有所长,应当结合使用。另外说一句,这篇论文看着不复杂,但读起来特别吃力,不知道其他小伙伴有没有这种感觉。
一起交流
想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐广告 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定o要备注信息才能通过)
本文参考资料
[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
预训练模型与传统方法在排序上有啥不同?相关推荐
- 谷歌提出超强预训练模型CoCa,在ImageNet上微调Top-1准确率达91%!在多个下游任务上SOTA!...
关注公众号,发现CV技术之美 本文分享论文『CoCa: Contrastive Captioners are Image-Text Foundation Models』,Google Research ...
- 大规模知识图谱预训练模型及电商应用
点击上方蓝字关注我们 大规模知识图谱预训练模型及电商应用 陈华钧1,2, 张文3, 黄志文4, 叶橄强1, 文博1, 张伟2,4 1 浙江大学计算机科学与技术学院,浙江 杭州 310007 2 阿里巴 ...
- 【论文精度】CodeBERT——基于自然语言和编程语言的预训练模型
CodeBERT 论文地址:https://arxiv.org/abs/2002.08155 Abstract 提出了一种用于编程语言(PL)和自然语言(NL)的双模态预训练模型CodeBERT, ...
- 万字综述!从21篇最新论文看多模态预训练模型研究进展
作者 | 杨浩 单位 | 阿里达摩院 研究方向 | 自然语言处理 背景 在传统的NLP单模态领域,表示学习的发展已经较为完善,而在多模态领域,由于高质量有标注多模态数据较少,因此人们希望能使用少样本学 ...
- 腾讯优图开源业界首个3D医疗影像大数据预训练模型
整理 | Jane出品 | AI科技大本营(ID:rgznai100) 近日,腾讯优图首个医疗AI深度学习预训练模型 MedicalNet 正式对外开源.这也是全球第一个提供多种 3D 医疗影像专用预 ...
- 中文版GPT-3来了?智源研究院发布清源 CPM —— 以中文为核心的大规模预训练模型...
清源 CPM(Chinese Pretrained Models)是北京智源人工智能研究院和清华大学研究团队合作开展的大规模预训练模型开源计划,清源计划是以中文为核心的大规模预训练模型.首期开源内容包 ...
- 中文版GPT-3来了?智源、清华发布清源 CPM——以中文为核心的大规模预训练模型
2020-11-18 23:43:21 清源 CPM(Chinese Pretrained Models)是北京智源人工智能研究院和清华大学研究团队合作开展的大规模预训练模型开源计划,清源计划是以中文 ...
- 腾讯开源首个医疗AI项目,业内首个3D医疗影像大数据预训练模型
乾明 发自 凹非寺 量子位 报道 | 公众号 QbitAI 腾讯AI,开源又有新动作. 旗下顶级AI实验室腾讯优图,对外开源了腾讯首个医疗AI项目--深度学习预训练模型MedicalNet. 这一项 ...
- 如何获取高精度CV模型?快来试试百度EasyDL超大规模视觉预训练模型
在深度学习领域,有一个名词正在被越来越频繁地得到关注:迁移学习.它相比效果表现好的监督学习来说,可以减去大量的枯燥标注过程,简单来说就是在大数据集训练的预训练模型上进行小数据集的迁移,以获得对新数据较 ...
最新文章
- CUDA 内存统一分析
- Uva 507 - Jill Rides Again(最大子数组求和问题)
- C# Excel 导入
- 查看UNIX系统版本
- 搭建云计算机win10,win10电脑做云服务器
- 01.轮播图之四 :imageViews(2 或者 3 个imageview) 轮播
- pytorch torchvision.transforms.ToTensor
- MySQL使用小技巧(一)——MySQL删除
- 加/减/乘/除 下的取余
- development period
- 拼多多api接口php算法,php封装的拼多多开放平台API类库
- 谷歌地图、百度地图、搜搜地图之浅比较
- 鼠标指针点击光圈特效_PC端手势操作神器——鼠标手势
- android sim卡状态改变广播,android监听SIM状态
- 线性波传播至垂直壁面反射形成驻波的动画MATLAB程序
- async-supported的作用
- 雷锋工厂模式(笔记)
- 一度智信:拼多多虚拟商品怎么运营
- 除留余数法构造哈希函数并用链地址法处理哈希冲突【C++实现】
- Python游戏开发-02-生成日志写入文件