自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

初學者指南:神經(jīng)網(wǎng)絡在自然語言處理中的應用

開發(fā) 開發(fā)工具 深度學習 自然語言處理
深度學習正在給自然語言處理帶來巨大的變革。但是,作為一個初學者,要從哪里起步才好呢?深度學習和自然語言處理都是很寬泛的領域。哪些方面才是最重要的,還有,深度學習又是從哪個層面深刻影響了 NLP 呢?

看完這篇文章之后,你將會知道:

  • 給自然語言處理領域帶來最深刻影響的神經(jīng)網(wǎng)絡結(jié)構(gòu);
  • 深度學習可以對自然語言處理的各個層面制定學習任務;
  • 密集詞匯表示的重要性和學習表示的方法。

讓我們開始吧。

概覽

這篇文章將分成 12 個 section,并按以下結(jié)構(gòu)排布,分別是:

  1. 介紹;
  2. 神經(jīng)網(wǎng)絡結(jié)構(gòu);
  3. 特征表示;
  4. 前饋神經(jīng)網(wǎng)絡;
  5. 詞嵌入;
  6. 神經(jīng)網(wǎng)絡訓練;
  7. 串聯(lián)和多任務學習;
  8. 結(jié)構(gòu)化輸出預測;
  9. 卷積層;
  10. 循環(huán)神經(jīng)網(wǎng)絡;
  11. 具體的 RNN 結(jié)構(gòu);
  12. 模型樹。

1. 關于這篇論文

這篇論文的標題是「基于神經(jīng)網(wǎng)絡模型的自然語言處理入門」(A Primer on Neural Network Models for Natural Language Processing)。

對應的論文 2015 年發(fā)表在 ArXiv 上。與其說是論文,不如說是一篇技術(shù)報告或者說是教程,面向研究員和學生,對基于深度學習方法的自然語言處理(NLP)作了綜合性的介紹。

這篇教程審視了針對自然語言處理的研究的幾個深度學習模型,以求自然語言的研究能加快神經(jīng)網(wǎng)絡技術(shù)的發(fā)展。

入門教程由曾是 Google Research 科學家和 NLP 研究員的 Yoav Goldberg

(https://www.cs.bgu.ac.il/~yoavg/uni/) 編寫。這是一篇技術(shù)報告,有大約 62 頁以及 13 頁的參考文獻。

這對于初學者來說是很理想的教材,因為:

  • 它對讀者的基礎要求不高,不需要對先了解機器學習和語言處理的相關知識;
  • 涉及領域?qū)挿?,包括了很多深度學習方法和自然語言處理的問題。

在這篇教程中,我希望能為 NLP 開發(fā)者和新手介紹一些基礎背景知識,術(shù)語,實用工具以及方法論,從而明白其背后的神經(jīng)網(wǎng)絡模型的理論,應用到他們自己的工作中... 面向的是那些有志于利用已有的,有價值的技術(shù),并創(chuàng)造新方法去解決他們最感興趣的 NLP 的人。

通常情況下,在語言學和自然語言處理中,關鍵的深度學習方法需要翻模(重命名)以建立有用的溝通橋梁。

