自然語言處理技術詳細概覽

貪心科技發表於2019-01-17

按照語言習慣,NLP技術從下到上可以分為3個層面:詞法、句法、語義。

1.    詞彙是語言的最小單元,因此詞法技術可以被視為NLP技術的底層,也是其餘NLP技術的基礎。詞法技術的核心任務是識別和區分文字中的單詞,以及對詞語進行一些預處理。因為詞語具有確定的形式,所以通過規則匹配就可以做到比較準確的識別。但是現階段的分詞結果對語義的理解支援不夠,如何更好的輔助語義理解,將是分詞技術關注的重點。

2.    詞彙組織成語句,句法技術順理成章的成為NLP的第二個層面。句法是對語言進行深層次理解的基石,特別對於機器翻譯非常重要。句法技術的主要任務是識別出句子所包含的句法成分以及這些成分之間的關係,一般以句法樹來表示句法分析的結果。句法分析一直是NLP技術前進的巨大障礙,主要存在兩個難點。一是歧義,自然語言存在大量的歧義現象。人類自身可以依靠大量的先驗知識有效地消除各種歧義,而機器由於在知識表示和獲取方面存在嚴重不足,很難像人類那樣進行句法消歧。二是搜尋空間,句法分析是一個極為複雜的任務,候選樹個數隨句子增多呈指數級增長,搜尋空間巨大。因此,必須設計出合適的解碼器,以確保能夠在可以容忍的時間內搜尋到模型定義最優解。

3.    不論是英語還是漢語,語言的目的都是為了表達含義。因此,語義理解是NLP技術的終極目標,可以說各種NLP技術都採用不同的方式為該目的服務。語義技術不同於上述兩個層面,有明確的評判結果,只能通過一些具體場景來判斷機器對語義的理解是否恰當。例如在文字關鍵詞提取中,就可以通過對提取結果的分析比較,來衡量機器對淺層語義的理解能力。

接下來會依次介紹詞法、句法中的關鍵技術,之後介紹目前較熱的基於機器學習詞向量與深度學習中的NLP技術。

1. 詞法

詞法技術的核心任務是識別和區分文字中的單詞,其過程就是分詞的過程,因此詞法技術主要是各種分詞技術。主要分為兩大類,規則分詞與統計分詞。另外,不同語言的分詞技術也不近相同,因為每個語言詞法層面區別較大。比如英文中,通過空格即可區分詞語。但是漢語中,詞語是連在一起的,所以必須通過一定的技術才能做到區分,且區分精度較之英文稍差。以下主要介紹中文分詞技術。

2. 規則分詞

規則分詞就是通過詞典庫+字串匹配的方式對文字進行分詞。因為詞語具有確定的形式,所以這種分詞方式能達到比較高的準確率。據SunM.S.和Benjamin K.T.(1995)的研究表明中文中90.0%左右的句子,正向最大匹配法和逆向最大匹配法完全重合且正確,只有大概9.0%的句子兩種切分方法得到的結果不一樣,但其中必有一個是正確的(歧義檢測成功),只有不到1.0%的句子,使用正向最大匹配法和逆向最大匹配法的切分雖重合卻是錯的,或者正向最大匹配法和逆向最大匹配法切分不同但兩個都不對(歧義檢測失敗)。基於上述結論,這種方法大約能正確切分90%的文字內容。同時,因為演算法簡單,這種方式具備較快的速度。

但是這種方式也具有明顯的缺點,因為其基於詞典切分,所以無法識別出詞典中不存在的詞語。除此以外,當存在多種切分方式的時候,無法判斷應該使用哪一種切分方法,即歧義檢測能力較弱。

實際應用中,常用該方法對文字進行初步分詞,某些場景下,該方法甚至可以完全滿足業務需要。

3. 統計分詞(語言模型

上文提到規則分詞的兩個缺陷:1)無法切分詞典中的未登入詞語,2)無法進行歧義檢測。為了克服這兩個缺點,需要引入統計學方法,也就是語言模型

3.1 何為語言模型

