馮志偉



摘 要:介紹了自然語言處理中的神經語言模型,討論了大腦神經網絡、人工神經網絡、“異或”問題、前饋神經網絡、神經網絡的歷史分期及其進一步發展等;指出,在神經網絡的研究中,感知機不能解決線性不可分的分類問題,通過增加隱藏層才能進行“異或”運算。通常情況下,在訓練神經網絡的同時,還要進行嵌入學習,對于機器翻譯、情感分類、句法剖析這些自然語言處理的特殊任務,常常要加上很強的約束,并應當把基于語言規則的理性主義方法和基于大數據的經驗主義方法結合起來。
關鍵詞:大腦神經網絡;人工神經網絡;“異或”問題;感知機;前饋神經網絡
中圖分類號:TP18? 文獻標識碼:A? 文章編號:1004-8634(2021)02-110-(13)
DOI:10.13852/J.CNKI.JSHNU.2021.02.012
語言是觀察人類智能的重要窗口,自然語言處理(Natural Language Processing, 縮寫NLP)是人工智能皇冠上的明珠。1近年來,特別是2012年以來,神經網絡(Neural Network,縮寫NN)和深度學習(Deep Learning, 縮寫DL)方法在自然語言處理中得到廣泛應用,并且逐漸成為自然語言處理研究中的主流技術。
目前,神經網絡方法有效提高了自然語言系統的處理水平,把自然語言處理的發展推向了一個嶄新的階段,我們應當加以特別關注。2
神經網絡是自然語言處理的一種基本的計算工具,并且是出現得很早的一種工具。之所以叫作“神經”,是因為它源自1943年心理學家麥卡洛克(Warren McCulloch)和數學家皮茨(Walter Pitts)提出的“神經元”(Neuron)。神經元是一種人類神經的可計算單元的簡化模型,可以使用命題邏輯(Propositional Logic)來描述。
人工神經網絡是由一些小的計算單元構成的網絡,神經網絡中的每一個單元取一個輸入值向量,產生一個輸出值。因為人工神經網絡在其計算過程中要反復地從神經網絡的一個層(Layer)饋入另一層,要穿越若干層,因而是一種有深度的網絡,我們常常把這種基于人工神經網絡的機器學習(Machine Learning)叫作“深度學習”。
一、大腦神經網絡
人類的智能行為都與大腦活動有關。大腦是神經器官,與人體的其他器官(如消化器官、呼吸器官、血液循環器官)不同,它可以產生感覺、知覺和情感。大腦是一個神經系統,由神經元、神經干細胞、神經膠質細胞以及血管組成。神經元能夠攜帶和傳輸信息,是人腦神經系統中最基本的單元。神經元個數眾多,大約有860億個,它們之間通過上千個突觸相連接(神經元之間的連接構成一個巨大的復雜網絡,其總長度達數千公里),形成一個極為復雜的神經網絡,叫作“大腦神經網絡”(Brain Nearal Netwrok)。受到人類大腦神經網絡的啟發,早期的神經科學家們構造了一種模仿人類大腦神經系統的數學模型(由很多人工神經元組合而成,這些人工神經元之間的連接強度可以通過機器自動學習的方式來自動地獲取),叫作“人工神經網絡”(Artificial Neural Network)。與大腦神經網絡相比,人工神經網絡相對要簡單得多。
1904年,科學家就已經發現,人類大腦中典型的神經元結構大致可包括細胞體(Soma)、樹突(Dendrite)和軸突(Axons)三部分。細胞體主要由細胞核和細胞膜構成,細胞膜上有各種受體(與相應的化學物質神經遞質相結合能改變離子的通透性及膜內外電位差,從而使神經細胞產生興奮或抑制的生理活動)和離子通道。樹突和軸突(統稱細胞突起,每個神經元可以有一個或多個樹突,但軸突只有一個)是從細胞體主體延伸出來的細長部分,前者的功能是接受刺激并將興奮傳入細胞體,后者的功能是把自身的興奮狀態從細胞體由軸突末梢傳送到另外的神經元或其他組織。圖1是典型的大腦神經元結構。
神經元與神經元之間留有20納米左右的縫隙,但它們相互間卻可以傳遞信息。神經元之間的信息傳遞是靠突觸(Synapse,是軸突末梢各分支末端與其他多個神經元的樹突相接觸形成的,它是神經元之間連接的接口)來完成的。每個神經元只有興奮和抑制兩種狀態,由其他神經元的輸入信號量及突觸抑制或興奮的強度來決定:當接收到的信號量總和超過了某個閾值時,細胞體就會興奮,相反就會抑制,從而產生不同強度的電脈沖。一個神經元接收到信息并形成電脈沖后,電脈沖會沿著自己的軸突并通過突觸把信息再傳遞給其他神經元,而其他神經元根據接收到的信號量及突觸抑制或興奮的強度形成自己的狀態并產生電脈沖。神經元之間的信息傳遞就是通過這種方式實現的。
一個人的智力并不是完全由先天的遺傳決定的,大部分來自后天的生活經驗,是通過在生活中不斷地學習而獲得的。因此,大腦神經網絡是一個具有學習能力的系統,它可以通過不斷的學習而得到改進。那么人類大腦是如何進行學習的呢?
大腦神經網絡學習的秘訣不在于單個的神經元,而在于神經元之間的連接強度。不同神經元之間突觸的信號有強有弱,強的信號會使神經元間的連接增強。通過學習或訓練,可以增強突觸的信號強度,形成“記憶印痕”,使相關的神經元產生記憶,從而增強這些神經元之間的聯系。
1949年,加拿大心理學家赫布(Donald Hebb)提出突觸可塑性的基本原理。1他指出,如果兩個神經元總是相關聯地受到刺激,那么,它們之間的突觸強度會增加。舉例來說,當A神經元的一個軸突和B神經元接近到足以對其產生影響,并持續、重復地參與對B神經元的興奮過程,那么,這兩個神經元或其中的一個就會發生某種“新陳代謝”的變化,A神經元就成為導致B神經元“興奮”的一個細胞,從而加強了后者的效能。這個原理叫作“赫布規則”(Hebb Rule)。赫布認為人的大腦有短期和長期兩種記憶,短期記憶持續的時間不超過一分鐘。如果短期記憶獲得的經驗重復足夠的次數,這個經驗就可以長期儲存在記憶中,從而轉化為長期記憶,這個過程叫作“凝固作用”(人腦中的海馬區就是大腦結構凝固作用的核心區域)。
二、人工神經網絡
如前所述,人工神經網絡本質上是受到大腦神經網絡的啟發而建立的數學模型。這一模型對大腦神經網絡進行抽象來構建人工神經元,并且按照一定的拓撲結構建立起人工神經元之間的連接,從而模擬人類大腦。在人工智能領域,人工神經網絡也常常簡稱為“神經網絡”或“神經模型”(Neural Model,縮寫NM)。人工神經網絡從結構、實現機理和功能等方面來模擬人類大腦神經網絡,其結構如圖2所示。從第一個神經元的軸突傳送的信息x0經過突觸時,被賦予了權重w0,以w0x0的值傳送到當前神經元的樹突,進入細胞體。同樣,從第二個神經元的軸突傳送的信息x1經過突觸時,被賦予了權重w1,以w1x1的值傳送到當前神經元的樹突,進入細胞體;從第三個神經元的軸突傳送的信息x2經過突觸時,被賦予了權重w2,以w2x2的值傳送到當前神經元的樹突,進入細胞體;從第i個神經元的軸突傳送的信息xi經過突觸時,被賦予了權重wi,以wixi的值傳送到當前神經元的樹突,進入細胞體。
在細胞體有一個激勵函數(Activation Function),記為f,這個激勵函數控制著wixi,當wixi的值大于某一個閾值時輸出1,否則輸出0,這樣,在這個神經元的軸突上,便可以得到一個被激勵函數f控制的輸出(Output Axon):
其中,wi表示權重,xi表示輸入信息,b表示偏置(Bias)。
人工神經網絡模仿大腦神經網絡中神經元的原理,由若干個人工神經元相互連接而成,可以用來對各種數據之間的復雜關系進行建模。建模的時候,給不同人工神經元之間的連接賦予不同的權重,每個權重代表一個人工神經元對另一個人工神經元影響的強度。每一個神經元可以表示一個特定的函數,來自其他人工神經元的信息經過與之相應的權重綜合計算,輸入到一個激勵函數中并得到一個表示興奮或抑制的新值。
從系統的觀點來看,人工神經網絡是由大量的神經元通過非常豐富和完善的連接而構成的自適應非線性動態系統(Self-adaptive Non-linear Dynamic System)。
盡管我們能夠比較容易地構造一個人工神經網絡,但是如何讓這樣的人工神經網絡具備自動學習的能力并不是一件容易的事情。
早期的神經網絡模型并不具備自動學習的能力。第一個可以自動學習的人工神經網絡是赫布網絡(Hebb Network),它采用了一種基于赫布規則的無監督機器學習算法(Unsupervised Machine Learning Algorithm)。感知機(Perceptron)是最早的具有機器自動學習能力的神經網絡,但是它的自動學習方法無法擴展到多層神經網絡上(詳見后文)。直到1980年前后反向傳播算法(Back Propagation Algorithm,簡稱BP算法)提出后,才有效地解決了多層神經網絡的自動學習問題,而反向傳播算法也就成為最為流行的神經網絡自動學習算法。
人工神經網絡誕生之初并不關注機器自動學習問題。由于人工神經網絡可以被看作一個通用的函數逼近器,一個具有兩個層級的人工神經網絡可以逼近任意函數,因此,人工神經網絡就可以被看作一個可以進行自動學習的函數,并能夠應用到機器自動學習中。從理論上說,人工神經網絡只要具有足夠數量的訓練數據和神經元,就可以自動地學習到很多復雜的函數。人工神經網絡模型自動學習任何函數能力的大小叫作網絡容量(Network Capacity),網絡容量的大小與存儲在網絡中信息的復雜程度以及數量的多少有關。
神經網絡最早是一種連接主義模型(Connectionism Model)。20世紀80年代后期,最為流行的連接主義模型是分布式并行處理(Parallel Distributed Processing,縮寫PDP)網絡。
這種分布式并行處理網絡有3個主要特性:它的信息表示是分布式的;它的記憶和知識存儲都是通過單元與單元之間的連接來進行的;它要通過逐漸改變單元與單元之間的連接強度來自動地學習新的知識。
連接主義的人工神經網絡有著多種多樣的網絡結構和機器自動學習的方法。雖然早期的人工神經網絡強調模型的生物可解釋性(Biological Plausibility),但后期更關注對某種特定認知能力的模擬,比如物體識別、自然語言理解等。尤其在引入反向傳播算法來改進其學習能力后,人工神經網絡也越來越多地應用于各種模式識別(Pattern Recognition)任務中。隨著訓練數據的增多以及并行計算能力的增強,人工神經網絡在很多模式識別的任務中已經取得了很大的突破,特別是在語音、圖像等感知信號的處理上,人工神經網絡表現出了卓越的自動學習能力。
從機器自動學習的角度來看,人工神經網絡可以被看作一個非線性模型,它的基本組成單元是具有非線性激活函數的神經元,通過大量神經元間的連接,使得人工神經網絡成為一種高度的非線性模型。神經元間的連接權重就是需要機器自動學習的參數,這些參數可以通過梯度下降(Gradient Descent)的方法來進行自動學習。
1957年,美國康奈爾航天實驗室的心理學家羅森布拉特(Frank Rosenblatt)根據大腦神經元的原理與赫布規則,建立了感知機的數學模型。感知機是最簡單的人工神經網絡,它只有一個神經元。
感知機作為簡化的數學模型可以解釋大腦神經元是如何工作的,它從附近的神經元中取一組輸入值x1,x2,x3,…… xi,將每個輸入值乘以一個連續值權重w1,w2,w3, ……wi,這個權重也就是每個附近的神經元突觸的強度,輸入信息可以表示為:
感知機還要為偏置設立一個閾值θ。如果加權輸入值的和超過了這個閾值θ,那么,就輸出1,這時,y=1,神經元興奮;如果加權輸入值的和等于或者低于這個閾值θ,那么,就輸出0,這時,y=0,神經元抑制。如圖3所示。
有了這樣的神經元,感知機就可以對操作對象進行線性分類(Linear Classification)了。因此,感知機是一種簡單的線性分類模型。
感知機是對大腦神經網絡簡單的數學模擬,它有與大腦神經網絡的神經元相對應的部件,其權重wi相當于大腦神經網絡神經元的突觸,閾值θ的控制機制相當于大腦神經網絡細胞體的功能。這樣的感知機是具有自動學習能力的。
通過調整感知機輸入值的權重,可以提出一個非常簡單而直觀的機器自動學習方案:給定一個有輸入輸出實例的訓練集,感知機從實例中自動地學習一個激勵函數f(對每個實例,如果感知機的輸出值比實例低,則增加它的權重;如果感知機的輸出值比實例高,則減少它的權重)。
具體的機器學習算法如下:(1)從感知機的隨機權重以及一個訓練集開始。(2)對訓練集中一個實例的輸入值x1, x2, x3, x4,…… 計算感知機的輸出值y1。(3)如果感知機的輸出值與實例中默認正確的輸出值不同,則做如下處理:若輸出值應該為0但實際為1,則減少輸入值實例的權重;若輸出值應該為1但實際為0,則增加輸入值實例的權重。(4)對訓練集中下一個實例執行同樣的操作,重復步驟(2)—(4),直到感知機不再出錯為止。如圖4所示,輸入(Input)x1, x2, x3, x4,……由感知機的神經元激勵函數f控制,得到輸出y1。
羅森布拉特根據感知機的數學原理,制造出了感知機的硬件,這種感知機可以用來對20×20像素輸入中的簡單形狀進行正確分類。這臺感知機硬件可以從已知的“輸入—輸出”偶對中得出近似函數,因而實現了機器學習,這是世界上第一臺可以進行機器學習的計算機。盡管當時它只學習了一些簡單的函數,但是由此不難想象它廣闊的應用前景。羅森布拉特用他的感知機自動地識別了手寫體的阿拉伯數字,這是世界上首次實現的自動文字識別。
羅森布拉特最早提出了兩類感知機算法,隨后又給出了感知機收斂定理。但是由于感知機的輸出是離散的,其學習算法還比較簡單,限制了其應用范圍。
1969年,明斯基(Minsky)和帕佩特(Seymour Papert)在《感知機:計算幾何導論》一書中分析了感知機的局限性,指出感知機存在如下兩個關鍵問題:1第一,感知機不能解決線性不可分的分類問題(“異或”問題,在現實生活中廣泛存在)。第二,訓練以感知機為基礎的實用神經網絡模型需要龐大的計算資源和計算能力,當時的技術條件還不具備現實可行性。在這種情況下,感知機的研究進入了十多年的“低谷”。
三、“異或”問題
如前所述,明斯基和帕佩特指出,像感知機這樣的單獨的神經元不能計算輸入它的某些簡單的非線性函數,即“異或”(XOR)函數,這個函數是線性不可分的。
我們來考慮有兩個輸入x1和x2的邏輯函數的計算問題,AND運算(“與”運算)、OR運算(“或”運算)和XOR運算的真值表如圖5:
感知機可以進行AND運算和OR運算,但明斯基和帕佩特證明了不可能構造一個感知機來進行XOR運算。然而,XOR運算在實際生活中是常見的。例如,在自然界和人類社會中的“同性相斥、異性相吸”的現象,其邏輯原理就是XOR運算,此類問題在實際生活中屢見不鮮。在邏輯上,XOR運算是一個線性不可分問題,而感知機不能解決這樣的線性不可分問題,這是感知機的一個嚴重缺陷。
圖6顯示了AND運算和OR運算的可能的邏輯輸入(00, 01, 10和11),以及根據一組參數畫出的分界直線。用實心圓點表示正值(Positive Value),用空心圓點表示負值(Negative Value)。這時,AND運算和OR運算都能夠把運算結果做出正確的分類,把實心圓點置于分類線的一側,而把空心圓點置于分類線的另一側。但是,不存在一種簡單的方法可以畫出一條直線把XOR運算的實心圓點(01和10的“異或”運算得出的正值)和空心圓點(00和11的“異或”運算得出的負值)分割開來。因此,XOR這個函數不是一個線性可分函數(Linearly Separable Function),也就是說,XOR函數是線性不可分的。當然,也可以用曲線或者其他的函數給實心圓點和空心圓點勉強畫出一條分界線,但是,這已經不是一條單獨的直線了。
明斯基和帕佩特尖銳地指出了感知機的這種缺陷,他們的書出版后引起了很大反響。于是,學術界認識到感知機不能處理日常生活中很常見的XOR運算的線性不可分問題,因此,他們對于感知機的熱望一落千丈。這給感知器以及人工神經網絡研究的熱潮潑了一瓢冷水,也使得公眾對于人工神經網絡的期望降到了冰點。
那么,怎樣才能解決XOR運算的線性不可分問題呢?科學家們提出了給感知機設置“隱藏層”(Hidden Layer)的聰明辦法。2
如果在感知機中設置隱藏層h1和h2,如圖7所示(箭頭上的數字表示每一個神經元的權值w,偏置b表示在+1處的一個權值,偏置的權值和神經元都用淺灰色表示),加入了隱藏層之后,可以使感知機形成一種新的表示,從而解決了線性不可分問題。對于隱藏層h1和h2,當輸入點為x1=[1? 1]和x2=[1? 1]的時候,其結果通過隱藏層在輸出y1處融合為一個單獨的點,使得它們的計算結果在y1處都為負值(也就是為0),從而解決線性不可分問題。這樣,加了隱藏層的感知機就可以進行“異或”運算了。下面我們進一步解釋“異或”運算問題。
圖8比較了沒有加隱藏層的x空間和加了隱藏層的h空間的不同情況。左側a)表示原來的x空間(The Original x Space),右側b)表示加了隱藏層之后的新的h空間(The New h Space)。可以看出,在進行XOR運算時,在原來的x空間中,當x=[1? 0]與x=[0? 1]時,其輸出值分別處于x0和x1軸上,都為1;而當x=[0? 0]與x=[1? 1]時,其輸出值不能處于除了原點之外的x0和x1軸上,都為0,這樣就沒法對它們進行線性分割。在加了隱藏層的h空間中,可以把網絡的隱藏層看作形成了一種新的輸入表示,輸入點x=[1? 0]和x=[0? 1]的隱藏代表改變為h=[1? 0]的輸出值與h=[0? 1]的輸出值,這時它們的輸出值都融合為一個單獨的點h=[1? 0]了。這樣,由于增加了隱藏層,融合之后就容易對XOR的負值(用空心圓點表示)和正值(用實心圓點表示)線性地進行分割了。
在上面圖7的例子中顯示了一些權重的值,但實際上,神經網絡的權重是通過“反向傳播算法”來自動學習到的。這就意味著,隱藏層要通過“深度學習”才能形成有用的表示。神經網絡有能力自動地從輸入中學習到有用的表示,這是人工神經網絡最為關鍵的優點。
“異或”問題的求解要求神經網絡帶有非線性的激活函數,因此,只由一個簡單的線性神經元(感知機)構成的神經網絡是不能解決“異或”問題的。需要給感知機增加一個或多個隱藏層,把單層的感知機進一步擴充為多層次的感知機,通過多個層次來進行深度學習,就可以解決“異或”這樣的線性不可分問題了。顯而易見,給感知機增加隱藏層這樣的聰明辦法,大大地增強了感知機的效能。
四、前饋神經網絡
直到1980年后,辛頓(Geoffrey Hinton)、樂坤(Yann LeCun)等人才改進了感知機,給其增加隱藏層,把它改造成多層的感知機(Multi-Layer Perceptron,縮寫MLP),使之具有處理線性不可分問題的能力。他們還用連續的輸出代替離散的輸出,并采用反向傳播算法進行權重的自動學習,把反向傳播算法引入多層感知機中,這樣的多層感知機就可以進行深度學習了,感知機的研究又重新引起人們的關注。明斯基等人也修正了他們的看法,開始大力支持感知機的研究。
與此同時,人們對感知機本身的認識也在不斷發展。1999年,弗勒伊德(Freund)和沙皮爾(Schapire)提出了使用核技巧來改進多層感知機的深度學習算法,并使用投票感知機來提高多層感知機的泛化能力。2002年,科林斯(Collins)將多層感知機算法擴展到結構化的深度學習中,給出了相應的收斂性證明,并且提出一種更加有效和實用的參數平均化策略。2010年,麥當納(McDonald)又擴展了平均感知機算法,使得多層感知機可以在分布式計算環境中進行并行計算,這樣就能使用多層感知機來進行大規模的深度學習了。
到目前為止,研究者已經提出了許多結構各不相同的人工神經網絡。它們都是在感知機的基礎上發展起來的。作為例子,在本文中介紹一種有代表性的人工神經網絡——“前饋神經網絡”(Feed-forward Neural Network,縮寫FNN)。不同的人工神經網絡有著不同網絡連接的拓撲結構,比較直接的拓撲結構是前饋網絡,它是最早提出的多層的人工神經網絡。
在前饋神經網絡中,每一個神經元分別屬于不同的層,每一層的神經元可以接收前一層神經元的信號,并產生信號輸出到下一層的神經元。第0層神經元叫輸入層(Input Layer),最后一層神經元叫輸出層(Output Layer),其他處于中間層次的神經元叫隱藏層。整個網絡中沒有反饋,信號x1, x2, x3, x4從輸入層輸入,經過隱藏層,向輸出層進行單向傳播,最后在輸出層輸出結果y1,y2,y3,形成一個有向非成圈圖。這種前饋神經網絡有若干個隱藏層,所以也叫多層感知機。前饋神經網絡中相鄰兩層的神經元之間是全連接關系,也稱為“全連接神經網絡”(Fully Connected Neural Network,縮寫FCNN)。其結構如圖9所示。
也可以把這樣的前饋神經網絡看作一個復合函數(Complex Function),它通過簡單非線性函數的多次復合,實現輸入空間到輸出空間的復雜映射。這種網絡的結構簡單,易于實現。
前饋神經網絡作為一種能力很強的非線性模型,在20世紀80年代后期就已被廣泛使用,但是基本上都是三層網絡(只有一個輸入層、一個隱藏層和一個輸出層),雖然當時前饋神經網絡的參數學習依然有很多難點,但它可以作為連接主義的一個典型模型,標志著人工智能從高度符號化的知識期向低符號化的深度學習期的轉變。這是人工智能研究中的重要轉折點。
在前饋神經網絡中,每個神經元包括兩部分:一部分負責線性加權求和,叫作“線性層”;另外一部分是激勵函數,由于激勵函數都被定義為非線性的,所以又叫作“非線性層”。單層的感知機中同樣可以使用激勵函數,但是由于是否使用激勵函數并不影響單層感知機的分類能力,因而往往被忽略。然而在多層感知機中,激勵函數對于神經網絡的深度學習能力具有至關重要的作用;如果在兩個網絡層之間沒有非線性的激勵函數,不論網絡有多少層,總體上仍然等價于一個線性函數,從數學的角度看,與單層感知機的表達能力并沒有什么不同,難以處理線性不可分問題。由此可見,激勵函數大大改善了前饋神經網絡的性能。
在理論上可以證明,只要激勵函數能夠滿足特定的寬松條件,那么,對于任何一個連續函數,都存在一個有限大小而且至少包含一個隱藏層的神經網絡,因而就能夠以任意的精度逼近這個連續函數。
在前饋神經網絡中,輸出層的作用是取隱藏層的表示,并計算出最后的輸出。這個輸出可能是一個實數,但是在很多場合下,神經網絡的目標是進行某種分類判定,所以,現在把問題的焦點集中到分類(classification)這樣的場合。
在自然語言處理中,如果用前饋神經網絡來做文本的情感分類這樣簡單的二元分類,那么可得到一個單獨的輸出,而它的值就是正面情感對于負面情感的概率值。如果做多元的分類,例如,給文本指派不同的詞類標記(Tag of POS),那么,對每一個潛在的詞類都會得到輸出節點,而在輸出節點上的輸出值就是這個詞類標記的概率,并且所有這些輸出節點的概率值的總和為1,因此,在輸出層就可以在所有的節點上給出概率分布。
在神經語言模型(Neural Language Model)中,前面的上下文是使用前面單詞的詞嵌入(Word Embedding)來表示的。把前面的上下文表示為詞嵌入,而不是像在N元語法模型(N-gram Model)中那樣表示為精確的、具體的單詞,這就使得神經語言模型能夠泛化為“看不見的數據”(Unseen Data),對于自然語言描述的抽象程度更高,顯然比N元語法模型具有更強的功能。例如,在訓練集中可以看到這樣的句子:
I have to make sure when I get home to feed the cat.
在feed the 這樣的單詞串之后是單詞cat。如果在測試集中試圖預測在前面出現另外的單詞系列I forgot when I got home to feed the之后,究竟會出現什么單詞,應當怎么辦呢?
根據訓練集的例子,如果使用N元語法模型,就可以預見到feed the之后的單詞應當是cat,而不會是單詞dog。如果使用一個神經語言模型,那么,這個神經語言模型就可以根據cat和dog具有相似的嵌入(Embedding)這樣的事實,理直氣壯地給dog指派與cat一樣高的概率,從而判斷feed the后面的單詞可能是dog,而做出這種判斷的根據就僅僅是因為它們在嵌入中具有相似的詞向量。由此可以看到,神經語言模型確實比N元語法模型更勝一籌。1
來看一看前饋神經語言模型在實際上是怎樣工作的。假定有一部嵌入詞典(Embedding Dictionary)E,對于普通詞典V中的每一個單詞,嵌入詞典E都能給出相應單詞的詞向量嵌入(Word Vector Embedding,可以使用word2vec算法預先計算出來),這樣,在自然語言處理中就可以直接從嵌入詞典中查詢到單詞的詞向量。2
圖10是前饋神經網絡模型處理一個文本的示意圖,描述了一個簡化的前饋神經語言模型的梗概,這個模型的N=3,在時間點t有一個移動窗口以及單詞wt前面3個單詞(單詞[wt-1,wt-2,wt-3])的嵌入向量。這3個向量毗連起來構成神經網絡的輸入層x,神經網絡的輸出是這些單詞的概率分布,因此,在輸出節點42上的值y42就是下面標為V42的單詞(即詞典中標引號為42的單詞,在這里是lived)的wt的概率。
顯而易見,這個圖是被簡化了的,因為對圖中的每一個單詞都已經查找出了它在嵌入詞典E中的d維嵌入向量,而且事先使用諸如word2vec這樣的算法進行了預先的計算。不過,在通常情況下,在訓練神經網絡的同時,還要進行嵌入學習(Embeddding Learning);而且在設計神經網絡的時候,對于機器翻譯、情感分類、句法剖析這些自然語言處理的特殊任務,常常要加上一些很強的約束以使輸入的表示更加完美。
五、人工神經網絡的分期及其進一步發展
人工神經網絡的發展大致可以分為五個階段:萌芽創業期、第一個低潮期、復蘇振興期、第二個低潮期、崛起繁榮期。2
萌芽創業期為1943—1969年,是人工神經網絡發展的第一個高潮期。這個時期,科學家們提出了許多神經元模型。如1943年麥卡洛克和數學家皮茨構建的MP模型,1948年圖靈(Allen Turing)描述的“圖靈機”(Turing Machine),1951年明斯基建造的第一臺模擬神經網絡的機器SNARC,1958年羅森布拉特提出的可以模擬人類感知能力的神經網絡模型——“感知機”等。這一時期,人工神經網絡以其獨特的結構和處理信息的方法,在自動控制、模式識別等應用領域中取得了初步的成效。
第一個低潮期為1969—1983年,人工神經網絡第一次落入低谷。在此期間,受1969年明斯基和帕佩特《感知機:計算幾何導論》的影響,人工神經網絡的研究處于長達15年的停滯狀態。雖然1974 年哈佛大學的魏博思(Paul Webos) 發明了反向傳播算法,但當時未受到應有的重視。1980年,福島邦彥(Fukushima)提出的一種帶卷積和子采樣操作的多層神經網絡——“新知機”(Neocognitron),沒有采用反向傳播算法,而是采用了無監督機器學習的方式來訓練,因此也沒有引起學術界的重視。這就使得人工神經網絡的研究長期處于低潮狀態。
復蘇振興期為1983—1995年,是人工神經網絡發展的第二個高潮期。其間,由于給感知機添加隱藏層解決了線性不可分問題,反向傳播算法重新激發了人們對人工神經網絡的興趣。1983年,美國加州理工學院的物理學家何普菲爾德(John Hopfield)提出了一種用于聯想記憶以及優化計算的人工神經網絡,稱為“何普菲爾德網絡”(Hopfield Network),其在解決“旅行商問題”上獲得當時最好的結果,引起了轟動,促進了人工神經網絡研究的復蘇。1984年,辛頓提出一種隨機化版本的何普菲爾德網絡,即“玻爾茲曼機”(Boltzmann Machine)。真正推動人工神經網絡振興的是反向傳播算法。1986年,魯邁哈特(David Rumelhart)和麥克蘭德(James McClelland)對于連接主義在計算機模擬神經活動中的應用進行了全面研究,改進了反向傳播算法。辛頓等人將反向傳播算法引入多層感知機的研制中,于是人工神經網絡又重新引起人們的關注,成為人工智能研究中的新熱點。隨后,樂坤等人將反向傳播算法引入“卷積神經網絡”(Convolutional Neural Network,縮寫CNN)中,并應用在手寫體數字自動識別方面,降低了誤識率,推動了人工神經網絡的研究。可是好景不長,人工神經網絡不久就進入了第二個低潮期。
第二個低潮期為1995—2006年,持續達11年之久。在這期間,基于統計的“支持向量機”(Support Vector Machine,縮寫SVM)和其他更簡單的統計方法(例如線性分類器)在機器學習領域的流行度逐漸超過了人工神經網絡。雖然人工神經網絡可以通過增加神經元數量的方式來構建復雜的網絡,但其計算復雜性也隨之呈指數級增長,當時的計算機性能和數據資源的規模都不足以支持訓練大規模的人工神經網絡。在20世紀90年代中期,統計機器學習理論和以支持向量機為代表的機器學習研究在自然語言處理中獨占鰲頭,而人工神經網絡則相形見絀,它的理論基礎不夠扎實、優化比較困難、可解釋性差等缺點更加凸顯出來,于是,人工神經網絡的研究又一次跌入了低谷。
崛起繁榮期為2006年以后至今。2006年,辛頓和薩拉庫提諾夫(Salakhutdinov)研制了多層前饋神經網絡,通過逐層預訓練(Pre-training),再使用反向傳播算法進行微調(Fine-tuning),取得了很好的機器學習效果,從而使人工神經網絡研究邁出低谷、再次崛起,并且逐漸走向了繁榮,推動了人工智能的大發展。隨著深度的人工神經網絡在語音識別、圖像分類、機器翻譯、智能問答等應用領域中的巨大成功,以人工神經網絡為基礎的深度學習迅速崛起。近年來,隨著大規模并行計算以及GPU(Graphic Processing Unit)設備的普及,計算機的計算能力得到大幅度提高,可供機器學習的數據資源的規模也越來越大。在算力、算法和大數據算料資源的支持下,計算機已經具備了訓練大規模人工神經網絡的能力,于是,各大科技公司紛紛投入巨資來研究深度學習,人工神經網絡研究進入它的第三個高潮期。深度學習需要在大規模真實的語料庫(算料)的基礎上進行,這對資源豐富的語言(如英語、漢語、法語)來說,可以取得顯著的成效,可是,對于那些資源貧乏的語言(如藏語、維吾爾語、彝語)來說,由于缺乏充足的語言數據,難以保證深度學習的效果。為此,在深度學習的基礎上,自然語言處理中就提出了“遷移學習”(Transfer Learning)和“預訓練”問題。于是,除了深度學習這種模型外,自然語言處理中又出現了一個新的模型 ——“預訓練模型”(Pre-training Model),它不僅使得多種自然語言處理的任務達到了新的高度,而且大大降低了自然語言處理模型在實際應用場景中落地的門檻。為了衡量計算機理解自然語言的能力,美國華盛頓大學、Facebook和DeepMind等機構在2019年提出了人工智能基準測試的一個項目SuperGlue,其任務包括智能問答、語言推理、詞義排歧、指代消減等。在最近的SuperGlue測試中,微軟公司的DeBERTa模型和谷歌公司的T5+Meena模型都取得了很好的成績,有的指標甚至超過了人類的基準線。
綜上,人工神經網絡的發展經歷了一個由高潮和低潮交互而成的馬鞍形曲折過程:萌芽創業期à 第一個低潮期à 復蘇振興期à 第二個低潮期à 崛起繁榮期。
現如今,人工神經網絡正處于其發展的第三個高潮期中。盡管人工神經網絡在數學上是完美的,可是它的運行機理卻不容易從語言學和普通常識的角度得到理性的解釋,而且人工神經網絡也難以應用人類在長期的語言學研究中積累起來的豐富多彩的語言知識來改進自身的不足。為了進一步推動自然語言處理的發展,決不能忽視人類在歷史長河中積累的語言知識和語言規則,應當把基于語言規則的理性主義方法(Rationalism Approach)與基于語言大數據的經驗主義方法(Empiricism Approach)結合起來,使用語言規則來彌補人工神經網絡的不足。換句話說,在自然語言處理研究中,在大力推廣人工神經網絡的經驗主義方法的同時,也要逐步復興近年來受到冷落的理性主義方法,讓神經網絡從語言的理性規則中吸取營養,不斷完善,增強它的可解釋性。1目前流行的深度學習的熱潮為自然語言處理中基于語言大數據的經驗主義方法添了一把火,預計這樣的熱潮還會繼續主導自然語言處理領域很多年。然而,在自然語言處理的研究中,基于語言規則的理性主義方法復興的歷史步伐是不會改變的,基于語言數據的經驗主義方法一定要與基于語言規則的理性主義方法結合起來,才是自然語言處理的必由之途,也是當代人工智能研究的金光大道。
(責任編輯:蘇建軍)