閱讀417 返回首頁    go 阿裏雲 go 技術社區[雲棲]


自然語言處理多任務學習目標

更多深度文章,請關注雲計算頻道:https://yq.aliyun.com/cloud

0caad61d90554205f721b2339032d4a56c7aec4d

之前的博文中,我討論了如何利用相關任務提高多任務學習(MTL)模型的性能。在此之前,我們需要了解一下到底什麼是多任務學習。

多任務學習是和單任務學習相對的一種機器學習方法。在機器學習領域,標準的算法理論是一次學習一個任務,而多任務學習是一種聯合學習,多個任務並行學習,結果相互影響。簡單來說,就是同時求解多個問題。例如我們經常探討的“千人千麵”這種個性化問題,就是一種典型的多任務學習問題,它可以同時學習多個用戶的興趣偏好。

多任務學習(MTL)主要是由兩個部分組成:a)用於任務學習的架構、b)訓練相關的輔助任務。而且這兩個方麵仍有很大的改進空間。此外,多任務學習有可能成為從有限數據中訓練更強大的模型的關鍵技術:訓練得到的模型可以執行更廣泛的NLP任務。

在實現這一目標的過程中,我們首先需要更多地了解任務之間的關係,我們可以從中學到什麼,以及如何最有效地結合它們以獲得我們想要的結果。MTL現有的大多數理論主要集中在同類任務上,即分類問題或回歸問題變化的任務,如分類個人MNIST數字。然而,這些問題的解決方案並不適用於自然語言處理(NLP)和計算機視覺,這些我們最常解決的異構問題。

最近有一些實驗研究了不同NLP任務之間的多任務學習是否有效?但是我們仍然不了解哪些研究是有用的。為此,作為靈感,我將概述以下不同NLP多任務學習方法。我將重點關注多任務學習的第二個組成部分,而不是討論一個模型如何進行具體的訓練,因為大多數模型隻在不同層麵上適用。

這篇文章有兩個主要部分:第一部分,我將討論可以使用MTL輔助目標的人工任務。在第二部分,我將重點介紹常見的NLP任務,並討論哪些NLP任務可以幫助更好的解決常見的NLP任務。

