1. 程式人生 > 其它 >“預習-上課-複習”:達摩院類人學習新正規化探索

“預習-上課-複習”:達摩院類人學習新正規化探索

簡介:預習時關注重點,上課時由易到難,複習時舉一反三,能否讓機器也按照“預習-上課-複習”的學習正規化進行學習呢? 達摩院對話智慧(Conversational AI)團隊對這個問題進行了研究探索,先將其用在了人機對話領域,在國際知名多輪對話資料集MultiWoz上取得了最好結果。

作者 | 言楓

來源 | 阿里技術公眾號

預習時關注重點,上課時由易到難,複習時舉一反三,能否讓機器也按照“預習-上課-複習”的學習正規化進行學習呢?

達摩院對話智慧(Conversational AI)團隊對這個問題進行了研究探索,先將其用在了人機對話領域,在國際知名多輪對話資料集MultiWoz上取得了最好結果。

目前對話系統的各類研究工作,大多還是集中在模型結構的創新上,並按照傳統的mini-batch方式進行有監督訓練。然而,筆者所在團隊經過最新研究發現,這種傳統訓練方式並不是對話系統的最優訓練模式。受到人類在學習新知識時的學習正規化的啟發,我們提出了“預習-上課-複習”的三階段訓練正規化來提升對話系統的效能,該正規化能夠像人一樣預習時關注重點,上課時由易到難,複習時舉一反三。具體來說,在預習階段時,人一般會先了解重點概念、章節結構等資訊,因此我們對應地設計了帶有結構偏置的預訓練目標,讓模型學會對話資料中的槽值關聯資訊;在上課階段時,人會從簡單內容開始學習再逐步進階到困難部分,因此我們使用了課程學習[1]的方法來訓練對話模型;而在複習階段時,人們通常是溫故知新舉一反三,因此我們專門設計了基於對話本體的資料增強方法,針對易錯樣例對模型進行加強訓練。通過這樣的優化框架,我們最終在多輪對話資料集MultiWOZ2.1和 WOZ2.0上都取得了目前最好結果,相關工作被ACL21以4-4-4高分接收。

一 人類學習正規化與機器學習正規化

在教育學中,針對人類學習的模式,不少學者提出“預習->上課->複習”的三階段過程,是最為高效的學習正規化之一[3]。預習時,由於沒有老師進行指導,因此學生會利用已學知識和技能,通過觀察章節標題、瀏覽段落文字、準備課上問題等方式進行自主地學習,大致瞭解課堂內容;進入到正式上課階段時,學生會根據老師安排好的課程從易到難進行學習,這種由淺入深的教學是人類數百年教育發展總結出的最佳方式,能夠讓學生的知識接受效率最大化;在上完課後,學生應當及時地回顧所學的課程內容,溫故知新,通過自我反思總結,找出仍舊沒有掌握的知識點,並準備好和老師進一步溝通解答。

在人工智慧的主要方向自然語言處理(Natural Language Processing,NLP)領域中,目前大家普遍採用的是“pre-train + fine-tune”的機器學習正規化,即先得到大規模預訓練語言模型,再基於該模型進行下游任務微調。這種機器學習正規化過於簡化,沒有考慮到人類學習正規化中的重要特性,即:預習時關注重點,上課時由易到難,複習時舉一反三。因此,對於某個具體的NLP任務,我們應該在構建訓練目標時就將這些特性考慮進來,通過設計出更具任務本身特點的新目標函式來模仿人類學習正規化中的三階段學習過程。

二 基於“預習-上課-複習”學習正規化的多輪對話理解

在本文中,我們主要研究任務型多輪對話系統中的核心任務 -- 對話狀態跟蹤(Dialog State Tracking, DST),並希望能夠設計出多輪對話特有的“預習-上課-複習”三階段學習正規化以提升DST 模型的效果。

1 對話狀態追蹤任務介紹

首先, 我們介紹一下任務型對話系統和DST任務。

