基於知識引入的情感分析

哈工大SCIR發表於2020-10-21

1.引文

情感分析知識

當training資料不足以覆蓋inference階段遇到的特徵時,是標註更多的資料還是利用現有外部知識充當監督訊號?

基於機器學習深度學習的情感分析方法,經常會遇到有標註資料不足,在實際應用過程中泛化能力差的局面。為了彌補這一缺點,學者們嘗試引入外部情感知識為模型提供監督訊號,提高模型分析效能。本文從常見的外部情感知識型別出發,簡要介紹在情感分析中使用知識的一些代表性工作。

2.正文

我們為什麼要不斷嘗試在情感分析中融入知識呢?筆者以為有如下幾點原因:

1)一般的文字分類任務只提供句子或文件級別的情感標籤,引入情感詞典等先驗情感知識可以給情感文字引入更細粒度監督訊號,使得模型能學到更適合情感分析任務的特徵表示。

2)底層的詞性、句法等分析任務能給下游的情感分類、抽取任務提供參考資訊,如評價表達通常是形容詞或形容詞短語,而評價物件通常是名詞;不同情感分析任務本身存在相互促進作用,如評價物件和評價詞在句子中出現的距離通常比較近,聯合抽取能同時提高兩者的效能表現。

3)短文字評論通常略去了大量的背景常識知識,從文字本身通常難以推斷真實情感傾向性。例如一條有關大選的推文內容是“I am so grateful for Joe Biden. Vote for #JoeBiden!!”,文字中並未涉及任何有關Trump的描述,要判斷它關於Trump的立場傾向性時,需要了解的背景知識是,二者是這次大選的競爭對手,支援一個人就意味著反對另一個人。

那情感分析常用的知識又有哪些呢?

2.1 知識的型別及情感分析常用知識庫

依據對知識獲取途徑的劃分方式[1],我們簡單總結了情感分析中常用的知識型別:

  • 顯性知識
    • 一般情感詞典(如MPQA,Bing Liu詞典等),情感表情符;否定詞(Negation)、強化詞(Intensification)、連線詞(Conjunction)等規則
    • SentiWordNet
    • ConceptNet,SenticNet
  • 資料
    • 資料 (Twitter、微博表情符弱標註資料)
    • 領域資料集 (例如某一類別商品評論資料)
  • 學習演算法
    • 詞法、句法、語義依存等模型
    • 多工學習演算法
    • 預訓練語言模型、詞向量學習演算法

其中,以情感詞典最為常用。情感分析資料通常結合語言模型演算法,產生情感向量表示作為下游任務輸入;詞法、句法分析模型一般直接為下游情感分析任務提供特徵輸入或者以多工學習的方式參與到下游情感分析任務的訓練過程中;結構化的外部知識庫通常需要藉助圖演算法進行特徵挖掘,為文字提供更豐富的常識、情感上下文資訊。

2.2 知識的引入方式及在情感分析部分任務上的應用

下表展示了幾種常見的知識型別及其特點,我們將根據知識的獲取途徑及引入方式,結合具體論文闡述其使用方式。

知識型別優點缺點
人工情感詞典質量高規模小,靜態,覆蓋低
自動情感詞典規模大靜態、質量低
語言學規則適用範圍廣不夠準確
預訓練語言模型上下文建模能力強引數量大,訓練時間長,執行速度慢
常識知識庫規模大、質量高、覆蓋全利用困難

目前,相關的情感分析工作可以大致分為以下幾類:

  • 引入情感詞典知識

要說情感知識,大部分人首先會想到的就是人工編纂的情感詞典,它簡明直觀、質量高、極性明確,使用方便,廣泛應用在情感分類、情感元素抽取、情感原因發現、情感文字風格遷移等多種情感分析任務上。情感詞區別於非情感詞的地方在於,它們一般表徵一定的情感/情緒狀態,通常情感詞典中還會給出其強度打分。類似的,現在網路上流行的部分表情符 (emoj,如:) 、:( 、?、?)也能表徵某些情感/情緒狀態。

基於知識引入的情感分析
圖1 人工編纂的情感詞典
我們在這裡介紹一個同時使用情感詞典中詞的極性和打分的工作,看看前人們是如何在神經網路中把情感詞的情感資訊融入文字的情感表示中的。