顧名思義,語言模型是對語言的建模,其核心目的是找到待評測資料中,最符合語言習慣的表達(概率最大)。該模型廣泛用於NLP領域中的多項技術,包括資訊檢索機器翻譯語音識別。用概率論的專業術語描述語言模型就是:為長度為m的字串確定其概率分佈,採用鏈式法則可以將公式化簡為,如公式1所示。

自然語言處理技術詳細概覽

公式1: 鏈式法則計算長度為m的字串的概率分佈

3.2 n元模型

觀察公式1易知,當文字過長時,公式右部從第三項起的每一項計算難度都很大。為解決該問題,有人提出n元模型(n-gram model)降低該計算難度。所謂n元模型就是在估算條件概率時,忽略距離大於等於n的上文詞的影響,因此公式1的計算可簡化為公式2。

自然語言處理技術詳細概覽

公式2:n元模型

當n=1時稱為一元模型(unigram model),此時整個句子的概率可表示為:P(ω1,ω2,…,ωm)=P(ω1)P(ω2)…P(ωm)觀察可知,在一元語言模型中,整個句子的概率等於各個詞語概率的乘積。言下之意就是各個詞之間都是相互獨立的,這無疑是完全損失了句中的詞序資訊。所以一元模型的效果並不理想。

當n=2時稱為二元模型(bigram model),公式2變為P(ωi|ω1,ω2,…,ωi-1)=P(ωi|ωi-1)。當n=3時稱為三元模型(trigram model),公式3變為P(ωi|ω1,ω2,…,ωi-1)=P(ωi|ωi-2,ωi-1)。顯然當n≥2時,該模型是可以保留一定的詞序資訊的,而且n越大,保留的詞序資訊越豐富,但計算成本也呈指數級增長。

一般使用頻率計數的比例來計算n元條件概率,如公式4所示:

自然語言處理技術詳細概覽

公式4: 使用頻率計數的比例計算n元條件概率,count(ωi-(n-1),…,ωi-1)表示詞語ωi-(n-1),…,ωi-1在語料庫中出現的總次數。

n元模型的思想是把每個詞看做是由詞的最小單位的各個字組成的,如果相連的字在不同的文字中出現的次數越多,就證明這相連的字很可能就是一個詞。因此我們就可以利用字與字相鄰出現的頻率來反應成詞的可靠度,統計語料中相鄰共現的各個字的組合的頻度,當組合頻度高於某一個臨界值時,我們便可認為此字組可能會構成一個詞語。

除了n元模型以外,比較著名的統計分詞方法還有馬爾可夫模型(HMM)和條件隨機場(CRF)模型,它們是將分詞作為字在字串中的序列標註任務來實現的。

通過這種方式,可以一定程度上彌補規則分詞的缺陷,一是可以對詞典中未出現的詞進行劃分,二是分詞時考慮了上下文語境。但是這種方法也有明顯的缺陷,即計算複雜度高,導致速度慢,並且需要很大的語料庫作為訓練資料。

3.3 混合分詞

實際應用中,常使用規則分詞+統計分詞的方式,即混合分詞的方式進行分詞。這種組合既可以快速的對大部分文字進行分詞,又可以對無法劃分或存在歧義的文字進行速度慢但精細的劃分。

3.4 分詞無處不在

因為詞語可以被視為語言表達的最小單元,因此,nlp各項技術中,幾乎都會用到分詞技術。並且,往往把分詞作為資料預處理的一部分,為後續的任務服務。

4. 詞性標註

詞性是詞彙基本的語法屬性,通常也稱為詞類詞性標註是在給定句子中判定每個詞的語法範疇,確定其詞性並加以標註的過程。例如,表示人、地點、事物以及其他抽象概念的名稱即為名詞,表示動作或狀態變化的詞為動詞,描述或修飾名詞屬性、狀態的詞為形容詞。如給定一個句子:“這兒是個非常漂亮的公園”,對其的標註結果應如下:“這兒/代詞 是/動詞 個/量詞 非常/副詞 漂亮/形容詞 的/結構助詞 公園/名詞”。

