自然語言處理NLP 發展簡史


從語言結構化理論基礎,到1750 億參數的GPT-3。一部NLP 的百年發展史。

語言的結構化

20 世紀初,在瑞士的日內瓦大學,一位名叫費迪南德·德·索緒爾( Ferdinand de Saussure) 的語言學教授發明了一種將語言描述為“系統”的方法。

索緒爾教授認為,意義是在語言內部、語言各部分之間的關​​系和差異中創造的,“在詞裡,重要的不是聲音本身,而是使這個詞區別於其他一切詞的聲音上的區別,因為帶有意義的也正是這些差別。" 他提出,“意義”產生於語言之間的關係和對比,而共享語言系統則使交流成為可能。

索緒爾將社會視為一個“共享”的規範體系,為合理的、可擴展的思想提供了條件,從而導致個人產生不同的決定和行動。

遺憾的是,索緒爾教授的理論還未發表,就於1913年去世。而他的兩個學生阿爾伯特·薛施靄(Albert Sechehaye)和沙爾·巴利(Charles Bally)意識到了這項研究的重要性,收集了教授生前留下的手稿以及其他同學的筆記,編輯整理出了《通用語言學》一書,並於1916年出版。 

該書奠定了後來的基礎結構主義的方法論,成為現代語言學以及結構主義語言學的開山之作,索緒爾教授也因此被後人稱為現代語言學之父。而他留下的結構化理論,對語言學以外的領域同樣影響深遠,也為幾十年後出現的結構化編程語言與人工智能技術打下了理論基礎。

人工智能的興起

1950 年,計算機科學之父阿蘭·圖靈(Alan Turing)發表了一篇劃時代的論文,文中預言了創造出具有真正智能的機器的可能性。由於注意到“智能”這一概念難以確切定義,他提出了著名的“圖靈測試”:如果一台機器能夠與人類展開對話(通過電傳設備),且不能被參與測試的30% 以上的人類裁判辨別出其機器身份,那麼則稱這台機器具有人類智能。

緊接著在1952年,生物學家阿蘭·霍奇金(Alan Hodgkin)和安德魯·赫克斯利(Andrew Huxley)開發了一個數學模型來解釋章魚巨型軸突中神經細胞的行為,霍奇金-赫克斯利模型展示了人類的大腦如何利用神經元形成網絡,首次將人類大腦的工作原理具象化地展示在世人面前。

這一系列顛覆性的研究成果在學術界引發轟動,激發了人工智能(AI)的思潮,同時也催生了自然語言處理(NLP)和計算機技術的發展。

NLP 的早期理論基礎

人們最早對NLP 的探索始於對機器翻譯的研究。1947年,美國科學家韋弗(W. Weaver)博士和英國工程師布斯(AD Booth)提出了利用計算機進行語言自動翻譯的設想,機器翻譯(Machine Translation)從此步入歷史舞台。

1957年,麻省理工學院的語言學教授諾姆·喬姆斯基(Noam Chomsky)在他出版的《句法結構》一書中,革新了語言的概念,提出“要使計算機理解語言,就必須更改句子的結構。”以此為目標,喬姆斯基創建了一種語法,稱為“階段結構語法”,該語法能夠有條不紊地將自然語言句子翻譯為計算機可以使用的格式。

1958年夏天,同樣來自麻省理工學院的人工智能研究先驅約翰·麥卡錫(John McCarthy)參與IBM資訊研究部的工作,研究符號運算及應用需求。但IBM旗下的Fortran表處理語言卻未能支持符號運算的遞歸、條件表達式、動態存儲分配及隱式回收等功能。於是麥卡錫帶領由MIT學生組成的團隊開發了一門全新的表處理語言 LISP,賦予了編程語言更強的數學計算能力。LISP語言後來也被稱為人工智能的“母語”,成為早期人工智能研究人員的編程語言。 

1964年,首個自然語言對話程序 ELIZA 誕生,該程序是由麻省理工學院人工智能實驗室的德裔計算機科學家約瑟夫·維岑鮑姆(Joseph Weizenbaum)使用一種名為MAD-SLIP的類LISP語言編寫,運行在MIT實驗室中36位的分時系統IBM 7094 (早期的晶體管大型計算機)上。 

由於當時的計算能力有限,ELIZA 只是通過重新排列句子並遵循相對簡單的語法規則來實現與人類的簡單交流。用戶通過電動打字機和打印機與程序進行遠程交互,當用戶鍵入一個句子並按Enter 鍵時,消息被發送到服務端系統,ELIZA 掃描郵件中是否存在關鍵字,並在新句子中使用該關鍵字以形成響應,返回打印給用戶。這種對話方式,給人的印像是計算機可以理解對話,又不必為對話提供任何新內容,僅用200 行代碼就產生了理解和參與的錯覺。 