任務型對話系統是通過人機對話完成某個特定任務的系統,例如政務事務辦理、滿意度回訪、訂餐館等。該系統不僅可以回答使用者問題,同時還能主動發問,引導會話的有效進行,通過多輪對話完成特定任務。例如在一個餐館查詢場景中,一個典型的對話如下:

圖2 任務型多輪對話示例

如圖2所示,可以看到,在該對話中,機器人需要根據使用者的不同的回答情況進行多輪的對話,最終收集完整自己需要的資訊後給出找到的結果。

對話狀態跟蹤(DST)是一個重要的對話理解任務,即給定整個對話歷史,將使用者表達的語義識別成槽值對形式的對話標籤。例如使用者說 “我想要便宜的餐館”,對應的DST語義標籤就是 “價格=便宜”。 對話標籤的集合一般已經預定義好,統稱為對話本體(ontology)或者對話schema。

2 對話狀態追蹤任務難點

在一些經典的學術對話資料集中,例如 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)

3 “預習-上課-複習”技術方案

針對上文提到的 DST 難點,我們希望能夠從人類學習的過程中總結出一種特有正規化來優化模型,實現一種model-agnostic的DST優化方案。基於此,我們設計了“預習-上課-複習”三階段DST 訓練方案,充分地利用好對話schema 中已經存在的槽值關聯的結構(即 schema structure)和對話資料中存在的難易資料分佈的結構(即 curriculum structure),提出了 Schema-aware Curriculum Learning for Dialog State Tracking (SaCLog) 通用的DST優化框架,如下圖4所示:

圖4 基於“預習-上課-複習”的對話狀態追

預習模組(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是三者的加權和。

上課模組(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 課程學習效果提升示意圖

假設我們的目標優化函式超曲面是最上方的一個曲線,下面的曲線分別是簡單的優化函式超曲面,位置越下面說明訓練資料越簡單。可以看到,如果一開始就選擇優化目標超曲面,模型很可能會陷入到區域性峰值中,但是如果通過一系列合理的中間優化函式由簡到難逐步逼近目標函式,那麼模型就很可能跳出區域性峰,達到更優解。

我們具體來看SaCLog中的上課模組是怎樣實現的:首先我們使用了一個基於規則和模型的混合困難度打分器,模型打分器採用類似交叉驗證的方式,將模型在訓練集中的 K-fold 驗證集上的預測概率作為模型得分,規則打分器利用了一些常見特徵,如對話長度、當前輪槽值個數、實體詞個數等作為規則得分,兩類得分結合在一起對整個訓練集進行排序,並提前劃分成10個bucket。在 baby step 的訓練中,首先讓模型在最簡單的bucket 資料上訓練,當模型訓練在現階段訓練集上收斂時再依次加入新的bucket一起訓練,直至最終所有資料都加入了累計訓練集。最後模型在全集上進一步訓練至收斂為止。

複習模組(review module)

前面我們提到,複習是人類學習過程中的重要一環,所謂溫故而知新,學習完重要的知識點後需要立即鞏固練習,針對薄弱的環節加強訓練。

落實到我們具體的SaCLog中的複習模組裡,我們採取的方式是基於schema資訊的資料增強方法,由於schema中已經預定義好了所有的槽和值,因此我們可以通過字串匹配的方式儘可能地從對話語句中將相應位置的槽值找出來進行不同槽值的替換或者同義詞替換,以擴充對話訓練資料。我們在課程學習時,採取每次迭代的epoch 結尾都將模型預測出錯的loss前10%的訓練資料送入複習模組,通過槽替換、值替換和對話重組三種規則方式進行資料的擴充,將新增資料併入訓練集一起參與下一輪訓練。其中,對話重組是將和當前輪對話資料帶有相同對話狀態標籤的其他對話資料進行歷史對話和後續對話進行重新組合。

4 “預習-上課-複習”方案的實驗結果

整體榜單

我們在 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]The Study Cycle: Preview, Attend, Review, Study, Assess
[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.

原文連結
本文為阿里雲原創內容,未經允許不得轉載。