?

基于自注意力機制預訓練跨蒙漢語言模型

2021-02-25 07:48蘇依拉牛向華仁慶道爾吉
計算機應用與軟件 2021年2期
關鍵詞:語料漢語言語料庫

蘇依拉 高 芬 牛向華 仁慶道爾吉

(內蒙古工業大學信息工程學院 內蒙古 呼和浩特 010080)

0 引 言

機器翻譯是人工智能領域的重要研究課題之一,主要目標是研究如何使用計算機實現一種自然語言到另一種自然語言的自動轉換[1]。針對蒙漢機器翻譯中平行語料資源稀缺的問題,提出利用單語語料[2-8]訓練來提高蒙漢機器翻譯的質量。而實現基于單語語料庫訓練的蒙漢機器翻譯系統最重要的基礎就是需要一個翻譯性能良好的初始化翻譯模型,而初始化的翻譯模型是基于字典的翻譯系統和語言模型相結合才能實現的,故預訓練一個表現較好的語言模型就顯得尤為重要。

語言模型這個概念最早出現在統計機器翻譯中,是統計機器翻譯技術中較為重要的概率模型之一。通俗而言,語言模型就是一串詞序列或者一句話的概率分布,其作用就是可以為一個長度為n的句子計算其存在的可能性的概率分布p。在統計機器翻譯中常用的是N-gram語言模型,N表示n元模型,當n選取較大時,就會產生數據稀疏問題,從而導致估算結果出現較大的偏差。因此,實際中最常用的是三元模型,也就是Tri-gram模型。為了緩解N-gram語言模型導致的數據稀疏的問題,也由于計算機技術的快速發展,現在有很多研究者專注于預訓練神經網絡語言模型的研究。實際上,語言模型就是依據上下文信息去預測下一個詞,因為不需要人工標注的數據,所以預訓練語言模型,其實就是從大量的單語語料中,學習到比較豐富的語義知識的表示。使用神經網絡訓練時基本上都是基于后向傳播算法(Back Propagation,BP),通過對網絡模型的參數進行隨機的初始化,再通過一些優化算法去優化初始的模型參數。預訓練的原理是:對神經網絡模型的參數不進行隨機的初始化,而是有目的地訓練一套網絡模型參數,之后將這套參數用來做初始化,然后再訓練。在遷移學習中也大量地使用了這樣的思想。

近幾年,在自然語言處理(NLP)領域,在多項NLP任務上使用預訓練語言模型的方法皆獲得了令人可喜的成果,因此預訓練語言模型也受到人們廣泛的關注。例如,2018年在NTM領域引起熱門討論的幾篇文章都和預訓練語言模型有關,其中三個比較具有代表性的模型為ELMo[9]、OpenAI GPT[10]和BERT[11],它們都是神經網絡語言模型。因神經網絡語言模型在當前研究中表現最佳,且使用神經網絡的方法可以結合上下文信息學到一些語義信息有利于翻譯系統性能的提升,所以本文也采用了該方法預訓練語言模型。

1 基于多頭自注意力機制的研究

雖然基于LSTM[13]神經網絡的方法在一定程度上能夠緩解長距離依賴問題,但是因為不能進行并行運算,所以計算速度相對比較緩慢。而且,基于雙向LSTM[14]神經網絡預訓練語言模型的方法看似是雙向的,實則是兩個單向運算結果的拼接。為了實現真正意義上的雙向運算,本文使用基于多頭自注意力機制(Multi-head Self-attention Mechanism)的框架預訓練跨蒙漢語言模型,此框架依然是編碼器-解碼器的結構,只不過編碼器由多層編碼器層堆疊而成,在每一層編碼器層中都包含前饋神經網絡層和使用了基于多頭注意力機制的Transformer的注意力層[15]。

注意力機制來自人類的視覺注意力機制,當人類使用視覺感知外界事物的時候,一般不會將場景中的事物都掃描一遍,而是有選擇地去觀察那些對自己有用的信息。而注意力機制也是基于這樣的原理,注意力函數可以被形容為一個查詢(Query)到一系列鍵值對(Key-Value)的映射,如圖1所示,其計算公式如下:

