歡迎你們前往雲+社區,獲取更多騰訊海量技術實踐乾貨哦~程序員
深度學習(Deep Learning)技術對天然語言處理(NLP,Natural Language Processing)領域有着巨大的影響。算法
但做爲初學者,您要從何處開始學習呢?markdown
深度學習和天然語言處理都是較爲廣闊的領域,但每一個領域重點研究些什麼?在天然語言處理領域中,又是哪一方面最受深度學習的影響呢?網絡
經過閱讀本文,您會對天然語言處理中的深度學習有一個初步的認識。架構
閱讀這篇文章後,您能夠知道:app
如今,讓咱們開始本次學習之旅。機器學習
圖片做者 faungg ,部分版權保留。函數
本文將遵循相關論文的結構而分爲 12 個部分,分別是:工具
我想給你們介紹一下本文的主要部分和風格,以及高層次的話題介紹。學習
若是你想繼續深刻研究,我強烈推薦閱讀全文或者一些最近出版的的書。
論文的題目是:「A Primer on Neural Network Models for Natural Language Processing 」 (天然語言處理的神經網絡模型入門)。
這篇論文能夠免費在 ArXiv 上獲取,最新一次提交則是在 2015 年。它不僅是一篇論文,更像是一篇技術報告或教程,而且文中還提供了針對學生與研究人員的,關於天然語言處理(NLP)中的深度學習方法的比較全面的介紹。
本教程從天然語言處理研究的角度對神經網絡模型進行了相關研究,力圖令天然語言領域的研究人員能跟上神經網絡技術的發展速度。
這篇入門論文是由 NLP 領域研究員 Yoav Goldberg 撰寫的,他曾在 Google Research 擔任研究科學家。雖然 Yoav 最近引發了一些爭議,但我不會所以反對他。
這是一份技術報告,大概共有 62 頁,其中約有 13 頁是參考文獻列表。
這篇文章很是適合初學者,其緣由有二:
在本教程中,我嘗試給 NLP 從業人員(以及新人)提供基本的背景知識,術語,工具和方法,使他們可以理解神經網絡模型背後的原理,並將其應用到本身的工做中。 ... 本文的受衆,是那些有興趣使用現存的有用技術,並以實用且富有創造性的方式將其應用到他們最喜歡的 NLP 問題中的讀者。
一般,關鍵的深度學習方法經過語言學或天然語言處理的術語或命名法從新創建,這(在深度學習與天然語言處理之間)提供了一個有用的橋樑。
最後值得一提的是,這篇 2015 年的入門教程已在 2017 年出版,名爲 「Neural Network Methods for Natural Language Processing」 (天然語言處理中的神經網絡方法)。
若是你喜歡這篇入門教程而且想深刻研究,我強烈推薦您繼續閱讀 Yoav 的這本書。
本小節簡要介紹了各類不一樣類型的神經網絡架構,在後面的章節中對它們進行了一些交叉引用。
全鏈接(Fully connected)前饋神經網絡是非線性學習器,在大多數狀況下,它能夠替換到使用了線性學習器的任何地方。
小節內容涵蓋了四種神經網絡架構,並重點介紹了各類應用和引用的例子:
若是您只對其中一種特定網絡類型的應用感興趣,並想直接閱讀相關文獻,本節則提供了一些很好的來源。
本節重點介紹瞭如何將稀疏表示過渡轉化爲密集表示,而後再運用到深度學習模型訓練中。
當把輸入的稀疏線性模型轉變爲基於神經網絡的模型時,最大的變化大概就是再也不將每一個特徵表示爲一個惟一的維度(所謂的單一表示 [One-hot Representation]),而是將它們表示爲密集向量(Dense Vector)。
本節中介紹了 NLP 分類系統的通常結構,可總結以下:
這個公式的關鍵在於使用了密集特徵向量而不是稀疏特徵向量,而且用的是核心特徵而非特徵組合。
請注意,在神經網絡設置中的特徵提取階段,僅僅處理核心特徵的提取。這與傳統的基於線性模型的 NLP 系統截然不同,由於在該系統中,特徵設計者不只必須手動地指定感興趣的核心特徵,並且還須要手動指定它們之間的相互做用。
本節是前饋人工神經網絡的速成課。
網絡是經過大腦啓發的隱喻與數學符號來呈現的。常見的神經網絡主題包括以下幾種:
在天然語言處理中,詞嵌入表示(Word Embedding Representations)是神經網絡方法的關鍵部分。本節則擴展了這個主題,並列舉了一些關鍵的方法。
神經網絡方法中的一個主要組成部分是使用嵌入 - 將每一個特徵表示爲低維空間中的向量
本節中介紹了關於詞嵌入的如下幾個主題:
神經詞嵌入起源於語言建模領域,其中訓練所得的網絡則用於基於先前詞的序列來預測下一個詞。
這個較長的章節是爲神經網絡新手而寫的,它着重於訓練神經網絡的具體步驟。
神經網絡的訓練,是經過運用基於梯度的方法將訓練集上的損失函數最小化來完成的。
本節重點介紹隨機梯度降低法(還有類似的如 Mini-batch 這樣的方法)以及訓練過程當中的一些重要主題,好比說正則化。
有趣的是,本節還提供了神經網絡的計算圖形透視圖,爲諸如 Theano 和 TensorFlow 這樣的符號化數值計算庫提供了一個引子,而這些庫則是當前流行的用於實現深度學習模型的基礎。
一旦圖形被構建,就能夠直接運行正向計算(計算計算結果)或者反向計算(計算梯度)
在前一節的基礎上,本節總結了級聯 NLP 模型和多語言任務學習模型的做用。
級聯模型(Model cascading):利用神經網絡模型計算圖的定義來使用中間表示(編碼)開發更復雜的模型。
例如,咱們可能有一個前饋網絡,它用於根據詞的相鄰詞和(或)構成它的字符來預測詞的詞性。
多任務學習(Multi-task learning):有一些相互關聯的天然語言預測任務,它們不會相互影響,但它們各自的信息能夠跨任務共享。
用於預測塊邊界、命名實體邊界和句子中的下一個單詞的信息,都依賴於一些共享的基礎句法語義表示
這兩個先進的概念都是在神經網絡的背景下描述的,它容許模型或信息在訓練(偏差反向傳播)和預測期間具備連通性。
本節關注的是使用深度學習方法進行結構化預測的天然語言任務,好比說序列、樹,以及圖。
典型的例子是序列標記(例如詞性標註 [Part-of-speech tagging]),序列分割(分塊,NER [Named-entity Recognition,命名實體識別])以及句法分析。
本部分涵蓋了基於貪心思想和基於搜索的結構化預測,重點關注後者。
經常使用的天然語言結構化預測方法,是基於搜索的方法。
本節提供了卷積神經網絡(CNN,Convolutional Neural Networks)的速成課程,以及闡述了這一網絡對天然語言領域的影響。
值得注意的是,當下已經證實了 CNN 對諸如情感分析(Sentiment analysis)這樣的分類 NLP 任務很是有效,例如學習尋找文本中的特定子序列或結構以進行預測。
卷積神經網絡被設計來識別大型結構中的指示性局部預測因子(Indicative local predictors),而且將它們組合起來以產生結構的固定大小的向量表示,從而捕獲這些對於預測任務而言最具信息性的局部方面(Local aspects)。
與前一節同樣,本節重點介紹了在 NLP 中所使用的特定網絡及其做用與應用。在 NLP 中,遞歸神經網絡(RNN,Recurrent Neural Networks)用於序列建模。
遞歸神經網絡(RNN)容許在固定大小的向量中表示任意大小的結構化輸入,同時也會注意輸入的結構化屬性。
考慮到 RNN,特別是 NLP 中的長短時間記憶(LSTM)的普及,這個較大的章節介紹了各類關於循環神經網絡的主題與模型,其中包括:
咱們將在 RNN 模型結構或結構元素上花費必定的時間,特別是:
本章節基於上一節的內容,介紹了具體的 RNN 算法。
具體包括以下幾點:
最後一節則重點關注一個更復雜的網絡,咱們稱爲學習樹型建模的遞歸神經網絡。
樹,能夠是句法樹,話語樹,甚至是由一個句子中各個部分所表達的情緒的樹。咱們但願基於特定的樹節點或基於根節點來預測值,或者爲完整的樹或樹的一部分指定一個質量值。
因爲遞歸神經網絡保留了輸入序列的狀態,因此遞歸神經網絡會維持樹中節點的狀態。
若是您正在深刻研究,本節將提供更多有關該主題的資源。
這篇文章介紹了一些關於天然語言處理中的深度學習的入門知識。
具體來講,你學到了: