之前存在的问题:当所要处理的序列较长时,就会导致网络容易忘记之前的东西
解决办法:提出了“注意力”机制,使得网络工作过程中可以像人一样将注意力放在不同部位。这篇论文就针对文本分类问题提出了层级注意力模型结合双向RNN实现对文本的分类,其效果明显好于其他方法。
模型结构:
层级“注意力”网络的网络结构下图所示,网络可以被看作为两部分:
第一部分为词“注意”部分,
另一部分为句“注意”部分。
整个网络通过将一个句子分割为几部分,对于每部分,都使用双向RNN结合“注意力”机制将小句子映射为一个向量,然后对于映射得到的一组序列向量,我们再通过一层双向RNN结合“注意力”机制实现对文本的分类
词层面的“注意力”机制
本文针对的是任务是文档分类任务,即认为每个要分类的文档都可以分为多个句子。因此层级“注意力”模型的第一部分是来处理每一个分句。对于第一个双向RNN输入是每句话的每个单词,其计算公式如下所示
但是对于一句话中的单词,并不是每一个单词对分类任务都是有用的,比如在做文本的情绪分类时,可能我们就会比较关注“很好”、“伤感”这些词。为了能使循环神经网络也能自动将“注意力”放在这些词汇上,作者设计了基于单词的注意力模型,其计算公式如下:
首先,通过一个线性层对双向RNN的输出进行变换,然后通过softmax公式计算出每个单词的重要性,最后通过对双向RNN的输出进行加权平均得到每个句子的表示。
句层面的“注意力”机制
句层面的“注意力”模型和词层面的“注意力”模型有异曲同工之妙。其计算公式如下所示
最后就是使用最常用的softmax分类器对整个文本进行分类
损失函数
参考连接:
https://blog.csdn.net/qq_24305433/article/details/80427159
https://blog.csdn.net/liuchonge/article/details/73610734
https://blog.csdn.net/liuchonge/article/details/74092014