在這一時期,雖然有了一定的理論基礎以及像Eliza 這樣的初級產品,但在歷時近12 年並耗資近2000 萬美元後,機器翻譯的成本還是遠高於人工翻譯,並且仍然沒有任何計算機能夠真正實現基本的對話。於是在1966 年,美國國家研究委員會(NRC)和自動語言處理諮詢委員會(ALPAC)停止了對自然語言處理和機器翻譯相關項目的資金支持, AI 和NLP 的發展因此陷入停滯。此時,許多學者認為人工智能和自然語言處理的研究進入了死胡同。人類早期結合語言學與統計學對AI/NLP 的初步探索以失敗告終。

NLP 的回歸

直到1980 年,在美國的卡內基梅隆大學召開了第一屆機器學習國際研討會,標誌著機器學習研究在全世界的重新興起。在某種程度上來說,長達14 年的真空期也讓NLP 界有時間冷靜下來尋求新的突破。於是,早期的機器翻譯概念被推翻,新的思想促進了新的研究。

早期的自然語言處理研究中,很流行語言學和統計學的混合,大多數NLP 系統都使用複雜的“手寫”邏輯規則。而現在,這一理念被純粹的統計學所取代。20 世紀80 年代,得益於計算能力的穩定增長以及機器學習的發展,研究人員開始對AI 和NLP 進行根本性的重新定位,用簡單的近似法取代了深入的分析法,評估過程也變得更加量化。 

經過一些挫折後,一種前饋神經網絡模型MLP 由偉博斯在1981 年的神經網絡反向傳播(BP)算法中具體提出。當然BP 仍然是今天神經網絡架構的關鍵因素。有了這些新思想,神經網絡的研究又加快了。1985 -1986 年,一些神經網絡研究學者先後提出了MLP 與BP 訓練相結合的理念。 

隨後,一個非常著名的ML 算法由羅斯·昆蘭(Ross Quinlan) 在1986 年提出,我們稱之為決策樹算法,更準確的說是ID3 算法。這是另一個主流機器學習的重要里程碑。與黑盒神經網絡模型截然不同的是,決策樹ID3 算法也被作為一個軟件,通過使用簡單的規則和清晰的參考可以找到更多的現實生活中的使用情況。

決策樹是一個預測模型,他代表的是對象屬性與對象值之間的一種映射關係。樹中每個節點表示某個對象,而每個分叉路徑則代表的某個可能的屬性值,而每個葉結點則對應從根節點到該葉節點所經歷的路徑所表示的對象的值。決策樹僅有單一輸出,若欲有復數輸出,可以建立獨立的決策樹以處理不同輸出。中決策樹是一種經常要用到的技術,可以用於分析數據,同樣也可以用來作預測。 

在90年代,隨著互聯網的出現,用於自然語言過程分析的統計模型迅速普及。純粹的統計學NLP方法在線上文本的巨大流量方面已變得非常有價值。n元模型(n-gram)在數字識別和跟踪大量的語言數據方面也已經變得非常有用。

語言模型簡單來說就是一串詞序列的概率分佈。具體來說,語言模型的作用是為一個長度為m的文本確定一個概率分佈P,表示這段文本存在的可能性。在實踐中,如果文本的長度較長,P(wi | w1, w2, . . . , wi−1)的估算會非常困難。因此,研究者們提出使用一個簡化模型:n元模型(n-gram model)。在 n 元模型中估算條件概率時,只需要對當前詞的前n-1 個詞進行計算。在n 元模型中,傳統的方法一般採用頻率計數的比例來估算n 元條件概率。當n 較大時,機會存在數據稀疏問題,導致估算結果不准確。因此,在百萬詞級別的語料中,一般也就用到三元模型。

為了緩解n元模型估算概率時遇到的數據稀疏問題,研究者們提出了神經網絡語言模型。1997年,LSTM 遞歸神經網絡(RNN)模型被引入,並在2007年找到了語音和文本處理的利基市場。目前,神經網絡模型被認為是NLP對文本和語音生成理解的最前沿研究。 

2001年,法國AI 專家約書亞·本吉奧(Yoshio Bengio)發表了一篇論文,提出了一種全新的語言神經網絡模型。該模型使用前饋神經網絡描述了一種不使用連接來形成循環的人工神經網絡。在這種類型的網絡中,數據僅在一個方向上移動,從輸入節點到任何隱藏節點,再到輸出節點。前饋神經網絡沒有循環,與遞歸神經網絡有很大不同。