在中文中,一個詞的詞性很多時候都不是固定的,一般表現為同音同形的詞在不同場景下,其表示的語法屬性截然不同,這就為詞性標註帶來很大的困難;但是另外一方面,從整體上看,大多數詞語,尤其是實詞,一般只有一到兩個詞性,且其中一個詞性的使用頻次遠遠大於另一個,即使每次都將高頻詞性作為詞性選擇進行標註,也能實現80%以上的準確率。如此,若我們對常用詞的詞效能夠進行很好地識別,那麼就能夠覆蓋絕大多數場景,滿足基本的準確度要求。

目前較為主流的方法是如同分詞一樣,將句子的詞性標註作為一個序列標註問題來解決,那麼分詞中常用的手段,如隱含馬爾可夫模型條件隨機場模型等皆可在詞性標註任務中使用。除此以外,詞性標註需要有一定的標註規範,如將詞分為名詞、形容詞、動詞,然後用“n”“adj”“v”等來進行表示。中文領域中尚無統一的標註標準,較為主流的主要為北大的詞性標註集和賓州詞性標註集兩大類。

詞性標註沒有獨立的應用場景,主要用於增加語義的精準表達,比如問答系統中,可以使用詞性標註提高問題相似度判斷的準確性。

5. 命名實體識別

與自動分詞、詞性標註一樣,命名實體識別也是自然語言處理的一個基礎任務,是資訊抽取資訊檢索機器翻譯問答系統等多種自然語言處理技術必不可少的組成部分。其目的是識別語料中人名、地名、組織機構名等命名實體。由於這些命名實體數量不斷增加,通常不可能在詞典中窮盡列出,且其構成方法具有各自的規律性,因此,通常把對這些詞的識別在詞彙形態處理(如漢語切分)任務中獨立處理,稱為命名實體識別(Named Entities Recognition,NER)。NER研究的命名實體一般分為3大類(實體類、時間類和數字類)和7小類(人名、地名、組織機構名、時間、日期、貨幣和百分比)。由於數量、時間、日期、貨幣等實體識別通常可以採用模式匹配的方式獲得較好的識別效果,相比之下人名、地名、機構名較複雜,因此近年來的研究主要以這幾種實體為主。

命名實體識別當前並不是一個大熱的研究課題,因為學術界部分認為這是一個已經解決了的問題,但是也有學者認為這個問題還沒有得到很好地解決,原因主要有:命名實體識別只是在有限的文字型別(主要是新聞語料)和實體類別(主要是人名、地名)中取得了效果;與其他資訊檢索領域相比,實體命名評測語料較小,容易產生過擬合;命名實體識別更側重高召回率,但在資訊檢索領域,高準確率更重要;通用的識別多種型別的命名實體的系統性很差。

同時,中文的命名實體識別與英文的相比,挑戰更大,目前未解決的難題更多。命名實體識別效果的評判主要看實體的邊界是否劃分正確以及實體的型別是否標註正確。在英文中,命名實體一般具有較為明顯的形式標誌(如英文實體中的每個詞的首字母要大寫),因此其實體邊界識別相對容易很多,主要重點是在對實體型別的確定。而在漢語中,相較於實體類別標註子任務,實體邊界的識別更加困難。

中文命名實體識別主要有以下難點:

  • 各類命名實體的數量眾多。根據對日報1998年1月的語料庫(共計2305896字)進行的統計,共有人名19965個,而這些人名大多屬於未登入詞。

  • 各類命名實體的數量眾多。根據對日報1998年1月的語料庫(共計2305896字)進行的統計,共有人名19965個,而這些人名大多屬於未登入詞。

  • 巢狀情況複雜。一個命名實體經常和一些片語合成一個巢狀的命名實體,人名中巢狀著地名,地名中也經常巢狀著人名。巢狀的現象在機構名中最為明顯,機構名不僅巢狀了大量的地名,而且還巢狀了相當數量的機構名。互相巢狀的現象大大制約了複雜命名實體的識別,也註定了各類命名實體的識別並不是孤立的,而是互相交織在一起的。

  • 長度不確定。與其他型別的命名實體相比,長度和邊界難以確定使得機構名更難識別。中國人名一般二至四字,常用地名也多為二至四字。但是機構名長度變化範圍極大,少到只有兩個字的簡稱,多達幾十字的全稱。在實際語料中,由十個以上詞構成的機構名佔了相當一部分比例。

