Hierarchical Attention Network for Document Classification阅读笔记

转自:https://blog.****.net/liuchonge/article/details/73610734

最近看了”Hierarchical Attention Network for Document Classification”一篇文章,也在网上找了一些资料结合理解,发现在此之前有篇文章跟他提出的模型架构基本相似,只不过不包含attention机制:“Document Modeling with Gated Recurrent Neural Network 
for Sentiment Classification”,也就是说本篇论文是基于这篇论文作了一些改进的。所以这里主要结合两篇论文进行介绍文档的分层架构模型。

Non-Attention

第一篇文章主要是使用两个神经网络分别建模句子和文档,采用一种自下向上的基于向量的文本表示模型。首先使用CNN/LSTM来建模句子表示,接下来使用双向GRU模型对句子表示进行编码得到文档表示,这里论文中提到在情感分类任务中,GRU往往比RNN效果要好。模型架构如下图所示: 
Hierarchical Attention Network for Document Classification阅读笔记 
再上图中,词向量是从语料库中使用Word2vec模型训练出来的,保存在词嵌入矩阵中。然后使用CNN/LSTM模型学习句子表示,这里会将变长的句子表示成相同维度的向量,以消除句子长度不同所带来的不便。也就是说之后的GRU模型的输入是长度相同的句子向量。 
卷积模型如下图所示,filter的宽度分别取1,2,3来编码unigrams,bigrams和trigrams的语义信息。最后使用一个Average层捕获全局信息并转化为固定长度的输出向量。 
Hierarchical Attention Network for Document Classification阅读笔记 
接下来进行文本层面建模,使用GRU模型,输入是变长的句子向量,输出固定长度的文本向量,这里会对最后每个单元的输出向量进行取平均操作,虽然会忽略句子顺序的信息,但是相对来说较为简单方便,如下图所示,其中GNN代表GRU的一个基础计算单元: 
Hierarchical Attention Network for Document Classification阅读笔记

With-Attention HAN模型

接下来我们介绍一下本篇文章的模型架构,其实主要的思想和上面的差不多,也是分层构建只不过加上了两个Attention层,用于分别对句子和文档中的单词、句子的重要性进行建模。其主要思想是,首先考虑文档的分层结构:单词构成句子,句子构成文档,所以建模时也分这两部分进行。其次,不同的单词和句子具有不同的信息量,不能单纯的统一对待所以引入Attention机制。而且引入Attention机制除了提高模型的精确度之外还可以进行单词、句子重要性的分析和可视化,让我们对文本分类的内部有一定了解。模型主要可以分为下面四个部分,如下图所示:

  1. a word sequence encoder,
  2. a word-level attention layer,
  3. a sentence encoder
  4. a sentence-level attention layer.

Hierarchical Attention Network for Document Classification阅读笔记、 
这里对Attention机制进行一个补充介绍,可以参考论文“FEED-FORWARD NETWORKS WITH ATTENTION CAN SOLVE SOME LONG -TERM MEMORY PROBLEMS”里面的插图: 
Hierarchical Attention Network for Document Classification阅读笔记 
这里的word sequence encoder也是使用的双向GRU模型,与上篇文章不同。无聊的堆砌一下公式,四个部分分别对应下面四个:

  1. Word EncoderHierarchical Attention Network for Document Classification阅读笔记
  2. Word AttentionHierarchical Attention Network for Document Classification阅读笔记
  3. Sentence EncoderHierarchical Attention Network for Document Classification阅读笔记
  4. Sentence AttentionHierarchical Attention Network for Document Classification阅读笔记 
    这里不进行过多的解释,主要针对Attention部分说一下,结合上图,我们会发现ui是使用一个简单的神经网络对hi的隐层表示,然后α是其softmax之后的结果,然后使用α对hi进行加权计算得到最终的输出向量即可。总结如下图: 
    Hierarchical Attention Network for Document Classification阅读笔记
    最后是一个文本分类层,其实就是一个简单的softmax,然后目标函数使用负对数似然函数。