• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      自然語言處理預訓練技術綜述

      2021-08-07 07:42:10陳德光馬金林馬自萍
      計算機與生活 2021年8期
      關鍵詞:語料向量單詞

      陳德光,馬金林,3+,馬自萍,周 潔

      1.北方民族大學 計算機科學與工程學院,銀川 750021

      2.北方民族大學 數(shù)學與信息科學學院,銀川 750021

      3.圖像圖形智能處理國家民委重點實驗室,銀川 750021

      自然語言處理預訓練在不同時期有不同的稱謂,但是,本質(zhì)是使用大量語料預測相應單詞或詞組,生成一個半成品用以訓練后續(xù)任務。自然語言預處理是預訓練以及后續(xù)任務訓練的一部分,用以將人類識別的語言轉(zhuǎn)化為機器識別的語言,目的是輔助提高模型性能。自神經(jīng)網(wǎng)絡預訓練技術用于自然語言處理以來,自然語言處理取得了重大發(fā)展,以是否采用神經(jīng)網(wǎng)絡為依據(jù),學者們將自然語言處理技術劃分為基于傳統(tǒng)的自然語言處理和基于神經(jīng)網(wǎng)絡的自然語言處理。馬爾可夫[1]與香農(nóng)[2]語言建模實驗的成功,叩響了傳統(tǒng)自然語言處理的大門。在傳統(tǒng)的自然語言處理中依據(jù)處理方法分為基于規(guī)則的自然語言處理和基于統(tǒng)計的自然語言處理。在20 世紀50 年代中期以前,學者們普遍使用的是基于簡單統(tǒng)計的自然語言處理。1957 年喬姆斯基出版了《句法結(jié)構(gòu)》[3]一書,該書對語料庫的語料不充分性提出了質(zhì)疑,并提出基于規(guī)則的自然語言處理,促使基于規(guī)則的自然語言處理逐漸占據(jù)大量市場。20 世紀80 年代以后,人們發(fā)現(xiàn)規(guī)則不但不能窮舉,而且規(guī)則之間會出現(xiàn)一定沖突,因此,大量研究人員轉(zhuǎn)向基于統(tǒng)計的自然語言處理。在此之后,大多數(shù)研究者在這兩種方法間尋求突破,直至神經(jīng)網(wǎng)絡蓬勃發(fā)展,研究熱點才由傳統(tǒng)的自然語言處理轉(zhuǎn)變?yōu)榛谏窠?jīng)網(wǎng)絡的自然語言處理。

      目前,基于神經(jīng)網(wǎng)絡的預訓練技術綜述相對較多[4-6],但是對于傳統(tǒng)預訓練技術大多未涉及或者一筆帶過,存在人為割離自然語言預訓練發(fā)展脈絡,不利于自然語言處理技術的發(fā)展。神經(jīng)網(wǎng)絡預訓練技術是在預訓練階段采用神經(jīng)網(wǎng)絡模型進行預訓練的技術統(tǒng)稱,由于預訓練與后續(xù)任務耦合性不強,能單獨成為一個模型,因此也稱為預訓練語言模型,這一稱謂是區(qū)別于傳統(tǒng)預訓練技術的叫法。傳統(tǒng)預訓練技術與模型耦合較為緊密,該技術與模型之間并沒有明確的區(qū)分界限,為了方便闡述,將語料送入模型到生成詞向量的這一過程稱為傳統(tǒng)預訓練技術。當然,無論是神經(jīng)網(wǎng)絡預訓練技術還是傳統(tǒng)預訓練技術均需要對語料進行預處理,具體來說,預處理就是將原始語料進行清洗(包括去除空白、去除無效標簽、去除符號以及停頓詞、文檔切分、基本糾錯、編碼轉(zhuǎn)化等操作)、分詞(對于中文類似的獨立語才有)和標準化等操作,從而將語料轉(zhuǎn)化為機器可識別的語言,圖1 為自然語言預處理流程。

      Fig.1 Preprocessing process圖1 預處理流程

      由于自然語言處理涉及文本、語音、視頻、圖像等不同類型語料,概念較為寬泛。本文介紹自然語言處理預訓練技術,而該技術主要包含文本類語料,因而本文基于文本語料闡述。具體來說,首先從傳統(tǒng)預訓練技術與神經(jīng)網(wǎng)絡預訓練技術兩方面進行闡述,介紹了預訓練的基本方法和各方法的優(yōu)缺點及適用范圍;而后,針對目前流行的BERT(bidirectional encoder representation from transformers)模型及相關技術從預訓練方式、預訓練優(yōu)缺點、模型性能等方面進行較為詳細的討論比較;在此之后,對自然語言處理的重點應用領域的進展進行介紹;再者,闡述了目前自然語言處理面臨的挑戰(zhàn)與解決辦法;最后,對本文工作進行了總結(jié)與展望。總體來說,相對于其他預訓練技術綜述,本文做了以下創(chuàng)新:(1)彌補了缺少傳統(tǒng)預訓練技術的短板,從而將傳統(tǒng)預訓練技術與神經(jīng)網(wǎng)絡預訓練技術進行連貫;(2)相對于其他對預訓練技術介紹不全與多種分類混用的文章,本文采用一種分類標準較為全面地展示了自然語言預訓練技術;(3)對目前較為流行的BERT 改進預訓練技術和重點熱點領域模型進行詳細介紹,幫助科研工作者了解自然語言預訓練及模型發(fā)展動態(tài)。

      1 傳統(tǒng)預訓練技術

      就目前已發(fā)表的大多數(shù)自然語言處理預訓練文章來看,少有文章對傳統(tǒng)預訓練技術進行較為詳細的介紹,究其原因,可能由以下兩點造成:其一,在傳統(tǒng)的自然語言處理中,預訓練技術與模型具有強烈的耦合性,沒有獨立可分的預訓練技術;其二,神經(jīng)網(wǎng)絡,尤其是深度神經(jīng)網(wǎng)絡的發(fā)展,導致研究者們對傳統(tǒng)自然語言處理技術(包括傳統(tǒng)預訓練技術與傳統(tǒng)模型)重視不夠。但是,傳統(tǒng)自然語言處理技術(包括傳統(tǒng)預訓練技術和傳統(tǒng)模型)作為自然語言處理的歷史階段產(chǎn)物,曾在推動自然語言發(fā)展過程中發(fā)揮過重大作用,因而有必要對傳統(tǒng)預訓練技術進行較為詳細的介紹。

      傳統(tǒng)自然語言處理過程講究針對性和技巧性,因而傳統(tǒng)預訓練技術與相應模型耦合較為緊密。為了方便闡述,將自然語料的特征工程及之前部分稱為傳統(tǒng)預訓練技術,特征工程是指將語料進行初步特征提取的過程。

      1.1 N-gram 技術

      N-gram 技術是一種基于統(tǒng)計的語言模型技術,它基于第N個詞僅與其前面N-1 個詞相關的理想假設?;舅枷霝椋簩⒃颊Z料預處理后,按照字節(jié)大小為N的滑動窗口進行滑動操作,進而形成長度為N的字節(jié)片段序列組[7-8]。

      在該技術中,每個字節(jié)即為一個gram,對語料中所有gram 出現(xiàn)的頻度進行統(tǒng)計,并設置相應閾值進行過濾,除去一些低頻度和不必要的單詞從而形成gram 列表,這個gram 列表就是文本語料的向量特征空間,而列表中的每一種gram 都是一個特征向量,即為預訓練的結(jié)果。在實際使用中,假設gram 列表中有V個有效詞,采用N-gram 方法,則復雜度為O(VN),表明隨著N值的增加復雜度會顯著增大,因此在通常情況下采用Unigram 方法。Huang 等[9]的實驗表明,Unigram 的性能在同等情況下高于Bi-gram 和Trigram。Unigram、Bi-gram 和Tri-gram 的公式如下:

      實際應用中,該預訓練技術簡單易行,具有完備的理論性和極強的操作性,在傳統(tǒng)的統(tǒng)計自然語言處理中占有重要地位。適合于單詞預測、拼寫檢查、詞法糾錯、熱詞選取等詞級自然語言處理領域和自動索引、無分割符語言文本切分等句子級自然語言處理領域。但是,由于語料的限制,N-gram 具有如下缺點:首先,統(tǒng)計詞的準確度存在不完整性,需要多次試探才能確定閾值且高頻詞匯不一定為有效詞;其次,由于N-gram 的強烈假設性,導致結(jié)果存在一定的不合理性;最后,大規(guī)模語料統(tǒng)計方法與有限訓練語料之間可能產(chǎn)生數(shù)據(jù)稀疏問題,為此,常用的解決辦法有拉普拉斯平滑(Laplace smoothing)、古德-圖靈平滑(good-turing smoothing)、插值平滑(interpolation smoothing)、克內(nèi)爾平滑(Kneser-Ney smoothing)等方法。

      1.2 向量空間模型技術

      向量空間模型(vector space model,VSM)于20世紀70 年代被提出,是一種文檔表示和相似性計算工具[10]。主要思想為:用空間向量的形式表示語料庫中的所有語料,語料的每個特征詞對應語料向量的每一維。具體來說,該技術包含文本預處理、特征選擇與特征計算、算法計算準確度等幾個主要步驟,圖2為VSM 的流程表示。向量空間模型的文本表示為詞袋模型(bag-of-word),由于本文介紹的是預訓練技術,本節(jié)重點介紹特征工程(特征選擇與特征計算)的相關技術。

      Fig.2 VSM process圖2 VSM 流程

      1.2.1 獨熱碼技術

      自Huffman[11]提出獨熱碼(One-hot)機制后,該技術就逐步應用于自然語言處理中。獨熱碼技術的本質(zhì)是采用N位狀態(tài)寄存器(status register)對N個狀態(tài)進行編碼,每個狀態(tài)都有對應且獨立的寄存器位,而在任意時刻都只有一位狀態(tài)有效。

      對于具有離散特征的取值,比如分類模型、推薦系統(tǒng)及垃圾郵件過濾等,通過使用獨熱編碼技術將整個取值擴展到歐氏空間,而常用的距離計算或者相似度計算均基于歐氏空間,這使特征之間的距離計算更加合理。

      獨熱編碼技術簡單有效,易于理解,將語料進行數(shù)值化表示能在一定程度上起到擴充特征的作用。該技術適合于基于較多參數(shù)與距離的模型,例如支持向量機(support vector machine,SVM)[12]、神經(jīng)網(wǎng)絡(neural network,NN)[13]、最近鄰算法(K-nearest neighbor,KNN)[14]等。但是,該技術具有明顯缺點:首先,每個單詞的編碼維度是整個詞匯表的大小,存在維度過大導致編碼稀疏問題,使計算代價變大;其次,獨熱編碼存在單詞間相互獨立的強制性假設,這種關系導致該方法無法體現(xiàn)單詞間的遠近程度,從而丟失了位置信息。

      1.2.2 TF-IDF 技術

      TF-IDF(term frequency-inverse document frequency)[15-16]是信息檢索領域非常重要的搜索詞重要性度量技術(其前身是TF 方法與IDF 方法),用以衡量一個詞w對于查詢(Query,可以看作文本文檔)所能提供信息的重要度。計算過程如下:

      詞頻(term frequency,TF)表示關鍵詞w在文檔Di中出現(xiàn)的頻率,公式為:

      式中,count(w)為關鍵詞w在文檔Di中出現(xiàn)的頻數(shù),|Di|為文檔Di中的單詞數(shù),經(jīng)過兩者相除即可計算詞頻。逆文檔頻率(IDF),反映詞的普遍程度,即一個詞越普遍(即有大量文檔包含這個詞),其IDF 值越低;反之,IDF 值越高。公式如下:

      式中,N為文檔總數(shù);I(w,Di)表示文檔Di是否包含找尋的關鍵詞w,若包含,則I為1,若不包含,則I為0;同時,為防止關鍵詞w在所有文檔中均未出現(xiàn)從而帶來公式無法計算的問題,采用分母加1 的方式進行平滑處理。根據(jù)式(2)、式(3)的定義,關鍵詞w在文檔Di中的TF-IDF 值為:

      由式(4)可知,當一個新鮮度高(即普遍度低)的詞在文檔中出現(xiàn)的頻率越高時,其TF-IDF 值越高,反之越低。計算出每個詞的TF-IDF 即可得到語料庫每個詞的重要程度,從而為后續(xù)模型設計提供有力的保障。

      TF-IDF 采用無監(jiān)督學習,兼顧詞頻與新鮮度兩種屬性,可過濾一些常見詞,且保留能提供更多信息的重要詞。在搜索引擎等實際應用中,該技術是主要的信息檢索手段。但是,用詞頻來衡量一個詞的重要程度是不夠全面且這種計算無法體現(xiàn)位置關系;同時,嚴重依賴分詞水平(尤其是中文分詞更加明顯)。

      1.2.3 信息增益技術

      信息增益(information gain,IG)[17]表示文本中包含某一特征信息時文本類的平均信息增益,定義為某一特征在文本出現(xiàn)前后的信息熵之差。假設c為文本類變量,C為文本類集合,d為文本,f為特征,對于特征f的信息增益IG(f)表示如下:式中,P(fˉ)是語料中不包含該特征的概率。由上可知,一個特征的信息增益實際上描述的是它包含的能夠幫助預測類別信息屬性的信息量。

      從理論上講,信息增益應該是最好的特征選取方法,但實際上由于許多信息增益比較高的特征出現(xiàn)頻率往往較低,當使用信息增益選擇的特征數(shù)目比較少時,通常會存在數(shù)據(jù)稀疏問題,此時模型效果比較差。因此,一般在系統(tǒng)實現(xiàn)時,首先對訓練語料中出現(xiàn)的每個詞(以詞為特征)計算信息增益,然后指定一個閾值,從特征空間中移除那些信息增益低于此閾值的詞條,或者指定要選擇的特征個數(shù),按照增益值從高到低的順序選擇特征組成特征向量。信息增益適合于考察特征對整個模型的貢獻,而不能具體到某個類別上,這就使得它只適合用來做“全局”的特征選擇而無法做“本地”的特征選擇。該技術適合于情感分類、意圖識別、垃圾郵件自動處理等分類領域。

      1.2.4 卡方分布

      χ2統(tǒng)計量(chi-square distribution,χ2)[18]衡量的是特征項ti和類別Cj之間的關聯(lián)程度,并假設ti和Cj之間符合具有一階自由度的χ2分布。特征對于某類的χ2統(tǒng)計值越高,它與該類之間的相關性越大,攜帶的類別信息也較多,反之則越少。

      如果令N表示訓練語料中文檔的總數(shù),A表示屬于Cj類且包含ti的文檔頻數(shù),B表示不屬于Cj類但包含ti的文檔頻數(shù),C表示屬于Cj類但不包含ti的文檔頻數(shù),D是既不屬于Cj也不包含ti的文檔頻數(shù),N為總的文本數(shù)量,特征項ti對Cj的卡方值為:

      對于多類問題,基于卡方統(tǒng)計量的特征提取方法可以采用兩種方法:一種方法是分別計算對于每個類別的卡方值,然后在整個訓練語料上計算;其二為計算各特征對于各類別的平均值。與此類似的方法還有互信息技術(mutual information,MI)[19]。

      卡方分布具備完善的理論,與信息增益技術類似,適用于分類模型領域。但是,該技術理論較為復雜,對數(shù)學能力要求較高。

      當然,除以上常見的特征提取技術外,還有一些不太常用的方法,例如DTP(distance to transition point)[20]方法、期望交叉熵法(expected cross entropy)[21]、優(yōu)勢率法[22]等。

      1.3 Textrank 技術

      Textrank(TextRank graph based ranking model)[23]是一種基于圖排序的處理技術,基本思想來自PR(PageRank)算法[24]。該技術在語料預處理后將語料文本分割成若干組成單元(單詞、詞組、句子等)并建立圖模型,再利用投票機制對文本中的重要成分進行排序,從而僅利用文章信息即可實現(xiàn)關鍵字提取和文摘生成等。

      具體來說,Textrank 表示為一個有向有權圖G=(V,E),該圖由點集V和邊集E組成,其中,E是V×V的子集。對于給定的點Vi,In(Vi)為指向該點的所有點集合,Out(Vi)為點Vi指向的所有點集合,Vi的得分定義如下:

      式中,d為阻尼系數(shù),取值范圍為0 到1,含義為從圖中某一特定點指向其他任意點的概率;wji表示節(jié)點i在節(jié)點j處的權重。將切分后的所有Vi得分進行排序即可得到語料庫中所有單詞或短語的重要程度,從而為模型設計提供保障。

      Textrank 采用無監(jiān)督學習,使用者不需要有深入的語言學或相關領域知識;同時,采用基于圖的排序算法,綜合考慮文本整體信息來確定哪些單詞或者句子,從而基于這些重點單詞或重點句子進行下一步處理。該技術適合于自動文摘等生成式文本任務與關鍵詞提取等詞級自然語言處理。然而,Textrank與TF-IDF 一樣嚴重依賴分詞結(jié)果,Textrank 雖然考慮到詞之間的關系,但是仍然傾向于將頻繁詞作為關鍵詞;同時,Textrank 涉及到構(gòu)建圖以及迭代計算,因而提取速度較慢。

      1.4 語義分析

      1.4.1 隱含語義分析

      隱含語義分析(latent semantic analysis,LSA)是一種知識獲取和展示的計算理論方法,出發(fā)點是語料中的詞與詞之間存在某種聯(lián)系,即存在某種潛在的語義關系,而這種潛在語義關系隱含于文本中詞語的上下文模式中,因此需要對大量語料進行分析進而尋找這種潛在的語義關系。LSA 不需要確定語義編碼,僅依賴于文本上下文中事物的聯(lián)系,并用語義關系來表示文本,簡化文本向量的目的。該方法的核心思想是將文檔-術語矩陣分解為相互獨立的文檔-主題矩陣和主題-術語矩陣[25-26]。

      在實際應用中,原始計數(shù)的效果不理想(如果在詞匯表中給出m個文檔和n個單詞,可以構(gòu)造一個m×n的矩陣A,其中每行代表一個文檔,每列代表一個單詞。在LSA 的最簡單版本中,每一個條目可以是第j個單詞在第i個文檔中出現(xiàn)次數(shù)的原始計數(shù)),因此,LSA 模型通常用TF-IDF 得分代替文檔-術語中的原始計數(shù)。一旦擁有文檔-術語矩陣A,即可求解隱含主題。由于A可能是稀疏的,具有極大噪聲且在維度上存在大量冗余的特性,因此,一般情況下采用奇異值分解法(singular value decomposition,SVD)[27]處理,公式如下:

      U∈Rm×t是文檔-主題矩陣,行表示按主題表達的文檔向量;V∈Rn×t則是術語-主題矩陣,行代表按主題表達的術語向量。經(jīng)過這樣的處理,可以得到詞之間的隱含關系。

      LSA 采用低維詞條、文本向量代替原始的空間向量,能有效處理大規(guī)模語料且具有快速高效的特點,適用于信息過濾、文本摘要以及機器翻譯等跨語言信息檢索等生成式自然語言處理領域。但是LSA在進行信息提取時,忽略詞語的語法信息(甚至是忽略詞語在句子中出現(xiàn)順序),處理對象是可見語料,不能通過計算得到詞語的暗喻含義和類比推論含義,同時需要大量文件和詞匯來獲得準確結(jié)果,存在表征效率較低的缺點。為了解決這些問題,研究者們對其進行了改進,其中最成功的改進為概率隱含語義分析(probabilistic latent semantic analysis,PLSA)[28]。

      1.4.2 概率隱含語義分析

      Hofmann 在1999 年撰寫了概率隱含語義分析PLSA[28-29],通過一個生成模型為LSA 賦予概率意義上的解釋。作者認為每篇語料都包含一系列可能的潛在話題,語料中的每個單詞都不是憑空產(chǎn)生的,而是在這些潛在的話題的引導下通過一定概率生成的,這也正是PLSA 提出的生成模型的核心思想。PLSA 通過下式對d和w的聯(lián)合分布進行建模:

      式中,d表示一篇文檔,z表示由文檔生成的一個話題,w表示由話題生成的一個單詞。在該模型中,d和w是已經(jīng)觀測到的變量,z是未知變量(代表潛在話題)。

      PLSA 能從概率的角度解釋模型,使模型變得容易理解;同時,相對于LSA的SVD方法,PLSA的EM[30](expectation maximization)算法具有線性收斂速度,可以使似然函數(shù)達到局部最優(yōu)。但是該模型無法生成新的未知文檔,同時,隨著文檔和詞語個數(shù)的增加,模型的復雜度會快速增大,從而導致模型出現(xiàn)嚴重過擬合。

      1.5 其他預訓練技術

      以上四類常見的預訓練技術與模型耦合性相對較低,具有較明顯的區(qū)分。除此之外,部分傳統(tǒng)自然語言預訓練技術與模型耦合性較高,較難將預訓練技術單獨展示。這些常用到的有根據(jù)先驗概率求后驗概率的貝葉斯分類技術(Bayesian classification,BC)[31]、具有多重降級狀態(tài)的馬爾可夫(Markov model,MM)[32]與隱馬爾可夫模型(hidden Markov model,HMM)[33]、判別式概率的無向圖隨機場(random field,RF)[34-35]等。

      綜上,對常用的傳統(tǒng)預訓練技術進行匯總,如表1 所示。對每一個具體技術特點、優(yōu)缺點及適用范圍進行總結(jié)。但是,在傳統(tǒng)的自然語言預訓練技術中,存在無詞序或詞序不全問題,嚴重影響處理結(jié)果?;诖?,神經(jīng)網(wǎng)絡的自然語言預訓練技術,尤其是深度學習的自然語言預訓練技術,對這些不足做了一定的糾正。

      2 神經(jīng)網(wǎng)絡預訓練技術

      針對傳統(tǒng)自然語言預訓練技術的不足,神經(jīng)網(wǎng)絡自然語言預訓練技術采取了改進措施,主要是將詞序間上下文關系考慮到實際語料中,這一部分綜述在國內(nèi)外相對較多。Qiu 等[6]從詞序是否上下文相關、語言模型結(jié)構(gòu)、任務類型以及技術應用范圍四方面來闡述預訓練及模型相關技術,較為全面展現(xiàn)了神經(jīng)網(wǎng)絡的自然語言預訓練發(fā)展脈絡。但是該論文在不同分類方面存在較大交叉;同時,對傳統(tǒng)預訓練技術涉及較少。Liu 等人[5]對無監(jiān)督預訓練機制進行了綜述,該文章從體系結(jié)構(gòu)與策略兩方面進行展開討論,并對相關工作進行總結(jié)與展望。但是,該綜述取材時間較近且關注范圍狹小,對神經(jīng)網(wǎng)絡預訓練技術以及傳統(tǒng)預訓練技術部分并未涉及。在國內(nèi)方面,劉睿珩[36]、余同瑞[37]、李舟軍[38]等人分別單獨進行了自然語言處理預訓練技術的研究綜述,這幾者綜述較為類似,均是重點介紹神經(jīng)網(wǎng)絡相關技術的概要方法。但是整體內(nèi)容較為淺顯且對傳統(tǒng)預訓練技術關注度較低。

      Table 1 Summary of traditional pre-training techniques表1 傳統(tǒng)預訓練技術匯總

      本文針對以上不足,從神經(jīng)網(wǎng)絡預訓練技術出發(fā),以詞序是否上下文相關分為詞向量固定表征和詞向量動態(tài)表征兩種方式,以此為線索,展現(xiàn)出更為合理的神經(jīng)網(wǎng)絡預訓練技術。

      2.1 詞向量固定表征

      詞向量固定表征是將目標詞的上下文相關詞考慮進去,能夠較好地解決詞性孤立不連貫問題。常見的詞向量固定表征有神經(jīng)語言模型技術(neural network language model,NNLM)、C&W(Collobert and Weston)、Word2vec(word to vector)、FastText、Glove(global vectors for word representation)等。

      2.1.1 神經(jīng)語言模型

      神經(jīng)語言模型NNLM[39]:神經(jīng)語言模型通過對元語言模型進行建模,估算P(wi|wi-(n-1),wi-(n-2),…,wi-1)的值。與傳統(tǒng)技術不同的是,NNLM 不是通過計數(shù)的方法對目標條件進行概率計算,而是通過構(gòu)建一個神經(jīng)網(wǎng)絡結(jié)構(gòu)對目標進行建模求解。圖3 顯示了NNLM 模型結(jié)構(gòu)。

      NNLM 主要由三層網(wǎng)絡構(gòu)成:輸入層、隱藏層和輸出層。模型預訓練在輸入層與隱藏層中完成(即圖3 中的矩陣C)。具體來說,分以下幾步:首先,輸入層輸入n-1 個詞匯(每個詞匯進行One-hot 編碼,1×|V|);其次,將詞匯與矩陣C(|V|×m)相乘,得到一個分布式向量(1×m)。這個分布式向量即為語料預訓練的結(jié)果(需要經(jīng)過若干次模型迭代訓練才能得到較高準確度)。

      Fig.3 NNLM model圖3 NNLM 模型

      由于該模型較為基礎,本文對整個模型的訓練過程不做詳細介紹。NNLM 模型使用低維緊湊的詞向量對上文進行表示,解決了詞袋模型帶來的數(shù)據(jù)稀疏、語義鴻溝等問題。該技術一般應用于缺失值插補、句式切分、推薦系統(tǒng)以及文本降噪等句子級自然語言處理領域。但是,該模型只能利用當前語料的上文信息進行標準化操作,不能根據(jù)上下文對單詞意思進行實時調(diào)整;同時,模型的參數(shù)量明顯大于其他傳統(tǒng)模型。為解決該問題,Mnih 等人[40-41]提出了Log 雙線性語言模型(log-bilinear language model,LBLM)。

      LBLM[41]:Mnih 與Hinton 提出一種層級思想替換NNLM 中隱藏層到輸出層最花時間的矩陣乘法(語料預訓練部分與NNLM相同),LBLM的能量函數(shù)為:

      如式(10)所示,C(wi)與C(wj)表示序列中對應位置的轉(zhuǎn)移矩陣;t是序列中建模元素的數(shù)量;Hi是一個m×m矩陣,可以理解為第i個詞經(jīng)過Hi變換后,對第t個詞產(chǎn)生的貢獻;h為隱藏單元;yj為預測詞wj的對數(shù)概率。LBLM 模型的能量函數(shù)與NNLM 模型的能量函數(shù)主要有兩個區(qū)別:其一,LBLM 模型中沒有非線性激活函數(shù)tanh;其二,LBLM 只有一份詞向量。之后的幾年中,Mnih 等人在LBLM 模型基礎上做了一系列改進工作,其中改進最成功的模型有兩個:層級對數(shù)雙線性語言模型(hierarchical LBL,HLBL)[42]以及基于向量的逆語言模型(inverse vector LBL,ivLBL)[43]。

      LBLM 模型沒有激活函數(shù),隱藏層到輸出層直接使用詞向量,從而使模型更加簡潔、準確度更高。但是,理論上LBLM 需構(gòu)建多個矩陣(有幾個詞就需要幾個矩陣),而迫于現(xiàn)實壓力采用近似處理,因而在準確度方面存在偏差;同時,LBLM 仍不能解決一詞多義問題。

      2.1.2 C&W 技術

      C&W 技 術[44]是 由Collobert 和Weston 于2008 年提出的以生成詞向量為目標的模型技術(之前的大多數(shù)模型以生成詞向量為副產(chǎn)品),該技術直接從分布式假說的角度來設計模型和目標函數(shù)。C&W 模型結(jié)構(gòu)如圖4 所示。

      Fig.4 C&W model圖4 C&W 模型

      C&W 模型對應公式為:

      模型的整個流程為:將wi-C,…,wi-1,wi,wi+1,…,wi+C從初始化詞向量矩陣L中獲取對應的詞向量進行拼接,作為第一層h0;進而通過激活函數(shù)f(?)得到h1;再經(jīng)過線性變換得到(wi,C)的得分s(wi,C);模型遍歷語料庫的所有語料,并對目標函數(shù)進行最優(yōu)化。優(yōu)化完成得到最終的詞向量矩陣L和生成詞wi。

      C&W 模型與NNLM 相比,不同點主要在于C&W 將目標詞放在輸入層,同時輸出層也從神經(jīng)語言模型的|V|個節(jié)點變?yōu)榱艘粋€節(jié)點,該節(jié)點的數(shù)值表示對這n元組短語打分,打分只有高低之分,沒有概率特性,因此無需進行歸一化操作。C&W 模型使用這種方式把NNLM 模型在最后一層的|V|×|h|次運算降為|h|次運算,極大地降低了模型的時間復雜度。由于C&W 模型技術是以生成詞向量為目標的模型技術,因而應用領域相對廣泛,小到詞級的單詞糾錯,大到篇章級文本語義分析等。但是,C&W 模型只利用了局部上下文,不能解決一詞多義問題;同時,上下文信息不能過長,過長則存在信息丟失。為了改善以上弱點,Huang 等人[45]對C&W 模型進行改進,提出通過全局上下文以及多個原生單詞進行準確度提升的操作。

      2.1.3 Word2vec技術

      Word2vec[46]是2013 年Google 開源的一個詞嵌入(Word Embedding)工具。Embedding 本質(zhì)是用一個低維向量表示語料文本,距離相近的向量對應的物體有相近的含義。Word2vec 工具主要包含兩個模型:連續(xù)詞袋模型(continuous bag of words,CBOW)與跳字模型(skip-gram)。兩種高效訓練的方法:負采樣(negative sampling)和層序Softmax(hierarchical Softmax)。由于本文介紹預訓練技術,本小節(jié)僅介紹連續(xù)詞袋和跳字兩種模型。

      連續(xù)詞袋模型CBOW[47]是根據(jù)輸入的上下文來預測當前單詞。模型結(jié)構(gòu)如圖5 所示。

      Fig.5 CBOW model圖5 CBOW 模型

      CBOW 模型輸入為獨熱碼;隱藏層沒有激活函數(shù),即為線性單元;輸出層維度與輸入層維度一樣,使用Softmax 回歸。后續(xù)任務用訓練模型所學習的參數(shù)(例如隱層的權重矩陣)處理新任務,而非用已訓練好的模型。

      CBOW 模型具體處理流程為:(1)輸入層。上下文單詞的One-hot(假設單詞向量空間維度為V,上下文單詞個數(shù)為C)。(2)所有One-hot 分別乘以共享的輸入權重矩陣W(V×N矩陣,N為自設定)。(3)所得的向量(因為是One-hot,所以是向量)相加求平均作為隱層向量。(4)乘以輸出權重矩陣W′(N×V矩陣)。(5)激活函數(shù)處理得到V-dim 概率分布(因為是One-hot,其中的每一維都代表著一個單詞)。(6)概率最大的index 所指示的單詞為預測出的目標詞(target word)。(7)將目標詞與真實值的One-hot 做比較,誤差越小越好(從而根據(jù)誤差更新權重矩陣)。經(jīng)過若干輪迭代訓練后,即可確定W矩陣。輸入層的每個單詞與矩陣W相乘得到的向量就是想要的詞向量(預訓練詞向量只是其中的副產(chǎn)物)。

      跳字模型(Skip-gram)[48],輸入是特定詞的詞向量,輸出是特定詞對應的上下文詞向量。模型結(jié)構(gòu)如圖6 所示(具體訓練過程不再介紹,與CBOW 模型相似)。

      Fig.6 Skip-gram model圖6 Skip-gram 模型

      由于Word2vec 考慮上下文關系,與傳統(tǒng)的Embedding 相比,嵌入的維度更少,速度更快,通用性更強,效果更好,可以應用在多種自然語言處理任務中,例如常見的文本相似度檢測、文本分類、情感分析、推薦系統(tǒng)以及問答系統(tǒng)等句子級與篇章級自然語言處理領域。然而,由于與向量是一對一的關系,無法解決一詞多義問題。同時,Word2vec 是一種靜態(tài)的方法,無法針對特定任務做動態(tài)優(yōu)化,并且它的相關上下文不能太長。

      2.1.4 FastText技術

      FastText[49-50],該方法是2016 年開源的一個詞向量及文本分類工具。FastText 模型架構(gòu)與Word2vec的CBOW 模型架構(gòu)非常相似。圖7 為FastText 的模型結(jié)構(gòu)。

      Fig.7 FastText model圖7 FastText模型

      模型詳情參看CBOW模型,這里僅對其與CBOW模型中預訓練技術的不同部分進行詳細介紹。最主要的區(qū)別是兩種模型的單詞嵌套表示不一樣,CBOW 是單詞級別的Embedding,而FastText 將單詞拆分的同時加入了字符級別的Embedding,起到擴充詞匯的作用。但是該操作會帶來巨大的Embedding表,為計算和儲存帶來了很大的挑戰(zhàn)。為了解決該問題,F(xiàn)astText 將字詞對應的原始特征向量進行Hash處理[51],具體公式如下:

      式中,h與ξ都是Hash 函數(shù),h將輸入映射到(1,2,…,m)之間,ξ將輸入映射到{1,-1}之間,從而將N維的原始離散特征Hash 成M維的新特征(M?N)。具體來說,對于原特征的第k維值,先通過h(k)將k映射到1~M之間,再通過另外一個Hash函數(shù)ξ(k)將k映射成1 或-1,然后將映射到同一維度上的值進行相加,這樣原來的N維特征就映射成M維特征。

      FastText 最大特點是模型簡單,訓練速度非???,適用于大型語料訓練,支持多種語言表達。該技術一般應用于文本分類與同義詞挖掘領域,例如常見的垃圾郵件清理、推薦系統(tǒng)等。但是,F(xiàn)astText 的詞典規(guī)模巨大,導致模型參數(shù)巨大;同時,一個詞的向量需要對所有子詞向量求和,繼而導致計算復雜度較高。

      2.1.5 Glove技術

      Glove[52]是2014 年提出的一個基于全局詞頻統(tǒng)計的詞表征工具,可以將單詞表達成由實數(shù)組成的向量,這些向量捕捉了單詞間的語義特性。

      Glove 首先基于語料構(gòu)建詞的共現(xiàn)矩陣X(設共現(xiàn)矩陣為X,其元素意義為在整個語料庫中,單詞i和單詞j共同出現(xiàn)在一個窗口中的次數(shù)),然后構(gòu)建詞向量與共現(xiàn)矩陣之間的近似關系,關系表示為:

      式中,wi、是單詞i與單詞j的詞向量,bi與是兩個偏置向量,N為詞匯表的大?。ü铂F(xiàn)矩陣的維度為N×N),f為權重函數(shù),對應的公式為:

      Fig.8 Process of Glove building word vector model圖8 Glove構(gòu)建詞向量模型流程

      由于結(jié)合了SVD 與Word2vec 的優(yōu)勢,能夠充分利用統(tǒng)計數(shù)據(jù),因此,Glove 訓練速度較快,可以在較大的語料庫上進行訓練。該方法在較小的語料庫或者維度較小的詞向量上訓練時也有不錯表現(xiàn),同時該方法可以概括比相關性更復雜的信息。該技術適用于自動文摘、機器翻譯等自然語言生成領域與問答、文本分類等自然語言理解領域。當然,Glove 算法使用全局信息,相對于其他模型內(nèi)存耗費相對較多,且仍不能解決一詞多義的問題。

      2.2 詞向量動態(tài)表征

      詞向量動態(tài)表征是在預訓練階段將目標詞的上下文相關詞考慮進去,同時,在涉及具體語句時會將目標詞的上下文考慮進去,能夠較好地解決詞性孤立不連貫及一詞多義問題。這類技術在圖形圖像領域較為成熟[53-55],但是由于語義的多樣性與不確定性,導致該技術在自然語言處理中較難適用。隨著ULMFit 模型[56]對詞向量動態(tài)表征帶來的較大影響,為自然語言的預訓練技術發(fā)展提供了一定參考價值。而后各種動態(tài)表征技術誕生,常見的有Elmo(embeddings from language models)、GPT(generative pre-training)以及BERT 模型等。

      2.2.1 Elmo 模型

      Elmo 模型[57]的本質(zhì)思想是先用語言模型學習一個單詞的Word Embedding(可以用Wrod2vec或Glove等得到,文獻[57]中使用的是字符級別的殘差CNN(convolutional neural networks)得到Token Embedding),此時無法區(qū)分一詞多義問題。在實際使用Word Embedding 的時候,單詞已經(jīng)具備特定的上下文,這時可以根據(jù)上下文單詞的語義調(diào)整單詞的Word Embedding 表示,這樣經(jīng)過調(diào)整后的Word Embedding 更能表達上下文信息,自然就解決了多義詞問題。

      圖9 展示了Elmo 模型的預訓練過程,該模型的網(wǎng)絡結(jié)構(gòu)采用雙層雙向LSTM(long short-term memory)[58]。使用該網(wǎng)絡對大量語料預訓練,從而新句子中每個單詞都能得到對應的三個Embedding:最底層是單詞的Embedding(word embedding);中間層是雙向LSTM 中對應單詞位置的Embedding(position embedding),這層編碼單詞的句法信息更多一些;最高層是LSTM 中對應單詞位置的Embedding(position embedding),這層編碼單詞的語義信息更多一些。也就是說,Elmo 的預訓練過程不僅僅學會單詞的Embedding,還學會了一個雙層雙向的LSTM 網(wǎng)絡結(jié)構(gòu)。預訓練完成后,將會得到一個半成品檢查點,將需要訓練的語料庫經(jīng)過處理后連同檢查點一起送入后續(xù)任務中進行擬合訓練,從而后續(xù)任務可以基于不同的語料文本得到不同的意思。

      經(jīng)過如上處理,Elmo 在一定程度上解決了一詞多義問題且模型效果良好。Elmo 模型技術開始適用于語義消歧、詞性標注、命名實體識別等領域,隨著研究的深入,適用范圍也越來越廣。但是它仍存在一定不足:首先,在特征提取器方面,Elmo 使用的是LSTM 而非Transformer(在已有的研究中表明,Transformer 的特征提取能力遠強于LSTM);其次,Elmo 采用的雙向拼接融合特征比一體化的融合方式要弱一些。

      Fig.9 Elmo model圖9 Elmo 模型

      2.2.2 GPT 模型

      GPT 模型[59]:GPT 模型用單向Transformer 完成預訓練任務,其將12 個Transformer 疊加起來[60]。訓練的過程較簡單,將句子的n個詞向量加上位置編碼(positional encoding)后輸入到Transformer 中,n個輸出分別預測該位置的下一個詞。圖10 為GPT 的單向Transformer結(jié)構(gòu)和GPT 的模型結(jié)構(gòu)。

      Fig.10 GPT related model圖10 GPT 相關模型

      總的來說,GPT 分無監(jiān)督預訓練和有監(jiān)督擬合兩個階段,第一階段預訓練后有一個后續(xù)擬合階段。該模型與Elmo 類似,主要不同在于兩點:首先,使用Transformer 而非LSTM 作為特征抽取器;其次,GPT 采用單向語言模型作為目標任務。

      GPT 模型采用Transformer 作為特征提取器,相對于LSTM 能有效提取語料特征。雖然其應用領域較為廣泛,但其最為突出的領域為文本生成領域。然而,采用的單向Transformer 技術,會丟失較多關鍵信息。

      GPT-2 模型[61]:GPT-2 依然沿用GPT 單向Transformer 模式,但是在GPT 上做了一些改進。首先,不再針對不同層分別進行微調(diào)建模,而是不定義這個模型具體任務,模型會自動識別出需要什么任務;其次,增加語料和網(wǎng)絡的復雜度;再者,將每層的正則化(layer normalization)放到每個Sub-block 之前,并在最后一個Self-attention 之后再增加一個層正則化操作。

      相對于GPT 模型,GPT-2 提取信息能力更強,在文本生成方面的性能尤為優(yōu)越。但是,該模型的缺點與GPT 一樣,采用單向的語言模型會丟失較多關鍵信息。

      GPT-3 模型[62]:GPT-3 是目前性能最好的通用模型之一,聚焦于更通用的NLP 模型,主要解決對領域內(nèi)標簽數(shù)據(jù)的過分依賴和對領域數(shù)據(jù)分布的過擬合問題。特色依然沿用了單向語言模型訓練方式,但是模型的大小增加到了1 750 億的參數(shù)量以及用45 TB的語料進行相關訓練。

      在通用NLP 領域中,GPT-3 的性能是目前最高的,但是,其在一些經(jīng)濟政治類問題上表現(xiàn)不太理想(由預訓練語料的質(zhì)量造成);同時,該模型由于參數(shù)量過于巨大,目前大部分學者只能遙望一二,離真正進入實用階段還有較遠距離。

      2.2.3 BERT 模型

      BERT 模型[63]:BERT 采用和GPT 完全相同的兩階段模型,首先是語言模型預訓練,其次是后續(xù)任務的擬合訓練。和GPT 最主要不同在于預訓練階段采用了類似Elmo 的雙向語言模型技術、MLM(mask language model)技術以及NSP(next sentence prediction)機制。圖11 為BERT 模型。

      Fig.11 BERT pre-training model圖11 BERT 預訓練模型

      在MLM 技術中,Devlin 等人隨機Mask 每個句子中15%的單詞,用來做預測,而在這15%的單詞中,80%的單詞采用[Mask],10%的單詞采用隨機替換,剩下的10%單詞保持不變的特性。在NSP 機制中,選擇句子對A、B,其中50%的B 是A 的下一條句子,而另外的50%是從語料庫中進行隨機挑選的句子,進而讓它們學習其中的相關性。經(jīng)過若干次訓練,保存檢查點即為預訓練模型。

      BERT 采用雙向Transformer 技術,能較準確地訓練詞向量,進而引發(fā)了自然語言處理的大地震?,F(xiàn)階段,常用的自然語言處理技術絕大部分是基于BERT 及其改進技術。從現(xiàn)階段來看,BERT 的應用領域較為廣泛,從自然語言理解領域的文本分類、閱讀理解等熱點領域到自然語言生成的自動文摘、文本寫作等領域均有涉獵。但是,該模型存在參數(shù)量巨大,實際應用困難等缺點。

      以上是常用的神經(jīng)網(wǎng)絡預訓練技術,本文從具體模型技術、模型技術特點、模型技術優(yōu)缺點及適用范圍進行總結(jié)整理,表2為神經(jīng)網(wǎng)絡預訓練技術匯總。

      3 BERT 改進模型預訓練技術

      BERT 模型作為自然語言領域目前應用最廣的模型技術,現(xiàn)已輻射到自然語言處理的各個領域并取得了極大發(fā)展。但是,經(jīng)學者們研究,BERT 仍然存在較為明顯的缺陷。首先,BERT 采用的NSP 預訓練技術會導致結(jié)果出現(xiàn)主題預測,主題預測比實際預測簡單,從而效果出現(xiàn)偏差;其次,采用隨機Mask部分單詞而不是連續(xù)的詞組,同樣導致BERT 的效果出現(xiàn)折扣;最后,BERT 相對于其他模型來說,參數(shù)量相對較大,難以部署在性能受限的邊緣設備上。

      基于以上幾點,出現(xiàn)了BERT 的兩種大方向改進:其一為盡可能改進BERT 以提升性能;其二為在保持BERT 模型性能不受本質(zhì)影響前提下,壓縮BERT 模型的大小。以下將從這兩方面來進行相關介紹。

      3.1 提高模型性能方向

      BERT 模型雖然取得較理想的結(jié)果,但是距人類平均水平還存在一定差距。基于此,相關研究者在BERT基礎上做了大量改進工作以提升模型性能。提升模型性能的方式主要有兩種:一是基于預訓練技術改進;二是基于后續(xù)任務單獨改進,本文著重于介紹前者。下面較為詳細地介紹基于預訓練改進的且在領域內(nèi)具有一定知名度的相關模型及其改進技術。

      MT-DNN(multi-task deep neural networks)[64]:當監(jiān)督語料過少時,BERT 的后續(xù)任務性能不穩(wěn)定且性能提升有限。MT-DNN 將MTL(multi-task learning)加入到BERT 的后續(xù)任務中,即將相關的后續(xù)任務進行多任務訓練,可以在一定程度上彌補監(jiān)督語料的不足。具體來說,該模型在BERT 模型的基礎上做了以下改進:在后續(xù)任務中,MT-DNN 將單句分類、句子對分類、文本相似度打分和相關度排序進行混合多任務訓練,而后將這四種任務的損失相加求平均,進而優(yōu)化。

      采用該模型,彌補了部分任務語料不足的問題,同時,由于多種語料混合,還具有正則化的作用,可防止模型過擬合。然而,該模型有堆砌之感,且超參數(shù)量多于BERT,調(diào)參較為繁瑣;同時,由于語料的差異,相較于BERT 對比具有不公平性。

      MASS(masked sequence to sequence)[65]:針 對BERT 模型在自然語言生成任務上性能較低問題,微軟亞洲研究院提出一個在自然語言生成任務上的通用預訓練模型MASS。

      具體來說,MASS 相對于BERT 具有以下幾點優(yōu)勢:其一,解碼器端其他詞(在編碼器端未被屏蔽掉的詞)被屏蔽掉,以鼓勵解碼器從編碼器端提取信息來幫助連續(xù)片段預測,這樣能促進編碼器-注意力-解碼器結(jié)構(gòu)的聯(lián)合訓練;其二,為了給解碼器提供更有用的信息,編碼器被強制抽取未被屏蔽掉詞的語義,以提升編碼器理解源序列文本的能力;其三,讓解碼器預測連續(xù)序列片段,以提升解碼器的語言建模能力。

      Table 2 Pre-training techniques of neural network表2 神經(jīng)網(wǎng)絡預訓練技術

      MASS 在自然語言生成任務上取得良好的效果,證明了在機器翻譯、文本生成等生成式任務上相對于BERT 的優(yōu)勢。但是,該模型對自然語言理解任務效果未知,且其超參數(shù)k調(diào)參過程較為復雜。

      UNILM(unified language model)[66]:該模型是對BERT 模型的一個延伸,UNILM 模型的預訓練檢查點在自然語言理解與自然語言生成任務上均表現(xiàn)出較高性能。

      具體來說,UNILM 統(tǒng)一了預訓練過程,模型使用Transformer 結(jié)構(gòu)囊括了不同類型的語言技術(單向、雙向和序列到序列的三種預訓練技術),從而不需要分開訓練多個語言模型;其次,因為囊括了三種預訓練技術,所以參數(shù)共享使得學習到的文本表征更加通用化,減少了自然語言處理訓練中的過擬合問題。

      該模型在自然語言理解與自然語言生成上均取得了良好的性能,具有通用性,適用范圍更廣。但是預訓練語料質(zhì)量要求較高、預訓練時間過長等,均是UNILM 面臨的現(xiàn)實問題。

      ERNIE(enhanced language representation with informative entities)[67]:BERT 從純語料中獲取語義模式,較少考慮結(jié)構(gòu)化知識。知識圖譜能提供豐富的結(jié)構(gòu)化知識,以便更好地進行知識理解?;诖耍捎么笠?guī)模語料和知識圖譜利用詞匯、句法等關聯(lián)信息訓練出BERT 的增強版ERNIE 模型。

      具體來說,在預訓練階段ERNIE 分為兩部分,提取知識信息與訓練語言模型。首先,研究者提取文本語料中的命名實體,將這些提取的實體與知識圖譜中的實體進行匹配,為了能夠得到結(jié)構(gòu)化的知識編碼,模型采用了TransE 知識嵌入(translating embedding)[68]算法將實體轉(zhuǎn)化為向量,再將編碼后的知識信息整合到語義信息中。其次,在預訓練中除采用MLM 機制與NSP 機制外,增加了新的預訓練機制dEA(denoising entity auto-encoder),該機制隨機Mask一些實體,并要求模型基于與實體對齊的Tokens,從給定的實體序列中預測最有可能的實體。最后,該模型引入了更多的多源語料,包括中文維基百科、百度百科、百度新聞以及百度貼吧等。采用多源化語料,增大了語料的多樣性,且多源語料包含海量的實體類知識,從而預訓練的模型能更好地建模真實世界的語義關系。

      相對于BERT,ERNIE 將BERT 與知識圖譜結(jié)合,在一定程度上改善了結(jié)構(gòu)化知識問題。但是,ERNIE也具有很明顯的不足:首先,采用了NSP 機制,該機制在后來被證實沒有實質(zhì)性的作用;其次,構(gòu)建知識圖譜需要耗費大量的人力財力;最后,相對于BERT,該模型更為復雜、參數(shù)量更多,從而訓練成本也相應地高于BERT。為此,之后推出了ERNIE2.0[69],相對于ERNIE 來說,在預訓練階段構(gòu)建了多任務持續(xù)學習預訓練框架與三種類型的無監(jiān)督學習任務。多任務持續(xù)學習預訓練框架可以根據(jù)先前預訓練的權重增量學習新的知識;三種類型的無監(jiān)督學習包括詞法級別、語言結(jié)構(gòu)級別和語法級別預訓練任務。相對于ERNIE,ERNIE2.0 模型性能有較大提升。

      XLNet(generalized autoregressive pretraining for language understanding)[70]:XLNet 是一個類似于BERT的模型,分為上游預訓練階段和后續(xù)微調(diào)階段。具體來說,XLNet上游預訓練流程如下:

      首先,BERT 采用掩碼語言模型MLM,從而出現(xiàn)上游預訓練任務與后續(xù)微調(diào)不匹配問題。為了解決這個問題,XLNet 在預訓練機制引入排列語言模型(permutation language model,PLM),通過構(gòu)造雙流自注意力機制(two-stream self-attention,TSSA),在Transformer 內(nèi)部隨機Mask 一部分單詞,利用自回歸語言模型ALM(autoregressive language model)本身的單向特點克服了BERT 的后續(xù)任務不匹配問題。其次,由于BERT 采用Transformer 機制,要求輸入為定長序列,導致序列長度要相對合適。為了讓Transformer 學習到更長的依賴,XLNet 的Transformer-XL借鑒了TBPTT[71](truncated back-propagation through time)與相對位置編碼,將上一個片段st-1計算出來的表征緩存在內(nèi)存里,加入到當前片段st的表征計算中。最后,加大了預訓練階段使用的語料規(guī)模,BERT采用了13 GB 的語料進行預訓練,XLNet 在BERT 預訓練語料的基礎上,又引入了Giga5、ClueWeb 和Common Crawl 語料,并排除了一些低質(zhì)量的語料,額外引入113 GB 語料進行預訓練。

      相對于BERT,XLNet 具有以上三點明顯優(yōu)勢,因而相對于BERT,該模型在生成式領域與長文本輸入類型的任務上性能較高。但是,從本質(zhì)上來說,XLNet仍然是一個自回歸語言模型,排列語言模型機制PLM 在處理上下文語境問題時,隨機排序比BERT大得多,因此需要更大的運算量才能達到BERT 的效果;同時,相對于BERT,XLNet 用了更多以及質(zhì)量更佳的語料進行預訓練,這樣的對比缺乏一定的公平性。

      BERT-WWM(BERT of whole word masking)[72]:該模型與BERT 相比,最大的不同是在預訓練階段進行了詞組Mask 機制,具體來說:首先,采用分詞技術對中文語料進行分詞處理,則相應的文本被分為多個詞組;其次,采用Mask 標簽替換一個完整的詞組而不是單個字(因為前面已經(jīng)完成了分詞)。采用這種預訓練方式,模型能學到詞的語義信息,訓練完成后的字就具有詞的語義信息,這對各類中文NLP 任務都較為友好。

      BERT-WWM 模型思想類似于ERNIE,從而模型具有與ERNIE 類似的缺點。但是模型開發(fā)之初便是對中文語料進行處理,因此在處理中文相關問題時,模型性能較高。在此之后,BERT-WWM 擴充了預訓練語料庫的數(shù)據(jù)量并且加長了預訓練時間,使模型性能進一步提升,即為BERT-WWM-EXT 模型(預訓練語料庫增大,總詞數(shù)達到54 億;同時,訓練步數(shù)增大,第一階段訓練1×106步,第二階段訓練4×105步)。

      RoBERTa(robustly optimized BERT)[73]:RoBERTa

      沿用了BERT 框架,但是相對于BERT 在預訓練過程和語料規(guī)模上做了如下改進:

      首先,將靜態(tài)Mask 改為動態(tài)Mask,BERT 的預訓練過程中是隨機Mask 掉15%的Tokens,在之后的預訓練中,這些被Mask 的Tokens 均保持不變,這種形式稱為靜態(tài)Mask;而RoBERTa 在預訓練過程中將預訓練語料復制多份,每份語料隨機Mask 掉15%的Tokens,在預訓練過程中,選取不同的復制語料,從而可以得到每條語料有不同的Mask,這樣的Mask 機制稱為動態(tài)Mask。動態(tài)Mask 相當于間接增大了訓練語料,有助于提高模型的性能與泛化能力。其次,RoBERTa 移除了NSP 任務,每次可輸入多個句子,直到達到設定的最大長度(可以跨段落以及文章),稱這種方法為Full-sentences,采用這樣的方法模型可以捕獲更長的依賴關系,這對長序列的后續(xù)任務較為友好。最后,RoBERTa 采用了更大的批次量以及更多的語料進行預訓練,RoBERTa 的批次量遠大于BERT,且預訓練語料約為BERT 的10 倍以及采用更長的預訓練時間,這樣更多的語料增加了語料的多樣性,模型性能自然能相對提高。

      相對于BERT,RoBERTa 具有以上三點優(yōu)勢,在不同的語料庫上性能也超過BERT,證明BERT 仍然有很強勁的上升空間。但是,RoBERTa 采用堆疊式的方式進行處理導致模型過于龐大,很難應用于實際生產(chǎn)生活中。

      SpanBERT(spans BERT)[74]:SpanBERT 延續(xù)了BERT 的架構(gòu),相對于BERT,在預訓練中主要做了以下改進。

      首先,對MLM 進行改進,提出了Span Mask 方案,核心為不再對單個Token 進行掩膜處理,而是隨機對文本片段添加掩膜。即作者通過迭代采樣文本的分詞,直到達到掩膜要求的大小。每次迭代過程中,作者從幾何分布I~Geo(p)中采樣得到分詞的長度,該幾何分布是偏態(tài)分布,更偏向于較短分詞。其次,加入分詞邊界SBO(span boundary objective)訓練任務。具體來說,在訓練時選取Span 前后邊界的兩個Token,然后用這兩個詞加上Span 中被遮蓋掉詞的位置向量,來預測原詞。最后,作者采用單序列訓練(single-sequence training,SST)代替NSP 任務,也就是用一句話進行訓練。更長的語境對模型更為有利,模型可以獲取更長上下文。

      雖然SpanBERT 效果普遍強于BERT,尤其是在問答、指代消歧等分詞選擇任務上表現(xiàn)尤為出色,但是由于該模型采用分詞邊界SBO,在一些復雜問答方面效果可能欠佳。

      K-BERT(BERT of knowledge graph)[75]:由于通用語料預訓練的BERT 模型在知識驅(qū)動型任務上有較大領域差異,K-BERT 主要是提升BERT 在知識驅(qū)動任務上的性能。其將知識圖譜引入到BERT 的預訓練模型中,使模型能夠?qū)W習特定領域的語義知識,從而達到知識驅(qū)動型任務上的良好表現(xiàn)。具體來說,相對于BERT 做了以下改變:

      首先,制作一個句子樹,文本句子經(jīng)過知識層(knowledge layer)后,知識層對知識圖譜(例如CNDBpedia、HowNet 和自建的醫(yī)學知識圖譜)進行檢索,從而將知識圖譜中與句子相關的三元信息注入到句子中,形成一個富有背景的句子樹(sentence tree)。其次,將句子樹的信息進行順序表達,同時通過軟位置(soft-position)與可見矩陣(visible matrix)將句子樹鋪成序列輸入模型,進而放入網(wǎng)絡中進行相應訓練。

      除了以上兩點優(yōu)化,K-BERT其余結(jié)構(gòu)均與BERT保持一致,因此該模型兼容BERT 類的模型參數(shù),無需再次預訓練,節(jié)約了計算資源。同時,該模型因為有知識圖譜的輸入,在許多特定領域的表現(xiàn)顯著優(yōu)于BERT。但是,構(gòu)造句子樹的過程由于語料的詞嵌入向量與知識圖譜中實體的詞嵌入向量匹配問題,需要帶來額外的處理;同時,若自行構(gòu)建知識圖譜,需要較大的額外工作量。

      SemBERT(semantics-aware BERT)[76]:與BERT相比,SemBERT 在BERT 的基礎上引進語義角色標注模型,它以BERT 為基礎骨架網(wǎng)絡,融合上下文語義信息。具體來說,改進分以下幾步:

      首先,根據(jù)角色標注器(采用SRL(semantic role labeling)標注工具)對文本語料進行標注,給輸入的文本語料標注謂詞-論元結(jié)構(gòu)(詞級別)。其次,將多語義標簽進行融合,由于BERT 輸出的詞為子詞,難以與角色標注后的詞進行對齊,將BERT 處理后的子詞通過CNN 網(wǎng)絡進行重構(gòu)為詞,從而使兩者對齊。最后,將文本語料表示與語義標簽表示集成融合,從而獲得了后續(xù)任務的聯(lián)合表示。

      SemBERT 模型簡單有效且易于理解,但是角色標注器標注出的語料本身存在一定的錯誤,這對后續(xù)任務很不友好;同時,該模型從外部注入相關信息,有可能模型內(nèi)部的效果與原始BERT 相差不大,從而在一些特定任務上引發(fā)欠擬合。

      StructBERT(structures BERT)[77]:StructBERT 將語言結(jié)構(gòu)信息融入BERT,其增加兩個基于語言結(jié)構(gòu)的目標,詞序重構(gòu)任務(word-level ordering)和句序判定任務(sentence-level ordering)。具體來說,該模型在預訓練任務上進行了如下改進:

      首先,一個良好的語言模型,應該有把打亂的句子重構(gòu)的能力。因而除采用BERT 的Mask 機制外,還對未Mask 的詞隨機選取Trigram,打亂順序后重構(gòu)該順序;其次,由于NSP 機制本質(zhì)是一個二分類任務,該模型對其進行改進,將原來的二分類模型擴展為三分類模型,即分為是否為上句、是否為下句以及是否無關。

      StructBERT 基于以上兩點改進,在大部分自然語言理解任務上較BERT 取得較好的效果,但是該模型相對BERT 的本質(zhì)問題并未進行太大的改進,相對于其他模型,該模型應用不太廣泛。

      Electra(encoders as discriminators rather than generators)[78]:由于BERT 的MLM 機制存在天然缺陷,Electra 模型提出一種更加簡單有效的預訓練方案,采用生成器-判別器(replaced token detection)替換BERT中的令牌檢測。該模型將部分輸入采用生成器生成其他Token 替換,然后訓練一個判別模型,判別每個Token 是否被生成器所替換(兩種可能性)。因為該模型是從所有Token 中進行學習,而非從被掩蓋的部分中學習,相對于BERT 在同等條件下性能更為優(yōu)越。

      該模型更適用于較小規(guī)模的語料上,即具有更輕量級的模型,但是,GAN(generative adversarial network)在自然語言處理中應用十分困難,因此該模型并非是GAN 方法,而是借鑒了GAN 的思想;同時,雖然采用了生成器與判別器聯(lián)合損失訓練的方式,然而該訓練方式容易退化為單一判別器方式;經(jīng)過實測,在一些復雜大型任務上,該模型平均性能略微高于BERT,沒有論文中的那么高。

      以上介紹了基于BERT 提升模型性能的常用技術,主要介紹了這些技術中采用的預訓練方法的改進部分。這些技術對自然語言的發(fā)展起到重要的推動作用。但是,由于模型過于龐大,離應用到實際生產(chǎn)生活中還存在一定的距離,因而部分研究者基于模型性能影響不大的情況下,盡量壓縮模型大小。

      3.2 模型壓縮方向

      由于BERT 參數(shù)眾多,模型龐大,推理速度較慢,在一些實時性要求較高、計算資源受限的場景,應用會受到較大限制。因此,研究如何在不過多損失BERT 性能的條件下,對BERT 進行模型壓縮,是一個非常具有現(xiàn)實意義的問題?,F(xiàn)階段,部分研究者專注于壓縮BERT 模型,使其在邊緣設備上具有運行能力。在該方向上,目前有剪枝、量化、知識蒸餾、參數(shù)共享與低秩分解等幾類方法。

      由于模型壓縮涉及預訓練和后續(xù)任務,在這兩者之間均有技術改進,耦合性較強,因而不方便單獨介紹預訓練技術。在介紹相關模型時,對預訓練任務與后續(xù)任務的改進不進行區(qū)分。

      3.2.1 剪枝

      剪枝是從模型中刪除不太重要的部分權重從而產(chǎn)生稀疏的矩陣權重,進而達到模型壓縮的目的。

      Compressing BERT[79]:該模型探討了BERT 預訓練階段權重修剪對后續(xù)任務性能的影響。在三種不同的修剪層次上得到不同的結(jié)論:在較低水平預訓練模型上剪枝(30%~40%),并不會明顯影響后續(xù)任務的性能;在中等水平預訓練模型上剪枝,會使預訓練模型的損失函數(shù)相對增大且難以收斂,同時,部分有效信息不能傳遞到后續(xù)任務;在較高水平預訓練模型上剪枝,上游任務對后續(xù)任務的增益進一步減弱。同時,發(fā)現(xiàn)在特定任務BERT 上進行微調(diào)并不能有效提高模型可裁剪性。

      該模型對BERT 剪枝壓縮進行了一定程度的探討,為模型壓縮做出了一定貢獻,但是,這種定性的探討存在太多的主觀性;同時,每一層次剪枝操作后調(diào)參較麻煩。

      One Head Attention BERT[80]:Michel 等人對BERT中的多頭注意力機制進行探究,作者給出了三種實驗方法證明多頭注意力機制存在信息冗余:

      首先,每次去掉一層中的一個Head,測試模型性能;其次,每次去掉一層中剩下的層,僅保留一個Head,測試模型的性能;再者,通過梯度來判斷每個Head 的重要性,然后去掉一部分不重要的Head,測試模型的性能。經(jīng)過實驗證明了多頭注意力機制提取的信息之間存在大量冗余。

      該模型的優(yōu)點如標題所示,實驗驗證了多頭注意力機制存在大量冗余,但是,單純地減少Head 的數(shù)量不能有效地加速且該結(jié)論為實驗結(jié)果缺乏理論基礎?;诖?,Cordonnier 等人[81]在理論基礎上證明了多頭機制存在約2/3 的冗余。

      Pruning BERT[82]:McCarley 提出該模型,模型主要通過減少各個Transformer 的注意力頭數(shù)量與前饋子層的中間寬度以及嵌入維度。在SQuAD2.0 語料上準確度損失1.5 個百分點而解碼速度提高了1 倍。但是該模型的后續(xù)任務基于SQuAD 語料進行,也就是說該模型對閱讀理解問答具有較好的效果,但是對于其他任務的效果未知,應用范圍過窄。

      LayerDrop BERT[83]:Fan 等人針對BERT 提出LayerDrop 方法,即一種結(jié)構(gòu)化的Dropout 方法對BERT 中的Transformer進行處理。

      作者提出了一個讓Transformer 能夠在測試過程中使用不同深度的正則項訓練方法,該方法關注點在剪枝層數(shù)。作者考慮了三種不同的剪枝策略:一為每隔一層就以一定概率進行剪枝;二為計算不同組合層在驗證集上的表現(xiàn),但是這種方法相對耗時;三為每層學習一個參數(shù)p,使得全局剪枝率為p*,然后對每層的輸出添加一個非線性函數(shù),在前向中選擇計算分數(shù)最高的k個層。經(jīng)過這三種策略從而不需要在后續(xù)任務的情況下即可選擇BERT 模型的最優(yōu)子模型。

      該方法能在一定程度上降低模型大小,加速模型訓練且不用后續(xù)任務即可完成。但是,該模型對BERT 本質(zhì)缺點并未改進。

      RPP BERT[84]:Guo 等人提出了一種重加權近端剪枝方法(reweighted proximal pruning,RPP)。在高剪枝率下,近端剪枝BERT 對預訓練任務和后續(xù)多個微調(diào)任務都保持了較高的精度。同時,該模型能部署在多種邊緣設備上,但是剪枝過程較為繁瑣且對近端的選擇存在較大爭議。

      3.2.2 量化

      通過減少每個參數(shù)所需比特數(shù)來壓縮原始網(wǎng)絡,可以顯著降低內(nèi)存。該方法在圖像領域應用較為廣泛[85-86],本小節(jié)針對BERT 模型的量化改進進行介紹。

      Q-BERT[87]:模型采用低位精度儲存參數(shù),并支持低位硬件來加速推理過程。

      總的來說,作者對Hessian 信息進行逐層分解,進而執(zhí)行混合精度量化。該研究提出一種基于top特征均值和方差的敏感度度量指標,以實現(xiàn)更好的混合精度量化。同時,提出了一種新的組量化機制(group-wise quantization),該機制能夠有效緩解準確度下降問題的同時不會導致硬件復雜度顯著上升,具體而言,組量化機制將每個矩陣分割為不同的組,每個組擁有獨立的量化范圍和查找表。最后,作者調(diào)查了BERT 量化中的瓶頸,即不同因素如何影響NLP 性能和模型壓縮率之間的權衡,這些因素包括量化機制、嵌入方式、自注意力和全連接層等模塊。

      Q-BERT 對BERT 模型進行了有效的壓縮,一定程度上降低了模型的大小。但是,整個壓縮過程復雜,壓縮不徹底且性能影響嚴重。

      Q8BERT[88]:Zafrir 等人提出了Q8BERT 模型,該模型能夠極大地壓縮BERT 的大小。

      具體來說,對BERT 的全連接層和Embedding 層中通用矩陣(general matrix multiply)進行量化處理。同時,在微調(diào)階段執(zhí)行量化感知訓練,以便在損失最小準確度的同時使BERT 壓縮模型為原模型25%的參數(shù)量。此外,針對8 bit參數(shù)進行優(yōu)化。

      該模型與QBERT 類似,對BERT 能有效地壓縮,但是采用該方法存在量化不徹底,比如在softmax、層歸一化等準確度要求較高的操作中依然保留float32的類型。

      TernaryBERT[89]:華為提出的該模型,在BERT 模型上量化分為兩部分,權重層量化和激活層量化。在權重層中,包含了所有的線性層與Embedding 層,這些層的參數(shù)占了BERT 模型總參數(shù)的絕大部分,因而對這些層的量化較為徹底。華為團隊探討了TWN(ternary weight networks)[90]方法與LAT(lossaware ternarization)[91]方法,TWN 方法旨在最小化全精度參數(shù)和量化參數(shù)之間的距離,而LAT 的方法則是為了最小化量化權重計算的損失。對于激活層的量化,采用8 bit 的對稱與非對稱方法,而在實際推理過程中,矩陣乘法可以由32 bit 的浮點數(shù)運算變?yōu)閕nt 8的整形運算,達到加速的目的。該模型實現(xiàn)僅占BERT 模型6.7%的參數(shù)情況下達到和全精度模型相當?shù)男阅堋?/p>

      雖然該模型在量化方面效果明顯高于其他模型,但是在一些粒度較細的任務上由于量化過度導致效果并不如人意。

      3.2.3 知識蒸餾

      知識蒸餾的核心是將復雜網(wǎng)絡遷移進簡單網(wǎng)絡中,這之中重要部分是將其中的“精華”蒸餾出來,再用其指導精簡網(wǎng)絡進行訓練,從而實現(xiàn)模型壓縮。在BERT 興起以前,知識蒸餾就已存在較多應用[92],BERT 的興起加速了知識蒸餾在人工智能中的發(fā)展。

      Small BERT[93]:Zhao 等人采用蒸餾方式提出該模型。首先,將BERT 的寬度進行壓縮,同時,縮小詞表,將原來的30 522 分詞表縮小為4 925 個分詞。為了使教師模型與學生模型匹配,采用了Dual Training和Shared Projection 技術進行處理,其核心是圍繞“縮減詞表”展開。

      該模型能取得較好性能且模型參數(shù)得到較大降低,但是該文章實驗較簡單、不全面,不能說明在其他任務上的性能,即存在應用領域狹窄問題。

      Knowledge Distillation[94]:Sun 等人在通用知識蒸餾任務上進行改進。學生模型除了學習教師模型的概率輸出外,還需要學習一些中間層的輸出。作者提出了Skip 方法與Last 方法,Skip 方法為每隔幾層去學習一個中間層;Last方法為學習教師模型的最后幾層。最終的訓練目標是損失函數(shù)LCE、LDS與LPT的加權和,直接使用后續(xù)任務進行蒸餾訓練。

      模型在GLUE(general language understanding evaluation)上取得了較為良好的結(jié)果,但是該模型本質(zhì)上是減層操作,從而導致學生模型與教師模型的寬度一樣(在一般情況下,短而寬的模型效果往往低于長而窄的模型);同時,更長更深的教師模型并不一定能訓練出良好的學生模型。

      DistilBERT[95]:將BERT 的12 層壓縮到6 層,以3%的準確度犧牲換來40%的參數(shù)壓縮和60%的預測提速。具體來說,在預訓練階段進行知識蒸餾,核心技術是引入了Losscos(cosine embedding loss),從而進行網(wǎng)絡的內(nèi)部對齊。而后,作者類似地提出了DistilGPT2[95]和DistilRoBERTa[96]。

      DistilBERT 在自然語言處理中引起了較大的轟動,但是該方法相對于后面的模型,準確度與參數(shù)量均略微較大。

      Distilling Transformers[97]:Mukherjee 等人針對學生模型蒸餾后效果一般情況下差于教師模型的問題,通過大量領域內(nèi)無標簽語料以及有限數(shù)量的標簽語料訓練來彌補這一差距。具體來說,提出了硬性蒸餾與軟蒸餾兩種模式,硬蒸餾是對大量無標簽語料進行標注,然后將這些語料增強后對學生模型進行監(jiān)督訓練;軟蒸餾是用教師模型在無標簽語料上生成的內(nèi)部表示,對學生模型進行蒸餾。

      該模型簡單易懂,在領域知識內(nèi)能取得較高性能,但是模型整體創(chuàng)新性不高,對通用任務性能提升有限。

      MiniLM[98]:Wang 等人提出了一種將基于Transformer 的預訓練大模型壓縮成預訓練小模型(更少的層數(shù)和更小的隱層維度)的通用方法,深度自注意力知識蒸餾(deep self-attention distillation)。該模型有三個核心點:一為蒸餾教師模型最后一層Transformer的自注意力機制;二為在自注意力機制中引入值之間的點積;三為引入助教模型輔助訓練學生模型。

      在各種尺寸的學生模型中,MiniLM 的單語種模型性能較為優(yōu)越;在SQuAD2.0 與GLUE 的多個任務上以一般的參數(shù)量與計算量即可保持99%的準確度。但是與TinyBERT 與MobileBERT 等相比,準確度與參數(shù)量還有待提高;同時,對大模型微調(diào)和推理仍費時費力,計算成本較高。

      TinyBERT[99]:采用兩階段訓練方法,該模型在中間的多個過程計算損失函數(shù)使其盡量對齊;同時,對語料庫進行了極大的增強處理,因此在模型性能與效果上取得了較為明顯的進步?;谠撍悸?,研究者們提出了Simplified TinyBERT[100]、CATBERT[101]等模型。

      TinyBERT 模型在多個任務上取得了較好的性能且其模型大小顯著減小,但是模型的超參數(shù)過多,模型難以調(diào)節(jié);同時,采用了語料增強技術,與BERT 的對比不公平。

      MobileBERT[102]:該模型為當前蒸餾領域較為通用的模型,該模型采用和BERTlarge一樣深的層數(shù)(24層),在每一層中的Transformer 中加入了bottleneck機制使得每一層Transformer 變得更窄。具體來說,作者先訓練了一個帶有bottleneck 機制的BERTlarge(IB-BERT),然后把IB-BERT 中的知識遷移到MobileBERT 中(由于直接蒸餾效果較低,采用這種中間轉(zhuǎn)換策略)。

      該模型優(yōu)點在于其相對于其他蒸餾模型來說具有通用性,但是模型深度較深,訓練更為困難。

      BORT[103]:該模型參數(shù)量只有BERT 的Large 模型的16%,但是提升效果能達到0.3%至31%。總的來說,該模型分為最優(yōu)子結(jié)選?。╫ptimal sub-architecture extraction)、預訓練與后續(xù)任務微調(diào)。

      該模型能取得較為明顯的效果,但是該論文缺乏消融實驗且對比較不公平。

      3.2.4 參數(shù)共享與低秩分解

      參數(shù)共享是指將模型中相似的子結(jié)構(gòu)采用參數(shù)覆蓋的方式進行訓練,進而達到參數(shù)共享的目的。低秩分解是將大的權重矩陣分解為若干個低秩的小矩陣從而減少運算量。由于這兩種技術?;煸谝黄鹗褂茫蚨鴮ζ溥M行整體介紹。

      ALBERT[104]:該模型用參數(shù)共享與低秩分解技術進行壓縮。具體來說,相對于BERT,有以下幾點改進:首先,采用詞向量分解技術,將Embedding 中的E(embedding size)與H(hidden size)進行解綁,參數(shù)量大大降低;其次,采用跨層參數(shù)共享機制,極大減小參數(shù)量的同時還增加了模型的穩(wěn)定性;再者,采用句子順序預測SOP(sentence-order prediction)代替NSP技術;最后,采用N-gram 機制代替BERT 的MLM 機制,性能進一步提升。

      ALBERT 在參數(shù)量、模型性能等方面全面超越BERT,且能支持更大的預訓練語料,但是該模型并未減少系統(tǒng)算力。

      BERT-of-Theseus[105]:該模型采用層間替換策略進行處理,具體為將每兩層或者三層Transformer 采用新的一層Transformer進行替換。

      該模型避免了從頭開始預訓練,極大節(jié)省了算力,但是經(jīng)其他學者證明,直接取前若干層也能達到類似效果。

      本文比較了基于BERT 的兩類主流方向優(yōu)化模型,對每種模型的預訓練機制、優(yōu)缺點以及原始論文中的模型性能(采用常用的GLUE 與SQuAD 語料庫)進行梳理總結(jié),如表3 所示。

      4 應用領域進展

      按照語料的長度分為詞匯、句子和篇章三個層面,而每個層面均有若干具體領域,如圖12 所示。由于各個領域之間具有關聯(lián)性與交叉性,沒有必要對每個領域的進展進行詳細介紹。本文依據(jù)各領域的關聯(lián)程度選取詞匯級別的命名實體識別、句子級別的智能問答、機器翻譯,篇章級別的文本分類、文本生成這幾個主流領域進行介紹,旨在展現(xiàn)自然語言處理在這些領域的進展。

      Fig.12 Application fields of natural language processing圖12 自然語言處理的應用領域

      4.1 命名實體識別

      命名實體識別(named entity recognition,NER)于1996 年在MUC-6 會議上首次被提出[106],具有數(shù)量無窮、構(gòu)詞靈活和類別模糊的特性。作為自然語言應用的基石(比如:問答、分類、翻譯等均會涉及),具有極大的研究價值,因而在之后的發(fā)展中成為自然語言處理應用的一個熱點方向。

      Liang 等人基于遠程監(jiān)督提出了開放域命名實體識別模型BOND[107],該模型與BERT 類似,分為預訓練與后續(xù)任務兩部分。首先,將獲取的無標簽語料通過外部知識庫(實體庫)匹配生成具體標簽,但是這些標簽具有不完整性與極大噪音,對模型性能產(chǎn)生較大不良影響。其次,將這些已有標簽語料送入BOND模型中進行預訓練,從而產(chǎn)生預訓練檢查點。而后將無標簽的語料連同檢查點送入模型中進行后續(xù)任務測試。實驗表明在五個基準語料庫(CoNLL03、Twitter、OntoNotes5.0、Wikigold、Webpage)上的性能優(yōu)于現(xiàn)有的其他方法。Li 等人[108]對中文臨床命名實體識別進行研究。首先,作者在Web 網(wǎng)頁中爬取了1.05 GB 的包含皮膚科、腎臟科等不同醫(yī)學領域的文本,然后將這些文本語料送入BERT 中進行預訓練。在后續(xù)任務中,采用BERT 結(jié)合BiLSTM(bidirectional long-short term memory)與CRF(conditional random field)的方式進行訓練,在CCKS 2017 語料庫上取得了91.60 的F1 值。文獻[109]采用BERT 結(jié)合投票機制(contextual majority voting,CMV)對命名實體進行識別,在英語、荷蘭語和芬蘭語命名實體識別中取得了較好的效果。

      Table 3 Various optimization models of BERT表3 BERT 各種優(yōu)化模型

      雖然基于BERT 改進的命名實體識別在不同類型的語料庫上取得了較好的效果,但是仍然存在以下不足:首先,專用命名實體語料收集困難;其次,在部分縮寫類實體和一詞多義類實體上模型性能還有較大提升空間。

      4.2 智能問答

      智能問答(intelligent question and answering,QA)是信息檢索的一種高級形式,用準確、簡潔的自然語言回答用戶用自然語言提出的問題。不同的分類方式可將問答分為不同類型:按照問題維度可分為領域內(nèi)問答和開放域問答,按照對話類型可分為開放域閑聊、限定域問答和任務驅(qū)動型問答等。

      文獻[63,66,70,73-78]等對單片段SQuAD 語料庫進行訓練與測試,證明了BERT 及改進模型的有效性。蘇立新等人[110]以BERT 為基礎模型,構(gòu)造出BERT_Boundary 模型對多片段語料進行處理,相對于SQuAD 等單片段語料來說,多片段語料難度更大且相對貼近現(xiàn)實。該模型的優(yōu)點在于在處理多片段語料的同時與BERT 模型兼容,避免了大規(guī)模的預訓練。BERT_Boundary 在他們自己構(gòu)建的語料庫上總體取得了71.49 的EM(exact match)值以及84.86 的F2 值;在多片段的語料上,最高取得了59.57 的EM值與85.17 的F2 值。GENBERT 模型[111]采用BERT的編解碼結(jié)構(gòu)對多類型語料庫DROP(包含多片段、加減、計數(shù)、否定等)進行處理,該語料庫相對于單一類型語料來說,難度更大且更加貼近現(xiàn)實。首先,在BERT 模型的基礎上增加了一個片段解碼頭用于處理DROP 中出現(xiàn)的片段語料。其次,針對專用語料預訓練缺失問題,利用程序生成大量偽專用語料進行二次預訓練。實驗結(jié)果表明該模型性能與MTMSN(multi-type multi-span network)[112]的Base 效果相當。Chen 等人[113]提出了MTQA(multi-type question and answer)模型,該模型較好地解決了DROP 語料中多類型任務問題,在檢索系統(tǒng)中具有較大的實際意義。具體來說,該模型在預訓練的基礎上進行有監(jiān)督二次預訓練。同時,采用了傳統(tǒng)集束搜索算法增加模型性能與減小模型的搜索空間。

      智能問答目前在企業(yè)界用的較多的有各種搜索引擎,常用的有百度、谷歌等,但是智能問答還存在明顯的缺陷,最主要的是問句的真實意圖分析、問句與答案之間的匹配關系判別等仍是制約問答系統(tǒng)性能的關鍵難題。

      4.3 機器翻譯

      機器翻譯(machine translation,MT),又稱自動翻譯,是利用計算機把一種自然源語言轉(zhuǎn)換為另一種自然目標語言的過程,一般指自然語言之間句子和全文翻譯。機器翻譯是自然語言處理中的經(jīng)典領域,它的起源與自然語言的起源同步。

      文獻[59,61,65]等模型對WMT-14 等語料進行測試,證明了GPT 系列模型在機器翻譯中的性能。為解決雙語任務與單語任務預訓練間鴻溝,從而能較好地利用單語言任務模型的檢查點,Weng 等人[114]提出了一個APT(acquiring pre-trained model)模型,用于預訓練模型到神經(jīng)機器翻譯(neural machine translation,NMT)的知識獲取。該模型包含兩部分:首先是一個動態(tài)融合機制,將通用知識的特定特性融合進APT 模型中;其次,在APT 訓練過程中不斷學習語言知識的提取范式,以提高APT 性能。實驗表明,模型在德-英、英-德以及漢-英上均取得了不錯的成績。為了防止模型在語料豐富任務上遭遇災難遺忘問題,Mager 等人[115]提出CTNMT(concerted training NMT)模型。該模型采用三種策略以提高性能:首先,采用漸進蒸餾方式,使NMT 能夠保留之前的預訓練知識;其次,采用動態(tài)切換門機制,以確保不會發(fā)生災難性遺忘問題;再者,根據(jù)預定策略調(diào)整學習節(jié)奏。實驗表明,在WMT-14 語料庫上性能顯著高于其他模型。

      現(xiàn)階段國內(nèi)外知名的翻譯軟件有谷歌翻譯、百度翻譯和有道詞典等。總的來說,機器翻譯目前處于較高水平,在一些通用語料上,機器翻譯能取得較好成績,但是在涉及專業(yè)知識領域上,機器翻譯的效果還有待提高。

      4.4 文本分類

      文本分類(text classification,TC)是依靠自然語言處理、數(shù)據(jù)挖掘和模式識別等技術,對不同的文本進行分類處理。按照文本長度可分為長文本分類和短文本分類,按照分類的標簽數(shù)可分為二分類、多分類以及多標簽分類等。在自然語言處理的許多子任務中,大部分場景都可以歸結(jié)為文本分類,比如常見的情感分析、領域識別、意圖識別和郵件分類等。

      文獻[59-62,64,66-67,83-89]等模型對GLUE 語料進行測試,證明了BERT 及改進模型在分類語料上的性能。文獻[116]將BERT 模型與經(jīng)典的自然語言處理分類技術進行比較,證明了BERT 模型的優(yōu)越性。Sun 等人[117]提出了一種對預訓練BERT 進行微調(diào)的通用方法,包含以下三個步驟:首先,對領域語料進一步預訓練;其次,若有多個相關任務,選擇多任務學習;最后,對單一任務進行最終微調(diào)。作者在八類語料庫上進行實驗,結(jié)果表明模型性能取得了最新的結(jié)果。Lu 等人結(jié)合BERT 和詞匯表圖卷積網(wǎng)絡(vocabulary graph convolutional network,VGCN)提出了VGCN-BERT 模型[118],該模型利用局部信息和全局信息通過不同層次的BERT 進行交互,使它們相互影響,共同構(gòu)建分類表示。首先,基于詞表的共現(xiàn)信息構(gòu)建圖卷積網(wǎng)絡,然后將圖嵌入(graph embedding)與詞嵌入(word embedding)一起送入BERT 編碼器中;其次,在分類學習過程中,圖嵌入與詞嵌入通過自我注意力機制相互學習,這樣分類器不僅可以同時利用局部信息和全局信息,還可以通過注意機制使二者相互引導,最終建立的分類表示將局部信息和全局信息逐漸融合。

      文本分類作為自然語言處理的一個重要領域,在一些語料不太復雜,粒度較粗、分類較少的語料上效果顯著,但是在一些細粒度語料上,分類效果有待提升。

      4.5 文本生成

      文本生成(text generation,TG)主要包括自動摘要、信息抽取和機器翻譯(由于機器翻譯在自然語言處理中占有重要地位因而單獨介紹)。文本生成是利用計算機按照某一規(guī)則自動對文本信息進行提取,從而集合成簡短信息的一種信息壓縮技術,其根本目的在于使抽取出的信息簡短的同時保留語料的關鍵部分。按照不同的輸入劃分,文本生成包括文本到文本的生成(text-to-text generation)、意義到文本的生成(meaning-to-text generation)、數(shù)據(jù)到文本的生成(data-to-text generation)以及圖像到文本的生成(image-to-text generation)等。本節(jié)重點介紹文本到文本的生成。

      Topal 等人[119]探討了GPT、BERT 和XLNet 三種模型在自然語言生成任務上的性能,總結(jié)了Transformer 在語言模型上取得的突破性進展。Qu 等人[120]采用新的語料(百度百科與隨筆中文)訓練GPT-2 與BERT,用以生成長句與文章并做中間詞預測。Chi等人[121]提出的XNLG(cross-lingual pre-trained model)模型是一個基于Transformer 的序列到序列的預訓練模型,該模型能產(chǎn)生較高質(zhì)量的跨語言生成任務。在模型構(gòu)造過程中,主要使用了以下幾種方法:首先,采用單語言MLM 機制,該機制本質(zhì)上就是BERT的MLM 機 制;其 次,采 用DAE(denoising autoencoding)技術來預訓練編解碼中的注意力機制,DAE 機制為2008 年Vincent 等人[122]提出;再者,采用跨語言的XMLM(cross-lingual MLM)技術與跨語言的XAE(cross-lingual auto-encoding)技術。

      文本生成受各方面因素影響,距離工業(yè)化實際應用還有較大的發(fā)展空間,但是隨著軟硬件技術和模型的進步,該領域?qū)芯薮蟾纳?,進而更好地應用于實際生產(chǎn)生活中。

      4.6 多模態(tài)領域

      除以上重點領域外,自然語言處理還與語音、視頻、圖像等領域有較大交叉,即存在多模態(tài)領域。與這些領域的結(jié)合對提升該領域模型性能具有積極推動作用?,F(xiàn)階段,結(jié)合自然語言處理的多模態(tài)領域更多的是將自然語言處理的預訓練技術與模型融入該領域中,避免從頭訓練模型、節(jié)省算力的同時也在一定程度上輔助提高了模型的性能。

      文獻[123]提出了一種基于微調(diào)BERT 的自動語音識別模型(automatic speech recognition,ASR),該模型采用文本輔助語音進行語音性能提升。與傳統(tǒng)的ASR 系統(tǒng)相比,省略了從頭訓練的過程,節(jié)省了算力。文獻[124]提出了通用的視覺-語言預訓練模型(visual-linguistic BERT,VL-BERT),該模型采用Transformer 作為主干網(wǎng)絡,同時將其擴展為包含視覺與語言輸入的多模態(tài)形式。該模型適合于絕大多數(shù)視覺-語言后續(xù)任務。針對唇語識別問題,中科院制作了唇語語料庫LRW-1000[125]。該語料庫包括唇語圖片序列、單詞文本與語音三部分,該語料庫將圖像與自然語言結(jié)合,填補了中文大型唇語自然語料庫的空白。

      多模態(tài)研究一直是各領域向外延伸的一個突破點。自然語言處理的多模態(tài)研究涉及領域廣,所需知識面大。目前,取得的性能還有待提高,但是隨著人工智能的繼續(xù)發(fā)展,相信在這些領域定然會取得新的突破。

      5 面臨的挑戰(zhàn)與解決辦法

      19 世紀40 年代機器翻譯提出,自然語言處理技術隨之誕生。經(jīng)過了幾十年發(fā)展,自然語言處理技術在曲折中發(fā)展。就目前來說,還面臨著極大的挑戰(zhàn),具體來說,有以下幾個方面。

      5.1 語料

      語料存在不規(guī)范性、歧義性和無限性問題。首先,大型語料庫的建立不可避免地需要自動化或半自動化工具進行語料收集整理,在此過程中,可能收集一些本身就存在問題的語料,從而對模型的性能造成一定的影響。其次,由于語料自身的特性導致語義存在歧義性,尤其是一些日常用語,人類可以憑借常識推理判斷某句話表達的意思,但是現(xiàn)階段的計算機還不能做到這樣的常識推理。最后,語料本身是無限的,不可能去制作一個無限大的語料庫。

      針對語料存在的三點問題,應從以下幾個方面解決。首先,在語料收集時,應選擇來源正規(guī)、影響力較大的語料進行收集整理;同時,研究者們不應該把所有的關注點僅集中在模型的大小與性能上,開發(fā)出更加智能、快捷、便利的語料收集整理工具,也是下一階段的側(cè)重點之一。其次,由于語料本身的歧義性,要加大模型研發(fā),使模型更加智能化;同時,研究者可以借鑒一些傳統(tǒng)技術,例如構(gòu)詞法等,使歧義語料語義單一。其三,在日常的自然語言處理中,應加大對專用語料庫的收集整理,同時,在大規(guī)模無監(jiān)督語料上進行預訓練的條件下,對后續(xù)任務采用零樣本或小樣本學習是很有必要的措施。

      5.2 模型

      自然語言處理模型從基于規(guī)則到基于統(tǒng)計再到基于神經(jīng)網(wǎng)絡的每一個發(fā)展過程中,其準確性會有一個較大幅度的提升?,F(xiàn)階段最熱的神經(jīng)網(wǎng)絡具有模型過程不透明、簡單粗暴且參數(shù)龐大的問題。具體來說,神經(jīng)網(wǎng)絡模型尤其是深度神經(jīng)網(wǎng)絡模型的中間過程類似黑盒,研究人員對它的控制能力較弱,不便于優(yōu)化設計。同時,現(xiàn)階段的神經(jīng)網(wǎng)絡模型相對于傳統(tǒng)的精巧式設計模型來說,設計方式較為簡單,大多數(shù)神經(jīng)網(wǎng)絡模型依靠大計算量進行訓練和預測,從而使模型顯得靈巧性不足。最后,模型量級較大,當前的主流模型需要消耗大量的資源進行訓練,雖然目前有大量的工作對模型進行輕量化處理,但是一般的輕量化模型存在場景受限或仍難以部署在邊緣設備上。

      針對模型存在的以上問題,研究者應從以下幾方面著手解決。首先,研究人員應加大模型中間過程的研究,讓“黑盒”變得透明、可控;同時,應在模型設計方面再進行研究,爭取設計出輕巧簡便且泛化能力強的模型;最后,針對目前出現(xiàn)的大量輕量化模型無法實際應用于生產(chǎn)生活中的問題,應進行二次輕量化乃至多次輕量化處理,采用循環(huán)迭代的方式降低模型的大小。

      5.3 應用場景

      對于目前大多數(shù)落地技術來講,場景一般獨立且無歧義,但是自然語言處理應用場景分散且復雜,難以獨立應用于某一具體領域。同時,現(xiàn)階段在自然語言理解領域模型性能良好,但是對于自然語言生成領域效果還亟待提升。

      研究者們應該規(guī)范一個符合大眾認知且獨立的場景,這對自然語言模型更好地落地應用于具體領域具有重大的實際意義。其次,現(xiàn)階段,自動文摘、機器翻譯等領域如火如荼展開,從而體現(xiàn)出了自然語言生成領域具有強大的動力,研究者們應加大這方面的研究。

      5.4 性能評估指標

      目前自然語言處理模型主流的評測方法是從已有語料中劃分出一部分作為測試集,然后測試模型性能。但這并不能全面地評估一個模型的好壞,還有很多意想不到的情況:首先,測試集有部分語料和訓練集相似度很高,模型如果過擬合了也無法發(fā)現(xiàn);其次,測試集存在偏差,與真實場景分布不一致;最后,模型采用某種Trick 才能在測試集上表現(xiàn)良好。因此,模型的評估存在不少風險與不確定因素。

      Ribeiro 等人[126]認為應當全方位對模型多項能力進行評估,每項能力均應該通過三種不同類別的檢測,即最小功能檢測、不變性檢測和定向期望檢測,該思想借鑒了軟件工程的方法。研究者們應拓寬該類思路,讓模型性能評價更加標準化與規(guī)范化,讓投機取巧的測試方法無處遁形。

      5.5 軟硬件

      計算機經(jīng)過幾十年的長足發(fā)展,軟硬件均取得了極大發(fā)展。但是現(xiàn)階段自然語言處理技術所需要的軟硬件條件極高,個人或組織需要承擔大量的工作量與高額的經(jīng)費。從軟件方面來看,各種框架層出不窮,部分框架之間不兼容,導致工作量增大。從硬件方面來看,硬件技術遵守摩爾定律,即增長速度為倍數(shù)級增長;但是神經(jīng)網(wǎng)絡,尤其是深度神經(jīng)網(wǎng)絡對硬件的需求為指數(shù)級增長,從而導致需求量與增長量產(chǎn)生不可調(diào)和的矛盾。

      Table 4 Challenges and solutions表4 挑戰(zhàn)與解決辦法

      首先,應加大軟件研發(fā)力度,使軟件兼容各種框架,減少程序開發(fā)負擔。其次,應加大對新興領域的研究,尤其是最近興起的量子計算,量子比特與傳統(tǒng)計算機不同之處是其能同時代表0 或1。若量子計算機成功研發(fā),將會對計算機領域的發(fā)展產(chǎn)生重大推動作用。

      自然語言處理領域面臨的挑戰(zhàn)與解決辦法概括如表4 所示。從每類問題存在的難點、技術局限以及研究趨勢與解決辦法幾方面進行闡述。

      6 總結(jié)與展望

      自然語言處理取得了長足發(fā)展,已在許多領域取得工業(yè)化應用,并展現(xiàn)了一定的市場價值和潛力。但是,自然語言處理技術還存在較多瓶頸,例如在復雜語料上性能嚴重受限、語義層面難以理解句子意思。為此,本文對自然語言處理預訓練技術已取得成就進行了總結(jié),對自然語言的未來趨勢進行了展望。

      自然語言處理應與其他相關領域結(jié)合:隨著神經(jīng)網(wǎng)絡的發(fā)展尤其是深度學習的興起,進一步加強了自然語言處理與其他學科的聯(lián)系,一大批交叉技術產(chǎn)生,例如自然語言處理與語音結(jié)合進而提高語音的識別性能,自然語言處理與圖像的結(jié)合產(chǎn)生可解釋性圖片。在接下來的研究工作中,應加大與其他領域結(jié)合的范圍,讓自然語言處理技術的成果惠及更大范圍的同時也加速自身發(fā)展。

      自然語言處理技術應與其他技術結(jié)合:自然語言處理技術涉及數(shù)據(jù)挖掘、概率論、模式識別等相關知識。可以將相關技術借鑒遷移至自然語言處理,在一定程度上避免閉門造車。當然,自然語言處理技術的發(fā)展與其他相關技術的發(fā)展是一個相互促進的過程。

      自然語言處理模型的輕量化:目前的自然語言處理技術大多依賴笨重的模型和超大的計算量來提高準確度,導致實驗室的準確度較高但是難以投入實際應用。研究輕量化及多次輕量化的自然語言處理模型有助于為自然語言處理技術的實際應用提供強有力的支撐。

      自然語言處理應該設計更加合理的評判準則:在一些自然語言處理的子領域(例如文本生成及機器翻譯等),基于單詞匹配的評估方法還不太合理,存在評估刻板化、單一化等現(xiàn)象。研究者們應深入挖掘預測結(jié)果與原始語料之間的關系,進而提出更好的評判指標。就目前來說,應該針對相關領域提出多元化評判指標。

      相對于圖形圖像與語音等領域,自然語言處理具有涉及領域廣、挑戰(zhàn)性大的特點。今后應著重從以上幾方面開展相關研究,實現(xiàn)自然語言處理技術在更大范圍投入實際生產(chǎn)生活中。

      猜你喜歡
      語料向量單詞
      向量的分解
      聚焦“向量與三角”創(chuàng)新題
      單詞連一連
      看圖填單詞
      看完這些單詞的翻譯,整個人都不好了
      基于語料調(diào)查的“連……都(也)……”出現(xiàn)的語義背景分析
      向量垂直在解析幾何中的應用
      向量五種“變身” 玩轉(zhuǎn)圓錐曲線
      華語電影作為真實語料在翻譯教學中的應用
      《苗防備覽》中的湘西語料
      赣州市| 景洪市| 顺平县| 改则县| 汉寿县| 天水市| 肥东县| 仙居县| 淮阳县| 三台县| 宽城| 沁源县| 光泽县| 曲阜市| 安达市| 梁平县| 郧西县| 武乡县| 英山县| 合作市| 平昌县| 徐闻县| 科技| 当雄县| 遵义市| 乌鲁木齐市| 汝阳县| 巴林左旗| 宜春市| 淮滨县| 丘北县| 调兵山市| 扶绥县| 合江县| 崇左市| 长治市| 轮台县| 兴山县| 大新县| 丽江市| 文成县|