IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 独立行政法人情報通信研究機構の特許一覧

特許7170984疑似対訳データ生成装置、機械翻訳処理装置、および疑似対訳データ生成方法
<>
  • 特許-疑似対訳データ生成装置、機械翻訳処理装置、および疑似対訳データ生成方法 図1
  • 特許-疑似対訳データ生成装置、機械翻訳処理装置、および疑似対訳データ生成方法 図2
  • 特許-疑似対訳データ生成装置、機械翻訳処理装置、および疑似対訳データ生成方法 図3
  • 特許-疑似対訳データ生成装置、機械翻訳処理装置、および疑似対訳データ生成方法 図4
  • 特許-疑似対訳データ生成装置、機械翻訳処理装置、および疑似対訳データ生成方法 図5
  • 特許-疑似対訳データ生成装置、機械翻訳処理装置、および疑似対訳データ生成方法 図6
  • 特許-疑似対訳データ生成装置、機械翻訳処理装置、および疑似対訳データ生成方法 図7
  • 特許-疑似対訳データ生成装置、機械翻訳処理装置、および疑似対訳データ生成方法 図8
  • 特許-疑似対訳データ生成装置、機械翻訳処理装置、および疑似対訳データ生成方法 図9
  • 特許-疑似対訳データ生成装置、機械翻訳処理装置、および疑似対訳データ生成方法 図10
  • 特許-疑似対訳データ生成装置、機械翻訳処理装置、および疑似対訳データ生成方法 図11
  • 特許-疑似対訳データ生成装置、機械翻訳処理装置、および疑似対訳データ生成方法 図12
  • 特許-疑似対訳データ生成装置、機械翻訳処理装置、および疑似対訳データ生成方法 図13
  • 特許-疑似対訳データ生成装置、機械翻訳処理装置、および疑似対訳データ生成方法 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-07
(45)【発行日】2022-11-15
(54)【発明の名称】疑似対訳データ生成装置、機械翻訳処理装置、および疑似対訳データ生成方法
(51)【国際特許分類】
   G06F 40/44 20200101AFI20221108BHJP