圖1 注意力機制原理

(1)

注意力函數值的計算步驟如下:首先是計算Query和每一個Key之間的相似度權重,相似度如果是通過點積再除以維度K進行計算的,則稱為放縮點積注意(Scaled Dot-product Attention);然后通過Softmax將計算得到的權重進行歸一化操作;最后將歸一化之后的相似度權重和Value做加權求和就得到了注意力值。

自注意力機制就是運算過程中Key、Value、Query是相等的。多頭注意力就是多個自注意力。多頭注意力運算過程是Query、Key、Value首先進行一次線性變換,然后再執行多次的放縮點積注意力運算。而且每次Query、Key、Value進行線性變換的參數W是不一樣的。然后將多次的放縮點積注意力結果進行拼接,再進行一次線性變換得到的值作為多頭注意力機制的結果。多頭注意力可以允許模型在不同的表示子空間里學習到相關的信息。在蒙漢語言模型的訓練過程中,指的就是當輸入一句話時,句子中的每個詞都得和其他的詞做注意力運算,這樣就能學習到句子中每個詞之間的相互依賴關系,即能更進一步地解決長期依賴的問題。

而Transformer的整體構成其實也是一個編碼器-解碼器的結構,只是整個編碼器是由很多個子編碼器組成的,每一個子編碼器中包含一個多頭注意力機制和一個前饋神經網絡。它的解碼器部分則和編碼器部分類似,但是為了更好地優化網絡,又添加了一個多頭注意力層,并使其與其他層進行了殘差連接。

1.1 框架構建

基于多頭自注意力機制的框架最大的特點就是使用一個多層雙向的Transformer編碼器,因為Transformer中包含自注意力機制,所以該框架中所有的網絡層都是直接相互連接的,這也是其優于雙向LSTM神經網絡模型的地方,因此它實現了真正意義上的雙向和全局?;诙囝^自注意力機制框架的組成結構如圖2所示。

圖2 多頭自注意力機制

其中:EN表示加入了位置信息和句子切分信息的詞向量,Trm表示訓練模型Transformer,TN表示翻譯譯文。在基于多頭自注意力機制預訓練語言模型的框架中,其輸入是加入了位置信息和句子切分信息的詞向量EN,接著在多層Transformer上預測任務進行訓練,稱之為遮擋式語言模型(Mask Language Model,MLM)。此任務中,在輸入詞向量序列時,隨機地使用標記MASK遮擋15%的詞,然后通過訓練來預測這些被遮擋的詞是什么。

1.2 實驗設置

首先對語料庫進行預處理,使用詞級粒度的方法對中文語料進行切分,再使用BPE進行子詞級處理,學習到一個共享的蒙漢詞匯表,將蒙漢語料庫中共有的標記作為錨點來對齊兩種語言的詞向量空間,如數字和英文字母等,訓練好一個跨語言詞向量空間。接著借鑒MLM的方法進行語言模型建模,從BPE處理之后的文本中隨機抽取15%的BPE標記,訓練中80%的時間用MASK標簽代替,10%的時間用隨機的標記替換,剩余10%的時間保持正確的BPE標記不變。MLM預訓練語言模型的過程如圖3所示。

圖3 MLM預訓練語言模型的過程

實驗環境配置為:Python 3.6.0,PyTorch 1.0.1,NumPy,fastBPE和Moses。

實驗參數設置為:BPE codes數量設置為60 000,詞向量的維度設置為512,Transformer的神經網絡層數設置為6層,多頭注意力機制設置為8頭,droupout設置為0.1,注意力機制的droupout設置為0,激活函數使用GELU,batch_size設置為16,句子的最大長度設置為256,使用Adam優化算法,學習率lr設置為0.000 1,學習率衰減率設置為0,一階矩估計的指數衰減率beta1設置為0.9,二階矩估計的指數衰減率beta2設置為0.98,epoch_size設置為300 000,batch_size設置為16。

