出处: 西土城的搬砖日常
原文链接: Learning Sentiment-Specific Word Embedding for Twitter Sentiment Classification
来源:ACL2014
问题:
目前的学习词表示的方法主要是通过词的上下文语义信息来进行建模的,忽略了文本的情感信息。这样,通常会把有着相似上下文,相反情感倾向的词映射成相似的向量,比如,"good"和 "bad"。对于情感分析任务来说,我们希望能区分开"good"和"bad"这样的词。这篇文章通过将情感信息引入到word embedding的学习过程,得到具有特定情感倾向的word embedding,应用在情感分类任务上,分类性能有明显提升。
一、相关工作
1、twitter情感分析
问题描述
twitter情感分析任务的目标是判断输入twitter的情感极性。
方法
传统分类器方法,将twitter情感分析作为一个文本分类问题,将标注好的情感倾向(比如positive,negative,neural)作为类别label。用机器学习方法训练文本分类器,分类器的性能极大依赖于文本特征、情感词典等信息。
神经网络方法,利用神经网络学习低维文本特征,获取文本的语义表示。
2、word representation
one-hot
这种方法把每个词表示为一个很长的向量,向量维度和词表长度相同,每个向量只有一维个维度是1,代表当前词,其余维度都是0。
这种表示方法非常简单,但是不能反映出词之间的语义关系。
比如:
“话筒”表示为:[0,1,0,0,0,0,0]“麦克风”表示为:[0,0,0,0,1,0,0]
对于“话筒”和“麦克风”这两个意义非常相近的词,one-hot表示方式不能反映出它们之间的关联性。
Bengio的语言模型
模型目标:根据给定上下文预测当前词的分布
lookup:获取词的特征向量
tanh+softmax:
C&W Model
模型结构上图(a)所示,包括四层,分别是lookup->linear->hTanh->linear
lookup:从dictionary中读出word representation
linear:将word representation拼接起来,并作线性变换
hTanh:
linear:
模型输出:表示输入的ngram的语言模型得分。
模型的目标:就是让原始ngram的得分高于corrupted ngram。
corrupted gra是指将原始ngram的词中心词随机替换为得到的ngram,例如“cat chills on a mat”->“cat chills a mat”。
损失函数:
其中,t表示原始ngram,表示corrupted ngram。
word2vec
(1)CBOW
目标:给定上下文,预测当前词
目标函数:
(2)Skip-Gram
目标:给定当前词,预测其上下文分布
目标函数:
二、本文模型
上边介绍的词表示方法大部分是基于上下文语义信息进行预测的,没有考虑到情感信息,因此不能区分出有相似上下文但是不同情感倾向的词,比如"good"和"bad"。为了解决这个问题,本文在C&W模型的基础上,引入情感信息,来学习针对情感分析任务的word embedding。作者提出了三种结构来实现,分别是,,。
1、SSWEh
作为一个非监督方法,C&W模型不能捕获文本的情感信息,解决这个问题的一种直观的方法是预测输入的ngram的情感倾向。由于句子的长度不同,不直接采用整个句子作为输入,采用滑动窗口的方式,每次输入ngram,预测其情感倾向。在神经网络中,顶层的输出通常被看做是输入的特征,因此可以利用顶层输出的连续变量预测文本的情感分布。
模型结构如下图(b)所示,
模型包括五层,分别是lookup->linear->hTanh->linear->softmax。
前面三层和C&W模型一样。假设要预测的情感倾向有K个label,把C&W的顶层分布改为K维并增加一层softmax。
用表示最终情感倾向得分输出,。
模型的目标:通过模型预测得到的文本情感分布和它的实际情感分布尽可能接近。
交叉熵损失函数:
2、SSWEr
SSWEh训练的过程中,预测正极性[1,0],负极性[0,1],这种约束太严格了,[0.7,0.3]这样的分布应该也可以作为一个正向的label,因为它的正向情感得分高于负向得分。同样的,[0.2,0.8]这样的分布可以作为一个负向的label。由此,作者提出了SSWEr模型。
模型包括四层,与SSWEh的前四层一样,损失函数有变化。
损失函数:
其中, 是正向情感得分, 是负向情感得分。
3、SSWEu
C&W模型通过句子的上下文句法信息学习word embedding,忽略了句子的情感信息。SSWEh核SSWEr通过句子的情感信息学习特定情感的word embedding,但是没有考虑句子的上下文句法关系。作者又提出一个统一的模型SSWEu,同时考虑句子的上下文句法信息和情感信息。
模型结构如下图(c)所示,
模型输入: ngram(原始的或者corrupted)和句子的情感极性。
模型输出:二维向量,分别表示输入ngram的语言模型得分和情感得分。
模型目标:
- 原始ngram的语言模型得分应该高于corrupted ngram的语言模型得分;
- 原始ngram的情感得分应该比corrupted ngram的情感得分更接近于实际的情感分布。
损失函数:
其中,
三、模型训练
- 利用twitter API收集10M twitter,其中5M带有positive标签,5M带有negative标签;
- 通过AdaGrad更新参数;
- 用同样的网络分别学习unigram,bigram,和trigram。
四、twitter 情感分类
将SSWE应用在twitter情感分析任务上,twitter表示如下,
其中表示twitter ,分别表示min卷积,max卷积和average卷积得到的结果,每个卷积层分别考虑unigram,bigram和trigram,
五、实验
1、数据
SemEval2013 bench
2、实验结果
3、不同word embedding的比较
只用word embedding作为twitter情感分类的特征,采用unigram,bigram和trigram的word embedding作为特征进行twitter情感分类实验。
实验结果如下图,
从实验结果可以看到,
- 仅采用ngram的word embedding作为twitter情感分类的特征的时候,C&W模型和word2vec性能明显低于SSWE。这是因为C&W没有考虑文本的情感信息,这样有相反情感倾向的词比如"good"和"bad"会被映射成比较相近的向量。仅采用这样的embedding作为情感分类的特征时,情感词的分辨能力很弱,所以性能比较差。
- 引入bigram和trigram特征可以提升模型性能。这是因为组合短语表达的情感倾向有可能和单个词所表达出来的情感倾向不同。比如,not [bad], bad和not bad所表达的情感倾向刚好相反,[great] deal of,great和great deal of表达的情感倾向也是不同的。
4、SSWEu中参数的作用分析
仅以unigram作为twitter情感分析的特征,改变,实验结果如下图所示,
由实验结果可以看出,
当在[0.5,0.6]之间的时候,这个时候语义信息和情感信息比重基本相同,模型性能最好。表示C&W模型,仅考虑语义信息,此时模型性能急剧下降,表明了在学习word embedding过程中,情感信息对twitter情感分类的重要性。
5、SSWEu中训练数据的数量作用分析
令,不断增加用于训练word embedding的twitter的数量,实验结果如下图所示,
从实验结果可以看出,
twitter数量从一百万增加到一千万的过程中,随着其数量增加,模型性能不断提高,这是因为在一定范围内twitter数量越多,词表规模越大,上下文信息及情感信息更丰富,学出来的word embedding能更好地表示词的语义信息和情感信息;增加到一千万后,趋于平稳,这是因为大部分信息已经涉及到了,再增加训练数据,并不能学到更多的信息。
6、情感词典中词的相似性实验
通过比较情感词典中词的相似性来进一步评估SSWE。
评价指标:
#Lex是情感词典中词的个数,是情感词典中第i个词,是情感词典中与第j近的词(通过余弦相似度来度量),N取为100。
,当和有相同情感极性的时候 ,当和有不同情感极性的时候
实验设置和数据:
- 实验使用了两个应用比较广的情感词典HL和MPQA;
- Joint是同是HL和MPQA的交集;
- 移除没有出现在word embedding词表中的词。
实验结果:
从实验结果可以看出,
SSWE的结果明显好于其他模型,再次印证了SSWE能有效捕获文本的情感信息,区分出有不同情感倾向的词。
六、总结
由传统网络得到的word embedding仅包含了上下文的语义信息,忽略了情感信息,因此不能区分出有着相似上下文及相反情感极性的词,比如"good"和"bad"。这篇文章提出了三种网络结构将情感信息引入损失函数学习得到具有特定情感的word embedding,在twitter情感分析任务上取得不错的结果。在情感词相似性实验上也明显优于其他性能,说明了SSWE模型能够有效捕捉词的情感信息,区分出具有不同情感倾向的词。