BERT在文档级排序中的应用

©PaperWeekly 原创 · 作者|金金

单位|阿里巴巴研究实习生

研究方向|推荐系统

简介

近年来 BERT 的出现,让预训练模型在各大自然语言处理任务上实现了屠榜。但是由于 BERT 模型本身的设计,使其在处理长度大于 512 个 token 的文本时面临着一些挑战。所以直接将 BERT 应用于文档级排序(document ranking)任务存在一定的困难,具体来说主要体现在以下两个方面:

  • 训练阶段,我们尚不清楚要向模型提供什么形式内容。关键问题是在文档级别的数据集提供了用于文档排序的相关性判断(例如 TREC 集合),即它们是整个文档的注释。显然,对“相关”的判断来自包含“相关内容”的文档,但是未知该内容如何在整个文档中分布。

  • 推断阶段,如果文档太长而无法全部输入 BERT,我们必须决定如何预处理文档。我们可以将其分段,但是有很多设计选择:例如,使用固定宽度的跨度还是诸如句子之类的自然单位?此外,对文档中的不同片段完成推断仍然需要一些聚合分数的方法。

在本文中,我们将介绍目前研究者针对上述问题的提出的一系列解决方案。

Birch:基于句子的文档级排序

Birch [1] 针对上述两个问题的解决方案可以总结如下:

  • 通过利用不存在长度问题的数据进行训练,然后将这些相关性匹配模型迁移到目标域/任务中,从而完全避免训练问题。

  • 对于推段问题,将估计文档相关性的任务转换为估计单个句子的相关性的任务,然后汇总结果分数。

具体来说,Birch 要计算文档相关性 ,对文档中的每个句子进行推断,然后将 top-n 个得分与原始文档得分 组合(即 first stage score),如下所示:

其中  是根据 BERT 的第 i 个最高得分句子的分数,而对每个句子的推断与 monoBERT 完全相同。换句话说,文档的相关性得分来自原始候选文档得分(例如,来自 BM25)和来自由 BERT 模型确定的文档中最高得分句子贡献的组合。

作者在 Robust04,Core17 和 Core18 三个测试集上 模型的效果,训练阶段,作者分别选用在 MB 数据集、MS MACRO 数据集和先 MS MACRO 数据集上微调 BERT Large,最终结果表明该方案的有效性。

本工作可以带给我们以下两点启发:

  • BERT 具有强大的 zero-shot 跨域相关性分类能力。也就是说,我们可以使用来自一个域的相关性判断来训练 BERT 模型,并将该模型直接应用于不同域中的相关性分类,并实现高水平的有效性。

  • 文档中评分最高的句子的相关性得分可以很好地代表整个文档的相关性。换句话说,似乎可以通过仅考虑几个最重要的句子来准确地估计文档级别的相关性。

BERT-MaxP:基于段落分数聚合的文档级排序

BERT-MaxP [2] 针对上述两个问题的解决方案可以总结如下:

  • 对于训练阶段,作者将文档分割成重叠的段落(passage):将相关文档中的所有段落视为相关,将不相关文档中的所有段落视为不相关。

  • 对于推理阶段,以相同的方式分割文档,估计每个段落的相关性,然后对段落相关性分数进行简单汇总,以得出文档相关性分数。

更详细地讲,文档使用 150 个单词的滑动窗口(跨度为 75 个单词)分成多个段落。针对每个段落的相关性推理,与 monoBERT 完全相同。得到每个段落的分数后,采用以下的三种方式得到文档级的相关性分数:

  • BERT–MaxP:使用最大的段落级相关分数作为文档级相关分数。

  • BERT–FirstP:使用第一段的段落级相关分数作为文档级相关分数。

  • BERT–SumP:使用全部的段落级相关分数和作为文档级相关分数。

作者在 Robust04 和 ClueWeb09b 两个数据集上测试模型效果,评价指标选择 NDCG@20

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值