APP下载

预训练模型下融合注意力机制的多语言文本情感分析方法

2020-05-09胡德敏褚成伟胡钰媛

小型微型计算机系统 2020年2期
关键词:向量注意力英文

胡德敏,褚成伟,胡 晨,胡钰媛

(上海理工大学 光电信息与计算机工程学院,上海200093)

1 引 言

互联网的快速发展以及移动设备的迅速普及使得用户可以方便地通过网络社交平台发表自己的观点评论.日常生活中,人们习惯于:在社交平台分享个人观点、在电商平台发表商品评论、在影评网站上发表观后感等等.这些文本大都反应用户的真实情感,通过分析评论中的情感取向可以有效把握社会舆论的趋势,为政府和决策机构提供支持,成为学术研究的热点[1,2].

传统情感分析方法主要分为三类:1)基于词典的方法;2)基于机器学习的方法;3)基于深度学习的方法.基于词典的方法以情感词典为主要依据并结合句法规则判断文本的情感倾向[3],这类方法的优劣性很大程度上取决于人工设计和先验知识,推广能力较差,通常会与其他文本特征相结合作为情感分类依据.Pang等人[4]首次提出通过标准机器学习的方法解决情感分类问题,特征工程是这类方法的核心,常用的特征有n-gram特征(unigrams,bigrams,trigrams)、Part-of-Speech(POS)特征、句法特征、TF-IDF特征等.2006年Hinton[5]等提出深度学习后,深度学习方法被引入自然语言处理领域,解决传统机器学习方法无法挖掘深层语义的问题[6],深度学习方法是目前情感分析领域的主流方法.

相比于传统的单语言情感分析任务,多语言情感分析相关研究较少[7].但在如今的社交平台上(微博、Facebook等),多语言混合的表达形式使用广泛,多语社区环境下的用户更倾向于发表多语言混合的评论.E1-E5展示了微博上包含中英双语的评论.

E1.“真hold不住我的快乐.So happy!”

E2.“这首歌真的太有feel 了”

E3.”用了爵士的腔调,加了一点 free style,so nice !”

E4.”难受 听了一下午 cry cry…”

E5.”John is an aggressive guy! 工作也很努力!”

可以看出,评论文本中同时存在两种语言,两者交替使用,类似这类同一文本中同时出现两种甚至更多语言或语言变体的现象称为编码转换(code-switching),针对该类文本的情感分类问题称为编码转换情感分类问题,本文研究的多语言情感分类问题即编码转换情感分类问题.上述评论大多以中文为主体,英文文本相对较少.在这类混合文本中,整体的情感极性不仅取决于中文词语,还包括一些关键的英文词(happy,nice,cry等).因此,准确地提取出不同语言的情感词对多语言文本情感分类来说十分重要.

在不同语境下,同一个单词可能有着不同的含义和情感倾向,例如E5中aggressive 有两种含义,可以表示为有侵略性的,攻击性的,也可以表示为有上进心的,积极的,两者有这截然不同的情感倾向,通过结合下文可知aggressive在这里具有正向的情感倾向,可以看出,错误的词义将对整体的情感极性产生严重的影响.因此,解决一词多义问题对文本情感分析任务来说同样十分重要.

针对上述问题,本文以中英文混合文本为对象,提出了一种基于预训练语言模型并融合注意力机制的细粒度情感分类模型,通过预训练语言模型生成上下文语义相关的词向量,避免文本中可能出现的一词多义性问题.考虑到文本的语序和上下文信息,使用BiLSTM模型挖掘文本情感表征,分别对中文、英文以及双语情感表征使用注意力机制提取关键情感表征,最终将融合后的情感表征输入到分类模型中得到结果.实验表明该方法在多语言情感分类任务上取得了较好的效果.

本文将在第一节介绍多语言文本情感分析的相关工作,在第二节介绍本文提出的情感分析模型结构及原理,第三节介绍试验数据及评估标准,并在同一个数据集上对不同的多语言情感分析模型对比分析实验结果,最后对本论文的工作进行总结并提出展望.

2 相关工作

