国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ELMo和Transformer混合模型的情感分析

2021-04-29 09:30:04趙亞歐張家重李貽斌王玉奎
中文信息學(xué)報(bào) 2021年3期
關(guān)鍵詞:注意力語(yǔ)義向量

趙亞歐,張家重,李貽斌,王玉奎

(1.浪潮集團(tuán) 金融信息技術(shù)有限公司,山東 濟(jì)南 250101;2.濟(jì)南大學(xué) 信息科學(xué)與工程學(xué)院,山東 濟(jì)南 250022;3.山東大學(xué) 控制科學(xué)與工程學(xué)院,山東 濟(jì)南 250061)

0 概述

情感分析是自然語(yǔ)言處理的一個(gè)重要應(yīng)用領(lǐng)域,其目的是利用計(jì)算機(jī)技術(shù)分析文本,獲得文字背后的情感信息。隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,人們的活動(dòng)越來越多地集中在網(wǎng)絡(luò)上,人們通過電商網(wǎng)絡(luò)獲取商品信息,購(gòu)買商品并發(fā)表評(píng)論;利用新浪、網(wǎng)易等主流網(wǎng)站獲取新聞信息,并發(fā)表自己的觀點(diǎn);利用微博、微信等APP與其他人互動(dòng)。如果能對(duì)網(wǎng)絡(luò)上的文本進(jìn)行情感分析,則有助于電商了解用戶需求,實(shí)現(xiàn)對(duì)商品的改進(jìn);有助于新聞媒體了解用戶的喜好,進(jìn)行新聞的個(gè)性化推送;也有助于政府機(jī)構(gòu)對(duì)輿情進(jìn)行監(jiān)控,避免重大輿情事件的發(fā)生。

傳統(tǒng)的情感分析通常是采用人工抽取文本特征的方式,然后通過訓(xùn)練機(jī)器學(xué)習(xí)分類器實(shí)現(xiàn)文本的情感分類。常用的機(jī)器學(xué)習(xí)分類器有支持向量機(jī)(support vector machine,SVM)[1]、樸素貝葉斯(na?ve bayes,NB)[2]、深度森林(deep forest,DF)[3]等。但此類方法需要針對(duì)不同的應(yīng)用領(lǐng)域構(gòu)造不同的特征提取方法,需要相關(guān)領(lǐng)域?qū)<覅⑴c。

近年來,人工神經(jīng)網(wǎng)絡(luò)方法也被用于情感分析。人工神經(jīng)網(wǎng)絡(luò)可以自動(dòng)抽取文本特征,具有人力成本低、領(lǐng)域知識(shí)要求少、應(yīng)用范圍廣的特點(diǎn),漸漸成為該領(lǐng)域的主流。Kim[4]首先將神經(jīng)網(wǎng)絡(luò)方法用于情感分類,該方法將Word2Vec工具在Google News文本語(yǔ)料上訓(xùn)練所獲得的詞向量作為神經(jīng)網(wǎng)絡(luò)輸入;然后利用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)模型對(duì)句子的情感傾向進(jìn)行分類。其后,Attardi等[5]使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行情感分類,并在三分類情感數(shù)據(jù)集上取得了較好的結(jié)果。

由于卷積神經(jīng)網(wǎng)絡(luò)無法有效提取詞語(yǔ)序列之間的順序信息,Socher等[6]提出使用遞歸神經(jīng)網(wǎng)絡(luò)(recurrent neural network, RNN)進(jìn)行情感分析,并取得了不錯(cuò)的效果。此外,長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(long-short term memory, LSTM)也被用來進(jìn)行情感分析[7],相對(duì)于遞歸神經(jīng)網(wǎng)絡(luò),LSTM能更好地提取序列之間的長(zhǎng)程信息,效果更好。

為了解決LSTM門限單元計(jì)算復(fù)雜度高的問題,Cho等[8]提出一種LSTM 的替代方案——門限循環(huán)單元(gated recurrent unit,GRU)。與LSTM 模型相比,GRU模型結(jié)構(gòu)更加簡(jiǎn)單,可以大大提高模型的訓(xùn)練和推理速度。

注意力機(jī)制是最近NLP領(lǐng)域引入的一個(gè)重要概念,其核心是對(duì)觀察到的數(shù)據(jù)分配權(quán)重,通過權(quán)重分配達(dá)到提取文本核心語(yǔ)義信息的目的。2016年,Bahdanau等[9]首先將注意力機(jī)制用在機(jī)器翻譯領(lǐng)域。其后,Luong 等[10]、Yin等[11]、Wang等[12]將注意力機(jī)制和神經(jīng)網(wǎng)絡(luò)結(jié)合,進(jìn)行情感分析。2017年,Vaswani 等[13]提出了多頭自注意力(multi-heads self-attention), 該機(jī)制能夠通過對(duì)句子本身分配權(quán)重、計(jì)算加權(quán)和,從而從中抽取有效的語(yǔ)義信息。多頭自注意力基于Tansformer模型,最初用于機(jī)器翻譯,Radford在此基礎(chǔ)上提出了GPT模型[14],該模型僅保留了Transformer的decoder部分,剔除了decoder部分的第二個(gè)多頭注意力結(jié)構(gòu)。這樣結(jié)構(gòu)更加簡(jiǎn)單,與傳統(tǒng)的RNN模型相比,運(yùn)行速度更快、精度更高。

