RUC AI Box
首发于RUC AI Box
Hierarchical Attention Networks for Document Classification 阅读笔记

Hierarchical Attention Networks for Document Classification 阅读笔记

论文:Hierarchical Attention Networks for Document Classification

发表会议:NAACL2016

作者:Zichao Yang^{1} ,Diyi Yang^{1} ,Chris Dyer^{1} ,Xiaodong He^{2} ,Alex Smola^{1} ,Eduard Hovy^{1}

单位:1.Carnegie Mellon University 2.Microsoft Research, Redmond

链接:Hierarchical Attention Networks for Document Classification

前言:本文针对文本分类任务提出了一个层次化attention机制模型(HAN),有两个显著的特点:(1)采用“词-句子-文章”的层次化结构来表示一篇文本。(2)该模型有两个层次的attention机制,分别存在于词层次(word level)和句子层次(sentence level)。从而使该模型具有对文本中重要性不同的句子和词的能力给予不同“注意力”的能力。作者在6个数据集合上进行了测试,并且相较以往的模型效果提升显著。最后,通过可视化说明该模型可以选择出含有丰富信息的词语和句子。

一 、写作动机

文本分类是一项基础的NLP任务,在主题分类,情感分析,垃圾邮件检测等应用上有广泛地应用。其目标是給每篇文本分配一个类别标签。本文中模型的直觉是,不同的词和句子对文本信息的表达有不同的影响,词和句子的重要性是严重依赖于上下文的,即使是相同的词和句子,在不同的上下文中重要性也不一样。就像人在阅读一篇文本时,对文本不同的内容是有着不同的注意度的。而本文在attention机制的基础上,联想到文本是一个层次化的结构,提出用词向量来表示句子向量,再由句子向量表示文档向量,并且在词层次和句子层次分别引入attention操作的模型。
二、模型构建

HAN的模型结构如Fig.1所示,它包含一个词序列编码器,一个词层面的attention层,一个句子序列编码器,一个句子层级的attention层。


1. 基于GRU的词序列编码器

GRU是RNN的一个变种,使用门机制来记录序列当前的状态。隐藏层有两个门(gate),重置门(reset gate)r_{t} 和更新门(update gate)z_{t} 。这两个门一起来控制当前状态有多少信息要更新。在时刻t,隐藏层状态的计算公式:

h_{t} =(1-z_{t})\odot h_{t-1} +z_{t}\odot  \tilde{h_t }

更新门(update gate)z_{t} 是用来决定有多少过去的信息被保留,以及有多少新信息被加进来:

z_{t} =\sigma (W_{z}x_{t} +U_{z}h_{t-1} +b_{z}  )

这里x_{t} 是在时刻t输入的单词的词向量,候选状态\tilde{h_{t} } 的计算方法和普通的RNN相似:

\tilde{h_{t} }=tanh(W_{h}x_{t}+r_{t}\odot (U_{h}h_{t-1}  ) +b_{h}   )

重置门r_{t} 决定有多少过去的信息作用于候选状态,如果r_{t} 是0,即忘记之前的所有状态:

r_{t}=\sigma(W_{r}x_{t}+U_{r}h_{t-1}+b_{r} )

2 层次化attention

2.1 词编码器(Word Encoder)

由词序列组成w_{it} ,t\in [0,T]组成的句子,首先把词转化成词向量,x_{it}=W_{e}w_{it},然后用双向的GRU网络,可以将正向和反向的上下文信息结合起来,获得隐藏层输出。

x_{it}=W_{e}w_{it},t\in[1,T]
\overrightarrow{h_{it}}=\overrightarrow{GRU}({x_{it}})
\overleftarrow{h_{it}}=\overleftarrow{GRU}({x_{it}})

对于一个给定的词语w_{it},经过GRU网络后,我们获得了一种新的表示:h_{it}=[\overrightarrow{h_{it}},\overleftarrow{h_{it}}]

h_{it}包含了w_{it}周围两个方向的信息。

2.2 词级别的attention机制

attention机制的目的是要把一个句子中,对句子的含义最重要,贡献最大的词语找出来。我们通过将h_{it}输入到一个单层的感知机(MLP)中得到的结果u_{it}作为h_{it}的隐含表示。

u_{it}=tanh(W_{w}h_{it}+b_{w})

为了衡量单词的重要性,我们用u_{it}和一个随机初始化的上下文向量u_{w}的相似度来表示,然后经过softmax操作获得了一个归一化的attention权重矩阵\alpha _{it},代表句子i中第t个词的权重。
\alpha _{it}=\frac{exp\left( u_{it}^{\top } u_{w}\right) }{\sum_{t}^{}{exp\left( u_{it}^\top u_{w} \right) } }