***,這篇 2015 年的入門教程在 2017 年出書了,書名為「Neural Network Methods for Natural Language Processing (http://amzn.to/2tXn2dZ)」。

2. 神經(jīng)網(wǎng)絡結(jié)構(gòu)

這一小節(jié)將介紹神經(jīng)網(wǎng)絡結(jié)構(gòu)的不同類型,作為后面章節(jié)的參照。

全連接前饋神經(jīng)網(wǎng)絡是非線性學習器,因此在極大程度上可以隨意取代線性學習器。

這里介紹 4 種類型的神經(jīng)網(wǎng)絡結(jié)構(gòu),這里著重介紹其應用案例和參考文獻:

  • 全連接前饋神經(jīng)網(wǎng)絡,例如多層感知網(wǎng)絡;
  • 帶有卷積和池化層的網(wǎng)絡,例如卷積神經(jīng)網(wǎng)絡;
  • 循環(huán)神經(jīng)網(wǎng)絡,例如長短時記憶網(wǎng)絡;
  • 遞歸神經(jīng)網(wǎng)絡。

如果你只對應用感興趣,以上內(nèi)容將為你提供直接尋找更多資源的線索。

3. 特征表示

這一節(jié)著重介紹深度學習模型訓練稀疏或者密集型表示的各種方法。

也許,從稀疏輸入(sparse-input)線性模型到神經(jīng)網(wǎng)絡模型***的飛躍,就是放棄將每一個特征作為一個維度的表示方式(所謂的 one-hot 表示),而使用密集型向量的表示方式。

NLP 分類系統(tǒng)的一般結(jié)構(gòu)總結(jié)如下:

  • 提取核心語言特征的集合;
  • 為每一個向量檢索關聯(lián)向量;
  • 組合特征向量;
  • 將組合向量反饋給非線性分類器。

這個結(jié)構(gòu)的關鍵在于使用密集型特征向量而不是稀疏特征向量,使用核心特征而不是特征組合。

需要注意在特征提取階段中,神經(jīng)網(wǎng)絡只有提取核心特征。這和傳統(tǒng)的基于線性模型的 NLP 不同,傳統(tǒng)的 NLP 的特征設計必須手動設置以明確規(guī)定核心特征和其中的相互作用。

4. 前饋神經(jīng)網(wǎng)絡

這一節(jié)將提供前饋人工神經(jīng)網(wǎng)絡的速成課程。

人工神經(jīng)網(wǎng)絡的速成課程

以「A Primer on Neural Network Models for Natural Language Processing」中含兩個隱藏層的前饋神經(jīng)網(wǎng)絡為例。這些神經(jīng)網(wǎng)絡都是使用數(shù)學概念和腦啟發(fā)的形式而表示出來的。通常神經(jīng)網(wǎng)絡的研究論題包括如下幾個:

表示能力(e.g. 一般近似);

  • 一般非線性特征(e.g. 變換函數(shù));
  • 輸出的變換(e.g. softmax);
  • 詞匯嵌入(e.g. 嵌入式學習的密集型表征);
  • 損失函數(shù)(e.g. 折葉(ReLU)和對數(shù)損失函數(shù))。

5. 詞嵌入

對于自然語言處理的神經(jīng)網(wǎng)絡方法來說,詞嵌入表征是很重要的論題。這一節(jié)將展開這一論題并舉幾個關鍵方法的例子。神經(jīng)網(wǎng)絡在 NLP 中的流行一個重要原因是嵌入方法的使用,在低維空間中將每一個特征表征為一個向量。我們將回顧以下幾個關于嵌入的論題:

  • 隨機初始化(e.g. 以統(tǒng)一的隨機向量啟動);
  • 有監(jiān)督特定任務的預訓練(e.g. 遷移學習);
  • 無監(jiān)督預訓練(e.g. 統(tǒng)計方法,如 word2vec 和 GloVe);
  • 訓練目標(e.g. 目標對輸出向量的影響);
  • 上下文的選擇(e.g. 每一個詞受到的周圍的詞的影響)。

神經(jīng)詞嵌入方法源于語言模型化方法,即訓練網(wǎng)絡以通過上文序列預測下一個詞。

6. 神經(jīng)網(wǎng)絡訓練

這一節(jié)篇幅較大,著重介紹神經(jīng)網(wǎng)絡的訓練方式,面向?qū)ι窠?jīng)網(wǎng)絡范式不熟悉的讀者。神經(jīng)網(wǎng)絡的訓練是通過梯度方法,嘗試在一個訓練數(shù)據(jù)集內(nèi)最小化損失函數(shù)的過程。

這一節(jié)重點關注隨機梯度下降(以及類似的 mini-batch)以及訓練過程中的正則化方法。

有趣的是,神經(jīng)網(wǎng)絡的計算圖觀點的提出為一些實現(xiàn)深度學習模型的符號化數(shù)值程序庫(symbolic numerical libraries),如 Theano 和 TensorFlow 提供了很好的入門方法。

只要圖被建立起來,就能很直觀的理解前向計算(計算輸出結(jié)果)或者方向計算(計算梯度)。

7. 級聯(lián)(Cascading)和多任務學習

這一節(jié)將在前一節(jié)的基礎上,我們將總結(jié)級聯(lián) NLP 模型和多語言任務的學習模型。

級聯(lián)模型:利用神經(jīng)網(wǎng)絡模型的計算圖定義加入中間表征(編碼)以建立更加復雜的模型。例如,我們可以通過近鄰詞匯,以及/或者其組成特征建立一個前饋網(wǎng)絡來預測詞匯。

多任務學習:各種相關的語言預測任務,并不互相反饋,但會在任務中分享信息。

預測命名實體的邊界,以及語句的下一個詞匯,都依賴于一些潛在的句法-語義表征上。這些高級概念都是在神經(jīng)網(wǎng)絡語境中描述的,以在模型之間建立關聯(lián)的理解,或者在訓練過程(誤差反向傳播)和預測過程中,共享信息。

8. 結(jié)構(gòu)化輸出的預測

這一節(jié)關注使用深度學習方法進行結(jié)構(gòu)化預測的幾個自然語言處理任務的例子,比如,序列、決策樹和計算圖。

典型例子有序列標注(e.g. 詞性標注)的序列分割(分組,NER(命名實體識別)),以及句法分析。本節(jié)內(nèi)容包括基于貪婪算法的和以搜索為核心的結(jié)構(gòu)化預測,而主要集中討論后者。

以搜索為核心是自然語言結(jié)構(gòu)化預測的一般方法。

9. 卷積層

這一節(jié)提供了卷積神經(jīng)網(wǎng)絡的速成課程,以及討論卷積網(wǎng)絡對自然語言處理研究帶來的變革。CNN 被證明在自然語言處理的分類任務上表現(xiàn)出色,比如情緒分析,e.g. 在文中尋找特定的子序列或者結(jié)構(gòu)進行預測。

