達(dá)摩院基于元學(xué)習(xí)的對話系統(tǒng)
作者:戴音培, 黎航宇, 李永彬, 孫健
出品:阿里達(dá)摩院Conversational AI團(tuán)隊
導(dǎo)讀:隨著科技的不斷進(jìn)步發(fā)展,智能對話系統(tǒng)因其巨大的潛力和商業(yè)價值將會成為下一代人機(jī)交互的風(fēng)口,不少公司都紛紛開始研究人機(jī)對話系統(tǒng),希望人與機(jī)器之間能夠通過自然對話進(jìn)行交互。筆者所在的達(dá)摩院 Conversational AI團(tuán)隊(即云小蜜團(tuán)隊),早在三年前就研發(fā)打造了面向開發(fā)者的智能對話開發(fā)平臺 Dialog Studio,并將我們的技術(shù)通過阿里云智能客服的產(chǎn)品矩陣,賦能各行各業(yè)和政府機(jī)構(gòu)進(jìn)行智能服務(wù)的全方位升級。目前Dialog Studio平臺已經(jīng)在阿里云智能客服(政務(wù)12345熱線、中移動10086、金融、醫(yī)療等)、釘釘(通過釘釘官方智能工作助理服務(wù)幾百萬企業(yè))、集團(tuán)內(nèi)(淘寶優(yōu)酷等十幾個BU)、淘寶天貓商家以及Lazada東南亞6國得到了大規(guī)模應(yīng)用。
01常見的智能對話系統(tǒng)有:問答型、聊天型、任務(wù)型等。其中任務(wù)型對話在實際應(yīng)用中,尤其是在我們的ToB 場景最為普遍。因為該系統(tǒng)不僅可以回答用戶問題,同時還能主動發(fā)問,引導(dǎo)會話的有效進(jìn)行,通過多輪對話完成某個特定的任務(wù)。例如在一個浙江省信訪的外呼場景中,一個典型的對話如下:
可以看到,在該對話中,機(jī)器人需要先表明自己的來意,根據(jù)用戶的不同的回答情況進(jìn)行多輪的對話,收集好自己需要的滿意度信息并結(jié)束對話。
目前常見的任務(wù)型對話系統(tǒng)的架構(gòu)有兩種,一種是模塊化的,另一種是端到端式的(如下圖所示):
盡管模塊化的對話系統(tǒng)由于每個部分獨立優(yōu)化,具有更強(qiáng)的可控性,但是端到端的對話系統(tǒng)可以直接利用對話日志進(jìn)行訓(xùn)練,不需要人工設(shè)計特定的語義標(biāo)簽,因此更具備可擴(kuò)展性,在一些復(fù)雜度中低的對話場景中能夠快速訓(xùn)練部署使用。有關(guān)模塊化和端到端對話模型的詳細(xì)介紹和前沿進(jìn)展可參考《小蜜團(tuán)隊萬字長文:對話管理模型最新研究進(jìn)展》一文。
2. 端到端對話模型及其挑戰(zhàn)
一般來說,端到端對話模型可分為檢索式和生成式,檢索式模型就是給定對話歷史從預(yù)定義回復(fù)候選集合中選出最佳回復(fù)作為當(dāng)前系統(tǒng)輸出,生成式模型則是給定對話歷史直接生成回復(fù)。兩種方式都可以通過和用戶多輪交互完成最終的對話任務(wù)。
由于回復(fù)更加可控,目前我們在 Dialog Studio 上實現(xiàn)的是檢索式端到端的對話模型,并且在政務(wù)、疫情等業(yè)務(wù)中都落地應(yīng)用。上述的浙江省信訪的例子就是我們實現(xiàn)的對話模型所產(chǎn)生的對話,因為沒有復(fù)雜的知識推理、語義解析等,此類場景是端到端對話系統(tǒng)特別適用的場景。
然而,盡管端到端對話模型簡單易用,但是在實際應(yīng)用中仍然面臨著兩大常見問題:
① 數(shù)據(jù)量少:端到端模型一般需要大量的訓(xùn)練數(shù)據(jù),且場景越復(fù)雜,需求越大。在 Dialog Studio 中的ToB 的業(yè)務(wù),不少新場景一開始是沒有可用的高質(zhì)量對話日志,比如我們在政務(wù)12345 場景 和 114 移車場景上積累了大量的對話,可當(dāng)我們做省信訪外呼場景時,一開始只有極少的對話可以使用。因此如何利用已有場景的豐富數(shù)據(jù)訓(xùn)練好一個端到端模型,使其可以快速遷移到缺少數(shù)據(jù)的新場景上是一個很大的挑戰(zhàn)。
② 魯棒性差:有限的離線訓(xùn)練數(shù)據(jù)和真實的在線測試數(shù)據(jù)之間存在數(shù)據(jù)分布的差異性,會導(dǎo)致系統(tǒng)在線表現(xiàn)不佳和離線測試效果不匹配的情況。這種差異性主要來自于未見的用戶行為(例如:新槽值、新意圖、復(fù)雜句等),這類問題統(tǒng)稱為 out-of-script 問題,可以用來驗證對話模型的魯棒性。例如下圖中,訓(xùn)練數(shù)據(jù)中從未出現(xiàn)過“喂,內(nèi)容是什么?我忘了反饋什么了” 類似的用戶語句,一旦真實上線,模型很容易預(yù)測出錯誤的結(jié)果,從而影響用戶體驗。尤其是當(dāng)數(shù)據(jù)量少的時候,模型對于在線數(shù)據(jù)的魯棒預(yù)測會進(jìn)一步下降。因此如何解決線上線下數(shù)據(jù)不匹配,提高端到端對話模型的魯棒性是另一大挑戰(zhàn)。
在阿里云智能客服的諸多業(yè)務(wù)中,不少場景都存在訓(xùn)練數(shù)據(jù)稀少的問題,而客戶又需要我們的對話系統(tǒng)能夠達(dá)到可直接上線的標(biāo)準(zhǔn)。因此綜合來看,我們希望提出一種新的端到端對話系統(tǒng)以及對應(yīng)的優(yōu)化方法,能夠兼具備面對新場景的快速適應(yīng)性(fast adaptability)和穩(wěn)健的在線表現(xiàn) (reliable performance),能夠在低訓(xùn)練資源下依舊能夠保證較好的線上效果。
02
技術(shù)方案
通過前期調(diào)研我們發(fā)現(xiàn),應(yīng)對數(shù)據(jù)少的問題的常用方法有元學(xué)習(xí)、數(shù)據(jù)增強(qiáng)等,而應(yīng)對訓(xùn)練和測試對話數(shù)據(jù)不一致的問題的常用方法有人機(jī)協(xié)同[1]、在線學(xué)習(xí)[2]等。最終我們選擇將元學(xué)習(xí)(meta-learning)方法和人機(jī)協(xié)同(human-machine collaboration)方法結(jié)合,提出了元對話系統(tǒng)(Meta-Dialog System, MDS):利用元學(xué)習(xí),系統(tǒng)能夠在少量訓(xùn)練數(shù)據(jù)上進(jìn)行快速學(xué)習(xí),解決數(shù)據(jù)少的難題;利用人機(jī)協(xié)作,模型可以在對話中請求人工客服幫助,以保證系統(tǒng)達(dá)到可接受的線上水平,提高系統(tǒng)的魯棒性。相關(guān)成果已經(jīng)發(fā)表至 ACL2020 [3]。
1. 模型結(jié)構(gòu)
我們采用檢索式端到端對話模型[4],該對話任務(wù)是一個分類任務(wù),即給定預(yù)定義的回復(fù)候選集,基于對話歷史選擇正確回復(fù)。如下圖所示,一般該模型一共包含三個部分:
-
歷史編碼器(History encoder),對整個對話歷史進(jìn)行編碼提取對話狀態(tài)向量,常見模型可以使用 MemN2N,Hierarical RNN,BERT 等 ;
-
回復(fù)編碼器 (Response encoder),對每個回復(fù)進(jìn)行編碼提取句向量;
-
預(yù)測器,根據(jù)對話狀態(tài)向量和回復(fù)句向量判斷出正確的回復(fù),通常就是計算余弦相似度給出。
而在人機(jī)協(xié)同的框架下[1],為了能夠做到智能高效地轉(zhuǎn)人工,端到端對話模型還會多出一個判決器模塊,專門用于判定當(dāng)前對話是否轉(zhuǎn)人工,如果轉(zhuǎn)人工則交給人工客服解答,否則模型自己給出答案。如下圖所示:
2. 優(yōu)化方案
在ACL2020論文中,為了和文獻(xiàn) [1, 4] 一致,對于歷史編碼器我們?nèi)匀徊捎媒?jīng)典的 MemN2N 模型,對于回復(fù)編碼器我們使用了一個簡單的詞向量相加的句向量。模型預(yù)測器的部分,我們選擇了能夠?qū)W習(xí)出更有鑒別性的特征的large margin cosine loss [7] 作為損失函數(shù) Llmc 。針對請求人工的判決器,我們提出通過計算判決器預(yù)測的正負(fù)樣本的 F1 score作為 reward 函數(shù),使用增強(qiáng)學(xué)習(xí)來進(jìn)行優(yōu)化 Lrl 。最終,我們利用MAML對 Llmc+Lrl 進(jìn)行聯(lián)合優(yōu)化。
MAML 是元學(xué)習(xí)中的一類方法,它具備模型普適性,通過在meta tasks上進(jìn)行預(yù)訓(xùn)練,能夠幫助模型找到一組最合適的參數(shù),使其快速適應(yīng)新任務(wù)。例如下圖[9]給出了一個 MAML 和MLE 訓(xùn)練對比示意圖,每個圓圈都是看做一個場景,實心的是訓(xùn)練用的源場景,空心的是測試用的目標(biāo)場景,使用 MLE 預(yù)訓(xùn)練會導(dǎo)致模型的參數(shù)過擬合到源場景上,而MAML預(yù)訓(xùn)練則能夠找到更好的參數(shù)初始化,使得快速遷移到新場景上去:
正是因為這樣的特性,我們選擇 MAML 來進(jìn)行聯(lián)合優(yōu)化,幫助預(yù)測器和判決器一起快速適應(yīng)新場景。
在 MAML 訓(xùn)練中,首先需要構(gòu)造元任務(wù) (meta-task),步驟如下:
-
采樣 K 個對話場景 (每個場景對應(yīng)一個對話任務(wù))
-
每個對話任務(wù),采樣 N 個對話數(shù)據(jù)作為支撐集(support set),N 個數(shù)據(jù)作為問詢集(query set)
然后根據(jù)以下算法流程進(jìn)行優(yōu)化:
03
模型結(jié)果
為了驗證模型在新場景的遷移能力,我們需要多場景的端到端對話數(shù)據(jù)集,在評價時,依次選取一個場景作為目標(biāo)場景,剩余的作為訓(xùn)練場景。利用 MAML 預(yù)訓(xùn)練模型完畢之后,再在目標(biāo)場景上進(jìn)行小樣本的遷移實驗。最終結(jié)果是每個場景取平均得到。我們既需要在學(xué)術(shù)數(shù)據(jù)集上實驗,也需要在實際業(yè)務(wù)中落地,以此驗證算法的可行性。
1. Extended-bAbI數(shù)據(jù)集結(jié)果
學(xué)術(shù)數(shù)據(jù)集我們選擇了extended-bAbI,它是 bAbI 數(shù)據(jù)集的擴(kuò)展版,包含了場景有餐館、機(jī)票、酒店、電影、音樂、旅游、天氣等 7 個場景,每個場景的訓(xùn)練集/開發(fā)集/測試集為 1500/500/1000 個完整對話,評價指標(biāo)是回復(fù)選擇的準(zhǔn)確率。我們將 MDS、MDSmle(將MAML優(yōu)化改成 MLE 優(yōu)化)、Mem+C [1] 這三個模型進(jìn)行對比如下:
平均在新場景中,使用 0, 1, 5, 10 組完整對話 session 數(shù)據(jù)上,MDS 模型的表現(xiàn)都是最好的。證明了我們小樣本下端到端模型的效果。同時我們也做了一下 ablation study,發(fā)現(xiàn)去掉判決器 (MDS-switch) 和隨機(jī)轉(zhuǎn)人工 (MDSrand) 的模型都很差,證明了我們的轉(zhuǎn)人工判決器真的能夠在聯(lián)合優(yōu)化中學(xué)出識別 out-of-script 的對話數(shù)據(jù)的能力,提升模型的魯棒性。
2. 業(yè)務(wù)落地
我們的端到端對話模型 MDS 目前已經(jīng)在Dialog Studio平臺上政務(wù)12345的多個場景中落地,對話的完成率平均能有5-10% 的提升。通常我們遇到的實際業(yè)務(wù)的流程schema是一個較為復(fù)雜的圖狀結(jié)構(gòu),下圖是一個簡化的示意圖:
這種圖結(jié)構(gòu)流程(我們稱為 TaskFLow)在 Dialog Studio 里能夠通過圖形化拖拽的方式非常方便地進(jìn)行配置使用。詳見《一個中心+三大原則 -- 小蜜這樣做智能對話開發(fā)平臺》。
實際場景往往一開始時是零對話數(shù)據(jù),盡管 MDS 模型能夠進(jìn)行冷啟動,有比一般模型更好的效果,但是并不一定能夠百分百達(dá)到上線準(zhǔn)入要求。為了更好地利用我們模型的遷移能力,我們通過以下兩步來預(yù)訓(xùn)練對話模型:
-
我們設(shè)計了一個基于TaskFLow 的對話模擬器,能夠低成本快速地模擬出大量模擬對話數(shù)據(jù)。該對話模擬器利用生成模型生成對話數(shù)據(jù),并能夠通過線上回流的無標(biāo)日志進(jìn)行模擬器的自增強(qiáng)優(yōu)化。
-
當(dāng)一個新場景的模擬數(shù)據(jù)模擬完畢后,我們把新場景的模擬數(shù)據(jù)和各個已有相似場景的真實數(shù)據(jù)一起作為源場景進(jìn)行 MAML 優(yōu)化,然后遷移到新場景的真實數(shù)據(jù)中去。
下圖是我們模型在某地市12345熱線場景的一個實驗結(jié)果:
橫軸是adaptation時使用的標(biāo)注對話數(shù)據(jù)量,縱軸是回復(fù)準(zhǔn)確率??梢钥吹?,如果直接使用 TaskFlow,整個對話系統(tǒng)的準(zhǔn)確率僅在 79% 左右。但是用上MDS 模型進(jìn)行數(shù)據(jù)遷移和MAML 優(yōu)化之后,我們可以得到最上面那條曲線,冷啟動效果從 79% 提升至88% 左右,并在不同 adaptation對話數(shù)據(jù)下都能有著持續(xù)最好的表現(xiàn)。
04
總結(jié)展望
本文主要介紹了如何結(jié)合元學(xué)習(xí)方法提高對話模型在新場景上的快速適應(yīng)能力和預(yù)測效果,解決小樣本下的端到端對話模型訓(xùn)練問題。我們的元學(xué)習(xí)對話系統(tǒng)(Meta-Dialog system,MDS),不僅在學(xué)術(shù)數(shù)據(jù)集上進(jìn)行了實驗,還在阿里云智能客服的多個真實場景中落地。結(jié)果表明,利用 MAML 可以很好地幫助模型的判決器和預(yù)測器一起找到合適的初始化參數(shù),以更快地遷移到新場景中。
最后感謝所有耐心看完這篇文章的讀者。智能對話系統(tǒng)是個極具前景和挑戰(zhàn)性的方法。達(dá)摩院 Conversational AI團(tuán)隊將不斷地探索推進(jìn)在這個領(lǐng)域的技術(shù)進(jìn)步和落地,敬請期待我們后續(xù)的工作!
05
參考文獻(xiàn)
[1] Rajendran J, Ganhotra J, Polymenakos L C. Learning End-to-End Goal-Oriented Dialog with Maximal User Task Success and Minimal Human Agent Use. ACL, 2019.
[2] Liu B, Tur G, Hakkani-Tur D, et al. Dialogue learning with human teaching and feedback in end-to-end trainable task-oriented dialogue systems. NAACL, 2018.
[3] Dai Y, Li H, et al. Learning Low-Resource End-To-End Goal-Oriented Dialog for Fast and Reliable System Deployment. ACL, 2020. (to be appeared)
[4] Bordes A, Boureau Y L, Weston J. Learning end-to-end goal-oriented dialog. ICLR, 2016.
[5] Finn C, Abbeel P, Levine S. Model-agnostic meta-learning for fast adaptation of deep networks. ICML, 2017.
[6] Eric M, Goel R, Paul S, et al. Multiwoz 2.1: Multi-domain dialogue state corrections and state tracking baselines[J]. arXiv preprint arXiv:1907.01669, 2019.
[7] Lin T E, Xu H. Deep unknown intent detection with margin loss[J]. ACL, 2019.
[8] Wang W, Zhang J, Li Q, et al. Incremental learning from scratch for task-oriented dialogue systems. ACL, 2019.
[9] Lin Z, Madotto A, Wu C S, et al. Personalizing dialogue agents via meta-learning[J]. ACL 2019.
[10] Wang W, Bi B, Yan M, et al. Structbert: Incorporating language structures into pre-training for deep language understanding[J]. ICLR 2020.
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!