統計法機器翻譯

**統計機器翻譯**（英語：**S**tatistical **M**achine **T**ranslation，簡寫為 **SMT**）是機器翻譯的一種，也是目前非限定領域機器翻譯中效能較佳的一種方法。統計機器翻譯的基本思想是通過對大量的平行語料進行統計分析，構建統計翻譯模型，進而使用此模型進行翻譯。從早期基於詞的機器翻譯已經過渡到基於短語的翻譯，並正在融合句法資訊，以進一步提高翻譯的精確性。

2016 年前 Google 翻譯的大部分語言對採用的都是統計機器翻譯的方法。而 Google 亦在此本領域保持領先地位，在美國國家標準局組織的機器翻譯評測中遙遙領先。但 Google 翻譯在 2016 年 11 月開始使用神經機器翻譯作為主要翻譯系統，並開發了 Google 神經機器翻譯系統。此外，常用的基於統計法機器翻譯的系統還包括 Bing 翻譯和百度翻譯等。

統計機器翻譯的首要任務是為語言的產生構造某種合理的統計模型，並在此統計模型基礎上，定義要估計的模型參數，並設計參數估計演算法。早期的基於詞的統計機器翻譯採用的是噪聲信道模型，採用最大似然準則進行無監督訓練，而近年來常用的基於短語的統計機器翻譯則採用區分性訓練方法，一般來說需要參考語料進行有監督訓練。

## 歷史

早在 1949 年，瓦倫・韋弗就基於香農的資訊理論提出了統計機器翻譯的基本思想。而最早提出可行的統計機器翻譯模型的是 IBM 研究院的研究人員。他們在著名的文章《統計機器翻譯的數學理論：參數估計》中提出了由簡及繁的五種詞到詞的統計模型，分別被稱為 IBM Model 1 到 IBM Model 5。這五種模型均為噪聲信道模型，而其中所提出的參數估計演算法均基於最大似然估計。然而由於計算條件的限制和平行語料庫的缺乏，尚無法實現基於大規模資料的計算。其後，由 Stephan Vogel 提出了基於隱馬爾科夫模型的統計模型也受到重視，被認為可以較好的替代 IBM Model 2.

在此文發表後 6 年，即 1999 年，約翰・霍普金斯大學夏季討論班集中了一批研究人員實現了 GIZA 軟體套件，實現了 IBM Model 1 到 IBM Model 5。Franz-Joseph Och 在隨後對 GIZA 進行了最佳化，加快了訓練速度，特別是 IBM Model 3 到 5 的訓練。同時他還提出了更加複雜的 Model 6。Och 發布的軟體套件被命名為 GIZA++，直到現在，該軟體套件還是絕大部分機器翻譯系統的基石。目前，針對大規模語料的訓練，已有 GIZA++ 的若干並列化版本存在。

基於詞的統計機器翻譯雖然開闢了統計機器翻譯這條道路，其效能卻由於建模單元過小而受到極大限制。同時，產生性（generative）模型使得模型適應性較差。因此，許多研究者開始轉向基於短語的翻譯方法。Franz-Josef Och 再次憑藉其出色的研究，推動了統計機器翻譯技術的發展，他提出的基於最大熵模型的區分性訓練方法使得統計機器翻譯的效能極大提高並在此後數年間遠遠超過其他方法。更進一步的，Och 又提出修改最大熵方法的最佳化準則，直接針對客觀評價標準進行最佳化，從而產生了今天廣泛採用的最小錯誤訓練方法（Minimum Error Rate Training）。

另一件促進統計機器翻譯進一步發展的重要發明是翻譯結果自動評價方法的出現，這些方法為翻譯結果提供了客觀的評價標準，從而避免了人工評價的繁瑣與昂貴。這其中最為重要的評價是 BLEU 評價指標。雖然許多研究者抱怨 BLEU 與人工評價相差甚遠，並且對於一些小的錯誤極其敏感，絕大部分研究者仍然使用 BLEU 作為評價其研究結果的首要（如果不是唯一）的標準。 
於 2012 年提出的 LEPOR 評價指標在權威的計算語言學會統計機器翻譯 Workshop（ACL-WMT）的八個語言對語料上的實驗得到了比 BLEU 與人的評價更高相關性的分數。

