Adversarial and Domain-Aware BERT for Cross-Domain Sentiment Analysis(https://www.aclweb.org/anthology/2020.acl-main.370/)
这是ACL2020上的一篇长文,作者来自北京邮电大学。
这篇文章将BERT模型用在跨领域情感分析上,所使用的方法并没有非常新颖,不过实验和分析倒是挺多的。
大体思路
这篇文章所研究的“跨领域情感分析”,旨在通过源领域的标注数据对目标领域的无标注数据进行情感分类。源领域如餐饮领域,目标领域如电子产品领域,这两个领域之间存在一定的差异。为了克服领域间的差异,一大类工作的思路是在特征抽取阶段,抽取领域不变的特征。比如以下两个句子中,“不错”则是领域不变的特征,而“清晰”和“周到”则是领域特定的特征。
电子产品领域:这个屏幕不错,很清晰。
餐饮领域:他们的服务不错,很周到。
这篇文章也采用这种方法。此外,他们还适应BERT的特点,进行了后训练(post-training)。
后训练
后训练这种说法我最早是从下面的文章中看到的,大概是为了与预训练(pre-training)区分开来。这种说法虽然严谨,貌似用的人不多。
BERT Post-Training for Review Reading Comprehension and Aspect-based Sentiment Analysis(https://www.aclweb.org/anthology/N19-1242/)
在这篇文章中,作者使用了两个后训练任务:领域分类任务和mlm(mask language model)任务。下面分别介绍。
领域分类任务 在该任务中,作者构造了两种句子对,句子对由句子A和句子B构成。第一种句子对中句子A和句子B都是目标领域,第二种句子对中一个句子来自源领域,另一个来自其他领域。下图是例子。两种句子对都是随机采样的,各占50%。随后将这两种句子输入到BERT中,使用[CLS]处的向量进行分类。作者指出,该任务的目的是让模型增加对不同领域数据的感知,以增强接下来的对抗训练。
mlm任务 这里的mlm任务则和BERT预训练中的基本相同,区别在于文章只mask了目标领域句子中的词。但是这里我有个疑问。如果进行领域分类任务和mlm任务的联合训练,那么模型岂不是可以根据mask的情况找到领域分类任务的捷径?可惜这篇文章的代码没有开源。
对抗训练
前面提到大部分的模型都是通过抽取领域不变的特征来进行跨领域的情感分类。为了实现这一点,大部分的工作都是在进行情感分类的同时,添加一个领域分类任务,然后配合梯度反转层来进行对抗训练。关于梯度反转层,可以参见我的这篇文章(【梯度反转】https://zhuanlan.zhihu.com/p/75470256)。作者进行情感分类和领域分类的时候,也使用了[CLS]处的向量。
理论分析
与大多数工作不同的是,作者就其提出的方法进行了一定的理论分析,将感觉转变为可证明的定理。经过一番假设和推导后得到:
即目标领域错误的期望值的上界由三部分构成:(1) 源领域错误的期望值,(2)两个领域的差异,(3)一个常数。所以说,为了降低目标领域上的错误率,应该降低源领域上的错误率,并减少两个领域的差异。
实验部分
实验仍是在Amazon数据集上进行。实验结果如下表所示,其中BERT-AT是指只使用了对抗训练没有使用后训练,BERT-DA使用了后训练没有使用对抗训练。从表中可以看出,使用了后训练和对抗训练的策略,在BERT模型的基础上提高了将近2个百分点。而且作者指出,单纯地使用对抗训练提高并不大,而结合了后训练之后,对抗训练的效果才较为明显。
此外,作者还通过t-SNE进行了特征的可视化。如下二图所示,在左图中在源领域上的不同情感倾向句子的特征相距较远,而在目标领域上分离的就不够充分;经过了后训练,相比左图,在右图中,不同领域的特征分离的比较明显,而且相对来说目标领域上不同情感倾向的特征分离程度更高(作者这么说的,不过肉眼上好像也看不出来)。
如下二图所示,经过对抗训练后,在左图中和右图中两个领域的特征距离均比较接近。而在左图中,不同情感倾向句子的特征分离没有右图中的明显。经过一堆分析后,我们可以看到在文章提出的方法中,不同领域上的分离程度低,不同情感倾向上的分离程度高,结合前面的理论分析,所以提出的方法效果好。
文章还有关于领域差异度以及消融分析的实验,这里不介绍了。
总结
这篇文章的实验和分析的确是充分,而且也没有很强行。不知道以后会不会有类似{D, B, K}->E的工作。