(57)【要約】  解釈性の高いニューラルネットワークによる自然言語処理技術が開示される。本開示の一態様は、第１の自然言語文が入力され、第１の自然言語文に対応する所定の目的に応じた第２の自然言語文と、前記第２の自然言語文の各部分が前記第１の自然言語文のいずれの部分の情報に基づき生成されたかを示す対応情報とを出力するよう学習された学習済みニューラルネットワークと、入力されたテキストを、前記学習済みのニューラルネットワークに入力することで、所定の目的に応じた出力テキストの予測結果と、前記出力テキストの予測結果の各部分が前記入力テキストの何れの部分の情報に基づき生成されたかを示す対応情報とを出力する解析部と、を有する装置に関する。
2019167296.tif 000002
【特許請求の範囲】
【請求項１】
第１の自然言語文が入力され、第１の自然言語文に対応する所定の目的に応じた第２の自然言語文と、前記第２の自然言語文の各部分が前記第１の自然言語文のいずれの部分の情報に基づき生成されたかを示す対応情報とを出力するよう学習された学習済みニューラルネットワークと、
入力されたテキストを、前記学習済みのニューラルネットワークに入力することで、所定の目的に応じた出力テキストの予測結果と、前記出力テキストの予測結果の各部分が前記入力テキストの何れの部分の情報に基づき生成されたかを示す対応情報とを出力する解析部と、
を有する装置。
【請求項２】
前記学習済みニューラルネットワークは、
入力されたテキストを中間状態に変換する符号化部と、
前記符号化部から出力された中間状態を入力として、前記出力テキストの先頭の処理単位から順に、処理単位毎の前記出力テキストの予測結果を生成する復号化部と、
を有し、
前記復号化部は、j-1番目の処理単位の出力テキストの予測結果を変換して得られる隠れ状態と、前記符号化部から出力された中間状態とを用いて、j番目の処理単位の予測結果と、当該j番目の処理単位の予測結果の生成に用いた入力テキスト中の処理単位を特定する情報とを出力する層を含む、
請求項１記載の装置。
【請求項３】
第１の自然言語文が入力され、第１の自然言語文に対応する所定の目的に応じた第２の自然言語文と、前記第２の自然言語文の各部分が前記第１の自然言語文のいずれの部分の情報に基づき生成されたかを示す対応情報とを出力するニューラルネットワークと、
予め与えられた学習用入力テキストと学習用出力テキストの正解との対からなる学習データの各々について、各学習用入力テキストを前記ニューラルネットワークに入力することで、学習用出力テキストの予測結果と対応情報とを出力する解析部と、
前記解析部で得られた学習用出力テキストの予測結果と前記対応情報とに基づいて計算される損失関数の値に応じて、前記ニューラルネットワークの各パラメタを更新するパラメタ更新部と、
を有する装置。
【請求項４】
前記損失関数は、前記学習用出力テキストの予測結果の生成に用いた第１の自然言語の各語彙の出現頻度である第１の出現頻度と、前記学習用入力テキスト中の前記第１の自然言語の各語彙の出現頻度である第２の出現頻度との類似度が高い場合のほうが、低い場合よりも損失関数の値が小さくなるように計算されることを特徴とする、請求項３記載の装置。
【請求項５】
前記ニューラルネットワークは、
学習用入力テキストを中間状態に変換する符号化部と、
前記符号化部から出力された中間状態を入力として、前記学習用出力テキストの予測結果の先頭の処理単位から順に、処理単位毎の前記学習用出力テキストの予測結果を生成する復号化部と、
を有し、
前記復号化部は、j-1番目の処理単位の出力テキストの予測結果を変換して得られる隠れ状態と、前記符号化部から出力された中間状態とを用いて、j番目の処理単位の予測結果と、当該j番目の処理単位の予測結果の生成に用いた入力テキスト中の処理単位を特定する情報とを出力する層を含む、
請求項３又は４記載の装置。
【請求項６】
入力テキストを学習済みのニューラルネットワークに入力するステップと、
所定の目的に応じた出力テキストの予測結果と、前記出力テキストの予測結果の各部分が前記入力テキストの何れの部分の情報に基づき生成されたかを示す対応情報とを出力するステップと、
を有し、
前記学習済みのニューラルネットワークは、第１の自然言語文が入力され、第１の自然言語文に対応する所定の目的に応じた第２の自然言語文と、前記第２の自然言語文の各部分が前記第１の自然言語文のいずれの部分の情報に基づき生成されたかを示す対応情報とを出力するよう学習された方法。
【請求項７】
予め与えられた学習用入力テキストと学習用出力テキストの正解との対からなる学習データの各々について、各学習用入力テキストをニューラルネットワークに入力するステップと、
学習用出力テキストの予測結果と対応情報とを出力するステップと、
前記学習用出力テキストの予測結果と前記対応情報とに基づいて計算される損失関数の値に応じて、前記ニューラルネットワークの各パラメタを更新するステップと、
を有し、
前記ニューラルネットワークは、第１の自然言語文が入力され、第１の自然言語文に対応する所定の目的に応じた第２の自然言語文と、前記第２の自然言語文の各部分が前記第１の自然言語文のいずれの部分の情報に基づき生成されたかを示す対応情報とを出力する方法。
【請求項８】
請求項１乃至５何れか一項記載の装置の各部としてプロセッサを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に自然言語処理に関し、より詳細には、人工知能を利用した自然言語処理に関する。
【背景技術】
【０００２】
本発明が対象とする自然言語処理技術は、コンピュータにより、入力されたテキストから所定の出力テキストを自動生成する技術である。例えば、自動要約、機械翻訳、対話文生成などが知られている。自動要約の場合は、入力されたテキストを要約した要約文が出力テキストである。また、機械翻訳の場合は、入力されたテキストを目的言語に翻訳した翻訳文が出力テキストである。また、対話文生成の場合は、入力テキストを発話文としたときの、当該発話文に対応する応答文が出力テキストである。【０００３】
ニューラルネットワークを用いた自然言語処理技術として、非特許文献１が知られている。非特許文献１には、入力テキストには含まれない語や言い回しを用いて出力テキストを生成することを許容するよう学習されたニューラルネットワークを用いて、人が読みやすく、かつ、短い自動要約文を生成する自動要約の手法が開示されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Rush, Alexander M. and Chopra, Sumit and Weston, Jason, "Neural Attention Model for Abstractive Sentence Summarization", Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing (EMNLP 2015)
【発明の概要】
【発明が解決しようとする課題】
【０００５】
非特許文献１等の従来のニューラルネットワークを用いた自然言語処理では、入力テキストから出力テキストが生成される過程（内部処理）を人間が解釈することが困難である。例えば、非特許文献１の例では、入力テキスト中の各部分文字列が出力テキスト中のどの部分文字列に対応するかを、人が把握することが困難である。【０００６】
上述した問題点を鑑み、本開示の１つの課題は、解釈性の高いニューラルネットワークによる自然言語処理技術を提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本開示の一態様は、第１の自然言語文が入力され、第１の自然言語文に対応する所定の目的に応じた第２の自然言語文と、前記第２の自然言語文の各部分が前記第１の自然言語文のいずれの部分の情報に基づき生成されたかを示す対応情報とを出力するよう学習された学習済みニューラルネットワークと、入力されたテキストを、前記学習済みのニューラルネットワークに入力することで、所定の目的に応じた出力テキストの予測結果と、前記出力テキストの予測結果の各部分が前記入力テキストの何れの部分の情報に基づき生成されたかを示す対応情報とを出力する解析部と、を有する装置に関する。
【発明の効果】
【０００８】
本開示によると、ニューラルネットワークを利用した言語処理技術において、解釈性の高い出力を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、自動要約処理の概念図である。
【図２Ａ】図２Ａは、ニューラルネットワークに基づく生成型自動要約システムを示す概略図である。
【図２Ｂ】図２Ｂは、本開示の一実施例による学習済みモデルによる自動要約システムを示す概略図である。
【図３】図３は、本開示の一実施例による学習済みモデルによる自動要約システムを示す概略図である。
【図４】図４は、本開示の一実施例による文生成装置の構成を示すブロック図である。
【図５】図５は、本開示の一実施例による解析部の構成を示すブロック図である。
【図６】図６は、本開示の一実施例による学習装置の構成を示すブロック図である。
【図７】図７は、本開示の一実施例による文生成装置のハードウェア構成を示すブロック図である。
【図８】図８は、本開示の一実施例による文生成処理を示すフローチャートである。
【図９】図９は、本開示の一実施例による文章の処理単位への分割処理の具体例を示す図である。
【図１０】図１０は、解析部による処理の流れを表すイメージ図である。
【図１１】図１１は、本開示の一実施例によるパラメタ学習処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下の実施例では、ニューラルネットワークを利用して、自動要約、機械翻訳、対話文作成などの自然言語処理を実現する装置が開示される。これらの自然言語処理は、入力されたテキストを所定の目的に合った出力テキストに変換する処理として一般的に説明できる。ここで、入力されたテキスト（以下「入力テキスト」ともいう）と出力テキストはいずれも１以上の文からなるものとする。自動要約であれば、出力テキストは入力テキストを、入力テキストよりも短い長さのテキストに要約したテキストとなる。機械翻訳であれば、出力テキストは、入力テキストを目的言語（英語、日本語、中国語等）に翻訳したテキストとなる。対話文作成であれば、出力テキストは、入力テキストである対話文に対する応答文となる。
【００１１】
図１は、一般的な自動要約処理の概念図である。ここでは、入力として日本語の文章が与えられた場合に、要約文として日本語で入力文章を所定の文字数内に要約した文（要約文）を出力するものである。
【００１２】
典型的なニューラルネットワークに基づく自動要約の例を、図２を用いて説明する。なお、ここでの例文は日本語のテキストとしている。まず、入力テキストを所定の処理単位で分割し、処理単位毎の固定長ベクトルに変換する。次に、符号化器が、分割されたベクトルを符号化して、中間状態（符号）を出力する。そして、復号化器が、符号化器によって生成された符号を復号化することにより、出力テキスト（この例では要約文）が生成される。ここで、符号化器と復号化器は、ニューラルネットワークで実現される。このように、従来のニューラルネットワークに基づく自然言語処理では、入力テキストに対して出力テキストのみが出力される。
【００１３】
一方、本開示の実施例による自動要約では、図２Ｂ及び図３に示すように、入力テキストと共に、入力テキスト中の各部分と出力テキスト中の各部分との間の対応関係を示す情報（アラインメント）が出力される。この例では、アラインメントは、入力テキスト中の部分文字列と出力テキスト中の部分文字列との対応関係を示す情報である。これにより、ニューラルネットワークの出力である出力テキストの各部分文字列が入力テキストの何れの部分文字列に基づき生成されたかを、ユーザが容易に把握することができる。これにより、出力テキストを人手で修正したり、よりよい品質の出力テキストがニューラルネットワークから出力されるように、ニューラルネットワークの構成等を調整したりすることが容易になる。
＜文生成装置１００＞
まず、図４〜７を参照して、本開示の一実施例による文生成装置を説明する。
【００１４】
図４は、本開示の一実施例による文生成装置の構成を示すブロック図である。文生成装置１００は、分割部１１０及び解析部１２０を有する。
【００１５】
分割部１１０は、入力テキストを読み込み、事前に定義された任意の処理単位に分割して出力する。ここで、処理単位は、例えば、英語の文章では単語、日本語や中国語の文章では一文字または形態素等である。
【００１６】
解析部１２０は、学習済みのニューラルネットワークを用いて、入力テキストから所定の目的に応じた出力テキストの予測結果（以下、「予測出力テキスト」ともいう）と対応情報とを生成する。ここで、対応情報は、予測出力テキストの各部分が入力テキストの何れの部分の情報に基づき生成されたかを特定する情報である。
【００１７】
解析部１２０で用いる学習済みニューラルネットワークは、第１の自然言語文が入力されると、（１）第１の自然言語文に対応する所定の目的に応じた第２の自然言語文の予測結果と、（２）第１の自然言語文と第２の自然言語文の予測結果との間の対応関係を特定する情報である対応情報と、を出力するように、予め学習されたものである。ここで、対応情報は、第２の自然言語文の予測結果に含まれる各部分が第１の自然言語文のどの部分の情報に基づき生成されたかを特定する情報である。例えば、自動要約であれば、要約文の各部分が入力テキストのどの部分を要約したものであるかを特定する情報である。機械翻訳であれば、翻訳文の各部分（例えば単語）が入力テキスト中のどの部分（例えば単語）の対訳であるかを特定する情報である。あるいは、対話文生成の場合は、生成された応答文の各部分が、入力テキストである対話文のどの部分に基づき生成されたかを特定する情報である。
【００１８】
なお、解析部１２０で用いる学習済みニューラルネットワークは、ニューラルネットワークの各パラメタを後述の学習装置１３０等により予め学習し、その結果である各パラメタの値を設定済みのニューラルネットワークをいう。つまり、解析部１２０では、入力テキストが学習済みニューラルネットワークに入力されることで、予測出力テキストと対応情報とが出力される。
【００１９】
より詳細には、解析部１２０は、図５に示すように、ベクトル変換部１２１、符号化部１２２及び復号化部１２３を有する。符号化部１２２と復号化部１２３がニューラルネットワークの構成要素である。ここでのニューラルネットワークは、encoder-decoderモデルを仮定して説明をするが、本発明で用いるニューラルネットワークはこれに限られるものではない。encoder-decoderモデルは、テキストに対応する情報を中間状態（ベクトルの系列。以降、中間出力ともいう。）に変換する機能を担うニューラルネットワーク（これを「符号化器」という）と、中間出力をテキストに変換する機能を担うニューラルネットワーク（これを「復号化器」という）とから構成されるニューラルネットワークである。ニューラルネットワークの各パラメタは、後述の学習装置１３０等により、あらかじめ学習データに基づき学習済みの値を設定しておく。
【００２０】
ベクトル変換部１２１は、処理単位に分割された入力テキスト（以下「単位入力テキスト」という）が入力されると、処理単位毎に、単位入力テキストをN次元のベクトルに変換する。ここで、Nは自然数である。以下、処理単位ごとのベクトル表現を並べたリストを、「入力ベクトル」と呼ぶ。
【００２１】
符号化部１２２は、学習済みニューラルネットワークの符号化器により、入力ベクトルを中間出力に変換する。
【００２２】
復号化部１２３は、学習済みニューラルネットワークの復号化器により、符号化部１２２が出力した中間出力を２つの出力ベクトルに変換する。そして、一方の出力ベクトルに基づき出力テキストの予測結果を、他方の出力ベクトルに基づき対応情報を、それぞれ生成して出力する。
【００２３】
なお、文生成装置１００は、典型的には、サーバなどの計算装置により実現されてもよく、例えば、図７に示すように、バスＢを介し相互接続されるドライブ装置１０１、補助記憶装置１０２、メモリ装置１０３、プロセッサ１０４、インタフェース装置１０５及び通信装置１０６から構成されてもよい。文生成装置１００における後述される各種機能及び処理を実現するプログラムを含む各種コンピュータプログラムは、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、フラッシュメモリなどの記録媒体１０７によって提供されてもよい。プログラムを記憶した記録媒体１０７がドライブ装置１０１にセットされると、プログラムが記録媒体１０７からドライブ装置１０１を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０７により行う必要はなく、ネットワークなどを介し何れかの外部装置からダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータなどを格納する。メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムやデータを読み出して格納する。プロセッサ１０４は、メモリ装置１０３に格納されたプログラムやプログラムを実行するのに必要なパラメタなどの各種データに従って、後述されるような文生成装置１００の各種機能及び処理を実行する。インタフェース装置１０５は、ネットワーク又は外部装置に接続するための通信インタフェースとして用いられる。通信装置１０６は、インターネットなどのネットワークと通信するための各種通信処理を実行する。
【００２４】
しかしながら、文生成装置１００は、上述したハードウェア構成に限定されるものでなく、他の何れか適切なハードウェア構成により実現されてもよい。
［文生成処理］
次に、図８〜９を参照して、本開示の一実施例による学習済みニューラルネットワークを利用した文生成処理を説明する。
【００２５】
図８は、本開示の一実施例による文生成処理を示すフローチャートである。当該処理は、以下で詳細に説明されるように、入力テキストを受信した文生成装置１００によって、より詳細には、文生成装置１００のプロセッサによって実行される。入力テキストは、自然言語により記述された文または文章であり、例えば、ニュース記事全体などであってもよい。また、音声認識結果であるテキストであってもよい。
【００２６】
ステップＳ１０１において、文生成装置１００は、入力テキストを事前に定義された任意の処理単位に分割する。例えば、英語の文章では、空白（スペース）により分割する。この場合、処理単位は単語となる。また、処理単位は一文字単位として定義されてもよく、この場合、日本語や中国語など、空白で単語区切りが明記されていない言語の文章にも対応できる。このような単純な分割方式以外でも、形態素解析システムを用いて形態素を処理単位とすることも可能である。何れの方式においても、処理単位は文生成装置１００の管理者など人手によって選択され、事前に設定される。
【００２７】
このようにして、文生成装置１００は、例えば、図９に示すように、入力文章を事前に決定された任意の処理単位に分割することによって生成された文章を出力する。
【００２８】
ステップＳ１０２において、文生成装置１００は、処理単位に分割された文章に対して、処理単位毎に対応するベクトルを取得する。説明のため、入力テキスト中のi番目の処理単位の文字列をwiとし、入力テキストの分割数がIであるとして、入力テキストを処理単位毎の文字列wiのリスト
【００２９】
【数１】
2019167296.tif 000003
として表記することとする。
【００３０】
ステップＳ１０２において、文生成装置１００は、処理単位毎の文字列wiに基づいて、文字列wiに対応するベクトルxiを生成する。ベクトルxiは、文字列の特徴をＮ次元のベクトルで表現したものであり、各文字列が事前に用意された語彙(単語等、所定の処理単位)の集合のうち、いずれの語彙に対応するかをベクトルで表現したものである。例えば、語彙の集合Φ中の語彙数をNとし、wiが語彙の集合Φ中のn番目の語彙に対応する場合、ベクトルxiはn番目の要素が1で、それ以外の要素が0となるN次元のone-hotベクトルである。
【００３１】
以降の処理は、図１０を参照しながら説明する。図１０は、解析部１２０による処理の流れを表すイメージ図である。なお、ここで示す構成は一例であって、ニューラルネットワークの構成はこれに限定されるものではない。
【００３２】
文生成装置１００は、ニューラルネットワーク（図１０ではNN1）により、ベクトルxiをＤ次元のベクトルeiに変換する。ei はxiを所定次元（Ｄ次元）の実数値ベクトルに変換したもの(word embedding)である。この変換処理は以下の式で記述できる。
【００３３】
【数２】
2019167296.tif 000004
ここで、EはD×N次元の行列であり、eiはD次元のベクトルである。なお、Eはニューラルネットワーク（特に符号化器に相当するニューラルネットワーク）のうち、xiをeiに変換する層を特定する情報、つまり、ニューラルネットワークのパラメタを値にもつ行列である。本実施例では予め学習済みのパラメタの値が設定された固定の行列である。また、Dは任意の自然数である。ここでの変換は、学習済みニューラルネットワークに基づいて行うこととしたが、参考文献「Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg Corrado、 and Jeffrey Dean． Distributed Representations of Words and Phrases and their Compositionality． In Proceedings of NIPS, 2013．」などに記載の方法により作成された｛処理単位，処理単位に対応するベクトル｝の組からなる辞書（コードブック）を用いて変換してもよい。ステップＳ１０２において出力されるベクトルのリストを以下のように表記する。
【００３４】
【数３】
2019167296.tif 000005
ステップＳ１０３において、文生成装置１００は、ステップＳ１０２において取得されたベクトルのリストの先頭から順にニューラルネットワークにより変換し、中間出力である隠れ状態（ベクトル）のリストを生成する。
【００３５】
本実施例では、符号化器としてLSTM (Long Short-Term Memory)を用いた場合を例に、図１０を参照しながら処理を説明する。ただし、符号化器の構成はこれに限定されるものではない。
【００３６】
LSTMは、入力ベクトルeiのリストの先頭e1から順にニューラルネットワーク（図１０ではNN2）による変換を行って、隠れ状態hiを順次生成していく。i番目の入力ベクトルeiを変換して得られる隠れ状態をhiとすると、まずe1とh0をニューラルネットワークに入力することで変換結果h1を生成し、次にe2とh1をニューラルネットワークに入力することで変換結果h2を得る。同様に、i=3,4,…,I の順にeiとhi-1をニューラルネットワークにより変換してhiを得る。ここで、h0は予め適当な値が初期設定されたH次元ベクトルを用いればよい。
【００３７】
ここで、また、W1, W2, W3, W4 , V1, V2, V3, V4をニューラルネットワークの学習可能なパラメタとする。W1, W2, W3, W4 は、それぞれH×D行列（Hは任意の自然数である）である。V1, V2, V3, V4は、それぞれH×H行列である。本実施例では、これらのパラメタは予め学習済みである、つまり、行列の各要素の値は既に固定されていると想定する。また、b1, b2, b3, b4はそれぞれH次元のバイアスベクトルである。これも、ニューラルネットワークの学習可能なパラメタであり、本実施例では、予め学習済みであると想定する。すると、LSTM内の計算処理は、以下のように記述できる。つまり、ステップＳ１０３において、文生成装置１００は、ステップＳ１０２において取得されたベクトルのリストの先頭e1から順に下記式を実行することで、隠れ状態hiを順次生成する。
【００３８】
【数４】
2019167296.tif 000006
ここで、
【００３９】
【数５】
2019167296.tif 000007
は各ベクトルの要素ごとの積を表す。また、σ1(x)とσ2(x)は、ベクトルxを入力とし、ベクトルxと同じ次数のベクトルに変換するニューラルネットワークの活性化関数である。例えば、xのi番目の要素をxiとし、σ1(x)のi番目の要素をσ1(xi)とすると、σ1(xi)は下記式に示すようなxiのシグモイド関数値である。
【００４０】
【数６】
2019167296.tif 000008
ここでaはシグモイド関数のゲインであり、予め設定される0より大きな値である。同様に、σ2(x)のi番目の要素をσ2(xi)とすると、σ2(xi)は下記式に示すようなxiのtanh関数値である。
【００４１】
【数７】
2019167296.tif 000009
なお、活性化関数σ1(x)とσ2(x)はこれに限定されるものではなく、任意に設計してよい。ステップＳ１０３において生成される隠れ状態hiのリストを以下のように表記することとする。
【００４２】
【数８】
2019167296.tif 000010
ステップＳ１０４において、文生成装置１００は、隠れ状態hiのリストを復号化器に入力することにより、予測出力テキストを生成する。具体的には、ステップＳ１０３において取得された中間出力と過去に予測済みの処理単位についての予測出力を用いて、ニューラルネットワークにより、次の処理単位の予測出力テキストを生成する。
【００４３】
本実施例では、復号化器の構成として、符号化器と同様にLSTM (Long Short-Term Memory)を用いた場合を例とし、図１０を参照しながら処理を説明する。ただし、復号化器の構成はこれに限定されるものではない。
【００４４】
復号化器は、中間出力を生成するLSTM（図１０ではNN3）と、中間出力から出力テキストを予測するためのニューラルネットワーク（図１０ではNN4〜NN5）とを含む。
【００４５】
まず、中間出力を生成するLSTMによる処理を説明する。LSTMの部分は、符号化器のeiの代わりにujを、hiの代わりにzjを用いる点を除けば、基本的に符号化器と同様の構成である。ここで、ujは、予測出力テキストのj番目の処理単位の予測結果yjに対応するベクトル表現である。u0には文頭を表す記号等に対応するベクトル表現を用いる。また、z0として符号化器の最後の中間出力hIを用いることとする。
【００４６】
まず、符号化器から出力される隠れ状態hI及びu0をニューラルネットワーク（図１０ではNN3）に入力し、隠れ状態z1を生成する。そして、符号化器で生成された隠れ状態h1,…,hIとz1とをニューラルネットワーク（図１０のNN4）に入力することで、隠れ状態~z1を生成する。そして、隠れ状態~z1から出力テキストの1番目の処理単位の予測結果y1と、y1を生成する元になった入力テキストの処理単位の予測結果x1と、を求める。そして、1番目の処理単位の予測結果y1をニューラルネットワーク（図１０のNN6）により所定次元のベクトルu1に変換する。なお、~および^は、図１０ではzやyの上に表示される記号である。
【００４７】
同様に、j=2,3,…,J-1について順番に、yj-1に対応するベクトル表現uj-1と隠れ状態zj-1をニューラルネットワークに入力することで、隠れ状態zjを求める。ここで、Jは予測出力テキストに含まれる処理単位数（分割数）である。そして、符号化器で生成された隠れ状態h1,…,hIとzjとをニューラルネットワーク（図１０のNN4）に入力することで、隠れ状態~zjを生成する。そして、隠れ状態~zjから予測出力テキストのi番目の処理単位の予測結果yjと、yjを生成する元になった入力側テキストの処理単位xjと、を求める。そして、j番目の処理単位の予測出力yjをニューラルネットワーク（図１０のNN6）により所定次元のベクトルujに変換する。
【００４８】
ここで、yjに対応するベクトル表現ujはD次元のベクトルである。yjをujに変換するニューラルネットワークの層を特定するパラメタをD×K次元の行列Fであらわすと、この変換は以下の式で表せる。
【００４９】
【数９】
2019167296.tif 000011
Ｋは予測出力テキストの語彙Φ'の語彙数である。本実施例における自動要約や対話文生成などのように入力テキストと予測出力テキストとの語彙数が等しい（変換が同一言語内で行われる）場合、K = Nとなる。他方、翻訳などのように入力文章と生成文との語彙数が異なる場合、Kは予測出力テキスト（すなわち、翻訳先の言語）の語彙Φ'の語彙数に基づき決定される。なお、ここでのyjは、xjと同様に当該処理単位の予測出力テキストの文字列をK次元のベクトルで表現したものとする。例えば予測出力テキスト^yj が語彙の集合Φ'中のk番目の語彙に対応する場合、ベクトルyjはk番目の要素が1であって、それ以外の要素が0となるK次元のone-hotベクトルとなる。
【００５０】
符号化器で生成された隠れ状態h1,…,hIとzjとから、隠れ状態~zjを生成する処理、つまり、図１０のNN4の演算は、以下のように表せる。
【００５１】
【数１０】
2019167296.tif 000012
つまり、~zjは、zjとの間の類似度が高い隠れ状態hiをより重視することで生成されるベクトルであるといえる。ここで、U(a)はNN３のニューラルネットワークを特定するパラメタで構成されるH×H次元の行列である。ここで、piは注意機構（Attention mechanism）の重みとして知られている。このpiを入力テキストと予測出力テキストの対応情報：アラインメントとして用いる方法は従来から知られているが、piの値は0にならないものが多いため、予測出力テキストのある部分の生成に寄与した入力テキスト中の部分（処理単位）を特定する情報としては、あまり良好に機能しないことが知られている。そのため、本実施例では、piよりもより明示的に、かつユーザにとって把握しやすい対応情報として、以下の処理により^xjを生成する。
【００５２】
次に、隠れ状態~zjから^yjと^xjとを求める処理について、具体的に説明する。まず、隠れ状態~zjをニューラルネットワークに入力して、oj(t)及びoj(s)を生成する。この計算は、以下の式で表せる。
【００５３】
【数１１】
2019167296.tif 000013
ここで、W(t)とW(s)とは、ニューラルネットワーク（図１０のNN5）のパラメタであり、それぞれK×H次元の行列及びN×H次元の行列である。本実施例では、各パラメタには予め学習済みの値が設定されているものと想定する。ここで、oj(t)とoj(s)を以下のように表記する。
【００５４】
【数１２】
2019167296.tif 000014
【００５５】
【数１３】
2019167296.tif 000015
である。ここで、上付き文字のＴは、行列またはベクトルの転置を表す。式（３）においてoj,k(t)は、先頭からj番目の処理単位の予測出力テキストとして、語彙Φ'中のk番目の語彙が選択される可能性（スコア）を表す。また、oj,n(s)は、語彙Φ中のn番目の語彙が、先頭からj番目の処理単位の予測出力テキストを生成する際の元になるスコアを表す。
【００５６】
ここで、復号化器は、出力側(t)のoj(t)と入力側(s)のoj(s)とを~zjを用いて予測する。予測結果であるoj(t)とoj(s)は予測出力テキストと入力テキストとにおいて同じ意味を表すものであり、アラインメントを求める処理に相当する。j番目の処理単位の予測出力yjは，oj(t) の要素の中で値が最大となる要素番号kに対応する要素が１，それ以外を０としたK次元のone-hotベクトルとする．また，予測出力テキスト^yjは、以下の式により求まる。
【００５７】
【数１４】
2019167296.tif 000016
式（７a）は、oj(t)の各要素のうち、値が最大となる要素番号kに対応する語彙Φ'中の語彙（単語等、所定の処理単位）を選択するものである。v(t)は語彙Φ'の語彙の文字列（テキスト）を1番目からＫ番目まで並べた文字列のベクトルであり、v^k(t)は、v(t)の^k番目の要素の文字列を表す。（これは例えば、v１(t)="本日"、 v2(t)="国会"、…等である。）
また、j番目の処理単位の予測出力テキスト^yjを生成する元となる、入力テキストの処理単位を表すxjに対応するテキスト^xjは、以下の式により求まる。
【００５８】
【数１５】
2019167296.tif 000017
式（７b）は、oj(s)の各要素のうち、値が最大となる要素番号nに対応する語彙Φ中の語彙（単語等、所定の処理単位）を選択するものである。v(s)は語彙Φの語彙の文字列（テキスト）を1番目からＮ番目まで並べた文字列のベクトルであり、v^n(s)は、v(s)の^n番目の要素の文字列を表す。
【００５９】
なお、^yjに対応する入力テキストの処理単位は複数存在する場合も考えられる。それら複数個を出力したい場合、上記のargmax関数の代わりに、値が上位Ｒ個の要素番号を返す関数や、値が任意の閾値Ｒ以上となる要素番号を返す関数が用いられてもよい。ただし、予測出力テキストを生成する元となる入力テキストの処理単位を出力する必要がない場合、語彙を選択するための(7b)の計算は実行しなくてもよい。
【００６０】
このようにして、復号化器は、^yjを出力する処理を必要回数分（例えば、文末を表す記号（EOS等）が出力されるまで）繰り返し、最終的にj=1からJまで順に^yjを並べた文字列を予測出力テキストとして出力する。また、^xjが、^yjが入力テキストのどの部分から^yjが生成されたかを特定する対応情報（アラインメント）として出力される。
＜学習装置１３０＞
上述の文生成処理では、ニューラルネットワークの各パラメタには、予め学習済みの値が設定されているものとした。以下では、ニューラルネットワークの各パラメタの値を学習するための学習装置１３０について詳細に説明する。
【００６１】
学習装置１３０は、予め用意された学習用データを用いて、文生成装置１００の解析部１２０で用いるニューラルネットワークの各パラメタの値を学習する。
【００６２】
ここで、学習データの集合をΩで表す。また、個々の学習データは、第１の自然言語文Xとそれに対応する所定の目的に応じた第２の自然言語文Yとのペア(X,Y)により構成される。すなわち、例えば、Ｍ個の学習データがある場合、学習データΩは、
【００６３】
【数１６】
2019167296.tif 000018
と記述できる。この場合、(Xm, Ym)は学習データ中のm番目のデータを表す。ここで、第２の自然言語文Ｙｍは、例えば、自動要約あれば第１の自然言語文Ｘｍに対する要約文、機械翻訳であれば第１の自然言語文Ｘｍを目的言語に訳した文、対話文生成であれば、第１の自然言語文Ｘｍに対する応答文の正解である。
【００６４】
ニューラルネットワークのパラメタの最適値は、一般に、以下の目的関数の最小化問題の解で表せる。
【００６５】
【数１７】
2019167296.tif 000019
ただし、Ψはニューラルネットワークの全てのパラメタの集合を表し、具体的には、E, W1, W2, W3, W4, V1, V2, V3, V4, b1, b2, b3, b4, F, W(t), W(s), U(a)を含む。また、^Ψは、最適化の結果として得られた最適なパラメタの集合を表す。また、一般にLを損失関数と呼ぶ。ここでは、損失関数Lの引数は、ΨとΩである。すなわち、学習装置１３０の目的は、損失関数Lの値がなるべく小さくなるように、Ψに含まれる各パラメタの値を更新することである。
【００６６】
より詳細には、学習装置１３０は、図６に示すように、サンプリング部１３１、分割部１３２、解析部１３３及びパラメタ更新部１３４を有する。
【００６７】
サンプリング部１３１は、学習データの集合Ωの中から１つ学習データの対（Ｘｍ,Ｙｍ）を抽出する。
【００６８】
分割部１３２は、抽出された第１の自然言語文Ｘｍを所定の処理単位の文字列に分割する。この処理および処理単位の大きさは、文生成装置１００の分割部１１０と同一である。
【００６９】
解析部１３３は、ニューラルネットワークを用いて、第１の自然言語文Ｘｍから第２の自然言語文の予測結果^Ｙｍを生成する。ここで、解析部１３３で用いるニューラルネットワークは解析部１２０と同じであり、第１の自然言語文Ｘｍから第２の自然言語文の予測結果^Ｙｍを生成する具体処理も、解析部１２０と同じである。ただし、ニューラルネットワークの各パラメタが学習前のものである点が異なる。最初の実行時においては、各パラメタには適当な値を設定しておき、学習装置１３０の学習処理の過程でこの各パラメタの値が繰り返し更新されていく。
【００７０】
パラメタ更新部１３４は、解析部１３３から出力された第２の自然言語文の予測結果^Ｙｍと学習データ（Ｘｍ，Ｙｍ）とに基づき計算される損失関数の値を計算し、その結果に応じてパラメタを更新するか、学習処理を終了するかを決定する。例えば、損失関数の値が予め定めた閾値以上の場合は、損失関数の値に応じて、ニューラルネットワークのパラメタを順次更新した後、サンプリング部１３１に戻って処理を繰り返す。また、損失関数の値が予め定めた閾値未満になったら、現在のニューラルネットワークの各パラメタの値を出力して学習処理を終了する。出力されたパラメタの値が、学習装置１３０のニューラルネットワークに設定され、学習済みニューラルネットワークとして機能可能な状態となる。ここでは、損失関数の値と所定の閾値以上であれば、まだ収束していないとしてパラメタの更新処理を行い、損失関数の値が所定の閾値未満となれば、収束したと判定して学習処理を終えるものとした。しかし、収束判定の方法はこれに限られるものではなく、例えば所定の繰り返し回数に到達していなければパラメタ更新処理を行い、所定の繰り返し回数に到達したら学習処理を終了する構成とする等、別の収束判定方法を採用してもよい。
［パラメタ学習処理］
次に、図１１を参照して、本開示の一実施例による学習済みニューラルネットワークを利用したパラメタ学習処理を説明する。
【００７１】
図１１は、本開示の一実施例によるパラメタ学習処理を示すフローチャートである。当該処理は、以下で詳細に説明されるように、学習データの集合Ωを受信した学習装置１３０によって、より詳細には、学習装置１３０のプロセッサによって実行される。
【００７２】
ステップＳ２０１において、学習装置１３０は、学習用データの集合Ωの中から１つの学習データ(Xm,Ym)を選択する。
【００７３】
ステップＳ２０２からステップＳ２０５では、ステップＳ２０１で選択した学習データXmを入力テキストとして、上述の文生成処理のステップＳ１０１からＳ１０４と同じ処理を行って、予測出力テキスト^Ymを生成する。
【００７４】
ステップＳ２０６において、学習装置１３０は、学習データの集合Ω中の全ての学習データについて上述の予測出力テキスト^Ymが生成されるまで、ステップＳ２０１に戻り、文生成の処理を繰り返す。全ての学習データについて予測出力テキストが得られたら、ステップＳ２０７を実行する。
【００７５】
ステップＳ２０７において、学習装置１３０は、学習用データの集合Ωと予測出力テキスト^Ym（m=1,2,…,M）を用いて、現在のニューラルネットワークのパラメタの予測の正しさを表す損失関数を計算する。上述したThang Luong, et al.において提案される従来法に相当するモデルでは、以下の損失関数が用いられる。
【００７６】
【数１８】
2019167296.tif 000020
ここで、yj(m)は、学習データとして与えられた正解出力テキストYmのj番目の処理単位である。ここで、P(yj(m)|Xm,Ψ)は、現在のパラメタΨのニューラルネットワークに入力テキストXmが入力された場合に、正解であるyj(m)が予測出力テキストとして出力される確率を表す。
【００７７】
これに対し、本開示による実施例では、式(10)の損失関数に代えて、以下の損失関数を用いる。これは、式(10)に予測出力テキストの各処理単位yj(m)に対応する入力テキスト中の処理単位を推定する項が追加されたものである。
【００７８】
【数１９】
2019167296.tif 000021
ここで、追加された第二項は、現在のパラメタΨが設定されたニューラルネットワークにより、入力テキストXmから出力テキストYｍが生成される際に、当該出力テキストYｍが生成される元となった文~Xが生成元の文として予測される確率を表す。従って、~Xの予測が完全に正しい場合、この第二項の値は０となる。この追加された第二項は、例えば、以下により計算してもよい。
【００７９】
【数２０】
2019167296.tif 000022
式(15)で、Cは予め設定されるパラメタであり、任意の自然数とする。Cは、式（１４）の第一項と第二項の強さを決める効果があるため、第一項をより強く評価したい場合にはCの値を大きくし、第二項の値を強く評価したい場合にはCの値を小さくすればよい。なお、~omと~xmは以下の式により計算する。
【００８０】
【数２１】
2019167296.tif 000023
式（１６ａ）と式（１６ｂ）は、それぞれ予測出力テキストの生成元となった入力テキスト中の各語彙（単語）の出現頻度と、入力テキストXm中の各語彙（単語）の出現頻度を表す。なお、生成した予測出力テキストの処理単位数をJとしたとき、J < Iが予想される。そこでo(s)とxの長さを揃えるため、oj(s)をI回推定するようにしてもよい。例えば式（１６a）においてj = J以降（j = J+1, ..., I）は、復号化器への入力であるuj-1として、特殊な記号<pad>を毎回入力することで、oj(s)（j = J+1, ..., I）を算出することができる。
【００８１】
最終的に、式（１５）を式（１４）に代入すると、損失関数は以下のように表せる。
【００８２】
【数２２】
2019167296.tif 000024
ニューラルネットワークによる予測の結果が正解データと一致する場合、~Omと~xmが等しくなり、式（１７）の第二項は０になる。一方、予測結果が正解から離れるほど、~Omと~xmの差が大きくなり、損失関数の値が大きくなる。つまり、式（１７）の第２項は、予測結果として出力される対応情報（アラインメント）の正しさを表す尺度といえる。
【００８３】
一般に、学習用に用意される学習データには、第１の自然言語文のどの部分と第２の自然言語文のどの部分とが対応するかを表す対応関係の正解データは与えられないことが多い。これは、アラインメントに関する正解情報を人手で付与するコストが非常に高いためである。このため、従来の学習においては、損失関数にアラインメントの正しさの尺度を盛り込むことが難しかった。
【００８４】
一方、式（１４）又は（１７）の損失関数によれば、予測結果として出力される出力テキストの正しさを表す尺度である第１項と、予測結果として出力される対応情報（アラインメント）の正しさを表す尺度である第２項とを総合的に考慮して、ニューラルネットワークのパラメタを学習できる。これは、本開示の復号化器の出力としてoj(s)（~X）が得られることによって、初めて可能になるものである。入力テキストに含まれない語や表現を用いて予測出力テキストが生成されても、予測出力テキストを生成する源となった入力テキストの語彙~omが、入力テキストの語彙~xmと近ければ、適切に文生成が行われたものと評価することができる。つまり、言い換え等を許容したニューラルネットワークにおいて、より適切に予測精度を評価することができ、その結果として、従来よりも予測精度の高いニューラルネットワークを学習することが可能となるのである。
【００８５】
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００８６】
本出願は、２０１８年２月２８日に出願した日本国特許出願２０１８−０３４７８１号の優先権の利益に基づき、これを主張するものであり、２０１８−０３４７８１号の全内容を本出願に援用する。
【符号の説明】
【００８７】
１００  文生成装置
１１０  入力部
１２０  解析部
１３０  学習装置
【図１】
2019167296.tif 000025
【図２Ａ】
2019167296.tif 000026
【図２Ｂ】
2019167296.tif 000027
【図３】
2019167296.tif 000028
【図４】
2019167296.tif 000029
【図５】
2019167296.tif 000030
【図６】
2019167296.tif 000031
【図７】
2019167296.tif 000032
【図８】
2019167296.tif 000033
【図９】
2019167296.tif 000034
【図１０】
2019167296.tif 000035
【図１１】
2019167296.tif 000036
【国際調査報告】
2019167296.tif 000037
2019167296.tif 000038
2019167296.tif 000039
2019167296.tif 000040