(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022114144
(43)【公開日】2022-08-05
(54)【発明の名称】アラインメント装置およびプログラム
(51)【国際特許分類】
G06F 40/44 20200101AFI20220729BHJP
【FI】
G06F40/44
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2021010310
(22)【出願日】2021-01-26
(71)【出願人】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】100141139
【弁理士】
【氏名又は名称】及川 周
(74)【代理人】
【識別番号】100171446
【弁理士】
【氏名又は名称】高田 尚幸
(74)【代理人】
【識別番号】100114937
【弁理士】
【氏名又は名称】松本 裕幸
(74)【代理人】
【識別番号】100171930
【弁理士】
【氏名又は名称】木下 郁一郎
(72)【発明者】
【氏名】後藤 功雄
【テーマコード(参考)】
5B091
【Fターム(参考)】
5B091AA03
5B091EA01
(57)【要約】
【課題】精度の高いアラインメントを実現することのできるアラインメント装置およびプログラムを提供する。
【解決手段】アラインメント装置が、キー分散表現生成部と、アラインメントスコア算出部とを備える。キー分散表現生成部は、与えられる対訳文対の入力側の文に含まれる入力側単語のキー分散表現を生成する。アラインメントスコア算出部は、前記対訳文対の前記入力側の文とは異なる出力側の文に含まれる出力側単語のアラインメントのための分散表現であるアライン分散表現と、前記入力側単語の前記キー分散表現と、の類似度に基づいて、前記入力側単語と前記出力側単語とのアラインメントスコアを算出する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
与えられる対訳文対の入力側の文に含まれる入力側単語のキー分散表現を生成するキー分散表現生成部と、
前記対訳文対の前記入力側の文とは異なる出力側の文に含まれる出力側単語のアラインメントのための分散表現であるアライン分散表現と、前記入力側単語の前記キー分散表現と、の類似度に基づいて、前記入力側単語と前記出力側単語とのアラインメントスコアを算出するアラインメントスコア算出部と、
を備えるアラインメント装置。
【請求項2】
前記出力側単語を前提として前記入力側単語が対応する確率を表すアテンション確率を算出するアテンション確率算出部、
をさらに備え、
前記アラインメントスコア算出部は、前記アテンション確率算出部が算出した前記アテンション確率にも基づき、前記入力側単語と前記出力側単語との前記アラインメントスコアを算出する、
請求項1に記載のアラインメント装置。
【請求項3】
前記出力側単語を前提として前記入力側単語が対応する確率を表すアテンション確率を算出するアテンション確率算出部と、
前記アテンション確率で重み付けした入力側単語の前記キー分散表現である重み付けキー分散表現を、前記出力側単語ごとに対応して算出する重み付けキー分散表現算出部と、
前記出力側単語ごとの前記重み付けキー分散表現を基に、単語種別ごとの前記アライン分散表現を算出するアライン分散表現算出部と、
をさらに備え、
前記アラインメントスコア算出部は、前記アライン分散表現算出部が算出した前記アライン分散表現に基づいて、前記アラインメントスコアを算出する、
請求項1に記載のアラインメント装置。
【請求項4】
前記アライン分散表現算出部は、前記重み付けキー分散表現の、単語種別ごとの平均値を算出することによって、前記アライン分散表現を算出する、
請求項3に記載のアラインメント装置。
【請求項5】
前記アライン分散表現算出部は、前記出力側単語に対応する前記重み付けキー分散表現と、前記出力側単語についての前記アライン分散表現と、の類似度に基づく評価値が最適化されるように、前記出力側単語についての前記アライン分散表現を推定して求める、
請求項3に記載のアラインメント装置。
【請求項6】
与えられる対訳文対の入力側の文に含まれる入力側単語のキー分散表現を生成するキー分散表現生成部と、
前記対訳文対の前記入力側の文とは異なる出力側の文に含まれる出力側単語のアラインメントのための分散表現であるアライン分散表現と、前記入力側単語の前記キー分散表現と、の類似度に基づいて、前記入力側単語と前記出力側単語とのアラインメントスコアを算出するアラインメントスコア算出部と、
を備えるアラインメント装置、としてコンピューターを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アラインメント装置およびプログラムに関する。
【背景技術】
【0002】
対訳文対に含まれる各文の間での単語同士の対応関係を自動的に求めたいというニーズが存在する。
【0003】
非特許文献1には、単語対応推定手法が記載されている。非特許文献1に記載された手法は、単語に対応する分散表現を用いない。
【0004】
非特許文献2、3、および4には、ニューラル機械翻訳の手法が記載されている。なお、非特許文献2および3には、RNNベースのニューラル機械翻訳の手法が記載されている。RNNは、再帰型ニューラルネットワーク(Recurrent Neural Network)である。非特許文献4には、Transformer(トランスフォーマー)ベースのニューラル機械翻訳の手法が記載されている。
【0005】
ニューラルネットワークに基づいた機械翻訳処理(ニューラル機械翻訳,NMT,Neural Machine Translation)は、広く用いられている。ニューラル機械翻訳の処理では、目的言語文にあたる単語列が、文頭側の単語から順番に出力される。ニューラル機械翻訳の手法では、アテンション確率と呼ばれる確率値を利用した翻訳処理が行われる。アテンション確率は、入力側の文、即ち原言語文の単語列に含まれる各単語に対する確率値であり、次に翻訳する原言語単語の予測となる値である。つまり、ニューラル機械翻訳で原言語文を翻訳して目的言語文(目的言語単語列)を生成した場合には、出力された目的言語単語列内の各単語のアテンション確率に基づいて、原言語文側の単語と目的言語文側の単語との対応関係を確率的に求めることができる。つまり、目的言語文側の各単語について、原言語文側の各単語のアテンション確率が付与されている。したがって、例えば、ある目的言語文側の単語に関しては、最も高いアテンション確率を有する原言語文側の単語が対応していると推定することができる。
【0006】
上記の、ニューラル機械翻訳でのアテンション確率を用いて、既存の対訳文対における単語間の対応関係の求める方法が考えられる。その方法では、対訳文対に含まれる原言語文を、ニューラル機械翻訳処理への入力とする。ニューラル機械翻訳処理では、対訳文対に含まれる目的言語文を強制的に出力させて、各単語に対応するアテンション確率を計算する。このアテンション確率は、原言語側と目的言語側との間での単語の対応関係の情報を含むものである。
【0007】
しかしながら、上記のようにアテンション確率を計算した場合、目的言語側の出力単語の情報がアラインメントの推定に利用されないため,アラインメント推定の品質が低くなるという問題がある.この問題を解決するため、非特許文献5に記載された手法は、出力する目的言語単語の情報をアテンション確率の計算に利用している。
【先行技術文献】
【非特許文献】
【0008】
【非特許文献1】Franz Josef Och,Hermann Ney,A systematic comparison of various statistical alignment models,Computational Linguistics,Vol. 29,No. 1,pp.19-51,2003年.
【非特許文献2】Dzmitry Bahdanau,Kyunghyun Cho,Yoshua Bengio,Neural machine translation by jointly learning to align and translate,Proceedings of ICLR,2015年.
【非特許文献3】Thang Luong,Hieu Pham,Christopher D. Manning,Effective approaches to attention-based neural machine translation,Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing,pp.1412-1421,Lisbon,Portugal,September 2015,Association for Computational Linguistics.
【非特許文献4】Ashish Vaswani,Noam Shazeer,Niki Parmar,Jakob Uszkoreit,Llion Jones,Aidan N Gomez,Lukasz Kaiser,Illia Polosukhin,Attention is all you need,Advances in Neural Information Processing Systems 30,pp.5998-6008,Curran Associates, Inc.,2017年.
【非特許文献5】Jan-Thorsten Peter,Arne Nix,Hermann Ney,Generating alignments using target foresight in attention-based neural machine translation,PBML,Vol. 108,No. 1,pp.27-36,2017年.
【発明の概要】
【発明が解決しようとする課題】
【0009】
上で説明した先行技術には、解決すべき課題がある。
【0010】
非特許文献1に記載された手法は、単語に対応する分散表現を用いないため、例えばある単語に2種類以上の訳語がある場合に、マイナーな訳語への対応関係の推定精度が低くなってしまうという問題がある。分散表現を用いない場合には、複数の単語の表層表現が異なっている場合に、それら複数の単語間で統計量を共有することができないため、マイナーな訳語への対応関係を推定しづらい。
【0011】
非特許文献5に記載された手法では、目的言語側の単語の分散表現をアテンション確率の計算に追加して、ニューラル機械翻訳の処理におけるすべてのパラメーターを最適化すると、目的言語側の出力単語の情報がパラメーターに直接埋め込まれてしまい、アテンション確率として意味のある学習にならなくなってしまう。そのため、非特許文献5に記載された手法は、ニューラル機械翻訳の処理におけるパラメーターの値のほとんどを固定し、アテンション確率の計算に関わる一部のパラメーターのみを再学習している。この手法で利用している目的言語側の分散表現は次に出力する目的言語側の単語の情報を誤差逆伝播法により埋め込んだものである。即ち、この分散表現は、目的言語側において次に続く単語の情報が埋め込まれたものであり、対訳の原言語側の単語の情報が埋め込まれたものではない。このため、原言語側と目的言語側との間での単語の対応の計算にはあまり有用な情報ではないという問題がある。
【0012】
本発明は、上記の課題認識に基づいて行なわれたものであり、マイナーな訳語にも対応でき、目的言語側の単語の分散表現として原言語側の単語の情報を持つものを構築することで、精度の高いアラインメントを実現することのできる、アラインメント装置およびプログラムを提供しようとするものである。
【課題を解決するための手段】
【0013】
[1]上記の課題を解決するため、本発明の一態様によるアラインメント装置は、与えられる対訳文対の入力側の文に含まれる入力側単語のキー分散表現を生成するキー分散表現生成部と、前記対訳文対の前記入力側の文とは異なる出力側の文に含まれる出力側単語のアラインメントのための分散表現であるアライン分散表現と、前記入力側単語の前記キー分散表現と、の類似度に基づいて、前記入力側単語と前記出力側単語とのアラインメントスコアを算出するアラインメントスコア算出部と、を備えるものである。
【0014】
[2]また、本発明の一態様は、上記のアラインメント装置において、前記出力側単語を前提として前記入力側単語が対応する確率を表すアテンション確率を算出するアテンション確率算出部、をさらに備え、前記アラインメントスコア算出部は、前記アテンション確率算出部が算出した前記アテンション確率にも基づき、前記入力側単語と前記出力側単語との前記アラインメントスコアを算出するものである。
【0015】
[3]また、本発明の一態様は、上記のアラインメント装置において、前記出力側単語を前提として前記入力側単語が対応する確率を表すアテンション確率を算出するアテンション確率算出部と、前記アテンション確率で重み付けした入力側単語の前記キー分散表現である重み付けキー分散表現を、前記出力側単語ごとに対応して算出する重み付けキー分散表現算出部と、前記出力側単語ごとの前記重み付けキー分散表現を基に、単語種別ごとの前記アライン分散表現を算出するアライン分散表現算出部と、をさらに備え、前記アラインメントスコア算出部は、前記アライン分散表現算出部が算出した前記アライン分散表現に基づいて、前記アラインメントスコアを算出するものである。
【0016】
[4]また、本発明の一態様は、上記のアラインメント装置において、前記アライン分散表現算出部は、前記重み付けキー分散表現の、単語種別ごとの平均値を算出することによって、前記アライン分散表現を算出するものである。
【0017】
[5]また、本発明の一態様は、上記のアラインメント装置において、前記アライン分散表現算出部は、前記出力側単語に対応する前記重み付けキー分散表現と、前記出力側単語についての前記アライン分散表現と、の類似度に基づく評価値が最適化されるように、前記出力側単語についての前記アライン分散表現を推定して求めるものである。
【0018】
[6]また、本発明の一態様は、与えられる対訳文対の入力側の文に含まれる入力側単語のキー分散表現を生成するキー分散表現生成部と、前記対訳文対の前記入力側の文とは異なる出力側の文に含まれる出力側単語のアラインメントのための分散表現であるアライン分散表現と、前記入力側単語の前記キー分散表現と、の類似度に基づいて、前記入力側単語と前記出力側単語とのアラインメントスコアを算出するアラインメントスコア算出部と、を備えるアラインメント装置、としてコンピューターを機能させるためのプログラムである。
【発明の効果】
【0019】
本発明によれば、アライン分散表現は、目的言語側の単語に対応する分散表現であり、原言語側の単語の情報を持つものである。アラインメント装置は、このようなアライン分散表現に基づいて、精度の高いアラインメントを実現することができる。
【図面の簡単な説明】
【0020】
【
図1】本発明の実施形態によるアラインメント装置の概略機能構成を示した第1のブロック図である。
【
図2】本発明の実施形態によるアラインメント装置の概略機能構成を示した第2のブロック図である。
【
図3】同実施形態によるアラインメント装置が処理対象とする対訳文対のデータの例を示す概略図である。
【
図4】同実施形態によるアラインメント装置が、
図3に示した対訳文における単語間の対応関係を求めた結果の例を示す概略図である。
【
図5】同実施形態によるアラインメント装置の内部構成の例を示すブロック図である。
【発明を実施するための形態】
【0021】
次に、本発明の一実施形態について、図面を参照しながら説明する。
【0022】
図1および
図2は、本実施形態によるアラインメント装置の概略機能構成を示すブロック図である。アラインメント装置1は、対訳文対供給部11と、key分散表現生成部13と、query分散表現生成部14と、value分散表現生成部15と、アテンション確率算出部18と、重み付けkey分散表現算出部21と、重み付けvalue分散表現算出部22と、アライン分散表現算出部25と、アラインメントスコア算出部26と、出力部29と、原言語文入力部31と、分散表現変換部32と、目的言語文入力部33と、分散表現変換部34と、アライン分散表現変換部35と、目的言語単語生成確率計算部37(デコーダー)とを含んで構成される。なお、対訳文対供給部11と出力部29に関しては、
図1および
図2での記載を省略している。
【0023】
図1は、アラインメント装置1がアライン分散表現を構築する処理のフェーズで使用される機能の構成を示す。一方、
図2は、アラインメント装置1が単語対応を計算するフェーズで使用される機能の構成を示す。
【0024】
図1に示すように、アライン分散表現を構築する処理のフェーズにおいて使用される機能部は、key分散表現生成部13と、query分散表現生成部14と、value分散表現生成部15と、アテンション確率算出部18と、重み付けkey分散表現算出部21と、重み付けvalue分散表現算出部22と、アライン分散表現算出部25と、原言語文入力部31と、分散表現変換部32と、目的言語文入力部33と、分散表現変換部34と、目的言語単語生成確率計算部37とを含む。アライン分散表現構築フェーズでは、アラインメント装置1は、多数の対訳文対に基づいてアライン分散表演を構築する。アライン分散表現算出部25は、アライン分散表現を出力する。このアライン分散表現は、
図2に示す単語対応計算フェーズで参照される。
【0025】
図2に示すように、単語対応を計算する処理のフェーズにおいて使用される機能部は、key分散表現生成部13と、アライン分散表現算出部25と、原言語文入力部31と、分散表現変換部32と、目的言語文入力部33と、アライン分散表現変換部35とを含む。単語対応計算フェーズでは、アラインメント装置1は、入力される対訳文対でのアラインメントスコアを算出する。つまり、アラインメント装置1は、対訳文対でのアラインメントを推定する。
【0026】
これらの機能部の各々は、例えば、コンピューターと、プログラムとで実現することが可能である。また、各機能部は、必要に応じて、記憶手段を有する。記憶手段は、例えば、プログラム上の変数や、プログラムの実行によりアロケーションされるメモリーである。また、必要に応じて、磁気ハードディスク装置やソリッドステートドライブ(SSD)といった不揮発性の記憶手段を用いるようにしてもよい。また、各機能部の少なくとも一部の機能を、プログラムではなく専用の電子回路として実現してもよい。
【0027】
本実施形態のアラインメント装置1は、対訳文におけるアラインメントを計算する。アラインメント装置1は、翻訳処理のためのエンコーダー(不図示)とデコーダー(不図示)とを備える。エンコーダーおよびデコーダーは、ニューラルネットワークを用いて実現される。アラインメント装置1は、入力側単語(原言語文側の単語)の分散表現を線形変換して得られる分散表現(key分散表現)と、デコーダーの分散表現を線形変換して得られる分散表現(query分散表現)との類似度により、アテンション確率を計算する。
【0028】
アラインメント装置1は、供給される対訳文に基づいて動作し、対訳文対の文間における単語同士の対応関係(アラインメント)を推定する。アラインメント装置1は、デコーダーに、目的言語文に相当する単語列を強制出力させる。つまり、アラインメント装置1は、デコーダーが算出した目的言語側の単語の確率に関わらず、与えられた対訳文対にしたがって、目的言語側の単語を出力として決定する。アテンション確率は次に翻訳する原言語側の単語を予測する値であるが、対訳文が与えられている場合には次に出力すべき目的言語側の単語は決まっているため、アラインメント装置1はこの情報を活用する。
【0029】
ニューラル機械翻訳(NMT)では、目的言語側の単語の分散表現には目的言語側の次の単語の情報が埋め込まれるように、翻訳モデルの学習が行われる。しかしながら、アラインメント装置1がアラインメントの処理のために必要とする情報は、目的言語側の単語に対応する対訳の(原言語側の)単語の情報であり、目的言語側の次の単語の情報はあまり有用な情報ではない。そこで、アラインメント装置1は、アラインメントを計算するために必要な、対訳の単語の情報を埋め込んだ分散表現を計算する手法をとる。
【0030】
本実施形態では、アラインメントを計算するための、目的言語の各語彙(単語種別)に対応する分散表現を、アライン分散表現と呼ぶ。アテンション確率は、前述の通り、次に翻訳する単語を予測するための値であるので、個々の対訳文対において、原言語文を入力して、その対訳の目的言語文を強制的に出力させた場合に、その予測が外れる場合がある。しかしながら、訓練データ(ニューラル機械翻訳のモデルの学習を行うための対訳文対の集合)は、クローズドデータであるので、訓練データに対しては上記の予測は多くの場合には平均的に良い精度で当たることが期待される。
【0031】
つまり、アラインメント装置1は、上記の対訳文対の集合に含まれる対訳文の原言語文を入力し、その対訳の目的言語文を強制的に出力させた場合において、アテンション確率によって重み付けしたkey分散表現列の和のベクトル(後述の「アテンション確率重み付けkey分散表現」)を計算する。
【0032】
そして、アラインメント装置1は、目的言語側の各語彙に対して、上記のベクトルの平均値(アテンション確率重み付けkey分散表現)を計算する。あるいは、アラインメント装置1は、上記のベクトルを用いた所定の目的関数を最適化するベクトルを計算する。ここで求めるベクトル(アライン分散表現)は、目的言語側の各語彙に対応する分散表現である。
【0033】
アラインメント装置1は、上記の方法で得られた目的言語の各語彙に対応する分散表現(アライン分散表現)とエンコーダーの分散表現系列から得られるkey分散表現との類似スコアを計算することによって、目的言語文中の各単語に対応する原言語側の単語を推定する。
【0034】
アラインメント装置1が持つ各部(
図1、
図2参照)の機能は、次の通りである。
【0035】
対訳文対供給部11は、1つまたは複数の対訳文対を供給する。対訳文対供給部11が多数の対訳文対を供給してもよい。対訳文対は、2種類の異なる自然言語(例えば、日本語と英語。但し、この組み合わせに限定されない。)で記述された対訳文である。これらの文の一方を原言語文、他方を目的言語文とみなして利用することができる。それぞれの文は、各言語での単語の列として表され得る。対訳文対供給部11は、それぞれの単語をワンホット(one-hot)ベクトルとして表してもよいし、分散表現のベクトルとして表してもよい。両者はテーブル等を用いて変換可能である。
【0036】
key分散表現生成部13(キー分散表現生成部)は、対訳文対に含まれる原言語文の中の特定の単語について、key分散表現を生成する。つまり、key分散表現生成部13は、対訳文対供給部11が与える対訳文対の入力側(原言語側)の文に含まれる入力側単語のkey分散表現を生成する。対訳文対供給部11が分散表現列として原言語文を提供する場合、key分散表現生成部13は、原言語文中の単語に対応する分散表現(ベクトル)に所定のパラメーター行列を作用させて、key分散表現(ベクトル)を生成する。この場合、原言語の単語の分散表現からkey分散表現への変換は、線形変換である。
【0037】
query分散表現生成部14(クエリー分散表現生成部)は、目的言語文の中の特定の単語について、query分散表現を生成する。つまり、query分散表現生成部14は、対訳文対供給部11が与える対訳文対の出力側(目的言語側)の文に含まれる出力側単語のquery分散表現を生成する。query分散表現生成部14は、具体的には、デコーダーの分散表現列内の各々の分散表現(ベクトル)に所定のパラメーター行列を作用させて、query分散表現(ベクトル)を生成する。この場合、目的言語の単語の分散表現からquery分散表現への変換は、線形変換である。
【0038】
value分散表現生成部15(バリュー分散表現生成部)は、対訳文対に含まれる原言語文の中の特定の単語について、value分散表現を生成する。つまり、value分散表現生成部15は、対訳文対供給部11が与える対訳文対の入力側(原言語側)の文に含まれる入力側単語のvalue分散表現を生成する。対訳文対供給部11が分散表現列として原言語文を提供する場合、key分散表現生成部13は、原言語文中の単語に対応する分散表現(ベクトル)に所定のパラメーター行列を作用させて、value分散表現(ベクトル)を生成する。この場合、原言語の単語の分散表現からvalue分散表現への変換は、線形変換である。
【0039】
アテンション確率算出部18は、出力側単語を前提として入力側単語が対応する確率を表すアテンション確率を算出するものである。アテンション確率は、既存の機械翻訳処理においても用いられる値である。
【0040】
重み付けkey分散表現算出部21(重み付けキー分散表現算出部)は、アテンション確率で重み付けした入力側単語のkey分散表現である重み付けkey分散表現を、出力側単語ごとに対応して算出する。
【0041】
重み付けvalue分散表現算出部22(重み付けバリュー分散表現算出部)は、アテンション確率で重み付けした入力側単語のvalue分散表現である重み付けvalue分散表現を、出力側単語ごとに対応して算出する。
【0042】
アライン分散表現算出部25は、目的言語側の単語に関する分散表現であるアライン分散表現を算出する。アライン分散表現は、原言語側の単語の情報を持つ分散表現である。アライン分散表現算出部は、出力側単語ごとの重み付けキー分散表現を基に、単語種別ごとの前記アライン分散表現を算出する。
【0043】
アライン分散表現算出部25は、例えば、重み付けキー分散表現の、単語種別ごとの平均値を算出することによって、前記アライン分散表現を算出してもよい。アライン分散表現算出部25は、また例えば別の方法として、出力側単語に対応する重み付けキー分散表現と、出力側単語についての前記アライン分散表現と、の類似度に基づく所定の評価値が最適化されるように、出力側単語についての前記アライン分散表現を推定して求めてもよい。
【0044】
アラインメントスコア算出部26は、対訳文対の入力側の文とは異なる出力側の文に含まれる出力側単語のアラインメントのための分散表現であるアライン分散表現と、入力側単語のキー分散表現と、の類似度に基づいて、入力側単語と出力側単語とのアラインメントスコアを算出する。ここでの類似度は、一例として、ベクトルの内積で表わされ得るものである。なお、アライン分散表現は、目的言語側の単語に関する分散表現である。また、アライン分散表現は、原言語側の単語の情報を持つ分散表現である。アラインメントスコア算出部26は、例えば、アライン分散表現算出部25が算出したアライン分散表現に基づいて、アラインメントスコアを算出してよい。アラインメントスコア算出部26は、後で変形例として記載するアライン分散表現に基づいて、アラインメントスコアを算出してもよい。
【0045】
アラインメントスコア算出部26は、アラインメントスコアを算出する際に、アテンション確率を用いるようにしてもよい。その具体的方法については、後で、数式とともに説明する。つまり、アラインメントスコア算出部26は、アテンション確率算出部18が算出したアテンション確率にも基づき、入力側単語と出力側単語とのアラインメントスコアを算出する。
【0046】
出力部29は、アラインメントスコア算出部26が算出した結果に関わる情報を出力する。具体的には、例えば、出力部29は、目的言語側(出力側)の文における単語と、原言語側(入力側)の文における単語との対応関係を出力する。その一形態して、出力部29は、目的言語側の単語位置(数値等)と、原言語側の単語位置(数値等)との対の集合のデータを出力する。また、出力部29は、目的言語側の単語と原言語側の単語との対の集合のデータを出力してもよい。また、出力部29は、目的言語側の文内の単語と原言語側の文内の単語とを線で結ぶことなどによって、両者間の対応関係をグラフィカルな形態で出力してもよい。
【0047】
原言語文入力部31は、原言語文を取得し、分散表現変換部32に渡す。原言語文は、目的言語文に対応する文である。原言語文入力部31は、対訳文対供給部11が供給する対訳文対に含まれる原言語文を取得するものであってよい。
【0048】
分散表現変換部32は、原言語文入力部31が取得した原言語文を、分散表現に変換する。
【0049】
目的言語文入力部33は、目的言語文を取得する。アライン分散表現を構築するフェーズにおいては、目的言語文入力部33は、取得した目的言語文を分散表現変換部34に渡す。単語対応を計算するフェーズにおいては、目的言語文入力部33は、取得した目的言語文をアライン分散表現変換部35に渡す。目的言語文入力部33は、対訳文対供給部11が供給する対訳文対に含まれる目的言語文を取得するものであってよい。
【0050】
分散表現変換部34は、目的言語文入力部33が取得した目的言語文を、分散表現に変換する。
【0051】
アライン分散表現変換部35は、目的言語文入力部33が取得した目的言語文を、アライン分散表現に変換する。このとき、アライン分散表現変換部35は、アライン分散表現の構築フェーズで構築されたアライン分散表現を参照する。
【0052】
目的言語単語生成確率計算部37は、目的言語に属する単語の生成確率を計算する。
【0053】
[処理の詳細]
次に、アラインメント装置1による処理の詳細について説明する。以下での処理の説明における文字の表記について、まず、ここでまとめて説明する。x1、x2、・・・、xmという表記において、1、2、・・・、mのそれぞれは添え字である。また、分散表現h1,h2,・・・,hmという表記においても、1、2、・・・、mのそれぞれは添え字である。y1、y2、・・・、ynという表記において、1、2、・・・、nのそれぞれは添え字である。また、s1,s2,・・・,snという表記においても、1、2、・・・、nのそれぞれは添え字である。また、xjおよびyiという表記のそれぞれにおいて、jおよびiは添え字である。また、アテンション確率αijやアラインメントスコアfijや、その他βi、ai、bijといった表記において、iおよびjは添え字である。また、分散表現kj、vj、qiという表記のそれぞれにおいて、jやiは添え字である。また、行列Wk、WvおよびWqという表記のそれぞれにおいて、k、v、およびqは添え字である。また、アライン分散表現dtという表記において、t(語彙)は添え字である。
【0054】
また、第i番目の位置(目的言語文側における位置)の単語に関して、アテンション確率で重み付けされたvalue分散表現およびkey分散表現を、便宜的に、それぞれ、cv
iおよびck
iと表記する場合がある。
【0055】
【0056】
アラインメント装置1は、対訳文対を、入力文と出力文との対とみなして処理を行うことができる。入力文とは、翻訳処理における原言語で記述された文(原言語文)である。出力文とは、目的言語で記述された文(目的言語文)である。原言語文と目的言語文のそれぞれは、単語列とみなすことができる。入力文(原言語文)をx=x1,x2,・・・,xmと表す。出力文(目的言語文)をy=y1,y2,・・・,ynと表す。mは入力文の単語列長であり、nは出力文の単語列長である。xj(1≦j≦m)およびyi(1≦i≦n)のそれぞれは、ワンホットベクトルとして表現され得る。上記のxおよびyからなる文対が与えられると、デコーダーは、確率P(y|x)を、下の式(1)によって計算する。
【0057】
【0058】
ここでは、RNN(再帰型ニューラルネットワーク)を用いたニューラル機械翻訳の場合を想定して処理の説明を行う。
【0059】
ただし、Transformer(トランスフォーマー)を用いたニューラル機械翻訳の場合も、デコーダー内の特定の層(例えば、最終層の1つ前の層)のマルチヘッドアテンション確率の平均を、RNNを用いる場合のアテンション確率とみなしてもよい。その場合には、当該特定の層の出力である分散表現の系列を、デコーダーの分散表現系列として扱う。これにより、Transformerを用いる場合にも、RNNを用いる場合等同様の処理を行うことができる。
【0060】
原言語文の単語列x1,x2,・・・,xmを、LSTM(長・短期記憶、Long short-term memory)やセルフアテンションネットワークなどを用いてエンコードした結果の分散表現の系列を、h1,h2,・・・,hmと表す。分散表現h1,h2,・・・,hmのそれぞれは、ベクトルである。ここで、jを原言語文における単語位置とし、iを目的言語文における単語位置とする。yiを予測するために用いるアテンション確率をαijと表す。アテンション確率αijは、yiを予測するために、原言語文側の単語xjを用いる確率である。
【0061】
原言語文側の位置jのkey(キー)分散表現kjおよびvalue(バリュー)分散表現vjは、それぞれ、重みパラメーター行列WkおよびWvを用いて、下の式(2)および式(3)のように計算される。
【0062】
【0063】
【0064】
key分散表現生成部13が、分散表現hjに基づいて、key分散表現kjを生成する。また、value分散表現生成部15が、分散表現hjに基づいて、value分散表現vjを生成する。key分散表現kjおよびvalue分散表現vjのそれぞれは、ベクトルである。なお、重みパラメーター行列WkやWvの具体的な値は、適宜与えられる。WkやWvの具体的な値は、例えば、コーパスを用いた学習によって決定される。
【0065】
デコーダーの分散表現系列を、s1,s2,・・・,snと表す。目的言語文側の位置iのquery(クエリー)分散表現qiは、重みパラメーター行列Wqを用いて、下の式(4)のように計算される。
【0066】
【0067】
query分散表現生成部14が、分散表現siに基づいて、query分散表現qiを生成する。query分散表現qiは、ベクトルである。なお、重みパラメーター行列Wqの具体的な値は、上記の行列WkkやWvと同様に、適宜与えられる。
【0068】
類似度の計算に内積を利用する場合、アテンション確率αijは下の式(5)および式(6)のように計算される。式(6)の右辺の演算子「・」は、内積の演算を表す。
【0069】
【0070】
【0071】
アテンション確率算出部18が、与えられた対訳文対のkey分散表現およびquery分散表現を用いて、上記のアテンション確率を算出する。
【0072】
アテンション確率αijを用いてvalue分散表現を重み付けすることによって得られる分散表現は、下の式(7)のように計算される。式(7)の左辺のcv
iの値を、「アテンション確率重み付けvalue分散表現」あるいは「重み付けvalue分散表現」と呼んでもよい。
【0073】
【0074】
重み付けvalue分散表現算出部22が、与えられた対訳文対におけるアテンション確率aijと、value分散表現とを用いて、上記の重み付けvalue分散表現cv
iを算出する。式(7)によって計算される分散表現は、デコーダーに入力され、目的言語文における位置iの単語yiの確率計算に用いられるものである。
【0075】
本実施形態では、アテンション確率αijを用いてkey分散表現を重み付けすることによって得られる分散表現も、下の式(8)のように計算される。式(8)の左辺のck
iの値を、「アテンション確率重み付けkey分散表現」あるいは「重み付けkey分散表現」と呼んでもよい。
【0076】
【0077】
重み付けkey分散表現算出部21が、与えられた対訳文対におけるアテンション確率aijと、key分散表現とを用いて、上記の重み付けkey分散表現ck
iを算出する。
【0078】
次に、アライン分散表現算出部25が、目的言語における各語彙tに対応するアライン(align)分散表現dtを算出する。この計算は、NMTの全てのパラメーターの訓練終了後に実施する。アライン分散表現算出部25は、多数の対訳文対(例えば、ニューラル機械翻訳のモデルを学習するための訓練データ全体)に基づいて、アライン分散表現dtを算出する。アライン分散表現算出部25がアライン分散表現dtを算出するための代表的な2種類の方法を、次に説明する。
【0079】
[アライン分散表現を計算する第1の方法]
第1の方法では、アライン分散表現算出部25は、ニューラル機械翻訳のためのモデルの訓練が終了した状態で、すべての対訳文についての、目的言語文側単語yi(文内での位置がi)に対するck
i(アテンション確率重み付けkey分散表現)を計算する。そして、アライン分散表現算出部25は、目的言語側の語彙t(単語種別)におけるck
iの平均値を計算し、そのベクトルをdtとする。
【0080】
つまり、アライン分散表現算出部25は、第1の方法では、アテンション確率重み付けkey分散表現の、単語種別ごと(語彙ごと)の平均値を、アライン分散表現dtとして算出する。
【0081】
[アライン分散表現を計算する第2の方法]
第2の方法では、アライン分散表現算出部25は、訓練データ全体(対訳文対の集合全体)で、所定の目的関数に対して最適なdtのパラメーターを計算する。このとき、dtの初期値としては、ランダムな値や、上記第1の方法で求めた値などを用いる。具体的には、アライン分散表現算出部25は、下の式(9)の値を最大化するようにdtのパラメーターを計算する。但し、式(9)内のβiは、式(10)に示す通りである。文の集合に対して計算する際は、式(9)の値が文の数だけ得られるが,それらを全て掛け合わせた値とする。なお、式(10)において、aiおよびbijをそれぞれ定義する式の右辺に現れる演算子「・」はベクトルの内積の演算を表す。
【0082】
【0083】
【0084】
上の式(9)および(10)において、iは、対訳文対内の目的言語文における単語位置を表す。式(9)の値を最大化(最適化)するためのパラメーターdtの推定は、例えば、誤差逆伝播法を用いて行うことができる。
【0085】
つまり、アライン分散表現算出部25は、第2の方法では、学習データでの出力文(目的言語文)全体についてのすべてのiに関するβi(式(10))の値の積が最大化(最適化)されるように、t(単語種別)についてのアライン分散表現の値を推定する。なお、βiの値は、式(10)に示すように、bijの値に指数関数を作用させた値のjについての総和を分母とし、aiの値に指数関数を作用させた値を分子とする値である。言うまでもなく指数関数exp()は入力値に対して単調増加な関数である。このaiは、ck
i(アテンション確率重み付けkey分散表現)と、単語yiのアライン分散表現との内積である。また、bijは、原言語文側の位置jのkey(キー)分散表現kjと、単語yiのアライン分散表現との内積である。
【0086】
上で得られたdtの分散表現を用いて、アラインメントスコアfijは下の式(11)のように計算される。あるいは、さらにアテンション確率αijの要素を加味して、下の式(12)のように計算されてもよい。
【0087】
【0088】
【0089】
アライン分散表現算出部25が求めたすべてのtのアライン分散表現dtを参照して、アラインメントスコア算出部26が、1対の対訳文対におけるアラインメントスコアfijを算出する。このように求められたアラインメントスコアfijは、目的言語側の第i番目の単語と、原言語側の第j番目の単語との類似度合いを表す。
【0090】
なお、式(12)におけるγは、アテンション確率αijが寄与する度合い(重み)を調整するためのハイパーパラメーターである。ハイパーパラメーターγの値は、適宜定められる。一例として、テストデータ等を用いて、求められるアラインメントスコアfijの値の正しさを評価することによって、パラメーターγの値を定めるようにしてもよい。
【0091】
式(11)あるいは式(12)で得られたアラインメントスコアを用いて、目的言語文の単語位置iの単語に対応する原言語文の単語位置は、下の式(13)で求められる。
【0092】
【0093】
出力部29が、式(13)により、目的言語文側の単語位置iにもっともよく対応する原言語文側の単語位置jを求める。
【0094】
図3は、アラインメント装置1が処理対象とする対訳文対のデータの例を示す概略図である。対訳文対は、原言語文と見なすことのできる所定原語による文と、目的言語文と見なすことのできる他の言語による文との対である。図示する例では、原言語文は、「I bought croissants at a bakery with a good reputation near Ebisu station yesterday.」という英語の文である。また、目的言語文は、「昨日、恵比寿駅近くの評判の良いパン屋さんでクロワッサンを買ってきました。」日本語の文である。これらの2文は、対訳である。なお、原言語あるいは目的言語は、任意の言語であってよい。
【0095】
図4は、アラインメント装置1が、
図3に示した対訳文における単語間の対応関係を求めた結果の例を示す概略図である。図示するように、原言語文および目的言語文のそれぞれが、単語の列として表され、各単語の位置が示されている。例えば、原言語文の第6番目の位置の単語は「bakery」であり、目的言語文の第13番目の単語は「クロワッサン」である。アラインメント装置1は、目的言語文側の単語ごとに、対応する原言語文側の単語の位置を求めている。例えば、第1番目の目的言語文側の単語である「昨日」が対応する原言語文側の単語は、第14番目の「yesterday」である。目的言語文側の他の単語についても同様である。なお、目的言語文側の単語に対応する原言語文側の単語がない場合には、アラインメント装置1は、その単語に関しては対応関係の情報を出力しない(例えば、目的言語文側の第2番目の位置の単語)。
【0096】
図4に示す例の場合に、目的言語文と原言語文との間での単語の対応関係は、次の通りである。なお、一方の複数の単語が他方の一つの単語に対応する場合もある。目的言語文側の第1番目の「昨日」は、原言語文側の「yesterday」に対応する。目的言語文側の第3番目の「恵比寿」は、原言語文側の「Ebisu」に対応する。目的言語文側の第4番目の「駅」は、原言語文側の「station」に対応する。目的言語文側の第5-6番目の「近く/の」は、原言語文側の「near」に対応する。目的言語文側の第7番目の「評判」は、原言語文側の「reputation」に対応する。目的言語文側の第8-9番目の「の良い」は、原言語文側の「good」に対応する。目的言語文側の第10-11番目の「パン屋さん」は、原言語文側の「a / bakery」に対応する。目的言語文側の第12番目の「で」は、原言語文側の「at」に対応する。目的言語文側の第13-14番目の「クロワッサンを」は、原言語文側の「croissants」に対応する。目的言語文側の第15-18番目の「買ってきました」は、原言語文側の「bought」に対応する。
【0097】
出力部29は、例えば、
図4に示す原言語文と目的言語文との間での対応関係の情報を出力する。出力部29が、
図4に示す対応関係の情報と等価な、他の形態の情報を出力してもよい。
【0098】
図5は、アラインメント装置1の内部構成の例を示すブロック図である。アラインメント装置1は、コンピューターを用いて実現され得る。図示するように、そのコンピューターは、中央処理装置901と、RAM902と、入出力ポート903と、入出力デバイス904や905等と、バス906と、を含んで構成される。コンピューター自体は、既存技術を用いて実現可能である。中央処理装置901は、RAM902等から読み込んだプログラムに含まれる命令を実行する。中央処理装置901は、各命令にしたがって、RAM902にデータを書き込んだり、RAM902からデータを読み出したり、算術演算や論理演算を行ったりする。RAM902は、データやプログラムを記憶する。RAM902に含まれる各要素は、アドレスを持ち、アドレスを用いてアクセスされ得るものである。なお、RAMは、「ランダムアクセスメモリー」の略である。入出力ポート903は、中央処理装置901が外部の入出力デバイス等とデータのやり取りを行うためのポートである。入出力デバイス904や905は、入出力デバイスである。入出力デバイス904や905は、入出力ポート903を介して中央処理装置901との間でデータをやりとりする。バス906は、コンピューター内部で使用される共通の通信路である。例えば、中央処理装置901は、バス906を介してRAM902のデータを読んだり書いたりする。また、例えば、中央処理装置901は、バス906を介して入出力ポートにアクセスする。
【0099】
なお、アラインメント装置1の少なくとも一部の機能をコンピューターで実現することができる。その場合、この機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM、DVD-ROM、USBメモリー等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。つまり、「コンピューター読み取り可能な記録媒体」とは、非一過性の(non-transitory)コンピューター読み取り可能な記録媒体であってよい。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、一時的に、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0100】
以上、複数の実施形態を説明したが、本発明はさらに次のような変形例でも実施することが可能である。複数の実施形態および変形例を、組み合わせることが可能な限りにおいて、組み合わせて実施してもよい。
【0101】
[第1変形例]
式(6)では、類似度を計算するためにベクトルの内積の演算を用いた。また、式(10)におけるaiやbijを求める計算でも、ベクトルの内積の演算を用いた。また、式(11)や式(12)においてアラインメントスコアを求める計算でも、ベクトルの内積の演算を用いた。第1変形例では、これらのいずれか一部、または全部を、内積の代わりに他の方法で計算してもよい。内積の代わりに、例えば、「ベクトルの内積/SQRT(ベクトルサイズ)」(SQRT()は平方根関数)を用いてもよい。」また、内積の代わりに、例えば、「(-1)×(二乗誤差)」を用いてもよい。
【0102】
[第2変形例]
上記実施形態では、対訳文対供給部11が供給する対訳文対の集合に基づいて、アライン分散表現算出部25が、アライン分散表現(dt)を算出した。第2変形例では、予め求めておいたアライン分散表現(dt)を利用して、アラインメントスコアを算出するようにする。つまり、所定の対訳文対の集合に基づいて求められた語彙全体についてのアライン分散表現(dt)を予め記憶装置等に記憶しておくようにする。つまり、記憶装置には、語彙に対応したそれぞれのアライン分散表現の値が書き込まれている。このアライン分散表現(dt)のデータは、アラインメント装置1自身によって算出されたものでもよいし、他の装置によって算出されてアラインメント装置1に渡されたものであってもよい。
【0103】
[第3変形例]
上記実施形態では、対訳文対が与えられたとき、アラインメント装置1は、一方の言語の文を原言語文(入力文)とし、他方の言語の文を目的言語文(出力文)として処理を行った。第3変形例では、アラインメント装置1は、この入出力関係を逆転させてもよい。また、アラインメント装置1は、言語Aを原言語文(入力文)として言語B(A≠B)を目的言語文(出力文)とする処理と、逆に言語Bを原言語文(入力文)として言語Aを目的言語文(出力文)とする処理と、の両方の処理を行ってもよい。
【0104】
そして、アラインメントスコア算出部26は、式(11)や式(12)などを用いて、新たな対訳文対のアラインメントスコアfijを算出する。その際、アラインメントスコア算出部26は、iの値に応じて、即ち目的言語文側の第i番目の単語yiに応じて、適切なアライン分散表現の値(単語yiに対応する分散表現の値)を上記の記憶装置から読み出して、計算に用いる。
【0105】
本実施形態(変形例を実施する場合を含む)によれば、対訳文対の文間における表現の対応関係を自動的に求めることができる。対訳文対の文間における対応関係を自動的に求めることができると、その対訳文のデータを基にした様々な応用を行うことが可能になる(あるいは、少なくとも、その処理効率が上がる)。一例として、対訳文対のデータから、表現の辞書(ある言語における表現と、他の言語における表現との対のデータ)を生成することが可能になる。また、一例として、対訳文対が機械翻訳処理の結果である場合には、その対訳文対において訳抜けが起こっているか否かを自動的に判定する(あるいは、少なくとも、訳抜けに関する情報を自動的に得る)ことが可能となる。訳抜けの検出は、機械翻訳技術の質の向上のための基礎情報となり得る。その他の応用も考えられる。
【0106】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【0107】
本発明は、例えば、対訳文対データの分析や評価に利用することができる。その分析や評価とは、例えば、対訳文対における訳抜け等の検出を含む。但し、本発明の利用範囲はここに例示したものには限られない。
【符号の説明】
【0108】
1 アラインメント装置
11 対訳文対供給部
13 key分散表現生成部(キー分散表現生成部)
14 query分散表現生成部(クエリー分散表現生成部)
15 value分散表現生成部(バリュー分散表現生成部)
18 アテンション確率算出部
21 重み付けkey分散表現算出部(重み付けキー分散表現算出部)
22 重み付けvalue分散表現算出部(重み付けバリュー分散表現算出部)
25 アライン分散表現算出部
26 アラインメントスコア算出部
29 出力部
31 原言語文入力部
32 分散表現変換部
33 目的言語文入力部
34 分散表現変換部
35 アライン分散表現変換部
37 目的言語単語生成確率計算部37(デコーダー)
901 中央処理装置
902 RAM
903 入出力ポート
904,905 入出力デバイス
906 バス