GPT模型僅是一個(gè)前向語(yǔ)言模型,無法利用token對(duì)應(yīng)的下文信息。為了解決這個(gè)問題,Devlin等[15]提出了BERT模型,該模型采用類似完形填空的方式,隨機(jī)選擇句子中的token進(jìn)行mask,并同時(shí)利用mask的上下文信息預(yù)測(cè)該token。該模型雖然是一個(gè)雙向模型,但在訓(xùn)練中引入了無關(guān)的mask標(biāo)記,影響后續(xù)推導(dǎo)。其后,Yang等[16]提出了XLNet模型,該模型采用隨機(jī)排列token的方式,并引入了雙流注意力機(jī)制,不但能有效地利用句子的上下文信息,也避免了mask標(biāo)記的引入。

使用神經(jīng)網(wǎng)絡(luò)進(jìn)行情感分析,除需要選擇一個(gè)合適的神經(jīng)網(wǎng)絡(luò)分類模型之外,獲得合適的詞向量表示也十分重要。詞語(yǔ)的表征最早使用one-hot、bag-of-words等離散表示,后來基于神經(jīng)網(wǎng)絡(luò)的詞嵌入(word embedding)方法被引入用來生成詞語(yǔ)的緊致連續(xù)表示,這其中的代表有Word2Vec[17]和GloVe[18]等方法。由于此類方法不需要任何先驗(yàn)知識(shí),只要提供文本語(yǔ)料就能訓(xùn)練出有效的語(yǔ)義表示,因此漸漸成為主流。但此類方法缺點(diǎn)也很明顯,主要是僅能獲得詞語(yǔ)的單個(gè)語(yǔ)義表示,對(duì)于多義詞,所獲得的詞向量是多個(gè)語(yǔ)義的合成,這在很大程度上影響了詞語(yǔ)語(yǔ)義表示的準(zhǔn)確性,給后續(xù)任務(wù)的使用帶來不便。

為了解決這個(gè)問題,本文提出了基于ELMo(embeddings from language models)和Transformer的混合模型,用于短文本情感分析。ELMo是一個(gè)基于雙向LSTM網(wǎng)絡(luò)的語(yǔ)言模型,通過學(xué)習(xí)預(yù)訓(xùn)練語(yǔ)料,能夠得到詞語(yǔ)的深度上下文嵌入向量。該向量不僅包含詞語(yǔ)本身的語(yǔ)義信息,還包含其對(duì)應(yīng)上下文的語(yǔ)境信息,與傳統(tǒng)詞嵌入方法相比,優(yōu)勢(shì)十分明顯。

在情感分類模型方面,本文使用改進(jìn)的Transformer模型,Transformer模型是經(jīng)典的Seq2Seq模型,使用多頭自注意力機(jī)制(multi-heads self-attetion),并在機(jī)器翻譯任務(wù)中取得了很好的效果。本文對(duì)該模型進(jìn)行了改進(jìn),更改了Transformer的解碼器,使其更加適合情感分類問題。實(shí)驗(yàn)在NLPCC2014 Task2和譚松波等人的酒店評(píng)論數(shù)據(jù)集上進(jìn)行,結(jié)果表明,本文提出融合ELMo和改進(jìn)Transformer的情感分析模型,其效果均高于主流方法。

1 ELMo模型

ELMo模型于2018年由華盛頓大學(xué)的Peters等[19]提出,目的是建立一個(gè)上下文相關(guān)的詞語(yǔ)向量,為多義詞提供更好的表示,克服傳統(tǒng)詞嵌入模型只能表達(dá)詞語(yǔ)單一語(yǔ)義的問題。該模型的思路是利用雙向LSTM網(wǎng)絡(luò),通過在預(yù)訓(xùn)練語(yǔ)料上訓(xùn)練語(yǔ)言模型,得到詞語(yǔ)上下文相關(guān)的語(yǔ)義向量。

1.1 利用LSTM網(wǎng)絡(luò)構(gòu)建語(yǔ)言模型

語(yǔ)言模型是計(jì)算給定句子出現(xiàn)概率的模型。假設(shè)含有N個(gè)詞語(yǔ)的句子S={t1,t2,…,tN},如果句子中第k個(gè)詞語(yǔ)tk出現(xiàn)的概率僅與其前面出現(xiàn)的k-1個(gè)詞有關(guān),則該語(yǔ)言模型為前向語(yǔ)言模型。同理,如果假設(shè)句子中第k個(gè)詞語(yǔ)tk出現(xiàn)的概率僅與其后面N-k個(gè)詞語(yǔ)有關(guān),則該語(yǔ)言模型為后向語(yǔ)言模型。

