自然语言(nlp)论文阅读笔记

一种解决bert长文本匹配的方法

2019-11-05  本文已影响0人  行云一一

引言

bert[1]提出来后打开了迁移学习的大门,首先通过无监督的语料训练通用的语言模型,然后基于自己的语料微调(finetune)模型来达到不同的业务需求。我们知道bert可以支持的最大token长度为512,如果最大长度超过512,该怎么样处理呢?下面这边论文提供一种简单有效的解决思路。

Simple Applications of BERT for Ad Hoc Document Retrieval

201903发表

1. 摘要

bert大招很好用,但是其最大长度为512以及其性能这两个缺点给我们的线上部署提出了挑战。我们在做document级别的召回的时候,其文本长度远超bert可以处理的长度,本文提出了一种简单并且有效的解决思路。将长的document分解成多个短的句子,每个句子在bert上独立推断,然后将这些句子的得分聚合得到document的得分。

2. 论文细节以及实验结果

2.1 长文本匹配解决思路

作者先以短文本匹配任务-社交媒体的帖子来做召回实验,通过query来召回相关的帖子,一般帖子的长度是较短的文本,在bert可以处理的范围内。实验的评价指标为两个平均召回(AP)top30的召回率(P30),下表是最近的深度模型在这个数据集上的结果。

微博短文本匹配方法性能

我觉得上述实验数据主要说一点:

bert在短文本匹配类型的任务上效果很好,性能SOTA

长文本的docment匹配一般解决方法:

本文的方法

针对新闻语料的长文本召回问题,本文首先利用NLTK工具将长文本分为短的句子,不同于考虑最匹配的句子,本文考虑top n个句子。最终长文本docment的匹配得分计算公司如下:
Score_d=a*S_{doc} + (1-a)*\sum_{i=1}^nw_i*S_i
其中Sdoc是原始的长文本得分(文本得分),例如BM25得分,Si表示第i个top的基于bert句子的匹配得分(语义得分),其中参数a的参数范围[0,1],w1的值为1,wi参数范围[0,1],基于gridsearch去调参,获得一个比较好的性能。

2.2 实验结果

finetune的数据

我们的原始的微调数据是查询query和长文本document的关系,而我们将长文本拆分为n个短句子后,不是所有的句子和当前的query是强相关的(正样本),因此我们不能简单依赖现在的长文本数据了。本论文的解决方法是基于外部语料,基于QA或者Microblog数据,首先bert基于通用的无监督语料学习到了词语以及句子的表征,所以基于少量的数据微调也可以获得较好的效果,因此本文选择外部相关的语料进行微调。具体效果如下表,我们发现长文本的匹配基于本文的方法可以取得比较好的效果。


本文方法的性能

3. 总结与问题

总结

思考

参考文献

Simple Applications of BERT for Ad Hoc Document Retrieval


  1. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

  2. Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context

上一篇下一篇

猜你喜欢

热点阅读