如何准确地挖掘出多语言文本中各个语言的情感表征并提取出其中的关键信息是多语言情感分类研究的难点[7].一种方法是直接将源语言翻译为指定的目标语言,然后针对目标语言提取情感表征,进行情感分类任务.这类方法的困难在于如何弥补语言差距对分类效果的影响[8].Ethem等人[9]首先针对英文语料训练英文情感分类模型,对于多语言语料,将其他语言通过现有的机器翻译方法翻译为英文,输入英文情感分类模型预测情感极性.Wang等[10]针对中英文混合文本,通过机器翻译方法将英文文本翻译为中文,结合双语情感特征构建二分图,最后通过半监督的标签传播算法实现文本的情感分类,对比只考虑单语文本的方法,该方法在每个情感类别上F1值均有提升.

另一种方式是使用字符级的编码代替词级别编码,不同于词级别的编码方式(2013,Mikolov等[11,12]),字符级编码可以挖掘出更丰富的情感表征,并且,对于多语言混合文本能够更准确地挖掘出潜在的情感信息.Kim等人[13]首次提出基于字符卷积的词嵌入方法Char-CNN,在英文数据集PennTreebank上模型困惑度(perplexity)与其他模型持平,在阿拉伯语、俄语等语言上模型困惑度均低于其他模型,取得较好结果.Prabhu[14]使用Char-CNN方法对印度语-英语混合文本进行字符编码,将编码结果输入多层LSTM网络训练,最终得到情感分类结果,结果较传统的词级别编码方法F1值有较大提升.Jhanwar等人[15]首先使用字符级的Trigram特征结合多层LSTM实现神经网络分类器,接着通过词级别的unigram、bigram特征构建多项朴素贝叶斯分类器,最终通过集成学习方式综合上述分类器得到分类结果,模型在印度语-英语混合文本数据集上得到较高的F1值.

还有许多学者提出其他针对多语言文本的情感分类方法.徐源音等[16]提出混合文本情感分析模型MF-CSEL,使用CBOW训练词向量,分别针对中英文文本提取情感特征,融合情感特征、词序特征以及TF-IDF权重矩阵后,通过集成学习的方式进行细粒度的情感分析.Wang等[7]针对中英文混合文本提出一种基于多注意力机制的情感分类模型,分别对中文、英文以及中英文混合文本使用注意力机制提取关键词信息并融合,最后输入分类器中实现细粒度情感分类,模型对比传统单语言情感分析模型F1值有较大提升.

本文首先在大规模的语料上使用深度语言模型框架ELMo训练得到语言模型,将原始文本输入模型后得到上下文语义相关的词向量,接着将词向量输入BiLSTM网络学习文本情感表征,考虑到文本中的每个词对整体情感极性影响不同,分别对中文、英文以及中英混合的情感表征使用注意力机制学出习每个词对于情感倾向的权重分布,从而准确有效地挖掘出文本中的关键情感信息,最终通过并行融合的方式提升情感分类效果.

3 多语言文本情感分类模型

本文采用细粒度情感分类方式,将情感分为5类,分别为happiness、sadness、anger、fear、surprise,对于不含任何情感极性的文本标注为none.模型整体结构如图1所示.模型结合了预训练语言模型,BiLSTM网络以及多语言注意力机制,通过预训练语言模型得到上下文相关的词向量,使用BiLSTM学习文本情感表征,使用多语言注意力机制分别对单语文本和混合文本提取关键情感表征.

图1 模型整体结构Fig.1 Model structure

3.1 预训练语言模型

传统浅层机器学习模型(SVM、LR等)依赖于人工提取特征,而人类的情感表达方式是复杂的,常常包含否定、双重否定以及其他的语言模式,因此通过浅层机器学习模型无法有效地挖掘文本中的深层次的语义信息.相比于浅层模型,深度学习模型可以自动从原始文本中学习出层次化的特征[6],准确挖掘出文本中深层语义信息.另外,在获取词嵌入向量时考虑文本的上下文信息,针对不同的上下文得到不同的词嵌入向量可以有效解决文本中的一词多义问题.针对上述特点,本文使用深度学习框架ELMo训练语言模型.

Matthew等[17]提出了上下文相关的深层词表征模型ELMo,模型结构如图2所示.模型包含两个部分:Char-CNN嵌入层以及BiLSTM网络层.

图2 ELMo结构Fig.2 Structure of ELMo

Char-CNN卷积层用于实现字符级别的词嵌入,对于给定词Wk=[C1,C2,…,Cl],ci表示字符,l为词长,d表示嵌入字符的维度,则Wk可以表示为矩阵Ck∈Rd×l.使用宽度为w的卷积核H∈Rw×d对矩阵Ck进行卷积,并添加非线性激活函数后得到特征矩阵fk∈Rl-w+1,fk中的每一个元素可以表示为:

fk[i]=tanh(+b)

(1)

Ck[*,i:i+w-1]表示第i个字符到第i+w-1个字符组成的嵌入矩阵,表示对两矩阵逐元素进行內积.对卷积得到的特征,使用最大池化(Max-pooling)得到输出向量:

(2)

zk=t⊙g(WHek+bH)+(1-t)⊙ek

(3)

其中,g表示非线性激活函数,类似LSTM网络中的记忆单元,t=σ(WTek+bT)表示转换门限(transform gate),(1-t)表示传送门限(carrygate),在多层神经网络中,高速公路网络允许低层输入直接传送至高层,并与输出结合,有效解决梯度信息回流受阻所造成的网络训练困难问题.

(4)

(5)

3.2 BiLSTM学习情感表征

在文本情感分类中,由于单词之间存在时序关系,且上下文之间存在语义依赖关系,因此,本文采用BiLSTM模型对句子进行编码,学习句子的情感表征.双向长短记忆网络(Bidirectional Long Short-Term Memory,BiLSTM)是对单向长短记忆网络(Long Short-Term Memory,LSTM)[18]的扩展,同时对输入序列进行正向和反向计算,最终将正向结果和反向结果拼接后输出.

图3展示了LSTM的基本单元结构.xt表示t时刻的输入数据,ht表示该时刻LSTM单元的输出,ct表示该时刻更新后的细胞状态.LSTM结构的关键是细胞状态c,状态信息在LSTM单元中传输,其中线性操作用以控制状态信息的保留,更新和输出,分别对应遗忘门、输入门和输出门.

图3 LSTM基本结构Fig.3 Structure of LSTM

状态信息首先经过遗忘门ft,该门限决定上一时刻细胞状态ct-1保留多少信息,丢弃多少信息.ft计算方式如下:

ft=σ(Wf[ht-1,xt]+bf)

(6)

将ht-1和xt拼接后进行线性变换,传递给sigmoid激活函数,输出0到1之间的值表示信息的保留量,Wf表示遗忘门权重,bf表示遗忘门偏置.

(7)

it=σ(Wi[ht-1,xt]+bi)

(8)

Wi表示输入门权重,bi表示输入门偏置.接着更新细胞状态得到ct,计算公式如下:

(9)

输出门Ot的计算方式同遗忘门、输入门类似,如下所示:

Ot=σ(Wo[ht-1,xt]+bo)

(10)

Wo表示输出门权重,bo表示输出门偏置.得到输出门Ot之后,便可以计算最终输出ht:

ht=Ot*tanh(ct)

(11)

(12)

(13)

(14)

3.3 注意力机制提取关键情感表征

句子中的不同词对整体的情感极性影响不同,通过分析语料发现,句子中的一些情感词往往更能体现用户的情感倾向,而在中英文混合的文本中,这些关键的情感词可能是中文词,也可能是英文词,见表1.为了增强关键情感词在情感分类中的作用,本文采用注意力机制(Bahdanau等[19])学习不同词汇的权重分布.

表1 情感词分布
Table 1 Affective word distribution

评论关键词E6.前天各种玩各种happy,昨天五星级晚宴感觉很high!Happy、highE7. 一点都不开心,一个个都幸福的回家过年了.微博刷下来全是各种party holiday 啊! 苦逼的还在办公室,伤心!!!不开心、伤心E8.一觉到现在能分得清梦境和现实么?我不能,大多数时候都不能,非常不好,so bad and so sad.不好、bad、sadE9.感冒发烧,喉咙还难受,诶,心累…还有做不完的功课,多么happy 的holiday…难受、诶、心累、happy

对于表1中的E6和E7而言,整体的情感极性只由单语词决定.而E8和E9的整体情感极性由中文关键词和英文关键词同时决定,对于E9,如果只考虑英文词happy,则整体的情感极性完全相反.因此,构建模型时应该同时考虑中文、英文情感词以及上下文信息.

本文注意力结构如图4所示,vector(cn)、vector(en)、vector(bi)分别表示对中文、英文以及双语文本应用注意力机制得到的情感表征向量.

