楊 晨,宋曉寧,宋 威
江南大學人工智能與計算機學院,江蘇無錫 214122
隨著經濟社會的發(fā)展,互聯網中的用戶信息呈爆發(fā)式增長。爬蟲、數據庫等技術為收集這些信息提供了極大的便利,而如何使用這些數據則成了一個很重要的研究議題。這其中,最有價值,最讓企業(yè)、機構或個人重視的就是用戶輿論的情感信息,比如微博上對熱點事件的評論,豆瓣上對電影的評價等。對用戶的情感進行分析、分類,對企業(yè)和有關部門的發(fā)展、運營有重大的意義。
計算機技術的發(fā)展為海量數據的處理提供可能,特別是深度學習的出現,使得計算機模型對自然語言的理解能力大大提高。長短期記憶網絡(long shortterm memory,LSTM)[1-2]、卷積神經網絡(convolutional neural networks,CNN)[3-4]在情感類任務上都取得了很好的效果。近年也有研究使用降噪自編碼器[5],通過區(qū)分領域獨有特征和共享特征以及進行二次干擾的方式來進行跨領域的情感分類。
許多研究考慮任務的多元特征或加入外部信息來增強模型的效果。Yu等[6]結合產品信息來訓練詞向量用于分類不同產品的評論情感。Zheng等[7]通過詞的語義規(guī)則來提取關鍵句,實現高效的情感分析。Yu等[8]通過加入輔助任務,刪去文中情感詞來增加模型的泛化能力。
情感分類模型精度的不斷提升一定程度上受益于在大規(guī)模預料上預訓練模型的發(fā)展,作為預訓練語言模型的最初應用形式,預訓練的詞向量[9-10]已經證明在許多任務中都有著明顯的積極效果。近些年來,研究者不滿足于詞向量保留的淺層語義信息,進而追求一個能夠像ImageNet一樣保留深層次特征的可遷移的預訓練模型[11]。Howard等[12]提出了一種適用于文本分類任務的通用可微調模型,該模型在6個數據集上獲得了先進的效果。隨后不久,Radford等[13]提出了預訓練語言模型OpenAI GPT,該模型僅僅需要很微小的改動就可以用于各種下游任務,最終在包含文本蘊含、情感分析、文本相似度在內的9個數據集上達到了最先進的效果。
近期,預訓練語言模型BERT(bidirectional encoder representations from transformers)引發(fā)了最激烈的討論,在自然語言處理領域的多個任務11個數據集上都取得了最先進的效果[14]。目前,大量的研究已經聚集在如何利用其執(zhí)行下游任務上,以進一步提高目標任務上的性能。Liu等[15]將預訓練的BERT模型和多任務學習進行結合,進一步刷新了BERT的效果。Sun等[16]通過對輸入數據進行改造,將單句分類問題改造成BERT更擅長的雙句分類問題進行處理。Sun等[17]著重研究了BERT在多個文本分類任務上的表現,對后續(xù)的研究有很強的借鑒意義。
然而,BERT在預訓練階段,盡管通過多個任務學習了句法、語法等文本結構和單詞語義信息,卻并沒有考慮任何情感信息,這使得其在情感任務上的表現并不如文本推理、閱讀理解等。同時,作為一般的分類問題,BERT在許多情感數據集上已經獲得了最先進的效果,但很明顯的是,該過程還有細化和提升的空間,特別是當樣本量較少時,情感文本帶來的變化和噪聲使得準確率差強人意。
針對以上問題,為BERT定制了一個新的預訓練任務,使得其在大量的、更容易獲取的無監(jiān)督的語料上也能獲取一定的情感信息。首先,在目標領域數據集上使用改進的掩蓋詞預測任務和下一句預測對BERT在目標領域數據上進一步預訓練。然后,利用被掩蓋單詞蘊含的情感極性作為標簽,讓模型根據上下文來預測該標簽,該任務與前兩個任務一同計算損失,訓練參數,以防止“災難性遺忘”問題[18]。實驗證明,相較于原版的BERT模型,這樣的訓練方式使其在具體的情感數據集上可以用更少的樣本獲得更好的效果。
BERT是一種基于Transformer的雙向文本表征,作為最新的預訓練語言模型的一種,最重要的特點是可以使用大規(guī)模無監(jiān)督數據集進行預訓練,然后在特定任務數據集上進行微調。由于預訓練階段引入了大量先驗知識,加上Transformer強大的特征抽取能力,BERT在11個數據集上都取得了最先進的效果。
和傳統(tǒng)的n-gram語言模型不同,BERT使用掩蓋語言模型(masked language model,MLM)作為主要任務訓練模型參數,其任務目標是使用類似于“完形填空”的方式,將一個句子里的多個詞使用特殊的標記遮蓋掉,讓模型去預測被掩蓋的單詞,復原整個輸入。
掩蓋語言模型需要隨機遮蓋輸入文本序列中的單詞,然后模型給出遮擋目標可能的單詞的概率分布。理論上來說,替換后的句子引入了噪聲[MASK],模型通過獲取降噪的上下文特征對被掩蓋的目標單詞進行重新編碼,因此掩蓋語言模型本質上是一種自編碼的語言模型。
然而,掩蓋語言模型對不同類別單詞進行重新編碼效果不盡相同。圖1展示了BERT對某個樣本(“電影太糟了,我從來沒有提前離場過,除了這次”)的不同單詞進行掩蓋并編碼產生的損失。其中顏色越深代表該單詞產生的損失越大,模型對該詞的預測效果也就越差。
Fig.1 Loss of MLM on an example sentence圖1 掩蓋語言模型在某例句上的損失
從圖1中可以看到,一些介詞,例如“a”“the”等,由于有特定的語法規(guī)律和固定的搭配,模型可以對它們預測得非常準確。一些名詞,例如“cinema”,模型注意到了前文特征詞“movie”,因此也能給出一定的判斷。然而,注意到,雖然下文表達了消極情感的語義特征,情感詞“bad”,仍舊產生了很高的損失,通過獲得模型的輸出,發(fā)現模型給出的概率分布中,前三的單詞分別為“great”“wonderful”“bad”。也就是說,模型沒有很好地提取到下文的情感特征,甚至給出了情感極性相反的判斷。從這一點來說,降低掩蓋語言模型對情感詞的預測損失,可以一定程度上增強模型對情感特征的提取能力,從而在具體情感任務上獲得更好的效果。
在BERT中,每個輸入到Transformer[19]的句子都要預先在開頭加入一個特殊的詞例[CLS],一般分類問題是將Transformer在[CLS]對應位置的輸出看成是一個編碼輸入端全句分類特征的向量,然后將該特征向量放入分類器進行分類。
由于BERT是一個預訓練模型,可以直接使用,將目標數據集放在大語料環(huán)境下預訓練得到的BERT上進行微調,將目標輸入編碼為一個固定大小特征向量進行分類。但在這之前,還可以通過進一步預訓練[17]的方式,即在目標任務微調前,使用目標數據集(或目標領域)的數據對模型進一步預訓練,使用掩蓋語言模型和下一句預測任務微調BERT的參數,相當于先將模型從一般領域向目標領域進行遷移,然后再執(zhí)行目標分類任務。圖2展示了BERT在具體領域分類任務上的流程。
Fig.2 BERT classification flow chart圖2 BERT分類流程圖
大量的實驗證明,進一步預訓練由于模型提前適應了目標領域的數據,往往能取得更好的效果。這在本文的實驗部分也有體現。具體來說,通過掩蓋詞的預測任務,模型學習到了更多的目標領域的語義、語法等信息,而這些信息則顯著地增強了模型的分類效果。同樣地,由于本文的目的是判斷目標的情感,因此希望模型在該階段能更好地利用上下文的情感信息去監(jiān)督學習,以增強在具體情感數據集上的分類能力,特別是當用于分類的數據不足時,模型仍然能夠將預先學習到的大量情感信息遷移到小數據集上來。
在BERT中,文本特征的提取主要依賴掩蓋詞預測任務。第2章分析了BERT對不同掩蓋詞編碼的效果,相較于可以被準確預測的介詞、連詞和副詞,情感詞有兩個顯著的特點,這是導致其預測效果不佳的原因。一是情感特征,特別是上下文中不包含情感詞的隱式情感表達難以被模型注意;二是情感詞出現頻率相對較小,導致其在預訓練階段對情感特征提取不充分。針對這兩個問題,在BERT的基礎上進行了兩點改動:
(1)通過加權的方式,提高掩蓋語言模型對情感詞的預測效果。
(2)根據情感詞典,設計了基于目標上下文的單詞情感極性預測任務,向模型中加入外部情感信息。
本文通過WordNet情感詞典獲取情感詞,同時為了使得該標注擁有跨領域的性能,盡可能選取情感極性單一且鮮明的單詞。
直覺上,當下游任務為情感任務時,在預訓練階段給予情感詞更多的關注有利于模型更好地提取全文的情感特征。但在實際應用中,情感詞出現較少,如果將情感詞典中所有情感顯著的情感詞看作正類,非情感詞看作負類,則一般情況下情感詞僅占被掩蓋詞的1%,作為處理不均衡數據的常用手段。為了能在情感詞預測時產生更大的梯度,對模型參數產生更大的影響,挑選了樣本中所有的情感詞,并在計算損失時對其加入了更大的樣本權重。
假設一個不定長序列S中的特殊詞例w[CLS]和w[MASK],其經Transformer提取特征后的對應表征為x[CLS]和x[MASK],R為事先定義的情感詞集合,則對于掩蓋詞預測任務,定義損失函數為:
在預訓練階段,單詞本身所蘊含的情感信息也非常重要,許多研究從詞向量入手[6,20],通過拼接情感向量或者相乘的方式向詞向量中加入情感因素。然而,BERT作為一個預訓練模型并不適用,本文的出發(fā)點是將該信息以有監(jiān)督的方式提供給模型,通過反向傳播修改參數并學習情感信息。因此設計了一個無需手工標注的預訓練任務,其任務具體描述為:在預測一個被掩蓋單詞的語義的同時,根據上下文預測該單詞所蘊含的情感極性。
例如,對于輸入“The food was [MASK]and the service was good”,從未被掩蓋的描述“the service was good”可以得知,這是對某個餐廳的正面評價,而“and”作為連詞連接的是兩個表達相似的句子,因此可以推理出被掩蓋的單詞也表達正面情感。同理,給模型提供被掩蓋詞的情感信息,則模型也應可以預測出其前后文所表達的情感色彩,從而在大語料環(huán)境下發(fā)現有關情感的隱式表達。BERT在許多文本推理和閱讀理解任務中都取得了不錯的效果,該任務也不例外。
具體地,本文對被掩蓋單詞的單詞情感極性進行批量標注,作為在預訓練階段提供給模型的額外監(jiān)督信息。數據輸入模型后,該任務在Transformer中與其他任務共享參數,用被掩蓋單詞所對應的表征作為編碼了上下文信息的動態(tài)詞向量,將該向量作為特征使用softmax交叉熵損失函數對其表達的情感進行預測:
和式(1)不同的是,式(3)使用隨機初始化的矩陣W作為任務參數,而在掩蓋語言模型中則使用BERT的詞嵌入矩陣E作為參數進行“反嵌入”,并計算損失。
和基礎的BERT模型一樣,本文的模型也主要由三部分組成,整體上如圖3所示。
(1)輸入層。輸入層即嵌入層,BERT的詞嵌入分為三部分,分別為詞嵌入(word embedding)、位置嵌入(position embedding)、片段嵌入(segment embedding),最終的輸入是這三個嵌入向量的和。
(2)Transformer。上一階段輸入的詞嵌入經Transformer神經網絡提取上下文特征,獲得每個輸入對應的表征。
(3)多任務層。BERT主要通過NSP(next sentence prediction)和MLM任務在大規(guī)模無監(jiān)督文本上提取特征,保留了NSP任務(loss1),改進了MLM(loss2)任務,同時加上本文提出的單詞情感預測任務(loss3),模型最終的損失函數是三個任務產生的損失之和:
Fig.3 Model structure圖3 模型結構
其中,λ表示為不同任務分配的權重。BERT的下一句預測和改進后的掩蓋詞預測任務是提取文本特征的基礎任務,因此沒有改動loss1和loss2相對權重,而本文的單詞情感預測任務作為一個情感相關的輔助任務,用于添加情感信息同時輔助學習情感特征,則是本文參數調整的對象。一般來說,多個任務之間互相影響,對其權重也十分敏感,將其看作超參數,通過實驗來選取最優(yōu)的λ1和λ2參數組合。
為了檢驗BERT以及本文改進的BERT模型在情感任務上的性能,選取了兩個情感分類領域的流行數據集進行實驗,選取了訓練集的少部分樣本作為訓練集,其余訓練集樣本去掉標簽信息作為預訓練語料。
表1展示了本文所使用的相關數據集的統(tǒng)計信息。其中,IMDB情感數據集來自美國最大的互聯網電影資料數據庫,包含5萬條不同電影的用戶評論信息,是一個傾向性明顯的二分類影評數據集。除此之外,該數據集還提供了不同于訓練集和測試集的額外5萬條無標注數據。
Yelp-L數據集是Yelp情感分析數據集的一個子集,來自于美國最大的點評網站Yelp.com,包含了餐飲領域的3萬條用戶評論,數據集的標簽來自于用戶的原始評分,是一個5分類的餐飲領域評論數據集。
Table 1 Dataset表1 數據集
對原數據集的訓練集進行進一步劃分,測試集不變,以測試模型在小樣本下的性能。IMDB數據集取原數據集(25 000)的1%,即250個訓練樣本用于任務微調,其中正負樣本各125個。Yelp數據集取原訓練集的3%,即300個訓練樣本,其中每類別樣本60個。剩余的訓練樣本用于無監(jiān)督預訓練和詞粒度情感預測任務(word sentiment prediction,WSP)。
使用BERT-base為基礎模型,該模型隱層節(jié)點數為768,有12個自注意力頭部和12個Transformer塊(Block)。為了使模型擁有足夠的上下文信息,僅掩蓋了10%的單詞,且對每個訓練樣本反復取樣20次,每次取128個詞例。對于詞粒度情感預測任務,將情感詞典中情感評分大于0.6的標記為積極詞匯,小于0.4的標記為消極詞匯。在訓練時,批量大小設置為28,學習率為5E-5,在一塊GTX1080ti訓練100 000步。
在微調階段,將批量大小設置為16,對數據集迭代了2次,模型中所有dropout概率都為0.1。在4塊GTX1080ti上使用adam優(yōu)化器訓練,β值為0.9和0.999。在訓練過程中使用學習率為2E-5的動態(tài)三角學習率,預熱率為0.1,訓練過程中保存在驗證集上表現最優(yōu)的模型在測試集上進行測試。對于超過限制長度的樣本使用首尾分割的方式,保留前210個詞例和尾部300個詞例。
為了得到最佳效果,通過多組實驗驗證最優(yōu)的參數值,即改進后掩蓋語言模型的k值和多任務損失的損失權重λ1和λ2。k值取大于1的常數。為了避免梯度問題,λ1和λ2之和一般為1,可看成是不同任務所占比重。取IMDB數據集中與訓練集和測試集不相交的2 000個樣本作為驗證集來完成該實驗。
從表2可以看出,兩種改進方式在驗證集上較原方法精度都有所提升,情感詞的損失也有效下降,但是較依賴于權值的選擇??梢钥闯?,當單詞情感預測任務所占比重超過0.3后,反而會取得更差的效果,而k值設為10時,模型也在情感詞上產生過擬合。最終選取表現最好的取值k=2、λ1=0.90、λ2=0.10作為超參數,測試模型的泛化性能。
Table 2 Accuracy with different hyper-parameters表2 不同超參數下的精度
表3展示了不同模型在這兩個數據集上的效果。其中,表的第一行為實驗數據集名稱,IDMB+表示使用了額外5萬無監(jiān)督數據進行預訓練。LSTM+ATTN代表加入自注意力機制的雙向長短期神經網絡模型,其結果來自對文獻[2]的復現,非預訓練模型很難在少量訓練數據上取得好的效果,表格第二行給出了上述模型在全數據集下的表現。表的后半部分是預訓練語言模型的相關實驗數據,ULMFIT(universal language model fine-tuning for text classification)的實驗結果來自文獻[8],是基于LSTM的預訓練語言模型。BERT代表使用原BERT模型在目標數據集上直接進行微調的結果。FP(further pre-training)代表在目標領域內進一步預訓練之后的模型的實驗結果,SentiBERT(sentiment BERT)為本文改進后的BERT模型。
Table 3 Test accuracy in different models表3 不同模型下的測試精度 %
實驗結果表明,在訓練數據較小的情況下,預訓練的語言模型由于吸收了大量復雜語言知識,結果遠好于基于詞向量的LSTM神經網絡模型,而進一步預訓練使得BERT在進行具體任務的微調前適應了相關語境,使得結果明顯優(yōu)于前者。最后,本文的模型由于實現情感信息的預先獲取,使得最終結果再上升1個百分點。除此之外,還測試了BERT相關模型在不同數量訓練樣本下的性能。
從圖4可以看出,相較原BERT模型,本文方法在不同數量的訓練數據集下均能取得較好的效果,特別在樣本數量較少的情況下,BERT的3種訓練方式差異較大,隨著訓練數據增多,本文的模型精度收斂更加迅速。最終,在全數據集下,3個模型的差距較小樣本下已經不夠明顯,猜測足夠的人工標注樣本使得BERT推斷出了一定的情感,補償了加入的單詞情感信息。
Fig.4 Accuracy with different number of training samples圖4 不同數量訓練樣本下的模型精度
情感類任務的一個重要特征是模型的改變可以直觀地反映在詞向量的微調上。使用余弦相似度可以非常直觀地度量詞向量的語義相關性,而經過情感任務訓練得到的詞向量往往也可以蘊含情感傾向,具體表現為情感傾向相同的詞其相似度會增加,而情感表達相反的詞其相似度會降低。
BERT的詞向量的組成和訓練過程比較復雜,將BERT的詞嵌入進行分離,分析了預訓練后SentiBERT的詞嵌入的語義部分,雖然BERT的詞向量在整體上不具有word2vec[9]所表達的直觀語義特征,但是也發(fā)現了類似的情感傾向性。
選取了6個情感傾向明顯的詞例,其中正負類別各3個,分別計算其在原BERT模型和本文模型上的余弦相似度,并將其變化記錄在表4中。
Table 4 BERT word vector表4 BERT詞向量參數
表4中的值代表該行該列對應的單詞對在模型改進前后的詞嵌入參數變化量(差值),可以看出,表中情感傾向相同的單詞對,其詞嵌入的相似度變化都為正值,即在本文的模型中相似度相較原模型有所提升,而表中顏色加深部分的情感傾向相反的詞對,相似度則相應降低,這和本文的預期相符,也說明通過單詞情感預測任務,BERT的確從無監(jiān)督文本中學到了有效的情感信息。
BERT區(qū)別于其他預訓練語言模型的一大特點就是使用了自編碼語言模型,這是本文的單詞情感預測任務的基礎。為了驗證在單詞情感預測任務中對單詞進行掩蓋的重要性,設計了一組對照實驗,分別通過預測掩蓋詞和非掩蓋詞的情感來給模型加入外部情感信息,來進一步訓練BERT模型,結果如圖5、圖6所示。
Fig.5 Loss curves of two pre-training methods圖5 兩種預訓練方法的損失曲線
Fig.6 Accuracy curves of two pre-training methods圖6 兩種預訓練方法的精度曲線
從圖5可以看出,對非掩蓋詞進行情感預測,損失非常迅速地下降至0,而掩蓋詞的損失則下降得更加曲折、緩慢。而在圖6中,掩蓋詞情感預測任務則在目標數據集上明顯取得更好的效果,而通過對非掩蓋詞添加情感信息的方法則對情感任務提升不大,其效果甚至低于原BERT模型。由此推測,由于在本文的詞粒度情感預測任務中,所有的被預測單詞在輸入端都被掩蓋,這使得模型無法建立具體某個單詞和其對應情感標簽的對應關系,以防止該任務出現過擬合。
本文就訓練語言語言模型BERT在情感分類任務上的應用進行了研究。提出的改進版模型實現了無監(jiān)督數據中情感信息的提取,相較原模型在小樣本下有較大提升。在實際生產生活中,大規(guī)模語料數據容易獲得,而手工標注相較比較費時。但是本文對模型的改進停留在目標數據集,并非一個從零開始訓練得到的情感模型,下一步嘗試從零開始訓練BERT。