本文主要以內蒙古工業大學構建的123萬句蒙漢對齊語料庫中的蒙古語作為源語言端單語語料庫,以全球AI挑戰賽(AI Changer)中給出的1 000萬句英漢對齊語料庫中的漢語作為目標語言端單語語料庫為研究數據。訓練集均為123萬句對蒙漢單語語料,驗證集均為3 000句對蒙漢平行語料,測試集均為1 000句對蒙漢平行語料。

1.3 實驗結果

實驗的評測使用的是語言模型評測中常用的兩個指標:語義困惑度(Perplexity,ppl)和準確率(Accuracy,acc)來判斷的。ppl越小表示語言模型越好,而acc越高表示語言模型越好。

在整體預訓練過程中,跨蒙漢語言模型的ppl和acc在測試上的變化趨勢分別如圖4和圖5所示。

圖4 語言模型的ppl變化趨勢

圖5 語言模型的acc變化趨勢

可以看出在epoch 3時訓練結果有了很大的提升,而當到達epoch 10左右結果的變化開始趨于平緩。這說明基于自注意力機制的預訓練語言模型的方法,訓練速度還是比較快的。由于結果可以很快收斂,所以短時間內也可以預訓練一個比較好的跨蒙漢語言模型。

2 基于預訓練語言翻譯模型的構建

本文總體技術路線圖如圖6所示,圖中虛線框表示的部分即為語言模型預訓練部分。將其添加到蒙漢語言模型之前對語言模型的參數進行初始化。

圖6 預訓練語言模型的蒙漢機器翻譯總體技術路線圖

2.1 實驗設置

實驗環境為Ubuntu 16.04的Linux系統,實驗架構的基礎為Pytorch,基于Facebook AI Research開源的框架XLM實現。參數設置如下:Transformer的神經網絡層數設置為6層,多頭注意力機制設置為8頭,droupout設置為0.1,注意力機制的droupout設置為0,激活函數使用GELU,batch_size設置為16,句子的最大長度設置為256,優化函數使用Adam優化算法,學習率lr設置為0.000 1,學習率衰減率設置為0,一階矩估計的指數衰減率beta1設置為0.9,二階矩估計的指數衰減率beta2設置為0.98,epoch_size設置為300 000,batch_size設置為16,batch_size的最大值限定為64,實驗終止條件設置為模型在驗證集上10個epoch內不再發生改變。

2.2 實驗結果

預訓練語言模型的蒙漢機器翻譯模型的BLEU值的變化趨勢如圖7所示。mn-zh表示蒙漢翻譯模型的結果;zh-mn表示漢蒙翻譯模型的結果;Test表示在測試集上的結果;Valid表示在驗證集上的結果。

圖7 預訓練之后的BLEU值

如圖7所示,預訓練跨蒙漢語言模型之后,基于單語語料庫訓練的蒙漢機器翻譯模型的BLEU值在20個epoch上呈現增長趨勢,在測試集上蒙漢翻譯性能于epoch17時表現最好,此時BLEU值為10.23,在驗證集上蒙漢翻譯性能于epoch19時表現最好,此時BLEU值為14.93。

3 平行語料改進預訓練語言模型

本節考慮使用少量平行語料來改進蒙漢翻譯模型。因為跨蒙漢語言模型和漢語語言模型在驗證集中的ppl都很高,所以提出應用翻譯語言模型(Translation Language Model,TLM)來改進跨蒙漢預訓練。方法是在基于多頭自注意力機制預訓練語言模型的框架中加入另一個預測任務,此任務是預測下一個句子。在此任務中,一方面輸入同屬于一句話中的兩個句子,將其視為正例;另一方面則輸入兩句不屬于同一句話中的句子,將其視為反例,兩方面的任務各占一半。那么整個語言模型預訓練的目標函數就是將這兩個任務求和之后再使用極大似然函數求值。為了預測被遮擋的蒙語,該模型可以同時處理蒙語句子和與它對應的漢語句子,并通過重置漢語句子中的位置嵌入表示以使得蒙語和漢語詞嵌入表示進一步對齊。TLM預訓練語言模型的過程如圖8所示。實驗設置同第2節一致,只是在數據集中添加了3萬句對的蒙漢平行語料庫作為訓練集,平行語料的預處理方式同驗證集和測試集一致。

