https://www.cs.cmu.edu/~./hovy/papers/16HLT-hierarchical-attention-networks.pdf
1.介绍
这篇文章是2016年NAACL上的文章。
主要提出了一个层级注意力网络来对文档进行分类。这个模型有两个特点:
(1)网络的层级结构能够体现文档的层级结构
(2)有两个层次的注意力分别应用到词级和句级,对文档进行更好的表达。
这种构想来自于对文档结构的认识,因为文档是由句子构成,句子由词构成,而且对于一个问题的回答,一个文档中每一个句子的重要程度不一样,每一个句子中的词的重要程度也不一样,所以用注意力机制去捕获重要的词、句。
2.层级注意力网络(Hierarchical Attention Networks)
层级注意力机制的整体结构主要包括四个部分:
(1)词序列编码 (2)词级注意力层 (3)句编码 (4)句级注意力层
整体结构图如下所示:
(1)基于GRU的序列编码
GRU编码
(2)层级注意力
我们的目标是对文档级的分类,假设文档有L个句子 s i s_i si,每一个句子含有 T i T_i Ti个词, w i t w_{it} wit 中, t ∈ [ 1 , T ] t∈[1,T] t∈[1,T],表示这个词在第 i i i 个句子中。通过这个模型,将一个文档映射成一个向量表达,然后再这个向量上进行文档分类。
词编码
给定一个句子,每一个词
w
i
t
w_{it}
wit ,
t
∈
[
1
,
T
]
t ∈[1,T]
t∈[1,T],首先将每一个词通过词嵌入矩阵
W
e
W_e
We 映射成为词向量:
x
i
j
=
W
e
w
i
j
x_{ij}=W_{e} w_{ij}
xij=Wewij 。然后用双向GRU对句子进行编码将前项和后向的状态进行拼接
h
i
t
=
[
h
i
t
,
h
i
t
]
h_{it} = [h_{it},h_{it} ]
hit=[hit,hit]。
词注意力
其中上下文向量 u w u_w uw 是随机初始化,然后通过网络在训练过程中学习得到。
句编码
然后将前项和后向的状态进行拼接
h
i
=
[
h
i
,
h
i
]
h_i = [h_i,h_i ]
hi=[hi,hi]
句注意力
其中上下文向量 u s u_s us 是随机初始化,然后通过网络在训练过程中学习得到。
(3)文档分类
文档向量u是文档特征的综合表达,用这个向量来进行文档分类:
在训练过程中,使用负对数似然函数计算损失:
其中j是文档d的标签。
3.实验
(1)数据集
在六个数据集上进行实验,数据如下:
(2)模型参数和训练
在构建词汇表的时候,将词频低于5的词用UNKUNK替换。用word2vec进行词向量预训练,词向量维度为200。网络中GRU单元为50维,前向后向融合之后为100维。上下文词、句向量随机初始化为100维。
在训练的时候,长度相似的文档被放到一个batch中,并且发现这种长度调整后会加快网络的训练。模型使用随机梯度下降进行优化,动量为0.9。通过在验证集合上进行网格搜索来获取最优的学习率。