吐妮可·吐爾遜,閔昶榮,林鴻飛,張冬瑜,楊 亮
(1. 大連理工大學 計算機科學與技術學院,遼寧 大連 116024;2. 大連理工大學 軟件學院,遼寧 大連 116620)
幽默作為一種修辭手法,是人類交際中不可或缺的一部分,在使得人與人之間的溝通更加流暢的同時,營造了輕松愉悅的交流氛圍。得益于社交媒體飛速發展所帶來的海量文本數據,自然語言處理領域的文本幽默識別研究在近年來取得了長足進展。文本幽默識別的主要目標是通過計算方法來理解文本中的幽默表達并判斷該文本是否為幽默。幽默識別不僅能夠應用于文本生成、機器翻譯以及隱喻識別等任務,還能夠賦予機器理解幽默的能力,提升現實中人機交互的效果。因此,從文本中理解幽默產生的機制并識別幽默文本變得尤為重要。
從語言學與心理學的角度,主要存在三種觀點來解釋幽默的產生,分別是: 優越論[1]、寬慰論[2]以及乖訛論[3]。其中,優越論認為幽默是一種表達并強調自我價值與地位的方式,它強調通過取笑、諷刺或嘲笑他人來獲取優越感;寬慰論認為幽默有助于緩解人們的壓力和緊張情緒;乖訛論又稱為不一致性理論,它的表達中通常會包含一些出人意料的不一致性,通過產生違背人們常識和期望的事物的感知,來引發人們的笑聲和關注。基于上述理論,研究者們從多個角度提取文本中的幽默特征,同時通過設計不同結構的神經網絡模型來學習幽默的深層次語義,基于此判斷該文本是否為幽默。例如,Chauhan等人[4]認為幽默與情感和情緒密切相關,提出了利用Transformer和情緒感知嵌入(SE-Embedding)的多任務框架來進行幽默檢測。Liu等人[5]基于“優越論”和“寬慰論”的觀點,結合情感特征對語篇單元中的情感關系建模,證明了情感信息能更有效地解決對話幽默識別問題。Li等人[6]使用“樂觀幽默類型”和“悲觀幽默類型”的情感極性來標注數據集中“積極”和“消極”情緒類別,采用雙向長短時記憶網絡結合注意力網絡的方法,捕捉俚語和微博表情符號在情感分析中的影響,為深入了解俚語和微博表情符號對中文情感分析提供了新視角。
從上述工作中可知,文本內蘊含的情感特征對于識別幽默表達十分重要,這些工作主要通過外部詞典匹配的方式來捕捉文本內的情感特征。然而,本文發現在幽默表達中很多情緒往往是隱式表達的,如表1所示,其中第二個幽默樣本表達了“悲傷”或者“憤怒”的情緒,但是該樣本并沒有包含直接表達情緒的詞匯,而是通過短語“got fired”來表達,這種方式稱為隱式情感表達。現存的幽默識別方法主要采用外部情感詞典來捕捉文本內的情感信息。顯然,這種方式無法有效識別出這些隱式情感表達,降低了模型識別文本幽默的能力。

表1 幽默樣本以及包含的情緒信息
從認知角度,理解這些隱式情緒表達不僅需要結合上下文信息,還需要充分利用外部常識。盡管現有的預訓練語言模型(PLM)能夠高效地捕捉文本的上下文信息, 但是由于其是在大規模通用語料上訓練,因此無法有效感知這些文本背后的隱式情緒。
為了解決這一問題,本文提出一種動態常識與多維語義特征驅動的幽默識別方法(Commonsense and Multi-dimensional Semantics Based Humor Detector,CMSOR)。該方法主要是利用外部常識,根據文本的上下文信息,動態地推斷文本中的隱式情緒,并將其作為文本情緒特征的一部分,參與幽默識別。
具體地,該方法首先根據文本內容利用預訓練常識推理工具COMET[7]根據上下文信息動態推斷文本的內蘊情感信息,然后將文本內容與推斷出的情感信息拼接融合,通過預訓練語言模型BERT進一步將顯式情感融入到文本語義當中,形成顯式情感增強的文本表示。同時,利用外部詞典WordNet[8]計算語義距離以及同義詞數量,分別形成文本的不一致性特征以及模糊性特征。最后,將上述三種特征進行結合,形成多維幽默語義表示,輸入到分類器中,得到幽默預測結果。
本文研究工作主要內容如下:
(1) 提出了一種動態常識驅動的幽默識別方法CMSOR,利用外部常識動態捕捉文本的隱式情感特征,同時利用外部詞典建模模糊性與不一致性特征,從多個維度構建幽默語義,實現幽默識別。
(2) 在Pun of the Day、SemEval21以及ColBERT三個公開數據集上進行了實驗,實驗結果表明,本文所提出的CMSOR模型相比于現有方法在四項評價指標上有明顯提升,證明了方法的有效性。
由于幽默表達本身的復雜性,幽默識別在近些年來一直是一項極具挑戰性的任務。早期的幽默識別方法主要是基于特征工程,將統計機器學習方法作為分類器,在幽默理論的基礎上設計不同的幽默特征提取方案。這些人工提取的特征包括通用語言學特征以及面向幽默的文本特征。例如,Mihalcea和Strapparova[9]定義了頭韻、反義詞和成人俚語三種幽默特征,通過實驗證明了他們在one-liner數據集中幽默識別的有效性。Mihalcea等人[10]將幽默文本分為“鋪墊”和“笑點”兩部分,通過計算兩者的語義相關性進行幽默識別。Yang等人[11]深入探討幽默潛在語義特征,構造了四種幽默特征,分別是語音特征、歧義特征、不一致性特征和情感特征。Morales 和Zhai[12]針對Yelp評論使用概率模型結合背景文本資源進行幽默識別。Cattle和Ma[13]利用單詞關聯的語義關聯特征進行幽默識別。上述這些工作大多是利用統計或者匹配的方法來提取文本中的淺層幽默特征,無法對幽默的深層次潛在語義進行表示,從而限制了幽默識別的性能。
隨著計算能力的提高以及社交媒體數據的增長,深度學習在不同領域被廣泛用于輔助或替代傳統的特征工程。與其他領域相比,深度學習在幽默識別任務中應用較晚。這些基于深度神經網絡的幽默識別方法主要是利用預訓練語言模型表示文本,然后設計不同結構的神經網絡實現對于幽默特征的深層次提取。例如,Bertero等人[14]認為幽默情景劇是一種具有獨特特點的喜劇形式,背景笑聲可以視為觀眾對于搞笑場景的反應,自動標注這些笑聲可以有效地識別笑點,便在此基礎上使用長短時記憶網絡(LSTM)對幽默情景劇中的對話進行建模,同時提取對話語義特征和聲音特征來識別笑點。Cuza和Buenod等人[15]針對西班牙推文結合了語言特征和基于注意力的遞歸神經網絡進行幽默識別。Blinov等人[16]收集大量笑話和趣味對話構造俄語數據集,并微調語言模型用于幽默識別。Kao 和Levy 等人[17]提出模糊性和獨特性兩個特征,使用語言模型識別幽默語句。Weller和Seppi[18]使用Transformer架構識別幽默。Hasan等人[19]使用循環神經網絡進行多模態幽默識別。Diao等人[20]提出一種基于不一致性、模糊性、情感因素和語言學潛在語義結構的識別模型。Fan等人[21]基于Bi-GRU網絡融合語音特征和歧義性特征進行幽默檢測。Annamoradnejad和Zoghi[22]改進BERT模型在自創建的幽默數據集ColBERT上進行實驗,證實了提出的模型能夠有效地檢測幽默。Zhang等人[23]利用卷積神經網絡結合標簽轉移關系提出多任務學習模型識別幽默。Ren等人[24]結合幽默和雙關語識別任務,提出一種基于注意力的多任務學習模型來進行幽默檢測。Ren等人[25]提出一種基于注意力機制的神經網絡來驗證發音、句法與詞法特征對于幽默識別任務的重要性。
與上述工作類似,本文同樣考慮了情感特征在幽默表達中的重要作用。不同的是,本文針對幽默文本中隱式情感表達難以被詞典有效識別的問題,采用動態常識推理,從文本中推斷內蘊的隱式情感,并結合模糊特征與不一致特征,從多個維度對于文本的幽默語義進行刻畫。
本文所提出的基于動態常識推理與多維語義特征的幽默識別(CMSOR)模型如圖1所示。該模型主要由三個部分組成: 情感特征提取層、語義特征提取層、模糊性特征提取層。其中,情感特征提取層主要是考慮到幽默表達中存在大量隱式情感表達,利用外部常識推斷文本中的隱式情感表達,充分挖掘文本中的情感特征;語義特征提取層主要是通過計算句子內部詞對之間的語義關聯來學習文本內部的不一致性特征;模糊性特征提取層主要是利用外部詞典捕捉文本中存在歧義性的詞匯,通過循環神經網絡學習其模糊性特征。最后,將幽默的三個維度特征進行拼接,通過分類器獲得文本的幽默預測結果。

