基於元學習和人機協同的端到端對話模型

2020-12-25 阿里云云棲號

Dialog Studio 是達摩院NLP-小蜜Conversational AI團隊研發的面向開發者的智能對話開發平臺,目前已經在雲(多省市政務12345熱線、中移動10086、金融、醫療等)、釘釘(通過釘釘官方智能工作助理服務幾百萬企業)、集團內(淘寶優酷等十幾個BU)、淘寶天貓商家以及Lazada東南亞6國大規模應用。

為了應對疫情,基於 Dialog Studio 緊急開發的智能疫情外呼機器人,截止3月底,總共呼出了1600多萬通電話,幫助23個省篩查出了18萬健康異常的人員,對話完成率高達90%,在人民網「人民戰疫」大賽評為唯一的一等獎。

圍繞 Dialog Studio,我們有系列文章:

【1】一個中心+三大原則 -- 小蜜這樣做智能對話開發平臺

【2】自然語言理解-從規則到深度學習

【3】Few-shot Learning 最新進展

【4】EMNLP 2019: 基於 Few-shot learning 的對話意圖識別

【5】Dialog Studio - 新一代智能對話開發平臺

【6】對話用戶模擬器最新進展

【7】小蜜團隊萬字長文:對話管理模型最新研究進展

【8】[ACL 2020: 基於元學習和人機協同的端到端對話模型]()

1. 背景

端到端對話模型近幾年得到了學術界和工業界的廣泛關注(詳見可參考《小蜜團隊萬字長文:對話管理模型最新研究進展》),相比 pipeline 式的對話系統,端到端對話系統可以直接利用對話日誌進行訓練,不需要人工設計特定的語義標籤,因此更具備可擴展性。 我們在 Dialog Studio 上已經實現了端到端的對話模型,並且在政務、疫情等業務中落地應用。一個省信訪外呼對話例子如下:

上述例子是一個滿意度回訪調查的場景,由於沒有複雜的知識推理、語義解析等,是端到端對話系統特別適用的場景。一般來說,端到端對話模型可分為檢索式和生成式,檢索式模型就是給定對話歷史從預定義回復候選集合中選出最佳回復作為當前系統輸出,生成式模型則是給定對話歷史直接生成回復。兩種方式都可以通過和用戶多輪交互完成最終的對話任務。

然而,儘管端到端對話模型簡單易用,但是在實際應用中仍然面臨著兩大常見問題:

Data Scarcity Problem:端到端模型一般需要大量的訓練數據,且場景越複雜,需求越大。在雲小蜜 Dialog Studio 中的ToB 的業務,不少新場景一開始是沒有可用的高質量對話日誌的,比如我們已經在政務12345 場景 和 114 移車場景上積累了大量的對話,可以當我們做省信訪外呼場景時,一開始只有很少的對話可以使用。因此如何利用已有場景的豐富數據訓練一個端到端模型,使其可以快速遷移到缺少數據的新場景上是一個很大的挑戰。

實際上,在雲小蜜的業務中,不少場景都存在訓練數據少的問題,而客戶又需要我們的對話系統能夠達到可直接上線的標準。因此綜合來看,我們希望提出一種新的對話系統以及對應的訓練方法,能夠兼具備面對新場景的快速適應性 (fast adaptability)和穩健的在線表現 (reliable performance),能夠在低訓練資源下依舊能夠保證較好的線上效果。2. 技術方案通過前期調研我們發現,應對數據少的問題的常用方法有元學習、數據增強等,應對訓練和測試對話數據不一致的問題的常用方法有人機協同[1]、在線學習[2]等。最終我們選擇將元學習(meta-learning)方法和人機協同(human-machine collaboration)方法結合,提出了元對話系統(Meta-Dialog System, MDS):利用元學習,系統能夠在少量訓練數據上進行快速學習,解決 Data Scarcity Problem;利用人機協作,模型可以在對話中請求人工客服幫助,以保證系統達到可接受的線上水平,降低 Covariate Shift Effect。相關成果已經發表至 ACL2020 [3],該系統有望在有輔助人工客服且缺數據的新場景中得到應用。2.1 問題定義由於回復內容可控,我們採用檢索式端到端對話模型,該對話任務是一個分類任務:給定預定義的回覆候選集,基於對話歷史選擇正確回復。如下圖所示,模型一般包含:1)歷史編碼器(Historyencoder),對整個對話歷史進行編碼提取對話狀態向量,常見模型有MemN2N,HieraricalRNN等;2)回復編碼器(Responseencoder),對每個回復進行編碼提取句向量;3)預測器,根據對話狀態向量和回複句向量判斷出正確的回覆,通常就是計算餘弦相似度給出。

