HAN(Hierarchical Attention Networks for Document Classification)

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)句级注意力层

整体结构图如下所示:
HAN(Hierarchical Attention Networks for Document Classification)

(1)基于GRU的序列编码

GRU编码

(2)层级注意力

我们的目标是对文档级的分类,假设文档有L个句子sis_i,每一个句子含有TiT_i ​个词,witw_{it} ​中,t[1,T]t∈[1,T],表示这个词在第ii 个句子中。通过这个模型,将一个文档映射成一个向量表达,然后再这个向量上进行文档分类。

词编码

给定一个句子,每一个词witw_{it} ​,t[1,T]t ∈[1,T],首先将每一个词通过词嵌入矩阵WeW_e ​映射成为词向量:xij=Wewijx_{ij}=W_{e} w_{ij} ​。然后用双向GRU对句子进行编码将前项和后向的状态进行拼接hit=[hit,hit]h_{it} = [h_{it},h_{it} ]
HAN(Hierarchical Attention Networks for Document Classification)

词注意力 HAN(Hierarchical Attention Networks for Document Classification)

其中上下文向量uwu_w 是随机初始化,然后通过网络在训练过程中学习得到。

句编码

HAN(Hierarchical Attention Networks for Document Classification)
然后将前项和后向的状态进行拼接hi=[hi,hi]h_i = [h_i,h_i ]

句注意力

HAN(Hierarchical Attention Networks for Document Classification)

其中上下文向量usu_s ​是随机初始化,然后通过网络在训练过程中学习得到。

(3)文档分类

文档向量u是文档特征的综合表达,用这个向量来进行文档分类:
HAN(Hierarchical Attention Networks for Document Classification)
在训练过程中,使用负对数似然函数计算损失:
HAN(Hierarchical Attention Networks for Document Classification)

其中j是文档d的标签。

3.实验

(1)数据集

在六个数据集上进行实验,数据如下:
HAN(Hierarchical Attention Networks for Document Classification)

(2)模型参数和训练

在构建词汇表的时候,将词频低于5的词用UNKUNK替换。用word2vec进行词向量预训练,词向量维度为200。网络中GRU单元为50维,前向后向融合之后为100维。上下文词、句向量随机初始化为100维。

在训练的时候,长度相似的文档被放到一个batch中,并且发现这种长度调整后会加快网络的训练。模型使用随机梯度下降进行优化,动量为0.9。通过在验证集合上进行网格搜索来获取最优的学习率。

(3)实验结果

HAN(Hierarchical Attention Networks for Document Classification)