歡迎您光臨本站 註冊首頁

自然語言處理 NLP 發展簡史

←手機掃碼閱讀     admin @ 2020-08-15 , reply:0

從語言結構化理論基礎,到 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)博士和英國工程師布斯(A. D. 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


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/117939/history-of-nlp
自然語言處理 NLP 發展簡史已經有24次圍觀

http://coctec.com/news/all/show-post-249028.html