1)双语注意力机制 针对双语文本,模型会为文本中的每一个词学习出一个自适应权重,接着将词的情感表征向量乘以权重后累加求和得到双语文本情感表征向量vector(bi),如式(15)-式(17)所示:

(15)

(16)

(17)

图4 多语言注意力机制Fig.4 Multilingual attention mechanism

2)单语注意力机制 类似双语文本,模型会分别针对中文词和英文词学习自适应权重,将词的情感表征向量乘以权重后累加求和得到单语文本情感表征向量vector(mo),如式(18)-式(20)所示:

(18)

(19)

(20)

3.4 分类器

模型的最后一层为分类层,分类层将上一层得到的单语情感表征向量(vector(cn)、vector(en))和双语情感表征向量(vector(bi))拼接后作为分类器输入Finput=[vector(bi),vector(cn),vector(en)]输出类别概率Pc:

Pc=softmax(W(s)Finput+b(s))

(21)

最终类别:

(22)

W(S)为n×c的权重矩阵,n为输入向量Finput的维度,c为类别数,b(s)为分类层的偏置向量,在得到预测类别的概率分布后,本文使用交叉熵损失函数(cross entropy)衡量预测值与真实值之间的差距,利用反向传播更新模型中的参数.

3.5 情感分类流程

模型的情感分类流程如图5所示.

a)输入中英混合文本.

b)预处理:为混合文本分词,分词后为每个词标记语言属性(中文或英文).

图5 情感分类流程Fig.5 Affective classification process

c)将预处理的文本输入预训练模型ELMo得到上下文相关词向量(t1,t2,…,tn).

f)将上一步得到的情感表征拼接后输入分类器中得到情感分类结果.

4 实验和分析

4.1 实验数据

本文预训练模型ELMo使用的训练数据集包括三部分:中文数据集、英文数据集以及中英文混合数据集.中文数据集使用维基百科开放中文语料集以及Github开源中文自然语言处理数据集ChineseNlpCorpus,其中ChineseNlpCorpus包括了来自微博、外卖、电影以及酒店平台的30万条中文评论数据.英文数据集使用维基百科开放英文语料集以及斯坦福大学开放的亚马逊评论集,从亚马逊评论集中抽取出30万条英文评论数据.中英文混合数据集爬取自新浪微博,共计2万条数据.

对于上述数据,本文统一进行预处理(去除特殊字符、停用词、词形还原),中文文本采用Jieba分词器分词.过滤词量小于5以及词量大于300的文本后得到500万条训练数据.

本文使用的试验数据为NLPCC2018多语言情感分类评测任务数据集(中英文).数据分为训练集(6000条数据)、验证集(728条数据)、测试集(1200条数据).包含5个情感极性(happiness、sadness、anger、fear、surprise).数据分布如表2所示,其中,None表示不包含任何情感极性.

表2 情感类别分布
Table 2 Distribution of emotion

TrainDevTestHappiness1842220490Sadness1086120296Anger57084111Fear6488537Surprise6519268None1896221198

4.2 评价指标

本文选用与NLPCC2018多语言情感分类评测任务相同的评价标准,使用精确度(Precision)、召回率(Recall)、F1值(F1-score)以及宏平均F1值(Macro-F1)评估本文方法.精确度和召回率计算方式如式(23)-式(24)所示:

(23)

(24)

其中,TPi、FPi和FNi分别表示第i个类别的真正例(truepositive)、假正例(falsepositive)和假反例(falsenegative)个数.

宏平均F1值计算方式如式(25)-式(27)所示:

(25)

(26)

(27)

Pma表示准确率均值,Rma表示召回率均值.

4.3 实验对比模型

为了验证模型的有效性,本文设计了对比实验,将本文模型分别和不使用注意力机制、不采用预训练方式的情感分类模型以及已有的多语言情感分类模型对比.如下所示:

Baseline:NLPCC2018多语言情感分析评测任务提出的基线模型,模型使用unigram特征,SVM作为分类器.

w2v+BiLSTM:使用word2vec训练词向量,使用双向LSTM模型学习文本情感表征.

w2v+BiLSTM+Attention:使用word2vec训练词向量,使用双向LSTM模型学习文本情感表征,使用注意力机制提取关键情感表征.

DeepIntell:NLPCC2018多语言情感分析评测任务中的最高成绩,作者将多标签分类转化为二分类,采用集成学习的方式利用文本中的情感词汇进行情感分类任务.