ELMo模型利用LSTM網(wǎng)絡(luò)構(gòu)建前向語(yǔ)言模型。假設(shè)t1,t2,…,tk對(duì)應(yīng)的詞向量分別為x1,x2,…,xk(該詞向量可使用Word2Vec等工具計(jì)算獲得),將其依次輸入一個(gè)含有L層的LSTM網(wǎng)絡(luò),得到對(duì)應(yīng)層的隱狀態(tài)hl,1,hl,2,…,hl,k,其中l(wèi)為L(zhǎng)STM的層數(shù)l={1,2,…,L}。取最后一層隱狀態(tài)hL,1,hL,2,…,hL,k,輸入softmax層轉(zhuǎn)化為概率輸出yL,1,yL,2,…,yL,k,則該輸出為前向語(yǔ)言模型對(duì)應(yīng)詞語(yǔ)的概率分布P(t1),P(t2|t1),…,P(tk|t1,t2,…,tk-1)。

同理,ELMo利用另外一個(gè)LSTM網(wǎng)絡(luò)構(gòu)建后向語(yǔ)言模型,該LSTM的方向和前向LSTM的方向相反。將t1,t2,…,tk對(duì)應(yīng)的詞向量x1,x2,…,xk輸入,同樣得到對(duì)應(yīng)層的隱狀態(tài)h′l,1,h′l,2,…,h′l,k,將最終層對(duì)應(yīng)的隱狀態(tài)經(jīng)過softmax映射轉(zhuǎn)換為概率輸出y′L,1,y′L,2,…,y′L,N,此概率為后向語(yǔ)言模型對(duì)應(yīng)詞語(yǔ)的概率分布P(t1|t2,…,tN),P(t2|t3,…,tN),…,P(tk|tk+1,…,tN)。

最后,為了構(gòu)建雙向語(yǔ)言模型,連接兩個(gè)方向LSTM最終層的隱狀態(tài),得到HL,1,HL,2,…,HL,N,其中HL,k={hL,k,h′L,k},k表示第k個(gè)位置詞語(yǔ)輸入對(duì)應(yīng)的隱狀態(tài)。HL,k經(jīng)過softmax激勵(lì)函數(shù)得到Y(jié)k,即為雙向語(yǔ)言模型第k個(gè)詞語(yǔ)對(duì)應(yīng)的概率分布P(tk|t1,t2,…,tk-1,tk+1,…,tN)。模型如圖1所示。

圖1 ELMo模型

1.2 ELMo詞向量

ELMo詞向量通過對(duì)雙向LSTM每一層的隱狀態(tài)向量加權(quán)求和獲得。假設(shè)前向LSTM和后向LSTM隱層連接后的向量為Hl,k,輸入詞向量為xk,則ELMo詞向量表示為:

(1)

其中γ為縮放因子,sj為針對(duì)隱狀態(tài)的歸一化系數(shù),表示每一層隱狀態(tài)的占比。這兩組參數(shù)通過后續(xù)任務(wù)優(yōu)化獲得。如果不對(duì)后續(xù)任務(wù)進(jìn)行二次優(yōu)化,也可以直接使用LSTM最后一層隱狀態(tài)作為ELMo詞向量,即

ELMok=HL,k

(2)

2 基于Transformer的情感分類模型

2.1 自注意力機(jī)制

注意力機(jī)制(attention mechanism)來源于人類視覺處理過程,最初應(yīng)用在機(jī)器翻譯任務(wù)中。其核心思想是,通過計(jì)算譯文句中單詞與原文句中單詞之間的相互關(guān)系,得到譯文單詞相對(duì)于原文單詞的權(quán)重分布,然后通過加權(quán)處理,得到譯文單詞的最佳語(yǔ)義表示。自注意力是注意力機(jī)制的一種特殊形式,也叫內(nèi)部注意力,特指注意力的計(jì)算僅對(duì)于同一句子進(jìn)行。

自注意力機(jī)制通過三個(gè)矩陣實(shí)現(xiàn),分別是查詢(Query)矩陣Q、鍵(Key)矩陣K和值(Value)矩陣V。Q和K用于計(jì)算輸入詞語(yǔ)與句子中其他詞語(yǔ)之間的相似性,并根據(jù)相似性計(jì)算注意力的分配比例,值矩陣V表示句中詞語(yǔ)對(duì)應(yīng)的注意力值。Q、K、V可以采用多組,每一組被稱為一個(gè)頭(head),此時(shí)被稱為多頭自注意力。

實(shí)際計(jì)算中,三個(gè)矩陣均為句子矩陣X,X∈N×d的線性變換,其中N為句子長(zhǎng)度,d表示詞向量的維度,其計(jì)算如式(3)所示。

(3)

每一組Qi,Ki,Vi矩陣計(jì)算一個(gè)頭的注意力數(shù)值headi,將多個(gè)headi連接,得到最終的多頭注意力向量Z,計(jì)算如式(4)所示。

(4)

2.2 Transformer模型

