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)句级注意力层
整体结构图如下所示:
(1)基于GRU的序列编码
GRU编码
(2)层级注意力
我们的目标是对文档级的分类,假设文档有L个句子,每一个句子含有个词, 中,,表示这个词在第 个句子中。通过这个模型,将一个文档映射成一个向量表达,然后再这个向量上进行文档分类。
词编码
给定一个句子,每一个词 ,,首先将每一个词通过词嵌入矩阵 映射成为词向量: 。然后用双向GRU对句子进行编码将前项和后向的状态进行拼接。
词注意力
其中上下文向量 是随机初始化,然后通过网络在训练过程中学习得到。
句编码
然后将前项和后向的状态进行拼接
句注意力
其中上下文向量 是随机初始化,然后通过网络在训练过程中学习得到。
(3)文档分类
文档向量u是文档特征的综合表达,用这个向量来进行文档分类:
在训练过程中,使用负对数似然函数计算损失:
其中j是文档d的标签。
3.实验
(1)数据集
在六个数据集上进行实验,数据如下:
(2)模型参数和训练
在构建词汇表的时候,将词频低于5的词用UNKUNK替换。用word2vec进行词向量预训练,词向量维度为200。网络中GRU单元为50维,前向后向融合之后为100维。上下文词、句向量随机初始化为100维。
在训练的时候,长度相似的文档被放到一个batch中,并且发现这种长度调整后会加快网络的训练。模型使用随机梯度下降进行优化,动量为0.9。通过在验证集合上进行网格搜索来获取最优的学习率。