1. 論文介紹
本論文由百度發(fā)表于ACL2020鼻疮,重磅推出了擁有16億參數(shù)規(guī)模的超大型模型PLATO-2呜呐,該模型在公共數(shù)據(jù)集的測試超越了google發(fā)布的26億參數(shù)模型Meena和Facebook發(fā)布的27億參數(shù)模型Blender。而且在中文對話中寸宵,它與微軟小冰之間的差距巨大巩检,這無疑意味著百度PLATO-2將對話的智慧提升到了一個全新的水平。目前椅寺,PLATO是業(yè)界首個基于隱空間的端到端的預訓練對話生成模型浑槽,該模型用隱向量來表示對話的潛在方向,從而達到對話內(nèi)容豐富度和流暢度的顯著提升返帕。
2. 論文概述
該論文提出了一個對話生成預訓練模型桐玻,能夠支持閑聊、基于知識的對話荆萤、對話問答系統(tǒng)镊靴。
PLATO-2模型采用了靈活的注意力機制,來實現(xiàn)融合雙向文本內(nèi)容信息和單向的生成的語言特征信息链韭,該模型引入了離散隱變量來處理回復生成中一對多的問題偏竟,隱變量較為普遍地在VAE、CVAE等技術(shù)中使用梧油,但在論文中苫耸,作者們首次提出將離散的隱變量結(jié)合Transformer結(jié)構(gòu),應(yīng)用到通用的對話領(lǐng)域儡陨。通過引入離散隱變量褪子,可以對上文與回復之間的“一對多”關(guān)系進行有效建模。
模型的主要兩個任務(wù)為回復生成和隱動作識別骗村,兩個任務(wù)都在同一個網(wǎng)絡(luò)架構(gòu)下完成嫌褪。
3. 論文背景
大規(guī)模預訓練語言模型已經(jīng)在nlp領(lǐng)域展現(xiàn)了成功,比如bert和XLNet胚股,經(jīng)過fine-tune笼痛,這些預訓練模型持續(xù)在下游任務(wù)中獲得了突破,尤其是NLU領(lǐng)域琅拌,如問答缨伊、自然語言推理。但Bert在小規(guī)模語料上進行自然語言生成进宝,如對話生成的效果并不好刻坊,可能原因是:
1)人類對話中暗藏的語言特征和普通文本的相差很大,可能在知識或數(shù)據(jù)分布上差異很大党晋,由于人背景和環(huán)境可能有所不同谭胚,很多種回復都是合理的徐块。
2)單向?qū)υ捝傻挠柧毮J胶虰ERT中應(yīng)用的雙向自然語言理解具有差異。
3)不同于普通的nlp任務(wù)灾而,對話生成具有one-to-many的關(guān)系胡控,一段對話可能有多種合適的回復。對于這種復雜的一對多的模式旁趟,神經(jīng)網(wǎng)絡(luò)擬合起來往往非常棘手昼激。在學習這樣一對多的數(shù)據(jù)的時候,會因為模型能力和數(shù)據(jù)匱乏導致最終學習的效果趨向于平庸锡搜,極易產(chǎn)生如“哈哈”癣猾、“嗯”這樣大家熟知的索然無味的“聊天終結(jié)語”。
為了解決這些問題余爆,本文提出了新的方法以獲得高質(zhì)量對話生成的預訓練模型。首先夸盟,為了解決數(shù)據(jù)分布的問題蛾方,在使用普通數(shù)據(jù)的預訓練模型基礎(chǔ)上繼續(xù)使用了大規(guī)模Reddit和Twitter對話數(shù)據(jù)。其次上陕,為了緩解訓練模式的不同桩砰,本工作將單向和雙向的處理靈活使用。最后释簿,本模型采用了離散隱變量亚隅,在對話中來建設(shè)一對多關(guān)系模型。
隱變量:無監(jiān)督自動學習庶溶,無需人類標注
4. 對話生成預訓練
4.1. 模型構(gòu)架
模型三要素:
對話上下文:c 包含多條歷史對話
回復:r 針對給定上下文的合適回復之一
隱變量:z K類別變量 [1,K] 每個值都對應(yīng)一種特定隱藏語言行為
模型任務(wù):
-
回復生成:給定context c煮纵,一種選擇的隱變量z,回復生成p(r|c, z)偏螺,單向decoding,只考慮當前單詞之前生成的詞:r<t
隱藏行為識別:給定一對上下文context和回復,隱藏語言行為 p(z|c,r)昧狮,
4.2. 輸入表征
input embedding組成:token乖订、role、turn夺巩、position embedding
input是隱變量贞让、對話內(nèi)容和回復的拼接,每輪對話加上結(jié)束符[EOU]柳譬,開始符[BOU]
token embedding z是k種類變量喳张,embedding E[z] 從embedding空間K * D緯的矩陣Ez映射過來。其他詞匯的token使用Bert的embedding
role embedding用于區(qū)別對話中的字符征绎,EA是回復和由相同文本生成的對話蹲姐。EB是其他字符磨取,對于基于知識的對話,背景知識是Ec
turn embedding 記錄對話的論數(shù)柴墩,為了不讓對話輪數(shù)干擾生成忙厌,將回復設(shè)為0。
position embedding記錄該輪對話中每個字符的位置江咳。
4.3. 預訓練目標
4.3.1. 回復生成
本模型中逢净,回復的生成是基于隱變量和上下文已知的情況,預訓練模型采用負數(shù)對數(shù)似然NLL和詞袋BOW損失函數(shù)歼指,用于訓練隱變量爹土。
- NLL loss:
隱變量z服從后驗分布p(z|c,r),計算公式為:
是特殊mask的最后一層隱層踩身,, 是一個全連接層的權(quán)重矩陣
-
BOW loss:
V為整個詞典胀茵,函數(shù)f試圖用隱變量直接預測目標回復中的詞
是隱變量的最后一層隱狀態(tài),表示生成詞rt的概率挟阻。BOW不考慮詞的順序琼娘,讓隱變量能夠捕捉目標回復的全局信息。
4.3.2 回復選擇
回復選擇辨別回復是否和對話內(nèi)容相關(guān)附鸽,是否與背景知識一致脱拼,在多個備選回復中選出連貫一致的回復。
回復選擇的交叉熵如下:
表示為r為正確回復坷备,表示為錯誤回復熄浓。
4.3.3 預訓練模型總目標
最小化以下復合損失函數(shù)
4.4. 預訓練流程
該預訓練模型包含12個transformer block, 網(wǎng)絡(luò)參數(shù)使用Bert初始化省撑。對于每一個訓練樣例(c赌蔑,r),都需要兩次通過網(wǎng)絡(luò)來實現(xiàn)隱動作識別和回復生成任務(wù)竟秫。預訓練流程如下:
1)隱動作識別
已知c和r惯雳,估算后驗分布,隨機選擇并計算
- 回復生成
? 給定隱變量分布z~p(z|c,r)鸿摇,計算和
- 優(yōu)化
? 對于總損失L,后向傳播更新網(wǎng)絡(luò)參數(shù)
4.5. fine-tuning 和 推理
可通過公式8在小數(shù)據(jù)上進行fine-tuning石景,達到擬合后通過以下步驟進行推理:
1) 備選回復生成:對于每一個隱變量 ,生成相應(yīng)的回復r
2)備選回復選擇:對于每一個回復拙吉,計算概率潮孽,選擇概率最高的值作為回復。
5. 實驗
為了驗證預訓練模型的效果筷黔,論文在3個公開對話數(shù)據(jù)集上進行了測試:Persona-Chat往史、Daily Dialog以及DSTC7-AVSD。
Persona-Chat是典型的知識聊天任務(wù):兩個人講述自己信息(Persona Profiles)佛舱,并在對話中盡量了解對方椎例;Daily Dialog偏向日常閑聊類型挨决;DSTC7-AVSD是對話式問答,根據(jù)視頻場景信息订歪,兩人進行多輪問答脖祈,討論視頻中物體和事件。
在每個數(shù)據(jù)集上的實驗刷晋,作者們對比了基線方法以及每個數(shù)據(jù)集上的SOTA方法盖高。PLATO在Persona-Chat和Daily Dialog上的自動和人工評估結(jié)果,如表2所示眼虱。
PLATO在DSTC7-AVSD上的結(jié)果喻奥,如表3所示。由這些結(jié)果可見捏悬,PLATO在各個對話數(shù)據(jù)上撞蚕,均超過了當前最優(yōu),取得了新的最優(yōu)效果过牙。
PLATO也與其他預訓練模型進行了對比诈豌,在Persona-Chat上的實驗結(jié)果如表5所示,其中2.2是不使用Latent Space的對比模型抒和,3.1是完整PLATO模型。
表5 不同預訓練模型在Persona-Chat的PPL結(jié)果
通過對比這些結(jié)果彤蔽,可以看出:
靈活的注意力機制可以充分利用上文的雙向信息(Model 1.2 v.s. Model 1.3)摧莽;大規(guī)模的Twitter和Reddit語料,顯著改善回復生成(Group 2&3 v.s. Group 1)顿痪;離散隱變量的引入镊辕,則可以進一步提升回復質(zhì)量(Model 3.1 v.s. Model 2.2)。
對于PLATO的定性分析蚁袭,論文也在表5中提供了一些case征懈。給定一個上文,通過對離散隱變量進行不同賦值揩悄,PLATO可以產(chǎn)生多樣且都合理的回復卖哎。