(57)【要約】      （修正有）【課題】実際の翻訳が行われる分野が不明分野であるときに、既知の複数の分野の各々について準備された分野別訓練データからなる訓練データを用いてニューラル機械翻訳モデルの訓練を行うことにより、不明分野における翻訳精度を向上させるＮＭＴの訓練方法及び装置を提供する。【解決手段】ＮＭＴ４０の訓練方法は、訓練データを機械可読な記憶装置４６に格納する格納ステップと、コンピュータが記憶装置４６にアクセスし、ＮＭＴ４０の訓練に使用される訓練データにおける分野別訓練データの分布が複数の分野にわたり均一となるようにニューラルネットワークのパラメータ集合の訓練を訓練装置４２により行うステップとを含む。【選択図】図１
2019149018.tif 000002
【特許請求の範囲】
【請求項１】
実際の翻訳が行われる分野が不明分野であるときに、既知の複数の分野の各々について準備された分野別訓練データからなる訓練データを用いてニューラル機械翻訳モデルの訓練を行うことにより前記不明分野における前記ニューラル機械翻訳モデルの翻訳精度を向上させる訓練方法であって、
前記訓練データを機械可読な記憶装置に格納する格納ステップと、
コンピュータが前記記憶装置にアクセスし、前記ニューラル機械翻訳モデルの訓練に使用される前記訓練データにおける前記分野別訓練データの分布が前記複数の分野にわたり均一となるように前記ニューラル機械翻訳モデルの訓練を行う訓練ステップとを含む、訓練方法。
【請求項２】
さらに、前記分野別訓練データの各々について、当該分野に属する訓練データの、前記訓練データ全体に対する比率を算出する算出ステップを含み、
前記訓練ステップは、前記コンピュータが前記記憶装置にアクセスし、前記分野別訓練データを用いて、前記分野別訓練データに対し、当該訓練データが属する分野の前記比率の逆数に比例する重みを乗じて前記ニューラル機械翻訳モデルのパラメータの訓練を行うステップを含む、請求項１に記載の訓練方法。
【請求項３】
前記訓練ステップは、前記コンピュータが前記記憶装置にアクセスし、前記分野別訓練データから、所定数の訓練データを読出して前記ニューラル機械翻訳モデルのパラメータの訓練をミニバッチの形式により、読出す訓練データを変化させながら行うミニバッチ訓練ステップを含み、
前記ミニバッチ訓練ステップの各ミニバッチで前記分野別訓練データの各々から読出される訓練データの数は、前記訓練ステップ全体で前記分野別訓練データの各々から読出される訓練データの合計数が均一となるように選択される、請求項１に記載の訓練方法。
【請求項４】
前記ミニバッチ訓練ステップは、前記コンピュータが前記記憶装置にアクセスし、前記分野別訓練データの各々から、所定数の互いに等しい数の訓練データを読出して前記ニューラル機械翻訳モデルのパラメータの訓練をミニバッチの形式により行うステップを、読出す訓練データを変化させながら繰返し行うステップを含む、請求項３に記載の訓練方法。
【請求項５】
実際の翻訳が行われる分野が不明分野であるときに、既知の複数の分野の各々について準備された分野別訓練データを用いてニューラル機械翻訳モデルの訓練を行うことにより前記不明分野における前記ニューラル機械翻訳モデルの翻訳精度を向上させる訓練装置であって、
前記分野別訓練データを格納するための機械可読な記憶装置と、
前記記憶装置にアクセスし、前記ニューラル機械翻訳モデルの訓練に使用される前記訓練データにおける前記分野別訓練データの分布が前記複数の分野にわたり均一となるように前記ニューラル機械翻訳モデルの訓練を行うための訓練手段とを含む、訓練装置。
【請求項６】
実際の翻訳が行われる分野が不明分野であるときに、既知の複数の分野の各々について準備された分野別訓練データを用いてニューラル機械翻訳モデルの訓練を行うことにより、前記不明分野における前記ニューラル機械翻訳モデルの翻訳精度が向上するよう前記ニューラル機械翻訳モデルの訓練を行うようにコンピュータを機能させるコンピュータプログラムであって、
前記ニューラル機械翻訳モデルの構成を規定する情報及び前記ニューラル機械翻訳モデルのパラメータ集合を格納する記憶位置を記憶装置内に確保するよう前記コンピュータを動作させるための命令群と、
前記記憶装置内の前記パラメータ集合の初期値を所定の初期値決定方法により決定し、該当する前記記憶位置に保持されている値を更新するための命令群と、
前記コンピュータを、前記分野別訓練データを保存した、機械可読な記憶装置に接続するよう機能させるための命令群と、
前記記憶装置にアクセスし、前記ニューラル機械翻訳モデルの訓練に使用される前記訓練データにおける前記分野別訓練データの分布が前記複数の分野にわたり均一となるように前記ニューラル機械翻訳モデルの訓練を行うように前記コンピュータを機能させる命令群とを含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はニューラル機械翻訳（以下「ＮＭＴ」という。）において、翻訳対象とする分野が複数ある場合に、対象分野全てにおいて高精度を達成するようＮＭＴのニューラルネットワークモデルを訓練するための方法、装置及びコンピュータプログラムに関する。
【背景技術】
【０００２】
機械翻訳の主流技術は統計的機械翻訳であるフレーズベース機械翻訳（Ｐｈｒａｓｅ  Ｂａｓｅｄ  Ｍａｃｈｉｎｅ  Ｔｒａｎｓｌａｔｉｏｎ：ＰＢＭＴ）からＮＭＴに移っている。ＮＭＴには、訳語が指定できない、訳し抜けが生じることがある等の問題が依然として残っているものの、最終的な訳文の読みやすさという点で優れており、よく利用されるようになっている。
【０００３】
ＮＭＴの基盤技術は非特許文献１により提案されている。この技術は、系列から系列への訓練において、ＬＳＴＭ―ＲＮＮ（Ｌｏｎｇ  Ｓｈｏｒｔ  Ｔｅｒｍ  Ｍｅｍｏｒｙ  Ｒｅｃｕｒｒｅｎｔ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）を活用したアテンションに基づくものである。
【０００４】
また、機械翻訳の対象として複数分野があり、その中で現在翻訳の対象としている文章が所属する分野が分かるときに、その分野情報を活用して対象とする文章の翻訳精度を向上させるための技術に関する研究がある。こうした技術はアダプテーションと呼ばれる。アダプテーションについては非特許文献２及び３に開示がある。また、アダプテーションを行わない場合と行った場合とについて、ＰＢＭＴとＮＭＴとを比較した研究として非特許文献４に示すものがある。以下のテーブル１は、非特許文献４において発表された結果を示す。
【０００５】
【表１】
2019149018.tif 000003
表１において、左端の列は非特許文献４において分野内（In  Domain）として扱われたコーパス名を示す。これらコーパスは、いずれも英語−フランス語の対訳データであり、European  Central  Bank  (ECB),  Gnome,  JRC-Acquis  (JRC),  KDE,  OpenOffice  (OOffice),  PHP,  Ubuntu,  translated  UN  documents  (UN-TM)の８種類である。これらコーパスのサイズはモデルの訓練には小さいため、非特許文献４ではこれらだけでなく、分野外(Out  of  Domain)のデータを一般データとして訓練データに加えてモデルの訓練を行っている。
【０００６】
表１の左から２列目は、ＰＢＭＴで左端の列に示された全コーパスのデータと一般データとを混合したものを訓練データに用いてモデルの訓練をし、各コーパスに対する翻訳を行ったときの、コーパス別の翻訳精度をＢＬＥＵスコアで示す。左から３列目は、同様にＮＭＴで全コーパス＋一般コーパスのデータを用いてモデルの訓練をし、各コーパスに対する翻訳を行ったときのコーパス別の翻訳精度を示す。
【０００７】
左から４列目及び５列目（最も右の列）は、いずれも左から３列目のＮＭＴに対し、継続訓練という手法を用いたときの結果を示す。継続訓練とは訓練済のモデルに対して、分野内データを用いてさらにアダプテーションのための訓練を行うことをいう。左から４列目は、左から３列目のＮＭＴに対して、最左端の列に示したコーパスを全て含む適合用訓練データを用い、これらが１分野に属すると考えてアダプテーションを行ったときの各コーパスに対する翻訳精度を示す。最右端の列は、左から３列目のＮＭＴに対し、最左端の列に示されるコーパスを個別に用いてアダプテーションしたときの各コーパスに対する翻訳精度を示す。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】Luong,  T.;  Pham,  H.;  and  Manning,  C.D.  2015.  "Effective  approaches  to  attention-based  neural  machine  translation."  In  EMNLP.
【非特許文献２】Kobus,  C.;  Crego,  J.;  and  Senellart,  J.  2016.  "Domain  control  for  neural  machine  translation."  [Online]  https://arxiv.org/pdf/1612.06140.pdf.
【非特許文献３】Chu,  C.;  Dabre,  R.;  and  Kurohashi,  S.  2017.  "An  empirical  comparison  of  simple  domain  adaptation  methods  for  neural  machine  translation."  [Online]  https://arxiv.org/pdf/1701.03214.pdf.
【非特許文献４】Farajian,  M.  A.;  Turchi,  M.;  Negri,  M.;  Bertoldi,  N.;  and  Federico,  M.  2017a.  "Neural  vs.  phrase-based  machine  translation  in  a  multidomain  scenario."  In  EACL.
【非特許文献５】Sugiyama,  M.;  Suzuki,  T.;  Nakajima,  S.;  Kashima,  H.;  von  Buunau,  P.;  and  Kawanabe,  M.  2008.  "Direct  importance  estimation  for  covariate  shift  adaptation."  Annals  of  the  Institute  of  Statistical Mathematics.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
表１に示す結果から明らかなように、全ての対象分野においてＰＢＭＴ一般と比較して、ＮＭＴ一般の性能は低い。一方、ＮＭＴ結合適合の場合、ＮＭＴ一般より性能は向上しているが、最も右側の列のＮＭＴ個別適合と比較すると性能はまだ低い。
【００１０】
最も右側のＮＭＴ個別適合がＮＭＴとしては最も高い性能を示しているが、処理対象の分野が分からなければこうしたアダプテーションは行えない。
【００１１】
以上のように、翻訳対象分野が複数あり、現在の翻訳対象文章の所属する分野が分からないときでも高精度な翻訳を達成するＮＭＴは得られていない。
【００１２】
それ故に本発明は、翻訳対象分野が複数あり、現在の翻訳対象文章の所属する分野が分からないときでも高精度な翻訳を達成するＮＭＴの訓練方法及び装置並びにそのためのコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の第１の局面に係る訓練方法は、実際の翻訳が行われる分野が不明分野であるときに、既知の複数の分野の各々について準備された分野別訓練データからなる訓練データを用いてニューラル機械翻訳モデルの訓練を行うことにより不明分野におけるニューラル機械翻訳モデルの翻訳精度を向上させる訓練方法である。この方法は、訓練データを機械可読な記憶装置に格納する格納ステップと、コンピュータが記憶装置にアクセスし、ニューラル機械翻訳モデルの訓練に使用される訓練データにおける分野別訓練データの分布が複数の分野にわたり均一となるようにニューラル機械翻訳モデルの訓練を行う訓練ステップとを含む。
【００１４】
好ましくは、訓練方法は、さらに、分野別訓練データの各々について、当該分野に属する訓練データの、訓練データ全体に対する比率を算出する算出ステップを含む。訓練ステップは、コンピュータが記憶装置にアクセスし、分野別訓練データを用いて、分野別訓練データに対し、当該訓練データが属する分野の比率の逆数に比例する重みを乗じてニューラル機械翻訳モデルのパラメータの訓練を行うステップを含む。
【００１５】
より好ましくは、訓練ステップは、コンピュータが記憶装置にアクセスし、分野別訓練データから、所定数の訓練データを読出してニューラル機械翻訳モデルのパラメータの訓練をミニバッチの形式により、読み出す訓練データを変化させながら行うミニバッチ訓練ステップを含む。ミニバッチ訓練ステップの各ミニバッチで分野別訓練データの各々から読み出される訓練データの数は、訓練ステップ全体で分野別訓練データの各々から読み出される訓練データの合計数が均一となるように選択される。
【００１６】
さらに好ましくは、ミニバッチ訓練ステップは、コンピュータが記憶装置にアクセスし、分野別訓練データの各々から、所定数の互いに等しい数の訓練データを読出してニューラル機械翻訳モデルのパラメータの訓練をミニバッチの形式により行うステップを、読み出す訓練データを変化させながら繰返し行うステップを含む。
【００１７】
本発明の第２の局面に係る訓練装置は、実際の翻訳が行われる分野が不明分野であるときに、既知の複数の分野の各々について準備された分野別訓練データを用いてニューラル機械翻訳モデルの訓練を行うことにより不明分野におけるニューラル機械翻訳モデルの翻訳精度を向上させる訓練装置である。この装置は、分野別訓練データを格納するための機械可読な記憶装置と、記憶装置にアクセスし、ニューラル機械翻訳モデルの訓練に使用される訓練データにおける分野別訓練データの分布が複数の分野にわたり均一となるようにニューラル機械翻訳モデルの訓練を行うための訓練手段とを含む。
【００１８】
本発明の第３の局面に係るコンピュータプログラムは、実際の翻訳が行われる分野が不明分野であるときに、既知の複数の分野の各々について準備された分野別訓練データを用いてニューラル機械翻訳モデルの訓練を行うことにより、不明分野におけるニューラル機械翻訳モデルの翻訳精度が向上するようニューラル機械翻訳モデルの訓練を行うようにコンピュータを機能させるコンピュータプログラムである。このプログラムは、ニューラル機械翻訳モデルの構成を規定する情報及びニューラル機械翻訳モデルのパラメータ集合を格納する記憶領域を記憶装置内に確保するようコンピュータを動作させるための命令群と、記憶装置内のパラメータ集合の初期値を所定の初期値決定方法により決定し、該当する記憶領域に保持されている値を更新するための命令群と、コンピュータを、分野別訓練データを保存した、機械可読な記憶装置に接続するよう機能させるための命令群と、記憶装置にアクセスし、ニューラル機械翻訳モデルの訓練に使用される訓練データにおける分野別訓練データの分布が複数の分野にわたり均一となるようにニューラル機械翻訳モデルの訓練を行うようにコンピュータを機能させる命令群とを含む。
【図面の簡単な説明】
【００１９】
【図１】図１は本発明の第１の実施の形態に係るニューラル翻訳システムの概略ブロック図である。
【図２】図２は図１に示すＮＭＴの構成を模式的に示すブロック図である。
【図３】図３は図２に示すＮＭＴにおけるアノテーションの生成を模式的に示す図である。
【図４】図４は、コンピュータを図１に示す訓練装置４２として機能させるためのプログラムの制御構造を示すフローチャートである。
【図５】図５は本発明の第２の実施の形態に係るニューラル翻訳システムの概略ブロック図である。
【図６】図６は、コンピュータを図５に示す訓練装置３５０として機能させるためのプログラムの制御構造を示すフローチャートである。
【図７】本発明の各実施の形態に係るニューラル翻訳システムを実現するためのコンピュータシステムの外観を示す図である。
【図８】図７に示すコンピュータのハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【００２０】
以下の説明及び図面では、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。
【００２１】
＜第１の実施の形態＞
［構成］
図１を参照して、本発明の第１の実施の形態に係るニューラル翻訳システム３０は、ＮＭＴ４０を訓練するための複数分野の訓練データを分野ごとに区別して記憶する、コンピュータ読出可能（機械可読）な記憶装置４６と、記憶装置４６に接続され、記憶装置４６に記憶された訓練データを用いてＮＭＴ４０の訓練を行うための訓練装置４２とを含む。
【００２２】
ニューラル翻訳システム３０はさらに、訓練装置４２による訓練が完了したＮＭＴ４０を用いて、入力文４８を別言語に翻訳して出力文５０として出力するニューラル翻訳装置４４を含む。入力言語と出力言語の組合せとしては日本語と英語、英語とフランス語等任意の組合せを考えることができる。なお、入力言語と出力言語とは互いに同じ言語であってもよい。
【００２３】
訓練装置４２は、記憶装置４６の各分野について後述する重みを算出する重み算出部６０と、重み算出部６０により算出された重みに対し分野をキーにアクセスできるよう記憶する重み記憶部６２と、記憶装置４６から訓練データを読出し、訓練データが属する分野に対応して重み記憶部６２から読出された重みを乗じた形でＮＭＴ４０の訓練をミニバッチ形式で実行するミニバッチＮＭＴ訓練部６４とを含む。
【００２４】
図２は、ＮＭＴ４０の概略構成を示す。図２を参照して、ＮＭＴ４０は、ニューラルネットワークの一種であるＲＮＮ、より具体的にはＲＮＮの一種であるＬＳＴＭを１モジュールとして構成されるシステムである。ＮＭＴ４０は、入力文４８（図１参照）を表す単語ベクトル列１２４の入力を受けて入力文の内容を表すベクトル列１４４を出力する入力系列処理部１２０と、ベクトル列１４４を受けて入力文に対する翻訳文である単語ベクトル列１２６を出力する出力系列処理部１２２とを含む。単語ベクトルはいわゆるワンホットベクトル（１−ｏｆ−Ｋ表現）でもよいし、いわゆる単語埋め込みベクトルでもよい。
【００２５】
入力系列処理部１２０は単語ベクトル列１２４の各単語ベクトルを順に受け、順方向に出力を伝搬するよう接続される順方向ＲＮＮ系列１４０と、単語ベクトル列１２４の各単語ベクトルを逆順に受け、逆方向に出力を伝搬するように接続される逆方向ＲＮＮ系列１４２とを含む。一方、出力系列処理部１２２も単語ベクトル列１２４のベクトルを順に受けるＲＮＮを含む。これらＲＮＮの内、順方向ＲＮＮ系列１４０及び逆方向ＲＮＮ系列１４２は、それぞれ同一のＲＮＮモジュールを、入力される単語数に応じて複製したものからなる。したがってそれらの機能を規定するパラメータ集合（重み及びバイアス行列）は当然に全て等しい。また、出力系列処理部１２２を構成するＲＮＮも、入力系列処理部１２０のＲＮＮとは異なるが、同一のＲＮＮモジュールを複製して得たものである。この基本となるＲＮＮにより実現される翻訳機能を規定するパラメータ集合θの値を学習することがＮＭＴ４０の訓練の目的である。
【００２６】
図３を参照して、順方向ＲＮＮ系列１４０及び逆方向ＲＮＮ系列１４２には、それぞれ入力文４８に対応する単語ベクトルが入力される。順方向ＲＮＮ系列１４０及び逆方向ＲＮＮ系列１４２の対応するＲＮＮはそれぞれ順方向出力ベクトル１６０及び逆方向出力ベクトル１６２を出力し、これらベクトルはこの順で連結される。これら連結されたベクトルは対応する単語のアノテーション１５０を形成する。アノテーション１５０はベクトルであり、各単語に対応するアノテーション１５０によって図に示すベクトル列１４４が形成される。出力系列処理部１２２はこのベクトル列１４４と、これらアノテーション１５０の各々に対して算出されるアテンションと呼ばれる重みとによって単語ベクトル列１２６の各ベクトル、すなわち翻訳後の出力文５０を構成する各単語を決定し出力する。順方向ＲＮＮ系列１４０及び逆方向ＲＮＮ系列１４２を用いることにより、ベクトル列１４４は各単語の前後双方の文脈に関する情報も含むことになる。
【００２７】
図４を参照して、コンピュータを図１に示す訓練装置４２として機能させるためのプログラムは、分野別の重みを算出し、コンピュータの記憶装置からなる重み記憶部６２に分野をキーにして読出せるように記憶するステップ１７０を含む。ここでの各分野の重みは、次の考え方により算出される。
【００２８】
まず、通常の（従来の）ＮＭＴでは、目的関数を以下のようにとる。
【００２９】
【数１】
2019149018.tif 000004
ただし、Ｎは訓練データからサンプリングした文数であり、ｆtr(yi|xi,θ)はパラメータ集合θ及び入力文ｘiに対して出力文ｙiが得られる確率である。
【００３０】
この問題を解決するために、非特許文献５において提案されている共変量シフト適応（Covariate Shift Adaptation; 以下「ＣＳＡ」という。）という考え方を取り入れる。ＣＳＡにしたがえば、訓練データの分布ｐtr(<x,y>)をテストデータの分布ｐte(<x,y>)と一致させる。ＣＳＡにより、ＮＭＴがテストデータの分布で訓練データの分布をシミュレートできるようになる。本実施の形態でいえば、訓練データにより学習を行ったＮＭＴシステムが、（仮想的な）テストデータによって訓練したＮＭＴシステムと同様のものになる。すなわち、訓練データにより訓練したＮＭＴの最適化されたパラメータ集合θtrが、（仮想的な）テストデータにより訓練したパラメータ集合θteと同様になる。
【００３１】
実際にこれを適用するためにはテストデータの分布に対して訓練の目標関数の値を最大化するようなパラメータ集合ｐte(<x,y>)を推定することになる。すなわち、ｐtr(<x,y>)をｐte(<x,y>)に共変量シフト適応させるための最適化関数は、
【数２】
2019149018.tif 000005
ここで、Ｄtrは対訳コーパスを表す。ただし、これは理想的な例であって、全ての訓練データが訓練データから得たものであって、かつその分布がテストデータと同じ、というものである。しかし、ｐte(<x,y>)は未知である。Ｊにハット（＾）が付されているのはそのためである。またハットが付されているＪのことを、以下では「Ｊハット」と呼ぶ。
【００３２】
【数３】
2019149018.tif 000006
なので、Ｊハットは以下のようして推定できる。
【００３３】
【数４】
2019149018.tif 000007
共変量シフトの影響は対数ログの項に、重要度による重みを乗ずることで緩和できる。訓練コーパス内の各文は以下の式により表される重要度重みを持つ。
【００３４】
【数５】
2019149018.tif 000008
この考え方によれば、Ｊハットは重み付けしたＪと考えることもできる。訓練データからＮ文をサンプリングすることによりＪハットは以下のように表すことができる。
【００３５】
【数６】
2019149018.tif 000009
ここでは重みｗ(<x,y>)は訓練例とテスト例との間の類似度を測るものとして使用されている。
【００３６】
非特許文献４では、訓練データの大きさは互いに異なるが、開発データ及びテストデータはどの分野のコーパスに対しても同じである。これは、最大エントロピー原理に鑑みると適切な仮定と考えることができる。本実施の形態でもこれと同じ考え方を用いる。つまり、実際に機械翻訳が適用される分野におけるデータ分布が不明であれば、それらが互いにバランスしていると仮定することが適切と考える。
【００３７】
したがって、訓練データにおける各分野のデータを互いにバランス（分布を均一化）させる。そのためにｊ番目の分野Ｄｊの重要度重みを以下のように近似する。
【００３８】
【数７】
2019149018.tif 000010
ここでＲteDjはテストデータ中における分野Ｄｊの比率であり、ＲtrDjは訓練データ中における分野Ｄｊの比率である。各分野でのテストデータをバランスさせるという考え方をとるとＲteは全分野共通である。したがって、表１のように対象分野が８分野とすると、Ｒte＝１２．５％である。一方、GnomeコーパスではＲtrGnome＝１７．４％である。したがってｗDGnome＝１２．５％／１７．４％＝０．７１である。同様の考え方でｗDPHP＝４．６３となり、以下同様にした各分野の重みｗDjを求めることができる。この重みを式（６）に示すように目的関数に乗ずる。この結果、リソースの少ないコーパスについては重要度重みとして高い値が割り当てられることになる。
【００３９】
式（７）によれば、各分野の重みは、その全訓練データ中において各分野の訓練データが占める比率の逆数に比例することになる。
【００４０】
以上のように、本実施の形態ではＣＳＡを用い、かつ式（６）に示すように目的関数に重要度重みを乗じている。こうした方式を本明細書では「ＣＳＡ  ａｓ  ＩＷ」と呼ぶことにする。「ＩＷ」は「Ｉｍｐｏｒｔａｎｃｅ  Ｗｅｉｇｈｔ」の略である。
【００４１】
図４を参照して、コンピュータを図１に示す訓練装置４２として機能させるプログラムは、コンピュータのメモリ上に、ＮＭＴ４０の構成及びパラメータ集合を記憶するための記憶領域を確保するステップ１６８と、パラメータ集合内の各パラメータを所定の初期化方式により初期化するステップ１６９とを含む。
【００４２】
このプログラムはさらに、分野別の重みを上で述べた考え方で算出し、コンピュータのメモリ等の記憶領域に記憶するステップ１７０と、記憶装置４６に接続して各分野からデータを読出可能にするステップ１７２と、終了条件が成立するまで以下の処理１７６を繰返し実行するステップ１７４と、ステップ１７４が終了したことに応答して、訓練により得られたＮＭＴのパラメータ集合θを所定の記憶装置に格納するステップ１７８とを含む。ステップ１７４での繰返し条件は、例えば処理１７６を予め定める回数だけ（多くは複数回）繰返し実行したこと等により成立する。もちろん他の条件を成立条件としてもよい。
【００４３】
処理１７６は、分野別訓練データを併合してランダムにシャッフルするステップ１７９を含む。処理１７６はさらに、以下に述べるミニバッチ形式によりＮＭＴのパラメータ集合を更新する処理１８２を全ての訓練データがなくなるまで繰返し実行するステップ１８０を含む。
【００４４】
処理１８２は、所定数の対訳文（訓練データ）を記憶装置４６から読出すステップ１９０と、ステップ１９０で読出された各対訳文に対して以下のミニバッチのための最適化勾配を記憶する処理１９４を実行するステップ１９２と、ステップ１９２の後、ステップ１９２で蓄積されたこのミニバッチの最適化勾配を全て用いたバックプロパゲーションにより目的関数にしたがいパラメータ集合を最適化して処理１８２を終了するステップ１９６とを含む。なお、本実施の形態ではステップ１９０で読出す対訳文の分野には制限はなく、ステップ１７９でシャッフルされた順番で読出せば良い。
【００４５】
処理１９４は、処理対象の対訳文が属する分野に対応する重みを図１に示す重み記憶部６２から読出すステップ２１０と、ステップ２１０で読出された重みを式（６）の目的関数に乗じたものを用いて算出された最適化勾配の値を所定の記憶領域に記憶して処理１９４を終了するステップ２１２とを含む。
【００４６】
一方、ニューラル翻訳装置４４は、入力文４８を受付けて対応する単語ベクトル列である入力ベクトルを生成する入力ベクトル生成部７０と、入力ベクトル生成部７０の生成する入力ベクトルを受けて、通常のＮＭＴと全く同様に動作し、出力された単語ベクトルを単語の形に戻した後、翻訳文である出力文５０を出力する、訓練装置４２による訓練済のＮＭＴ４０とを含む。
【００４７】
［動作］
図１〜図４を参照して、このニューラル翻訳システム３０は以下のように動作する。ニューラル翻訳システム３０の動作には大きく分けて２つのフェーズがある。第１は訓練フェーズ、第２はテストフェーズである。テストフェーズにおけるニューラル翻訳装置４４の動作は通常のＮＭＴと変わらないので、ここでは訓練フェーズにおける訓練装置４２の動作について説明する。
【００４８】
最初に複数分野の分野別訓練データが記憶装置４６に記憶されている。図４のステップ１６８で訓練装置４２がコンピュータの記憶装置上にＮＭＴ４０のための記憶領域を確保し、ステップ１６９でＮＭＴ４０のパラメータ集合θを所定の初期化方法で初期化する。訓練装置４２が記憶装置４６に接続し、重み算出部６０が記憶装置４６に記憶された分野別訓練データの各々について、その重みを式（７）により計算する。この重みは重み記憶部６２に記憶される。重み記憶部６２のデータは分野を特定する情報をキーとしてその分野に対応する重みが読出せるような構造で記憶される（以上、図４のステップ１７０）。
【００４９】
ミニバッチＮＭＴ訓練部６４は、以後、ミニバッチ形式でＮＭＴのパラメータ集合の訓練を行う。本実施の形態では、ミニバッチＮＭＴ訓練部６４は、ミニバッチとして所定数（例えば６４個）の訓練データを記憶装置４６から一度に読出すものとする。
【００５０】
すなわち、処理１７６のステップ１７９で訓練データの全体をランダムにシャッフルする。続いて、この訓練データを全て読出すまで、ステップ１８０を実行、すなわち処理１８２を繰返し実行する。
【００５１】
処理１８２のステップ１９０では、所定数（例えば６４個）の対訳文を記憶装置４６から順番に読出す。ステップ１９２では、これら対訳文の各々に対して処理１９４を実行する。
【００５２】
処理１９４では、処理対象の対訳文に対して、その対訳文が属する分野の重みを重み記憶部６２から読出す（ステップ２１０）。このために各対訳文にはその対訳文が属していた分野別訓練データの識別子が付されている。続いてステップ２１２でその重みを乗じた式（６）の目的関数により最適化勾配を計算し、記憶装置に記憶し、この対訳文に対する処理を終了する。
【００５３】
以上のステップ２１０及びステップ２１２を各対訳文に対して行えばステップ１９２は終了である。すると、続くステップ１９６において、ステップ２１２で記憶された最適化勾配を全て用いたバックプロパゲーションにより、ＮＭＴのパラメータ集合を最適化し、処理１８２を終了する。
【００５４】
訓練データの全てに対して処理１８２を行えばステップ１８０の処理が終了し、処理１７６が終了する。
【００５５】
このようにして、所定の終了条件が充足されるまで処理１７６を繰返し実行する。終了条件が成立したときのＮＭＴのパラメータ集合θを記憶装置に記憶することで、ＮＭＴの訓練が終了する。
【００５６】
＜第２の実施の形態＞
上記第１の実施の形態に示したＣＳＡ  ａｓ  ＩＷ方式では、ミニバッチの最適化勾配の計算に用いる目的関数について、対訳文が属する分野ごとに定められる重みを乗じることで、訓練データにおける各分野の訓練データの分布が各分野について均一となるようにパラメータ集合の最適化を行っている。しかし本発明はそのような実施の形態には限定されない。訓練データ内における分野別訓練データの分布が訓練データの各分野について均一となるようにニューラルネットワークのパラメータ集合の訓練を行うものであればどのような訓練方法を用いても良い。この第２の実施の形態では、目的関数に重みを乗じるのではなく、ミニバッチにおいて各分野から読出される対訳数（訓練データ）の数を分野によらず一定することでこの目的を達成する。こうした方式を、本明細書では「ＣＳＡ  ａｓ  ＢＷ」と呼ぶ。「ＢＷ」は「Ｂａｔｃｈ  Ｗｅｉｇｈｔ」の略である。
【００５７】
［構成］
図５はこの第２の実施の形態に係るニューラル翻訳システム３４０の概略構成を示す。図５を参照して、ニューラル翻訳システム３４０は、第１の実施の形態と同様、複数分野の訓練データをそれぞれ記憶する記憶装置４６と、記憶装置４６に記憶された訓練データを用い、しかし第１の実施の形態に係る訓練装置４２とは異なる方法で、第１の実施の形態でのＮＭＴ４０と同様にＮＭＴ４０の訓練を行う訓練装置３５０とを含む。図１の訓練装置４２が訓練装置３５０と入れ替わっている点だけがニューラル翻訳システム３０とニューラル翻訳システム３４０との違いである。
【００５８】
訓練装置３５０は、１回のミニバッチで各分野から読出すべき対訳数を記憶したミニバッチ対訳数記憶部３６２と、記憶装置４６とミニバッチ対訳数記憶部３６２とに接続され、一回のミニバッチで、記憶装置４６に記憶された各分野別訓練データからミニバッチ対訳数記憶部３６２により指定された数の対訳数を読出してミニバッチにより最適化する処理を実行することによりＮＭＴ４０のパラメータ集合の訓練を行うミニバッチＮＭＴ訓練部３６０とを含む。ミニバッチＮＭＴ訓練部３６０が１回のミニバッチで読出す対訳の数は、分野によらず各分野で一定数である。例えば１回のミニバッチで処理する対訳データの数が６４、分野数が８である場合には、各分野別訓練データから同数（６４／８＝８個）の対訳を読出して処理する。分野別訓練データの数が少ない場合、こうした処理を行うことで、ＮＭＴ４０のパラメータ集合の最適化のために各訓練データが使用される回数は、分野別訓練データの数が多い場合と比較して多くなる。この結果、第１の実施の形態と同様、テストデータの分布が訓練データでシミュレーションされることになる。
【００５９】
図６を参照して、この第２の実施の形態に係るニューラル翻訳システム３４０の訓練装置３５０としてコンピュータを機能させるコンピュータプログラムは、コンピュータのメモリ上に、ＮＭＴ４０の構成及びパラメータ集合を記憶するための記憶領域を確保するステップ１６８と、パラメータ集合内の各パラメータを所定の初期化方式により初期化するステップ１６９と、分野別訓練データを記憶した記憶装置４６にコンピュータを接続させるステップ３８０と、所定の終了条件が成立するまで処理３８４を繰返し実行するステップ３８２と、ステップ３８２が終了したときのＮＭＴ４０のパラメータ集合θを所定の記憶装置に記憶するステップ３８６とを含む。
【００６０】
処理３８４は、記憶装置４６に記憶された複数の分野別訓練デーの各々をランダムにシャッフルするステップ３９８と、全ての訓練データがなくなるまで以下の処理４０２を実行するステップ４００とを含む。
【００６１】
処理４０２は、複数の分野別訓練データの各々から同数（本実施の形態では８個）の訓練データである対訳文をランダムに読出すステップ４２０と、ステップ４２０で読出した対訳文の各々に対してステップ４２４の処理、すなわち式（６）で重みｗ(<x,y>)の値をいずれも１とした目的関数を用いて最適化勾配を計算し、一次的に記憶装置に記憶する処理を実行するステップ４２２と、ステップ４２２の完了後、ステップ４２４で記憶された値を全て用いてバックプロパゲーションによりＮＭＴ４０のパラメータ集合を最適化して処理４０２を終了させるステップ４２６とを含む。
【００６２】
［動作］
このニューラル翻訳システム３４０は以下のように動作する。記憶装置４６に予め各分野別の訓練データが記憶される。訓練装置３５０は、訓練装置３５０を実現するコンピュータのメモリ上に、ＮＭＴ４０の構成及びパラメータ集合を記憶するための記憶領域を確保し（ステップ１６８）、さらにパラメータ集合内の各パラメータを所定の初期化方式により初期化する（ステップ１６９）。さらにステップ３８０でコンピュータを記憶装置４６に接続し、分野別訓練データの読出可能な状態とする。
【００６３】
続いて、終了条件が成立するまで処理３８４を繰返し、続くステップ３８６で最終的なＮＭＴ４０のパラメータ集合θの値を記憶装置に記憶する。
【００６４】
処理３８４では、ステップ３９８で分野別訓練データの各々をランダムにシャッフルした後、ステップ４００で、訓練データを全て処理するまで処理４０２を繰返し行う。
【００６５】
処理４０２のステップ４２０では、最初に各分野別訓練データから図５に示すミニバッチ対訳数記憶部３６２に記録された数だけの対訳文を各分野別訓練データから読出す。すなわち各ミニバッチでは、各分野別訓練データから同数の対訳文が読出される。続いてステップ４２２で、それらミニバッチの各対訳文について、ステップ４２４を実行する。ステップ４２４では、式（６）で重みｗ(<x,y>)の値をいずれも１とした目的関数を用いて最適化勾配を計算し、一次的に記憶装置に記憶する処理を実行する。ミニバッチ内の全ての対訳文についてステップ４２４を実行すると、ステップ４２６でミニバッチ内の全対訳データに対して計算された最適化勾配を全て用いたバックプロパゲーションによりＮＭＴ４０のパラメータ集合を最適化して、処理４０２を終了する。
【００６６】
全ての訓練データに対して処理４０２が終われば、再度ステップ３８２に戻り、終了条件が成立したか否かを判定する。終了条件が成立していれば、ステップ３８６でＮＭＴ４０のパラメータ集合θを訓練済のＮＭＴ４０を特定する情報として記憶装置に保存して処理を終了する。
【００６７】
［実験結果］
上記した分野別訓練データを用いてＮＭＴの訓練を行い、その精度を非特許文献２及び非特許文献３によるものと比較した結果を次のテーブル２に示す。このテーブル２においてTest（ｂ）はテストデータとして分野別にバランスしたデータを用いたもの、Test（ｕｂ）はTestデータとして分野に関係なくランダムにサンプルしたものを示す。
【００６８】
【表２】
2019149018.tif 000011
テーブル２においてKobus et al.の方法を実行するにあたり、Kobus et al.が独自に作成したIF-TDFによる文書の分野分類器の再現ができなかった。そのため出願人において独自に考案した分野分類器を用いた。出願人が用いた分野分類器の精度は８０％程度であり、Kobus el al.において報告されたものと同等の性能を示した。ただしこの分野分類器はテストデータの分類のみに用いられ、ＮＭＴの訓練及びテストには用いなかった。ＣＳＡ法ではオラクル情報（誤りのない分類）は用いていない。
【００６９】
テーブル２において、最左列の第１行の方法は各分野別訓練データを全て用いて通常の訓練を行ったＮＭＴでありベースラインと考えられるもの、第２行及び第３行はKobus et al.（非特許文献２）及びChu et al.（非特許文献３）によるもの、第４行及び第５行は本発明の第１の実施の形態（ＣＳＡ  ａｓ  ＩＷ）及び第２の実施の形態（ＣＳＡ  ａｓ  ＢＷ）によるものの結果である。
【００７０】
第２列は開発データに対するＢＬＥＵスコア、第３列及び第４列はそれぞれ、バランスさせたテストデータ、及びバランスさせなかったテストデータに対するＢＬＥＵスコアである。
【００７１】
テーブル２によれば、いずれも分類器を用いているKobus  et  al.（非特許文献２）及びChu  et  al.（非特許文献３）は、ともにＮＭＴの性能をベースラインからわずかしか改善させることができなかった。これと比較して、本発明の第１の実施の形態及び第２の実施の形態のいずれもベースラインに対して大きな改善を示した。特に、第１の実施の形態によるＮＭＴは、Test（ｂ）ではベースラインよりＢＬＥＵスコアで４．０の改善を示し、Test（ｕｂ）でも３．６ポイントの改善を示した。
【００７２】
この結果により、各分野の訓練データに対して同じ重みを与えるようにすることで、実世界のデータ分布に対する翻訳の精度が高められることが分かる。
【００７３】
［コンピュータによる実現］
上記した実施の形態に係る訓練装置４２及び訓練装置３５０は、それぞれコンピュータハードウェアと、そのハードウェア上でＣＰＵ（中央演算処理装置）及びＧＰＵ（Graphic  Processing  Unit）により実行されるコンピュータプログラムとにより実現できる。図７及び図８に上記訓練装置４２及び訓練装置３５０を実現するコンピュータハードウェアを示す。ＧＰＵは通常は画像処理を行うために使用されるが、このようにＧＰＵを画像処理ではなく通常の演算処理に使用する技術をＧＰＧＰＵ（General-purpose  computing  on  graphics  processing  units）と呼ぶ。ＧＰＵは同種の複数の演算を同時並列的に実行できる。一方、ニューラルネットワークの訓練時には、各ノードの重み演算は単純な積和演算であり、しかもそれらは同時に実行できることが多い。したがって、ＮＭＴの訓練はＧＰＧＰＵに適している。
【００７４】
図７を参照して、このコンピュータシステム４３０は、メモリポート４５２及びＤＶＤ（Digital  Versatile  Disk）ドライブ４５０を有するコンピュータ４４０と、キーボード４４６と、マウス４４８と、モニタ４４２とを含む。
【００７５】
図８を参照して、コンピュータ４４０は、メモリポート４５２及びＤＶＤドライブ４５０に加えて、ＣＰＵ４５６及びＧＰＵ４５７と、ＣＰＵ４５６、ＧＰＵ４５７、メモリポート４５２及びＤＶＤドライブ４５０に接続されたバス４６６と、ブートプログラム等を記憶する読出専用メモリであるＲＯＭ４５８と、バス４６６に接続され、プログラム命令、システムプログラム及び作業データ等を記憶するコンピュータ読出可能な記憶媒体であるランダムアクセスメモリ（ＲＡＭ）４６０と、ハードディスク４５４を含む。コンピュータ４４０はさらに、いずれもバス４６６に接続され、他端末との通信を可能とするネットワーク４６８への接続を提供するネットワークインターフェイス（Ｉ／Ｆ）４４４と、外部との音声信号の入出力を行うための音声Ｉ／Ｆ４７０とを含む。
【００７６】
コンピュータシステム４３０を上記した実施の形態に係る訓練装置４２及び訓練装置３５０の各機能部として機能させるためのプログラムは、ＤＶＤドライブ４５０又はメモリポート４５２に装着される、いずれもコンピュータ読出可能な記憶媒体であるＤＶＤ４６２又はリムーバブルメモリ４６４に記憶され、さらにハードディスク４５４に転送される。又は、プログラムはネットワーク４６８を通じてコンピュータ４４０に送信されハードディスク４５４に記憶されてもよい。プログラムは実行の際にＲＡＭ４６０にロードされる。ＤＶＤ４６２から、リムーバブルメモリ４６４から又はネットワーク４６８を介して、直接にＲＡＭ４６０にプログラムをロードしてもよい。また、上記処理に必要なデータ（分野別訓練データ、ＮＭＴ４０の構成及びパラメータ集合等）は、ハードディスク４５４、又はＲＡＭ４６０、ＣＰＵ４５６又はＧＰＵ４５７内のレジスタ等の所定のアドレスに記憶され、ＣＰＵ４５６又はＧＰＵ４５７により処理され、プログラムにより指定されるアドレスに格納される。最終的に訓練が終了したＮＭＴのパラメータは、例えばハードディスク４５４に格納されたり、ＤＶＤドライブ４５０及びメモリポート４５２をそれぞれ介してＤＶＤ４６２又はリムーバブルメモリ４６４に格納されたりする。又は、ネットワークＩ／Ｆ４４４を介してネットワーク４６８に接続された他のコンピュータ又は記憶装置に送信される。
【００７７】
このプログラムは、コンピュータ４４０を、上記実施の形態に係る訓練装置４２及び訓練装置３５０として機能させるための複数の命令からなる命令列を含む。訓練装置４２及び訓練装置３５０における数値演算処理は、ＣＰＵ４５６及びＧＰＵ４５７を用いて行う。ＣＰＵ４５６のみを用いてもよいがＧＰＵ４５７を用いる方が高速である。コンピュータ４４０にこの動作を行わせるのに必要な基本的機能のいくつかはコンピュータ４４０上で動作するオペレーティングシステム若しくはサードパーティのプログラム又はコンピュータ４４０にインストールされる、ダイナミックリンク可能な各種プログラミングツールキット又はプログラムライブラリにより提供される。したがって、このプログラム自体はこの実施の形態のシステム、装置及び方法を実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令の内、所望の結果が得られるように制御されたやり方で適切な機能又はプログラミングツールキット又はプログラムライブラリ内の適切なプログラムを実行時に動的に呼出すことにより、上記したシステム、装置又は方法としての機能を実現する命令のみを含んでいればよい。もちろん、プログラムのみで必要な機能を全て提供してもよい。
【００７８】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。
【符号の説明】
【００７９】
３０、３４０  ニューラル翻訳システム
４０  ＮＭＴ
４２、３５０  訓練装置
４４  ニューラル翻訳装置
４６  記憶装置
４８  入力文
５０  出力文
６０  重み算出部
６２  重み記憶部
６４、３６０  ミニバッチＮＭＴ訓練部
７０  入力ベクトル生成部
１２０  入力系列処理部
１２２  出力系列処理部
１２４、１２６  単語ベクトル列
１４０  順方向ＲＮＮ系列
１４２  逆方向ＲＮＮ系列
１４４  ベクトル列
１５０  アノテーション
１６０  順方向出力ベクトル
１６２  逆方向出力ベクトル
３６２  ミニバッチ対訳数記憶部
【図１】
2019149018.tif 000012
【図２】
2019149018.tif 000013
【図３】
2019149018.tif 000014
【図４】
2019149018.tif 000015
【図５】
2019149018.tif 000016
【図６】
2019149018.tif 000017
【図７】
2019149018.tif 000018
【図８】
2019149018.tif 000019