類似的,命名實體識別也有3種方法:基於規則、基於統計與混合方法。

  • 基於規則的命名實體識別:規則加詞典是早期命名實體識別中最行之有效的方式。其依賴手工規則的系統,結合命名實體庫,對每條規則進行權重賦值,然後通過實體與規則的相符情況來進行型別判斷。當提取的規則能夠較好反映語言現象時,該方法能明顯優於其他方法。但在大多數場景下,規則往往依賴於具體語言、領域和文字風格,其編制過程耗時且難以涵蓋所有的語言現象,存在可移植性差、更新維護困難等問題。

  • 基於統計的命名實體識別:與分詞類似,目前主流的基於統計的命名實體識別方法有:馬爾可夫模型最大熵模型條件隨機場等。其主要思想是基於人工標註的語料,將命名實體識別任務作為序列標註問題來解決。基於統計的方法對語料庫的依賴比較大,而可以用來建設和評估命名實體識別系統的大規模通用語料庫又比較少,這是該方法的一大制約。

  • 混合方法:自然語言處理並不完全是一個隨機過程,單獨使用基於統計的方法使狀態搜尋空間非常龐大,必須藉助規則知識提前進行過濾修剪處理。目前幾乎沒有單純使用統計模型而不使用規則知識的命名實體識別系統,在很多情況下是使用混合方法,結合規則和統計方法。

命名實體識別目前多用於知識圖譜中,知識圖譜主要是構建實體之間的關係,因此非常依賴於命名實體識別技術。

6. 詞語預處理

詞語預處理的核心思想是排除文字中對語義表達無幫助或造成干擾的成分,常見於英文文字。

  • Capitalization:英文中有大小寫,但是在大部分情境下,大小寫完全不影響文字語義的表。而且,大小寫會影響單詞比較的結果。因此經常把文字都轉換為小寫,方便後續處理。但是,在命名實體識別任務中,大小寫要非常注意,特別是一些機構和人名,往往採用首字母大寫的格式。

  • Stopword:這個概念也來源於英文,當一個單詞在文字中是用於連線句子的不同成分,而不影響其表達的時候,就可以稱之為stopword,例如"the"、"and"等單詞。同樣,中文也具備類似的停用詞,例如“的”、“在”等單詞或字。

  • stemming/Lemmazation:這兩項技術只存在於英文中,因為英文中有時態和語態。同一個單詞在不同時態或語態情況下,具有不同的形式,這不會改變單詞的語義,但會影響單詞的比較和統計。例如,“leaf”單詞具備“leaves”、“leafs”等不同表達。

  • 詞性標註也可以被視為一項詞語預處理技術。

7. 句法

自然語言處理中,機器翻譯是一個重要的課題,也是NLP應用的主要領域,而句法分析是機器翻譯的核心資料結構。句法分析是自然語言處理的核心技術,是對語言進行深層次理解的基石。句法分析的主要任務是識別出句子所包含的句法成分以及這些成分之間的關係,一般以句法樹來表示句法分析的結果。從20世紀50年代初機器翻譯課題被提出時算起,自然語言處理研究已經有60餘年的歷史,句法分析一直是自然語言處理前進的巨大障礙。句法分析主要有以下兩個難點:

  • 歧義。自然語言區別於人工語言的一個重要特點就是它存在大量的歧義現象。人類自身可以依靠大量的先驗知識有效地消除各種歧義,而機器由於在知識表示和獲取方面存在嚴重不足,很難像人類那樣進行句法消歧。

  • 搜尋空間。句法分析是一個極為複雜的任務,候選樹個數隨句子增多呈指數級增長,搜尋空間巨大。因此,必須設計出合適的解碼器,以確保能夠在可以容忍的時間內搜尋到模型定義最優解。

句法分析(Parsing)是從單詞串得到句法結構的過程,而實現該過程的工具或程式被稱為句法分析器(Parser)。句法分析的種類很多,這裡我們根據其側重目標將其分為完全句法分析和區域性句法分析兩種。兩者的差別在於,完全句法分析以獲取整個句子的句法結構為目的;而區域性句法分析只關注於區域性的一些成分,例如常用的依存句法分析就是一種區域性分析方法。

