作者|耿瑞瑩,黎檳華,武玉川,李永彬
單位|阿里巴巴達摩院Conversational AI 團隊
近年來,對話式 AI(Conversational AI)無論在學術界還是在工業界都在迅猛發展,背後的核心驅動力在於,人機對話在各行各業的實際場景中存在著廣泛的需求,並且當前的技術進展已經能夠大規模落地應用。
以筆者所在的達摩院 Conversational AI 團隊為例,過去幾年,透過阿里雲智慧客服(即雲小蜜)產品矩陣,將人機對話在政務、銀行、保險、醫療、教育、交通、水利、電力等眾多行業進行大規模應用,更在 2020 年初疫情爆發初期,打造了全國最大的疫情外呼機器人平臺,幫助 27 個省撥打了 1800 多萬通電話,協助政府工作人員進行疫情的摸排防控。
在對話式 AI 大規模落地應用的過程中,面臨眾多技術難題,其中一個是低資源小樣本的問題。在有大量標註資料的場景,今天的深度學習模型已經能夠將問題的解決的比較好了,但在是標註資料很小的場景中,怎麼讓機器進行學習呢?面對這個難題,過去兩年,我們團隊從人類的小樣本學習機制入手進行思考和研究:
人類之所以能夠從很小的樣本中就能進行很好的學習,主要在於兩個能力,一個是歸納(induction)能力,即能夠從個例中抽象出通用規則,基於此我們提出了歸納網路(Induction Network),已發表在 EMNLP2019;
另一個是記憶(memory)能力,即能夠將學過的東西記下來並在需要時進行類比,對此我們提出了動態記憶網路(Dynamic Memory),已發表在 ACL 2020。本文將圍繞這些內容進行詳細的闡述。
低資源小樣本是普遍存在的問題
對話機器人在各行業落地的過程中,無論是在冷啟動場景,還是在規模化推廣的場景,都面臨小樣本的問題。
1.1 冷啟動場景的小樣本問題
統計 POC 環境下的 45 個對話機器人,總共 711 個意圖,所有意圖的訓練樣本平均只有 5.8 條,是個典型的小樣本問題。
1.2 規模化場景的小樣本問題
當對話機器人的解決方案成熟後,就可以在同行業同場景中進行規模化推廣。在規模化推廣過程中,客戶還需要針對自己的場景進行個性化的定製,這個過程中新增的大量意圖,訓練樣本數量也都較少。比如,在浙江政務 11 地市的 12345 熱線機器人進行規模化推廣時,會在新的地市出現大量內建意圖之外的新意圖,其中 42% 的意圖的訓練樣本數少於 10 條。
▲ 圖1 規模化推廣中每個新場景都會定製個性化的小樣本意圖
利用Few-Shot Learning解決小樣本學習問題
人類非常擅長透過極少量的樣本識別一個新物體,比如小孩子只需要書中的一些圖片就可以認識什麼是“斑馬”,什麼是“犀牛”。在人類的快速學習能力的啟發下,研究人員希望機器學習模型也具備這種能力,對於新的類別,只需要少量的樣本就能快速學習,這就是 Few-shot learning 要解決的問題。
小樣本學習的的目標是模型在大量類別中學會透過少量資料正確地分類後,對於新的類別,只需要少量的樣本就能快速學習。如圖 2 所示,形式化來說,few-shot learning 的訓練集中包含了大量的類別,每個類別中有少量樣本。
在訓練階段,會在訓練集中隨機抽取 C 個類別,每個類別 K 個樣本(總共個 CxK
資料)構建一個 meta-task,作為模型的支撐集(Support set)輸入;再從這 C 個類中抽取一批樣本作為模型的詢問集(Query set)。即要求模型從 CxK 個資料中學會如何區分這 C 個類別,這樣的任務被稱為 C-way K-shot 問題。
模型訓練的過程中在每次迭代時把支撐集送入模型,並最佳化模型在詢問集上產生的損失函式,這種訓練方式一般稱為 Episode-based meta-training。值得注意的是這種訓練機制使得模型很難過擬合,假設我們訓練集中包含 159 個類,可以產生 個不同的 5-way 任務。
▲ 圖2 Few-shot Learning學習機制
現有的 few-shot learning 模型大致可分為三類,如圖 3 所示: Mode Based,Metric Based 和 Optimization Based。其中 Model Based 旨在透過模型結構的設計快速在少量樣本上更新引數,直接建立輸入 x 和預測值 P 的應設函式;Metric Based 方法透過度量 batch 集中的樣本和 support 集中樣本的距離,藉助最近鄰的思想完成分類;Optimization Based 方法認為普通的梯度下降方法難以在 few-shot 場景下擬合,因此透過調整最佳化方法來完成小樣本分類的任務。具體內容可以參考我們之前的小樣本學習綜述。
▲ 圖3 Few-shot Learning的三種學習正規化
Few-Shot Learning存在的挑戰
小樣本學習從研究到產生實際的應用價值還存在兩個重大挑戰:一是從樣本級別的表示中歸納出類級別的表示,因為小樣本學習的方法不會在支撐集上 finetune 模型,當增大支撐集的規模時,因為樣本數量帶來的增長往往又會被樣本級別的噪音所抵消。因此,忽略掉和分類無關的細節,從樣本級別多種多樣的語言表述之中總結出類別的語義表示,對於小樣本學習任務時十分重要的。
第二個挑戰來自於小樣本學習的 meta learning 學習機制,在成千上萬的元學習任務之間切換的過程中往往會產生災難性遺忘的問題,有一些工作嘗試使用記憶機制來解決,但是現有的記憶機制是一種靜態記憶,所有的引數在訓練完成後就不再更新,這對於 unseen 類別的泛化是十分受限的。
在我們的工作中針對上述兩個挑戰分別提出歸納網路(EMNLP 2019)和動態記憶歸納網路(ACL 2020),並介紹在智慧客服場景的落地應用情況。
讓機器像人一樣從小樣本中學習 – 歸納機制
在自然語言中,由於每個人的語言習慣不同,同一個類別的不同表述往往有很多種,如果僅僅是簡單加和或平均來作為類別的表示,這些與分類無關的干擾資訊就會累加,影響最終的效果,因此我們的工作中顯式建模了從樣本表示到類別表示這一能力。
如圖 4 所示,歸納網路的模型基於 Encoder-Induction-Relation 的三級框架,其中 Encoder 模組使用基於自注意力的 Bi-LSTM,Induction 模組使用動態路由演算法,Relation 模組使用神經張量網路。
▲ 圖4 Induction Network
Encoder 模組
本工作中使用 Bi-LSTM self-attention 建模句子級別的語義,輸入句子的詞向量矩陣,經編碼得到句子級的語義表示。
Induction 模組
將支撐集中每個樣本編碼為樣本向量以後,Induction 模組將其歸納為類向量表示:
這一過程中我們將支撐集中的樣本向量視為輸入膠囊,經過一層 dynamic routing 變換後,輸出膠囊視為每個類的語義特徵表示。
首先,是對所有樣本做一次矩陣轉換,意味著將樣本級的語義空間轉換到類別級的語義空間,在此過程中我們對支撐集中所有的樣本向量使用同一個轉換矩陣,如此對於任意規模的支撐集都能進行處理,也就意味著我們的模型可以應對 any-way any-shot 的場景。
然後,透過 dynamic routing 的方式過濾無關資訊,提取類別特徵。在每次 dynamic routing 的迭代中,我們動態的調整上下兩層之間的連線係數並確保其加和為 1。
其中 為連線係數的邏輯值,在第一次迭代時初始化為 0。對於給定的樣本預測向量,每個候選類向量是 的加權求和。
然後使用一個非線性的 squash 函式來保證每個類向量的模長不超過 1。每次迭代的最後一步是透過“routing by agreement”的方式來調節連線強度,如果產生的類候選向量和某樣本預測向量之間有較大的點乘結果,則增大他們之間的連線強度,否則減小之。
透過這種動態路由的方式建模樣本向量到類別向量的對映過程,能夠有效過濾與分類無關的干擾資訊,得到類別特徵,詳情見演算法 2。
Relation 模組
我們透過 Induction 模組得到支撐集中每個類別的類向量表示,透過 Encoder 模組得到 Batch set 中每個 query 的 query 向量,接下來要做到就是衡量二者之間的相關性。Relation 模組是典型的 neural tensor layer,首先透過三維 tensor 建模每個類向量和 query 向量對之間的互動關係:
目標函式
我們使用最小平方損失訓練模型,將關係打分迴歸至真實標籤:匹配的類和 query 對之間的打分趨向於 1 而不匹配的打分趨向於 0。在每個 episode 中,給定支撐集 S 和 Query 集 ,損失函式定義如下:
訓練完成之後,我們的模型在識別全新的類別時不需要任何 finetune,因為在 meta 訓練階段已經賦予了模型足夠的泛化能力,而且會隨著模型的迭代不斷累加。
實驗與分析
實驗設定
我們基於 ARSC 和 ODIC 資料集實驗,ARSC 資料集由 Yu 等人在 NAACL 2018 提出,取自亞馬遜多領域情感分類資料,該資料集包含 23 種亞馬遜商品的評論資料,對於每一種商品,構建三個二分類任務,將其評論按分數分為 5、4、 2 三檔,每一檔視為一個二分類任務,則產生 23*3=69 個 task,然後取其中 12 個task(4*3)作為測試集,其餘 57 個 task 作為訓練集。
ODIC 資料集來自阿里巴巴對話工廠平臺的線上日誌,使用者會向平臺提交多種不同的對話任務,和多種不同的意圖,但是每種意圖只有極少數的標註資料,這形成了一個典型的 few-shot learning 任務,該資料集包含 216 個意圖,其中 159 個用於訓練,57 個用於測試。
實驗結果
在 ARSC 和 ODIC 資料集上實驗結果如表 1 和表 2 所示。由表 1 可知,我們提出的 Induction Networks 比 ROBUSTTC-FSL 正確率高出 3%,他們是這個資料上之前的 state-of-the-art。這是因為 ROBUSTTC-FSL 試圖在樣本層面構造一個足夠魯棒的度量方法,所以將多種度量方式進行組合,這種方法無法擺脫同一個類別中不同表述所產生的干擾。
▲ 表1 ARSC實驗結果
在 ODIC 資料集上,我們提出的 Induction Networks 模型在四個不同的實驗設定中都取得了最好的效果,透過表 1 可以看到,在 Encoder 使用相同結構的情況下,我們的模型透過建模 class 級別的歸納能力和更復雜的距離度量方式,取得了最好的結果,進一步的,我們透過比較不同的 Induction 方式,最終選取了 Dynamic Routing 的方式來構建樣本級到 class 級的歸納表示能力。
▲ 表2 ODIC實驗結果
實驗分析
在 5-way 10-shot 場景下,我們用 t-SNE 降維並視覺化經過 transformation 轉置矩陣前後支撐集樣本的變化,如圖所示,可以發現經過轉置矩陣之後的支撐集樣本向量可分性明顯變好。這也證明了矩陣轉置過程對於轉換樣本特徵到類別特徵的有效性。
▲ 圖5 視覺化分析
在本工作中,我們提出了 Induction Network 來解決小樣本文字分類的問題。我們的模型透過重構支撐集樣本的層次化語義表示,動態歸納出類別的特徵表示來緩解小樣本學習樣本級別的噪音問題。我們將動態路由演算法和 meta learning 的框架結合,動態路由的機制使我們的模型能夠對新的類別保持良好的泛化性。
實驗結果表明我們的模型在不同的小樣本分類資料集上都超過了當時的 state-of-the-art 模型。在下一步的工作中我們繼續探尋將監督學習和 meta learning 相結合,構建增量的小樣本學習模型。
讓機器像人一樣從小樣本中學習 – 動態記憶機制
在上一篇工作中我們提出了歸納機制來建模樣本級別到類級別的表示能力,在本工作中,我們進一步提出將歸納機制和類比機制融合,透過平臺已經積累的大量意圖作為記憶,從而加速對新意圖的學習。
小樣本學習的一個重要挑戰是從支撐集中歸納出類級別的語義表示,在這個過程中經常由於在不同的 meta task 間切換而丟失關鍵資訊。有一種思路是使用一個記憶模組來儲存模型的學習經歷,比如從監督學習階段學到的內容發現一些對識別新類別有幫助的資訊,這一類方法也達到了了目前的 STOA。
但是,現有方法一般都是使用靜態記憶機制,在推理階段,模型需要適應新類別的時候,模型的泛化能力就會受到靜態引數的限制。另一個重要挑戰是由各種各樣的語言學特徵帶來的樣本級別的多樣性問題,這導致為某個類別找一個固定的類中心(原型)是非常困難的,最近的一些研究工作表明,query 感知的方法可以緩解該類問題。
在本工作中,我們提出了動態記憶歸納網路(DMIN)來進一步解決上述問題,透過模擬人類的類比能力,DMIN 使用動態記憶機制有效利用不同階段的學習經歷來提升小樣本學習的能力。除此之外,我們透過模擬人類的歸納能力,使用 query 資訊來建模動態歸納過程,以此篩選出支撐集向量中和當前 query 更接近的成分,對口語場景下的語言多樣性表達有更好的泛化能力。在中英文場景小樣本分類任務資料集上,均取得了 STOA 的結果,該工作已被收錄至 ACL2020。
5.1 模型
5.1.1 整體結構
DMIN 的模型是基於兩階段的訓練框架,如圖所示,綠色表示監督學習階段,紅色表示 meta-learning 階段。在監督學習階段我們選出訓練集類別的一個子集作為 base set,共有 個類別作為 base class,該階段會 finetune 預訓練編碼器並訓練一個相似度分類器。
Meta learning 階段使用 episode-based meta training, 訓練集中隨機抽取 C 個類別,每個類別 K 個樣本(總共 C×K 個資料)構建一個 meta-task,作為模型的支撐集(Support set)輸入;再從這C個類中抽取一批樣本作為模型的預測物件(Query set 或者 Batch set)。即要求模型從 C×K 個資料中學會如何區分這 C 個類別,這樣的任務被稱為 C-way K-shot 問題。
訓練過程中,每輪(episode)都會取樣得到不同 meta-task 的,即包含了不同的類別組合,這種機制使得模型學會不同 meta-task 中的共性部分,比如,如何提取重要特徵及比較樣本相似等,忘掉 meta-task 中領域相關部分。透過這種學習機制學到的模型,在面對新的未見過的 meta-task 時,也能較好地進行分類。
▲ 圖6 DMIN模型結構
5.1.2 預訓練編碼器
我們希望小樣本學習的訓練可以從最新的預訓練語言模型中受益,我們使用 Google BERT-base 模型作為句子編碼器,BERT 模型是一個多層的雙向注意力機制的 Transformer,在句首插入一個特殊字元 [CLS],句尾插入 [SEP],我們使用 [CLS] 位置的 embedding 向量作為整個句子的表示,預訓練的 BERT encoder 提供了一個強大的上下文相關的句子表示,對於小樣本學習的任務具有很好的適用性。
監督學習階段首先在所有訓練資料中採出一個 base set,然後基於 bert encoder 和 cosine 距離分類器訓練監督學習引數,如此最後一層的引數 可以作為每個 base 類的特徵表示,在 meta learning 階段,我們將 作為一個基礎的記憶模組,並且繼續 finetune 對應的引數以更新記憶模組。
5.1.3 動態記憶模組
changchun/
在 meta learning 階段,為了有效利用上一階段的學習經歷,我們基於監督學習的知識設計了一個動態記憶路由演算法(DMR),和傳統的靜態記憶機制不同的是,DMR 使用動態路由機制賦予了 memory 過程更好的靈活性,從而能夠使用在每個 meta task 中不斷變化的支撐集,路由結構即使是在訓練結束之後,也可以動態的調整不同成分之間的連線係數,這對於小樣本學習的泛化性有了很好的保障。
Dynamic memory routing 定義如下:
▲ 圖7 DMR模組示意
在動態記憶模組中,我們使用監督學習階段學到的引數 為 Memory,動態調整樣本向量 ,這一過程可以理解為基於已經掌握的知識,透過類比快速學習新的概念和知識:
5.1.4 Query增強的歸納模組
當樣本向量經過了 DMM 模組的調整,query 向量也經過了預訓練語言模型的編碼,我們則構建一個 query 指導的歸納模組 QIM,目的在於從支撐集中篩選出和當前 query 更為相關的成分。
因為動態路由機制可以透過自動調整不同成分之間的連線係數來幫助增強相關的 query 和樣本向量,懲罰不相關的成分,因此 QIM 複用了 DMR 的過程,將調整後的樣本向量視為 memory,進而透過篩選和 query 更相關的成分來歸納出類級別的向量表示。
5.1.5 相似度分類器
在最後的分類階段,我們將新類別的類別向量和 query 向量一起送入監督學習階段提到的分類器,並得到對應的類別打分,傳統的分類器在這一階段一般是使用點乘的方式來獲得打分,然後透過 softmax 歸一化,但是這種分類器不發適用於小樣本學習中面臨的全新的類別,在我們的工作中,我們使用 cosine 相似度來計算這一分數。
透過這種方式訓練的 base 分類器,屬於同一個類的特徵向量必然會和對應的分類引數特別接近,所以最後的分類引數 W 就可以做為 base 類的類別特徵,進而做為 meta learning 的記憶模組。
在 meta learning 階段,我們將類別向量和 query 向量一起輸入該分類器,得到新類別的分類打分:
5.2 實驗與分析
5.2.1 實驗設定
我們在 miniRCV1 和 ODIC 兩個資料集上進行實驗,在測試階段,分別在兩個測試集上進行 100 次和 300 次的元學習任務迭代,每次迭代中,在 1-shot 和 5-shot 場景下,為每個類別選取 10 個樣本進行測試。
5.2.2 實驗結果
在兩個資料集上的實驗結果分別如 Table1 和 Table 2 所示,我們可以看到 DMIN 始終優於所有現有模型,並且在兩個資料集上均獲得了最新的 STOA。在單尾配對 t 檢驗下,DMIN 與所有其他模型之間的顯著性差異在 95% 左右。
5.2.3 實驗分析
圖 8 顯式了我們的視覺化分析,對於同一支撐集,可以發現其在 DMM 模組之後的可分性有了顯著的提高,這也從側面說明透過動態記憶模組引入監督學習資訊能夠編碼出更加符合類別資訊的語義特徵,從而提升小樣本分類的效果。
▲ 圖8 DMM模組分析
我們在 ODIC 資料集上變化監督學習階段 base 類別的數量,然後觀察其對小樣本學習結果的影響,圖 9 可以發現當 base 類別從 30 增長到 100 的時候,由於在監督學習階段學到了更強的文字 embedding 特徵,最終結果是隨著 base 類的數量而提升的。但是在 base 類為 120 的時候出現下降,這是由於 unseen 類別的佔比太低的時候,模型整體對 unseen 類別的識別能力也會受到影響。
▲ 圖9 Base Class 分析
5.3 結論
在本工作中,我們針對小樣本文字分類問題提出了動態記憶歸納演算法,該網路基於動態路由機制和外部的記憶模組進行互動,使用記憶模組跟蹤過去的學習經歷,使用動態路由機制快速適應支撐集中新的類別。
該模型在 miniRCV1 和 ODIC 資料集上獲得了最新的 SOTA 結果。由於動態記憶可能是一種比我們在這裡進行過的小樣本學習實驗更通用的學習機制,因此我們在對話領域的其他任務上也會繼續探索該模型的使用。
業務應用
筆者所在的達摩院 Conversational AI 團隊打造了一個智慧對話開發平臺——Dialog Studio(DS),以賦能第三方開發者來開發各自業務場景中的任務型對話,目前已經在阿里雲智慧客服(即雲小蜜)、釘釘、阿里集團多個 BU、淘寶天貓商家以及 Lazada 東南亞 6 國得到了大規模應用。
經過兩年多的積累,當前我們 Dialog Studio 對話開發平臺已經積累數萬級別的意圖,在將 Few-shot Learning 落地時,我們使用用平臺積累的萬級高質量意圖訓練行業元模型,而後再用具體的機器人配置進行 Adapt,構建機器人的專屬 Few-shot Learning 模型。
相比無監督方法,我們的 Few-Shot Learning 意圖識別模型將意圖理解冷啟動效果提升 10% 以上,目前已在集團內、公有云、私有云等各環境全量上線,成為阿里雲智慧客服機器人的標配。
團隊招聘
阿里巴巴達摩院 Conversational AI 團隊歡迎大家加入,一起圍繞深層語言理解、多輪對話管理、Table Semantic Parsing、KBQA、多模態對話、大規模對話預訓練模型等方向進行研究和實踐。目前招聘職位包括:
【1】研究型實習生(Research intern):2021 年之後畢業的博士/碩士,有頂會論文發表經驗者優先;
【2】校招:2021 年畢業的優秀博士/碩士;
【3】社招:自然語言處理方向 P7/P8/P9 等演算法專家;
參考文獻
[1] Zi-Yi Dou, Keyi Yu, and Antonios Anastasopoulos.2019. Investigating meta-learning algorithms for low-resource natural language understanding tasks. In Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Lan-guage Processing (EMNLP-IJCNLP), pages 1192–1197.
[2] Hu Z, Chen T, Chang K W, et al. Few-Shot Representation Learning for Out-Of-Vocabulary Words[J]. arXiv preprint arXiv:1907.00505, 2019.
[3] Gu J, Wang Y, Chen Y, et al. Meta-Learning for Low-Resource Neural Machine Translation[C]//Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing. 2018: 3622-3631.
[4] Gidaris S, Komodakis N. Dynamic few-shot visual learning without forgetting[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 4367-4375.
[5] Geng R, Li B, Li Y, et al. Induction Networks for Few-Shot Text Classification[C]//Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP). 2019: 3895-3904.
[6] Sun Q, Liu Y, Chua T S, et al. Meta-transfer learning for few-shot learning[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2019: 403-412.
[7] Qi H, Brown M, Lowe D G. Low-shot learning with imprinted weights[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 5822-5830.
[8] Wu J, Xiong W, Wang W Y. Learning to Learn and Predict: A Meta-Learning Approach for Multi-Label Classification[C]//Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP). 2019: 4345-4355.
[9] Yang Z, Zhang J, Meng F, et al. Enhancing Context Modeling with a Query-Guided Capsule Network for Document-level Translation[C]//Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP). 2019: 1527-1537.
[10] Ye Z X, Ling Z H. Multi-Level Matching and Aggregation Network for Few-Shot Relation Classification[C]//Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. 2019: 2872-2881.
[11] Dou Z Y, Yu K, Anastasopoulos A. Investigating Meta-Learning Algorithms for Low-Resource Natural Language Understanding Tasks[C]//Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP). 2019: 1192-1197.
[12] Chen M, Zhang W, Zhang W, et al. Meta Relational Learning for Few-Shot Link Prediction in Knowledge Graphs[C]//Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP). 2019: 4208-4217.
[13] Allen K, Shelhamer E, Shin H, et al. Infinite Mixture Prototypes for Few-Shot Learning[J].
[14] Cai Q, Pan Y, Yao T, et al. Memory matching networks for one-shot image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 4080-4088.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30239065/viewspace-2750653/,如需轉載,請註明出處,否則將追究法律責任。