Transformer由Google的Vaswani等人于2017年提出,最早用于自然語(yǔ)言翻譯。該模型為典型的Encoder-Decoder結(jié)構(gòu),Encoder和Decoder均可疊加多層。Encoder模塊包含一個(gè)自注意力層和一個(gè)前饋神經(jīng)網(wǎng)絡(luò)層。自注意力層采用多頭自注意力機(jī)制,前饋神經(jīng)網(wǎng)絡(luò)是一個(gè)標(biāo)準(zhǔn)的兩層神經(jīng)網(wǎng)絡(luò),第一層使用Relu激活函數(shù),第二層無激活。此外,注意力層和前饋神經(jīng)網(wǎng)絡(luò)都采用殘差連接,并進(jìn)行批標(biāo)準(zhǔn)化(batch normalization),進(jìn)一步增強(qiáng)網(wǎng)絡(luò)的泛化能力。

Decoder模塊包含兩個(gè)自注意力層和一個(gè)前饋神經(jīng)網(wǎng)絡(luò),實(shí)現(xiàn)譯文句子的解碼。該模塊的第一個(gè)注意力層為帶屏蔽的多頭自注意力層(masked multi-head attention),目的是在推導(dǎo)過程中屏蔽未來輸入。該模塊的第二個(gè)注意力層和前饋神經(jīng)網(wǎng)絡(luò)與Encoder模塊中的結(jié)構(gòu)幾乎完全一樣,唯一的區(qū)別是,Decoder的輸入除了包含前一層的輸出之外,還增加了Encoder的輸出。多個(gè)Decoder模塊可以疊加,最后一個(gè)Decoder的輸出經(jīng)過一個(gè)線性變換,并利用softmax函數(shù),得到輸出詞語(yǔ)的預(yù)測(cè)概率。

Transformer本質(zhì)上是一個(gè)自編碼器,不能利用詞語(yǔ)之間的順序信息,所以引入位置嵌入向量(position embedding,PE)來表示詞語(yǔ)的位置。PE的計(jì)算如式(5)所示。

(5)

其中d表示PE的維數(shù),pos表示詞語(yǔ)在句中的位置。2i表示PE的偶數(shù)維度,2i+1表示奇數(shù)維度。Transformer實(shí)際使用的輸入是詞語(yǔ)詞向量和PE之和。

Transformer模型拋棄了傳統(tǒng)的RNN網(wǎng)絡(luò)結(jié)構(gòu),全部使用自注意力機(jī)制實(shí)現(xiàn)。該模型不像RNN模型那樣每次只能提取一個(gè)方向的特征,可直接提取句子的雙向語(yǔ)義特征。此外,該模型還避免了RNN的梯度衰減和長(zhǎng)程信息丟失問題,且更易于并行實(shí)現(xiàn)。

2.3 改進(jìn)的Transformer的分類模型

雖然Transformer模型有諸多好處,但該模型是經(jīng)典的Seq2Seq模型,輸入、輸出都是詞語(yǔ)序列,無法直接用于情感分類任務(wù)。為了解決這個(gè)問題,本文對(duì)Transformer模型進(jìn)行了修改,主要有以下幾點(diǎn):

(1)Transformer的Encoder模塊的作用是將整個(gè)句子的語(yǔ)義融合到每個(gè)詞語(yǔ)中,這樣做既可以豐富詞語(yǔ)的語(yǔ)義,也有利于多義詞的語(yǔ)義消歧。但由于多頭注意力運(yùn)算是針對(duì)單個(gè)詞向量進(jìn)行的,因此編碼結(jié)果仍然是單個(gè)詞向量。然而,情感分析需要的是句子的整體語(yǔ)義表示,需要將編碼后的詞向量進(jìn)行融合。為解決這個(gè)問題,本文在最后一個(gè)Encoder模塊中增加了一個(gè)concat單元,將所有的詞語(yǔ)向量進(jìn)行連接,構(gòu)成整個(gè)句子向量。假設(shè)句子的編碼器的輸出為e1,e2,…,eN, 每個(gè)向量的維度為d,則連接之后的句子向量為E={e1,e2,…,eN},E∈RN×d。

(2)對(duì)于Transformer的Decoder模塊,其主要目的是根據(jù)每個(gè)詞語(yǔ)的Encoder信息,結(jié)合譯文上文信息,對(duì)譯文進(jìn)行解碼,這部分對(duì)分類任務(wù)而言是不必要的。本文去除了原結(jié)構(gòu)的兩個(gè)自注意力層,僅保留殘差連接和前饋網(wǎng)絡(luò)。其考慮是,concat模塊的作用只是單純地連接多個(gè)Encoder輸出的詞向量,并不能很好地對(duì)其語(yǔ)義特征進(jìn)行融合,因此,保留一個(gè)前饋網(wǎng)絡(luò),將連接后的向量進(jìn)行二次映射,以保證更好的融合效果。相對(duì)于原結(jié)構(gòu),前饋神經(jīng)網(wǎng)絡(luò)不再針對(duì)單個(gè)詞語(yǔ)進(jìn)行,而是針對(duì)整個(gè)句子向量E進(jìn)行;保留殘差連接目的是考慮到Decoder模塊可以疊加多層,殘差連接能保證初始信息向更深層模塊傳遞。

