(57)【特許請求の範囲】
【請求項１】
入力文を構成する所定の処理単位ごとに、部分単語単位が前記所定の処理単位と等しい階層を最上位と定義した際に、上位の階層の各部分単語単位が下位の階層の１以上の部分単語単位の組によって構成されるように、複数階層の部分単語単位を生成し、前記所定の処理単位ごとに、当該所定の処理単位に対応する部分単語単位、及び当該所定の処理単位より下位の階層に含まれる全ての部分単語単位の埋め込みベクトルを足し合わせることによって当該所定の処理単位の埋め込みベクトルを生成する生成部と、
前記所定の処理単位ごとに生成された前記埋め込みベクトルを入力として、学習されたニューラルネットワークに基づく所定の処理を行い、前記入力文に対する出力を生成する処理を実行する実行部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記生成部は、上位の階層の部分単語単位が下位の階層の部分単語単位を包含するように、前記複数階層の部分単語単位を生成する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記ニューラルネットワークは、前記所定の処理単位ごとに、更に、未知語に対応する埋め込みベクトルを入力とする、
ことを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
学習データに含まれる入力文を構成する所定の処理単位ごとに、部分単語単位が前記所定の処理単位と等しい階層を最上位と定義した際に、上位の階層の各部分単語単位が下位の階層の１以上の部分単語単位の組によって構成されるように、複数階層の部分単語単位を生成し、前記所定の処理単位ごとに、当該所定の処理単位に対応する部分単語単位、及び当該所定の処理単位より下位の階層に含まれる全ての部分単語単位の埋め込みベクトルを足し合わせることによって当該所定の処理単位の埋め込みベクトルを生成する生成部と、
前記所定の処理単位ごとに生成された前記埋め込みベクトルを入力として、ニューラルネットワークに基づく所定の処理を行い、前記入力文に対する出力を生成する処理を実行する実行部と、
前記学習データにおける前記入力文に対応する出力に対する、前記実行部による処理結果の誤差に基づいて、前記ニューラルネットワークのパラメータを学習する学習部と、
を有することを特徴とする情報学習装置。
【請求項５】
入力文を構成する所定の処理単位ごとに、部分単語単位が前記所定の処理単位と等しい階層を最上位と定義した際に、上位の階層の各部分単語単位が下位の階層の１以上の部分単語単位の組によって構成されるように、複数階層の部分単語単位を生成し前記所定の処理単位ごとに、当該所定の処理単位に対応する部分単語単位、及び当該所定の処理単位より下位の階層に含まれる全ての部分単語単位の埋め込みベクトルを足し合わせることによって当該所定の処理単位の埋め込みベクトルを生成する生成手順と、
前記所定の処理単位ごとに生成された前記埋め込みベクトルを入力として、学習されたニューラルネットワークに基づく所定の処理を行い、前記入力文に対する出力を生成する処理を実行する実行手順と、
をコンピュータが実行することを特徴とする情報処理方法。
【請求項６】
学習データに含まれる入力文を構成する所定の処理単位ごとに、部分単語単位が前記所定の処理単位と等しい階層を最上位と定義した際に、上位の階層の各部分単語単位が下位の階層の１以上の部分単語単位の組によって構成されるように、複数階層の部分単語単位を生成し、前記所定の処理単位ごとに、当該所定の処理単位に対応する部分単語単位、及び当該所定の処理単位より下位の階層に含まれる全ての部分単語単位の埋め込みベクトルを足し合わせることによって当該所定の処理単位の埋め込みベクトルを生成する生成手順と、
前記所定の処理単位ごとに生成された前記埋め込みベクトルを入力として、ニューラルネットワークに基づく所定の処理を行い、前記入力文に対する出力を生成する処理を実行する実行手順と、
前記学習データにおける前記入力文に対応する出力に対する、前記実行手順による処理結果の誤差に基づいて、前記ニューラルネットワークのパラメータを学習する学習手順と、
をコンピュータが実行することを特徴とする情報学習方法。
【請求項７】
請求項１乃至３いずれか一項記載の情報処理装置としてコンピュータを機能させることを特徴とするプログラム。
【請求項８】
請求項４記載の情報学習装置としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報学習装置、情報処理方法、情報学習方法及びプログラムに関する。
【背景技術】
【０００２】
近年のニューラル機械翻訳の研究では、部分単語単位（ｓｕｂｗｏｒｄ）が広く用いられるようになりつつある（例えば、非特許文献１）。ニューラル機械翻訳において部分単語単位を用いる利点はいくつか考えられるが、部分単語単位を用いる最も大きな理由は、言語生成時の未知語問題への対応である。従来のニューラル機械翻訳では、単語そのものを生成する方式で行なっていたため、基本的に学習データに出現しない単語を生成することは不可能であった。一方、部分単語単位を用いると、部分単語単位で構成できる単語は理論的には全て生成可能となり、システムが理論的に生成可能な語彙数を爆発的に増やすことが可能となる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Sennrich, R., Haddow, B., and Birch, A.: Neural Machine Translation of Rare Words with Subword Units, in Proceedings of ACL, pp. 1715-1725 (2016)
【発明の概要】
【発明が解決しようとする課題】
【０００４】
前述のように、部分単語単位を導入した主な理由は生成時の未知語対応にある。つまり、復号化器の出力層の語彙を部分単語単位にすることが主な目的と言える。また、復号化器の出力層の語彙が決まると、当然入力層の語彙も同じものを使うことが自然であり一般的な方法論なので、こちらも同様に決定される。更に、復号化器だけを部分単語単位にすると不整合が生じる恐れがあるため一般的には、符号化器の語彙も復号化器の部分単語単位を構築する設定で構築する場合が多い。【０００５】
このように、ニューラル機械翻訳では、符号化器及び復号化器の双方が部分単語単位に関わる。【０００６】
また、文を構成する各文字列（例えば、単語等に）について、部分単語単位への分割結果は複数存在しうる。例えば、部分単語単位への分割ロジックに対する設定として、分割単位を文字単位とした場合、各文字列は、文字単位に分割される。一方、当該設定を２文字程度にした場合、各文字列は２文字程度の部分単語単位に分割される。このように同一の文字列であっても、分割ロジックに対する設定に応じて、複数通りの分割形態が有る。【０００７】
しかしながら、従来のニューラル機械翻訳においては、単一の設定によって生成された部分単語単位のみが用いられており、この点に関して精度の向上の余地が見込まれる。【０００８】
なお、上記の課題は、狭義のニューラル機械翻訳（言語の翻訳）だけに限られず、広義のニューラル機械翻訳（文を入力として、何かしらの系列を出力する系列変換モデル）にも共通である。系列変換モデルには、狭義のニューラル機械翻訳の他、例えば、文書要約や、構文解析、及び応答文生成等もその範疇に含まれる。【０００９】
本発明は、上記の点に鑑みてなされたものであって、系列変換モデルの変換精度を向上させることを目的とする。
【課題を解決するための手段】
【００１０】
そこで上記課題を解決するため、情報処理装置は、入力文を構成する所定の処理単位ごとに、部分単語単位が前記所定の処理単位と等しい階層を最上位と定義した際に、上位の階層の各部分単語単位が下位の階層の１以上の部分単語単位の組によって構成されるように、複数階層の部分単語単位を生成し、前記所定の処理単位ごとに、当該所定の処理単位に対応する部分単語単位、及び当該所定の処理単位より下位の階層に含まれる全ての部分単語単位の埋め込みベクトルを足し合わせることによって当該所定の処理単位の埋め込みベクトルを生成する生成部と、前記所定の処理単位ごとに生成された前記埋め込みベクトルを入力として、学習されたニューラルネットワークに基づく所定の処理を行い、前記入力文に対する出力を生成する処理を実行する実行部と、を有する。
【発明の効果】
【００１１】
系列変換モデルの変換精度を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態における変換装置１０のハードウェア構成例を示す図である。
【図２】第１の実施の形態における変換装置１０の翻訳時の機能構成例を示す図である。
【図３】ＢＰＥによって生成される部分単語単位の特性を説明するための図である。
【図４】第１の実施の形態における符号化部１２１及び復号化部１２２のモデル構成例を示す図である。
【図５】符号化器の拡張を説明するための図である。
【図６】第１の実施の形態における変換装置１０の学習時の機能構成例を示す図である。
【図７】第１の実施の形態における変換装置１０が実行する学習処理の処理手順の一例を説明するためのフローチャートである。
【図８】第２の実施の形態における符号化部１２１及び復号化部１２２のモデル構成例を示す図である。
【図９】第３の実施の形態における符号化部１２１及び復号化部１２２のモデル構成例を示す図である。
【図１０】第４の実施の形態における符号化部１２１及び復号化部１２２のモデル構成例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面に基づいて第１の実施の形態を説明する。図１は、第１の実施の形態における変換装置１０のハードウェア構成例を示す図である。図１の変換装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００１４】
変換装置１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１５】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って変換装置１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００１６】
図２は、第１の実施の形態における変換装置１０の翻訳時の機能構成例を示す図である。図２において、変換装置１０は、事前処理部１１及び解析部１２等を有する。これら各部は、変換装置１０にインストールされた１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。
【００１７】
解析部１２は、「Luong, M.-T., Pham, H., and Manning, C. D.: Effective Approaches to Attention-based Neural Machine Translation, in Proceedings of EMNLP (2015)」で用いられている注意機構（ａｔｔｅｎｔｉｏｎ  ｍｅｃｈａｎｉｓｍ）付きのＲＮＮ符号化／復号化器モデル（「Bahdanau, D., Cho, K., and Bengio, Y.: Neural Machine Translation by Jointly Learning to Align and Translate, in Proceedings of ICLR (2015)」）をベースラインモデルとする学習済みモデル（学習対象のパラメータ（以下、「学習パラメータ」という。）が設定されたニューラルネットワーク）に基づいて、入力文に関する部分単語単位に基づいてニューラル機械翻訳（例えば、自然言語の翻訳）を実行して、出力文を生成する。
【００１８】
図２において、解析部１２は、符号化部１２１及び復号化部１２２を含む。符号化部１２１は、符号化器／復号化器モデル（Ｅｎｃｏｄｅｒ−ｄｅｃｏｒｄｅｒ  ｍｏｄｅｌ）又は系列変換モデルの符号化器（ｅｎｎｃｏｄｅｒ）として機能する。復号化部１２２は、当該モデルの復号化器（ｄｅｃｏｄｅｒ）として機能する。
【００１９】
まず、ベースラインモデルにおける符号化器及び復号化器について定式化し、その後、本実施の形態における符号化部１２１及び復号化部１２２における符号化器及び復号化器に関する拡張について述べる。以下の説明において、Ｘ＝（ｘｉ）Ｉｉ＝１を入力系列（入力文）、Ｙ＝（ｙｊ）Ｊｊ＝１を出力系列（出力文）とする。ｘｉは、ｉ番目の入力単語ｗｉに対応するｏｎｅ−ｈｏｔベクトル表現、ｙｊは、ｊ番目の出力単語ｗｊに対応するｏｎｅ−ｈｏｔベクトル表現である。また、ｏｎｅ−ｈｏｔベクトルのリスト（ｘ１，...，ｘＩ）を、（ｘｉ）Ｉｉ＝１と記述し、ｏｎｅ−ｈｏｔベクトルのリスト（ｙ１，...，ｙＪ）を、（ｙｉ）Ｊｊ＝１と記述する。Ｉは、入力文に含まれる単語数であり、Ｊは、出力文に含まれる単語数である。なお、ベースラインモデルについては、単語を処理単位として説明する。
【００２０】
ベースラインモデルの符号化器について説明する。Ω（ｓ）（・）をＲＮＮで構成される符号化器の全ての処理を表す関数とする。この場合、符号化器は、以下の式（１）及び（２）によって示されるように、入力Ｘ＝（ｘｉ）Ｉｉ＝１を受け取って隠れ状態ベクトルのリストＨｓ＝（ｈｓｉ）Ｉｉ＝１を返す処理を実行する。
【００２１】
【数１】
0006772393.tif 000002
但し、Ｅは、ベースラインモデルの符号化器の埋め込み行列である。埋め込み行列Ｅは重み付きの行列であり、学習パラメータを構成する。すなわち、Ｅは、学習時において逐次更新される。
【００２２】
ベースラインモデルの復号化器（＋注意機構（ａｔｔｅｎｔｉｏｎ））について説明する。復号化器は、Ｋベストビーム探索（ｂｅａｍ−ｓｅａｒｃｈ）を用いて、入力系列Ｘが与えられたときの出現確率が最大となる出力系列^Ｙ（の近似解）を獲得する。ビーム探索では、各処理時刻ｊでＫ個の出力候補を保持しながら探索を行う。ここでは、各処理時刻ｊにおいて、生成する語彙を選択する処理を述べる。まず、時刻ｊにおける埋め込みベクトルの取得には、以下の式（３）を用いて計算を行う。
【００２３】
【数２】
0006772393.tif 000003
但し、Ｆは、ベースラインモデルの符号化器の埋め込み行列である。埋め込み行列Ｆは重み付きの行列であり、学習パラメータを構成する。すなわち、Ｆは、学習時において逐次更新される。
【００２４】
この時、~ｙｊ-１，ｋ（但し、~ｙは、数式においてｙの上~が付与された記号に対応する。）に処理時刻ｊ−１で予測されたｋ番目に確率が高い単語に対応するｏｎｅ−ｈｏｔベクトルとする。但し、全てのｋに対して~ｙ（ｋ）０，ｋは、必ず特殊単語ＢＯＳに対応するｏｎｅ−ｈｏｔベクトルとする。
【００２５】
次に、復号化器は、得られた埋め込みベクトルｆｊを使って、ＲＮＮと注意機構を用いて最終隠れ層のベクトルｚｊ，ｋを以下の式（４）を用いて計算する。
【００２６】
【数３】
0006772393.tif 000004
ここで、ＲＮＮＡｔｔｎは、入力ベクトルｆｊ，ｋを受け取って、ＲＮＮと注意機構を用いて最終隠れ層のベクトルｚｊ，ｋを計算する処理全てを表す関数とする。但し、ｕ（ｊ，ｋ）は、処理時刻ｊにおけるｋ番目の候補が、処理時刻ｊ−１の時の１からＫ番目のどの候補から生成されたかを示す値とする。よって、ｕ（ｊ，ｋ）＝｛１，...，Ｋ｝である。この値は、ｊ−１時刻の時にどのＲＮＮを用いて処理が行われたのかを次の時刻ｊに伝達する役割を持っている。次に、復号化器は、得られた最終隠れ層のベクトルｚｊから、生成する単語を選択する基準となるスコアを以下の式（５）を用いて計算する。
【００２７】
【数４】
0006772393.tif 000005
その後、復号化器は、Ｋベストビーム探索の処理を行い、処理時刻ｊにおける上位Ｋ個の候補を得る。
【００２８】
【数５】
0006772393.tif 000006
ここで、Ｋ個の候補とともに、前述のｕ（ｊ，ｋ）の情報も取得される。
【００２９】
学習時は、ｋ＝１として予測結果~ｙｊ-１，ｋの代わりに正解ｙｊ-１，ｋを利用することに相当する。
【００３０】
次に、本実施の形態により拡張される符号化部１２１及び復号化部１２２について説明する。符号化器及び復号化器の拡張に伴い、本実施の形態の変換装置１０は、事前処理部１１を有する。そこで、まず、事前処理部１１について説明する。
【００３１】
事前処理部１１は、文章等の入力文に対して事前処理を実行する。本実施の形態では、事前処理として、入力文について、任意の処理単位（単語等）への分割が実行され、分割後の処理単位についての埋め込みベクトル（分散表現）が求められる。本実施の形態では、各処理単位の埋め込みベクトルの生成（導出）に、当該処理単位に関する複数階層の部分単語単位が利用される。本実施の形態における部分単語単位は、ＢＰＥ（byte-pair encoding ）を用いた方法（非特許文献１）によって決定される。
【００３２】
ＢＰＥでは、入力文を最も細かい部品（文字）まで分割し、各部分単語（文字を含む）を逐次的にマージ（結合）することで徐々に文字から単語へ部分単語を組み上げていく処理が実行される。その組み上げの処理に置いて、事前に決められたマージ回数に到達したら処理を終了する。
【００３３】
一般的には、マージ回数（ｍ）の値はハイパーパラメータであり、人手により経験的に良いと思われる値が用いられる。近年のニューラル機械翻訳では、ｍとして数千から数万の値が使われることが多く、千以下、十万以上の値はあまり用いられない傾向にある。これは、マージ回数が少ない場合は、文字単位の処理に近く、それぞれの文字が有する意味的な情報量が限定的になるため、あまり効果的ではないと予想され、また、マージ回数が多い場合は、単語単位の処理と近くなり、部分単語を導入した意味が薄れてしまうということが考えられる。このような理由から、翻訳で必要になる語彙数が数百万語彙だと仮定した場合、経験的に数千から数万のマージ回数とするのは妥当な値と考えられる。
【００３４】
ＢＰＥの特性として、マージ回数が０回の場合は、文字単位の処理と一致し、マージ回数を無限大にすると単語単位と同じになる。よって、部分単語単位を用いる方法論をＢＰＥの観点で整理すると、文字単位の処理から単語単位の処理までをマージ回数という観点で、離散値で段階的（階層的）に遷移する方法論と捉えることができる。つまり、ＢＰＥは、その性質上、文字単位の処理も単語単位の処理も包含する枠組みと捉えることができる。このことから、第１の実施の形態では、「部分単語単位」という用語は、直感的に思い浮かぶ単語の一部という意味だけではなく、単語そのものや文字単位の状態も含む概念として用いられる。また、第１の実施の形態では、ｍをＢＰＥのマージ回数を表す変数とし、特に、ＢＰＥ（ｍ＝０）を文字単位を用いる方法、ＢＰＥ（ｍ＝∞）を単語単位を用いる方法を表すこととし、以下においては、文字単位や単語単位の場合を区別せず全て部分単語の文脈で説明を行う。
【００３５】
ＢＰＥでは、相対的にｍが小さい下位の部分単語単位は、ｍが大きい上位の部分単語単位に包含される関係にあるため、最もｍが大きい部分単語単位に対し、相対的にｍが小さい部分単語単位は一意に決定される。
【００３６】
図３は、ＢＰＥによって生成される部分単語単位の特性を説明するための図である。図３では、「Ｂｒｉｔｎｅｙ」という文字列の部分単語単位の一例が示されている。図３において、ｍ１、ｍ２、ｍ３は、マージ回数ｍの具体的な値を示し、ｍ１＜ｍ２＜ｍ３の関係を有する。
【００３７】
マージ回数がｍ３の場合、「Ｂｒｉｔｎｅｙ」の部分単語単位は、「Ｂｒｉｔｎｅｙ」の１つである例が示されている。マージ回数がｍ２の場合、「Ｂｒｉｔｎｅｙ」の部分単語単位は、「Ｂｒｉ」、「ｔ」、「ｎｅｙ」の３つである例が示されている。マージ回数がｍ１の場合、「Ｂｒｉｔｎｅｙ」の部分単語単位は、「Ｂ」、「ｒｉ」、「ｔ」、「ｎ」、「ｅ」、「ｙ」の５つである例が示されている。
【００３８】
なお、図３の下側の図は、符号化部１２１による符号化の際に生成される情報の一例を示す。当該図における記号「＠＠」は、次の部分単語単位と結合することで元の単語単位になることを示すために挿入される特殊記号である。
【００３９】
図３に示されるように、マージ回数ｍが相対的に大きい部分単語単位は、マージ回数ｍが相対的に小さいいずれか１以上の部分単語単位を完全に包含する（換言すれば、マージ回数ｍが相対的に大きい部分単語単位は、マージ回ｍ数が相対的に小さい１以上の部分単語単位の組み合わせによって構成される。）。具体的には、マージ回数＝ｍ３の部分単語単位は、マージ回数＝ｍ２又はｍ１の１以上の部分単語単位を包含する。マージ回数＝ｍ２の各部分単語単位は、マージ回数＝ｍ１の１以上の部分単語単位を包含する。
【００４０】
したがって、或る文集合（コーパス）について、相対的にマージ回数が大きい部分単語単位に対して、相対的にマージ回数が小さい部分単語単位は、一意に決定される。ここで、一意に決定されるとは、ランダム性が無いことをいう。すなわち、計算するたびに値が変化しないことをいう。
【００４１】
したがって、ＢＰＥでは、部分単語単位をマッピング関数を用いて容易に求めることができる。よって、事前処理部１１は、当該マッピング関数を用いて入力文から部分単語単位を生成する。この際、本実施の形態の事前処理部１１は、マージ回数が単一の部分単語単位ではなく、複数種類のマージ回数について部分単語単位を生成する。すなわち、事前処理部１１は、各単語に対する部分単語単位を階層的に生成し、各部分単語単位に基づいて、当該単語の埋め込みベクトルを生成する。
【００４２】
続いて、本実施の形態の符号化部１２１及び復号化部１２２について説明する。図４は、第１の実施の形態における符号化部１２１及び復号化部１２２のモデル構成例を示す図である。
【００４３】
図４に示されるように、本実施の形態では、符号化部１２１及び復号化部１２２のそれぞれの入力層が拡張される。より具体的には、複数階層の部分単語単位（マージ回数が複数種類の部分単語単位）が取り扱えるようそれぞれの入力層が拡張される。図４では、符号化部１２１について３階層の部分単語単位の入力が可能とされ、復号化部１２２について２階層の部分単語単位が入力可能とされた例が示されている。
【００４４】
なお、復号化部１２２の出力に対して、複数階層の部分単語単位を出力するように修正することも考えられる。これはマルチタスク学習の設定と考えれば技術的には容易に対応可能であるが、復号化部１２２では、逐次的に単語予測を繰り返すという処理を行う性質上、複数の予測結果間の整合性を担保するには、制約付きの復号化処理などが必要となる。これは、学習と評価時の復号化（デコード）処理が煩雑になるため、本実施の形態では取り扱わないこととする。よって本実施の形態では、復号化部１２２の出力部分は変更不要なことを担保した状態で符号化部１２１及び復号化部１２２の入力層の修正を行うという考えを基本方針とする。
【００４５】
この時、復号化部１２２の入力部分の拡張は以下の通りである。
【００４６】
【数６】
0006772393.tif 000007
すなわち、本実施の形態の復号化部１２２では、式（３）が式（７）に変更される。但し、Ｆｒは復号化部１２２の埋め込み行列であり、ｒはマージ回数である。すなわち、Ｆｒは、マージ回数＝ｒに対する埋め込み行列である。例えば、復号化部１２２について図４の通りにマージ回数が設定された場合、ｒ＝｛１０００，１６ｋ｝である。なお、埋め込み行列Ｆｒは重み付きの行列であり、学習パラメータを構成する。すなわち、Ｆｒは、学習時において逐次更新される。
【００４７】
前述のように、復号化部１２２の予測は単一であることを仮定するため、Ψｒ（~ｙｊ-１，ｋ）は、予測結果~ｙｊ-１，ｋをキーとした事前に定義されたマッピング関数を表しており、要素が０又は１をとるバイナリベクトルを返す。すなわち、Ψｒ（・）によって返されるバイナリベクトルは、マージ回数がｒである場合の~ｙｊ-１，ｋの各部分単語単位の要素が１であるバイナリベクトルである。例えば、ＢＰＥ（ｍ＝１６ｋ）のｒｅｃｏｒｄという部分単語単位が予測された場合、ＢＰＥ（ｍ＝１ｋ）で「ｒｅｃｏｒｄ」の部分単語単位となる「ｒｅｃ」と「ｏｒｄ」とのそれぞれに対応する要素が１であるバイナリベクトルがマッピング関数で引かれるといった処理となる。ｒ＝｛１ｋ，１６ｋ｝である場合、式（７）では、~ｙｊ-１，ｋについて各ｒについて算出された埋め込みベクトルの総和（要素同士の総和）が算出される。
【００４８】
なお、上述したように、相対的にｍが小さい部分単語単位は包含関係にあるため、一意に対象となる部分単語単位が決まり、容易に部分単語単位を求めることができる。つまり、上記の復号化部１２２の入力部分の拡張は、復号化部１２２の予測結果が~ｙｊ-１，ｋ一つであるため、これからマッピング関数で一意に決定できる部分単語単位を特徴として利用していることに相当する。
【００４９】
同様に、符号化部１２１側の入力部分の拡張は以下の通りである。
【００５０】
【数７】
0006772393.tif 000008
すなわち、本実施の形態の符号化部１２１では、式（１）が式（８）に変更される。但し、Ｅｑは符号化部１２１の埋め込み行列であり、ｑはマージ回数である。すなわち、Ｅｑは、マージ回数＝ｑに対する埋め込み行列である。例えば、符号化部１２１について図４の通りにマージ回数が設定された場合、ｑ＝｛３００，１０００，１６ｋ｝である。なお、埋め込み行列Ｅｑは重み付きの行列であり、学習パラメータを構成する。すなわち、Ｅｑは、学習時において逐次更新される。
【００５１】
φｑ（ｘｉ）は、Ψｒ（~ｙｊ-１，ｋ）と同様に、ｘｉから一意に導出可能なマッピング関数を表しており、要素が０又は１をとるバイナリベクトルを返す。すなわち、φｑ（・）によって返されるバイナリベクトルは、マージ回数がｑである場合のｘｉの各部分単語単位の要素が１であるバイナリベクトルである。ｑが複数通りであれば、式（８）では、ｘｉについて算出された複数通りの埋め込みベクトルの総和（要素同士の総和）が算出される。斯かる演算は、換言すれば、図５に示されるものと同義である。
【００５２】
図５は、符号化部１２１の拡張を説明するための図である。図５において左側が式（１）に対応し、右側が式（８）に対応する。左側において、埋め込み行列Ｅに対して乗ぜられるベクトル（ｘｉ）は、ｏｎｅ−ｈｏｔベクトル表現であるのに対し、右側において埋め込み行列Ｅｑに対して乗ぜられるベクトルは、ｘｉのｑに対する各部分単語単位の要素が１であるバイナリベクトル（φｑ（ｘｉ））である。したがって、当該バイナリベクトルは複数の要素が１となりうる。ｅｉ，ｑは、入力単語ｗｉに対するｑについての埋め込みベクトルである。式（８）によれば、全てのｑに対するｅｉ，ｑの総和が、入力単語ｗｉに対する埋め込みベクトルｅｉとなる。
【００５３】
図６は、第１の実施の形態における変換装置１０の学習時の機能構成例を示す図である。図６中、図２と同一部分には同一符号を付し、その説明は省略する。
【００５４】
学習時において、変換装置１０は、更に、サンプリング部１３及びパラメータ学習部１４を有する。これら各部は、変換装置１０にインストールされた１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。
【００５５】
サンプリング部１３は、学習データ群Ｄの中から、１回分の学習処理の学習データをサンプリング（抽出）する。学習データは、入力系列（入力文）Ｘと、当該Ｘに対応する（当該Ｘに対して正解となる）出力系列（出力文）Ｙとの組みである。
【００５６】
パラメータ学習部１４は、学習データに基づいて、符号化部１２１及び復号化部１２２のそれぞれの学習モデル（学習パラメータ群）を学習する。
【００５７】
なお、学習時の変換装置１０と、推論時（タスク（入力系列Ｘに基づく出力系列Ｙの生成）の実行時）の変換装置１０とは異なるコンピュータを用いて構成されてもよい。
【００５８】
以下、変換装置１０が実行する処理手順について説明する。図７は、第１の実施の形態における変換装置１０が実行する学習処理の処理手順の一例を説明するためのフローチャートである。
【００５９】
ステップＳ１０１において、事前処理部１１は、予め用意されている学習データ群Ｄの中から、一部の学習データ（以下、「対象学習データ」という。）をサンプリングする。サンプリングは、公知の方法が用いられて実行されればよい。
【００６０】
続いて、事前処理部１１は、対象学習データの入力系列（入力文）を、任意の処理単位（例えば、単語単位）に分割する（Ｓ１０２）。
【００６１】
続いて、事前処理部１１は、入力系列の各処理単位を式（８）利用して埋め込みベクトルに変換する（Ｓ１０３）。ここで、式（８）のｑの階層（すなわち、ＢＰＥのマージ回数）は、ハイパーパラメータとして予め設定される。各処理単位について、式（８）を用いて埋め込みベクトルが生成されることにより、各処理単位について、階層的な部分単語単位に基づく埋め込みベクトルが得られる。
【００６２】
続いて、符号化部１２１は、各処理単位の埋め込みベクトルの系列を入力として、公知の方法により符号化の計算を実行する（Ｓ１０４）。
【００６３】
続いて、復号化部１２２は、符号化部１２１による計算結果（例えば、符号化部１２１の再帰層の計算結果）を入力とし、公知の方法により復号化の計算を実行する（Ｓ１０５）。但し、この際、ｊ番目の処理単位について復号化部１２２に入力される埋め込みベクトルは、ｊ−１番目の処理単位について復号化部１２２から出力された処理単位に対して式（７）が適用されて計算される。ここで、式（７）のｒの階層（すなわち、ＢＰＥのマージ回数）は、ハイパーパラメータとして予め設定される。なお、ｒの階層はｑの階層と同じでもよいし、異なっていてもよい。式（７）を用いて埋め込みベクトルが生成されることにより、当該処理単位について、階層的な部分単語単位に基づく埋め込みベクトルが得られる。その後、当該埋め込みベクトルと、式（４）〜（６）に基づいて、ｊ番目の処理単位の予測結果（推論結果）が得られる。
【００６４】
続いて、パラメータ学習部１４は、復号化部１２２による処理結果である出力系列の予測結果と、対象学習データの出力系列とに基づいて、公知の方法により損失関数（すなわち、対象学習データの出力系列（出力文）と、復号化器１２２による計算結果である出力系列の予測結果との誤差）を計算する（Ｓ１０６）。
【００６５】
続いて、パラメータ学習部１４は、損失関数の計算結果が所定の収束条件を満たしたか否かを判定する（Ｓ１０７）。当該計算結果が当該収束条件を満たしていない場合（Ｓ１０７でＮｏ）、パラメータ学習部１４は、当該計算結果に基づいて、公知の方法により符号化部１２１及び復号化部１２２のそれぞれの学習パラメータを更新する（Ｓ１０８）。この場合、更新後の学習パラメータに基づいてステップＳ１０１以降が繰り返される。
【００６６】
一方、損失関数の計算結果が所定の収束条件を満たした場合（Ｓ１０７でＹｅｓ）、パラメータ学習部１４は、この時点における符号化部１２１及び復号化部１２２のそれぞれの学習パラメータを、例えば、補助記憶装置１０２等に保存する（Ｓ１０９）。その結果、符号化部１２１及び復号化部１２２は、学習済みのニューラルネットワークとなる。
【００６７】
なお、学習後のタスクの実行時（ニューラル機械翻訳の実行時）には、ステップＳ１０１において、翻訳対象の入力文Ｘが入力され、ステップＳ１０５において、翻訳結果の出力文Ｙが出力される。ステップＳ１０６以降が実行されない。
【００６８】
このように学習された符号化部１２１及び復号化部１２２についての実験及び実験結果は、「Makoto Morishita, Jun Suzuki, Masaaki Nagata. Improving Neural Machine Translation by Incorporating Hierarchical Subword Features The 27th International Conference on Computational Linguistics (COLING).」の「４．Ｅｘｐｅｒｉｍｅｎｔｓ」以降に記載されている通りである。例えば、「Ｔａｂｌｅ  ９」には、フランス語から英語へ機械翻訳について、ベースラインモデルと本実施の形態との翻訳結果が示されている。
【００６９】
これによれば、本実施の形態では、「Ｂｒｉｔｎｅｙ  Ｓｐｅａｒｓ」といった未知語又は低頻度語について、正しく翻訳できている（生成できている）ことが分かる。
【００７０】
上述したように、第１の実施の形態によれば、符号化部１２１の入力及び復号化部１２２の入力について、一つの処理単位に対して様々な数及び長さの部分単語単位が生成される。したがって、一つの処理単位について、様々な数及び長さの部分単語単位を階層的に入力することができる。その結果、実験結果に示されるように、系列変換モデルの変換精度を向上させることができる。なお、符号化部１２１の入力及び復号化部１２２のいずれか一方のみについて、部分単語単位が階層化されるようにしてもよい。すなわち、他方については、マージ回数が単一の部分単語単位が入力されるようにしてよい。
【００７１】
また、第１の実施の形態では、部分単語単位の生成方法として、ＢＰＥが採用される。ＢＰＥでは、相対的に文字列長が長い部分単語単位が、相対的に文字列長が短い部分単語単位を必ず包含するという特徴がある。その結果、ニューラル機械翻訳の処理効率を向上させることができる。
【００７２】
なお、第１の実施の形態は、ニューラル機械翻訳以外の系列変換モデル（例えば、文書要約や、構文解析、及び応答文生成等）にも適用可能である。
【００７３】
一例として、構文解析への適用例を第２の実施の形態として説明する。第２の実施の形態では第１の実施の形態と異なる点について説明する。第２の実施の形態において特に言及されない点については、第１の実施の形態と同様でもよい。
【００７４】
図８は、第２の実施の形態における符号化部１２１及び復号化部１２２のモデル構成例を示す図である。すなわち、第２の実施の形態では、図４が図８に置き換わる。
【００７５】
図８に示されるように、符号化部１２１は、複数階層の部分単語単位を入力可能なように拡張されている。符号化部１２１に関して、ｘ'ｉは、入力文におけるｉ番目の入力単語ｗｉの埋め込みベクトル、ｓ'ｑは、ｗｉに関してマージ回数ｍ＝ｑ（ｑ階層目）の部分単語単位を示す。なお、第２の実施の形態では、単語と当該単語に関する部分単語単位とが明確に区別される。すなわち、第２の実施の形態における部分単語単位には、マージ回数ｍ＝∞の場合は含まれない。その結果、式（１）は、以下の式（９）に置き換わる。すなわち、第２の実施の形態において、事前処理部１１は、入力単語ｗｉに対する埋め込みベクトルｅｉを、以下の式（９）によって算出する。
【００７６】
【数８】
0006772393.tif 000009
但し、ｘｉは、入力単語ｗｉのｏｎｅ−ｈｏｔベクトル表現、ｓｑは、マージ回数ｍ＝ｑにおける入力単語ｗｉの部分単語単位群のバイナリベクトルである。
【００７７】
なお、単語と部分単語単位との区別は便宜的なものであり、ｘ'ｉが、ｍ＝∞の場合のｓ'ｑによって表現されてもよい。、この場合、式（９）ではく、式（１）が利用されればよい。
【００７８】
一方、図８の復号化部１２２は、入力文に対応する構文木のＳ式を出力する。Ｓ式を出力する復号化部１２２には、公知の復号器が用いられればよい。
【００７９】
なお、図８の復号化部１２２は、ターゲットタスクに関連する効果的な補助タスクを見つけることができれば、マルチタスク学習拡張機能がタスクパフォーマンスを向上させることが多いという一般的な知識から、ＰＯＳタグの正規化無しで線形化された形式を組み込むことによるＰＯＳタグが、補助的なタスクとして共同で推定されるように構成されている。詳細には、ＰＯＳタグ正規化有り及び無しの線形化された形式のスコアは、以下の式によって、復号化部１２２の出力層において、それぞれ独立に、かつ、同時にｏｊ及びａｊとして推定される。
【００８０】
【数９】
0006772393.tif 000010
但し、Ｗ（ｏ）は、ＰＯＳタグ正規化による出力の語彙に対するデコーダ出力行列である。また、Ｗ（ａ）は、ＰＯＳタグ正規化無しの出力語彙に対するデコーダ出力行列である。
【００８１】
次に、第３の実施の形態について説明する。第３の実施の形態では第２の実施の形態と異なる点について説明する。第３の実施の形態において特に言及されない点については、第２の実施の形態と同様でもよい。
【００８２】
系列変換モデルにおいて、希少語（低頻度語）、例えば、訓練データ中に５回未満しか出現しない単語は、一般に未知語に置換される。しかし、第１の実施の形態や第２の実施の形態のように部分単語単位を用いる場合、未知語が発生しなくなる。したがって、未知語に対応する埋め込みベクトルの学習が行われなくなる。一方で、学習データに含まれていない文字がタスクの実行時（推論時）の入力文に含まれている可能性が有る。この場合、このような文字又は当該文字を含む文字列（単語等）に対して適切な埋め込みベクトルを割り当てることができなくなる。
【００８３】
また、部分単語文字列が用いられない場合であっても、未知語に対応する埋め込みベクトルは、次の理由でうまく学習できないと考えられる。（１）未知語は、希少語の明らかな置き換えであるため、学習データ内における未知語の発生は比較的少ない。（２）系列変換モデルは希少な単語の訓練には比較的効果がない。
【００８４】
第３の実施の形態では、このような課題を解決する例について説明する。図９は、第３の実施の形態における符号化部１２１及び復号化部１２２のモデル構成例を示す図である。図９おいては、図８との違いについて説明する。
【００８５】
図９に示されるように、未知語に対する埋め込みベクトル（ＵＮＫ  ｂｉａｓ）ｕ'が、入力単語ｗｉの埋め込みベクトルｘ'ｉと、入力単語ｗｉの各部分単語単位に対する埋め込みベクトルｓ'ｑとのそれぞれに加算される。すなわち、第３の実施の形態において、事前処理部１１は、以下の式（１１）を用いて入力単語ｗｉに対する埋め込みベクトルｅｉを算出する。
【００８６】
【数１０】
0006772393.tif 000011
但し、ｕは、未知語に対するｏｎｅ−ｈｏｔベクトル表現であり、学習時において既知である。なお、入力単語ｗｉが未知語の場合、ｘｉ＝ｕであるため、式（１１）は、以下の式（１２）に示されるように変形される。
【００８７】
【数１１】
0006772393.tif 000012
入力単語ｗｉに対する埋め込みベクトルｅｉが式（１１）に基づいて算出されて学習が行われることで、未知語に対するｏｎｅ−ｈｏｔベクトル表現が全体に対し、ある種バイアスの役割を果たすことになる。これは、未知語のベクトルを常に入力単語のベクトルに足しながら学習を行うことで、全ての語彙に対し、平均的な特徴をもった未知語の埋め込みベクトルが学習される（すなわち、Ｅｑが学習される）ためであると推察される。全ての語彙に対して平均的特徴を持つように未知語の埋め込みベクトルが学習された場合、入力された未知語ｗＵがコーパスに出現する未知語集合と意味的に遠いものであっても、ｗＵに付与される埋め込みベクトルは、従来手法と比較すると本来のｗＵの特徴に近いものになりやすいと考えられる。その結果、未知語を含む系列変換モデルの変換精度の向上を期待することができる。
【００８８】
なお、第３の実施の形態に関する実験及び当該実験によって確認された効果は、「Jun Suzuki, Sho Takase, Hidetaka Kamigaito, Makoto Morishita, Masaaki Nagata. An Empirical Study of Building a Strong Baseline for Constituency Parsing The 56th Annual Meeting of the Association for Computational Linguistics (ACL).」の「４  Ｅｘｐｅｒｉｍｅｎｔｓ」及び「４．１  Ｒｅｓｕｌｔｓ」等を参照されたい。
【００８９】
次に、第４の実施の形態について説明する。第４の実施の形態では第３の実施の形態と異なる点について説明する。第４の実施の形態において特に言及されない点については、第３の実施の形態と同様でもよい。
【００９０】
第３の実施の形態では、入力文の各単語の部分単語単位が符号化部１２１に入力されるモデルを説明した。但し、未知語のベクトルを常に入力単語のベクトルに足しながら学習を行う方法は、部分単語単位が入力されないモデルに対して適用されてもよい。第４の実施の形態では、このようなモデルについて説明する。
【００９１】
図１０は、第４の実施の形態における符号化部１２１及び復号化部１２２のモデル構成例を示す図である。図１０においては、図１０との違いについて説明する。
【００９２】
図１０において、符号化部１２１には、部分単語単位は入力されない。一方、入力単語ｗｉごとに、未知語に対する埋め込みベクトル（ＵＮＫ  ｂｉａｓ）ｕ'が、入力単語ｗｉの埋め込みベクトルｘ'ｉに加算される。すなわち、第４の実施の形態において、事前処理部１１は、以下の式（１３）を用いて入力単語ｗｉに対する埋め込みベクトルｅｉを算出する。
【００９３】
【数１２】
0006772393.tif 000013
このように、部分単語単位が入力されないモデルに対しても、未知語に対する埋め込みベクトル（ＵＮＫ  ｂｉａｓ）ｕ'の加算が行われてもよい。そうすることで、斯かるモデルについて、第３の実施の形態と同様の効果が期待できる。
【００９４】
なお、上記の各実施の形態は、Ｅｎｃｏｄｅｒ−ｄｅｃｏｄｅｒモデルのように符号化器及び復号化器セットとして用いるモデルだけでなく、符号化器が単体で用いられるモデルに適用されてもよい。また、復号器が判定器に置き換えられたモデルに対して上記各実施の形態が適用されてもよい。この場合、変換装置１０は、復号化部１２２の代わりに判定器として機能する判定部を有する。判定部からの出力は、出力系列（出力文）ではなく判定結果となる。判定部の機能の一例として、文を入力として、それが質問文か否かを判定する（２値分類）、文を入力として、それが所定のカテゴリのどれに属する文なのか推定する（多クラス分類）等が挙げられる。
【００９５】
なお、上記各実施の形態において、変換装置１０は、情報処理装置及び情報学習装置の一例である。事前処理部１１は、生成部の一例である。符号化部１２１又は復号化部１２２は、実行部の一例である。パラメータ学習部１４は、学習部の一例である。
【００９６】
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００９７】
１０          変換装置
１１          事前処理部
１２          解析部
１３          サンプリング部
１４          パラメータ学習部
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１２１        符号化部
１２２        復号化部
Ｂ            バス
【要約】
情報処理装置は、入力系列を構成する処理単位ごとに複数階層の部分単語単位を生成し、前記処理単位ごとに前記複数階層の部分単語単位に基づく埋め込みベクトルを生成する生成部と、前記処理単位ごとに生成された前記埋め込みベクトルを入力として、学習されたパラメータに基づく処理を実行する実行部と、を有することで、系列変換モデルの変換精度を向上させる。【図１】
0006772393.tif 000014
【図２】
0006772393.tif 000015
【図３】
0006772393.tif 000016
【図４】
0006772393.tif 000017
【図５】
0006772393.tif 000018
【図６】
0006772393.tif 000019
【図７】
0006772393.tif 000020
【図８】
0006772393.tif 000021
【図９】
0006772393.tif 000022
【図１０】
0006772393.tif 000023