摘要:面對這類問題,有一個專門的機器學習分支來進行研究和解決。如圖所示,分別是三個類別的均值中心稱,將測試樣本進行后,與這個中心進行距離計算,從而獲得的類別。
分類非常常見,但如果每個類只有幾個標注樣本,怎么辦呢?
筆者所在的阿里巴巴小蜜北京團隊就面臨這個挑戰(zhàn)。我們打造了一個智能對話開發(fā)平臺——Dialog Studio,以賦能第三方開發(fā)者來開發(fā)各自業(yè)務場景中的任務型對話,其中一個重要功能就是對意圖進行分類。大量平臺用戶在創(chuàng)建一個新對話任務時,并沒有大量標注數據,每個意圖往往只有幾個或十幾個樣本。?
面對這類問題,有一個專門的機器學習分支——Few-shot Learning 來進行研究和解決。過去一年,我們對 Few-shot Learning 進行了系統的梳理和研究,將 Few-shot Learning 和 Capsule Network 融合,提出了 Induction Network,在文本分類上做到了新的 state-of-the-art。
創(chuàng)新總是基于對已有成果的梳理和思考,這篇綜述算是一個小結,寫出來和大家一起分享,一起討論。?
本文先介紹 Few-shot Learning 定義;由于最近幾年 Few-shot Learning 在圖像領域的進展領先于在自然語言處理領域,所以第二部分結合其在圖像處理領域的研究進展,詳細介紹 Few-shot Learning 的三類典型方法及每種方法的代表性模型;接下來介紹在自然語言處理領域的研究進展以及我們對 metric-based 的方法進行系統總結后提出的 few-shot learning framework。
問題定義
人類非常擅長通過極少量的樣本識別一個新物體,比如小孩子只需要書中的一些圖片就可以認識什么是“斑馬”,什么是“犀牛”。在人類的快速學習能力的啟發(fā)下,研究人員希望機器學習模型在學習了一定類別的大量數據后,對于新的類別,只需要少量的樣本就能快速學習,這就是 Few-shot Learning 要解決的問題。?
Few-shot Learning 是 Meta Learning 在監(jiān)督學習領域的應用。Meta Learning,又稱為 learning to learn,在 meta training 階段將數據集分解為不同的 meta task,去學習類別變化的情況下模型的泛化能力,在 meta testing 階段,面對全新的類別,不需要變動已有的模型,就可以完成分類。?
形式化來說,few-shot 的訓練集中包含了很多的類別,每個類別中有多個樣本。在訓練階段,會在訓練集中隨機抽取 C 個類別,每個類別 K 個樣本(總共 CK 個數據),構建一個 meta-task,作為模型的支撐集(support set)輸入;再從這 C 個類中剩余的數據中抽取一批(batch)樣本作為模型的預測對象(batch set)。即要求模型從 C*K 個數據中學會如何區(qū)分這 C 個類別,這樣的任務被稱為 C-way K-shot 問題。?
訓練過程中,每次訓練(episode)都會采樣得到不同 meta-task,所以總體來看,訓練包含了不同的類別組合,這種機制使得模型學會不同 meta-task 中的共性部分,比如如何提取重要特征及比較樣本相似等,忘掉 meta-task 中 task 相關部分。通過這種學習機制學到的模型,在面對新的未見過的 meta-task 時,也能較好地進行分類。?
圖 1 展示的是一個 2-way 5-shot 的示例,可以看到 meta training 階段構建了一系列 meta-task 來讓模型學習如何根據 support set 預測 batch set 中的樣本的標簽;meta testing 階段的輸入數據的形式與訓練階段一致(2-way 5-shot),但是會在全新的類別上構建 support set 和 batch。
圖1:Few-shot Learning示例
在圖像領域的研究現狀
早期的 Few-shot Learning 算法研究多集中在圖像領域,如圖 2 所示,Few-shot Learning 模型大致可分為三類:Mode Based,Metric Based 和 Optimization Based。
圖2:Few-shot Learning模型分類
其中 Model Based 方法旨在通過模型結構的設計快速在少量樣本上更新參數,直接建立輸入 x 和預測值 P 的映射函數;Metric Based 方法通過度量 batch 集中的樣本和 support 集中樣本的距離,借助最近鄰的思想完成分類;Optimization Based 方法認為普通的梯度下降方法難以在 few-shot 場景下擬合,因此通過調整優(yōu)化方法來完成小樣本分類的任務。
Model Based方法
Santoro 等人 [3] 提出使用記憶增強的方法來解決 Few-shot Learning 任務?;谟洃浀纳窠浘W絡方法早在 2001 年被證明可以用于 meta-learning。他們通過權重更新來調節(jié) bias,并且通過學習將表達快速緩存到記憶中來調節(jié)輸出。
然而,利用循環(huán)神經網絡的內部記憶單元無法擴展到需要對大量新信息進行編碼的新任務上。因此,需要讓存儲在記憶中的表達既要穩(wěn)定又要是元素粒度訪問的,前者是說當需要時就能可靠地訪問,后者是說可選擇性地訪問相關的信息;另外,參數數量不能被內存的大小束縛。神經圖靈機(NTMs)和記憶網絡就符合這種必要條件。?
文章基于神經網絡圖靈機(NTMs)的思想,因為 NTMs 能通過外部存儲(external memory)進行短時記憶,并能通過緩慢權值更新來進行長時記憶,NTMs 可以學習將表達存入記憶的策略,并如何用這些表達來進行預測。由此,文章方法可以快速準確地預測那些只出現過一次的數據。
文章基于 LSTM 等 RNN 的模型,將數據看成序列來訓練,在測試時輸入新的類的樣本進行分類。
具體地,在 t 時刻,模型輸入,也就是在當前時刻預測輸入樣本的類別,并在下一時刻給出真實的 label,并且添加了 external memory 存儲上一次的 x 輸入,這使得下一次輸入后進行反向傳播時,可以讓 y (label) 和 x 建立聯系,使得之后的 x 能夠通過外部記憶獲取相關圖像進行比對來實現更好的預測。
圖3:Memory Augmented Model
Meta Network [12] 的快速泛化能力源自其“快速權重”的機制,在訓練過程中產生的梯度被用來作為快速權重的生成。模型包含一個 meta learner 和一個 base learner,meta learner 用于學習 meta task 之間的泛化信息,并使用 memory 機制保存這種信息,base learner 用于快速適應新的 task,并和 meta learner 交互產生預測輸出。
Metric Based方法?
如果在 Few-shot Learning 的任務中去訓練普通的基于 cross-entropy 的神經網絡分類器,那么幾乎肯定是會過擬合,因為神經網絡分類器中有數以萬計的參數需要優(yōu)化。
相反,很多非參數化的方法(最近鄰、K-近鄰、Kmeans)是不需要優(yōu)化參數的,因此可以在 meta-learning 的框架下構造一種可以端到端訓練的 few-shot 分類器。該方法是對樣本間距離分布進行建模,使得同類樣本靠近,異類樣本遠離。下面介紹相關的方法。?
如圖 4 所示,孿生網絡(Siamese Network)[4] 通過有監(jiān)督的方式訓練孿生網絡來學習,然后重用網絡所提取的特征進行 one/few-shot 學習。
圖4:Siamese Network
具體的網絡是一個雙路的神經網絡,訓練時,通過組合的方式構造不同的成對樣本,輸入網絡進行訓練,在最上層通過樣本對的距離判斷他們是否屬于同一個類,并產生對應的概率分布。在預測階段,孿生網絡處理測試樣本和支撐集之間每一個樣本對,最終預測結果為支撐集上概率較高的類別。
相比孿生網絡,匹配網絡(Match Network)[2] 為支撐集和 Batch 集構建不同的編碼器,最終分類器的輸出是支撐集樣本和 query 之間預測值的加權求和。
如圖 5 所示,該文章也是在不改變網絡模型的前提下能對未知類別生成標簽,其主要創(chuàng)新體現在建模過程和訓練過程上。對于建模過程的創(chuàng)新,文章提出了基于 memory 和 attention 的 matching nets,使得可以快速學習。
對于訓練過程的創(chuàng)新,文章基于傳統機器學習的一個原則,即訓練和測試是要在同樣條件下進行的,提出在訓練的時候不斷地讓網絡只看每一類的少量樣本,這將和測試的過程是一致的。
進一步,支撐集樣本 embedding 模型 g 能繼續(xù)優(yōu)化,并且支撐集樣本應該可以用來修改測試樣本的 embedding 模型 f。
這個可以通過如下兩個方面來解決,即:1)基于雙向 LSTM 學習訓練集的 embedding,使得每個支撐樣本的 embedding 是其它訓練樣本的函數;2)基于 attention-LSTM 來對測試樣本 embedding,使得每個 Query 樣本的 embedding 是支撐集 embedding 的函數。文章稱其為 FCE (fully-conditional embedding)。
圖5:Match Network
原型網絡(Prototype Network)[5] 基于這樣的想法:每個類別都存在一個原型表達,該類的原型是 support set 在 embedding 空間中的均值。然后,分類問題變成在 embedding 空間中的最近鄰。
如圖 6 所示,c1、c2、c3 分別是三個類別的均值中心(稱 Prototype),將測試樣本 x 進行 embedding 后,與這 3 個中心進行距離計算,從而獲得 x 的類別。
圖6:Prototype Network
文章采用在 Bregman 散度下的指數族分布的混合密度估計,文章在訓練時采用相對測試時更多的類別數,即訓練時每個 episodes 采用 20 個類(20 way),而測試對在 5 個類(5 way)中進行,其效果相對訓練時也采用 5 way 的提升了 2.5 個百分點。
前面介紹的幾個網絡結構在最終的距離度量上都使用了固定的度量方式,如 cosine,歐式距離等,這種模型結構下所有的學習過程都發(fā)生在樣本的 embedding 階段。
而 Relation Network [6] 認為度量方式也是網絡中非常重要的一環(huán),需要對其進行建模,所以該網絡不滿足單一且固定的距離度量方式,而是訓練一個網絡來學習(例如 CNN)距離的度量方式,在 loss 方面也有所改變,考慮到 relation network 更多的關注 relation score,更像一種回歸,而非 0/1 分類,所以使用了 MSE 取代了 cross-entropy。
圖7:Relation Networks
Optimization Based方法
Ravi 等人 [7] 研究了在少量數據下,基于梯度的優(yōu)化算法失敗的原因,即無法直接用于 meta learning。
首先,這些梯度優(yōu)化算法包括 momentum, adagrad, adadelta, ADAM 等,無法在幾步內完成優(yōu)化,特別是在非凸的問題上,多種超參的選取無法保證收斂的速度。
其次,不同任務分別隨機初始化會影響任務收斂到好的解上。雖然 finetune 這種遷移學習能緩解這個問題,但當新數據相對原始數據偏差比較大時,遷移學習的性能會大大下降。我們需要一個系統的學習通用初始化,使得訓練從一個好的點開始,它和遷移學習不同的是,它能保證該初始化能讓 finetune 從一個好的點開始。?
文章學習的是一個模型參數的更新函數或更新規(guī)則。它不是在多輪的 episodes 學習一個單模型,而是在每個 episode 學習特定的模型。
具體地,學習基于梯度下降的參數更新算法,采用 LSTM 表達 meta learner,用其狀態(tài)表達目標分類器的參數的更新,最終學會如何在新的分類任務上,對分類器網絡(learner)進行初始化和參數更新。這個優(yōu)化算法同時考慮一個任務的短時知識和跨多個任務的長時知識。
文章設定目標為通過少量的迭代步驟捕獲優(yōu)化算法的泛化能力,由此 meta learner 可以訓練讓 learner 在每個任務上收斂到一個好的解。另外,通過捕獲所有任務之前共享的基礎知識,進而更好地初始化 learner。?
以訓練 miniImage 數據集為例,訓練過程中,從訓練集(64 個類,每類 600 個樣本)中隨機采樣 5 個類,每個類 5 個樣本,構成支撐集,去學習 learner;然后從訓練集的樣本(采出的 5 個類,每類剩下的樣本)中采樣構成 Batch 集,集合中每類有 15 個樣本,用來獲得 learner 的 loss,去學習 meta leaner。
測試時的流程一樣,從測試集(16 個類,每類 600 個樣本)中隨機采樣 5 個類,每個類 5 個樣本,構成支撐集 Support Set,去學習 learner;然后從測試集剩余的樣本(采出的 5 個類,每類剩下的樣本)中采樣構成 Batch 集,集合中每類有 15 個樣本,用來獲得 learner 的參數,進而得到預測的類別概率。這兩個過程分別如圖 8 中虛線左側和右側。
圖8:Optimization as a model
meta learner 的目標是在各種不同的學習任務上學出一個模型,使得可以僅用少量的樣本就能解決一些新的學習任務。這種任務的挑戰(zhàn)是模型需要結合之前的經驗和當前新任務的少量樣本信息,并避免在新數據上過擬合。?
Finn [8] 提出的方法使得可以在小量樣本上,用少量的迭代步驟就可以獲得較好的泛化性能,而且模型是容易 fine-tine 的。而且這個方法無需關心模型的形式,也不需要為 meta learning 增加新的參數,直接用梯度下降來訓練 learner。
文章的核心思想是學習模型的初始化參數使得在一步或幾步迭代后在新任務上的精度較大化。它學的不是模型參數的更新函數或是規(guī)則,它不局限于參數的規(guī)模和模型架構(比如用 RNN 或 siamese)。它本質上也是學習一個好的特征使得可以適合很多任務(包括分類、回歸、增強學習),并通過 fine-tune 來獲得好的效果。
文章提出的方法,可以學習任意標準模型的參數,并讓該模型能快速適配。他們認為,一些中間表達更加適合遷移,比如神經網絡的內部特征。因此面向泛化性的表達是有益的。因為我們會基于梯度下降策略在新的任務上進行 finetune,所以目標是學習這樣一個模型,它能對新的任務從之前任務上快速地進行梯度下降,而不會過擬合。事實上,是要找到一些對任務變化敏感的參數,使得當改變梯度方向,小的參數改動也會產生較大的 loss。
在自然語言處理的研究現狀
早期的 Few-shot Learning 算法研究主要集中在小樣本圖像識別的任務上,以 MiniImage 和 Omnigraffle 兩個數據集為代表。
近年來,在自然語言處理領域也開始出現 Few-shot Learning 的數據集和模型,相比于圖像,文本的語義中包含更多的變化和噪聲,我們將在本節(jié)從數據集和模型兩個方面介紹 Few-shot Learning 在自然語言處理領域的進展,以及我們團隊基于對話工廠平臺所做的探索。
數據集
1. FewRel 數據集 [11] 由Han等人在EMNLP 2018提出,是一個小樣本關系分類數據集,包含64種關系用于訓練,16種關系用于驗證和20種關系用于測試,每種關系下包含700個樣本。?
2. ARSC 數據集 [10] 由 Yu 等人在 NAACL 2018 提出,取自亞馬遜多領域情感分類數據,該數據集包含 23 種亞馬遜商品的評論數據,對于每一種商品,構建三個二分類任務,將其評論按分數分為 5、4、 2 三檔,每一檔視為一個二分類任務,則產生 23*3=69 個 task,然后取其中 12 個 task(4*3)作為測試集,其余 57 個 task 作為訓練集。?
3. ODIC 數據集來自阿里巴巴對話工廠平臺的線上日志,用戶會向平臺提交多種不同的對話任務,和多種不同的意圖,但是每種意圖只有極少數的標注數據,這形成了一個典型的 Few-shot Learning 任務,該數據集包含 216 個意圖,其中 159 個用于訓練,57 個用于測試。
主要模型
Gao [9] 等人提出文本與圖像的一大區(qū)別在于其多樣性和噪音更大,因此提出一種基于混合注意力的原型網絡結構,如圖 9 所示,首先使用 instance-level 的 attention 從支撐集中選出和 query 更為貼近的實例,同時降低噪聲實例所帶來的影響。
然后 feature-level 的實例能夠衡量特征空間中的哪些維度對分類更為重要,從而為每種不同的關系都生成相適應的距離度量函數,從而使模型能夠有效處理特征稀疏的問題。
圖9:基于混合注意力的原型網絡
Yu [10] 等人指出在圖像領域的 Few-shot Learning 任務中,比如 Omniglot 和 miniImage 數據集,所有的數據都是從同一個大的數據集采樣而來,也就是說所有的 meta-task 都是來自同一個領域,所以相關性是很強的。
所以之前的 Few-shot Learning 方法只需使用一個 meta model 即可解決剩余的 few-shot 任務。但是在現實場景當中,不同的 meta task 可能來自完全不同的領域,因此使用多帶帶的度量方式不足以衡量所有的 meta task。?
在這種場景下,Yu 提出使用多種度量方式融合來解跨領域的 Few-shot Learning 問題。在訓練階段,meta learner 通過任務聚類選擇和結合多種度量方式來學習目標任務,不同領域的 meta task 首先通過聚類來劃分,因此同一個簇內的 task 可以認為是相關的,然后在該簇中訓練一個深度神經網絡作為度量函數,這種機制保證了只有在同一個簇中的 task 才會共享度量函數。
在測試階段,為每個 test task 使用所有度量函數的線性組合作為任務適應的度量方式。
在對話工廠平臺的研究和應用
我們團隊基于目前 Metric Based 方法,提出了 Encoder-Induction-Relation 的三級框架,如圖 10 所示,Encoder 模塊用于獲取每個樣本的語義表示,可以使用典型的 CNN、LSTM、Transformer 等結構,Induction 模塊用于從支撐集的樣本語義中歸納出類別特征,Relation 模塊用于度量 query 和類別之間的語義關系,進而完成分類。
圖10:Encoder-Induction-Relation三級框架
如表 1 所示,之前的工作往往致力于學習不同的距離度量方式,而忽視了從樣本表示到類表示的建模。而在自然語言當中,由于每個人的語言習慣不同,同一個類別的不同表述往往有很多種,如果僅僅是簡單加和或取平均來作為類別的表示,這些與分類無關的干擾信息就會累加,影響最終的效果。
因此我們的工作顯式的建模了從樣本表示到類表示這一能力,在 ODIC 和 ARSC 兩個數據集上,超過了之前的 state-of-the-art 的模型,實驗結果如表 2 所示。
表1:Metric Based方法對比
表2:ODIC數據集實驗結果
此外,我們在 ODIC 數據集上逐漸增加訓練數據的類別數,如圖 11,在測試集上得到的效果會逐漸提升,這滿足了平臺級的語言理解所需要的可泛化、可持續(xù)學習的需求。
圖11:ODIC數據集變化趨勢
總結
本文從對話工廠平臺的實際問題出發(fā),對小樣本學習方法進行了系統梳理和研究,給出了 Few-shot Learning 的定義,綜述了其在圖像和 NLP 領域的研究現狀。
針對 Metric Based 系列方法,我們提出了統一的 Encode-Induction-Relation 描述框架,介紹了我們團隊在使用 Few-shot Learning 解決平臺級自然語言理解所做的工作,即顯式建模從樣本表示到類表示的歸納能力。
參考文獻
[1] Brenden M. Lake, Ruslan Salakhutdinov, Jason Gross, and Joshua B. Tenenbaum. One shot learning of simple visual concepts. In CogSci, 2011.?
[2] Oriol Vinyals, Charles Blundell, Tim Lillicrap, Daan Wierstra, et al. Matching networks for one shot learning. In Advances in Neural Information Processing Systems, pages 3630–3638, 2016.?
[3] Santoro A, Bartunov S, Botvinick M, et al. One-shot learning with memory-augmented neural networks[J]. arXiv preprint arXiv:1605.06065, 2016.?
[4] Koch, Gregory, Richard Zemel, and Ruslan Salakhutdinov. "Siamese neural networks for one-shot image recognition." ICML Deep Learning Workshop. Vol. 2. 2015.?
[5] Snell, Jake, Kevin Swersky, and Richard Zemel. "Prototypical networks for few-shot learning." Advances in Neural Information Processing Systems. 2017.?
[6] Sung, Flood, et al. "Learning to compare: Relation network for few-shot learning." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018.?
[7] Ravi, Sachin, and Hugo Larochelle. "Optimization as a model for few-shot learning." (2016).?
[8] Finn, Chelsea, Pieter Abbeel, and Sergey Levine. "Model-agnostic meta-learning for fast adaptation of deep networks." Proceedings of the 34th International Conference on Machine Learning-Volume 70. JMLR. org, 2017.?
[9] Gao, Tianyu, et al. "Hybrid Attention-Based Prototypical Networks for Noisy Few-Shot Relation Classification." (2019).?
[10] Yu, Mo, et al. "Diverse few-shot text classification with multiple metrics." arXiv preprint arXiv:1805.07513 (2018).?
[11] Han, Xu, et al. "FewRel: A Large-Scale Supervised Few-Shot Relation Classification Dataset with State-of-the-Art Evaluation." arXiv preprint arXiv:1810.10147 (2018).?
[12] Munkhdalai, Tsendsuren, and Hong Yu. "Meta networks." Proceedings of the 34th International Conference on Machine Learning-Volume 70. JMLR. org, 2017.?
[13] Geng R, Li B, Li Y, et al. Few-Shot Text Classification with Induction Network[J]. arXiv preprint arXiv:1902.10482, 2019.?
[14] https://blog.csdn.net/qq_16234613/article/details/79902085?
[15] https://lilianweng.github.io/lil-log/2018/11/30/meta-learning.html#learner-and-meta-learner
聲明:本文版權歸原作者所有,文章收集于網絡,為傳播信息而發(fā),如有侵權,請聯系小編及時處理,謝謝!歡迎加入本站公開興趣群商業(yè)智能與數據分析群
興趣范圍包括各種讓數據產生價值的辦法,實際應用案例分享與討論,分析工具,ETL工具,數據倉庫,數據挖掘工具,報表系統等全方位知識
QQ群:81035754
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://www.ezyhdfw.cn/yun/4870.html
摘要:導讀前面兩篇我們介紹了技術在宜信應用的背景敏捷技術在宜信業(yè)務中的實踐背景篇,以及應用場景之一敏捷技術在宜信業(yè)務中的實踐智能聊天機器人篇。這就是我們實現的一個實時用戶畫像處理流程。 導讀: 前面兩篇我們介紹了NLP技術在宜信應用的背景《敏捷AI | NLP技術在宜信業(yè)務中的實踐【背景篇】》,以及應用場景之一《敏捷AI | NLP技術在宜信業(yè)務中的實踐【智能聊天機器人篇】》。本篇為另一個場...
摘要:摘要背景深度學習是一種表示學習方法,非常適合用來處理數字病理學中的圖像分析問題。優(yōu)質的注釋樣本是深度學習重要的先決條件,但是處理數字病理學中最大的挑戰(zhàn)就是獲取高質量的注釋樣本。本文使用的深度學習主要由四個模塊組成。 Deep learning for digital pathology image analysis: A comprehensive tutorial with sele...
摘要:折交叉驗證集,每折包含約張訓練圖像和張測試圖像,正樣本邊界負樣本其他負樣本,訓練集中共圖像塊。浸潤性導管癌是乳腺癌中最長出現的亞種。 Deep learning for digital pathology image analysis: A comprehensive tutorial with selected use cases Deep learning for digital ...
摘要:淋巴細胞是白細胞的一個亞種,在免疫系統中很重要?;疾』蛴挟愇锏膮^(qū)域淋巴細胞數量會極大增加,所以通過確認和定量淋巴細胞的密度和位置有助于評估疾病。本節(jié)目標是確定淋巴細胞的中心,是一個檢測任務。常見的假陽性和真實正例見圖。 Deep learning for digital pathology image analysis: A comprehensive tutorial with se...
摘要:三大牛和在深度學習領域的地位無人不知。逐漸地,這些應用使用一種叫深度學習的技術。監(jiān)督學習機器學習中,不論是否是深層,最常見的形式是監(jiān)督學習。 三大牛Yann LeCun、Yoshua Bengio和Geoffrey Hinton在深度學習領域的地位無人不知。為紀念人工智能提出60周年,的《Nature》雜志專門開辟了一個人工智能 + 機器人專題 ,發(fā)表多篇相關論文,其中包括了Yann LeC...
閱讀 1493·2021-09-23 11:21
閱讀 3170·2019-08-30 14:14
閱讀 3246·2019-08-30 13:56
閱讀 4260·2019-08-30 11:20
閱讀 2017·2019-08-29 17:23
閱讀 2834·2019-08-29 16:14
閱讀 1760·2019-08-28 18:18
閱讀 1542·2019-08-26 12:14