Decoder模塊的輸入有兩個(gè),一個(gè)是Encoder編碼后的句子向量E,另一個(gè)是前一層Decoder的輸出E′。對(duì)于第一層的Decoder結(jié)構(gòu),其前一層Decoder輸出E′為原始句子詞向量連接后的向量X={x1,x2,…,xN},X∈RN×d。

(3)最終層Decoder的輸出為Z,Z∈RN×d。為了進(jìn)一步抽取主要特征,添加一個(gè)max池化層,獲取融合后詞向量在所有維度上的最大值,其輸出為Z′,Z′∈Rd,計(jì)算公式如式(6)所示。

(6)

其中,Z′d表示輸出詞向量第d維分量值,Zi,d表示Z矩陣i行d列的分量值,max表示取Z矩陣每一行的最大值。

最后,池化后輸出Z′接一個(gè)線性映射單元,并利用softmax函數(shù)計(jì)算各類情感傾向的概率,計(jì)算公式如式(7)所示。

Y=softmax(Z′W+b)

(7)

其中,W,W∈Rd×2為神經(jīng)網(wǎng)絡(luò)權(quán)值矩陣,b,b∈R2為網(wǎng)絡(luò)偏置項(xiàng)。Y表示二分類輸出,表示輸入文本屬于正面、負(fù)面情感的概率。改進(jìn)后的模型結(jié)構(gòu)如圖2所示。

圖2 改進(jìn)的Transformer分類模型

模型優(yōu)化采用交叉熵?fù)p失函數(shù),如式(8)所示。

(8)

其中,S表示訓(xùn)練樣本總數(shù),k表示類別,Ypi,k表示第i個(gè)樣本對(duì)應(yīng)第k個(gè)類別的期望輸出概率,Yi,k表示第i個(gè)樣本對(duì)應(yīng)第k個(gè)類別的模型實(shí)際輸出概率。

2.4 基于ELMo和Transformer的混合模型

基于上述模型,本文提出了基于ELMo和Transformer的混合模型用于情感分析,該模型可分為6個(gè)主要模塊,結(jié)構(gòu)圖如圖3所示。

圖3 基于ELMo和Transformer的混合模型結(jié)構(gòu)圖

(1)句子分詞模塊。利用中文切詞工具,如結(jié)巴分詞、StanfordNLP分詞工具對(duì)中文句子進(jìn)行分詞,將其切分為獨(dú)立的token。

(2)詞向量計(jì)算模塊。利用Word2Vec工具,在預(yù)訓(xùn)練語(yǔ)料中訓(xùn)練,獲得詞嵌入向量。然后將上一步獲得的token轉(zhuǎn)換為對(duì)應(yīng)詞向量。

(3)ELMo詞向量計(jì)算模塊。將Word2Vec獲得的詞向量輸入ELMo模型,并在預(yù)訓(xùn)練語(yǔ)料中訓(xùn)練該模型,取雙向LSTM最后一層的隱狀態(tài)向量并進(jìn)行連接,生成ELMo詞向量。

(4)Encoder計(jì)算模塊。ELMo詞向量輸入Transformer的Encoder模塊,獲得對(duì)應(yīng)的編碼向量。Encoder模塊可以疊加多個(gè),進(jìn)行多次編碼。

(5)Decoder計(jì)算模塊。連接編碼向量并輸入Decoder模型進(jìn)行解碼,經(jīng)過多次特征映射,獲得整個(gè)句子的語(yǔ)義向量表示。Decoder模塊同樣可以疊加多個(gè),進(jìn)行多次映射。

(6)分類輸出模塊。將Decoder生成的語(yǔ)義向量輸入線性模塊,然后經(jīng)過softmax激勵(lì)函數(shù),得到最終的分類結(jié)果。

相對(duì)于傳統(tǒng)的情感分析模型,該模型有如下優(yōu)點(diǎn):

(1)輸入分類器的詞向量不再是原始的詞嵌入向量,而是ELMo向量。ELMo向量既包含詞語(yǔ)本身語(yǔ)義,也包含詞語(yǔ)對(duì)應(yīng)的上下文語(yǔ)義,包含的信息更加豐富。

(2)情感分析模型大多基于自回歸結(jié)構(gòu)或自編碼結(jié)構(gòu),本文模型采用這兩種結(jié)構(gòu)的組合,即ELMo的自回歸結(jié)構(gòu)(BiLSTM)和Transformer的編碼器結(jié)構(gòu)(multi-heads attention),兩種結(jié)構(gòu)的組合能更好地提取特征。

(3)本文提出的改進(jìn)Transformer結(jié)構(gòu)利用句中所有詞語(yǔ)融合后的向量作為最后的句子向量(Concat+Feed Forward+Max Pooling),與BERT僅采用[CLS]標(biāo)記相比,能更好地表示整個(gè)句子。

3 實(shí)驗(yàn)

3.1 數(shù)據(jù)集