圖1 CMSOR模型框架圖
幽默表達與情感有著極大的關聯。一些帶有強烈感情色彩的詞會增加受眾對于作者表述的認同感,使得讀者的情緒被更為充分地調動,從而達到幽默的效果[26]。然而幽默內存在的隱式情感表達使得通過外部詞典捕捉文本情感特征變得十分困難。為了解決這一問題,本文采用預訓練常識推理模塊COMET根據上下文信息動態推斷文本內所蘊含的情感特征。COMET作為一種常識推理工具,在給定上下文的情況下,能夠根據不同的事件關系來推理相應的結果。COMET是以Transformer為基礎架構,并在ATOMIC[27]數據集上訓練得到。該數據集共提供23種事件關系,而本文主要采用[xReact]這一關系。它的功能是根據上下文推斷句子中主語的內心情緒,并以文本形式輸出。
具體地,以幽默文本序列x=(w1,w2,…,wm)作為輸入,COMET能夠根據x推理出說話者可能的內心情緒。在這里,本文選擇概率最高的前l個可能結果,并得到說話者情緒候選集K={k1,k2,…,kl}。其中,ki表示第i個情緒詞。然后,將初始文本序列x與情緒候選集拼接,得到顯式情緒增強的幽默文本序列,如式(1)所示。
xe={w1,w2,…,wm,[SEP],k1,k2,…,kl}
(1)
其中,[SEP]為句子分割符。本文采用BERT對xe進行上下文編碼。具體計算如式(2)所示。
其中,ve為編碼后得到的句子表示,W0為BERT的可學習參數。
一方面,BERT能夠有效地捕捉上下文信息,將幽默文本x中的單詞wi與情緒候選集K中的情緒單詞ki從語義層面上關聯起來,進而有效捕捉文本內的情緒特征。另一方面,BERT內的多頭注意力機制能夠為文本中的每個單詞賦予不同的權重,通過降低與幽默文本無關的情緒詞的權重,來避免引入過多噪聲信息。在得到上下文編碼后,采用雙向長短時記憶神經網絡(Bi-LSTM)對于上下文語義信息進行進一步學習,最后通過注意力機制獲取潛在情感特征ze,其計算公式如式(3)、式(4)所示。
其中,ue∈R1×p為輸出的幽默文本表示,p為Bi-LSTM的隱藏層維度。W1為Bi-LSTM的可學習參數,W2為注意力機制的可學習參數。
一些語言學研究[28]認為幽默的本質在于表現出兩種不一致的思想或概念。同樣的,Raskin等人[29]也指出幽默的產生往往借助于一些有意義但含義不同或相反的詞語或短語的組合,通過制造錯覺或矛盾感而達到幽默的效果。例如,
例1I am deeply aware that I am a superficial person.
例1中“deeply”可以翻譯成“深刻”,“superficial”可以翻譯成“膚淺”。這個句子的中文翻譯是“我深刻地意識到我是個膚淺的人”,其中“深刻”和“膚淺”有相反的含義,從而達到幽默效果。上述例子也可以說明幽默中的不一致特征具有隱晦和抽象的特點,并與深層次語義關聯緊密。從聽者角度,需要具有背景知識才能夠推斷出詞匯或者短語之間的隱含關系。因此,需要引入外部知識更好地捕捉幽默的不一致性特征。
具體地,給定一個輸入文本序列x=(w1,w2,…,wm),本文首先通過預訓練語言模型將文本序列中的每個詞進行向量化表示并得到V=(v1,v2,…,vm)∈Rm×d。 其中d表示詞向量維度。然后,針對于x中的每個詞wi,利用WordNet獲取其詞義特征,并得到H=(h1,h2,…,hm)∈Rm×d′,d′表示其詞義特征維度。將詞義信息H與深層次語義信息V進行拼接,得到V′=(v′1,v′2,…,v′m)∈Rm×(d+d′)。 為了計算詞級語義不一致性,首先采用兩個平行語義編碼器對文本表示V′進行壓縮。編碼器由全連接神經網絡實現,具體計算如式(5)、式(6)所示。

