宋曙光,徐迎曉
(復旦大學 計算機科學技術(shù)學院,上海 201203)
特定目標情感分析(Target-Specific Sentiment Analysis,TSSA)是自然語言處理領(lǐng)域的經(jīng)典任務,旨在通過對文本語義的挖掘和分析來判斷其所表達的情感極性.對于該任務,給定一個完整的句子和其包含的目標詞,應推測出該句包含的各個目標詞的情感極性(包括積極情感、消極情感、中性).例如,在句子“The menu is limited but almost all of the dishes are excellent.”中,有兩個目標詞“menu”和“dishes”,特定目標情感分析任務的目的就是要分析出目標詞“menu”的情感極性是消極的,目標詞“dishes”的情感極性是積極的.
特定目標情感分析是一種細粒度的情感分析任務,在國內(nèi)外有諸多成果涌現(xiàn).該任務的研究方法一般分為傳統(tǒng)機器學習方法和深度學習方法.傳統(tǒng)機器學習方法使用大量人工設(shè)計的特征集合來提高模型性能,工作量較大.與傳統(tǒng)機器學習方法相比,深度學習方法能自動提取文本語義特征,在特定目標情感分析領(lǐng)域取得快速發(fā)展.在LSTM[1]的基礎(chǔ)上,研究者們引入了注意力機制來改善長句表達能力欠佳的問題,取得良好效果.雖然注意力機制能捕捉更多的句子情感信息,但當前研究多采用簡單注意力機制,當句子中情感詞為多詞詞組時,簡單的注意力機制不能有效提取詞組整體的語義特征,容易引起歧義造成模型錯判,而引入短語級別語義特征能有效改善這一問題.
基于此,本文提出了融合短語特征的多注意力網(wǎng)絡(Phrase-EnabledMulti-Attention Network,PEMAN),通過引入短語級別的語義表示,實現(xiàn)多粒度特征融合的多注意力網(wǎng)絡來解決上述問題,并使用該模型在SemEval2014[2]的Laptop 和Restaurant 兩個數(shù)據(jù)集上進行實驗.結(jié)果表明,本文提出的PEMAN 模型相比基線模型有一定提高,準確率分別達到74.9%和80.6%.
傳統(tǒng)機器學習方法利用情感詞典、語句分析等獲得句子特征,然后利用分類器進行情感預測.例如,Vo 等[3]提出基于推特語料的情感分析模型,其利用情感詞典、多個詞嵌入向量來提取語料的語義特征,使得模型的準確率有一定提高.Kiritchenko 等[4]利用詞袋模型、情感詞典以及語義解析來構(gòu)建特征,通過訓練支持向量機分類器(Support Vector Machine,SVM)來進行情感分類.以上方法表現(xiàn)不錯,但其效果依賴于復雜的特征抽取和設(shè)計工作,需要耗費大量人力物力.
近年來,越來越多的學者將深度學習方法用在特定目標情感分析任務中.Tang 等[5]提出TD-LSTM、TC-LSTM 兩個模型,通過兩個LSTM 分別對特定目標的上下文進行建模,以獲得更好的文本表示.Wang 等[6]提出基于注意力機制的分類模型,引入注意力機制捕獲編碼后的句子表示中的重要信息.Tang 等[7]提出了一個深度記憶網(wǎng)絡模型,其通過線性方式組合了多個收集目標特征的注意力計算層,以提高注意力網(wǎng)絡的準確性.Ma 等[8]使用兩個注意力網(wǎng)絡計算特定目標和上下文的語義表示并構(gòu)建其交互表示,以此來進行情感分類.Chen 等[9]提出利用循環(huán)注意力結(jié)構(gòu)獲得多層句子特征,并將其通過GRU 非線性組合起來,使模型具有更好的表達能力.Huang 等[10]利用疊加注意力機制對句子和目標詞的特征做交互計算,提高了模型的準確率.
在特定目標情感分析任務的已有研究工作中,當特定目標所對應的情感詞為多詞的時候,可能會因為情感詞語義融合不當而導致錯誤情況.例如,在句子“Great food andthe service was not bad.”中,對于目標詞“service”來說,表達其情感傾向的是“not bad”這個情感詞詞組,所表達的是積極情感.在遇到上述例子時,以往的模型可能會聚焦于“bad”這個單詞而預測出負面情感,造成分類的錯誤.針對以上問題,本文提出PEMAN 模型,通過引入短語級別的語義表示,獲取更豐富的句子語義表示,實現(xiàn)多注意力網(wǎng)絡的特征融合,以解決注意力分散的問題.
本文提出的融合短語特征的多注意力網(wǎng)絡PEMAN模型的整體框架圖如圖1所示,其結(jié)構(gòu)主要由輸入層、編碼層、多注意力層、輸出層等部分組成:
(1)輸入層:對模型輸入部分做處理,進行向量嵌入操作.
(2)編碼層:使用Bi-LSTM[11]對輸入內(nèi)容進行編碼,并嵌入位置信息.
(3)多注意力層:使用兩個注意力交互矩陣對隱層狀態(tài)輸出進行計算,得到最終的語義表示.
(4)輸出層:使用多注意力層輸出的語義表示進行情感分類.
本文模型的輸入共有3 個部分:句子表示、目標詞表示、短語集合表示.給定一個數(shù)據(jù)集中長度為n的句子c=[w1,w2,···,wn]和長度為m的目標詞a=[wi,wi+1,···,wi+m-1],使用GloVe 預訓練詞向量[12]初始化可得到其詞向量表示,其中d為詞向量維度.
構(gòu)建用于提取短語特征的向量集合.具體方法是:設(shè)短語長度為x,那么對于長度為n的句子C,如式(1):
其中,C[i:i+x]代表從C中取第i到i+x-1 個詞向量.pi表示從C中取出x個詞向量經(jīng)過最大池化操作得到的第i個短語表示.P=[p1,p2,···,pn-x+1]∈R(n-x+1)×d,代表從C中取出的長度為x的短語向量集合.其中,短語長度的取值范圍為[1,2,···,n],當x取1 時,短語集合即為句子表示,不能有效挖掘短語語義特征.當x過大時,將混淆句子中單詞的語義表示,模型的表達能力將會變差.短語長度取值的不同將會影響模型的特征抽取能力,經(jīng)實驗驗證,當x取3 時,模型表達能力最強.
圖1 PEMAN 模型結(jié)構(gòu)圖
模型將輸入層得到的句子、目標詞、短語集合的詞向量表示分別送入到3 個Bi-LSTM 中,分別學習整個句子、目標詞、短語集合的隱藏語義信息.
其中,式(2)表示Bi-LSTM 正向的隱藏狀態(tài)輸出,用于提取句子的正向語義特征.式(3)表示Bi-LSTM 反向的隱藏狀態(tài)輸出,用于提取句子反向的語義特征.二者拼接起來得到句子表示的隱藏狀態(tài)輸出hc=[h1c,h2c,···,hnc]∈Rn×2dh,如式(4)所示.
同理可得目標詞表示的隱藏狀態(tài)輸出ha=[h1a,h2a,···,hma]∈Rm×2dh,以及短語集合表示的隱藏狀態(tài)輸出hp=[h1p,h2p,···,hnp-x+1]∈R(n-x+1)×2dh,如式(5)、式(6)所示.
其中,dh為Bi-LSTM 隱藏狀態(tài)的維度,n為句子長度,m為目標詞長度,n-x+1 為短語集合的向量個數(shù).
句子中離目標詞越近的情感詞更可能表達目標詞的情感極性.因此,模型在得到句子表示之后,還應充分考慮目標詞和上下文單詞的位置信息.
給定長度為n的句子和長度為m的目標詞,對于句中任意一個單詞wt,設(shè)wt和目標詞的相對距離是l(目標詞可能是單詞或多詞,這里統(tǒng)一把目標詞當做一個短語整體),則單詞wt的 位置權(quán)重vt的計算方式如式(7):
得到位置權(quán)重后,可由式(8)計算包含位置信息權(quán)重的句子最終語義表示:
在分別得到句子、目標詞、短語集合的語義表示hc、ha、hp之后,借助以上語義信息,引入多注意力機制進行特征融合,具體做法如下:給定句子表示hc∈Rn×2dh和目標詞表示ha∈Rm×2dh,首先計算交互矩陣Ictx∈Rn×m,計算方式如式(9)所示.其中,交互矩陣中每個元素表示句子中每個詞和目標詞之間的相關(guān)度.
對于交互矩陣Ictx,分別按列、行進行歸一化處理,記為 αctx∈Rn×m、βctx∈Rn×m,矩陣αctx和βctx中每個元素分別表示目標詞中每個詞對于句子中各個詞的權(quán)重和句子中每個詞對于目標詞中各個詞的權(quán)重,如式(10)所示.將 βctx按列取平均,可得目標詞中每個詞所占的權(quán)重,記為,如式(11)所示,由此可得所有目標詞的權(quán)重為
句子中所有詞的注意力權(quán)重分布 γctx由αctx和相乘得到,如式(12)所示:
同理,對短語集合表示hp和 目標詞表示ha做同樣的注意力權(quán)重計算可得短語集合中各短語的注意力權(quán)重分布γprs,方法同上.計算公式如式(13)~式(16)所示:
在輸出層,句子表示rctx由句子多個隱藏狀態(tài)的輸出加權(quán)求和得到,短語集合表示rprs由短語集合多個隱藏狀態(tài)的輸出加權(quán)求和得到,計算公式如下所示:
句子最終的語義表示r由二者拼接得到,當作最終的句子特征送入到Softmax 層中,得到結(jié)果的概率分布,計算公式如下所示:
其中,Wl和bl是Softmax 層的參數(shù),結(jié)果y表示模型預測結(jié)果.
模型通過端到端反向傳播的方式進行訓練,以交叉熵[13]作為損失函數(shù),并加入正則化項[14]減少過擬合,如式(21)所示:
其中,k表示訓練數(shù)據(jù)集中的樣本,C表示分類的類別,本實驗中C=3.λ是L2正則化的參數(shù).在分類器得到的結(jié)果y中,概率最大的yi作為模型預測得到的標簽.同時,為了進一步防止模型過擬合,引入dropout[15].
本文在SemEval2014[1]比賽的Restaurant、Laptop數(shù)據(jù)集上驗證模型的效果.目標詞的情感極性分為3 類:積極情感、消極情感、中性.數(shù)據(jù)集的統(tǒng)計情況如表1所示.
表1 數(shù)據(jù)集總體統(tǒng)計
實驗過程中,文本中的單詞采用300 維的GloVe預訓練詞向量[12]進行初始化,所有不在詞向量詞典中的詞,隨機初始化為服從[-0.25,0.25]均勻分布的300維隨機向量.所有的權(quán)重矩陣被初始化為服從[-0.01,0.01]的均勻分布,所有偏置量全都置為0 向量.
本文模型使用Pytorch 實現(xiàn),模型訓練過程中采用隨機梯度下降法[16]進行參數(shù)更新,實驗中使用的超參數(shù)值如表2所示.
表2 超參數(shù)設(shè)置
基線模型和本文模型的實驗結(jié)果如表3所示.由表3可知,本文提出的PEMAN 模型在特定目標情感分析任務中,相對于諸多基線模型均有不同程度提升.
表3 不同模型的情感分類準確率
實驗結(jié)果表明,本文提出的PEMAN 模型在餐館數(shù)據(jù)集和筆記本數(shù)據(jù)集上的準確率分別達到了80.6%和74.9%,相比基線模型有了明顯提高.PEMAN 模型借助句子、短語和目標詞表示,構(gòu)建兩個注意力網(wǎng)絡,有效融合句子上下文語義信息和短語級別特征,在一定程度上解決了注意力分散等問題,使得模型的表達能力相對基線模型有一定提升.針對情感詞為多詞的情況時,引入短語特征的PEMAN 模型能更準確地挖掘詞組語義,具有更好的理解能力,有效避免歧義.
另外,本文選擇短語長度為2~5 進行對比實驗,來驗證短語長度的取值對PEMAN 模型表達能力的影響.結(jié)果如表4所示.
表4 短語長度的取值對本文模型效果的影響
由表4中結(jié)果可知,當短語長度取3 時,PEMAN模型在兩個數(shù)據(jù)集上準確率分別為80.6%和74.9%,達到了最好的效果.當短語長度取2 時,模型準確率比大部分基線模型高.這證明了引入的短語級別特征使得PEMAN 模型的表達能力更強.然而,當短語長度取4 或5 時,模型的準確率有明顯下降,說明當短語長度過長時,可能導致語義特征過于抽象而降低準確率.
本節(jié)通過樣本分析來驗證PEMAN 模型的改進之處,分析模型準確率提高的原因.在例句“The appetizers are good and you will not be disappointed if you are a Tequila fan.”中,包含與餐館相關(guān)的兩個目標詞:“appetizers”和“Tequila”.表5展示了AOA[10]模型、PEMAN 模型針對這兩個目標詞推理得到的情感傾向.
表5 兩種模型在該實例中的結(jié)果對比
在兩種模型中,針對不同目標詞上下文信息的注意力權(quán)重分布情況如圖2所示.圖中每個格子的顏色表示模型給句中每個詞的權(quán)重分配情況,顏色越深代表權(quán)重越大.
圖2 AOA[10]和PEMAN 模型中句子的注意力權(quán)重分布
例句中針對“Tequila”這個目標詞,表達其情感傾向的是詞組“not be disappointed”,表達了正向的情感傾向.AOA[10]模型對于表示消極傾向的情感詞“disappointed”和表示積極傾向的情感詞“fan”都有較大權(quán)重,然而其對于詞組“not be disappointed”整體沒有給予足夠高的權(quán)重分配,所以AOA 模型對目標詞“Tequila”預測了負面的情感傾向,得到了錯誤的判別結(jié)果.而PEMAN 模型通過引入短語級別特征語義,更準確地捕捉到詞組“not be disappointed”所表達的積極情感傾向,因此能夠正確分類.另外,針對目標詞“appetizers”,PEMAN 模型給對應的情感詞“good”分配了更高的權(quán)重,證明短語級別特征的融合能捕捉到更多的句子語義信息,模型的表達能力更強.
特定目標情感分析是一種細粒度的情感分析任務,旨在分析句子中特定目標的情感極性.本文提出了融合短語特征的多注意力網(wǎng)絡PEMAN 模型.PEMAN 模型通過引入短語級別特征,構(gòu)建多粒度特征融合的多注意力機制,有效提高表達能力.實驗結(jié)果表明,本文提出的PEMAN 模型在特定目標情感分析任務的準確率有一定提升.
盡管本文的工作相比諸多基線模型有了一定進步,但仍存在一些問題有待探索:(1)針對特定目標情感分析任務,目前的研究工作在訓練過程中同時只能對一個目標詞進行計算,未來考慮如何對多個目標詞同時進行計算.(2)針對數(shù)據(jù)中可能出現(xiàn)的成語或口語化表達,嘗試探索如何將先驗的語言學知識補充到神經(jīng)網(wǎng)絡模型中,使模型理解能力得到進一步提升.