實(shí)驗(yàn)在兩個(gè)數(shù)據(jù)集上進(jìn)行,一個(gè)是自然語(yǔ)言處理和中文計(jì)算國(guó)際會(huì)議公布的深度學(xué)習(xí)情感分類數(shù)據(jù)集(NLPCC2014 Task2)[20]。該數(shù)據(jù)集分為訓(xùn)練集和測(cè)試集,其中,訓(xùn)練集包含10 000條產(chǎn)品評(píng)論信息,正面和負(fù)面評(píng)論各5 000條;測(cè)試集包含2 500條產(chǎn)品評(píng)論信息,正面和負(fù)面評(píng)論各1 250條。為了評(píng)估模型參數(shù),取訓(xùn)練集的80%作為實(shí)際的訓(xùn)練集,剩余20%作為開發(fā)集。

另一個(gè)是譚松波等[21]收集的酒店評(píng)論數(shù)據(jù)集,該數(shù)據(jù)集包含10 000條評(píng)論信息,其中正面評(píng)論7 000條,負(fù)面評(píng)論3 000條。根據(jù)不同規(guī)模,該數(shù)據(jù)集被劃分為四個(gè)不同的數(shù)據(jù)集,分別是htl-2 000,htl-4 000,htl-6 000,htl-10 000。其中,前三個(gè)數(shù)據(jù)集為平衡數(shù)據(jù)集,正面評(píng)論和負(fù)面評(píng)論數(shù)據(jù)各半,最后一個(gè)數(shù)據(jù)集為非平衡數(shù)據(jù)集。實(shí)驗(yàn)中,為了方便和前人的結(jié)果進(jìn)行比較,采用10折交叉驗(yàn)證,每次取90%樣本作為訓(xùn)練集,剩余10%的樣本作為測(cè)試集。模型參數(shù)與NLPCC2014數(shù)據(jù)集的最優(yōu)參數(shù)保持一致,因此不再劃分開發(fā)集。

3.2 實(shí)驗(yàn)參數(shù)設(shè)置

本實(shí)驗(yàn)?zāi)P筒捎肊LMo和Transformer的混合模型,其中,ELMo模型輸入詞向量維度為256,雙向LSTM的層數(shù)為2,展開深度為30,輸出ELMo詞向量的維度為512。ELMo模型采用預(yù)訓(xùn)練方式,預(yù)訓(xùn)練在百科類問答語(yǔ)料上進(jìn)行,該語(yǔ)料包含150萬個(gè)預(yù)先過濾的問題和答案。(1)語(yǔ)料下載地址: https://github.com/brightmart/nlp_chinese_corpus

Transformer的Encoder采用多頭注意力機(jī)制,多頭數(shù)目定為8,多頭注意力輸出向量的維度為512,神經(jīng)網(wǎng)絡(luò)的激勵(lì)函數(shù)采用gelu(Gaussian Error Linear Units)[22],其形式為:

(9)

Decoder模塊采用本文2.3節(jié)描述的改進(jìn)模型。

實(shí)驗(yàn)評(píng)測(cè)采用正確率指標(biāo)(Accuracy,A),其計(jì)算如式(10)所示。

(10)

其中,TP、TN、FP、FN分別對(duì)應(yīng)陽(yáng)性、陰性、假陽(yáng)性和假陰性樣本的數(shù)目。

實(shí)驗(yàn)中,將整個(gè)微博評(píng)論短文本視為一個(gè)長(zhǎng)句子,預(yù)處理去除停用詞、標(biāo)點(diǎn)并進(jìn)行分詞,然后輸入ELMo模型獲得該句子對(duì)應(yīng)的ELMo詞向量集合。輸入Transformer時(shí),要設(shè)定最大句子長(zhǎng)度(ELMo詞向量集合所包含最大詞向量個(gè)數(shù)),對(duì)長(zhǎng)度大于該數(shù)值的句子進(jìn)行截?cái)?,?duì)長(zhǎng)度小于該數(shù)值的句子進(jìn)行填充。(填充標(biāo)記對(duì)應(yīng)的ELMo向量)。

為了獲取最優(yōu)實(shí)驗(yàn)參數(shù),句子最大長(zhǎng)度采用64、128和256,Encoder和Decoder層數(shù)采用1~8層,在NLPCC2014 Task2數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),開發(fā)集上的結(jié)果如圖4所示。

圖4 采用不同Encoder/Decoder層數(shù)和不同句子最大長(zhǎng)度在開發(fā)集上的實(shí)驗(yàn)結(jié)果

從圖4中可以看出,當(dāng)句子最大長(zhǎng)度為64時(shí),平均正確率最低,為80.96%,句子最大長(zhǎng)度為128和256時(shí),正確率相當(dāng),但句子最大長(zhǎng)度為128時(shí),正確率略高且更穩(wěn)定??紤]到模型的計(jì)算復(fù)雜度,選擇最佳句子長(zhǎng)度為128。對(duì)于層數(shù),從圖中可以看出,當(dāng)Transformer層數(shù)為6時(shí),效果最好,達(dá)到了83.97%,實(shí)驗(yàn)結(jié)果和原始的 Transformer構(gòu)造的機(jī)器翻譯模型設(shè)置的最優(yōu)層數(shù)相同。

