(57)【要約】【課題】より精度の高い機械翻訳が可能となるようなシステムパラメータを得ることができるようにする。【解決手段】解探索部２４によって、チューニング文集合から、パラメータ集合ｗを用いて算出される翻訳スコアに基づいて、翻訳元言語の入力文の各々について、ｋ−ｂｅｓｔ翻訳集合を選択し、オラクル選択部２５によって、正解チューニング文集合に基づいて、ｋ−ｂｅｓｔ翻訳集合から、ｓｕｂＢＬＥＵスコアが最大となるオラクル文集合を選択する。パラメータ更新部２６によって、ｋ−ｂｅｓｔ翻訳集合とオラクル文集合とに基づいて、オラクル文集合に含まれる翻訳候補文の各々に対する翻訳スコアが高くなるように、パラメータ集合ｗを更新する。【選択図】図２
2014078138.tif 000002
【特許請求の範囲】
【請求項１】
翻訳元言語の複数の文の各々を、翻訳モデルを用いて翻訳先言語の複数の翻訳候補文に翻訳する翻訳処理システムに設定されるシステムパラメータを最適化するシステムパラメータ最適化装置であって、
前記翻訳処理システムによって翻訳された前記翻訳先言語の複数の翻訳候補文の各々について前記システムパラメータを用いて算出される翻訳スコアに基づいて、前記翻訳元言語の複数の文の各々について、前記文に対応する前記翻訳先言語の上位所定個の翻訳候補文を選択する翻訳候補選択手段と、
前記翻訳元言語の複数の文について予め用意された前記翻訳先言語の複数の正解翻訳文に基づいて、前記翻訳候補選択手段によって前記翻訳元言語の複数の文の各々について選択された前記翻訳先言語の上位所定個の翻訳候補文から、前記翻訳元言語の複数の文の各々に対して選択される前記翻訳候補文の組み合わせの各々に対して、翻訳評価スコアを算出し、前記算出された翻訳評価スコアが最大となる前記翻訳先言語の翻訳候補文の組み合わせを選択する組み合わせ選択手段と、
前記翻訳候補選択手段によって前記翻訳元言語の複数の文の各々について選択された前記翻訳先言語の上位所定個の翻訳候補文と、前記組み合わせ選択手段によって選択された前記翻訳先言語の翻訳候補文の組み合わせとに基づいて、前記翻訳先言語の翻訳候補文の組み合わせに含まれる前記翻訳候補文の各々に対する前記翻訳スコアが高くなるように、前記システムパラメータを推定するパラメータ推定手段と、
を含むシステムパラメータ最適化装置。
【請求項２】
前記翻訳評価スコアを、以下の式で計算される劣モジュラ関数ｓｕｂＢＬＥＵとした請求項１記載のシステムパラメータ最適化装置。
【数１】
2014078138.tif 000015
Ｄは、前記翻訳先言語の対応する翻訳候補文と正解翻訳文とのペアの集合Ｄ＝｛（ｅs，Ｒs）｝s=1Sであり、ｅsは、前記翻訳先言語の翻訳候補文の組み合わせに含まれるｓ番目の文に対する翻訳候補文であり、Ｒsは、前記ｓ番目の文に対する前記正解翻訳文の集合であり、Ｇn（ｅ）は、前記翻訳候補文ｅに含まれるｎグラムの集合であり、｜Ｄ｜は、前記翻訳元言語の文の数であり、ｒ（Ｒ）は、前記正解翻訳文の集合Ｒの長さであり、ｃ（ｇn）は、翻訳候補文ｅにおけるｎグラムｇnの出現頻度であり、ｍａｘe∈Rｃ（ｇn，ｅ）は、前記正解翻訳文の集合に含まれる前記正解翻訳文ｅにおけるｎグラムｇnの出現頻度の最大値である。
【請求項３】
前記パラメータ推定手段は、前記翻訳元言語の複数の文の各々について選択された前記翻訳先言語の上位所定個の翻訳候補文のうちの、前記翻訳スコアが最大となる前記翻訳候補文の組み合わせに対して算出される前記翻訳評価スコアと、前記組み合わせ選択手段によって選択された前記翻訳先言語の翻訳候補文の組み合わせに対する前記翻訳評価スコアとの差分、及び前記翻訳スコアが最大となる前記翻訳候補文の組み合わせに含まれる前記翻訳候補文の各々に対する前記翻訳スコアと前記組み合わせ選択手段によって選択された前記翻訳先言語の翻訳候補文の組み合わせに含まれる前記翻訳候補文の各々に対する前記翻訳スコアとの差分を用いて表される目的関数を最小化するように前記システムパラメータを推定する請求項１又は２記載のシステムパラメータ最適化装置。
【請求項４】
予め定められた反復終了条件を満たすまで、前記翻訳候補選択手段による選択、前記組み合わせ選択手段による選択、及び前記パラメータ推定手段による推定を繰り返し行う反復処理手段を更に含む請求項１〜請求項３の何れか１項記載のシステムパラメータ最適化装置。
【請求項５】
翻訳元言語の複数の文の各々を、翻訳モデルを用いて翻訳先言語の複数の翻訳候補文に翻訳する翻訳処理システムに設定されるシステムパラメータを最適化するシステムパラメータ最適化装置におけるシステムパラメータ最適化方法であって、
翻訳候補選択手段によって、前記翻訳処理システムによって翻訳された前記翻訳先言語の複数の翻訳候補文の各々について前記システムパラメータを用いて算出される翻訳スコアに基づいて、前記翻訳元言語の複数の文の各々について、前記文に対応する前記翻訳先言語の上位所定個の翻訳候補文を選択し、
組み合わせ選択手段によって、前記翻訳元言語の複数の文について予め用意された前記翻訳先言語の複数の正解翻訳文に基づいて、前記翻訳候補選択手段によって前記翻訳元言語の複数の文の各々について選択された前記翻訳先言語の上位所定個の翻訳候補文から、前記翻訳元言語の複数の文の各々に対して選択される前記翻訳候補文の組み合わせの各々に対して、翻訳評価スコアを算出し、前記算出された翻訳評価スコアが最大となる前記翻訳先言語の翻訳候補文の組み合わせを選択し、
パラメータ推定手段によって、前記翻訳候補選択手段によって前記翻訳元言語の複数の文の各々について選択された前記翻訳先言語の上位所定個の翻訳候補文と、前記組み合わせ選択手段によって選択された前記翻訳先言語の翻訳候補文の組み合わせとに基づいて、前記翻訳先言語の翻訳候補文の組み合わせに含まれる前記翻訳候補文の各々に対する前記翻訳スコアが高くなるように、前記システムパラメータを推定する、
システムパラメータ最適化方法。
【請求項６】
前記翻訳評価スコアを、以下の式で計算される劣モジュラ関数ｓｕｂＢＬＥＵとした請求項５記載のシステムパラメータ最適化方法。
【数２】
2014078138.tif 000016
Ｄは、前記翻訳先言語の対応する翻訳候補文と正解翻訳文とのペアの集合Ｄ＝｛（ｅs，Ｒs）｝s=1Sであり、ｅsは、前記翻訳先言語の翻訳候補文の組み合わせに含まれるｓ番目の文に対する翻訳候補文であり、Ｒsは、前記ｓ番目の文に対する前記正解翻訳文の集合であり、Ｇn（ｅ）は、前記翻訳候補文ｅに含まれるｎグラムの集合であり、｜Ｄ｜は、前記翻訳元言語の文の数であり、ｒ（Ｒ）は、前記正解翻訳文の集合Ｒの長さであり、ｃ（ｇn）は、翻訳候補文ｅにおけるｎグラムｇnの出現頻度であり、ｍａｘe∈Rｃ（ｇn，ｅ）は、前記正解翻訳文の集合に含まれる前記正解翻訳文ｅにおけるｎグラムｇnの出現頻度の最大値である。
【請求項７】
前記パラメータ推定手段によって前記システムパラメータを推定するステップは、前記翻訳元言語の複数の文の各々について選択された前記翻訳先言語の上位所定個の翻訳候補文のうちの、前記翻訳スコアが最大となる前記翻訳候補文の組み合わせに対して算出される前記翻訳評価スコアと、前記組み合わせ選択手段によって選択された前記翻訳先言語の翻訳候補文の組み合わせに対する前記翻訳評価スコアとの差分、及び前記翻訳スコアが最大となる前記翻訳候補文の組み合わせに含まれる前記翻訳候補文の各々に対する前記翻訳スコアと前記組み合わせ選択手段によって選択された前記翻訳先言語の翻訳候補文の組み合わせに含まれる前記翻訳候補文の各々に対する前記翻訳スコアとの差分を用いて表される目的関数を最小化するように前記システムパラメータを推定する請求項５又は６記載のシステムパラメータ最適化方法。
【請求項８】
コンピュータを、請求項１〜請求項４の何れか１項記載のシステムパラメータ最適化装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムパラメータ最適化装置、方法、及びプログラムに係り、特に、翻訳処理システムに設定するシステムパラメータを最適化するシステムパラメータ最適化装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
機械翻訳システムのパラメータを自動的に決定する手法としてよく知られている非特許文献１に記載の手法について図７を用いて説明する．
【０００３】
機械翻訳システムは解探索部、パラメタ推定部、及び翻訳品質自動評価部から構成され、解探索部は、チューニング用の文集合が入力されると、翻訳文としてのもっともらしさを表す翻訳スコアP(e|f)をD個のコンポーネントが与えるスコアφｄ（ｅ, ｆ）（ｄ＝１, … , Ｄ）とパラメータw = {wd} d=1Dを用いて以下の（１）式で計算し、そのスコアの高い上位k個の翻訳(k-best翻訳集合)を出力する。
【０００４】
【数１】
2014078138.tif 000003
【０００５】
ただし、{φ１(e,f), … ,φＤ(e,f)}は、翻訳文と入力文のペア(e,f)に対して各コンポーネントが与える翻訳文としてのもっともらしさの推定値である。コンポーネントは、たとえば、言語モデル、単語または句翻訳モデル、語順選択モデルなどである。
【０００６】
翻訳品質自動評価部は、k-best翻訳集合と正解翻訳文集合を受け取り、k個の自動評価スコア、BLEUスコア(非特許文献２を参照)をパラメタ推定部へと渡す。パラメタ推定部はk個のBLEUスコアとk個の翻訳スコアを照合し、BLEUスコアが高い翻訳が高い翻訳スコアを獲得するようにパラメータwを修正する。
【０００７】
この手続きをBLEUスコアが収束するか指定された回数まで続ける。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】Franz Josef Och,“Minimum error rate training in statistical machine translation”,Proc of the 41stACL,pp. 160-167, (2003)
【非特許文献２】Kishore Papineni, Salim Roukos, Todd Ward, Wei-Jing Zhu,“BLEU: a method for autoamtic evaluation of machine translation”,Proc of the 40thACL,pp. 311-318, (2002)
【発明の概要】
【発明が解決しようとする課題】
【０００９】
機械翻訳システムは、チューニング用の文（チューニング文）に対して正解翻訳を出力することが困難であるため、システムが出力することのできない正解翻訳を再現しようとする従来の学習法そのものに問題がある。さらに，BLEUスコアに対する最適化手法は非凸関数の最適化という困難な最適化問題でもある。
【００１０】
本発明は、上記の事情を鑑みてなされたもので、より精度の高い機械翻訳が可能となるようなシステムパラメータを得ることができるシステムパラメータ最適化装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために本発明に係るシステムパラメータ最適化装置は、翻訳元言語の複数の文の各々を、翻訳モデルを用いて翻訳先言語の複数の翻訳候補文に翻訳する翻訳処理システムに設定されるシステムパラメータを最適化するシステムパラメータ最適化装置であって、前記翻訳処理システムによって翻訳された前記翻訳先言語の複数の翻訳候補文の各々について前記システムパラメータを用いて算出される翻訳スコアに基づいて、前記翻訳元言語の複数の文の各々について、前記文に対応する前記翻訳先言語の上位所定個の翻訳候補文を選択する翻訳候補選択手段と、前記翻訳元言語の複数の文について予め用意された前記翻訳先言語の複数の正解翻訳文に基づいて、前記翻訳候補選択手段によって前記翻訳元言語の複数の文の各々について選択された前記翻訳先言語の上位所定個の翻訳候補文から、前記翻訳元言語の複数の文の各々に対して選択される前記翻訳候補文の組み合わせの各々に対して、翻訳評価スコアを算出し、前記算出された翻訳評価スコアが最大となる前記翻訳先言語の翻訳候補文の組み合わせを選択する組み合わせ選択手段と、前記翻訳候補選択手段によって前記翻訳元言語の複数の文の各々について選択された前記翻訳先言語の上位所定個の翻訳候補文と、前記組み合わせ選択手段によって選択された前記翻訳先言語の翻訳候補文の組み合わせとに基づいて、前記翻訳先言語の翻訳候補文の組み合わせに含まれる前記翻訳候補文の各々に対する前記翻訳スコアが高くなるように、前記システムパラメータを推定するパラメータ推定手段と、を含んで構成されている。
【００１２】
本発明に係るシステムパラメータ最適化方法は、翻訳元言語の複数の文の各々を、翻訳モデルを用いて翻訳先言語の複数の翻訳候補文に翻訳する翻訳処理システムに設定されるシステムパラメータを最適化するシステムパラメータ最適化装置におけるシステムパラメータ最適化方法であって、翻訳候補選択手段によって、前記翻訳処理システムによって翻訳された前記翻訳先言語の複数の翻訳候補文の各々について前記システムパラメータを用いて算出される翻訳スコアに基づいて、前記翻訳元言語の複数の文の各々について、前記文に対応する前記翻訳先言語の上位所定個の翻訳候補文を選択し、組み合わせ選択手段によって、前記翻訳元言語の複数の文について予め用意された前記翻訳先言語の複数の正解翻訳文に基づいて、前記翻訳候補選択手段によって前記翻訳元言語の複数の文の各々について選択された前記翻訳先言語の上位所定個の翻訳候補文から、前記翻訳元言語の複数の文の各々に対して選択される前記翻訳候補文の組み合わせの各々に対して、翻訳評価スコアを算出し、前記算出された翻訳評価スコアが最大となる前記翻訳先言語の翻訳候補文の組み合わせを選択し、パラメータ推定手段によって、前記翻訳候補選択手段によって前記翻訳元言語の複数の文の各々について選択された前記翻訳先言語の上位所定個の翻訳候補文と、前記組み合わせ選択手段によって選択された前記翻訳先言語の翻訳候補文の組み合わせとに基づいて、前記翻訳先言語の翻訳候補文の組み合わせに含まれる前記翻訳候補文の各々に対する前記翻訳スコアが高くなるように、前記システムパラメータを推定する。
【００１３】
このように、システムパラメータを用いて算出される翻訳スコアに基づいて、翻訳元言語の複数の文の各々について、上位所定個の翻訳候補文を選択し、上位所定個の翻訳候補文から、正解翻訳文に基づいて算出される翻訳評価スコアが最大となる翻訳候補文の組み合わせを選択し、選択された翻訳候補文の組み合わせに含まれる翻訳候補文の各々に対する翻訳スコアが高くなるように、システムパラメータを推定することにより、より精度の高い機械翻訳が可能となるようなシステムパラメータを得ることができる。
【００１４】
本発明に係るプログラムは、コンピュータを、上記のシステムパラメータ最適化装置の各手段として機能させるためのプログラムである。
【発明の効果】
【００１５】
以上説明したように、本発明のシステムパラメータ最適化装置、方法、及びプログラムによれば、システムパラメータを用いて算出される翻訳スコアに基づいて、翻訳元言語の複数の文の各々について、上位所定個の翻訳候補文を選択し、上位所定個の翻訳候補文から、正解翻訳文に基づいて算出される翻訳評価スコアが最大となる翻訳候補文の組み合わせを選択し、選択された翻訳候補文の組み合わせに含まれる翻訳候補文の各々に対する翻訳スコアが高くなるように、システムパラメータを推定することにより、より精度の高い機械翻訳が可能となるようなシステムパラメータを得ることができる、という効果が得られる。
【図面の簡単な説明】
【００１６】
【図１】本発明の概要を説明するための図である。
【図２】本発明の実施の形態に係るシステムパラメータ最適化装置の構成を示す概略図である。
【図３】オラクル選択部の詳細な構成を示す図である。
【図４】本発明の実施の形態に係るシステムパラメータ最適化装置におけるパラメータ最適化処理ルーチンの内容を示すフローチャートである。
【図５】本発明の実施の形態に係るシステムパラメータ最適化装置におけるオラクル文集合を選択する処理ルーチンの内容を示すフローチャートである。
【図６】本発明の最適化手法を用いた場合における反復回数と目的関数の値及びｓｕｂＢＬＥＵの値との関係を示すグラフである。
【図７】従来技術におけるシステムパラメータ最適化装置を説明するための図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００１８】
＜発明の概要＞
本発明では、システムが出力することのできない正解翻訳を再現しようとするのではなく、システムが出力可能なk-best翻訳集合から自動評価スコアを最大とする文集合(オラクル)を獲得し、これを再現するようパラメータwを最適化する。こうすることで、パラメータwの最適化が容易になる。
【００１９】
しかし、自動評価尺度としてBLEUスコアを用いるとオラクルを獲得するために膨大な計算量を要するため、本実施の形態では、BLEUとよく似た性質を持つ劣モジュラ関数(subBLEU)を用いる。これにより、効率的な貪欲アルゴリズムを用いても最悪1-1/e(=0.6321)の下限でオラクルを求めることができる。
【００２０】
具体的な装置としては、図１に示すように、従来技術に対し、オラクル選択部を追加し、パラメータ更新部はオラクルに対しパラメータｗを最適化するように改良する。
【００２１】
＜システム構成＞
本発明の実施の形態に係るシステムパラメータ最適化装置１００は、翻訳元言語の各文に対する機械翻訳の結果として得られる翻訳先言語の翻訳候補文の集合（チューニング文集合）と、翻訳元言語の同じ各文に対する翻訳先言語の正解翻訳文の集合（正解チューニング文集合）とが入力され、機械翻訳システムのシステムパラメータを最適化する。このシステムパラメータ最適化装置１００は、ＣＰＵと、ＲＡＭと、後述するパラメータ最適化処理ルーチンを実行するためのプログラムを記憶したＲＯＭとを備えたコンピュータで構成され、機能的には次に示すように構成されている。図２に示すように、システムパラメータ最適化装置１００は、入力部１０と、演算部２０と、出力部３０とを備えている。
【００２２】
入力部１０は、入力された、翻訳元言語の各文に対する機械翻訳の結果として得られた翻訳先言語の複数の翻訳候補文からなるチューニング文集合を受け付ける。なお、本実施の形態では、翻訳元言語の１文に対する翻訳候補文として、複数の翻訳候補文が入力される。
【００２３】
また、入力部１０は、入力された、翻訳元言語の各文に対する正解翻訳として予め用意された翻訳先言語の複数の正解翻訳文からなる正解チューニング文集合を受け付ける。なお、本実施の形態では、翻訳元言語の１文に対する正解翻訳文として、複数の正解翻訳文が入力される。
【００２４】
演算部２０は、チューニング文集合記憶部２１、正解チューニング文集合記憶部２２、初期設定部２３、解探索部２４、オラクル選択部２５、パラメータ更新部２６、及び反復処理部２７を備えている。なお、解探索部２４が、翻訳候補選択手段の一例であり、オラクル選択部２５が、組み合わせ選択手段の一例であり、パラメータ更新部２６が、パラメータ推定手段の一例である。
【００２５】
チューニング文集合記憶部２１は、入力部１０により受け付けたチューニング文集合を記憶する。
【００２６】
正解チューニング文集合記憶部２２は、入力部１０により受け付けた正解チューニング文集合を記憶する。
【００２７】
初期設定部２３は、機械翻訳システムのシステムパラメータに初期値を設定する。当該機械翻訳システムは、システム出力の尤もらしさを求めるための複数のコンポーネントとして、言語モデル、単語または句翻訳モデル、及び並び替えモデルを用いて、翻訳元言語の入力文に対して、翻訳先言語の翻訳文を出力する。機械翻訳処理では、上記（１）式に示すように、各コンポーネントによる翻訳候補文の尤もらしさを示すスコアと、各コンポーネントに対する重み{ｗｄ}ｄ＝１Ｄとに基づいて、翻訳スコアＰが最大となる翻訳候補文を、翻訳文として決定する。各コンポーネントに対する重み{ｗｄ}ｄ＝１Ｄが、システムパラメータとしてのパラメータ集合である。
【００２８】
初期設定部２３は、具体的には、ノルム||w１||=1となるように、1回目の繰り返しにおけるパラメータ集合w１の各コンポーネントの値を等しく初期化する。
【００２９】
解探索部２４は、チューニング文集合記憶部２１から、チューニング文集合を読み込み、各チューニング文（翻訳候補文）に対し、Ｄ個のコンポーネントと現在のパラメータwtを用いて、上記（２）式に従って翻訳スコアを計算し、翻訳元言語の文ごとに、当該文に対応する複数の翻訳候補文の中から、翻訳スコアの高い上位k個の翻訳候補文(k-best翻訳集合)を求め、k-best翻訳集合Ktとして出力する。
【００３０】
オラクル選択部２５は、翻訳元言語の各文に対応して得られたk-best翻訳集合と、正解チューニング文集合記憶部２２から読み込んだ正解チューニング文集合とに基づいて、k-best翻訳集合Ktから翻訳評価スコアが最大となる翻訳候補文の組み合わせであるオラクル文集合を求める。なお、オラクル文集合は、翻訳元言語の文ごとに１つ選択された翻訳候補文の組み合わせである。
【００３１】
＜オラクル選択部の詳細構成＞
オラクル選択部２５は、BLEUと良く似た性質を持つ以下の（２）式で表される劣モジュラ関数(subBLEU)を最大化する翻訳候補文の組み合わせを、解探索部２４が出力したk-best翻訳集合からオラクル文集合として選択する。 
【００３２】
【数２】
2014078138.tif 000004
【００３３】
ここで、Dは、翻訳候補文ｅsと予め与えられた正解翻訳文の集合Ｒsとのペア(es,Rs)の集合D= {(es,Rs)} s=1Sである。esはs番目の文に対し解探索部２４が出力したk-best翻訳集合に含まれる翻訳候補文、Rsは s番目の文に対する正解翻訳文の集合であり、qn(D)は以下の（３）式で定義される。
【００３４】
【数３】
2014078138.tif 000005
【００３５】
ただし、Gn(e)は、解探索部２４が出力したk-best翻訳集合内の翻訳候補文eに含まれるｎグラム(長さｎの単語列)の集合、|D|は全文数、つまりSである。r(R)は、正解翻訳文の集合Ｒに含まれる文の長さの総和であり、clip(gn,R)は以下の（４）式で定義する。
【００３６】
【数４】
2014078138.tif 000006
【００３７】
ただし、c(gn)は、あるｎグラムgnの翻訳候補文eにおける出現頻度、maxref∈R c(gn,ref)は正解翻訳文の集合に含まれる各正解翻訳文におけるgnの出現頻度の最大値を表す。
【００３８】
いま、あるRのもとで、翻訳評価スコアとしてのsubBLEUを最大とする翻訳結果集合、すなわち、オラクルを解探索部２４の出力から選択するためには、厳密にはkS通りの翻訳候補文の組合せを調べる必要となるため、計算量の観点から全ての組合せを調べることは現実的ではない。しかし、subBLEUは劣モジュラ関数であるため、例えば以下のような手法を用いて最悪1-1/eの下限で最適解を得ることができる。
【００３９】
図３に示すように、オラクル選択部２５は、初期化部２５１、翻訳集合選択部２５２、オラクル候補追加部２５３、スコア計算部２５４、オラクル追加部２５５、及び収束判定部２５６を備えている。
【００４０】
ここで、
【数５】
2014078138.tif 000007
は、翻訳元言語の各入力文fに対し、解探索部２４が出力したk-best翻訳集合の集合である。また、k-best翻訳集合では、s番目の文fに対する翻訳候補文esが、翻訳スコアの良い順にk個並んでいるものとする (KBESTf[es]={es[1],...,es[k]})。
【００４１】
初期化部２５１は、翻訳元言語の文を識別する変数sを初期値1に設定し、k-best翻訳集合から選んだ翻訳候補文を、翻訳元言語の各文に対して格納するリストcandと、t回目の繰り返しにおけるオラクルを格納するリストOtとを空集合に初期化し、subBLEUスコアを保持するscoremaxを０に初期化しておく。
【００４２】
翻訳集合選択部２５２は、k-best翻訳集合のリストのうち、s番目の入力文fに対するk-best翻訳集合KBESTf[es]を選択する。
【００４３】
オラクル候補追加部２５３は、翻訳集合選択部２５２が選択したk-best翻訳集合KBESTf[es]の上位より順に、まだ取り出していない翻訳候補文e∈KBESTf[es]を取り出し、candリストに追加する。
【００４４】
スコア計算部２５４は、candリストに含まれるｌ個の翻訳候補文の組み合わせと当該ｌ個の入力文fの各々に対する正解翻訳の集合{R1, …, Rl}を用いてsubBLEUスコアを計算し、scoretmpへ格納する。つまり、上記（２）式におけるDを、D={cand, {R1,…,Rl})に置き換えてsubBLEUスコアを計算し、scoretmpへ格納する。
【００４５】
オラクル追加部２５５は、scoretmpがscoremaxより大きく、かつ、candリストに含まれる文の長さの総和TotalCost(cand)が予め設定されたオラクルとして許容する文長の総和(B)以下である場合に、scoremaxの値をscoretmpの値で更新し、s番目の文に対するオラクルのリストOt[s]にeを追加する。
【００４６】
収束判定部２５６は、KBESTf[es]に含まれる全ての翻訳候補文について、オラクル候補追加部２５３とスコア計算部２５４とオラクル追加部２５５の処理を繰り返す。また、s=Sでない場合（全ての文についてオラクル更新処理を行っていない場合）には、sの値を1つ増やして、翻訳集合選択部２５２とオラクル候補追加部２５３とスコア計算部２５４とオラクル追加部２５５の処理を繰り返す。
【００４７】
以上の処理を、オラクル文集合が収束するまで繰り返す。つまり、t回目の繰り返し処理で求めたオラクルOtとt-1回目の繰り返し処理で求めたオラクルOｔ−１が等しいか否かを判定し、等しくない場合には繰り返し回数tを1つ増やして初期化部２５１に戻り、OtとOｔ−１との間で差分がなくなるまでオラクルの更新処理を続ける。OtとOｔ−１が等しい場合には、求めたOtをオラクル文集合として出力する。
【００４８】
パラメータ更新部２６は、k-best翻訳集合とオラクル文集合を受け取り、以下に説明するように、オラクル文集合に含まれる翻訳候補文の各々が、高い翻訳スコアを得るようにパラメータ集合w = {wd}d=1D を修正し、最適化を行う。
【００４９】
いま、オラクル文集合に含まれるオラクルe *及び現在のパラメータ集合wが与えられた下での翻訳スコアを最大とする翻訳集合、すなわち、1-best翻訳集合に含まれる翻訳候補文 e^が以下の通り与えられるとする。
【００５０】
【数６】
2014078138.tif 000008
【００５１】
ただし、ＫＢＥＳＴf[ｅ]＼｛ｅ*｝は、オラクル文集合に含まれる翻訳候補文を除いた、ｋ-best翻訳集合を表す。従って、上記の式に従って、オラクル文集合に含まれる翻訳候補文を除いた、ｋ-best翻訳集合から、1-best翻訳集合が選択される。
【００５２】
ここで、最適なw^は以下の（５）式に示すL2正則化のヒンジ損失関数を目的関数とし、それを最小化することで得ることができる。なお、λは、過学習を防ぐためのマージンを調整するハイパーパラメータであり、予め適切な値を設定しておく。Φ(e´,f)は、入力文ｆと翻訳候補文e´の組(e´,f)に対して、所定の特徴量を返す関数である。
【００５３】
【数７】
2014078138.tif 000009
【００５４】
ただし、||ｗ||22は、パラメータ集合ｗのＬ２ノルムである。
【００５５】
l hinge(w,D)は以下の（６）式で定義する。
【００５６】
【数８】
2014078138.tif 000010
【００５７】
βはsubBLEU値の差分に対するハイパーパラメータである。
【００５８】
パラメータ更新部２６は、上記（６）式に示す目的関数が収束するまで、パラメータ集合wtを繰り返し更新する。
【００５９】
具体的には、以下の（９）式により、パラメータ集合wiをwi+1に更新する。
【００６０】
【数９】
2014078138.tif 000011
【００６１】
η０は予め設定しておく学習率の初期値である。
【００６２】
劣勾配∇iは，wi, D, Kt, Otを用いて、以下の（１０）式により計算する。
【００６３】
【数１０】
2014078138.tif 000012
【００６４】
ここで、fsはDの要素であり、翻訳元言語のs番目の入力文を示す。^esは解探索部２４で取得したk-best翻訳集合KBESTf[es]の要素であり、s番目の入力文fsに対する、1-best翻訳集合に含まれる翻訳候補文を表す。es*はオラクル選択部２５で取得したOtの要素であり、s番目の入力文fsに対応する、オラクル文集合Otの要素である。なお、wiの初期値はwtである。
【００６５】
さらに、D={(fs, Rs)s=1S}、 Ktと更新後のwi+1を用いて、以下の（１１）式に従って、k-best翻訳集合における1-best翻訳集合{^es}s=1Sを更新する。
【００６６】
【数１１】
2014078138.tif 000013
【００６７】
なお、β＝０として、ペナルティ項を考慮せずに、1-best翻訳集合を求めてもよい。
【００６８】
このパラメータwiの更新処理と、1-best翻訳集合を更新処理とを、目的関数が収束するまで繰り返す。
【００６９】
反復処理部２７は、繰り返し回数tが予め定めた上限値Tより小さい場合には、繰り返し回数tを1つ増やし(t=t+1とし)、現在のパラメータ集合wiの値をwtに代入して、解探索部２４に戻り、k-best翻訳の探索処理、オラクル文集合の選択処理、パラメータ集合の更新処理を繰り返す。繰り返し数tが予め定めた上限値Tとなったら、その時のパラメータ集合wiの値を最適なパラメータ集合として、出力部３０により出力して処理を終了する。なお、反復処理部２７は必須の構成ではなく、繰り返し処理を行わない構成としても良い。すなわち、T=1としてもよい。また、反復終了条件として、繰り返し回数tが予め定めた上限値Tに到達することを用いた場合を例に説明したが、これに限定されるものではない。例えば、前回の反復処理におけるパラメータ集合ｗの差分が閾値以下となることを、反復終了条件として用いてもよい。
【００７０】
＜システムパラメータ最適化装置の作用＞
次に、本実施の形態に係るシステムパラメータ最適化装置１００の作用について説明する。まず、予め用意された翻訳元言語の入力文の各々に対する機械翻訳の結果である翻訳先言語の複数の翻訳候補文からなるチューニング文集合が、システムパラメータ最適化装置１００に入力されると、システムパラメータ最適化装置１００によって、入力されたチューニング文集合が、チューニング文集合記憶部２１へ格納される。また、同じ翻訳元言語の入力文の各々に対して予め用意された翻訳先言語の複数の正解翻訳文からなる正解チューニング文集合が、システムパラメータ最適化装置１００に入力されると、システムパラメータ最適化装置１００によって、入力された正解チューニング文集合が、正解チューニング文集合記憶部２２へ格納される。
【００７１】
そして、システムパラメータ最適化装置１００によって、図４に示すパラメータ最適化処理ルーチンが実行される。
【００７２】
まず、ステップＳ１０１において、パラメータ集合ｗ1の各コンポーネントの値を初期化すると共に、繰り返し回数を示す変数ｔに初期値１を設定する。そして、ステップＳ１０２において、現在のパラメータ集合ｗtを用いて、チューニング文集合記憶部２１に記憶されたチューニング文集合から、翻訳元言語の入力文ｆs毎に、ｋ−ｂｅｓｔ翻訳集合KBESTf[es]を求める。
【００７３】
ステップＳ１０３では、正解チューニング文集合記憶部２２に記憶された正解チューニング文集合に基づいて、上記ステップＳ１０２で求められたｋ−ｂｅｓｔ翻訳集合KBESTf[es]から、オラクル文集合Ｏtを求める。
【００７４】
そして、ステップＳ１０４において、パラメータ集合ｗの更新の繰り返し回数を示す変数ｉを初期値１に設定すると共に、パラメータ集合ｗiに、上記ステップＳ１０１又は後述するステップＳ１１０で値が設定されたパラメータ集合ｗtを設定する。
【００７５】
ステップＳ１０５では、上記ステップＳ１０３で求められたオラクル文集合Ｏtとパラメータ集合ｗiとにおける１−ｂｅｓｔ翻訳集合｛＾ｅs｝s=1S、オラクル文集合Ｏt、及びパラメータ集合ｗiに基づいて、上記（９）式に従って、パラメータ集合ｗiを更新する。なお、オラクル文集合Ｏtとパラメータ集合ｗiとにおける１−ｂｅｓｔ翻訳集合｛＾ｅs｝s=1Sとしては、後述するステップＳ１０６で求められたものを用いればよく、ステップＳ１０６で求められたものがない場合には、ステップＳ１０６と同様に求めればよい。
【００７６】
次のステップＳ１０６では、正解チューニング文集合記憶部２２に記憶された正解チューニング文集合と、上記ステップＳ１０２で求められたｋ−ｂｅｓｔ翻訳集合KBESTf[es]と、上記ステップＳ１０５で更新されたパラメータ集合ｗiとに基づいて、上記（１１）式に従って、１−ｂｅｓｔ翻訳集合｛＾ｅs｝s=1Sを更新する。
【００７７】
ステップＳ１０７では、正解チューニング文集合記憶部２２に記憶された正解チューニング文集合と、上記ステップＳ１０６で更新された１−ｂｅｓｔ翻訳集合｛＾ｅs｝s=1Sと、オラクル文集合Ｏtと、上記ステップＳ１０５で更新されたパラメータ集合ｗiとに基づいて、上記（６）式で計算される値が、予め定められた閾値以下であるか否かを判定する。上記（６）式で計算される値が、予め定められた閾値より大きい場合には、ステップＳ１０８で変数ｉを１だけインクリメントして、上記ステップＳ１０５へ戻る。一方、上記（６）式で計算される値が、予め定められた閾値以下である場合には、目的関数が収束したと判断し、ステップＳ１０９へ移行する。
【００７８】
ステップＳ１０９では、変数ｔが、予め定められた繰り返し回数の上限数Ｔに到達したか否かを判定する。変数ｔが、Ｔに到達していない場合には、ステップＳ１１０において、変数ｔを１だけインクリメントすると共に、現在のパラメータ集合ｗiを、パラメータ集合ｗtに代入して、上記ステップＳ１０２へ戻る。一方、変数ｔが、Ｔに到達した場合には、ステップＳ１１１において、現在のパラメータ集合ｗiを、出力部３０により出力して、パラメータ最適化処理ルーチンを終了する。
【００７９】
また、上記ステップＳ１０３は、図５に示す処理ルーチンによって実現される。
【００８０】
ステップＳ１２０において、オラクル文集合の候補を表わすｃａｎｄリストを空集合に初期設定すると共に、繰り返し回数を示す変数ｔに初期値１を設定する。そして、ステップＳ１２１において、翻訳元言語の入力文を識別する変数ｓに、初期値１を設定すると共に、オラクル文集合を表わす集合Ｏtに空集合を設定し、翻訳評価スコアの最大値を表す変数ｓｃｏｒｅmaxに初期値０を設定する。
【００８１】
次のステップＳ１２２では、上記ステップＳ１０２で求められたｋ−ｂｅｓｔ翻訳集合から、ｓ番目の入力文ｆsに対するｋ−ｂｅｓｔ翻訳集合KBESTf[es]を選択する。ステップＳ１２３において、上記ステップＳ１２２で選択したｋ−ｂｅｓｔ翻訳集合KBESTf[es]から、上位より順に、まだ取り出していない翻訳候補文ｅを取り出し、ｃａｎｄリストに追加する。
【００８２】
そして、ステップＳ１２４において、ｃａｎｄリストに含まれるｌ個の翻訳候補文の組み合わせと、対応するｌ個の入力文に対する正解翻訳文の集合｛Ｒ1、・・・、Ｒl｝を用いて、上記（２）式に従って、ｓｕｂＢＬＥＵスコアを計算し、ｓｃｏｒｅtmpに格納する。ステップＳ１２５では、ｓｃｏｒｅtmpが、ｓｃｏｒｅmaxにより大きく、かつ、ｃａｎｄリストに含まれる文の長さの総和ＴｏｔａｌＣｏｓｔ（ｃａｎｄ）が予め定めた値Ｂ以下であるか否かを判定する。ｓｃｏｒｅtmpがｓｃｏｒｅmax以下である場合、又はＴｏｔａｌＣｏｓｔ（ｃａｎｄ）がＢ未満である場合には、ステップＳ１２７へ移行する。一方、ｓｃｏｒｅtmpが、ｓｃｏｒｅmaxにより大きく、かつ、ＴｏｔａｌＣｏｓｔ（ｃａｎｄ）がＢ以下である場合には、ステップＳ１２６において、ｓｃｏｒｅmaxを、ｓｃｏｒｅtmpに更新し、オラクル文集合の要素Ｏt[ｓ]に、上記ステップＳ１２３で取り出した翻訳候補文ｅを格納する。
【００８３】
そして、ステップＳ１２７において、ｋ−ｂｅｓｔ翻訳集合KBESTf[es]に含まれる全ての翻訳候補文について、上記ステップＳ１２３〜Ｓ１２６の処理を終了したか否かを判定する。ｋ−ｂｅｓｔ翻訳集合KBESTf[es]内に、上記ステップＳ１２３〜Ｓ１２６の処理を行っていない翻訳候補文が存在する場合には、上記ステップＳ１２３へ戻り、当該翻訳候補文を取り出す。一方、ｋ−ｂｅｓｔ翻訳集合KBESTf[es]に含まれる全ての翻訳候補文について、上記ステップＳ１２３〜Ｓ１２６の処理を終了した場合には、ステップＳ１２８へ移行する。
【００８４】
ステップＳ１２８では、変数ｓが、翻訳元言語の入力文の数を示す定数Ｓに到達したか否かを判定し、変数ｓが、Ｓに到達していない場合には、ステップＳ１２９において、変数ｓを１だけインクリメントし、ステップＳ１２２へ戻る。一方、変数ｓが、Ｓに到達した場合には、ステップＳ１３０において、オラクル文集合Ｏtと、１つ前の反復で得られたオラクル文集合Ｏt-1が一致するか否かを判定する。オラクル文集合Ｏtと、オラクル文集合Ｏt-1が一致しない場合には、ステップＳ１３１において、変数ｔを１だけインクリメントして、ステップＳ１２１へ戻る。一方、オラクル文集合Ｏtと、オラクル文集合Ｏt-1が一致する場合には、オラクル文集合が収束したと判断し、ステップＳ１３２において、オラクル文集合Ｏtを出力して、処理ルーチンを終了する。
【００８５】
＜実験結果＞
次に、本発明の有効性を実証するため、中国語から英語への翻訳データ (2679文)を用いてパラメータwの最適化を行う実験を行った結果について説明する。上記の実施の形態で説明したシステムパラメータの最適化方法を用いて、最適なシステムパラメータを推定した。学習アルゴリズムのハイパーパラメータは、
【００８６】
【数１２】
2014078138.tif 000014
とし、繰り返し回数は T =1とした。
【００８７】
図６に実験結果を示す。上記図６の横軸iはパラメータ更新部２６中の繰り返し回数(iの値)、縦軸は目的関数の値（＋記号）、subBLEUスコア（×記号）を表す。上記図８より、繰り返し数ｉが増えるにつれ、目的関数の値が減少し、subBLEUスコアが増加しており、本発明の有効性が分かった。
【００８８】
以上説明したように、本発明の実施の形態に係るシステムパラメータ最適化装置によれば、パラメータ集合ｗを用いて算出される翻訳スコアに基づいて、翻訳元言語の入力文ごとに、上位ｋ個の翻訳候補文からなるｋ−ｂｅｓｔ翻訳集合を選択し、正解翻訳文に基づいて算出されるｓｕｂＢＬＥＵスコアが最大となる翻訳候補文の組み合わせであるオラクル文集合を、ｋ−ｂｅｓｔ翻訳集合から選択し、選択されたオラクル文集合に含まれる翻訳候補文の各々に対する翻訳スコアが高くなるように、パラメータ集合ｗを更新することを繰り返し行うことにより、より精度の高い機械翻訳が可能となるようなパラメータ集合ｗを得ることができる。
【００８９】
また、正解翻訳文に基づいて算出される翻訳評価スコアとして、劣モジュラ関数ｓｕｂＢＬＥＵを用いて、オラクル文集合を選択することにより、オラクル文集合を効率的に求めることができる。
【００９０】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００９１】
例えば、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【００９２】
１０   入力部
２０   演算部
２１   チューニング文集合記憶部
２２   正解チューニング文集合記憶部
２３   初期設定部
２４   解探索部
２５   オラクル選択部
２６   パラメータ更新部
２７   反復処理部
３０   出力部
１００ システムパラメータ最適化装置
２５１ 初期化部
２５２ 翻訳集合選択部
２５３ オラクル候補追加部
２５４ スコア計算部
２５５ オラクル追加部
２５６ 収束判定部
【図１】
2014078138.tif 000017
【図２】
2014078138.tif 000018
【図３】
2014078138.tif 000019
【図４】
2014078138.tif 000020
【図５】
2014078138.tif 000021
【図６】
2014078138.tif 000022
【図７】
2014078138.tif 000023