Reyes和Rosso[30]認為幽默是一個單詞的多個含義令句子產生不同的理解,借助語義和語境的歧義來產生的。Miller和Gurevych[31]指出,模糊性是幽默的關鍵因素,是幽默中常見的語言現象。隨之Reyes等人[32]得出結論: 幽默的表達往往伴隨著語義的模棱兩可。如下例:
例2Why did the tomato turn red? Because it saw the salad dressing!
例3My trip to the grand canyon cost a hole lot of money and gorged my bank account butte it was worth it.
例2中“salad”一詞既可以被解釋為用于沙拉的一種醬汁,也可以表示“穿衣服”的意思,從而導致句子產生兩種截然不同的意義來產生幽默效果。例3中,首先“hole”的字面含義為“洞”,但在口語中也可表示為“大量”或“很多”,其次“butte”的字面含義為“丘陵”,但在句中被用作雙關詞,與“but”相呼應。句子通過“hole”和“butte”的雙關含義,使得例3既可描述為旅行花費了大量的錢,也可暗示這個花銷像一個巨大的洞一樣,吞噬了大量的資金。結合上述例子,幽默通過詞匯的多個含義來創造幽默,達到幽默效果。由此可見,模糊性是判斷文字是否幽默的重要因素之一,是幽默文本的重要組成部分。綜上所述,本文為提高幽默識別的性能,利用外部資源WordNet捕獲句子中的歧義詞。
在WordNet數據庫中,名詞、動詞、形容詞和副詞都被存儲為同義詞集合的形式,每一個同義詞集合被稱為一個Synset,包含一組具有相似意義的單詞。不同的Synset之間可以通過語義關系和詞性關系等邊相連接,這些關系可以幫助人們理解這些單詞之間的聯系和含義。
針對于輸入文本序列x=(w1,w2,…,wm),首先利用WordNet中的同義詞集合Synset計算每個單詞wi的同義集數量n。 本文認為單詞的同義詞數量越多,會導致句子理解存在很多歧義,從而模糊性程度就會增加,因此本文將同義集數量最多的詞匯設置為最容易出現歧義的詞匯,停用詞在句子中不承載實際的語義信息,因此可以被移除或忽略,從同義詞集合和同義詞數量中刪除停用詞匯及其個數。針對于同義詞集的數量,定義如式(7)所示的規則來描述每個詞的模糊程度。
由式(7)得到x的模糊程度序列c=(c1,c2,…,cm),其中,0表示模糊程度最低,4表示模糊程度最高,對于文本中的停用詞,其模糊程度統一設定為0。然后,將該序列c進行one-hot表示,得到模糊程度矩陣Vc=[c1,c2,…,cm]∈Rm×d。將Vc與文本表示V=[v1,v2,…,vm]∈Rm×d通過拼接方式進行融合,并利用模糊特征編碼器Gfuz學習包含模糊特征的文本表示,該編碼器由Bi-LSTM及注意力機制實現。其計算如式(8)所示。
其中,zf為模糊性特征表示,W5為可學習參數,⊕表示拼接操作。
在獲得幽默文本的情感特征ze、不一致性特征zs=MaxPooling(S)以及模糊性特征zf之后,將三種特征通過拼接方式進行融合,得到多維度融合幽默特征z=ze⊕zs⊕zf。 通過注意力機制進一步學習三種特征之間的內在關聯,具體計算如式(9)所示。
其中,W6表示注意力機制層的可學習參數。在此基礎上,將其輸入到由全連接層構成的幽默分類器fh中,獲得文本x的幽默標簽預測。具體計算如式(10)所示。

最后,CMSOR在分類中采用交叉熵(Cross Entropy)作為損失函數。其損失計算如式(11)所示。
本節首先詳細描述數據集、實驗數據和實驗設置,然后對比了基線方法和本文提出的CMSOR方法的幽默識別性能,最后結合對比實驗以及消融實驗結果來討論模型的性能,并驗證本文模型方法的有效性。
為了證明方法的有效性,本文實驗中使用了三個公開的數據集,其統計信息如表2所示。具體介紹如下:

表2 數據集統計信息
PunofTheDay[33]: 該數據集的構建是Yang等人通過在互聯網上收集幽默文本而完成的,包括了各種類型的幽默,如雙關語、笑話、俏皮話等等。為確保數據的準確性和可靠性,通過人工標注和質量控制的方式對數據進行了篩選和整理。該數據集目前廣泛使用于幽默識別中。
SemEval 2021 Task7-1a[34]: 該任務是一項國際評測,Task7子任務一是識別文本是否為幽默文本,該數據集可以用來進行幽默檢測,本文利用Task7子任務一涉及數據來判斷是否為幽默文本。
ColBERT[22]: 該數據集是一個大規模的幽默數據集,它包含了20萬個來自網絡的英文幽默文本,其中10萬正樣本由Reddite收集得到,另外10萬負樣本來源于新聞頭條。
實驗在Python 3.7和Keras 2.2.4環境下進行。對于本文提出的CMSOR模型,其中常識知識層本文采用12層的BERT-base-cased(1)https://huggingface.co/bert-base-cased作為預訓練語言模型編碼,其中向量維度為768,共110M個參數;語義特征提取以及模糊性特征提取采用GloVe,維度為100,詞嵌入在訓練的過程中固定,不在詞匯表中出現的單詞使用(-0.01,0.01)上的平均分布隨機初始化;使用WordNet獲取單詞同義詞集合;Bi-LSTM的神經元數量為128;Dropout為0.3;Batch大小為64;模型采用Adam Optimzation優化算法更新模型參數;采用了學習率衰減和早停機制以防止過擬合現象。此外,采用準確度(Accuracy)、精確率(Precision)、召回率(Recall)和F1值(F1-Score)作為實驗結果的評價指標,并且所有實驗均進行五倍交叉驗證,取平均值作為實驗結果。
本文采用如下基線模型進行對比:
(1) LSTM[35]: 通過經典LSTM模型提取幽默特征進行幽默識別。
(2) Bi-LSTM: 利用可以更好地捕捉雙向語義依賴關系的Bi-LSTM模型。
(3) Bi-LSTM+ATT: 使用Bi-LSTM模型結合注意力機制提取幽默特征進行幽默識別。
(4) CNN: 采用卷積神經網絡(Convolutional Neural Network, CNN)獲取幽默語句的潛在語義及模糊性特征進行幽默識別。
(5) BERT[36]: 使用預訓練BERT模型在幽默數據集上進行微調。
(6) IEANN[21]: 通過結合內部及外部注意力神經網絡構建兩種注意力機制,以捕捉幽默文本中的不一致性和模糊性特征。
(7) ABML[24]: 通過聯合幽默和雙關語檢測的多任務學習模型進行幽默識別。
(8) ANPLS[25]: 通過結合發音、詞匯和句法幽默特征的注意力網絡,提取幽默特征進行幽默識別。
實驗結果如表3所示,對實驗結果進行具體分析可以得到如下結論:

