Press "Enter" to skip to content

干货|一文带你速览分层注意力网络在文本分类中的应用

2016年,神经网络在文本分类的任务上逐渐成为了主流方法之一。Word2vec等预训练词向量模型为文本任务提供了一个具有很强语义信息的输入,而卷积神经网络和LSTM/GRU也已表现出了在序列任务上的聚合能力。前者可以像n-gram模型一样将前后的信息用一个滑动窗口整合在一起,而后者则是能够在长距离上捕获信息,对于前后顺序极其敏感的文本序列输入非常有效。

 

注意力机制的引入进一步推动了神经网络模型在文本任务以及自然语言处理上的发展。它不仅能够帮助模型更好地利用输入中的有效信息,而且还对神经网络模型的行为提供了一定的解释能力。

 

本文介绍的 “Hierarchical Neural Networks for Document Classfication” 在传统注意力机制的基础上,考虑到了文本的内部结构:文本内的信息本身具有不同层级,比如最底层的字符级别、词语级别到上层的短语级别、句子段落级别。这篇论文将其与注意力机制结合,分别在词语级别上以及句子级别上做了注意力机制的建模,不仅提升了文本分类的效果,而且关注到了不同词语在不同类别上表征特性的变化。

 

 

这篇文章提出的分层注意力网络(Hierarchical Attention Network)的结构如上图所示。输入层使用了预训练的200维word2vec词向量,文章中也提到这一部分可以进一步用字符级别的编码模型来构建词向量。在编码层方面,上下两层编码器都采用了50维隐含层的双向GRU结构。在每个编码层之上,采用了注意力机制。

 

 

GRU训练速度更快, LSTM记忆能力更好

 

GRU模型相较于传统的RNN模型,使用了重置门(Reset Gate)r和更新门(Update Gate)z,它们共同决定当前信息如何传递到下一时间。相较于LSTM,GRU的参数更少(GRU只有两个控制门而LSTM有三个),因此GRU的训练速度会相对快一些,对于较小规模数据的学习效果相对更好。LSTM则是在较长的序列上有更好的记忆能力。

 

笔者认为由于模型的输入已经将长文本变为一些句子分别进行输入,输入文本的预期长度相较于原输入会短很多,因此在这里采用了GRU。

 

 

HAT中一种 基础的 注意力机制

 

在2016年“Attention is All you need”还未出来时, 注意力机制 已经和LSTM/CNN等序列模型有了很好的结合。相较于直接使用RNN最后的输出,或是使用Max-Pooling或者Average-Pooling在RNN的所有输出上做聚合,使用注意力机制能够更好地利用不同时间点上RNN单元的输出,而且还为模型的行为提供了一定程度的解释。

 

上图所示的公式便是在HAT中使用的比较基础的一种注意力机制。这里先用一个单层MLP获得输入的隐含表示,然后再用非线性层(tanh)加上softmax做正规化处理得到权重,最后依据这些权重做线性叠加得到重新分配权重后的序列表征。

 

在模型的最后,HAT采用了单层MLP加softmax做文本分类,并使用negative log likelihood作为训练目标。

 

 

原论文在Yelp Review,IMDB reviews,Yahoo reviews以及Amazon Review上做了一系列实验,比较了HAT以及几种经典的Baseline模型的效果。其中,分层注意力网络在各个数据集上都取得了很好的效果提升。

 

层次网络相较于之前有一定提升

 

文章指出,在长文本方面,朴素的神经网络模型(LSTM,CNN-word,CNN-char)并没有比传统机器学习模型(SVM)有很大的提升,它们没有充分利用层次信息。显式地使用层次信息(HN-AVE,HN-MAX,HN-ATT)则有非常显着的提升,而且本文的层次网络相较于之前使用层次信息的Conv-GRNN以及LSTM-GRNN也有一定的提升。

 

 

注意力机制帮助模型有更高输出

 

注意力机制对于词语信息的权重重分配,可以帮助模型在相应分类上有着更高的输出。比如对于一个评论,“good”往往象征着积极的评论。如下图所示,横坐标是权重的大小,纵坐标是出现的比例,图3(a)图是“good”在所有案例中的分布,(b)到(f)分别是评分1~5的案例中good的分布情况。可以看到,对于较好的评分(e/f图对应4/5分),”good”的权重往往会较大。

 

 

图4中bad的分布正好相反:评分越高bad的权重越小。

 

 

层次信息+注意力机制=提高模型的理解分析能力

 

层次信息的使用加上注意力机制,能够让模型在做出判断时,忽略掉一些干扰信息。比如下图分别是评分为4和评分为0的两个案例的注意力分配情况。左侧的红方块深浅代表句子权重,右侧的蓝方块深浅代表词语权重。可以看到在评分为4的案例中出现了don’t even like这样的信息,虽然这几个词的权重都相对较高,但是句子上的权重把这个影响忽略掉了。

 

 

在右侧评分为0的案例中,同样出现了good这样的积极词汇,但是同样地,句子上的权重帮助模型将注意力放在了收尾两句情感意向非常明显的信息上,从而做出了正确的判断。可见层次信息与注意力机制的结合确实提高了模型的理解分析能力,表现出了文本中句子层次上结构信息的重要性。

 

原文

 

Yang,Zichao, et al. “Hierarchical attention networks for documentclassification.” Proceedings of the 2016 Conference of the NorthAmerican Chapter of the Association for Computational Linguistics: HumanLanguage Technologies. 2016.

 

引用

 

https://towardsdatascience.com/what-is-a-recurrent-nns-and-gated-recurrent-unit-grus-ea71d2a05a69

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注