(57)【要約】【課題】目的言語の単言語コーパスを用いてエンコーダを強化し、翻訳器全体の精度向上させるニューラル機械翻訳のモデル訓練方法と当該モデル訓練方法を実行するための機械翻訳システムを実現する。【解決手段】機械翻訳システム１０００では、目的言語の単言語コーパスを用いて、１つの目的言語データから複数の疑似原言語データを取得し、多様性を有する疑似対訳コーパスデータを大量に取得することができる。そして、機械翻訳システム１０００では、大量に取得した多様性を有する疑似対訳コーパスデータ、および、少量だが精度の高いベース対訳コーパスデータの両方を用いて、学習率を変えて、機械翻訳モデルの学習処理（訓練処理）を実行する。これにより、機械翻訳システム１０００では、非常に精度の高い学習済みモデル（機械翻訳モデル）を取得することができる。【選択図】図１
2019153023.tif 000002
【特許請求の範囲】
【請求項１】
目的言語単言語コーパスから取得した１つの目的言語データに対して機械逆翻訳処理を施すことでＮ個（Ｎ：２以上の自然数）の疑似原言語データを取得する逆翻訳部と、
前記１つの目的言語データと、前記逆翻訳部により取得された前記Ｎ個の疑似原言語データのそれぞれを組にすることでＮ組の疑似対訳データを取得する疑似対訳データ取得部と、
を備える疑似対訳データ生成装置。
【請求項２】
前記逆翻訳部は、
入力データから入力側隠れ状態データを取得するエンコーダと、
前記エンコーダにより取得された入力側隠れ状態データから出力側隠れ状態データを取得し、取得した出力側隠れ状態データが表す出力単語分布の中からランダムにデータを選択し、選択したデータに対応する単語データを出力データとして出力するデコーダと、
を備える、
請求項１に記載の疑似対訳データ生成装置。
【請求項３】
前記疑似対訳データを記憶する疑似対訳コーパス記憶部をさらに備え、
前記疑似対訳データ取得部は、
前記逆翻訳部が取得した前記疑似原言語データの尤度および信頼度の少なくとも一方に基づいて、前記Ｎ組の疑似対訳データに対してフィルタリング処理を行い、フィルタリング処理後の疑似対訳データを前記疑似対訳コーパス記憶部に記憶させる、
請求項１または２に記載の疑似対訳データ生成装置。
【請求項４】
ベース対訳コーパスから取得したベース対訳データと、前記ベース対訳データに対応する第１学習率とを対応付けて第１バッチ集合データを生成し、
請求項１から３のいずれかに記載の疑似対訳データ生成装置により生成された疑似対訳データと、前記疑似対訳データに対応する第２学習率とを対応付けて第２バッチ集合データを生成し、
前記第１バッチ集合データと前記第２バッチ集合データを含む合成対訳データを取得する合成対訳データ取得部と、
前記合成対訳データを用いて学習することで機械翻訳処理用の学習済みモデルを取得するとともに、前記学習済みモデルにより、原言語データを目的言語データに機械翻訳する機械翻訳処理を実行する翻訳部であって、前記第１バッチ集合データを用いた学習処理では前記第１学習率により前記学習処理を実行し、前記第２バッチ集合データを用いた学習処理では前記第２学習率により前記学習処理を実行する前記翻訳部と、
を備える機械翻訳処理装置。
【請求項５】
前記第１学習率は、前記第２学習率よりも大きな値である、
請求項４に記載の機械翻訳処理装置。
【請求項６】
目的言語単言語コーパスから取得した１つの目的言語データに対して機械逆翻訳処理を施すことでＮ個（Ｎ：２以上の自然数）の疑似原言語データを取得する逆翻訳ステップと、
前記１つの目的言語データと、前記逆翻訳ステップにより取得された前記Ｎ個の疑似原言語データのそれぞれを組にすることでＮ組の疑似対訳データを取得する疑似対訳データ取得ステップと、
を備える疑似対訳データ生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンコーダ・デコーダ方式のニューラル機械翻訳技術に関する。
【背景技術】
【０００２】
近年の機械翻訳は、エンコーダ・デコーダ方式のニューラル機械翻訳(ＮＭＴ：Ｎｅｕｒａｌ  Ｍａｃｈｉｎｅ  Ｔｒａｎｓｌａｔｉｏｎ)が主流となってきている。エンコーダ・デコーダ方式のニューラル機械翻訳では、入力文（原文）をエンコーダによって、状態と呼ばれる数値ベクトルに符号化し、当該状態に基づいて、デコーダが翻訳文を生成する。エンコーダ・デコーダ方式のニューラル機械翻訳は、従来の統計翻訳方式に比べ、高品質な翻訳文を生成することが可能であるが、その一方で、エンコーダ・デコーダ方式のニューラル機械翻訳のモデルを訓練するために大量の対訳文が必要である。しかし、大規模対訳コーパスは、単言語コーパスに比べ、一般的に入手が難しい。
【０００３】
この問題に対処するために、非特許文献１に開示の技術では、目的言語の単言語コーパスを原言語へ逆翻訳して疑似対訳文を生成し、生成した疑似対訳文を対訳コーパスと混合して訓練する方法を採用している。この方法の利点は、疑似対訳文といっても、目的言語側の文は人が作成した正しい文であるため、デコーダは正しく訓練されることである。そのため、上記方法を用いることで、単言語コーパスから言語モデルを構築する方法を用いる場合に比べても、安定して精度の高い機械翻訳のためのモデルを構築することが可能となる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Rico Sennrich, Barry Haddow, and Alexandra Birch. 2016a. Improving neural machine translation models with monolingual data. In Proc. of ACL-2016 (Volume 1: Long Papers), pages 86-96.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献１に開示されている方法では、エラーを含む疑似原文を用いて訓練するため、エンコーダの精度向上が実現されていない可能性がある。
【０００６】
そこで本発明は、上記課題に鑑み、目的言語の単言語コーパスを用いてエンコーダ（アテンションを含む）を強化し、翻訳器全体の精度向上させるニューラル機械翻訳のモデル訓練方法と当該モデル訓練方法を実行するための機械翻訳システムを実現することを目的とする。また、本発明は、上記機械翻訳システムを構成する疑似対訳データ生成装置、機械翻訳処理装置、および、上記機械翻訳システムで実行される疑似対訳データ生成方法を実現することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するための第１の発明は、逆翻訳部と、疑似対訳データ取得部と、を備える疑似対訳データ生成装置である。
【０００８】
逆翻訳部は、目的言語単言語コーパスから取得した１つの目的言語データに対して機械逆翻訳処理を施すことでＮ個（Ｎ：２以上の自然数）の疑似原言語データを取得する。
【０００９】
疑似対訳データ取得部と、１つの目的言語データと、逆翻訳部により取得されたＮ個の疑似原言語データのそれぞれを組にすることでＮ組の疑似対訳データを取得する。
【００１０】
これにより、この疑似対訳データ生成装置では、目的言語の単言語コーパスを用いて、１つの目的言語データから複数の疑似原言語データを取得し、多様性を有する疑似対訳コーパスデータを大量に取得することができる。
【００１１】
第２の発明は、第１の発明であって、逆翻訳部は、エンコーダと、デコーダとを備える。
【００１２】
エンコーダは、入力データから入力側隠れ状態データを取得する。
【００１３】
デコーダは、エンコーダにより取得された入力側隠れ状態データから出力側隠れ状態データを取得し、取得した出力側隠れ状態データが表す出力単語分布の中からランダムにデータを選択し、選択したデータに対応する単語データを出力データとして出力する。
【００１４】
これにより、この疑似対訳データ生成装置では、デコーダから出力されるデータは、出力単語の事後確率が最大確率となるデータに限定されず、出力単語の事後確率が低い（尤度が低い）データも出力されることになる。その結果、この疑似対訳データ生成装置では、従来取得することが困難であった多様性を有する疑似対訳データを取得することができる。
【００１５】
なお、「入力側隠れ状態データ」とは、エンコーダにより、入力データをエンコード処理したときに取得される内部状態を示すデータである。「入力側隠れ状態データ」は、例えば、入力データに対して、埋込処理により取得した分散表現データを、さらに、ＬＳＴＭ層による処理を実行したときに得られるデータ（内部状態を表すデータ）である。
【００１６】
第３の発明は、第１または第２の発明であって、疑似対訳データを記憶する疑似対訳コーパス記憶部をさらに備える。
【００１７】
疑似対訳データ取得部は、逆翻訳部が取得した疑似原言語データの尤度および信頼度の少なくとも一方に基づいて、Ｎ組の疑似対訳データに対してフィルタリング処理を行い、フィルタリング処理後の疑似対訳データを疑似対訳コーパス記憶部に記憶させる。
【００１８】
これにより、尤度や信頼度に基づいて、機械翻訳のモデル学習を行う際に効率良く学習処理が実行される疑似対訳データを取得することができる。
【００１９】
第４の発明は、合成対訳データ取得部と、翻訳部と、を備える機械翻訳処理装置である。
【００２０】
合成対訳データ取得部は、ベース対訳コーパスから取得したベース対訳データと、当該ベース対訳データに対応する第１学習率とを対応付けて第１バッチ集合データを生成し、第１から第３のいずれかの発明である疑似対訳データ生成装置により生成された疑似対訳データと、当該疑似対訳データに対応する第２学習率とを対応付けて第２バッチ集合データを生成する。そして、合成対訳データ取得部は、第１バッチ集合データと第２バッチ集合データを含む合成対訳データを取得する。
【００２１】
翻訳部は、合成対訳データを用いて学習することで機械翻訳処理用の学習済みモデルを取得するとともに、学習済みモデルにより、原言語データを目的言語データに機械翻訳する機械翻訳処理を実行する。また、翻訳部は、第１バッチ集合データを用いた学習処理では第１学習率により学習処理を実行し、第２バッチ集合データを用いた学習処理では第２学習率により学習処理を実行する。
【００２２】
この機械翻訳処理装置では、目的言語の単言語コーパスを用いて、１つの目的言語データから複数の疑似原言語データを取得することで大量に取得した多様性を有する疑似対訳コーパスデータを用いて、機械翻訳の学習モデルを構築するための学習処理（訓練処理）を効率良く行うことができる。そして、この機械翻訳処理装置では、大量に取得した多様性を有する疑似対訳コーパスデータ、および、少量だが精度の高いベース対訳コーパスデータの両方を用いて、学習率を変えて、機械翻訳モデルの学習処理（訓練処理）を実行する。これにより、この機械翻訳処理装置では、非常に精度の高い学習済みモデル（機械翻訳モデル）を取得することができる。
【００２３】
第５の発明は、第４の発明であって、第１学習率は、第２学習率よりも大きな値である。
【００２４】
これにより、この機械翻訳処理装置では、少量だが精度の高いベース対訳コーパスデータを用いた学習処理（訓練処理）の学習率を高くし、大量だが精度がベース対訳コーパスデータよりも低い疑似対訳コーパスデータを用いた学習処理（訓練処理）の学習率を低くすることができる。その結果、この機械翻訳処理装置では、精度の高い機械翻訳学習済みモデルを取得することができる。
【００２５】
第６の発明は、逆翻訳ステップと、疑似対訳データ取得ステップと、を備える疑似対訳データ生成方法である。
【００２６】
逆翻訳ステップは、目的言語単言語コーパスから取得した１つの目的言語データに対して機械逆翻訳処理を施すことでＮ個（Ｎ：２以上の自然数）の疑似原言語データを取得する。
【００２７】
疑似対訳データ取得ステップは、１つの目的言語データと、逆翻訳ステップにより取得されたＮ個の疑似原言語データのそれぞれを組にすることでＮ組の疑似対訳データを取得する。
【００２８】
これにより、第１の発明と同様の効果を奏する疑似対訳データ生成方法を実現することができる。
【発明の効果】
【００２９】
本発明によれば、目的言語の単言語コーパスを用いてエンコーダ（アテンションを含む）を強化し、翻訳器全体の精度向上させるニューラル機械翻訳のモデル訓練方法と当該モデル訓練方法を実行するための機械翻訳システムを実現することができる。また、本発明によれば、上記機械翻訳システムを構成する疑似対訳データ生成装置、機械翻訳処理装置、および、上記機械翻訳システムで実行される疑似対訳データ生成方法を実現することができる。
【図面の簡単な説明】
【００３０】
【図１】第１実施形態に係る機械翻訳システム１０００の概略構成図。
【図２】第１実施形態の疑似対訳データ生成部１の逆翻訳部１１の概略構成図。
【図３】第１実施形態の第１機械翻訳処理部１１３のエンコーダ１１３１の概略構成図。
【図４】第１実施形態の第１機械翻訳処理部１１３のアテンション部ＡＴＮ１の概略構成図。
【図５】第１実施形態の第１機械翻訳処理部１１３のデコーダ１１３２の概略構成図。
【図６】第１実施形態の第１機械翻訳処理部１１３における機械翻訳処理を模式的に示した遷移図。
【図７】第１実施形態の翻訳部３の概略構成図。
【図８】第１実施形態の第２機械翻訳処理部３２のエンコーダ３２１の概略構成図。
【図９】第１実施形態の第２機械翻訳処理部３２のアテンション部ＡＴＮ１Ａの概略構成図。
【図１０】第１実施形態の第２機械翻訳処理部３２のデコーダ３２２の概略構成図。
【図１１】第１実施形態の第２機械翻訳処理部３２における機械翻訳処理を模式的に示した遷移図。
【図１２】逆翻訳部１１により取得した疑似原言語群データＤ１＿ｅ＿Ｎの一例を示す図。
【図１３】ＣＰＵバス構成を示す図。
【図１４】疑似対訳データ生成方法のフローチャート、および、機械翻訳の学習モデルを構築するための学習処理（訓練処理）方法のフローチャート。
【発明を実施するための形態】
【００３１】
［第１実施形態］
第１実施形態について、図面を参照しながら、以下説明する。
【００３２】
＜１．１：機械翻訳システムの構成＞
図１は、第１実施形態に係る機械翻訳システム１０００の概略構成図である。
【００３３】
図２は、第１実施形態の疑似対訳データ生成部１の逆翻訳部１１の概略構成図である。
【００３４】
図３は、第１実施形態の第１機械翻訳処理部１１３のエンコーダ１１３１の概略構成図である。
【００３５】
図４は、第１実施形態の第１機械翻訳処理部１１３のアテンション部ＡＴＮ１の概略構成図である。
【００３６】
図５は、第１実施形態の第１機械翻訳処理部１１３のデコーダ１１３２の概略構成図である。
【００３７】
図６は、第１実施形態の第１機械翻訳処理部１１３における機械翻訳処理を模式的に示した遷移図である。
【００３８】
図７は、第１実施形態の翻訳部３の概略構成図である。
【００３９】
図８は、第１実施形態の第２機械翻訳処理部３２のエンコーダ３２１の概略構成図である。
【００４０】
図９は、第１実施形態の第２機械翻訳処理部３２のアテンション部ＡＴＮ１Ａの概略構成図である。
【００４１】
図１０は、第１実施形態の第２機械翻訳処理部３２のデコーダ３２２の概略構成図である。
【００４２】
図１１は、第１実施形態の第２機械翻訳処理部３２における機械翻訳処理を模式的に示した遷移図である。
【００４３】
機械翻訳システム１０００は、図１に示すように、疑似対訳データ生成部１と、合成対訳データ取得部２と、翻訳部３と、ベース対訳コーパス記憶部ＤＢ＿ｂと、目的言語単言語コーパス記憶部ＤＢ＿ｍと、疑似対訳コーパス記憶部ＤＢ＿ｐとを備える。
【００４４】
疑似対訳データ生成部１は、図１に示すように、逆翻訳部１１と、疑似対訳データ取得部１２とを備える。
【００４５】
逆翻訳部１１は、ベース対訳コーパス記憶部ＤＢ＿ｂからベース対訳データＤｂ１＿ｅｊを入力し、また、目的言語単言語コーパス記憶部ＤＢ＿ｍから目的言語データＤ１＿ｊを入力する。逆翻訳部１１は、ベース対訳データＤｂ＿ｅｊを用いて学習処理を実行し、目的言語を原言語に機械翻訳する学習済みモデルを取得する。そして、逆翻訳部１１は、当該学習済みモデルを用いて、１つの目的言語データＤ１＿ｊに対して、機械翻訳処理を実行し、Ｎ個（Ｎ：２以上の自然数）の疑似原言語データを疑似原言語群データＤ１＿ｅ＿Ｎとして取得する。そして、逆翻訳部１１は、取得した疑似原言語群データＤ１＿ｅ＿Ｎを疑似対訳データ取得部１２に出力する。
【００４６】
逆翻訳部１１は、図２に示すように、データ入力処理部１１１と、制御部１１２と、第１機械翻訳処理部１１３と、データ出力処理部１１４とを備える。
【００４７】
データ入力処理部１１１は、目的言語単言語コーパス記憶部ＤＢ＿ｍから目的言語データＤ１＿ｊを読み出すとともに、目的言語データＤ１＿ｊを読み出したことを示すデータＩｎｆｏ１を制御部１１２に出力する。また、データ入力処理部１１１は、目的言語データＤ１＿ｊを第１機械翻訳処理部１１３で機械翻訳処理ができるデータ形式を有するデータｘ１…Ｓに変換し、変換したデータｘ１…Ｓを第１機械翻訳処理部１１３に出力する。なお、データｘ１…Ｓは、単語列のようなシンボルの系列であり、その最終シンボルは文末記号（ＥＯＳと表す）であり、ＥＯＳを含むシンボル数はＳとする。
【００４８】
制御部１１２は、データ入力処理部１１１から出力されるデータＩｎｆｏ１を入力し、当該データＩｎｆｏ１に基づいて、制御信号Ｃｔｌ１を生成し、生成した制御信号Ｃｔｌ１を第１機械翻訳処理部１１３およびデータ出力処理部１１４に出力する。制御部１１２は、第１機械翻訳処理部１１３に対して制御信号Ｃｔｌ１を出力し、第１機械翻訳処理部１１３において、１つの目的言語データＤ１＿ｊに対して、複数回（Ｎ回）、機械翻訳処理が実行されるように第１機械翻訳処理部１１３を制御する。また、制御部１１２は、データ出力処理部１１４に対して制御信号Ｃｔｌ１を出力し、データ出力処理部１１４において、１つの目的言語データＤ１＿ｊに対して、Ｎ個の機械翻訳処理結果データ（データＤ１＿ｅ）が取得されるようにデータ出力処理部１１４を制御する。
【００４９】
第１機械翻訳処理部１１３は、エンコーダ・デコーダ方式のニューラル機械翻訳処理を実行する機能部である。第１機械翻訳処理部１１３は、学習モード（学習処理を実行するモード）において、ベース対訳コーパスＤＢ＿ｂからベース対訳データＤｂ＿ｅｊを読み出し、当該ベース対訳データＤｂ＿ｅｊを学習データとして学習処理を実行し、学習済みモデルを構築する。第１機械翻訳処理部１１３は、実行モード（学習済みモデルを用いて機械翻訳処理を実行するモード）において、データ入力処理部１１１から入力したデータｘ１…Ｓに対して機械翻訳処理を実行し、出力データｙ1…Ｔを取得する。なお、データｙ1…Ｔは、単語列のようなシンボルの系列であり、その最終シンボルは文末記号（ＥＯＳ）であり、ＥＯＳを含むシンボル数はＴとする。そして、第１機械翻訳処理部１１３は、取得した出力データｙ1…Ｔをデータ出力処理部１１４に出力する。第１機械翻訳処理部１１３は、制御部１１２から出力される制御信号Ｃｔｌ１に基づいて、１つの目的言語データＤ１＿ｊに対して、複数回、機械翻訳処理を実行する。
【００５０】
第１機械翻訳処理部１１３は、図３〜図５に示すように、エンコーダ１１３１と、デコーダ１１３２と、アテンション部ＡＴＮ１とを備える。
【００５１】
エンコーダ１１３１は、エンコーダ側埋込層ｅ１と、エンコーダ側ＬＳＴＭ層（ＬＳＴＭ：Ｌｏｎｇ  ｓｈｏｒｔ−ｔｅｒｍ  ｍｅｍｏｒｙ）ｅ２と、保持部ｅ３とを備える。
【００５２】
エンコーダ側埋込層ｅ１は、入力データｘ１…Ｓのうちの１つのシンボルｘｓに対して、埋め込み処理を行うための行列を用いて、行列変換することで、分散表現データＸｖｓを取得する。そして、エンコーダ側埋込層ｅ１は、取得した分散表現データＸｖｓをエンコーダ側ＬＳＴＭ層ｅ２に出力する。
【００５３】
エンコーダ側ＬＳＴＭ層ｅ２は、分散表現データＸｖｓと、保持部ｅ３から出力される時刻ｓ−１の入力側隠れ状態データｈｉｓ−１とを入力する。エンコーダ側ＬＳＴＭ層ｅ２は、分散表現データＸｖｓと入力側隠れ状態データｈｉｓ−１とから、時刻ｓの入力側隠れ状態データｈｉｓを取得する。そして、エンコーダ側ＬＳＴＭ層ｅ２は、取得した入力側隠れ状態データｈｉｓを、保持部ｅ３とアテンション部ＡＴＮ１に出力する。
【００５４】
保持部ｅ３は、エンコーダ側ＬＳＴＭ層ｅ２から出力される時刻ｓの入力側隠れ状態データｈｉｓを入力し、記憶保持するともに、現時刻の１つ前の時刻ｓ−１の入力側隠れ状態データｈｉｓ−１をエンコーダ側ＬＳＴＭ層ｅ２に出力する。なお、時刻ｓは、現在処理対象となっているデータが入力された時刻であり、時刻ｓ−１は、時刻ｓの入力の１つ前のシンボルが入力されたときの時刻であり、時刻ｓ＋１は、時刻ｓの１つ後のシンボルが入力されたときの時刻である。
【００５５】
エンコーダ１１３１は上記処理を時刻１からＳまで繰り返し、時刻Ｓに達したとき、エンコーダ側ＬＳＴＭ層ｅ２から出力された入力側隠れ状態データｈｉＳをデコーダ１１３２に出力する。
【００５６】
デコーダ１１３２は、デコーダ側埋込層ｄ０と、デコーダ側ＬＳＴＭ層ｄ１と、保持部ｄ２と、サンプリング部ｄ３と、保持部ｄ４とを備える。
【００５７】
デコーダ１１３２は、まずエンコーダ１１３１から出力された入力側隠れ状態データｈｉＳを、出力側隠れ状態データの初期値ｈｏ０として保持部ｄ２に記録する。また、文開始記号（ＢＯＳ）を、出力シンボルの初期値ｙ０として保持部ｄ４に保存する。
【００５８】
デコーダ側埋込層ｄ０は、ある時刻ｔの一つ前の時刻ｔ−１に対して、保持部ｄ２から時刻ｔ−１における出力データｙｔ−１を取得し、埋め込み処理を行うための行列を用いて、行列変換することで、分散表現データＹｖｔ−１を取得する。そして、デコーダ側埋込層ｄ０は、取得した分散表現データＹｖｔ−１をデコーダ側ＬＳＴＭ層ｄ１に出力する。
【００５９】
デコーダ側ＬＳＴＭ層ｄ１は、アテンション部ＡＴＮ１から出力されるコンテキスト状態データｃｔと、保持部ｄ２から出力される時刻ｔ−１の出力側隠れ状態データｈｏｔ−１と、保持部ｄ４から出力される時刻ｔ−１の分散表現データＹｖｔ−１と、を入力する。デコーダ側ＬＳＴＭ層ｄ１は、コンテキスト状態データｃｔと、出力側隠れ状態データｈｏｔ−１と、分散表現データＹｖｔ−１とから、時刻ｔの出力側隠れ状態データｈｏｔを取得し、取得した出力側隠れ状態データｈｏｔをサンプリング部ｄ３、保持部ｄ２、および、アテンション部ＡＴＮ１に出力する。
【００６０】
保持部ｄ２は、デコーダ側ＬＳＴＭ層ｄ１から出力される時刻ｔの出力側隠れ状態データｈｏｔを入力し、記憶保持するともに、時刻ｔ−１の出力側隠れ状態データｈｏｔ−１をデコーダ側ＬＳＴＭ層ｄ１に出力する。
【００６１】
サンプリング部ｄ３は、デコーダ側ＬＳＴＭ層ｄ１から出力される出力側隠れ状態データｈｏｔを入力する。サンプリング部ｄ３は、出力側隠れ状態データｈｏｔから、時刻ｔの出力シンボルｙｔを取得し、取得した出力シンボルｙｔをデータ出力処理部１１４および保持部ｄ４に出力する。
【００６２】
保持部ｄ４は、サンプリング部ｄ３から出力される時刻ｔの出力シンボルｙｔを入力し、記憶保持するともに、時刻ｔ−１の出力シンボルｙｔ−１をデコーダ側埋込層ｄ０に出力する。
【００６３】
アテンション部ＡＴＮ１は、図４に示すように、保持部ａ１とコンテキスト算出部ａ２とを備える。
【００６４】
保持部ａ１は、エンコーダから出力される入力側隠れ状態データｈｉｓを、１からＳまでのすべての時刻ｓについて記録する。１からＳまでのすべての時刻における入力側隠れ状態データをまとめてＨｉとする。
【００６５】
コンテキスト算出部ａ２は、保持部ａ１が保持するすべての時刻の入力側隠れ状態データＨｉと、デコーダ側ＬＳＴＭ層ｄ１から出力される出力側隠れ状態データｈｏｔ−１とを入力する。コンテキスト算出部ａ２は、すべての時刻の入力側隠れ状態データＨｉと、出力側隠れ状態データｈｏｔ−１とから、時刻ｔのコンテキスト状態データｃｔを取得する。そして、コンテキスト算出部ａ２は、取得したコンテキスト状態データｃｔをデコーダ側ＬＳＴＭ層ｄ１に出力する。
【００６６】
第１機械翻訳処理部１１３は、上記のように構成され、図６に示すような状態遷移により機械翻訳処理を実行する。そして出力シンボルｙｔが文末記号ＥＯＳとなったら、出力データのシンボル数Ｔにｔを設定し、出力データｙ１…Ｔを取得する。
【００６７】
データ出力処理部１１４は、第１機械翻訳処理部１１３から出力される出力データｙ１…Ｔと、制御部１１２から出力される制御信号Ｃｔｌ１とを入力する。データ出力処理部１１４は、データＤ１＿ｊに対応する機械翻訳結果データが取得された後、取得したデータｙ１…Ｔから、データＤ１＿ｊに対応する機械翻訳結果データであるデータＤ１＿ｅを取得する。
【００６８】
データ出力処理部１１４は、制御信号Ｃｔｌ１に基づいて、Ｎ個の機械翻訳結果データＤ１＿ｅを取得した後、当該Ｎ個の機械翻訳結果データＤ１＿ｅをまとめたデータを疑似原言語群データＤ１＿ｅ＿Ｎとして、疑似対訳データ取得部１２に出力する。
【００６９】
疑似対訳データ取得部１２は、目的言語単言語コーパス記憶部ＤＢ＿ｍから目的言語データＤ１＿ｊを入力するとともに、逆翻訳部１１から出力される疑似原言語群データＤ１＿ｅ＿Ｎを入力する。疑似対訳データ取得部１２は、目的言語データＤ１＿ｊと、疑似原言語群データＤ１＿ｅ＿Ｎに含まれるＮ個の疑似原言語データＤ１＿ｅのそれぞれをペアにしたデータを生成し、生成したＮ組のデータを疑似対訳データＤｐ１＿ｅｊ＿Ｎとして、疑似対訳コーパス記憶部ＤＢ＿ｐに出力する。
【００７０】
合成対訳データ取得部２は、疑似対訳コーパス記憶部ＤＢ＿ｐから疑似対訳データＤｐ２＿ｅｊを読み出すとともに、ベース対訳コーパスＤＢ＿ｂからベース対訳データＤｂ２＿ｅｊを読み出す。合成対訳データ取得部２は、学習率ηを対応付けながら、疑似対訳データＤｐ２＿ｅｊと、ベース対訳データＤｂ２＿ｅｊとに対して対訳データを合成する処理を実行し、合成対訳データＤ２＿ｅｊを取得する。そして、合成対訳データ取得部２は、学習率ηを対応付けた合成対訳データＤ２＿ｅｊを翻訳部３に出力する。
【００７１】
翻訳部３は、図７に示すように、学習率調整部３０と、入力データ変換部３１と、第２機械翻訳処理部３２と、出力データ変換部３３とを備える。
【００７２】
学習率調整部３０は、合成対訳データ取得部２から出力される学習率ηを対応付けた合成対訳データＤ２＿ｅｊを入力する。学習率調整部３０は、エンコーダ３２１およびデコーダ３２２に、ベース対訳コーパスＤＢ＿ｂから取得した対訳データを出力する場合、出力学習率η＿ｏｕｔを対応する学習率η（例えば、η０）に設定して出力する。一方、学習率調整部３０は、エンコーダ３２１およびデコーダ３２２に、疑似対訳コーパス記憶部ＤＢ＿ｐから取得した対訳データを出力する場合、出力学習率η＿ｏｕｔを対応する学習率η（例えば、η０／Ｎ）に設定して出力する。なお、学習率調整部３０は、出力学習率η＿ｏｕｔをアテンション部ＡＴＮ１にも出力する。
【００７３】
入力データ変換部３１は、原言語データＤｉｎ＿ｅを第２機械翻訳処理部３２で機械翻訳処理ができるデータ形式を有するデータｘ１．．．Ｓに変換し、変換したデータｘ１．．．Ｓを第２機械翻訳処理部３２に出力する。なお、データｘ１…Ｓは、単語列のようなシンボルの系列であり、その最終シンボルは文末記号（ＥＯＳと表す）であり、ＥＯＳを含むシンボル数はＳとする。
【００７４】
第２機械翻訳処理部３２は、図８〜図１０に示すように、エンコーダ３２１と、デコーダ３２２と、アテンション部ＡＴＮ１Ａと、を備える。
【００７５】
エンコーダ３２１は、エンコーダ側埋込層ｅ１と、エンコーダ側ＬＳＴＭ層（ＬＳＴＭ：Ｌｏｎｇ  ｓｈｏｒｔ−ｔｅｒｍ  ｍｅｍｏｒｙ）ｅ２と、保持部ｅ３とを備える。また、エンコーダ３２１は、学習率調整部３０から出力される出力学習率η＿ｏｕｔを入力し、学習時において、出力学習率η＿ｏｕｔにより、学習（パラメータの調整）を行う。
【００７６】
エンコーダ側埋込層ｅ１は、入力データｘ１…Ｓのうちの１つのシンボルｘｓに対して、埋め込み処理を行うための行列を用いて、行列変換することで、分散表現データＸｖｓを取得する。そして、エンコーダ側埋込層ｅ１は、取得した分散表現データＸｖｓをエンコーダ側ＬＳＴＭ層ｅ２に出力する。
【００７７】
エンコーダ側ＬＳＴＭ層ｅ２は、分散表現データＸｖｓと、保持部ｅ３から出力される時刻ｓ−１の入力側隠れ状態データｈｉｓ−１とを入力する。エンコーダ側ＬＳＴＭ層ｅ２は、分散表現データＸｖｓと入力側隠れ状態データｈｉｓ−１とから、時刻ｓの入力側隠れ状態データｈｉｓを取得する。そして、エンコーダ側ＬＳＴＭ層ｅ２は、取得した入力側隠れ状態データｈｉｓを、保持部ｅ３とアテンション部ＡＴＮ１Ａとデコーダ側ＬＳＴＭ層ｄ１に出力する。
【００７８】
保持部ｅ３は、エンコーダ側ＬＳＴＭ層ｅ２から出力される時刻ｓの入力側隠れ状態データｈｉｓを入力し、記憶保持するともに、現時刻の１つ前の時刻ｓ−１の入力側隠れ状態データｈｉｓ−１をエンコーダ側ＬＳＴＭ層ｅ２に出力する。
【００７９】
エンコーダ３２１は上記処理を時刻１からＳまで繰り返し、時刻Ｓに達したとき、エンコーダ側ＬＳＴＭ層ｅ２から出力された入力側隠れ状態データｈｉＳをデコーダ３２２に出力する。
【００８０】
デコーダ３２２は、デコーダ側埋込層ｄ０と、デコーダ側ＬＳＴＭ層ｄ１と、保持部ｄ２と、最大確率出力部ｄ３Ａと、保持部ｄ４とを備える。また、デコーダ３２２は、学習率調整部３０から出力される出力学習率η＿ｏｕｔを入力し、学習時において、出力学習率η＿ｏｕｔにより、学習（パラメータの調整）を行う。
【００８１】
デコーダ３２２は、まずエンコーダ３２１から出力された入力側隠れ状態データｈｉＳを、出力側隠れ状態データの初期値ｈｏ０として保持部ｄ２に記録する。また、文開始記号（ＢＯＳ）を、出力シンボルの初期値ｙ０として保持部ｄ４に保存する。
【００８２】
デコーダ側埋込層ｄ０は、ある時刻ｔの一つ前の時刻ｔ−１に対して、保持部ｄ２から時刻ｔ−１における出力シンボルｙｔ−１を取得し、埋め込み処理を行うための行列を用いて、行列変換することで、分散表現データＹｖｔ−１を取得する。そして、デコーダ側埋込層ｄ０は、取得した分散表現データＹｖｔ−１をデコーダ側ＬＳＴＭ層ｄ１に出力する。
【００８３】
デコーダ側ＬＳＴＭ層ｄ１は、アテンション部ＡＴＮ１Ａから出力されるコンテキスト状態データｃｔと、保持部ｄ２から出力される時刻ｔ−１の出力側隠れ状態データｈｏｔ−１と、保持部ｄ４から出力される時刻ｔ−１の分散表現データＹｖｔ−１と、を入力する。デコーダ側ＬＳＴＭ層ｄ１は、コンテキスト状態データｃｔと、出力側隠れ状態データｈｏｔ−１と、分散表現データＹｖｔ−１とから、時刻ｔの出力側隠れ状態データｈｏｔを取得し、取得した出力側隠れ状態データｈｏｔを最大確率出力部ｄ３Ａ、保持部ｄ２、および、アテンション部ＡＴＮ１Ａに出力する。
【００８４】
保持部ｄ２は、デコーダ側ＬＳＴＭ層ｄ１から出力される時刻ｔの出力側隠れ状態データｈｏｔを入力し、記憶保持するともに、時刻ｔ−１の出力側隠れ状態データｈｏｔ−１をデコーダ側ＬＳＴＭ層ｄ１に出力する。
【００８５】
最大確率出力部ｄ３Ａは、デコーダ側ＬＳＴＭ層ｄ１から出力される出力側隠れ状態データｈｏｔを入力する。最大確率出力部ｄ３Ａは、出力側隠れ状態データｈｏｔから、まず時刻ｔの単語出力分布Ｙｏｔを算出し、単語出力分布Ｙｏｔから出力シンボルｙｔを取得し、取得した出力シンボルｙｔをデータ出力処理部１１４および保持部ｄ４に出力する。なお、単語出力分布Ｙｏｔは、すべての出力シンボル候補を事後確率分布で示したデータであり、最大確率出力部ｄ３Ａは、最大確率となるデータを単語出力分布Ｙｏｔの中から選択し、選択したデータに対応する出力シンボルｙｔを出力する。
【００８６】
保持部ｄ４は、最大確率出力部ｄ３Ａから出力される時刻ｔの出力シンボルｙｔを入力し、記憶保持するともに、時刻ｔ−１の出力シンボルｙｔ−１をデコーダ側ＬＳＴＭ層ｄ１に出力する。
【００８７】
アテンション部ＡＴＮ１Ａは、図９に示すように、保持部ａ１とコンテキスト算出部ａ２とを備える。
【００８８】
保持部ａ１は、エンコーダから出力される入力側隠れ状態データｈｉｓを、１からＳまでのすべての時刻ｓについて記録する。１からＳまでのすべての時刻における入力側隠れ状態データをまとめてＨｉとする。
【００８９】
コンテキスト算出部ａ２は、保持部ａ１が保持するすべての時刻の入力側隠れ状態データＨｉと、デコーダ側ＬＳＴＭ層ｄ１から出力される出力側隠れ状態データｈｏｔ−１と、学習率調整部３０から出力される出力学習率η＿ｏｕｔとを入力する。コンテキスト算出部ａ２は、すべての時刻の入力側隠れ状態データＨｉと、出力側隠れ状態データｈｏｔ−１とから、時刻ｔのコンテキスト状態データｃｔを取得する。そして、コンテキスト算出部ａ２は、取得したコンテキスト状態データｃｔをデコーダ側ＬＳＴＭ層ｄ１に出力する。アテンション部ＡＴＮ１Ａは、学習時において、出力学習率η＿ｏｕｔにより、学習（パラメータの調整）を行う。
【００９０】
第２機械翻訳処理部３２は、上記のように構成され、図１１に示すような状態遷移により機械翻訳処理を実行する。そして出力シンボルｙｔが文末記号ＥＯＳとなったら、出力データのシンボル数Ｔにｔを設定し、出力データｙ１…Ｔを取得する。
【００９１】
出力データ変換部３３は、第２機械翻訳処理部３２から出力される出力データｙ１…Ｔを入力する。出力データ変換部３３は、ｙ１から順番に第２機械翻訳処理部３２から出力される出力シンボルｙｔを取得し続けるが、ｙｔが文末記号（ＥＯＳ）となった時点で、データＤｉｎ＿ｅに対応する機械翻訳結果データがそろったとみなして、Ｔに出力シンボル数を設定する。そして、出力データ変換部３３は、原言語データＤｉｎ＿ｅに対応する機械翻訳結果データが取得された後、取得したデータｙ１…Ｔから、目的言語データＤｏｕｔ＿ｊを取得し出力する。
【００９２】
ベース対訳コーパス記憶部ＤＢ＿ｂは、例えば、人により生成された原言語と目的言語との対訳コーパスデータを記憶する。したがって、ベース対訳コーパス記憶部ＤＢ＿ｂに記憶されている対訳コーパスデータは、高精度の対訳データである。ベース対訳コーパス記憶部ＤＢ＿ｂは、例えば、データベースにより実現される。
【００９３】
目的言語単言語コーパス記憶部ＤＢ＿ｍは、目的言語の単言語のコーパスデータを記憶する。目的言語単言語コーパス記憶部ＤＢ＿ｍは、例えば、データベースにより実現される。
【００９４】
疑似対訳コーパス記憶部ＤＢ＿ｐは、疑似対訳データ取得部１２から出力される疑似対訳データＤｐ１＿ｅｊ＿Ｎを記憶する。
【００９５】
＜１．２：機械翻訳システムの動作＞
以上のように構成された機械翻訳システム１０００の動作について説明する。
【００９６】
（１．２．１：疑似対訳データ生成処理）
まず、機械翻訳システム１０００における疑似対訳データ生成処理について、説明する。
【００９７】
疑似対訳データ生成部１の逆翻訳部１１は、学習モード（学習処理を実行するモード）において、ベース対訳コーパスＤＢ＿ｂからベース対訳データＤｂ＿ｅｊを読み出し、当該ベース対訳データＤｂ＿ｅｊを学習データとして学習処理を実行し、学習済みモデルを構築する。
【００９８】
次に、疑似対訳データ生成部１の逆翻訳部１１は、データ入力処理部１１１により、目的言語単言語コーパス記憶部ＤＢ＿ｍから目的言語データＤ１＿ｊを読み出す。データ入力処理部１１１は、目的言語データＤ１＿ｊを読み出したことを示すデータＩｎｆｏ１を制御部１１２に出力する。また、データ入力処理部１１１は、目的言語データＤ１＿ｊを第１機械翻訳処理部１１３で機械翻訳処理ができるデータ形式を有するデータｘ１…Ｓに変換し第１機械翻訳処理部１１３に出力する。
【００９９】
第１機械翻訳処理部１１３は、実行モード（ベース対訳データＤｂ＿ｅｊによる学習により取得された学習済みモデルを用いて機械翻訳処理を実行するモード）において、データ入力処理部１１１から入力したデータｘ１…Ｓに対して機械翻訳処理を実行する。具体的には、以下のようにして、逆翻訳部１１において、目的言語から原言語への機械翻訳処理が実行される。
【０１００】
入力データｘ１…Ｓのうちの１つのシンボルｘｓがエンコーダ側埋込層ｅ１に入力される。エンコーダ側埋込層ｅ１では、埋め込み処理用の行列を用いて、入力されたシンボルｘｓに対して行列変換することで、分散表現データＸｖｓが取得される。そして、取得された分散表現データＸｖｓは、エンコーダ側ＬＳＴＭ層ｅ２に出力される。
【０１０１】
エンコーダ側ＬＳＴＭ層ｅ２では、分散表現データＸｖｓと入力側隠れ状態データｈｉｓ−１とに対してエンコード処理（例えば、ＬＳＴＭによるエンコード処理）が実行され、時刻ｓの入力側隠れ状態データｈｉｓが取得される。
【０１０２】
エンコーダ側ＬＳＴＭ層ｅ２で取得された入力側隠れ状態データｈｉｓは、保持部ｅ３とアテンション部ＡＴＮ１に出力される。
【０１０３】
保持部ｅ３は、エンコーダ側ＬＳＴＭ層ｅ２から出力される時刻ｓの入力側隠れ状態データｈｉｓを入力し、記憶保持するともに、現時刻の１つ前の時刻ｓ−１の入力側隠れ状態データｈｉｓ−１をエンコーダ側ＬＳＴＭ層ｅ２に出力する。
【０１０４】
エンコーダ１１３１では、上記処理を時刻１からＳまで繰り返し、時刻Ｓに達したとき、エンコーダ側ＬＳＴＭ層ｅ２から出力された入力側隠れ状態データｈｉＳがデコーダ１１３２に出力される。
【０１０５】
アテンション部ＡＴＮ１の保持部ａ１は、エンコーダから出力される入力側隠れ状態データｈｉｓを、１からＳまでのすべての時刻ｓについて記録する。１からＳまでのすべての時刻における入力側隠れ状態データをまとめてＨｉとする。
【０１０６】
コンテキスト算出部ａ２は、すべての時刻の入力側隠れ状態データＨｉと、出力側隠れ状態データｈｏｔ−１とから、時刻ｔのコンテキスト状態データｃｔを取得する。そして、コンテキスト算出部ａ２は、取得したコンテキスト状態データｃｔをデコーダ側ＬＳＴＭ層ｄ１に出力する。
【０１０７】
コンテキスト算出部ａ２は、ある時刻ｓにおける入力側隠れ状態データｈｉsと、出力側隠れ状態データｈｏｔ−１から、ある時刻ｓにおける入力シンボルのアライメントスコアｅｓｔを算出する。この算出には、入力側隠れ状態データｈｉｓと、出力側隠れ状態データｈｏｔの重み付き和をとるなどの方法が用いられるが、他の算出方法でもよい。
【０１０８】
コンテキスト算出部ａ２は、入力シンボルのアライメントスコアｅｓｔを１からＳのすべての時刻について算出し、総和が１となるように正規化して入力シンボルの重みαｓｔを得る。そして、コンテキスト算出部ａ２は、すべての時刻ｓについて、入力側隠れ状態データＨｉを入力シンボルの重みαｓｔで重み付き混合し、コンテキスト状態データｃｔを得る。
【０１０９】
そして、上記処理により取得されたコンテキスト状態データｃｔは、デコーダ側ＬＳＴＭ層ｄ１に出力される。
【０１１０】
デコーダ１１３２は、まずエンコーダ１１３１から出力された入力側隠れ状態データｈｉＳを、出力側隠れ状態データの初期値ｈｏ０として保持部ｄ２に記録する。また、文開始記号（ＢＯＳ）を、出力シンボルの初期値ｙ０として保持部ｄ４に保存する。
【０１１１】
デコーダ側埋込層ｄ０は、ある時刻ｔの一つ前の時刻ｔ−１に対して、保持部ｄ２から時刻ｔ−１における出力シンボルｙｔ−１を取得し、埋め込み処理を行うための行列を用いて、行列変換することで、分散表現データＹｖｔ−１を取得する。そして、デコーダ側埋込層ｄ０は、取得した分散表現データＹｖｔ−１をデコーダ側ＬＳＴＭ層ｄ１に出力する。
【０１１２】
デコーダ側ＬＳＴＭ層ｄ１では、コンテキスト状態データｃｔと、出力側隠れ状態データｈｏｔ−１と、分散表現データＹｖｔ−１とに対してデコード処理（例えば、ＬＳＴＭによるデコード処理）が実行され、時刻ｔの出力側隠れ状態データｈｏｔが取得される。そして、取得された出力側隠れ状態データｈｏｔは、サンプリング部ｄ３、保持部ｄ２、および、アテンション部ＡＴＮ１に出力される。
【０１１３】
保持部ｄ２は、デコーダ側ＬＳＴＭ層ｄ１から出力される時刻ｔの出力側隠れ状態データｈｏｔを入力し、記憶保持するともに、時刻ｔ−１の出力側隠れ状態データｈｏｔ−１をデコーダ側ＬＳＴＭ層ｄ１に出力する。
【０１１４】
サンプリング部ｄ３では、出力側隠れ状態データｈｏｔから単語出力分布Ｙｏｔを算出し、そこからランダムサンプリング処理により、時刻ｔの出力シンボルｙｔが取得される。
【０１１５】
単語出力分布Ｙｏｔは、すべての出力シンボル候補を事後確率分布で示したデータであり、出力側隠れ状態データｈｏｔを線形変換し、正規化することにより算出される。従来のニューラル機械翻訳処理では、出力シンボルの事後確率が最大確率となるデータを単語出力分布Ｙｏｔの中から選択し、選択したデータに対応する出力シンボルｙｔが出力される。このような処理を行う代わりに、サンプリング部ｄ３は、単語出力分布Ｙｏｔに従った確率ですべての出力シンボル候補からランダムにデータを選択し、選択したデータに対応するデータを出力シンボルｙｔとして出力する。これにより、サンプリング部ｄ３から出力されるデータは、出力シンボルの事後確率が最大確率となるデータに限定されず、出力シンボルの事後確率が低い（尤度が低い）データも出力されることになる。
【０１１６】
デコーダ１１３２は上記処理を時刻１からＴまで繰り返し、出力データｙ１…Ｔを取得する。
【０１１７】
そして、上記にようにして取得された出力データｙ１…Ｔは、第１機械翻訳処理部１１３からデータ出力処理部１１４に出力される。
【０１１８】
なお、第１機械翻訳処理部１１３は、制御部１１２から出力される制御信号Ｃｔｌ１に基づいて、１つの目的言語データＤ１＿ｊに対して、Ｎ個の原言語データが取得されるまで、複数回、機械翻訳処理を実行する。
【０１１９】
データ出力処理部１１４は、データＤ１＿ｊに対応する機械翻訳結果データが取得されるまで、第１機械翻訳処理部１１３から出力される出力データｙ１…Ｔを取得し続ける。そして、データ出力処理部１１４は、データＤ１＿ｊに対応する機械翻訳結果データが取得された後、取得したデータｙ１…Ｔから、データＤ１＿ｊに対応する機械翻訳結果データであるデータＤ１＿ｅを取得する。
【０１２０】
データ出力処理部１１４は、制御信号Ｃｔｌ１に基づいて、Ｎ個の機械翻訳結果データＤ１＿ｅを取得した後、当該Ｎ個の機械翻訳結果データＤ１＿ｅをまとめたデータを疑似原言語群データＤ１＿ｅ＿Ｎとして、疑似対訳データ取得部１２に出力する。
【０１２１】
疑似対訳データ取得部１２は、目的言語データＤ１＿ｊと、疑似原言語群データＤ１＿ｅ＿Ｎに含まれるＮ個の疑似原言語データＤ１＿ｅのそれぞれをペアにしたデータを生成し、生成したＮ組のデータを疑似対訳データＤｐ１＿ｅｊ＿Ｎとして、疑似対訳コーパス記憶部ＤＢ＿ｐに出力する。
【０１２２】
図１２は、逆翻訳部１１により取得した疑似原言語データＤ１＿ｅ＿Ｎの一例を示す図である。具体的には、図１２の上段に目的言語データＤ１＿ｊを示し、図１２の中段に疑似原言語データＤ１＿ｅ＿Ｎ（Ｎ＝５の場合）を示し、図１２の下段に参考として人手による逆翻訳した文を示している。
【０１２３】
従来のニューラル機械翻訳処理では、出力シンボルの事後確率が最大確率となるデータを単語出力分布の中から選択するので、図１２に示した場合、対数尤度が最大であるデータＤ１＿ｅ［１］に示した疑似原言語データのみが取得されることになる。
【０１２４】
一方、疑似対訳データ生成部１の逆翻訳部１１では、サンプリング部ｄ３により、出力側隠れ状態データｈｏｔから算出された単語出力分布Ｙｏｔに従った確率でランダムにデータが選択され、選択されたデータに対応するシンボルが出力シンボルｙｔとして出力される。したがって、疑似対訳データ生成部１の逆翻訳部１１では、図１２に示したように、対数尤度が分散した多様な原言語データを取得することができる。特に、従来技術では、対数尤度の低い疑似原言語データが取得されることはなく、一般的に機械翻訳の出力は傾向が類似しており、多様性を出すのが困難である。逆翻訳部１１では、上記のように処理することで、従来の機械翻訳で出力することが困難であった多様な翻訳文を取得することができる。
【０１２５】
例えば、図１２のデータの場合、疑似対訳データ取得部１２は、図１２の上段に示した目的言語データＤ１＿ｊと、図１２の中段に示したＮ（＝５）個の疑似原言語データＤ１＿ｅ（Ｄ１＿ｅ［１］、Ｄ１＿ｅ［２］、・・・、Ｄ１＿ｅ［５］と表記する）のそれぞれをペアにしたデータを生成する。つまり、疑似対訳データ取得部１２は、Ｎ（＝５）組のデータ、すなわち、
（１）［Ｄ１＿ｊ，Ｄ１＿ｅ［１］］
（２）［Ｄ１＿ｊ，Ｄ１＿ｅ［２］］
（３）［Ｄ１＿ｊ，Ｄ１＿ｅ［３］］
（４）［Ｄ１＿ｊ，Ｄ１＿ｅ［４］］
（５）［Ｄ１＿ｊ，Ｄ１＿ｅ［５］］
を生成する。そして、上記のＮ組のデータを疑似対訳データＤｐ１＿ｅｊ＿Ｎ（＝｛［Ｄ１＿ｊ，Ｄ１＿ｅ［１］］，［Ｄ１＿ｊ，Ｄ１＿ｅ［２］］，［Ｄ１＿ｊ，Ｄ１＿ｅ［３］］，［Ｄ１＿ｊ，Ｄ１＿ｅ［４］］，［Ｄ１＿ｊ，Ｄ１＿ｅ［５］］）として、疑似対訳コーパス記憶部ＤＢ＿ｐに出力する。
【０１２６】
疑似対訳コーパス記憶部ＤＢ＿ｐは、疑似対訳データ生成部１により取得された疑似対訳データＤｐ１＿ｅｊ＿Ｎを記憶する。
【０１２７】
以上のように、機械翻訳システム１０００では、疑似対訳データ生成処理が実行される。
【０１２８】
（１．２．２：機械翻訳訓練処理）
次に、機械翻訳システム１０００における機械翻訳訓練処理について、説明する。
【０１２９】
合成対訳データ取得部２は、疑似対訳コーパス記憶部ＤＢ＿ｐから疑似対訳データＤｐ２＿ｅｊを読み出すとともに、ベース対訳コーパスＤＢ＿ｂからベース対訳データＤｂ２＿ｅｊを読み出す。合成対訳データ取得部２は、疑似対訳データＤｐ２＿ｅｊと、ベース対訳データＤｂ２＿ｅｊとに対して対訳データを合成する処理を実行し、合成対訳データＤ２＿ｅｊを取得する。
【０１３０】
具体的には、合成対訳データ取得部２は、疑似対訳データＤｐ２＿ｅｊと、ベース対訳データＤｂ２＿ｅｊとをそれぞれミニバッチ集合データとして作成し、作成したミニバッチ集合ごとに学習率を設定する。例えば、合成対訳データ取得部２がベース対訳データＤｂ２＿ｅｊを集めて作成したミニバッチ集合データに学習率η（＝η０）を紐付けた場合のデータをＤａｔａ１（Ｄｂ２＿ｅｊ，η０）、Ｄａｔａ２（Ｄｂ２＿ｅｊ，η０）、Ｄａｔａ３（Ｄｂ２＿ｅｊ，η０）、・・・、Ｄａｔａｋ（Ｄｂ２＿ｅｊ，η０）と表記する。
【０１３１】
また、合成対訳データ取得部２が疑似対訳データＤｐ２＿ｅｊを集めて作成したミニバッチ集合データに学習率η１（例えば、η１＝η／Ｎ）を紐付けた場合のデータをＤａｔａ１（Ｄｐ２＿ｅｊ，η１）、Ｄａｔａ２（Ｄｐ２＿ｅｊ，η１）、Ｄａｔａ３（Ｄｐ２＿ｅｊ，η１）、・・・、Ｄａｔａｋ（Ｄｂ２＿ｅｊ，η１）と表記する。
【０１３２】
そして、合成対訳データ取得部２は、上記のように生成したベース対訳データＤｂ２＿ｅｊを集めて作成したミニバッチ集合データと疑似対訳データＤｐ２＿ｅｊを集めて作成したミニバッチ集合データとを混合して順序を入れ替え、合成対訳データＤ２＿ｅｊを、例えば、以下のデータとして生成する。
Ｄ２＿ｅｊ＝｛Ｄａｔａ１（Ｄｂ２＿ｅｊ，η０），Ｄａｔａ２（Ｄｂ２＿ｅｊ，η０），Ｄａｔａ３（Ｄｂ２＿ｅｊ，η０），Ｄａｔａ４（Ｄｐ２＿ｅｊ，η１），Ｄａｔａ５（Ｄｐ２＿ｅｊ，η１），・・・，Ｄａｔａｋ（Ｄｐ２＿ｅｊ，η１），・・・｝
η１＝η０／Ｎ
通常、疑似対訳データＤｐ２＿ｅｊを集めて作成したミニバッチ集合データのデータ数は、ベース対訳データＤｂ２＿ｅｊを集めて作成したミニバッチ集合データのデータ数よりも遙かに多い。その一方で、対訳データの精度は、ベース対訳データＤｂ２＿ｅｊの方が疑似対訳データＤｐ２＿ｅｊよりも高い。したがって、翻訳部３の学習モデルを構築するときに、疑似対訳データＤｐ２＿ｅｊとベース対訳データＤｂ２＿ｅｊとを同じ学習率にして学習処理を実行すると、精度の高い学習処理（訓練処理）を行うことができない。
【０１３３】
そこで、合成対訳データ取得部２は、上記のように、疑似対訳データＤｐ２＿ｅｊを集めて作成したミニバッチ集合データの学習率η１を、ベース対訳データＤｂ２＿ｅｊを集めて作成したミニバッチ集合データの学習率η０よりも小さい値にして、合成対訳データＤ２＿ｅｊを取得する。そして、このようにして取得した合成対訳データＤ２＿ｅｊを用いることで、翻訳部３において、精度の高い学習処理（訓練処理）を行うことができる。
【０１３４】
上記のようにして取得された合成対訳データＤ２＿ｅｊは、合成対訳データ取得部２から翻訳部３に出力される。
【０１３５】
翻訳部３の学習率調整部３０は、合成対訳データ取得部２から出力される学習率ηを対応付けた合成対訳データＤ２＿ｅｊを入力する。学習率調整部３０は、エンコーダ３２１およびデコーダ３２２に、ベース対訳コーパスＤＢ＿ｂから取得した対訳データを出力する場合、出力学習率η＿ｏｕｔを対応する学習率η（例えば、η０）に設定して出力する。一方、学習率調整部３０は、エンコーダ３２１およびデコーダ３２２に、疑似対訳コーパス記憶部ＤＢ＿ｐから取得した対訳データを出力する場合、出力学習率η＿ｏｕｔを対応する学習率η（例えば、η０／Ｎ）に設定して出力する。なお、学習率調整部３０は、出力学習率η＿ｏｕｔをアテンション部ＡＴＮ１Ａにも出力する。
【０１３６】
例えば、学習率調整部３０は、合成対訳データＤ２＿ｅｊに含まれるミニバッチ集合データデータＤａｔａ１（Ｄｂ２＿ｅｊ，η０）を処理する場合、学習率をη０にして、データＤａｔａ１（Ｄｂ２＿ｅｊ，η０）に含まれるベース対訳データをエンコーダ３２１、デコーダ３２２に入力して、第２機械翻訳処理部３２の学習モデルを構築するための学習処理（訓練処理）を実行する。この場合、精度の高いベース対訳データを用いているので、高い学習率で学習処理（訓練処理）が実行される。
【０１３７】
一方、学習率調整部３０は、合成対訳データＤ２＿ｅｊに含まれるミニバッチ集合データデータＤａｔａ４（Ｄｐ２＿ｅｊ，η１）を処理する場合、学習率をη１（例えば、η１＝η０／Ｎ）にして、データＤａｔａ４（Ｄｐ２＿ｅｊ，η１）に含まれる疑似対訳データをエンコーダ３２１、デコーダ３２２に入力して、第２機械翻訳処理部３２の学習モデルを構築するための学習処理（訓練処理）を実行する。この場合、ベース対訳データよりも精度の低い疑似対訳データを用いているので、ベース対訳データを用いる場合よりも低い学習率で学習処理（訓練処理）が実行される。
【０１３８】
上記のようにして、翻訳部３では、学習モデルを構築するための学習処理（訓練処理）が実行される。
【０１３９】
（１．２．３：機械翻訳実行処理）
次に、機械翻訳システム１０００における機械翻訳実行処理について、説明する。
【０１４０】
原言語データＤｉｎ＿ｅが翻訳部３の入力データ変換部３１に入力される。
【０１４１】
入力データ変換部３１は、原言語データＤｉｎ＿ｅを第２機械翻訳処理部３２で機械翻訳処理ができるデータ形式を有するデータｘ１…Ｓに変換し、変換したデータｘ１…Ｓを第２機械翻訳処理部３２に出力する。
【０１４２】
第２機械翻訳処理部３２では、上記の機械翻訳訓練処理により、翻訳部３に構築された学習モデルを用いて、データｘ１…Ｓに対して機械翻訳処理が実行され出力データｙ１…Ｔが取得される。
【０１４３】
出力データ変換部３３は、第２機械翻訳処理部３２から出力される出力データｙ１…Ｔを入力し、出力データ変換部３３は、原言語データＤｉｎ＿ｅに対応する機械翻訳結果データが取得された後、取得したデータｙ１…Ｔから、目的言語データＤｏｕｔ＿ｊを取得し出力する。
【０１４４】
上記のようにして、機械翻訳システム１０００における機械翻訳実行処理が実行される。
【０１４５】
以上のように、機械翻訳システム１０００では、目的言語の単言語コーパスを用いて、１つの目的言語データから複数の疑似原言語データを取得し、多様性を有する疑似対訳コーパスデータを大量に取得することができる。そして、機械翻訳システム１０００では、大量に取得した多様性を有する疑似対訳コーパスデータ、および、少量だが精度の高いベース対訳コーパスデータの両方を用いて、学習率を変えて、機械翻訳モデルの学習処理（訓練処理）を実行する。これにより、機械翻訳システム１０００では、非常に精度の高い学習済みモデル（機械翻訳モデル）を取得することができる。
【０１４６】
例えば、ベース対訳コーパスデータを４０万文のデータとし、疑似対訳コーパスデータを１５５万文のデータとして、上記処理により、翻訳部３で機械翻訳モデルの学習処理（訓練処理）を行い取得した学習済みモデルによる翻訳精度を測定した結果、上記処理による翻訳の精度は、ベース対訳コーパスデータのみを用いて取得した機械翻訳モデル（学習済みモデル）による機械翻訳に対して、ＢＬＥＵスコアで３．０〜５．０程度改善され、非特許文献１の技術を用いた場合に比べても、ＢＬＥＵスコアで約０．５〜２．０程度改善される。
【０１４７】
なお、機械翻訳システム１０００において、疑似対訳データＤｐ１＿ｅｊ＿Ｎの精度が悪い、すなわち、翻訳部３の学習処理（訓練処理）に悪影響を与えていると判断できる場合、疑似対訳データＤｐ１＿ｅｊ＿Ｎに対してフィルタリング処理を行うようにしてもよい。例えば、以下の基準により、選択するデータを決定するようにしてもよい。
（１）尤度
逆翻訳部１１で取得される尤度（翻訳文の長さで補正した尤度を含む）を基準として、疑似対訳データＤｐ１＿ｅｊ＿Ｎに含める疑似原言語データＤ１＿ｅを選択する。
（２）信頼度
例えば、下記文献（Atsushi Fujita等）に開示されている技術により取得される翻訳文の信頼度を基準として、疑似対訳データＤｐ１＿ｅｊ＿Ｎに含める疑似原言語データＤ１＿ｅを選択する。
Atsushi Fujita and Eiichiro Sumita. 2017. Japanese to English/Chinese/Korean datasets for translation quality estimation and automatic post-editing. In Proc of WAT2017, pages 79-88.
（３）ランダム選択
ランダム選択により、疑似対訳データＤｐ１＿ｅｊ＿Ｎに含める疑似原言語データＤ１＿ｅを選択する。
【０１４８】
［他の実施形態］
上記実施形態の機械翻訳システム１０００において、ベース対訳コーパスＤＢ＿ｂから取得した対訳データの学習率（例えば、η＝η０）と、疑似対訳コーパス記憶部ＤＢ＿ｐから取得した対訳データの学習率（例えば、η＝η０／Ｎ）とをそれぞれ固定の値にする場合について説明したが、これに限定されることはなく、例えば、バッチ集合データごとに、学習率を可変にしてもよい。また、ベース対訳コーパスＤＢ＿ｂから取得した対訳データの学習率（例えば、η＝η０）と、疑似対訳コーパス記憶部ＤＢ＿ｐから取得した対訳データの学習率（例えば、η＝η０／Ｎ）とは、上記の値に限定されることはなく、他の値であってもよい。例えば、疑似対訳コーパス記憶部ＤＢ＿ｐから取得した対訳データの学習率は、η＝η０／Ｍ（Ｍ：実数）であってもよい。
【０１４９】
また、上記実施形態では、第１機械翻訳処理部での処理をＮ回実行することで、１つの目的言語データに対してＮ個（Ｎ：２以上の自然数）の疑似原言語データを取得する場合について説明したが、これに限定されることはなく、例えば、第１機械翻訳処理部で１回の機械翻訳処理を実行し、入力データに対する単語出力分布の中の複数の候補から出力データをランダムに選択する処理をＮ回繰り返すことで、Ｎ個の疑似原言語データを取得するようにしてもよい。
【０１５０】
上記実施形態の機械翻訳システム１０００の各機能部の一部または全部は、１つの装置で実現されるものであってもよいし、複数の装置により実現されるものであってもよい。
【０１５１】
また上記実施形態で説明した機械翻訳システム１０００において、各ブロックは、ＬＳＩなどの半導体装置により個別に１チップ化されても良いし、一部または全部を含むように１チップ化されても良い。
【０１５２】
なおここではＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０１５３】
また集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセサで実現してもよい。ＬＳＩ製造後にプログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【０１５４】
また上記各実施形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして上記各実施形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置（ＣＰＵ）により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ＲＯＭなどの記憶装置に格納されており、ＲＯＭにおいて、あるいはＲＡＭに読み出されて実行される。
【０１５５】
また上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア（ＯＳ（オペレーティングシステム）、ミドルウェア、あるいは所定のライブラリとともに実現される場合を含む。）により実現してもよい。さらにソフトウェアおよびハードウェアの混在処理により実現しても良い。
【０１５６】
例えば上記実施形態の各機能部をソフトウェアにより実現する場合、図９に示したハードウェア構成（例えばＣＰＵ、ＲＯＭ、ＲＡＭ、入力部、出力部、通信部、記憶部（例えば、ＨＤＤ、ＳＳＤ等により実現される記憶部）、外部メディア用ドライブ等をバスＢｕｓにより接続したハードウェア構成）を用いて各機能部をソフトウェア処理により実現するようにしてもよい。
【０１５７】
また上記実施形態の各機能部をソフトウェアにより実現する場合、当該ソフトウェアは、図９に示したハードウェア構成を有する単独のコンピュータを用いて実現されるものであってもよいし、複数のコンピュータを用いて分散処理により実現されるものであってもよい。
【０１５８】
例えば、疑似対訳データ生成方法をソフトウェアにより実現する場合、図１４（ａ）に示したフローチャートにより、疑似対訳データ生成方法を実現するようにしてもよい。
【０１５９】
具体的には、疑似対訳データ生成方法では、ステップＳ１０１において、目的言語単言語コーパスから目的言語単言語データの読み出し処理が実行される。
【０１６０】
ステップＳ１０２では、ステップＳ１０１で読み出した、１つの目的言語データに対して逆翻訳処理が実行され、Ｎ個の原言語データが取得される。
【０１６１】
ステップＳ１０３では、１つの目的言語データと、そのデータを逆翻訳して取得したＮ個の原言語データとを組にした疑似対訳データを取得する。
【０１６２】
ステップＳ１０４では、ステップＳ１０３で取得された疑似対訳データを例えば、データベースに記憶することで、疑似対訳データコーパスを取得する。
【０１６３】
また、例えば、機械翻訳の学習モデルを構築するための学習処理（訓練処理）方法をソフトウェアにより実現する場合、図１４（ｂ）に示したフローチャートにより、当該方法を実現するようにしてもよい。
【０１６４】
具体的には、機械翻訳の学習モデルを構築するための学習処理（訓練処理）方法では、ステップＳ２０１において、ベース対訳コーパスからベース対訳データを読み出す。
【０１６５】
ステップＳ２０２において、疑似対訳コーパスから疑似対訳データを読み出す。
【０１６６】
ステップＳ２０３において、ステップＳ２０１で取得したベース対訳データのミニバッチ集合を生成し、ステップＳ２０２で取得した疑似対訳データのミニバッチ集合を生成し、さらに、両方のミニバッチ集合を混合して順序を入れ替えることで、合成対訳データを取得する。
【０１６７】
ステップＳ２０４において、合成対訳データに含まれる各ミニバッチ集合の学習率を設定する。
【０１６８】
ステップＳ２０５において、合成対訳データに含まれる各ミニバッチ集合を用いて学習処理を行う。なお、このときは、学習率は、処理対象のミニバッチ集合に設定されている学習率を用いる。
【０１６９】
上記のようにして、疑似対訳データ生成方法、および、機械翻訳の学習モデルを構築するための学習処理（訓練処理）方法をソフトウェアにより実現することができる。
【０１７０】
また上記実施形態における処理方法の実行順序は、必ずしも上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【０１７１】
前述した方法をコンピュータに実行させるコンピュータプログラム、及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここでコンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、大容量ＤＶＤ、次世代ＤＶＤ、半導体メモリを挙げることができる。
【０１７２】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限らず、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【０１７３】
なお本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【産業上の利用可能性】
【０１７４】
本発明によれば、目的言語の単言語コーパスを用いてエンコーダ（アテンションを含む）を強化し、翻訳器全体の精度向上させるニューラル機械翻訳のモデル訓練方法と当該モデル訓練方法を実行するための機械翻訳システムを実現することができる。このため本発明は、自然言語処理関連産業分野において有用であり、当該分野において実施することができる。
【符号の説明】
【０１７５】
１０００  機械翻訳システム
１  疑似対訳データ生成部（疑似対訳データ生成装置）
１１  逆翻訳部
１１３  第１機械翻訳処理部
１１３１  エンコーダ
１１３２  デコーダ
１２  疑似対訳データ取得部
２  合成対訳データ取得部
３  翻訳部
ＤＢ＿ｐ  疑似対訳コーパス記憶部
ＤＢ＿ｂ  ベースコーパス記憶部
ＤＢ＿ｍ  目的言語単言語コーパス記憶部
【図１】
2019153023.tif 000003
【図２】
2019153023.tif 000004
【図３】
2019153023.tif 000005
【図４】
2019153023.tif 000006
【図５】
2019153023.tif 000007
【図６】
2019153023.tif 000008
【図７】
2019153023.tif 000009
【図８】
2019153023.tif 000010
【図９】
2019153023.tif 000011
【図１０】
2019153023.tif 000012
【図１１】
2019153023.tif 000013
【図１２】
2019153023.tif 000014
【図１３】
2019153023.tif 000015
【図１４】
2019153023.tif 000016