表3 對比實驗結果
(1) 本文提出的CMSOR方法在三個數據集上均取得了最好的結果,在三個數據集上的F1值相比于現存的最優結果分別提升了0.25%、0.31%、0.67%,證明了從情感、不一致性以及模糊性三個維度構建幽默語義并應用于幽默識別是有效的。
(2) 從表中可以看出,相比于基于CNN的幽默識別方法,基于Transformer的方法(BERT以及CMSOR)在四項評價指標上有明顯性能提升,這說明Transformer能夠通過全局注意力機制更好地捕捉幽默文本的上下文信息。
(3) CMSOR方法能夠通過深度神經網絡結構,在外部知識驅動下,自動構建幽默特征,相比于BERT在Pun of The Day數據集上取得了明顯的性能提升(F1值提高2.79%)。這也驗證了深度學習模型結合外部知識能夠在幽默理論約束下學習到幽默相關特征。
(4) 相比于基于RNN的方法, 基于CNN的方法在Pun of The Day和SemEval數據集上F1值取得了明顯的提升,如在SemEval數據集上, CNN相比于BI-LSTM+ATT在F1值提高了1.18%。這說明幽默表達可能與局部語義信息(Ngram)有著一定的關聯。
(5) 與采用情感詞典捕捉文本內部情感信息的IEANN相比,本文提出的CMSOR方法在Pun of The Day、SemEval以及ColBERT數據集上F1值分別提升了1.35%、1.32%和1.6%。這說明利用動態外部常識信息能夠更準確地推斷文本內部情感。
(6) ABML模型在Pun of The Day和SemEval數據集上ACC值高于IEANN和ANPLS。ACC值達到最高。ABML模型不僅考慮雙關語的特點,還考慮了幽默和雙關語之間共同的潛在語義信息。這意味著模型能夠更好地理解雙關語的雙重含義,并將其與幽默特征聯系起來,有效地增強模型對幽默的識別能力。
為了驗證CMSOR中不同組件的有效性,本文在三個數據集上進行消融實驗,并設計以下模型變體: CMSOR-C表示僅使用情感特征;CMSOR-I表示僅使用語義不一致性特征;CMSOR-A表示僅使用模糊性特征;CMSOR-CI表示融合情感特征和語義不一致性特征;CMSOR-CA表示融合情感特征和模糊性特征;CMSOR-IA表示融合語義不一致性特征和模糊性特征。
三個數據集上的消融實驗結果如表4所示。從表中可以得到如下結論:

表4 消融實驗結果
(1) 當分別移除情感特征(CMSOR-IA)、模糊特征(CMSOR-CI)以及不一致性特征(CMSOR-CA)之后,模型在SemEval 2021 Task7-1a數據集上的四項指標均有明顯下降(F1值分別下降3.26%,1.82%,1.45%),這說明三種情感特征在幽默識別任務中的有效性。然而,在Pun of The Day數據集上,當移除情感特征后,模型在召回率R上有了提升,這可能是因為BERT在學習情感增強的文本表示時,將錯誤的情緒信息融入到語義表示當中,所以導致該指標下降。而在ColBERT數據集上,精確率P得到了提升,這可能是因為情感特征與其他特征存在冗余,即它們所攜帶的信息在一定程度上是重疊的。當移除情感特征時,模型可能更加依賴于其他更為關鍵的特征,從而提高了精確率。
(2) 當只保留模糊性特征的時候,模型在Pun of The Day 和ColBERT數據集上的表現相比于CMSOR下降得最少,在Pun of The Day數據集上精確率P得到了提升,這說明模糊性特征在構建幽默語義的過程中相比于情感特征以及不一致性特征更加重要。然而,對于SemEval 2021 Task7-1a數據集,情感特征更加重要。
圖2展示了不用數量的常識信息對于模型性能的影響。從圖中可以觀察到,在Pun of The Day和ColBERT數據集上,當知識數量為1時,模型效果最差。隨著候選知識數量的不斷增加,模型的表現逐漸提升,并且在l=5時取得最好的結果。這說明有效處理隱式情感表達對于CMSOR建模幽默語義具有重要作用,并且顯式情感信息的增加會提升模型對于文本情感特征的捕捉效果。對于SemEval 2021 Task7-1a數據集而言,變化趨勢與其他兩個數據集不同。隨著知識數量的增加,模型表現在性能略微提升之后,呈現出下降趨勢,并且在l=4時取得最差的結果,但是l=5時結果最優。這可能是因為當將知識數量增加到5時,一些樣本的隱式情感表達才能夠被COMET有效推理出來。

圖2 不同數量的知識候選對模型性能的影響
針對于現有幽默識別方法沒有充分捕捉文本內部的情感特征,忽略了幽默文本中的隱式情感表達這一問題,本文提出一種動態常識與多維語義特征驅動的幽默識別方法CMSOR。該方法首先利用外部常識信息從文本中動態推理出說話者的隱式情感表達,然后引入外部詞典WordNet計算文本內部詞級語義距離,進而捕捉不一致性,同時計算文本的模糊性特征。最后,根據上述三個特征維度構建幽默語義,實現幽默識別。本文在三個公開數據集上進行實驗,結果表明本文所提方法 CMSOR相比于當前基準模型性能有明顯提升。未來,本文將嘗試把常識信息應用到幽默生成、多模態幽默識別等任務當中。