羅觀柱, 趙妍妍, 秦 兵, 劉 挺
(哈爾濱工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 哈爾濱 150001)
隨著社交媒體(Social Media)的高速發(fā)展, 如Twitter、Reddit、微博等已經(jīng)是人們?nèi)粘I钪械囊徊糠?,網(wǎng)民傾向并擅長(zhǎng)在社交媒體中使用某些修辭方法來宣泄情感,比如使用幽默、諷刺或反語等表達(dá)方式來強(qiáng)調(diào)個(gè)人情感。在社交網(wǎng)絡(luò)上這種發(fā)表觀點(diǎn)或表達(dá)情感的修辭方法豐富著人類語言,但同時(shí)修辭方法的添加,給多項(xiàng)自然語言處理(NLP)任務(wù)帶來了明顯的困難。比如在情感分析任務(wù)中,以往傳統(tǒng)的技術(shù)則難以正確檢測(cè)含反語諷刺文本等修辭成分的真實(shí)情感。修辭方法的廣泛運(yùn)用隨之帶來的副作用會(huì)嚴(yán)重影響社交媒體文本的情感計(jì)算或觀點(diǎn)挖掘的檢測(cè)準(zhǔn)確性,故而研究反語、諷刺或幽默等修辭方法,對(duì)于多項(xiàng)自然語言處理任務(wù),尤其是情感分析、觀點(diǎn)挖掘等具有重要意義。在社會(huì)媒體的常用修辭方法中,反語(可譯作Irony)或者諷刺(可譯作Sarcasm)的應(yīng)用較為普遍。具體來講,前者常使用跟作者心中原意不一致的詞來強(qiáng)調(diào)情感,往往隱含有否定、反對(duì)、諷刺或者自嘲等情感,是一種帶有強(qiáng)烈感情色彩的修辭方法,以“I just love being ignored ?”為例,作者顯然想表達(dá)一種被人忽視的負(fù)面情感,但字面上卻使用了強(qiáng)烈的褒義詞“l(fā)ove”。后者常用夸張或比喻等修辭對(duì)某對(duì)象進(jìn)行一種揭露,或者批評(píng)嘲笑等,以“Good thing Trump is going to bring back all those low education high paying jobs.”為例,作者通過這種文字來表達(dá)對(duì)Trump的批判。反語與諷刺的關(guān)系[1],從某種意義上可以認(rèn)為諷刺是包含作者個(gè)人情緒(比如包含攻擊抨擊等情緒)的反語形式的一種。為了方便表述,在本文中會(huì)將反語和諷刺統(tǒng)一表達(dá)為反諷一詞,反語和諷刺的區(qū)別在此忽略。
反諷的類別可以進(jìn)一步劃分,在SemEval2018 任務(wù)3[2]中將反諷分為3類,即:前后情感矛盾(ironic by clash)、場(chǎng)景反諷(situation Irony)和其他反諷(other irony)。前后情感矛盾反諷比如“I justlovebeingignored?”中的{love,ignored}為極性相反的兩詞,正因?yàn)檫@兩個(gè)詞的使用導(dǎo)致了該句話為反諷修辭;場(chǎng)景反諷比如“Just saw anon-smokingsignin the lobby of atobaccocompany”,“non-smokingsign”在“tobaccocompany”這種場(chǎng)景下才是一種反諷的說法;其他反諷為不含明顯極性相反詞的類型,比如“Human brains disappear every day. Some of them have never even appeared”。經(jīng)統(tǒng)計(jì)前后情感矛盾反諷約占69.9%。本文針對(duì)反諷中的前后情感矛盾形式,設(shè)計(jì)了一種詞對(duì)注意力(word pairs attention)模型,可以捕捉{love,ignored}這種極性相反詞,從而可以推斷一句話是否是反諷修辭。
反諷是一種常用的修辭方法,國(guó)內(nèi)外眾多研究者對(duì)反諷理論及其識(shí)別方法做了很多工作。國(guó)內(nèi)外學(xué)者對(duì)反諷檢測(cè)提出了若干算法,大多數(shù)的研究都將反諷識(shí)別看作一種文本分類任務(wù)。這些算法可分為3類,分別是:基于規(guī)則的反諷識(shí)別、基于傳統(tǒng)機(jī)器學(xué)習(xí)的反諷識(shí)別和基于深度學(xué)習(xí)的反諷識(shí)別。對(duì)此可做闡釋分述如下。
Tsur等人[3]提出的諷刺檢測(cè)算法用到了少量標(biāo)注的種子句子,但沒有使用未標(biāo)注數(shù)據(jù),通過網(wǎng)頁搜索自動(dòng)擴(kuò)展種子集作為訓(xùn)練集合(train set),然后使用拓展后的訓(xùn)練集合來學(xué)習(xí)并分類,學(xué)習(xí)時(shí)使用的特征包括2類:基于模板的特征和基于標(biāo)點(diǎn)的特征。對(duì)于前者,每個(gè)模板是一個(gè)高頻詞的有序列表,類似于數(shù)據(jù)挖掘技術(shù)中的列表模板。后者則包括嘆號(hào)、問號(hào)和引號(hào)等標(biāo)點(diǎn)符號(hào)的數(shù)量,以及句中首字母大寫和全大寫的單詞數(shù)量,最后使用k-近鄰進(jìn)行分類。
Gonzalez-Ibanez等人[4]用tweets數(shù)據(jù)研究了直接表達(dá)正負(fù)面觀點(diǎn)的諷刺和非諷刺的推文。過程中采用了基于SVM和邏輯回歸的監(jiān)督學(xué)習(xí)方法。特征為unigram和一些基于詞典的信息,包括詞類、感嘆詞和標(biāo)點(diǎn)符號(hào)等。其中也用到了表情符號(hào)和恢復(fù)標(biāo)記。
基于深度學(xué)習(xí)的方法最近在NLP研究中的眾多領(lǐng)域引起了轟動(dòng)并成果顯著。在反諷識(shí)別任務(wù)上,Bamman等人[5]使用待檢測(cè)文本的上下文信息,并進(jìn)一步挖掘社交用戶的行為信息 , 設(shè)計(jì)基于深度學(xué)習(xí)的諷刺識(shí)別模型。Zhang等人[6]使用雙向遞歸神經(jīng)網(wǎng)絡(luò)捕捉目標(biāo)推特文本的句法和語義信息,同時(shí)利用與目標(biāo)推文相關(guān)的歷史推文自動(dòng)學(xué)習(xí)特征進(jìn)行諷刺識(shí)別,并取得較好的性能。Chen等人[7]和Gui等人[8]從表示學(xué)習(xí)的角度切入,提高文本分類情感分析模型的效果。Ghosh等人[9]提出的一種卷積長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(CNN-LSTM-DNN)取得了最好的性能。
針對(duì)前后情感矛盾式反諷(占比69.9%),研究提出了一種上下文無關(guān)的反諷識(shí)別模型。例如“I justlovebeingignored?”, “Shittydrivers are alwaysfun.”,對(duì)于詞對(duì)(word pairs) {love,ignored}與{Shitty,fun}在情感、狀態(tài)或行為上“相反”,從這一點(diǎn)出發(fā)研究可以構(gòu)造一種基于注意力機(jī)制[10](Attention Mechanism)的深度學(xué)習(xí)網(wǎng)絡(luò)模型,以此用來查找矛盾詞對(duì)。對(duì)此擬展開研究論述如下。
一般來說,已有的反諷識(shí)別算法往往依靠較深的序列上下文神經(jīng)網(wǎng)絡(luò)模型來對(duì)要檢測(cè)的反諷句子進(jìn)行表述,較常用的序列模型有GRU[11]門控循環(huán)單元、LSTM[12]長(zhǎng)短時(shí)間記憶網(wǎng)絡(luò)等模型提取上下文信息特征。這類網(wǎng)絡(luò)模型共同的不足是使用中常常難以準(zhǔn)確地捕捉目標(biāo)反諷句子的“詞對(duì)不一致(word pairs clash)”或者稱之為“詞對(duì)矛盾”這一鮮明特征,因?yàn)橹苯邮褂肎RU、LSTM表征句子意味著忽略了目標(biāo)反諷句中的明顯特征,該特征的缺失可能會(huì)影響模型的效果。針對(duì)反諷識(shí)別的模型應(yīng)該能夠關(guān)注到前后不一致(矛盾)的詞對(duì),而且模型的準(zhǔn)確性也會(huì)得到提高,更重要的是通過這種思路模型還會(huì)具有一定的可解釋性。本文提出的模型使用了注意力機(jī)制來實(shí)現(xiàn)上述目標(biāo)。該模型的整體框架如圖1所示。
由圖1可知,為了捕捉兩詞之間的“矛盾性”,研究構(gòu)造了一種word pairs attention模型(WPA),即再將句子經(jīng)過BiLSTM層表示后,任意兩詞的隱層向量做attention,這樣對(duì)于一個(gè)長(zhǎng)度為L(zhǎng)的句子可得到L×L的注意力分?jǐn)?shù)矩陣,然后使用某種方案利用該注意力分?jǐn)?shù)矩陣得到句子的向量表示 ,最后使用softmax概率歸一化函數(shù)對(duì)句子表示向量進(jìn)行二元分類可得相應(yīng)的類別。其中,de為word embedding的維度,L為句子長(zhǎng)度,dh為隱層向量維度,ds為句子表示向量的維度。為此,研究還提出了2種利用注意力分?jǐn)?shù)矩陣的方案,一種是使用max pooling[13],對(duì)應(yīng)的模型稱為WPA-P;另一種是二次attention[14],對(duì)應(yīng)的模型稱為WPA-A。前者是對(duì)矩陣的每一行進(jìn)行max pooling操作得到L×1向量,在此基礎(chǔ)上進(jìn)一步得到句子向量;后者是將L×L的注意力分?jǐn)?shù)矩陣看作L個(gè)L×1向量,進(jìn)一步得到L個(gè)以詞為基準(zhǔn)的句子表示,再對(duì)其做self-attention得到句子向量。
2.1.1 word pairs attention計(jì)算
簡(jiǎn)單來講,word pairs attention模型(WPA)是一種基于詞對(duì)(word pairs)關(guān)系的模型,可以引導(dǎo)模型訓(xùn)練中刻意關(guān)注{love,ignored}這種不一致的詞對(duì)關(guān)系,WPA模型框架如圖2所示。
想要計(jì)算任意詞對(duì)的注意力分?jǐn)?shù),研究使用的是線性感知機(jī)來計(jì)算注意力分?jǐn)?shù),具體的計(jì)算公式為:
sij=Wa([wi;wj])+ba.
(1)
其中,wi,wj∈Rdh為句子中的任意兩個(gè)詞的BiLSTM隱層表示;符號(hào)“;”代表兩向量拼接;Wa∈R1×2dh為感知機(jī)的系數(shù)矩陣;標(biāo)量ba為感知機(jī)的偏置;標(biāo)量sij即為這兩個(gè)詞的注意力分?jǐn)?shù)。
word pairs attention
圖2 Word pairs attention計(jì)算
顯然,一句話中任意兩個(gè)詞做attention操作可得到L×L個(gè)注意力分?jǐn)?shù),這里需要注意的是,其中一詞與該詞本身的注意力分?jǐn)?shù)手動(dòng)設(shè)置為0,考慮到詞與自身不可能存在詞對(duì)矛盾關(guān)系,因此無需計(jì)算注意力分?jǐn)?shù)。
2.1.2 注意力分?jǐn)?shù)矩陣的池化處理
由2.1.1節(jié)研究得到了一個(gè)L×L的注意力分?jǐn)?shù)矩陣,接下來考慮如何利用該矩陣。一種最簡(jiǎn)單的思路是借鑒計(jì)算機(jī)視覺中的卷積神經(jīng)網(wǎng)絡(luò)(CNN or ConvNet)的池化(Pooling)技術(shù)。Pooling操作常用于CNN網(wǎng)絡(luò)中,是對(duì)卷積操作后產(chǎn)生的特征圖(feature map)的一種降維操作,常用的有最大化池化(max pooling)、平均化池化(average pooling)等。Pooling操作可以極大地減少參數(shù)數(shù)量和計(jì)算量,減小內(nèi)存消耗,保持平移不變性,增大感受視野。對(duì)于二維L×L注意力分?jǐn)?shù)矩陣,可以使用Pooling技術(shù)將其降為L(zhǎng)×1的一維向量。這里研究采用的是max pooling技術(shù),因?yàn)橄鄬?duì)于average pooling而言,max pooling更適合捕捉矛盾詞對(duì),比如對(duì)于“I justlovebeingignored?”來說,“I”與某個(gè)詞的注意力分?jǐn)?shù)越大,可以認(rèn)為“I”與該詞相對(duì)于其他詞而言更具有矛盾性。max pooling技術(shù),即對(duì)于每一行的attention值取其最大作為該行的attention。從直觀上來講,研究只關(guān)心與當(dāng)前詞最相關(guān)的另一個(gè)詞,這就是使用max pooling的原因。具體見圖3。
圖3 按行取max pooling
由圖3可知,對(duì)任意的兩詞做注意力操作,從而得到了注意力分?jǐn)?shù)矩陣(attention score matrix)。在該矩陣中,每一行取最大的分?jǐn)?shù),這樣即可得到L×1的一維向量,接下去還要使用softmax函數(shù)做歸一化處理,如此一來就可以得到注意力分?jǐn)?shù)的概率形式,具體公式如下:
a=softmax(maxrows),
(2)
其中,s為注意力分?jǐn)?shù)矩陣,a∈RL。
由此,研究得到了注意力分?jǐn)?shù)向量a∈RL,與原始的BiLSTM隱層向量相乘即可得到本句的向量表示,即:
(3)
其中,L為句子總長(zhǎng)度,標(biāo)量ai表示輸入句中第i(0≤i 圖4 句子表示 2.1.3 注意力分?jǐn)?shù)矩陣的二次attention處理 在2.1.2節(jié)中使用了max pooling技術(shù)將L×L注意力分?jǐn)?shù)矩陣降為L(zhǎng)×1的一維向量,在本節(jié)將使用另一種方式來處理注意力分?jǐn)?shù)矩陣,如圖5所示。 由圖5可知,L×L注意力分?jǐn)?shù)矩陣s中的第i行(0i vTsa=vhssoftmax(s), (4) 其中,s∈RL×L是二維注意力分?jǐn)?shù)矩陣;vhs∈Rdh×L是BiLSTM的隱層向量組成的矩陣;vsa∈RL×dh是L個(gè)句子attenion向量表示。 然后將vTsa使用self attention機(jī)制(使用感知機(jī)算法加tanh激活函數(shù)),計(jì)算出二次attention的注意力分?jǐn)?shù)sa,可將其轉(zhuǎn)為dh×1的二次attention向量表示vsaa。至此,可推得vsaa計(jì)算公式為: sa=softmax(ωTtanh(WaavTsa)), (5) vsaa=vhssTa. (6) 其中,Waa∈Rdh×dh,ω∈Rdh是權(quán)重矩陣;sa∈R1×L是二次attention的注意力分?jǐn)?shù);vsaa∈Rdh×1就是經(jīng)過二次attention后的句子向量表示。 圖5 注意力分?jǐn)?shù)矩陣的二次attention處理 2.1.4 句子向量的分類 研究使用了2種方式(見2.1.2節(jié),2.1.3節(jié))獲得句子表示。前者使用max pooling生成句子表示va,后者使用二次attention生成句子表示vsaa,后續(xù)將分別用這兩種表示進(jìn)行分類任務(wù),見圖6。 圖6 句子表示做分類 通過線性變換將va或vsaa映射為二維向量,而后使用softmax進(jìn)行概率歸一化處理,得到相應(yīng)標(biāo)簽的置信度。其公式為: 或者 (7) 因?yàn)樵撃P褪嵌说蕉?End-to-End)訓(xùn)練的,就使得交叉熵(Cross Entropy)損失函數(shù)或者對(duì)數(shù)似然(log-likelihood)損失函數(shù)可以用作訓(xùn)練時(shí)的優(yōu)化目標(biāo)(兩個(gè)函數(shù)在二分類情況下具有一致性),即: (8) 2.1節(jié)中基于詞對(duì)注意力得到了句子表示,該句子表示含有矛盾詞對(duì)信息,這些信息則是判斷反諷的重要特征。此外,還應(yīng)利用原始的序列信息,在這里使用了BiLSTM做句子的序列表示,并將該表示與2.1節(jié)中的句子表示組合作為新的句子表示。因此用作句子分類的句子向量由WPA-P / WPA-A和BiLSTM的句子表示組成。這樣前者可以發(fā)現(xiàn)句子內(nèi)的矛盾詞,比如例句中的love與ignored;后者可以表征句子的序列信息,如原始的上下文信息等。 BiLSTM的句子表示可以看作是普通句子序列化的一種建模表示,模型如圖7所示。 圖7 BiLSTM做句子表示 BiLSTM句子表示用最后一個(gè)隱層輸出表示該句的語義信息。該部分的輸入為word embedding,輸出為各個(gè)詞的隱層向量,這里取隱層中最后一個(gè)詞的隱層作為BiLSTM句子表示。 將BiLSTM 句子表示vhlast和WPA-P/WPA-A句子表示拼接得到最終的句子向量表示vc∈R2d×1,以此可以做分類預(yù)測(cè),這里是二分類任務(wù),正例是反諷,負(fù)例是非反諷。研究得到的WPA-BiLSTM模型如圖8所示。 圖8 WPA-BiLSTM模型 在2.1節(jié)中使用了BiLSTM作為原始句子的序列信息,本節(jié)將使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)捕獲句子的N-gram信息,并與2.1節(jié)中的WPA-P/A句子向量拼接作為分類器輸入。與BiLSTM的序列建模不同,CNN在NLP任務(wù)中常被認(rèn)為會(huì)捕獲句子的N-gram[15]特征,而N-gram特征是自然語言處理中的一項(xiàng)極其重要的特征,廣泛應(yīng)用于各項(xiàng)文本的分類任務(wù)中。CNN與WPA-P/A結(jié)合的示意圖如圖9所示。 圖9 WPA-CNN模型 研究中,采用5個(gè)模型(WPA-P, WPA-A,WPA-A-BiLSTM,WPA-A-CNN,WPA-A-BiLSTM-CNN)在3個(gè)數(shù)據(jù)集上做了對(duì)比實(shí)驗(yàn),分別是Rilff、Ptacek、SemEval-2018,數(shù)據(jù)集規(guī)模見表1。 表1 數(shù)據(jù)集規(guī)模 研究中又采用了3個(gè)基線模型做對(duì)比,分別是CNN、LSTM、Attention based LSTM,實(shí)驗(yàn)結(jié)果見表2。 由表2可知,無論是WPA-P模型、還是WPA-A模型都要好于3個(gè)基線模型,WPA-A效果要略好于WPA-P。再加入額外信息(BiLSTM,CNN)后,效果均有提高,尤其是同時(shí)加入BiLSTM和CNN后,P,R,F(xiàn)1提升明顯。最終,研究得到的WPA-A-BiLSTM-CNN 模型的word pairs注意力分?jǐn)?shù)如圖10所示。 由圖10可以看到,WPA-A-BiLSTM-CNN中的WPA部分確實(shí)捕獲到了“矛盾詞對(duì)”,比如{love, ignored},{sore, fun}等。 表2 實(shí)驗(yàn)結(jié)果 圖10 WPA-A-BiLSTM-CNN 模型的word pairs注意力分?jǐn)?shù) Fig. 10 word pairs attention score of WPA-A-BiLSTM-CNN model 反諷修辭方法在社交媒體中應(yīng)用廣泛,這同時(shí)給情感分析和觀點(diǎn)挖掘等帶來了挑戰(zhàn)。針對(duì)前后矛盾形式的反諷修辭,本文提出了一種word pairs attention模型(WPA),其主要思想為計(jì)算句中任意兩詞的注意力分?jǐn)?shù),這樣可以助推模型在訓(xùn)練中著重關(guān)注某重點(diǎn)詞對(duì),因此該模型可以捕捉文本中的前后矛盾詞對(duì),也正是該詞對(duì)是導(dǎo)致反諷的重要原因。除此之外,還使用了BiLSTM來做句子的序列表示,使用CNN提取句子N-gram特征,實(shí)驗(yàn)證明,WPA與BiLSTM或CNN結(jié)合可以提升模型的整體性能。2.2 結(jié)合LSTM的詞對(duì)矛盾模型
2.3 結(jié)合CNN 的詞對(duì)矛盾模型
3 實(shí)驗(yàn)
4 結(jié)束語