原文链接: http://chenhao.space/post/c1174f04.html
Improving Multi-label Emotion Classification via Sentiment Classification with Dual Attention Transfer Network
基于双重注意力迁移网络的情感分类改进多标签情感分类
来源: 2018 EMNLP https://www.aclweb.org/anthology/D18-1137/
目标:通过情感分类改进多标签情感分类(multi-label emotion classification)
方法:提出了一种新的迁移学习架构,将句子表示(sentence representation)分成两个不同的特征空间,通过双重注意力机制分别捕获一般的(general)情感词和其他重要的特定的(emotion-specific)情感词。
Sentiment analysis 一般是指情感极性二分类或三分类。
Emotion analysis 一般是指多标签情感分类,如:anger, anticipation, disgust, fear, joy, love, optimism, pessimism, sadness, surprise and trust.
多标签情感分类任务的大规模数据集不易获取,而且获取成本很高。但是情感极性分类任务(sentiment polarity classification task)获取数据集相对容易。
作者希望这些资源可以改进对于情感词的表征(sentiment-sensitive representations),从而更准确地识别社交媒体上的emotions。
为了实现这一目标,作者提出了一种迁移学习方法。
迁移学习相关背景:
源域:具体地,在迁移学习中,我们已有的知识叫做源域(source domain)
目标域:要学习的新知识叫目标域(target domain)
大多数现有的迁移学习方法有两种:
1)假设源任务和目标任务共享相同的句子表征
2)把每个句子的表征划分为一个共享特征空间和两个特定于任务的特征空间
如果将这两种迁移学习方法应用到我们的场景(即多标签情感分类)。
第一种方法可能会使学习的句子表征更多地关注于一般的情感词,如“good”,而较少关注于其他情感模糊(sentiment-ambiguous)的词,如“shock”,它也是emotion analysis中的不可或缺的一部分。
第二种方法既能捕捉一般的情感词,又能捕捉特定(emotion-specific)的情感词。但是,某些情感词仅出现在源情感分类任务中,这些词在特定源的特征空间受到更多的关注,而在共享特征空间中受到较少的关注,因此在我们的emotion classification任务中将会忽略它们。
因此,作者提出了一个 shared-private (PS) model:
使用一个共享的LSTM层提取用于sentiment和emotion分类任务的共享的情感特征,再用一个特定于目标的LSTM层来提取特定的emotion特征。
但是呢,并不难保证这个简单的模型能够很好地区分这两个特征空间来提取共享特征和特定于目标的特征。
以Table 1中的T1句为例,由于 good 和 goodness 在训练数据中出现的频率高,共享层和特定任务层都将较高的注意权重分配给 good 和 goodness ,而将较低的注意权重分配给 fearless 。这种情况下,SP模型只能预测出 joy emotion,而忽视了 optimism emotion。
为了加强两个特征空间的正交性(两个特征空间关注的结果不要一样),我们进一步引入了双重注意力机制(dual attention mechanism),它将一个特征空间中的注意权重作为额外输入,以计算另一个特征空间中的注意权重,并显式地最小化两组注意权重之间的相似性。
对于输入的句子,emotion classification 的目的是识别其中包含的一种或多种 emotion。设 x = ( w 1 , w 2 , . . . , w n ) x= (w_1,w_2,...,w_n) x=(w1,w2,...,wn)为输入的句子, ϵ \Large \epsilon ϵ 为预定义的emotion标签,因此,对于每个 x x x ,我们的任务是预测它是否包含 ϵ \Large \epsilon ϵ 中的一种或多种emotion。
我把输出表示为 e ∈ { 0 , 1 } K e \in \{0,1\}^K e∈{0,1}K , e k ∈ { 0 , 1 } e_k \in \{0,1\} ek∈{0,1} 表示为 x x x 是否包含第 k k k 个emotion。
我们进一步假设我们有一组带标签的句子,表示为 D e = { x ( i ) , e ( i ) } i = 1 N \large D^e=\{x^{(i)},e^{(i)}\}_{i=1}^N De={x(i),e(i)}i=1N
Sentence Representation:
在emotion classification中,由于emotion词对最终预测的重要性相对较大,我们采用了广泛使用的注意机制来选择句子表征的关键词。
我们将LSTM中的 final hidden state h n \large h_n hn 作为句子的summary vector z \large z z ,然后或得每个隐藏状态 h j h_j hj 的注意力权重 α j \alpha_j αj :
然后,句子的最终表征 H \large H H 计算如下:
H = ∑ j = 1 n α j h j H=\sum_{j=1}^n \alpha_j h_j H=j=1∑nαjhj
Output Layer
p ( e i ∣ H ) = o i = s o f t m a x ( M L P ( H ) ) p(e^{i}|H)=o^{i}=softmax(MLP(H)) p(ei∣H)=oi=softmax(MLP(H))
将预测的概率分布与标准化的真实分布之间的KL散度最小化作为我们的目标函数。
设 D s = { x ( m ) , y ( m ) } m = 1 M D^s=\{x^{(m)},y^{(m)}\}_{m=1}^M Ds={x(m),y(m)}m=1M 一组用于sentiment classification的带标签的句子,其中 y ( m ) y^{(m)} y(m) 为标签。
情感分类是一个粗粒度的情感分析任务,可以充分利用它来学习更为健壮的 sentiment-sensitive representation。
源任务句子和目标任务句子经过BiLSTM和注意力机制,得到 hidden representation H c H_c Hc ,目标任务句子单独送入另外一个BiLSTM和双重注意力机制,得到 hidden representation H t H_t Ht 。
然后使用下列操作将 hidden representation 映射到 sentiment label y y y 和 emotion label e e e :
根据 α s \large \alpha^s αs 和 经过BiLSTM得到的隐藏状态计算 α t \large \alpha^t αt :
引入另外一个相似度损失,以显示地加强两个注意权重之间的差异,并最小化 α s \alpha^s αs 和 α t \alpha^t αt 之间的余弦相似度: