这是2016 ACL的一片论文。本文主要介绍了attention机制在文本分类上的应用。作者提出了分层的attention。
-
sentence level attention:
每个句子对整篇文章的类别贡献不一样,所以给sentence添加attention机制,可以有权重地选择哪个sentence对文章的贡献。 -
word level attention:
再细分,每个sentence包含多个word,每个word对sentence的贡献也不一样,所以在word级别再添加一层attention。 -
Hierarchical Attention Networks(HAN)
最后softmax的输出即为文章的分类。 -
公式
word level的attention公式:
u i t ^{u}it uit指当前位置word的编码表示。 u w ^{u}w uw是attention机制的共享参数,跟随网络一起训练。 α i t ^{\alpha }it αit是每个word的attention权重。 s i ^{s}i si是多个word采用attention机制之后组成的sentence表示。
这里也可以看出,attention的作用只是得到各个位置的权重 α i t ^{\alpha }it αit,最后attention之后的输出的维度和最开始输入的 h i t ^{h}it hit的维度一样。只不过是把各个位置的 h i t ^{h}it hit加权输出了。
sentence level的attention公式:
u
i
^{u}i
ui是第i个sentence的编码表示,
u
s
^{u}s
us是sentence层的attention共享参数,随网络一起训练,
α
i
^{\alpha }i
αi是第i个sentence的attention权重,
v
^{v}
v是多个sentence采用attention机制加权之后组成的最后的文档表示。
输出:
attention后接一层全连接,然后softmax输出。
损失函数采用负对数似然。
- Visualization
图中蓝色颜色深浅表示word level的attention权重,红色颜色深浅表示sentence level的attention权重。