NLP(七):History of Natural Language Processing
2019/01/24
前言:
初接觸自然語言處理,不免為其龐大的內容感到漫無頭緒。根據本文作者的學習經驗,可以從神經網路語言學的 LSTM、Seq2seq、Attention、ConvS2S、Transformer、BERT 這六個主題依序入手。然後再回顧「萌芽時期」、「文法時期」、「統計時期」,才能體會目前「神經網路時期」即將到來的巨大突破!
-----
Fig. 1. A pendulum swung too far [18]。
-----
Summary:
自然語言處理大致可分為三個時期。第一個是 1960 之前的萌芽時期,代表人物是 Markov、Turing、Shannon、Chomsky [1]-[5]。 第二個是 1960 到 2000 之間的「文法」時期 ,這段時間以 Chomsky 的文法理論佔據主要研究方向,不過統計語言學也逐漸發展 [6]-[11]。第三個是 2000 之後的「語料」時期,統計語言學在 1990 到 2010 之間逐漸成為 NLP 的主流,而神經網路語言學則在 2010 後漸漸發展,在 2018 年以 BERT 獲得突破性的進展 [12]-[20]。本文簡單整理了自然語言處理的歷史,詳細內容,則有待後續展開 [21]!
-----
Outline
一、1960 之前
二、1960 - 2000 間
三、2000 之後
四、語料庫
-----
一、1960 之前
在 1960 之前,「有四項基礎性的研究特別值得注意:一項是 Markov 關於馬爾可夫模型的研究;一項是 Turing 關於算法計算模型的研究;一項是 Shannon 關於概率和信息論模型的研究;一項是 Chomsky 關於形式語言理論的研究。」[2]。
-----
Fig. 2. Markov chain(圖片來源)。
-----
◎ Markov
「早在 1913 年,俄羅斯著名數學家 A. Markov 就注意到俄羅斯詩人普希金的敘事長詩《葉甫蓋尼·奧涅金》中語言符號出現概率之間的相互影響。他試圖以語言符號的出現概率為實例,來研究隨機過程的數學理論,提出了馬爾可夫鏈(Markov Chain)的思想,他的這一開創性的成果用法文發表在俄羅斯皇家科學院的通報上。 後來 A. Markov 的這一思想發展成為在計算語言學中廣為使用的馬爾可夫模型(Markov Model),是當代計算語言學最重要的理論支柱之一。」[2]。
「早期的自然語言處理具有鮮明的經驗主義色彩。如 1913 年馬爾科夫提出馬爾科夫隨機過程與馬爾科夫模型的基礎就是“手工查頻”,具體說就是統計了《葉甫蓋尼·奧涅金》長詩中母音與子音出現的頻度。」[3]。
-----
Fig. 3. Neural Turing machine(圖片來源)。
-----
◎ Turing
「20 世紀 50 年代興起的自動機理論來源於 Turing 在 1936 年提出的可計算性理論和圖靈機模型,Turing 的劃時代的研究工作被認為是現代計算機科學的基礎。」[2]。
「1950 年 10 月,Turing 在《機器能思維嗎》一文中指出:“我們可以期待,總有一天機器會同人在一切的智能領域裡競爭起來。但是,以哪一點作為競爭的出發點呢?這是一個很難決定的問題。許多人以為可以把下棋之類的極為抽象的活動作為最好的出發點,不過,我更傾向於支持另一種主張:這種主張認為,最好的出發點是製造出一種具有智能的、可用錢買到的機器,然後教這種機器理解英語並且說英語。這個過程可以仿效小孩子說話的那種辦法來進行。” 」「Turing 提出,檢驗計算機智能高低的最好辦法是讓計算機來講英語和理解英語,進行“Turing 測試”。他天才地預見到計算機和自然語言將會結下不解之緣。」[2]。
「Turing 的工作首先催生了 McCulloch-Pitts 的神經元(neuron)理論。一個簡單的神經元模型就是一個計算的單元,它可以用命題邏輯來描述。接著,Turing 的工作還促進了 Kleene 關於有限自動機和正則表達式的研究。」[2]。
Fig. 4. Information theory (圖片來源)。
-----
◎ Shannon
「Shannon的主要貢獻是創立了“信息論”(Information Theory)。他把通過諸如通信信道或聲學語音這樣的媒介傳輸語言的行為比喻為“噪聲信道”(noisy channel)或者“解碼”(decoding)。 Shannon還借用熱力學的術語“熵”(entropy)作為測量信道的信息能力或者語言的信息量的一種方法,並且他用概率技術首次測定了英語的熵。」[2]。
「1948 年夏農把離散馬爾科夫的概率模型應用於語言的自動機,同時採用手工方法統計英語字母的頻率。 然而這種經驗主義到了喬姆斯基時出現了轉變。」[3]。
-----
Fig. 5. Grammer(圖片來源)。
-----
◎ Chomsky
有別於經驗主義,1956 年,Chomsky 開始一系列關於 Probabilistic Context-Free Grammar (PCFG) 的論文發表。
1956 年喬姆斯基借鑑夏農的工作,把有限狀態機用作刻畫語法的工具,建立了自然語言的有限狀態模型,具體來說就是用“代數”和“集合”將語言轉化為符號序列,建立了一大堆有關語法的數學模型。這些工作非常偉大,為自然語言和形式語言找到了一種統一的數學描述理論,一個叫做“形式語言理論”的新領域誕生了。這個時代,“經驗主義”被全盤否定,“理性主義”算是完勝。」[3]。
那麼,何謂理性主義呢?
「典型的理性主義者認為,人類首先本能地掌握一些基本原則,如幾何法則,隨後可以依據這些推理出其餘知識。 同時代相對的另一種哲學方法稱為經驗主義,它認為人類的想法來源於經驗,所有知識可能除了數學以外主要來源於經驗。這裡主要關注的是人類的知識來源以及證實我們所知的一種手段。 理性主義及經驗主義並非由當時的哲學家,而是後人作出了區分。事實上,有時兩者之間的區分並不像人們所說的那麼顯著。三位主要的理性主義者都認同經驗科學的重要性,並且他們在研究方法及形上學的理論上更接近笛卡兒而不是斯賓諾莎(Baruch Spinoza)和萊布尼茲(Gottfried Leibnitz)。」[4]。
「Chomsky 是個語言學家,提出的生成語法主要也是為了描述人類所說的語言,這在資訊科學的領域被稱為自然語言,以便與程式設計時所用的程式語言區分開來。然而,生成語法雖然主要為了描述自然語言而提出,但卻同樣適用於程式語言的語法上,甚至在程式語言的設計上造成了相當大的影響,這或許是當初 Chomsky 所沒有想到的。 」[5]。
這邊穿插一點「自然語言處理」與「電腦語言」(高階語言,不包含組合語言)之間的關係。
「高階語言所使用的語法,大致上分為兩個層次,在單詞的語法上會使用正規語法 (Regular Grammar),而句法結構上則使用與上下文無關的文法 (Context-Free Grammar,簡稱 CFG),這兩個語法都可以使用近代語言學之父的喬姆斯基 (Chomsky) 的生成語法 (Generative Grammar) 描述。在程式語言的領域,我們通常用 BNF 與 EBNF 語法描述這些程式的語法。 」[5]。
「在資訊系的相關課程當中,與高階語言相關的課程,包含程式語言 (Programming Language)、正規語言 (Formal Language)、以及編譯器 (Compiler) 等等。這些課程的核心是語法理論,我們可以利用生成規則 (例如:BNF, EBNF 等) 描述程式的語法。一但能正確的描述某個程式語言,就能撰寫剖析該語言的剖析程式,將這些語法轉換成語法樹 (或稱剖析樹)。 」[5]。
以 Chomsky 為主,理性主義這一派,在自然語言處理的影響力,一直持續到 1990 至 2000 年之間。
-----
Fig. 6. Natural Language Processing with Python [11]。
-----
二、1960 - 2000 間
「在 20 世紀 50 年代末到 60 年代中期,經驗主義東山再起了。多數學者普遍認為只有詳盡的歷史語料才能帶來靠譜的結論。於是一些比較著名的理論與演算法就誕生了,如貝葉斯方法(Bayesian Method)、隱馬爾可夫、最大熵、Viterbi 演算法、支援向量機之類。世界上第一個聯機語料庫也是在那個時候的 Brown University 誕生的。但是總的來說,這個時代依然是基於規則的理性主義的天下,經驗主義雖然取得了不俗的成就,卻依然沒有受到太大的重視。但是金子總會發光的。」[3]。
「一直到 1980 年代,多數自然語言處理系統是以一套複雜、人工訂定的規則為基礎。不過從 1980 年代末期開始,語言處理引進了機器學習的演算法,NLP 產生革新。成因有兩個:運算能力穩定增加;以及喬姆斯基語言學理論漸漸喪失主導。該理論的架構不傾向於語料庫——機器學習處理語言所用方法的基礎。有些最早期使用的機器學習演算法,例如決策樹,是硬性的、「如果-則」規則組成的系統,類似當時既有的人工訂定的規則。不過詞性標記(英語:part-of-speech tagging)將隱馬爾可夫模型引入 NLP,並且研究日益聚焦於軟性的、以機率做決定的統計模型,基礎是將輸入資料裡每一個特性賦予代表其份量的數值。許多語音識別現今依賴的快取語言模型(英語:cache language model)即是一種統計模型的例子。這種模型通常足以處理非預期的輸入資料,尤其是輸入有錯誤(真實世界的資料總免不了),並且在整合到包含多個子任務的較大系統時,結果比較可靠。」[6], [7]。
自然語言處理 [6], [7],在 1980 年代末期開始,由於引進計算機,以及機器學習演算法,所以也改稱計算語言學 [8],以便與傳統的語言學區分。
計算語言學的五個重要主題,包括語言建模與概率、機器翻譯、序列標註與隱馬爾可夫模型、解析與 PCFG、主題模型與 PLSA 和 Gibbs 採樣,幾乎每章都有編程任務和習題 [9], [10]。廣義來說,計算語言學也可視為以語料庫、統計學、機器學習演算法為基礎的統計語言學。以下列出 1951 年至 2001 年部分重要的演算法,包括:
1951 NB: Naive Bayes。
1966 HMM: Hidden Markov Model。
1967 VA: Viterbi Algorithm。
1984 GS: Gibbs Sampling。
1992 NG: N-gram。
1996 ME: Maximum Entropy(NLP)。
1999 PLSA: Probabilistic Latent Semantic Analysis。
2001 CRF: Conditional Random Fields。
讀者若有興趣,也可以參考更多的計算語言學專書 [11]。這份清單的第一本是 Python 的自然語言處理,主要是統計語言學,而不是基於神經網路的語言學。第二、三都是很經典的教科書,但還是以統計方法為主。第三本已新增部分基於神經網路的語言學 [15]。
-----
Fig. 7. BERT [14]。
-----
三、2000 之後
1960 至 2000 年,基於理性主義的 PCFG 獨領風騷,另一方面,基於經驗主義、機器學習的統計語言學在 1990 至 2010 年也發展到顛峰。在此同時,機器學習的一支,深度學習(類神經網路),於 2000 年後,也逐漸成為自然語言處理的有力工具。
Bengio 在 2003 提出的 Neural Network Language Model (NNLM) 可以視為神經網路在自然語言處理的濫觴。後續在 2008 則有Multi-task Learning (MTL) [12], [13]。不過這段時間由於計算機的運算力有限,所以發展緩慢。
2013 年開始,各種預訓練模型為主,逐漸在 NLP 領域佔據重要位置,包含 Word2vec、GloVe、fastText、ELMo、AWD-LSTM、ULMFiT、OpenAI GPT,乃至於 2018 年底推出的 BERT [14]。 各種 NLP 研究所需要的語料庫逐漸越來越大,而表現也越來越好,當然,其需要的運算量,也逐漸是一般研究者無法負擔了!
-----
四、語料庫
語料跟語料庫,從統計語言學開始,地位益形重要。在神經網路語言學的時代,更巨大的語料庫則與更巨大的神經網路模型,逐漸使的自然語言處理的進步程度,往電腦視覺的成就趨近。
何謂語料?「語料通常指在統計自然語言處理中實際上不可能觀測到大規模的語言實例。所以人們簡單地用文本作為替代,並把文本中的上下文關係作為現實世界中語言的上下文關係的替代品。」[16]。
至於語料庫呢?「語料庫一詞在語言學上意指大量的文本,通常經過整理,具有既定格式與標記。其具備三個顯著的特點: ⊚ 語料庫中存放的是在語言的實際使用中真實出現過的語言材料。 ⊚ 語料庫以電子計算機為載體承載語言知識的基礎資源,但並不等於語言知識。 ⊚ 真實語料需要經過加工(分析和處理),才能成為有用的資源。」[16]。
「最近,麻省理工學院(MIT)的在讀博士 Karthik Narasimhan 發起了一個為自然語言處理(NLP)準備的數據集/語料庫列表,以時間順序排列。該列表將持續更新。」[17]。
-----
結論:
「丘吉的這篇 2011 年的長文《鐘擺擺得太遠》(A Pendulum Swung Too Far) 是一篇從 AI 高度回顧 NLP 全部歷史的反思力作,主要回顧了三位大師明斯基、喬姆斯基、皮爾斯的經典思想。」「丘吉預測,深度網絡的熱潮為主流經驗主義添了一把火,將會繼續主導自然語言領域十多年,從而延宕理性主義回歸的日程表。但是他認為理性主義復興的歷史步伐不會改變。他對主流漠視理性主義的現狀頗為憂慮,擔心下一代學者會淹沒在一波又一波的經驗主義熱潮中。」
-----
References
// 1960 之前
[1] History of natural language processing - Wikipedia
https://en.wikipedia.org/wiki/History_of_natural_language_processing
[2] 冯志伟. 计算语言学的历史回顾与现状分析. Diss. 2011.
http://www.lingviko.net/feng/wgy-CL-rev.pdf
http://glos.cssn.cn/yyx/yjgk/201402/t20140212_962111.shtml
[3] 独家 _ 一文读懂自然语言处理NLP(附学习资料) - 云+社区 - 腾讯云
https://cloud.tencent.com/developer/article/1032021
[4] 理性主義 - 維基百科,自由的百科全書
https://zh.m.wikipedia.org/zh-tw/%E7%90%86%E6%80%A7%E4%B8%BB%E4%B9%89
[5] 正規語言 (Formal Language) - 教科書:系統程式
http://sp1.wikidot.com/formallanguage
// 1960 - 2000 間
[6] Natural language processing - Wikipedia
https://en.m.wikipedia.org/wiki/Natural_language_processing#Statistical_natural_language_processing_(SNLP)
[7] 自然語言處理 - 維基百科,自由的百科全書
https://zh.m.wikipedia.org/zh-tw/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86
[8] Computational linguistics - Wikipedia
https://en.m.wikipedia.org/wiki/Computational_linguistics
[9] cl-intro
http://cs.brown.edu/courses/csci2951-k/papers/cl-intro.pdf
[10] 从语言建模到隐马尔可夫模型:一文详述计算语言学 _ 机器之心
https://www.jiqizhixin.com/articles/2017-09-21-8
[11] Top 10 Most Popular Books on Natural Langauge Process (NLP) and Text Analysis
https://www.houseofbots.com/news-detail/4594-1-top-10-most-popular-books-on-natural-langauge-process-nlp-and-text-analysis
// 2000 之後
[12] A Review of the Neural History of Natural Language Processing - AYLIEN
http://blog.aylien.com/a-review-of-the-recent-history-of-natural-language-processing/
[13] 15年来,自然语言处理发展史上的8大里程碑 - 知乎
https://zhuanlan.zhihu.com/p/47239175
[14] NLP(四):BERT Overview
https://hemingwang.blogspot.com/2019/01/bert-overview.html
[15] Speech and Language Processing _ 我爱自然语言处理
http://www.52nlp.cn/tag/speech-and-language-processing
-----
// 語料庫
[16]【自然语言处理】浅谈语料库 - 贾继康的博客 - CSDN博客
https://blog.csdn.net/Jiajikang_jjk/article/details/83684375
[17] MIT自然语言处理数据集和语料库集合 _ 机器之心
https://www.jiqizhixin.com/articles/2017-03-22-4
-----
// 結論
[18] Church, Kenneth. "A pendulum swung too far." Linguistic Issues in Language Technology 6.5 (2011): 1-27.
http://languagelog.ldc.upenn.edu/myl/ldc/swung-too-far.pdf
[19] (转)深度学习是经验主义新高峰,不是理性主义终结 - Julia & Rust & Python - CSDN博客
https://blog.csdn.net/wowotuo/article/details/73379233
[20] Sonder _ Paid media vs owned – has the pendulum swung too far
https://www.wearesonder.com/paid-media-vs-owned-has-the-pendulum-swung-too-far/
[21] AI Seminar(目錄)
http://hemingwang.blogspot.com/2019/01/ai-seminar.html
















































