本文主要是提出了一种新的模型:MIARN(Multi-dimensional Intra-
Attention Recurrent Networks),Intra-attention其实可以看做是self-attention的一种变种,很简单,但可解释性很好!
1. Introduction
虽然反讽表达形式多样,但其中有很大一部分(SemEval2018数据集显示占69.9%)是前后情感矛盾式的反讽,比如在“I absolutely love to be ignored !词对(word pair) {love, ignored}在情感、状态或行为上“相反”,作者从这一点出发构造一种模型可以“looking in-between”。通常来讲,先前的反讽识别模型模型多依赖深的序列化的神经网络来建模反讽句子,比如主要使用GRU、LSTM等序列建模方法提取特征。这种模型有两个缺点:
- GRU、LSTM无法精确捕捉反讽句中的“词对相反”这种特点,这就相当于损失了反讽句中的很重要的一种文本特征;
- GRU、LSTM由于无法捕捉长期依赖,举例来讲,如果词对{love, ignored}相距较远便无法很好的检测到。
一个更合理的模型应该是intra-sentence的,即不但要追求识别精度的提高,还要求模型具有可解释性,由此推断合理的模型应该使用注意力机制。而本文提出的MIARN就充分利用了intra-sentence内部关系的组合学习的直觉。具体模型如下:
接下来主要说一下左半部分。
2. Intra-Attention
“句内attention表示”是对于“词对关系”的表示,用来突出{love, ignored}这种词对关系。
Single-dimensional Intra-Attention
具体流程如下:
(1)计算所有词对的注意力分数,得到如上图所示的注意力分数矩阵:
s
i
j
=
W
a
(
[
w
i
;
w
j
]
)
+
b
a
s_{ij}=W_a([w_i;w_j])+b_a
sij=Wa([wi;wj])+ba需要注意的是,要将对角线上的元素进行mask,这样可以防止每个词自身的注意力影响全局的注意力分布。
(2)按行进行max pooling操作,并做softmax归一化。
a
=
s
o
f
t
m
a
x
(
m
a
x
r
o
w
s
)
a = softmax(max_{row}s)
a=softmax(maxrows)可以看做是保留了每个词与其他词中关系最强的权重信息。
(3)最后就是直接计算句内attention的表示:
v
a
=
∑
i
=
1
l
a
i
w
i
v_a = \sum_{i=1}^{l}a_iw_i
va=i=1∑laiwi
Multi-dimensional Intra-Attention
但是由于词的复杂性,一个词可能包含多种含义,所以每个词对也应该有多个注意力分数,而不应该只是一个标量,所以应该先对词对的多维或者说多视图进行建模,然后再计算每个词对的注意力分数。
对词对的多维进行建模的方法也很简单:将每个词对映射到一个低维空间中,每一维都可以看做是这个词对一个维度(含义)的注意力分数,然后再将每一维的注意力分数进行加权求和得到最终的注意力分数:
s
i
j
=
W
p
(
R
e
L
U
(
W
q
(
[
w
i
;
w
j
]
)
+
b
q
)
)
+
b
p
s_{ij}=W_p(ReLU(W_q([w_i;w_j])+b_q))+b_p
sij=Wp(ReLU(Wq([wi;wj])+bq))+bp
剩余的两个步骤和Single-dimensional的步骤一样。
3. Prediction layer
v
a
v_a
va是intra-attention representation,
v
c
v_c
vc是compositional representation,例如lstm最后隐层,则预测层为:
v
=
R
e
L
U
(
W
z
(
[
v
a
;
v
c
]
)
+
b
z
)
v = ReLU(W_z([v_a;v_c])+b_z)
v=ReLU(Wz([va;vc])+bz)
y
^
=
S
o
f
t
m
a
x
(
W
f
v
+
b
f
)
\hat{y}=Softmax(W_fv+b_f)
y^=Softmax(Wfv+bf)
4. Experimental Results
通过实验可以得出:
- MIARN相对于SIARN来说,可以学到词与词之间更复杂的关系;
- 我们提出的模型在长短文本上效果都是最好的,但在长文本上效果提升度更大,因为intra-attention可以捕捉到长期依赖;
- 由上图的注意力分布可以得出,MIARN的注意力分布与我们对建模对比度(相反词对)和不一致性的直觉很一致,而LSTM的attention主要集中在最后,因为lstm是不断组合表示,这样第n个hidden可能和第n+1个hidden很相似,当文本较短时,注意力也就主要集中在最后一个或几个hidden了…