(57)【要約】【課題】演算処理に必要な外部知識の検索精度を高めるために、外部知識の検索で用いるニューラルネットワークを学習するための学習装置を提供する。【解決手段】外部知識検索部２２が、入力文Ｑを入力とし、ニューラルネットワークを用いて、外部知識データベース２に含まれる外部知識の各々と入力文Ｑとの類似度に基づいて、外部知識を選択して、選択された外部知識を検索結果Ｒ２とし、処理部１４が、入力文Ｑと選択された外部知識とを入力とする演算処理により、入力文Ｑに対する応答文Ａを取得する。報酬計算部２３が、入力文Ｑに対して予め与えられた真の出力Ｔに基づいて、応答文Ａの正しさを表す指標と、選択された外部知識の質を表す指標とから定められる報酬ｖを計算して、学習部２６が、報酬ｖを用いて、外部知識検索部２２のニューラルネットワークのパラメータを更新する。【選択図】図５
2020086549.tif 000002
【特許請求の範囲】
【請求項１】
第１のニューラルネットワークを用いて、入力文と、外部知識データベースに含まれる外部知識の各々との類似度から得られるスコアを算出し、前記スコアに基づいて外部知識を選択し、前記選択された外部知識を検索結果とする外部知識検索部と、
前記入力文と前記選択された外部知識とを入力とする所定の演算処理により、前記入力文に対する出力を取得する処理部と、
前記入力文と、前記取得された出力と、前記選択された外部知識と、前記入力文に対して予め与えられた真の出力とに基づいて、前記真の出力に対する前記出力の正しさを表す指標と、前記選択された外部知識の質を表す指標とから定められる報酬を計算する報酬計算部と、
前記報酬を用いて、前記第１のニューラルネットワークのパラメータを更新する学習部と、
を備えた学習装置。
【請求項２】
外部知識結合部をさらに備え、
前記外部知識検索部は、
処理対象文章と、前記入力文とを入力とし、前記第１のニューラルネットワークを用いて、前記外部知識データベースに含まれる外部知識の各々と前記入力文との類似度と、前記外部知識の各々と前記処理対象文章との類似度の２種類の類似度とに基づいて、外部知識を選択し、
前記外部知識結合部は、前記処理対象文章に前記検索結果に含まれる各々の外部知識を結合した外部知識結合処理対象文章を生成し、
前記処理部は、前記入力文と前記外部知識結合処理対象文章とを入力とする前記所定の演算処理により、前記入力文に対する出力を取得し、
前記報酬計算部は、前記処理対象文章と、前記入力文と、前記取得された出力と、前記選択された外部知識と、前記入力文に対して予め与えられた真の出力とに基づいて、前記真の出力に対する前記出力の正しさを表す指標と、前記選択された外部知識の質を表す指標とから定められる報酬を計算する請求項１記載の学習装置。
【請求項３】
前記入力文は、質問文であり、
前記処理部は、前記所定の演算処理として、第２のニューラルネットワークを用いた応答文生成処理を行い、前記出力として、前記質問文に対する応答文を取得し、
前記学習部は、前記報酬を用いて、前記第１のニューラルネットワークのパラメータと、前記第２のニューラルネットワークのパラメータとを更新する、
請求項１又は２記載の学習装置。
【請求項４】
コンピュータが、
第１のニューラルネットワークを用いて、入力文と、外部知識データベースに含まれる外部知識の各々との類似度から得られるスコアを算出し、前記スコアに基づいて外部知識を選択し、前記選択された外部知識を検索結果とする外部知識検索ステップと、
前記入力文と前記選択された外部知識とを入力とする所定の演算処理により、前記入力文に対する出力を取得する処理ステップと、
前記入力文と、前記取得された出力と、前記選択された外部知識と、前記入力文に対して予め与えられた真の出力とに基づいて、前記真の出力に対する前記出力の正しさを表す指標と、前記選択された外部知識の質を表す指標とから定められる報酬を計算する報酬計算ステップと、
前記報酬を用いて、前記第１のニューラルネットワークのパラメータを更新する学習ステップと、
を実行する学習方法。
【請求項５】
コンピュータを、請求項１乃至請求項３の何れか１項に記載の学習装置の各部として機能させるための学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部知識を用いた自然言語処理における外部知識の検索精度を向上させるための学習装置、学習方法、及び学習プログラムに関する。
【背景技術】
【０００２】
近年、深層学習技術の台頭や自然言語処理に用いられるデータセットの整備により、人工知能（ＡＩ：Artificial Intelligence)による文章に対する質問応答や対話等の言語処理が注目を集めている。
【０００３】
人間が自然言語を理解して回答する場合は、自身のもつ経験、常識、及び世界知識を踏まえて、理解した質問に対して回答を推論することができる。例えば、人間が文章を読んでその文章に対する質問に回答をする場合には、文章からだけでなく、自分のもつ経験等から回答を見つけている。しかし、ＡＩの場合は質問の対象となっている文章に含まれている情報だけから回答を推論する必要がある。そのため、ＡＩによる質問応答や対話には限界があると考えられる。
【０００４】
この限界を超えるため、自然言語処理のうち、特に質問応答モデルで、質問対象の文章だけでなく外部の文章から得られる外部知識を用いて回答を推論することが有効である。この技術には、広範な外部知識を扱うことができるというメリットがある。その一方で、外部知識が大きいほど時間計算量及び空間計算量が大きくなるという問題がある。特に、外部知識に存在する大量の文章集合を実用的な計算量にして取り扱うためには、事前の検索によって外部知識の文章を絞り込む必要がある。従来のこうした外部知識を用いる手法には、外部テキストコーパスをニューラルネットワーク内で利用する技術が知られている（例えば、非特許文献１）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Xinyu Hua, Lu Wang, " Neural Argument Generation Augmented with Externally Retrieved Evidence " College of Computer and Information Science Northeastern University Boston, MA 02115, temarXiv: 1805.10254v1 [cs.CL] 25 May 2018
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非特許文献１のモデルは、発話文（あるいは、質問文）に対する回答として応答文を得るための対話モデルである。図１３に示すように、まず、外部知識検索部５１によって外部知識の検索対象である外部知識データベース２（例えば、コーパス）から、例えば１０個の文を抽出する。外部知識の検索手法として、ＴＦ−ＩＤＦ（Ｔｅｒｍ  Ｆｒｅｑｕｅｎｃｙ−Ｉｎｖｅｒｓｅ  Ｄｏｃｕｍｅｎｔ  Ｆｒｅｑｕｅｎｃｙ）から得られる文の類似度を用いて、発話文Ｑに類似する文章を外部知識データベース２から検索している。次に、外部知識結合部５３が、検索した１０個の文章Ｒを発話文の後ろにつなげる操作を行う。最後に、発話文Ｑに検索した１０個の文をつないで新しくできた発話文ＱＲを応答部５４のニューラルネットワークに入力することで、応答文Ａを出力として得ている。ニューラルネットワークでは、参考文献１に記載のマルチタスクＳｅｑ２Ｓｅｑ（Sequence to Sequence）の処理を行っている。
【０００７】
[参考文献１] Minh-Thang Luong, Quoc V. Le, Ilya Sutskever, Oriol Vinyals, Lukasz Kaiser "MULTI-TASK SEQUENCE TO SEQUENCE LEARNING" Published as a conference paper at ICLR 2016
【０００８】
非特許文献１では、外部知識検索部５１で、ＴＦ−ＩＤＦから得られる類似度を用いて発話文に類似する外部知識の検索を行っている。ＴＦ-ＩＤＦ等のニューラルネットワーク以外の手法を採用する利点としては、（１）ニューラルネットワークを利用するために行う必要があるパラメータの学習を必要としない、（２）計算量がニューラルネットワークに比べると小さい、という２つの利点が挙げられる。一方で、ＴＦ−ＩＤＦを用いた検索手法では、入力文を単語単位でしか扱えず単語の並びや文の構造については考慮されない。そのため、（１）精度面ではニューラルネットワークを用いた手法に劣る、（２）検索結果の文の件数を多くすることで精度を補わなければならない、という欠点が存在する。
【０００９】
また、非特許文献１に示される対話処理は、入力された発話文に対する回答として許容される範囲の内容の文を応答文として生成すればよいので、外部知識の高い検索精度は要求されない。しかし、質問文に対する応答文を生成する応答文生成処理では、質問文に対する正確な回答が求められるため、対話処理よりも、質問文に答えるために必要な外部知識を正確に検索する必要がある。
【００１０】
大量の文章集合を実用的な計算量で取り扱うためには、事前に検索によって文章量を絞り込む必要がある。しかし、ＴＦ−ＩＤＦの類似度を用いた検索手法では、入力文を単語単位でしか扱えず検索精度が不十分なため、検索件数を絞り込み過ぎると応答文生成処理に必要な文章が漏れてしまう可能性があり、十分な絞り込みができなかった。
【００１１】
本発明は、以上のような事情に鑑みてなされたものであり、演算処理に必要な外部知識を精度高く検索することが可能になるように、外部知識検索処理のパラメータを学習することができる学習装置、学習方法、及び学習プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明の学習装置は、第１のニューラルネットワークを用いて、入力文と、外部知識データベースに含まれる外部知識の各々との類似度から得られるスコアを算出し、スコアに基づいて外部知識を選択し、選択された外部知識を検索結果とする外部知識検索部と、入力文と選択された外部知識とを入力とする所定の演算処理により、入力文に対する出力を取得する処理部と、入力文と、取得された出力と、選択された外部知識と、入力文に対して予め与えられた真の出力とに基づいて、真の出力に対する出力の正しさを表す指標と、選択された外部知識の質を表す指標とから定められる報酬を計算する報酬計算部と、報酬を用いて、第１のニューラルネットワークのパラメータを更新する学習部と、を備える。
【００１３】
「知識」とは、自然言語を記録した電子データを指し、複数の単語から構成された意味を持つ単位をいう。
【００１４】
「自然言語」とは、人間によって日常の意思疎通のために用いられる記号体系をいい、文字や記号として書かれたものをいう。
【００１５】
なお、学習装置は、外部知識結合部をさらに備え、外部知識検索部は、処理対象文章と、入力文とを入力とし、第１のニューラルネットワークを用いて、外部知識データベースに含まれる外部知識の各々と入力文との類似度と、外部知識の各々と処理対象文章との類似度の２種類の類似度とに基づいて、外部知識を選択し、外部知識結合部は、処理対象文章に検索結果に含まれる各々の外部知識を結合した外部知識結合処理対象文章を生成し、処理部は、入力文と外部知識結合処理対象文章とを入力とする所定の演算処理により、入力文に対する出力を取得し、報酬計算部は、処理対象文章と、入力文と、取得された出力と、選択された外部知識と、入力文に対して予め与えられた真の出力とに基づいて、真の出力に対する出力の正しさを表す指標と、選択された外部知識の質を表す指標とから定められる報酬を計算するものが望ましい。
【００１６】
なお、入力文は、質問文であり、処理部は、所定の演算処理として、第２のニューラルネットワークを用いた応答文生成処理を行い、出力として、質問文に対する応答文を取得し、学習部は、報酬を用いて、第１のニューラルネットワークのパラメータと、第２のニューラルネットワークのパラメータとを更新するようにしてもよい。
【００１７】
本発明の学習方法は、コンピュータが、第１のニューラルネットワークを用いて、入力文と、外部知識データベースに含まれる外部知識の各々との類似度から得られるスコアを算出し、スコアに基づいて外部知識を選択し、選択された外部知識を検索結果とする外部知識検索ステップと、入力文と選択された外部知識とを入力とする所定の演算処理により、入力文に対する出力を取得する処理ステップと、入力文と、取得された出力と、選択された外部知識と、入力文に対して予め与えられた真の出力とに基づいて、真の出力に対する出力の正しさを表す指標と、選択された外部知識の質を表す指標とから定められる報酬を計算する報酬計算ステップと、報酬を用いて、第１のニューラルネットワークのパラメータを更新する学習ステップと、を実行する。
【００１８】
本発明の学習プログラムは、コンピュータを、上記の学習装置の各部として機能させるためのプログラムである。
【発明の効果】
【００１９】
以上の特徴からなる本発明によれば、演算処理に外部知識を利用するために、外部知識データベースにある膨大な外部知識を検索する際に、ニューラルネットワークを用いて外部知識を検索して、入力文に対して適切な出力を生成する。このニューラルネットワークを、真の出力に対する出力の正しさを表す指標と、選択された外部知識の質を表す指標とから定められる報酬を用いて学習することで、演算処理に必要な外部知識を、より精度高く検索することが可能になる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１の実施形態に係る処理装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態に係る処理装置の応答文出力処理の流れを示すフローチャートである。
【図３】本発明の第１の実施形態に係る学習装置の構成を示すブロック図である。
【図４】本発明の第１の実施形態に係る学習装置の学習処理の流れを示すフローチャートである。
【図５】本発明の第２の実施形態に係る学習装置の構成を示すブロック図である。
【図６】本発明の第２の実施形態に係る第２の外部知識検索部２２の検索アルゴリズムで行われる操作を説明するための図である。
【図７】本発明の第２の実施形態に係る学習装置の応答文出力処理の流れを示すフローチャートである。
【図８】本発明の第２の実施形態に係る学習装置の勾配法を用いた学習処理の流れを示すフローチャートである。
【図９】本発明の第２の実施形態に係る学習装置の強化学習を用いた学習処理の流れを示すフローチャートである。
【図１０】本発明の第３の実施形態に係る処理装置の構成を示すブロック図である。
【図１１】本発明の第３の実施形態に係る処理装置の応答文出力処理の流れを示すフローチャートである。
【図１２】本発明の処理装置の変形例の構成を示すブロック図である。
【図１３】従来装置の構成を示すブロック図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００２２】
図１は、本発明の第１の実施形態に係る処理装置１の構成の一例を示す機能ブロック図である。
【００２３】
処理装置１は、演算処理装置、主記憶装置、補助記憶装置、データバス、入出力インターフェース、及び通信インターフェース等の周知のハードウェアを備えたコンピュータあるいはサーバコンピュータにより構成されている。また、処理プログラムを構成する各種プログラムが主記憶装置にロードされた後に演算処理装置によって実行されることにより、処理装置１の各部として機能する。本実施形態では、各種プログラムは、処理装置１が備える補助記憶装置に記憶されているが、各種プログラムの記憶先はこれに限らず、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録されても良く、ネットワークを通して提供されても良い。また、その他のいかなる構成要素も、必ずしも単一のコンピュータやサーバコンピュータによって実現される必要はなく、ネットワークによって接続された複数のコンピュータにより分散されて実現されてもよい。
【００２４】
図１に示す処理装置１は、入力部１０、第１の外部知識検索部１１、第２の外部知識検索部１２、外部知識結合部１３、処理部１４、及び、出力部１５を備える。また、処理装置１には、外部知識データベース２が接続されている。
【００２５】
本実施形態では、外部知識データベース２が処理装置１の外部にあるものとする。処理装置１は、例えばＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）のプロトコルに従って通信するインターネット等の通信手段を介して外部知識データベース２に接続された場合について説明するが、これに限らず、他のプロトコルに従った通信手段であってもよい。
【００２６】
外部知識データベース２は、自然言語の文章を大量に集めた知識の集合を指す。例えば、数十万以上の知識が格納されたデータベースが好ましい。特に、自然言語の文章を構造化し大規模に集積した知識の集合であるコーパスが望ましい。例えば、Ｗｉｋｉｐｅｄｉａ等を用いることができる。なお、知識は、１文から数文で構成される文章である。
【００２７】
外部知識データベース２として、インターネット空間に存在する多数の知識データベースを必要に応じて利用することが可能である。また、外部知識データベース２として、複数の知識データベースを用いるようにしてもよい。以下、外部知識データベース２に格納されている知識を外部知識として説明する。
【００２８】
外部知識データベース２には、大量の外部知識が格納されているため、全ての外部知識を入力文と比較することで、入力文に対応する最適な外部知識を得ようとすると膨大な計算量になる。そこで、本実施の形態では、二段階で検索対象を絞り込む。
【００２９】
また、第１の実施の形態では、入力文Ｑに加えて、処理対象文章Ｐを入力し、処理部１４で行われる演算処理が応答文生成処理である場合について説明する。具体的には、入力文Ｑが質問文であり、処理対象文章Ｐが質問対象文章であるものとする。以下、質問文をＱとし、質問対象文章をＰとして説明する。また、質問対象文章Ｐは、質問文Ｑに対する回答を作成する元となる文章であり、質問文Ｑは質問対象文章Ｐに対する質問を表す文である。質問文Ｑは、１文で構成され、質問対象文章Ｐは、１文から数文で構成される場合について説明する。
【００３０】
入力部１０は、入出力インターフェースを介して質問対象文章Ｐと質問文Ｑのデータの入力を受け付けて、一旦、補助記憶装置上に記憶する。質問対象文章Ｐと質問文Ｑは、ネットワークを介して接続された外部の端末装置から送信されたデータを受信したものでもよい。
【００３１】
第１の外部知識検索部１１は、外部知識データベース２に含まれる外部知識の各々と質問文Ｑとの類似度と、外部知識の各々と質問対象文章との類似度の２種類の類似度に基づいて第１のスコアを得る。この第１のスコアに基づいて、外部知識を外部知識データベース２から検索して第１の検索結果Ｒ１とする。
【００３２】
第１のスコアを得るための類似度として、外部知識、質問文Ｑ、及び質問対象文章Ｐに含まれる単語の出現頻度を比較することによって得られる類似度を用いることができる。例えば、文の各々を単語に分けて、各単語が文中に出現した単語の出現頻度と、文中に出てきた単語が色々な文によく出現する単語なら低い値とし、あまり出現しない稀な単語なら高い値を示す指標とを用いて、文の類似度を求める手法を用いることができる。具体的には、ＴＦ-ＩＤＦを用いた類似度を第１の類似度として求めるようにしてもよい。質問文Ｑと質問対象文章Ｐに類似する外部知識を、第１の類似度のスコアによるランキングを用いて、例えば上位から指定された数の外部知識を第１の検索結果Ｒ１として出力する。類似度は、外部知識と質問文Ｑとの類似度と外部知識と質問対象文章Ｐとの類似度の２種類の類似度が得られるので、２種類の類似度の線形和、例えば、２種類の類似度の平均を第１のスコアとして用いる。あるいは、第１のスコアが基準値以上の外部知識を第１の検索結果Ｒ１として出力する。
【００３３】
外部知識データベース２には、数万から数十万以上の外部知識が記憶されている。まず、第１の外部知識検索部１１では、ＴＦ-ＩＤＦによる類似度を用いて、外部知識データベース２から、例えば１０〜１００個程度の外部知識を検索して第１の検索結果Ｒ１とする。第１の検索結果Ｒ１の数は、精度等に応じて適宜決定すればよく上記の範囲に限定されるものではない。
【００３４】
第２の外部知識検索部１２は、予め学習されたニューラルネットワーク（第１のニューラルネットワーク）を用いて、第１の検索結果Ｒ１に含まれる外部知識の各々と質問文Ｑとの類似度と、第１の検索結果Ｒ１に含まれる外部知識の各々と質問対象文章Ｐとの類似度の２種類の類似度から第２のスコアを得る。この第２のスコアに基づいて、外部知識を第１の検索結果Ｒ１から検索して第２の検索結果Ｒ２とする。
【００３５】
具体的には、第２の外部知識検索部１２は、ニューラルネットワークにより文を固定長のベクトルに変換する手法を用いて類似度を求める。まず、第１の検索結果Ｒ１に含まれる外部知識の各々、質問文Ｑ、及び質問対象文章Ｐを、予め学習されたニューラルネットワークにより固定長の外部知識ベクトル、質問文ベクトル、及び質問対象文章ベクトルに変換する。次に、外部知識の各々に対して、外部知識ベクトルと質問文ベクトルの内積を求めて外部知識と質問文Ｑの類似度とし、外部知識ベクトルと質問対象文ベクトルの内積を求めて外部知識と質問対象文章Ｐの類似度として、２種類の類似度を計算する。第１の検索結果Ｒ１に含まれる外部知識を、２種類の類似度の線形和、あるいは、線形和の平均を第２のスコアとしてランキングして、上位から所定の数の外部知識を第２の検索結果Ｒ２として出力する。あるいは、類似度が基準値以上の外部知識を第２の検索結果Ｒ２として出力する。
【００３６】
予め学習されたニューラルネットワークとして、文ｅｍｂｅｄｄｉｎｇの技術を用いて文埋め込みベクトルに変換するニューラルネットワークを用いることができる。ｅｍｂｅｄｄｉｎｇとは、ニューラルネットワークで扱う対象である文、単語、又は文字など自然言語の構成要素をベクトルに変換する技術である。本実施の形態では、第１の検索結果Ｒ１に含まれる外部知識の各々に含まれる文、質問文Ｑ、及び質問対象文章Ｐを、文ｅｍｂｅｄｄｉｎｇの技術を用いて文埋め込みベクトルに変換する場合について説明する。文ｅｍｂｅｄｄｉｎｇの手法では、既存の自然言語のコーパスによって事前に学習が行われた、文を固定長の埋め込みベクトルに変換するためのモデルが提供されている。文埋め込みベクトルは、文の意味を表す固定長ベクトルである。ニューラルネットワークを用いて文を文埋め込みベクトルに変換する手法として、例えば、下記の参考文献２に記載のｕｎｉｖｅｒｓａｌ  ｓｅｎｔｅｎｓｅ  ｅｎｃｏｄｅｒ等を用いることができる。なお、以下の説明では、単語を単語ｅｍｂｅｄｄｉｎｇの技術（後述）を用いて変換して得られたベクトルを単語埋め込みベクトルといい、文を変換して得られた文埋め込みベクトルとは区別して説明する。
【００３７】
［参考文献２］Daniel Cera, Yinfei Yanga, Sheng-yi Konga, Nan Huaa, Nicole Limtiacob, Rhomni St. Johna, Noah Constanta, Mario Guajardo-C´espedesa, Steve Yuanc, Chris Tara, Yun-Hsuan Sunga, Brian Stropea, Ray Kurzweil "Universal Sentence Encoder", arXiv:1803.11175v2 [cs.CL] 12 Apr 2018
【００３８】
上述のように、まず、最初に、第１の外部知識検索部１１のように計算量が小さい非ニューラルネットワークの手法を用いることで、最も計算量の大きい外部知識データベースの数万個以上に及ぶ外部知識を数十個に絞るための計算量を小さくすることができる。次に、第２の外部知識検索部１２では、第１の検索結果Ｒ１をニューラルネットワークを用いた手法で絞り込みを行っているため精度が高く、第１の外部知識検索部１１で数十個に絞られた外部知識からさらに少数精鋭の外部知識に絞り込むことが可能となる。このような第１の外部知識検索部１１と第２の外部知識検索部１２の二段階検索手法を用いることによって、計算量を小さくすることが可能になり、さらに計算量が小さくても外部知識の検索結果の精度を高くすることが可能になる。
【００３９】
また、ニューラルネットワークとして、文ｅｍｂｅｄｄｉｎｇ等の事前に学習されたニューラルネットワークを用いることによって、第２の外部知識検索部１２で用いるニューラルネットワークを学習するためのコストを抑えることができる。事前に学習されたニューラルネットワークを用いない場合は、第２の外部知識検索部１２の検索精度を向上させるための学習を行う必要がある。具体的には、質問文Ｑと質問対象文章Ｐと、これらに対応する真の応答文との組み合わせを、学習のためのデータセットとして用意して、学習を行うことで検索精度を向上させなければならず、実用化できるようになるまでの時間がかかり開発負荷が高くなる。
【００４０】
外部知識結合部１３は、質問対象文章Ｐの文字列と第２の検索結果Ｒ２に含まれる外部知識の各々の文字列を結合した外部知識結合処理対象文章として外部知識結合質問対象文章ＰＲを生成する。
【００４１】
処理部１４は、質問文Ｑと第２の検索結果Ｒ２に含まれる各々の外部知識とを入力として応答文生成処理を行い、質問文Ｑに対する応答文Ａを出力する。本実施の形態では、処理部１４は、質問文Ｑを入力し、さらに外部知識結合部１３で得られた外部知識結合質問対象文章ＰＲを検索結果Ｒ２の外部知識として入力して、応答文Ａを生成する。応答文生成処理は既存の様々な手法を用いることができるが、例えば、ニューラルネットワーク（第２のニューラルネットワーク）を用いた手法を用いることができる。具体的には、参考文献３に記載のＢiＤＡＦ（ＢＩ−ＤＩＲＥＣＴＩＯＮＡＬ  ＡＴＴＥＮＴＩＯＮ  ＦＬＯＷ  ＦＯＲ  ＭＡＣＨＩＮＥ  ＣＯＭＰＲＥＨＥＮＳＩＯＮ）等を用いることができる。
【００４２】
[参考文献３] Minjoon Seo1 Aniruddha Kembhavi2 Ali Farhadi1;2 Hananneh Hajishirzi "BI-DIRECTIONAL ATTENTION FLOW FOR MACHINE COMPREHENSION" arXiv:1611.01603v5 [cs.CL] 24 Feb 2017
【００４３】
出力部１５は、入出力インターフェースを介して、表示装置に応答文Ａを出力して表示させる。あるいは、ネットワークを介して接続される外部の端末装置に送信するようにしてもよい。あるいは、応答文Ａを音声で出力するようにしてもよい。
【００４４】
次に、図２のフローチャートに従って、第１の実施形態における処理装置１の応答文出力処理の流れを説明する。
【００４５】
ステップＳ１０１では、入力部１０が質問文Ｑと質問対象文章Ｐの入力を受け付ける。第１の外部知識検索部１１は、質問文Ｑと質問対象文章Ｐをクエリとして、外部知識データベース２に格納されている外部知識を検索する。ステップＳ１０２で、第１の外部知識検索部１１は、ＴＦ−ＩＤＦを用いて、外部知識と質問文Ｑの類似度と外部知識と質問対象文章Ｐの類似度を算出し、これらの２種類の類似度から第１のスコアを算出する。第１のスコアは、質問文Ｑと質問対象文章Ｐに類似する外部知識ほど高くなる。外部知識データベース２の外部知識は第１のスコアを用いてランキングされる。ステップＳ１０３で、スコアが高い知識を、例えば１０〜１００個程度に絞り込み第１の検索結果Ｒ１とする。
【００４６】
次に、第２の外部知識検索部１２は、質問文Ｑと質問対象文章Ｐをクエリとして、第１の検索結果Ｒ１をさらに検索する。ステップＳ１０４で、まず、ニューラルネットワークを用いて、第１の検索結果Ｒ１の外部知識、質問文Ｑ、質問対象文章Ｐの固定長ベクトルを取得する。ステップＳ１０５では、外部知識ベクトルと質問文ベクトルの類似度と、外部知識ベクトルと質問対象文章ベクトルの類似度の２種類の類似度から第２のスコアを算出する。ステップＳ１０６では、第１の検索結果Ｒ１に含まれる外部知識を第２のスコアでランキングして、スコアが高い外部知識の数個を第２の検索結果Ｒ２とする。
【００４７】
さらに、ステップＳ１０７では、外部知識結合部１３で質問対象文章Ｐの文字列と第２の検索結果Ｒ２に含まれる外部知識の各々の文字列を結合した外部知識結合質問対象文章ＰＲを生成する。ステップＳ１０８で、処理部１４に質問文Ｑと外部知識結合質問対象文章ＰＲを入力して、応答文Ａを得る。最後に、ステップＳ１０９で、出力部１５は、応答文Ａをコンピュータの表示装置の画面上に表示する。
【００４８】
次に、第１の実施の形態の処理部１４で用いるニューラルネットワークを学習するための学習装置について説明する。なお、処理装置１と同様の構成となる部分については、同一符号を付して説明を省略する。
【００４９】
図３に示すように、学習装置１ａは、入力部１０、第１の外部知識検索部１１、第２の外部知識検索部１２、外部知識結合部１３、処理部１４、出力部１５に加えて、学習部１６を備える。
【００５０】
学習部１６は、質問文Ｑと質問対象文章Ｐに対する真の応答文Ｔの入力を受け取り、上述のように、質問対象文章Ｐ、質問文Ｑから、第１の外部知識検索部１１、第２の外部知識検索部１２、外部知識結合部１３、及び処理部１４を用いて生成した応答文Ａと真の応答文Ｔを用いて、真の応答文Ｔが得られるように、処理部１４で用いるニューラルネットワークのパラメータを更新する。パラメータの更新は勾配法を用いて行うことができる。収束条件に達すると学習を終了する。収束条件として、反復回数を用いることができる。所定の数（例えば、１００００個）の入力に対してパラメータを更新したら終了とするようにしてもよい。
【００５１】
次に、図４のフローチャートに従って、第１の実施形態の学習装置１ａの学習処理の流れについて説明する。
【００５２】
まず、ステップＳ１１１では、入力部１０が、質問文Ｑ、質問対象文章Ｐ、及び真の応答文Ｔの複数のデータセットの入力を受け付ける。
【００５３】
ステップＳ１１２で、処理部１４に入力するデータセットを選択する。続いて、ステップＳ１１３で、質問文Ｑと質問対象文章Ｐから得られた応答文Ａと、真の応答文Ｔを用いて、真の応答文Ｔが得られるように学習を行い処理部１４で用いるニューラルネットワークのパラメータを更新する。
【００５４】
ステップＳ１１４で、収束条件を判定し、収束条件に達しないときはステップＳ１１４の判定が否定され、ステップＳ１１２で次の入力するデータセットを選択して、Ｓ１１３でパラメータを更新する処理を繰り返す。収束条件に達すると、ステップＳ１１４の判定が肯定され、パラメータの更新を終了する。
【００５５】
上述のように、学習部１６で処理部１４で用いるニューラルネットワークのパラメータを予め学習させておくことにより、処理部１４から出力される応答文の精度を高めることが可能になる。
【００５６】
次に、第２の実施の形態について説明する。第２の実施の形態では、上述の第１の実施の形態の第２の外部知識検索部の精度を向上させる手法について説明する。
【００５７】
検索手法の精度の向上は、外部知識検索処理に学習可能なパラメータを持つニューラルネットワークモデルを適用し、かつ大規模なデータからの学習によってモデルのパラメータを最適化することで実現できると考えられる。しかし、第１の実施の形態で行われている外部知識を検索して抽出する処理は微分不可能な操作で行われている。そのため、処理装置の全体をｅｎｄ２ｅｎｄ（ｅｎｄ  ｔｏ  ｅｎｄ）のシステムとみなして、ニューラルネットワークの学習で通常用いられる誤差逆伝播法によって全てのパラメータを学習させることができない。そこで、第２の実施の形態では、第２の外部知識検索部に対して強化学習が可能な検索手法を用いる。
【００５８】
本発明の第２の実施形態に係る処理装置の構成は、第１の実施形態に係る処理装置１と同様であるため、詳細な説明を省略する。
【００５９】
図５は、本発明の第２の実施形態に係る学習装置１ｂの構成の一例を示す機能ブロック図である。第１の実施の形態と同じ構成については同一符号を付して詳細な説明は省略する。第２の実施の形態においても、第１の実施の形態と同様に、処理部１４で行われる演算処理が応答文生成処理であり、入力文Ｑが質問文であり、処理対象文章Ｐが質問対象文章である場合について説明する。
【００６０】
第２の実施の形態の学習装置１ｂは、入力部１０、第１の外部知識検索部１１、第２の外部知識検索部２２、外部知識結合部１３、処理部１４、出力部１５、報酬計算部２３、学習部２６、及び収束判定部２７を備える。また、入力部１０、第１の外部知識検索部１１、外部知識結合部１３、処理部１４、及び出力部１５は、第１の実施の形態と同様であるので、詳細な説明は省略する。
【００６１】
第２の外部知識検索部２２は、ニューラルネットワーク（第１のニューラルネットワーク）を用いて、第１の検索結果Ｒ１に含まれる外部知識の各々と質問文Ｑとの類似度、及び第１の検索結果Ｒ１に含まれる外部知識の各々と質問対象文章Ｐとの類似度に基づいて第２の類似度を求める。この第２の類似度に基づいて、第１の検索結果Ｒ１から外部知識を選択して、選択された外部知識を第２の検索結果Ｒ２とする。
【００６２】
まず、第２の外部知識検索部２２は、質問文Ｑと質問対象文章Ｐの２つの文の各々の固定長ベクトルと、第１の検索結果Ｒ１に含まれる外部知識の各々の固定長ベクトルとから類似度を取得する。第２の外部知識検索部２２は、文を固定長ベクトルに変換する手法として、下記の（ａ）〜（ｅ）のような様々なベクトル表現を用いることができる。固定長ベクトルに変換する手法には、（ａ）のようなニューラルネットワークを用いていない手法を用いても、（ｂ）〜（ｅ）のニューラルネットワークを用いた手法であってもよい。
（ａ）  Ｂａｇ  ｏｆ  Ｗｏｒｄｓを用いたベクトル表現
（ｂ）  ＧｌｏＶｅ等の既存の単語埋め込みベクトル表現（ｗｏｒｄ  ｅｍｂｅｄｄｉｎｇ）の和ベクトル又は最大値のベクトル
（ｃ）文の単語埋め込みベクトル系列を入力とするＬＳＴＭ（Ｌｏｎｇ  ｓｈｏｒｔ−ｔｅｒｍ  ｍｅｍｏｒｙ）の最終状態、つまり最終時刻の出力
（ｄ）ｕｎｉｖｅｒｓａｌ  ｓｅｎｔｅｎｓｅ  ｅｎｃｏｄｅｒ等の既存の文埋め込みベクトル
（ｅ）質問と文章の類似性に注視することができるＢiＤＡＦ等の質問応答モデルで得られるベクトル系列
【００６３】
図６に第２の外部知識検索部２２の検索アルゴリズムで行われる操作を示す。図６の各ステップに従って、第２の外部知識検索部２２の検索アルゴリズムの処理について説明する。
【００６４】
図６の検索アルゴリズムは、ステップ１〜ステップ７の操作を終了条件を満足するまで繰り返すことで、第１の検索結果Ｒ１から外部知識を選択して第２の検索結果Ｒ２を生成する。
【００６５】
図６において、ｑは、質問文Ｑの質問ベクトル、ｐｉは、質問対象文章Ｐを構成する文のうちｉ番目の文の文ベクトル、ｒｊは、第１の検索結果Ｒ１の外部知識の集合（以下、集合Ｒ１とする）に含まれるｊ番目の外部知識の外部知識ベクトルを表す。これらのベクトルは、固定長ベクトルであり、次元数は１００次元から数万次元である。また、質問対象文章ＰはＬ個の文で構成され、添え字ｉは１〜Ｌの値をとり、集合Ｒ１はＮ個の外部知識で構成され、添え字ｊは１〜Ｎの値をとる。ｋは、ステップ１〜ステップ７を繰り返した反復回数である。
【００６６】
まず、ステップ１では、質問対象文章を構成する各文の文ベクトルｐｉと、集合Ｒ１に含まれる外部知識の外部知識ベクトルをｒｊの全ての組み合わせ（ｉが１〜Ｌ、ｊが１〜Ｎ）についての類似度を用いたスコアｅｉｊを、関数ｆを用いて計算する。
ｅｉｊ＝ｆ（ｒｊ，ｑ，ｐｉ，ｃ）          （１）
【００６７】
関数ｆは、第１の検索結果Ｒ１に含まれる外部知識の各々と質問文Ｑとの類似度、及び第１の検索結果Ｒ１に含まれる外部知識の各々と質問対象文章Ｐとの類似度に基づくスコアを求めるものであれば何でもよい。例えば、下記の２つの数式（２）と数式（３）のいずれかを用いる。下記の数式（２）の第１項はｊ番目の外部知識と質問文Ｑとの類似度、第２項はｊ番目の外部知識と質問対象文章Ｐを構成するｉ番目の文との類似度を表し、関数ｆの値は、外部知識と質問文Ｑとの類似度と、外部知識と質問対象文章Ｐを構成するｉ番目の文との類似度の和である。
【数１】
2020086549.tif 000003
下記の数式（３）は、ニューラルネットワークの学習可能なパラメータを用いた場合の数式であり、第１項はｊ番目の外部知識の重要度を表し、第２項はｊ番目の外部知識と質問文Ｑとの類似度、第３項はｊ番目の外部知識と質問対象文章Ｐのｉ番目の文との類似度、第４項はｊ番目の外部知識と既に選ばれた外部知識との類似度を表す。第５項はバイアスを表す。
【数２】
2020086549.tif 000004
ただし、ｗｒ、Ｗｑ、Ｗｐ、Ｗｈ、ｂは後述する学習部２６によって学習可能なパラメータである。また、第４項のｃは、ｋ回目までに選ばれた全ての外部知識を表現するｒｊ、ｐｉと同じ固定長の実数値ベクトルである。ｃの計算方法は後述する。初回（ｋ＝１）は、ｃを零ベクトルとする。
【００６８】
次に、ステップ２では、ｊ番目の外部知識と質問対象文章のｉ番目の文に対応するスコアｅｉｊから、外部知識の選ばれやすさを表す確率分布ａを求める。外部知識の選ばれやすさは、外部知識の重要度に対応している。ａは、Ｎ次元の実数値ベクトルであり、成分ａｊは、ｊ番目の外部知識の選ばれやすさに対応する。また、成分ａｊは、例えば０〜１の値で選ばれやすさを表現する。
【００６９】
【数３】
2020086549.tif 000005
Ｅはスコアｅｉｊを成分に持つＬ行Ｎ列の行列である。
関数ｇは、外部知識の選ばれやすさを計算する関数である。関数ｇは、下記の２つの数式（６）及び数式（７）のいずれかを用いる。なお、ｊ番目の外部知識が既に選ばれている場合は、ｇ（Ｅ）のｊ番目の成分は０とする。
【数４】
2020086549.tif 000006
【数５】
2020086549.tif 000007
【００７０】
ステップ３では、外部知識の確率分布ａに従って、外部知識の選ばれやすさが高いものほど高い確率でサンプリングされる。サンプリングされた外部知識をｒｓｋと表す。ｓｋは、反復回数がｋ番目のときに選ばれた外部知識のインデックスを表す。
【００７１】
ステップ４では、選ばれた外部知識ｒｓｋのインデックスｓｋを、ベクトルＳにつなげるように追加する操作を行う。ｋ回目に選ばれた外部知識ｒｓｋのインデックスｓｋが順にベクトルＳに追加される。
【００７２】
さらに、ステップ５では、ｋ回目に選ばれた外部知識ｒｓｋの選ばれやすさを表すスカラーｕｋ（＝ａｓｋ）を求める。ここでは、ステップ２で求めた外部知識の選ばれやすさを表す確率分布ａの成分ａｓｋを用いる。
【００７３】
続いて、ステップ６では、現在までに選ばれた外部知識ｒｓｋの固定長ベクトルｃを得る。ベクトルｃは下記の関数ｈを用いて求める。関数ｈは、現在までに選ばれた外部知識を表す固定長ベクトルを得る関数である。
ｃ＝ｈ（Ｒ１，Ｓ）                      （８）
関数ｈは下記の数式（９）及び数式（１０）のいずれかを用いる。数式（９）は、選ばれた外部知識の集合に含まれる外部知識ｒｓの外部知識ベクトルの和を求める。
【数６】
2020086549.tif 000008
数式（１０）は、ステップ５で得た外部知識ｒｓｋの選ばれやすさを表すスカラーｕｋを用いて、選ばれやすかった外部知識ｒｓｋほど重要視するように重み付きの和を求める。
【数７】
2020086549.tif 000009
【００７４】
ステップ７では、ステップ１〜６の処理を再度繰り返すか否かを判定する。終了条件として、ｋの反復回数、ｍａｘ（ａ）に関する閾値で決定する手法を用いることができる。あるいは、所定の外部知識が選ばれた時点で終了とするダミー知識を利用する手法が考えられる。例えば、反復回数ｋ＝１０となったら終了するようにしてもよい。終了すると、第２の外部知識検索部２２は、選ばれた外部知識の集合を第２の検索結果Ｒ２として出力する。
【００７５】
上記のステップ１、ステップ２、及びステップ６は、それぞれ２つの手法について説明したが、それらはどのように組み合わせてもよい。また、第２の外部知識検索部２２で文を固定長ベクトルに変換する手法として、（ａ）〜（ｅ）の手法を挙げたが、いずれの手法をステップ１〜７の処理と組み合わせてもよい。
【００７６】
次に、図７のフローチャートを用いて、第２の実施形態における処理装置１ｂの応答文出力処理の流れについて説明する。第２の実施の形態の処理は、第１の実施の形態と第２の外部知識検索部以外は同様であるので、詳細な説明は省略し、主に相違する部分について詳細に説明を行う。
【００７７】
ステップＳ２０１〜ステップＳ２０３では、第１の実施の形態のステップＳ１０１〜ステップＳ１０３と同様の処理を行って第１の検索結果Ｒ１を取得する。続いて、第２の外部知識検索部２２は、質問文Ｑと質問対象文章Ｐを用いて、第１の検索結果Ｒ１をさらに検索する。まず、ステップＳ２０４で、第１の検索結果Ｒ１の外部知識、質問文Ｑ、質問対象文章Ｐの固定長ベクトルを取得する。
【００７８】
ステップＳ２０５では、図６のステップ１〜ステップ７の操作を繰り返して、各外部知識の選ばれやすさを表す確率を用いて、第１の検索結果Ｒ１の外部知識から、所定の終了条件を満足するまで選択を行う。ステップＳ２０６では、第１の検索結果Ｒ１から選択された外部知識を第２の検索結果Ｒ２とする。
【００７９】
ステップＳ２０７〜ステップＳ２０９では、第１の実施の形態のステップＳ１０７〜ステップＳ１０９と同様の処理を行って応答文Ａを出力する。
【００８０】
次に、学習装置１ｂが第２の外部知識検索部２２の検索精度を上げるために強化学習を行う手法について説明する。強化学習は、行動をとる確率を表す方策と、行動によって得られる報酬の２つを定義することで学習が進む。方策は、例えば、第２の外部知識検索部２２の第１の検索結果Ｒ１の外部知識の選ばれやすさを表す確率分布ａである。報酬は、真の応答文に対して応答文の正しさを表す指標と、選ばれた外部知識の情報の質に関する指標の２つから計算される。
【００８１】
まず、学習時には、入力部１０は、質問文Ｑと質問対象文章Ｐと一緒に、質問文Ｑに対する真の応答文Ｔをデータセットにして複数のデータセットを受け取る。
【００８２】
報酬計算部２３は、質問対象文章Ｐと、質問文Ｑと、応答文Ａと、第２の外部知識検索部２２で選択された外部知識と、質問文Ｑに対して予め与えられた真の応答文Ｔとに基づいて、真の応答文Ｔに対する応答文Ａの正しさを表す指標と、第２の外部知識検索部２２で選択された外部知識の質を表す指標とから定められる報酬ｖを計算する。
【００８３】
応答文Ａの正しさに関する指標は、Ｆ１又はＲｏｕｇｅ等の、応答文Ａと真の応答文Ｔの一致度を表す指標を用いることができる。Ｒｏｕｇｅは、自然言語処理における自動要約処理等の評価に用いられる指標であり、自動要約文と、人手で作成した要約文との一致度を表す指標である。
【００８４】
また、第２の外部知識検索部２２で選択された外部知識の質を表す指標は、質問文Ｑと応答文Ａとが持つ情報に対して、質問対象文章Ｐと選択された外部知識とが持つ情報がどの程度一致するかを表す一致度を用いることができる。指標の計算方法の具体例として以下に（ｉ）（ｉｉ）の２通りを示す。
【００８５】
（ｉ）第２の外部知識検索部２２で選択された外部知識の情報の質に関する指標として、質問文Ｑと応答文Ａをつなげた自然文の文と、質問対象文章Ｐと選択された外部知識をつなげた自然文の文とのＲｏｕｇｅを取得する。
【００８６】
（ｉｉ）第２の外部知識検索部２２で選択された外部知識の情報の質に関する指標として、参考文献４に記載のｃｏｖｅｒａｇｅ等の手法を利用する。ｃｏｖｅｒａｇｅを用いる指標は以下の数式（１１）で表すことができる。なお、この手法を選択する場合には、第２の外部知識検索部２２において、質問対象文章を構成する各文の文ベクトルｐｉと、第１の検索結果Ｒ１の外部知識に含まれる外部知識の外部知識ベクトルｒｊの類似度から得られるスコアｅｉｊを算出する際に用いられる数式（３）のパラメータを学習しておく必要がある。
【数８】
2020086549.tif 000010
ここで、ｓｋは、第２の外部知識検索部２２の反復回数がｋ番目のときに選ばれた外部知識のインデックスを表す。Ｋは、第２の外部知識検索部２２で行われた総反復回数である。~ｑｉは、質問文Ｑと応答文Ａをつなげた自然文（単語をつないだ文字列）の埋め込みベクトルであり、ｉは単語の位置を表す。~ｐは、質問対象文章Ｐの埋め込みベクトルである。また、Ｗｑは、数式（３）の外部知識と質問文Ｑの類似度に対する重みと同じである。
【００８７】
［参考文献４］Abigail See, Peter J. Liu, Christopher D. Manning "Get To The Point: Summarization with Pointer-Generator Networks " arXiv:1704.04368v2 [cs.CL] 25 Apr 2017
【００８８】
学習部２６は、方策と報酬ｖを用いて、方策勾配法により第２の外部知識検索部２２のパラメータを更新する。方策としては、例えば、第２の外部知識検索部２２で得た確率分布ａｊを用いる。また、第２の外部知識検索部２２のスコアを算出する際に、数式（３）を用いて求める場合には、数式（３）のパラメータｗｒ、Ｗｑ、Ｗｐ、Ｗｈ、ｂが更新される。また、文を固定長ベクトルに変換する手法として、上述の（ｂ）〜（ｅ）のニューラルネットワークを用いた手法を用いた場合には、このニューラルネットワークに対するパラメータが更新される。
【００８９】
報酬ｖは、例えば、真の応答文Ｔに対する応答文Ａの正しさを表す指標と、第２の外部知識検索部２２で選択された外部知識の質を表す指標との重み付き和である。
【００９０】
また、学習部２６は、学習により、第２の外部知識検索部２２だけでなく処理部１４のパラメータも更新する。処理部１４のパラメータの学習方法の具体例として以下に（ｉ）（ｉｉ）の２通りを示す。
【００９１】
（ｉ）勾配法を用いる学習方法
質問文Ｑと質問対象文章Ｐに対する真の応答文Ｔの入力を受け取り、上述のように、質問対象文章Ｐ、質問文Ｑから、第１の外部知識検索部１１、第２の外部知識検索部２２、外部知識結合部１３、及び処理部１４を用いて生成した応答文Ａと真の応答文Ｔを用いて、処理部１４のパラメータを更新する。パラメータの更新は勾配法を用いて行うことができる。勾配法で最小化する目的関数としては、ニューラルネットワークと誤差逆伝播法で質問応答処理の学習を行う際に一般的に用いられる目的関数を用いることができる。例えば、一般的な目的関数であるクロスエントロピー関数を用いることができる。
【００９２】
（ｉｉ）強化学習
Ｆ１又はＲｏｕｇｅから作った目的関数は微分不可能な関数であり、通常の勾配法を用いて学習を行うことができない。そのため、勾配法におけるクロスエントロピー関数に対応する目的関数を別に用意する必要がある。そこで、第２の外部知識検索部２２と同様に、処理部１４も、方策と報酬ｖを用いて方策勾配法によりパラメータの更新を行うことができる。
【００９３】
上述では、２つの学習方法について説明したが、（ｉ）より、（ｉｉ）を用いる方が、質問応答処理で質問文に適した柔軟な応答文Ａを出力することが期待できる。例えば、質問対象文書Ｐのように与えられた文書の中から質問文Ｑに対する応答文を抜き出すタイプの質問応答処理の場合、応答文Ａは、語順を入れ替えても同じ意味を表す文であれば正答といえる。しかし、（ｉ）で用いられるクロスエントロピー関数は、質問対象文書Ｐのうちの真の応答文Ｔに対応する区間をどのくらい出力しやすいかを評価する。そのため、正答として許容され得るが真の応答文Ｔに対応する区間とは異なる単語列の出力も全て誤答として学習してしまう。一方、（ｉｉ）では、目的関数に用いるＦ１又はＲｏｕｇｅといった指標が語順の入れ替え等による言語的な類似性を評価できる。そのため、語順を入れ替えても同じ意味を表す文の類似度が高くなるように言語的な類似性を評価できるので、柔軟な応答文Ａを出力することが可能になる。
【００９４】
収束判定部２７は、予め定められた収束条件を満たすまで、第１の外部知識検索部１１による検索、第２の外部知識検索部２２による検索、外部知識結合部１３による外部知識結合質問対象文章ＰＲの生成、処理部１４による応答文Ａの取得、報酬計算部２３による計算、及び学習部２６によるパラメータの更新を繰り返させる。なお、図５の破線は、収束判定部２７が繰り返しを行う構成要素を示す。
【００９５】
次に、図８のフローチャートを用いて、第２の実施形態における学習装置１ｂの学習処理の流れについて説明する。図８は、処理部１４の学習に（ｉ）の勾配法を用いる場合について説明する。
【００９６】
まず、ステップＳ２１１では、入力部１０が学習する質問文Ｑ、質問対象文章Ｐ、及び真の応答文Ｔの複数のデータセットの入力を受け付ける。
【００９７】
ステップＳ２１２で、学習部２６は、入力された全てのデータセットから、処理部１４に入力するデータセットを１つ選択する。続いて、ステップＳ２１３で、質問対象文章Ｐ、質問文Ｑを用いて、第１の外部知識検索部１１による検索と、第２の外部知識検索部２２による検索を行って第２の検索結果Ｒ２を得て、外部知識結合部１３で外部知識結合質問対象文章ＰＲの生成を行って、外部知識結合質問対象文章ＰＲを処理部１４に入力して応答文Ａを取得する。ステップＳ２１４で、応答文Ａと真の応答文Ｔを用いて、学習部２６は処理部１４のパラメータを更新する。
【００９８】
ステップＳ２１５では、報酬計算部２３で報酬ｖを計算する。続いて、ステップＳ２１６で、方策と報酬ｖを学習部２６が用いて強化学習を行ない、第２の外部知識検索部２２のパラメータを更新する。
【００９９】
ステップＳ２１７で、収束判定部２７は収束条件を判定し、収束条件に達していないときはステップＳ２１７の判定が否定され、ステップＳ２１２〜Ｓ２１６を繰り返してパラメータを更新する。収束条件に達すると、ステップＳ２１７の判定が肯定され、パラメータの更新を終了する。
【０１００】
このように第２の外部知識検索部に強化学習を行うことによって、第２の検索結果に含まれる外部知識の精度を高めることが可能になり、処理部からより適切な応答文を出力させることができる。
【０１０１】
次に、図９のフローチャートを用いて、第２の実施形態において、処理部１４の学習に（ｉｉ）の強化学習を用いた学習装置１ｂの学習処理の流れについて説明する。
【０１０２】
図９のステップＳ２１１〜ステップＳ２１３までは、図８の勾配法を用いる学習方法と同様であるので詳細な説明は省略する。
【０１０３】
ステップＳ２２５で、報酬計算部２３で報酬ｖを計算する。続いて、ステップＳ２２６で、方策と報酬ｖを学習部２６が用いて、処理部１４と第２の外部知識検索部２２の両方のパラメータを更新する。
【０１０４】
ステップＳ２２７で、収束判定部２７は収束条件を判定し、収束条件に達していないときはステップＳ２２７の判定が否定され、ステップＳ２１２〜Ｓ２２６を繰り返してパラメータを更新する。収束条件に達すると、ステップＳ２２７の判定が肯定され、パラメータの更新を終了する。
【０１０５】
このように第２の外部知識検索部と処理部の全体に強化学習を行うことによって、質問文に適した柔軟な応答文を出力させることができる。
【０１０６】
上述のように、第２の実施の形態では、第１の実施の形態の第２の外部知識検索部をパラメータの学習が必要な構成としたので、第２の外部知識検索部に強化学習を行う、または、第２の外部知識検索部と処理部に対して強化学習を行うことが可能になる。これにより、第２の外部知識検索部で用いる第１のニューラルネットワークと処理部で用いる第２のニューラルネットワークのパラメータと予め学習させておくことで、より適切な応答文を出力させることができる。
【０１０７】
次に第３の実施の形態について説明する。第３の実施の形態の処理装置では、入力文に対する回答として応答文を得るための対話処理に、本発明の外部知識の検索手法を利用する場合について説明する。
【０１０８】
図１０は、本発明の第３の実施形態に係る処理装置１ｃの構成の一例を示す機能ブロック図である。第１の実施の形態と同じ構成については同一符号を付して詳細な説明は省略する。また、入力文Ｑが質問文である場合について説明する。以下、質問文をＱとする。
【０１０９】
第３の実施の形態の処理装置１ｃは、入力部１０、第１の外部知識検索部３１、第２の外部知識検索部３２、処理部３４、及び出力部１５を備える。
【０１１０】
第１の外部知識検索部３１は、外部知識データベース２に含まれる外部知識の各々と質問文Ｑとの類似度から得られる第１のスコアに基づいて、外部知識を外部知識データベース２から検索して第１の検索結果Ｒ１とする。第１の類似度については、第１の実施の形態と同様に、ＴＦ-ＩＤＦ等の文中に含まれる単語の出現頻度を比較する手法を用いて第１の類似度を求める。第１の類似度で定義される第１のスコアを用いてランキングし、例えば上位から指定された数の外部知識を第１の検索結果Ｒ１として出力する。あるいは、第１のスコアが所定の値以上の外部知識を第１の検索結果Ｒ１として出力する。
【０１１１】
第２の外部知識検索部３２は、第１の実施の形態と同様に、予め学習されたニューラルネットワークを用いて、第１の外部知識検索部３１による第１の検索結果Ｒ１を検索して第２の検索結果Ｒ２を得る。まず、ニューラルネットワークを用いて、質問文Ｑと第１の検索結果Ｒ１に含まれる外部知識の各々を固定長のベクトルに変換して、質問文Ｑの固定長の質問文ベクトルと、第１の検索結果Ｒ１に含まれる外部知識の固定長の外部知識ベクトルとの類似度を用いたスコアを第２の類似度とする。第２の類似度で定義される第２のスコアを用いてランキングし、例えば上位から所定の数の外部知識を第２の検索結果Ｒ２として出力する。あるいは、第２のスコアが所定の値以上の外部知識を第２の検索結果Ｒ２として出力する。
【０１１２】
上記の類似度を用いたスコアは、図６の検索アルゴリズムと同様に定められる。ただし本実施例では、第２の実施形態と異なり、質問対象文章Ｐが存在しない。そのため、第２の実施形態における質問対象文章Ｐの代わりに本実施例における質問文Ｑを用いる。第２の実施形態における質問文Ｑはないものとみなし、各数式（１）、（２）、（３）の質問文Ｑに関する項はないものとしてスコアを計算する。
【０１１３】
処理部３４は、応答文生成処理により、質問文Ｑと第２の検索結果Ｒ２に含まれる外部知識とから応答文Ａを生成する。応答文生成処理は既存の様々な手法を用いることができるが、例えば、参考文献１に記載のマルチタスクＳｅｑ２Ｓｅｑ処理等のニューラルネットワークに入力することで応答文Ａを生成する。
【０１１４】
次に、図１１のフローチャートを用いて第３の実施形態における処理装置１ｃの応答文出力処理の流れについて説明する。
【０１１５】
ステップＳ３０１では、入力部１０が質問文Ｑの入力を受け付ける。第１の外部知識検索部３１は、質問文Ｑをクエリとして、外部知識データベース２に格納されている外部知識を検索する。ステップＳ１０２で、第１の外部知識検索部３１は、ＴＦ−ＩＤＦを用いて、外部知識と質問文Ｑとの類似度を算出して第１のスコアとする。第１のスコアのランキングに応じて第１の検索結果Ｒ１を取得する。
【０１１６】
次に、第２の外部知識検索部３２は、質問文Ｑを用いて、予め学習済みのニューラルネット（第１のニューラルネットワーク）に基づき、第１の検索結果Ｒ１をさらに検索する。ステップＳ３０４で、まず、ニューラルネットワークを用いて、第１の検索結果Ｒ１の外部知識、質問文Ｑの固定長ベクトルを取得する。ステップＳ３０５では、外部知識ベクトルと質問文ベクトルの類似度を算出し、第２のスコアとする。ステップＳ３０６では、第１の検索結果Ｒ１に含まれる外部知識を第２のスコアのランキングに応じて第２の検索結果Ｒ２を取得する。
【０１１７】
さらに、ステップＳ３０８で、処理部３４に、質問文Ｑと第２の検索結果Ｒ２に含まれる外部知識を入力して、応答文Ａを得る。最後に、ステップＳ３０９で、出力部１５は、応答文Ａをコンピュータの表示装置の画面上に表示する。
【０１１８】
上述の第３の実施の形態では、質問文に対して応答文を生成する対話処理に、本発明の二段階検索手法を用いる場合について説明したが、本発明の二段階検索手法を任意の自然言語処理に適用することが可能である。
【０１１９】
例えば、第１及び第２の実施の形態で説明した応答文生成処理のためのアルゴリズムにおいて、質問対象文章の代わりに要約対象の文章を処理対象文章Ｐとし、質問文の代わりに要約対象の文章のタイトルを入力文Ｑとすることで、処理部が、入力文Ｑと処理対象文章Ｐとを入力として要約文を生成する構成とすることにより、本願発明を要約処理においても適用することが可能になる。
【０１２０】
また、図１２に示すように、第１の外部知識検索部４１として、第１又は第３の実施の形態の第１の外部知識検索部を用い、第２の外部知識検索部４２として、第１、第２、又は第３の実施の形態の第２の外部知識検索部を用い、処理部４４が、入力文Ｑ及び処理対象文章Ｐの少なくとも一方を入力とする任意の自然言語処理を用いた分類器や生成器となるように構成することができる。例えば、上記アルゴリズムの処理対象文章Ｐを判定対象文章に置き換えて、判定結果を応答文Ａとして出力するようにしてもよい。
【０１２１】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０１２２】
なお、上述の実施の形態において、演算処理装置は、汎用的なプロセッサであるＣＰＵ（Central Processing Unit)が用いられる。さらに、必要に応じてＧＰＵ（Graphics Processing Unit）を設けるのが好ましい。また、上述の機能の一部をＦＰＧＡ (Field Programmable Gate Array) 等の製造後に回路構成を変更可能なプロセッサであるプログラマブルロジックデバイス（Programmable Logic Device:ＰＬＤ）、又はＡＳＩＣ（Application Specific Integrated Circuit）等の特定の処理を実行させるために専用に設計された回路構成を有する専用電気回路等を用いて実現してもよい。
【符号の説明】
【０１２３】
１、１ａ、１ｂ、１ｃ 処理装置
２     外部知識データベース
１０   入力部
１１、３１、４１     第１の外部知識検索部
１２、２２、３２、４２      第２の外部知識検索部
１３、５３    外部知識結合部
１４、２４、３４、４４      処理部
１５   出力部
１６、２６    学習部
２３   報酬計算部
２７   収束判定部
５１   外部知識検索部
５４   応答部
Ａ     応答文
Ｐ     処理対象文章
ＰＲ   外部知識結合質問対象文章
Ｑ     入力文
Ｒ１   第１の検索結果
Ｒ２   第２の検索結果
ｖ     報酬
【図１】
2020086549.tif 000011
【図２】
2020086549.tif 000012
【図３】
2020086549.tif 000013
【図４】
2020086549.tif 000014
【図５】
2020086549.tif 000015
【図６】
2020086549.tif 000016
【図７】
2020086549.tif 000017
【図８】
2020086549.tif 000018
【図９】
2020086549.tif 000019
【図１０】
2020086549.tif 000020
【図１１】
2020086549.tif 000021
【図１２】
2020086549.tif 000022
【図１３】
2020086549.tif 000023