陳 瑋,林雪健,尹 鐘
(上海理工大學 光電信息與計算機工程學院,上海 200093)
情感是人們對客觀事物認知的心理表現,是表達思想的關鍵。隨著微博、豆瓣、Twitter等社交軟件在互聯網上的普遍使用,大量的新聞和評論等數據均可以在網絡上獲得[1]。對社交媒體內容中所表達的情感進行檢測和分析,有利于在商業、公共衛生、社會福利等方面的應用[2]。
情感預測的任務是確定對一個目標或主題的態度,態度可以是一種極性(積極或消極),也可以是一種情感狀態,如喜悅、憤怒或悲傷[3]。以往大多數研究是判斷社交媒體內容中所包含的正面或負面態度,如商品評論中,顧客對于某個產品是否滿意,或者在影評中,觀眾對于影片持精彩或乏味的態度。關于判斷情感狀態的工作,大多只關注單標簽分類,將情感文本在多個類別中劃分為一個情感類別,而忽視了多種情感類別可能在一個文本實例中共存的情況,這顯然與現實不符[4]。例如,一個老人有三個兒子,但老了沒有一個人照顧他,這可能導致讀者悲傷、憤怒或者其他不同的情感。
近年來,多標簽分類在很多領域都有了廣泛的應用,如文本分類、圖像標注、生物信息學領域[5]等。目前,針對微博文本進行多標簽情感分類的研究尚處于起步階段[6]。第二屆自然語言處理與中文計算會議(NLP&CC2013)首次提出了關于中文微博的細粒度情感預測任務,要求為每一個微博文本實例從一組關聯的標簽中選取多個情感標簽。2017年,孫松濤等人[7]利用卷積神經網絡(convolution neural network,CNN)模型將微博句子中的詞向量合成句子向量,并將這些句子向量作為特征訓練多標簽分類器,在NLP&CC2013數據集上完成微博的多標簽情感分類。該方法只提取了文本的局部特征,而沒有考慮文本的全局語義信息。2019年,羅鋒等人[8]提出了一種基于分層注意力的長短時記憶網絡(long short term memory networks,LSTM)模型,其使用注意力機制對文本進行表示,之后使用LSTM進行多標簽分類,但該方法忽略了文本的局部特征。王瑩等人[9]在2019年使用FastText模型對爬取的新聞文本數據集進行情感預測,實驗結果表明,FastText模型的準確率高于傳統的支持向量機、邏輯回歸等機器學習方法,速度優勢比神經網絡模型更加明顯。2020年,孫小婉等人[10]利用Transformer的多頭注意力機制同時獲取文本的全局特征和特定方面相關的部分信息,在一定程度上解決了CNN難以獲取全局語義信息和RNN訓練速度過慢且單詞間的依賴程度隨著距離增加而衰弱的問題,在Amazon美食評論數據集和Booking酒店評論數據集上完成細粒度情感的分析,但該方法未能考慮到標簽的相關性。
在多標簽情感預測分類任務中,除了要考慮文本的局部特征和全局語義信息以外,還需要對標簽之間的相關性進行充分的建模。姚源林等人[11]在2014年提出一種結合上下文特征和篇章特征的多標簽微博情感分類方法,該方法以句子為單位,首先對文本中的每個句子進行初始情緒分類,然后通過句子之間的情緒轉移關系特征考察每個句子之間的情緒標簽相關性,最終在NLP&CC2013數據集上進行實驗。但該方法忽視了句子的局部特征。Huang等人[12]在2016年提出通過計算標簽的余弦相似度來學習標簽特征的多標簽分類,通過判別不同標簽是否能共享標簽之間特征的方法考察標簽的相關性。2019年,楊濤等人[13]在進行多標簽文本分類預測時,通過對所有標簽的詞向量空間進行k近鄰檢索,將與網絡輸出向量余弦距離最近的前k個標簽作為預測的多標簽,驗證了該方法在標簽語義擴展性上的可行性。因此,利用不同標簽之間的相關性可有效地提高多標簽學習的性能。
現有的多標簽情感分類方法有些沒有同時提取文本的局部特征和全局語義信息,有些沒有充分考慮標簽之間的相關性,針對這兩個問題,本文提出了一個(Label-CNN_LSTM_Attention,L-CLA)模型。利用CNN提取文本中詞語的局部特征,并將其與詞向量組合,作為LSTM的輸入。LSTM作為一種特殊的RNN模型,能夠較好地解決長依賴問題[14]。在提取詞語局部特征和詞向量的長期依賴關系后,注意力機制將根據每個文本片段的貢獻,在不同的時間步生成文本特征向量,組合成完整的文本特征表達式。同時,為了解決標簽之間的相關性,利用標簽相關矩陣將標簽矩陣補全,與文本特征表達式拼接。最終,在輸出層進行文本情感分類,將提取的文本特征與所對應的標簽矩陣共同作為分類器輸入,增強了分類的精確性。
為了使表述更加清晰,本文引入了一些符號來描述多標簽情感分類的任務。給定一個有n個單詞的文本X={x1,x2,x3,…,xn}和所有標簽的集合L={L1,L2,…,Ll},這里l為總的標簽數目。提出的模型如圖1所示。該模型包含文本特征提取和標簽補全兩大部分。利用Word2Vec訓練得到文本詞向量,CNN提取文本X中每個詞的N-gram表示pj,pj與詞向量wj結合作為LSTM層的輸入,產生隱藏狀態hj。最后引入注意力機制,在步長t內生成文本特征表達式S′。同時,由于重新標注的NLP&CC2013數據集中存在只擁有一個情感標簽的文本,為了提高多標簽分類的性能,根據標簽相關性對只擁有一個情感標簽的文本進行標簽補全,將補全后的標簽向量與文本特征表達式拼接,在輸出層使用softmax函數進行分類,獲取文本所包含的情感類別。