本吉奧帶來的全新思路啟發了之後的很多基於神經網絡的NLP 學術研究,在工業界也得到了廣泛使用,助力了NLP 的應用在未來幾年的加速落地。此外,還有梯度消失(gradient vanishing)的細緻分析,word2vec 的雛形,以及如今實現的機器翻譯技術都有本吉奧的貢獻。

當代NLP 研究

經過長期的發展,自然語言處理(NLP)被人們系統地定義為人工智能中的一門分支學科。除了機器翻譯與人機交互意外,NLP 還包含以下高級功能的研究: 

  • 內容分類:語言文檔摘要,包括內容警報,重複檢測,搜索和索引。
  • 主題發現和建模:捕獲文本集合的主題和含義,並對文本進行高級分析。
  • 上下文提取:自動從基於文本的源中提取結構化數據。
  • 情緒分析:識別存儲在大量文本中的總體情緒或主觀意見,用於意見挖掘。
  • 文本到語音和語音到文本的轉換: 將語音命令轉換為文本,反之亦然。
  • 文檔摘要:自動創建摘要,壓縮大量文本。
  • 機器翻譯:自動將一種語言的文本或語音翻譯成另一種語言。 

在2011 年,蘋果公司的Siri 成為世界上第一個成功被普通消費者使用的NLP / AI 助手之一。在Siri 中,自動語音識別模塊將所有的單詞轉換為數字解釋的概念。然後,語音命令系統會將這些概念與預定義的命令進行匹配,從而啟動特定的操作。例如,如果Siri 問:“您想听一下您的餘額嗎?” 它會理解你將要回答的“是”或“否”,並採取相應的行動。 

通過使用機器學習技術,所有者的口語模式不必與預定義的表達式完全匹配。對於NLP系統來說,聲音必須合理地接近才能正確翻譯含義。通過使用反饋循環,NLP引擎可以顯著提高其翻譯的準確性,並增加系統的詞彙量。訓練有素的系統會理解“我在哪裡可以得到大數據的幫助?”這樣的字眼。“我在哪裡可以找到大數據專家?”或“我需要大數據方面的幫助”,並提供適當的答复。 

對話管理器與NLP 的組合,使開發一個能夠真正與人類對話的系統成為可能。2014 年6 月8 日,一個名為尤金·古斯特曼(Eugene Goostman)的電腦聊天程序成功讓參與測試的33% 人類裁判相信它是一個13 歲的男孩,成為有史以來首台通過圖靈測試的計算機。 

NLP 的未來

近年來,在NLP 領域中,使用語言模型預訓練方法在多項NLP 任務上都取得了突破性進展,廣泛受到了各界的關注。 

前文提到,目前神經網絡在進行訓練的時候基本都是基於後向傳播(BP)算法,通過對網絡模型參數進行隨機初始化,然後通過BP 算法利用例如SGD 這樣的優化算法去優化模型參數。那麼預訓練的思想就是,該模型的參數不再是隨機初始化,而是先有一個任務進行訓練得到一套模型參數,然後用這套參數對模型進行初始化,再進行訓練。即通過在大量的語料上預訓練語言模型,然後再將預訓練好的模型遷移到具體的下游NLP 任務,從而提高模型的能力。 

得益於目前硬件算力的提升,預訓練語言模型的參數規模呈指數倍增長。其中,GPT 模型是OpenAI 在2018 年提出的一種新的ELMo 算法模型,該模型在預訓練模型的基礎上,只需要做一些微調即可直接遷移到各種NLP 任務中,因此具有很強的遷移能力。2019 年推出的GPT-2 擁有15 億參數,到了2020 年推出的GPT-3 已經擁有驚人的1750 億參數,不僅能輕鬆通過圖靈測試,還能完成包括寫代碼在內的大部分NLP 任務。 

神經網絡之父、圖靈獎獲得者杰弗裡·辛頓(Geoffrey Hinton)表示,“ 鑑於GPT-3 在未來的驚人前景,可以得出結論:生命、宇宙和萬物的答案,就只是4.398 萬億個參數而已。” 這一觀點也引發了人們的廣泛討論,被認為是對NLP 發展盡頭的預言。當未來人類的算力不斷突破極限時,包含全人類文明的GPT-N 是否會是NLP 的終點呢?

參考鏈接:Keith D. Foote

本站文章除註明轉載外,均為本站原創或編譯。歡迎任何形式的轉載,但請務必註明出處,尊重他人勞動共創開源社區。
轉載請註明:文章轉載自OSCHINA社區[http://www.oschina.net]
本文標題:自然語言處理NLP發展簡史