Moses 是目前維護較好的開源機器翻譯軟體，由愛丁堡大學研究人員組織開發。其發布使得以往繁瑣複雜的處理簡單化。

## 模型

### 噪聲信道模型

噪聲信道模型假定，源語言中的句子 $f$ （信宿）是由目標語言中的句子 $e$ （信源）經過含有噪聲的信道編碼後得到的。那麼，如果已知了信宿 $f$ 和信道的性質，我們可以得到信源產生信宿的概率，即 $p(e|f)$ 。而尋找最佳的翻譯結果 ${\tilde {e}}$ 也就等同於尋找：

　
: ${\tilde {e}}=\arg \max _{e\in e^{*}}p(e|f)$

利用貝葉斯公式，並考慮對給定 $f$ ， $p(f)$ 為常數，上式即等同於

　
: ${\tilde {e}}=\arg \max _{e\in e^{*}}p(e|f)=\arg \max _{e\in e^{*}}{\frac {p(f|e)p(e)}{p(f)}}=\arg \max _{e\in e^{*}}p(f|e)p(e)$

由此，我們得到了兩部分概率：

 1. $p(f|e)$ ，指給定信源，觀察到訊號的概率。在此稱為_翻譯模型_。
2. $p(e)$ ，信源發生的概率。在此稱為_語言模型_

可以這樣理解翻譯模型與語言模型，翻譯模型是一種語言到另一種語言的詞彙間的對應關係，而語言模型則體現了某種語言本身的性質。翻譯模型保證翻譯的意義，而語言模型保證翻譯的流暢。從中國對翻譯的傳統要求「信達雅」三點上看，翻譯模型體現了信與達，而雅則在語言模型中得到反映。

原則上任何語言模型均可以應用到上述公式中，因此以下討論集中於翻譯模型。在 IBM 提出的模型中，翻譯概率被定義為：

　
: $p(f|e)=p(f,a|e)$

其中的 $a$ 被定義為隱含變數 —— 詞對齊（Word Alignment），所謂詞對齊，簡而言之就是知道源語言句子中某個詞是由目標語言中哪個詞翻譯而來的。例如右圖中，一個詞可以被翻譯為一個或多個詞，甚至不被翻譯。於是，取得翻譯概率的問題轉化為詞對齊問題。IBM 系列模型及 HMM, Model 6 都是詞對齊的參數化模型。它們之間的區別在於模型參數的數量，類型各不相同。例如 IBM Model 1，唯一的參數是詞翻譯概率，與詞在句子中的位置無關。也就是說：

　
: $p(f|e)=\prod _{(i,j)\in a}p(f_{i},e_{j})$

其中 $(i,j)$ 是詞對齊中的一條連接，表示源語言中的第 $i$ 個詞翻譯到目標語言中的第 $j$ 個詞。注意這裡的翻譯概率是詞之間而非位置之間的。IBM Model 2 的參數中增加了詞在句子中的位置，公式為：

　
: $p(f|e)=\prod _{(i,j)\in a}p(f_{i},e_{j})p(i,j,I,J)$

其中 $I,J$ 分別為源、目標語言的句子長度。

HMM 模型將 IBM Model 2 中的絕對位置更改為相對位置，即相對上一個詞連接的位置，而 IBM Model 3,4,5 及 Model 6 引入了「Fertility Model」，代表一個詞翻譯為若干詞的概率。

在參數估計方面，一般採用最大似然準則進行無監督訓練，對於大量的「平行語料」，亦即一些互為翻譯的句子 $(f_{s},e_{s})$

　
: ${\tilde {\theta }}=\arg \max _{\theta }\prod _{s=1}^{S}\sum _{a}p_{\theta }(f_{s},a|e_{s})$

由於並沒有直接的符號化最佳解，實踐中採用 EM 演算法。首先，通過現有模型，對每對句子估計 $(f_{s},e_{s})$ 全部可能的（或部分最可能的）詞對齊的概率，統計所有參數值發生的加權頻次，最後進行歸一化。對於 IBM Model 1,2，由於不需要 Fertility Model，有簡化公式可獲得全部可能詞對齊的統計量，而對於其他模型，遍歷所有詞對齊是 NP 難的。因此，只能採取折衷的辦法。首先，定義 Viterbi 對齊為當前模型參數 $\theta $ 下，概率最大的詞對齊：

　
: ${\tilde {a}}=\arg \max _{a}p_{\theta }(f,a|e)$