圖1 基于神經網絡融合標簽相關性的模型
文本特征的提取過程由詞嵌入層、CNN層和LSTM層構成。CNN具有很強的局部語義特征提取能力,已經在文本分類領域得到了廣泛的使用。而LSTM可以很好地捕獲長期的距離依賴特征[15]。為了更好地提取局部特征和全局語義信息,本文將CNN和LSTM結合起來提取文本信息。下面詳細說明各個層的具體工作。
1.1.1 詞嵌入矩陣
該層的目的是將輸入的句子轉化成詞向量,本文使用Word2Vec訓練的詞向量代替CNN詞嵌入層轉化的向量。Word2Vec在2013年被谷歌提出,可以很好地在向量空間中找到句子中相似的詞[16]。將數據進行簡單的預處理后,利用預先訓練好的Word2Vec模型將文本X轉換成詞向量W={w1,w2,w3,…,wn}。由于輸入的句子長度不同,因此有必要設置向量的最大維度,如果句子所映射成的向量維度未滿足最大維度,則用零向量填充。
1.1.2 CNN層
該層使用CNN提取文本X中每個詞xj的 N-gram 表示pj,xj是文本中的第j個單詞。當CNN用于提取特征時,通常是卷積核和maxpooling層一起工作來生成最重要的局部特征。然而,池操作在很大程度上降低了特征位置信息,所以我們僅應用卷積不進行池操作,保持了原句的順序性,使得LSTM層能更好地學習長依賴關系。令m∈Rk×d表示長度為k、向量維數為d的卷積核。對于句子中任何一個詞向量wj,都有一個窗口大小為k的矩陣,如式(1)所示。
其中,Wj:j+k-1∈Rk×d,卷積核m依次經過S,得到相應的特征映射e∈Rn-k+1,每一個特征映射ej的計算如式(2)所示。
其中,°是點積,b是偏置參數,f是一個非線性函數,使用Relu作為激活函數。使用h個窗口大小為k的卷積核,我們可以得到h個相同長度的特征映射。然后對特征映射進行拼接和轉置得到W,如式(3)所示。
其中,ei是指由第i個核卷積生成的特征映射。令pj為W∈R(n-k+1)×h的第j行,是h個不同核在wj上運行產生的h維向量wj:j+k-1,它可以看作是帶有xj局部語義信息的N-gram表示。
1.1.3 LSTM層
循環神經網絡RNN在訓練過程中很容易產生長依賴問題,導致梯度消失和梯度爆炸的問題,而LSTM有效解決了這兩個問題[17]。LSTM包括輸入門Xt、輸出門Ot、遺忘門ft、儲存層Ct以及隱藏層ht。Wf、Wi、Wc、Wo和bf、bi、bc、bo分別是每個門的權值矩陣和偏置參數,結構如圖2所示。

