【论文笔记】BERT Post-Training for Review Reading Comprehension and Aspect-based Sentiment Analysis(2019)

这篇论文提出了将阅读理解技术用于网络评论数据,来避免现在电子商务机器人的回答不够灵活的缺点的一种思路。作者称这种问题为RRC(Review Reading Comprehension),还做了一个小数据集(大概加起来只有2000多条示例数据)。作者这篇论文对我来说最大的价值在于他提出了一种BERT的后训练方法,让小数据量下训练BERT也得到了很好的效果。

1. 介绍

前面针对作者定义的RRC的一系列的介绍和定义就不说了,总之是作者把对评论数据的阅读理解单拉了出来,称为RRC。个人觉得这种形式没有技术上的创新,仅仅是把技术用到了一个新的可能的领域。

但是作者遇到了一个问题:他自己制作的数据集太小了,小到即使是用了BERT的预训练模型参数,也没法得到一个可以接受的结果。

基于这一点作者进行了分析,认为是由于数据过少,BERT中缺乏对领域知识任务相关的知识。基于这两点,作者提出了一种后训练的解决方案,取得了良好的效果。

为了证明这一方法的泛化性能,作者也在其他两个任务(分别是aspect extraction和aspect sentiment classification,这两个实验不在本笔记中展开描述)上做了实验,取得了良好的效果。

2. 方案

对抽取式阅读理解的问题定义在这里不详细描述,之前的笔记中定义过很多次了。作者设计的网络如下,基本只是在BERT后,针对起始位置和终止位置分别接一层全连接,然后softmax分类。是一种很简单的实现方式。

【论文笔记】BERT Post-Training for Review Reading Comprehension and Aspect-based Sentiment Analysis(2019)

说真的,这配色辣眼睛

作者直接用自己定义的RRC数据集进行训练,取得的效果很差。

作者认为BERT在wiki等语料集上进行训练造成了一些“领域的偏差”,因此模型需要获取一些领域相关知识和任务相关知识。

对于任务相关知识,作者的思路很自然,即在现有的大型MRC数据集上训练,作者使用的是SQUAD1.1数据集。

对于领域相关知识,作者使用了亚马逊网站和Yelp上面的评论数据,使用BERT典型的对无标记数据的两个训练任务进行了训练。这两个任务分别是MLM ( masked language model),和NSP ( next sentence prediction)。

简单描述一下这两个任务,MLM指将文本中一些词随机用[MASK]替代,并让模型预测它们到底是什么词。NSP将两句话拼接,让模型预测它们是否是来自同一个文本。

作者认为,MLM任务让模型学习到了单词级别的领域知识,例如在原本的模型中,与“明亮的”相关的可能是窗户或太阳,但经过训练,模型会将“明亮”与“屏幕”关联。在NSP中,同理学习到了句子级别的知识。同时在NSP任务时,也可以让模型预测这两边的句子是否有相同的评分(评论信息带评分),或是否描述相同的产品,以此更好地学习领域相关的特征。

这个思路虽然很自然,但这个分析思路很可贵,BERT预训练模型,乃至于word embedding,实际上都是将传统的手工特征工程交给了神经网络。基于这个本质,所谓领域知识的学习,实际上就是研究怎么让网络更能捕捉领域相关特征。

在实验中,作者将领域相关知识的训练和任务相关知识的训练一起进行,具体的方式就是让他们的loss相加,一起优化。

针对会出现的显存容量占用过多的问题,作者提出可以将一个batch分为小batch,并将这些小batch对参数的更新值计算出来先不更新,而是将一个batch的小batch更新值加起来平均,然后更新。但是在现在框架普遍自动求导的现状下,要实现这个感觉还是比较困难,抽空可以看看他的代码。