在取得了 Viterbi 對齊後，可以只統計該對齊結果的相關統計量，亦可以根據該對齊，做少許修改後（即尋找「臨近」的對齊）後再計算統計量。IBM 3,4,5 及 Model 6 都是採用這種方法。

目前直接採用噪聲信道模型進行完整機器翻譯的系統並不多見，然而其副產品 —— 詞對齊卻成為了各種統計機器翻譯系統的基石。時至今日，大部分系統仍然首先使用 GIZA++ 對大量的平行語料進行詞對齊。由於所面對的平行語料越來越多，對速度的關注使得 MGIZA++，PGIZA++ 等並列化實現得到應用。噪聲信道模型和詞對齊仍然是研究的熱點，雖然對於印歐語系諸語言，GIZA++ 的對齊錯誤率已經很低，在阿拉伯語，中文等語言與印歐語系語言的對齊中錯誤率仍然很高。特別是中文，錯誤率常常達到 30% 以上。所謂九層之台，起於累土，缺乏精確的詞對齊是中文機器翻譯遠遠落後於其他語言的原因。雖然目前出現了一些區分性詞對齊技術，無監督對齊仍然是其中的重要組成部分。

### 判別式模型

判別式模型噪聲信道模型（產生式模型）不同，它不應用貝葉斯公式，而是直接對條件概率 $p(e|f)$ 建模。

#### 特徵函式

在這個框架下， $M$ 個特徵函式

　
: $h_{m}(e,f),m=1,\cdots ,M$

通過參數化公式

　
: $P(e|f)={\frac {\exp[\sum _{m=1}^{M}\lambda _{m}h_{m}(e,f)]}{\sum _{e^{*}}\exp[\sum _{m=1}^{M}\lambda _{m}h_{m}(e,f)]}}$

其中 $\lambda _{m},m=1,\cdots ,M$ 是每個特徵函式的權重，也是模型所要估計的參數集，記為 $\Lambda $ 。基於這個模型，取得給定源語言句子 $f$ ，最佳翻譯 ${\tilde {e}}$ 的決策準則為：

　
: ${\tilde {e}}=\arg \max _{e^{*}}\left\{p(e^{*},f)\right\}=\arg \max _{e^{*}}\left\{\sum _{m=1}^{M}\lambda _{m}h_{m}(e^{*},f)\right\}$

簡而言之，就是找到使得特徵函式最大的解。

原則上，任何特徵函式都可以被置於此框架下，噪聲信道模型中的翻譯模型、語言模型都可以作為特徵函式。並且，在產生式模型中無法使用的「反向翻譯模型」，即 $p(f,e)$ 也可以很容易的被引入這個框架中。目前基於短語的翻譯系統中，最常用的特徵函式包括

* 短語翻譯概率
* 詞翻譯概率（短語中每個詞的翻譯概率）
* 反向短語翻譯概率
* 反向詞翻譯概率
* 語言模型

而一些基於句法的特徵也在被加入。

#### 最佳化準則

最佳化準則指的是給定訓練語料，如何估計模型參數 $\Lambda $ 。一般來說，訓練模型參數需要一系列已翻譯的文字，每個源語言句子 $f_{s}$ 擁有 $R_{s}$ 個參考翻譯 $e_{s_{i}}$ 。

早期，區分性訓練被置於最大熵準則下，即：

　
: ${\tilde {\lambda }}=\arg \max _{\lambda ^{*}}\left\{\sum _{s}{\frac {1}{R_{s}}}\sum _{r=1}^{R_{s}}\log p_{\lambda ^{*}}(e_{s,r}|f_{s})\right\}$

這一準則簡單快速且由於最佳化目標是凸的，收斂速度快。然而，一個極大的問題是，「資訊熵」本身和翻譯品質並無聯絡，最佳化資訊熵以期獲得較好的翻譯結果在邏輯上較難說明。藉助客觀評價準則如 BLEU，希望直接針對這些客觀準則進行最佳化能夠提升翻譯效能。由此而產生最小化錯誤率訓練演算法。通過最佳化系統參數，使得翻譯系統在客觀評價準則上的得分越來越高，同時，不斷改進客觀評價準則，使得客觀評價準則與主觀評價準則越來越接近是目前統計機器翻譯的兩條主線。

