張翠肖,郝杰輝,劉星宇,孫月肖
(石家莊鐵道大學 信息科學與技術學院,河北 石家莊 050043)
近年來,隨著移動互聯網技術和社交網絡的迅速發展,互聯網用戶數量急劇增加,網絡呈現出交互性、開放性、社會參與性等特征。截止2019年6月,國內網民已達到8.54億,手機網民達8.47億,互聯網普及率達到61.2%,網絡新聞用戶規模達6.86億,占網民整體的80.3%[1]。發表微博(評論)成為中國網民在互聯網上的主要活動之一,用戶不僅可以在社交網絡平臺上傳圖片記錄自己的生活,也可以通過轉發、點贊、評論等與其他用戶進行互動,或者針對某一話題公開發表自己的立場或觀點。近年來,立場檢測課題吸引了眾多學術界及工業界的關注和研究,并成為自然語言處理(NLP)中的一個新興熱門研究領域。國際語義評測比賽SemEval-2016 Task 6、自然語言處理與中文計算國際會議NLPCC2016 Task4均提出了立場檢測的任務評測分析。微博用戶對熱點事件的立場(或態度)通常能夠反映熱點事件的輿情走向,因此,對微博用戶評論的立場分析研究有著廣泛的應用前景。
傳統機器學習在對立場分析研究的工作主要集中在特征工程的構造上[2]。Anand等[3]將多種的語言學特征融入樸素貝葉斯分類器中,如n-gram、語義依存等。Sridhar等[4]利用語言學特征,運用probabilistic soft logic (PSL)對用戶以及發言的立場傾向做聯合建模分析。Xu等[5]使用了豐富的語義表示技術來獲取原始文本中蘊含的語義信息,以達到幫助識別作者的立場目的。鄭海洋等[6]利用“情感詞+主題詞”組合作為立場檢測特征,采用SVM算法在NLPCC-2016 Task4評測中取得了不錯的效果。上述方法都需要耗費大量的時間、人力在特征工程的構造上面。
近年來深度學習在自然語言處理領域取得了令人矚目的進步,Dong等[7]利用遞歸神經網絡中的自適應層提取文本中蘊含的情感信息,構建了針對具體對象的情感分析模型。Zarrella等[8]采用循環神經網絡模型,使用遷移學習的思路將其他領域知識遷移到立場檢測任務上。Chen等[9]使用訓練語料訓練詞向量空間作為詞表示,構建了基于CNN學習特征提取并進行分類的立場檢測模型。Yu等[10]構建了基于LSTM的神經網絡模型完成對描述主體和描述文本聯合建模,取得了良好的效果。
在神經網絡中,雙向長短時記憶網絡BiLSTM具有記憶能力,可以獲取句子的長時記憶信息,而一維卷積神經網絡善于獲取NLP中文本的局部主要信息,將二者進行融合,則可以在獲取文本的主要信息時,不丟失文本的局部信息。因此文中的主要創新如下:
(1)運用雙向長短時記憶網絡(BiLSTM)代替傳統的RNN和LSTM,解決了梯度彌散或者梯度消失的問題,充分考慮了文本在上下文的含義,以此獲取全局的語義信息。
(2)融合卷積神經網絡(CNN)和BiLSTM網絡,提出了CNN-BiLSTM深度模型。首先利用CNN提取局部特征,在此基礎上運用BiLSTM獲取全局語義特征,有效解決了局部特征與上下文語義的特征提取之間的聯系,最后經過全連接層、softmax分類層輸出,提高了文本立場檢測分析的準確率。
自然語言處理是機器學習的一個重要研究領域,如何將非結構化文本數據表示成計算機能夠識別處理的數據是NLP的一個非常重要的研究方向。文本表示是指將文本類型的自然語言表示成計算機能夠識別處理的數據,文本向量化是指將文本轉換為數值型張量的過程。向量表示克服了離散表示中維度災難的缺點,也稱為密集的詞向量,是將單詞與向量相關聯的一種常用的有效方法,核心思想是將每個詞都映射成低維空間上的一個稠密向量。其中詞嵌入將每個詞映射成k維向量,每篇文檔假設有n個詞,則這篇文檔可以用n×k的矩陣表示。
獲取詞嵌入的方法主要有兩種:
(1)在完成自然語言處理中分類或任務時學習詞嵌入。在這種情況下,詞向量開始是隨機初始化,然后對這些詞向量進行學習,其學習方式與學習神經網絡的權重基本相同。
(2)在自然語言處理任務引入詞向量之前,在特定訓練語料上將詞向量訓練好,然后再將其加載到需要訓練的模型中,這種詞嵌入方式叫做預訓練詞嵌入,這是一種常用的方式。
谷歌[11]2013年發布了Word2Vec算法,因為其維度抓住了特定的語義屬性,考慮到了單詞與單詞之間的語義關系,實現了在詞嵌入空間中有意義的幾何變換,因此在研究領域和工業應用中都取得了巨大成功。Word2Vec模型中,主要有Skip-Gram和CBOW兩種模型,如圖1和圖2所示。CBOW模型不包含隱層,使用雙向上下文窗口,上下文詞序無關,輸入層采用低維稠密向量表示,投影層簡化為求和或者平均。CBOW模型的訓練輸入是某一個特征詞的上下文相關的詞對應的詞向量,而輸出就是這特定的一個詞的詞向量。Skip-Gram模型和CBOW的思路正好相反,即輸入是特定的一個詞的詞向量,而輸出是預測特定詞對應的上下文詞向量。