卷積神經(jīng)網(wǎng)絡一般被設計成在大型結(jié)構(gòu)中用以識別 indicative local predictors,并將其組合以生成結(jié)構(gòu)的固定大小的向量表征,捕捉這些 local aspects 對于預測任務來說是很有用的。

10. 循環(huán)神經(jīng)網(wǎng)絡

正如前一節(jié)一樣,這一節(jié)也將介紹一種特定的網(wǎng)絡和其在 NLP 中的應用。比如,應用 RNN 的序列建模。

循環(huán)神經(jīng)網(wǎng)絡允許在一個固定大小的向量中表示任意大小的結(jié)構(gòu)化輸入,而只關心輸入的結(jié)構(gòu)化性質(zhì)。

由于 RNNs 在 NLP 中很受歡迎,尤其是 LSTM,這一節(jié)將討論如下幾個關于循環(huán)的論題和模型:

  • RNN 抽象概念(e.g. 網(wǎng)絡圖中的循環(huán)連接);
  • RNN 訓練過程(e.g. 沿時間的反向傳播);
  • 多層(堆疊)RNN(e.g. 深度學習的「深」的解釋);
  • BI-RNN(e.g. 前向和反向序列作為輸入);
  • 用于表示的 RNN 堆疊。

我們將集中討論 RNN 模型結(jié)構(gòu)或者結(jié)構(gòu)元素中,特別是:

  • 接收器(acceptor):在完整輸入序列之后的輸出的損失計算;
  • 編碼器(encoder):***的向量作為輸入序列的編碼器;
  • 變換器(transducer):在輸入序列中,每一次觀測生成一個輸出;
  • 編碼器-譯碼器(encoder-decoder):輸入序列在被譯碼成輸出序列之前,編碼成一個固定長度的向量。

11. 具體的 RNN 結(jié)構(gòu)

這一節(jié)將在上一節(jié)的基礎上討論特定的 RNN 算法。比如:

  • 簡單 RNN(SRNN);
  • 長短時記憶(LSTM);
  • 門控循環(huán)單元(GRU)。

12. 模型建模

***一節(jié)著重討論一種更加復雜的網(wǎng)絡,學習樹型建模的遞歸神經(jīng)網(wǎng)絡。所謂的樹包括了句法樹,話語樹,甚至是表示(由一句話的幾個部分表達的)情緒的樹。我們希望在特定的樹節(jié)點上預測價值,價值預測以根節(jié)點為基礎,或者為整棵樹或者部分樹指定一個預測值。

正如循環(huán)神經(jīng)網(wǎng)絡保持輸入序列的狀態(tài),遞歸神經(jīng)網(wǎng)絡保持樹節(jié)點的狀態(tài)。

這里有一個遞歸神經(jīng)網(wǎng)絡的例子,取自「A Primer on Neural Network Models for Natural Language Processing.」

遞歸神經(jīng)網(wǎng)絡

總結(jié)

這篇文章介紹了自然語言處理的深度學習方法入門。

具體來說,你學到了:

  • 在自然語言處理領域中最重要的幾種神經(jīng)網(wǎng)絡結(jié)構(gòu);
  • 成功應用深度學習的幾類自然語言處理任務;
  • 密集型詞表征和對應的學習方法的重要性。

原文:

https://machinelearningmastery.com/primer-neural-network-models-natural-language-processing/

【本文是51CTO專欄機構(gòu)“機器之心”的原創(chuàng)譯文,微信公眾號“機器之心( id: almosthuman2014)”】

 

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2023-04-18 15:15:06

神經(jīng)網(wǎng)絡激活函數(shù)開發(fā)

2018-02-27 09:32:13

神經(jīng)網(wǎng)絡自然語言初探

2021-05-10 08:50:32

網(wǎng)絡管理網(wǎng)絡網(wǎng)絡性能

2017-04-10 16:15:55

人工智能深度學習應用

2022-04-24 15:21:01

MarkdownHTML

2023-04-26 13:49:52

2023-10-14 17:21:53

Scala編程

2022-03-28 09:52:42

JavaScript語言

2023-07-28 07:31:52

JavaScriptasyncawait

2023-07-03 15:05:07

預測分析大數(shù)據(jù)

2022-10-10 15:28:45

負載均衡

2020-04-29 09:10:26

Python多線程多處理

2010-06-13 11:13:38

UML初學者指南

2022-07-22 13:14:57

TypeScript指南

2024-08-07 10:18:00

2020-04-24 10:53:08

自然語言處理NLP是人工智能

2017-06-29 13:02:54

大數(shù)據(jù)自然語言NLP

2010-08-26 15:47:09

vsftpd安裝

2018-10-28 16:14:55

Reactreact.js前端

2012-03-14 10:56:23

web app
點贊
收藏

51CTO技術(shù)棧公眾號