3.3 本文模型與其他模型的對(duì)比

為了證明本文模型的有效性,實(shí)驗(yàn)分別在NLPCC2014 Task2和譚松波的酒店評(píng)論數(shù)據(jù)集上進(jìn)行,對(duì)比實(shí)驗(yàn)中采用如下模型:

(1)經(jīng)典的LSTM模型。使用Word2Vec提取詞語(yǔ)向量,然后利用LSTM模型進(jìn)行情感分類。

(2)GRU模型。GRU模型是LSTM模型的一種變體,結(jié)合了遺忘門和輸入門,合成為一個(gè)更新門限,相對(duì)于LSTM單元更加簡(jiǎn)單,更利于訓(xùn)練。

(3)CNN模型。輸入使用Word2Vec提取詞語(yǔ)向量,然后利用卷積、池化操作進(jìn)一步抽取整個(gè)句子的語(yǔ)義特征,最后通過softmax激勵(lì)進(jìn)行情感分類。

(4)LSTM+CNN2+CNN3混合模型[20]。由于CNN不考慮句子中詞語(yǔ)之間的順序關(guān)系,因此考慮在此基礎(chǔ)上融合LSTM模型,進(jìn)一步豐富所提取的特征,其中CNN2、CNN3分別表示采用卷積核大小為2、3的卷積神經(jīng)網(wǎng)絡(luò)。

(5)SVM模型,經(jīng)典的機(jī)器學(xué)習(xí)模型,其核心思想是找到高維空間中的最優(yōu)決策面。

(6)NB模型,樸素貝葉斯模型。

(7)BCWCNN模型[23],雙線性字詞卷積神經(jīng)網(wǎng)絡(luò)。為了克服詞向量表征語(yǔ)義不充分的問題,選取詞向量和字向量作為特征輸入卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,然后使用融合后的特征進(jìn)行分類。

(8)WCTAT-Bi-LSTM模型[24],基于Bi-LSTM 的字、詞和詞性注意力模型。該模型輸入采用詞向量和字向量的融合向量,分類模型使用含有注意力機(jī)制的雙向LSTM模型。

(9)BFDF模型[25],基于強(qiáng)化表征學(xué)習(xí)的深度森林模型。

(10)Google的BERT-base模型,中文模型采用科大訊飛提供的BERT-base預(yù)訓(xùn)練模型[26],輸入采用字向量。

(11)Word2Vec+Transformer模型。輸入采用Word2Vec提取的詞向量,分類模型采用本文2.3節(jié)介紹的Transformer模型。

(12)ELMo+Transformer。輸入向量采用ELMo詞向量,分類模型采用本文2.3節(jié)介紹的Transformer模型。

上述神經(jīng)網(wǎng)絡(luò)模型中,模型(10)、(11)、(12)的Transformer采用gelu激勵(lì)函數(shù),其余模型均采用relu激勵(lì),模型(11)中的ELMo也采用relu激勵(lì)。

3.4 結(jié)果分析

在NLPCC2014 Task2數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果如表1所示。從表中可以看出,本文提出的基于ELMo和Transfomer的混合模型取得了最好的效果,正確率達(dá)到了79.68%,與LSTM模型相比,正確率提升13.04%;與CNN模型相比,正確率提升6.32%;與LSTM+CNN2+CNN3的融合模型相比,正確率提升3.52%;與BERT-base模型相比,正確率也略有提升。后三個(gè)模型均采用Transformer作為分類器,其正確率好于其余非Transformer模型,這說明多頭注意力機(jī)制在抽取文本整體語(yǔ)義特征方面,較傳統(tǒng)的CNN或RNN模型更具優(yōu)勢(shì)。

表1 不同方法在NLPCC2014 Task2數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果

本文方法使用ELMo詞向量作為Transformer的模型輸入,與使用Word2Vec詞向量相比,分類性能提升了3.24%,這說明ELMo中的雙向LSTM網(wǎng)絡(luò)在提取詞向量特征方面作用明顯。此外,ELMo是預(yù)訓(xùn)練模型,訓(xùn)練采用了超大規(guī)模語(yǔ)料,相對(duì)于僅使用任務(wù)數(shù)據(jù)進(jìn)行訓(xùn)練雙向LSTM模型,其抽取的特征涵蓋的范圍更廣,更具一般性。

在酒店評(píng)論數(shù)據(jù)集上,實(shí)驗(yàn)分別對(duì)htl-2 000,htl-4 000,htl-6 000和htl-10 000四個(gè)數(shù)據(jù)集進(jìn)行了測(cè)試,從表2可以看出,相較于BCWCNN模型,正確率分別提升了1.2%、0.25%、1.48和1.96%,對(duì)于采用融合字詞向量特征的雙向注意力LSTM模型,正確率分別提升了0.7%、2%、1.98%和1.36%。這說明本文方法相對(duì)于傳統(tǒng)方法具有優(yōu)越性,這一方面是由于ELMo向量相對(duì)于傳統(tǒng)的詞向量融合了詞語(yǔ)上下文,能夠更好地表示多義詞,另一方面也是因?yàn)門ransformer的多頭注意力機(jī)制能夠有側(cè)重地對(duì)多個(gè)詞向量進(jìn)行融合,更好地提取整句語(yǔ)義。

