?

基于VOLT的藏漢雙向機器翻譯

2022-06-06 01:16孫義棟
計算機與現代化 2022年5期
關鍵詞:詞表藏文詞頻

孫義棟,擁 措,楊 丹

(1.西藏大學信息科學技術學院,西藏 拉薩 850000; 2.西藏自治區藏文信息技術人工智能重點實驗室,西藏 拉薩 850000;3.藏文信息技術教育部工程研究中心,西藏 拉薩 850000)

0 引 言

機器翻譯又被稱為自動翻譯,是利用計算機將一種自然語言轉換為另一種具有相同含義的自然語言的過程,屬于計算機語言學的分支之一,具有重要的科學研究價值[1]。機器翻譯的發展經歷了萌芽期、受挫期、快速成長期和爆發期4個階段,其方法已從基于規則的機器翻譯、基于實例的機器翻譯[2]、基于統計的機器翻譯[3-5]發展為基于神經網絡的機器翻譯[6-9]。隨著大數據時代的到來,低成本獲取數據讓神經機器翻譯系統更快得以實現。因此最近神經機器翻譯憑借其高質量的譯文,受到越來越多研究者和開發者的青睞[10]。在機器翻譯中,首先要構建詞表,即統計文本中的詞匯,然后設定一個閾值,將出現次數大于這個閾值的詞匯放入詞匯表中。但是如果不加以限制,機器翻譯面對的詞表就會很大,而且會出現OOV(Out of Vocabulary)問題。一種解決開放詞表翻譯問題的方法是改造輸出層結構[11-12],但是這種方法仍然無法解決OOV問題,因此并不常用。

目前,字節對編碼(Byte Pair Encoding, BPE)[13]是一種常用的子詞詞表構建方法。BPE方法最早用于數據壓縮[14],機器翻譯通過學習這種思想[15]來對源語言和目標語言進行子詞切分,并且取得了很好的效果[16]。與BPE算法不同,基于Word Piece[17]和1-gram Language Model(ULM)的方法是利用語言模型進行子詞詞表的構造[18]。但是在這些方法中,詞表的大小并沒有得到充分重視。而有些工作表明詞表大小也會影響下游任務的表現,尤其是在低資源任務上。近幾年,有研究人員提出融合EMD(Earth Mover’s Distance)最小化雙語詞典的漢-越無監督神經機器翻譯方法,首先分別訓練單語詞嵌入,再通過最小化它們的EMD訓練得到雙語詞表[19]。2021年,Xu等人[20]提出了VOLT(Vocabulary Learning Approach via Optimal Transport)技術通過同時考慮信息熵和詞匯表大小來探索自動詞匯化,并引入經濟學中信息邊際效用(MUV)來衡量信息熵和詞匯表規模的博弈收益,提出最佳運輸理論來最大化MUV(MUV最大化時等同于找到最佳詞匯表)。VOLT的好處在于可以極大縮小詞表規模、不用人工定義BPE訓練時的詞表規模以及能夠大幅度提高詞表訓練速度。

但在藏漢雙向機器翻譯領域,由于藏語和漢語的基本組成字符不同,二者詞表需要分開構建。而藏文是拼音文字,音節之間的分隔符存在省略現象,有格助詞、助動詞等漢語文法不具有的語法單元,這種語言特點導致藏語中存在緊縮詞和黏著詞、虛詞和實詞的界限難以區分、詞與詞之間沒有明顯的間隔標記等[21],給藏語詞表的構建帶來了挑戰。而且無論是傳統的分詞后統計詞頻來構建詞表,還是分詞后采用BPE以及直接使用BPE等方式相對于其他大語種翻譯上的提升都略顯不足。因此,本文旨在通過構建合適的藏漢詞表來提升藏漢雙向翻譯性能。

1 基于詞表拼接的詞典改進方法

字節對編碼主要思想是將數據中常見的連續字符串替換為一個不存在的字符,之后通過構建一個替換關系的對應表,最后再對壓縮后的數據進行還原。BPE可以有效解決OOV問題,縮小詞表規模,對低頻詞有很好的健壯性。而對于高頻詞來說,因為其本身在句子中出現頻率較高,應該將其作為一個整體去看待,不適合分割成字符級。因此本文采用高頻詞使用直接構建詞表,低頻詞使用字節對編碼詞表的思想,并通過迭代訓練找到最佳詞頻閾值進行詞表拼接。其中直接構建詞表是指對分詞后的語料進行詞頻統計,按照單詞在語料中出現的頻率由高到低的順序來構建詞表。

