最新综述:对话系统之用户模拟器
作者丨唐呈光、戴音培、李永彬、孫健單位丨阿里巴巴智能服務事業部小蜜北京團隊
用戶模擬器基礎
近幾年來,強化學習在任務導向型對話系統中得到了廣泛的應用,對話系統通常被統計建模成為一個馬爾科夫決策過程(Markov Decision Process)模型,通過隨機優化的方法來學習對話策略。
任務導向型對話系統用于幫助用戶完成某個任務如查電影、找餐館等,它一般由四個模塊組成:自然語言理解模塊(Natural Language Understanding, NLU)、對話狀態跟蹤模塊(Dialog State Tracking, DST)、對話策略模塊(Dialog Policy, DP)和自然語言生成模塊(Natural language Generation, NLG),其中 DST 和 DP 合稱為對話管理模塊。
- 有一個總體的對話目標,能夠生成上下文連貫的用戶動作;
- 有足夠的泛化能力,在語料中未出現的對話情形里也能生成合理的行為;
- 可以給出定量的反饋評分用于指導模型學習優化。
為了實現以上目標,學術界做了大量的研究工作,從最基礎的 bi-gram 模型?[4],到經典實用的 Agenda-based的方法?[2],再到最近基于深度學習的用戶模型?[9, 10],用戶模擬器的效果得到了顯著提升,也為對話模型的訓練提供了有效的方法。
圖 1 是一個比較典型的用戶模擬器?[1],對話開始時用戶模擬器基于 User Goal(用戶目標)發出一個話術:“Are there any action movies to see this weekend?”(這個周末有什么動作片可以看的嗎?),這句話進到對話系統的自然語言理解模塊和對話管理模塊后,生成一句系統動作:“request_location”(詢問地點)。
簡便起見,這里省略掉系統的 NLG 模塊,系統回復直接送到用戶模擬器的用戶模型(User Model),通過用戶狀態更新和行為策略選擇,生成用戶對話行為:“inform(location=San Francisco)”(告知地點為舊金山),接下來經過 Error Model(可選)和 NLG 模塊,生成對應的自然語言,比如:“San Francisco, please.”(幫我訂舊金山的)。以此往復,用戶模擬器和對話系統持續多輪交互,直到對話結束。
1. 用戶目標(User Goal):用戶模擬的第一步就是生成一個用戶對話的目標,對話系統對此是不可知的,但它需要通過多輪對話交互來幫助用戶完成該目標。一般來說,用戶目標的定義和兩種槽位相關: 可告知槽(informable slots)和可問詢槽(requestable slots),前者形如“槽=值”是用戶用于查詢的約束條件,后者則是用戶希望向系統問詢的屬性。
例如:用戶目標是 “inform(type=movie, genre=action, location=San Francisco, date=this weekend),request(price)”表達的是用戶的目標是想要找一部本周在 San Francisco 上映的動作片,找到電影后再進一步問詢電影票的價格屬性。有了明確的對用戶目標的建模,我們就可以保證用戶的回復具有一定的任務導向,而不是閑聊。
2. 用戶模型(User Model):用戶模型對應著對話系統的對話管理模塊,它的任務是根據對話歷史生成當前的用戶動作。用戶動作是預先定義好的語義標簽,例如“inform, request, greet, bye”等等。用戶動作的選擇應當合理且多樣,能夠模擬出真實用戶的行為。用戶模型是用戶模擬器的核心組成部分,在接下來的章節里我們將會詳細介紹各種具體模型和方法。
3. 誤差模型(Error Model):它接在 User Model 下游,負責模擬噪聲,對用戶行為進行擾動以模擬真實交互環境下不確定性。簡單的方式有:隨機用不正確的意圖替換正確的意圖、隨機替換為不正確的槽位、隨機替換為不正確的槽值等;復雜的方式有模擬基于 ASR 或 NLU 混淆的錯誤。
用戶模擬器的實現方法
基于規則的方法
基于議程的方法通過一個棧的結構把對話的議程定下來,對話的過程就變成進棧和出棧的動作,上下文關聯性很強,保證了用戶動作生成的一致性,一般不會出現異常用戶行為。但是,該方法在對話行為靈活性和多樣性比較欠缺,在實操層面可以通過引入一些隨機性提升靈活度。
基于議程的方法
代表論文:The Hidden Agenda User Simulation Model
論文鏈接:https://ieeexplore.ieee.org/document/4806280/?arnumber=4806280
用戶動作選擇模型,其中 δ 為狄拉克函數,A[N] 代表棧頂的元素, A[1] 代表棧底的元素, A[N-n+1..N] 代表在 Agenda 棧頂的 top-n 的用戶動作 acts,該模型的直觀理解是如果在 top-n 的 acts 里,那么 P 趨于 1,此時將會被選中并發出。top-n 的 n 的選取體現了用戶模擬器的主動性程度,它可以從對話語料中統計得出,也可以根據經驗指定一個小的數值。
狀態更新模型,其中 A' 代表選擇后的 Agenda,N'=N-n 代表 A' 的大小,為了使 P 概率最大,則要求 A' 等于對 A 進行出棧操作后的結果 A[1..N'],G 保持不變。
已知 S=(A,G),根據概率的鏈式法則和條件獨立性假設,在用戶模擬器接收到后,可以將狀態轉移模型分解成 Agenda 更新模型和 Goal 更新模型。
如果不對 A'' 和 G'' 做限制,模型可能的狀態轉移空間太大,參數太多而不能直接人工指定,甚至通過大量的訓練數據都不能獲得一個可靠的參數估計。但如果假設 A'' 是從 A' 推導出來的,G'' 是從 G' 推導出來的,那么在每種情況下,僅需要有限個數的原子操作就能描述這個狀態轉移過程。
為了簡化起見,只考慮入棧操作,棧底部 1 到 N' 的元素是保持不變的,那么 Agenda 更新模型可以改寫為以下公式:
該公式表示 A'' 新增 N''-N' 個元素,而棧底元素不變。作者假設在中的每一個系統 act 只會觸發一個入棧操作,令 N''=N'+M,可得:
上式表示的是每一個系統 act 會觸發一個入棧操作,同時該操作還和 Goal 有關。此時,模型已經足夠簡單,都可以通過編寫人工規則來實現當接收到系統 act 后的邏輯,比如:當?[i] 中的元素 x=y 和 G'' 里的約束條件沖突時,可以將以下任意一個用戶 act 壓入棧 A'':negate(),inform(x=z),deny(x=y, x=z) 等。
Goal 更新模型描述的是當給定的情形下,約束條件 C' 和問詢內容是如何變化的。假定當給定 C'' 的情形下,R'' 是條件獨立于 C'' 的,那么可以得到:
基于模型學習的方法
通過人工編寫規則盡管落地性強,精準率高,但是成本很高,因此尋求數據驅動的模型化方法是一個很好的途徑。利用對話語料進行端到端訓練的效果優于基于議程的規則方法,它的優點是數據驅動,節省人力;但缺點是復雜對話建模困難,對數據數量要求很高,因此對于一些對話語料稀缺的領域效果很差。
在用戶模型的序列建模上,論文?[16]?利用隱馬爾科夫模型來推斷每一輪的用戶動作。論文?[8]?則研究了基于概率圖的用戶模型,如圖 3 所示,g 是用戶目標, 分別是系統動作、用戶隱動作,對話歷史和用戶觀測動作,通過 EM 算法優化模型參數。
代表論文1:A Sequence-to-Sequence Model for User Simulation in Spoken Dialogue Systems
之前的基于概率建模的方法往往存在著幾點不足:
- 無法考慮對話歷史;
- 需要刻板的結構來保證用戶行為的一致性;
- 嚴重依賴于特定領域;
- 在一次對話期間無法輸出多個用戶意圖。
用戶模擬器的一個重要特征是它鼓勵整個對話中的連貫行為,而由于之前的概率模型從易于實現的角度,基本不考慮很長的對話歷史和單句多意圖的情況,導致了整個對話效率比較低下。基于此作者提出了一種?Sequence-to-sequence 的用戶模擬器模型(如圖 4 所示),它將對話上下文序列作為輸入,然后輸出用戶動作序列。
在每次對話開始之前,統一的構建出一個 Goal G=(C,R),對于餐館查詢任務而言,約束條件通常指的是菜品口味、菜品價格以及餐館所在方位,問詢內容為以下槽位:餐館名稱、餐館地址、餐館電話等。
在第 t 輪對話,一個上下文包含以下 4 部分:1)上一輪的系統動作;2)上一輪系統回復的信息與 User Goal 不一致的部分;3)約束條件的狀態(告知與否);4)問詢內容的狀態(被告知與否)。
在每次對話的過程中,會根據 dialogue acts 的個數以及 Goal 的狀態,對以上 4 部分進行 one-hot 編碼,從而得到對話上下文的向量化表示。如下表所示:
然后再將向量輸入到 decoder LSTM 網絡,輸出 dialogue acts 序列,比如 (inform, request)。接下來需要通過啟發式規則將 dialogue acts 映射為帶槽的用戶行為,比如 inform(food=Chinese), request(price_range)。
作者也提到可以訓練一個模型,讓它直接輸出最終的行為,比如 request_area,inform_pricerange。這種方式的優點是不需要寫啟發式規則,可以做到更細粒度的建模,這也是作者推薦的方式。最后實驗結果證明效果優于基于議程的方法。
代表論文2:Neural User Simulation for Corpus-based Policy Optimization for Spoken Dialogue Systems
論文鏈接:https://aclweb.org/anthology/papers/W/W18/W18-5007/
上一篇論文中的一些端到端系統雖然對整個對話歷史都進行了跟蹤,并且用戶的行為是從數據中學習得到的,但是依舊存在兩個問題:1)沒有對用戶的目標改變(goal change)進行建模;2)只在語義層面進行用戶模擬,需要耗費人力標注出每輪用戶語句的語義標簽進行模型訓練,而不是直接利用自然語句進行訓練。
有了每輪的用戶目標,NUS 通過 RNN 來生成用戶語句, 如圖 5 所示:
?▲?圖5. 神經用戶模擬器的端到端模型
例如出現了 request(area)?則將中對應位置處元素置 1;稱作問詢向量,是一個長度和可問詢槽(requestable slots)總個數相等的二進制向量,用來標記哪些用戶目標中需要問詢的可問詢槽還沒有被用戶向系統提問;稱作不一致向量(inconsistency vector), ?長度等于可告知槽總個數,一旦系統動作中對某個槽出現了和本輪用戶目標不一致的情況,對應的位置處元素置 1。是用戶目標約束向量,長度等于可告知槽總個數,用來表示本輪用戶目標中出現了哪些可告知槽。
NUS 生成的回復是去詞匯化的自然語句,經過后處理則得到了用戶的自然語言回復。論文為了論證 NUS 效果優異 Agenda-based User Simulator (ABUS), 提出了一個交叉模型評估的方法,即在一個 User Simulator 上訓練一個 agent,在其他 User Simulator 上測試該 agent,如果 agent 效果依舊很好,說明用于訓練的 User Simulator 是更加貼近真實用戶。
最終實驗結果證明,在 NUS 上訓練得到了的 agent,在 ABUS 和真實用戶上測試得到的成功率均優于 ABUS,而在 ABUS 上訓練得到的 agent 效果只在 ABUS 上測試好。
代表論文:Iterative Policy Learning in End-to-End Trainable Task-Oriented Neural Dialog Models
論文鏈接:https://arxiv.org/abs/1709.06136v1
用戶模型和對話管理模型功能十分接近,因此對用戶模型也采用強化學習的框架,將用戶模擬器和對話系統聯合優化是一個可行的方向。論文在對用戶模擬器和對話系統分別采用了 RNN 進行端到端的建模并使用同一個回報函數優化,兩者交替訓練共同最大化累計回報。
?是用戶目標,?是對話系統對用戶目標的估計,D(?· ) 是一個得分函數。根據相鄰輪得分函數之差可以得到單輪回報函數。用戶模擬器和對話系統交替優化,共同最大化累計回報函數。
為了降低 REINFORCE 策略梯度優化的方差,論文采用 Advantage Actor-Critic (A2C) 算法,并使用 ε-softmax 進行策略探索,在 DSTC2 數據集上進行了初步實驗,結果如下:
代表論文:User Simulation in Dialogue Systems using Inverse Reinforcement Learning
論文鏈接:https://core.ac.uk/download/pdf/52801075.pdf
通常最優策略會通過專家行為近似得到,例如請經驗豐富的專家充當用戶直接給出合理的回復。需要注意的是模仿學習(imitation learning)和 IRL 不同,模仿學習是直接通過專家行為的數據優化策略而不估計回報函數。
?被稱作特征期望(feature expectation),實際中通過采樣統計得到,設采樣了 m 個 episode 序列樣本,第 i 個序列的長度記為 Hi。
具體的 IRL 算法如下:
首先通過對話語料收集出真實的用戶對話策略的特征期望 , 并且初始化用戶模擬器的對話策略,通過采樣得到模擬用戶的特征期望,添加到對話策略集合?Π?中; 然后經過多次迭代,每次根據估計出的回報函數進一步求解出新的最優對話策略并添加到策略集合?Π?中。算法最終可以合理估計出回報函數的,該回報函數和專家策略相容。
論文中實驗結果表明,通過對 IRL 找出來的策略集合?Π?進行加權隨機采樣得到的用戶對話策略相比于固定的用戶策略(專家行為)有更短的對話輪數和更高的 reward 值。說明了 IRL 方法在估計出回報函數的同時也能得到更加多樣真實的策略,這在某些場景下將會非常有用。
在有高質量語料庫的情況下,我們可以考慮直接根據對話上下文,從語料庫中推薦出最恰當的用戶語句作為用戶模擬器的回復。Amazon ?的論文就是根據這樣的想法設計了基于協同過濾算法的用戶模擬器。首先,論文論證了在客服領域,對話系統的語句表達相比于用戶的表達通常比較規整單一,因此可以對所有的用戶語句進行粗略的標注,如圖 8 所示:
▲?圖8. (a) 每個對話被轉換成語義標簽序列 (b) 正在進行的對話和語料庫對話的匹配示意圖,紅橙色表示系統標簽,綠色表示用戶語句
具體的算法如下:
- 能夠衡量生成的對話動作的一致性;
- 評價方式和具體的任務無關;
- 可以從目標信息中自動化地計算出一個標量值,而無需人工干預。
用戶模擬器的評價方式
- 能夠衡量生成的對話動作的一致性;
- 評價方式和具體的任務無關;
- 可以從目標信息中自動化地計算出一個標量值,而無需人工干預。
通常用戶模擬器的評價指標可以分為單輪級別度量?(turn-level metrics)?和對話級別度量?(dialog-level metrics)。
單輪級別度量主要針對用戶動作的語義標簽,最常見度量是精確率,召回率和 F1 得分,對于每一輪可以計算:
但是以上的度量不能評估用戶模型泛化能力,例如某個用戶動作是合理的但因為在對話數據中并未出現,如果預測了就會導致得分低。因此我們還可以將用戶動作的預測概率分布P和真實概率分布 Q 之間的 KL 距離作為度量,從概率分布上評估用戶預測模型的合理性。
用戶模擬器面臨的挑戰
總結
本綜述詳細地介紹了目前學界的常用模型和方法。由于學界一般關注的對話任務是訂餐館、訂電影票、訂飛機票這類簡單的填槽(slot-filling)任務,對話的狀態和動作空間有限,不需要太復雜的模型和大規模的語料就能獲得比較好的效果,因此在數據充分的情況下,基于模型學習的方法在效果上普遍優于基于規則的方法。
而在工業界真實的場景里,除了上面的簡單任務,占比更多的是“查話費”、“開發票”、“掛失信用卡”這類中等復雜度的場景,它的特點是機器人有外部 API 調用、基于 API 返回結果的分支判斷、異常兜底邏輯、多個子意圖的串聯、多個填槽過程等,對話的狀態和動作空間迅速擴大,需要有足量的訓練語料才能保證用戶模擬器的覆蓋率。
因此在實際生產實踐中,我們需要劃分好場景,重新制定更加貼近業務的用戶動作標簽,統計出真實的用戶目標,再選擇最合適自身場景的模型來構建模擬器。
參考文獻
[1] Li X, Chen Y N, Li L, et al. End-to-end task-completion neural dialogue systems[J]. arXiv preprint arXiv:1703.01008, 2017.
[2] Schatzmann J, Young S. The hidden agenda user simulation model[J]. IEEE transactions on audio, speech, and language processing, 2009, 17(4): 733-747.
[3] Schatzmann J, Thomson B, Weilhammer K, et al. Agenda-based user simulation for bootstrapping a POMDP dialogue system[C]//Human Language Technologies 2007: The Conference of the North American Chapter of the Association for Computational Linguistics; Companion Volume, Short Papers. Association for Computational Linguistics, 2007: 149-152.
[4]W. Eckert, E. Levin, and R. Pieraccini. 1997. User modelling for spoken dialogue system evaluation. In Proc. of ASRU ’97, pages 80–87.
[5]E. Levin, R. Pieraccini, and W. Eckert, “A stochastic model of human machine interaction for learning dialog strategies,” IEEE Trans. Speech Audio Process., vol. 8, no. 1, pp. 11–23, Jan. 2000.
[6]K. Scheffler and S. J. Young. 2001. Corpus-based dialogue simulation for automatic strategy learning and evaluation. In Proc. NAACL Workshop on Adaptation in Dialogue Systems, pages 64–70.
[7]O. Pietquin. 2004. A Framework for Unsupervised Learning of Dialogue Strategies. Ph.D. thesis, Faculte Polytechnique de Mons.
[8] Lee S, Eskenazi M. An unsupervised approach to user simulation: toward self-improving dialog systems[C]//Proceedings of the 13th Annual Meeting of the Special Interest Group on Discourse and Dialogue. Association for Computational Linguistics,?2012: 50-59.
[9] Layla El Asri, Jing He, and Kaheer Suleman. 2016. A sequence-to-sequence model for user simulation in spoken dialogue systems. Proceedings of the 17th Annual Conference of the International Speech Communication Association, pages 1151–1155
[10] Kreyssig F, Casanueva I, Budzianowski P, et al. Neural user simulation for corpus-based policy optimisation for spoken dialogue systems[J]. SIGDIAL, 2018.
[11] Chandramohan S, Geist M, Lefevre F, et al. User simulation in dialogue systems using inverse reinforcement learning[C]//Interspeech 2011. 2011: 1025-1028.
[12] Devin Didericksen,Oleg Rokhlenko, Kevin Small, Li Zhou, Jared Kramer. Collaboration-based User Simulation for Goal-oriented Dialog Systems. NIPS 2017
[13] Liu B, Lane I. Iterative policy learning in end-to-end trainable task-oriented neural dialog models[C]//2017 IEEE Automatic Speech Recognition and Understanding Workshop (ASRU). IEEE, 2017: 482-489.
[14] Pietquin O, Hastie H. A survey on metrics for the evaluation of user simulations[J]. The knowledge engineering review, 2013, 28(1): 59-73.
[15] Shah P, Hakkani-Tür D, Tür G, et al. Building a conversational agent overnight with dialogue self-play[J]. NAACL, 2018.
[16] H. Cuayahuitl, S. Renals, O. Lemon, and H. Shimodaira, “Human computer dialogue simulation using hidden Markov models,” in Proc. ASRU, San Juan, Puerto Rico,?2005
點擊以下標題查看更多往期內容:?
基于DGCNN和概率圖的輕量級信息抽取模型
圖神經網絡綜述:模型與應用
自然語言處理中的語言模型預訓練方法
一大批中文(BERT等)預訓練模型等你認領!
當Bert遇上Keras:這可能是Bert最簡單的打開姿勢
站在BERT肩膀上的NLP新秀們:XLMs、MASS和UNILM
基于小樣本學習的意圖識別冷啟動
#投 稿 通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得或技術干貨。我們的目的只有一個,讓知識真正流動起來。
??來稿標準:
? 稿件確系個人原創作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?
? 如果文章并非首發,請在投稿時提醒并附上所有已發布鏈接?
? PaperWeekly 默認每篇文章都是首發,均會添加“原創”標志
? 投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨在附件中發送?
? 請留下即時聯系方式(微信或手機),以便我們在編輯發布時和作者溝通
?
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
▽ 點擊 |?閱讀原文?| 獲取最新論文推薦
總結
以上是生活随笔為你收集整理的最新综述:对话系统之用户模拟器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SIGIR 2019 开源论文 | 结合
- 下一篇: 文末福利 | 国际前沿算法峰会报名进行中