科學也可以如此靠近

2017深度學習NLP進展與趨勢

5月
13
2018

2018年5月13日19時 今日科學 雲棲社區

雲棲社區

摘要

作者通過本文概述了 2017 年深度學習技術在 NLP 領域帶來的進步,以及未來的發展趨勢,並且最後向大家介紹了幾個正在興起的NLP框架和工具。

在過去幾年中,深度學習(DL)在圖像識別和語音處理等領域取得了巨大的進步。

它在自然語言處理(NLP)中的應用起初並不令人興奮,但是隨著技術的進步它也為一些常見的NLP任務提供了最先進的解決方案。命名實體識別(NER)、詞性(POS)標籤、情感分析通過神經網絡模型獲得了更好的解決。

在這篇文章中,我將回顧2017年DL在NLP領域的貢獻。或許說是我想和大家分享一下我最喜歡的技術方案。2017年,DL在NLP中的使用不斷擴大,在某些情況下產生了驚人的結果,所有跡象都表明這一趨勢還會延續。

1.從word2vec到預訓練模型

詞嵌入是與NLP有關的DL最有名的技術。他們遵循哈里斯的分配假說,根據這個假說,具有相似含義的詞通常會出現在可比較的語境中。關於詞嵌入的詳細解釋,我建議你閱讀加布里埃爾·莫爾德基(Gabriel

Mordecki)的文章。諸如word2vec(Mikolov等,2013)和GloVe(Pennington等,2014)等算法已經成為該領域的先驅,儘管它們不被認為是DL(word2vec中的神經網絡較淺,GloVe實現了一個基於計數模型的方法。

詞的分布向量的例子

一開始,對於一個需要詞嵌入的NLP問題,我們傾向於從一個與其領域相關的大語料庫中訓練我們自己的模型。當然,這不是最好方法,因為預訓練模型的出現。數據顯示今年,預訓練詞嵌入模型仍然是NLP中的一個關鍵模型。

雖然我們看到一些進展,但在這方面還有很多工作要做。例如,NLP框架spaCy以本地方式將詞嵌入和DL模型集成到了NER和Dependency Parsing等任務中,允許用戶更新模型或使用自己的模型。在將來,對於在NLP框架中使用的特定領域(例如生物學,文學,經濟等)預先訓練好的模型是有益的。

2.通用嵌入到特定用例

也許使用預訓練的詞嵌入的主要缺點是訓練數據與我們需要解決問題的實際數據之間存在單詞分布差。假設你有關於跨領域的問題呢,例如:經濟學的生物學論文、食譜。你可能沒有足夠大的語料庫來訓練良好的嵌入,所以通用嵌入語言很可能會幫助你提高結果。但是如果可以將通用嵌入調整為適合你的特定用例呢?

這種適應性通常被稱為NLP中的跨域或域適應技術,它非常接近於轉移學習。今年,Yang等人提出了一個正則化的skip-gram模型,用於學習目標域的嵌入,給定源域的嵌入。這是一個全新的領域,我認為它將在近期會得到更多的關注。

3.情感分析的威力

今年,Radford等人正在探索字節級循環語言模型的特性,其目的是預測亞馬遜評論文本中的下一個字符,當時他們發現訓練模型中的單個神經元對情感價值具有高度的預測性。這個單一的「情感神經元」能夠以相當準確的方式將評論分類為正面或負面。

探討神經元的極性與價值

注意到這種行為之後,他們決定在斯坦福情緒樹庫上測試模型,發現它的準確性是91.8%,而之前的最好的是90.2%。他們的模型,以無監督的方式進行訓練,至少在一個特定但廣泛研究的數據集上實現了的情感分析。

3.1情緒神經元正在工作

由於模型在角色層次上工作,所以神經元在文本中改變了每個角色的狀態,看到它的行為是相當驚人的。

情緒神經元的行為

例如,單詞best之後,神經元的值變為強正值。然而,這種效果隨著horrendous的詞語的消失而消失,這是有道理的。

3.2生成極性偏見的文本

當然,訓練好的模型仍然是一個有效的生成模型,所以它可以用來生成類似亞馬遜評論的文本。但是,我覺得更棒的是,你可以通過簡單地覆蓋情感神經元的價值來選擇生成的文本的積極性。

作者選擇的NN模型是由Krause等人提出的乘法(multiplicative)LSTM 。主要是因為他們觀察到,它們正在探索的超參數設置比正常的LSTM收斂的快。它有4,096個單位,並接受了8200萬亞馬遜評論的語料庫的訓練。為什麼訓練良好的模式能夠以一種精確的方式捕捉到情感概念仍然是一個迷人的問題。同時,你可以嘗試訓練你自己的模型並進行實驗。

3.3 Twitter中的情感分析

無論是人們對企業品牌的評價,分析營銷活動的影響,還是衡量競選期間對希拉蕊·柯林頓和唐納德·川普的民意調查,Twitter中的情感分析都是一個非常強大的工具。

唐納德·川普vs希拉蕊·柯林頓:Twitter上的情緒分析。

3.3.1:SemEval 2017

Twitter中的情感分析不僅引起了NLP研究人員的關注,而且也引起了政治和社會科學界的關注。這就是為什麼2013年以來,SemEval大受關注的原因。今年共有48支參賽隊參加,為了了解其內容,讓我們來看看今年提出的五個子任務:

1. 子任務A:給一則推文,判斷其表達的情形:正面,負面或中性。

2. 子任務B:給出一則推文和一個話題,判斷主題表達的情感正面與負面。

3. 子任務C:給出一個推文和一個話題,判斷推文中傳達的情緒等級:強積極,弱積極,中性,弱消極和強消極。

4. 子任務D:給出一組關於話題的推文,判斷這組推文在積極和消極之間的分布。

5. 子任務E:給出一組關於某個話題的推文,估計推文在強積極、弱積極、中性、弱消極和強消極的分布情況。

子任務A是最常見的任務,有38個團隊參與了這個任務,但是其他的則更具挑戰性。主辦方表示,DL方法的使用正在不斷增加,今年有20個團隊使用卷積神經網絡(CNN)和長期短期記憶(LSTM)等模型。此外,儘管SVM模型仍然非常流行,但一些參與者將它們與神經網絡方法或者使用了詞嵌入特徵相結合。

3.3.2:BB_twtr系統

今年我發現一個純的DL系統BB_twtr系統(Cliche,2017)在5 個子任務中排名第一。作者將10個CNN和10個雙向LSTM結合起來,使用不同的超參數和不同的預訓練策略訓練。

為了訓練這些模型,作者使用了人工標記的推文(子任務A有49,693個),並且構建了一個包含1億個推文的未標記數據集,通過簡單的標記來提取推特數據集中表示積極的積極表情符號,如:-),反之亦然消極鳴叫。為了對CNN和雙向LSTM輸入的詞嵌入進行預訓練,作者使用word2vec,GloVe和fastText在未標記的數據集上構建詞嵌入。然後他使用隔離的數據集來添加積極和消極的信息,然後使用人類標記的數據集再次提煉它們。之前的SemEval數據集的實驗表明,使用GloVe會降低性能。然後作者將所有模型與軟投票策略結合起來。由此產生的模型比2014年和2016年的歷史最好的歷史成績更勝一籌。

