作者:Yucheng Zhou, Tao Shen, Xiubo Geng, Guodong Long, Daxin Jiang
自然語言文本里描述的“事件”,通常是由一個謂詞及其論點組成的一個文本片段(span),是一個細(xì)粒度的語義單元,描述了實體的狀態(tài)和行為,如 He looks very worried 和 I grab his arms。理解事件并建模它們之間的相關(guān)性是許多推理任務(wù)的基礎(chǔ)。在圖1的例子中,想要生成事件[E],模型需要先知道這里有四個事件,“it tries the knob”、“[E]”、“the creature starts pounding on the door”、“(the creature) to break it down”,然后根據(jù)其他三個事件及其相關(guān)性,如“but”表達的對比關(guān)系和“so”表達的因果關(guān)系,來預(yù)測[E]。
現(xiàn)有的基于事件的推理工作中,很多是針對某個特定的任務(wù)設(shè)計的,包括溯因推理、故事結(jié)尾的分類和生成、反事實推理、腳本推理等具體的任務(wù),算法的應(yīng)用范圍較窄。預(yù)訓(xùn)練模型時代,更好的方案是直接訓(xùn)練一個基于事件的預(yù)訓(xùn)練模型,然后推廣到各種下游推理任務(wù)上。當(dāng)然,倒也不必從0到1,通常情況下,只需在通用的預(yù)訓(xùn)練語言模型(如BERT、GPT、BART、T5)上做微量的 continue pre-training,就能得到適用于某個領(lǐng)域的較好的模型了。
CLarET
ClarET由三個預(yù)訓(xùn)練任務(wù)組成,分別是Whole Event Recovering,Contrastive Event-correlation Encoding和Prompt-based Event Locating。
Whole Event Recovering(WER)
WER 的目的非常直接,就是讓 encoder-decoder 架構(gòu)的生成式模型還原被 mask 的整句事件描述。具體的,給定一段文本 ,其中某句話描述了事件 ,現(xiàn)在要做的就是用一個特殊標(biāo)簽 [M] 把這句話在原文中替換掉,這里用 表示被 mask 的原文。然后將文本給到 encoder,再由 decoder 還原事件 的描述。用數(shù)學(xué)公式表示的話,就是求解給定上下文 和模型 的前提下, 的概率值:
參照 Transformer 序列生成,這部分的訓(xùn)練目標(biāo)就是優(yōu)化事件 上的最大似然估計,因此損失函數(shù)定義為:
其中, 表示被 mask 的整個事件的描述, 則表示 的 tokenized tokens,即 。是 decoder 的預(yù)測概率分布,表示在 t-step, 的概率。decoder 的預(yù)測依賴 encoder 部分的輸出:
這個目標(biāo)類似于span recovering,但不同之處在于,在這里:
是按照一個完整的事件描述來選取 masked span 的,所以 masked span 的長度遠(yuǎn)大于普通的 span recovering 中的 masked span(普通的 span 最多只有22個 tokens,圖4提供了長度分布);
另外,為了促進事件及其上下文之間的事件相關(guān)性建模,ClarET 每次只會 mask 一個事件,而其他的 MLM 工作通常會有多個 masked span。
事實上,由于現(xiàn)在這種 event-level 的 masked spans 比較長,就會一定程度上影響模型學(xué)習(xí)事件及其上下文之間的關(guān)系,具體體現(xiàn)在:
Encoder-Decoder 架構(gòu)的生成式模型,如 BART 或 T5,依賴的是 token-level 的隱式共現(xiàn)來恢復(fù)事件描述,但是上下文 和事件 之間那種 event-level 的相關(guān)性就沒有被模型利用到,所以就目前以 WER 為預(yù)訓(xùn)練任務(wù)得到的這個模型,在事件推理的任務(wù)上表現(xiàn)并不好。
由于現(xiàn)在直接將整個事件描述都 mask了,它的前一部分語義完整,后一部分也語義完整,它自己也語義完整,所以某種程度上來說,這個被 mask 的部分,出現(xiàn)什么句子都有道理,也就是說模型要正確還原一整段完整的話還是有相當(dāng)?shù)碾y度的,具體可以參考一些autoencoding MLM的工作。
為了解決這兩個問題,作者增加了兩個預(yù)訓(xùn)練任務(wù),分別是,在 encoder 端增加事件相關(guān)的對比學(xué)習(xí)任務(wù)來增強上下文和事件之間的相關(guān)性,以及prompt-based event locating,意圖降低 decoder 端的生成難度。
Contrastive Event-correlation Encoding
對于第一個問題,本文提出的解決方案是,在 encoder 端顯示地強調(diào)缺失事件的上下文和被 mask 的事件之間的相關(guān)性,并使用對比學(xué)習(xí)來實現(xiàn)。對比學(xué)習(xí)通過對比來學(xué)習(xí)區(qū)分事物,通常的做法是將數(shù)據(jù)分別與正例樣本和負(fù)例樣本在特征空間進行對比,并構(gòu)造合適的 loss 函數(shù),拉近數(shù)據(jù)與正樣例的距離,同時盡可能遠(yuǎn)離負(fù)樣例。因此,可以通過構(gòu)造與上下文不相關(guān)的負(fù)例事件,和正確的事件一起提供給模型,增強模型學(xué)習(xí)正確的事件描述及其上下文的相關(guān)性的能力。正例事件 和它的負(fù)樣例 的 encoder embeddings 為和 :
在以下對比學(xué)習(xí) loss 中,和 增強了 里 [M] 這個 token 在 中的表示 。本文中使用的距離函數(shù) d(·,·)是歐幾里得距離。
經(jīng)過負(fù)樣本增強的 也會在 decode 階段提供事件級信息,一定程度上也會對緩解第二個問題有幫助吧。
Prompt-based Event Locating
不過針對第二個問題,作者有更加直接的方案,就是利用 prompt,將 WER 目標(biāo)簡化為提取生成任務(wù),模型僅需從提示中定位(有助于模型縷清句子之間的承接關(guān)系)和復(fù)制一個候選的提示出來(限制模型的搜索范圍)。
首先第一種提示,“選正確的事件描述”。作者參考 prompt-based multi-choice QA,也設(shè)計了一個 Option prompt。這里稍微講一下 Multi-choice question answering(MCQA) 任務(wù),MCQA 就是根據(jù)給定的問題,從候選答案中選擇正確的答案[2]。現(xiàn)有 MCQA 存在以下兩種做法:1) Text-to-Text:通過BART或T5等生成預(yù)訓(xùn)練模型,將問題和各個候選項同時編碼,讓模型直接生成正確的答案;2) Encoder-Only:通過 BERT 或 RoBERTa 等預(yù)訓(xùn)練模型,將候選項分別與問題一起編碼,得到每個候選項的表示,再比較各個候選項的表示,選出答案。在本文中,使用的是 Text-to-Text 范式來設(shè)計 Option prompt。
對于每段文本 ,會 sample 出 M 個 negative event ,和正確的 event 一起,共 M+1 句話,將它們隨機排列之后,拼接到的后邊得到 。這里給出 的一個樣例:“Dan’s parents were overweight. [M] The doctors told his parents it was unhealthy. His parents understood and decided to make a change. Options: (a)They got themselves and Dan on a diet. (b)Dan was overweight as well. (c) They went to see a doctor.” 其中正確的選項是 (b),即,模型需要生成“Dan was overweight as well.”這句話。參照 WER,這部分的目標(biāo)表示為 。
其次第二種提示,“找錯誤的事件描述”。類比不連貫推理,原文中的目標(biāo)事件會被某個錯誤的事件 所替換,模型的任務(wù)就是指認(rèn)出 ,相應(yīng)的 prompt 可以構(gòu)造成如下形式:
同樣以剛剛的文本為例,這里的輸入應(yīng)該是:“Dan’s parents were overweight.They got themselves and Dan on a diet. The doctors told his parents it was unhealthy. His parents understood and decided to make a change. Event: [M] is wrong.”模型的輸出則是“They got themselves and Dan on a diet.”,因為這句話是錯的。這部分的目標(biāo)表示為。
基于以上兩種 prompt 范式,這部分的優(yōu)化目標(biāo)為:
模型預(yù)訓(xùn)練和 fine-tuning 的過程
ClarET 基于上面的三個任務(wù)進行 pre-training,相應(yīng)的 loss 就是直接線性相加它們各自的 loss:
不過有監(jiān)督的 fine-tuning 會因為下游任務(wù)而不太一樣。對于生成式任務(wù),只會 fine-tuning 第一個任務(wù)。對于判別式任務(wù),如 multi-choice,既可以類似 GPT/T5 那樣定制 prompt,以生成式的方式來做,使用 negative log-likelihood loss;也可以像 BART 那樣取 classifying heads 做分類式的 fine-tuning,使用 cross-entropy loss。實驗發(fā)現(xiàn) BART 這種效果更好,所以接下來的相關(guān)實驗都采用了這種形式。
與其他基于事件的預(yù)訓(xùn)練模型對比
本文還稍微對比了一下 ClarET 和另外兩個事件預(yù)訓(xùn)練模型 EventBERT 和 COMeT。ClarET 跟 EventBERT 的數(shù)據(jù)處理以及動機是一致的,但是 EventBERT 是“discriminative-only”,即僅適用于分類任務(wù),ClarET 則在是生成式的范式,能支持更加“unified”的場景;另外,ClarET 的對比學(xué)習(xí)和基于 prompt 的事件定位這兩個任務(wù),能顯示并有效地學(xué)習(xí)上下文和事件之間的 event-level corrections,相比 EventBERT 的“event-backfilling and contextualizing”更高效。另一個,COMeT,它雖然也是一個生成式模型,但側(cè)重于 triple-level 的常識推理——給定(head event, relation)來生成 tail events,動機、范圍、評價指標(biāo),跟 ClarET 都是正交的。
實驗/分析
主要結(jié)果
本文選取了5個生成任務(wù)和4個分類任務(wù)作為下游任務(wù)進行模型的評估,每個任務(wù)使用一種數(shù)據(jù)集。生成任務(wù)包括 ART (αNLG) 上的溯因常識推理、TIMETRAVEL 上的反事實故事生成、故事結(jié)尾生成、常識故事生成和 APSI 上的事件過程完成。分類任務(wù)包括 MCNC 上的腳本推理、ART (αNLI)上的誘導(dǎo)常識推理、ROCStories 上的敘事不連貫檢測和故事完形填空測試。
從表1看來,ClarET 在生成式任務(wù)上表現(xiàn)相當(dāng)優(yōu)異,都達到了 SOTA,一定程度上說明了基于 event-level 做 few steps continual pre-training 是可行的方案。當(dāng)然,在生成式范式的加持下,ClarET 很自然地能為“各種以事件為中心的相關(guān)推理任務(wù)提供一個通用的解決方案”。
再來看看表2,ClarET 在分類任務(wù)上也挺不錯的,可以跟強判別式模型比如 EventBERT 拼一拼,雖然某些任務(wù)的精度稍差一點,但是 GPU 小時比 EventBERT 少了5.6倍,而且泛化性比判別式好。有一點需要注意,EventBERT 的預(yù)訓(xùn)練任務(wù)范式和下游任務(wù)范式其實是差不多的,而 ClarET 預(yù)訓(xùn)練是生成式的,下游任務(wù)則換成分類,還是差挺多的,這樣還能有如此結(jié)果,說明 ClarET 還是有一定優(yōu)勢的。后續(xù)也可以把 ClarET 作為統(tǒng)一的基于事件的預(yù)訓(xùn)練模型,用在以事件為中心的相關(guān)任務(wù)上。
一些定量分析
Zero-shot Learning
這部分實驗主要想驗證 ClarET 有沒有學(xué)到事件信息,對比對象是其他的 MLM 模型,結(jié)果看表3和表4,還是按生成式和分類式劃分。通用的預(yù)訓(xùn)練模型沒有針對事件進行任何處理,可想而知結(jié)果跟 ClarET 是比不了的。Zero-shot 設(shè)定下,ClarET 顯然是最好的。
Few-shot Learning
因為 ClarET 減少了預(yù)訓(xùn)練和微調(diào)在事件上的不一致,所以只需要10%-30%的訓(xùn)練數(shù)據(jù)進行微調(diào),就可以實現(xiàn)與強基線類似的性能(圖3)。
Ablation study
表5在生成和分類任務(wù)上分別進行了三個預(yù)訓(xùn)練目標(biāo)任務(wù)的消融實驗,每個預(yù)訓(xùn)練任務(wù)都能在基準(zhǔn)模型 BART-large 的基礎(chǔ)上帶來提升。
Comparison with Larger Model
表7驗證了事件相關(guān)知識能使預(yù)訓(xùn)練模型在參數(shù)量較少的情況下也能有較好的表現(xiàn)。
Difficulty of Event Generation
表6,驗證只使用 WER 的預(yù)訓(xùn)練存在學(xué)習(xí)困難問題,而額外的兩個預(yù)訓(xùn)練任務(wù)能緩解這個問題。用的評價指標(biāo)是事件級困惑度 ePPT。我們都知道,當(dāng)我們在比較幾個語言模型的優(yōu)劣時,我們希望更好的語言模型能賦予測試集中的正確句子更高的概率值,相應(yīng)的,模型的困惑度(Perplexity)就越低;那么類比 PPL,ePPL 就可以理解為,期望更好的語言模型能夠賦予相關(guān)事件的句子更高的概率值,且相應(yīng)的整體 ePPL 越低越好。所以當(dāng)表6中 ClarET 的 ePPL 明顯低于 WER-Only Model 時,說明額外的兩個預(yù)訓(xùn)練任務(wù)能有效改善 WER。
Long-span Event Generation.
圖4, 驗證 ClarET 在 longer-span 事件生成上更有優(yōu)勢。本實驗的數(shù)據(jù)里,大部分事件長度在6-8,但仍然有很多大于9的樣例??梢悦黠@看到,隨著事件長度的增加,其他模型與 ClarET 之間的差距越來越大,因為通用模型在預(yù)訓(xùn)練時只考慮了短的 masked span,導(dǎo)致事件生成較差。
Natural Language Understanding (NLU)
圖5,驗證 minor event-centric continual pre-training 不會損害 BART-large 本身的 NLU 能力,用 GLUE 基準(zhǔn)做的驗證實驗。結(jié)果是 fine-tuning 的 BART 和 ClarET 相差不多,說明 ClarET 仍然保留了相當(dāng)?shù)?NLU 能力。
案例研究與錯誤分析
最后是 case study 和 error analysis。
圖6給了兩個生成溯因推理任務(wù)的 case。第一個 case 顯示 ClarET 能較好地掌握上下文,生成的結(jié)果比 BART 要完整。
第二個 case 顯示,當(dāng) gold event 很復(fù)雜時,ClarET 的生成結(jié)果比較不理想,主要體現(xiàn)在,傾向于忽略比較細(xì)微的上下文。具體來說,該模型只關(guān)注‘a(chǎn)t the end of the day’從而生成‘... spent the whole day ...’,而忽略了‘starting her job ...teacher’和‘they liked her’。更進一步,作者發(fā)現(xiàn)模型在解碼長事件時普遍存在一個現(xiàn)象,即 ClarET 和 WER-only 之間的 token-level perplexity 的差距逐漸減?。▓D7)。
作者分析,是因為當(dāng) mask 的 span 較長時,模型傾向于在解碼過程基于已經(jīng)生成的 tokens 預(yù)測下一個 token,而不是去利用上下文,并且 span 越長越明顯。這個問題,目前倒是還沒有看到很好的解決辦法。
結(jié)論
本次分享的 ClarET,雖然主要工作是基于事件推理,但是對于其他以事件為中心的任務(wù)(如情感分析)還是有不少借鑒之處,特別是后兩個預(yù)訓(xùn)練任務(wù),從對比學(xué)習(xí)和提示學(xué)習(xí)的角度緩解了 long masked span 學(xué)習(xí)困難的問題,這樣的思路也可以推廣到其他“從上下文學(xué)習(xí)語義文本單元”的任務(wù)中去,例如當(dāng)文本單元是實體和概念時,可以用于學(xué)習(xí)關(guān)系和常識知識。
審核編輯:郭婷
-
gpu
+關(guān)注
關(guān)注
28文章
4673瀏覽量
128594
原文標(biāo)題:CLarET:實現(xiàn)上下文到事件相關(guān)感知的預(yù)訓(xùn)練模型
文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論