NLP——文本分类模型(HAN)(三)

NLP——文本分类模型(HAN)(三)

1、引入

1. NLP——文本分类模型(一)
2. NLP——文本分类模型(二)

在之前的文章中,我们介绍了基于CNN机制是如何应用于文本分类。近些年来Attention机制的兴起引起了巨大的关注,由于其简单,高效,容易扩展的机制收到了广泛的追捧。同时,对于线性Attention机制的改进也层出不穷,下面我们来介绍一个利用Attention机制进行文本分类的算法——HAN模型。

2、HAN模型

首先,我们给出模型的整体结构:
NLP——文本分类模型(HAN)(三)_第1张图片
根据上面的图示,我们可以知道HAN模型一个包括Word Encoder,Word Attention,Sentence Encoder,Sentence Attention的四个过程。下面我们具体的来进行介绍。

2.1 Word Encoder层

在之前文章中,我们提到过,基于序列的深度学习模型,因为结构的相似性,所以在对语言模型的模拟上具有天然的优势。同时,采用双向的结构,可以同时获取到上文的特征信息和下文的特征信息。这里也是基于这个思想,所以在Word Encoder层中,采用的是双向的GRU结构。如果对GRU的结构还是不是很了解,我们通过下面的图示来回顾一下:

NLP——文本分类模型(HAN)(三)_第2张图片

GRU是RNN结构的一个变种,具体的来说,其包含两个门结构,rt和zt(ut),其中rt为reset gate(重置门),通过这个门控机制,可以用来控制由之前的节点传递过来的信息来生成候选信息,zt(ut)为update gate(更新门),通过这个门控机制,可以控制当前输入的信息和前面传递信息的综合,同时存在一个h~t,用来控制生成当前的候选状态。最后通过前一个时刻的状态,当前时刻的候选状态,以及更新门的门控输出来决定当前的隐状态输出。

通过双向的线性的GRU结构,我们可以去模拟语言模型,并综合词汇的上下文信息,获取到每一个词汇在GRU中的隐状态输出,来对每一个词汇进行编码操作。

在获得了GRU的输出结构之后,模型采用了个简单线性层,对GRU的输出进行一步线性映射的过程,将其变成更高层的表示,可以理解为对要计算Attention的输入H,将其映射成Key的过程。其计算公式如下:
U = t a n h ( W H + b ) U=tanh(WH+b) U=tanh(WH+b)
其中H表示GRU的输出,对于每一个输出单元 U t U_t Ut表示GRU的第t个输出在线性映射之后的结果。

2.2 Word Attention层

在这里,假设您已经有了一定的Attention基础,所以,我们就不对Attention机制进行赘述了。在HAN模型中,采用的是Soft-Attention的计算机制,也就是说,我们初始给出一个查询向量 U W U_W UW(作为一个参数,在反向传播中进行优化。),然后利用这个查询向量分别和Word Encoder层的输出计算相关的权重系数(内积+softmax),在利用权重系数对于输入的词汇的表示向量进行加权求和来形成最后的Attention值。其计算公式为:
a t = e x p ( U t T U W ) ∑ t e x p ( U t T U W ) a_{t}=\frac{exp(U_t^TU_W)}{∑_texp(U_t^TU_W)} at=texp(UtTUW)exp(UtTUW)
S = ∑ t a t H t S=∑_ta_{t}Ht S=tatHt
这样,我们就通过Attention机制将输入的各个词综合成一个句子的表示向量。这里需要注意的是,对于一个文本而言,其输入是由多个句子所组成的,那么也就是说,我们需要获得多个句子的向量表示来综合获得文本的表示。这个过程就是重复上述的词编码和词Attention的计算过程,最后可以生成每一个句子i的Attention结果 S i S_i Si
上述的过程可以用下图来表示:
NLP——文本分类模型(HAN)(三)_第3张图片

2.3 Sentence Encoder

这个过程与之前的Word Encoder十分的相似,也就是说我们继续通过双向的GRU结构来对句子输入进行编码,由于句子在文本中的出现也是有顺序的,所以我们可继续按照句子出现的顺序,将句子的表征向量 S i S_i Si作为输入,获取每一个句子在综合上下文的输出结果。

2.4 Sentence Attention

这个过程也是在重复上面的word Attention的计算过程,通过随机的初始变量 U s U_s Us和句子级的GRU输出来计算Attention值,加权求和之后可以获得关于文本的Attention向量,在利用softmax来对文本进行分类操作。上面的两个部分如下图所示:
NLP——文本分类模型(HAN)(三)_第4张图片

2.5 总结

HAN文本分类模型基于词汇层级和句子层级来考虑文本的特征,同时采用Attention机制将选择模型分类的重点。在利用softmax进行分类。

3 参考

  1. 文本分类(TextRNN/TextCNN/TextRCNN/FastText/HAN)

你可能感兴趣的:(NLP学习)