而在人機協同的框架下,端到端對話模型會多出一個判決器模塊,用於判定當前對話是否轉人工,如果轉人工則交給人工客服解答,否則模型自己給出答案。如下圖所示:

2.2. 模型詳解我們沿用了上述的模型結構[1],但是在每個模塊和訓練方法上都進行的改進創新。整個MDS的框架如下:

和[1,4]一致,對於歷史編碼器我們採用了一個MemN2N模型,對於回復編碼器我們使用了一個簡單的詞向量相加的句向量。模型預測器的部分,我們選擇了largemargincosineloss[7]作為損失函數$\mathcal{L}_{LMC}$,因為它可以學習更有鑑別性的特徵(discriminativefeatures)。針對請求人工的判決器,我們在[1]的基礎之上提出了一個新的reward設置,使用增強學習來進行優化$\mathcal{L}_{RL}$。最終,我們使用MAML[5]方法對$\mathcal{L}=\mathcal{L}_{RL}+\mathcal{L}_{LMC}$進行聯合優化,幫助模型找到一組合適的參數,使得預測器和判決器一起快速適應新場景。2.2.1. Learning to Switch設第 $i$ 個數據為 $d_i$, 該對話狀態向量為 $s_i$, 回復候選集為 $\mathcal{R}$, 每個回復的句向量設為 $r_k$, 判斷器的輸出整體考慮了 $s_i$ 的信息以及它和各個 $r_k$ 的 attention 信息,具體計算如下:

$\sigma$ 是 sigmoid function, $FC(\cdot)$ 是一個全連接網絡,$W$ 是個 trainable matrix。得到判決器的預測結果後,我們需要設計合適的 reward 使用增強學習來優化。直觀來看,一個理想的判決器應當是模型預測錯時多轉人工,模型預測對時少轉人工,這樣就能保證整體的轉人工率低,且整體 turn ACC (請求人工也算對)高。reward 設置:設一個batch data 為 $mathcal{D}={d_1, d_2, ...,d_i, ...}$, 我們將模型預測錯誤的 $d_i$ 設為正樣本(label=True), 預測正確的設為負樣本 (label=False), 判決器判斷轉人工的數據設為預測正樣本( prediction=True), 判斷不轉人工的設為預測負樣本(prediction=False), 然後計算出正樣本和負樣本的 F1 score,再取平均得到整個 batch 的 得分 $score(\mathcal{D})$, 其中每個數據 $d_i$ 分配到的 reward $r_i=score(\mathcal{D})-score(\mathcal{D}-d_i)$。 RL 的優化我們選擇 policy gradient method。2.2.2. MAML 訓練得到整體的損失函數 $\mathcal{L} = \mathcal{L}_{RL} + \mathcal{L}_{LMC}$ 後,我們採用 MAML 算法優化整個模型。首先需要構造元任務 (meta-task),步驟如下:然後 MDS 的 MAML 優化如下:

3. 實驗結果為驗證模型在新場景的遷移能力,我們需要多場景的端到端對話數據集。在評估時,依次選取一個場景作為目標場景,剩餘的作為訓練場景,利用 MAML 預訓練模型,meta trainning 完畢之後, 再在目標場景上進行小樣本的遷移實驗。最終結果是每個場景去平均後得到。3.1. 數據集構造3.1.1 Extended-bAbI原始的 bAbI [4] 因為是單場景的對話,且初步實驗效果發現將其中的 Task1-5 作為元任務效果不佳。因此我們仿造 bAbI 模擬生成了一個更大的多場景端到端數據集稱作 extended-bAbI。包含場景有餐館、機票、酒店、電影、音樂、旅遊、天氣等 7 個場景,每個場景的訓練集/開發集/測試集為 1500/500/1000 個完整對話。 音樂和天氣場景的兩個對話例子如下所示:

3.1.2. MultiWOZMultiWOZ [6] 是最近提出的大型任務對話數據集,也可以用於進行模型評估。為了將 MultiWOZ 簡化成 bAbI 對話任務,我們只使用包含 single-domain 的對話,並且進行去詞彙化,利用 dialog label 將槽值替換成特定 token,再將 dialog act 進行一定的規整,最終得到端到端對話數據。一個對話例子如下所示。

3.2. Baselines3.3. 實驗結果和分析在extended-bAbI上的結果如下表所示:

request是請求人工率,accuracy是含轉人工的整體turnACC,即轉人工或模型預測正確均算對。可以看到,MDS的表現優於所有的基線模型,平均在新場景上僅需10個對話就可以達到90%以上的turnACC。使用請求人工的判決器的模型顯著好於不使用或者使用random判決器的模型,說明人機協同框架在提高模型整體表現起到重要作用。利用元學習的模型相比不使用元學習的模型,在效果上也有穩定的提高。MultiWOZ 上的實驗結果如下表所示:

由於MultiWOZ是真實的人人對話,因此所有模型的表現都有合理的下降,但是 MDS 相比其他模型依然有明顯的優勢,在請求人工率相近的情況下有更高的 turn ACC。4. 總結和展望本文主要介紹了如何結合 元學習方法 和 人機協同 方法 提高端到端對話模型在新場景上的快速適應能力和預測效果。對於元學習方法,我們採用了 MAML 算法,在多場景的對話數據集上進行實驗。實驗表明,利用 MAML 可以很好地幫助模型的判決器和預測器一起找到合適的初始化參數,以更快地遷移到新的場景中去。未來,我們將探索利用更強大的編碼模型(如 BERT),更好的 reward 設計,並把我們的元學習對話系統落地到雲小蜜的真實業務中去。參考文獻[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.$\textbf{Mem}$: 利用 MLE 訓練的一個 MemN2N 模型。$\textbf{MetaMem}$: 利用 MAML 訓練的 一個 MemN2N 模型。$\textbf{MetaMem}$ 和 $\textbf{Mem}$ 都沒有請求人工的判決器。$\textbf{Mem+C}$:論文[1] 的人機協同模型。該模型的訓練準則和損失函數和我們都不一樣。$\textbf{IDS}$:論文[8] 提出的 incremental dialog system, 該模型的判決器是一個變分自編碼器,通過估計對話的不確定性來判斷是否請求人工。$\textbf{MDS}_\text{-switch}$: MDS 去掉判決器部分。$\textbf{MDS}_\text{mle}$: MDS 保持模型一致,但是訓練方法採用 MLE。$\textbf{MDS}_\text{rand}$: MDS 的判決器替換成一個 請求人工率一致的 random classifier,採樣 K 個對話場景 (每個場景對應一個對話任務)每個對話任務,採樣 N 個對話數據作為支撐集(supoort set),N 個數據作為問詢集(query set)Covariate Shift Effect:有限的離線訓練數據和真實的在線測試數據之間存在數據分布的差異性,會導致系統在線表現不佳,和離線測試效果不匹配,這種差異性主要來自於未見的用戶行為(例如:新槽值、新意圖、複雜句等)。例如下圖中,訓練數據中從未出現過「喂,內容是什麼?我忘了反饋什麼了」 類似的用戶語句,一旦真實上線,模型很容易預測出錯誤的結果,從而影響用戶體驗。尤其是當數據量少的時候,模型對於在線數據的魯棒性會進一步下降。因此如何解決線上線下數據不匹配,提高端到端對話模型的魯棒性是另一大挑戰。

相關焦點

  • 語音識別新範式:完全的「端到端」模型,優勢在哪裡?
    語音識別新範式以自然語言處理的子領域「語音識別」為例,從 2012 年引入深度學習技術開始,語音識別的研究熱點經歷了三個階段:2011 年前後,基於 DNN+HMM(深度神經網絡+隱馬爾科夫模型)的語音識別 2014 年前後,基於 LSTM+CTC(長短時記憶網絡+連接時序分類)的不完全端到端語音識別
  • 帶你讀論文 | 端到端語音識別模型
    隨著端到端神經網絡在機器翻譯、語音生成等方面的進展,端到端的語音識別也達到了和傳統方法可比的性能。不同於傳統方法將語音識別任務分解為多個子任務(詞彙模型,聲學模型和語言模型),端到端的語音識別模型基於梅爾語譜作為輸入,能夠直接產生對應的自然語言文本,大大簡化了模型的訓練過程,從而越來越受到學術界和產業界的關注。
  • 基於知識圖譜的人機對話系統|公開課筆記
    而知性對話,則是基於知識圖譜的人機會話交互服務。AI 科技大本營邀請到了雲知聲 AI Labs 資深專家劉昇平針對「基於知識圖譜的人機對話系統方法與實踐」做系統的講解和梳理。所以語境和語用是非常重要的概念,如果做人機對話系統,都會接觸到這兩個概念。1. 人機(設備)對話系統下的語境剛才是說人和人對話時,語境很關鍵,現在我們做人機對話系統,人和設備對話的時候有哪些語境呢?1、物理語境。
  • 語音翻譯也能端到端?深度學習這條路有戲!
    端到端技術是當前語音翻譯的研究前沿,科大訊飛聯合優化語音識別和機器翻譯的新技術路線,理論上更具前景,一旦技術研究成功,將為翻譯機器性能的提升帶來極大促進。提問:語音翻譯涉及哪些步驟?你或許會說,語音識別和機器翻譯——沒錯,傳統的語音翻譯通常採用語音識別和機器翻譯級聯的方式實現,對輸入語音先進行語音識別得到文本結果,然後再基於文本進行機器翻譯,這也是當前語音翻譯採用的主流方法。
  • 深入了解那些知名的端到端機器學習平臺
    將一組機器學習解決方案轉變為端到端的機器學習平臺的,是一種運用了加速建模、自動化部署和確保生產中的可伸縮性和可靠性的技術的架構。筆者此前講過lean D/MLOps,數據和機器學習操作,因為沒有數據的機器學習操作是沒有意義的,所以端到端機器學習平臺需要進行整體構建。CI/CD基金會啟動了一個MLOps特別興趣小組(SIG)。
  • 谷歌語音識別端到端系統單詞錯誤率降至5.6%,較傳統模型提升16%
    提升語音識別的端到端模型在谷歌各式各樣的語音搜索應用中,都是基於傳統的自動語音識別(Automatic speech recognition, ASR)系統實現的。論文中展示了,我們的端到端系統取得了 5.6% 的單詞錯誤率(Word error rate, WER),相比於強大的傳統系統(6.7% WER)取得了 16% 的提升。此外,這個用於輸出初始單詞假設的端到端模型,由於沒有獨立的發音模型和語言模型,因此比傳統模型小了 18 倍。
  • 京師城投:人機協同教學中教師與AI的關係模型
    AI助手則可以藉助其感知智能處理課堂中採集到的教與學的數據,教師對採集到的數據進行解釋,訓練AI處理一些模糊事務的能力;AI教師階段則是人機結合的超級教師,此時的AI已經具備一定的認知能力,能夠在感知和認知方面均顯著增強教師的能力,突破教師個體認知極限,使得教師具有更大的教育創造性;AI 夥伴是最高級的人機協同方式,此時AI 具備了社會智能,能夠與人類教師進行社會性互動,同時,AI 的創造性和自主性達到人類教師的層次
  • 「阿波羅計劃」線上首講:基於深度學習的端到端自動駕駛解決方案
    兩種方案:Rule based 和 End-to-end整個阿波羅項目其實是百度面向自動駕駛的一個很宏大的系統,而端到端(end-to-end)的方案是其中的一個子方向。今天主要進行這個子方向的實踐和經驗分享。
  • 學界| 谷歌新論文提出預測器架構:端到端的學習與規劃
    選自arxiv.org機器之心編譯參與:Jane W論文:預測器:端到端的學習和規劃(The Predictron: End-To-End Learning and Planning)摘要人工智慧的主要挑戰之一是在有規劃的情況下有效地學習模型。
  • 端到端聲源分離研究:現狀、進展和未來
    本文是由深藍學院邀請哥倫比亞大學博士生羅藝主講的『端到端聲源分離研究進展』整理而來。內容主要覆蓋了單通道和多通道上端到端音源分離的現狀和進展以及未來的研究方向。羅藝老師首先介紹了端到端音源分離的定義。從名稱來看,端到端的含義是模型輸入源波形後直接輸出目標波形,不需要進行傅立葉變換將時域信號轉換至頻域;音源分離的含義是將混合語音中的兩個或多個聲源分離出來。
  • 基於深度學習OCR技術:端到端不定長文字識別CRNN算法詳解
    但是此法已經有點過時了,現在更流行的是基於深度學習的端到端的文字識別,即我們不需要顯式加入文字切割這個環節,而是將文字識別轉化為序列學習問題.雖然輸入的圖像尺度不同,文本長度不同,但是經過DCNN和RNN後,在輸出階段經過一定的翻譯後,就可以對整個文本圖像進行識別,也就是說,文字的切割也被融入到深度學習中去了。
  • 端到端聲源分離研究:現狀、進展和未來
    本文是由哥倫比亞大學博士生羅藝主講的『端到端聲源分離研究進展』整理而來。內容主要覆蓋了單通道和多通道上端到端音源分離的現狀和進展以及未來的研究方向。------本文約5580字,閱讀約需20min------端到端音源分離定義與進展什麼是端到端音源分離呢?
  • 百度Deep Voice作者與Bengio團隊切磋五大技術細節,端到端的語音...
    語音合成模型,谷歌、MILA及百度的香餑餑語音合成即文本轉換技術(TTS),根據百度語音官網的介紹,它是實現人機語音交互,建立一個有聽和講能力的交互系統所必需的關鍵技術。它是將計算機自己產生的、或外部輸入的文字信息轉變為可以聽得懂的、流利的口語輸出的技術。
  • 序列轉換模型三合一!谷歌提出首個端到端的直接語音翻譯模型
    由於這三類模型的發展都各自比較成熟,現在市面上如谷歌翻譯這樣的軟體產品、如科大訊飛翻譯機這樣的專用硬體設備都能達到很好的多語互譯效果,準確率和延時都讓人比較滿意。但技術研究的探索並不會就此止步。谷歌的研究人員們做了一次大膽的試驗,嘗試把語音轉文、文本到文本翻譯、文本轉語音這三個步驟合併到同一個端到端模型中完成!
  • 阿里算法工程師攜小樣本學習最新成果而來,ACL 論文直播繼續!
    深度學習是數據無底洞,有了大數據,深度學習真香!沒有大數據,就只能哀嘆「巧婦難為無米之炊」。人類比深度學習高明的地方就在於不需要大數據就可以輕鬆學習。如果手裡只有少量數據,使用深度學習很容易產生過擬合。目前 AI 社區已經提出了很多方法來解決這一問題,其中一個非常熱門的方法便是小樣本學習。智能對話作為深度學習技術最普遍的應用場景之一,也常面臨數據量少的難題。無論是在技術研究還是應用落地探索上,智能對話的小樣本學習都是一大研究重點。
  • 阿里開源MNNKit:基於MNN的移動端深度學習SDK,支持安卓和iOS
    機器之心報導參與:一鳴、Jamin近來,有越來越多的深度學習框架開始面向移動端進行發展。近日,阿里也基於其 MNN 推理引擎開源了最新的 MNNKit 深度學習 SDK,安卓和 iOS 開發者都可以方便地進行調用。
  • DeepMind端到端對抗語音合成
    綜述了自然語言處理應用中的深度學習和潛變量建模。作者研究了深度潛變量模型,這類模型對具有神經網絡的概率潛變量模型的組件進行參數化表示,因而在保持潛變量模型模塊化的同時可以利用深度學習最新進展所賦能的豐富參數化。作者對不同類型的深度潛變量模型展開了廣泛實驗,以具體分析詞對齊和分析樹等一系列語言現象,並將這些語言現象應用到語言建模、機器翻譯和無監督分析等核心的自然語言處理任務中。
  • Bengio等人提出 Char2Wav:實現端到端的語音合成
    GitHub 開源地址:http://github.com/sotelo/parrot合成語音樣本地址:http://josesotelo.com/speechsynthesis摘要我們提出一種端到端的用於語音合成的模型 Char2Wav,其有兩個組成部分:一個讀取器(reader)和一個神經聲碼器(nerual vocoder)。
  • CVPR 2018 | 騰訊AI Lab、MIT等提出可端到端學習視頻的運動表徵
    儘管端到端的特徵學習已經取得了重要的進展,但是人工設計的光流特徵仍然被廣泛用於各類視頻分析任務中。為了彌補這個不足,由來自騰訊 AI Lab、MIT、清華、史丹福大學的研究者完成併入選 CVPR 2018 Spotlight 論文的一項研究提出了一種能從數據中學習出類光流特徵並且能進行端到端訓練的神經網絡:TVNet。機器之心對本論文進行了摘要介紹,詳情請參閱原論文。
  • 三角獸被 EMNLP 錄取論文精華導讀:基於對抗學習的生成式對話...
    論文中提出了一種新的對話文本對抗生成學習框架,目的是解決文本生成過程中的採樣操作帶來的誤差無法反向傳導的實際問題,從而實現基於對抗學習的聊天回復生成模型。通常認為自動聊天系統(Automatic Chatting Systems)可以通過兩種技術路線實現:一種是將信息檢索系統構建於大規模對話數據集之上,通過建立有效的問句匹配和問答相關度量化模型實現對用戶 query的合理回復[6],本文不做贅述;另一種技術路線則試圖通過構建端到端(End-to-End)的深度學習模型,從海量對話數據中自動學習 query 和 response 之間的語義關聯