這項工作表明了將DL模型結合起來,可以在Twitter中的情感分析中超越監督學習的方法。

4.一個令人興奮的抽象概括系統

自動摘要和自動翻譯是最早的NLP任務。自動摘要有兩種主要的方法:一是通過從源文本中提取最重要的段而建立的,二是通過生成文本來創建摘要。

近年來,基於RNN的模型在文本生成方面取得了驚人的成果。它們對於處理短的輸入和輸出文本表現非常好,但處理長文本往往是不連貫的。保盧斯(Paules)等提出了一種新的神經網絡模型來克服這個局限性。結果很好,如下圖所示:

生成摘要的模型的插圖

他使用雙向LSTM編碼器讀取輸入,並使用LSTM解碼器生成輸出。他們的主要貢獻是使用一種新的內部注意力策略分別關注輸入和連續生產的輸出,並且結合了標準監督詞語預測和強化學習。

4.1內部注意力策略(intra-attention strategy)

內部注意力策略的目標是避免輸出中的重複。它們在解碼時使用時間注意力來查看輸入文本的前一段,然後決定下一個將要產生的字。這迫使模型在生成過程中使用輸入的不同部分。他們還允許模型從解碼器訪問以前的隱藏狀態。然後將這兩個功能組合起來,為輸出摘要選擇最好的單詞。

4.2強化學習

創建摘要時,兩個不同的人將使用不同的單詞和句子,但這兩個摘要都是可行的。因此,一個好的摘要不一定是與訓練數據集中的序列相匹配的單詞序列。基於這一點,作者沒有使用teacher forcing算法,它可使每個解碼步驟的損失最小化,他們通過使用強化學習策略,獲得了更好的性能。

5.無監督機器翻譯的第一步?