給定一段評論文字,Teng等人[2]首先找出其中的情感相關詞彙(如情感詞、轉折詞、否定詞),並計算其對文字整體情感極性的貢獻程度,然後將每個詞的貢獻值乘上其情感得分作為區域性的情感極性值,最終加上全域性的情感極性預測值作為整個文字的情感得分。

基於知識引入的情感分析
圖2 同時使用情感詞典中詞的極性和打分
雖然上述工作在計算情感得分時,考慮了not、very等否定詞、強化詞的得分資訊,但是沒有顯式把這些詞對周圍詞的情感語義表示的影響刻畫出來,Qian等人[3]考慮到情感詞、否定詞、強化詞在情感語義組合過程中起到的不同作用,對文字建模過程中對不同位置詞的情感分佈加以約束。例如,若一個詞的上文是not等否定詞,會帶來not處文字情感語義的翻轉。
基於知識引入的情感分析
圖3 對不同位置詞的情感分佈加以約束
總體來看,情感詞典作為一種易於獲取、極性準確的情感知識,能夠在標註語料之外,為情感分析提供額外的監督訊號,既可以提升有監督模型的泛化能力,也能夠為半監督、無監督模型提供一定的指導。
  • 引入大規模無標註語料

語言建模作為一個典型的自監督學習任務,其語言模型產生的詞表示作為下游任務網路模型的輸入,表現出優越的效能,因而得到廣泛的應用。如果能將情感知識融入到語言模型中,其產生的詞表示必然對情感分析各子任務帶來效能提升。

我們接著介紹一個在詞向量中融入顯式情感詞典知識(實際使用的是表情符)的方法。

Tang等人[4]觀察到,一般的詞向量對於“good”和“bad”這種上下文相近但極性相反的詞,給出的向量表示沒有很強的區分性,不利於下游的各情感分析任務。Twitter和微博中有海量包含表情符的文字,利用這些情感極性明確的表情符可以過濾得到大量弱標註的情感文字。Tang等人使用這些語料,他們在普通的C&W模型基礎上,引入情感得分相關的損失,將這些弱標註的情感資訊融入詞向量表示中,使“good”和“bad”這種上下文相近但情感不同的詞的向量表示有明顯的差異。在情感分類任務上,他們驗證了融入情感表情符知識的有效性。在此基礎上,他們還進一步自動構建大規模情感詞典,該詞典被[2]應用到Twitter情感分類任務上。

基於知識引入的情感分析
圖4 將基於表情符過濾的弱標註情感資訊融入詞向量表示中

  • 引入外部特徵提取演算法

除了準確的情感詞知識,詞法、句法、語義依存資訊、評價詞和評價表達等情感資訊在文字的情感語義建模過程中也發揮了重要作用,這些知識不是顯性存在於大規模的知識圖譜中,而是存在於對應的人工標註資料中。一般利用學習演算法從這些資料中訓練用於提取特徵的模型。

Tian等人[5]在近期的預訓練BERT語言模型基礎上,將文字中的評價物件(屬性)、情感詞等情感元素引入Mask Language Model預訓練任務,進一步提高了BERT類模型在多個情感分類資料集上的效能。

基於知識引入的情感分析

圖5 將多種情感元素引入Mask Language Model預訓練任務

同[3]類似,Ke等人[6]在預訓練語言模型中引入詞級別的情感、詞性知識。他們先給每個詞預測詞性資訊,然後依據詞性資訊從SentiWordNet中推斷其情感極性。基於獲得的詞性和情感資訊,他們在一般的Masked Language Model基礎上同時預測這些語言學標籤,實現在預訓練語言模型中注入情感知識。該模型在主流的情感分類、細粒度情感分析資料集上取得了目前最好的結果,證明引入詞性和情感極性知識在預訓練任務中的有效性。


基於知識引入的情感分析

圖6 在預訓練語言模型中引入詞級別的情感、詞性知識

Sun等人[7]提出在面向屬性的情感分類(ABSA)任務上,引入Stanford parser解析得到的依存樹資訊輔助識別評價物件相關的評價詞。他們將GCN在依存樹上學習得到的表示與BLSTM學習到的特徵結合,判斷句子針對評價物件的情感極性。


基於知識引入的情感分析
圖7 將GCN在依存樹上學習得到的表示與BLSTM學習到的特徵結合
在外部特徵引入方式上,目前方法以兩種方法為主:(1)直接作為特徵輸入模型 (2)以多工學習的方式,作為輔助任務與主任務一同訓練。這些方法的區別主要在引入特徵類別或者輔助任務的任務設計。
  • 引入常識知識

