梁 冬 張 程 史 驍③ 譚文婷 呂存馳 趙曉芳
(*中國科學(xué)院計(jì)算技術(shù)研究所 北京 100190)
(**中國科學(xué)院大學(xué) 北京 100049)
(***中科蘇州智能計(jì)算技術(shù)研究院 蘇州 215028)
事件檢測(cè)的目的是識(shí)別出文本中特定類型的事件[1-2],例如在句子“Liana Owen drove 10 hours from Pennsylvania to attend the rally in Manhattan with her parents.”中,需要識(shí)別出“Demonstrate”和“Transport”兩種事件類型。基于觸發(fā)詞的識(shí)別和分類是當(dāng)前常用的檢測(cè)方法,這些方法將事件檢測(cè)任務(wù)看成詞的分類問題[3-8],通過對(duì)句子中每個(gè)詞的分類,預(yù)測(cè)該詞是否為一個(gè)事件觸發(fā)詞以及其觸發(fā)的事件類型。比如上述句子要先識(shí)別出觸發(fā)詞“rally”和“drove”,然后檢測(cè)出其分別觸發(fā)了“Demonstrate”和“Transport”事件。
然而,基于觸發(fā)詞的事件檢測(cè)方法存在2 個(gè)方面的問題:(1)構(gòu)造訓(xùn)練數(shù)據(jù)比較耗時(shí),標(biāo)注人員不僅需要標(biāo)注事件類型,還需要標(biāo)注事件觸發(fā)詞。如上述句子需要標(biāo)注{rally:Demonstrate,drove:Transport}。根據(jù)自動(dòng)內(nèi)容抽取(automatic context extraction,ACE)事件評(píng)估項(xiàng)目[9],觸發(fā)詞最能表述一個(gè)事件的發(fā)生。但是從已知的句子中挑選最能代表事件發(fā)生的詞是需要專業(yè)的綜合判斷,往往會(huì)花費(fèi)較多的精力,特別是對(duì)于一個(gè)很長的句子,尤其是文檔級(jí)別的事件檢測(cè)任務(wù)。(2)過度依賴觸發(fā)詞的事件檢測(cè),會(huì)丟失很多語義信息。先前的工作[10-11]表明文本所屬的事件類型不僅依賴于觸發(fā)詞特征,還取決于文本的上下文語義特征。同類事件的發(fā)生可能是不同的觸發(fā)詞引起的,而相同的觸發(fā)詞根據(jù)其語義環(huán)境會(huì)觸發(fā)不一致的事件。過度依賴觸發(fā)詞特征,容易導(dǎo)致事件類型的模糊性,難以正確識(shí)別已知事件類型未見過的觸發(fā)詞,從而使事件檢測(cè)準(zhǔn)確率下降。
針對(duì)上述問題,研究人員設(shè)計(jì)了無觸發(fā)詞的事件檢測(cè)方法[12-14]。具有注意力機(jī)制的類型感知偏差神經(jīng)網(wǎng)絡(luò)(type-aware bias neural network with attention mechanisms,TBNNAM)[12]提出觸發(fā)詞的識(shí)別不是事件檢測(cè)任務(wù)的必需步驟,并研究了無觸發(fā)詞的事件檢測(cè),利用基于事件類型的注意力機(jī)制來彌補(bǔ)觸發(fā)詞缺失造成的重要線索信息的丟失。Doc2EDAG[13]設(shè)計(jì)了一個(gè)無觸發(fā)詞的文檔級(jí)別事件抽取方法,通過對(duì)整篇文檔內(nèi)容的分類來識(shí)別事件類型,以緩解事件標(biāo)注的困難性。文獻(xiàn)[14]實(shí)現(xiàn)了在無觸發(fā)詞條件下定位文檔中的事件表述中心句并判斷事件類型的方法。這些方法簡化了事件檢測(cè)的流程,能夠降低數(shù)據(jù)標(biāo)注的壓力,但是由于監(jiān)督學(xué)習(xí)需要大規(guī)模地標(biāo)注數(shù)據(jù)才能學(xué)習(xí)到強(qiáng)健的語義表示,而目前可用的事件檢測(cè)數(shù)據(jù)資源比較匱乏,這些模型在提取事件信息的語義特征方面還有待提高。最近興起的對(duì)比學(xué)習(xí)是一種強(qiáng)大的表示提取方法,受到了越來越多的關(guān)注,在自然語言處理(natural language processing,NLP)領(lǐng)域也得到廣泛應(yīng)用[15]。對(duì)比學(xué)習(xí)為文本語義表示提供了一種新思路,在監(jiān)督數(shù)據(jù)有限的情況下,可以有效地提取文本的語義信息。
本文提出了一種基于對(duì)比學(xué)習(xí)增強(qiáng)句子語義的事件檢測(cè)方法。該方法在事件檢測(cè)任務(wù)中忽略觸發(fā)詞識(shí)別這一中間步驟,降低了事件標(biāo)注成本,簡化了事件檢測(cè)任務(wù)的流程,同時(shí)引入對(duì)比學(xué)習(xí)增強(qiáng)句子語義表示,提高事件檢測(cè)結(jié)果的可靠性。本文的主要貢獻(xiàn)總結(jié)為以下4 點(diǎn)。
(1)利用掩碼(mask)操作和丟棄(dropout)操作構(gòu)建自監(jiān)督對(duì)比樣例,增加監(jiān)督對(duì)比樣例,實(shí)現(xiàn)了自監(jiān)督對(duì)比和監(jiān)督對(duì)比2 種句子語義增強(qiáng)的方法,并進(jìn)一步分析了不同對(duì)比學(xué)習(xí)方法的效果及收斂速度。
(2)在事件檢測(cè)數(shù)據(jù)集上通過自監(jiān)督學(xué)習(xí)對(duì)預(yù)訓(xùn)練的語言模型基于轉(zhuǎn)換器的雙向編碼表示器(bidirectional encoder representations from transformers,BERT)調(diào)優(yōu),增強(qiáng)事件文本字符級(jí)別語義表示和提取,提高了模型在事件檢測(cè)任務(wù)上的領(lǐng)域適應(yīng)性。
(3)在訓(xùn)練過程中自動(dòng)調(diào)整對(duì)比損失和事件檢測(cè)的交叉熵?fù)p失的權(quán)重,能夠更快地獲得較優(yōu)的結(jié)果。
(4)在ACE 項(xiàng)目[9]的中英文數(shù)據(jù)集上進(jìn)行了詳盡的實(shí)驗(yàn)分析,證實(shí)了本文方法的有效性。
本文的組織結(jié)構(gòu)如下。第1 節(jié)介紹事件檢測(cè),預(yù)訓(xùn)練語言模型,對(duì)比學(xué)習(xí)相關(guān)研究工作;第2 節(jié)闡述基于對(duì)比學(xué)習(xí)增強(qiáng)句子語義的事件檢測(cè)方法;第3 節(jié)通過實(shí)驗(yàn)對(duì)比驗(yàn)證上述方法的有效性;第4 節(jié)對(duì)全文進(jìn)行總結(jié)。
事件檢測(cè)是事件抽取的一個(gè)重要子任務(wù),目的是識(shí)別出文本中提到的事件類型。這一問題受到了研究人員的廣泛關(guān)注,現(xiàn)有的方法大多是基于觸發(fā)詞的識(shí)別和分類實(shí)現(xiàn)的,通常遵循監(jiān)督學(xué)習(xí)范式,可以分為基于特征工程的方法和基于表示學(xué)習(xí)的方法。
基于特征工程的事件檢測(cè)方法是通過人工設(shè)計(jì)的精巧特征將事件分類線索轉(zhuǎn)化為特征向量,輸入到隨機(jī)森林(random forest,RF)或者支持向量機(jī)(support vector machine,SVM)之類的模型中進(jìn)行事件識(shí)別。例如,文獻(xiàn)[16]利用詞匯、句法、額外知識(shí)等特征。文獻(xiàn)[17]結(jié)合了相關(guān)文檔的全局特征和局部決策特征。文獻(xiàn)[18,19]提出了跨事件或跨實(shí)體的特征。文獻(xiàn)[4]采用一個(gè)聯(lián)合模型來捕獲觸發(fā)詞和參數(shù)的組合特征。
隨著深度學(xué)習(xí)技術(shù)的發(fā)展,近幾年來的事件檢測(cè)方法傾向于基于神經(jīng)網(wǎng)絡(luò)的表示學(xué)習(xí)方法。例如,文獻(xiàn)[1,20]利用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNNs)學(xué)習(xí)事件特征信息。文獻(xiàn)[2,5,21,22]利用循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks,RNNs)學(xué)習(xí)詞在事件中上下文語義信息。文獻(xiàn)[23]結(jié)合CNNs 和RNNs 提取不同層面的事件特征。文獻(xiàn)[24]利用注意力機(jī)制編碼參數(shù)信息。文獻(xiàn)[6,25]利用圖神經(jīng)網(wǎng)絡(luò)探索了句法信息特征。文獻(xiàn)[26,27,28]學(xué)習(xí)了文檔級(jí)別的事件線索。
然而,上述的這些方法均需要額外注釋觸發(fā)詞,增加了獲取事件檢測(cè)訓(xùn)練數(shù)據(jù)的成本,限制了數(shù)據(jù)驅(qū)動(dòng)的深層網(wǎng)絡(luò)應(yīng)用。為了緩解事件標(biāo)注的困難,受先前工作[12-14]的啟發(fā),本文開展了無觸發(fā)詞的事件檢測(cè)研究工作。
近年來,預(yù)訓(xùn)練語言模型的發(fā)展將NLP 領(lǐng)域的研究帶入到一個(gè)新階段,從海量語料中學(xué)習(xí)的通用語言表示,能夠顯著提升下游任務(wù)。ELMo[29]、GPT[30]、BERT[31]、GPT2[32]等模型的相繼提出,不斷刷新了各大NLP 任務(wù)的排行榜,并表明采用更多的訓(xùn)練數(shù)據(jù)可以不斷地提高模型性能。
預(yù)訓(xùn)練語言模型通過自監(jiān)督學(xué)習(xí),充分利用大量無監(jiān)督的文本數(shù)據(jù),編碼語言知識(shí),能夠根據(jù)上下文動(dòng)態(tài)捕捉單詞的語義。本文使用大規(guī)模的預(yù)訓(xùn)練語言模型BERT[31]作為文本編碼器,并在事件檢測(cè)數(shù)據(jù)集上通過對(duì)隨機(jī)掩碼字符預(yù)測(cè)的調(diào)優(yōu)訓(xùn)練,提高文本字符級(jí)別的事件語義表示,從而進(jìn)一步提升模型在事件檢測(cè)任務(wù)上的領(lǐng)域適應(yīng)性。
對(duì)比學(xué)習(xí)的主要思想是最小化給定樣本(稱為錨點(diǎn))和正樣例之間的距離,并最大化錨點(diǎn)和負(fù)樣例之間的距離,從而更好地提取數(shù)據(jù)表示特征。如何構(gòu)造正負(fù)樣例是對(duì)比學(xué)習(xí)的關(guān)鍵問題。自監(jiān)督對(duì)比學(xué)習(xí)沒有標(biāo)簽信息,通過數(shù)據(jù)增強(qiáng)構(gòu)造相似的樣本,原數(shù)據(jù)和增強(qiáng)后的數(shù)據(jù)為正樣例,和其他樣本增強(qiáng)后的數(shù)據(jù)為負(fù)樣例。圖1 所示為自監(jiān)督對(duì)比學(xué)習(xí)示意圖,虛線圓圈為同一顏色(或同一形狀)的實(shí)線圓圈增強(qiáng)后的相似樣本。監(jiān)督對(duì)比學(xué)習(xí)利用類別標(biāo)簽關(guān)系構(gòu)造正負(fù)樣例,同一類別的數(shù)據(jù)為正樣例,不同類別的數(shù)據(jù)為負(fù)樣例。圖2 所示為監(jiān)督對(duì)比學(xué)習(xí)示意圖,不同顏色(或不同形狀)屬于不同的類別,本文利用數(shù)據(jù)增強(qiáng)操作提高同類別的樣本數(shù)量,增加監(jiān)督對(duì)比的正樣例。
圖1 自監(jiān)督對(duì)比學(xué)習(xí)示意圖
圖2 監(jiān)督對(duì)比學(xué)習(xí)示意圖
最近的研究工作[15,33-34]將對(duì)比學(xué)習(xí)應(yīng)用在NLP領(lǐng)域,通過對(duì)比學(xué)習(xí)訓(xùn)練文本的編碼器。文獻(xiàn)[15]通過dropout[35]操作設(shè)計(jì)了一個(gè)簡單的對(duì)比學(xué)習(xí)框架,在文本語義相似度任務(wù)上取得先進(jìn)的性能。文獻(xiàn)[33]設(shè)計(jì)了一個(gè)監(jiān)督對(duì)比損失函數(shù),并對(duì)預(yù)訓(xùn)練語言模型微調(diào)。文獻(xiàn)[34]通過2 種數(shù)據(jù)增強(qiáng)方式構(gòu)建自監(jiān)督對(duì)比樣例:對(duì)原始文本隨機(jī)刪除或掩碼操作,利用dropout 操作對(duì)特征層向量增強(qiáng)。
在事件檢測(cè)任務(wù)中,對(duì)比學(xué)習(xí)的應(yīng)用也有一定的研究。文獻(xiàn)[36,37]采用三元組損失函數(shù)[38]將標(biāo)簽分類下的實(shí)例間的關(guān)系距離作為一個(gè)有效的監(jiān)督信號(hào),使得類別內(nèi)部的樣本距離小于不同類別樣本的距離,但是沒有探索無標(biāo)簽信息的句子語義距離關(guān)系。文獻(xiàn)[39]利用文本中同一事件的參數(shù)比其他詞更相近,事件相關(guān)的語義結(jié)構(gòu)圖比事件無關(guān)的語義結(jié)構(gòu)距離更遠(yuǎn)的思想,構(gòu)造自監(jiān)督對(duì)比信號(hào)在大量的無監(jiān)督數(shù)據(jù)上指導(dǎo)訓(xùn)練事件檢測(cè)與抽取任務(wù)的預(yù)訓(xùn)練語言模型,沒有關(guān)注對(duì)比學(xué)習(xí)在下游任務(wù)增強(qiáng)句子語義的能力。
本文在無觸發(fā)詞的事件檢測(cè)研究中,為了增強(qiáng)句子的語義表示,實(shí)現(xiàn)了自監(jiān)督對(duì)比和監(jiān)督對(duì)比2種方式的表示學(xué)習(xí)方法,并實(shí)驗(yàn)分析了效果的差異性。
本文設(shè)計(jì)并實(shí)現(xiàn)了基于句子語義提取的事件檢測(cè)框架。首先通過自監(jiān)督學(xué)習(xí)對(duì)預(yù)訓(xùn)練的語言模型BERT 調(diào)優(yōu),提高模型在事件檢測(cè)任務(wù)上的領(lǐng)域適應(yīng)性。然后在此基礎(chǔ)上提出了2 種增強(qiáng)句子語義的事件檢測(cè)方法,分別是自監(jiān)督對(duì)比學(xué)習(xí)和監(jiān)督對(duì)比學(xué)習(xí),通過對(duì)比信號(hào)提高句子語義的表達(dá)能力,從而提升事件檢測(cè)方法的效果。
根據(jù)最近事件檢測(cè)的研究進(jìn)展,本文采用BERT編碼器學(xué)習(xí)輸入文本的向量表示。圖3 所示為事件檢測(cè)基礎(chǔ)模型架構(gòu),該模型包括輸入層、BERT 編碼器、Dropout 層、線性分類器和輸出層。對(duì)于給定的句子S,首先在句子S 的開始和結(jié)束位置添加特殊字符,構(gòu)建擴(kuò)展的序列“[CLS] S [SEP]”,利用BERT 編碼器對(duì)序列進(jìn)行編碼,輸出序列第一個(gè)字符的最后一層的隱含層向量作為整個(gè)句子的語義表示;然后將句子的語義表示向量進(jìn)行dropout 操作,提高模型的魯棒性,避免模型的過擬合;最后將dropout 操作后句子表示輸入到一個(gè)線性分類器中,進(jìn)行事件類型的識(shí)別。線性分類器輸出一個(gè)數(shù)組,長度為事件類型總個(gè)數(shù),每個(gè)索引位置分別對(duì)應(yīng)一類事件,數(shù)組元素值為1 表示屬于該索引位置對(duì)應(yīng)的事件。圖中表示句子“Liana Owen drove 10 hours from Pennsylvania to attend the rally in Manhattan with her parents.”預(yù)測(cè)為“Demonstrate”和“Transport”2種事件類型。
事件檢測(cè)任務(wù)采用二進(jìn)制交叉熵?fù)p失函數(shù)。首先將線性分類器的輸出經(jīng)過sigmoid 激活函數(shù)處理,歸一化到(0,1)的范圍,獲取文本所屬每一類事件的概率P(yj|xi),如式(1)所示,其中fθ(xi) 表示輸入的文本序列xi經(jīng)過BERT 編碼器、Dropout 層、線性分類器輸出的結(jié)果,θ為模型參數(shù)。然后在每個(gè)類別上計(jì)算負(fù)對(duì)數(shù)概率作為事件檢測(cè)的損失函數(shù)Led,如式(2)所示,N為每次迭代訓(xùn)練批數(shù)據(jù)量大小,K為事件類型個(gè)數(shù)。
基于觸發(fā)詞的事件檢測(cè)方法需要對(duì)每個(gè)字符的隱含層向量進(jìn)行分類,本文在事件檢測(cè)時(shí)忽略觸發(fā)詞,只需要對(duì)整個(gè)句子語義編碼進(jìn)行分類即可,相對(duì)更簡單易于理解。為了滿足句子可能描述多個(gè)事件的需求,本文通過判斷句子預(yù)測(cè)為某類事件概率P(yj|xi) 是否大于閾值T來確定句子所屬事件類型,若概率超過閾值則屬于該事件類型,從而支持多標(biāo)簽事件檢測(cè)。
面向事件檢測(cè)任務(wù),本文采用自監(jiān)督學(xué)習(xí)方法對(duì)預(yù)訓(xùn)練語言模型BERT 調(diào)優(yōu),提高模型的領(lǐng)域適應(yīng)性。具體方式為:使用事件檢測(cè)數(shù)據(jù)集,通過自監(jiān)督預(yù)測(cè)隨機(jī)掩碼字符的方式,對(duì)預(yù)訓(xùn)練語言模型做調(diào)優(yōu)訓(xùn)練。相比于直接將預(yù)訓(xùn)練模型應(yīng)用在下游任務(wù),本文的調(diào)優(yōu)訓(xùn)練能夠增強(qiáng)模型對(duì)事件文本字符級(jí)別語義的提取,有助于下游任務(wù)對(duì)比學(xué)習(xí)的句子語義表示。
自監(jiān)督預(yù)測(cè)使用的掩碼語言模型損失函數(shù)[33]如式(3)所示,其中,P(xm) 為句子中一個(gè)掩碼字符的預(yù)測(cè)概率,M為一個(gè)批量數(shù)據(jù)中掩碼字符的總個(gè)數(shù)。
算法1 為預(yù)訓(xùn)練語言模型調(diào)優(yōu)算法的流程。首先(第2 和3 行)對(duì)批數(shù)據(jù)中每條樣本進(jìn)行隨機(jī)掩碼操作,構(gòu)建掩碼字符預(yù)測(cè)的訓(xùn)練數(shù)據(jù);然后(第4~7 行)前向計(jì)算損失函數(shù)Lmlm,并利用損失函數(shù)的梯度更新BERT 編碼器的參數(shù)。本文隨機(jī)掩碼字符操作參照文獻(xiàn)[33]的操作,隨機(jī)選取10%的字符,如果某個(gè)位置的字符被選擇,則以80%的概率用“[MASK]”字符替換,10%的概率替換成隨機(jī)字符,10%的概率保持原字符不變。
在自監(jiān)督對(duì)比學(xué)習(xí)中,由于沒有標(biāo)簽信息,本文采用2 種數(shù)據(jù)增強(qiáng)方式構(gòu)建自監(jiān)督對(duì)比學(xué)習(xí)的正樣例。如圖4 所示,在BERT 編碼器的輸入端,通過句子的mask 操作增強(qiáng)樣例;在BERT 編碼器的輸出端,通過句子特征層向量的dropout 操作增強(qiáng)樣例。本文對(duì)原文本的mask 操作方法和上述預(yù)訓(xùn)練語言模型調(diào)優(yōu)階段的掩碼方法相同。句子特征層向量的dropout 操作如下:對(duì)BERT 編碼器輸出的文本表示向量,以0.3 的概率丟棄。原文本和自身數(shù)據(jù)增強(qiáng)后的文本屬于同源樣本,用來構(gòu)造對(duì)比學(xué)習(xí)的正樣例,和其他文本增強(qiáng)的數(shù)據(jù)屬于不同源樣本,構(gòu)造為負(fù)樣例。
圖4 自監(jiān)督對(duì)比學(xué)習(xí)構(gòu)建正樣例的2 種方式
基于上述構(gòu)造的正負(fù)樣例,通過自監(jiān)督方式對(duì)相近的語義進(jìn)行理解和辨析[15,34],拉近同源樣本在語義空間的距離,拉遠(yuǎn)不同源樣本在語義空間的距離,從而提高樣本語義表示能力。
通常情況下,基于自監(jiān)督對(duì)比的事件檢測(cè)的聯(lián)合損失函數(shù)如式(5)所示,λ1為權(quán)重超參數(shù)。
但是需要大量的工作分析不同損失的量級(jí)、驗(yàn)證測(cè)試等才能設(shè)置合理的權(quán)重λ1。
為了降低手動(dòng)設(shè)置聯(lián)合學(xué)習(xí)損失函數(shù)權(quán)重的實(shí)驗(yàn)成本,文獻(xiàn)[40]利用多任務(wù)內(nèi)在的不確定性自動(dòng)學(xué)習(xí)不同損失的權(quán)重。受此啟發(fā),本文在訓(xùn)練過程中自動(dòng)調(diào)整損失函數(shù)的權(quán)重,減少了固定權(quán)重參數(shù)調(diào)優(yōu)的過程,同時(shí)在事件檢測(cè)的精度及模型收斂速度上都有所提升。
在動(dòng)態(tài)調(diào)整損失函數(shù)權(quán)重的方式下,基于自監(jiān)督對(duì)比的事件檢測(cè)的聯(lián)合損失函數(shù)如式(6)所示,其中σ1、σ2和β1在訓(xùn)練過程中動(dòng)態(tài)變化,σ1和σ2決定損失函數(shù)的權(quán)重,β1為聯(lián)合損失函數(shù)的正則項(xiàng)。
算法2 為基于自監(jiān)督對(duì)比的事件檢測(cè)算法的流程。首先(第3~7 行)對(duì)批數(shù)據(jù)中每條樣本進(jìn)行數(shù)據(jù)增強(qiáng)操作構(gòu)建其正樣例對(duì),生成自監(jiān)督對(duì)比學(xué)習(xí)的訓(xùn)練數(shù)據(jù);然后(第8~13 行)對(duì)自監(jiān)督對(duì)比任務(wù)和事件檢測(cè)任務(wù)聯(lián)合學(xué)習(xí)。
在監(jiān)督對(duì)比學(xué)習(xí)中,可以通過事件類型標(biāo)簽信息構(gòu)造監(jiān)督對(duì)比學(xué)習(xí)的正負(fù)樣例。屬于同一個(gè)事件類型的文本的語義比較相似,其向量的距離也更近,相反屬于不同事件類型的文本表示的向量距離更遠(yuǎn)。因此,屬于同一類別的文本為正樣例,屬于不同類別的文本為負(fù)樣例。由于事件檢測(cè)數(shù)據(jù)的稀疏,事件類型的繁多,每個(gè)批量數(shù)據(jù)中正樣例的數(shù)量比較少。為了增加監(jiān)督對(duì)比學(xué)習(xí)的正樣例,本文同樣采用原始文本mask 操作和文本特征層dropout 操作來增強(qiáng)樣例,并賦予增強(qiáng)的樣例和原文本相同的事件類別標(biāo)簽。
基于上述構(gòu)造的正負(fù)樣例,通過監(jiān)督對(duì)比區(qū)分不同事件類型的文本語義空間[33],拉近同類型文本在語義空間的距離,拉遠(yuǎn)不同類型文本在語義空間的距離,從而提高樣本在事件語義空間表示能力。監(jiān)督對(duì)比損失如式(7)所示。
其中,T為每次迭代訓(xùn)練批量數(shù)據(jù)中屬于同一類樣本對(duì)的個(gè)數(shù),Ⅱyi=yj表示第i個(gè)樣本和第j個(gè)樣本屬于同一類事件。
基于監(jiān)督對(duì)比的事件檢測(cè)的聯(lián)合損失函數(shù)如式(8)所示,λ2為權(quán)重超參數(shù)。
同樣地,動(dòng)態(tài)地調(diào)整事件檢測(cè)的二進(jìn)制交叉熵?fù)p失和監(jiān)督對(duì)比損失的權(quán)重,基于監(jiān)督對(duì)比的事件檢測(cè)的聯(lián)合損失如式(9)所示,權(quán)重參數(shù)σ3、σ4和正則項(xiàng)β2在訓(xùn)練過程中自行調(diào)整。
算法3 所示為基于監(jiān)督對(duì)比學(xué)習(xí)的事件檢測(cè)算法的流程。首先(第3~7 行)對(duì)批數(shù)據(jù)中每條樣本進(jìn)行數(shù)據(jù)增強(qiáng)操作增加同類事件的樣本數(shù);然后(第8 行)利用事件標(biāo)簽信息生成監(jiān)督對(duì)比學(xué)習(xí)的訓(xùn)練數(shù)據(jù);最后(第9~14 行)對(duì)監(jiān)督對(duì)比任務(wù)和事件檢測(cè)任務(wù)聯(lián)合學(xué)習(xí)。算法3 和算法2 的主要區(qū)別是數(shù)據(jù)增強(qiáng)的目的不同,算法2 中是為了構(gòu)建樣本的正樣例對(duì),而算法3 是為了增加同類事件的樣本數(shù)。
本節(jié)將介紹實(shí)驗(yàn)數(shù)據(jù)集、評(píng)價(jià)指標(biāo)、實(shí)驗(yàn)設(shè)置、實(shí)驗(yàn)結(jié)果等內(nèi)容。
本文在ACE 2005 中英文數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)評(píng)估。中英文語料均包含8 大類、33 個(gè)子類的事件樣本,本文分析了細(xì)粒度劃分的子類事件檢測(cè)的效果。根據(jù)之前的工作[4,12,20,24],對(duì)英文數(shù)據(jù)集劃分方式如下:先從不同類型文檔中隨機(jī)選擇30 篇文章作為驗(yàn)證集,然后隨機(jī)選擇40 篇作為測(cè)試集,剩余的529 篇文檔作為訓(xùn)練集。同樣方式對(duì)中文數(shù)據(jù)集劃分:先從不同類型文檔中隨機(jī)選擇64 篇文章作為驗(yàn)證集,再隨機(jī)選擇64 篇作為測(cè)試集,剩余的521篇文檔作為訓(xùn)練集。表1 所示為實(shí)驗(yàn)數(shù)據(jù)集包含文檔、句子、事件個(gè)數(shù)的情況。
表1 ACE 2005 中英文語料的文檔、句子、事件統(tǒng)計(jì)結(jié)果
利用Stanford CoreNLP 將每篇文檔切分成句子,并根據(jù)ACE 2005 原始語料的注釋為每條句子分配標(biāo)簽。如果一個(gè)句子不包括任何事件類型,則分配一個(gè)“Negative”的標(biāo)簽。如果一個(gè)句子中包含多個(gè)不同類型的事件,則保留每個(gè)類型的標(biāo)簽;如果句子中包含多個(gè)同一類型的事件,則針對(duì)同一事件類型,只保留一個(gè)標(biāo)簽。在ACE 語料中,這種情況占比不超過3%[12]。表2 所示為ACE 中英文語料中無觸發(fā)詞注釋的幾個(gè)樣例。
表2 ACE 2005 中英文語料的無觸發(fā)詞注釋的樣例
根據(jù)先前的工作[4,12,20,24],本文采用準(zhǔn)確率P、召回率R和F1度量評(píng)估所提出事件檢測(cè)算法的效果。
準(zhǔn)確率P指在預(yù)測(cè)的事件中(不包括“Negative”類別)正確預(yù)測(cè)事件的概率,如式(10)所示。
召回率R指在所有真實(shí)的事件中(不包括“Negative”類別)正確預(yù)測(cè)出的概率,如式(11)所示。
F1度量計(jì)算如式(12)所示。
本文采用BERT 模型的基礎(chǔ)配置:隱含層的大小為768、層數(shù)為12。訓(xùn)練時(shí)采用Adam 優(yōu)化器,模型的超參數(shù)設(shè)置為:序列最大長度為128、批量數(shù)據(jù)的大小為32、學(xué)習(xí)速率為3×10-5,對(duì)比學(xué)習(xí)的溫度系數(shù)τ在{ 0.1,0.2,0.3,0.4,0.5}集合中取值。
在ACE 2005 英文語料的實(shí)驗(yàn)中,對(duì)比了同樣無觸發(fā)詞的事件檢測(cè)方法TBNNAMBias[12]、TBNNAM[12],以及傳統(tǒng)需要標(biāo)注觸發(fā)詞的基于BERT 編碼器的事件檢測(cè)方法DYGIE ++[26]、BERT-CRF。在ACE 2005 中文語料的實(shí)驗(yàn)中,對(duì)比了傳統(tǒng)需要標(biāo)注觸發(fā)詞的基于BERT 編碼器的事件檢測(cè)方法MCEE[41]、JMCEE[41]、BERT-CRF[8]。
TBNNAM:基于注意力機(jī)制的類型感知偏差神經(jīng)網(wǎng)絡(luò),利用LSTM 編碼字符的上下文,通過類型感知的注意力彌補(bǔ)觸發(fā)詞信息的缺失,并設(shè)計(jì)了偏差損失函數(shù)增強(qiáng)正樣本的影響。TBNNAMBias 在計(jì)算損失函數(shù)時(shí)不使用偏差項(xiàng)。
DYGIE++:一個(gè)基于BERT 編碼器的多任務(wù)學(xué)習(xí)框架,可以捕獲句子內(nèi)和跨句子的上下文語義。DYGIE++、BERTFinetune 是在事件檢測(cè)任務(wù)上微調(diào)預(yù)訓(xùn)練BERT 模型。
BERT-CRF:傳統(tǒng)的序列標(biāo)注的事件檢測(cè)方法,文本字符輸入BERT 編碼器輸出的序列向量,通過CRF 層對(duì)序列字符所屬事件觸發(fā)詞識(shí)別和分類。
MCEE、JMCEE:基于BERT 編碼器的事件提取方法。MCEE 是管道式模型,先進(jìn)行觸發(fā)詞的識(shí)別和分類,然后再進(jìn)行事件元素的識(shí)別。JMCEE 是聯(lián)合模型,同時(shí)預(yù)測(cè)文本的事件觸發(fā)詞和事件元素。本文對(duì)比了MCEE、JMCEE 事件檢測(cè)(觸發(fā)詞的識(shí)別和分類)的結(jié)果。
3.4.1 事件檢測(cè)結(jié)果的量化分析
表3 和表4 分別展示了不同方法在ACE 2005中英文數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果。第1 組是對(duì)比的基準(zhǔn)實(shí)驗(yàn),第2 組是本文提出的方法,包括只使用交叉熵?fù)p失Led的基礎(chǔ)方法,使用交叉熵?fù)p失和對(duì)比損失聯(lián)合訓(xùn)練增強(qiáng)句子語義的方法,以及預(yù)訓(xùn)練語言模型調(diào)優(yōu)的基礎(chǔ)上利用對(duì)比學(xué)習(xí)增強(qiáng)句子語義的方法。
表3 在ACE 2005 中文語料上不同方法的實(shí)驗(yàn)對(duì)比
表4 在ACE 2005 英文語料上不同方法的實(shí)驗(yàn)對(duì)比
從表3 可以看出,在ACE 2005 中文語料上,本文只使用Led的基礎(chǔ)方法,優(yōu)于傳統(tǒng)的MCEE(BERTPipeline)方法,F1值有2.3%的提升。在增加了對(duì)比損失后,和只使用Led的基礎(chǔ)方法相比,F1值有1.8%~3.2%的提升,甚至最高的F1值超過了利用事件檢測(cè)和事件元素提取多任務(wù)學(xué)習(xí)的方式增益事件識(shí)別效果的JMCEE(BERT-Joint)。和傳統(tǒng)BERTCRF 的事件檢測(cè)方法相比,本文提出的只使用Led的基礎(chǔ)方法和增加了對(duì)比表示的方法沒有優(yōu)勢(shì),主要原因是BERT-CRF 將觸發(fā)詞識(shí)別和分類轉(zhuǎn)化為序列標(biāo)注任務(wù),避免了觸發(fā)詞識(shí)別錯(cuò)誤后傳影響整體事件檢測(cè)效果的問題。在預(yù)訓(xùn)練語言模型調(diào)優(yōu)的基礎(chǔ)上對(duì)比語義增強(qiáng)方法,和JMCEE(BERT-Joint)相比,F1值提升0.1%~3.5%,和只使用Led的基礎(chǔ)方法相比,F1值提升3.1%~6.5%,并在監(jiān)督對(duì)比學(xué)習(xí)方法中達(dá)到和傳統(tǒng)方法BERT-CRF 相匹配的效果,甚至在利用mask 操作增強(qiáng)樣例的情況下取得更優(yōu)的F1值。分析其原因?yàn)?在無觸發(fā)詞的事件檢測(cè)方法中,事件類型的識(shí)別主要依賴文本句子的語義表示;對(duì)比學(xué)習(xí)使不同語義的句子在向量空間具有更清晰的辨識(shí)度;預(yù)訓(xùn)練語言模型的調(diào)優(yōu),增強(qiáng)了句子字符級(jí)別事件信息的表示,提高了模型在下游任務(wù)的領(lǐng)域適應(yīng)性。
從表4 可以看出,在ACE 2005 英文語料上,本文只使用Led的基礎(chǔ)方法,優(yōu)于同樣無觸發(fā)詞的事件檢測(cè)方法TBNNAMBias,F1值提升1.6%,但低于使用偏差損失函數(shù)增強(qiáng)正樣本的TBNNAM 方法。這說明事件檢測(cè)任務(wù)的正負(fù)樣本(包含事件信息的樣本為正樣本,根據(jù)表1 占比不到50%)的偏差對(duì)事件識(shí)別的效果影響很大,而本文的重點(diǎn)在于文本語義的表示學(xué)習(xí),沒有針對(duì)這一問題做優(yōu)化。在增加了對(duì)比損失后,和只使用Led的基礎(chǔ)方法相比,F1值有2.0%~4.0%的提升,并達(dá)到了和TBNNAM 相匹配的效果,最高的F1值(基于mask 操作增強(qiáng)樣例的監(jiān)督對(duì)比學(xué)習(xí))提升1.6%。和DYGIE ++、BERT Finetune 相比,本文只使用Led的基礎(chǔ)方法略差,主要因?yàn)楸疚牟捎玫姆椒ㄈ笔в|發(fā)詞信息,在增加了對(duì)比損失后,F1值提升0.0%~1.9%,表明增強(qiáng)句子語義的方法可以提高觸發(fā)詞缺失而下降的效果。在預(yù)訓(xùn)練語言模型調(diào)優(yōu)的基礎(chǔ)上使用對(duì)比語義增強(qiáng)的方法,和只使用Led的基礎(chǔ)方法相比,F1值有4.2%~5.9% 的提升,并達(dá)到和傳統(tǒng)方法BERTCRF 相匹配的效果,甚至在利用mask 操作增強(qiáng)樣例的監(jiān)督對(duì)比學(xué)習(xí)方法中取得更優(yōu)的F1值。
從表3 和表4 還發(fā)現(xiàn):同自監(jiān)督對(duì)比學(xué)習(xí)相比,利用標(biāo)簽信息的監(jiān)督對(duì)比學(xué)習(xí)的事件檢測(cè)效果更好。一方面是因?yàn)楸O(jiān)督對(duì)比將同一類別的樣本作為正樣例,相比于將同源樣本作為正樣例,更能在語義空間區(qū)分不同事件類型的語義距離。另一方面是因?yàn)楸O(jiān)督對(duì)比采用數(shù)據(jù)增強(qiáng)的方式增加了每次迭代訓(xùn)練中的正樣例數(shù)量。此外,不管是監(jiān)督對(duì)比還是自監(jiān)督對(duì)比,利用mask 操作的數(shù)據(jù)增強(qiáng)具有更好的檢測(cè)效果,特別是基于mask 操作增強(qiáng)樣例的監(jiān)督對(duì)比學(xué)習(xí)在中英文語料上都取得了相對(duì)較優(yōu)的F1值。
3.4.2 對(duì)比學(xué)習(xí)溫度系數(shù)的影響分析
溫度系數(shù)τ是對(duì)比損失中一個(gè)重要的參數(shù),控制著模型對(duì)負(fù)樣本的區(qū)分度,直接影響模型的效果。本文實(shí)驗(yàn)分析了在{ 0.1,0.2,0.3,0.4,0.5}中取不同的值對(duì)事件檢測(cè)效果的影響。由于更小的值如0.07 在利用dropout 操作增強(qiáng)樣例的自監(jiān)督對(duì)比學(xué)習(xí)中收斂速度較慢,不在本文對(duì)比分析的范圍。
圖5 所示為在ACE 2005 中文語料上基于對(duì)比學(xué)習(xí)事件檢測(cè)的F1值隨溫度系數(shù)τ變化情況,其中圖5(a)和圖(b)分別為溫度系數(shù)取不同值時(shí)自監(jiān)督對(duì)比學(xué)習(xí)和監(jiān)督對(duì)比學(xué)習(xí)的事件檢測(cè)方法的效果。同樣,本文也測(cè)試了在ACE 2005 英文語料上基于對(duì)比學(xué)習(xí)事件檢測(cè)的F1值隨溫度系數(shù)τ變化情況,如圖6 所示。從圖中可以看到,溫度系數(shù)的選擇受數(shù)據(jù)增強(qiáng)方式、對(duì)比學(xué)習(xí)方式、數(shù)據(jù)集特點(diǎn)等多種因素的影響。在中文語料上,利用dropout 操作增強(qiáng)樣例的2 種對(duì)比學(xué)習(xí)方法的溫度系數(shù)傾向于取值0.3,而利用mask 操作增強(qiáng)樣例的2 種對(duì)比學(xué)習(xí)方法的最優(yōu)溫度系數(shù)分別為0.3、0.4。在英文語料上,利用dropout 操作增強(qiáng)樣例的2 種對(duì)比學(xué)習(xí)方法的溫度系數(shù)傾向于取值0.4(或0.3)、0.1,而利用mask 操作增強(qiáng)樣例的2 種對(duì)比學(xué)習(xí)方法的最優(yōu)溫度系數(shù)分別為0.1、0.4。
圖5 在ACE 2005 中文語料上事件檢測(cè)F1 隨溫度系數(shù)變化情況
圖6 在ACE 2005 英文語料上事件檢測(cè)F1 隨溫度系數(shù)變化情況
本文進(jìn)一步分析了不同取值的溫度系數(shù)對(duì)模型收斂速度的影響。圖7 所示為在ACE 2005 中文語料上溫度系數(shù)對(duì)不同對(duì)比學(xué)習(xí)方法收斂速度的影響。從圖中可以看到,不管是dropout 操作還是mask 操作的數(shù)據(jù)增強(qiáng)方式,相對(duì)于監(jiān)督對(duì)比學(xué)習(xí),自監(jiān)督對(duì)比學(xué)習(xí)的收斂速度更容易受溫度系數(shù)的影響,比如溫度系數(shù)取值0.1 時(shí)和較大的取值(如0.3、0.5)相比,自監(jiān)督對(duì)比學(xué)習(xí)的收斂速度明顯慢很多。值得注意的是,和利用dropout 操作增強(qiáng)樣例的對(duì)比學(xué)習(xí)方法相比,利用mask 操作增強(qiáng)樣例的對(duì)比學(xué)習(xí)更容易收斂。以溫度系數(shù)取值0.1 為例說明如下:在自監(jiān)督對(duì)比學(xué)習(xí)中,利用dropout 操作增強(qiáng)樣例的方式大概需要3000 多次迭代才能收斂,而利用mask 操作增強(qiáng)樣例的方式大概需要迭代2500次;在監(jiān)督對(duì)比學(xué)習(xí)中,利用dropout 操作增強(qiáng)樣例的方式大概需要迭代2700 次才能收斂,而利用mask 操作增強(qiáng)樣例的方式僅需要迭代1000 多次。
圖7 在ACE 2005 中文語料上溫度系數(shù)對(duì)不同對(duì)比學(xué)習(xí)方法收斂速度的影響
3.4.3 自動(dòng)調(diào)整權(quán)重的效果分析
本文在訓(xùn)練過程中自動(dòng)調(diào)整對(duì)比損失函數(shù)和事件檢測(cè)的交叉熵?fù)p失函數(shù)的權(quán)重,和手動(dòng)設(shè)置權(quán)重的方式相比,自動(dòng)調(diào)整權(quán)重能夠快速地達(dá)到較優(yōu)的效果。
圖8 所示為手動(dòng)調(diào)整權(quán)重和自動(dòng)調(diào)整權(quán)重的效果(F1值)對(duì)比,柱狀形為使用式(5)或(6)手動(dòng)調(diào)整損失函數(shù)權(quán)重的效果,虛線表示使用式(8)或(9)自動(dòng)調(diào)整損失函數(shù)權(quán)重的效果。手動(dòng)調(diào)整損失函數(shù)權(quán)重時(shí),λ取值為{0.1,0.3,0.5,0.7,0.9,1.0}。測(cè)試方法是在ACE 2005 中文語料上利用dropout 操作增強(qiáng)樣例的監(jiān)督對(duì)比學(xué)習(xí)和利用mask 操作增強(qiáng)樣例的自監(jiān)督對(duì)比學(xué)習(xí)2 種方法,實(shí)驗(yàn)顯示的結(jié)果是訓(xùn)練30 個(gè)epoch 在測(cè)試集上獲得的F1值。從圖中可以看到手動(dòng)調(diào)整權(quán)重時(shí)λ取值0.1 最優(yōu),這對(duì)于有經(jīng)驗(yàn)的專業(yè)人員,可能會(huì)快速地找到λ的最優(yōu)值為0.1,但對(duì)于經(jīng)驗(yàn)不足的調(diào)參人員可能需要多次的實(shí)驗(yàn)才能找到最優(yōu)的權(quán)重分配,而動(dòng)態(tài)調(diào)整權(quán)重的方式不需要如此繁瑣的調(diào)參過程就能獲得較優(yōu)的F1值。
圖8 手動(dòng)調(diào)整權(quán)重和自動(dòng)調(diào)整權(quán)重的效果(F1 值)對(duì)比
圖9 對(duì)比了手動(dòng)調(diào)整權(quán)重和自動(dòng)調(diào)整權(quán)重的收斂速度。手動(dòng)調(diào)整權(quán)重的λ取值0.1,曲線顯示的是在驗(yàn)證集上F1值的變化情況。從圖中可以看到,利用dropout 操作增強(qiáng)樣例的監(jiān)督對(duì)比學(xué)習(xí),自動(dòng)調(diào)整權(quán)重和手動(dòng)調(diào)整權(quán)重收斂速度相差不大,經(jīng)過3000多次的迭代訓(xùn)練均能收斂;利用mask 操作增強(qiáng)樣例的自監(jiān)督對(duì)比學(xué)習(xí),自動(dòng)調(diào)整權(quán)重的方式收斂速度更快,大概需要2000 多次迭代訓(xùn)練,而手動(dòng)調(diào)整權(quán)重的方式經(jīng)過8000 多次迭代訓(xùn)練還不能達(dá)到收斂狀態(tài)。
圖9 手動(dòng)調(diào)整權(quán)重和自動(dòng)調(diào)整權(quán)重的收斂速度對(duì)比
面對(duì)事件檢測(cè)數(shù)據(jù)稀疏、標(biāo)注昂貴的問題,本文探索了無觸發(fā)詞事件檢測(cè)的語義提取方法,介紹了基于對(duì)比學(xué)習(xí)增強(qiáng)句子語義的事件檢測(cè)方法。該方法在事件檢測(cè)數(shù)據(jù)集上通過自監(jiān)督學(xué)習(xí)對(duì)預(yù)訓(xùn)練的語言模型BERT 調(diào)優(yōu),并利用mask 操作和dropout操作構(gòu)建自監(jiān)督對(duì)比樣例,增加監(jiān)督對(duì)比樣例,實(shí)現(xiàn)了自監(jiān)督對(duì)比和監(jiān)督對(duì)比2 種句子語義增強(qiáng)的方法,同時(shí)在訓(xùn)練過程中自動(dòng)調(diào)整對(duì)比損失和事件分類的交叉熵?fù)p失的權(quán)重。在ACE 2005 中英文語料上的實(shí)驗(yàn)結(jié)果表明,本文提出的方法和只使用交叉熵?fù)p失的方法相比,F1值在中文語料上有3.1%~6.5%的提升,在英文語料上有4.2%~5.9%的提升;相較于基準(zhǔn)方法,F1值也具有明顯的優(yōu)勢(shì)。在模型收斂速度方面,自監(jiān)督對(duì)比學(xué)習(xí)比監(jiān)督對(duì)比學(xué)習(xí)更容易受溫度系數(shù)的影響,相同的對(duì)比學(xué)習(xí)方法中利用mask 操作增強(qiáng)樣例的方式更容易收斂,特別是對(duì)于取值較低的溫度系數(shù)。此外,本文采用的動(dòng)態(tài)調(diào)整損失函數(shù)權(quán)重的方法,能夠降低人工調(diào)參成本,同時(shí)更快地達(dá)到較優(yōu)的結(jié)果。未來工作中,本研究將進(jìn)一步探討無觸發(fā)詞事件檢測(cè)相關(guān)技術(shù)以及事件元素的提取。