预习-上课-复习:让机器像人一样学习对话
?PaperWeekly 原創 ·?作者 | 戴音培、李永彬
機構 | 阿里巴巴達摩院Conversational AI團隊
?
預習時關注重點,上課時由易到難,復習時舉一反三,能否讓機器也按照“預習-上課-復習”的學習范式進行學習呢?達摩院對話智能(Conversational AI)團隊對這個問題進行了研究探索,先將其用在了人機對話領域,在國際知名多輪對話數據集 MultiWoz 上取得了最好結果。
論文標題:
Preview, Attend and Review: Schema-Aware Curriculum Learning for Multi-Domain Dialogue State Tracking
論文鏈接:
https://aclanthology.org/2021.acl-short.111/
目前對話系統的各類研究工作,大多還是集中在模型結構的創新上,并按照傳統的 mini-batch 方式進行有監督訓練。然而,筆者所在團隊經過最新研究發現,這種傳統訓練方式并不是對話系統的最優訓練模式。受到人類在學習新知識時的學習范式的啟發,我們提出了“預習-上課-復習”的三階段訓練范式來提升對話系統的性能,該范式能夠像人一樣預習時關注重點,上課時由易到難,復習時舉一反三。
具體來說,在預習階段時,人一般會先了解重點概念、章節結構等信息,因此我們對應地設計了帶有結構偏置的預訓練目標,讓模型學會對話數據中的槽值關聯信息;在上課階段時,人會從簡單內容開始學習再逐步進階到困難部分,因此我們使用了課程學習 [1] 的方法來訓練對話模型;而在復習階段時,人們通常是溫故知新舉一反三,因此我們專門設計了基于對話本體的數據增強方法,針對易錯樣例對模型進行加強訓練。通過這樣的優化框架,我們最終在多輪對話數據集 MultiWOZ2.1 和 WOZ2.0 上都取得了目前最好結果,相關工作被 ACL 2021 以 4-4-4 高分接收。
??????
人類學習范式與機器學習范式
在教育學中,針對人類學習的模式,不少學者提出“預習->上課->復習”的三階段過程,是最為高效的學習范式之一 [3]。預習時,由于沒有老師進行指導,因此學生會利用已學知識和技能,通過觀察章節標題、瀏覽段落文字、準備課上問題等方式進行自主地學習,大致了解課堂內容;進入到正式上課階段時,學生會根據老師安排好的課程從易到難進行學習,這種由淺入深的教學是人類數百年教育發展總結出的最佳方式,能夠讓學生的知識接受效率最大化;在上完課后,學生應當及時地回顧所學的課程內容,溫故知新,通過自我反思總結,找出仍舊沒有掌握的知識點,并準備好和老師進一步溝通解答。
▲?圖1. “預習-上課-復習”三階段學習范式
以上是人類學習范式,而在人工智能的主要方向自然語言處理(Natural Language Processing,NLP)領域中,目前大家普遍采用的是“pre-train + fine-tune”的機器學習范式,即先得到大規模預訓練語言模型,再基于該模型進行下游任務微調。這種機器學習范式過于簡化,沒有考慮到人類學習范式中的重要特性,即:預習時關注重點,上課時由易到難,復習時舉一反三。因此,對于某個具體的 NLP 任務,我們應該在構建訓練目標時就將這些特性考慮進來,通過設計出更具任務本身特點的新目標函數來模仿人類學習范式中的三階段學習過程。
基于“預習-上課-復習”學習范式的多輪對話理解
在本文中,我們主要研究任務型多輪對話系統中的核心任務——對話狀態跟蹤(Dialog State Tracking, DST),并希望能夠設計出多輪對話特有的“預習-上課-復習”三階段學習范式以提升 DST 模型的效果。
2.1?對話狀態追蹤任務及其難點
首先,我們介紹一下任務型對話系統和 DST 任務。?
任務型對話系統是通過人機對話完成某個特定任務的系統,例如政務事務辦理、滿意度回訪、訂餐館等。該系統不僅可以回答用戶問題,同時還能主動發問,引導會話的有效進行,通過多輪對話完成特定任務。例如在一個餐館查找場景中,一個典型的對話如下:
▲ 圖2.?任務型多輪對話示例
如圖 2 所示,可以看到,在該對話中,機器人需要根據用戶的不同的回答情況進行多輪的對話,最終收集完整自己需要的信息后給出找到的結果。有關任務型對話模型的更多介紹可參考《小蜜團隊萬字長文:對話管理模型最新研究進展》和 《達摩院基于元學習的對話系統》。?
對話狀態跟蹤(DST)是一個重要的對話理解任務,即給定整個對話歷史,將用戶表達的語義識別成槽值對形式的對話標簽。例如用戶說 “我想要便宜的餐館”,對應的 DST 語義標簽就是“價格=便宜”。對話標簽的集合一般已經預定義好,統稱為對話本體 (ontology) 或者對話 schema。
在一些經典的學術對話數據集中,例如 MultiWOZ [4],CrossWOZ [5] 等,DST 任務普遍存在以下 3 個挑戰:
不同槽之間的取值存在指代關聯。例如用戶在前幾輪交互已經預定好了某家餐館,在當前輪時,用戶說 “我還想要該餐館附近的一家酒店”,那么隱含地,酒店的 area 槽值應當和餐館的 area 槽值是一致的,這需要 DST 模型有能力識別出來。
用戶隱含接受系統推薦。例如,當系統推薦某家酒店時,用戶針對推薦的結果的態度既可以是正面的表達(that’s great),也可以是非正面的表達(hold on please),對應的 hotel-name 槽也就會填或不填。
真實用戶表達豐富多樣,增大解析難度。例如,在 DST 任務中,每個槽有一個特殊的槽值叫 dontcare,用于表示用戶對該槽可選取所有值,即沒有特定值限制。在 MultiWOZ 數據集中,用戶對于 dontcare 的表達多樣性很大,十分考驗模型的語言理解能力。
下圖 3 是我們利用目前最好的 DST 模型 TripPy [10],在 MultiWOZ2.1 數據集上進行錯誤分析得到的一個錯因占比統計。除了標注錯誤,后處理不當等額外因素,以上三類問題的占比達到約 42%,這需要更好的模型和方案來進行解決。
▲ 圖3.?MultiWoz 2.1數據集DST錯誤分析(模型采用TriPy)
2.2. “預習-上課-復習”技術方案?
針對上文提到的 DST 難點,我們希望能夠從人類學習的過程中總結出一種特有范式來優化模型,實現一種 model-agnostic 的 DST 優化方案。基于此,我們設計了“預習-上課-復習”三階段 DST 訓練方案,充分地利用好對話 schema 中已經存在的槽值關聯的結構(即 schema structure)和對話數據中存在的難易數據分布的結構(即 curriculum structure),提出了 Schema-aware Curriculum Learning for Dialog State Tracking (SaCLog) 通用的 DST 優化框架,如下圖 4 所示:
▲?圖4.?基于“預習-上課-復習”的對話狀態追蹤
2.2.1 預習模塊 (preview module)?
我們希望在預習模塊中能夠實現對 schema structure 的有效建模,通過設計類似 [6] 的帶有結構偏置信息的預訓練目標,讓 DST 模型的基座(如 BERT, BiRNN 等)對 schema 中信息有一個初步大致的了解,在不接觸具體下游 DST 任務的情況下,先對各個槽的取值以及在用戶語句中的表達有一個顯式關系的建模。下圖 5 是 MultiWoz 中的一個典型的 schema structure:
▲?圖5.?MultiWoz數據集中的典型的schema structure
實線連接的是同一個領域下的槽,虛線連接的是不同領域之間可能存在槽值關聯的槽,整體形成了一個網絡狀的結構。每個槽的槽值在不同的自然語句中也會有不同的表達形式,我們希望將這些隱含的聯系在預習階段通過預訓練的方式讓模型學習出來。
具體的做法是,我們利用一個槽編碼器和一個對話歷史編碼器(兩個編碼器共享參數,模型可選擇 BERT、BiRNN 等)分別編碼每個槽和對話歷史,槽編碼向量和對話歷史的各個位置的向量進行兩種 loss 計算,一種是操作分類 loss ,判斷某個槽在當前的對話語句中屬于“增”、“刪”、“改”、“無”四個操作中的哪一個操作類別,另一種是序列預測 loss ,判斷當前對話歷史中,哪些詞屬于該槽的槽值(利用預設的字符串匹配得到)。同時我們再加上一個輔助的 MLM loss ,對整個對話預料進行類似 RoBERTa 的預訓練。最終整體 loss 是三者的加權和 。
2.2.2 上課模塊 (attend module)?
通過預習模塊我們得到了一個預訓練好的模型基座,如 BERT。接下來我們正式進行 DST 任務的學習。前面我們提到,在對話數據中存在的豐富的 curriculum structure,即數據的難易度分布的結構。下圖 6 展示了一個簡單和一個困難的對話例子:
▲?圖6.?對話中不同難易程度的示意圖
同樣是用戶想要一輛從 nandos 作為出發地的 taxi,圖 6 中上方的對話例子是一個最簡單的表達。而圖 6 中下方的對話例子,盡管 DST 結果和簡單例子一樣,卻要困難很多,用戶是通過”from the restaurant”這種表述間接地表達了需要一輛出發地是 nandos 餐館的 taxi。?
在前人的工作中,DST 模型一般都是采用 random sampling 的方式選擇 batch data 進行優化的,這里,我們打算充分地考慮人在課程學習時的學習模式,將訓練數據進行難易度劃分,利用課程學習 [1] 中的經典算法 baby step [9] 來優化,讓模型先學習好簡單的數據再學習復雜的數據。課程學習的諸多理論和實踐 [7] 也已經證明了,這種類人教學的訓練策略不僅能夠加速模型收斂,還能夠提升模型效果。下圖是論文?[8]?中一個的可用于說明課程學習提升效果的示意圖:
▲?圖7.?課程學習效果提升示意圖
假設我們的目標優化函數超曲面是最上方的一個曲線,下面的曲線分別是簡單的優化函數超曲面,位置越下面說明訓練數據越簡單。可以看到,如果一開始就選擇優化目標超曲面,模型很可能會陷入到局部峰值中,但是如果通過一系列合理的中間優化函數由簡到難逐步逼近目標函數,那么模型就很可能跳出局部峰,達到更優解。關于更多課程學習的最新內容,推薦詳讀綜述《A Survey on Curriculum Learning》一文。?
我們具體來看 SaCLog 中的上課模塊是怎樣實現的:首先我們使用了一個基于規則和模型的混合困難度打分器,模型打分器采用類似交叉驗證的方式,將模型在訓練集中的 K-fold 驗證集上的預測概率作為模型得分,規則打分器利用了一些常見特征,如對話長度、當前輪槽值個數、實體詞個數等作為規則得分,兩類得分結合在一起對整個訓練集進行排序,并提前劃分成 10 個 bucket。在 baby step 的訓練中,首先讓模型在最簡單的 bucket 數據上訓練,當模型訓練在現階段訓練集上收斂時再依次加入新的 bucket 一起訓練,直至最終所有數據都加入了累計訓練集。最后模型在全集上進一步訓練至收斂為止。
2.2.3 復習模塊 (review module)?
前面我們提到,復習是人類學習過程中的重要一環,所謂溫故而知新,學習完重要的知識點后需要立即鞏固練習,針對薄弱的環節加強訓練。?
落實到我們具體的 SaCLog 中的復習模塊里,我們采取的方式是基于 schema 信息的數據增強方法,由于 schema 中已經預定義好了所有的槽和值,因此我們可以通過字符串匹配的方式盡可能地從對話語句中將相應位置的槽值找出來進行不同槽值的替換或者同義詞替換,以擴充對話訓練數據。
我們在課程學習時,采取每次迭代的 epoch 結尾都將模型預測出錯的 loss 前 10% 的訓練數據送入復習模塊,通過槽替換、值替換和對話重組三種規則方式進行數據的擴充,將新增數據并入訓練集一起參與下一輪訓練。其中,對話重組是將和當前輪對話數據帶有相同對話狀態標簽的其他對話數據進行歷史對話和后續對話進行重新組合。
2.3 “預習-上課-復習”方案的實驗結果
我們在 MultiWOZ2.1 和 WOZ2.0 兩個經典的多輪對話數據集上進行了實驗。首先,我們將 SaCLog 框架應用到目前最好的 transformer-based DST 模型TripPy [10] 上,利用預習模塊對 BERT 基座進行預訓練,再利用上課模塊和復習模塊對 TripPy 進行 DST 任務的 fine-tune,實驗結果如下圖所示:
可以看到應用我們的框架后,TripPy 模型在兩個數據集上性能都有很大提升,取得到了目前最佳結果,同時在 MultiWOZ2.1 上我們也進行了一個 ablation study,發現利用預習模塊和復習模塊能夠帶來最大的提升。
里為了驗證我們框架的通用性,我們也在目前最好的 RNN-based DST 模型 TRADE [11] 上進行驗證,發現同樣也能帶來提升。
整體總結
本文主要介紹了如何通過模仿人類“預習-上課-復習”的三階段學習范式,設計出一個適用于對話狀態跟蹤任務的通用優化框架。具體來看我們采用了預習、上課、復習三個模塊,通過充分利用對話數據中的 schema structure 和 curriculum structure 以提升模型的性能。實驗表明,我們在利用了 SaCLog 優化框架后,在多個多輪對話數據集上都取得了目前最好效果。
新學習范式的未來展望
在未來,我們希望能將“預習-上課-復習”三階段學習范式擴展到更多的任務中,例如對話生成、端到端對話系統,以及其他的 NLP 任務。希望這樣的新范式能夠帶來更多的訓練優化方法上的變革,同時也準備在對話系統的業務落地上開展更多的實踐應用。?
智能對話系統是個極具前景和挑戰性的方向,達摩院 Conversational AI 團隊將不斷地探索推進在這個領域的技術進步和落地,敬請期待我們后續的工作!
參考文獻
[1]?Bengio Y, et al. Curriculum learning. ICML19.?
[2] Yinpei Dai, et al. Preview, Attend and Review: Schema-Aware Curriculum Learning for Multi-Domain Dialog State Tracking.ACL21.?
[3] https://www.educationcorner.com/the-study-cycle.html?
[4] Eric M et al. MultiWOZ 2.1: A consolidated multi-domain dialogue dataset with state corrections and state tracking baselines.LERC, 2020.?
[5] Zhu Q, Huang K, Zhang Z, et al. Crosswoz: A large-scale chinese cross-domain task-oriented dialogue dataset. TACL, 2020.?
[6] Yu T, Zhang R, Polozov O, et al. SCORE: PRE-TRAINING FOR CONTEXT REPRESENTA-TION IN CONVERSATIONAL SEMANTIC PARSING. ICLR 2021.?
[7] Xin Wang, Yudong Chen and Wenwu Zhu. A Survey on Curriculum Learning. PAMI 2021.?
[8] Bengio Y. Evolving culture versus local minima. Growing Adaptive Machines, 2014.?
[9] Spitkovsky V I, Alshawi H, Jurafsky D. From baby steps to leapfrog: How “less is more” in unsupervised dependency parsing. NAACL 2010.?
[10] Heck M, van Niekerk C, Lubis N, et al. Trippy: A triple copy strategy for value independent neural dialog state tracking. SIGDIAL, 2020.?
[11] Wu C S, Madotto A, Hosseini-Asl E, et al. Transferable multi-domain state generator for task-oriented dialogue systems. ACL, 2019.
特別鳴謝
感謝 TCCI 天橋腦科學研究院對于 PaperWeekly 的支持。TCCI 關注大腦探知、大腦功能和大腦健康。
團隊招聘
阿里巴巴-達摩院-對話智能技術團隊招聘:
招聘對象:實習生、應屆畢業生、社招,統統都要~~
工作地點:北京-望京
研究方向(包括但不限于):?
1. 對話的核心技術,包括語言理解、對話管理和語言生成;?
2. 知識的結構化挖掘,從文檔中自動抽取各類結構化知識;?
3. 多模態對話技術,包括語言+語音+視覺等;?
4. 數據知識雙驅動的大規模預訓練對話模型;?
5. Few-shot Learning/Lifelong Learning 等前沿技術研究;?
如果你愿意和我們一起創造對話智能的未來,熱烈歡迎加入我們!?
關于我們:?
達摩院對話智能(Conversational AI)團隊,專注于 Conversational AI 的前沿研究和大規模應用,打造了任務型對話開發平臺 Dialog Studio,以及 KBQA、TableQA、FAQs、Doc2bot 等智能問答技術,在 ACL/EMNLP/AAAI/IJCAI/WWW/CIKM 等頂會發表多篇論文。基于上述技術打造的阿里云智能客服(即云小蜜),是國內智能客服領域的領導者,在中國移動、中國人壽、政務 12345 熱線等企業或組織大規模應用。?
聯系方式
簡歷內推:yinpei.dyp@alibaba-inc.com
?
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析、科研心得或競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。
?????稿件基本要求:
? 文章確系個人原創作品,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標注?
? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題
? PaperWeekly 尊重原作者署名權,并將為每篇被采納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算
?????投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來稿請備注即時聯系方式(微信),以便我們在稿件選用的第一時間聯系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長按添加PaperWeekly小編
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
·
總結
以上是生活随笔為你收集整理的预习-上课-复习:让机器像人一样学习对话的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 哪些美食容易让人吃了一次后就记住的?
- 下一篇: 深入解读f-散度和f-GAN训练的相关数