除了情感詞典、情感詞向量、情感預訓練語言模型、文字特徵抽取器外,結構化的外部知識也是很常見的一種情感知識來源。它的特點是規模大,覆蓋面廣,蘊含豐富的實體、事件或者常識概念間相關關係知識。結構化知識中具備高質量的關係型別,因而適用於需要推理、泛化的情感分析任務。

一個典型的需要泛化的任務是跨領域文字情感分類任務。源端和目標端的評價物件、評價詞等情感相關特徵差異較大,訓練時模型依賴的源端分類特徵未必會在目標端文字中出現,如何將這些情感特徵進行對齊是一個重要且富有挑戰性的問題。一類方法是使用通用情感詞典作為pivot資訊,建立源端、目標端共享特徵的對齊,但這類方法只考慮共享的情感詞資訊,且透過文字本身學習到的情感表達對齊也不充分、準確,同時無法捕獲到不同領域之間評價物件之間連結關係。

而結構化外部知識正好彌補了這些缺點,它蘊含情感詞到非情感詞、不同領域評價物件之間的關聯關係。近年由於圖表示演算法的進步,學者們能夠更高效的對這些結構化外部知識加以利用。

在跨領域情感文件情感分類任務上,Ghosal等人[8]在ACL2020上提出KinGDOM演算法, 利用ConceptNet為所有領域構建一個小規模知識圖譜,然後找出每個文件中獨有的名詞、形容詞、副詞集合,再依據從中抽取出一個文件相關的子圖,進而提供一個由知識庫知識提取而來的特徵表示,與文件本身的情感表示一起做最後的情感分類
基於知識引入的情感分析
圖8 KinGDOM演算法
類似地,在跨目標立場分類任務上,Zhang等人[9]利用SenticNet和EmoLex構建學習帶情緒關係連線的語義-情緒圖譜(SE-graph),並使用圖卷積神經網路(GCN)學習節點表示。給定一段文字,他們使用SE-graph為每個詞學習構建一個子圖並學習其表示,得到的外部特徵表示送入修改後的BLSTM隱層,與當前上下文特徵進行融合。
基於知識引入的情感分析
圖9 基於SE-graph 使用GCN學習節點表示
這兩個工作都使用外部結構知識,擴充套件了輸入特徵空間,利用知識庫中的連線將源端和目標端的評價詞、評價物件等特徵進行對齊,極大地豐富了情感上下文資訊。

3.總結

本文介紹了情感分析中引入外部知識的部分工作,簡要介紹了現階段情感分析常用的外部知識,從最常見的情感詞典入手,逐步介紹基於情感詞典的情感詞向量、預訓練語言模型,展示了使用多工學習融合詞性、依存句法等文字底層特徵抽取器的工作,最後介紹了近期熱門的使用結構化外部知識的文字情感遷移學習工作。我們可以看出,情感詞典雖然最為簡單,卻是情感知識引入多種引入方式的基石,在情感分析演算法中地位無出其右。

對於未來工作,一方面,由於目前的情感分析中知識引入的應用場景仍侷限在情感分類任務中,有待擴充套件到情感抽取、情感(多樣性)生成等各個情感分析任務上;另一方面,在情感分析專用預訓練語言模型中融合結構化外部知識,增強預訓練語言模型對情感分析相關世界知識的理解仍有待探索。

參考資料

[1]

劉挺,車萬翔. 自然語言處理中的知識獲取問題.

[2]

Teng et al. Context-Sensitive Lexicon Features for Neural Sentiment Analysis.

[3]

Qian et al. Linguistically Regularized LSTM for Sentiment Classification.

[4]

Tang et al. Learning Sentiment-Specific Word Embedding for Twitter Sentiment Classification.

[5]

Tian et al. SKEP: Sentiment Knowledge Enhanced Pre-training for Sentiment Analysis.

[6]

Xu et al. SentiLARE: Sentiment-Aware Language Representation Learning with Linguistic Knowledge.

[7]

Sun et al. Aspect-Level Sentiment Analysis Via Convolution over Dependency Tree.

[8]

Ghosal et al. KinGDOM: Knowledge-Guided DOMain Adaptation for Sentiment Analysis.

[9]

Zhang et al. Enhancing Cross-target Stance Detection with Transferable Semantic-Emotion Knowledge.

本期責任編輯:崔一鳴
本期編輯:朱文軒

相關文章