如何向大模型注入知識?達摩院通義對話模型SPACE系列探索(1)
如何將人類先驗知識低成本融入到預(yù)訓練模型中一直是個難題。達摩院對話智能團隊提出了一種基于半監(jiān)督預(yù)訓練的新訓練方式,將對話領(lǐng)域的少量有標數(shù)據(jù)和海量無標數(shù)據(jù)一起進行預(yù)訓練,從而把標注數(shù)據(jù)中蘊含的知識注入到預(yù)訓練模型中去,打造了 SPACE 1/2/3 系列模型。
- SPACE-1:注入對話策略知識,AAAI 2022 長文錄用;
- SPACE-2:注入對話理解知識,COLING 2022 長文錄用,并獲 best paper award 推薦;
- SPACE-3:集對話理解 + 對話策略 + 對話生成于一體的模型, SIGIR 2022 長文錄用。
達摩院對話大模型 SPACE-1/2/3 在 11 個國際對話數(shù)據(jù)集取得 SOTA。
圖 1 SPACE 系列模型在 11 個國際對話數(shù)據(jù)集取得 SOTA,包含 Intent Prediction、Slot Filling、Dialog State Tracking、Semantic Parsing、End-to-End Generation 五大類對話任務(wù)
相關(guān)論文:
- SPACE-1: https://arxiv.org/abs/2111.14592
- SPACE-2: https://arxiv.org/abs/2209.06638
- SPACE-3: https://arxiv.org/abs/2209.06664
- 相關(guān)代碼:https://github.com/AlibabaResearch/DAMO-ConvAI
1. 關(guān)于人機對話和預(yù)訓練模型的簡介
1.1. 什么是人機對話?
人機對話的終極目的是讓機器(對話系統(tǒng))和人類(用戶)能像人和人一樣進行自由的對話。通常來說,對話系統(tǒng)和人類的對話過程主要分為三個主要階段,分別是對話理解(Understanding)、對話策略(Policy)和對話生成(Generation)。如下圖所示,當用戶說了一句 "查詢水費",對話系統(tǒng)首先要理解用戶說的是什么意思(What do you say ?),然后要根據(jù)理解的結(jié)果,需要判斷自己該如何去回答(How Shold I say ?),第三步要通過自然語言的方式返回給用戶(What should I say ?)。
圖 2 人機對話系統(tǒng)簡介
1.2. “無知識,不對話”
人機對話都是基于知識構(gòu)建起來的,即“無知識,不對話”。目前的對話系統(tǒng)大概可以分為三個類別,包括對話、問答和閑聊。對話主要是指任務(wù)型對話,通過具體的業(yè)務(wù)流程知識來構(gòu)建,圍繞一個流程完成某個具體的任務(wù);問答根據(jù)知識形態(tài)的不同,分為了很多種,比如基于知識圖譜的問答(KBQA)、基于表格或者數(shù)據(jù)庫的問答(TableQA)、基于文檔的問答(DocQA)等;閑聊主要是利用一些開放域知識,完成與人類的聊天等。除此之外,所有的對話都可能會依賴人類標注的知識、世界知識和各種常識等。
圖 3 無知識不對話,知識是對話系統(tǒng)的基礎(chǔ)
舉個例子,比如在辦理汽車保險的場景中,相關(guān)的多輪對話受業(yè)務(wù)邏輯流程約束的:首先需要驗證個人信息,然后系統(tǒng)調(diào)用驗收報告,如果驗收報告通過,接下來就要填寫保單,最終完成保險的辦理;如果驗車不通過,需要反饋給用戶原因,最終完成整個對話的流程。在這個例子中,對話流程體現(xiàn)的是業(yè)務(wù)流程知識;需要驗證的個人信息包括姓名等,依賴于世界知識,比如姓名中的“弓長張木子李”;最后,這個項目如果想達到交付效果要求,還需要標注訓練樣本訓練模型,這里面就包含人工標注知識。
1.3. 預(yù)訓練對話模型
近些年來,預(yù)訓練模型引爆了 NLP 的技術(shù)變革,比如 BERT[1]、GPT[2]、T5[3] 等。這些模型基于自監(jiān)督的訓練方式(MLM)在大規(guī)模無監(jiān)督語料上進行學習,而其背后的本質(zhì)是語言模型(Language Model),回答什么樣的句子更像一個合理的句子。典型的預(yù)訓練語言模型主要由三個主要組件構(gòu)成 :(1) 海量的自由文本作為輸入 (2)利用 Transformer [4] 網(wǎng)絡(luò)架構(gòu)作為模型 (3)通過自監(jiān)督的預(yù)訓練目標 MLM 作為優(yōu)化目標。
圖 4 預(yù)訓練語言模型及其組成
但是對話數(shù)據(jù)和普通文本數(shù)據(jù)有非常顯著的差異,相比于普通的文本數(shù)據(jù),對話作為語言的高級應(yīng)用,至少有如下的特點:
- 對話是口語化的,人在對話的時候表述隨意,也不一定符合語法,可能存在噪音及 ASR 錯誤;
- 對話是分角色多輪次的,至少有兩個參與主題,輪次間存在省略、指代、狀態(tài)繼承等特點;
- 對話都存在垂直的知識約束;
- 對話需要深層語義理解,比如涉及到意圖槽位,邏輯推理等;
- 對話是講究策略的,為了完成特定的任務(wù)目標,模型需要知道自己該如何決策。
直接利用預(yù)訓練語言模型作為對話模型的基座存在天然的不適配,我們需要針對對話的數(shù)據(jù)及特點,設(shè)計獨特的對話預(yù)訓練模型,來增強對話系統(tǒng)的效果。從 2020 年開始,面向?qū)υ挼膶S妙A(yù)訓練對話模型開始涌現(xiàn)。目前預(yù)訓練對話模型的建模,基本按照對話理解和對話生成兩大任務(wù)類進行建模,利用類似于 BERT 或者 GPT-2 的 loss 在對話語料上進行預(yù)訓練。例如,針對話理解,常見模型有 PolyAI 的 ConvRT [5],Salesforce 的 TOD-BERT[6]和亞馬遜的 ConvBERT[7],針對對話生成,常見模型有微軟的 DialoGPT [8],谷歌的 Meena[9]和 Meta 的 Blender[10]。這些預(yù)訓練對話模型仍然存在很多不足:
- 數(shù)據(jù)上,大部分只用了開放域數(shù)據(jù);
- 模型上,大多只面向回復(fù)生成進行建模;
- 訓練機制上,只利用了自監(jiān)督預(yù)訓練目標。
綜上,一方面,無知識不對話,知識是對話的基礎(chǔ);另一方面,預(yù)訓練對話模型對于對話系統(tǒng)是剛需?;诖?,我們希望在數(shù)據(jù)和知識雙驅(qū)動的預(yù)訓練對話模型方向上進行深入探索。
2. SPACE-1: 從 自監(jiān)督訓練 到 半監(jiān)督訓練
2.1. 從自監(jiān)督到半監(jiān)督
如何向模型中注入標注知識依舊是一個尚未充分探索的方向。早期工作中,谷歌的 T5 就已經(jīng)嘗試了將有標和無標數(shù)據(jù)統(tǒng)一成語言生成任務(wù)進行學習,但是實驗卻表明簡單地混合有標無標數(shù)據(jù)訓練反而會帶來負面影響。經(jīng)過大量的實驗探索,我們發(fā)現(xiàn)如果還是基于原先的兩大預(yù)訓練范式,難以很好地進行預(yù)訓練。首先,單利用自監(jiān)督預(yù)訓練或者有監(jiān)督預(yù)訓練是無法同時利用好有標和無標的預(yù)訓練數(shù)據(jù),僅自監(jiān)督損失函數(shù)是無法學習出標注知識中的高層語義的,有監(jiān)督損失函數(shù)亦不能學出無標語料中的通用底層語義;其次,在大規(guī)模預(yù)訓練中,由于所使用的預(yù)訓練數(shù)據(jù)往往存在著少量有標數(shù)據(jù)和海量無標數(shù)據(jù)之間的數(shù)量鴻溝,如果簡單混合兩種預(yù)訓練,會使得標注知識的信息要么淹沒在無標數(shù)據(jù)中,要么就會出現(xiàn)嚴重的過擬合,因此我們需要全新的預(yù)訓練范式來解決該問題。
基于上述動機,我們期待能夠通過一種新的訓練方式,將人類知識注入到預(yù)訓練對話模型中。這里我們提出半監(jiān)督預(yù)訓練對話模型 SPACE (Semi-supervised Pre-trAined Conversation ModEl) 。如下圖所示,半監(jiān)督預(yù)訓練從遷移學習的角度來看,可以認為是一個前兩種范式的自然延伸,通過構(gòu)造半監(jiān)督學習的損失函數(shù)來充分綜合利用有限的標注知識和大量的無標數(shù)據(jù)。在半監(jiān)督學習理論里 [11],模型既需要在無標數(shù)據(jù)上進行自我推斷,根據(jù)結(jié)果進一步約束優(yōu)化,也需要利用有標數(shù)據(jù)進行一定程度的有監(jiān)督,指導(dǎo)自監(jiān)督預(yù)訓練的過程,同時避免模型參數(shù)陷入平凡解。
圖5 三種預(yù)訓練方式:有監(jiān)督、自監(jiān)督及半監(jiān)督,參考[16]修改
如下圖所示,傳統(tǒng)的半監(jiān)督學習主要是通過無標注數(shù)據(jù)來輔助有標注數(shù)據(jù),從而減少學習所需要的標注樣本量。而我們關(guān)注的不再是如何降低對標注數(shù)據(jù)量的依賴,而是如何更加高效地融入特定標注知識。
圖 6 我們提出的半監(jiān)督預(yù)訓練與之前半監(jiān)督的不同點
半監(jiān)督預(yù)訓練是我們 SPACE 系列模型的核心思路,基于這個思路,我們該從哪個方向進行探索呢?當前的預(yù)訓練對話模型主要可以分為對話理解、對話策略、對話生成幾個方向,對話理解和對話生成都有一些相關(guān)的工作了,而對話策略的研究卻比較薄弱,但對話策略又是連接對話理解和對話生成的核心環(huán)節(jié),它指導(dǎo)著對話生成的正確性,同時對于多輪對話能否完成目標(對話完成率)也至關(guān)重要。所以我們先從對話策略進行入手,將策略知識注入到預(yù)訓練對話模型中。
圖 7 針對對話策略的預(yù)訓練對話模型還處于空白
2.2. 對話策略知識
什么是對話策略呢?對話策略最早是 1995 年在語言學被提出,用來對人類的語言交流進行行為建模的,將對話動機或者對話行為抽象為具體的類型,在 wiki 百科中的解釋為 “A dialog act is a tag for an utterance, in the context of a conversational dialog, that serves a function in the dialog”。隨著領(lǐng)域的發(fā)展,人機對話也開始采取這種標簽體系,稱之為 dialog act (DA),比如哥倫比亞大學的 Zhou Yu 老師團隊提出以用戶為中心的 DA 體系,一共 23 個 DA 標簽,憑借這套對話策略的標簽,拿下了當年的 Alexa Prize 的冠軍,證明了這種策略知識對于人機對話任務(wù)也是非常重要的。
圖 8 對話策略(Dialog Act)的發(fā)展歷史
但是目前的 DA 標注體系都比較零散,每個研究的標注體系都不相同,畢竟用一個小規(guī)模的、具體的集合來描述整個人類的語言描述,還是非常有挑戰(zhàn)的。為了推進這個方向的研究,我們將學術(shù)界面向任務(wù)型對話的策略體系進行了整合,最終梳理出 5 大類、20 小類的統(tǒng)一標簽體系。最終我們打造出最大的統(tǒng)一 DA 的對話數(shù)據(jù)集 UniDA,共計 100w 條 utterance,同時我們還整理了學術(shù)界所有的大規(guī)模無標注語料 UniDIal,共計 3500w 條 utterance。
圖 9 我們總結(jié)出的 DA 體系,基于此梳理發(fā)布了學術(shù)界最大的統(tǒng)一 DA 的對話數(shù)據(jù)集 UniDA
目前我們已經(jīng)整理好了用于預(yù)訓練的知識和數(shù)據(jù),接下來需要考慮如何設(shè)計模型。首先我們將對話策略進行顯式建模,給定對話歷史,直接預(yù)測下一輪系統(tǒng)端的 DA 標簽。比如下面這個例子,用戶首先說 “幫我查一下上個月的水費”,機器人說“好的,請問你的戶號是多少?” 然后這個用戶就會把他的水卡的號說出來。那么再下一句,機器人應(yīng)該說什么呢?我們要預(yù)測機器人的這個對話策略,就是選擇繼續(xù)詢問,或者選擇回答信息,還是要進行澄清,這些行為就是模型就要預(yù)測機器人的這個對話策略。那么這樣一個預(yù)測的過程,可以直接建模為分類問題進行處理。
圖 10 對話策略的建模方式
2.3. 半監(jiān)督預(yù)訓練
如何將這個分類問題進行半監(jiān)督訓練呢?目前學界對于半監(jiān)督的利用主要分為 3 種:基于判別式的方法,比如 self-prediction、co-training 等;基于生成式的方法,比如 VAE、GAN 等,還有基于對比學習的方法,比如 有負樣本的對比和無負樣本的對比。其中,在我們的實驗中,基于判別式(self-prediction)和生成式(VAE)由于缺乏顯式的 loss 約束及隱變量的不確定性,效果都不盡人意。
圖 11 NLP 中常用的半監(jiān)督方法
我們最后選擇基于對比學習的半監(jiān)督訓練方法。具體的,針對無標對話數(shù)據(jù),我們采用了 R-drop[12] 的思路,如下圖所示,給定同樣的對話輸入 c(context),經(jīng)過兩次帶有 dropout 的 forward 得到了兩次經(jīng)過隨機擾動后在對話動作空間 (DA)上預(yù)測的不同分布,然后通過雙向 KL 正則損失函數(shù)(L_KL)來約束兩個分布。針對有標對話數(shù)據(jù),我們則直接利用基礎(chǔ)的有監(jiān)督交叉熵 loss(L_DA)來優(yōu)化對話動作預(yù)測。理論可以證明,在滿足低密度假設(shè)下(即分類邊界處于低密度分布),通過對同一個樣本進行擾動后分類結(jié)果仍然具備一定程度上的一致性 (即分布接近或預(yù)測結(jié)果接近),那么最終基于一致性正則的半監(jiān)督學習可以保證找到正確的分類面。最終模型的預(yù)訓練損失將和回復(fù)選擇任務(wù)(L_select)和回復(fù)生成任務(wù)(L_gen)進行聯(lián)合優(yōu)化。
圖 12 半監(jiān)督 Loss 設(shè)計
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。