在過去幾年,深度學習(DL)的架構和算法在很多領域都取得了里程碑似的進展,例如圖像識別和語言處理。
起初,深度學習在自然語言處理(NLP)中的應用并不起眼,但后來卻出現了許多重量級的成果,例如命名實體識別(NER)、詞性標注(POS tagging)或文本情感分析(sentiment analysis)等都是神經網絡模型超越傳統模型的方法。然而,機器翻譯領域所取得的進步才是最顯著的。
本文作者Javier Couto是tryo labs公司的一名研發科學家,專注于NLP技術。這篇文章是他對2017年NLP領域中深度學習技術應用的總結,也許并不全面,但都是他認為有價值、有意義的成果。Couto表示,2017年是對NLP領域非常有意義的一年,隨著深度學習的應用,NLP技術也將繼續發展下去。
從訓練word2vec到使用預先訓練的模型
通常來說,詞嵌入(word embeddings)是與NLP相關的最有名的深度學習技術了,它遵循了Harris提出的分布假想(distributional hypothesis),分布假想源自于語言學中的語義學原理,即認為出現在相似的上下文環境中的詞匯可能是用于表達相似的意思。
詞的分布式向量
雖然著名的word2vec和GloVe等算法不能算作是深度學習框架(word2vec中只涉及淺顯的神經網絡,而GloVe是基于矩陣的方法),但用它們訓練的許多模型都被輸入到用于NLP的深度學習工具中。所以在這一領域使用詞嵌入通常是非常好的做法。
開始時,對于一個需要詞嵌入的問題,我們傾向于從與該領域相關的語料庫中訓練自己的模型。不過,這種方法并不適用于所有情況,所以出現了預訓練模型。通過在維基百科、Twitter、谷歌新聞以及其他網頁上訓練,這些模型可以讓你輕松地將詞嵌入整合到深度學習算法中。
今年,許多人認為預訓練的詞嵌入模型仍然是NLP中的一個關鍵問題。例如,Facebook人工智能實驗室(FAIR)發布的fastText是一款能夠支持294種語言的預訓練詞嵌入模型,為NLP領域做出了巨大的貢獻。除了支持多種語言,fastText還能夠將字分解成字符n-gram,即使遇到詞典中不存在的字(OOV problem),也能給出向量表示。因為一些特定領域的罕見詞仍然可以被分解成字符n-gram,所以它們可以與通用字共享這些n-gram。而word2vec和GloVe都不能為詞典中不存在的詞提供向量表示。所以從這方面來說,fastText比上述兩種方法表現得更好,在小數據集上更是如此。
不過,雖然取得了一些進展,NLP方面還有很多工作要做。例如,強大的NLP框架spaCy能夠以本地方式將詞嵌入整合到深度學習模型中,完成例如NER或依存句法分析(Dependency Parsing)等任務,允許用戶更新或使用自己的模型。
我認為,在將來,對于易于在NLP框架中使用的特定領域(例如生物學、文學、經濟等),使用預訓練的模型是很合適的。對我們來說,如果能用最簡單的方式對它們進行調校,那就更是錦上添花的進步了。與此同時,能夠適應詞嵌入的方法開始出現。
將通用型嵌入應用到具體應用案例
使用預訓練的詞嵌入的主要缺點就是,訓練數據與實際問題中的數據存在著詞語分布的差距(word distributional gap)。假如你有一份生物學論文、或一份食譜、或經濟學研究論文的語料,但是沒有足夠大的語料庫來訓練良好的嵌入,所以最終會選擇通用詞嵌入來幫助你提高結果。但是如果能將通用的嵌入調整為適合你個人案例的情況呢?
這種適應通常被稱為NLP中的跨領域或域自適應技術,與遷移學習非常接近。Yang等人今年提出了一個正則化的skip-gram模型,給定始源域(source domain)的嵌入,可以學習目標域(target domain)的嵌入,是一項非常有趣的研究。
重要思想簡潔且高效。假設我們知道始源域中單詞w的詞嵌入為ws。為了計算目標域中wt的嵌入,就要在兩個域之間加入一個特定量的遷移ws。一般來說,如果這個單詞在兩個域中都經常出現,那么它的語義就是獨立的。在這種情況下,遷移的值越大,嵌入的結果可能在兩個域中就越相似。反之,如果一個單詞在一個域中的出現頻率高于另一個域,那么遷移的值就小。
關于這一話題的研究并未深入展開,但我相信在不遠的未來會有更多人關注它。
情感文本分析不可思議的副作用
偉大的發明往往是意外之喜,下面要說的這個成就也不例外。今年,Radford等人在研究字節級循環語言模型的特性,目的是要預測亞馬遜評論文本中的下一個字符。然而在這一過程中,他們發現訓練模型中的一個單一神經元能夠高度預測出文章的情感價值(sentiment value)。這個單一的“情感神經元”(sentiment neuron)能夠以相當準確的方式將評論分為積極或消極的兩類。
評論極性vs神經元值
在發現了這一特性后,作者決定將模型應用于Stanford Sentiment Treebank數據集上,結果得到的精確度高達91.8%,比之前最佳的90.2%的結果還要高。這意味著,他們的模型經過無監督的方式訓練后,用更少的訓練數據達到了最先進的情感文本分析結果。
情感神經元的工作過程
由于模型是在字符層面工作,可以看到,神經元在文本中進行判斷時,能夠改變特殊的字符顏色。如下圖所示:
在單詞“best”之后,神經元使文本變成了深綠色(代表積極),而在單詞“horrendous”之后,綠色消失,表示情感由積極開始轉向消極。
生成極性偏向文本
當然,訓練過的模型是一個有效地生成模型,所以你也可以拿他來生成類似亞馬遜的評論那樣的文本。但是,我覺得很棒的一點是,你可以簡單地改寫情感神經元的值來決定生成文本的極性(polarity)。
這是我買過的最好的吊床!完全不會變形,而且超級舒服。我喜歡上面的印花,看起來好可愛! | 根本不能用,吃一塹長一智吧。 |
這就是我想要的。這條褲子完全合身,走線也很精密,強烈推薦! | 包裹竟然是空的,沒有二維碼。浪費時間金錢。 |
積極情緒 | 消極情緒 |
---|
作者選用的神經網絡模型是Krause等人在2016年提出的multiplicative LSTM,主要原因是他們觀察到該模型的超參數設置比正常的LSTM收斂地更快。它有4096個單位,訓練的語料庫中含有8200萬條亞馬遜的評論。
同時,你還可以試著訓練自己的模型并進行試驗。當然這需要你有足夠的時間和強大的GPU:論文的作者在NVIDIA Pascal GPU上花了一個月的時間訓練了該模型。
Twitter上的情感文本分析
要想知道人們對某個品牌的評價,或是分析某一營銷活動的影響,甚至是衡量人們對總統大選的感受,Twitter中的情感分析是一個非常強大的工具。
推特對有關川普和希拉里的推文的情感分析
SemEval 2017
Twitter中的情感文本分析已經引起了NLP研究人員的關注,而且也引起了政界和社會科學界的關注。所以自從2013年以來,國際語義測評SemEval提出了一項具體的任務。
2017年共有48支隊伍參加了評選,以下五個子任務可以讓你了解SemEval在Twitter上都分析了什么。
A:給定一條推文,判斷它是積極的或是消極的或是中立的情緒。
B:給定一條推文和話題,將話題中所傳達出的情緒進行分類:正面或負面。
C:給定一條推文和話題,將推文中所傳達出的情緒分為五類:非常積極、一般積極、中立、一般消極、非常消極。
D:給定關于某一話題的一組推文,估計這些推文在積極和消極中的分布。
E:給定關于某一話題的一組推文,將推文的情緒分為五類:非常積極、一般積極、中立、一般消極、非常消極。
可以看到,A任務是最常見的任務,共有38支隊伍參加了這個任務,其他的幾項更難一些。主辦方指出,今年使用深度學習方法的隊伍比較顯眼,并且在不斷增加,有20個團隊使用了CNN和LSTM等模型。另外,盡管SVM模型仍然非常流行,但已經有幾個隊伍將它們與神經網絡或詞嵌入等方法結合起來了。
BB_twtr系統
我認為今年最值得關注的是一個純粹的深度學習系統——BB_twtr,該系統在英語的5個子任務中排名第一。作者將10個CNN和10個biLSTM的集合結合起來,用不同的超參數和不同的預訓練策略進行訓練。可以在論文中看到神經網絡架構的細節。
為了訓練這些模型,作者使用了帶有話題標簽的推文(A任務中共有49693條推文),然后建立了一個含有1億條沒有標簽的推文數據集,將其中帶有類似微笑表情的推文歸為積極一類,反之歸為消極一類,再次建立派生的數據集。在這里,推文都被變成了小寫、標上了記號;URL和表情符號被替換成了特殊的符號;重復的字母都被合并,例如“niiice”和“niiiiiiiice”變成了“niice”。
為了對用作CNN和biLSTM的輸入詞嵌入進行預訓練,作者使用帶有默認設置的word2vec、GloVe和fastText在未標記的數據集上進行訓練。然后他使用派生數據集改進嵌入,并加入極性信息,然后再使用帶有標簽的數據集再次改進。
使用從前的SemEval數據集的實驗表明,使用GloVe會降低性能,并且對所有金標準數據集沒有一個最佳模型。然后作者將所有模型與軟投票策略結合起來,由此產生的模型比2014和2016年的最佳成績都好,接近2015年的最佳成績。它最終在2017SemEval的5個子任務中排名第一。
即使這種組合并不是以一種有機的方式進行的,而是加入了簡單的軟投票策略,也表明了將深度學習模型應用其中的潛力非常大,同樣也證明了幾乎所有端到端的方法在Twitter中的情感分析可以超越監督的方法(輸入必須進行預處理)。
令人激動的抽象總結系統
自動總結(automatic summarization)是NLP最早的任務之一。方式主要有兩種:抽取式(extraction-based)和生成式(abstraction-based)。抽取式自動文摘方法是通過提取文檔中已存在的關鍵詞、句子形成摘要;生成式自動文摘方法是通過建立抽象的語義表示,使用自然語言生成技術形成摘要。在過去,抽取式是最常用的方法,因為他們比另一種方法簡單。
在過去幾年,基于RNN的模型在文本生成方面取得了驚人的成果。對于簡短的文本輸入和輸出,它們表現得很好。但是遇到長文本,往往輸出的是不連貫的、重復的結果。在他們的工作中,Paulus等人提出了一種新型的神經網絡模型來克服這一局限性,并取得了令人興奮的結果,如下所示:
自動摘要生成模型
作者使用biLSTM編碼器讀取輸入,并使用LSTM解碼器生成輸出。他們的主要貢獻是創建了一種新的內部注意策略,能夠分別關注輸入和連續的輸出,并且還有一種新的訓練方法,將監督詞語預測的標準和強化學習結合起來。
內部注意策略
新型的內部注意策略的目的是避免在輸出中出現重復。為了達到這個目的,他們在解碼時用緩存的注意查看輸入文本的前一段內容,然后再決定下一個將要產生的字。這就使得模型在生成過程中使用輸入的不同部分。他們還允許模型從解碼器訪問之前的隱藏狀態,兩個函數結合后,就會選擇出最適合輸出摘要的下個詞。
強化學習
寫摘要時,兩個不同的人會使用不同的詞語和句子,但寫出的摘要都是正確的。因此,判斷一個摘要是好的標準不一定是使其完全與數據集中的單詞序列相匹配。了解這一點后,作者就避免了標準的強制教導(teacher forcing)算法,該算法會在每個解碼步驟將損失最小化,而是依賴更可靠的強化學習策略。
近似端到端模型的好結果
該模型在CNN和《每日郵報》的數據集上進行了測試,并取得了前所未有的好結果。在人類評估下,一項具體的實驗結果表明,可讀性和質量都有了增長。由于在預處理時,輸入文本都被打上了標記、改為小寫,同時數字被替換成0,以及數據集的一些特殊對象被移除,還能得到這樣的結果,實在令人印象深刻。
邁向完全無監督機器翻譯的第一步
雙語詞典構建是NLP領域一個老生常談的問題了,它使用兩種語言的源語言和目標語言的單語料庫生成詞語互譯。自動生成的雙語詞典能夠幫助其他NLP任務,例如信息檢索和機器翻譯統計。然而,這些方法大多都需要一個初始的雙語詞典,但通常很難建立。
隨著詞嵌入的出現,跨語言詞嵌入(cross-lingual word embeddings)也隨之產生,其目的是調整嵌入空間而不是生成字典。但不幸的是,跨語言嵌入也需要有雙語詞典或平行語料庫。接著,Conneau等人提出了一個可行的方法,可以不依賴任何特定的資源,在詞語翻譯、句子翻譯檢索以及跨語言詞語相似性等任務上由于現有的監督式方法。
作者提出的方法是將兩組在單語語料庫上訓練的詞嵌入作為輸入,然后學習二者之間的映射,使得公共空間上的翻譯相近。他們利用fastText對維基百科上的文本進行無監督訓練,如下圖所示。
構建兩個詞嵌入空間之間的映射
紅色的X表示英語單詞的嵌入,紫色的Y表示意大利語的詞嵌入。
剛開始,他們使用對抗學習來學習旋轉矩陣W,W將執行第一次原始對齊。接著,在Ian Goodfellow等人提出生成對抗網絡之后,他們也訓練了一個GAN。
為了用生成學習對該問題建模,他們將判別器看作能夠做決定的角色。他們從Wx和Y中隨機采樣(上圖第二欄),兩種語言分別屬于Wx和Y。然后,他們訓練W,防止判別器做出好的預測。我認為這種方式非常聰明優雅,直接結果也非常不錯。
之后,他們增加了兩步來完善映射。一是消除罕見字在映射計算中產生的噪聲,另一個是利用學到的映射和測量距離建立實際的翻譯。
在某些案例中,輸出的結果已經超越了最佳紀錄。例如在P@10的英語和意大利語之間的詞語翻譯中,他們在1500個源單詞所組成的數據庫中得出了近17%的平均準確率。
英語-意大利語詞語翻譯平均精確度
作者稱,他們的方法可以用作開啟無監督機器翻譯的第一步,讓我們拭目以待。
特別的框架和工具
現如今已經有很多通用的深度學習框架和工具,例如TensorFlow、Keras、PyTorch等等。然而,面向NLP的特定開源深度學習框架和工具才剛剛興起。今年對我們來說十分重要,因為有許多開源框架出現,其中三個是我很感興趣的。
AllenNLP
AllenNLP框架是構建在PyTorch之上的一個平臺,它的設計初衷是將深度學習方法應用其中,執行相關的NLP任務。其目的是讓研究人員設計并評估新模型,它包含了語義角色標注(semantic role labeling)、文字蘊涵(textual entailment)和共指消解(coreference resolution)等常見的NLP語義任務。
ParlAI
ParlAI框架是一個開源的用于對話研究的軟件平臺。它在Python中實現,其目標是提供一個集分享、訓練和測試于一體的框架。ParlAI提供了一個與亞馬遜Mechanical Turk輕松集成的機制,同時還提供了該領域流行的數據集,并支持多種模型,包括內存網絡、seq2seq和注意力LSTM等神經模型。
OpenNMT
OpenNMT工具箱是專門用于序列到序列模型的通用框架,它可以執行類似機器翻譯、總結、圖像到文本和語音識別的任務。
寫在最后
不可否認,用于NLP領域的深度學習技術在不斷增長,從過去幾年的ACL、EMNLP、EACL、NAACL等關鍵大會上所提交的有關NLP深度學習的論文上就能看出這一趨勢。
-
深度學習
+關注
關注
73文章
5540瀏覽量
122222 -
nlp
+關注
關注
1文章
490瀏覽量
22385
原文標題:NLP的這一年:深度學習或成主角
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論