表2 不同方法在酒店評(píng)論數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果

與BERT模型相比,除在htl-4 000數(shù)據(jù)集上本文模型正確率略低之外,在另外三個(gè)數(shù)據(jù)集上正確率分別提升0.2%、1.31%和0.46%。這主要是因?yàn)锽ERT模型僅使用輸出的第一個(gè)[CLS]標(biāo)記作為整個(gè)句子的語(yǔ)義向量,而本文提出改進(jìn)的Transformer模型將所有詞語(yǔ)的詞向量進(jìn)行Concat并在Decoder階段進(jìn)行二次映射,最后通過Max Pooling抽取融合后詞向量在每個(gè)維度的最大值,將該值作為整個(gè)句子的語(yǔ)義向量進(jìn)行預(yù)測(cè),該向量所包含的語(yǔ)義更加全面。

此外,本文方法與BERT等方法的預(yù)訓(xùn)練階段不同,BERT直接預(yù)訓(xùn)練分類模型,而本文方法預(yù)訓(xùn)練的是ELMo模型,沒有預(yù)訓(xùn)練基于Transformer的分類模型。這樣,無須引入額外mask標(biāo)記,減少了mask對(duì)后續(xù)推導(dǎo)的影響。

4 結(jié)束語(yǔ)

本文提出了基于ELMo和Transformer的混合模型用于情感分析,該模型拋棄了傳統(tǒng)的詞嵌入方法(如Word2Vec、GloVe),利用ELMo模型抽取詞向量。與傳統(tǒng)方法相比,ELMo模型引入雙向LSTM模型學(xué)習(xí)詞語(yǔ)的上下文,進(jìn)一步豐富了詞向量的語(yǔ)義,能更好地表示多義詞。分類器采用Transformer模型,采用多頭注意力機(jī)制,能夠以不同的方式對(duì)句子中的詞向量進(jìn)行融合,有側(cè)重地抽取句子的整體語(yǔ)義。Transformer相對(duì)于RNN模型,是真正意義上的雙向模型,能夠直接融合詞語(yǔ)的上下文特征,而非簡(jiǎn)單連接兩個(gè)方向提取的特征向量,因此提取的特征更加準(zhǔn)確。實(shí)驗(yàn)在NLPCC2014 Task2情感分類數(shù)據(jù)集和譚松波的酒店評(píng)論數(shù)據(jù)集上進(jìn)行,結(jié)果證明了本文方法的有效性。

近些年來,注意力機(jī)制被證明在提取語(yǔ)義特征方面十分有效。對(duì)于ELMo模型,本文采用雙向LSTM網(wǎng)絡(luò)生成上下文相關(guān)的詞向量,并沒有引入注意力機(jī)制,下一步考慮在模型中引入注意力機(jī)制,進(jìn)一步增強(qiáng)ELMo模型表征詞向量的能力。此外,先在大規(guī)模語(yǔ)料中預(yù)訓(xùn)練模型,然后在新的任務(wù)上精調(diào)參數(shù)已成為當(dāng)前自然語(yǔ)言處理的主流范式,此時(shí),預(yù)訓(xùn)練的語(yǔ)言模型也是后續(xù)任務(wù)的分類模型,其中代表如BERT。因此,構(gòu)造基于ELMo的預(yù)訓(xùn)練和分類綜合模型也是下一步的研究方向。

猜你喜歡
注意力語(yǔ)義向量
向量的分解
讓注意力“飛”回來
聚焦“向量與三角”創(chuàng)新題
語(yǔ)言與語(yǔ)義
“揚(yáng)眼”APP:讓注意力“變現(xiàn)”
A Beautiful Way Of Looking At Things
“上”與“下”語(yǔ)義的不對(duì)稱性及其認(rèn)知闡釋
向量垂直在解析幾何中的應(yīng)用
向量五種“變身” 玩轉(zhuǎn)圓錐曲線
認(rèn)知范疇模糊與語(yǔ)義模糊
古浪县| 城步| 平舆县| 新乡县| 信丰县| 宽甸| 自贡市| 绥棱县| 贵州省| 迁西县| 闵行区| 休宁县| 仁寿县| 奎屯市| 景宁| 柞水县| 白朗县| 南丹县| 桂林市| 临沭县| 通辽市| 玉龙| 勐海县| 武穴市| 吕梁市| 松潘县| 东乌珠穆沁旗| 资兴市| 荥经县| 义乌市| 扶绥县| 昌黎县| 吉安县| 灌阳县| 山丹县| 西藏| 新乐市| 综艺| 大姚县| 钦州市| 新乡县|