天天看點

歸納+記憶:讓機器像人一樣從小樣本中學習

近年來,對話式AI(Conversational AI)無論在學術界還是在工業界都在迅猛發展,背後的核心驅動力在于,人機對話在各行各業的實際場景中存在着廣泛的需求,并且目前的技術進展已經能夠大規模落地應用。以筆者所在的達摩院Conversational AI團隊為例,過去幾年,通過阿裡雲智能客服(即雲小蜜)産品矩陣,将人機對話在政務、銀行、保險、醫療、教育、交通、水利、電力等衆多行業進行大規模應用,更在2020年初疫情爆發初期,打造了全國最大的疫情外呼機器人平台,幫助27個省撥打了1800多萬通電話,協助政府從業人員進行疫情的摸排防控。

在對話式AI大規模落地應用的過程中,面臨衆多技術難題,其中一個是低資源小樣本的問題。在有大量标注資料的場景,今天的深度學習模型已經能夠将問題的解決的比較好了,但在是标注資料很小的場景中,怎麼讓機器進行學習呢?面對這個難題,過去兩年,我們團隊從人類的小樣本學習機制入手進行思考和研究:人類之是以能夠從很小的樣本中就能進行很好的學習,主要在于兩個能力,一個是歸納(induction)能力,即能夠從個例中抽象出通用規則,基于此我們提出了歸納網絡(Induction Network),已發表在EMNLP2019;另一個是記憶(memory)能力,即能夠将學過的東西記下來并在需要時進行類比,對此我們提出了動态記憶網絡(Dynamic Memory),已發表在ACL2020。本文将圍繞這些内容進行詳細的闡述。

一、 低資源小樣本是普遍存在的問題

對話機器人在各行業落地的過程中,無論是在冷啟動場景,還是在規模化推廣的場景,都面臨小樣本的問題。

(1)冷啟動場景的小樣本問題

統計POC環境下的45個對話機器人,總共711個意圖,所有意圖的訓練樣本平均隻有5.8條,是個典型的小樣本問題。

歸納+記憶:讓機器像人一樣從小樣本中學習

(2)規模化場景的小樣本問題

當對話機器人的解決方案成熟後,就可以在同行業同場景中進行規模化推廣。在規模化推廣過程中,客戶還需要針對自己的場景進行個性化的定制,這個過程中新增的大量意圖,訓練樣本數量也都較少。比如,在浙江政務11地市的12345熱線機器人進行規模化推廣時,會在新的地市出現大量内置意圖之外的新意圖,其中42%的意圖的訓練樣本數少于10條。

歸納+記憶:讓機器像人一樣從小樣本中學習

圖1 規模化推廣中每個新場景都會定制個性化的小樣本意圖

二、利用Few-Shot Learning解決小樣本學習問題

人類非常擅長通過極少量的樣本識别一個新物體,比如小孩子隻需要書中的一些圖檔就可以認識什麼是“斑馬”,什麼是“犀牛”。在人類的快速學習能力的啟發下,研究人員希望機器學習模型也具備這種能力,對于新的類别,隻需要少量的樣本就能快速學習,這就是Few-shot learning 要解決的問題。

小樣本學習的的目标是模型在大量類别中學會通過少量資料正确地分類後,對于新的類别,隻需要少量的樣本就能快速學習。如圖2所示,形式化來說,few-shot learning的訓練集中包含了大量的類别,每個類别中有少量樣本。在訓練階段,會在訓練集中随機抽取C個類别,每個類别K個樣本(總共C×K個資料)建構一個meta-task,作為模型的支撐集(Support set)輸入;再從這C個類中抽取一批樣本作為模型的詢問集(Query set)。即要求模型從C×K個資料中學會如何區分這C個類别,這樣的任務被稱為C-way K-shot問題。 模型訓練的過程中在每次疊代時把支撐集送入模型,并優化模型在詢問集上産生的損失函數,這種訓練方式一般稱為Episode-based meta-training。

歸納+記憶:讓機器像人一樣從小樣本中學習

圖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。其中b_i 為連接配接系數的邏輯值,在第一次疊代時初始化為0。對于給定的樣本預測向量,每個候選類向量是 e ̂_ij^s 的權重求和。然後使用一個非線性的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集B={(x_q,yq )}(q=1)^n,損失函數定義如下:

歸納+記憶:讓機器像人一樣從小樣本中學習

訓練完成之後,我們的模型在識别全新的類别時不需要任何finetune,因為在meta 訓練階段已經賦予了模型足夠的泛化能力,而且會随着模型的疊代不斷累加。

實驗與分析

實驗設定

我們基于ARSC和ODIC資料集實驗,ARSC資料集由Yu 等人在NAACL 2018提出,取自亞馬遜多領域情感分類資料,該資料集包含23種亞馬遜商品的評論資料,對于每一種商品,建構三個二分類任務,将其評論按分數分為5、4、 2三檔,每一檔視為一個二分類任務,則産生233=69個task,然後取其中12個task(43)作為測試集,其餘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。

模型

整體結構

DMIN的模型是基于兩階段的訓練架構,如圖所示,綠色表示監督學習階段,紅色表示meta-learning階段。在監督學習階段我們選出訓練集類别的一個子集作為base set,共有 C_base 個類别作為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模型結構

