文章目錄
- 第十六章 NLP
- 16.0 NLP 發展史簡述
- 16.1 如何理解序列到序列模型?
- 16.2 序列到序列模型有什麼限制嗎?
- 16.3 如果不採用序列到序列模型,可以考慮用其它模型方法嗎?
- 16.4 如何理解詞向量?
- 16.5 詞向量哪家好?
- 16.6 解釋一下注意力機制的原理?
- 16.7 注意力機制是不是適用於所有場景呢?它的魯棒性如何?
- 16.8 怎麼將原有的模型加上注意力機制呢?
- 16.9 通俗地解釋一下詞法分析是什麼?有什麼應用場景?
- 16.10 深度學習中的詞法分析有哪些常見模型呢?
- 16.11 通俗地解釋一下知識圖譜是什麼?有什麼應用場景?
- 16.12 深度學習中的知識圖譜有哪些常見模型呢?
- 16.13 深度學習中的機器翻譯有哪些常見模型呢?
- 16.14 機器翻譯的通俗實現以及部署過程是怎樣的呢?
- 16.15 通俗地解釋一下文本情感分析是什麼?常見的應用場景是?
- 16.16 最常用的情感分析模型是什麼呢?如何快速部署呢?
- 16.17 通俗地解釋一下問答系統?它涵蓋哪些領域?常見的應用場景是?
- 16.18 常見的問答系統模型是什麼?如何快速部署呢?
- 16.19 圖像文字生成是什麼?它的技術原理是什麼?
- 16.20 常見的圖像文字生成模型是什麼?
- 16.21 NLP 的無監督學習發展動態是怎樣的?有哪些領域在嘗試無監督學習?
- 16.22 NLP 和強化學習的結合方式是怎樣的?有哪些方向在嘗試強化學習?
- 16.23 NLP 和元學習?元學習如何能夠和 NLP 結合起來?
- 16.24 能說一下各自領域最常用且常見的基準模型有哪些嗎?
第十六章 NLP
Markdown Revision 1;
Date: 2018/11/14
Editor: 盛泳潘-電子科技大學;何建宏-學生
Contact: [email protected];[email protected]
16.0 NLP 發展史簡述
50多年來 NLP 的歷史發展可以分爲三個浪潮,前兩波以理性主義和經驗主義的形式出現,爲當前的深度學習浪潮鋪平了道路。NLP的深層學習革命的主要支柱是: (1)語言嵌入實體的分佈式表徵,(2)由於嵌入而產生的語義泛化, (3)自然語言的大跨度深序列建模,(4)能夠從低到高表示語言層次的分層網絡,以及(5)解決許多聯合 NLP 問題的端對端深度學習方法。
第一個浪潮:理性主義
在第一個浪潮中,NLP的實驗持續了很長一段時間,可以追溯到20世紀50年代。1950年,阿蘭·圖靈提出了圖靈測試,以評估計算機表現出與人類無法區分的智能行爲的能力。這項測試是基於人類和計算機之間的自然語言對話,旨在生成類似人類的反應。1954年,George-IBM 實驗產出了能夠將60多個俄語句子翻譯成英語的rrst機器翻譯系統。
這些方法是基於這樣一種信念,即人類思維中的語言知識是由泛型繼承提前進行的,而這種信念,在大約1960年至1980年代後期,佔據了NLP的大部分研究中的主導地位。這些方法被稱爲理性主義方法(Church 2007)。理性主義方法在 NLP 中的主導地位主要是由於諾姆·喬姆斯基(Noam Chomsky)關於先天語言結構的論點被廣泛接受以及他對 N-grams 方法的批評(Chomsky 1957)。理性主義者一般假設語言的關鍵部分在出生時就被硬連接到大腦中,作爲人類遺傳遺傳的一部分,因此他們試圖設計手工製作的規則,將知識和推理機制納入智能 NLP 系統。直到20世紀80年代,最著名的成功的NLP系統,如爲模擬 Rogerian psychotherapist 的 ELIZA 系統和爲了規則化真實世界信息爲規則本體的 MARGIE 系統,都是基於複雜的手寫規則。
這一時期恰逢以專家知識工程爲特點的早期智能的早期發展,即領域專家根據其所掌握的(非常狹窄的)應用領域的知識設計計算機程序(Nilsson 1982; Winston 1993)。專家們使用符號邏輯規則設計了這些程序,這些規則基於對這些知識的仔細表徵和工程。這些以知識爲基礎的智能系統往往通過檢測"Head"或最重要的參數,並就每種特殊情況採取特定的解決辦法,而這在解決狹義問題方面往往是有效的。這些“Head”參數由人類專家預先確定,使“tail”參數和案例不受影響。由於缺乏學習能力,他們有必要將解決方案推廣到新的情況和領域。這一時期的典型方法是專家系統所提供的證據,這是一個模擬人類專家決策能力的計算機系統。這種系統旨在通過知識推理來解決複雜的問題(Nilsson 1982)。第一個專家系統建立於1970年代,然後在1980年代推廣。使用的主要"算法"是以"if-then-else"爲形式的推斷規則(Jackson 1998)。這些智能系統的主要優點是其在進行邏輯推理方面(有限)能力的透明度和可解釋性。像NLP系統,如 ELIZA 和 MARGIE ,一般專家系統在早期使用手工製作的專家知識,這往往是有效的狹隘的問題,雖然推理無法處理不確定性,是普遍存在的實際應用。
同樣,語音識別研究和系統設計,這又是另一個長期存在的 NLP 和反智能挑戰,在這個理性主義時代,主要基於專家知識工程的範式,如elegantly analyzed in(Church and Mercer 1993)。在1970年代和1980年代初,專家系統的語音識別方法相當流行(Reddy 1976; Zue 1985)。然而,研究人員敏銳地認識到,缺乏從數據中學習和處理推理不確定性的能力,導致了接下來描述的第二波語音識別、NLP和對於文本的人工智能浪潮也走向失敗。
第二波浪潮:經驗主義
第二波 NLP 浪潮的特點是利用語料庫數據以及基於(淺層)機器學習、統計學等來利用這些數據(Manning and Schtze 1999)。由於許多自然語言的結構和理論都被貶低或拋棄,而傾向於數據驅動的方法,這個時代發展的主要方法被稱爲經驗或務實的方法(ChurchandMercer 1993;Church 2014)。NLP 的一個主要會議甚至被命名爲“自然語言處理的經驗方法(Empirical Methods in Natural Language Processing)(EMNLP)”,最直接地反映了NLP研究人員在那個時代對經驗方法的強烈積極情緒。
與理性主義方法相反,經驗方法認爲人類的思維只是從關聯、模式識別和泛化的常規操作開始。豐富的感官輸入需要使大腦學習自然語言的詳細結構。經驗主義盛行於1920年至1960年間,自1990年以來一直在興起。NLP的早期經驗方法主要是開發生成模型,如隱馬爾可夫模型 (HMM) (Baum and Petrie 1966), IBM 翻譯模型 (Brown et al. 1993), 和 head-driven parsing 模型(Collins 1997),以發現大型語料庫的規律性。自1990年代後期以來,在各種NLP任務中,歧視性模式已成爲事實上的做法。NLP的典型判別模型和方法包括最大熵模型(ratnaparkhi 1997)、支持向量機(Vapnik 1998)、條件隨機(Lafferty et al. 2001)、最大相互信息和最小區分器錯誤(He et al. 2008)還有感知器(Collins 2002)。
在這種經驗主義時代中、NLP 與同樣的智能方法如語音識別和計算機視覺是平行的。這是在明確的證據表明,學習和感知能力對複雜的智能系統至關重要,但在前一波流行的專家系統中卻不存在。例如,當 DARPA 開始對自動駕駛提出重大挑戰時,大多數車輛隨後依賴於基於知識的智能智能。正如語音識別和NLP 一樣,自主駕駛和計算機視覺研究人員意識到基於知識的範式的侷限性,因爲機器學習需要進行不確定性處理和泛化能力。
在第二波浪潮中,NLP的經驗主義和語音識別是基於數據密集型機器學習的,我們現在稱之爲“shallow”,因爲在下一節中描述的第三波浪潮中,數據的多層或“deep”表徵通常缺乏抽象結構。在機器學習中,在第一次浪潮中,研究人員不需要考慮構造精確規則,爲知識爲基礎的 NLP 和語音系統。相反,他們把重點放在統計模型(Bishop 2006; Murphy 2012)或作爲一個基本引擎的簡單的神經網絡(Bishop 1995)。然後,他們使用足夠的訓練數據進行自動學習或“tune(調整)”系統的參數,使它們能夠處理不確定性,並嘗試從一個條件泛化到另一個條件,從一個領域泛化到另一個領域。機器學習的關鍵算法和方法包括EM (期望最大化)、貝葉斯網絡、支持向量機、決策樹以及神經網絡的反向傳播算法。
一般來說,基於機器學習的NLP、語音和其他智能系統的性能比早期的基於知識的智能系統要好得多。成功的例子包括語音識別 (Jelinek 1998), 臉部識別 (Viola and Jones 2004), 實體識別 (Fei-Fei and Perona 2005), 手寫字體識別 (Plamondon and Srihari 2000), 以及機器翻譯 (Och 2003)。
在語音識別方面,從20世紀80年代初到2010年前後近30年,利用基於 HMM 與高斯混合模型相結合的統計生成模型,以及其推廣的各種版本(Baker et al. 2009a,b; Deng and O’Shaughnessy 2003; Rabiner and Juang 1993)的統計生成模式。泛化 HMM 的許多版本都是基於統計和神經網絡的隱動態模型(Deng 1998; Bridle et al. 1998; Deng and Yu 2007)。前者採用 EM 和 switching extended Kalman filter 算法學習模型參數(Ma and Deng 2004; Lee et al. 2004),後者採用反向傳播(Picone et al. 1999),兩者都廣泛地利用多個潛在層表示法進行語音分析的生成過程。將這種“深度”生成過程轉化爲端到端過程的對應方案,導致了深度學習的工業化成功(Deng et al. 2010, 2013; Hinton et al. 2012) ,從而形成了第三波浪潮的驅動力。
第三波浪潮:深度學習
在第二波浪潮中開發的 NLP 系統,包括語音識別、語言理解和機器翻譯,表現得比在第一波浪潮時更好,魯棒性更高,但它們遠遠沒有達到人的水平,而這留下了很多需求。除了少數例外,NLP的(淺層)機器學習模型通常沒有足夠的容量來吸收大量的訓練數據。此外,學習算法、方法和基礎設施也都不夠強大。所有這一切都在幾年前發生了變化,而這導致了第三波 NLP 浪潮,這股浪潮是由深層機器學習或深度學習的新範式推動的(Bengio 2009; Deng and Yu 2014; LeCun et al. 2015; Goodfellow et al. 2016)。
深度學習起源於人工神經網絡,它可以被看作是受生物神經系統啓發的細胞類型的級聯模型。隨着反向傳播算法的出現(Rumelhart et al. 1986),90年代對深度神經網絡的訓練引起了廣泛關注。在沒有大量訓練數據和沒有適當的設計和學習範式的情況下,在神經網絡訓練過程中,學習信號隨着層次數(或更嚴格的信用分配深度)在層層傳播時呈指數形式消失,使得調整深層神經網絡特別是遞歸的版本的連接權重變得異常艱難。Hinton 等人(2006)克服了這個問題,使用無人監督的預訓練模型來進行學習有用的特徵探測器。然後,通過監督學習進一步訓練網絡,對標記數據進行分類。因此,可以學習使用低維表徵的方式來學習高維的表徵的分佈。這項開創性的工作標誌着神經網絡的復興。此後提出和發展了各種網絡結構,包括 Deep Belief 網絡(Hinton et al.2006)、堆積自編碼器(Vincent et al.2010)、深層玻爾茲曼機(Hinton and Salakhutdinov 2012)、深度卷積神經網絡(Krizhevsky et al. 2012),深層堆積網絡 (Deng et al. 2012),和深層 Q-networks (Mnih et al. 2015)。深度學習自2010年以來已成功地應用於實際智能領域的實際任務,包括語音識別(Yu et al. 2010; Hinton et al. 2012),圖像識別(Krizhevsky et al. 2012; He et al. 2016),以及 NLP 絕大多數領域。
其中由於微軟公司在工業化上的成功,以及愈來愈高的準確率等跡象,這些2010-2011年語音識別的驚人成功預示着 NLP 的第三波浪潮和人工智能的到來。隨着深度學習在語音識別方面取得成功,計算機視覺(Krizhevsky et al. 2012)和機器翻譯(Bahdanau et al. 2015)被類似的深度學習範式所取代。特別是,雖然 Bengio 等人在2001的工作,在2011年就開發了強大的神經詞嵌入技術(Bengio et al. 2001),但由於大數據的可用性和更快的計算,它直到10多年後才被證明在一個大規模和實際有用的規模上才能夠實際有用(Mikolov et al. 2013)。此外,許多其他現實世界的NLP應用,如圖像字幕(Karpathy and Fei-Fei 2015; Fang et al. 2015; Gan et al. 2017),視覺問題回答(Fei-Fei and Perona 2016),語音理解系統(Mesnil et al. 2013),網絡搜索(Huang et al. 2013b)和推薦系統由於深度學習而取得成功,此外還有許多非NLP任務,包括藥物發現和藥理學、客戶關係管理、推薦系統、手勢識別、醫學信息、廣告投放、醫學圖像分析、機器人、自動駕駛車輛、紙板和電子遊戲(例如 Atari, Go, Poker, and the latest, DOTA2)等。詳情請參閱維基上的深度學習領域。
在更多基於文本的應用領域中,機器翻譯可能受到深度學習的影響最大。從 NLP 第二波浪潮中發展起來的淺層——統計機器翻譯開始看起的話,目前在實際應用中最好的機器翻譯系統是基於深神經網絡的。例如,谷歌在2016年9月宣佈了其轉向神經機器翻譯的階段,兩個月後微軟也發佈了類似的聲明。Facebook已經進行了大約一年的機器神經網絡翻譯的轉換工作,到2017年8月它已經完全將這個系統部署成功。
在口語理解和對話系統領域,深度學習也正在產生巨大影響。目前流行的技術以多種方式維護和擴展了第二波時代浪潮中發展起來的統計方法。與經驗(淺層)機器學習方法一樣,深度學習也是基於數據密集型方法,以降低手工製作規則的成本,對噪聲環境下的語音識別錯誤和語言理解錯誤具有很強的魯棒性,並利用決策過程和強化學習的力量來設計對話策略,例如(Gasic et al. 2017; Dhingra et al. 2017)。與早期的方法相比,深度神經網絡模型和表徵方法更強大,它們使端到端學習成爲可能。然而,深度學習也沒有解決可解釋性和領域泛化問題。
將深度學習應用於 NLP 問題方面的最近的兩個重要技術突破是序列到序列學習(Sutskevar et al. 2014)和注意力機制建模(Bahdanau et al. 2015),以及最近的 BERT模型(Jacob el al.2018) 。序列到序列學習引入了一個強大的學習範式,即使用遞歸神經網絡以端到端的方式進行編碼和解碼。注意力機制建模最初是爲了克服編碼一個長序列的難度而開發的,後來的持續發展又擴展了它的能力,提供了兩個任意序列的高度可塑對齊能力,而其兩個可以同時學習神經網絡參數。而 BERT 則是實現了雙向建模獲取以得到更好的語言表徵能力。序列到序列學習和注意力機制的關鍵概念在基於統計學習和詞局部表徵的最佳系統上提高了基於分佈式單詞嵌入的神經機器翻譯的性能,而 BERT 更重要的意義是雙向獲取同一文段的高維意義。在這一成功之後,這些概念也被成功地應用到許多其他與NLP相關的任務中,如圖像字幕(Karpathy and Fei-Fei 2015; Devlin et al. 2015)、語音識別(Chorowski et al. 2015)、一次性學習、句法分析、脣讀、文本理解、摘要以及問答系統等。撇開他們巨大的經驗成功不談,基於神經網絡的深度學習模型往往比早期浪潮中的傳統機器學習模型更簡單、更容易設計。在許多應用中,在端到端的任務中,模型的所有部分都同時進行深度學習,從特徵抽取到預測。導致神經網絡模型相對簡單的另一個因素是,相同的模型構建成的塊(即不同類型的層)通常在許多不同的應用中使用。爲多種任務使用相同的構建塊,這種方法使得模型更容易遷移到其它任務和數據上。此外,谷歌等公司還開發了軟件工具包,以便更快、更有效地實現這些模型。由於以上這些原因,神經網絡在數據量大而且基於雲的方式上,是更常用的。
儘管深度學習在重塑語音、圖像和視頻的處理方面被證明是有效的,而且具有它的革命性,但在將深度學習與基於文本的 NLP 相結合方面的有效性並不那麼明確,儘管它在一些實用的 NLP 任務中取得了經驗上的成功。在語音、圖像和視頻處理中,深度學習通過直接從原始數據學習規律來解決語義差距問題。然而,在 NLP 中,人們提出了更強的理論和結構化模型,即語音、語法和語義,來提取理解和生成自然語言的基本機制,這些機制與神經網絡不那麼容易兼容。與語音、圖像和視頻信號相比,從文本數據中學習的神經表徵可以對自然語言提供同樣直接的見解,但是這個也不夠直接。因此,將神經網絡,特別是那些具有複雜層次結構的神經網絡應用於 NLP,已成爲 NLP 和深度學習社區中最活躍的領域,近年來取得了非常顯著的進展(Deng 2016; Manning and Socher 2017;Jacob el al.2018)。