從語言學(xué)到深度學(xué)習(xí)NLP,一文概述自然語言處理
本文從兩篇論文出發(fā)先簡(jiǎn)要介紹了自然語言處理的基本分類和基本概念,再向讀者展示了深度學(xué)習(xí)中的 NLP。這兩篇論文都是很好的綜述性入門論文,希望詳細(xì)了解自然語言處理的讀者可以進(jìn)一步閱讀這兩篇論文。
首先第一部分介紹了自然語言處理的基本概念,作者將 NLP 分為自然語言理解和自然語言生成,并解釋了 NLP 過程的各個(gè)層級(jí)和應(yīng)用,這一篇論文很適合讀者系統(tǒng)的了解 NLP 的基本概念。
第二描述的是基于深度學(xué)習(xí)的 NLP,該論文首先描述了深度學(xué)習(xí)中的詞表征,即從 one-hot 編碼、詞袋模型到詞嵌入和 word2vec 等,我們首先需要數(shù)字表征詞匯才能進(jìn)一步做自然語言處理。隨后,本論文介紹了各種應(yīng)用于 NLP 的模型,包括卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)、長(zhǎng)短期記憶和門控循環(huán)神經(jīng)網(wǎng)絡(luò)等,這一些模型加上其它如注意力機(jī)制那樣的技巧就能實(shí)現(xiàn)十分強(qiáng)大的能力,如機(jī)器翻譯、問答系統(tǒng)和情感分析等。
概念基礎(chǔ)
論文地址: https://arxiv.org/abs/1708.05148
自然語言處理(NLP)近來因?yàn)槿祟愓Z言的計(jì)算表征和分析而獲得越來越多的關(guān)注。它已經(jīng)應(yīng)用于許多如機(jī)器翻譯、垃圾郵件檢測(cè)、信息提取、自動(dòng)摘要、醫(yī)療和問答系統(tǒng)等領(lǐng)域。本論文從歷史和發(fā)展的角度討論不同層次的 NLP 和自然語言生成(NLG)的不同部分,以呈現(xiàn) NLP 應(yīng)用的各種最新技術(shù)和當(dāng)前的趨勢(shì)與挑戰(zhàn)。
1、前言
自然語言處理(NLP)是人工智能和語言學(xué)的一部分,它致力于使用計(jì)算機(jī)理解人類語言中的句子或詞語。NLP 以降低用戶工作量并滿足使用自然語言進(jìn)行人機(jī)交互的愿望為目的。因?yàn)橛脩艨赡懿皇煜C(jī)器語言,所以 NLP 就能幫助這樣的用戶使用自然語言和機(jī)器交流。
語言可以被定義為一組規(guī)則或符號(hào)。我們會(huì)組合符號(hào)并用來傳遞信息或廣播信息。NLP 基本上可以分為兩個(gè)部分,即自然語言理解和自然語言生成,它們演化為理解和生成文本的任務(wù)(圖 1)。
圖 1:NLP 的粗分類
語言學(xué)是語言的科學(xué),它包括代表聲音的音系學(xué)(Phonology)、代表構(gòu)詞法的詞態(tài)學(xué)(Morphology)、代表語句結(jié)構(gòu)的句法學(xué)(Syntax)、代表理解的語義句法學(xué)(Semantics syntax)和語用學(xué)(Pragmatics)。
NLP 的研究任務(wù)如自動(dòng)摘要、指代消解(Co-Reference Resolution)、語篇分析、機(jī)器翻譯、語素切分(Morphological Segmentation)、命名實(shí)體識(shí)別、光學(xué)字符識(shí)別和詞性標(biāo)注等。自動(dòng)摘要即對(duì)一組文本的詳細(xì)信息以一種特定的格式生成一個(gè)摘要。指代消解指的是用句子或更大的一組文本確定哪些詞指代的是相同對(duì)象。語篇分析指識(shí)別連接文本的語篇結(jié)構(gòu),而機(jī)器翻譯則指兩種或多種語言之間的自動(dòng)翻譯。詞素切分表示將詞匯分割為詞素,并識(shí)別詞素的類別。命名實(shí)體識(shí)別(NER)描述了一串文本,并確定哪一個(gè)名詞指代專有名詞。光學(xué)字符識(shí)別(OCR)給出了打印版文檔(如 PDF)中間的文字信息。詞性標(biāo)注描述了一個(gè)句子及其每個(gè)單詞的詞性。雖然這些 NLP 任務(wù)看起來彼此不同,但實(shí)際上它們經(jīng)常多個(gè)任務(wù)協(xié)同處理。
2、NLP 的層級(jí)
語言的層級(jí)是表達(dá) NLP 的最具解釋性的方法,能通過實(shí)現(xiàn)內(nèi)容規(guī)劃(Content Planning)、語句規(guī)劃(Sentence Planning)與表層實(shí)現(xiàn)(Surface Realization)三個(gè)階段,幫助 NLP 生成文本(圖 2)。
圖 2:NLP 架構(gòu)的階段
語言學(xué)是涉及到語言、語境和各種語言形式的學(xué)科。與 NLP 相關(guān)的重要術(shù)語包括:
- 音系學(xué)
- 形態(tài)學(xué)
- 詞匯學(xué)
- 句法學(xué)
- 語義學(xué)
- 語篇分析
- 語用學(xué)
3、自然語言生成
NLG 是從內(nèi)在表征生成有含義的短語、句子和段落的處理過程。它是 NLP 的一部分,包括四個(gè)階段:確定目標(biāo)、通過場(chǎng)景評(píng)估規(guī)劃如何實(shí)現(xiàn)目標(biāo)、可用的對(duì)話源、把規(guī)劃實(shí)現(xiàn)為文本,如下圖 3。生成與理解是相反的過程。
圖 3:NLG 的組件
4、NLP 的應(yīng)用
NLP 可被他應(yīng)用于各種領(lǐng)域,例如機(jī)器翻譯、垃圾郵件檢測(cè)、信息提取等。在這一部分,該論文對(duì)以下 NLP 的應(yīng)用進(jìn)行了介紹:
- 機(jī)器翻譯
- 文本分類
- 垃圾郵件過濾
- 信息提取
- 自動(dòng)摘要
- 對(duì)話系統(tǒng)
- 醫(yī)療
深度學(xué)習(xí)中的 NLP
以上內(nèi)容對(duì) NLP 進(jìn)行了基礎(chǔ)的介紹,但忽略的近年來深度學(xué)習(xí)在 NLP 領(lǐng)域的應(yīng)用,因此我們補(bǔ)充了北京理工大學(xué)的一篇論文。該論文回顧了 NLP 之中的深度學(xué)習(xí)重要模型與方法,比如卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)、遞歸神經(jīng)網(wǎng)絡(luò);同時(shí)還討論了記憶增強(qiáng)策略、注意力機(jī)制以及無監(jiān)督模型、強(qiáng)化學(xué)習(xí)模型、深度生成模型在語言相關(guān)任務(wù)上的應(yīng)用;最后還討論了深度學(xué)習(xí)的各種框架,以期從深度學(xué)習(xí)的角度全面概述 NLP 發(fā)展近況。
如今,深度學(xué)習(xí)架構(gòu)、算法在計(jì)算機(jī)視覺、模式識(shí)別領(lǐng)域已經(jīng)取得驚人的進(jìn)展。在這種趨勢(shì)之下,近期基于深度學(xué)習(xí)新方法的 NLP 研究有了極大增長(zhǎng)。
圖4:2012 年-2017 年,在 ACL、EMNLP、EACL、NAACL 會(huì)議上呈現(xiàn)的深度學(xué)習(xí)論文數(shù)量增長(zhǎng)趨勢(shì)。
十幾年來,解決 NLP 問題的機(jī)器學(xué)習(xí)方法都是基于淺層模型,例如 SVM 和 logistic 回歸,其訓(xùn)練是在非常高維、稀疏的特征上進(jìn)行的。在過去幾年,基于密集向量表征的神經(jīng)網(wǎng)絡(luò)在多種 NLP 任務(wù)上都產(chǎn)生了優(yōu)秀成果。這一趨勢(shì)由詞嵌入與深度學(xué)習(xí)方法的成功所興起。深度學(xué)習(xí)使得多層級(jí)的自動(dòng)特征表征的學(xué)習(xí)成為了可能。傳統(tǒng)的基于機(jī)器學(xué)習(xí)方法的 NLP 系統(tǒng)極度依賴手寫特征,既耗費(fèi)時(shí)間,又總是不完整。
在 2011 年,Collobert 等人的論文證明簡(jiǎn)單的深度學(xué)習(xí)框架能夠在多種 NLP 任務(wù)上超越最頂尖的方法,比如在實(shí)體命名識(shí)別(NER)任務(wù)、語義角色標(biāo)注 (SRL)任務(wù)、詞性標(biāo)注(POS tagging)任務(wù)上。從此,各種基于深度學(xué)習(xí)的復(fù)雜算法被提出,來解決 NLP 難題。
這篇論文回顧了與深度學(xué)習(xí)相關(guān)的重要模型與方法,比如卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)、遞歸神經(jīng)網(wǎng)絡(luò)。此外,論文中還討論了記憶增強(qiáng)策略、注意機(jī)制以及無監(jiān)督模型、強(qiáng)化學(xué)習(xí)模型、深度生成模型在語言相關(guān)任務(wù)上的應(yīng)用。
在 2016 年,Goldberg 也以教程方式介紹過 NLP 領(lǐng)域的深度學(xué)習(xí),主要對(duì)分布式語義(word2vec、CNN)進(jìn)行了技術(shù)概述,但沒有討論深度學(xué)習(xí)的各種架構(gòu)。這篇論文能提供更綜合的思考。
摘要:深度學(xué)習(xí)方法利用多個(gè)處理層來學(xué)習(xí)數(shù)據(jù)的層級(jí)表征,在許多領(lǐng)域獲得了頂級(jí)結(jié)果。近期,在自然語言處理領(lǐng)域出現(xiàn)了大量的模型設(shè)計(jì)和方法。在此論文中,我們回顧了應(yīng)用于 NLP 任務(wù)中,與深度學(xué)習(xí)相關(guān)的重要模型、方法,同時(shí)概覽了這種進(jìn)展。我們也總結(jié)、對(duì)比了各種模型,對(duì) NLP 中深度學(xué)習(xí)的過去、現(xiàn)在與未來提供了詳細(xì)理解。
論文地址: https://arxiv.org/abs/1708.02709
圖 2:一個(gè) D 維向量的分布式向量表達(dá),其中 D << V,V 是詞匯的大小。
圖 3:Bengio 等人 2003 年提出的神經(jīng)語言模型,C(i) 是第 i 個(gè)詞嵌入。
圖 4:CBOW(continuous bag-of-words)的模型
表 1:框架提供嵌入工具和方法
圖 5:Collobert 等人使用的 CNN 框架,來做詞級(jí)別的類別預(yù)測(cè)
圖 6:在文本上的 CNN 建模 (Zhang and Wallace, 2015)
圖 7:4 個(gè) 7-gram 核的 Top7 -grams,每個(gè)核對(duì)一種特定類型的 7-gram 敏感 (Kim, 2014)
圖 8:DCNN 子圖。有了動(dòng)態(tài)池化,一頂層只需要小寬度的過濾層能夠關(guān)聯(lián)輸入語句中離得很遠(yuǎn)的短語 (Kalchbrenner et al., 2014)。
圖 9:簡(jiǎn)單的 RNN 網(wǎng)絡(luò)
圖 10:LSTM 和 GRU 的示圖 (Chung et al., 2014)
圖 11:不同單元類型關(guān)于迭代數(shù)量(上幅圖)和時(shí)鐘時(shí)間(下幅圖)的訓(xùn)練、驗(yàn)證集學(xué)習(xí)曲線。其中 y 軸為對(duì)數(shù)尺度描述的模型負(fù)對(duì)數(shù)似然度。
圖 12:LSTM 解碼器結(jié)合 CNN 圖像嵌入器生成圖像描述 (Vinyals et al., 2015a)
圖 13:神經(jīng)圖像 QA (Malinowski et al., 2015)
圖 14:詞校準(zhǔn)矩陣 (Bahdanau et al., 2014)
圖 15:使用注意力進(jìn)行區(qū)域分級(jí) (Wang et al., 2016)
圖 16:特定區(qū)域語句上的注意模塊專注點(diǎn) (Wang et al., 2016)
圖 17:應(yīng)用于含有「but」語句的遞歸神經(jīng)網(wǎng)絡(luò) (Socher et al., 2013)
圖 18:基于 RNN 的 AVE 進(jìn)行語句生成(Bowman et al., 2015)