圖8 TLM預訓練語言模型的過程

加入TML預訓練語言模型的蒙漢機器翻譯模型的BLEU值的變化趨勢如圖9所示。

圖9 添加TML后BLEU值的變化趨勢

可以看出,添加TML之后,蒙漢機器翻譯模型的BLUE值產生了較大幅度的提升,蒙譯漢于測試集上在epoch 28表現最好,此時BLEU值為23.05,于驗證集上也是在epoch 28表現最好,此時BLEU值為32.743。這證明加入平行語料庫進一步促進了蒙漢詞嵌入表示的對齊程度,提升了基于單語語料訓練的蒙漢機器翻譯系統的整體翻譯性能。

4 實驗結果分析

本文敘述了基于自注意力機制預訓練跨蒙漢語言模型的方法以及添加少量蒙漢平行語料來進一步優化預訓練語言模型的方法,并基于這兩種方法構建了蒙漢翻譯系統進行實驗。將實驗結果和基于單語語料庫訓練方法進行了對比,統計到三組實驗在20個epoch上測試集的ppl和BLEU如表1所示,其相應的變化趨勢如圖10所示。

表1 三組實驗結果

續表1

圖10 三組實驗BLEU值變化趨勢

可以明顯地看出,在語料庫相同的情況下,預訓練跨蒙漢語言模型的方法結果表現較好,說明語言模型對于基于單語語料庫訓練的蒙漢機器翻譯性能有很大的影響,預訓練跨蒙漢語言模型能夠在一定程度上改善其翻譯質量。通過對比實驗證實了融合單語和雙語語料預訓練語言模型提升基于單語語料庫訓練的蒙漢機器翻譯的可行性。三組實驗訓練出的最優BLEU值如圖11所示。

圖11 最優BLEU值

基于單語語料庫訓練的蒙漢機器翻譯系統在不同的epoch上翻譯的測試語句如表2和表3所示。

表2 短句翻譯模型測試

表3 長句翻譯模型測試

如表2和表3所示,模型通過不斷地學習最終可以將原句子表達的意思準確地翻譯出來,而且在沒有準確翻譯出來時也沒有出現UNK,而是使用了和原文中詞語意思較為接近的詞來代替。

5 結 語

本文主要介紹了預訓練思想和基于自注意力機制預訓練跨蒙漢語言模型的方式以及基于此方法設置的實驗,并將實驗所得的跨蒙漢語言模型應用于基于單語語料庫訓練的蒙漢機器翻譯系統中。最后,通過和基于單語訓練的蒙漢翻譯模型的實驗結果做對比?;谧宰⒁饬C制預訓練跨蒙漢語言模型的方法極大地改善了蒙漢機器翻譯系統的性能。究其原因,其一是自注意力機制能夠學習整個句子中每一個詞之間的關系,可以更好地學習到上下文的信息;其二是預訓練的方法可以對參數進行有目的的初始化;其三是使用了少量的蒙漢平行語料庫進一步提升了語言模型的準確率以及蒙漢詞嵌入表示的對齊程度。

猜你喜歡
語料漢語言語料庫
初探漢語言文學中語言的應用與意境
海量標注語料庫智能構建系統的設計與實現
基于語料庫的清末民初日源外來詞漢化研究
現代漢語言變化與社會生活關系
淺談視頻語料在對外漢語教學中的運用
可比語料庫構建與可比度計算研究綜述
運用語料庫輔助高中英語寫作
漢語言文學學習策略淺談
試探漢語言文學專業的必要性及策略
語料庫與譯者培養探索
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合