首次利用半監(jiān)督注入知識,達(dá)摩院推出新型預(yù)訓(xùn)練對話模型,取得顯著提升
?隨著深度學(xué)習(xí)的迅猛發(fā)展,學(xué)術(shù)界每年都會有許多高質(zhì)量標(biāo)注數(shù)據(jù)集被公開,如文本分類、情感分析等等,同時工業(yè)界也會積累沉淀面向任務(wù)的各類標(biāo)注數(shù)據(jù),怎樣將儲存在標(biāo)注數(shù)據(jù)中的特定任務(wù)知識注入到預(yù)訓(xùn)練模型中,從而帶來該類任務(wù)的普遍效果提升,就成為一個重要的研究方向。
本文從將預(yù)訓(xùn)練模型的兩大經(jīng)典范式簡介開始,圍繞預(yù)訓(xùn)練語言模型學(xué)到哪些知識、如何向預(yù)訓(xùn)練模型注入知識展開,然后重點介紹預(yù)訓(xùn)練對話模型及達(dá)摩院對話智能團(tuán)隊在半監(jiān)督預(yù)訓(xùn)練對話模型方面的進(jìn)展,最后對未來研究方向作出展望。
1. 預(yù)訓(xùn)練語言模型的兩大范式
1.1. 有監(jiān)督預(yù)訓(xùn)練
神經(jīng)網(wǎng)絡(luò)模型的預(yù)訓(xùn)練一直是深度學(xué)習(xí)中備受關(guān)注的問題。最早的研究可追溯到 Hinton 教授在 2006 年提出的一種基于受限玻爾茲曼機(jī)優(yōu)化的貪心算法 [2],該方法利用無標(biāo)數(shù)據(jù)針對深度信度網(wǎng)絡(luò)(Deep Belief Nets, DBN)進(jìn)行一層層地初始化,從而能夠保證較深的網(wǎng)絡(luò)在下游任務(wù)上也能快速收斂。隨著大數(shù)據(jù)的興起和算力的提升,人們逐漸發(fā)現(xiàn)直接在具有高度相關(guān)性的大型有標(biāo)數(shù)據(jù)集上進(jìn)行有監(jiān)督預(yù)訓(xùn)練,然后再某個特定下游任務(wù)進(jìn)行遷移學(xué)習(xí)能夠帶來更強(qiáng)的表現(xiàn),比較常見的工作是利用 VGG,ResNet 等超深模型在 ImageNet 上進(jìn)行預(yù)訓(xùn)練,將有關(guān)圖像分類的專家標(biāo)注的大量經(jīng)驗知識注入到模型的參數(shù)中,從而在目標(biāo)追蹤、圖片分割等其他相關(guān)任務(wù)上進(jìn)行更好地適應(yīng)學(xué)習(xí)。
1.2. 自監(jiān)督預(yù)訓(xùn)練
近一兩年里,隨著預(yù)訓(xùn)練語言模型的興起,利用自監(jiān)督的方式在無標(biāo)數(shù)據(jù)上針對鑒別式模型構(gòu)造有監(jiān)督損失函數(shù)進(jìn)行超大規(guī)模的自監(jiān)督預(yù)訓(xùn)練成為了新的主流,例如在自然語言處理領(lǐng)域中,BERT 使用基于上下文的詞 token 預(yù)測可以訓(xùn)練出很好的自然語言表征,在大量 NLP 任務(wù)上都得到了效果驗證 [3];而在計算機(jī)視覺領(lǐng)域中,近期以 ViT [4] 為基礎(chǔ)的一系列工作,也利用了類似 BERT 的 transformer 結(jié)構(gòu)進(jìn)行圖片 patch 重建的預(yù)訓(xùn)練,從而習(xí)得良好的圖片表征,并在 imagenet-1K 等圖片分類數(shù)據(jù)集上取得顯著提升。
清華研究者們在綜述 [5] 中從遷移學(xué)習(xí)的角度來統(tǒng)一審視了目前已有的兩大預(yù)訓(xùn)練范式,如下圖 1 所示,無論是有監(jiān)督預(yù)訓(xùn)練還是自監(jiān)督預(yù)訓(xùn)練,歸根結(jié)底都是直接從數(shù)據(jù)中學(xué)出更加合理的分布式表示,從而能夠更好地遷移適配到具體的下游任務(wù)。
圖 1:神經(jīng)網(wǎng)絡(luò)預(yù)訓(xùn)練兩大范式(改自綜述 [5])
總結(jié)來看,兩種范式各有自己的優(yōu)劣點:有監(jiān)督預(yù)訓(xùn)練因為存在有標(biāo)數(shù)據(jù)進(jìn)行指導(dǎo),所學(xué)出的特征對某些相關(guān)下游任務(wù)更加適配,但是卻嚴(yán)重依賴人工標(biāo)注;自監(jiān)督預(yù)訓(xùn)練可不再受到人工標(biāo)注的局限,利用海量無標(biāo)數(shù)據(jù)進(jìn)行學(xué)習(xí),但所設(shè)計的損失函數(shù)一般都需要簡單通用,例如 LM loss, MLM loss 和 contrastive loss 等,這就使得大模型學(xué)習(xí)到的更多是普適的語義表示。
2. 預(yù)訓(xùn)練語言模型學(xué)會了什么?
2.1. 模型的知識探測
依目前發(fā)展來看,以 BERT 為代表的自監(jiān)督預(yù)訓(xùn)練已經(jīng)成為了研究主流。論文 [6] 曾對 BERT 模型 “庖丁解牛”,通過知識探測的手段,深入地探究了每一層的注意力權(quán)重的關(guān)系(如圖 2 所示),發(fā)現(xiàn)不同層的不同注意力頭(attention head)都對不同的語言特征敏感,例如有的注意力頭對于定冠詞修飾的名詞敏感,有的注意力頭對于被動語態(tài)關(guān)注度更高,有的則在一定程度上實現(xiàn)了長距離指代消解。
圖 2:解析 BERT 不同注意力頭的權(quán)重圖 (引自 [6])
預(yù)訓(xùn)練的本質(zhì)是將訓(xùn)練數(shù)據(jù)中蘊含的信息以模型可理解的方式隱含地存儲到參數(shù)中 [5],不少研究工作已經(jīng)表明 [7][8][9],預(yù)訓(xùn)練模型如 BERT 能夠?qū)W習(xí)到較好的語言學(xué)知識(句法、語法),甚至一定程度上的世界知識和常識知識。但是預(yù)訓(xùn)練模型在如何更好地學(xué)習(xí)利用人類經(jīng)驗知識上依舊存在不少問題,需要更多的研究與探索,例如如何對其進(jìn)行更好的建模,如何更有效地進(jìn)行預(yù)訓(xùn)練,如何評價知識融入的程度等等。
2.2. 人類經(jīng)驗知識
這里,我們將人類經(jīng)驗知識粗略分為三類:
- 第一類是事實型知識,例如人工構(gòu)建的知識表格、知識圖譜和結(jié)構(gòu)化文檔(包含篇章結(jié)構(gòu)、圖文信息)。目前已經(jīng)有一些預(yù)訓(xùn)練的工作針對這類知識進(jìn)行更好地利用,例如達(dá)摩院不久前開源的最大中文預(yù)訓(xùn)練表格模型(詳見《達(dá)摩院開源中文社區(qū)首個表格預(yù)訓(xùn)練模型,取得多個基準(zhǔn) SOTA》一文);清華的 KEPLER [12] 和北大的 K-BERT [11] 是通過將三元組融合到神經(jīng)網(wǎng)絡(luò)輸入并引入新的損失函數(shù)或結(jié)構(gòu)來實現(xiàn)圖譜知識的有效融入;微軟的 LayoutLM 系列模型 [13] 和 Adobe 的 UDoc [14] 則研究了如何針對結(jié)構(gòu)化文檔進(jìn)行預(yù)訓(xùn)練。
- 第二類是數(shù)理邏輯知識,包括數(shù)理公式、公理定理、符號計算等,這一類知識不作為本文討論內(nèi)容。
- 第三類是標(biāo)注知識,即標(biāo)注數(shù)據(jù)中蘊含的知識。這類知識十分普遍,屬于任務(wù)相關(guān)的,例如文本分類、情感分析等。人類在標(biāo)注過程中需要根據(jù)該特定的任務(wù)進(jìn)行歸納總結(jié),在預(yù)先定義的高層語義分類空間中對無標(biāo)數(shù)據(jù)進(jìn)行推斷并賦值相應(yīng)的標(biāo)簽。因此,利用標(biāo)注知識來增強(qiáng)預(yù)訓(xùn)練模型理應(yīng)會對相關(guān)下游任務(wù)帶來明顯效果提升。
3. 如何注入人類標(biāo)注知識?
盡管現(xiàn)在各類預(yù)訓(xùn)練模型包打天下,但是如何向模型中注入標(biāo)注知識依舊是一個尚未充分探索的方向。早期工作中,谷歌的 T5 [16] 就已經(jīng)嘗試了將有標(biāo)和無標(biāo)數(shù)據(jù)統(tǒng)一成語言生成任務(wù)進(jìn)行學(xué)習(xí),但是實驗卻表明簡單地混合有標(biāo)無標(biāo)數(shù)據(jù)訓(xùn)練反而會帶來負(fù)面影響。
經(jīng)過大量的實驗探索,我們發(fā)現(xiàn)如果還是基于原先的兩大預(yù)訓(xùn)練范式,是難以很好地進(jìn)行預(yù)訓(xùn)練的。首先,單利用自監(jiān)督預(yù)訓(xùn)練或者有監(jiān)督預(yù)訓(xùn)練是無法同時利用好有標(biāo)和無標(biāo)的預(yù)訓(xùn)練數(shù)據(jù),因為僅僅自監(jiān)督損失函數(shù)是無法學(xué)習(xí)出標(biāo)注知識中的高層語義的,有監(jiān)督損失函數(shù)亦不能學(xué)出無標(biāo)語料中的通用底層語義;其次,在大規(guī)模預(yù)訓(xùn)練中,由于所使用的預(yù)訓(xùn)練數(shù)據(jù)往往存在著少量有標(biāo)數(shù)據(jù)和海量無標(biāo)數(shù)據(jù)之間的數(shù)量鴻溝,如果簡單混合兩種預(yù)訓(xùn)練,會使得標(biāo)注知識的信息要么淹沒在無標(biāo)數(shù)據(jù)中,要么就會出現(xiàn)嚴(yán)重的過擬合,因此我們需要全新的預(yù)訓(xùn)練范式來解決該問題。
這里,我們提出半監(jiān)督預(yù)訓(xùn)練。如圖 3 所示,半監(jiān)督預(yù)訓(xùn)練從遷移學(xué)習(xí)的角度來看,可以認(rèn)為是一個前兩種范式的自然延伸,通過構(gòu)造半監(jiān)督學(xué)習(xí)的損失函數(shù)來充分綜合利用有限的標(biāo)注知識和大量的無標(biāo)數(shù)據(jù)。在半監(jiān)督學(xué)習(xí)理論里 [17],模型既需要在無標(biāo)數(shù)據(jù)上進(jìn)行自我推斷,根據(jù)結(jié)果進(jìn)一步約束優(yōu)化,也需要利用有標(biāo)數(shù)據(jù)進(jìn)行一定程度的有監(jiān)督,指導(dǎo)自監(jiān)督預(yù)訓(xùn)練的過程,同時避免模型參數(shù)陷入平凡解。
圖 3:半監(jiān)督預(yù)訓(xùn)練新范式
我們團(tuán)隊專注在對話智能(Conversational AI)方向,所以我們率先將半監(jiān)督預(yù)訓(xùn)練的思路應(yīng)用在了對話領(lǐng)域,提出了半監(jiān)督預(yù)訓(xùn)練對話模型,在 MultiWoz 等國際經(jīng)典對話數(shù)據(jù)集上取得了顯著提升,論文已經(jīng)被 AAAI2022 錄用 [1]。接下來我們先簡單介紹一下什么是預(yù)訓(xùn)練對話模型,然后重點介紹半監(jiān)督預(yù)訓(xùn)練對話模型。
4. 預(yù)訓(xùn)練對話模型
預(yù)訓(xùn)練語言模型(Pre-trained Language Model, PLM)需要回答的什么樣的句子更像自然語言,而預(yù)訓(xùn)練對話模型(Pre-trained Conversation Model, PCM)需要回答的是給定對話歷史什么樣的回復(fù)更合理。因此,預(yù)訓(xùn)練對話模型相比預(yù)訓(xùn)練語言模型任務(wù)更加特定化,需綜合考慮對話輪次、對話角色、對話策略、任務(wù)目標(biāo)等預(yù)訓(xùn)練語言模型不太關(guān)注的特征,圖 4 給出了一個對話特有屬性的總結(jié)。
圖 4:對話特有的屬性總結(jié)
目前預(yù)訓(xùn)練對話模型的建模,基本按照對話理解和對話生成兩大任務(wù)類進(jìn)行建模,利用類似于 BERT 或者 GPT-2 的 loss 在對話語料上進(jìn)行預(yù)訓(xùn)練。例如,針對話理解,常見模型有 PolyAI 的 ConvRT [20],Salesforce 的 TOD-BERT [21] 和亞馬遜的 ConvBERT [31],針對對話生成,常見模型有微軟的 DialoGPT [18],谷歌的 Meena [19] 和 Facebook 的 Blender [30]。但是,這些模型都沒有融入標(biāo)注知識。
5. 半監(jiān)督預(yù)訓(xùn)練建模方案
我們的目標(biāo)評測基準(zhǔn)是劍橋 MultiWOZ2.0,亞馬遜 MultiWOZ2.1 等經(jīng)典對話數(shù)據(jù)集,該任務(wù)需要通過構(gòu)建對話模型來進(jìn)行用戶意圖識別、對話策略選擇和回復(fù)生成。針對下游任務(wù)模型,我們直接沿用已有的端到端對話模型 UBAR [24],將其通用的 GPT-2 模型底座換成我們的 SPACE 模型底座,再進(jìn)行相同設(shè)置下的評測。
5.1. 對話策略知識
對話策略是對話過程中的一個重要模塊,一般用對話動作標(biāo)簽(dialog act, DA)來進(jìn)行刻畫,即給定雙方的對話歷史,對話策略需要選擇出正確的對話動作用于指導(dǎo)對話生成(圖 5)。當(dāng)前各種常見預(yù)訓(xùn)練對話模型,如 Meena,DialoGPT 等往往都直接將對話動作的選擇過程隱含建模到模型參數(shù)里,存在著不可解釋和不可控等問題。由于策略是一種高層語義,難以僅僅利用自監(jiān)督的方式就能很好地學(xué)習(xí)出來。因此,接下來我們將從對話策略建模出發(fā),提出利用半監(jiān)督的方式實現(xiàn)更好的預(yù)訓(xùn)練,將標(biāo)注數(shù)據(jù)中的對話策略知識融入到預(yù)訓(xùn)練對話模型中來。
圖 5:一輪完整對話過程
經(jīng)過總結(jié)分析,我們從 ISO 國際對話動作標(biāo)準(zhǔn) [25] 中歸納出了 20 個對于任務(wù)型對話最高頻的對話動作集合(見圖 6),并整理合并了現(xiàn)有的多個對話數(shù)據(jù)集,經(jīng)過人工對齊刪改后我們給出了目前最大的英文任務(wù)對話動作標(biāo)注數(shù)據(jù)集 UniDA(一共 97 萬輪次),同時我們也從各種公開論壇,開源 benchmark 等渠道收集處理得到了高質(zhì)量的英文無標(biāo)對話語料 UnDial (一共 3.5 千萬輪次)。具體細(xì)節(jié)可參考論文 [1]。
圖 6:英文對話 UniDA 體系
5.2. 策略知識注入
在本文中,我們提出利用半監(jiān)督預(yù)訓(xùn)練的方式來解決對話策略的建模難題,將對話動作預(yù)測任務(wù)改造成半監(jiān)督學(xué)習(xí)任務(wù),并設(shè)計出 SPACE 系列的第一款預(yù)訓(xùn)練模型 SPACE 1.0 (亦即我們 AAAI 論文 [1] 中 GALAXY 模型)。
具體來看,SPACE1.0 采用了 encoder+decoder 架構(gòu),預(yù)訓(xùn)練的目標(biāo)既包含了傳統(tǒng)的建模對話理解和對話生成的自監(jiān)督 loss,也包含了建模對話策略的半監(jiān)督 loss,完整框架見圖 7。
圖 7:半監(jiān)督對話預(yù)訓(xùn)練框架
首先,對于對話理解,我們采用了回復(fù)選擇(response selection)作為預(yù)訓(xùn)練目標(biāo)(如圖 7 右側(cè)所示),即給定對話上下文(context)和候選回復(fù)(response)在 [CLS] 處進(jìn)行二分類判決是否是正確的回復(fù)。在諸多 PCM 工作中 [20][21] 中都已經(jīng)證明了回復(fù)選擇的訓(xùn)練對于對話理解至關(guān)重要,因此我們保留該目標(biāo)。
對于對話生成,我們則使用了常見的回復(fù)生成(response generation)目標(biāo),即給定對話上下文生成正確回復(fù)語句(如圖 7 左側(cè)所示)。
圖 8:基于 R-drop 的一致性正則損失
對于對話策略,我們采用了半監(jiān)督學(xué)習(xí)中十分高效的一致性正則 (consistency regularization) 方法來建模對話動作。理論可以證明,在滿足低密度假設(shè)下(即分類邊界處于低密度分布),通過對同一個樣本進(jìn)行擾動后分類結(jié)果仍然具備一定程度上的一致性(即分布接近或預(yù)測結(jié)果接近),那么最終基于一致性正則的半監(jiān)督學(xué)習(xí)可以保證找到正確的分類面 [23]。針對對話策略的具體損失函數(shù)組成如下:
- 針對無標(biāo)對話數(shù)據(jù),我們采用了 R-drop [22] 的思路,如圖 7 所示,給定同樣的對話輸入 c,經(jīng)過兩次帶有 dropout 的 forward 得到了兩次經(jīng)過隨機(jī)擾動后在對話動作空間上預(yù)測的不同分布,然后通過雙向 KL 正則損失函數(shù)來約束兩個分布;
- 針對有標(biāo)對話數(shù)據(jù),我們則直接利用基礎(chǔ)的有監(jiān)督交叉熵 loss 來優(yōu)化對話動作預(yù)測。
最終對于模型的預(yù)訓(xùn)練,我們將整個模型的理解、策略、生成目標(biāo)加在一起進(jìn)行優(yōu)化。更多具體細(xì)節(jié)可參考論文 [1]。
6. 半監(jiān)督預(yù)訓(xùn)練效果顯著
我們在斯坦福的 In-Car [28],劍橋的 MultiWOZ2.0 [26] 和亞馬遜的 MultiWOZ2.1 [27] 這三個國際對話數(shù)據(jù)集上進(jìn)行效果驗證。In-Car 數(shù)據(jù)集提出時間最早,是車載語音對話數(shù)據(jù),一共有約 3k 個完整對話,難度較為簡單;MultiWOZ2.0 是目前最大最難使用最廣泛的任務(wù)型對話數(shù)據(jù)集,包含 1w 個完整對話,橫跨 7 個場景,如訂餐館、訂酒店等。MultiWOZ2.1 是在 MultiWOZ2.0 基礎(chǔ)上進(jìn)行人工標(biāo)注校正后數(shù)據(jù)集。
如圖 9 所示,經(jīng)過半監(jiān)督預(yù)訓(xùn)練融入策略知識后,可以看到我們的 SPACE1.0 模型在這些對話榜單上均大幅超過了之前的 SOTA 模型,端到端混合分?jǐn)?shù)在 In-Car,MultiWOZ2.0 和 MultiWOZ2.1 分別提升 2.5,5.3 和 5.5 個點:
圖 9:各數(shù)據(jù)集端到端得分總體結(jié)果比較
以上的結(jié)果充分證明了半監(jiān)督預(yù)訓(xùn)練的效果。同時我們也做了低訓(xùn)練資源下實驗,發(fā)現(xiàn)在利用不同訓(xùn)練數(shù)據(jù)比例下,我們的模型都保持著顯著的效果提升。如圖 10 所示,SPACE1.0 模型在僅利用 5% 訓(xùn)練數(shù)據(jù)量下就能夠和利用全量 100% 訓(xùn)練數(shù)據(jù)的基于 GPT-2 的對話模型 SimpleTOD 可比,僅利用 10% 訓(xùn)練數(shù)據(jù)量就直接超過了利用全量訓(xùn)練數(shù)據(jù)量的基于 T5 的對話模型 MinTL。
圖 10:低資源訓(xùn)練下端到端得分結(jié)果比較
我們也進(jìn)行了案例分析,從圖 11 中可以發(fā)現(xiàn),相比之前的 SOTA 模型,SPACE1.0 模型能夠預(yù)測出更加正確的對話動作,因此,合理的對話策略能夠提升整體的端到端任務(wù)完成效果。
圖 11:案例分析 Case Study
SPACE1.0 模型(即 GALAXY)目前在 MultiWOZ 官網(wǎng)上仍然排名第一,成績截圖如下所示:
7. 總結(jié)展望
本工作主要介紹了如何通過半監(jiān)督預(yù)訓(xùn)練向大模型中注入特定的人類標(biāo)注知識,從而使得模型在下游任務(wù)上有更加卓越的效果。和過往的半監(jiān)督學(xué)習(xí)相比,我們關(guān)注的不再是如何降低對標(biāo)注數(shù)據(jù)量的依賴,而是如何更加高效地融入特定標(biāo)注知識,如下圖 12 所示:
圖 12:將半監(jiān)督學(xué)習(xí)從下游訓(xùn)練推廣到預(yù)訓(xùn)練過程
在后續(xù)的工作里,怎樣將該范式進(jìn)一步推廣到各類 NLP 的任務(wù)中去,打造出一套有實用價值的半監(jiān)督預(yù)訓(xùn)練 SPACE 模型體系,是需要持續(xù)探索的方向,具體包括:
- 知識自動選擇:如何利用算法模型自動選擇出合適的任務(wù)知識,從大量標(biāo)注數(shù)據(jù)集中找出對目標(biāo)下游任務(wù)最有用的數(shù)據(jù)集集合來進(jìn)行半監(jiān)督預(yù)訓(xùn)練是使得該范式成為通用范式的亟需研究問題。
- 半監(jiān)督算法:目前我們嘗試的是基于一致性正則化的半監(jiān)督預(yù)訓(xùn)練方案,但整個半監(jiān)督領(lǐng)域還有 self-taught, co-training, deep generative modeling 等諸多方法,如何綜合利用他們是一個重要研究課題。
- 異構(gòu)知識統(tǒng)一:本文中我們僅關(guān)注了分類標(biāo)注知識,針對其他類型的標(biāo)注知識,序列標(biāo)注知識、層次化分類知識、回歸標(biāo)注等,如何進(jìn)行更好的形式化表示,統(tǒng)一地融入到一個預(yù)訓(xùn)練模型中也是一個開放問題。
- 知識注入評價:如何更加定量且顯式地度量出特定任務(wù)知識注入的程度,利用 probing 等方法對知識融入有個合理的評價也值得進(jìn)一步的研究探索。
預(yù)訓(xùn)練模型的打造離不開強(qiáng)大的 AI 算力支持,SPACE 模型的研發(fā)也得益于阿里云 EFLOPS 團(tuán)隊提供的高效算力服務(wù),在此鳴謝!?