白 靜 李 霏 姬東鴻
(武漢大學(xué)計(jì)算機(jī)學(xué)院 湖北 武漢 430072)
隨著Web2.0的蓬勃發(fā)展,互聯(lián)網(wǎng)逐漸倡導(dǎo)用戶為中心,由被動地接收互聯(lián)網(wǎng)信息向主動創(chuàng)造互聯(lián)網(wǎng)信息邁進(jìn)。因此,互聯(lián)網(wǎng)上產(chǎn)生了大量用戶參與的、對于諸如人物和事件等有價(jià)值的評論信息。這些評論信息表達(dá)了人們的各種情感色彩和立場傾向性,如批評、贊揚(yáng)等。隨著社交媒體信息規(guī)模的迅速膨脹,僅靠人工的方法難以應(yīng)對網(wǎng)上海量信息的收集和處理,因此迫切需要計(jì)算機(jī)幫助用戶快速獲取和整理這些相關(guān)評價(jià)信息[1],對其中蘊(yùn)含的隱藏社會現(xiàn)象進(jìn)行挖掘[2]。立場檢測任務(wù)受到了越來越多研究者的關(guān)注,同時在2016年的自然語言處理與中文計(jì)算會議上也提出了關(guān)于中文微博的立場檢測任務(wù)。足可以看出基于社交文本進(jìn)行立場信息檢測的迫切需要。
立場檢測任務(wù)希望可以從用戶產(chǎn)生的文本中挖掘用戶的立場信息。立場信息是針對某個描述主體的情感傾向,描述主體可以是某一產(chǎn)品、某一事件或者某個人等。在已有的研究中,一般將立場檢測抽象為分類問題。立場檢測問題需要探查文本蘊(yùn)含的立場信息分別是:支持(FAVOR);反對(AGAINST);無立場(NONE)。如描述句“很想嘗試下新出的iPhonese…”,其中描述主體為“iPhonese”,句子中蘊(yùn)含了觀點(diǎn)持有者對于描述主體 “iPhone SE”的立場信息。觀點(diǎn)持有者針對iPhone SE產(chǎn)品富含興趣想要嘗試,立場標(biāo)簽為FAVOR。與立場檢測問題相似,情感分析問題也是針對文本傾向性進(jìn)行分析。兩者的主要區(qū)別在于立場傾向是針對某一描述主體產(chǎn)生的;而情感分析的關(guān)注重點(diǎn)是文本中的正面或負(fù)面的情感特征,比如是否包含具備強(qiáng)烈情感信息的詞匯等特征,并不需要牽涉到描述主體這一信息。
目前,在立場檢測領(lǐng)域,研究者們提出了許多行之有效的研究方法,其中絕大多數(shù)研究方法是采用特征工程和傳統(tǒng)機(jī)器學(xué)習(xí)相結(jié)合的方式[3-5]。研究者通過人工挖掘領(lǐng)域內(nèi)知識,手工構(gòu)建與任務(wù)相關(guān)的語義特征,添加領(lǐng)域相關(guān)的詞典資源等方式,來挖掘文本中的立場信息。為了保證特征的質(zhì)量,傳統(tǒng)的文本特征設(shè)計(jì)需要耗費(fèi)大量的專家領(lǐng)域知識與高昂的人工成本,并且使用特征工程和傳統(tǒng)機(jī)器學(xué)習(xí)模型方法的效果,嚴(yán)重依賴于特征選擇策略和模型參數(shù)的調(diào)優(yōu)。
基于上述特征工程方法的固有缺陷,研究者有針對性地提出將深度學(xué)習(xí)方法應(yīng)用在立場檢測領(lǐng)域,從而高效地提取出有價(jià)值的特征。深度學(xué)習(xí)使用神經(jīng)網(wǎng)絡(luò)模型自動學(xué)習(xí)出可以描述數(shù)據(jù)本質(zhì)的特征表達(dá),將原始數(shù)據(jù)通過一些簡單的非線性模型變換為更高層次的抽象表達(dá),再組合多層變換,學(xué)習(xí)出復(fù)雜的函數(shù)特征。與傳統(tǒng)機(jī)器學(xué)習(xí)相比,深度學(xué)習(xí)通過自學(xué)習(xí)特征機(jī)制避免了人工設(shè)計(jì)特征的局限性并降低了人工設(shè)計(jì)特征的巨大成本,同時深度學(xué)習(xí)模型還具備更優(yōu)秀的泛化性和可移植性。
在已有的應(yīng)用深度學(xué)習(xí)進(jìn)行立場檢測的研究工作中,研究者沒有考慮到不同的特征對于句子整體的立場信息具有不同的影響力[6]。同時,微博文本天然具有信息稀疏的特性。微博文本的長度通常只有1~140詞,并且常常包含短鏈接、表情符號等非正式文本,所以單條包含的信息十分有限。通過對具體例子的分析發(fā)現(xiàn),微博中少數(shù)幾個關(guān)鍵的詞就可以大致反映出句子的立場類別。比如虛詞中的“的”,“著”就對句子的立場檢測沒有實(shí)際作用,而“贊”,“福利”,“差評”等詞匯則可以很好地反映出句子的立場傾向。因此,受限于微博文本的稀疏性和不規(guī)范性,并且考慮到在已有的使用深度學(xué)習(xí)方法中研究者并未對特征的重要程度加以區(qū)分而是一視同仁的思路,如何從有限的句子信息中獲得更豐富的文本特征表示是本文需要解決的問題。
CNN已經(jīng)被證實(shí)在文本建模方面具有強(qiáng)大的特征提取能力。CNN中池化操作主要目的是有效減少模型中的參數(shù)并固定輸出特征的維數(shù),是CNN中必不可少的步驟。常用的池化策略分為最大池化和平均池化兩種。最大池化雖然能減少模型參數(shù)數(shù)量,有利于緩解模型過擬合問題,但是丟失了文本的順序信息與特征的強(qiáng)度信息。平均池化策略對領(lǐng)域內(nèi)特征求平均,丟失了特征的強(qiáng)度信息。由此,本文借鑒注意力機(jī)制的思想來改進(jìn)池化策略,通過計(jì)算不同特征的影響力權(quán)重來衡量特征的重要程度,既能夠凸顯出重要的卷積特征,又可以改善傳統(tǒng)池化策略存在的固有問題。
具體而言,本文提出了一個基于注意力的BiLSTM-CNN混合網(wǎng)絡(luò)模型,模型中使用了Augenstein I等[7]針對英文立場檢測任務(wù)提出的改進(jìn)BiLSTM獲得的中間文本表示作為Yong等[8]提出的在CNN池化層結(jié)合注意力方法的部分輸入數(shù)據(jù),通過計(jì)算局部卷積特征和BiLSTM產(chǎn)生的中間文本表示的余弦相似度,從而產(chǎn)生針對局部卷積特征的影響力權(quán)重,達(dá)到凸顯有效特征的目的,最終將CNN學(xué)習(xí)得到的句子表示和BiLSTM產(chǎn)生的中間文本表示一同通過Softmax進(jìn)行分類獲得立場標(biāo)簽。本文的主要貢獻(xiàn)在于將注意力機(jī)制應(yīng)用到了中文微博立場檢測領(lǐng)域。針對Nlpcc語料的實(shí)驗(yàn)表明,本文方法取得了較好的效果,通過添加注意力機(jī)制可以有效提升立場檢測的準(zhǔn)確性。
目前立場檢測工作主要分為基于特征工程和深度學(xué)習(xí)兩大類。
1) 基于特征工程方法的重點(diǎn)是如何選取合適的特征表示文本。Xu等[3]基于中文微博使用了豐富的語義表示技術(shù)(如Para2vec,LDA(Latent Dirichlet Allocation),LSA(Latent Semantic Analysis)等)來獲取原始文本中蘊(yùn)含的語義信息。同時通過研究主觀性詞典構(gòu)建專門立場詞典特征庫,并使用隨機(jī)森林,基于線性核函數(shù)的支持向量機(jī)(SVM-Linear)以及基于RBF核函數(shù)的支持向量機(jī)(SVM-RBF)等機(jī)器學(xué)習(xí)算法研究不同語言特征和不同分類模型在立場檢測任務(wù)中的表現(xiàn)。Liu等[4]通過加入情感詞典等資源構(gòu)建文本特征,并使用重復(fù)采樣技術(shù)處理不平衡數(shù)據(jù)集,同時結(jié)合隨機(jī)森林,樸素貝葉斯等多種分類器進(jìn)行立場檢測。此外,Sun等[5]探討了基于語義特征,形態(tài)特征,情感特征和語法特征等多種特征在立場檢測任務(wù)中的作用??梢钥闯觯陨匣谔卣鞴こ膛c傳統(tǒng)機(jī)器學(xué)習(xí)分類算法的方法通常需要依賴于構(gòu)造富含領(lǐng)域知識的復(fù)雜特征和分類器的參數(shù)調(diào)優(yōu)。
2) 基于深度學(xué)習(xí)的方法。相比傳統(tǒng)基于特征工程的方法深度學(xué)習(xí)模型擁有優(yōu)秀的自特征提取能力。在針對中文的立場檢測領(lǐng)域中Yu等[6]使用改進(jìn)的混合網(wǎng)絡(luò)模型對立場檢測問題進(jìn)行建模。通過構(gòu)建CNN中嵌套LSTM的網(wǎng)絡(luò)學(xué)習(xí)文本表示取得了不錯的效果。針對Twitter語料,Wei等[9]首先使用google news語料訓(xùn)練word embedding詞向量作為句子的詞表示,隨后使用CNN學(xué)習(xí)特征提取并進(jìn)行分類。Zarrella等[10]采用循環(huán)神經(jīng)網(wǎng)絡(luò)模型,使用遷移學(xué)習(xí)的思路將其他領(lǐng)域知識遷移到立場檢測任務(wù)上。Augenstein等[7]采用了條件編碼思想改進(jìn)長短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM)完成對描述主體和描述文本聯(lián)合建模。
循環(huán)神經(jīng)網(wǎng)絡(luò)RNN(Recurrent Neural Networks)首先被Socher在處理句法分析問題時采用[11]。RNN被證明在解決序列化問題上效果突出,在機(jī)器翻譯等領(lǐng)域取得了不錯的效果,但是在求解過程中存在梯度下降和梯度消失的問題。由此Hinton[12]提出的長短期記憶單元LSTM(Long Short Term Memory)有效地解決了上述問題。卷積神經(jīng)網(wǎng)絡(luò)CNN(Convolutional Neural Networks)是深層神經(jīng)網(wǎng)絡(luò)中的一種,Lecun等[13]采用CNN實(shí)現(xiàn)了一個多層結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法。由于CNN利用空間相對關(guān)系減少參數(shù)數(shù)目從而提高了反向傳播BP算法的訓(xùn)練性能。CNN近年來被廣泛應(yīng)用于自然語言處理領(lǐng)域上并取得了良好的效果[14]。Kim提出了一個可以同時利用基于特定任務(wù)調(diào)整的詞向量卷積神經(jīng)網(wǎng)絡(luò)模型,用于句子級別的文本分類任務(wù)[15]。
近年來,注意力機(jī)制逐漸成為了深度學(xué)習(xí)領(lǐng)域研究的一個熱點(diǎn),被廣泛應(yīng)用于QA、sequence to sequence、機(jī)器翻譯[16]、句子級別摘要[17]等領(lǐng)域,均取得了良好的效果。Luong等[18]最早在文本表示領(lǐng)域中提出了global attention和local attention模型用于機(jī)器翻譯,二者的區(qū)別在于計(jì)算注意力概率分布的范圍不同,針對機(jī)器翻譯的任務(wù)特性,對不同的輸入采用不同的方法來計(jì)算注意力概率。Rush等[17]將注意力機(jī)制應(yīng)用于自動摘要領(lǐng)域,并給出可視化模型,直觀地體現(xiàn)了注意力機(jī)制對模型的優(yōu)化。
標(biāo)準(zhǔn)的CNN結(jié)構(gòu)通常由一個或多個卷積層和池化層組成,池化層由于可以有效減少模型中的參數(shù)并固定輸出特征的維數(shù)是CNN中必不可少的步驟。池化策略通常分為最大池化和平均池化兩種。最大池化雖然能減少模型參數(shù)數(shù)量有利于緩解模型過擬合問題,但是丟失了文本的順序信息與特征的強(qiáng)度信息。平均池化策略由于是對領(lǐng)域內(nèi)特征求平均,丟失了特征的強(qiáng)度信息。針對CNN池化層的注意力機(jī)制工作中,Wang等[19]針對關(guān)系分類問題,在CNN的基礎(chǔ)上提出了input attention和pooling attention兩種層面的注意力機(jī)制。Yong等[8]針對CNN的池化層使用注意力機(jī)制進(jìn)行改進(jìn),緩解了傳統(tǒng)池化策略存在的信息丟失等問題。
現(xiàn)階段針對微博文本的語言特性,如何合理科學(xué)地設(shè)計(jì)出可以學(xué)習(xí)到更豐富的文本特征表示的模型是本文研究的重點(diǎn)。
本文提出一種基于注意力的BiLSTM-CNN混合網(wǎng)絡(luò)立場檢測模型。首先,本文使用word2vec獲取文本的詞向量表示。然后將詞向量分別輸入到BiLSTM和CNN中,獲得中間文本表示和卷積特征。為了緩解CNN池化層的信息丟失問題,并進(jìn)一步優(yōu)化卷積特征,本文將基于注意力的池化策略應(yīng)用到模型中,通過使用BiLSTM學(xué)習(xí)得到的中間文本表示用于指導(dǎo)卷積特征加權(quán)。最后將CNN學(xué)習(xí)得到的最終文本表示和BiLSTM獲得中間文本表示進(jìn)行拼接,一同輸入Softmax層得到三類立場標(biāo)簽。模型結(jié)構(gòu)如圖 1所示。接下來將對模型中各個部分的具體實(shí)現(xiàn)進(jìn)行介紹。
圖1 基于注意力的BiLSTM-CNN混合網(wǎng)絡(luò)流程圖
本文使用google開源工具word2vec[20]獲得文本詞向量表示。word2vec提供了skip-gram和CBOW兩種學(xué)習(xí)算法,本文使用skip-gram算法來獲得微博的詞向量表示。在實(shí)際應(yīng)用中,訓(xùn)練所需語料的規(guī)模、詞向量的維數(shù)等因素都會對詞向量質(zhì)量產(chǎn)生影響。本文除了使用Nlpcc提供的語料之外,還增加了收集到的1 000萬條微博一同進(jìn)行詞向量訓(xùn)練。將獲得的描述主體詞向量表示和描述文本(微博)詞向量表示作為BiLSTM的輸入數(shù)據(jù)。將描述文本詞向量表示作為CNN的輸入數(shù)據(jù)。
由于使用CNN處理自然語言問題,需要將句子轉(zhuǎn)換為矩陣形式的數(shù)值表示作為輸入數(shù)據(jù)。本文在此通過對句子中每個詞的詞向量表示進(jìn)行拼接獲得句子的矩陣數(shù)值表示。假設(shè)微博的中文本長度為n,詞向量維度為d,通過句子中的各個詞的詞向量堆疊,從而獲得維度為n×d的矩陣X作為CNN的輸入數(shù)據(jù)。
在基于注意力的BiLSTM-CNN混合網(wǎng)絡(luò)模型中BiLSTM模塊的實(shí)現(xiàn)部分本文使用了Augenstein等[7]提出的改進(jìn)的BiLSTM模型,該模型在Semeval發(fā)布的針對英文twitter的立場檢測任務(wù)獲得了非常不錯的效果,以下將介紹該模型的具體實(shí)現(xiàn)。
由于基于LSTM單元的循環(huán)神經(jīng)網(wǎng)絡(luò)可以有效利用歷史標(biāo)記信息,由此可以認(rèn)為描述主體對于描述文本有一定指導(dǎo)意義,所以通過建立了兩個LSTM模型分別是針對描述主體訓(xùn)練生成的LSTM-target以及針對描述文本訓(xùn)練生成的LSTM-weibo。模型內(nèi)部使用LSTM-target輸出的最終隱含單元狀態(tài)作為LSTM-weibo隱含單元的初始狀態(tài)。
在圖 2中我們詳細(xì)描述了模型狀態(tài)傳遞的過程,圖 2中序列w1,w2表示描述主體,序列w3,w4,…,w7表示描述文本,cir,cil分別表示右向和左向的隱含單元狀態(tài),hir和hil分別表示右向和左向的隱含層輸出,C表示BiLSTM最終輸出的中間文本表示向量。圖中粗箭頭所示,c1l的狀態(tài)傳遞給了c7l,c2r的狀態(tài)傳遞給了c3r。圖中最終產(chǎn)生兩個方向的輸出向量分別為h7r和h3l,將其首尾連接獲得最終輸出向量C。
圖2 BiLSTM模塊
通過狀態(tài)的傳遞,增強(qiáng)了LSTM-weibo模型中描述主體的信息。下式中給出了單向LSTM的狀態(tài)傳遞過程,其中序列w1,w2,…,wT表示描述主體,序列wT+1,…,wN表示描述文本,[h0,c0]的初始狀態(tài)為0:
[h1,c1]=LSTMTARGET(w1,h0,c0)
…
[hT,cT]=LSTMTARGET(wT,hT-1,cT-1)
[hT+1,cT+1]=LSTMWeibo(wT+1,h0,cT)
…
[hN,cN]=LSTMWeibo(wN,hN-1,cN-1)
(1)
BiLSTM最終將產(chǎn)生兩個方向的輸出向量hr∈1×H和hl∈1×H,將二者順序連接獲得中間文本表示向量C∈1×2H,其中H表示預(yù)設(shè)的隱含單元數(shù)目:
C=hr⊕hl
(2)
2.3.1卷積層
如圖3所示,卷積層接收大小為n×d的微博詞向量特征矩陣X,矩陣包含n個詞,詞向量維度為d。矩陣X的每一行為句子中一個詞的詞向量。選取尺寸為m×d的卷積核w∈m×d對輸入矩陣X進(jìn)行卷積操作獲得特征值gi。本文使用了“same”模式進(jìn)行卷積,該模式將獲得和輸入矩陣規(guī)模相同的輸出,卷積過程如公式所示:
gi=f(w×Xi:i-m+1+b)
(3)
式中,f表示ReLu(Rectified Linear Units)激活函數(shù)。為了加快訓(xùn)練收斂速度,這里使用的激活函數(shù)是ReLu函數(shù)。m為卷積計(jì)算滑動窗口的大小,b表示偏至項(xiàng)。Xi:i+m-1表示在X的第i行到第i+m-1行范圍內(nèi)抽取的局部特征。
如圖3所示,本文將卷積核的提取結(jié)果組成一個n×T的特征矩陣S。
(4)
式中:T表示卷積核個數(shù);n表示句子長度。矩陣S中的每一列是經(jīng)過卷積操作后得到的特征向量:
G=[g1,g2,…,gn]∈n
(5)
矩陣中的每一行表示T個卷積核在句子矩陣相同位置上的提取結(jié)果。由于匯集了T個卷積核的提取結(jié)果,所以S中行向量vi表示了針對句子某個位置的提取出的所有卷積特征。
圖3 基于注意力的BiLSTM-CNN混合網(wǎng)絡(luò)模型原理圖
2.3.2基于注意力的池化機(jī)制
由于微博存在文本短小、信息稀疏的特性,并且傳統(tǒng)池化策略會產(chǎn)生信息丟失的問題,如何從微博中學(xué)習(xí)到更豐富的文本表示,是本文的關(guān)注點(diǎn)。神經(jīng)網(wǎng)絡(luò)的注意力機(jī)制借鑒了人類視覺系統(tǒng)中的“注意力”原理,通過將注意力集中在目標(biāo)對象(如圖像、文本)中最相關(guān)的部分而不是所有信息。注意力機(jī)制應(yīng)用到學(xué)習(xí)句子表示的相關(guān)任務(wù)時,主要思想是句子中不同詞包含的語義信息不同,包含更多語義信息的詞將產(chǎn)生一個高的影響力權(quán)重,由此注意力機(jī)制可以判斷出句子中哪些詞相對重要,達(dá)到優(yōu)化模型的目的。所以本文有針對性的采用基于注意力機(jī)制池化策略,既使得重要的特征得以凸顯,又緩解了傳統(tǒng)池化策略造成的信息丟失問題。本文在此借鑒了Yong等[8]提出的CNN的注意力池化機(jī)制,并將上一步獲得的改進(jìn)BiLSTM模型作為注意力池化機(jī)制的輸入數(shù)據(jù)。
由于BiLSTM可以很好地保留文本的歷史、未來信息和時序信息,所以本文認(rèn)為在第2.2節(jié)中介紹的改進(jìn)BiLSTM模型產(chǎn)生的中間文本表示向量是對原始文本的一個高質(zhì)量表示,可以代表句子的整體信息。相對于BiLSTM而言,CNN可以更好地提取出句子的局部上下文信息。所以,本文通過計(jì)算中間文本表示和局部卷積特征的余弦相似度來衡量出局部卷積特征對句子整體語義信息的貢獻(xiàn)程度。
在卷積層得到卷積特征矩陣S中,vi∈1×T表示了針對句子矩陣某一位置所有卷積核提取的特征。本文在具體工作中通過設(shè)置隱含單元數(shù)目H和卷積核個數(shù)T的數(shù)量關(guān)系T=2H,從而將vi∈1×T與BiLSTM獲得的中間文本表示C∈1×2H映射到相同的維度空間中,進(jìn)而計(jì)算余弦相似度??梢哉J(rèn)為如果局部卷積特征vi和中間文本表示C具有高相似度,那么意味著vi包含更強(qiáng)的語義信息,所以將會得到vi的一個高的注意力權(quán)重。
如圖3中,首先由局部卷積特征vi與中間文本表示C計(jì)算余弦相似度ei,隨后通過ei獲得注意力權(quán)重值ai:
ei=cossim(C,vi)
(6)
(7)
在計(jì)算完所有的局部卷積特征的注意力權(quán)重后獲得注意力權(quán)重矩陣,逐一將局部卷積特征vi點(diǎn)乘與之相對應(yīng)的注意力權(quán)重值ai完成加權(quán)。最后對加權(quán)后的局部卷積特征進(jìn)行累加操作,獲得CNN最終句子表示R,計(jì)算方式如公式所示:
(8)
基于注意力的池化策略區(qū)別于最大池化策略,并非簡單的選擇卷積特征中的最大值,而是通過計(jì)算局部特征對于整個句子的影響力權(quán)重來衡量局部卷積特征的重要性,相比之下保留了更多的信息。注意力池化策略與平均池化策略相比,保留了局部特征的強(qiáng)度信息。
2.3.3Softmax層
如圖3中,在這里將CNN最終句子表示R與BiLSTM產(chǎn)生的中間文本表示C進(jìn)行首尾連接,作為最終的立場檢測特征向量,利用Softmax輸出立場檢測判定結(jié)果。依據(jù)訓(xùn)練數(shù)據(jù)中的樣本標(biāo)簽,采用反向傳播算法來對模型參數(shù)進(jìn)行梯度更新。分類過程如公式所示:
y=ws([C⊕R]⊙p)+bs
(9)
(10)
為了防止模型過擬合,本文在Softmax層中采用了Dropout策略和L2正則矩陣。Dropout策略通過隨機(jī)丟棄一部分模型參數(shù),從而降低模型復(fù)雜度。其中p表示Dropout概率,ws表示L2范式參數(shù)矩陣,L表示立場類別標(biāo)簽,bs表示偏至項(xiàng)。
模型的訓(xùn)練方法主要采用梯度下降法。在梯度下降法中主要分為批量梯度下降法和隨機(jī)梯度下降兩種。二者的主要區(qū)別在于收斂速度方面。批量梯度下降法雖然能夠很好地找到最優(yōu)解,但是由于每次更新權(quán)值需要全部樣本參與運(yùn)算,收斂速度較慢。隨機(jī)梯度下降法每次更新權(quán)值只需要一個樣本參與運(yùn)算。隨機(jī)梯度下降法可以顯著加快收斂速度,但是容易造成收斂到局部最優(yōu)解的情況。為了能兼顧兩種方法的優(yōu)點(diǎn),本文采用mini-batch的梯度下降法進(jìn)行訓(xùn)練,即每次更新權(quán)值只需要一部分樣本參與計(jì)算,這樣能夠在保證尋找最優(yōu)解的同時加快訓(xùn)練速度。實(shí)驗(yàn)中, Batch的大小被設(shè)置為45能夠獲得比較好的折中效果。本文使用了三種不同尺寸的卷積核以獲得多種卷積特征。在實(shí)驗(yàn)中設(shè)置卷積窗口尺寸分別為m=3、m=4、m=5。
本文選用了NLPCC發(fā)布的中文微博立場檢測任務(wù)提供的公開語料數(shù)據(jù)集來驗(yàn)證本文方法。數(shù)據(jù)集提供了3 000條已標(biāo)注立場類別的訓(xùn)練數(shù)據(jù),1 000條已知立場類別標(biāo)簽的測試數(shù)據(jù)。每條數(shù)據(jù)包含微博正文,描述主體,立場標(biāo)簽。數(shù)據(jù)集約定立場類別標(biāo)簽分別是:FAVOR, AGAINST, NONE,表示支持,反對,無立場三種立場。數(shù)據(jù)集共分為五個描述主體,分別是:#春節(jié)放鞭炮,#Iphone Se,#俄羅斯在敘利亞的反恐行動,#開放二胎,#深圳禁摩限電。每個立場標(biāo)簽和描述主體的分布統(tǒng)計(jì)結(jié)果如表1-表2所示。
表1 Nlpcc數(shù)據(jù)集樣例
續(xù)表1
表2 Nlpcc數(shù)據(jù)集語料分布
由此可見,訓(xùn)練數(shù)據(jù)集中存在14條漏標(biāo)記數(shù)據(jù),本文將漏標(biāo)記數(shù)據(jù)移出訓(xùn)練集。總計(jì)2 986條語料構(gòu)成訓(xùn)練集。使用Nlpcc公開標(biāo)簽的1 000條測試數(shù)據(jù)作為測試集。
由于微博文本中常常包含表情,URL,用戶名和微博語料特有的話題標(biāo)簽#Hashtag等非正式文本。這些非正式文本給立場檢測任務(wù)帶來了很大的挑戰(zhàn)。為了去除不必要的噪聲干擾,本文預(yù)先對微博文本以下預(yù)處理:
1) 過濾所有標(biāo)點(diǎn)符號和特殊字符,只保留具有語義價(jià)值信息的中英文文本。
2) 格式轉(zhuǎn)換。將原始數(shù)據(jù)中全角英文字符轉(zhuǎn)換為半角英文字符。英文字符全部轉(zhuǎn)換為小寫字符。
3) 移除微博中的短連接以及@標(biāo)簽。
4) 分詞處理。中文中詞與詞之間沒有辦法直接區(qū)分,所以需要對中文文本進(jìn)行分詞處理。分詞的效果會直接影響實(shí)驗(yàn)結(jié)果。本文使用jieba分詞進(jìn)行中文分詞。
評價(jià)分類器的主要評價(jià)指標(biāo)為準(zhǔn)確率和召回率。對于給定的測試數(shù)據(jù)集,準(zhǔn)確率是指分類器正確分類的樣本數(shù)與總樣本數(shù)之比,召回率是指被正確判定的正例占總的正例的比重,二者相互制約。為平衡準(zhǔn)確率和召回率之間的關(guān)系,引入綜合衡量指標(biāo)F度量值(F-measure)作為分類器評價(jià)指標(biāo)。
在Nlpcc提供的官方評測標(biāo)準(zhǔn)中,需計(jì)算支持(FAVOR)標(biāo)簽的F度量(FFAVOR),反對(AGAINST)標(biāo)簽的F度量(FAGAINST),使用二者的宏平均值(Favg)作為最終評價(jià)指標(biāo):
(11)
(12)
(13)
本文選擇在Nlpcc2016會議上發(fā)表的Nanyu的實(shí)驗(yàn)結(jié)果作為基線。Nanyu提出了CNN-LSTM混合神經(jīng)網(wǎng)絡(luò)模型針對中文微博進(jìn)行立場檢測,取得了很好的效果。Nanyu模型結(jié)構(gòu)如圖4所示。在CNN的卷積層和池化層中間嵌入LSTM層構(gòu)建混合網(wǎng)絡(luò)模型。首先使用卷積層對文本特征進(jìn)行初步提取,隨后對卷積層的結(jié)果進(jìn)行時序展開,使用LSTM神經(jīng)網(wǎng)絡(luò)再次學(xué)習(xí)文本表示,最后通過池層,Softmax層輸出立場分類標(biāo)簽。
圖4 Nanyu混合神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
與Nanyu混合網(wǎng)絡(luò)結(jié)構(gòu)有所不同,本文考慮卷積操作之后有關(guān)原始文本的時序信息可能已經(jīng)不再完整,或者已經(jīng)被破壞。在卷積層之后加入LSTM提取特征可能不能很好地捕獲到原始文本的時序信息,沒有發(fā)揮出LSTM的優(yōu)勢。所以本文使用并行特征提取結(jié)構(gòu),有別于Nanyu的串行結(jié)構(gòu)。由于BiLSTM可以很好地提取上下文信息與文本時序信息,本文不但使用BiLSTM學(xué)習(xí)得到的深層文本表示來指導(dǎo)卷積特征進(jìn)行加權(quán),也將它與加權(quán)后的卷積特征一同輸入到分類器中進(jìn)行分類。此外,區(qū)別于Nanyu沒有考慮到不同特征的影響力不同,本文通過在池化層中添加注意力機(jī)制,不但減少了傳統(tǒng)池化策略的信息丟失問題,而且在卷積特征中加入了影響力權(quán)重信息,從而優(yōu)化模型。
實(shí)驗(yàn)中涉及的參數(shù)和函數(shù)設(shè)置如表3所示。使用ReLu作為激活函數(shù)。在實(shí)驗(yàn)中所涉及的偏至項(xiàng)b與參數(shù)矩陣W,均采用隨機(jī)初始化的方式進(jìn)行初始化。實(shí)驗(yàn)采用表2中的訓(xùn)練集和測試集,使用本文方法測試在不同濾波器個數(shù)T和不同Dropout比例p下的Favg值。
表3 模型超參數(shù)設(shè)置
表4給出了不同Dropout比率p和不同濾波器數(shù)量T下的Favg值。從實(shí)驗(yàn)結(jié)果可以看出,當(dāng)Dropout值p大于0.5時,立場檢測的分類效果明顯下降。當(dāng)濾波器的數(shù)量T增多時,立場檢測的Favg有所提升,當(dāng)T達(dá)到150個時,對立場檢測最好。在計(jì)算相似性時,為了將BiLSTM文本表示和局部卷積特征映射到同一維度,我們令T=2H,所以卷積核個數(shù)T會影響B(tài)iLSTM模塊的復(fù)雜度。綜上,本文在模型訓(xùn)練復(fù)雜度和訓(xùn)練時間沒有顯著增加的前提下,最終選擇150個濾波器數(shù)量,Dropout比率p為0.5在此條件下,本文設(shè)計(jì)的立場檢測方法準(zhǔn)確性可以達(dá)到0.579 1。
表4 不同濾波器個數(shù)和Dropout比率下的立場檢測效果
為了驗(yàn)證本文提出的基于注意力的混合神經(jīng)網(wǎng)絡(luò)在中文微博立場檢測方法的有效性。將本文方法與傳統(tǒng)機(jī)器學(xué)習(xí)方法(SVM),CNN,BiLSTM,未添加注意力機(jī)制的BiLSTM-CNN混合網(wǎng)絡(luò)以及基線對比。具體實(shí)驗(yàn)如下:
1) 傳統(tǒng)機(jī)器學(xué)習(xí):采用word2vec模型訓(xùn)練詞向量作為輸入數(shù)據(jù),使用SVM分類。
2) CNN:采用word2vec訓(xùn)練詞向量,訓(xùn)練CNN提取特征并分類。
3) BiLSTM:采用word2vec訓(xùn)練詞向量,訓(xùn)練改進(jìn)的BiLSTM提取特征并分類。
4) BiLSTM-CNN-max:采用word2vec訓(xùn)練的詞向量,使用基于1-max pooling策略的CNN提取特征,融合BiLSTM學(xué)習(xí)的文本表示進(jìn)行分類。
5) Nanyu-NN:采用Nanyu提出的混合神經(jīng)網(wǎng)絡(luò)方法作為基線。
6) 本文方法BiLSTM-CNN-ATT:采用本文提出的基于注意力的BiLSTM-CNN混合神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取和分類。
表5為不同方法的分類準(zhǔn)確性對比。
表5 不同方法的分類準(zhǔn)確性對比
1) 與基線Nanyu-NN對比: Nanyu的思路是在CNN的卷積層與池化層之間加入LSTM再次學(xué)習(xí)文本表示,構(gòu)建混合網(wǎng)絡(luò)模型。通過和本文方法對比可以看出,本文使用word2vec作為基礎(chǔ)詞表示,構(gòu)建BiLSTM-CNN混合網(wǎng)絡(luò)模型,并通過注意力機(jī)制改進(jìn)池化層優(yōu)化特征。本文方法相對于Nanyu提出的混合網(wǎng)絡(luò)模型的效果提升了2.23%,能夠有效提升立場檢測的表現(xiàn)。
2) 通過對比單一結(jié)構(gòu)的CNN和BiLSTM模型發(fā)現(xiàn):相對于單一結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò),混合網(wǎng)絡(luò)模型的表現(xiàn)更好。理論上隨著模型的深度增加,由于參數(shù)增加模型的表達(dá)能力更加優(yōu)秀。但是模型更加復(fù)雜也更容易出現(xiàn)過擬合。本文通過Dropout策略和L2正則進(jìn)行平衡。
3) 通過和未添加注意力機(jī)制,采用普通池化策略的BiLSTM-CNN模型對比發(fā)現(xiàn):注意力機(jī)制可以有效地優(yōu)化特征,使重要的特征得以凸顯。池化層通過注意力機(jī)制緩解了信息丟失問題,提升了模型的表現(xiàn)。
4) 通過與SVM模型對比發(fā)現(xiàn):可以看出對比實(shí)驗(yàn)僅僅使用word2vec詞向量作為輸入是遠(yuǎn)遠(yuǎn)不夠的。由于傳統(tǒng)機(jī)器學(xué)習(xí)模型極大地依賴于特征工程的構(gòu)建方式,需要大量的領(lǐng)域內(nèi)知識和詞典資源,需要豐富的特征選擇策略以及大量的模型參數(shù)調(diào)優(yōu)工作,所以僅僅使用詞向量作為特征的SVM模型并沒有獲得很好的效果。也可以看出,深度學(xué)習(xí)方法減少了特征工程類方法地所需工作,模型本身已具備優(yōu)秀的特征提取能力。在已有的立場檢測任務(wù)中,研究者提出的基于特征工程的方法亦取得了不錯的效果。
為了討論本文提出的注意力機(jī)制對卷積神經(jīng)網(wǎng)絡(luò)池化層的改進(jìn)。將本文方法與采用傳統(tǒng)池化策略的混合網(wǎng)絡(luò)模型對比,具體實(shí)驗(yàn)如下:
1) BiLSTM-CNN-avg:采用word2vec訓(xùn)練的詞向量,使用基于average pooling策略的CNN提取特征,融合BiLSTM學(xué)習(xí)的文本表示進(jìn)行分類。
2) BiLSTM-CNN-1max:采用word2vec訓(xùn)練的詞向量,使用基于1-max pooling策略的CNN提取特征,融合BiLSTM學(xué)習(xí)的文本表示進(jìn)行分類。
3) BiLSTM-CNN-kmax:采用word2vec訓(xùn)練的詞向量,使用基于k-max pooling策略的CNN提取特征,融合BiLSTM學(xué)習(xí)的文本表示進(jìn)行分類。
表6為不同池化策略的分類準(zhǔn)確性對比。
表6 不同池化策略的分類準(zhǔn)確性對比
從與不同池化策略的混合網(wǎng)絡(luò)對比實(shí)驗(yàn)可以看出,在傳統(tǒng)的池化策略中1-max pooling池化策略比k-max pooling有略微的提升,但是均顯著好于average pooling策略。本文提出的基于注意力的池化策略相對于表現(xiàn)最好的1-max pooling策略有明顯的效果提升。與傳統(tǒng)池化策略相比,基于注意力機(jī)制改進(jìn)的池化操作可以明顯提升實(shí)驗(yàn)效果,減少池化層的信息丟失。同時注意力機(jī)制通過凸顯有效的立場特征達(dá)到優(yōu)化模型的目的,提升了立場檢測任務(wù)的準(zhǔn)確率。
近年來,識別文本內(nèi)容的立場傾向性已經(jīng)成為自然語言處理中較為重要的課題之一。區(qū)別于傳統(tǒng)機(jī)器學(xué)習(xí)需要構(gòu)建反映任務(wù)特性的復(fù)雜特征集合,同時有別于立場檢測領(lǐng)域內(nèi)其他工作對不同詞一視同仁進(jìn)行處理的方法,本文在已有工作的基礎(chǔ)上提出了一種基于注意力的BiLSTM-CNN混合網(wǎng)絡(luò)立場檢測方法。首先使用改進(jìn)的BiLSTM,CNN分別獲得中間文本表示和局部卷積特征,進(jìn)一步通過注意力機(jī)制得到不同局部卷積特征的不同影響力權(quán)重從而凸顯出有效特征,最終將BiLSTM學(xué)習(xí)得到的中間文本表示和CNN學(xué)習(xí)得到的最終句子表示相結(jié)合得到最終句子特征向量通過Softmax進(jìn)行分類。本文的貢獻(xiàn)主要在于將注意力機(jī)制應(yīng)用于立場檢測領(lǐng)域,在官方數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果顯示,本文方法能夠有效針對中文微博進(jìn)行立場檢測并取得了良好的表現(xiàn)。下一步的工作將針對一些復(fù)雜語法結(jié)構(gòu)的短文本展開,進(jìn)一步提高中文微博文本立場檢測的準(zhǔn)確性。
[1] 魏韡, 向陽, 陳千. 中文文本情感分析綜述[J]. 計(jì)算機(jī)應(yīng)用, 2011,31(12):3321-3323.
[2] 趙妍妍, 秦兵, 劉挺,等. 文本情感分析[J]. 軟件學(xué)報(bào), 2010,21(8):1834-1848.
[3] Xu J, Zheng S, Shi J, et al. Ensemble of Feature Sets and Classification Methods for Stance Detection[C]//International Conference on Computer Processing of Oriental Languages. Springer International Publishing, 2016:679-688.
[4] Liu L, Feng S, Wang D, et al. An Empirical Study on Chinese Microblog Stance Detection Using Supervised and Semi-supervised Machine Learning Methods[M]//Natural Language Understanding and Intelligent Applications. Springer International Publishing, 2016.
[5] Sun Q, Wang Z, Zhu Q, et al. Exploring Various Linguistic Features for Stance Detection[M]//Natural Language Understanding and Intelligent Applications. Springer International Publishing, 2016:840-847.
[6] Yu N, Pan D, Zhang M, et al. Stance Detection in Chinese MicroBlogs with Neural Networks[M]//Natural Language Understanding and Intelligent Applications. Springer International Publishing, 2016:893-900.
[7] Augenstein I, Rockt?schel T, Vlachos A, et al. Stance Detection with Bidirectional Conditional Encoding[C]//Conference on Empirical Methods in Natural Language Processing. 2016:876-885.
[8] Meng J E, Zhang Y, Wang N, et al. Attention pooling-based convolutional neural network for sentence modelling[J]. Information Sciences An International Journal, 2016, 373(C):388-403.
[9] Wei W, Zhang X, Liu X, et al. pkudblab at SemEval-2016 Task 6:A Specific Convolutional Neural Network System for Effective Stance Detection[C]//International Workshop on Semantic Evaluation,2016:384-388.
[10] Zarrella G, Marsh A. MITRE at SemEval-2016 Task 6: Transfer Learning for Stance Detection[C]//International Workshop on Semantic Evaluation,2016:458-463.
[11] Socher R, Perelygin A, Wu J Y, et al. Recursive deep models for semantic compositionality over a sentiment treebank[C]//Proceedings of the conference on empirical methods in natural language processing (EMNLP),2013:1631-1642.
[12] Hinton G E. Learning distributed representations of concepts[C]//Proceedings of the eighth annual conference of the cognitive science society,1986:1-12.
[13] Lecun Y, Kavukcuoglu K, Farabet C C. Convolutional networks and applications in vision[C]//Proceedings of IEEE International Symposium on Circuits and Systems. Lisbon, Portugal: IEEE, 2010:253-256.
[14] 吳軻. 基于深度學(xué)習(xí)的中文自然語言處理[D]. 江蘇南京:東南大學(xué), 2014.
[15] Kim Y. Convolutional neural networks for sentence classification[C]//Proc of Conference on Empirical Methods in Natural Language Processing,2014:1746-1751.
[16] Bahdanau D, Cho K, Bengio Y. Neural Machine Translation by Jointly Learning to Align and Translate[J].Computer Science, 2014.
[17] Rush A M, Chopra S, Weston J. A neural attention model for abstractive sentence summarization[J]. arXiv preprint arXiv:1509.00685, 2015.
[18] Luong M T, Pham H, Manning C D. Effective approaches to attention-based neural machine translation[J].arXiv preprint arXiv:1508.04025, 2015.
[19] Wang L, Cao Z, Melo G D, et al. Relation Classification via Multi-Level Attention CNNs[C]//Meeting of the Association for Computational Linguistics. 2016:1298-1307.
[20] Goldberg Y, Levy O. word2vec explained: Deriving mikolov et al.’s negative-sampling word-embedding method[J]. arXiv preprint arXiv:1402.3722, 2014.