本文對2種方法的子詞切分結果進行了差異分析和數據統計,結果如表1所示。

表1 2種方法子詞差異分析和數據統計

本文詞表拼接方法的主要思想如圖1所示。

圖1 詞表拼接算法流程圖

在百位詞頻閾值都被取完之后程序終止,記錄最大保留分數以及采用的最佳百位詞頻閾值。

2 基于VOLT的詞典改進方法

VOLT的核心思想是通過同時考慮語料庫熵和詞匯量大小在多項式時間內探索自動詞匯化。主要過程可分為3步:1)引入經濟學中信息邊際效用(MUV)作為評估方法;2)通過將離散優化目標重新表述為最優轉移問題,從而在可處理的時間復雜度中最大化MUV;3)則是從最佳轉移矩陣中生成詞表。

在第一步中,MUV在形式上被定義為熵對詞匯量大小的負導數,MUV的計算過程如公式(1)所示。

(1)

其中,v(k+m)和v(k)分別表示包含k+m和k個tokens的詞表,Hv表示的是語料庫的熵,具體定義為:

(2)

公式(2)中lv表示詞表v中的tokens的平均長度,P(i)則代表tokeni在訓練語料庫中的“相對頻次”,計算公式為:

(3)

公式(3)中分子部分c(i)表示tokeni在訓練語料庫中出現的次數,分母部分為訓練語料庫中單詞總數。

在第二步中,由于詞表是離散的,搜索空間太大,因此通過從固定大小的詞表中搜索最佳詞表來簡化原始的離散優化問題。給定變量S,每個時間步t表示一組數量為S[t]的詞,對于任意一個詞表,其MUV分數可以基于前一步的時間戳t-1上的詞表遞進計算得到。通過這種方式可以正式定義尋找最優詞表v(t)的函數為:

(4)

公式(4)由于是指數搜索空間,因此需要優化上界:

(5)

其中,i是t-1詞表和t詞表size的差值,所以最終最大化MUV分數可以表達為最大化公式(5)。

具體實現過程總共可分為5步:1)對所有token按頻率從大到小排序,采用BPE生成的token作為候選token;2)使用所有的token候選以及各自概率初始化算法;3)設置超參數S的大小,對于雙語翻譯設置為(1000,…,10000),多語翻譯設置為(40000,…,160000);4)對于每一個時間步t,基于轉移矩陣使用最大熵得到詞表,同時刪除頻率低于0.001的token;5)枚舉出所有時間步,選擇出滿足公式(5)的詞表作為最終詞表。生成詞表后,與BPE類似,VOLT也使用貪婪策略對文本進行編碼,即首先將句子切分成字符級,然后合并連續的2個token,直到沒有token可以被合并為止。

通過上述方法,VOLT可以找到具有更高BLEU值和更小規模的詞匯表,避免了人工定義詞表規模所帶來的缺陷,而且相比傳統詞表訓練方法,能夠大幅度減少詞表訓練時間。

對于VOLT的正常應用方式是在對語料使用分詞和BPE后再使用VOLT。但是對于藏語來說,由于藏文本身存在緊縮詞和黏著詞等特點,現有的藏文分詞系統不能達到很好的分詞效果。其次,VOLT本身是根據句子信息熵生成詞表(式(2)、式(5)),藏文進行分詞后會導致句子信息熵發生改變。

因此,本文對藏文采用直接BPE方式加VOLT技術生成詞表,中文仍使用分詞加BPE再加VOLT技術生成詞表。最后通過實驗對比所提方法是否有效。

3 實驗設計

3.1 語料庫的來源

本文所使用的實驗數據大部分來源于第十七屆全國機器翻譯大會(CCMT 2021)所提供的15萬句左右藏漢平行語句,還有一部分來源于實驗室收集到的3萬條語句,共18萬條平行語句。

3.2 數據預處理

