当一个模型展现了很好的表现的时候,它不一定是强壮的或是具有很强的鲁棒性。那么在ABSA模型中,什么样的模型是鲁棒的呢?我们认为一个具有鲁棒性的细粒度情感分析模型应该具有一下三个特征:1.知道在句子中哪些词语是方面,即aspects;2.它应该知道哪些词是情感词;3.最重要的一点,它应该知道对于我们要预测的目标方面来说哪些情感词是来修饰它的。现有的深度学习模型在ABSA模型上面都取得了非常好的效果,然而这些模型是否真的明白方面和情感词之间的对应关系呢?接下来看几个典型的例子:1)“Tasty burgers,crispy fries.”:在这个句子中burgers是我们需要预测的一个方面词,它的情感极性是正向的,ABSA模型也会将它预测为正向的。2)“Tasty burgers, soggy fries”:在这个句子中fries的情感极性是负向的,而我们需要预测的burgers的情感极性是正向的,在这个情况下ABSA模型会感到一些困惑。3)“Tasty burgers, soggy fries, and worst of all the service.”:在这个句子中所有的非目标方面都是负向的,ABSA模型在这个例子中预测为负向,预测失败。因此我们对现有模型的鲁棒性提出了疑问,一个模型能够对什么程度的测试样本进行正确的预测。1)第一个问题,如果我们反转了这个目标的情感极性,那么模型是否也会相应的改变它的预测结果呢?2)第二个问题是,如果在句子中所有非目标方面的情感极性都是和目标方面的情感极性相反的,那么模型是否还能预测正确呢?3)第三个问题是,如果我们在句子当中添加了很多和目标方面相反的非目标方面的情感表示的话,那么模型是否还能预测正确呢?基于以上这三个问题,我们认为当且仅当我们能够对这三个问题都回答正确的时候,这个模型才能够称之为鲁棒的。因此我们基于这三个问题先去探究了一下现有的ABSA模型的数据集。第一个数据集是Twitter 2014数据集,第二个是Semeval 2014 Laptop数据集,第三个是Semeval 2014 Restaurant数据集。从图中可以发现,在数据集中大部分的测试数据,其目标方面的情感和非目标方面的情感极性都是相同的。因此仅仅只有图中蓝色的一小部分的数据可以被用来回答我们之前提出来的问题。然而当我们在这个小测试子集上进行测试的时候发现,原先最好的模型在Laptop上的表现从78.53%下降到了59.32%,在Restaurant数据集上的表现从原有的86.70%下降到了63.93%。这样大幅度的下降就表明了现有的模型是过度的依赖于非目标方面的情感词,进而做出的预测。也就是说,它并不知道哪些情感词在修饰目标方面。
2
数据集的对比分析
因此我们就提出了一个自动生产测试集的框架。上图中,在原有的测试集中有句子“Tasty burgers,and crispy fries.”,在这句当中有一个目标方面burgers,它情感极性是正向的,对于fries来说,它是非目标方面,它的情感极性是负向的。模型的任务是预测burgers的情感极性,如果模型对于burgers预测正确的话,它是依赖于tasty这个单词还是crispy这个单词亦或者是其他的一些线索呢?我们其实就是想要探究这个问题。我们提出了三种生成的策略,来生成一个probing set。第一个策略叫做REVTGT。在REVTGT这个策略当中,我们把目标方面的情感极性反转,就把tasty变成了terrible,同时也把情感极性从positive变成了negative。第二个策略叫做REVNON。在这个策略当中我们没有修改目标方面的情感,我们修改的是非目标方面的情感词,我们把fries从crispy变成了soggy,这样的情感极性就是负向的。第三个策略叫做ADDDIFF。我们在句子末尾添加了一些和目标反面情感极性相反的非目标方面的表达,在这个例子中我们添加了“but poorest service ever”。接下来我们看一下REVTGT的具体细节。1)第一个我们举得例子是“It’s light and easy to transport.”,在这个句子当中目标方面是transport,它有两个情感词light和easy,我们获得了一些light和easy的反义词heavy和difficult并且替代它们。2)但是不是所有词语都有反义词,第二个例子“The menu changes seasonally”中changes这个词,因此我们在这个词前面加了一个否定词,变成了does not change。3)第三个例子是“The food is good, and the décor is nice.”,我们在修改情感词的同时也面临一些可读性的问题,例如将nice改为nasty,就需要将and改为but。第二个策略是REVNON,在这里我们遇到了两种情况,第一种情况是非目标方面的情感极性与目标方面的情感极性相同,在这种情况下我们需要反转它的情感极性。第二种情况是非目标方面的情感极性与目标方面的情感极性相反,这种情况下情感就需要加强。举个例子“It has great food at a reasonable price, but the service is poor.”,在这个例子当中,我们的目标方面是负的,它的情感是正向的,我们有非目标方面price和service,因为price由reasonable修饰,所以它的情感方向是正向的。所以我们将其变成了unreasonable,对于service而言其原本情感就是负向的,所以我们添加了一个程度副词extremely使其加深。第三个策略是ADDDIFF,首先我们从训练集中抽取了Aspect的表示,构建了一个AspectSet。然后我们随机从AspectSet中抽取1~3个这样的表示,添加到了句子末尾。这些表示需要满足两个条件,第一个是它的情感极性必须和目标极性相反,第二个是这个方面在之前的句子中是没有提到过的,就比如例子中“Tasty burgers, crispy fries, but poorest service ever!”添加了“but poorest service ever”在句子末尾。这个策略就保证了句子的整体情感从原来的正向变成了负向。接下来我们根据这三种策略构建了新的数据集,ARTS。我们将ARTS数据集与原有的数据集进行了对比,我们发现ARTS数据集比原有的数据集更大一些,并且它的标签也更加的平衡。第二点是ARTS数据集更有挑战性。我们衡量了三个点,第一个点是在每个句子当中Aspect的数量,我们发现在ARTS数据集中的数量要比原有数据集的数量更多。第二点是在测试集当中,和目标方面情感极性相反的非目标方面数量不少于1的比例远远上升。第三个是在句子当中和目标方面情感极性相反的非目标方面的数量比原本的数据集超出了许多。因此我们的数据集更具有挑战性。