Hierarchical Attention Network for Document Classification阅读笔记
2017-06-22 21:06
357 查看
最近看了”Hierarchical Attention Network for Document Classification”一篇文章,也在网上找了一些资料结合理解,发现在此之前有篇文章跟他提出的模型架构基本相似,只不过不包含attention机制:“Document Modeling with Gated Recurrent Neural Network
for Sentiment Classification”,也就是说本篇论文是基于这篇论文作了一些改进的。所以这里主要结合两篇论文进行介绍文档的分层架构模型。
再上图中,词向量是从语料库中使用Word2vec模型训练出来的,保存在词嵌入矩阵中。然后使用CNN/LSTM模型学习句子表示,这里会将变长的句子表示成相同维度的向量,以消除句子长度不同所带来的不便。也就是说之后的GRU模型的输入是长度相同的句子向量。
卷积模型如下图所示,filter的宽度分别取1,2,3来编码unigrams,bigrams和trigrams的语义信息。最后使用一个Average层捕获全局信息并转化为固定长度的输出向量。
接下来进行文本层面建模,使用GRU模型,输入是变长的句子向量,输出固定长度的文本向量,这里会对最后每个单元的输出向量进行取平均操作,虽然会忽略句子顺序的信息,但是相对来说较为简单方便,如下图所示,其中GNN代表GRU的一个基础计算单元:
a word sequence encoder,
a word-level attention layer,
a sentence encoder
a sentence-level attention layer.
、
这里对Attention机制进行一个补充介绍,可以参考论文“FEED-FORWARD NETWORKS WITH ATTENTION CAN SOLVE SOME LONG -TERM MEMORY PROBLEMS”里面的插图:
这里的word sequence encoder也是使用的双向GRU模型,与上篇文章不同。无聊的堆砌一下公式,四个部分分别对应下面四个:
Word Encoder:
Word Attention:
Sentence Encoder:
Sentence Attention:
这里不进行过多的解释,主要针对Attention部分说一下,结合上图,我们会发现ui是使用一个简单的神经网络对hi的隐层表示,然后α是其softmax之后的结果,然后使用α对hi进行加权计算得到最终的输出向量即可。总结如下图:
最后是一个文本分类层,其实就是一个简单的softmax,然后目标函数使用负对数似然函数。
好了,介绍完模型架构,接下俩就是仿真实现了,争取下周搞出来~~
for Sentiment Classification”,也就是说本篇论文是基于这篇论文作了一些改进的。所以这里主要结合两篇论文进行介绍文档的分层架构模型。
Non-Attention
第一篇文章主要是使用两个神经网络分别建模句子和文档,采用一种自下向上的基于向量的文本表示模型。首先使用CNN/LSTM来建模句子表示,接下来使用双向GRU模型对句子表示进行编码得到文档表示,这里论文中提到在情感分类任务中,GRU往往比RNN效果要好。模型架构如下图所示:再上图中,词向量是从语料库中使用Word2vec模型训练出来的,保存在词嵌入矩阵中。然后使用CNN/LSTM模型学习句子表示,这里会将变长的句子表示成相同维度的向量,以消除句子长度不同所带来的不便。也就是说之后的GRU模型的输入是长度相同的句子向量。
卷积模型如下图所示,filter的宽度分别取1,2,3来编码unigrams,bigrams和trigrams的语义信息。最后使用一个Average层捕获全局信息并转化为固定长度的输出向量。
接下来进行文本层面建模,使用GRU模型,输入是变长的句子向量,输出固定长度的文本向量,这里会对最后每个单元的输出向量进行取平均操作,虽然会忽略句子顺序的信息,但是相对来说较为简单方便,如下图所示,其中GNN代表GRU的一个基础计算单元:
With-Attention HAN模型
接下来我们介绍一下本篇文章的模型架构,其实主要的思想和上面的差不多,也是分层构建只不过加上了两个Attention层,用于分别对句子和文档中的单词、句子的重要性进行建模。其主要思想是,首先考虑文档的分层结构:单词构成句子,句子构成文档,所以建模时也分这两部分进行。其次,不同的单词和句子具有不同的信息量,不能单纯的统一对待所以引入Attention机制。而且引入Attention机制除了提高模型的精确度之外还可以进行单词、句子重要性的分析和可视化,让我们对文本分类的内部有一定了解。模型主要可以分为下面四个部分,如下图所示:a word sequence encoder,
a word-level attention layer,
a sentence encoder
a sentence-level attention layer.
、
这里对Attention机制进行一个补充介绍,可以参考论文“FEED-FORWARD NETWORKS WITH ATTENTION CAN SOLVE SOME LONG -TERM MEMORY PROBLEMS”里面的插图:
这里的word sequence encoder也是使用的双向GRU模型,与上篇文章不同。无聊的堆砌一下公式,四个部分分别对应下面四个:
Word Encoder:
Word Attention:
Sentence Encoder:
Sentence Attention:
这里不进行过多的解释,主要针对Attention部分说一下,结合上图,我们会发现ui是使用一个简单的神经网络对hi的隐层表示,然后α是其softmax之后的结果,然后使用α对hi进行加权计算得到最终的输出向量即可。总结如下图:
最后是一个文本分类层,其实就是一个简单的softmax,然后目标函数使用负对数似然函数。
好了,介绍完模型架构,接下俩就是仿真实现了,争取下周搞出来~~
相关文章推荐
- 阅读笔记(paper+code):Residual Attention Network for Image Classification
- Hierarchical Attention Network for Document Classification--tensorflow实现篇
- 阅读笔记(paper+code):Residual Attention Network for Image Classification
- Implementation of Hierarchical Attention Networks for Document Classification的讲解与Tensorflow实现
- 论文笔记:Residual Attention Network for Image Classification
- Reinforcement Learning for Relation Classification from Noisy Data阅读笔记
- 【论文阅读笔记】MULTI-SCALE DENSE NETWORKS FOR RESOURCE EFFICIENT IMAGE CLASSIFICATION
- Multi-Task Convolutional Neural Network for Face Recognition阅读笔记
- 结合人类视觉注意力 - Residual Attention Network for Image Classification
- Deep Convolutional Network Cascade for Facial Point Detection阅读笔记
- 论文阅读笔记:ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices
- ”Hierarchical Recurrent Neural Network for Skeleton Based Action Recognition“阅读小结
- HD-CNN: HIERARCHICAL DEEP CONVOLUTIONAL NEURAL NETWORK FOR IMAGE CLASSIFICATION(泛读)
- Implementing a CNN for Text Classification in TensorFlow(用tensorflow实现CNN文本分类) 阅读笔记
- 【论文阅读笔记】RETAIN: An Interpretable Predictive Model for Healthcare using Reverse Time Attention Mechan
- 文献阅读笔记——Non-Associative Higher-Order Markov Networks for Point Cloud Classification
- Deep Cascaded Bi-Network for Face Hallucination--阅读笔记
- Deep Convolutional Network Cascade for Facial Point Detection阅读笔记
- Implementing a CNN for Text Classification in TensorFlow(用tensorflow实现CNN文本分类) 阅读笔记
- Deep Convolutional Network Cascade for Facial Point Detection阅读笔记