首先利用規則的方法進行數據過濾,具體內容包括長度過濾、長度比限制、語種識別、去重。其次進行符號標準化,對數據中的字符表示或者大小寫等進行統一,具體包括全角轉半角、大小寫轉換和中文的簡繁體轉化等。最終得到清洗后的約17萬條語句的數據集,再采用隨機抽樣方法從中隨機選取1萬條語句的數據集劃分為驗證集和測試集(各5千條左右)。這樣做的目的是保證驗證集和測試集的隨機性以及防止數據泄露。之后對剩余16萬條語句的數據集通過同義詞替換[22]的方式進行數據增強,得到約50萬條藏漢平行語句。其中基于同義詞替換的數據增強方式經過實驗證明對藏漢/漢藏翻譯效果都有所提升,因此本文中也采用該方法擴充語料。最后進行分詞,在本文中,漢文直接構建詞表或使用北大pkuseg[23]分詞,并在此基礎上使用BPE。藏文按照實驗需要,分別采用了TIP-LAS分詞[24]以及在TIP-LAS基礎上使用BPE,其中TIP-LAS是李亞超等人[24]提出的基于條件隨機場模型的藏文分詞系統,該系統首先需要訓練一個分詞模型,再對需要分詞的藏文語料應用分詞模型進行切分,詞與詞之間以空格作為分隔符。其中,藏文分詞后使用BPE方式與漢文相同,都是通過先學習詞表再對語料進行應用的方式進行,本文所使用的BPE開源地址為https://github.com/rsennrich/subword-nmt。

3.3 模型架構與參數設置

本文使用近年來神經機器翻譯方法中主流的編碼器-解碼器(Encoder-Decoder)框架,統一采用百度飛漿開源的PaddleNLP中完全基于自注意力機制的Transformer-big模型訓練。模型有16層編碼器和解碼器,每個輸出大小為1024個隱藏單元,使用16個注意頭和正弦位置嵌入,最后前饋網絡中隱藏層大小為4096。其中Transformer-big的網絡參數與文獻[25]中的參數設置保持一致,解碼時使用束搜索算法[26]來生成翻譯的目標語句,beamsize設置為5。優化策略使用Adam優化器[27]。Dropout參數值設置為0.1,以防止過擬合。所有實驗均在Ubuntu操作系統下使用RTX 2080Ti顯卡完成。

本文使用BLEU-4[28]值作為評測指標,其采用n-gram匹配的方式來評定翻譯結果與參考譯文之間的相似度,即機器翻譯的結果越接近人工參考譯文就認定它的質量越高。n-gram是指n個連續單詞組成的單元,n越大表示評價時考慮的匹配片段越大,比如本文所使用的BLEU-4值就代表4-gram。BLEU值計算公式為:

(6)

公式(6)中BP代表長度懲罰因子,避免短句子得到更高的值。Pn表示修正后的n-gram精度得分,Wn表示權重值。

3.4 總體框架介紹

本文主要研究2種藏漢詞表改進方法在藏漢雙向翻譯上的改進效果,本文方法的總體框架如圖2所示。其中詞表拼接和VOLT部分是本文重點,將在第四章詞表改進實驗結果與分析中詳細展開說明。

圖2 總體框架流程圖

3.5 基線實驗的選擇

為了方便后續實驗對比,分別對分詞后直接構建詞表、分詞后采用BPE以及直接使用BPE這3種傳統藏文詞表構建方法在藏漢和漢藏上進行實驗對比,BPE參數統一設置為32 k,從中選擇最優作為基線實驗,實驗結果和詞表大小分別如表2和表3所示。

表2 傳統藏文詞表構建方法實驗效果BLEU值對比

表3 傳統藏文詞表構建方法詞表大小對比 單位:個

由表2可知直接構建方法效果最差,并且詞表規模也過于龐大,不利于訓練。分詞后采用BPE效果最佳。表3表明直接使用BPE可以在一定程度上縮小藏文詞表規模。詞表規模越小,詞表中每個單詞所代表的語義更少且易于區分,出現稀有token的概率也會更低。同時訓練和預測時間也會減少,有利于訓練。這是由于藏文本身語言特點所決定的,但是本文既希望達到最佳實驗效果,又希望能減小詞表大小,從而有利于訓練。因此本文以分詞后采用BPE作為基線實驗,分別從詞表拼接和VOLT這2個方面進行實驗對比,研究最佳詞匯表的生成。

4 詞表改進實驗結果與分析

4.1 詞表拼接

