An Interactive Multi-Task Learning Network for End-to-End Aspect-Based Sentiment Analysis 阅读笔记
1.摘要
ABSA主要是对一个自然语言的句子进行处理,得到aspect term及其情感列表。这个任务通常是通过pipeline(管道)方式完成的,先进行方面项抽取,然后对抽取的方面项进行情感分类。这种方法容易开发,但是没有充分利用来自两个子任务的联合信息,也没有使用使用所有有用的训练信息源,例如文档标记的情感语料库。
本文提出了一种交互式多任务学习网络(IMN),它联合了文档级、aspect级的多个任务。
与传统的多任务学习方法依赖于学习不同任务的共同特征不同,IMN引入了一种消息传递体系结构,通过一组共享的潜在变量将信息迭代传递给不同的任务。
2.介绍
AE : aspect term extraction(实体项抽取)
AS:aspect-level sentiment analysis(方面级情感分析)
DS:document-level sentiment classification(文档级情感分类)
DD:document-level domain classification(文档级域分类)
IMN引入了一种新的消息传递机制,允许任务之间相互交互。具体来说,它将不同任务的有用信息发送回共享的潜在表示。然后将这些信息与共享的潜在表示相结合,并提供给所有任务进行进一步处理。此操作是迭代执行的,允许随着迭代次数的增加修改信息并在多个链接之间传播。
通过共享任务的学习机制,不仅可以更好地通过共享任务来影响不同的任务,而且还可以通过共享的任务来更好地影响彼此之间的信息。
结合两个文档级别的分类任务,从而允许方面级别任务从文档级任务中获取信息
3. 相关工作
3.1 pipeline的缺点:
- 第一步中的错误往往会传播到第二步,从而导致整体性能较差。
- 无法利用任务之间的共性和关联(有助于减少训练两个任务所需要的数据量)。
3.2 Multi-Task learning
传统多任务的缺点:没有对任务之间的交互进行明确的建模,两个任务之间的交互只是通过误差反向传播来实现,这种内隐式交互是不可控的。
改进:与以往的方法不同,IMN不仅允许共享表示,而且通过使用迭代消息传播方案显式的建模任务之间的交互。传播的信息有助于学习和推理,从而提高ABSA的整体性能。
4.模型
输入的是句子序列 {x1,…,xn} ,作为所有任务之间共享的特征提取组件 fθs 的输入,该组件是有一个单词嵌入层和几个特征提取器构成的。
fθs 的输出是所有任务共享的潜在向量序列: {hs1,hs2,…,hsn} 。 fθs 初始化之后,通过消息传递将来自不同任务组件的信息组合起来,从而更新潜在向量序列。我们叫 his(t) 表示为 xi 经过 t 轮消息传递后的共享潜在向量的值, his(0) 表示初始化后的值。
{hs1,hs2,…,hsn} 被用作不同任务的输入。每个特定任务的组件又有自己的一组潜在的变量和输出变量,输出变量对应于序列标记任务中的标签序列。在AE中,我们为每个token分配一个标签,表明是否是方面词或是意见词;在AS中,标记每个单词的情感极性。分类任务中,输出对应于输入实例的标签:DS的文档情感,DD的文档域。
每次迭代之后,适当的信息被传递回要组合的共享潜在变量h,这可能是输出变量的值,也可能是潜在变量的值,取决于任务。
消息可以在每个迭代组件中传播。 信息从AE任务传递给AS任务。在消息传递的T次迭代后,允许信息通过多个hops传播,使用输出变量的值作为预测。对于这个问题,我们只使用AS和AE的输出,因为他们是最终的任务,DD和DS仅仅是用于训练。
4.1 aspect-level tasks
AE:序列标注问题{BIO},提取句子中的所有方面和情感词。 Yae = {BA,IA,BP,IP,O} ,分别表示方面项的开始和内部,情感词的开始和内部,以及其他词。
AS:带有标签的序列标记问题,Yas = {pos,neg,neu} ,分别表示正面,负面和中立。
在方面级数据集中,只有方面术语得到情感注释。因此,把AS作为一个序列标注问题,对方面词标注表达的情感。如下图所示,fish表达的情感是 pos 。因为除了方面词的其他位置没有情感标注,所以我们忽略他们的情感预测。
AE的构成 fθae 参数化为θae和输出 {y1ae,…,ynae} 。
AS的构成 fθas 参数化为θas和输出 {y1as,…,ynas} 。
AE 和 AS编码器分别由CNN的 mae 和 mas 层组成,他们分别将共享表示映射到 {h1ae,h2ae,…,hnae} 和 {h1as,h2as,…,hnas} .
对于AS编码器,我们在堆叠的CNN上增加了一个自注意层。在注意层,我们使用来自AE的输出 yiae ,因为情感分类可以从情感词(opinion terms)的预测中获益。self-attention矩阵 A 的计算如下:
其中 hias 和 hjas 与参数矩阵 Was 之间的语义关联(求 i 处跟 j 处的隐层的关系)。后面是距离相关因子,它随着第 i 个令牌和第 j 个令牌之间距离的增加而减小,第三项 Pjop 表示的是第j个令牌是任何意见项的一部分的预测概率。
概率 Pjop 可以通过 yjae 中对相关标签BP和IP的预测求和来计算。这样一来,AS直接受到AE预测的影响,我们将A中的对角线设置为0(不考虑自己对自己的注意力),因为我们只考虑上下文来推断目标标记的情绪。
自注意层的输出:
在AE中,我们将单词嵌入,初始共享表示 his(0) ,和任务特定表示 hiae 串联起来作为第 i 个令牌的最终表示。在AS中,我们连接 his(0) 和 hi’as 作为最终的表示。
对于每一个任务,我们使用一个全连接层和softmax激活作为解码器,它将最终的令牌表示映射到概率分布 yiae(yias) 。
4.2 文档级任务
为了解决方面级训练数据不足的问题,IMN能够从文档级标记的情感预料库中挖掘知识(进行文档级预训练),这些语料库更容易获得。
一种是文档级情感分类(DS),它预测对输入文档的情感。另一种是文档级域分类(DD),它预测输入文档的域标签。
fθo 由CNN的 mo 层构成,这些层将共享表示 {h1s,…,hns} 映射到 {h1o,…,hno} 。注意力层 atto 和解码层 deco ,其中 o∈{ds,dd} ,注意力权重如下所示:
这里的 Wo 是一个参数向量,最终文档表示 ho 的计算方法:
ho =
我们使用一个全连接层和softmax激活作为解码层,映射 ho 到 yo
4.3 消息传递机制
为了利用不同任务之间的交互,消息传递机制聚合了先前迭代中不同任务的预测,并利用这些知识在当前迭代中更新共享的潜在向量 {h1s,…,hns} 。
消息传递机制集成了 yiae,yias,yds,αids,αidd ,共享隐藏向量 his 的更新如下:
[:]表示串联操作,我们使用一个具有Relu激活的全连接层作为编码 fθre ,为了共享表示,我们合并了 yiae(t-1) 和 yias(t-1) ,即AE和AS在上一个迭代中的输出,使得这些信息在当前的计算中对两个任务都是可用的。
我们还合并了来自DS和DD的信息。yds 表示输入序列的整体的情绪,这可能对AS有帮助。
DS和DD产生的注意权重 aids 和 aidd 分别反映了第i个令牌的情感相关度和领域相关性。与情绪相关或领域相关的标记更有可能是观点词或方面词。此信息对于方面级任务很有用。
4.4 learning
方面级问题的实例只有方面级别的标签,而文档级问题的实例只有文档标签。IMN在方面级和文档级实例上交替训练。
方面级损失函数如下:
T 表示消息传递机制中的最大迭代次数,Na 表示方面级训练实例的总数,ni 表示第 i 个训练实例中包含的令牌数,yi,jae(yi,jas) 表示AE(AS)黄金标签的一个one-hot编码。l 是应用于每个令牌的交叉熵损失。
在模型训练过程中,我们只考虑有情感标注的aspect term的AS预测,以计算AS损失,而忽略其他令牌上预测的情绪。
文档级损失函数:
其中Nds和Ndd分别记录DS和DD的训练实例数。yids 和 yidd 表示黄金标签的一个one-hot编码。
训练文档级实例时,不能使用消息传递迭代。
因此,我们先在文档级实例(最小化损失函数)上对网络进行预训练,以便DS和DD可以做出合理的预测。
然后用比值 r 对网络进行方面级实例和文档级实例的交替训练,使 La 和 Ld 最小化,训练过程算法如下:
Da 表示方面级的训练集
Dds 和 Ddd 表示DS和DD的训练集,Ddd 至少包含两个域的评审文档,其中 yids 表示域标签。
因为他们在语义上是相关的,因此可以从DD和DS转移到AE和AS中。
预训练结束后,我们固定参数 θds和θdd,不希望他们受到少量的方面级训练数据的影响。
5 实验
数据集:aspect-level
文档级数据集:Yelp restaurant domain, and the other is from the Amazon electronics domain
实验结果:
这里使用F1来衡量方面项提取和意见项提取的性能。使用 F1-α 和 F1-o 来表示。使用精度(accuracy)和F1来衡量AS的性能,分别用 acc-s 和 F1-s 来表示。
计算综合任务的F1分数,表示为F1-I。