1.人工輔助目標(Artificial auxiliary objectives

多任務學習是為了給你的模型添加一個合適的偏差(bias)。它實質上是一種特征工程:不是對特征進行工程設計,而是對優化的輔助任務進行工程設計。與特征工程設計類似,也需要相關領域專業知識,具體如下:

1.1語言建模:語言建模已被證明對許多NLP任務是有益的,並且可以以各種方式並入。眾所周知,word2vec近似於語言建模目標,語言模型已被用於預先訓練MT(機器翻譯)和sequence-to-sequence。類似的上下文語言模型嵌入也被用於許多任務[4]。在這種情況下,我們還可以將語言建模視為與主要任務一起學習的輔助任務。

1.2調節初始狀態RNN神經網絡的初始狀態通常被初始化為零向量。根據Hinton2013演講,我們可以得知這種初始化的方法是有益的。雖然學習狀態比零向量更獨立於序列,但是它也並非完美.Weng(2017),他建議通過對NMT的初始編碼器和解碼器狀態添加適當的偏差,通過訓練來預測句子中的單詞。這個目標本質可以被看作是初始狀態語言建模目標因此可能有助於其他任務。同樣,我們可以想到利用初始狀態下編碼的其他特定於任務的偏差來輔助學習,而解析器能夠利用樹的深度或複雜度解決先前的知識。

1.3對抗損失 :發現輔助對抗損失是因為它對於domin適應有用,它被用於通過無法使模型不同域之間進行區分來學習域不變的表示。這通常通過添加在反向傳播期間反轉梯度符號的梯度反轉層來完成,這反過來將導致對抗損失最大化而不是最小化。它通常通過小的擾動顯著增加模型的損失,它訓練一個模型來正確地分類這樣的例子或生成對抗網絡,它們經過訓練可以產生一些輸出表示,也可以將許多任務中的對抗損失添加到學習任務中獨立表示[1]。它也可以用於忽略已被發現不利於泛化的輸入的某些特征,例如不太可能推廣的特定數據的屬性。最後,對抗性輔助任務也可能有助於消除偏差,並通過獎勵模型學習來保護更多隱私。

1.4預測數據統計 :輔助損失也可以預測訓練數據的某些基礎統計數據。與對抗損失相反,它試圖使模型忽略某些特征,該輔助任務明確地鼓勵模型預測某些數據統計。Plank等人 2016[2]將單詞的日誌頻率預測作為語言建模的輔助任務。這個輔助任務不共享常見和罕見的單詞之間的表示,這有利於處理罕見的單詞。這個輔助任務的另一個方麵是預測用戶的屬性,例如他們的性別,這已被證明有利於預測精神健康狀況[3]或其他人口信息統計[4]。我們還可以想到這可能有利於編碼模型的其他信息統計,例如POS標簽的頻率,解析結構或實體,用戶的偏好,句子的總結覆蓋率,甚至用戶網站的使用模式。

1.5逆向學習(learning the inverse:可能有用的另一個輔助任務是與主任務一起學習任務的逆向。這個框架的一個流行的例子是CycleGAN[5],它可以從繪畫中生成照片。而且,逆輔助損失適用於許多其他任務:MT(機器翻譯)可能是最直觀的,因為每個翻譯方向,如英語->法語都是直接提供逆方向的數據,如Xia等人.2016[6]Xia等人(2017[7]在文章中表明這不僅適用於MT,而且還應用於圖像分類(以圖像生成為逆)和情緒分類(與句子生成配對)。對於多模態翻譯,ElliottKádár2017[8]通過預測圖像表示共同學習是一個逆向任務。對於許多其他任務來說,並不難實現反向互補:Entailment具有假設生成;視頻字幕具有視頻製作;語音識別;語音合成等

1.6預測應該在哪裏: 對於許多任務來說,模型必須在某些特定的數據上訓練,我們可以通過鼓勵模型來預測模型的特征。對於情緒分析,例如YuJiang2016[9]預測句子是否包含一個正麵或負麵的領域中無關的情緒詞,使模型對句子中的單詞感興趣。對於名稱錯誤檢測,Cheng et al.2015[10]預測一個句子是否包含一個名稱。我們可以設想可能對其他任務有用的類似輔助任務:預測某些實體是否發生在句子中可能對關係提取有幫助;預測標題是否包含某些詞匯可能有助於clickbait檢測,同時預測句子中是否出現情感詞可能會有助於情感檢測。總而言之,當任務包含某些高度預測性的術語或特征時,此輔助任務應該是有用的。

2.共同訓練現有的NLP任務

在第二部分中,我們將介紹現有的NLP任務。雖然已經發現諸如分塊和語義標簽的某些任務對於許多任務是有幫助的[11],但是使用特定輔助任務的選擇在很大程度上取決於主任務的特征。在下文中,我將強調用於為NLP中許多常見任務選擇輔助任務的不同策略和理由:

2.1語音識別:用於自動語音識別(ASR)的多任務學習方法是通​​常使用在語音識別流水線中可用的附加監視信號作為端對端訓練ASR模型的輔助任務。語音識別和幀級狀態分類可以用作輔助任務來引導有用的中間表示。Toshniwal2017[12]發現在中間層定位輔助損耗可以幫助提高性能。

2.2機器翻譯 MTL為機器翻譯(MT)帶來的主要優點是通過共同培訓翻譯不同語言的翻譯模型:Dong et al.2015[13]共同訓練解碼器;ZophKnight2016[14]共同訓練編碼器,馬拉維亞等(2017[15]訓練一種模式,可以同時將1017種語言翻譯成英文。Luong等(2015[16]使用解析和圖像字幕作為輔助任務也提高了機器翻譯的準確性。

2.3多語種任務:類似於MT,多任務學習也能提高多語種任務模型的性能,為不同的語言訓練一套模型。這已被證明:依存句法分析[17],命名實體識別[18],部分詞性標注[19],文件分類[20],話語分割[21]和序列標簽[22]

2.4基礎語言(Language grounding:對於圖像或視頻中的語言,使模型能夠從中學習因果關係是一個不錯的想法。對於視頻字幕,PasunuruBansal2017[23]共同學習預測視頻中的下一幀將出現什麼,而Hermann等人(2017[24]還預測了視頻中的下一幀和表示視頻環境狀態的單詞。

2.5語義解析:對於可以使用多個標簽集或形式主義的任務來說,例如語義解析,一個有趣的MTL策略是一起學習這些形式主義。Fan.2017[25]共同學習不同的基於Alexa的語義解析形式。

2.6代表學習:為了學習通用表示,其挑戰往往在於定義目標。大多數現有的表示學習模型都是基於單一的損失函數,例如預測下一個單詞[26]或句子[27],或者是對一些任務進行訓練,如entailment [28]MT [29]。這不是直觀地學習基於單一損失的表示,因為使用更多的任務來學習它們,表示可以變得更加普遍。作為這個策略的一個例子,Hashimoto等(2017[30]共同研究了一個關於多個NLP任務的模型。

2.7問題回答:對於問答(QA)和閱讀理解,共同學習更複雜的端對端模型的不同部分是有益的:Choi et al.2017[31]共同學習了句子選擇和答案生成模型。

2.8信息檢索 :對於關係提取、與不同關係或角色有關的信息通常可以共享。為此,江(2009[29]共同學習不同關係類型之間的線性模型;楊和米切爾(2017[32]共同預測語義角色標簽和關係;劉等人(2015[33]共同開展域名分類和網頁搜索排名。

結論

我希望這篇博客能夠為你提供一些新的洞察力,以了解哪些策略用於選擇NLP中多任務學習的輔助任務和目標。正如我所提到的,多任務的學習可以定義非常寬泛,所以這篇文章隻是寬泛的概述。如果你想要知道關於相關策略的更詳細的解釋,我建議你去閱讀相關論文。

本文由北郵@愛可可-愛生活老師推薦,阿裏雲雲棲社區組織翻譯。

文章原標題《Multi-Task Learning Objectives for Natural Language Processing

作者:Sebastian Ruder,自然語言處理的博士生。譯者:烏拉烏拉,審閱:袁虎

文章為簡譯,更為詳細的內容,請查看原文

最後更新:2017-10-03 20:32:53

  上一篇:go  擴展眼界的都在這
  下一篇:go  助你保護大數據應用安全的步驟和工具