對于詞表拼接,詞頻閾值每次迭代大小設置為100。實驗表明,當詞頻閾值為4300時,效果提升最明顯。表4展示了當詞頻閾值為100、1000、5000、4300(最佳)時的實驗效果,對應的詞表大小如表5所示。

表4 不同閾值大小的實驗效果BLEU值對比

表5 不同閾值大小的詞表規模對比 單位:個

通過表4可以看出,采用高頻正常、低頻BPE拼接詞表的思想是有效果的,采用最佳詞頻閾值相比基線實驗分別在藏漢/漢藏上提升了0.28/0.32個BLEU值。同時表5中對應的詞表規模也小于基線實驗,與表3中藏文只使用BPE方式生成的詞表規模相近,不僅縮小了藏漢詞表規模而且提升了藏漢雙向翻譯性能。由于模型訓練所產生的開銷較大,無法將迭代閾值位數繼續縮小,因此很難找到個、十位數的最佳閾值。

4.2 VOLT

對于VOLT,實驗參數與論文中保持一致。本節分別對藏文傳統分詞策略(分詞+BPE)以及本文專門針對藏文使用VOLT所提的方法(直接BPE)在應用VOLT前后進行實驗對比。實驗結果如表6所示,2種方法生成詞表規模如表7所示。

表6 2種方法使用VOLT前后效果BLEU值對比

表7 2種方法使用VOLT前后生成詞表規模對比 單位:個

表6和表7的實驗效果驗證了本文方法的有效性。觀察表6最后2行,藏文直接BPE方式相比于分詞加BPE,在藏漢和漢藏上分別提升了0.09/0.11個BLEU值。觀察2種方法在使用VOLT前后效果提升程度,分詞加BPE方式在使用VOLT后在藏漢上提升了0.46個BLEU值,在漢藏上提升了0.43個BLEU值。直接BPE方式在使用VOLT后在藏漢上提升了0.98個BLEU值,在漢藏上提升了1.18個BLEU值。前者提升效果只有后者一半。觀察2種方法在使用VOLT前后詞表大小,因為漢文生成詞表方式未變,所以二者漢文詞表規模相同,并且相比基線詞表規模降低了45.8%。而在藏文詞表規模上,相比使用VOLT前,直接BPE詞表規模降低了73.3%,分詞加BPE詞表規模降低了70.2%。

實驗結果表明,使用VOLT可以在極大縮小詞表規模的同時提升翻譯效果。雖然直接BPE相比分詞加BPE方式提升幅度較小,平均只有0.1個BLEU值,但直接BPE在使用VOLT后提升幅度是分詞加BPE的一倍多。這主要是由于藏文句子信息熵改變導致的,對于分詞后使用BPE,句子本身經過分詞后,信息熵就已經發生了變化,而使用VOLT生成詞表主要依據之一就是信息熵,因此導致直接BPE方式提升幅度較大。其次是由于目前藏文的分詞系統并不如漢文的分詞系統完善,對藏文虛詞和實詞的劃分并沒有達到較高的精確度,導致去掉分詞步驟后,經過VOLT生成的詞表反而效果更好。對于詞表規模,表3和表7表明藏文語言特點決定了直接使用BPE方式生成的子詞粒度更小,從而導致詞表規模更小,而在使用VOLT后將這一差距進一步擴大。

5 結束語

本文選取在神經機器翻譯中經典的Transformer-big模型,通過改進字節對編碼和VOLT的方式探索藏文最佳詞匯表,最終分別通過拼接詞表和根據藏文自身語言特點合理運用VOLT提升了藏漢雙向翻譯性能。筆者希望本文能對其他低資源語種翻譯有所啟發。下一步筆者將計劃構建相對應的藏漢人名、地名詞表,以此提高藏漢翻譯中對專有名詞的識別率。

猜你喜歡
詞表藏文詞頻
面向分級閱讀的分級詞表研制*
基于詞頻比的改進Jaccard系數文本相似度計算
敦煌本藏文算書九九表再探
A Chinese-English List of the Sports Programmes in Winter Olympics 冬奧會項目名稱漢英對照詞表
西藏大批珍貴藏文古籍實現“云閱讀”
黑水城和額濟納出土藏文文獻簡介
詞匯習得中的詞頻效應研究
基于條件隨機場的藏文人名識別研究
詞頻,一部隱秘的歷史
漢語音節累積詞頻對同音字聽覺詞匯表征的激活作用*
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合