Hierarchical Attention Networks for Document Classification
(ACL2016)
动机
在分类任务中,句子中包含的每个词语相对于分类任务的重要性并不一样,比如在IMDB影评数据集中, like, amazing, terrible 这样的词语更能够决定句子的情感。一篇document也由多个句子组成,在篇章级别的分类时,每个句子的重要性也不相同。所以作者提出一种使用self-attention的层次模型来给单词或者句子赋予权重,以提升分类的准确性。
模型
网络包含四个层次:
1、word sequence layer
2、word-attention layer
3、sentence sequence layer
4、sentence-attention layer
编码层
包括word sequence layer,sentence sequence layer,其作用分别是对句子和篇章编码,直接使用BI-GRU实现。
注意力机制
该模型与上次所说的层级门结构篇章情感分类很相似,不同之处在于有了uw(词语级别的context vector)和us(句子级别的context vector), 利用它们产生attention value, 就可得出每个词语或句子的任务相关程度。
本文中self-attention的实现方式:
把每一个句子用双向GRU进行表示,再把句子中的每个词语的隐层向量表示(hit)经过如下变换实现self-attention:
式1:把某个词的隐层向量表示输入到一个单层感知机得到uit
式2:度量这个词的重要程度:方法是直接计算uit和uw(context vector)的相似度,然后用softmax函数将相似度归一化从而得到每个词的attention值,用α表示。
式3:最后以该α值为权重,加权求和得到整个句子的attention向量表示。
关于 context vector:
The context vector uw can be seen as a high level representation of a fixed query “what is the informative word” over the words.The word context vector uw is randomly initialized and jointly learned during the training process.随机初始化,随着模型反向传播不断学习和更新。
补充:传统注意力机制
传统attention机制的应用,总是要求任务本身同时有源和目标的概念。比如在machine translation里, 我们有源语言和目标语言,在QA里我们有问题和答案,在这类问题里面Attention常常被定义为目标和源的相关程度。
但是存在一些其他任务,不同时具有源和目标。比如document classification, 它只有原文,没有目标语言或篇章。那么这种情况下attention就需要其变种self-attention,即原文自己内部的注意力机制。
传统注意力机制:
以 “Tom chase Jerry”这句话为例,对于采用RNN的Decoder来说,在时刻i,如果要生成yi单词,我们可以知道在i-1时刻隐层节点的输出值 Hi-1 ,目的是计算输入句子中的单词 “Tom” 、“Chase”、“Jerry” 相对 Yi 来说的注意力概率分布。可以用 i-1时刻的隐层节点状态Hi-1去 一 一 和输入句子Source中每个单词对应的RNN隐层节点状态 hj 进行对比,即通过函数F( hj , Hi-1 )来获得目标单词yi和每个输入单词对应的相关程度,F函数在不同论文里可能会采取不同的方法,最后将函数F的输出经过Softmax层归一化就得到了attention值。
实验
数据集:
在六个大规模的documen classifaication data sets进行,数据集主要分为两大块:
sentiment estimation and topic classification。
Yelp reviews(2013,2014,2015),IMDB reviews,Yahoo answers,Amazon reviews
baseline:
Linear methods:
A linear classifier based on multinomial logistic regression is used to
classify the documents using the features:
1、BOW and BOW+TFIDF
2、n-grams and n-grams+TFIDF
3、Bag-of-means :The average word2vec embedding
SVMs:
including SVM+Unigrams, Bigrams,Text Features, AverageSG, SSWE.
1、Text Features are constructed according to (Kiritchenko et al., 2014), including word and character n-grams, sentiment lexicon features etc.
2、AverageSG constructs 200-dimensional word vectors using word2vec and the average word embeddings of each document are used.
3、SSWE uses sentiment specific word embeddings according to (Tang et al., 2014)
Neural Network methods:
1、CNN-word Word based CNN models like that of (Kim, 2014) are used.
2、CNN-char Character level CNN models are reported in (Zhang et al., 2015)
3、LSTM takes the whole document as a single sequence and the average of the hidden states of all words is used as feature for classification.
4、Conv-GRNN and LSTM-GRNN were proposed by (Tang et al., 2015). They also explore
the hierarchical structure: a CNN or LSTM provides a sentence vector, and then a gated
recurrent neural network (GRNN) combines the sentence vectors from a document level
vector representation for classification.
HN代表Hierarchical Network, AVE 代表 averaging, MAX代表max-pooling, and ATT 代表 hierarchical attention model.
Analysis
1、The improvement is regardless of data sizes.比如:在小规模数据集Yelp2013和IMDB中,本文的模型比baseline中表现最好的模型分别提升了3.1%和4.1%。在大规模数据集上表现也是一致的,Yelp2014(3.4%),Yelp2015(3.4%),Yahoo Answers(4.6%),Amazon Reviews(6.0%)。The improvement also occurs regardless of the type of task:YElps是情感分析,其他的是主题分类。
2、没有用 hierarchical document structure的神经网络, such as LSTM, CNN-word, CNN-char,相对于传统方法性能提升很少。SVM+TextFeatures gives performance 59.8, 61.8, 62.4, 40.5 for Yelp 2013, 2014,2015 and IMDB respectively, while CNN-word has accuracy 59.7, 61.0, 61.5, 37.6 respectively。
3、对比只使用了hierarchical structure(不包括attention)的模型和没使用hierarchical的网络,可以发现明显的性能提升。比如HN-AVE outperforms CNN-word by 7.3%,8.8%, 8.5%, 10.2% than CNN-word on Yelp 2013, 2014, 2015 and IMDB respectively.
4、使用了attention的HN-ATT模型,比只使用hierarchical的模型:LSTM-GRNN模型,也有明显的提升,分别提升了3.1%, 3.4%, 3.5% and 4.1%。HN-AVE和HN-MAX表现几乎一致,但是HN-ATT相对于这两个模型还是要更好一些。
Visualization of attention
为了验证模型是否能正确选出有用的句子和单词,作者进行了如下得可视化工作。
每一行是一个句子,红色代表句子的注意力权重,蓝色代表单词的权重。由于使用了hierarchical structure,作者实现了用句子权重来权衡折中单词的权重。如下例所示:
GT:4,实际标签是4:代表5星评价。GT:0,代表一星评价。可以看出那些带有强烈感情色彩的单词的权重较大,很多无关词直接被忽略。同时,由于是层次结构,所以综合考虑句子和单词的权重后所得的结果才是最终结果,所以即使左边的评价中:“i don’t even like scallops(我不是很喜欢扇贝)”这样一句消极情感的句子并没有误导整个评论的实际含义,可以看出这句话的句子权重较低。
可以沿用作者的思路,attention结合hierarchical representation用在罪名预测fact部分的编码上,应该会有效果。