使用這些客觀評價準則作為最佳化目標，即：

　
: ${\tilde {\lambda }}=\arg \max _{\lambda ^{*}}\left\{\sum _{s}{\frac {1}{R_{s}}}\sum _{r=1}^{R_{s}}E(e_{s,r},f_{s})\right\}$

的一個主要問題是，無法保證收斂性。並且由於無法得到誤差函式（即客觀評價準則） $E(\cdot ,\cdot )$ 的導數，限制了可使用的最佳化方法。目前常用的方法多為改進的 Powell 法，一般來說訓練時間頗長且無法針對大量資料進行訓練。

#### 調序模型

許多語言對的語序是有很大差別的。在前述詞對齊模型中，包含有詞調序模型，在區分性訓練中也需要較好的調序模型。調序模型可以是基於位置，也就是描述兩種語言每個句子不同位置的短語的調序概率，也可以是基於短語本身，例如 Moses 中的調序模型即是基於短語本身，描述在給定當前短語對條件下，其前後短語對是否互換位置。由於現實中的調序模型遠非「互換位置」這麼簡單，而是牽涉句法知識，調序的效果仍然不佳。目前重定位問題還是機器翻譯中亟待解決的問題。

### 解碼

無論採用哪種模型，在進行實際翻譯過程中，都需要進行解碼。所謂解碼，即是指給定模型參數和待翻譯句子，搜尋使概率最大（或代價最小）的翻譯結果的過程。同許多序列標註問題，例如中文分詞問題類似，解碼搜尋可以採用分支定界或啟發式深度優先搜尋（A\*）方法。一般來說，搜尋演算法首先構造搜尋網路，也就是將待翻譯句子與可能的翻譯結果融合為一個加權有限狀態轉換機（Weighted Finite State Transducer），而後在此網路上搜尋最佳路徑。

## 基本流程

統計機器翻譯同大多數的機器學習方法相類似，有訓練及解碼兩個階段，其中訓練階段的目標是獲得模型參數，而解碼階段的目標則是利用所估計的參數和給定的最佳化目標，取得待翻譯語句的最佳翻譯結果。對於基於短語的統計機器翻譯來說，「訓練」階段較難界定，嚴格來說，只有最小錯誤率訓練一個階段可稱為訓練。但是一般來說，詞對齊和短語抽取階段也被歸為訓練階段。

### 語料取得及預處理

語料預處理階段，需要搜集或下載平行語料，所謂平行語料，指的是語料中每一行的兩個句子互為翻譯。目前網路上有大量可供下載的平行語料。搜尋適合目標領域（如醫療、新聞等）的語料是提高特定領域統計機器翻譯系統效能的重要方法。

在取得語料後，需要進行一定得文字規格化處理，例如對英語進行詞素切分，例如將's 獨立為一個詞，將與詞相連的符號隔離開等。而對中文則需要進行分詞。同是，儘可能過濾一些包含錯誤編碼的句子，過長的句子或長度不匹配（相差過大）的句子。

取得的語料可分為三部分，第一部分用於詞對齊及短語抽取，第二部分用於最小錯誤率訓練，第三部分則用於系統評價。第二第三部分的資料中，每個源語言句子最好能有多條參考翻譯。

### 詞對齊

首先，使用 GIZA++ 對平行語料進行對齊。由於 GIZA++ 是「單向」的詞對齊，故而對齊應當進行兩次，一次從源到目標，第二次從目標到源。一般來說，GIZA++ 需要依次進行 IBM Model 1, HMM 及 IBM Model 3,4 的對齊，因 IBM Model 2 對齊效果不佳，而 IBM Model 5 耗時過長且對效能沒有較大貢獻。根據平行語料的大小不同及所設定的迭代次數多少，訓練時間可能很長。一個參考資料為，1 千萬句中文 - 英文平行語料（約 3 億詞）在 Intel Xeon 2.4GHz 伺服器上執行時間約為 6 天。如果耗時過長可考慮使用 MGIZA++ 和 PGIZA++ 進行並列對齊（PGIZA++ 支援分散式對齊）。

