参考文章:
1. 概述
随着神经网络,尤其是深度学习算法的发展,神经网络在文本分类任务中取得了很大的发展,提出了各种解决方案,如CNN在文本分类中的应用,RNN,LSTM等等,相比较于CNN以及RNN方法,LSTM可以学习长距离的语义信息。Attention-Based BiLSTM结合双向的LSTM(Bidirectional LSTM)以及Attention机制处理文本分类的相关问题,通过attention机制,该方法可以聚焦到最重要的词,从而捕获到句子中最重要的语义信息。
2. 算法思想
2.1 算法的组成部分
Attention-Based BiLSTM算法的网络结构如下所示:
在Attention-Based BiLSTM网络中,主要由5个部分组成:
- 输入层(Input layer):指的是输入的句子,对于中文,指的是对句子分好的词;
- Embedding层:将句子中的每一个词映射成固定长度的向量;
- LSTM层:利用双向的LSTM对embedding向量计算,实际上是双向LSTM通过对词向量的计算,从而得到更高级别的句子的向量;
- Attention层:对双向LSTM的结果使用Attention加权;
- 输出层(Output layer):输出层,输出具体的结果。
注意点:
- Embedding通常有两种处理方法,一个是静态embedding,即通过事先训练好的词向量,另一种是动态embedding,即伴随着网络一起训练;
- 双向LSTM的网络结构会在其他的文章中做进一步的介绍,这里就不详细展开。
2.2. BiLSTM层的输出
假设句子通过分词算法后,得到的 T 个词为:{ $x_1, x_2 , ⋯ , x_T$},每一个词 $x_i$ 经过词向量的映射得到对应的词向量 $e_i$ ,假设经过LSTM后正向的输出为 $\overrightarrow{h_i}$,逆向的输出为 $\overleftarrow{h_i}$,则第 i 个词经过BiLSTM后得到的向量为:
$h{i}=\left[\overrightarrow{h{i}} \bigoplus \overleftarrow{h_{i}}\right]$
式中 $\bigoplus$ 表示对应元素相加。
2.3. Attention机制
假设 H 是所有 $T_w$个词经过BiLSTM后得到的向量的集合:[$h_1, h_2 , \cdot\cdot\cdot , h_T$],那么Attention的的结果由公式求得:
$M = tanh(H) \text{,} H \in R^{d^w \times T}$
$\alpha = softmax(w^T M)$
$r = H\alpha^T$
$h^{\ast}=tanh(r)$
式中 $d^w$ 表示向量的维度;$w^T$ 表示需要学习的参数。
2.4. 分类
针对句子 S,通过上述的BiLSTM以及Attention机制,得到了对应的表示矩阵:$h^{\ast}$,其维度为$d^w\times 1$。分类器以$h^{\ast}$为输入:
$\hat{p}(y \mid S)=\operatorname{softmax}\left(W^{(S)} h^{*}+b^{(S)}\right)$