MF-CSEL:徐源音等人提出的多特征融合的集成学习情感分析模型,使用CBOW训练词向量,分别针对中英文文本提取情感特征,融合情感特征、词序特征以及TF-IDF权重矩阵后,通过集成学习的方式进行细粒度的情感分析.

ELMo+BiLSTM+Attention:本文提出的模型,使用ELMo预训练语言模型输出词向量,使用双向LSTM模型学习文本情感表征,使用注意力机制提取关键情感表征.

4.4 实验环境及参数设置

本文使用Tensorflow1.13框架搭建模型,词向量长度定义为200,除词向量长度外,ELMo模型超参数均使用默认参数,如表3所示.

表3 ELMo参数
Table 3 Parameters of ELMo

参数名参数值BiLSTM隐层单元个数4096BiLSTM输出维度512Char-CNN卷积核个数2048

限定句子长度为100,超出100的句子只截取前100个词,不足的部分使用补全.BiLSTM模型及注意力机制的隐层单元个数为300,批次大小设置为64.使用Adam优化器,学习率设置为0.001,模型中使用的主要参数和参数值如表4所示.

表4 模型参数
Table 4 Parameters of Model

参数名参数值BiLSTM隐层单元个数300词向量维度200学习率0.001批处理大小64句长100

4.5 实验结果及分析

本实验在服务器上进行,CPU为双核Intel至强处理器,GPU为NVIDIA Tesla P4.实验结果如图6所示.

图6 模型实验结果对比Fig.6 Comparison of model experiment results

从图6中可以看出,仅使用word2vec和BiLSTM网络时,模型在除Fear外所有情感类别上的F1值就已经超越基线模型,加入了注意力机制后,模型在除Anger外的各类别上的F1值均有提升.而在使用了ELMo预训练模型后,模型在除anger、surprise类别外均取得最高分数,宏平均F1值提高至0.581,表明了本文多语言情感分析模型的有效性.

模型在不同情感类别上的准确率(Precision)、召回率(Recall)以及F1值如表5所示.可以看出,模型在Anger、Fear以及Surprise情感类别上的准确率远远大于召回率,造成这一问题的主要原因是数据类别的不平衡,通过分析语料发现,训练集中无情绪句子数量最多(1896),其次是Happiness(1842)和Sadness(1086),而其余类别数量较少,数据的不平衡将导致分类器偏向于占比较高的类别,对于Anger、Fear以及Surprise而言,由于本身类别较少,分类器则会倾向于将类别分类为无情绪(none),故式(24)中FNi较大,从而降低召回率.

表5 本文模型实验结果
Table 5 Results of model experiment in this paper

类别PRF1Happiness0.9890.6160.759Sadness0.9460.6830.793Anger0.9440.2720.422Fear0.9530.2490.394Surprise0.9670.2630.413Macro-F10.581

为了观察句子中的注意力分布,本文将单语和双语注意力权重输出,如图7所示.其中,CN、EN、Bi分别表示对中文、英文、中英混合文本使用注意力机制.可以看到,通过多语言注意力机制可以有效提取出中文和英文的关键情感词汇,对于情感词前的否定词汇(不、开心),模型也可以有效识别,这也验证了加入多语言注意力机制有助于模型效果的提升.

5 总结与展望

本文针对中英文混合文本提出了一种在预训练语言模型基础上结合多语言注意力机制的情感分析模型.模型将预训练学习到的语义信息应用在词向量上,根据具体的上下文生成含有不同语义信息的词向量,通过BiLSTM网络学习文本情感表征.不同于传统的单语言文本注意力机制,本文分别针对中文、英文以及中英文混合文本使用注意力机制提取关键情感信息,融合后进行情感分类.实验表明,本文提出的模型在宏平均F1值上超越现有的情感分类模型.

本文在多语言情感分析上的研究任然存在不足之处,可以看到,由于类别数据不平衡,本文模型在Anger、Fear以及Surprise类别上的F1值较低,在后续的研究中将考虑通过样本空间重构的方式调整样本分布,降低数据不平衡问题对模型分类结果的影响.

猜你喜欢

向量注意力英文
向量的分解
让注意力“飞”回来
聚焦“向量与三角”创新题
英文摘要
英文摘要
A Beautiful Way Of Looking At Things
英文摘要
英文摘要
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线