其後，對兩個方向的 GIZA++ 對齊結果進行合併，供短語抽取之用。

### 短語抽取

短語抽取的基本準則為，兩個短語之間有至少一個詞對有連接，且沒有任何詞連接於短語外的詞。Moses 軟體套件包含短語抽取程式，抽取結果將占有大量的磁碟空間。建議若平行語料大小達到 1 千萬句，短語最大長度大於等於 7，至少應準備 500GB 的儲存空間。

### 短語特徵準備

在短語抽取完畢後，可進行短語特徵提取，即計算短語翻譯概率及短語的詞翻譯概率。該需要對抽取的所有短語進行兩次排序，一般來說，中等規模（百萬句語料）的系統亦需要進行外部排序，磁碟讀寫速度對處理時間影響極大。建議在高速磁碟上執行。參考執行時間及磁碟空間消耗：前述千萬句語料庫，限制短語長度 7，外部排序執行於 SCSI Raid 0+1 磁碟陣列，執行時間 3 日 11 小時，峰值磁碟空間消耗 813GB。

### 語言模型訓練

語言模型訓練請參考語言模型。在區分性訓練框架下，允許使用多個語言模型，因此，使用由大語料訓練得到的無限領域語言模型配合領域相關的語言模型能夠得到最好的效果。

### 最小化錯誤率訓練

最小化錯誤率訓練通過在所準備的第二部分資料 —— 最佳化集（Tuning Set）上最佳化特徵權重 $\Lambda $ ，使得給定的最佳化準則最佳化。一般常見的最佳化準則包括資訊熵、BLEU、TER 等。這一階段需要使用解碼器對最佳化集進行多次解碼，每次解碼產生 N 個得分最高的結果，並調整特徵權重。當權重被調整時，N 個結果的排序也會發生變化，而得分最高者，即解碼結果，將被用於計算 BLEU 得分或 TER。當得到一組新的權重，使得整個最佳化集的得分得到改進後，將重新進行下一輪解碼。如此往復直至不能觀察到新的改進。

根據選取的 N 值的不同，最佳化集的大小，模型大小及解碼器速度，訓練時間可能需要數小時或數日。

### 解碼及系統評價

使用經最小化錯誤率訓練得到的權重，即可進行解碼。一般此時即可在測試集上進行系統效能評價。在客觀評價基礎上，有一些有條件的機構還常常進行主觀評價。

## 難點及研究方向

統計機器翻譯的難點主要在於模型中所包含句法、語意成分較低，因而在處理句法差別較大的語言對，例如中文 - 英文時將遇到問題。有時翻譯結果雖然「詞詞都對」卻無法被人閱讀。可以說目前主流（如 Moses）統計機器翻譯仍然處於機器翻譯金字塔的底層。目前大量的研究集中於將句法知識引入框架中，例如使用依存文法限制翻譯路徑，等。

同時，統計機器翻譯依賴巨大的語料庫，隨著語料庫資源越來越豐富和演算法的日趨複雜，處理這些語料需要越來越強大的計算能力。長期以來，Google 在機器翻譯領域的領先地位就得益於其強大的分散式計算能力。隨著分散式計算的普及，將機器翻譯相關技術並列化將是另一研究熱點。

最後，機器翻譯依賴客觀評價準則，而客觀評價準則最終要與主觀評價準則掛鈎。每年各類機器翻譯相關的會議上都會有若干關於客觀評價準則的研究發表，總的來說，評價翻譯的優劣本身就是一個人工智慧問題，其難度絕不在機器翻譯之下。

## 參考文獻

## 外部連結

* Statistical Machine Translation （頁面存檔備份，存於網際網路檔案館）— 研究介紹、會議、語料及軟體列表
* GIZA++: 開源詞對齊軟體 （頁面存檔備份，存於網際網路檔案館）
* MGIZA++/PGIZA++: GIZA++ 的並列化版本 （頁面存檔備份，存於網際網路檔案館）
* Moses: 開源機器翻譯軟體 （頁面存檔備份，存於網際網路檔案館）
* Annotated list of statistical natural language processing resources （頁面存檔備份，存於網際網路檔案館）