Press enter to see results or esc to cancel.

【Hierarchical Attention Networks for Document Classification】

Introduction

在本文之中,其认为其他的模型认为文章之中的每一部分都是相同重要的这一点是十分错误的行为,因为从直觉上来说,文章之中的不同的部分都是有不同的作用的,特别是某些句子或者是词语对于整个文章的含义会有决定性的作用,所以其认为在模型结构之中嵌入文档的结构(Incorporating Knowledge of Document structure in the model)可以帮助获得文档的更好的表示。换而言之,就是认为在文章之中的词语的重要性的程度是不相同的。

为了达成这样的一个目标,其使用了一个Two Levels of Attention Mechanisms.在词语的Level上面做一次Attention,再在句子的Level上面做一次Attention。使得模型的注意力不会平等的分配在文章之中的每一个词语上,从而提高模型的判断能力。Attention是什么呢?我们在后文介绍。

Hierarchical Attention Networks

那么这个Attention Network长什么样子呢?我们可以看看下图

其中由几个不同的部分所组成,分别是 1.Word Sequence Encoder , 2. Word Level Attention Layer , 3.  Sentence Encoder 4.Sentence Attention Layer.

看起来的确还是比较直观的,就是进行Encoder之后,做一次Attention 连续做两次就可以得到整个模型。

GRU-Based Sequence Encoder

GRU 是LSTM的一个变种,两个模型都是采用了Gate的机制来保留长期记忆,只不过LSTM有两个门,GRU只有一个门,所以导致GRU会在与LSTM的模型效果相差不大的基础上,以更快的速度收敛,笔者在选用模型时往往会先选择GRU模型而非LSTM模型。用数学形式表达的话,在时间$t$的时候,GRU以下面的公式进行计算

$$h_t = (1-z_t)\odot h_{t-1} + z_t \odot \tilde{h}_{t} $$

其中的门控变量$z_t$决定了保留多少的信息以及传递多少信息,因为不是重点这里我们就不细讲了而是略过。

Hierarchical Attention

回顾一下任务,在本文之中,其所做的主要的任务是文本的分类任务,假设一个文档有$L$个句子,分别是$s_i$,每一个句子之中包含了$T_i$个单词,$w_{it}$表示了在$i$th个句子之中的第$t$个单词,模型将Raw Document最终转换成为一个Vector,然后使用整个Vector进行分类的任务。

所以怎么获得文档的最终表示呢?首先是将词向量变成句向量,再将句向量变成文档向量,这是个很直观的过程。假设词向量是$x_{it}$,

那么将其通过Bi-GRU模型之中,对于每一个词向量都可以获得一个隐藏状态$h_{it}$

$$h_{it}  = [h_{it}^{Left},h_{it}^{Right}]$$

表示将两个方向的GRU的隐藏状态Concatenatiing起来。

接下来就是重头戏了,计算Attention

首先计算

$$u_{it} = \tanh (W_wh_{it}+b_w)$$

这个是就可以看成是Attention,不过是一个绝对大小的Attention,所以我们需要将其归一化

$$\alpha_{it} = \frac{\exp{u_{it}^T u_{w}}}{\sum_t \exp{u_{it}^T u_{w} }}$$

而$\alpha_{it}$就是相对意义上的Attention,也就是实际要在后面进行运算的Attention,那么句向量就是利用Attention的数值乘以其相对应的词向量,即

$$s_i = \sum_{t}\alpha_{it}h_{it}$$

获得了$s_i$之中,同理再进行一轮上面的操作,通过GRU,计算Attention,加权平均,经过这三步之后就可以获得最终的向量

$$ v = \sum_{ i }\alpha_i h_i$$

获得了文档向量之中,通过SoftMax函数进行处理,再进行分类的任务。

到这里就是整个网络的结构了。在笔者看来,整个Attention的思路非常流畅,处理的结果也非常的有效,最后的可视化图片也非常的漂亮,是一个很好的机制。可以看一看最后的Attention的图

这样的Attention机制,使得我们在处理长文本的问题的时候,由于分配的权重会有所偏倚,所以可以获得更加长距离的依赖关系,使得更长的文档处理变得可能。

Comments

不过自己也还是留有一个思考的余地,也就是说,这里的利用Attention是通过随机生成的一个矩阵,然后再在后面的任务之中利用BP算法进行不断的改善的,这里的随机生成的矩阵在自己看来可能会使得模型陷入局部最优之中,甚至会产生过拟合的现象。所以这里有一个小的想法尚未实践,或许可以利用句子向量乘以词语向量作为其权重,而非是使用一个随机的矩阵,然后通过类似于坐标轴下降的方式迭代更新参数,这样子的收敛速率势必会下降,不过可能结果会更好吧,自己倒没有精力和算力去验证这样的一个假设,希望读者有条件的话可以帮自己实现一下这个想法。说不定又是一篇AAAI或者是ACL。

Reference

Yang, Zichao & Yang, Diyi & Dyer, Chris & He, Xiaodong & Smola, Alex & Hovy, Eduard. (2016). Hierarchical Attention Networks for Document Classification. 1480-1489. 10.18653/v1/N16-1174.

 

Comments

Leave a Comment