【FI】
G06F40/44
【請求項の数】 6
(21)【出願番号】P 2018037055
(22)【出願日】2018-03-02
(65)【公開番号】P2019153023
(43)【公開日】2019-09-12
【審査請求日】2021-02-03
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成29年度、総務省、情報通信技術の研究開発、産業技術力強化法第19条の適用を受ける特許出願
(73)【特許権者】
【識別番号】301022471
【氏名又は名称】国立研究開発法人情報通信研究機構
(74)【代理人】
【識別番号】100143498
【弁理士】
【氏名又は名称】中西 健
(74)【代理人】
【識別番号】100136319
【弁理士】
【氏名又は名称】北原 宏修
(74)【代理人】
【識別番号】100148275
【弁理士】
【氏名又は名称】山内 聡
(74)【代理人】
【識別番号】100142745
【弁理士】
【氏名又は名称】伊藤 世子
(72)【発明者】
【氏名】今村 賢治
(72)【発明者】
【氏名】藤田 篤
(72)【発明者】
【氏名】隅田 英一郎
【審査官】長 由紀子
(56)【参考文献】
【文献】Imankulova Aizhan 外2名,逆翻訳による高品質な大規模擬似対訳コーパスの作成,言語処理学会第23回年次大会 発表論文集 [online],日本,言語処理学会,2017年03月06日,pp.210-213
【文献】今村 賢治、 隅田 英一郎,疑似原文生成によるニューラル機械翻訳への単言語コーパスの導入,言語処理学会第23回年次大会 発表論文集 [online] Proceedings of the Twenty-third Annual Meeting of the Association for Natural Language Processing,日本,言語処理学会,2017年03月06日,pp.1026-1029
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/44
(57)【特許請求の範囲】
【請求項1】
目的言語単言語コーパスから取得した1つの目的言語データに対して機械逆翻訳処理を施すことで単語出力分布を取得し、当該単語出力分布に従った確率で全ての出力シンボル候補からランダムにデータを選択し、選択したデータに対応する出力シンボルを出力することで1個の疑似原言語データを取得する処理をN回(N:2以上の自然数)行うことで、前記1つの目的言語データに対するN個(N:2以上の自然数)の疑似原言語データを取得する逆翻訳部と、
前記1つの目的言語データと、前記逆翻訳部により取得された前記N個の疑似原言語データのそれぞれを組にすることでN組の疑似対訳データを取得する疑似対訳データ取得部と、
を備える疑似対訳データ生成装置。
【請求項2】
前記逆翻訳部は、
入力データから入力側隠れ状態データを取得するエンコーダと、
前記エンコーダにより取得された入力側隠れ状態データから出力側隠れ状態データを取得し、取得した出力側隠れ状態データが表す出力単語分布の中からランダムにデータを選択し、選択したデータに対応する単語データを出力データとして出力するデコーダと、
を備える、
請求項1に記載の疑似対訳データ生成装置。
【請求項3】
前記疑似対訳データを記憶する疑似対訳コーパス記憶部をさらに備え、
前記疑似対訳データ取得部は、
前記逆翻訳部が取得した前記疑似原言語データの尤度および信頼度の少なくとも一方に基づいて、前記N組の疑似対訳データに対してフィルタリング処理を行い、フィルタリング処理後の疑似対訳データを前記疑似対訳コーパス記憶部に記憶させる、
請求項1または2に記載の疑似対訳データ生成装置。
【請求項4】
ベース対訳コーパスから取得したベース対訳データと、前記ベース対訳データに対応する第1学習率とを対応付けて第1バッチ集合データを生成し、
請求項1から3のいずれかに記載の疑似対訳データ生成装置により生成された疑似対訳データと、前記疑似対訳データに対応する第2学習率とを対応付けて第2バッチ集合データを生成し、
前記第1バッチ集合データと前記第2バッチ集合データを含む合成対訳データを取得する合成対訳データ取得部と、
前記合成対訳データを用いて学習することで機械翻訳処理用の学習済みモデルを取得するとともに、前記学習済みモデルにより、原言語データを目的言語データに機械翻訳する機械翻訳処理を実行する翻訳部であって、前記第1バッチ集合データを用いた学習処理では前記第1学習率により前記学習処理を実行し、前記第2バッチ集合データを用いた学習処理では前記第2学習率により前記学習処理を実行する前記翻訳部と、
を備える機械翻訳処理装置。
【請求項5】
前記第1学習率は、前記第2学習率よりも大きな値である、
請求項4に記載の機械翻訳処理装置。
【請求項6】
逆翻訳部と、疑似対訳データ取得部と、を備える疑似対訳データ生成装置を用いて実行される疑似対訳データ生成方法であって、
前記逆翻訳部が、目的言語単言語コーパスから取得した1つの目的言語データに対して機械逆翻訳処理を施すことで単語出力分布を取得し、当該単語出力分布に従った確率で全ての出力シンボル候補からランダムにデータを選択し、選択したデータに対応する出力シンボルを出力することで1個の疑似原言語データを取得する処理をN回(N:2以上の自然数)行うことで、前記1つの目的言語データに対するN個(N:2以上の自然数)の疑似原言語データを取得する逆翻訳ステップと、
前記疑似対訳データ取得部が、前記1つの目的言語データと、前記逆翻訳ステップにより取得された前記N個の疑似原言語データのそれぞれを組にすることでN組の疑似対訳データを取得する疑似対訳データ取得ステップと、
を備える疑似対訳データ生成方法。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、エンコーダ・デコーダ方式のニューラル機械翻訳技術に関する。
【背景技術】
【0002】
近年の機械翻訳は、エンコーダ・デコーダ方式のニューラル機械翻訳(NMT:Neural Machine Translation)が主流となってきている。エンコーダ・デコーダ方式のニューラル機械翻訳では、入力文(原文)をエンコーダによって、状態と呼ばれる数値ベクトルに符号化し、当該状態に基づいて、デコーダが翻訳文を生成する。エンコーダ・デコーダ方式のニューラル機械翻訳は、従来の統計翻訳方式に比べ、高品質な翻訳文を生成することが可能であるが、その一方で、エンコーダ・デコーダ方式のニューラル機械翻訳のモデルを訓練するために大量の対訳文が必要である。しかし、大規模対訳コーパスは、単言語コーパスに比べ、一般的に入手が難しい。
【0003】
この問題に対処するために、非特許文献1に開示の技術では、目的言語の単言語コーパスを原言語へ逆翻訳して疑似対訳文を生成し、生成した疑似対訳文を対訳コーパスと混合して訓練する方法を採用している。この方法の利点は、疑似対訳文といっても、目的言語側の文は人が作成した正しい文であるため、デコーダは正しく訓練されることである。そのため、上記方法を用いることで、単言語コーパスから言語モデルを構築する方法を用いる場合に比べても、安定して精度の高い機械翻訳のためのモデルを構築することが可能となる。
【先行技術文献】
【非特許文献】
【0004】
【文献】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.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、非特許文献1に開示されている方法では、エラーを含む疑似原文を用いて訓練するため、エンコーダの精度向上が実現されていない可能性がある。
【0006】
そこで本発明は、上記課題に鑑み、目的言語の単言語コーパスを用いてエンコーダ(アテンションを含む)を強化し、翻訳器全体の精度向上させるニューラル機械翻訳のモデル訓練方法と当該モデル訓練方法を実行するための機械翻訳システムを実現することを目的とする。また、本発明は、上記機械翻訳システムを構成する疑似対訳データ生成装置、機械翻訳処理装置、および、上記機械翻訳システムで実行される疑似対訳データ生成方法を実現することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するための第1の発明は、逆翻訳部と、疑似対訳データ取得部と、を備える疑似対訳データ生成装置である。
【0008】
逆翻訳部は、目的言語単言語コーパスから取得した1つの目的言語データに対して機械逆翻訳処理を施すことでN個(N:2以上の自然数)の疑似原言語データを取得する。
【0009】
疑似対訳データ取得部と、1つの目的言語データと、逆翻訳部により取得されたN個の疑似原言語データのそれぞれを組にすることでN組の疑似対訳データを取得する。
【0010】
これにより、この疑似対訳データ生成装置では、目的言語の単言語コーパスを用いて、1つの目的言語データから複数の疑似原言語データを取得し、多様性を有する疑似対訳コーパスデータを大量に取得することができる。
【0011】
第2の発明は、第1の発明であって、逆翻訳部は、エンコーダと、デコーダとを備える。
【0012】
エンコーダは、入力データから入力側隠れ状態データを取得する。
【0013】
デコーダは、エンコーダにより取得された入力側隠れ状態データから出力側隠れ状態データを取得し、取得した出力側隠れ状態データが表す出力単語分布の中からランダムにデータを選択し、選択したデータに対応する単語データを出力データとして出力する。
【0014】
これにより、この疑似対訳データ生成装置では、デコーダから出力されるデータは、出力単語の事後確率が最大確率となるデータに限定されず、出力単語の事後確率が低い(尤度が低い)データも出力されることになる。その結果、この疑似対訳データ生成装置では、従来取得することが困難であった多様性を有する疑似対訳データを取得することができる。
【0015】
なお、「入力側隠れ状態データ」とは、エンコーダにより、入力データをエンコード処理したときに取得される内部状態を示すデータである。「入力側隠れ状態データ」は、例えば、入力データに対して、埋込処理により取得した分散表現データを、さらに、LSTM層による処理を実行したときに得られるデータ(内部状態を表すデータ)である。
【0016】
第3の発明は、第1または第2の発明であって、疑似対訳データを記憶する疑似対訳コーパス記憶部をさらに備える。
【0017】
疑似対訳データ取得部は、逆翻訳部が取得した疑似原言語データの尤度および信頼度の少なくとも一方に基づいて、N組の疑似対訳データに対してフィルタリング処理を行い、フィルタリング処理後の疑似対訳データを疑似対訳コーパス記憶部に記憶させる。
【0018】
これにより、尤度や信頼度に基づいて、機械翻訳のモデル学習を行う際に効率良く学習処理が実行される疑似対訳データを取得することができる。
【0019】
第4の発明は、合成対訳データ取得部と、翻訳部と、を備える機械翻訳処理装置である。
【0020】
合成対訳データ取得部は、ベース対訳コーパスから取得したベース対訳データと、当該ベース対訳データに対応する第1学習率とを対応付けて第1バッチ集合データを生成し、第1から第3のいずれかの発明である疑似対訳データ生成装置により生成された疑似対訳データと、当該疑似対訳データに対応する第2学習率とを対応付けて第2バッチ集合データを生成する。そして、合成対訳データ取得部は、第1バッチ集合データと第2バッチ集合データを含む合成対訳データを取得する。
【0021】
翻訳部は、合成対訳データを用いて学習することで機械翻訳処理用の学習済みモデルを取得するとともに、学習済みモデルにより、原言語データを目的言語データに機械翻訳する機械翻訳処理を実行する。また、翻訳部は、第1バッチ集合データを用いた学習処理では第1学習率により学習処理を実行し、第2バッチ集合データを用いた学習処理では第2学習率により学習処理を実行する。
【0022】
この機械翻訳処理装置では、目的言語の単言語コーパスを用いて、1つの目的言語データから複数の疑似原言語データを取得することで大量に取得した多様性を有する疑似対訳コーパスデータを用いて、機械翻訳の学習モデルを構築するための学習処理(訓練処理)を効率良く行うことができる。そして、この機械翻訳処理装置では、大量に取得した多様性を有する疑似対訳コーパスデータ、および、少量だが精度の高いベース対訳コーパスデータの両方を用いて、学習率を変えて、機械翻訳モデルの学習処理(訓練処理)を実行する。これにより、この機械翻訳処理装置では、非常に精度の高い学習済みモデル(機械翻訳モデル)を取得することができる。
【0023】
第5の発明は、第4の発明であって、第1学習率は、第2学習率よりも大きな値である。
【0024】
これにより、この機械翻訳処理装置では、少量だが精度の高いベース対訳コーパスデータを用いた学習処理(訓練処理)の学習率を高くし、大量だが精度がベース対訳コーパスデータよりも低い疑似対訳コーパスデータを用いた学習処理(訓練処理)の学習率を低くすることができる。その結果、この機械翻訳処理装置では、精度の高い機械翻訳学習済みモデルを取得することができる。
【0025】
第6の発明は、逆翻訳ステップと、疑似対訳データ取得ステップと、を備える疑似対訳データ生成方法である。
【0026】
逆翻訳ステップは、目的言語単言語コーパスから取得した1つの目的言語データに対して機械逆翻訳処理を施すことでN個(N:2以上の自然数)の疑似原言語データを取得する。
【0027】
疑似対訳データ取得ステップは、1つの目的言語データと、逆翻訳ステップにより取得されたN個の疑似原言語データのそれぞれを組にすることでN組の疑似対訳データを取得する。
【0028】
これにより、第1の発明と同様の効果を奏する疑似対訳データ生成方法を実現することができる。
【発明の効果】
【0029】
本発明によれば、目的言語の単言語コーパスを用いてエンコーダ(アテンションを含む)を強化し、翻訳器全体の精度向上させるニューラル機械翻訳のモデル訓練方法と当該モデル訓練方法を実行するための機械翻訳システムを実現することができる。また、本発明によれば、上記機械翻訳システムを構成する疑似対訳データ生成装置、機械翻訳処理装置、および、上記機械翻訳システムで実行される疑似対訳データ生成方法を実現することができる。
【図面の簡単な説明】
【0030】
図1】第1実施形態に係る機械翻訳システム1000の概略構成図。
図2】第1実施形態の疑似対訳データ生成部1の逆翻訳部11の概略構成図。
図3】第1実施形態の第1機械翻訳処理部113のエンコーダ1131の概略構成図。
図4】第1実施形態の第1機械翻訳処理部113のアテンション部ATN1の概略構成図。
図5】第1実施形態の第1機械翻訳処理部113のデコーダ1132の概略構成図。
図6】第1実施形態の第1機械翻訳処理部113における機械翻訳処理を模式的に示した遷移図。
図7】第1実施形態の翻訳部3の概略構成図。
図8】第1実施形態の第2機械翻訳処理部32のエンコーダ321の概略構成図。
図9】第1実施形態の第2機械翻訳処理部32のアテンション部ATN1Aの概略構成図。
図10】第1実施形態の第2機械翻訳処理部32のデコーダ322の概略構成図。
図11】第1実施形態の第2機械翻訳処理部32における機械翻訳処理を模式的に示した遷移図。
図12】逆翻訳部11により取得した疑似原言語群データD1_e_Nの一例を示す図。
図13】CPUバス構成を示す図。
図14】疑似対訳データ生成方法のフローチャート、および、機械翻訳の学習モデルを構築するための学習処理(訓練処理)方法のフローチャート。
【発明を実施するための形態】
【0031】
[第1実施形態]
第1実施形態について、図面を参照しながら、以下説明する。
【0032】
<1.1:機械翻訳システムの構成>
図1は、第1実施形態に係る機械翻訳システム1000の概略構成図である。
【0033】
図2は、第1実施形態の疑似対訳データ生成部1の逆翻訳部11の概略構成図である。
【0034】
図3は、第1実施形態の第1機械翻訳処理部113のエンコーダ1131の概略構成図である。
【0035】
図4は、第1実施形態の第1機械翻訳処理部113のアテンション部ATN1の概略構成図である。
【0036】
図5は、第1実施形態の第1機械翻訳処理部113のデコーダ1132の概略構成図である。
【0037】
図6は、第1実施形態の第1機械翻訳処理部113における機械翻訳処理を模式的に示した遷移図である。
【0038】
図7は、第1実施形態の翻訳部3の概略構成図である。
【0039】
図8は、第1実施形態の第2機械翻訳処理部32のエンコーダ321の概略構成図である。
【0040】
図9は、第1実施形態の第2機械翻訳処理部32のアテンション部ATN1Aの概略構成図である。
【0041】
図10は、第1実施形態の第2機械翻訳処理部32のデコーダ322の概略構成図である。
【0042】
図11は、第1実施形態の第2機械翻訳処理部32における機械翻訳処理を模式的に示した遷移図である。
【0043】
機械翻訳システム1000は、図1に示すように、疑似対訳データ生成部1と、合成対訳データ取得部2と、翻訳部3と、ベース対訳コーパス記憶部DB_bと、目的言語単言語コーパス記憶部DB_mと、疑似対訳コーパス記憶部DB_pとを備える。
【0044】
疑似対訳データ生成部1は、図1に示すように、逆翻訳部11と、疑似対訳データ取得部12とを備える。
【0045】
逆翻訳部11は、ベース対訳コーパス記憶部DB_bからベース対訳データDb1_ejを入力し、また、目的言語単言語コーパス記憶部DB_mから目的言語データD1_jを入力する。逆翻訳部11は、ベース対訳データDb_ejを用いて学習処理を実行し、目的言語を原言語に機械翻訳する学習済みモデルを取得する。そして、逆翻訳部11は、当該学習済みモデルを用いて、1つの目的言語データD1_jに対して、機械翻訳処理を実行し、N個(N:2以上の自然数)の疑似原言語データを疑似原言語群データD1_e_Nとして取得する。そして、逆翻訳部11は、取得した疑似原言語群データD1_e_Nを疑似対訳データ取得部12に出力する。
【0046】
逆翻訳部11は、図2に示すように、データ入力処理部111と、制御部112と、第1機械翻訳処理部113と、データ出力処理部114とを備える。
【0047】
データ入力処理部111は、目的言語単言語コーパス記憶部DB_mから目的言語データD1_jを読み出すとともに、目的言語データD1_jを読み出したことを示すデータInfo1を制御部112に出力する。また、データ入力処理部111は、目的言語データD1_jを第1機械翻訳処理部113で機械翻訳処理ができるデータ形式を有するデータx1…Sに変換し、変換したデータx1…Sを第1機械翻訳処理部113に出力する。なお、データx1…Sは、単語列のようなシンボルの系列であり、その最終シンボルは文末記号(EOSと表す)であり、EOSを含むシンボル数はSとする。
【0048】
制御部112は、データ入力処理部111から出力されるデータInfo1を入力し、当該データInfo1に基づいて、制御信号Ctl1を生成し、生成した制御信号Ctl1を第1機械翻訳処理部113およびデータ出力処理部114に出力する。制御部112は、第1機械翻訳処理部113に対して制御信号Ctl1を出力し、第1機械翻訳処理部113において、1つの目的言語データD1_jに対して、複数回(N回)、機械翻訳処理が実行されるように第1機械翻訳処理部113を制御する。また、制御部112は、データ出力処理部114に対して制御信号Ctl1を出力し、データ出力処理部114において、1つの目的言語データD1_jに対して、N個の機械翻訳処理結果データ(データD1_e)が取得されるようにデータ出力処理部114を制御する。
【0049】
第1機械翻訳処理部113は、エンコーダ・デコーダ方式のニューラル機械翻訳処理を実行する機能部である。第1機械翻訳処理部113は、学習モード(学習処理を実行するモード)において、ベース対訳コーパスDB_bからベース対訳データDb_ejを読み出し、当該ベース対訳データDb_ejを学習データとして学習処理を実行し、学習済みモデルを構築する。第1機械翻訳処理部113は、実行モード(学習済みモデルを用いて機械翻訳処理を実行するモード)において、データ入力処理部111から入力したデータx1…Sに対して機械翻訳処理を実行し、出力データy1…Tを取得する。なお、データy1…Tは、単語列のようなシンボルの系列であり、その最終シンボルは文末記号(EOS)であり、EOSを含むシンボル数はTとする。そして、第1機械翻訳処理部113は、取得した出力データy1…Tをデータ出力処理部114に出力する。第1機械翻訳処理部113は、制御部112から出力される制御信号Ctl1に基づいて、1つの目的言語データD1_jに対して、複数回、機械翻訳処理を実行する。
【0050】
第1機械翻訳処理部113は、図3図5に示すように、エンコーダ1131と、デコーダ1132と、アテンション部ATN1とを備える。
【0051】
エンコーダ1131は、エンコーダ側埋込層e1と、エンコーダ側LSTM層(LSTM:Long short-term memory)e2と、保持部e3とを備える。
【0052】
エンコーダ側埋込層e1は、入力データx1…Sのうちの1つのシンボルxに対して、埋め込み処理を行うための行列を用いて、行列変換することで、分散表現データXvを取得する。そして、エンコーダ側埋込層e1は、取得した分散表現データXvをエンコーダ側LSTM層e2に出力する。
【0053】
エンコーダ側LSTM層e2は、分散表現データXvと、保持部e3から出力される時刻s-1の入力側隠れ状態データhis-1とを入力する。エンコーダ側LSTM層e2は、分散表現データXvと入力側隠れ状態データhis-1とから、時刻sの入力側隠れ状態データhiを取得する。そして、エンコーダ側LSTM層e2は、取得した入力側隠れ状態データhiを、保持部e3とアテンション部ATN1に出力する。
【0054】
保持部e3は、エンコーダ側LSTM層e2から出力される時刻sの入力側隠れ状態データhiを入力し、記憶保持するともに、現時刻の1つ前の時刻s-1の入力側隠れ状態データhis-1をエンコーダ側LSTM層e2に出力する。なお、時刻sは、現在処理対象となっているデータが入力された時刻であり、時刻s-1は、時刻sの入力の1つ前のシンボルが入力されたときの時刻であり、時刻s+1は、時刻sの1つ後のシンボルが入力されたときの時刻である。
【0055】
エンコーダ1131は上記処理を時刻1からSまで繰り返し、時刻Sに達したとき、エンコーダ側LSTM層e2から出力された入力側隠れ状態データhiをデコーダ1132に出力する。
【0056】
デコーダ1132は、デコーダ側埋込層d0と、デコーダ側LSTM層d1と、保持部d2と、サンプリング部d3と、保持部d4とを備える。
【0057】
デコーダ1132は、まずエンコーダ1131から出力された入力側隠れ状態データhiを、出力側隠れ状態データの初期値hoとして保持部d2に記録する。また、文開始記号(BOS)を、出力シンボルの初期値yとして保持部d4に保存する。
【0058】
デコーダ側埋込層d0は、ある時刻tの一つ前の時刻t-1に対して、保持部d2から時刻t-1における出力データyt-1を取得し、埋め込み処理を行うための行列を用いて、行列変換することで、分散表現データYvt-1を取得する。そして、デコーダ側埋込層d0は、取得した分散表現データYvt-1をデコーダ側LSTM層d1に出力する。
【0059】
デコーダ側LSTM層d1は、アテンション部ATN1から出力されるコンテキスト状態データcと、保持部d2から出力される時刻t-1の出力側隠れ状態データhot-1と、保持部d4から出力される時刻t-1の分散表現データYvt-1と、を入力する。デコーダ側LSTM層d1は、コンテキスト状態データcと、出力側隠れ状態データhot-1と、分散表現データYvt-1とから、時刻tの出力側隠れ状態データhoを取得し、取得した出力側隠れ状態データhoをサンプリング部d3、保持部d2、および、アテンション部ATN1に出力する。
【0060】
保持部d2は、デコーダ側LSTM層d1から出力される時刻tの出力側隠れ状態データhoを入力し、記憶保持するともに、時刻t-1の出力側隠れ状態データhot-1をデコーダ側LSTM層d1に出力する。
【0061】
サンプリング部d3は、デコーダ側LSTM層d1から出力される出力側隠れ状態データhoを入力する。サンプリング部d3は、出力側隠れ状態データhoから、時刻tの出力シンボルyを取得し、取得した出力シンボルyをデータ出力処理部114および保持部d4に出力する。
【0062】
保持部d4は、サンプリング部d3から出力される時刻tの出力シンボルyを入力し、記憶保持するともに、時刻t-1の出力シンボルyt-1をデコーダ側埋込層d0に出力する。
【0063】
アテンション部ATN1は、図4に示すように、保持部a1とコンテキスト算出部a2とを備える。
【0064】
保持部a1は、エンコーダから出力される入力側隠れ状態データhiを、1からSまでのすべての時刻sについて記録する。1からSまでのすべての時刻における入力側隠れ状態データをまとめてHiとする。
【0065】
コンテキスト算出部a2は、保持部a1が保持するすべての時刻の入力側隠れ状態データHiと、デコーダ側LSTM層d1から出力される出力側隠れ状態データhot-1とを入力する。コンテキスト算出部a2は、すべての時刻の入力側隠れ状態データHiと、出力側隠れ状態データhot-1とから、時刻tのコンテキスト状態データcを取得する。そして、コンテキスト算出部a2は、取得したコンテキスト状態データcをデコーダ側LSTM層d1に出力する。
【0066】
第1機械翻訳処理部113は、上記のように構成され、図6に示すような状態遷移により機械翻訳処理を実行する。そして出力シンボルyが文末記号EOSとなったら、出力データのシンボル数Tにtを設定し、出力データy1…Tを取得する。
【0067】
データ出力処理部114は、第1機械翻訳処理部113から出力される出力データy1…Tと、制御部112から出力される制御信号Ctl1とを入力する。データ出力処理部114は、データD1_jに対応する機械翻訳結果データが取得された後、取得したデータy1…Tから、データD1_jに対応する機械翻訳結果データであるデータD1_eを取得する。
【0068】
データ出力処理部114は、制御信号Ctl1に基づいて、N個の機械翻訳結果データD1_eを取得した後、当該N個の機械翻訳結果データD1_eをまとめたデータを疑似原言語群データD1_e_Nとして、疑似対訳データ取得部12に出力する。
【0069】
疑似対訳データ取得部12は、目的言語単言語コーパス記憶部DB_mから目的言語データD1_jを入力するとともに、逆翻訳部11から出力される疑似原言語群データD1_e_Nを入力する。疑似対訳データ取得部12は、目的言語データD1_jと、疑似原言語群データD1_e_Nに含まれるN個の疑似原言語データD1_eのそれぞれをペアにしたデータを生成し、生成したN組のデータを疑似対訳データDp1_ej_Nとして、疑似対訳コーパス記憶部DB_pに出力する。
【0070】
合成対訳データ取得部2は、疑似対訳コーパス記憶部DB_pから疑似対訳データDp2_ejを読み出すとともに、ベース対訳コーパスDB_bからベース対訳データDb2_ejを読み出す。合成対訳データ取得部2は、学習率ηを対応付けながら、疑似対訳データDp2_ejと、ベース対訳データDb2_ejとに対して対訳データを合成する処理を実行し、合成対訳データD2_ejを取得する。そして、合成対訳データ取得部2は、学習率ηを対応付けた合成対訳データD2_ejを翻訳部3に出力する。
【0071】
翻訳部3は、図7に示すように、学習率調整部30と、入力データ変換部31と、第2機械翻訳処理部32と、出力データ変換部33とを備える。
【0072】
学習率調整部30は、合成対訳データ取得部2から出力される学習率ηを対応付けた合成対訳データD2_ejを入力する。学習率調整部30は、エンコーダ321およびデコーダ322に、ベース対訳コーパスDB_bから取得した対訳データを出力する場合、出力学習率η_outを対応する学習率η(例えば、η0)に設定して出力する。一方、学習率調整部30は、エンコーダ321およびデコーダ322に、疑似対訳コーパス記憶部DB_pから取得した対訳データを出力する場合、出力学習率η_outを対応する学習率η(例えば、η0/N)に設定して出力する。なお、学習率調整部30は、出力学習率η_outをアテンション部ATN1にも出力する。
【0073】
入力データ変換部31は、原言語データDin_eを第2機械翻訳処理部32で機械翻訳処理ができるデータ形式を有するデータx1...Sに変換し、変換したデータx1...Sを第2機械翻訳処理部32に出力する。なお、データx1…Sは、単語列のようなシンボルの系列であり、その最終シンボルは文末記号(EOSと表す)であり、EOSを含むシンボル数はSとする。
【0074】
第2機械翻訳処理部32は、図8図10に示すように、エンコーダ321と、デコーダ322と、アテンション部ATN1Aと、を備える。
【0075】
エンコーダ321は、エンコーダ側埋込層e1と、エンコーダ側LSTM層(LSTM:Long short-term memory)e2と、保持部e3とを備える。また、エンコーダ321は、学習率調整部30から出力される出力学習率η_outを入力し、学習時において、出力学習率η_outにより、学習(パラメータの調整)を行う。
【0076】
エンコーダ側埋込層e1は、入力データx1…Sのうちの1つのシンボルxに対して、埋め込み処理を行うための行列を用いて、行列変換することで、分散表現データXvを取得する。そして、エンコーダ側埋込層e1は、取得した分散表現データXvをエンコーダ側LSTM層e2に出力する。
【0077】
エンコーダ側LSTM層e2は、分散表現データXvと、保持部e3から出力される時刻s-1の入力側隠れ状態データhis-1とを入力する。エンコーダ側LSTM層e2は、分散表現データXvと入力側隠れ状態データhis-1とから、時刻sの入力側隠れ状態データhiを取得する。そして、エンコーダ側LSTM層e2は、取得した入力側隠れ状態データhiを、保持部e3とアテンション部ATN1Aとデコーダ側LSTM層d1に出力する。
【0078】
保持部e3は、エンコーダ側LSTM層e2から出力される時刻sの入力側隠れ状態データhiを入力し、記憶保持するともに、現時刻の1つ前の時刻s-1の入力側隠れ状態データhis-1をエンコーダ側LSTM層e2に出力する。
【0079】
エンコーダ321は上記処理を時刻1からSまで繰り返し、時刻Sに達したとき、エンコーダ側LSTM層e2から出力された入力側隠れ状態データhiをデコーダ322に出力する。
【0080】
デコーダ322は、デコーダ側埋込層d0と、デコーダ側LSTM層d1と、保持部d2と、最大確率出力部d3Aと、保持部d4とを備える。また、デコーダ322は、学習率調整部30から出力される出力学習率η_outを入力し、学習時において、出力学習率η_outにより、学習(パラメータの調整)を行う。
【0081】
デコーダ322は、まずエンコーダ321から出力された入力側隠れ状態データhiを、出力側隠れ状態データの初期値hoとして保持部d2に記録する。また、文開始記号(BOS)を、出力シンボルの初期値yとして保持部d4に保存する。
【0082】
デコーダ側埋込層d0は、ある時刻tの一つ前の時刻t-1に対して、保持部d2から時刻t-1における出力シンボルyt-1を取得し、埋め込み処理を行うための行列を用いて、行列変換することで、分散表現データYvt-1を取得する。そして、デコーダ側埋込層d0は、取得した分散表現データYvt-1をデコーダ側LSTM層d1に出力する。
【0083】
デコーダ側LSTM層d1は、アテンション部ATN1Aから出力されるコンテキスト状態データcと、保持部d2から出力される時刻t-1の出力側隠れ状態データhot-1と、保持部d4から出力される時刻t-1の分散表現データYvt-1と、を入力する。デコーダ側LSTM層d1は、コンテキスト状態データcと、出力側隠れ状態データhot-1と、分散表現データYvt-1とから、時刻tの出力側隠れ状態データhoを取得し、取得した出力側隠れ状態データhoを最大確率出力部d3A、保持部d2、および、アテンション部ATN1Aに出力する。
【0084】
保持部d2は、デコーダ側LSTM層d1から出力される時刻tの出力側隠れ状態データhoを入力し、記憶保持するともに、時刻t-1の出力側隠れ状態データhot-1をデコーダ側LSTM層d1に出力する。
【0085】
最大確率出力部d3Aは、デコーダ側LSTM層d1から出力される出力側隠れ状態データhoを入力する。最大確率出力部d3Aは、出力側隠れ状態データhoから、まず時刻tの単語出力分布Yoを算出し、単語出力分布Yoから出力シンボルyを取得し、取得した出力シンボルyをデータ出力処理部114および保持部d4に出力する。なお、単語出力分布Yoは、すべての出力シンボル候補を事後確率分布で示したデータであり、最大確率出力部d3Aは、最大確率となるデータを単語出力分布Yoの中から選択し、選択したデータに対応する出力シンボルyを出力する。
【0086】
保持部d4は、最大確率出力部d3Aから出力される時刻tの出力シンボルyを入力し、記憶保持するともに、時刻t-1の出力シンボルyt-1をデコーダ側LSTM層d1に出力する。
【0087】
アテンション部ATN1Aは、図9に示すように、保持部a1とコンテキスト算出部a2とを備える。
【0088】
保持部a1は、エンコーダから出力される入力側隠れ状態データhiを、1からSまでのすべての時刻sについて記録する。1からSまでのすべての時刻における入力側隠れ状態データをまとめてHiとする。
【0089】
コンテキスト算出部a2は、保持部a1が保持するすべての時刻の入力側隠れ状態データHiと、デコーダ側LSTM層d1から出力される出力側隠れ状態データhot-1と、学習率調整部30から出力される出力学習率η_outとを入力する。コンテキスト算出部a2は、すべての時刻の入力側隠れ状態データHiと、出力側隠れ状態データhot-1とから、時刻tのコンテキスト状態データcを取得する。そして、コンテキスト算出部a2は、取得したコンテキスト状態データcをデコーダ側LSTM層d1に出力する。アテンション部ATN1Aは、学習時において、出力学習率η_outにより、学習(パラメータの調整)を行う。
【0090】
第2機械翻訳処理部32は、上記のように構成され、図11に示すような状態遷移により機械翻訳処理を実行する。そして出力シンボルyが文末記号EOSとなったら、出力データのシンボル数Tにtを設定し、出力データy1…Tを取得する。
【0091】
出力データ変換部33は、第2機械翻訳処理部32から出力される出力データy1…Tを入力する。出力データ変換部33は、yから順番に第2機械翻訳処理部32から出力される出力シンボルyを取得し続けるが、yが文末記号(EOS)となった時点で、データDin_eに対応する機械翻訳結果データがそろったとみなして、Tに出力シンボル数を設定する。そして、出力データ変換部33は、原言語データDin_eに対応する機械翻訳結果データが取得された後、取得したデータy1…Tから、目的言語データDout_jを取得し出力する。
【0092】
ベース対訳コーパス記憶部DB_bは、例えば、人により生成された原言語と目的言語との対訳コーパスデータを記憶する。したがって、ベース対訳コーパス記憶部DB_bに記憶されている対訳コーパスデータは、高精度の対訳データである。ベース対訳コーパス記憶部DB_bは、例えば、データベースにより実現される。
【0093】
目的言語単言語コーパス記憶部DB_mは、目的言語の単言語のコーパスデータを記憶する。目的言語単言語コーパス記憶部DB_mは、例えば、データベースにより実現される。
【0094】
疑似対訳コーパス記憶部DB_pは、疑似対訳データ取得部12から出力される疑似対訳データDp1_ej_Nを記憶する。
【0095】
<1.2:機械翻訳システムの動作>
以上のように構成された機械翻訳システム1000の動作について説明する。
【0096】
(1.2.1:疑似対訳データ生成処理)
まず、機械翻訳システム1000における疑似対訳データ生成処理について、説明する。
【0097】
疑似対訳データ生成部1の逆翻訳部11は、学習モード(学習処理を実行するモード)において、ベース対訳コーパスDB_bからベース対訳データDb_ejを読み出し、当該ベース対訳データDb_ejを学習データとして学習処理を実行し、学習済みモデルを構築する。
【0098】
次に、疑似対訳データ生成部1の逆翻訳部11は、データ入力処理部111により、目的言語単言語コーパス記憶部DB_mから目的言語データD1_jを読み出す。データ入力処理部111は、目的言語データD1_jを読み出したことを示すデータInfo1を制御部112に出力する。また、データ入力処理部111は、目的言語データD1_jを第1機械翻訳処理部113で機械翻訳処理ができるデータ形式を有するデータx1…Sに変換し第1機械翻訳処理部113に出力する。
【0099】
第1機械翻訳処理部113は、実行モード(ベース対訳データDb_ejによる学習により取得された学習済みモデルを用いて機械翻訳処理を実行するモード)において、データ入力処理部111から入力したデータx1…Sに対して機械翻訳処理を実行する。具体的には、以下のようにして、逆翻訳部11において、目的言語から原言語への機械翻訳処理が実行される。
【0100】
入力データx1…Sのうちの1つのシンボルxがエンコーダ側埋込層e1に入力される。エンコーダ側埋込層e1では、埋め込み処理用の行列を用いて、入力されたシンボルxに対して行列変換することで、分散表現データXvが取得される。そして、取得された分散表現データXvは、エンコーダ側LSTM層e2に出力される。
【0101】
エンコーダ側LSTM層e2では、分散表現データXvと入力側隠れ状態データhis-1とに対してエンコード処理(例えば、LSTMによるエンコード処理)が実行され、時刻sの入力側隠れ状態データhiが取得される。
【0102】
エンコーダ側LSTM層e2で取得された入力側隠れ状態データhiは、保持部e3とアテンション部ATN1に出力される。
【0103】
保持部e3は、エンコーダ側LSTM層e2から出力される時刻sの入力側隠れ状態データhiを入力し、記憶保持するともに、現時刻の1つ前の時刻s-1の入力側隠れ状態データhis-1をエンコーダ側LSTM層e2に出力する。
【0104】
エンコーダ1131では、上記処理を時刻1からSまで繰り返し、時刻Sに達したとき、エンコーダ側LSTM層e2から出力された入力側隠れ状態データhiがデコーダ1132に出力される。
【0105】
アテンション部ATN1の保持部a1は、エンコーダから出力される入力側隠れ状態データhiを、1からSまでのすべての時刻sについて記録する。1からSまでのすべての時刻における入力側隠れ状態データをまとめてHiとする。
【0106】
コンテキスト算出部a2は、すべての時刻の入力側隠れ状態データHiと、出力側隠れ状態データhot-1とから、時刻tのコンテキスト状態データcを取得する。そして、コンテキスト算出部a2は、取得したコンテキスト状態データcをデコーダ側LSTM層d1に出力する。
【0107】
コンテキスト算出部a2は、ある時刻sにおける入力側隠れ状態データhisと、出力側隠れ状態データhot-1から、ある時刻sにおける入力シンボルのアライメントスコアestを算出する。この算出には、入力側隠れ状態データhiと、出力側隠れ状態データhoの重み付き和をとるなどの方法が用いられるが、他の算出方法でもよい。
【0108】
コンテキスト算出部a2は、入力シンボルのアライメントスコアestを1からSのすべての時刻について算出し、総和が1となるように正規化して入力シンボルの重みαstを得る。そして、コンテキスト算出部a2は、すべての時刻sについて、入力側隠れ状態データHiを入力シンボルの重みαstで重み付き混合し、コンテキスト状態データcを得る。
【0109】
そして、上記処理により取得されたコンテキスト状態データcは、デコーダ側LSTM層d1に出力される。
【0110】
デコーダ1132は、まずエンコーダ1131から出力された入力側隠れ状態データhiを、出力側隠れ状態データの初期値hoとして保持部d2に記録する。また、文開始記号(BOS)を、出力シンボルの初期値yとして保持部d4に保存する。
【0111】
デコーダ側埋込層d0は、ある時刻tの一つ前の時刻t-1に対して、保持部d2から時刻t-1における出力シンボルyt-1を取得し、埋め込み処理を行うための行列を用いて、行列変換することで、分散表現データYvt-1を取得する。そして、デコーダ側埋込層d0は、取得した分散表現データYvt-1をデコーダ側LSTM層d1に出力する。
【0112】
デコーダ側LSTM層d1では、コンテキスト状態データcと、出力側隠れ状態データhot-1と、分散表現データYvt-1とに対してデコード処理(例えば、LSTMによるデコード処理)が実行され、時刻tの出力側隠れ状態データhoが取得される。そして、取得された出力側隠れ状態データhoは、サンプリング部d3、保持部d2、および、アテンション部ATN1に出力される。
【0113】
保持部d2は、デコーダ側LSTM層d1から出力される時刻tの出力側隠れ状態データhoを入力し、記憶保持するともに、時刻t-1の出力側隠れ状態データhot-1をデコーダ側LSTM層d1に出力する。
【0114】
サンプリング部d3では、出力側隠れ状態データhoから単語出力分布Yoを算出し、そこからランダムサンプリング処理により、時刻tの出力シンボルyが取得される。
【0115】
単語出力分布Yoは、すべての出力シンボル候補を事後確率分布で示したデータであり、出力側隠れ状態データhoを線形変換し、正規化することにより算出される。従来のニューラル機械翻訳処理では、出力シンボルの事後確率が最大確率となるデータを単語出力分布Yoの中から選択し、選択したデータに対応する出力シンボルyが出力される。このような処理を行う代わりに、サンプリング部d3は、単語出力分布Yoに従った確率ですべての出力シンボル候補からランダムにデータを選択し、選択したデータに対応するデータを出力シンボルyとして出力する。これにより、サンプリング部d3から出力されるデータは、出力シンボルの事後確率が最大確率となるデータに限定されず、出力シンボルの事後確率が低い(尤度が低い)データも出力されることになる。
【0116】
デコーダ1132は上記処理を時刻1からTまで繰り返し、出力データy1…Tを取得する。
【0117】
そして、上記にようにして取得された出力データy1…Tは、第1機械翻訳処理部113からデータ出力処理部114に出力される。
【0118】
なお、第1機械翻訳処理部113は、制御部112から出力される制御信号Ctl1に基づいて、1つの目的言語データD1_jに対して、N個の原言語データが取得されるまで、複数回、機械翻訳処理を実行する。
【0119】
データ出力処理部114は、データD1_jに対応する機械翻訳結果データが取得されるまで、第1機械翻訳処理部113から出力される出力データy1…Tを取得し続ける。そして、データ出力処理部114は、データD1_jに対応する機械翻訳結果データが取得された後、取得したデータy1…Tから、データD1_jに対応する機械翻訳結果データであるデータD1_eを取得する。
【0120】
データ出力処理部114は、制御信号Ctl1に基づいて、N個の機械翻訳結果データD1_eを取得した後、当該N個の機械翻訳結果データD1_eをまとめたデータを疑似原言語群データD1_e_Nとして、疑似対訳データ取得部12に出力する。
【0121】
疑似対訳データ取得部12は、目的言語データD1_jと、疑似原言語群データD1_e_Nに含まれるN個の疑似原言語データD1_eのそれぞれをペアにしたデータを生成し、生成したN組のデータを疑似対訳データDp1_ej_Nとして、疑似対訳コーパス記憶部DB_pに出力する。
【0122】
図12は、逆翻訳部11により取得した疑似原言語データD1_e_Nの一例を示す図である。具体的には、図12の上段に目的言語データD1_jを示し、図12の中段に疑似原言語データD1_e_N(N=5の場合)を示し、図12の下段に参考として人手による逆翻訳した文を示している。
【0123】
従来のニューラル機械翻訳処理では、出力シンボルの事後確率が最大確率となるデータを単語出力分布の中から選択するので、図12に示した場合、対数尤度が最大であるデータD1_e[1]に示した疑似原言語データのみが取得されることになる。
【0124】
一方、疑似対訳データ生成部1の逆翻訳部11では、サンプリング部d3により、出力側隠れ状態データhoから算出された単語出力分布Yoに従った確率でランダムにデータが選択され、選択されたデータに対応するシンボルが出力シンボルyとして出力される。したがって、疑似対訳データ生成部1の逆翻訳部11では、図12に示したように、対数尤度が分散した多様な原言語データを取得することができる。特に、従来技術では、対数尤度の低い疑似原言語データが取得されることはなく、一般的に機械翻訳の出力は傾向が類似しており、多様性を出すのが困難である。逆翻訳部11では、上記のように処理することで、従来の機械翻訳で出力することが困難であった多様な翻訳文を取得することができる。
【0125】
例えば、図12のデータの場合、疑似対訳データ取得部12は、図12の上段に示した目的言語データD1_jと、図12の中段に示したN(=5)個の疑似原言語データD1_e(D1_e[1]、D1_e[2]、・・・、D1_e[5]と表記する)のそれぞれをペアにしたデータを生成する。つまり、疑似対訳データ取得部12は、N(=5)組のデータ、すなわち、
(1)[D1_j,D1_e[1]]
(2)[D1_j,D1_e[2]]
(3)[D1_j,D1_e[3]]
(4)[D1_j,D1_e[4]]
(5)[D1_j,D1_e[5]]
を生成する。そして、上記のN組のデータを疑似対訳データDp1_ej_N(={[D1_j,D1_e[1]],[D1_j,D1_e[2]],[D1_j,D1_e[3]],[D1_j,D1_e[4]],[D1_j,D1_e[5]])として、疑似対訳コーパス記憶部DB_pに出力する。
【0126】
疑似対訳コーパス記憶部DB_pは、疑似対訳データ生成部1により取得された疑似対訳データDp1_ej_Nを記憶する。
【0127】
以上のように、機械翻訳システム1000では、疑似対訳データ生成処理が実行される。
【0128】
(1.2.2:機械翻訳訓練処理)
次に、機械翻訳システム1000における機械翻訳訓練処理について、説明する。
【0129】
合成対訳データ取得部2は、疑似対訳コーパス記憶部DB_pから疑似対訳データDp2_ejを読み出すとともに、ベース対訳コーパスDB_bからベース対訳データDb2_ejを読み出す。合成対訳データ取得部2は、疑似対訳データDp2_ejと、ベース対訳データDb2_ejとに対して対訳データを合成する処理を実行し、合成対訳データD2_ejを取得する。
【0130】
具体的には、合成対訳データ取得部2は、疑似対訳データDp2_ejと、ベース対訳データDb2_ejとをそれぞれミニバッチ集合データとして作成し、作成したミニバッチ集合ごとに学習率を設定する。例えば、合成対訳データ取得部2がベース対訳データDb2_ejを集めて作成したミニバッチ集合データに学習率η(=η0)を紐付けた場合のデータをData1(Db2_ej,η0)、Data2(Db2_ej,η0)、Data3(Db2_ej,η0)、・・・、Datak(Db2_ej,η0)と表記する。
【0131】
また、合成対訳データ取得部2が疑似対訳データDp2_ejを集めて作成したミニバッチ集合データに学習率η1(例えば、η1=η/N)を紐付けた場合のデータをData1(Dp2_ej,η1)、Data2(Dp2_ej,η1)、Data3(Dp2_ej,η1)、・・・、Datak(Db2_ej,η1)と表記する。
【0132】
そして、合成対訳データ取得部2は、上記のように生成したベース対訳データDb2_ejを集めて作成したミニバッチ集合データと疑似対訳データDp2_ejを集めて作成したミニバッチ集合データとを混合して順序を入れ替え、合成対訳データD2_ejを、例えば、以下のデータとして生成する。
D2_ej={Data1(Db2_ej,η0),Data2(Db2_ej,η0),Data3(Db2_ej,η0),Data4(Dp2_ej,η1),Data5(Dp2_ej,η1),・・・,Datak(Dp2_ej,η1),・・・}
η1=η0/N
通常、疑似対訳データDp2_ejを集めて作成したミニバッチ集合データのデータ数は、ベース対訳データDb2_ejを集めて作成したミニバッチ集合データのデータ数よりも遙かに多い。その一方で、対訳データの精度は、ベース対訳データDb2_ejの方が疑似対訳データDp2_ejよりも高い。したがって、翻訳部3の学習モデルを構築するときに、疑似対訳データDp2_ejとベース対訳データDb2_ejとを同じ学習率にして学習処理を実行すると、精度の高い学習処理(訓練処理)を行うことができない。
【0133】
そこで、合成対訳データ取得部2は、上記のように、疑似対訳データDp2_ejを集めて作成したミニバッチ集合データの学習率η1を、ベース対訳データDb2_ejを集めて作成したミニバッチ集合データの学習率η0よりも小さい値にして、合成対訳データD2_ejを取得する。そして、このようにして取得した合成対訳データD2_ejを用いることで、翻訳部3において、精度の高い学習処理(訓練処理)を行うことができる。
【0134】
上記のようにして取得された合成対訳データD2_ejは、合成対訳データ取得部2から翻訳部3に出力される。
【0135】
翻訳部3の学習率調整部30は、合成対訳データ取得部2から出力される学習率ηを対応付けた合成対訳データD2_ejを入力する。学習率調整部30は、エンコーダ321およびデコーダ322に、ベース対訳コーパスDB_bから取得した対訳データを出力する場合、出力学習率η_outを対応する学習率η(例えば、η0)に設定して出力する。一方、学習率調整部30は、エンコーダ321およびデコーダ322に、疑似対訳コーパス記憶部DB_pから取得した対訳データを出力する場合、出力学習率η_outを対応する学習率η(例えば、η0/N)に設定して出力する。なお、学習率調整部30は、出力学習率η_outをアテンション部ATN1Aにも出力する。
【0136】
例えば、学習率調整部30は、合成対訳データD2_ejに含まれるミニバッチ集合データデータData1(Db2_ej,η0)を処理する場合、学習率をη0にして、データData1(Db2_ej,η0)に含まれるベース対訳データをエンコーダ321、デコーダ322に入力して、第2機械翻訳処理部32の学習モデルを構築するための学習処理(訓練処理)を実行する。この場合、精度の高いベース対訳データを用いているので、高い学習率で学習処理(訓練処理)が実行される。
【0137】
一方、学習率調整部30は、合成対訳データD2_ejに含まれるミニバッチ集合データデータData4(Dp2_ej,η1)を処理する場合、学習率をη1(例えば、η1=η0/N)にして、データData4(Dp2_ej,η1)に含まれる疑似対訳データをエンコーダ321、デコーダ322に入力して、第2機械翻訳処理部32の学習モデルを構築するための学習処理(訓練処理)を実行する。この場合、ベース対訳データよりも精度の低い疑似対訳データを用いているので、ベース対訳データを用いる場合よりも低い学習率で学習処理(訓練処理)が実行される。
【0138】
上記のようにして、翻訳部3では、学習モデルを構築するための学習処理(訓練処理)が実行される。
【0139】
(1.2.3:機械翻訳実行処理)
次に、機械翻訳システム1000における機械翻訳実行処理について、説明する。
【0140】
原言語データDin_eが翻訳部3の入力データ変換部31に入力される。
【0141】
入力データ変換部31は、原言語データDin_eを第2機械翻訳処理部32で機械翻訳処理ができるデータ形式を有するデータx1…Sに変換し、変換したデータx1…Sを第2機械翻訳処理部32に出力する。
【0142】
第2機械翻訳処理部32では、上記の機械翻訳訓練処理により、翻訳部3に構築された学習モデルを用いて、データx1…Sに対して機械翻訳処理が実行され出力データy1…Tが取得される。
【0143】
出力データ変換部33は、第2機械翻訳処理部32から出力される出力データy1…Tを入力し、出力データ変換部33は、原言語データDin_eに対応する機械翻訳結果データが取得された後、取得したデータy1…Tから、目的言語データDout_jを取得し出力する。
【0144】
上記のようにして、機械翻訳システム1000における機械翻訳実行処理が実行される。
【0145】
以上のように、機械翻訳システム1000では、目的言語の単言語コーパスを用いて、1つの目的言語データから複数の疑似原言語データを取得し、多様性を有する疑似対訳コーパスデータを大量に取得することができる。そして、機械翻訳システム1000では、大量に取得した多様性を有する疑似対訳コーパスデータ、および、少量だが精度の高いベース対訳コーパスデータの両方を用いて、学習率を変えて、機械翻訳モデルの学習処理(訓練処理)を実行する。これにより、機械翻訳システム1000では、非常に精度の高い学習済みモデル(機械翻訳モデル)を取得することができる。
【0146】
例えば、ベース対訳コーパスデータを40万文のデータとし、疑似対訳コーパスデータを155万文のデータとして、上記処理により、翻訳部3で機械翻訳モデルの学習処理(訓練処理)を行い取得した学習済みモデルによる翻訳精度を測定した結果、上記処理による翻訳の精度は、ベース対訳コーパスデータのみを用いて取得した機械翻訳モデル(学習済みモデル)による機械翻訳に対して、BLEUスコアで3.0~5.0程度改善され、非特許文献1の技術を用いた場合に比べても、BLEUスコアで約0.5~2.0程度改善される。
【0147】
なお、機械翻訳システム1000において、疑似対訳データDp1_ej_Nの精度が悪い、すなわち、翻訳部3の学習処理(訓練処理)に悪影響を与えていると判断できる場合、疑似対訳データDp1_ej_Nに対してフィルタリング処理を行うようにしてもよい。例えば、以下の基準により、選択するデータを決定するようにしてもよい。
(1)尤度
逆翻訳部11で取得される尤度(翻訳文の長さで補正した尤度を含む)を基準として、疑似対訳データDp1_ej_Nに含める疑似原言語データD1_eを選択する。
(2)信頼度
例えば、下記文献(Atsushi Fujita等)に開示されている技術により取得される翻訳文の信頼度を基準として、疑似対訳データDp1_ej_Nに含める疑似原言語データD1_eを選択する。
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.
(3)ランダム選択
ランダム選択により、疑似対訳データDp1_ej_Nに含める疑似原言語データD1_eを選択する。
【0148】
[他の実施形態]
上記実施形態の機械翻訳システム1000において、ベース対訳コーパスDB_bから取得した対訳データの学習率(例えば、η=η0)と、疑似対訳コーパス記憶部DB_pから取得した対訳データの学習率(例えば、η=η0/N)とをそれぞれ固定の値にする場合について説明したが、これに限定されることはなく、例えば、バッチ集合データごとに、学習率を可変にしてもよい。また、ベース対訳コーパスDB_bから取得した対訳データの学習率(例えば、η=η0)と、疑似対訳コーパス記憶部DB_pから取得した対訳データの学習率(例えば、η=η0/N)とは、上記の値に限定されることはなく、他の値であってもよい。例えば、疑似対訳コーパス記憶部DB_pから取得した対訳データの学習率は、η=η0/M(M:実数)であってもよい。
【0149】
また、上記実施形態では、第1機械翻訳処理部での処理をN回実行することで、1つの目的言語データに対してN個(N:2以上の自然数)の疑似原言語データを取得する場合について説明したが、これに限定されることはなく、例えば、第1機械翻訳処理部で1回の機械翻訳処理を実行し、入力データに対する単語出力分布の中の複数の候補から出力データをランダムに選択する処理をN回繰り返すことで、N個の疑似原言語データを取得するようにしてもよい。
【0150】
上記実施形態の機械翻訳システム1000の各機能部の一部または全部は、1つの装置で実現されるものであってもよいし、複数の装置により実現されるものであってもよい。
【0151】
また上記実施形態で説明した機械翻訳システム1000において、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部または全部を含むように1チップ化されても良い。
【0152】
なおここではLSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
【0153】
また集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【0154】
また上記各実施形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして上記各実施形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置(CPU)により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ROMなどの記憶装置に格納されており、ROMにおいて、あるいはRAMに読み出されて実行される。
【0155】
また上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア(OS(オペレーティングシステム)、ミドルウェア、あるいは所定のライブラリとともに実現される場合を含む。)により実現してもよい。さらにソフトウェアおよびハードウェアの混在処理により実現しても良い。
【0156】
例えば上記実施形態の各機能部をソフトウェアにより実現する場合、図9に示したハードウェア構成(例えばCPU、ROM、RAM、入力部、出力部、通信部、記憶部(例えば、HDD、SSD等により実現される記憶部)、外部メディア用ドライブ等をバスBusにより接続したハードウェア構成)を用いて各機能部をソフトウェア処理により実現するようにしてもよい。
【0157】
また上記実施形態の各機能部をソフトウェアにより実現する場合、当該ソフトウェアは、図9に示したハードウェア構成を有する単独のコンピュータを用いて実現されるものであってもよいし、複数のコンピュータを用いて分散処理により実現されるものであってもよい。
【0158】
例えば、疑似対訳データ生成方法をソフトウェアにより実現する場合、図14(a)に示したフローチャートにより、疑似対訳データ生成方法を実現するようにしてもよい。
【0159】
具体的には、疑似対訳データ生成方法では、ステップS101において、目的言語単言語コーパスから目的言語単言語データの読み出し処理が実行される。
【0160】
ステップS102では、ステップS101で読み出した、1つの目的言語データに対して逆翻訳処理が実行され、N個の原言語データが取得される。
【0161】
ステップS103では、1つの目的言語データと、そのデータを逆翻訳して取得したN個の原言語データとを組にした疑似対訳データを取得する。
【0162】
ステップS104では、ステップS103で取得された疑似対訳データを例えば、データベースに記憶することで、疑似対訳データコーパスを取得する。
【0163】
また、例えば、機械翻訳の学習モデルを構築するための学習処理(訓練処理)方法をソフトウェアにより実現する場合、図14(b)に示したフローチャートにより、当該方法を実現するようにしてもよい。
【0164】
具体的には、機械翻訳の学習モデルを構築するための学習処理(訓練処理)方法では、ステップS201において、ベース対訳コーパスからベース対訳データを読み出す。
【0165】
ステップS202において、疑似対訳コーパスから疑似対訳データを読み出す。
【0166】
ステップS203において、ステップS201で取得したベース対訳データのミニバッチ集合を生成し、ステップS202で取得した疑似対訳データのミニバッチ集合を生成し、さらに、両方のミニバッチ集合を混合して順序を入れ替えることで、合成対訳データを取得する。
【0167】
ステップS204において、合成対訳データに含まれる各ミニバッチ集合の学習率を設定する。
【0168】
ステップS205において、合成対訳データに含まれる各ミニバッチ集合を用いて学習処理を行う。なお、このときは、学習率は、処理対象のミニバッチ集合に設定されている学習率を用いる。
【0169】
上記のようにして、疑似対訳データ生成方法、および、機械翻訳の学習モデルを構築するための学習処理(訓練処理)方法をソフトウェアにより実現することができる。
【0170】
また上記実施形態における処理方法の実行順序は、必ずしも上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【0171】
前述した方法をコンピュータに実行させるコンピュータプログラム、及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここでコンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、大容量DVD、次世代DVD、半導体メモリを挙げることができる。
【0172】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限らず、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【0173】
なお本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【産業上の利用可能性】
【0174】
本発明によれば、目的言語の単言語コーパスを用いてエンコーダ(アテンションを含む)を強化し、翻訳器全体の精度向上させるニューラル機械翻訳のモデル訓練方法と当該モデル訓練方法を実行するための機械翻訳システムを実現することができる。このため本発明は、自然言語処理関連産業分野において有用であり、当該分野において実施することができる。
【符号の説明】
【0175】
1000 機械翻訳システム
1 疑似対訳データ生成部(疑似対訳データ生成装置)
11 逆翻訳部
113 第1機械翻訳処理部
1131 エンコーダ
1132 デコーダ
12 疑似対訳データ取得部
2 合成対訳データ取得部
3 翻訳部
DB_p 疑似対訳コーパス記憶部
DB_b ベースコーパス記憶部
DB_m 目的言語単言語コーパス記憶部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14