在本層中,將CNN層提取的pj與單詞向量wj組合為序列S作為LSTM的輸入,結合上一層所產生的隱藏狀態ht-1,產生每個詞所對應的隱藏狀態ht,如式(4)、式(5)所示。

圖2 LSTM結構
S=[g1,g2,g3…,gn]
(4)
gj=[wj,pj]
(5)
使用LSTM和Attention機制計算每一個詞的隱藏狀態,如式(6)所示。
1.1.4 注意力機制
對于一個句子而言,并不是所有的單詞都同等重要。句子中的一些情意信號,如情意詞,通常對句子的情感極性起決定性作用[18]。因此,我們利用注意力機制來提取較重要的文本特征表示ct。在步長t內,注意力機制分配給文本不同部分的權重αt,j,文本特征表示ct計算如式(7)所示。
其中,αt,j是特征向量的一個權重,hj為隱藏狀態。為了計算αt,j,我們先要利用一層前饋神經網絡計算得到etj作為hj的一個表示,計算如式(8)所示。
其中,f為非線性變換函數,Ws∈R1×dh和bs∈R分別是權重矩陣和偏置參數,dh為hj的維數。權重αt,j的計算如式(9)所示。
最后在時間步長t內,ct組成文本特征表達式S′,如式(10)所示。
在文本實例“太令人生氣了。中山南二路宛平路,我的很多長輩都住在那里,土方車真的很嚇人,車身沉重,剎車不便,司機視野也不好,正常人看到都會有意識地避讓的,但是有很多土方車闖紅燈、搶黃燈已經習慣了,遵紀守法的不亂穿馬路的老百姓是不是應該去團購鋼鐵俠的鎧甲啊。”中,該實例只被標注為“憤怒”的標簽,但在該語境下,“憤怒”和“恐懼”情感共存的可能性很大。因此,考慮到標簽之間的相關性,有必要對僅有一個標簽的語料進行標簽補全,考察與其相關性較大的標簽是否符合該語料所表達的情感,這樣有利于提高分類的精確性。
本文通過將標簽矩陣Y與一個標簽相關矩陣A相乘,達到補全標簽矩陣的目的,即對標簽矩陣中的標簽向量進行線性變換,得到一個新的標簽矩陣。通過歐氏距離度量的方法找到標簽之間的距離信息,用標簽之間的距離來描述標簽集合中標簽的相關性,最終得到標簽相關矩陣A。標簽矩陣Y的定義如式(11)所示。
其中,l為標簽總數目,為了進行標簽補全,利用one-hot編碼對單個標簽進行編碼。如果文本實例中存在情感標簽L1,即Y=[1,0,…,0]。標簽相關性矩陣如式(12)所示。
其中,A∈Rl×l。wij(1≤i≤l,1≤j≤l)的值由歐氏距離得出,具體計算方法如式(13)、式(14)所示。

(13)

