Document Modeling with Gated Recurrent Neural Network for Sentiment Classification
来源:(EMNLP2015)
Abstract & Introduction
在摘要和引言部分:
1、篇章级情感分析存在一个问题:如何对句间的内在语义关系编码?
2、作者引入自底向上的基于向量的篇章表示方法,其思路是:首先用CNN/LSTM实现单句表示,再用gated RNN编码句子间的内在关系和语义联系。
3、在IMDB影评数据集和Yelp数据集上验证了其做法的有效性。
2 The Approach
2.1 Sentence Composition
词向量的表示:
词向量表示有两种实现方式:随机初始化或者预训练的方式。作者在这里参考Mikolov et al. 2013论文的word2vec实现方案,并且用预训练词向量的方式以保留更多的语义信息。
句子表示:
CNN和LSTM模型都可以用于句子编码。两种模型可以将非固定长度的句子表示成定长的向量,且不需依赖依存句法分析或者成分句法分析就能保留句子的词序等信息。作者在本文中使用CNN with multiple conventional filters of different widths的方式实现句子编码。使用多卷积核获取语义信息的方式已经被很多实验证明有效。
作者在文章中分别使用宽度为1,2,3的卷积核去获取unigrams,bigrams和trigrams。为了得到句子的全局语义信息,作者随后接入一个average pooling layer,再接入tanh激活函数(作用是引入非线性),最后将整个句子的不同宽度卷积核的向量表示接入一个Average层,从而得到该句平均向量表示。
2.2 Document Composition with Gated Recurrent Neural Network
篇章表示:
目标:以非固定长度的句向量作为输入,生成定长的篇章向量表示。
一个最简单的实现策略是:忽略句间顺序,直接使用句向量的平均值作为该文档向量表示。先不考虑计算效率问题,这种方式并不能有效的保留句子之间复杂的语言关系(比如:原因结构,反义结构等)。
CNN模型可以用来表示篇章,这种模型通过其线性层储存句间关系。RNN也可以实现,但基本的RNN模型存在缺陷:梯度消失或者梯度爆炸。在长句中问题就会凸显出来:梯度可能会呈指数级上升或者衰减,这就使得长距离依赖问题变得棘手。为了解决这个问题,作者将基本RNN改造成一种带有门控结构的RNN,这种方式类似于LSTM或者GNN,区别见下列转换函数:
Gated RNN:
gt的作用类似于LSTM的候选记忆细胞。
LSTM:
模型可以被看作是一个输出门永远打开的LSTM,对应输出门Ot=1,作者的想法是通过这种方式避免丢失任何可能携带语义信息的部分。
参照下图,图一是基本的GatedNN,图二是Bi-GatedNN-Avg,使用AVG效果要好一些,因为AVG的方法取每一个时间步产生的中间隐层值求平均,可以包含更多语义信息。
模型其他细节:
损失函数:cross-entropy交叉熵
更新参数:反向传播,随机梯度下降
CNN卷积核width:1,2,3
词向量:200 dimensional,SkipGram
其他参数在区间(-0.01,0.01)内随机初始化。
学习率:0.03
3 实验部分
数据集:影评:IMDB,商户点评:Yelp 2013 ,2014,2015;Train:Test:Valid=8:1:1
分词工具:stanford CoreNLP
评价指标:accuracy,MSE(均方误差)
3.2 Baseline Methods
3.3 Comparison to Other Methods
1、Majority的策略就是将训练集中出现次数最多的类别标签作为测试集所有数据的类别标签。该方法表现最弱,因为没有涉及到任何文本特征。
2、SVM分类器,uigram和bigram较强一些,几乎是所有baseline中表现最好的。
3、设定复杂特征也很有效(SVM+TextFeatures)。但是这些特征之间相互较为独立,会存在数据稀疏问题。比如,bigrams和TextFeatures在yelp2015上,在过滤低频特征后,分别是899k和4.81M。
4、AverageSG没有使用特征抽取,直接将一篇文章的所有词向量求平均表示这篇文章,效果一般。
4、复杂模型:包括JMARS(协同过滤+主题模型),Paragraph Vector,CNN,相较于SVM+AverageSG,取得了明显提升,因为他们利用了更深层的语义信息。但相较于SVM+词袋模型并没有明显的提升,可能原因是篇章级别的语义信息,比如句间关系等没有很好的获取到。
5、conv-Grnn 和 LSTM-GRNN 表现最好,而且LSTM比CNN要更强一些。
3.4 Model Analysis
以conv-GRNN为例,对比不同的神经网络模型。
在2.1节获取句子的向量表示,其后接模型按照如下安排进行对比试验:
1、Average。句子向量取平均作为篇章向量
2、Recurrent / GatedNN
将每一个句向量依次输入RNN或者GRNN,最后一个隐层状态的向量作为篇章的向量表示。
3、Recurrent Avg / GatedNN Avg.
类似方法2,改进是取所有隐层的平均值作为文档表示
4、Bi Recurrent Avg / Bi GatedNN Avg
与方法3相同,区别是双向。
结果分析:
1、标准形式的RNN表现最弱,甚至比简单的取平均Average方法还要弱。因为RNN受梯度消失的影响。
2、RNN AVG很好地解决梯度消失问题,双向的RNN-AVG效果相当。
3、在GRNN上,取得了极好的效果。结果表明GRNN很适合解决这类梯度消失问题。
总结:
亮点:对篇章编码采用分层编码,先编码单句,再编码整个篇章,并且将隐层输出取Average,通过此方法可以较好的捕获句间语义信息。
缺点:
用GRNN改进RNN,作者没有将GRNN与LSTM作对比试验,无法预知究竟这两种模型哪个表现会更好。