預訓練編碼器

我們希望小樣本學習的訓練可以從最新的預訓練語言模型中受益,我們使用Google BERT-base模型作為句子編碼器,BERT模型是一個多層的雙向注意力機制的Transformer,在句首插入一個特殊字元[CLS],句尾插入[SEP],我們使用[CLS]位置的embedding向量作為整個句子的表示,預訓練的BERT encoder提供了一個強大的上下文相關的句子表示,對于小樣本學習的任務具有很好的适用性。

監督學習階段首先在所有訓練資料中采出一個base set,然後基于bert encoder和cosine距離分類器訓練監督學習參數,如此最後一層的參數W_base可以作為每個base類的特征表示,在meta learning階段,我們将W_base作為一個基礎的記憶子產品,并且繼續finetune對應的參數以更新記憶子產品。

動态記憶子產品

在meta learning階段,為了有效利用上一階段的學習經曆,我們基于監督學習的知識設計了一個動态記憶路由算法(DMR),和傳統的靜态記憶機制不同的是,DMR使用動态路由機制賦予了memory過程更好的靈活性,進而能夠使用在每個meta task中不斷變化的支撐集,路由結構即使是在訓練結束之後,也可以動态的調整不同成分之間的連接配接系數,這對于小樣本學習的泛化性有了很好的保障。

Dynamic memory routing 定義如下:

歸納+記憶:讓機器像人一樣從小樣本中學習
歸納+記憶:讓機器像人一樣從小樣本中學習

圖7 DMR子產品示意

在動态記憶子產品中,我們使用監督學習階段學到的參數Wbase為Memory,動态調整樣本向量e(c,s),這一過程可以了解為基于已經掌握的知識,通過類比快速學習新的概念和知識:

歸納+記憶:讓機器像人一樣從小樣本中學習

Query增強的歸納子產品

當樣本向量經過了DMM子產品的調整,query向量也經過了預訓練語言模型的編碼,我們則建構一個query 指導的歸納子產品QIM,目的在于從支撐集中篩選出和目前query更為相關的成分。因為動态路由機制可以通過自動調整不同成分之間的連接配接系數來幫助增強相關的query和樣本向量,懲罰不相關的成分,是以QIM複用了DMR的過程,将調整後的樣本向量視為memory,進而通過篩選和query更相關的成分來歸納出類級别的向量表示。

歸納+記憶:讓機器像人一樣從小樣本中學習

相似度分類器

在最後的分類階段,我們将新類别的類别向量和query向量一起送入監督學習階段提到的分類器,并得到對應的類别打分,傳統的分類器在這一階段一般是使用點乘的方式來獲得打分,然後通過softmax歸一化,但是這種分類器不發适用于小樣本學習中面臨的全新的類别,在我們的工作中,我們使用cosine 相似度來計算這一分數。

歸納+記憶:讓機器像人一樣從小樣本中學習

通過這種方式訓練的base 分類器,屬于同一個類的特征向量必然會和對應的分類參數特别接近,是以最後的分類參數W就可以做為base類的類别特征,進而做為meta learning的記憶子產品。

在meta learning階段,我們将類别向量和query向量一起輸入該分類器,得到新類别的分類打分。

我們在miniRCV1和ODIC兩個資料集上進行實驗,在測試階段,分别在兩個測試集上進行100次和300次的元學習任務疊代,每次疊代中,在1-shot和5-shot場景下,為每個類别選取10個樣本進行測試。

在兩個資料集上的實驗結果分别如Table1 和 Table 2所示,我們可以看到DMIN始終優于所有現有模型,并且在兩個資料集上均獲得了最新的STOA。在單尾配對t檢驗下,DMIN與所有其他模型之間的顯著性差異在95%左右。

歸納+記憶:讓機器像人一樣從小樣本中學習

圖8顯示了我們的可視化分析,對于同一支撐集,可以發現其在DMM子產品之後的可分性有了顯著的提高,這也從側面說明通過動态記憶子產品引入監督學習資訊能夠編碼出更加符合類别資訊的語義特征,進而提升小樣本分類的效果。

歸納+記憶:讓機器像人一樣從小樣本中學習

圖 8 DMM子產品分析

我們在ODIC資料集上變化監督學習階段base類别的數量,然後觀察其對小樣本學習結果的影響,圖9可以發現當base類别從30增長到100的時候,由于在監督學習階段學到了更強的文本embedding特征,最終結果是随着base類的數量而提升的。但是在base類為120的時候出現下降,這是由于unseen 類别的占比太低的時候,模型整體對unseen類别的識别能力也會受到影響。

歸納+記憶:讓機器像人一樣從小樣本中學習

圖 9 Base Class 分析

結論

在本工作中,我們針對小樣本文本分類問題提出了動态記憶歸納算法,該網絡基于動态路由機制和外部的記憶子產品進行互動,使用記憶子產品跟蹤過去的學習經曆,使用動态路由機制快速适應支撐集中新的類别。該模型在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等算法專家;

内推郵箱: [email protected]

參考文獻

  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.

繼續閱讀