(14)
式(13)中,(xi,yi)為標簽集合中第i個標簽的向量,(xj,yj)為標簽集合第j個標簽的向量。z為第i個標簽與第j個標簽的歐氏距離。式(14)中,wij為第i個標簽和第j個標簽的相關性值。由于z為非負數,將其取倒數使wij置于(0,1)之間。任意兩標簽之間的相關性越大,則z的值越小,wij的值越大。標簽補全過程如式(15)所示。
其中,Y*中數值較大的列所代表的標簽與訓練文本所標注標簽具有較大的相關性,反之數值較小的列所代表的標簽與標注標簽之間的相關性較小。
以重新標注后的NLP&CC2013數據集為例,將8種情感類別按照“無”“厭惡”“喜好”“高興”“恐懼”“悲傷”“憤怒”“驚訝”的順序排列,則“憤怒”所代表的原始標簽向量為Y=[0,0,0,0,0,0,1,0],直觀上,該語料中出現了“嚇人”一詞,“憤怒”可能與“恐懼”具有很強的標簽相關性,因此,計算標簽之間的相關性矩陣A。如式(16)所示。
標簽“憤怒”與標簽“無”“厭惡”“喜好”“高興”“恐懼”“悲傷”“憤怒”“驚訝”的相關性值依次為0,0.46,0.04,0.01,0.58,0.46,1,0.31。因此,在該實例中標簽“憤怒”與標簽“恐懼”的相關性值最高,兩個標簽很可能共存,將原始標簽補全后得到補全向量Y*=[0,0,0,0,1,0,1,0]。
將得到的文本特征向量S′和補全后的標簽矩陣拼接起來,如式(17)所示。
最后利用softmax函數進行分類,如式(18)所示。
其中,Z是上一層的輸出,C是維度,P(i)為標簽概率。
實驗操作系統為Ubuntu16.04.3 LTS、8G內存、CPU為酷睿i5-7200U、4G顯卡。編程語言為Python 3,開發工具為Pycharm,使用的深度學習框架為Tensorflow-1.10。
由于標注好的多標簽情感分析數據集較少,本文選用了NLP&CC2013微博情感分析數據集,該數據集中情感被分為8個類別,分別為無、厭惡、喜好、高興、恐懼、悲傷、憤怒和驚訝,標注好的微博語料有14 000條,每個微博語料有一個或兩個情感標簽,訓練集有4 000條語料,測試集有10 000條語料。但在標注好的測試集中,情感標簽的分布不均衡,無情感標簽的語料有5 000多條。因此,將該數據集進行重新標注。
2.2.1 數據集標注準則
由于每個人對情感判別的標準不一致,很容易出現截然不同的標注結果。因此,本文在標注過程中,采用三人獨立標注、協同交叉驗證的方式,即每個人先獨立標注一部分語料,之后隨機從三個標注人員的標注語料中抽取相同數目的文本語料,交叉進行評估,若標注準確率在90%以上,則此次抽取的文本語料標注結果有效。
2.2.2 數據集標簽分布
重新標注后的NLP&CC2013數據集標簽分布如表1所示。表中數據為該兩種情感標簽占標簽總數的百分比。本文不區分文本中情感的主次關系,只對文本中包含哪些情感標簽進行探究。從表1可以看出,僅包含一個標簽的文本約占三分之一,對于這部分標簽要進行標簽補全操作,不同極性的情感標簽共存的情況較少,如“厭惡”和“喜好”,“高興”和“憤怒”等,同極性的情感標簽共存的情況較多,如“喜好”和“高興”,“厭惡”和“憤怒”等。

表1 情感標簽分布統計(%)
最終,對重新標注后的NLP&CC2013數據集進行劃分并實驗,其中訓練集12 000條語料,驗證集1 000條語料,測試集1 000條語料。
2.3.1 文本預處理
主要包括文本標準處理和分詞。標準處理包括通過正則去噪,將繁體轉化成簡體等操作。分詞則通過結巴分詞包對重新標注后的NLP&CC2013數據集進行分詞處理。最后,建立詞典實現文本預處理。建立詞典的過程中過濾掉出現次數小于5的詞,詞典中未出現的詞用
2.3.2 詞向量訓練
詞嵌入模型Word2Vec利用詞語與上下文的關系將詞語轉化為一個低維實數向量,能有效區分一詞多義或多詞一義[19]。本文中使用Word2Vec中的Skip-gram模型。文本詞向量的大小默認值為256,標簽詞向量的大小默認為128,詞向量上下文最大距離window默認值為8,在訓練語料的過程中,可以根據語料的大小動態調整該值。隨機梯度下降法中迭代的最大次數默認值為5,對于大語料,可以增大這個值。
2.3.3 參數的設置
根據本文提出的方法L-CLA,在參數的選擇過程中,通過調優,當CNN層的參數設置如表2所示時,LSTM層的參數如表3所示,此時取得了較好的分類效果。

表2 CNN層參數設置

表3 LSTM層參數設置

續表
為了評價L-CLA的性能,采用了四種廣泛使用的多標簽學習的性能評估指標[20],包括漢明損失(HL),1-錯誤率(OE)、排序損失(RL)和平均精度(AP)。
漢明損失(hamming loss,HL): 用來評估預測標簽與相關真實標簽不一致的比例,該指標取值越小,則預測的結果越準確,計算如式(19)所示。
其中,Δ代表預測標簽集合與真實標簽集合之間的對稱差,N為測試集樣本數目,h(xi)表示樣本xi的預測結果,Q為標簽空間的維度,yi表示對應的真實標簽。
1-錯誤率(one-error,OE): 用來評估預測結果中第一個標簽不在真實標簽集合中的概率,計算如式(20)所示。
其中,[[]]表示當預測正確時結果返回0,預測錯誤時結果返回1,Yi為預測標簽結果,Zi為真實標簽結果,argyjminYi表示樣本位靠前的標簽,N為測試集樣本數目。
排序損失(ranking loss,RL): 用來評估預測結果標簽集中的排序序列中,錯誤標簽出現在正確標簽之前的平均次數。計算如式(21)所示。

