(57)【要約】  情報処理装置において、文書及び質問の対を入力として、当該文書における、前記質問に対する回答となり得る文字列の範囲である回答範囲、又は、前記質問に対する前記文書の回答適合度を出力する処理を実行する処理手段を備え、前記処理手段は、前記回答範囲を算出する第１ニューラルネットワークと、前記回答適合度を算出する第２ニューラルネットワークを含み、前記第１ニューラルネットワークと、前記第２ニューラルネットワークとの間で、両ニューラルネットワークを構成する層の一部が共有される。
2019106965.tif 000002
【特許請求の範囲】
【請求項１】
文書及び質問の対を入力として、当該文書における、前記質問に対する回答となり得る文字列の範囲である回答範囲、又は、前記質問に対する前記文書の回答適合度を出力する処理を実行する処理手段を備え、
前記処理手段は、前記回答範囲を算出する第１ニューラルネットワークと、前記回答適合度を算出する第２ニューラルネットワークを含み、前記第１ニューラルネットワークと、前記第２ニューラルネットワークとの間で、両ニューラルネットワークを構成する層の一部が共有される
ことを特徴とする情報処理装置。
【請求項２】
前記処理手段は、入力された文書群の各文書ごとに、当該文書の質問に対する前記回答範囲と前記回答適合度とを求める
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記処理手段は、入力された文書群の各文書ごとに、前記回答範囲と前記回答適合度を求め、当該回答範囲から回答候補である文字列を求め、
前記情報処理装置は、
前記回答候補として抽出された文字列が同一である各文書についての回答適合度に基づいて、前記文字列ごとに回答候補スコアを算出する回答スコア算出手段
を更に備えることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記回答スコア算出手段は、前記回答候補スコアを、前記回答候補として抽出された文字列が同一である各文書についての回答適合度の合計、当該回答適合度の重み付け平均、又は、当該回答適合度の重み付け合計により算出する
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記処理手段は、
前記両ニューラルネットワークを構成する層の共有部分により、前記文書及び前記質問に基づいてマッチング行列を生成し、
前記マッチング行列に基づいて、前記第１ニューラルネットワークにより前記回答範囲を算出し、前記第２ニューラルネットワークにより前記回答適合度を算出する
ことを特徴とする請求項１ないし４のうちいずれか１項に記載の情報処理装置。
【請求項６】
文書及び質問の対を入力として、当該文書における、前記質問に対する回答となり得る文字列の範囲である回答範囲、又は、前記質問に対する前記文書の回答適合度を出力する処理を実行する処理手段と、
パラメータ学習手段と、を備え、
前記処理手段は、前記回答範囲を算出する第１ニューラルネットワークと、前記回答適合度を算出する第２ニューラルネットワークを含み、前記第１ニューラルネットワークと、前記第２ニューラルネットワークとの間で、両ニューラルネットワークを構成する層の一部が共有され、
前記パラメータ学習手段は、前記両ニューラルネットワークからの出力と、正解である訓練データとから、前記両ニューラルネットワークのパラメータを学習し、
前記正解である訓練データは、質問、文書、回答範囲、及び回答適合度の組からなる
ことを特徴とする情報処理装置。
【請求項７】
前記第１ニューラルネットワークは、前記回答範囲であって複数の粒度の回答を示す複数の範囲のうちのいずれかの範囲に対応する複数のニューラルネットワークからなり、前記第２ニューラルネットワークと、前記複数のニューラルネットワークとの間で、これらのニューラルネットワークを構成する層の一部が共有される
ことを特徴とする請求項１ないし６のうちいずれか１項に記載の情報処理装置。
【請求項８】
前記処理手段は、前記複数のニューラルネットワークが算出する複数の粒度の回答を示す複数の範囲に基づき、最も適切な粒度の範囲を前記回答範囲として出力する質問応答手段
を更に備えることを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記適切な粒度の範囲は、フレーズと、段落と、文書とのうちのいずれかである
ことを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
コンピュータを、請求項１ないし９のうちいずれか１項に記載の前記情報処理装置における各手段として機能させるためのプログラム。
【請求項１１】
文書及び質問の対を入力として、当該文書における、前記質問に対する回答となり得る文字列の範囲である回答範囲、又は、前記質問に対する前記文書の回答適合度を出力する処理を実行する処理手段を備える情報処理装置が実行する情報処理方法であって、
前記処理手段は、前記回答範囲を算出する第１ニューラルネットワークと、前記回答適合度を算出する第２ニューラルネットワークを含み、前記第１ニューラルネットワークと、前記第２ニューラルネットワークとの間で、両ニューラルネットワークを構成する層の一部が共有され、
前記処理手段が、前記両ニューラルネットワークを構成する層の共有部分において、前記文書及び前記質問に基づいてマッチング行列を生成するステップと、
前記処理手段が、前記マッチング行列に基づいて、前記第１ニューラルネットワークにより前記回答範囲を算出する、又は、前記マッチング行列に基づいて、前記第２ニューラルネットワークにより前記回答適合度を算出するステップと
を備えることを特徴とする情報処理方法。
【請求項１２】
前記第１ニューラルネットワークは、前記回答範囲であって複数の粒度の回答を示す複数の範囲のうちのいずれかの範囲に対応する複数のニューラルネットワークからなり、前記第２ニューラルネットワークと、前記複数のニューラルネットワークとの間で、これらのニューラルネットワークを構成する層の一部が共有される
ことを特徴とする請求項１１に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書から、質問に対する回答を抽出する技術に関連するものである。
【背景技術】
【０００２】
与えられた文書に対して、質問に対する回答範囲を抽出する「読解」を人工知能により正確に行うことができれば、質問応答、知的エージェント対話など幅広いサービスに応用することができる。【０００３】
読解を行うための従来技術として、例えば、非特許文献１などに開示された技術がある。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Seo, M．; Kembhavi, A．; Farhadi, A．; and Hajishirzi, H． 2017． Bidirectional attention flow for machine comprehension． In ICLR．
【非特許文献２】Chen, D．; Fisch, A．;Weston, J．; and Bordes, A． 2017． Reading wikipedia to answer open-domain questions． In ACL (1), 1870-1879
【発明の概要】
【発明が解決しようとする課題】
【０００５】
非特許文献１などに開示された従来技術では、文書及び質問の単語系列を符号化（ベクトル化）し、各単語系列のベクトル表現のマッチングを取った上で、文書の回答範囲の始点と終点の位置番号を出力している。【０００６】
しかし、読解に関する従来技術では、質問のみが与えられた際に、多数の文書の中から質問に回答可能な文書を検索し、検索結果である文書から回答範囲を出力すること（質問応答）は実施できない。質問応答を行うためには、非特許文献２に記載のように、情報検索を行う装置と読解を行う装置を連結する必要がある。しかし、非特許文献２に記載のような従来技術では、情報検索を行う装置と読解を行う装置を単純に連結するだけであり、こうした単純な連結では高い情報検索精度が得られない問題があった。通常の情報検索装置では、質問の単語系列に含まれる単語に対応する文書を検索することは可能だが、質問に対する回答に関する情報を含んでいるかを判定することは出来ないためである。【０００７】
本発明は上記の点に鑑みてなされたものであり、文書群の中から質問に回答可能な文書を検索し、検索結果である文書から回答範囲を出力することを従来技術よりも高い精度で実行することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
開示の技術によれば、文書及び質問の対を入力として、当該文書における、前記質問に対する回答となり得る文字列の範囲である回答範囲、又は、前記質問に対する前記文書の回答適合度を出力する処理を実行する処理手段を備え、
前記処理手段は、前記回答範囲を算出する第１ニューラルネットワークと、前記回答適合度を算出する第２ニューラルネットワークを含み、前記第１ニューラルネットワークと、前記第２ニューラルネットワークとの間で、両ニューラルネットワークを構成する層の一部が共有される
ことを特徴とする情報処理装置が提供される。
【発明の効果】
【０００９】
開示の技術によれば、文書群の中から質問に回答可能な文書を検索し、検索結果である文書から回答範囲を出力することを従来技術よりも高い精度で実行することを可能とする技術が提供される。すなわち、多数の文書の中から、質問に回答可能な文書を絞り込んだ上で、文書から従来よりも高精度に回答範囲を抽出できるようになる効果が得られる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１の実施の形態における質問応答装置１００の構成図である。
【図２】本発明の第１の実施の形態における学習時の質問応答装置１００の構成図である。
【図３】動作の概要を説明するための図である。
【図４】モデルの構成を示す図である。
【図５】質問応答装置１００のハードウェア構成例を示す図である。
【図６Ａ】質問応答装置１００の学習時の処理手順を示すフローチャートである。
【図６Ｂ】ステップ３００の処理手順を示すフローチャートである。
【図７】単語ベクトル記憶部１０１に格納されるデータの例を示す図である。
【図８Ａ】質問応答装置１００の質問応答時の処理手順を示すフローチャートである。
【図８Ｂ】ステップ５００の処理手順を示すフローチャートである。
【図９】本発明の第２の実施の形態における質問応答装置１１０の構成図である。
【図１０】本発明の第２の実施の形態における学習時の質問応答装置１１０の構成図である。
【図１１】モデルの構成を示す図である。
【図１２Ａ】質問応答装置１１０の学習時の処理手順を示すフローチャートである。
【図１２Ｂ】ステップ１３００の処理手順を示すフローチャートである。
【図１３】単語ベクトル記憶部１１１に格納されるデータの例を示す図である。
【図１４Ａ】質問応答装置１００の質問応答時の処理手順を示すフローチャートである。
【図１４Ｂ】ステップ５００の処理手順を示すフローチャートである。
【図１５】実験結果を示す図である。
【図１６】実験結果を示す図である。
【図１７】実験結果を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の第１の実施の形態及び第２の実施の形態を説明する。なお、以下で説明する第１及び第２の実施の形態は一例に過ぎず、本発明を適用可能な形態は、以下の第１及び第２の実施の形態に限られるわけではない。例えば、第１及び第２の実施の形態に係る技術は、専門文書コーパスに関する質問応答などに利用可能であるが、利用対象はこれに限られず、様々な対象に利用可能である。なお、第１及び第２の実施の形態における質問応答装置を情報処理装置と称してもよい。
【００１２】
まず、第１の実施の形態を説明する。
【００１３】
（第１の実施の形態の概要）
第１の実施の形態では、質問応答装置が、入力として与えられた文書の単語系列から、入力された質問に対する回答部分の範囲を抽出すると共に、文書が質問に回答可能である度合を示す回答適合度を同時に出力する。第１の実施の形態に係る質問応答装置は、文書の中から回答部分の範囲を抽出する読解タスクと文書が質問に回答可能な情報か否かを判定する検索タスクを同時に学習することで、読解・検索・質問応答の精度を向上可能としている。
【００１４】
より具体的には、質問応答装置はニューラルネットワークにより上記読解・検索・質問応答を実現しており、情報検索を行うニューラルネットワークと読解を行うニューラルネットにおいて中間層の一部を共有することで情報検索と読解を同時に学習して両タスク及び質問応答の精度を向上することを可能としている。
【００１５】
（装置構成、動作概要）
図１は、本発明の第１の実施の形態における質問応答装置１００の構成を示す。図１に示す構成は、質問応答の処理を行う際の構成である。図１に示すように、質問応答装置１００は、単語ベクトル記憶部１０１と、単語系列ベクトル化部１０２と、単語系列マッチング部１０３と、回答範囲出力部１０４と、回答適合度出力部１０５と、質問応答部１０６と、を有する。
【００１６】
図２は、学習時の質問応答装置１００の構成を示す。学習時の質問応答装置１００は、図１の質問応答装置１００の構成に対し、質問応答部１０６が備えられず、パラメータ学習部１０７が備えられる点が異なる。その他の構成は、質問応答の処理を行う際の構成と学習時の構成とで同じである。
【００１７】
図１の構成に、パラメータ学習部１０７を加えた構成を質問応答装置１００の構成としてもよい。この場合、図１は、質問応答の処理を行う際に使用される構成を示し、図２は、学習時に使用される構成を示す。以下、「質問応答装置１００」は、図１の構成に、パラメータ学習部１０７を加えた構成であるものとして説明する。なお、質問応答部１０６は、質問応答装置１００の外部に存在しても構わない。各部の動作詳細については後述する。
【００１８】
質問応答装置１００の各機能部（具体的にはニューラルネットワークの各層）は、複数の(質問、文書、回答範囲、回答適合度)から構成される訓練データセットを用いて予め学習がなされる。「学習」とは、ニューラルネットワークにおけるパラメータ（重み等）を、入力に対する目的の情報が出力されるように、適切に定めることである。
【００１９】
そして、入力される質問と文書集合（ここではテストデータと呼ぶ）に対して、文書集合に含まれる各文書と質問のペアを、学習がなされた質問応答装置１００に入力して、回答適合度の高い文書から抽出された回答を出力する。正解となる回答範囲、回答適合度についてのデータは学習時にのみ与えられ、テスト（入力である質問に対し、回答を出力すること）の際には与えられない。なお、回答範囲とは、文書中の質問に対する回答にあたる部分のことであり、文書中の回答範囲の始点と終点にある単語の位置番号によって表現される。
【００２０】
質問応答装置１００が、入力である質問に対し、回答を出力する場合のイメージを図３に示す。図３に示すように、質問が文の形で入力され、質問応答装置１００が、情報検索と読解の処理をニューラルネットワークを用いて一括してモデル化し、入出力情報だけを用いて一気に学習する。このような処理はｅｎｄ−ｔｏ−ｅｎｄの処理と呼ばれるものである。図３に示すように、質問応答装置１００は、質問に含まれる単語だけでなく、回答の情報が含まれるかにも着目して文書群（Ｃｏｒｐｕｓ）から文書（Ｐａｓｓａｇｅ）を検索し、その中から回答を抽出している。図３に示されるように、情報検索と読解とでニューラルネットワークの層が共有される。なお、文書は、文（ｓｅｎｔｅｎｃｅ）の集合である。
【００２１】
図２に示す学習時の質問応答装置１００に対する入力である訓練データセットにおいては、質問に対する回答を含む文書を正解文書とする。各質問に対する正解文書は複数あってもよい。各正解文書における回答範囲は1か所以上とする。回答適合度は、例えば正解文書であれば１、そうでない場合は０とする。なお、回答範囲が与えられている文書の回答適合度を自動的に１としてもよい。
【００２２】
質問応答装置１００において、文書と質問から回答範囲と回答適合度を算出する機能部は、ニューラルネットワークにより実現される。ニューラルネットワークは数学モデルであるが、質問応答装置１００における当該機能部は、当該ニューラルネットワークに相当する数学モデルの演算を行うソフトウェア（及び、CPU、GPUなどのプロセッサ）により実現される。
【００２３】
図４は、質問応答装置１００が用いるニューラルネットワークの構成例を示す。当該構成は、非特許文献１に開示された構成に基づくものであるが、第１の実施の形態では、ニューラルネットワークにおける層の一部を情報検索と読解とで共有しており、その点は非特許文献１に開示はない。
【００２４】
図４に示すように、質問応答装置１００を構成するニューラルネットワークは、Word Embedding Layer２００、Contextual Embedding layer３００、Attention Flow Layer４００、Modeling Layer５００、Reading Comprehension Layer６００、Information Retrieval Layer７００を含む。
【００２５】
Word Embedding Layer２００とContextual Embedding layer３００は、単語系列ベクトル化部１０２に相当する。Attention Flow Layer４００、Modeling Layer５００は、単号系列マッチング部１０３に相当する。Reading Comprehension Layer６００は、読解に関する層を含み、回答範囲出力部１０４に相当する。Information Retrieval Layer７００は、情報検索に関する層を含み、回答適合度出力部１０４に相当する。
【００２６】
図４に示すように、Word Embedding Layer２００、Contextual Embedding layer３００、Attention Flow Layer４００、及びModeling Layer５００が情報検索と読解とで共有される。
【００２７】
質問応答装置１００の処理の概要は以下のとおりである。以下の説明におけるH、U、Mの詳細については後の詳細説明で説明される。
【００２８】
まず、単語系列ベクトル化部１０２は、入力された文書と質問文を、それぞれベクトル系列Hと、ベクトル系列Uに変換する。次に、単語系列マッチング部１０３は、文書のベクトル系列Hと質問のベクトル系列Uをもとに、マッチング行列Mを計算する。回答範囲出力部１０４はマッチング行列Mに基づき回答範囲を算出する。回答適合度出力部１０５は、マッチング行列Mに基づき回答適合度を出力する。質問応答部１０６は、後述する回答決定処理等を行う。
【００２９】
学習の際は、パラメータ学習部１０７が、訓練データセット（複数の(質問、文書、回答範囲、回答適合度)から構成される）に基づき処理を行い、入力された（正解である）回答範囲及び回答適合度と、出力された回答範囲と回答適合度を用いて、損失計算を行い、ニューラルネットワークのパラメータの更新を行う。
【００３０】
なお、訓練データセットとして、質問に対する正解である回答範囲を与えることに代えて、質問に対する正解である回答文字列を与え、正解である回答文字列が文書中に完全一致で含まれる範囲、あるいは、部分一致で最も重なりの多い範囲を正解の回答範囲の代わりに用いて学習を行うこととしてもよい。ただし、正解である回答範囲を与えることにより、より精度の高い回答を行うことができるため、正解である回答範囲を与えることが望ましい。
【００３１】
（ハードウェア構成例）
上述した質問応答装置１００は例えば、コンピュータに、第１の実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、質問応答装置１００は、コンピュータに内蔵されるＣＰＵやメモリ等のハードウェア資源を用いて、質問応答装置１００で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
【００３２】
図５は、本実施の形態における上記コンピュータのハードウェア構成例を示す図である。図５のコンピュータは、それぞれバスＢで相互に接続されているドライブ装置１５０、補助記憶装置１５２、メモリ装置１５３、ＣＰＵ１５４、インターフェース装置１５５、表示装置１５６、及び入力装置１５７等を有する。
【００３３】
質問応答装置１００での処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ又はメモリカード等の記録媒体１５１によって提供される。プログラムを記憶した記録媒体１５１がドライブ装置１５０にセットされると、プログラムが記録媒体１５１からドライブ装置１５０を介して補助記憶装置１５２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１５１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１５２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００３４】
メモリ装置１５３は、プログラムの起動指示があった場合に、補助記憶装置１５２からプログラムを読み出して格納する。ＣＰＵ１５４は、メモリ装置１５３に格納されたプログラムに従って当該装置に係る機能を実現する。インターフェース装置１５５は、ネットワークに接続するためのインターフェースとして用いられる。表示装置１５６はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。入力装置１５７はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。
【００３５】
（詳細処理内容）
以下、第１の実施の形態における質問応答装置１００が実行する処理の詳細な具体例について説明する。
【００３６】
＜学習時の処理＞
図６Ａは、第１の実施の形態における質問応答装置１００の学習時の処理手順を示すフローチャートである。図６Ａの手順に沿って、質問応答装置１００の学習時の処理手順の例を説明する。ここでは、一例として、学習の単位をエポックと呼ぶ。なお、フローチャートにおけるMはミニバッチの最大数を示し、mはミニバッチのカウント値を示し、Nはエポックの最大数を示し、nはエポックのカウント値を示す。フローチャートにおけるM、m、N、nはニューラルネットワークにおけるパラメータとは無関係である。
【００３７】
ステップ１００）質問応答装置１００は、エポック数N回分、ステップ２００の処理を繰り返す。本実施の形態ではN=15とする。図６Ａに示すように、エポックのカウント値n=1から開始し、１エポックに対するステップ２００の処理が終了する度にnをカウントアップし、n>Nになったら終了する。
【００３８】
ステップ２００）質問応答装置１００は、訓練データセットを最大M個のデータごとのミニバッチに分割し、各ミニバッチに対してステップ３００を繰り返し実施する。本実施の形態ではM=60とする。図６Ａに示すように、ミニバッチのカウント値m=1から開始し、１ミニバッチに対するステップ３００の処理が終了する度にmをカウントアップし、m>Mになったら次のエポックの処理に移る。なお、ミニバッチに分けることは一例であり、ミニバッチに分けないで処理を行うことも可能である。
【００３９】
ステップ３００）ミニバッチを構成する各データごとに、下記ステップ３１０〜ステップ３６０の処理を行う（全M回）。
【００４０】
以下、上述したステップ３００において実施される処理の内容を図６Ｂのフローチャートに示す手順に沿って説明する。なお、入力される文書における単語に文頭から文末にかけて１から始まる番号を振ったものを位置番号と呼ぶ。
【００４１】
ステップ３１０）単語系列ベクトル化部１０２は、文書の先頭からＴ番目までの単語系列(x1,x2,....,xT)に含まれる各単語について単語ベクトル記憶部１０１を検索し、当該単語系列を、t番目の単語xtに対応する単語ベクトルetのベクトル系列
【００４２】
【数１】
2019106965.tif 000003
に変換する。Tは任意の単語数とする。なお、入力された単語系列が長さTに満たない場合は、特殊単語「PAD」を末尾に挿入する。単語系列がTを超える場合は、超えた部分の単語系列は無視される。本実施の形態では、T=400、E=300とする。
【００４３】
図７は、単語ベクトル記憶部１０１に格納されているデータの例を示す。単語ベクトル記憶部１０１には、参考文献１などに記載の方法により作成された(単語, 単語ベクトル)の組が格納されており、単語ベクトルの次元数はE次元である。なお、参考文献名については明細書の説明の最後にまとめて記載した。単語ベクトル記憶部１０１に含まれない単語及び特殊単語「PAD」の場合は、単語ベクトルはE次元の零ベクトルとする。なお、単語ベクトル記憶部１０１に記憶されているような単語ベクトルを、ニューラルネットワークの学習可能なパラメータに含めてもよい。
【００４４】
ステップ３１１）単語系列ベクトル化部１０２は、文書のベクトル系列Xを参考文献２に示す双方向のLSTM（隠れ状態サイズd）により、サイズ2d×Tのベクトル系列Hに変換する。本実施の形態では、d=100とする。
【００４５】
ステップ３１２）単語系列ベクトル化部１０２は、質問文の先頭からJ番目までの質問の単語系列(q1,q2,....,qJ)に含まれる各単語について単語ベクトル記憶部１０１を検索し、当該単語系列を、j番目の単語qjに対応する単語ベクトルejのベクトル系列
【００４６】
【数２】
2019106965.tif 000004
に変換する。Jは任意の単語数とする。入力された単語系列が長さJに満たない場合は、特殊単語「PAD」を末尾に挿入する。単語系列がJを超える場合は、超えた部分の単語系列は無視される。本実施の形態では、J=30とする。
【００４７】
ステップ３１３）単語系列ベクトル化部１０２は、質問のベクトル系列Qを参考文献２に示す双方向のLSTM（隠れ状態サイズd）により、サイズ2d×Jのベクトル系列Uに変換する。
【００４８】
ステップ３２０）単語系列マッチング部１０３は、文書のベクトル系列Hと質問のベクトル系列Uに基づいて、マッチング行列Sを計算する。行列Sの各要素Stjは文書のt番目の単語xtのベクトルHtと、質問文のj番目の単語qjのベクトルUjを用いて、以下の通り求められる。マッチング行列Sは、文書と質問の意味的なマッチング結果を示す。
【００４９】
【数３】
2019106965.tif 000005
上記の式において、○は各ベクトルの要素ごとの積を示し、';'はベクトルの連結を表す。
【００５０】
【数４】
2019106965.tif 000006
は学習対象となるモデルパラメータである。なお、本明細書において使用されるtに関し、上付きのtは転置を表し、下付きのtは単語の位置番号を示す。
【００５１】
ステップ３２１）単語系列マッチング部１０３は、マッチング行列Sに基づいて、アテンション重み付き平均ベクトル「U〜t」を算出する。なお、明細書の記載の便宜上、明細書のテキストにおいては、「波線を上に付けたX」をX〜と表記する。「U〜t」は下記の式で算出される。
【００５２】
【数５】
2019106965.tif 000007
上記の式において、at=softmaxj(St) ∈ RJ、StはSのt行目のベクトルである。Softmaxは活性化関数の例である。
【００５３】
ステップ３２２）単語系列マッチング部１０３は、下記の式によりベクトル系列Gを計算する。 
【００５４】
【数６】
2019106965.tif 000008
ステップ３２３）単語系列マッチング部１０３は、ベクトル系列Gを１層の双方向LSTM（隠れ状態サイズd）によりマッチング行列M∈ R2d×Tに変換する。マッチング行列Mの各列は、各単語xtごとの、質問に応じた意味を表現したものとなる。
【００５５】
ステップ３３０）回答範囲出力部１０４は、マッチング行列Mを１層の双方向LSTM（隠れ状態サイズd）によりM1∈ R2d×Tに変換する。M1は回答の始点算出用のマッチング行列である。
【００５６】
ステップ３３１）回答範囲出力部１０４は、回答の始点に関する確率分布p1を出力する。
【００５７】
【数７】
2019106965.tif 000009
【００５８】
【数８】
2019106965.tif 000010
は学習可能パラメータである。
【００５９】
ステップ３３２）回答範囲出力部１０４は、M1を１層の双方向LSTM（隠れ状態サイズd）によりM2∈R2d×Tに変換する。M2は回答の終点算出用のマッチング行列である。始点を考慮して終点を算出するため、MではなくM1を元にM2を作成する。
【００６０】
ステップ３３３）回答範囲出力部１０４は、回答の終点に関する確率分布p2を出力する。
【００６１】
【数９】
2019106965.tif 000011
【００６２】
【数１０】
2019106965.tif 000012
は学習可能パラメータである。
【００６３】
ステップ３４０）回答適合度出力部１０５は、マッチング行列Mを１層の双方向LSTM（隠れ状態サイズd）によりMr∈R2d×Tに変換する。
【００６４】
ステップ３４１）回答適合度出力部１０５は、下記の式により重み付き平均ベクトルm〜を算出する。
【００６５】
【数１１】
2019106965.tif 000013
ここで、重みβは下記のように計算する。 
【００６６】
【数１２】
2019106965.tif 000014
【００６７】
【数１３】
2019106965.tif 000015
上記において、Wa∈Rc×2d、ba∈Rc、wc∈Rcは学習可能なパラメータである。cはアテンションベクトルのサイズである。本実施の形態ではc=75とする。
【００６８】
このような構成を取ることにより、全ての文書単語を均等に扱うのではなく、どの文書単語が質問に回答するために重要になるかの重み付けを明確に行えるので、検索精度を向上させることができる。
【００６９】
ステップ３４２）回答適合度出力部１０５は、下記の式により回答適合度を算出する。
【００７０】
【数１４】
2019106965.tif 000016
【００７１】
【数１５】
2019106965.tif 000017
は学習可能パラメータである。Sigmoidは活性化関数の例である。
【００７２】
ステップ３５０）パラメータ学習部１０７は、正解の回答適合度z∈{0,1}（１のとき質問に回答可能な文書、０のときそれ以外の文書）、正解の回答範囲(1<=y1, y2<=Tの整数)、出力の回答適合度pr、出力の回答範囲(p1, p2)、定数λを用いて、下記のように損失を計算する。
【００７３】
【数１６】
2019106965.tif 000018
本実施形態ではλ＝1とした。ここで、
【００７４】
【数１７】
2019106965.tif 000019
は確率分布p1における位置番号y1の値である。
【００７５】
【数１８】
2019106965.tif 000020
は確率分布p2における位置番号y2の値である。
【００７６】
ステップ３６０）パラメータ学習部１０７が、ステップ３５０で算出される各データに対する損失Lを該ミニバッチについて平均し、確率的勾配降下法により、全てのニューラルネットワークの学習可能なパラメータについて最適化を行うことでパラメータの更新を行う。なお、本発明は最適化の方法には依存しておらず、他の最適化法を利用しても良い。
【００７７】
上述したステップ３４０の処理を下記のステップ３４０´の処理に置き換えてもよい。
【００７８】
ステップ３４０´）回答適合度出力部１０５は、完全マッチング行列B∈RJ×Tを、j行目t列目の要素が、j番目の質問単語とt番目の文書単語が完全に一致した場合に1、そうでない場合に0として求める。次に、Bの各列について最大値をとり、b=maxj(B) ∈R1×Tを獲得する。b（長さTのベクトル）の各要素は、その要素に対応する文書単語が質問の中にあれば1、なければ0をとる。
【００７９】
マッチング行列Mとbを連結した[M;b] ∈R(J+1)×Tを１層の双方向LSTM（隠れ状態サイズd）によりMr∈R2d×Tに変換する。このステップ３４０´の処理を行う場合には、ステップ３４１〜３４２におけるMrとして、このように[M;b]から得られたMrが使用される。
【００８０】
ステップ３４０´のように完全一致を考慮することで、質問単語が文書に含まれていることが強調されるようになるので、質問の意図を考慮しやすくなる。よって、検索精度を向上させることができる。
【００８１】
＜テスト時（質問に対する回答出力実施時）における処理内容＞
図８Ａは、本実施の形態における質問応答装置１００のテスト時の処理内容を示すフローチャートである。本実施の形態において、テスト時には、質問応答装置１００は、入力として文書群（検索対象となるコーパス）及び質問単語系列を受け取り、文書から抽出した回答を出力する。なお、文書群とは、１以上の文書からなるものである。以下、図８Ａに示す手順に沿って、質問応答装置１００のテスト時の処理内容を説明する。
【００８２】
ステップ４００）質問応答装置１００は、検索対象文書コーパスに含まれる各文書についてステップ５００を繰り返す。すなわち、図８Ａに示すように、文書群の全文書に対するステップ５００の処理が終了するまで、１文書ずつステップ５００の処理を実行し、回答範囲と回答適合度を得る。
【００８３】
ステップ５００）質問応答装置１００は、図８Ｂに示すとおりに、各文書及び質問の単語系列について学習時フローチャートのステップ３１０〜３４０と同様の処理を行って、回答適合度pr、回答範囲(p1, p2)を出力する。ステップ３４０については、ステップ３４０に代えて、前述したステップ３４０´の処理を行ってもよい。
【００８４】
ステップ６００）質問応答部１０６は、回答適合度が最も高いk個の文書を選択する。kは１以上の整数である。質問応答部１０６は、選択した文書それぞれについて、回答範囲(p1, p2)において
【００８５】
【数１９】
2019106965.tif 000021
が最も高くなる位置番号(t1, t2)を動的計画法により求め、文書の単語系列の(t1, t2)の範囲に対応する文字列を抽出して回答候補とする。「数１９」に示す値は、回答候補の回答としての確からしさを示すので、この値を「確からしさ」と呼んでもよい。また、この値を「尤度」、「確信度」などと呼んでもよい。
【００８６】
【数２０】
2019106965.tif 000022
が最も高い(t1, t2)を求める際には、質問応答部１０６は、始点と終点の順序が入れ替わらない手法であれば、動的計画法以外の手法を用いてもよい。
【００８７】
質問応答部１０６は、回答候補スコアを算出し、最も回答候補スコアが大きい回答候補を決定する回答決定処理を実行し、当該回答候補を回答として出力とする。回答候補スコアとは、回答候補として出力された文字列が回答である確からしさ（あるいは尤度、あるいは確信度）である。
【００８８】
回答候補スコアの一例は、回答候補ごとに回答適合度を合計して得られた合計値である。この場合、最も合計値が大きい回答候補を決定する回答決定処理を実行し、当該回答候補を回答として出力とする。回答適合度を合計するとは、回答候補の抽出元となった各文書についての回答適合度を合計することである。例えば、図３の例で説明すると、回答候補の文字列が"Bendigo"である文書が、入力された文書群（コーパス）から３つ選択されたものと想定する。当該３つの文書を文書A、文書B、文書Cとし、文書A、文書B、文書Cについての回答適合度がそれぞれ0.5、0.6、0.2であった場合、これらの値を合計した値である1.3を"Bendigo"の回答候補スコアとして扱う。そして、上記のとおり、このような合計により得られた回答候補スコアが最も大きい回答候補が回答として出力される。
【００８９】
回答候補スコアとして、上述した合計値を用いることは一例である。回答候補スコアの算出方法の他の例として下記の（１）〜（３）に示す算出方法を用いてもよい。また、上述した合計値、下記の（１）〜（３）以外の方法で回答候補スコアを算出してもよい。
【００９０】
（１）重み付け合計
回答適合度に重み付けをした後に合計をとることで回答候補スコアを算出してもよい。重みとして、例えば「数１９」に示す確からしさの値を用いることができる。具体的には、例えば、前述した回答候補が"Bendigo"である例において、文書A、文書B、文書Cの重みがそれぞれWA、WB、WCであるとし、回答適合度がそれぞれ0.5、0.6、0.2であった場合、"Bendigo"の回答候補スコアは、WA×0.5＋WB×0.6＋WC×0.2として算出される。
【００９１】
（２）重み付け平均
回答適合度に重み付けをした後に平均をとることで回答候補スコアを算出してもよい。重みとして、例えば「数１９」に示す確からしさの値を用いることができる。具体的には、例えば、前述した回答候補が"Bendigo"である例において、文書A、文書B、文書Cの重みがそれぞれWA、WB、WCであるとし、回答適合度がそれぞれ0.5、0.6、0.2であった場合、"Bendigo"の回答候補スコアは、（WA×0.5＋WB×0.6＋WC×0.2）÷３として算出される。また、重みが１であってもよい。この場合、"Bendigo"の回答候補スコアは、（0.5＋0.6＋0.2）÷３として算出される。
【００９２】
（３）文書件数の合計
文書件数の合計を回答候補スコアとして使用してもよい。具体的には、例えば、前述した回答候補が"Bendigo"である例において、文書件数が文書A、文書B、文書Cの３件なので、この場合の回答候補スコアは３になる。
【００９３】
例えば、検索対象となるコーパスがブログやニュース等のWeb文書で構成される場合（類似した内容の文書が複数含まれる可能性が高い）は、k=10等を指定し、質問応答部１０６は、回答候補ごとに回答適合度を合計することで回答候補スコアを求め、最も回答候補スコアが大きい回答候補を回答として出力するという回答決定処理を行うことで、より適切な回答を出力することができる。これは、回答候補が含まれる文書の数が多い程、当該回答候補がより適切な回答である可能性が高いためである。
【００９４】
ただし、検索対象となるコーパスがWikipedia等である場合は、前記回答決定処理の効果が出にくいため、k=1等として回答適合度（回答候補スコア）が最も高いものについてのみ(t1, t2)を求め、文字列を抽出して回答として出力してもよい。
【００９５】
なお、質問応答部１０６は、最も回答候補スコアが大きい回答候補とともに、当該回答候補スコアを出力してもよい。また、質問応答部１０６は、最も回答候補スコアが大きい回答候補とともに、当該回答候補を含む文書毎の回答適合度を出力してもよい。
【００９６】
また、質問応答部１０６は、入力された文書群の各文書ごとに質問に対する回答範囲と回答適合度を求め、回答範囲と回答適合度に基づき文書群をランキングして出力してもよい。
【００９７】
具体的には、例えば、a個の文書からなる文書群と、１つの質問が質問応答装置１００に入力されたものとする。質問応答部１０６は、a個の文書のそれぞれに対し、質問に対する回答となり得る文字列の範囲である回答範囲を求める。この回答範囲は、ステップ６００で説明したように、数１９で示す確からしさの値が最も高くなる位置番号として求めることができる。
【００９８】
そして、質問応答部１０６は、a個の文書のそれぞれの回答範囲と、回答適合度出力部１０５から出力されたa個の文書のそれぞれの回答適合度とに基づき、例えば、回答適合度の高い順にa個の文書（文書群）をソートして、ソートした結果の文書群と、文書群におけるそれぞれの文書の回答範囲の文字列とを出力する。これにより、例えば、一般的なFAQ検索を質問応答装置１００により実現することができる。
【００９９】
以上、説明したとおり、本実施の形態では、上述した質問応答装置１００が提供される。当該質問応答装置１００は、文書及び質問の単語系列を単語ベクトル系列に符号化する単語系列ベクトル化部１０２と、文書及び質問の単語ベクトル系列を入力として、文書と同じ系列長を持つマッチングベクトル系列（マッチング行列）を出力する単語系列マッチング部１０３と、マッチング行列を入力として、回答範囲の始点番号及び終点番号を出力する回答範囲出力部１０４と、マッチング行列を入力として、文書が質問に回答可能である度合を示す回答適合度を出力する回答適合度出力部１０５と、回答範囲出力部１０４及び回答適合度出力部１０５の出力と、正解である回答範囲、回答適合度を元に、単語系列ベクトル化部１０２、単語系列マッチング部１０３、回答範囲出力部１０４、回答適合度出力部１０５のパラメータを学習するパラメータ学習部１０７と、回答範囲出力部１０４及び回答適合度出力部１０５の出力を元に、入力された質問に対する回答を文書群（コーパス）内から発見して出力する質問応答部１０６とを備える。
【０１００】
なお、出力において、回答範囲と回答適合度の両方を出力することは必須ではなく、どちらか一方を出力してもよい。
【０１０１】
（第２の実施の形態）
【０１０２】
以下、図面を参照して本発明の第２の実施の形態を説明する。多数の文書の中から質問に回答可能な文書を検索し、検索結果である文書から回答範囲を出力する際に、質問によっては、フレーズレベルである回答範囲のみならず、文書中の段落レベルや、文書そのものを回答とすることが適切となるが、そのような機能は従来手法では実現できていない。一例として、国の首都を問う質問ならフレーズレベル、保険の適用条件に関する質問なら段落レベル、料理の作り方に関する質問であれば、文書レベル（レシピのページそのもの）を回答とすることが考えられる。
【０１０３】
第２の実施の形態では、文書群の中から質問に回答可能な文書を検索し、検索結果である文書から適切な粒度で回答を出力する技術について説明する。
【０１０４】
第２の実施の形態では、質問に対するフレーズレベルでの回答の範囲を「回答範囲」、段落レベルでの回答の範囲を「回答段落」と表す。なお、フレーズとは、例えば、１単語以上、かつ、１段落未満となる単語の範囲（すなわち、段落を跨がない１以上の単語の範囲）のことである。また、第２の実施の形態での「段落」とは、回答範囲よりも大きく、かつ、文書未満となる単語の範囲である。また、第２の実施の形態では、一例として、回答範囲よりも大きく、かつ、文書未満となる単語の範囲として「段落」という１種類の範囲を用いているが、回答範囲よりも大きく、かつ、文書未満となる単語の範囲が、複数種類であってもよい。
【０１０５】
つまり、第２の実施の形態では回答となる文字列の範囲として、フレーズ＜段落＜文書という入れ子構造を想定しており、この場合、「回答範囲、回答段落、及び回答文書」の３種類の回答を行うことができる。また、例えば、フレーズ＜小段落＜中段落＜大段落＜文書のように、より細かな粒度を適用することも可能である。このような「回答範囲、回答段落、及び回答文書」、「回答範囲、回答小段落、回答中段落、回答大段落、及び回答文書」はいずれも、複数の粒度の回答を示す範囲の例である。第２の実施の形態の技術により、検索結果である文書から、複数の粒度の回答を示す範囲のうち、適切な粒度の範囲を出力することができる。
【０１０６】
第２の実施の形態における質問応答装置は、第１の実施の形態で説明した質問応答装置とは独立の装置であってもよいし、第１の実施の形態で説明した質問応答装置の機能を全て備え、それに加えて以下で説明する適切な粒度で回答を出力する機能を備えることとしてもよい。
【０１０７】
（第２の実施の形態の概要）
第２の実施の形態では、質問応答装置が、入力として与えられた文書の単語系列から、質問に対する回答部分の範囲あるいは段落あるいは文書のいずれかを出力する。特に、質問応答装置は、文書の中から回答部分の範囲を抽出する読解タスクと、文書の中から回答となる段落を選択する段落選択タスクと、文書が質問に回答可能な情報か否かを判定する検索タスクを同時に学習することで、それぞれのタスクの精度を向上可能とする。
【０１０８】
より具体的には、質問応答装置は、文書検索、文書内段落選択、回答範囲抽出（読解）を行うニューラルネットワークにおいて層の一部を共有することで３タスクを同時に学習して各タスクの精度を向上することを可能とし、かつ、適切な粒度で回答可能としている。
【０１０９】
（装置構成、動作概要）
図９は、本発明の第２の実施の形態における質問応答装置１１０の構成を示す。図９に示す構成は、質問応答の処理を行う際の構成である。図９に示すように、質問応答装置１１０は、単語ベクトル記憶部１１１と、単語系列ベクトル化部１１２と、単語系列マッチング部１１３と、回答範囲出力部１１４と、回答段落出力部１１８と、回答適合度出力部１１５と、質問応答部１１６と、を有する。
【０１１０】
図１０は、学習時の質問応答装置１１０の構成を示す。学習時の質問応答装置１１０は、図９の質問応答装置１１０の構成に対し、質問応答部１１６が備えられず、パラメータ学習部１１７が備えられる点が異なる。その他の構成は、質問応答の処理を行う際の構成と学習時の構成とで同じである。
【０１１１】
図９の構成に、パラメータ学習部１１７を加えた構成を質問応答装置１１０の構成としてもよい。この場合、図９は、質問応答の処理を行う際に使用される構成を示し、図１０は、学習時に使用される構成を示す。以下、「質問応答装置１１０」は、図９の構成に、パラメータ学習部１１７を加えた構成であるものとして説明する。なお、質問応答部１１６は、質問応答装置１１０の外部に存在しても構わない。各部の動作詳細については後述する。
【０１１２】
質問応答装置１１０の各機能部（具体的にはニューラルネットワークの各層）は、複数の(質問、文書、回答範囲、回答段落、回答文書適合度)から構成される訓練データセットを用いて予め学習がなされる。「学習」とは、ニューラルネットワークにおけるパラメータ（重み等）を、入力に対する目的の情報が出力されるように、適切に定めることである。
【０１１３】
そして、入力される質問と文書集合（ここではテストデータと呼ぶ）に対して、文書集合に含まれる各文書と質問のペアを、学習がなされた質問応答装置１１０に入力して、回答適合度の高い文書から抽出された回答を出力する。正解となる回答範囲、回答段落、回答文書適合度についてのデータは学習時にのみ与えられ、テスト（入力である質問に対し、回答を出力すること）の際には与えられない。回答範囲とは、文書中の質問に対する回答にあたる部分（フレーズ）のことである。なお、各データはすべての正解となる回答範囲、回答段落、回答文書適合度を持たず、一部の正解のみを持つ場合がある。
【０１１４】
質問応答装置１１０が、入力である質問に対し、回答を出力する場合のイメージは第１の実施の形態と同様であり、図３に示したとおりである。
【０１１５】
図１０に示す学習時の質問応答装置１００に対する入力である訓練データセットにおいては、質問に対する回答を含む文書を正解文書とする。各質問に対する正解文書は複数あってもよい。各正解文書における回答範囲は1か所以上とする。回答適合度は、例えば正解文書であれば１、そうでない場合は０とする。
【０１１６】
質問応答装置１１０において、文書と質問から回答範囲、回答段落、回答適合度を算出する機能部は、ニューラルネットワークにより実現される。ニューラルネットワークは数学モデルであるが、質問応答装置１１０における当該機能部は、当該ニューラルネットワークに相当する数学モデルの演算を行うソフトウェア（及び、CPU、GPUなどのプロセッサ）により実現される。
【０１１７】
図１１は、質問応答装置１００が用いるニューラルネットワークの構成例を示す。当該構成は、非特許文献１に開示された構成に基づくものであるが、本実施の形態では、ニューラルネットワークにおける層の一部を情報検索と読解とで共有しており、その点は非特許文献１に開示はない。
【０１１８】
図１１に示すように、質問応答装置１１０を構成するニューラルネットワークは、Word Embedding Layer２１０、Contextual Embedding layer３１０、Attention Flow Layer４１０、Modeling Layer５１０、Reading Comprehension Layer６１０、Information Retrieval Layer７１０を含む。
【０１１９】
Word Embedding Layer２１０とContextual Embedding layer３１０は、単語系列ベクトル化部１１２に相当する。Attention Flow Layer４１０、Modeling Layer５１０は、単語系列マッチング部１１３に相当する。Reading Comprehension Layer６１０は、読解に関する層を含み、回答範囲出力部１１４、回答段落出力部１１８に相当する。Information Retrieval Layer７１０は、情報検索に関する層を含み、回答適合度出力部１０５に相当する。
【０１２０】
図１１に示すように、Word Embedding Layer２１０、Contextual Embedding layer３１０、Attention Flow Layer４１０、及びModeling Layer５１０が情報検索と読解とで共有される。
【０１２１】
質問応答装置１１０の処理の概要は以下のとおりである。以下の説明におけるH、U、Mの詳細については後の詳細説明で説明される。
【０１２２】
まず、単語系列ベクトル化部１１２は、入力された文書と質問文を、それぞれベクトル系列Hと、ベクトル系列Uに変換する。次に、単語系列マッチング部１１３は、文書のベクトル系列Hと質問のベクトル系列Uをもとに、マッチング行列Mを計算する。回答範囲出力部１１４はマッチング行列Mに基づき回答範囲、回答段落を算出する。回答適合度出力部１０５は、マッチング行列Mに基づき回答適合度を出力する。質問応答部１１６は、後述するように、回答となる文字列の抽出、出力等を行う。
【０１２３】
学習の際は、パラメータ学習部１１７が、訓練データセット（複数の(質問、文書、回答範囲、回答段落、回答文書適合度)から構成される）に基づき処理を行い、入力された（正解である）回答範囲、回答段落及び回答適合度と、出力された回答範囲、回答段落、回答適合度を用いて、損失計算を行い、ニューラルネットワークのパラメータの更新を行う。
【０１２４】
訓練データセットとして、質問に対する正解である回答範囲を与えることに代えて、質問に対する正解である回答文字列を与え、正解である回答文字列が文書中に完全一致で含まれる範囲、あるいは、部分一致で最も重なりの多い範囲を正解の回答範囲の代わりに用いて学習を行うこととしてもよい。ただし、正解である回答範囲を与えることにより、より精度の高い回答を行うことができるため、正解である回答範囲を与えることが望ましい。
【０１２５】
（ハードウェア構成例）
上述した質問応答装置１１０は例えば、コンピュータに、第２の実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、質問応答装置１１０は、コンピュータに内蔵されるＣＰＵやメモリ等のハードウェア資源を用いて、質問応答装置１１０で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。第２の実施の形態における上記コンピュータのハードウェア構成例及び動作例は第１の実施の形態と同様であり、当該ハードウェア構成例は図５に示したとおりである。
【０１２６】
（詳細処理内容）
以下、第２の実施の形態における質問応答装置１１０が実行する処理の詳細な具体例について説明する。
【０１２７】
＜学習時の処理＞
図１２Ａは、本実施の形態における質問応答装置１１０の学習時の処理手順を示すフローチャートである。図１２Ａの手順に沿って、質問応答装置１１０の学習時の処理手順の例を説明する。ここでは、一例として、学習の単位をエポックと呼ぶ。なお、フローチャートにおけるMはミニバッチの最大数を示し、mはミニバッチのカウント値を示し、Nはエポックの最大数を示し、nはエポックのカウント値を示す。M、m、N、nはニューラルネットワークにおけるパラメータとは無関係である。
【０１２８】
ステップ１１００）質問応答装置１１０は、エポック数N回分、ステップ１２００の処理を繰り返す。本実施の形態ではN=15とする。図１２Ａに示すように、エポックのカウント値n=1から開始し、１エポックに対するステップ１２００の処理が終了する度にnをカウントアップし、n>Nになったら終了する。
【０１２９】
ステップ１２００）質問応答装置１１０は、訓練データセットを最大M個のデータごとのミニバッチに分割し、各ミニバッチに対してステップ１３００を繰り返し実施する。本実施の形態ではM=60とする。図１２Ａに示すように、ミニバッチのカウント値m=1から開始し、１ミニバッチに対するステップ１３００の処理が終了する度にmをカウントアップし、m>Mになったら次のエポックの処理に移る。なお、ミニバッチに分けることは一例であり、ミニバッチに分けないで処理を行うことも可能である。
【０１３０】
ステップ１３００）ミニバッチを構成する各データごとに、下記ステップ１３１０〜ステップ１３７０の処理を行う（全M回）。
【０１３１】
以下、上述したステップ１３００において実施される処理の内容を図１２Ｂのフローチャートに示す手順に沿って説明する。なお、第１の実施の形態と同様、入力される文書における単語に文頭から文末にかえて１から始まる番号を振ったものを位置番号と呼ぶ。
【０１３２】
ステップ１３１０）単語系列ベクトル化部１１２は、文書の先頭からＴ番目までの単語系列(x1,x2,....,xT)に含まれる各単語について単語ベクトル記憶部１１１を検索し、当該単語系列を、t番目の単語xtに対応する単語ベクトルetのベクトル系列
【０１３３】
【数２１】
2019106965.tif 000023
に変換する。Tは任意の単語数とする。入力された単語系列が長さTに満たない場合は、特殊単語「PAD」を末尾に挿入する。単語系列がTを超える場合は、超えた部分の単語系列は無視される。本実施の形態では、T=400、E=300とする。
【０１３４】
図１３は、単語ベクトル記憶部１１１に格納されているデータの例を示す。第１の実施の形態と同様、単語ベクトル記憶部１１１には、参考文献１などに記載の方法により作成された(単語, 単語ベクトル)の組が格納されており、単語ベクトルの次元数はE次元である。なお、参考文献名については明細書の説明の最後にまとめて記載した。単語ベクトル記憶部１０１に含まれない単語及び特殊単語「PAD」の場合は、単語ベクトルはE次元の零ベクトルとする。なお、単語ベクトル記憶部１０１に記憶されているような単語ベクトルを、ニューラルネットワークの学習可能なパラメータに含めてもよい。
【０１３５】
ステップ１３１１）単語系列ベクトル化部１１２は、文書のベクトル系列Xを参考文献２に示す双方向のLSTM（隠れ状態サイズd）により、サイズ2d×Tのベクトル系列Hに変換する。本実施の形態では、d=100とする。
【０１３６】
ステップ１３１２）単語系列ベクトル化部１１２は、質問文の先頭からJ番目までの質問の単語系列(q1,q2,....,qJ)に含まれる各単語について単語ベクトル記憶部１１１を検索し、当該単語系列を、j番目の単語qjに対応する単語ベクトルejのベクトル系列
【０１３７】
【数２２】
2019106965.tif 000024
に変換する。Jは任意の単語数とする。入力された単語系列が長さJに満たない場合は、特殊単語「PAD」を末尾に挿入する。単語系列がJを超える場合は、超えた部分の単語系列は無視される。本実施の形態では、J=30とする。
【０１３８】
ステップ１３１３）単語系列ベクトル化部１１２は、質問のベクトル系列Qを参考文献２に示す双方向のLSTM（隠れ状態サイズd）により、サイズ2d×Jのベクトル系列Uに変換する。
【０１３９】
ステップ１３２０）単語系列マッチング部１１３は、文書のベクトル系列Hと質問のベクトル系列Uに基づいて、マッチング行列Sを計算する。行列Sの各要素Stjは文書のi番目の単語xtのベクトルHtと、質問文のj番目の単語qjのベクトルUjを用いて、以下の通り求められる。マッチング行列Sは、文書と質問の意味的なマッチング結果を示す。
【０１４０】
【数２３】
2019106965.tif 000025
上記の式において、○は各ベクトルの要素ごとの積を示し、';'はベクトルの連結を表す。
【０１４１】
【数２４】
2019106965.tif 000026
は学習対象となるモデルパラメータである。なお、本明細書において使用されるtに関し、上付きのtは転置を表し、下付きのtは単語の位置番号を示す。
【０１４２】
ステップ１３２１）単語系列マッチング部１１３は、マッチング行列Sに基づいて、アテンション重み付き平均ベクトル「U〜t」を算出する。なお、第１の実施の形態と同様、明細書の記載の便宜上、明細書のテキストにおいては、「波線を上に付けたX」をX〜と表記する。「U〜t」は下記の式で算出される。
【０１４３】
【数２５】
2019106965.tif 000027
上記の式において、at=softmaxj(St)∈RJ、StはSのt行目のベクトルである。Softmaxは活性化関数の例である。
【０１４４】
ステップ１３２２）単語系列マッチング部１１３は、下記の式によりベクトル系列Gを計算する。 
【０１４５】
【数２６】
2019106965.tif 000028
ステップ１３２３）単語系列マッチング部１１３は、ベクトル系列Gを１層の双方向LSTM（隠れ状態サイズd）によりマッチング行列M∈ R2d×Tに変換する。マッチング行列Mの各列は、各単語xtごとの、質問に応じた意味を表現したものとなる。
【０１４６】
ステップ１３３０）回答範囲出力部１１４は、マッチング行列Mを１層の双方向LSTM（隠れ状態サイズd）によりM1∈ R2d×Tに変換する。M1は回答の始点算出用のマッチング行列である。
【０１４７】
ステップ１３３１）回答範囲出力部１１４は、回答の始点に関する確率分布p1を出力する。
【０１４８】
【数２７】
2019106965.tif 000029
【０１４９】
【数２８】
2019106965.tif 000030
は学習可能パラメータである。
【０１５０】
ステップ１３３２）回答範囲出力部１１４は、M1を１層の双方向LSTM（隠れ状態サイズd）によりM2∈R2d×Tに変換する。M2は回答の終点算出用のマッチング行列である。始点を考慮して終点を算出するため、MではなくM1を元にM2を作成する。
【０１５１】
ステップ１３３３）回答範囲出力部１１４は、回答の終点に関する確率分布p2を出力する。
【０１５２】
【数２９】
2019106965.tif 000031
【０１５３】
【数３０】
2019106965.tif 000032
は学習可能パラメータである。
【０１５４】
ステップ１３４０）回答適合度出力部１１５は、マッチング行列Mを１層の双方向LSTM（隠れ状態サイズd）によりMr∈R2d×Tに変換する。
【０１５５】
ステップ１３４１）回答適合度出力部１１５は、下記の式により重み付き平均ベクトルm〜を算出する。
【０１５６】
【数３１】
2019106965.tif 000033
ここで、重みβは下記のように計算する。 
【０１５７】
【数３２】
2019106965.tif 000034
【０１５８】
【数３３】
2019106965.tif 000035
上記において、Wa∈Rc×2d、ba∈Rc、wc∈Rcは学習可能なパラメータである。cはアテンションベクトルのサイズである。本実施の形態ではc=75とする。
【０１５９】
ステップ１３４２）回答適合度出力部１１５は、下記の式により回答適合度を算出する。
【０１６０】
【数３４】
2019106965.tif 000036
【０１６１】
【数３５】
2019106965.tif 000037
は学習可能パラメータである。Sigmoidは活性化関数の例である。
【０１６２】
ステップ１３５０）回答段落出力部１１８は、マッチングベクトルMを１層の双方向LSTM（隠れ状態サイズd）によりMS∈R2d×Tに変換する。
【０１６３】
ステップ１３５１）回答段落出力部１１８は、各段落lについて下記を処理する。各段落ｌには、文書の先頭の段落から順に、例えば１，２，３…のように位置番号が付与されている。段落の開始位置を示す位置番号をl1、終了位置を示す位置番号をl2とする。例えば、l1は１、l2は文書中の段落数、となる。なお、各段落lは入力される文書において予め定められている。例えば、文書がWeb文書である場合において、各段落は、所定のタグで囲まれた範囲であると定めることができる。
【０１６４】
ステップ１３５２）回答段落出力部１１８は、重み付き平均ベクトルml〜を算出する。
【０１６５】
【数３６】
2019106965.tif 000038
ここで、重みγは下記のように計算する。 
【０１６６】
【数３７】
2019106965.tif 000039
【０１６７】
【数３８】
2019106965.tif 000040
Wb∈ Rc×2d、bb∈ Rc、wd∈ Rcは学習可能なパラメータである。cはアテンションベクトルのサイズである。本実施の形態ではc=75とする。
【０１６８】
ステップ１３５３）回答段落出力部１１８は、各段落についてスコアを算出する。
【０１６９】
【数３９】
2019106965.tif 000041
上記の式において、wS∈R2dは学習可能パラメータである。
【０１７０】
ステップ１３６０）パラメータ学習部１１７は、回答文書適合度存在変数（回答文書適合度が正解データとして与えられた場合σIR=1、否の場合0）、回答範囲存在変数（回答範囲が正解データとして与えられた場合σRC=1、否の場合0）、回答段落存在変数（回答段落がデータとして与えられた場合σAS=1、否の場合0）、正解の回答文書適合度yr∈{0,1}（１のとき質問に回答可能な文書、０のときそれ以外の文書）、正解の回答段落(1<=ysの整数)、正解の回答範囲(1<=y1, y2<=Tの整数)、出力の回答文書適合度pr、出力の回答範囲(p1, p2)、出力の回答段落ps、定数λ、定数ωを用いて、下記のように損失を計算する。ASはAnswer Selectionの意味である。
【０１７１】
【数４０】
2019106965.tif 000042
ここで、
【０１７２】
【数４１】
2019106965.tif 000043
とする。本実施の形態ではλ＝1、ω=1とした。ここで、
【０１７３】
【数４２】
2019106965.tif 000044
は確率分布p1における位置番号y1の値である。
【０１７４】
【数４３】
2019106965.tif 000045
は確率分布p2における位置番号y2の値である。
【０１７５】
【数４４】
2019106965.tif 000046
は確率分布psにおける段落位置ysの値である。訓練データにおける正解の回答文書適合度、正解の回答段落、正解の回答範囲については一部与えられない場合がある。すなわち、訓練データは構成要素(質問，文書，回答範囲，回答段落、回答文書適合度)のうち、最低限(質問，文書，回答文書適合度)の情報があればよい。また、回答範囲＜回答段落＜回答文書という入れ子構造になっているので、回答段落から文書適合度を、回答範囲から、回答段落、回答文書適合度を、自動的に定義できる。なお、段落位置とは、正解の回答段落を識別する位置番号のことである。
【０１７６】
ステップ１３７０）パラメータ学習部１１７が、ステップ１３６０で算出される各データに対する損失Lを該ミニバッチについて平均し、確率的勾配降下法により、全てのニューラルネットワークの学習可能なパラメータについて最適化を行うことでパラメータの更新を行う。なお、本発明は最適化の方法には依存しておらず、他の最適化法を利用しても良い。
【０１７７】
上述したステップ１３４０の処理を下記のステップ１３４０´の処理に置き換えてもよい。
【０１７８】
ステップ１３４０´）回答適合度出力部１１５は、完全マッチング行列B∈RJ×Tを、j行目t列目の要素が、j番目の質問単語とt番目の文書単語が完全に一致した場合に1、そうでない場合に0として求める。次に、Bの各列について最大値をとり、b=maxj(B) ∈R1×Tを獲得する。b（長さTのベクトル）の各要素は、その要素に対応する文書単語が質問の中にあれば1、なければ0をとる。
【０１７９】
マッチング行列Mとbを連結した[M;b] ∈R(J+1)×Tを１層の双方向LSTM（隠れ状態サイズd）によりMr∈R2d×Tに変換する。このステップ１３４０´の処理を行う場合には、ステップ１３４１〜１３４２におけるMrとして、このように[M;b]から得られたMrが使用される。
【０１８０】
ステップ１３４０´のように完全一致を考慮することで、質問単語が文書に含まれていることが強調されるようになるので、質問の意図を考慮しやすくなる。よって、検索精度を向上させることができる。
【０１８１】
＜テスト時（質問に対する回答出力実施時）における処理内容＞
図１４Ａは、第２の実施の形態における質問応答装置１１０のテスト時の処理内容を示すフローチャートである。第２の実施の形態において、テスト時には、質問応答装置１１０は、入力として文書群（検索対象となるコーパス）及び質問単語系列を受け取り、文書から抽出した回答を出力する。なお、文書群とは、１以上の文書からなるものである。以下、図１４Ａに示す手順に沿って、質問応答装置１１０のテスト時の処理内容を説明する。
【０１８２】
ステップ１４００）質問応答装置１１０は、検索対象文書コーパスに含まれる各文書についてステップ１５００を繰り返す。すなわち、図１４Ａに示すように、文書群の全文書に対するステップ１５００の処理が終了するまで、１文書ずつステップ１５００の処理を実行し、回答範囲と回答適合度と回答段落を得る。
【０１８３】
ステップ１５００）該文書および質問の単語系列について学習時フローチャートのステップ１３１０〜１３５３（図１４Ｂ）と同様の処理を行って、回答適合度pr、回答範囲(p1, p2)、回答段落psを出力する。ステップ１３４０については、ステップ１３４０に代えて、前述したステップ１３４０´の処理を行ってもよい。
【０１８４】
ステップ１６００）質問応答部１１６は、回答適合度が最も高い１つの文書iを選択する。選択した文書について、
【０１８５】
【数４５】
2019106965.tif 000047
が最も高い(t1, t2)を動的計画法により求める。
【０１８６】
ステップ１６０１）質問応答部１１６は、
【０１８７】
【数４６】
2019106965.tif 000048
が閾値θr以上の場合、文書の単語系列の (t1, t2)の範囲に対応する文字列を文書から抽出して回答文字列とする。
【０１８８】
ステップ１６０２）質問応答部１１６は、
【０１８９】
【数４７】
2019106965.tif 000049
が閾値θr未満の場合、
【０１９０】
【数４８】
2019106965.tif 000050
が最大となる段落lを求める。
【０１９１】
ステップ１６０３）質問応答部１１６は、
【０１９２】
【数４９】
2019106965.tif 000051
が閾値θs以上の場合、段落lに対応する文字列を文書から抽出して回答文字列とする。
【０１９３】
ステップ１６０４）質問応答部１１６は、
【０１９４】
【数５０】
2019106965.tif 000052
が閾値θs未満の場合、文書iの文字列を回答文字列とする。
【０１９５】
ステップ１６０５）質問応答部１１６は、ステップ１６０１〜１６０４により定めた回答文字列を返却する。
【０１９６】
第１の実施の形態と同様にして、質問応答部１１６は、入力された文書群の各文書ごとに、上述した方法により文字列（回答候補文字列と呼ぶ）を抽出した後、回答候補文字列ごとに回答候補スコアを算出し、最も回答候補スコアが大きい回答候補文字列を最終的な回答文字列として出力することとしてもよい。第１の実施の形態と同様に、回答候補スコアは、例えば、回答候補文字列が同一の文書の回答適合度を足し合わせた値である。また、第１の実施の形態と同様に、回答候補スコアとして、重み付け合計、重み付け平均、文書件数の合計などを用いてもよい。
【０１９７】
以上、説明したとおり、第２の実施の形態では、上述した質問応答装置１１０が提供される。当該質問応答装置１１０は、文書および質問の単語系列を単語ベクトル系列に符号化する単語系列ベクトル化部１１２と、文書及び質問の単語ベクトル系列を入力として、文書と同じ系列長を持つマッチングベクトル系列（マッチング行列）を出力する単語系列マッチング部１１３と、マッチング行列を入力として、回答範囲の始点番号及び終点番号を出力する回答範囲出力部１１４と、マッチング行列を入力として、文書が質問に回答可能である度合を回答文書適合度を出力する回答適合度出力部１１５と、マッチング行列を入力として、質問の回答として適切な文書内の段落の番号を出力する回答段落出力部１０８と、回答範囲出力部１１４及び回答段落出力部１１８および回答適合度出力部１１５の出力と、正解である回答範囲、回答段落、回答文書適合度の一部又は全てを元に、単語系列ベクトル化部１１２、単語系列マッチング部１１３、回答範囲出力部１１４、回答段落出力部１１８、回答適合度出力部１１５のパラメータを学習するパラメータ学習部１０７と、回答範囲出力部１１４及び回答段落出力部１１８及び回答適合度出力部１１５の出力を元に、入力された質問に対する回答をコーパス内から発見して出力する質問応答部１１６とを備える。
【０１９８】
第２の実施の形態によれば、文書群の中から質問に回答可能な文書を検索し、検索結果である文書から最も適切な粒度で回答を出力することができる。すなわち、多数の文書の中から、質問に回答可能な文書を絞り込んだ上で、文書から従来よりも高精度に、例えば文書、段落、回答範囲のいずれかのレベルで回答できるようになる効果が得られる。
【０１９９】
上記の「適切な粒度」における「適切さ」は、例えば、「数４５」、「数４８」などの確からしさ（尤度、確信度などと呼んでもよい）や、回答候補スコアに基づく。
【０２００】
また、訓練データ作成のコストは、文書レベル、段落レベル、フレーズレベルの順に大きくなっていくところ、第２の実施の形態によれば、訓練データとして最低限文書レベルの正解情報さえ付与されていれば学習が可能であるため、不必要なアノテーションコストを抑えたり、様々な回答範囲レベルの訓練データを併用することができる。
【０２０１】
（実験結果）
第１の実施の形態に係る質問応答装置１００を使用して実験を行った。実験に使用したデータセットとして、SQuAD(参考文献３)のdevelopment setを使用した。
【０２０２】
質問応答装置１００における情報検索タスクに関する評価指標として、binary relevance judgmentsを使用した。Success@kは、ある質問に対し、関連する文書が、上位k検索文書に現れた回数のパーセンテージである(参考文献４)。MRR@kは、最初の関連文書のmean reciprocal rank（平均逆順位）である(参考文献５)。
【０２０３】
読解タスクとend-to-endの質問応答タスクに関する評価指標として、SQuADで使用されている評価指標と同じもの（EM(Exact match)）を使用した。
【０２０４】
実験において、LSTMの隠れ状態サイズdを100とし、情報検索のアテンションスコア計算に用いる隠れ状態サイズcを100とした。また、λは1とした。エポック数は１５とした。
【０２０５】
図１５は、SQuAD development setに対する情報検索結果であり、５回の試行の平均を示す。図１５は、従来手法（情報検索のみ）であるBM25(参考文献６)と、IR(STL)と、本発明に係るIR(MTL)の結果を示す。STLは、MTL(multi-task learning)との比較のためのsingle-task learningである。
【０２０６】
図１５に示すように、情報検索に関して、本発明に係るIR（MTL）は、IR（STL）とBM25のいずれよりも良い性能が得られている。
【０２０７】
図１６は、SQuAD development setに対する読解結果であり、５回の試行の平均を示す。図１６は、従来手法（読解技術のみ）であるBiDAF (非特許文献１)、RC(STL)、本発明である( RC(MTL))の結果を示す。
【０２０８】
図１６に示すように、読解に関しても、本発明に係るRC（MTL）は、RC（STL）とBiDAFのいずれよりも良い性能が得られている。
【０２０９】
なお、図１５、１６に示すように、本発明に係るMTLのアプローチは、読解の正確性を劣化させることなく、正確な情報検索を可能としている。
【０２１０】
図１７は、SQuAD development setに対する質問応答結果である。Single modelは５回の試行の平均を示し、ensemble modelは、５つのSingle modelsからなる。図１７は、従来手法（情報検索技術と読解技術の連結）であるBM25+RC(STL)、本発明に係る手法(E2E-QA)の結果を示す。
【０２１１】
図１７に示すように、本発明に係る手法は、情報検索技術と読解技術の連結に係る手法よりも大幅に性能が向上している。
【０２１２】
（実施の形態のまとめ）
以上、説明したとおり、第１の実施の形態により、文書及び質問を入力として、当該文書から、前記質問に対する回答となり得る文字列の範囲である回答範囲、又は、当該回答範囲における回答適合度を出力する処理をニューラルネットワークにより実行する処理手段を備え、前記ニューラルネットワークは、前記回答範囲を算出する第１ニューラルネットワークと、前記回答適合度を算出する第２ニューラルネットワークを含み、前記第１ニューラルネットワークと、前記第２ニューラルネットワークとの間で、両ニューラルネットワークを構成する層の一部が共有されることを特徴とする質問応答装置が提供される。
【０２１３】
上記の第１ニューラルネットワークは、例えば、Word Embedding Layer２００、Contextual Embedding layer３００、Attention Flow Layer４００、Modeling Layer５００、Reading Comprehension Layer６００を有する。第２ニューラルネットワークは、例えば、Word Embedding Layer２００、Contextual Embedding layer３００、Attention Flow Layer４００、Modeling Layer５００、Information Retrieval Layer７００を有する。
【０２１４】
前記処理手段は、入力された文書群の各文書ごとに、前記回答範囲と前記回答適合度を求め、当該回答範囲から回答候補である文字列を求め、前記質問応答装置は、前記回答候補として抽出された文字列が同一である各文書についての回答適合度を合計し、最も合計値の大きい回答候補を回答として出力する回答決定手段を更に備えることとしてもよい。
【０２１５】
前記処理手段は、前記両ニューラルネットワークを構成する層の共有部分により、前記文書及び前記質問に基づいてマッチング行列を生成し、前記マッチング行列に基づいて、前記第１ニューラルネットワークにより前記回答範囲を算出し、前記第２ニューラルネットワークにより前記回答適合度を算出することとしてもよい。
【０２１６】
また、第１の実施の形態により、文書及び質問を入力として、当該文書から、前記質問に対する回答となり得る文字列の範囲である回答範囲、又は、当該回答範囲における回答適合度を出力する処理をニューラルネットワークにより実行する処理手段と、パラメータ学習手段と、を備え、前記ニューラルネットワークは、前記回答範囲を算出する第１ニューラルネットワークと、前記回答適合度を算出する第２ニューラルネットワークを含み、前記第１ニューラルネットワークと、前記第２ニューラルネットワークとの間で、両ニューラルネットワークを構成する層の一部が共有され、前記パラメータ学習手段は、前記ニューラルネットワークからの出力と、正解である訓練データとから、前記ニューラルネットワークのパラメータを学習することを特徴とする質問応答装置が提供される。
【０２１７】
また、第１の実施の形態により、コンピュータを、前記質問応答装置における各手段として機能させるためのプログラムが提供される。
【０２１８】
また、第１の実施の形態により、文書及び質問の対を入力として、当該文書における、前記質問に対する回答となり得る文字列の範囲である回答範囲、又は、前記質問に対する前記文書の回答適合度を出力する処理を実行する処理手段を備え、前記処理手段は、前記回答範囲を算出する第１ニューラルネットワークと、前記回答適合度を算出する第２ニューラルネットワークを含み、前記第１ニューラルネットワークと、前記第２ニューラルネットワークとの間で、両ニューラルネットワークを構成する層の一部が共有されることを特徴とする情報処理装置が提供される。
【０２１９】
上記の第１ニューラルネットワークは、例えば、Word Embedding Layer２００、Contextual Embedding layer３００、Attention Flow Layer４００、Modeling Layer５００、Reading Comprehension Layer６００を有する。第２ニューラルネットワークは、例えば、Word Embedding Layer２００、Contextual Embedding layer３００、Attention Flow Layer４００、Modeling Layer５００、Information Retrieval Layer７００を有する。
【０２２０】
前記処理手段は、入力された文書群の各文書ごとに、当該文書の質問に対する前記回答範囲と前記回答適合度とを求めることとしてもよい。
【０２２１】
前記処理手段は、入力された文書群の各文書ごとに、前記回答範囲と前記回答適合度を求め、当該回答範囲から回答候補である文字列を求め、前記情報処理装置は、前記回答候補として抽出された文字列が同一である各文書についての回答適合度に基づいて、回答候補スコアを算出する回答スコア算出手段を更に備えることとしてもよい。
【０２２２】
前記回答スコア算出手段は、前記回答候補スコアを、前記回答候補として抽出された文字列が同一である各文書についての回答適合度の合計、当該回答適合度の重み付け平均、又は、当該回答適合度の重み付け合計により算出することとしてもよい。
【０２２３】
前記処理手段は、前記両ニューラルネットワークを構成する層の共有部分により、前記文書及び前記質問に基づいてマッチング行列を生成し、前記マッチング行列に基づいて、前記第１ニューラルネットワークにより前記回答範囲を算出し、前記第２ニューラルネットワークにより前記回答適合度を算出することとしてもよい。
【０２２４】
また、第１の実施の形態により、文書及び質問の対を入力として、当該文書における、前記質問に対する回答となり得る文字列の範囲である回答範囲、又は、前記質問に対する前記文書の回答適合度を出力する処理を実行する処理手段と、パラメータ学習手段と、を備え、前記処理手段は、前記回答範囲を算出する第１ニューラルネットワークと、前記回答適合度を算出する第２ニューラルネットワークを含み、前記第１ニューラルネットワークと、前記第２ニューラルネットワークとの間で、両ニューラルネットワークを構成する層の一部が共有され、前記パラメータ学習手段は、前記ニューラルネットワークからの出力と、正解である訓練データとから、前記ニューラルネットワークのパラメータを学習し、前記正解である訓練データは、質問、文書、回答範囲、及び回答適合度の組からなることを特徴とする情報処理装置が提供される。
【０２２５】
また、第１の実施の形態により、コンピュータを、前記情報処理装置における各手段として機能させるためのプログラムが提供される。
【０２２６】
また、第２の実施の形態により、文書及び質問を入力として、当該文書から、前記質問に対する回答となり得る文字列の範囲である回答範囲、回答段落、又は、回答適合度を出力する処理をニューラルネットワークにより実行する処理手段を備え、前記ニューラルネットワークは、前記回答範囲を算出する第１ニューラルネットワークと、前記回答段落を算出する第２ニューラルネットワークと、前記回答適合度を算出する第３ニューラルネットワークを含み、前記第１ニューラルネットワークと、前記第２ニューラルネットワークと、前記第３ニューラルネットワークとの間で、これらのニューラルネットワークを構成する層の一部が共有されることを特徴とする質問応答装置が提供される。
【０２２７】
上記の第１ニューラルネットワークは、例えば、Word Embedding Layer２１０、Contextual Embedding layer３１０、Attention Flow Layer４１０、Modeling Layer５１０、及びReading Comprehension Layer６１０の中の回答範囲を算出する部分を有する。第２ニューラルネットワークは、例えば、Word Embedding Layer２１０、Contextual Embedding layer３１０、Attention Flow Layer４１０、Modeling Layer５１０、及びReading Comprehension Layer６１０の中の回答段落を算出する部分を有する。第３ニューラルネットワークは、例えば、Word Embedding Layer２１０、Contextual Embedding layer３１０、Attention Flow Layer４１０、Modeling Layer５１０、Information Retrieval Layer７１０を有する。
【０２２８】
上記質問応答装置は、入力された文書群から前記処理手段により得られた前記回答適合度の最も高い文書から、最も確からしい回答範囲あるいは最も確からしい回答段落を回答として出力する、又は、前記回答適合度の最も高い文書を回答として出力する質問応答手段を更に備えることとしてもよい。
【０２２９】
前記処理手段は、前記層の共有部分により、前記文書及び前記質問に基づいてマッチング行列を生成し、前記マッチング行列に基づいて、前記第１ニューラルネットワークにより前記回答範囲を算出し、前記第２ニューラルネットワークにより前記回答段落を算出し、前記第３ニューラルネットワークにより前記回答適合度を算出することとしてもよい。
【０２３０】
また、第２の実施の形態により、文書及び質問を入力として、当該文書から、前記質問に対する回答となり得る文字列の範囲である回答範囲、回答段落、又は、回答適合度を出力する処理をニューラルネットワークにより実行する処理手段と、パラメータ学習手段と、を備え、前記ニューラルネットワークは、前記回答範囲を算出する第１ニューラルネットワークと、前記回答段落を算出する第２ニューラルネットワークと、前記回答適合度を算出する第３ニューラルネットワークを含み、前記第１ニューラルネットワークと、前記第２ニューラルネットワークと、前記第３ニューラルネットワークとの間で、これらのニューラルネットワークを構成する層の一部が共有され、前記パラメータ学習手段は、前記ニューラルネットワークからの出力と、正解である訓練データとから、前記ニューラルネットワークのパラメータを学習することを特徴とする質問応答装置が提供される。
【０２３１】
また、第２の実施の形態により、コンピュータを、前記質問応答装置における各手段として機能させるためのプログラムが提供される。
【０２３２】
また、第２の実施の形態により、前述した情報処理装置において、前記第１ニューラルネットワークは、前記回答範囲であって複数の粒度の回答を示す複数の範囲のうちのいずれかの範囲に対応する複数のニューラルネットワークからなり、前記第２ニューラルネットワークと、前記複数のニューラルネットワークとの間で、これらのニューラルネットワークを構成する層の一部が共有されるように構成された情報処理装置が提供される。
【０２３３】
上記の第１ニューラルネットワークは、例えば、Word Embedding Layer２１０、Contextual Embedding layer３１０、Attention Flow Layer４１０、Modeling Layer５１０、Information Retrieval Layer７１０を有する。また、複数のニューラルネットワークは、例えば、Word Embedding Layer２１０、Contextual Embedding layer３１０、Attention Flow Layer４１０、Modeling Layer５１０、及びReading Comprehension Layer６１０の中の回答範囲を算出する部分のニューラルネットワーク、及び、Word Embedding Layer２１０、Contextual Embedding layer３１０、Attention Flow Layer４１０、Modeling Layer５１０、及びReading Comprehension Layer６１０の中の回答段落を算出するニューラルネットワークを有する。
【０２３４】
前記情報処理装置において、前記処理手段は、前記複数のニューラルネットワークが算出する複数の粒度の回答を示す複数の範囲に基づき、最も適切な粒度の範囲を前記回答範囲として出力する質問応答手段を更に備えることとしてもよい。前記複数の粒度の回答を示す複数の範囲は、例えば回答範囲と、回答段落とを含むようにしてもよい。前記適切な粒度の範囲は、例えばフレーズと、段落と、文書とのうちのいずれかであることとしてもよい。
【０２３５】
なお、上記の「複数の粒度の回答を示す複数の範囲」と「適切な粒度の範囲」に関して補足する。本発明に係る情報処理装置の例である第２の実施の形態の質問応答装置は、回答範囲を算出する第１ニューラルネットワークと、回答適合度を算出する第２ニューラルネットワークから構成される。そして、第１ニューラルネットワークは、「複数の粒度の回答を示す複数の範囲」としての「フレーズ」、「段落」の２つに対応する２つのニューラルネットワークから構成される。この構成において、「適切な粒度の範囲」として、「フレーズ、段落、文書」の３つのうちいずれかを回答範囲として返すことが可能である。
【０２３６】
具体的には、前述したとおり、第２の実施の形態では、回答適合度が高い文書について下記の処理が行われる。
【０２３７】
（１）推定した「回答範囲」、「回答段落」のそれぞれのスコア（前述した「数４５」、「数４８」）に基づいて「回答範囲」、「回答段落」の何れかが適切であると判断できれば、それを出力する。
【０２３８】
（２）回答を示す範囲として「回答範囲」、「回答段落」が共に適切ではないと判断された場合には文書を出力する。
【０２３９】
前記処理手段は、前記第１ニューラルネットワークと前記複数のニューラルネットワークを構成する層の共有部分により、前記文書及び前記質問に基づいてマッチング行列を生成し、前記マッチング行列に基づいて、前記第２ニューラルネットワークにより前記回答適合度を算出し、前記複数のニューラルネットワークにより前記複数の粒度の回答を示す複数の範囲を算出することとしてもよい。
【０２４０】
また、第２の実施の形態により、コンピュータを、前記情報処理装置における各手段として機能させるためのプログラムが提供される。
【０２４１】
本明細書には、少なくとも下記の事項が開示されている。
（第１項）
文書及び質問を入力として、当該文書から、前記質問に対する回答となり得る文字列の範囲である回答範囲、又は、当該回答範囲における回答適合度を出力する処理をニューラルネットワークにより実行する処理手段を備え、
前記ニューラルネットワークは、前記回答範囲を算出する第１ニューラルネットワークと、前記回答適合度を算出する第２ニューラルネットワークを含み、前記第１ニューラルネットワークと、前記第２ニューラルネットワークとの間で、両ニューラルネットワークを構成する層の一部が共有される
ことを特徴とする質問応答装置。
（第２項）
前記処理手段は、入力された文書群の各文書ごとに、前記回答範囲と前記回答適合度を求め、当該回答範囲から回答候補である文字列を求め、
前記質問応答装置は、
前記回答候補として抽出された文字列が同一である各文書についての回答適合度を合計し、最も合計値の大きい回答候補を回答として出力する回答決定手段
を更に備えることを特徴とする第１項に記載の質問応答装置。
（第３項）
前記処理手段は、
前記両ニューラルネットワークを構成する層の共有部分により、前記文書及び前記質問に基づいてマッチング行列を生成し、
前記マッチング行列に基づいて、前記第１ニューラルネットワークにより前記回答範囲を算出し、前記第２ニューラルネットワークにより前記回答適合度を算出する
ことを特徴とする第１項又は第２項に記載の質問応答装置。
（第４項）
文書及び質問を入力として、当該文書から、前記質問に対する回答となり得る文字列の範囲である回答範囲、又は、当該回答範囲における回答適合度を出力する処理をニューラルネットワークにより実行する処理手段と、
パラメータ学習手段と、を備え、
前記ニューラルネットワークは、前記回答範囲を算出する第１ニューラルネットワークと、前記回答適合度を算出する第２ニューラルネットワークを含み、前記第１ニューラルネットワークと、前記第２ニューラルネットワークとの間で、両ニューラルネットワークを構成する層の一部が共有され、
前記パラメータ学習手段は、前記ニューラルネットワークからの出力と、正解である訓練データとから、前記ニューラルネットワークのパラメータを学習する
ことを特徴とする質問応答装置。
（第５項）
コンピュータを、第１項ないし第４項のうちいずれか１項に記載の前記質問応答装置における各手段として機能させるためのプログラム。
（第６項）
文書及び質問を入力として、当該文書から、前記質問に対する回答となり得る文字列の範囲である回答範囲、又は、当該回答範囲における回答適合度を出力する処理をニューラルネットワークにより実行する処理手段を備える質問応答装置が実行する質問応答方法であって、
前記ニューラルネットワークは、前記回答範囲を算出する第１ニューラルネットワークと、前記回答適合度を算出する第２ニューラルネットワークを含み、前記第１ニューラルネットワークと、前記第２ニューラルネットワークとの間で、両ニューラルネットワークを構成する層の一部が共有され、
前記処理手段が、前記両ニューラルネットワークを構成する層の共有部分において、前記文書及び前記質問に基づいてマッチング行列を生成するステップと、
前記処理手段が、前記マッチング行列に基づいて、前記回答範囲、又は、前記回答適合度を算出するステップと
を備えることを特徴とする質問応答方法。
（第７項）
文書及び質問を入力として、当該文書から、前記質問に対する回答となり得る文字列の範囲である回答範囲、回答段落、又は、回答適合度を出力する処理をニューラルネットワークにより実行する処理手段を備え、
前記ニューラルネットワークは、前記回答範囲を算出する第１ニューラルネットワークと、前記回答段落を算出する第２ニューラルネットワークと、前記回答適合度を算出する第３ニューラルネットワークを含み、前記第１ニューラルネットワークと、前記第２ニューラルネットワークと、前記第３ニューラルネットワークとの間で、これらのニューラルネットワークを構成する層の一部が共有される
ことを特徴とする質問応答装置。
（第８項）
入力された文書群から前記処理手段により得られた前記回答適合度の最も高い文書から、最も確からしい回答範囲あるいは最も確からしい回答段落を回答として出力する、又は、前記回答適合度の最も高い文書を回答として出力する質問応答手段
を更に備えることを特徴とする第７項に記載の質問応答装置。
（第９項）
前記処理手段は、
前記第１ニューラルネットワークと前記第２ニューラルネットワークと前記第３ニューラルネットワークとを構成する層の共有部分により、前記文書及び前記質問に基づいてマッチング行列を生成し、
前記マッチング行列に基づいて、前記第１ニューラルネットワークにより前記回答範囲を算出し、前記第２ニューラルネットワークにより前記回答段落を算出し、前記第３ニューラルネットワークにより前記回答適合度を算出する、
ことを特徴とする第７項又は第８項に記載の質問応答装置。
（第１０項）
文書及び質問を入力として、当該文書から、前記質問に対する回答となり得る文字列の範囲である回答範囲、回答段落、又は、回答適合度を出力する処理をニューラルネットワークにより実行する処理手段と、
パラメータ学習手段と、を備え、
前記ニューラルネットワークは、前記回答範囲を算出する第１ニューラルネットワークと、前記回答段落を算出する第２ニューラルネットワークと、前記回答適合度を算出する第３ニューラルネットワークを含み、前記第１ニューラルネットワークと、前記第２ニューラルネットワークと、前記第３ニューラルネットワークとの間で、これらのニューラルネットワークを構成する層の一部が共有され、
前記パラメータ学習手段は、前記ニューラルネットワークからの出力と、正解である訓練データとから、前記ニューラルネットワークのパラメータを学習する
ことを特徴とする質問応答装置。
（第１１項）
コンピュータを、第７項ないし第１０項のうちいずれか１項に記載の前記質問応答装置における各手段として機能させるためのプログラム。
（第１２項）
文書及び質問を入力として、当該文書から、前記質問に対する回答となり得る文字列の範囲である回答範囲、回答段落、又は、回答適合度を出力する処理をニューラルネットワークにより実行する処理手段を備える質問応答装置が実行する質問応答方法であって、
前記ニューラルネットワークは、前記回答範囲を算出する第１ニューラルネットワークと、前記回答段落を算出する第２ニューラルネットワークと、前記回答適合度を算出する第３ニューラルネットワークを含み、前記第１ニューラルネットワークと、前記第２ニューラルネットワークと、前記第３ニューラルネットワークとの間で、これらのニューラルネットワークを構成する層の一部が共有され、
前記処理手段が、前記層の共有部分において、前記文書及び前記質問に基づいてマッチング行列を生成するステップと、
前記処理手段が、前記マッチング行列に基づいて、前記回答範囲、前記回答段落、又は、前記回答適合度を算出するステップと
を備えることを特徴とする質問応答方法。
【０２４２】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【０２４３】
［参考文献］
参考文献１：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．
参考文献２：Hochreiter, S．, and Schmidhuber, J． 1997． Long short-term memory． Neural Computation 9(8):1735-1780．
参考文献３：Rajpurkar, P.; Zhang, J.; Lopyrev, K.; and Liang, P. 2016. Squad: 100,000+ questions for machine comprehension of text. In EMNLP, 2383-2392.
参考文献４：Craswell, N. 2009b. Success at n. In Encyclopedia of Database Systems. 2875-2876.
参考文献５：Craswell, N. 2009a. Mean reciprocal rank. In Encyclopedia of Database Systems. 1703.
参考文献６：Robertson, S. E., and Walker, S. 1994. Some simple effective approximations to the 2-poisson model for probabilistic weighted retrieval. In SIGIR, 232-241
本特許出願は２０１７年１２月１日に出願した日本国特許出願第２０１７−２３２１８９号及び２０１７年１２月５日に出願した日本国特許出願第２０１７−２３３７４５号に基づきその優先権を主張するものであり、日本国特許出願第２０１７−２３２１８９号及び日本国特許出願第２０１７−２３３７４５号の全内容を本願に援用する。
【符号の説明】
【０２４４】
１００、１１０  質問応答装置
１０１、１１１  単語ベクトル記憶部
１０２、１１２  単語系列ベクトル化部
１０３、１１３  単語系列マッチング部
１０４、１１４  回答範囲出力部
１０５、１１５  回答適合度出力部
１０６、１１６  質問応答部
１０７、１１７  パラメータ学習部
１１８  回答段落出力部
２００、２１０  Word Embedding Layer
３００、３１０  Contextual Embedding layer
４００、４１０  Attention Flow Layer
５００、５１０  Modeling Layer
６００、６１０  Reading Comprehension Layer
７００、７１０  Information Retrieval Layer
１５０  ドライブ装置
１５０  記録媒体
１５２  補助記憶装置
１５３  メモリ装置
１５４  ＣＰＵ
１５５  インターフェース装置
１５６  表示装置
１５７  入力装置
【図１】
2019106965.tif 000053
【図２】
2019106965.tif 000054
【図３】
2019106965.tif 000055
【図４】
2019106965.tif 000056
【図５】
2019106965.tif 000057
【図６Ａ】
2019106965.tif 000058
【図６Ｂ】
2019106965.tif 000059
【図７】
2019106965.tif 000060
【図８Ａ】
2019106965.tif 000061
【図８Ｂ】
2019106965.tif 000062
【図９】
2019106965.tif 000063
【図１０】
2019106965.tif 000064
【図１１】
2019106965.tif 000065
【図１２Ａ】
2019106965.tif 000066
【図１２Ｂ】
2019106965.tif 000067
【図１３】
2019106965.tif 000068
【図１４Ａ】
2019106965.tif 000069
【図１４Ｂ】
2019106965.tif 000070
【図１５】
2019106965.tif 000071
【図１６】
2019106965.tif 000072
【図１７】
2019106965.tif 000073
【国際調査報告】
2019106965.tif 000074
2019106965.tif 000075
2019106965.tif 000076
2019106965.tif 000077