雙語詞典歸納,即用源語言和目標語言的單語語料庫獲取映射關係,這是一個古老的NLP任務。自動生成雙語詞典有助於其他NLP任務,如信息檢索和統計機器翻譯。然而,這個詞典並不是容易獲取或者很容易建立。

隨著詞嵌入的成功,跨語言詞嵌入的想法也出現了,目標是對齊嵌入空間而不是詞典。不幸的是,這種方法也依賴於雙語詞典或平行語料庫。Conneau et al·(2018)提出了一個非常有前景的方法,不依賴於任何特定的資源,且對於多個語言對的次翻譯、句子翻譯檢索和跨語言單詞相似度任務上優於監督學習的方法。

該方法是將輸入的兩組單詞嵌入在單語數據上進行獨立訓練,並學習它們之間的映射,以便共享空間中的翻譯結果。他們使用fastText在維基百科文檔上訓練的無監督單詞向量。以下圖片說明了關鍵的想法:

建立兩個詞嵌入空間之間的映射。

紅色的X分布是英語單詞的嵌入,藍色的Y分布是義大利語單詞的分布。

首先,他們使用對抗學習來學習旋轉矩陣W,W執行第一次原始對齊。他們根據Goodfellow等人提出的主張,基本上訓練了一個生成對抗網絡(GAN)。要了解GAN是如何工作的,我建議你看這篇由Pablo Soto撰寫的優秀文章。

為了使用對抗學習對問題進行建模,他們將鑑別器定義為具有決定作用的角色,從WX和Y隨機採樣的一些元素(參見上圖中的第二列),每個元素屬於哪種語言。然後,他們訓練W以防止鑑別者做出好的預測。這在我看來非常聰明,直接的結果是相當不錯的。

之後,他們再應用兩個步驟來完善映射。一是為了避免罕見字引入映射計算中的噪聲。另一步主要是使用學到的映射和距離度量來構建實際的翻譯結果。

這個方法在一些案例中表現的很不錯,例如,對於英文-義大利語的翻譯,在P @ 10的情況下,它在1500個單詞上的準確率比最優的高出17%。

英語 - 義大利語詞彙平均精度

6.框架和工具

如TensorFlow,Keras或PyTorch,他們應用都非常廣泛。然而,面向特定開源NLP的DL框架和工具才剛剛興起。其中有三個引起了我的注意,你可能會覺得有趣。

6.1.AllenNLP

AllenNLP框架是建立在PyTorch之上,它能夠輕鬆地使用語義NLP任務DL方法。其目標是讓研究人員設計和評估新模型,它包含了常用語義NLP任務模型的參考實現,如語義角色標註,文本引用。

6.2.ParlAI

ParlAI框架是用於對話研究的開源軟體平台。它是用Python實現的,其目標是為對話模型的共享,訓練和測試提供一個統一的框架。它提供了該領域流行的數據集,並支持多種模型,包括記憶網絡、seq2seq和LSTM等神經模型。

6.3.OpenNMT

OpenNMT工具包是專門序列到序列模型的通用框架。它可以用於執行機器翻譯,摘要,圖像到文本和語音識別之類的任務。

7.總結

不可否認的是用於解決NLP問題的DL技術正在持續發展。一個重要的指標就是過去幾年在ACL,EMNLP,EACL和NAACL等關鍵NLP會議上的深度學習論文比例正在提升。

然而,關於端到端學習的研究才剛剛開始。我們仍然使用一些經典的NLP任務來準備數據集,比如清理,標記或統一一些實體(例如URL,數字,電子郵件地址等)。我們也使用通用嵌入,其缺點是不能捕捉到特定領域術語的重要性,而且對於多字表達式來說表現不佳。

8.擴展閱讀

有關NLP研究中的深度學習方法的更多信息,我強烈建議你閱讀Young等人的優秀論文「 基於深度學習的自然語言處理的最新趨勢 」。

文章原標題《Deep Learning for NLP, advancements and trends in 2017》

作者: Javier Couto PM&研究科學家。自然語言處理博士學位。

譯者:虎說八道。

往期精彩文章

-END-

雲棲社區

ID:yunqiinsight

雲計算丨網際網路架構丨大數據丨機器學習丨運維


延伸閱讀

每日一天文圖:洛杉磯上方的快樂天空

宇宙是怎麼爆炸崩出這麼多星星的?

史上最強宇宙科普文章:理解了這15個知識點,你將

優惠倒計時丨腫瘤基因組學研究進展及公共資料庫數據

癌細胞到底是什麼鬼?教你早日認清它們


熱門內容

友善連結



APP