平均精度(average precision,AP): 用來度量預測結果標簽中正確排序的平均次數。計算如式(22)所示。
其中,yi為標簽空間集合,lk為預測標簽,lj為真實標簽,xi為預測標簽概率,N表示測試集樣本數目。平均精度的值越大,說明預測的結果越準確。
為評估CNN與LSTM結合的模型性能,將其與單獨的CNN和單獨的LSTM進行對比,在訓練過程中,設置模型提前停止條件,當驗證集 val_acc 三輪不再增加時保存此模型,三個模型的測試集對比結果如圖3所示,可以看出,CNN與LSTM相結合的模型在測試集上表現優異。

圖3 CNN、LSTM與CNN-LSTM準確率對比
為了評估L-CLA模型的性能,將其與Unigram+Context、FastText、Transformer模型、CNN-LSTM四種多標簽分類算法作對比。
(1)結合上下文和篇章特征的多標簽分類方法(Unigram+Context): 該方法利用基分類器對微博文本進行分析得到每個句子的初始情感分類結果,然后利用相鄰句子的轉移概率對句子情感類別進行修正。
(2)FastText模型: 該模型相比于傳統的詞嵌入方法,增加了字符n-gram的嵌入[21],能夠包含單詞的局部特征,具有非常快的訓練速度。模型的輸入是詞序列,使用層次softmax函數計算預定義類上的概率,利用交叉熵計算損失。
(3)Transformer模型: 該模型包含編碼器和解碼器兩部分,不同于傳統的CNN和RNN,利用Self-Attention可以有效解決NLP任務中長距離依賴特征的問題。
(4)CNN-LSTM結合方法: 相比于本文方法,少了標簽矩陣的補全過程,未考慮標簽之間的相關性。
5種方法的對比結果如圖4所示。可以看出,在測試集上,使用詞語一元文法特征作為主要特征,并結合上下文進行微博情感預測的方法效果要低于神經網絡的方法,準確率在69%左右。CNN與LSTM相結合的方法準確率達到75%。FastText的收斂速度較快,準確率要低于CNN和LSTM相結合的方法,達到71%。而Transformer方法的收斂速度相比于其他方法較慢,最終的準確率達到72%。而本文方法L-CLA在CNN和LSTM相結合的基礎上添加標簽相關信息的補全過程,能夠略微提升準確性,最終準確率達到78%。

圖4 五種模型準確率對比
表4中,HL代表漢明損失,OE代表1-錯誤率,RL代表排序損失,AP代表平均精度。“↓”代表值越小分類效果越好, “↑”代表值越大分類效果越好。從表4可以看出,本文提出的L-CLA模型在平均精度(AP)和漢明損失(HL)方面表現較為優異。相對于使用神經網絡方法而言,使用一元特征并結合上下文的方法在各指標上有所欠缺。FastText方法能夠利用N-gram獲取局部詞序信息,Transformer方法能夠解決句子長依賴問題,深度學習方法CNN-LSTM既提取了局部特征,又提取了全局語義信息,能夠較為準確地完成多標簽情感分類任務(MLC)。這四種方法均沒有考慮到標簽之間的相關性,而本文提出的L-CLA模型能夠將文本局部特征和全局語義信息相結合,還考慮了標簽之間的相關性。實驗結果表明,L-CLA具有較好的多標簽分類效果。

表4 實驗對比結果
本文提出了一種解決多標簽分類任務的方法L-CLA,該方法結合CNN和LSTM神經網絡能夠有效地提取局部特征和全局語義信息,利用Attention機制為情意詞分配更高的權重,同時利用標簽相關矩陣補全了每個文本實例所對應的標簽矩陣,考察了標簽之間的相關性,即一個文本中只標注了一個情感標簽,那么與其相關性較大的情感標簽是否適合于該文本,對單個情感標簽進行標簽補全有利于提高多標簽分類的精確性。實驗證明,本文的模型在重新標注的NLP&CC2013數據集上表現較好。