句法分析中所用方法可以簡單地分為基於規則的方法和基於統計的方法兩大類。基於規則的方法在處理大規模真實文字時,會存在語法規則覆蓋有限、系統可遷移差等缺陷。隨著大規模標註樹庫的建立,基於統計學習模型的句法分析方法開始興起,句法分析器的效能不斷提高,最典型的就是風靡於20世紀70年代的PCFG(Probabilistic Context Free Grammar),它在句法分析領域得到了極大的應用,也是現在句法分析中常用的方法。統計句法分析模型本質是一套面向候選樹的評價方法,其會給正確的句法樹賦予一個較高的分值,而給不合理的句法樹賦予一個較低的分值,這樣就可以借用候選句法樹的分值進行消歧。

8. 句法分析語料

統計學習方法多需要語料資料的支撐,統計句法分析也不例外。相較於分詞或詞性標註,句法分析的資料集要複雜很多,其是一種樹形的標註結構,因此又稱樹庫。圖1所示是一個典型的句法樹。

自然語言處理技術詳細概覽

圖1 句法樹示例

目前使用最多的樹庫來自美國賓夕法尼亞大學加工的英文賓州樹庫(Penn TreeBank,PTB)。PTB的前身為ATIS(Air Travel Information System)和WSJ(Wall Street Journa)樹庫,具有較高的一致性和標註準確率

中文樹庫建設較晚,比較著名的有中文賓州樹庫(Chinese TreeBank,CTB)、清華樹庫(Tsinghua Chinese TreeBank,TCT)、臺灣中研院樹庫。其中CTB是賓夕法尼亞大學標註的漢語句法樹庫,也是目前絕大多數的中文句法分析研究的基準語料庫。TCT是清華大學計算機系智慧技術與系統國家重點實驗室人員從漢語平衡語料庫中提取出100萬規模的漢字語料文字,經過自動句法分析和人工校對,形成的高質量的標註有完整句法結構的中文句法樹語料庫。Sinica TreeBank是台灣中研院詞庫小組從中研院平衡語料庫中抽取句子,經過電腦自動分析成句法樹,並加以人工修改、檢驗後所得的成果。

不同的樹庫有著不同的標記體系,使用時切忌使用一種樹庫的句法分析器,然後用其他樹庫的標記體系來解釋。由於樹庫眾多,這裡不再講述具體每一種樹庫的標記規範,感興趣的讀者可網上搜尋自行查閱。圖2所示為清華樹庫的部分標記集。

自然語言處理技術詳細概覽

圖2 清華樹庫的漢語成分標記集(部分)

9. 依存句法分析

依存句法分析是比較常用的句法依存技術,是通過分析語言單位內成分之前的依存關係解釋其句法結構,主張句子中核心動詞是支配其他成分的重心成分。而它本身卻不受其他任何成分的支配,所有收支配成分都以某種關係從屬於支配者。直觀來講,依存句法分析識別句子中的“主謂賓”、“定狀補”這些語法成分,並分析各成分之間的關係。

自然語言處理技術詳細概覽

圖3 依存句法分析示例

我的理解是句法依存分析可用於語料庫較少時,對句子進行拆分,幫助語義理解。

10. 文字向量化

文字表示是自然語言處理中的基礎工作,文字表示的好壞直接影響到整個自然語言處理系統的效能。因此,研究者們投入了大量的人力物力來研究文字表示方法,以期提高自然語言處理系統的效能。在自然語言處理研究領域,文字向量化是文字表示的一種重要方式。顧名思義,文字向量化就是將文字表示成一系列能夠表達文字語義的向量。無論是中文還是英文,詞語都是表達文字處理的最基本單元。當前階段,對文字向量化大部分的研究都是通過詞向量化實現的。與此同時,也有相當一部分研究者將文章或者句子作為文字處理的基本單元,於是產生了doc2vec和str2vec技術。

11. 詞袋模型

詞袋(Bag Of Word)模型是最早的以詞語為基本處理單元的文字向量化方法。下面舉例說明該方法的原理。首先給出兩個簡單的文字如下:

  • John likes to watch movies,Mary likes too.

  • John also likes to watch football games.

基於上述兩個文件中出現的單詞,構建如下詞典(dictionary):

{"John": 1, "likes": 2, "to": 3, "watch": 4, "movies": 5, "also": 6, "football": 7, "games": 8, "Mary": 9, "too": 10, }

上面詞典中包含10個單詞,每個單詞有唯一的索引,那麼每個文字我們可以使用一個10維的向量來表示。如下所示:

  • [1, 2, 1, 1, 1, 0, 0, 0, 1, 1]

  • [1, 1,1, 1, 0, 1, 1, 1, 0, 0]

該向量與原來文字中單詞出現的順序沒有關係,而是詞典中每個單詞在文字中出現的頻率。該方法雖然簡單易行,但是存在如下三方面的問題:

  • 維度災難。很顯然,如果上述例子詞典中包含10000個單詞,那麼每個文字需要用10000維的向量表示,也就是說除了文字中出現的詞語位置不為0,其餘9000多的位置均為0,如此高維度的向量會嚴重影響計算速度。

  • 無法保留詞序資訊。

  • 存在語義鴻溝的問題。

12. 詞向量

近年來,隨著網際網路技術的發展,網際網路上的資料急劇增加。大量無標註的資料產生,使得研究者將注意力轉移到利用無標註資料探勘有價值的資訊上來。詞向量(word2vec)技術就是為了利用神經網路從大量無標註的文字中提取有用資訊而產生的。

一般來說詞語是表達語義的基本單元。因為詞袋模型只是將詞語符號化,所以詞袋模型是不包含任何語義資訊的。如何使“詞表示”包含語義資訊是該領域研究者面臨的問題。分佈假說(distributional hypothesis)的提出為解決上述問題提供了理論基礎。該假說的核心思想是:上下文相似的詞,其語義也相似。隨後有學者整理了利用上下文分佈表示詞義的方法,這類方法就是有名的詞空間模型(word space model)。隨著各類硬體裝置計算能力的提升和相關演算法的發展,神經網路模型逐漸在各個領域中嶄露頭角,可以靈活地對上下文進行建模是神經網路構造詞表示的最大優點。下文將介紹神經網路構建詞向量的方法。

通過語言模型構建上下文與目標詞之間的關係是一種常見的方法。神經網路詞向量模型就是根據上下文與目標詞之間的關係進行建模。在初期,詞向量只是訓練神經網路語言模型過程中產生的副產品,而後神經網路語言模型對後期詞向量的發展方向有著決定性的作用。

13. CBOW模型和Skip-gram模型

CBOW模型和Skip-gram模型是現在比較成熟和常用的詞向量模型。

CBOW模型如圖4所示,由圖易知,該模型使用一段文字的中間詞作為目標詞;同時,CBOW模型去掉了隱藏層,這會大幅提升運算速率。並且因為其去除了隱藏層,所以其輸入層就是語義上下文的表示。

自然語言處理技術詳細概覽

圖4 CBOW模型結構圖

CBOW對目標詞的條件概率計算如圖5所示:

自然語言處理技術詳細概覽

圖5 CBOW對目標詞的條件概率計算公式

CBOW的目標函式為∑(ω,c)∈DlogP(ω,c)。

與CBOW模型對應的,還有Skip-gram模型。這兩個模型實際上是word2vec兩種不同思想的實現:CBOW的目標是根據上下文來預測當前詞語的概率,且上下文所有的詞對當前詞出現概率的影響的權重是一樣的,因此叫continuous bag-of-words模型。如在袋子中取詞,取出數量足夠的詞就可以了,取出的先後順序則是無關緊要的。Skip-gram剛好相反,其是根據當前詞語來預測上下文概率的。在實際使用中,演算法本身並無高下之分,可根據最後呈現的效果來進行演算法選擇。

Skip-gram模型的結構如圖6所示,Skip-gram模型同樣沒有隱藏層。但與CBOW模型輸入上下文詞的平均詞向量不同,Skip-gram模型是從目標詞的上下文中選擇一個詞,將其詞向量組成上下文的表示。

自然語言處理技術詳細概覽

圖6 Skip-gram模型結構圖

對整個語料而言,Skip-gram模型的目標函式為圖7所示:

自然語言處理技術詳細概覽

圖7 Skip-gram模型目標函式

14. NLP中的深度學習

深度學習在NLP的應用多是迴圈神經網路(Recurrent Neural Networks,RNN),它能夠通過在原有神經網路基礎上增加記憶單元,處理任意長度的序列(理論上),在架構上比一般神經網路更加能夠處理序列相關的問題,因此,這也是為了解決這類問題而設計的一種網路結構。

RNN背後的思想是利用順序資訊。在傳統的神經網路中,我們假設所有的輸入(包括輸出)之間是相互獨立的。對於很多工來說,這是一個非常糟糕的假設。如果你想預測一個序列中的下一個詞,你最好能知道哪些詞在它前面。RNN之所以是迴圈的,是因為它針對系列中的每一個元素都執行相同的操作,每一個操作都依賴於之前的計算結果。換一種方式思考,可以認為RNN記憶了當前為止已經計算過的資訊。理論上,RNN可以利用任意長的序列資訊,但實際中只能回顧之前的幾步。例如,想象你要把一部電影裡面每個時間點正在發生的事情進行分類:傳統神經網路並不知道怎樣才能把關於之前事件的推理運用到之後的事件中去;而RNN網路可以解決這個問題,它帶有迴圈的網路,具有保持資訊的作用。

15. LSTM

長短時記憶網路(Long Short Term Memory network,LSTM)是一種特殊的RNN,它能夠學習長時間依賴。它們由Hochreiter&Schmidhuber(1997)提出,後來由很多人加以改進和推廣。它們在大量的問題上都取得了巨大成功,現在已經被廣泛應用。

LSTM是專門設計用來避免長期依賴問題的。記憶長期資訊是LSTM的預設行為,而不是它們努力學習的東西!

所有的迴圈神經網路都具有鏈式的重複模組神經網路。在標準的RNN中,這種重複模組具有非常簡單的結構,比如一個層,如圖8所示。

自然語言處理技術詳細概覽

圖8 tanh層

LSTM同樣具有鏈式結構,但是其重複模組卻有著不同的結構。不同於單獨的神經網路層,它具有4個以特殊方式相互影響的神經網路層,如圖9所示。

自然語言處理技術詳細概覽

圖9 LSTMs結構圖

LSTM的關鍵在於單元狀態,在圖10中以水平線表示。

單元狀態就像一個傳送帶。它順著整個鏈條從頭到尾執行,中間只有少許線性的互動。資訊很容易順著它流動而保持不變。

自然語言處理技術詳細概覽

圖10 LSTM組成部件

LSTM通過稱為門(gate)的結構來對單元狀態增加或者刪除資訊。

門是選擇性讓資訊通過的方式。它們的輸出有一個Sigmoid層和逐點乘積操作,如圖11所示。

自然語言處理技術詳細概覽

圖11 門結構

16. Seq2Seq模型

對於一些NLP任務,比如聊天機器人、機器翻譯、自動文摘等,傳統的方法都是從候選集中選出答案,這對候選集的完善程度要求很高。隨著近年來深度學習的發展,國內外學者將深度學習技術應用於NLG(Nature Language Generation,自然語言生成)和NLU(Nature Language Understanding,自然語言理解),並取得了一些成果。Encoder-Decoder是近兩年來在NLG和NLU方面應用較多的方法。然而,由於語言本身的複雜性,目前還沒有一種模型能真正解決NLG和NLU問題。

總結

本文粗略的介紹了NLP中的常見技術,只是起到拋磚引玉的作用,有興趣的讀者,可以閱讀相關資料。因為本文創作時間有限,很多地方處理的不夠細膩,希望讀者理解。

參考文獻

1.  貪心學院,www.greedyai.com

2. Pre-Processing in Natural Language Machine  Learning: towardsdatascience.com/

3.《Python自然語言處理:核心技術與演算法》

4. 依存分析:中文依存句法分析簡介 - lpty的部落格 - CSDN部落格

5. 依存句法分析與語義依存分析的區別 - ZH乳酪 - 部落格園

知乎原文連結 :

https://zhuanlan.zhihu.com/p/53564006

相關文章