圖1 CBOW詞嵌入模型

圖2 Skip-Gram詞嵌入模型
卷積神經網絡(convolutional neural networks,CNN)是深度學習中具有代表性的算法之一[12]。近年來,一維卷積神經網絡大量應用于提取文本詞語的上下文信息,獲取特征表示[13]。CNN神經網絡的結構為輸入、卷積、池化、全連接、輸出[14]。在NLP領域,CNN對文本處理的一般流程如下:
(1)文本處理:假設評論文本句子sentence長度經預處理為n個詞,每個詞經過Word2Vec詞嵌入查找向量化后,映射成k維向量,句子中的詞序列經拼接映射成n×k維矩陣:

c={c1,c2,…,cn-h+1}
(3)池化操作:對卷積后的特征矩陣進行池化操作,通常包括最大池化、平均池化,得到某卷積核相對應的整句話特征c',通常是所有元素的最大值或者平均值:
c'=max(c)或c'=ave(c)
(4)分類輸出:對經過池化操作的文本特征向量進行分類輸出。
category(sentence)=softmax(c')
長短期記憶網絡(LSTM)是遞歸神經網絡(RNN)的一種,其新穎的設計結構適合處理和預測間隔和延遲比較長的時間序列任務[15]。LSTM是一種含有記憶單元區塊的類神經網絡,在于其獨特的“門”結構設計。采用sigmoid函數來控制信息的通過量,“門”可以表示為:
g(x)=sigmoid(Wx+b)
其中,W為“門”的權重參數,b為偏執項參數,x為輸入向量。由于sigmoid函數取值范圍為[0,1],當取值為0時,表示“門”關閉,信息全部不通過;反之取值為1時,則表示信息全部通過;當取值介于0和1之間,則表示信息部分通過。LSTM增加了輸入門i,輸出門o,遺忘門f,控制單元狀態中信息的更新,這些結構的設計組合極大提升了LSTM網絡處理序列數據的能力。
以ht表示包含了t時刻之前的輸入信息,xt表示t時刻信息,則:
ft=sigmoid(Wf?[ht-1,xt]+bf)
it=sigmoid(Wi?[ht-1,xt]+bi)
ot=sigmoid(Wo?[ht-1,xt]+bo)
ht=ot?tanh(ct)

文中提出的CNN-BiLSTM模型由卷積神經網絡CNN和雙向長短時記憶網絡BiLSTM融合而成,其網絡結構如圖3所示。首先是將文本評論預處理后,經過詞向量化映射成n×k矩陣,再由卷積神經網絡濾波器經過卷積后提取句子部分特征,經池化層最大池化后,由BiLSTM層獲取句子全局特征,經過全連接層獲得最終的句子特征向量表示,最后經過softmax層進行立場分類。

圖3 CNN-BiLSTM中文微博文本立場檢測模型
實驗數據集采用NLPCC-2016 Task4,該數據集包含5個話題,分別是:話題1:IphoneSE,話題2:春節放鞭炮,話題3:俄羅斯在敘利亞的反恐行動,話題4:開放二胎,話題5:深圳禁摩限電。每個子話題包括無標簽數據600條,訓練數據600條和測試數據200條,共7 000條微博數據,每個話題下有3類不同立場文本,其中話題5中存在14條未標注數據,文中將未標注數據重新進行標注。
(1)數據清洗:微博數據中經常含有URL、符號、特殊字符等噪聲數據,為了不影響后續的分詞,需要在數據預處理過程中將這些噪聲數據清洗去除。
(2)分詞:分詞是數據處理前期的一項重要工作,該實驗采用2019年1月北大開源的全新中文分詞工具包pkuseg,采用web(微博網絡文本語料)細領域預訓練模型進行分詞。
(3)去停用詞:停用詞是指在文中經常出現,而不含實際意義的詞匯。文中的停用詞表在哈爾濱工業大學、四川大學、百度提供的停用詞表的基礎上,對三個停用詞表進行整合,用于后續實驗。停用詞表包括數字字符、特殊字符、常用無意義詞匯等。
(4)訓練詞向量空間:對于分詞后的語句,實驗采用Word2Vec中的skip-gram模式對5個話題進行詞向量空間訓練,詞向量維度參數voab_dim設置為300維。表1是話題1:IphoneSE進行詞向量空間訓練后,計算與“蘋果”這個詞最相關的詞語及其相似度值大小,在一定程度上證明了詞向量空間訓練的有效性。

表1 與“蘋果”語義相似詞語
實驗評價指標采用NLPCC-2016 Task4通用評估指標,首先分別計算測試樣本“FAVOR”、“AGAINST”的F值,再以F-score(FAVOR)和F-score(AGAINST)的宏平均FAVG作為最終評價標準,計算公式如下:
FFAVOR和FAGAINST的計算公式如下:
其中,P和R分別是準確率和召回率。
文中選擇Nanyu在NLPCC2016會議上發表的實驗結果作為基準線,同時設置以下對比實驗:
(1)BiLSTM:只運用BiLSTM網絡進行實驗。
(2)CNN:只運用CNN網絡進行實驗。
(3)Nanyu:Nanyu在NLPCC2016會議上發表的實驗模型。
(4)CNN-BiLSTM:文中提出的融合CNN、BiLSTM網絡模型的實驗。
實驗在基于TensorFlow的深度學習框架Keras中進行,其中TensorFlow版本為1.4,Kreas版本號為2.1.0,Python版本號為3.6,實驗中設定的參數為統一參數對比設置,主要參數設置如表2所示。

表2 參數設置
使用三組實驗方案對五個話題分別進行子實驗,調整參數設置,使用不同參數的分類器得到五個話題在測試數據上的宏平均F值。三組實驗結果數據分別如表3~表5所示。

表3 BiLSTM各個話題性能

續表3

表4 CNN各個話題性能
綜合表3~表5的實驗結果,得到各個模型實驗環境下性能的實驗結果數據,見表6。
由表6中數據可以得出,CNN-BiLSTM模型取得了良好的效果,在話題1、話題2、話題3均超過了Nanyu的實驗結果,FAVG絕對值結果分別提高了4.42%、23.34%和26.57%,尤其是在話題2、話題5上相對于Nanyu的實驗模型,提出的實驗模型相對值分別提高了44.20%、61.01%,取得了非常好的實驗結果,但在話題3與話題4上的實驗結果FAVG略低于Nanyu的實驗模型,但達到了相當的效果。總體上,CNN-BiLSTM實驗模型在五個話題的實驗結果FAVG提高了7.05%,優于Nanyu的實驗模型。

表6 各個模型的實驗結果比較
基于卷積神經網絡(CNN)和雙向長短時記憶網絡(BiLSTM)各自的特點,提出將CNN和BiLSTM網絡進行融合的CNN-BiLSTM深度模型應用于自然語言處理領域中的文本立場檢測分析任務中。該模型充分考慮了卷積神經網絡有效提取文本局部特征與BiLSTM網絡提取文本全局特征的優勢,以及文本在上下文語義中的信息,有效提取了文本的特征。將CNN-BiLSTM深度模型與CNN模型、BiLSTM模型以及Nanyu的實驗結果進行了對比,提出的融合模型分類準確性能評價指標宏平均FAVG值均優于單個CNN模型、單個BiLSTM模型以及Nanyu的實驗模型結果值,有效提升了文本立場檢測準確率,驗證了CNN-BiLSTM模型的有效性。但是該神經網絡的層數還不是很深,下一步將重點研究深度神經網絡的應用。另外將近幾年興起的注意力機制融入實驗模型中,這也是下一步的實驗研究方向。