在開始你的研究之前,了解目標領域中最重要的研究方向是很重要的任務。本文中,德國海德堡大學的計算語言學在讀博士 Sebastian Ruder 為我們介紹了 NLP 領域里最具潛力的幾個研究方向。
目錄
獨立于任務的 NLP 數(shù)據(jù)增強
用于 NLP 的 few-shot learning
用于 NLP 的的遷移學習
多任務學習
跨語言學習
獨立于任務的架構提升
當開始新領域的研究時,你會發(fā)現(xiàn)尋找引人注目的主題并學會問正確的問題是一件很難的事。這種情況在機器學習這種進展很快的領域里尤其突出——你很難找到突破點。
本文旨在向初級研究人員和試圖進入研究領域的人提供啟發(fā)和思路,其中匯集了我感興趣的一系列研究課題:著重于自然語言處理(NLP)和遷移學習,所以本文不是面向所有讀者的。如果你對增強學習感興趣,OpenAI 提供了一系列有趣的增強學習研究主題(https://blog.openai.com/requests-for-research-2/)。如果你期待與他人合作,或對更廣泛的主題感興趣,請參閱 Artificial Intelligence Open Network(https://ai-on.org/)。
這些研究主題中的大多數(shù)目前還沒有被人們透徹地思考過;在很多情況下,概括性的描述是非常模糊和主觀的,未來研究方向也不甚明確。此外,大多數(shù)主題也并不包含低掛果實,因此需要我們非常努力才能得出結論。請注意:這一主題集并不是對于所有文獻的綜述,所以其覆蓋范圍可能不全。
希望本文能夠激發(fā)你的興趣,并為你自己的研究歷程提供靈感。
獨立于任務的 NLP 數(shù)據(jù)增強
數(shù)據(jù)增強旨在通過轉換生產現(xiàn)有訓練實例的變體而創(chuàng)建額外的訓練數(shù)據(jù),以反映現(xiàn)實世界中的實際情況。在計算機視覺中,一般的增強技術有鏡像、隨機裁剪、剪切等。數(shù)據(jù)增強在 CV 中超級有用,比如有助于 AlexNet 對抗過擬合,絕大多數(shù)當前最優(yōu)模型也使用了它。此外,數(shù)據(jù)增強非常直觀,因為它使得訓練數(shù)據(jù)更加多元,從而提升模型泛化能力。
然而,NLP 中數(shù)據(jù)增強并未廣泛使用。依我看,原因有兩點:
1. NLP 中的數(shù)據(jù)是分離的。這可防止我們把簡單的轉換直接應用于輸入數(shù)據(jù)。目前絕大多數(shù)的增強方法聚焦于這樣的轉換,比如領域隨機化 (Tobin et al., 2017) [2]。
2. 小的擾動可改變語義。刪除一個否定詞可能會改變句意,修改段落中的一個詞可能無意中改變了關于該段落問題的答案。其實在 CV 中情況并非如此:擾動一個像素并不會改變一個貓或狗的圖像,并且甚至明顯的變化比如不同圖像的插值也是有用的(Zhang et al., 2017)[3]。
我關注的現(xiàn)有方法要么是基于規(guī)則的 (Li et al., 2017) [5],要么是解決特定任務的,比如解析 (Wang and Eisner, 2016) [6] 或零-代名詞分辨率 (Liu et al., 2017) [7]。Xie et al. (2017) [39] 通過來自不同分布的樣本替代單詞以進行語言建模和機器翻譯。最近聚焦于創(chuàng)建對抗樣本的工作要么是通過替代單詞或字符 (Samanta and Mehta, 2017; Ebrahimi et al., 2017) [8, 9],級聯(lián) (Jia and Liang, 2017) [11];要么是添加對抗擾動 (Yasunaga et al., 2017)。Li et al. (2017) [16] 同樣使用了對抗設置,其訓練系統(tǒng)生產與人類對話語句無差別的序列。
反向翻譯(Back-translation)(Sennrich et al., 2015; Sennrich et al., 2016) [12, 13] 是機器翻譯中的常見數(shù)據(jù)增強方法,有助于吸收單語訓練數(shù)據(jù)。比如,當訓練一個英轉法系統(tǒng)時,單語法語文本通過法轉英系統(tǒng)被翻譯成英語;合成的平行數(shù)據(jù)接著被用于訓練。反向翻譯同樣用于釋義 (Mallinson et al., 2017) [14]。釋義已被用于 QA (Dong et al., 2017) [15] 的數(shù)據(jù)增強,但并未發(fā)現(xiàn)有其他用處。
另一個方法與釋義相近,即通過變分自編碼器 (Bowman et al., 2016; Guu et al., 2017) [17, 19] 從連續(xù)空間中生成語句。如果按照 Hu et al., 2017 [18] 把表征解開,那么我們離風格遷移 (Shen et al., 2017) [20] 也就不遠了。
以下幾個研究方向很有趣,值得去跟:
1. 評估學習:評估一系列未廣泛使用的現(xiàn)有數(shù)據(jù)增強方法及技巧,比如應用于一系列不同任務(包括文本分類和序列標注)的釋義和風格遷移。確定何種類型的數(shù)據(jù)增強在所有任務和特定任務中是魯棒的。這可被打裝成軟件庫以使未來的基準更容易。
2. 帶有風格遷移的數(shù)據(jù)增強:調查風格遷移是否可用于修改訓練實例的不同屬性以獲得更魯棒的學習。
3. 學習增強:類似于 Dong et al. (2017),我們可為一個特定任務學習釋義或者生成轉換。
4. 學習詞嵌入空間以增強數(shù)據(jù):典型的詞嵌入空間同時聚類同義詞和反義詞。因此在空間中使用最近鄰用于替換是不可行的。受最近工作 (Mrk?i? et al., 2017) [21] 啟發(fā),我們可以具化詞嵌入空間以使其更適用于數(shù)據(jù)增強。
5. 對抗性數(shù)據(jù)增強:與最近的可解釋性工作相關 (Ribeiro et al., 2016) [22],我們可以改變實例中最重要的單詞,即那些模型依賴以做出預測的單詞。但是這依然需要保留語義的替換方法。
用于 NLP 的 Few-shot learning
Zero-shot、one-shot、few-shot learning 是最近最為有趣的研究方向之一。通過遵從 Vinyals et al. (2016) [4] 的核心思想,即 few-shot learning 模型應該明確地訓練以執(zhí)行 few-shot learning,我們已取得若干個最新進展 (Ravi and Larochelle, 2017; Snell et al., 2017) [23, 24]。學習若干個標注樣本是最艱難的問題之一,以及區(qū)分當前機器學習模型生成與更廣泛應用的系統(tǒng)的核心能力之一。據(jù)我所知,Zero-shot learning 只在學習未知單詞的詞嵌入的語境中被調查。無數(shù)據(jù)分類 (Song and Roth, 2014; Song et al., 2016) [25, 26] 是一個有趣的相關方向,它在聯(lián)合空間中嵌入標簽和文件,并需要帶有良好描述的可解釋性標簽。
1. 標準化基準:為 NLP few-shot learning 創(chuàng)建標準化基準。Vinyals et al. (2016) 為 Penn Treebank 引入了 one-shot 語言建模任務。這一任務盡管很有用,但與 CV 基準上的廣泛評估相比卻相形見絀,并且據(jù)我所知沒有多少使用。NLP 的 ew-shot learning 基準應該包含大量分類并提供標準化的再現(xiàn)性分割。良好的候選任務將是主題分類或細粒度實體識別。
2. 評估學習:創(chuàng)建這樣一個基準之后,下一步是評估 CV 中的現(xiàn)有 few-shot learning 方法在執(zhí)行 NLP 任務方面表現(xiàn)如何。
3. NLP 的全新方法:給定一個基準數(shù)據(jù)集和實證評估學習,接著我們可以開始開發(fā)執(zhí)行 NLP few-shot learning 的全新方法。
用于 NLP 的遷移學習
遷移學習已經對計算機視覺(CV)產生了巨大的影響,并大大降低了解決特定 CV 問題的難度門檻。計算機視覺從業(yè)者現(xiàn)在不再需要為每個新任務耗費大量的工程,僅需使用少量示例對已在大型數(shù)據(jù)集上訓練好的模型進行微調。
然而,在 NLP 領域里,我們目前仍然只能通過預訓練嵌入來預訓練模型的第一層。近期一些研究人員提出的方法(Peters et al., 2017, 2018)[31,32] 加入了預訓練語言模型嵌入,但是它們仍然需要針對每個任務定制架構。在我看來,若想解鎖遷移學習在 NLP 上的真正潛力,我們需要預訓練整個模型,并在目標任務上僅需微調,類似于微調 ImageNet 模型。舉例來說,在 NLP 上的語言建模可以類比為 CV 上的 ImageNet 分類(Howard and Ruder, 2018)[33]。
這里有一些潛在的研究方向:
1. 識別有用的預訓練任務:預訓練任務的選擇非常重要,即使是對于相關任務進行微調,我們也可能近會收到有限的成功(Mou et al., 2016)[38]。其他任務,如近期關于學習通用句嵌入的研究(Conneau et al., 2017;Subramanian et al., 2018; Nie et al., 2017)[34,35,40] 可能是語言模型預訓練的補充,或適用于其他目標任務。
2. 復雜架構的微調:模型應用于多目標時,預訓練是最為有效的。然而,目前仍不清楚如何對更為復雜的模型進行預訓練,如用于配對分類任務(Augenstein et al., 2018)或推理任務(如 Q&A 和閱讀理解)的模型。
多任務學習
多任務學習(Multi-task learning,MTL)在 NLP 領域中已經變得越來越普遍了。有關多任務學習的概述,可參閱此處(http://ruder.io/multi-task/),有關 NTL 在 NLP 中的目標可參閱此處(http://ruder.io/multi-task-learning-nlp/)。對于我們來說,多任務學習還有很多未知等待我們去探尋。
MTL 的主要問題帶來了一系列有趣的研究方向:
1. 確定有效的輔助任務:其中一個主要問題是哪些任務對于多任務學習是有用的。標簽熵已被證明可以是 MTL 中成功的預測器(Alonso and Plank, 2017)[28],但這一方向并未結束。在最近的研究中(Augenstein et al., 2018)[27],我們發(fā)現(xiàn)又跟股東數(shù)據(jù)和更多細化標簽的輔助任務更加有效。未來的 MTL 論文或許不僅會提出新的模型或輔助任務,也會試圖開始求解為何很多輔助任務會比另一個緊密相關的任務更好。
2. 硬參數(shù)共享的替代方案:硬參數(shù)共享目前仍然是 MTL 的默認操作方式,但它對模型施加了很多約束,以便用相同的參數(shù)壓縮與不同任務有關的知識,這往往會使學習變得困難。在 MTL 中,我們需要更加易于使用,且在多種任務上工作穩(wěn)定的新方法(Misra et al., 2017; Ruder et al., 2017)[29,30],標簽嵌入層(Augenstein et al., 2018)在這一方向上很有潛力。
3. 人工輔助任務:最好的輔助任務是針對主任務目標,且不需要任何附加數(shù)據(jù)的任務。在這里,我列出了潛在的人工輔助任務列表(http://ruder.io/multi-task-learning-nlp/)。當然,目前我們還不清楚哪些輔助任務可以在多種不同類型的任務上適用,或哪種基于特定任務的變體性能最好。
跨語言學習
構建能夠跨語言的模型,將資源豐富語言中的知識遷移到資源貧乏的語言中,一直是 NLP 的重要研究方向之一。最近,學習跨語言表示,將多種不同語言投影到共享嵌入空間的方法有了很大進展??蓞㈤喺撐摹禔 Survey of Cross-lingual Word Embedding Models》[36]。
跨語言表示通常根據(jù)內部基準測試,或外部下游任務(如文本分類)上的表現(xiàn)進行評估。雖然目前的最先進方法已經有了很多進步,但我們仍對于這些方法在某些任務或語言上的失敗原因,以及如何在所有任務上減小這些失敗的方法,如加入基于特定任務的約束(Mrk?i? et al., 2017)仍未有足夠的理解。
獨立于任務的架構提升
目前,在各個特定任務上,業(yè)內最佳的成績正在不斷地被刷新,舊的架構正不斷被淘汰。之前,我已經列出了在不同 NLP 任務上的最佳實踐(http://ruder.io/deep-learning-nlp-best-practices/),但如果不對這些架構在不同任務上的性能進行比較,我們很難定義特定架構的能力,也無法得知它們在其他任務上的可用性。
最近涌現(xiàn)出了一個頗具潛力的模型 Transformer(Vaswani et al., 2017)[37]。雖然完整的模型可能不適用于每個任務,但多頭注意(multi-head attention)或基于位置的編碼(position-based encoding)可以作為模塊構建模型,這樣就可以適用于很多 NLP 任務了。
結論
希望這一研究方向匯集能夠對你有所幫助。如果你有關于如何解決相關研究課題的思路,歡迎在本文下進行討論。