有了attention权重矩阵以后,我们可以将句子向量s_{i}看作组成这些句子的词向量的加权求和。这里的上下文向量u_{w}是在训练网络的过程中学习获得的。我们可以把u_{w}当作一种询问的高级表示,比如“哪些词含有比较重要的信息?”

s_{i}=\sum_{t}{\alpha_{it}h_{it}}

2.3 语句编码器(Sentence Encoder)

得到了句子向量表示s_{i}以后,我们用类似的办法获得文档向量:

\overrightarrow{h_{i}}=\overrightarrow{GRU}(s_{i}),i\in[1,L]
\overleftarrow{h_{i}}=\overleftarrow{GRU}(s_{i}),i\in[L,1]

对于给定的句子s_{i}我们得到了相应的句子表示h_{i}=[\overrightarrow{h_{i}},\overleftarrow{h_{i}}]。这样获得的表示可以包含两个方向的上下文信息。

2.4 句子级别的attention

和词级别的attention类似,我们也提出了一个句子级别的上下文向量u_{s},来衡量一个句子在整篇文本的重要性。

u_{i}=tanh(W_{s}h_{i}+b_{s})
\alpha_{i}=\frac{exp\left( u_{i}^\top u_{s} \right) }{\sum_{t}^{}{exp\left( u_{t}^\top u_{s} \right) } }
v=\sum_{i}{\alpha_{i}h_{i}}

我们获得了整篇文章的向量表示v,最后可以使用全链接的softmax层进行分类。

三、实验

1 数据集

论文中使用了六个数据集,Yelp reviews2013,2014,2015;IMDB reviews;Yahoo Answers;Amazon reviews。每个数据集合中80%的数据用作训练集合,10%的数据用作验证集合,剩余10%的集合用作测试集合。

2 实验指标与对比模型

  • 线性模型:使用手工构建的统计数据作为特征,多项式logistic回归作为分类器
  • SVM:支持向量机+unigr,bigrams
  • word-based CNN:基于词的卷积神经网络
  • Character-based CNN:字符级别的卷积神经网络
  • Conv/LSTM-GRNN:使用“词-句子-文本”的层次化结构表示文档,然后用带有门限制的RNN做分类。

3 实验结果

4 结果分析

根据上表的实验结果可以看出来,层次化attention模型在所有的六个数据集合上均取得了最好的效果。这种效果的提升是不受数据集大小限制的。在相对较小的数据集比如Yelp2013和IMDB上,我们的HAN模型超过基准模型的最好表现的比率分别为3.1%和4.1%。相同的在,大数据集上,我们的模型优于之前的最好模型的比例分别为3.2%,3.4%,4.6%,6.0%,分别在Yelp2014,Yelp2015,Yahoo Answer,Amazon Answer。

一些没有使用层次结构来表示文本的神经网络分类算法比如CNN-word,CNN-char,LSTM在一些大数据集合上并没有超过基准模型太多。单从文本的结构化表示来看,HN-MAX,HN-AVG都可以显著提升CNN-word,LSTM等模型的性能。我们将层次话结构和Attention机制联合起来的模型,更是超过了单纯的层次化模型LSTM-GRNN。

5 可视化分析

上图是词“good”在IMDB数据集合种的的attention权值分布,可以看出,当评价等级为1时Fig3(b),good的权值集中在比较低的一端,当评论的变得向好评方向时,good的权重也开始在高的一端分布。

相反的,词“bad”在评价等级较低的评论里权值较大,在评价高的评论里权值小。

情感分析任务种,从上图我们可以看到,在好评里,delicious,fun,amazing,recommend 等词所在的句子颜色深,权值大。在差评里,terrible,not等词占的比重大。

在主题分类任务中,在科学自然类别里,权值比较大的词zebra,strips,camouflage,predator。 在计算机网络类别里web,searches, browsers的权值较大。

四 总结

本文提出了一种基于层次化attention的文本分类模型,可以利用attention机制识别出一句话中比较重要的词语,利用重要的词语形成句子的表示,同样识别出重要的句子,利用重要句子表示来形成整篇文本的表示。实验证明,该模型确实比基准模型获得了更好的效果,可视化分析也表明,该模型能很好地识别出重要的句子和词语。

编辑于 2017-05-16

文章被以下专栏收录

    本专栏由中国人民大学信息学院的赵鑫副教授 (微博 @赵鑫RUC) 所带领的研究小组维护。关注的领域是数据挖掘、社会计算和机器学习。我们会定期会分享相关学术内容,欢迎各位来邮件进行交流,也欢迎大家向该专栏投稿精品文章。知乎账号联系人为 窦洪健,负责资讯、投稿、宣传以及一切账号相关问题,邮箱为43404873@qq.com;企业和转载合作需求请致谢赵鑫老师,邮箱为 batmanfly@qq.com。赵鑫老师个人情况详见个人主页 http://playbigdata.com/batmanfly 和 http://info.ruc.edu.cn/academic_professor.php?teacher_id=55 。