文献阅读笔记:Hierarchical Attention Networks for Document Classification

最近在研究Attention机制在自然语言处理中的应用,查找了一些文献。
文献:Hierarchical Attention Networks for Document Classification
GitHub实现代码
GitHub实现代码
参考博客:Text Classification, Part 3 - Hierarchical attention network


开始正题:

文章主要的两个贡献:
  • 第一: 利用文档原有的层次结构特性(句子是由单词组成,文档是由句子组成),先使用单词的词向量表示句子,再此基础上以句子向量构建文档的信息表示。
  • 第二:在文档中,句子对文档的重要性贡献有差异,在句子中单词对句子的重要性贡献也有差异。而单词和句子的重要性依赖于上下文环境。相同的单词,在不同的上下文中所表现出的重要性是不一样的。为了描述这种情况,引入了Attention机制来描述这种重要性。
  • 文章分别从句子级和文档级两个层次使用Attention机制。
  • Attention机制可以带来两个优点:一个可以提升分类性能,第二个可以提升识别出在影响最终分类决策的单词或句子的重要性。

主要思路
  • 网络结构:包括五层网络,词向量编码(GRU),词向量Attention层,句子向量编码(GRU),句子向量Attention层,softmax输出层.
    网络结构
    文献阅读笔记:Hierarchical Attention Networks for Document Classification_第1张图片
    image.png

    Attention机制应用的假设是对句子的含义,观点,情感等任务,每个单词的贡献是不相同的。因此,使用Attention机制去抽取更重要的单词
单词词向量:

查询词向量表(比如GloVe,Word2Vec等)生成句子中每个单词的词向量,并将句子表示为单词词向量的连接
句子。

文献阅读笔记:Hierarchical Attention Networks for Document Classification_第2张图片
文献阅读笔记:Hierarchical Attention Networks for Document Classification_第3张图片

这里面:

单词的词向量

表示的就是句子中每个单词的词向量表示,句子的总长度为T。

GRU前向隐状态
文献阅读笔记:Hierarchical Attention Networks for Document Classification_第4张图片
每个单词词向量的隐状态就表示为前向和后向单词隐状态的连接

这种表示方法就表示了以某个单词为中心的句子相关信息。

单词级Attention

因为句子中每个单词的重要性不相同,因此使用Attention机制描述每个单词的重要性,抽取相对句子含义重要的那些单词,使用这些重要的词的词向量组成句子的向量表示


文献阅读笔记:Hierarchical Attention Networks for Document Classification_第5张图片
image.png

将GRU输出的词的引隐状态向量,作为MLP(Multi Layer Percetron)的输入,计算得到词向量隐状态的新的表示。

单词词向量的attention计算

这里有个问题: uw是如何来的? bw是如何计算的? uw初始时随机初始化为,在训练阶段学习获得。 bw也是学习获得。

按照和单词级的向量表示一样的方式,计算句子级的向量表示。


文献阅读笔记:Hierarchical Attention Networks for Document Classification_第6张图片
基于Attention的句子级的向量表示生成

将最后句子级向量表示的文档输入softmax层,计算分类。
使用的loss是交叉熵

文献阅读笔记:Hierarchical Attention Networks for Document Classification_第7张图片
分类和loss计算

最终结果:

文献阅读笔记:Hierarchical Attention Networks for Document Classification_第8张图片
分类测试结果

你可能感兴趣的:(文献阅读笔记:Hierarchical Attention Networks for Document Classification)