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