趙圓麗,梁志劍
中北大學(xué) 大數(shù)據(jù)學(xué)院,太原030051
隨著互聯(lián)網(wǎng)的飛速發(fā)展,互聯(lián)網(wǎng)用戶數(shù)量急劇增加、評論文本呈爆炸式增長。截至2020 年3 月,國內(nèi)網(wǎng)民規(guī)模已達9.04 億,互聯(lián)網(wǎng)普及率達64.5%,手機網(wǎng)民達8.97 億,手機網(wǎng)民占總網(wǎng)民規(guī)模99.3%[1]。微博作為中國網(wǎng)民主要的社交媒體,它的即時性、便捷性和交互性深受網(wǎng)民的青睞。用戶不僅可以在微博上了解最新熱點事件,還可以通過評論公開發(fā)表自己對這一熱點事件的立場和觀點,或者通過點贊、轉(zhuǎn)發(fā)等方式與其他用戶進行互動。微博用戶對熱點事件(話題)的立場(態(tài)度)蘊含了豐富的信息,常常被用作商業(yè)指導(dǎo)、政府決策或智能推薦等。
近年來,因其廣泛的應(yīng)用場景,立場檢測課題已成為自然語言處理(NLP)中的一個新興熱門研究領(lǐng)域[2]。國際語義評測比賽SemEval-2016Task 6[3]、自然語言處理與中文計算國際會議NLPCC 2016Task4[4]均提出了立場檢測的任務(wù)評測分析。
立場檢測任務(wù)的目標是針對某一特定話題判斷微博用戶評論文本的立場傾向是“支持”“中立”還是“反對”。早期的立場檢測方法僅僅通過判斷微博文本的情感極性得到立場傾向,往往會使立場傾向判斷失誤。例如,在目標話題“深圳禁摩限電”下的某一文本“最反感這些拉客的!還有在機動車道上行駛的”的立場傾向是“支持”,但是單獨看這段文本的情感極性卻是“消極”?,F(xiàn)有的立場檢測方法考慮到了目標話題所蘊含的立場 信息,Augenstein 等[5]基于Bidirectional-Conditional-Encoding 模型將目標話題和Twitter 文本進行融合后分類。注意力機制可以很好地關(guān)注重點信息,在基于注意力機制的方法上,白靜等[6]通過注意力機制加強模型針對目標話題在立場檢測上的影響。岳天馳等[7]通過兩段式注意力機制來增強微博文本在目標話題上的立場信息表征能力,然而word2vec不能解決詞的歧義問題,相對降低了分類精確度。為了改善word2vec詞向量的問題,王安君等[8]采用Bert 來獲取具有上下文語義信息的句向量,設(shè)計出基于Bert-Condition-CNN的中文微博立場檢測方法,該模型驗證了Bert抽取上下文語義信息的有效性,但是該模型過于依賴主題短語的提取。這些方法都針對的是目標話題在微博文本中顯示存在的現(xiàn)象,忽略了目標話題在文本中隱式存在對立場信息抽取的影響。例如,在目標話題“春節(jié)放鞭炮”的某一用戶評論“請不要再奪走中華文化傳統(tǒng)”的立場傾向是“支持”,但評論中未提及“放鞭炮”“春節(jié)”等詞。
本文針對立場檢測任務(wù)中目標短語在微博文本中隱式出現(xiàn)導(dǎo)致立場信息不顯著的問題,提出了一種基于異核卷積雙注意機制(Heteronuclear Convolution Double Attention Mechanism,HCDAM)的立場檢測模型。首先為提高文本特征的表征能力,使用Bert獲取不同規(guī)模的目標短語和微博文本的詞向量表示;然后通過不同卷積核的卷積操作抽取包含不同語義信息的卷積特征后再經(jīng)過注意力計算抽取隱式的目標短語,最后利用注意力池化來抽取包含顯隱式特征的立場信息。
目前,國內(nèi)外的立場檢測方法主要有基于特征工程的機器學(xué)習(xí)方法和基于神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)方法。
傳統(tǒng)機器學(xué)習(xí)在對立場分析的研究工作主要集中在特征工程的構(gòu)造上。Sridhar等[9]利用語言學(xué)知識,運用Probabilistic-Soft-Logic(PSL)對用戶以及評論文本立場傾向做聯(lián)合建模分析。Edelstein等[10]針對辯論語料,通過背景知識、論點、論據(jù)、話題關(guān)系等構(gòu)建具有爭議話題的立場詞典,來挖掘語料中的立場傾向。鄭海洋等[11]利用“情感詞+主題詞”組合構(gòu)建立場檢測特征,進行立場分類。奠雨潔等[12]提出了融合多重文本特征的方法,利用詞頻特征(詞袋模型、融入同義詞詞典的詞袋特征、詞與立場關(guān)系共現(xiàn)的特征)和分布式文本表示(詞向量、字向量),集成SVM等多種機器學(xué)習(xí)模型進行分類。但上述方法都過于依賴領(lǐng)域知識,需要耗費大量的人力、物力在特征工程的構(gòu)造上,費時費力。
相比機器學(xué)習(xí)方法過于依賴特征工程,深度學(xué)習(xí)方法可以自動學(xué)習(xí)文本特征的能力,受到了廣泛的關(guān)注和使用。例如,Sysoev等[13]利用深度學(xué)習(xí)對英文微博立場檢測數(shù)據(jù)集進行單詞級和字符級的訓(xùn)練,最后融合兩種模型進行立場分析。Mao 等[14]提出基于端到端的神經(jīng)網(wǎng)絡(luò)模型TGMN-CR,即使當推文未明確表達目標意見時,分類效果也是較好的;驗證了目標詞和推文詞的多次交互可以更好地抽取隱式立場信息。
立場檢測中目標短語在微博文本中隱式存在導(dǎo)致立場信息不顯著的關(guān)鍵是提高話題信息在微博文本中的覆蓋率,通過主題模型擴展主題集是一個很好的方法,例如,Wang等利用LDA提取主題短語擴展主題集,但是,LDA主要針對的長文本提取,對于微博文本這樣的短文本提取效果并不好,進而導(dǎo)致立場分類效果不好;注意力機制[15-17]可以很好地關(guān)注重點信息,CNN[18-19]在抽取局部特征方面表現(xiàn)優(yōu)異,如何利用深度學(xué)習(xí)構(gòu)造自動擴展話題集信息并進行立場信息特征抽取的模型,是本文研究的重點。
結(jié)合以上研究成果,本文主要貢獻如下:
(1)為解決立場檢測任務(wù)中目標短語在文本中隱式存在導(dǎo)致立場信息特征不顯著的問題,提出一種異核卷積注意方式,即通過不同卷積核的卷積操作抽取包含不同語義信息的卷積特征后再經(jīng)過注意力計算抽取隱式的目標短語,最后利用注意力池化來抽取包含顯隱式特征的立場信息。
(2)為降低短文本數(shù)據(jù)稀疏導(dǎo)致信息不全面的問題,在預(yù)處理階段通過字個數(shù)維度算法設(shè)置好基于字符級的特征表示向量的維度。對目標短語和文本采用不同規(guī)模的向量表示,經(jīng)過不同規(guī)模的雙通道方式輸入,將話題和文本的局部特征映射到同一空間來進行注意力計算。
本文基于CNN和Attention機制設(shè)計完成了一種基于異核卷積雙注意的立場檢測模型。首先,通過字個數(shù)維度算法得到最優(yōu)字個數(shù)維度作為Bert 預(yù)訓(xùn)練模型的輸入,分別獲取目標短語、文本的字符級的詞向量表示,然后通過基于異核卷積注意策略進行隱式目標話題特征的抽取學(xué)習(xí),緊接著利用注意力池化基于顯隱式主題特征進行立場信息特征學(xué)習(xí);最后接入softmax 層進行立場分類。方法流程如圖1所示,接下來闡述方法的各個部分的具體實現(xiàn)步驟。
微博文本存在文本短小、信息稀疏的特點,為提高文本表征能力,在數(shù)據(jù)預(yù)處理階段計算字個數(shù)維度,用于后續(xù)Bert特征向量訓(xùn)練的輸入?yún)?shù)。
定義數(shù)據(jù)集總條數(shù)lds,文本長度LS,文本長度概率分布P(LS),如式(1)所示:
圖1 模型整體流程架構(gòu)
其中,lsnum表示文本長度為ls的文本條數(shù),pls表示文本長度為ls的概率,ls的取值范圍為[MIN(ls),MAX(ls)],MIN(ls)表示最小文本長度,MAX(ls)表示最大文本長度。
由于目標話題相對來說較短,為不丟失話題語義信息,選擇所有話題的最大長度作為話題的實際字個數(shù)維度Trealen,為方便訓(xùn)練,令其滿足式(2)求得其最佳長度Tbestlen。
其中,MAX(lt)表示話題最大長度。
對于文本來說,選擇文本最大長度作為實際字個數(shù)維度Srealen。由于文本長度分布稀疏,容易造成特征表示過于稀疏,因此通過逼近法找到滿足式(3)、(4)最小長度作為最佳長度Sbestlen。
其中,文本長度lens是作為中間值更新來確定最佳長度Sbestlen。
Bert[20](Bidirectional Encoder Representations from Transformers)預(yù)訓(xùn)練模型不但在11 項NLP 任務(wù)中取得最先進的結(jié)果,更簡化了NLP領(lǐng)域的預(yù)訓(xùn)練模塊,融合字符級(Tokenization,簡寫為Token)、文本級(Segment)、位置級(Stance)三大向量作為模型輸入,基于Transformer模型中的Attention 機制,所有的詞的上下文語義、位置信息都得以保留。
在本文的實驗中,使用了Google 發(fā)布的Bert 預(yù)訓(xùn)練模型“BERT-Base,Chinese”。其輸出既可以是基于字符(Token)級的詞向量表示,也可以是句向量表示。為了提高話題聯(lián)想能力,采用基于字符(Token)級的詞向量表示。在Bert 預(yù)訓(xùn)練模型中Token 級字序列長度最長為512,但實際上對于有些微博文本,最佳序列長度可能是128,因此將最佳字個數(shù)維度,也作為Bert預(yù)訓(xùn)練模型的輸入。
給定一條文本S和對應(yīng)的目標短語T。目標短語Token向量、文本Token向量分別表示為式(5)、(6):
其中,d為向量長度,n1、n2分別代表目標短語的最佳長度、文本的最佳長度。
不同規(guī)模的卷積核可以抽取不同信息的語義特征[21],為了更有側(cè)重性地建模話題語義信息,采用不同規(guī)模的卷積核對話題和文本進行卷積操作;單通道CNN 學(xué)習(xí)能力單一,為了增強模型學(xué)習(xí)語義信息的能力,如圖2 所示,采用雙通道輸入,卷積層接收大小為n1×d的話題Token 向量特征矩陣Tt和n2×d的文本Token向量特征矩陣St。
圖2 HCDAM雙通道卷積層原理圖
矩陣Tt、St的每一行分別為話題和文本中一個位置的Token向量。為獲得和輸入矩陣相同的規(guī)模,采用“same”模式進行卷積,選取尺寸分別為T×m1×d的卷積核w1∈Rm1×d和T×m2×d的卷積核w2∈Rm2×d對輸入矩陣進行卷積操作,卷積過程如式(7)、(8)所示:
式中,f表示ReLu(Rectified Linear Units)激活函數(shù)。為了加快訓(xùn)練收斂速度,這里使用Relu激活函數(shù)。如式(9)、(10)所示,分別獲得特征矩陣A和B。
其中,T表示卷積核個數(shù),m為卷積計算滑動窗口的大小。
矩陣A、B中的每一列是經(jīng)過卷積操作后得到的特征向量:
矩陣中的每一行表示T個卷積核在文本矩陣相同位置上的提取結(jié)果。由于匯集了T個卷積核的提取結(jié)果,所以A、B中行向量vi、uj分別表示了針對目標話題和微博文本相同位置提取出的所有卷積特征。
在微博文本立場檢測中,話題對提高立場檢測的準確率有著很大的影響,但是對于相當一部分話題,文本并不是針對話題做闡述,而是在話題的基礎(chǔ)上,衍生出的相關(guān)話題的立場闡述。這個時候,簡單的關(guān)聯(lián)話題和文本無法提取出有效的隱式立場信息特征。因此,引入雙層注意力機制,首先擴展目標話題,然后在擴展的目標話題上做立場信息抽取。
如圖3 所示,在第一層注意力層上,通過點乘運算來計算目標話題表示向量矩陣A和微博文本的局部卷積特征表示向量矩陣B的關(guān)系,來衡量出相同位置上微博文本局部卷積特征對不同位置目標話題文本立場信息的貢獻程度,通過微博文本來擴展目標話題集。
圖3 注意力層I計算過程
卷積層得到的卷積特征矩陣A、B,在具體工作中通過將vi轉(zhuǎn)置,從而進行點乘運算??梢哉J為如果局部卷積特征uj和話題表示向量vi具有高相似度,那么意味著uj包含更強的話題信息,所以將會得到uj的一個高的注意力權(quán)重。如圖3中,首先由局部卷積特征與uj進行點乘運算得到矩陣C,隨后通過公式(14)、(15)對矩陣C經(jīng)過一系列權(quán)重值變換,得到最終的注意力權(quán)重矩陣C。
最后將微博文本局部特征B通過轉(zhuǎn)置和注意力權(quán)重矩陣C映射到同一空間,再進行點乘運算,得到擴展了話題信息的文本表示向量將其和文本字向量局部特征表示B=[u1,u2,…,un2]∈一起作為第二層注意力機制的輸入數(shù)據(jù)。如圖4所示,通過點乘運算,得到話題集信息和微博文本的關(guān)系矩陣D,經(jīng)過式(19)、(20)的注意力權(quán)重變換,得到最終的注意力權(quán)重矩陣。
圖4 注意力層II計算過程
逐一將局部卷積特征ui點乘與之相對應(yīng)的注意力權(quán)重值d′i完成加權(quán),最后對加權(quán)后的局部卷積特征進行累加操作,獲得最終立場信息特征表示R,計算方式如下式所示:
基于異核卷積雙注意的策略,通過提高話題的聯(lián)想能力來增強隱式話題的立場信息表征能力。通過話題和文本的相關(guān)度計算衡量文本特征的重要性,保留了局部特征的強度信息,進而基于微博文本擴展話題集特征表示;在擴展了目標話題的特征表示上,對微博文本句向量進行注意力加權(quán),得到最終的特征向量表示R。
將由2.4 節(jié)得到的最終特征向量表示R作為最終的立場分類特征向量,利用Softmax 輸出立場檢測判定結(jié)果。分類過程如下式所示:
為了防止模型過擬合,本文在Softmax 層中采用了Dropout策略和L2正則矩陣。Dropout策略通過隨機丟棄一部分模型參數(shù),從而降低模型復(fù)雜度。其中pc表示Dropout概率,ws表示L2范式參數(shù)矩陣,Ls表示立場類別標簽,bs表示偏至項。
分類器采用式(24)的交叉熵作為損失函數(shù),訓(xùn)練目標是最小化交叉熵值來優(yōu)化網(wǎng)絡(luò)權(quán)重,整個模型的參數(shù)集合為θ={ws,bs,w1,b1,w2,b2},則整個模型優(yōu)化的目標函數(shù)如式(24)所示:
小批量梯度下降(Mini-Batch Gradient Descent,MBGD)優(yōu)化技術(shù)兼顧了批量梯度下降法和隨機梯度下降方法的優(yōu)點,Adam 算法能夠?qū)γ總€不同的參數(shù)調(diào)整不同的學(xué)習(xí)率,以更大的步長更新稀疏的參數(shù),以更小的步長對頻繁變化的參數(shù)進行更新。所以模型采用MBGD 優(yōu)化技術(shù)和Adam 算法動態(tài)更新每個參數(shù)的學(xué)習(xí)率,完成模型參數(shù)集合的學(xué)習(xí),并根據(jù)實際訓(xùn)練數(shù)據(jù)選擇模型的其他超參數(shù)。
選取NLPCC2016 的中文微博數(shù)據(jù)集,該數(shù)據(jù)集包含由于用于微博立場檢測任務(wù)的公開標注數(shù)據(jù)集不夠多,所以在此基礎(chǔ)上,對未標注的數(shù)據(jù)集進行立場標注,5個話題A~E分別是“Iphone Se”“深圳禁摩限電”“俄羅斯在敘利亞的反恐行動”“開放二胎”“春節(jié)放鞭炮”,擴展數(shù)據(jù)集由原來的4 000條至15 000條。最終的15 000條在5個話題上的分類如表1所示。同時將數(shù)據(jù)集按照6∶2∶2的比例分為訓(xùn)練集、驗證集、測試集,如表1所示。
表1 實驗數(shù)據(jù)
微博文本中類似表情、URL等非正式文本給立場檢測任務(wù)帶來了很大的挑戰(zhàn)。在計算字個數(shù)維度前預(yù)先對微博文本做格式轉(zhuǎn)換、分詞、去除停用詞等預(yù)處理來降低不必要的噪聲干擾。
深度學(xué)習(xí)框架有Tensorflow、Caffe、PyTorch 等,本文實驗采用Tensorflow框架。實驗環(huán)境配置如表2所示。
表2 實驗環(huán)境配置
使用Relu作為卷積層的激活函數(shù)。實驗采用3.1節(jié)中的數(shù)據(jù)集,迭代次數(shù)epoch=150,選取在驗證集上得到最好效果的模型作為最終模型,在測試集上進行測試。具體工作中,通過設(shè)置卷積核個數(shù)T和文本向量長度d的數(shù)量關(guān)系d=T,將向量映射到同一空間下。為了獲取更好的特征表示向量,根據(jù)2.2 節(jié)中所提到的獲取目標短語和文本字個數(shù)的方法計算得到最優(yōu)字個數(shù),來作為Bert訓(xùn)練向量矩陣的高。根據(jù)實驗結(jié)果選擇batchsize為32。使用NLPCC 任務(wù)中官方給出的評價指標Favg作為最終的評價指標,其計算公式如下:
其中,F(xiàn)FAVOR是“支持”標簽的F 度量,F(xiàn)AGAINST是“反對”標簽的F 度量。實驗中涉及的網(wǎng)絡(luò)模型參數(shù)如表3所示。
表3 模型參數(shù)設(shè)置
通過分析數(shù)據(jù)集,使用2.2 節(jié)中字個數(shù)維度算法分別計算出5 個目標短語和對應(yīng)文本的實際字個數(shù)維度和最佳字個數(shù)維度,其中,Trealen、Tbestlen分別表示目標短語的實際字個數(shù)維度和最佳字個數(shù),參數(shù)λ、μ分別設(shè)置為0.1和0.05,如表4所示。
表4 話題和文本的字個數(shù)維度
為更好地驗證設(shè)置字個數(shù)維度對立場檢測的影響,特將目標短語和文本中的“iPhone SE”轉(zhuǎn)換為“SE蘋果手機”。采用全連接交叉方式驗證設(shè)置字個數(shù)維度對立場檢測的影響,選用3.3 節(jié)中所述的評價指標,結(jié)果如表5 所示,不難看出,話題和文本都是最佳字個數(shù)維度的組合得到的效果最好,其中,第2 行第2 列(5/311)0.698表示當目標短語字個數(shù)維度選擇5,文本字個數(shù)選擇311時,目標“IPhoneSE”立場檢測的準確率為0.698。
表5 不同字個數(shù)維度組合對立場檢測的影響
為了驗證異核卷積策略對立場信息表征能力的有效性,如圖5 所示,基于不同規(guī)模的卷積核組合,使用Favg進行對比,得到了5 個話題的立場檢測效果。選取卷積核大小3、4、5;其中,(m1,m2)表示(話題矩陣卷積核大小,文本矩陣卷積核大小),當m1=m2時,為同核卷積;當m1≠m2時,為異核卷積;可以看出,異核卷積策略增強了立場信息特征的表征能力,提高了立場檢測的準確率。
圖5 異核卷積策略對立場檢測的影響
為更好驗證HCDAM 對于隱式立場信息抽取的效果,如表6所示,將5個話題單獨訓(xùn)練得到的結(jié)果同Yue的兩段注意力方法、Bai 的BiLSTM-ATTCNN(BLAC)模型和Wang 的Bert-Condition-CNN(BCC)模型做的對比實驗。Yue 的ATA 模型采用word2Vec 訓(xùn)練詞向量作為雙注意力機制的輸入;Bai的BLAC 采用word2Vec訓(xùn)練詞向量,使用注意力池化策略的CNN提取特征,融合BiLSTM 學(xué)習(xí)的文本表示進行分類;Wang 的BCC 采用Bert 訓(xùn)練句向量,擴展目標話題集,使用點乘運算得到目標話題集和微博文本的關(guān)系矩陣,最后使用CNN 進行特征提取并分類。三者均是基于深度學(xué)習(xí)的模型。為方便觀察,表6中僅使用了Favg進行對比。
表6 5個話題分開單獨訓(xùn)練結(jié)果
從表中可以看出,5個話題的準確率均得到了提升,話題A 即“iPhone SE”相對其他3 種模型分別提升了0.179、0.156、0.146,話題C 即“俄羅斯在敘利亞反恐行動”相比其他兩種模型分別提升了0.224、0.160、0.133,驗證了基于字符級異核卷積雙注意的混合模型對提高話題聯(lián)想與擴展能力的有效性。并且話題B、D、E 即“深圳禁摩限電”“開放二胎”“春節(jié)放鞭炮”都取得了0.85 以上的平均準確率,其中,話題“深圳禁摩限電”相比其他兩種模型分別提升了0.051、0.046、0.053,話題“開放二胎”相對其他兩種模型分別提升了0.075、0.067,0.047,話題“春節(jié)放鞭炮”相對其他兩種模型分別提升了0.065、0.056、0.058,進一步驗證了基于字符級異核卷積雙注意的混合模型對立場信息特征抽取能力的積極影響。
最后將5個話題一起訓(xùn)練,將之與深度學(xué)習(xí)中的模型CNN、BiLSTM、BiLSTM-ATTCNN、Bert-Condition-CNN作對比。圖6為不同方法的分類準確性對比。
圖6 不同模型F值結(jié)果
由圖6可知,相比Bert-Condition-CNN模型,本文提出的Bert-HCDAM模型不僅提高了FFAVOR和FAGAINST,而且能夠兼顧兩種分類,“支持”標簽的F值和“反對”標簽的F值之差很小,幾乎為0,在平均分類準確率Favg上提升了0.108。
本文的主要工作是在立場檢測任務(wù)中,針對目標短語在對應(yīng)文本中的隱式出現(xiàn)導(dǎo)致分類效果差的問題,提出Bert-HCDAM 模型。首先基于Bert 獲取字符級向量表示,然后采用異核卷積雙注意機制(HCDAM)深度關(guān)聯(lián)目標話題和文本,最后使用softmax 進行立場分類。在NLPCC2016 中文微博立場檢測數(shù)據(jù)集的實驗表明,將最優(yōu)字個數(shù)維度算法應(yīng)用到特征表示上,可以提高特征表征能力,有效提升立場檢測效果;異核卷積雙注意機制(HCDAM)能夠有效針對無法直接體現(xiàn)話題信息的微博文本進行立場檢測,并且分類結(jié)果更加均衡。另外,數(shù)據(jù)標注過于繁瑣,下一步的工作將研究如何將該模型擴展到未標注數(shù)據(jù)集的微博立場檢測任務(wù)中。