(57)【要約】【課題】回答生成におけるノイズの影響を低下させ、高精度に回答を生成できるH質問応答装置用メモリを提供する。【解決手段】質問応答装置用メモリは、互いに異なる複数の質問の各々について、所定の背景知識源から抽出された回答の集合に含まれる回答のベクトル表現を正規化し正規化ベクトルとして記憶するよう構成されたメモリ４２０と、質問をベクトル化した質問ベクトルが与えられたことに応答してメモリ４２０をアクセスし、当該質問ベクトルと複数の質問との間の関連度と、複数の質問の各々に対応する正規化ベクトルとを用いて質問ベクトルを更新するキー・バリューメモリアクセス部４２２とを含む。【選択図】図１４
2020004045.tif 000002
【特許請求の範囲】
【請求項１】
Ｈｏｗ型質問を互いに異なる型式の複数の質問へ変換し、前記複数の質問の各々について、所定の背景知識源から回答となる背景知識を抽出する背景知識抽出手段と、
前記背景知識抽出手段にて抽出された回答の集合に含まれる回答のベクトル表現を正規化し正規化ベクトルとして前記複数の質問の各々と対応付けて記憶するよう構成された回答記憶手段と、
前記Ｈｏｗ型質問をベクトル化した質問ベクトルが与えられたことに応答して前記回答記憶手段をアクセスし、当該質問ベクトルと前記複数の質問との間の関連度と、前記複数の質問の各々に対応する前記正規化ベクトルとを用いて前記質問ベクトルを更新する更新手段と、
前記更新手段にて更新された前記質問ベクトルに基づき、前記Ｈｏｗ型質問に対する回答候補を判定する回答判定手段とを含む、質問応答装置。
【請求項２】
前記更新手段は、
前記質問ベクトルと、前記複数の質問の各々のベクトル表現との間の関連度を算出する第１の関連度算出手段と、
前記回答記憶手段に記憶された前記正規化ベクトルの加重和からなる第１の加重和ベクトルを、当該正規化ベクトルに対応する質問について前記第１の関連度算出手段が算出した関連度を重みとして算出し、当該第１の加重和ベクトルと前記質問ベクトルとの線形和により、前記質問ベクトルを更新するための第１の質問ベクトル更新手段とを含む、請求項１に記載の質問応答装置。
【請求項３】
前記第１の関連度算出手段は、前記質問ベクトルと、前記複数の質問の各々のベクトル表現との間の内積により前記関連度を算出する内積手段を含む、請求項２に記載の質問応答装置。
【請求項４】
さらに、前記第１の質問ベクトル更新手段が出力する更新後の前記質問ベクトルと、前記複数の質問の各々のベクトル表現との間の関連度を算出する第２の関連度算出手段と、
前記回答記憶手段に記憶された前記正規化ベクトルの加重和からなる第２の加重和ベクトルを、当該正規化ベクトルに対応する質問について前記第２の関連度算出手段が算出した関連度を重みとして計算し、当該第２の加重和ベクトルと前記質問ベクトルとの線形和により、前記更新後の前記質問ベクトルをさらに更新した再更新後の質問ベクトルを出力するための第２の質問ベクトル更新手段とを含む、請求項２又は請求項３に記載の質問応答装置。
【請求項５】
前記更新手段は、訓練によりパラメータが決定されるニューラルネットワークにより形成される、請求項１〜請求項３のいずれかに記載の質問応答装置。
【請求項６】
コンピュータを請求項１〜請求項５のいずれかに記載の質問応答装置として機能させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は質問応答装置に関し、特に、How型質問に対して高精度な回答を提示する質問応答装置に関する。
【背景技術】
【０００２】
コンピュータにより、ユーザから与えられた質問に対して回答を出力する質問応答システムの利用が広がりつつある。質問には、ファクトイド型質問とノン・ファクトイド型質問とがある。ファクトイド型質問とは、地名、人名、日時、数量等、「何」にあたるものが回答となる質問である。端的には回答は単語で与えられる。ノン・ファクトイド型質問とは、それ以外、例えば理由、定義、方法等、「何」とはいえないものが回答となる質問である。ノン・ファクトイド型質問の回答は、比較的長い文又はいくつかの文からなるパッセージとなる。
【０００３】
ファクトイド型質問に対する回答を提供する質問応答システムについては、クイズ番組で人間の回答者を破るようなものも現れており、高い精度で高速に回答可能なものが多い。一方、ノン・ファクトイド型質問はさらに「Why型質問」、「How型質問」等に分類される。この中でHow型質問に対する回答をコンピュータにより得ることは、コンピュータサイエンスの分野でも高度な自然言語処理が必要とされる、非常に困難なタスクであると認識されてきた。ここで、How型質問とは、「どうやって家でポテトチップスを作るのか？」のように何らかの目的を達成するための方法を尋ねる質問のことである。
【０００４】
How型質問応答システムは、予め準備された大量の文書からHow型質問に対する回答を抽出する技術を用いる。How型質問応答システムは、人工知能、自然言語処理、情報検索、Webマイニング、及びデータマイニング等において非常に大きな役割を担うものと考えられる。
【０００５】
How型質問の回答は、複数文からなることが多い。例えば、上記の質問「どうやって家でポテトチップスを作るのか？」に対する回答としては「最初にじゃがいもを洗い、皮をむきます。そしてスライサー等で薄く切ります。それを水に軽く浸けデンプンを軽く落とします。キッチンペーパーで水気を落とした後、油で２度揚げします。」のようなものがあり得る。How型質問に対する回答は一連の行動・事象を表すことが必要となるためである。一方、How型質問の回答を得るための手掛かりは、「最初に」、「〜後」等の順序を表す表現以外にはほとんど見つけることができない。したがって、How型質問に対して何らかの手段により高い精度で回答できる質問応答システムが望まれている。
【０００６】
一方、最近、ニューラルモデルにより多くの情報を記憶させるため、後掲の非特許文献１において、ニューラルネットワークにメモリを付けたMemory Networkが提案され、「Machine comprehension」と「知識ベースを対象にした質問応答」のタスクに用いられてきた。さらに、多様な形の情報をメモリに保存させるためにこのMemory networkを改良したKey-value memory networkが後掲の非特許文献２において提案された。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Sukhbaatar, S., Szlam, A., Weston, J., and Fergus, R. (2015). End-to-end memory networks. In NIPS, 2015.
【非特許文献２】Alexander Miller, Adam Fisch, Jesse Dodge, Amir-Hossein Karimi, Antoine Bordes, and Jason Weston. 2016. Key-value memory networks for directly reading documents. In Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing, pages 1400-1409.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
How型質問の回答を特定する従来技術はいずれも機械訓練による分類器を採用している。これらのうち、ニューラルネットワークを使わず、SVM等の機械訓練器を使ったものは低性能である。また、ニューラルネットワークを使っているnon-factoid型質問応答技術に関しても、性能にはさらに改善の余地がある。
【０００９】
性能を改善するために、非特許文献２に開示されたKey-value memory networkは、情報をkey-value対としてメモリに保存させ、メモリ上の各々の対を処理した結果を合わせて関連情報として回答生成に利用する。これをうまく利用することにより、How型質問に対する回答の精度を高められる可能性がある。しかし、現在のKey-value memory networkでは、valueとしてメモリに記憶された情報にノイズが多く含まれている場合、このメモリから得られる関連情報がノイズによって偏った値になり、回答の精度が低くなるという問題が発生する。上記した非特許文献２では、回答を得るための知識ベースとして予め整備されたものを用いており、ノイズ等については考慮していない。そのため、背景知識にノイズが含まれる場合には回答の精度が著しく低下する。このようなノイズの悪影響はできるだけ排除する必要がある。
【００１０】
それゆえに本発明は、Key-value memory networkを使用したHow型質問応答システムにおいて、回答生成におけるノイズの影響を低下させ、高精度に回答を生成できる質問応答装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の第１の局面に係る質問応答装置は、Ｈｏｗ型質問を互いに異なる型式の複数の質問へ変換し、複数の質問の各々について、所定の背景知識源から回答となる背景知識を抽出する背景知識抽出手段と、背景知識抽出手段にて抽出された回答の集合に含まれる回答のベクトル表現を正規化し正規化ベクトルとして複数の質問の各々と対応付けて記憶するよう構成された回答記憶手段と、Ｈｏｗ型質問をベクトル化した質問ベクトルが与えられたことに応答して回答記憶手段をアクセスし、当該質問ベクトルと複数の質問との間の関連度と、複数の質問の各々に対応する正規化ベクトルとを用いて質問ベクトルを更新する更新手段と、更新手段にて更新された質問ベクトルに基づき、Ｈｏｗ型質問に対する回答候補を判定する回答判定手段とを含む。
【００１２】
好ましくは、更新手段は、質問ベクトルと、複数の質問の各々のベクトル表現との間の関連度を算出する第１の関連度算出手段と、回答記憶手段に記憶された正規化ベクトルの加重和からなる第１の加重和ベクトルを、当該正規化ベクトルに対応する質問について第１の関連度算出手段が算出した関連度を重みとして算出し、当該第１の加重和ベクトルと質問ベクトルとの線形和により、質問ベクトルを更新するための第１の質問ベクトル更新手段とを含む。
【００１３】
より好ましくは、第１の関連度算出手段は、質問ベクトルと、複数の質問の各々のベクトル表現との間の内積により関連度を算出する内積手段を含む。
【００１４】
さらに好ましくは、質問応答装置は、さらに、第１の質問ベクトル更新手段が出力する更新後の質問ベクトルと、複数の質問の各々のベクトル表現との間の関連度を算出する第２の関連度算出手段と、回答記憶手段に記憶された正規化ベクトルの加重和からなる第２の加重和ベクトルを、当該正規化ベクトルに対応する質問について第２の関連度算出手段が算出した関連度を重みとして計算し、当該第２の加重和ベクトルと質問ベクトルとの線形和により、更新後の質問ベクトルをさらに更新した再更新後の質問ベクトルを出力するための第２の質問ベクトル更新手段とを含む。
【００１５】
好ましくは、更新手段は、訓練によりパラメータが決定されるニューラルネットワークにより形成される。
【００１６】
より好ましくは、質問応答装置は、背景知識抽出手段にて抽出された回答の集合について、当該集合中に出現する単語のｔｆｉｄｆを用い、各単語の重要度を示す指標を算出する単語重要度算出手段と、背景知識の抽出に用いられた複数の質問の各々について、当該質問に含まれる各単語に対して単語重要度算出手段が算出した指標を要素とするアテンション行列を算出するためのアテンション手段と、をさらに含み、回答候補にアテンション行列を乗じてベクトル表現を生成し、回答推定手段に入力する。
【００１７】
本発明の第２の局面に係るコンピュータプログラムは、コンピュータを、上記したいずれかの質問応答装置として機能させる。
【００１８】
この発明の上記した特徴及びその他の特徴、解釈、及び利点は後記する実施の形態の説明を図面とともに読むことによりさらによく理解できるだろう。
【図面の簡単な説明】
【００１９】
【図１】図１は非特許文献２に記載されたkey-value memory networkの中心部の構成を示す模式図である。
【図２】図２は本発明の実施の形態に係る質問応答システムが使用する、道具関係に関する背景知識を説明する模式図である。
【図３】図３は本発明の実施の形態に係る質問応答システムが使用する、因果関係に関する背景知識を説明する模式図である。
【図４】図４は本発明の実施の形態に係る質問応答システムにおいて、How型質問から「何」型質問と「なぜ」型質問とが生成される過程を示す模式図である。
【図５】図５は、質問応答システムにおいてkey-value memoryにvalueとしてノイズが記憶され得ることを示す模式図である。
【図６】図６は、本発明の実施の形態に係る質問応答システムにおける、chunked key-value memory networkの中心部の構成を得るための過程を説明するための模式図である。
【図７】図７は、本発明の実施の形態に係る質問応答システム３８０の構成を説明するための、１層（１ホップ）からなるchunked key-value memory networkを採用した質問応答システムの機能的構成を示すブロック図である。
【図８】図８は、図７に示す背景知識抽出部の機能的構成を示すブロック図である。
【図９】図９は、図７に示す質問のエンコーダの機能的構成を示すブロック図である。
【図１０】図１０は、図７に示す回答候補のエンコーダの機能的構成を示すブロック図である。
【図１１】図１１は、図１０に示すアテンション算出部の機能的構成を示すブロック図である。
【図１２】図１２は、図７に示す背景知識のエンコーダの機能的構成を示すブロック図である。
【図１３】図１３は、図７に示すキー・バリューメモリアクセス部の機能的構成を示すブロック図である。
【図１４】図１４は、本発明の実施の形態に係る３層（３ホップ）からなるchunked key-value memory networkを採用した質問応答システムの機能的構成を示すブロック図である。
【図１５】図１５は、図１４に示すシステムについて行った実験結果を他のシステムと比較して表形式で示す図である。
【図１６】図１６は、本発明の各実施の形態に係る質問応答システムを実現するコンピュータの外観図である。
【図１７】図１７は、図１６に示すコンピュータの内部構成を示すハードウェアブロック図である。
【発明を実施するための形態】
【００２０】
以下の説明及び図面では、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。
【００２１】
以下に説明する各実施の形態では、大規模なテキストコーパスから獲得した「道具・目的関係」及び「因果関係」を回答特定のための背景知識として用い、How型質問の回答を判定する新たなニューラルモデルを提案する。How型質問に対する回答を得る、というタスクにおいて、背景知識を利用することは今まで検討されたことがない。非特許文献２に記載されたシステムでは、key-value memory networkには知識源から生成したデータが記憶される。このデータのうちキーは主体（主語）＋関係、値は客体（目的語）であるが、これらの情報は予め所定のフォーマットにしたがって知識という形で整形しておかなければならない。
【００２２】
なお、上記した様に以下の実施の形態では「道具・目的関係」及び「因果関係」を回答特定のための背景知識として用いている。しかし本発明はそのようは実施の形態には限定されない。質問の分野が分かっているような場合には、その分野にあわせた関係を用いるようにしてもよい。
【００２３】
本実施の形態ではさらに、こうして得た背景知識をkey-value memory networkを発展させた「chunked key-value memory network」に記憶させ、回答生成に利用する。
【００２４】
以下、まず、質問応答システムを、非特許文献２による質問応答システムの基本的考え方を採用して実現する場合について説明する。後述するように本実施の形態では、入力された質問から「何」型質問と「なぜ」型質問とを生成し、既存の質問応答システム（少なくとも「何」型質問と「なぜ」型質問とに応答可能であるもの）に与え、その回答を各質問について複数個得る。
【００２５】
例えば、図１を参照して、質問１７０（「どうやって家でポテトチップスを作る？」）が与えられたものとする。この質問１７０からは「何で家でポテトチップスを作る？」という「何」型質問ｑ１と、「なぜ家でポテトチップスを作る？」という「なぜ」型質問ｑ２とが得られる。これらを既存の質問応答システムに与え、質問ｑ１に対して回答ａ１〜ａ３が得られ、質問ｑ２に対して回答ａ１〜質問ａ６が得られたものとする。
【００２６】
Key-value memory１５０はkeyメモリ１７４とvalueメモリ１７６とを含む。Key-value memory１５０には、このようにして得られた質問と回答の組が互いに１対１に関連付けられて記憶される。より具体的には、各質問はkeyメモリ１７４に、対応する各回答はvalueメモリ１７６に記憶される。なおこれらのメモリは、新たな質問が入力される度にリフレッシュされる。
【００２７】
なお、後述するように以下の説明では、全ての質問及び回答はいずれも連続値を要素とするベクトル表現に変換されている。質問１７０が与えられると、質問１７０とkeyメモリ１７４に記憶された各質問との間でマッチング１７２が行われる。ここでのマッチングはベクトル同士の関連度の指標を計算する処理であり、典型的にはベクトル間の内積が指標として採用される。この内積の値を各回答の重みとして、各回答を表すベクトルの加重和１７８が計算される。この加重和１７８が、与えられた質問１７０に対する背景知識１８０となる。この背景知識１８０を用いて質問１７０を所定の関数を用いて更新する。この更新により、質問１７０に背景知識の表す情報の少なくとも一部が組込まれる。後述するようにこのマッチング処理、加重和を求める処理、及び更新処理は複数回だけ繰返される。最終的に得られた質問と、回答候補との間で所定の計算がされ、その回答候補が質問１７０に対する回答として正しいか否かを示すスコア（典型的には確率）が出力される。典型的には、この処理は「正解クラス」と「誤答クラス」の２クラスへの分類問題となり、回答候補が各クラスに属する確率がスコアとして出力される。回答候補をスコアの降順でソートし、先頭の回答候補がＨＯＷ型質問に対する最終的な回答として出力される。
【００２８】
［背景知識の獲得］
How型質問の回答には、質問された目的を達成するための一連の行動・事象が方法として書かれている。これらの行動・事象は何らかの道具を用いて行われる場合が多い。例えば、図１を参照して、上記例での質問「どうやって家でポテトチップスを作るのか？」の回答２０２の中には、「じゃがいも」、「スライサー」、「水」、「キッチンペーパー」、「油」がポテトチップスを作るための道具として使われている。このため、「じゃがいも(道具）でポテトチップスを作る(目的)」のような「道具・目的」関係はHow型質問の回答特定のための手がかりとして用いることができる。こうした関係は、もととなるテキストから、パターンによる名詞間の意味的関係の獲得（これには既存技術を利用できる）によって自動的に獲得できる。すなわち、製品Ｂと道具（材料）Ａとの間の関係を「ＡでＢを作る」というようなパターンを検索することによって自動獲得できる。
【００２９】
以下の実施の形態では、「道具・目的」関係の知識を獲得するため、与えられたHow型質問を「何で」質問に変換する。そして、変換した「何で」質問を出願人が実用化している既存の「何」型質問応答システムに入力する。このシステムから得られた回答の元文を「道具・目的関係」の知識源として用いる。例えば、How型質問である「どうやって家でポテトチップスを作るのか？」は、「何で」質問である「何で家でポテトチップスを作るのか？」に変換できる。この「何で」質問を「何」型質問応答システムに入力して、回答「じゃがいも」、とその回答の元文（例えば、「パパの実家からいただいた、じゃがいもで、ポテトチップスを作りました」）が得られる。そして、「何で」質問と回答の元文からなる対を「どうやってポテトチップスを作るのか？」に対する「道具・目的」関係を表す知識源として用いる。なお、これら質問の変換方法を複数通り採用しても良いことはいうまでもない。つまり、１つのＨＯＷ型質問から２つ以上の「何」型質問又は「なぜ」型質問を生成し既存の質問応答システムからそれらの回答を得るようにしてもよい。
【００３０】
また、ある目的で何らかの道具が使われる理由を表す因果関係も手がかり情報として用いられる。例えば、図３を参照して、「切ったじゃがいもは１時間ほど水にさらします（帰結）。その理由は水にさらしてでんぷんを溶け出させることで、カリッとしたポテトチップスが作れるため（原因）ためです。」という文２２０は、じゃがいもを水にさらす理由を原因となる部分２３２とその帰結を表す部分２３０との間の因果関係として説明している。すなわち、この文は質問「どうやってポテトチップスを作るのか？」の回答２２２の一部２３４と合致する文脈情報を含む。こういった文脈情報はHow型質問の回答を特定するための知識源として用いられる。
【００３１】
以下の実施の形態では、上記の因果関係を獲得するため、How型質問を「なぜ」型質問に変換して出願人が実用化している「なぜ」型質問応答システムに入力する。この「なぜ」型質問に対して得られた回答をHow型質問に適合した因果関係の知識源として用いる。
【００３２】
以上をまとめると、図４を参照して、以下の実施の形態では、How型質問２５０（例えば「どうやって家でポテトチップスを作る？」）を「何」型質問２５２と「なぜ」型質問２５４とに変換する。そしてこれらを「何」型質問応答システム２５６と「なぜ」型質問応答システム２５８とに入力としてそれぞれ与える。もちろん、既存の応答システムが「何」型質問２５２と「なぜ」型質問２５４との双方に回答できるものであれば「何」型質問応答システム２５６と「なぜ」型質問応答システム２５８とを同一のシステムとしてもよい。さらに、こうした処理の結果、「何」型質問応答システム２５６から回答群２６０が得られ、「なぜ」型質問応答システム２５８から回答群２６２が得られる。これらをそれぞれ道具・目的関係の知識源及び因果関係の知識源として用いることができる。
【００３３】
上記の方法で得られた道具・目的関係又は因果関係を表すテキストからは、How型質問に対する回答を得る上で有用な情報が得られる。一方で、これらのテキストから得られた情報にはHow型質問と無関係なものが多く含まれる場合もある。これらがノイズである。
【００３４】
図５を参照して、例えば「何」型質問２８０に対して、回答２９０、２９２及び２９４が得られ、同じく「何」型質問２８２に対して回答２９０、２９２及び２９４に加えて回答２９６、回答２９８及び３００が得られた場合を考える。これらの回答のうち、回答２９０及び回答２９２は、How型質問の背景知識として有用だが、回答２９４、２９６、２９８及び３００はHow型質問の背景知識としては意味がない。すなわちノイズである。こうした情報による影響をできるだけ排除しなければHow型質問に対する精度の高い回答を得ることは難しい。非特許文献２ではこうした状況については配慮されていないという問題がある。
【００３５】
こういった問題を解決するため、以下の実施の形態では、道具・目的関係及び因果関係の情報をその獲得に用いられた質問毎に正規化し、回答特定にchunked key-value memory networkと呼ぶニューラルモデルを採用する。ここでいう正規化とは、１つの質問に対して複数の回答が得られた場合には、それらを平均したものをその質問に対する回答とすることをいう。
【００３６】
すなわち、図６を参照して、本実施の形態では、図１に示すKey-value memory１５０に代えてchunked key-value memory３２０を採用する。chunked key-value memory３２０はKey-value memory１５０と同様、keyメモリ３３０とvalueメモリ３３２とを含む。
【００３７】
keyメモリ３３０には、図１と同様、Keyとして質問（例えば質問ｑ１及びｑ２）が記憶される。valueメモリ３３２には、図１に示したものと同様、質問ｑ１に対する回答群３５０及び質問ｑ２に対する回答群３５２が記憶される。chunked key-value memory３２０が図１に示すKey-value memory１５０と異なるのは、同じ質問に対する回答をそれぞれ平均化した平均回答を算出する平均処理部３３４を含む点である。すなわち、図６に示すように質問ｑ１に対しては回答群３５２に含まれる回答ａ１〜回答ａ３を平均した回答ベクトルが算出され、質問ｑ２に対しては回答群３５０に含まれる回答ａ１〜回答ａ６を平均した回答ベクトルが算出される。これら回答ベクトルに対し、質問ｑ１及びｑ２に対して計算された重みを乗じて加重和３３６が計算され、その結果、与えられたＨＯＷ型質問に対する背景知識３３８が得られる。なお、こうした演算を行うためには、質問及び回答は全てベクトル表現に変換しておかなければならない。このchunked key-value memory networkは非特許文献２に開示されたkey-value memory networkの改良版と見ることができる。
【００３８】
一般に、ある質問に対して多くの回答が得られるような場合、その回答にはノイズが多く含まれると考えられる。一方、質問に対する回答の数が少ない場合には、その回答に含まれるノイズは少ないと考えられる。こうした状況を無視して、的確な回答にもノイズとしての回答にも同じ重みを乗じて加重和を計算した場合には、ノイズの影響が大きくなってしまうという問題がある。それに対し、上記したようにある質問に対する回答を平均化すると、回答数が多かった質問における各回答の重みは、回答数が少なかった質問における各回答の重みと比較するとより小さな重みしか与えられないことになる。したがって、結果としてこれらについてさらに加重和を計算した場合、得られるものに含まれるノイズの影響は相対的に小さくなり、最終的に得られる回答も的確なものとなる可能性が高い。
【００３９】
なお、具体的には、chunked key-value memory３２０に記憶された質問（key）と回答（value）のペアの集合Ｍ＝｛（ｋｉ,ｖｉ｝）を以下の式に示されるとおりキーチャンクの集合Ｃに変換する。すなわち、ある値のキーｋ´ｊとペアになっている値（回答）を集め集合Ｖｊを形成し、各キーｋ´ｊに対応する回答の平均であるチャンクｃｊを計算する。
【００４０】
【数１】
2020004045.tif 000003
ただしＷｍｖ∈Ｒｄ´×ｄ´及びＷｍｋ∈Ｒｄ´×ｄ´はいずれも訓練により定まる値を要素に持つ行列である（後述するようにこの実施形態はニューラルネットワークにより実現される）。ｍはホップ数と呼ばれ、キーチャンクからの読出と質問の更新とが行われた繰返し数を示す。ｃｍｊはｍ回目の更新時の、キーｋ´ｊに対して計算されたチャンクである。ただしｄ´は各ＣＮＮの出力するベクトルの次元数である。
【００４１】
以下に説明する本発明の各実施の形態では、Key-value memory networkと同様、入力された質問とchunked key-value memory networkの各質問との関連度を計算し、それを重みとして各質問に対する回答の平均（チャンク）の加重和を求め、もとの質問との間で所定の演算を行って質問を更新する。この処理を１又は複数回行って最終的に得られた質問と、回答候補との間で所定の演算をし、回答候補がもとの質問に対する回答として正しいか否かを示すラベル又は確率を出力する。この回数がホップ数ｍである。以下に説明する第１の実施の形態ではｍ＝１であり、第２の実施の形態ではｍ＝３である。
【００４２】
後述するように以下に述べる各実施の形態のHow型質問に対する質問応答装置は、背景知識を他の質問応答システムから得てchunked key-value memory networkに記憶する部分を除き、end-to-endのニューラルネットワークで実現できる。このニューラルネットワークでは、１層が１ホップに相当する。
【００４３】
［第１の実施の形態］
＜構成＞
本発明の実施の形態を分かりやすく説明するために、まず中間層が１層のみである質問応答システムについて構成を説明する。図７を参照して、第１の実施の形態に係る質問応答システム３８０は、質問３９０を受けて、質問３９０から「何」型質問と「なぜ」型質問とを生成し、既存のファクトイド・なぜ型質問応答システム３９４にそれらの質問を与えることにより背景知識を抽出するための背景知識抽出部３９６を含む。ここでいう背景知識は、背景知識抽出部３９６に与えられた質問と、その質問に対してファクトイド・なぜ型質問応答システム３９４から得られた回答とのペアの集合である。
【００４４】
質問応答システム３８０はさらに、背景知識抽出部３９６により抽出された背景知識を一旦記憶するための背景知識記憶部３９８と、背景知識記憶部３９８に記憶された背景知識を構成する各質問及び回答を単語埋込ベクトル列に変換し、さらにこれら各単語埋込ベクトル列をベクトルに変換する処理を行うエンコーダ４０６とを含む。
【００４５】
質問応答システム３８０はさらに、質問３９０を単語埋込ベクトル列に変換し、さらにベクトルに変換するためのエンコーダ４０２と、回答候補３９２を単語埋込ベクトル列に変換し、さらにベクトルに変換するためのエンコーダ４０４と、エンコーダ４０６によりベクトル化された背景知識を記憶するchanked key-value memory networkであるキー・バリューメモリ４２０を持ち、質問ベクトルとキー・バリューメモリ４２０に記憶された背景知識を用いて質問ベクトルを更新し出力する第１レイヤ４０８と、第１レイヤ４０８の出力する更新後の質問ベクトルと、エンコーダ４０４の出力する回答候補３９２のベクトルとの間で所定の演算を行い、回答候補が質問３９０に対する回答として正しい正解クラスと誤答である誤答クラスとに属する確率をそれぞれ出力するための出力層４１０とを含む。キー・バリューメモリ４２０は、後述するように、互いに異なる複数の質問の各々について、背景知識源から抽出された回答の集合に含まれる回答のベクトル表現を正規化し正規化ベクトルとして記憶するよう構成されている。
【００４６】
図８は、図７に示す背景知識抽出部３９６の概略構成を示す。図８を参照して、背景知識抽出部３９６は、質問３９０から「何」型質問を生成してファクトイド・なぜ型質問応答システム３９４に与え、ファクトイド・なぜ型質問応答システム３９４からのその回答を得て、各回答と「何」型質問とをペアにして背景知識記憶部３９８に記憶させる「何」型質問生成部４８０と、質問３９０から「なぜ」型質問を生成してファクトイド・なぜ型質問応答システム３９４に与え、ファクトイド・なぜ型質問応答システム３９４からその回答を得て、各回答と「なぜ」型質問とをペアにして背景知識記憶部３９８に記憶させるための「なぜ」型質問生成部４８２とを含む。「何」型質問生成部４８０及び「なぜ」型質問生成部４８２では、それぞれ１又は可能であれば複数個の質問をそれぞれ生成し、それらの各々について１又は複数の回答をファクトイド・なぜ型質問応答システム３９４から得る。
【００４７】
図９を参照して、図７に示すエンコーダ４０２は、質問３９０を受け、質問３９０を構成する各単語を単語埋込ベクトルに変換して単語埋込ベクトル列５０２を出力するためのベクトル変換部５００と、単語埋込ベクトル列５０２を受けて質問ベクトル５０６（ベクトルｑ）に変換し出力するためのコンボリューショナル・ニューラルネットワーク（ＣＮＮ）５０４とを含む。ＣＮＮ５０４の各パラメータは、質問応答システム３８０の訓練の対象である。ベクトル変換部５００としては予め訓練済のものを用いる。なお、この実施の形態及び後述の第２の実施の形態の各々において、ＣＮＮの出力するベクトルは全て同一次元である。
【００４８】
図１０を参照して、図７に示すエンコーダ４０４は、回答候補３９２を受け、その各単語を単語埋込ベクトルに変換して単語埋込ベクトル列５２２を出力するためのベクトル変換部５２０と、図７に示す背景知識記憶部３９８に記憶された背景知識に基づき、各単語埋込ベクトルと質問３９０との関連度を要素とするアテンション行列５２６を出力するためのアテンション算出部５２４と、単語埋込ベクトル列５２２とアテンション行列５２６に対し後述する演算を行ってアテンション付ベクトル５３０を出力するための演算部５２８と、アテンション付ベクトル列５３０を入力として受け、回答候補ベクトル５３４（ベクトルｐ）に変換して出力するためのＣＮＮ５３２とを含む。ＣＮＮ５３２のパラメータも質問応答システム３８０の訓練の対象である。ベクトル変換部５２０は予め訓練済である。
【００４９】
図１１を参照して、図１０に示すアテンション算出部５２４は、ベクトル変換部５２０の出力する単語埋込ベクトル列５２２が表す各単語ｗに対して、背景知識記憶部３９８に記憶された「何」型質問に対する回答群に基づくｔｆｉｄｆを正規化したものを計算するための第１の正規化ｔｆｉｄｆ算出部５５０と、「なぜ」型質問に対する回答群に基づくｔｆｉｄｆを正規化したものを計算するための第２の正規化ｔｆｉｄｆ算出部５５２とを含む。
【００５０】
第１の正規化ｔｆｉｄｆ算出部５５０は、ベクトル変換部５２０の出力する単語埋込ベクトル列５２２の表す各単語ｗに対して以下の式（３）によりｔｆｉｄｆを計算するためのｔｆｉｄｆ算出部５７０と、ｔｆｉｄｆ算出部５７０により算出されたｔｆｉｄｆを以下の式（４）に示すようにソフトマックス関数により正規化したａｓｓｏｃ（ｗ,Ｂｔ）を算出するための正規化部５７２とを含む。ただし、式（３）及び（４）においてＢｔは「何」型質問により得られた質問と回答とのペアの集合を指し、ｔｆ（ｗ，Ｂｔ）は集合Ｂｔにおける単語ｗの単語頻度を表し、ｄｆ（ｗ）はファクトイド・なぜ型質問応答システム2が保持している回答検索用のコーパスＤ中における単語ｗの文書頻度を表し、｜Ｄ｜はコーパスＤ中の文書数を表す。
【００５１】
【数２】
2020004045.tif 000004
同様に、第２の正規化ｔｆｉｄｆ算出部５５２は、ベクトル変換部５２０の出力する単語埋込ベクトル列５２２の表す各単語ｗに対して以下の式（５）によりｔｆｉｄｆを計算するためのｔｆｉｄｆ算出部５８０と、ｔｆｉｄｆ算出部５８０により算出されたｔｆｉｄｆを以下の式（６）により正規化するための正規化部５８２とを含む。式（５）及び式（６）においてＢｃは「なぜ」型質問により得られた質問と回答とのペアの集合を指す。
【００５２】
【数３】
2020004045.tif 000005
図１０に示すアテンション行列５２６は、式（４）により得られた要素を第１行、式（６）により得られた要素を第２行とする行列である。アテンション行列５２６をアテンション行列Ａとする。図１０に示す演算部５２８は単語ベクトル列Ｘｐに対して以下の演算を行ってアテンション付きのアテンション付ベクトル列~Ｘｐ（記号「~」は式中では直後の直上に記載されている。）を計算する。
【００５３】
【数４】
2020004045.tif 000006
ただしｄは実施の形態で使用する質問及び回答等の各単語を表現する単語埋込ベクトルの次元数を表し、｜ｐ｜は回答候補を構成する単語数を示す。Ｗａはｄ行２列の重み行列であり、そのパラメータは訓練対象である。
【００５４】
こうして得られた回答候補ベクトル~Ｘｐが図１０に示すアテンション付ベクトル列５３０である。ＣＮＮ５３２はこのアテンション付ベクトル列５３０を入力として回答候補を表現する回答候補ベクトル５３４を出力する。ＣＮＮ５３２のパラメータは訓練対象である。
【００５５】
図１２を参照して、図７に示すエンコーダ４０６は、キー（質問）とその値（回答）とのペアの各々について、質問とその回答とをそれぞれ単語埋込ベクトル列６０２及び単語埋込ベクトル列６１２に変換するベクトル変換部６００及びベクトル変換部６１０と、単語埋込ベクトル列６０２及び単語埋込ベクトル列６１２をそれぞれベクトル６０６及びベクトル６１６に変換し出力するためのＣＮＮ６０４及びＣＮＮ６１４とを含む。ＣＮＮ６０４及びＣＮＮ６１４のパラメータは訓練の対象である。ベクトル変換部６００及びベクトル変換部６１０としては予め訓練済のものを用いる。
【００５６】
再び図７を参照して、第１レイヤ４０８は、キー（質問）とそのチャンク化された回答とのペアからなる背景知識を記憶するキー・バリューメモリ４２０と、エンコーダ４０２から質問を表すベクトルを受け、キー・バリューメモリ４２０をアクセスして背景知識を抽出するキー・バリューメモリアクセス部４２２と、キー・バリューメモリアクセス部４２２により抽出された背景知識を表すベクトルを用いてエンコーダ４０２の出力する質問を表すベクトルｑを以下の式（７）を用いて更新し、背景知識の表す情報が組込まれたベクトルｕ２として出力する更新部４２４とを含む。なお、後述するように第１レイヤ４０８と同じものを複数個重ねて用いることができ、各レイヤによる処理をホップと呼ぶ。各レイヤの更新部４２４をまとめてコントローラと呼ぶ。コントローラもニューラルネットワークで実現できる。ｍ番目のホップを第ｍホップと呼び、第ｍホップ後のコントローラの状態をｕｍで表す。ただし最初のコントローラの状態はエンコーダ４０２の出力するベクトルｑであり、ｑ＝ｕ１（ｍ＝１）である。また、ｍ番目のレイヤにおけるキー・バリューメモリアクセス部４２２の出力ベクトルをｏｍで表す。本実施の形態ではｍ＝１である。すなわち、第１レイヤ４０８による更新後のコントローラの状態はｕ２となる。
【００５７】
【数５】
2020004045.tif 000007
式（７）においてｏｍとｕｍの線形和に作用する行列Ｗｍｕは各ホップ固有のｄ´×ｄ´の重み行列であり、訓練の対象である。この実施の形態ではホップ数Ｈ＝１なのでＷ１ｕの１個のみが使用される。
【００５８】
第１レイヤ４０８はさらに、このベクトルｕ２とエンコーダ４０４の出力する回答候補ベクトルｐとを用いて以下の式（８）及び（９）により回答候補が質問に対する正解クラスに属する確率と誤答クラスに属する確率とをそれぞれ出力する、ロジスティック回帰層及びソフトマックス関数による出力層４１０とを含む。ただし以下の式（８）はホップ数＝Ｈとした一般式であり、本実施の形態ではＨ＝１である。すなわちｕＨ＋１＝ｕ２である。
【００５９】
【数６】
2020004045.tif 000008
式（９）において、＾ｙは予測ラベル分布である。行列Ｗｏは２行２×ｄ´＋１列の行列であり、バイアスベクトルｂｏとともに訓練によりパラメータが定められる。
【００６０】
キー・バリューメモリ４２０は、キー４５０及び４５２を記憶するキーメモリ４４０と、各キー４５０及び４５２に対応する回答４６０,…,４６２をキーに対する値として記憶するバリューメモリ４４２とを含む。
【００６１】
図１３は、図７に示すキー・バリューメモリアクセス部４２２の概略構成を示す。図１３を参照して、キー・バリューメモリアクセス部４２２は、エンコーダ４０２から質問ｑを表すベクトルを受け、図７に示すキー・バリューメモリ４２０のキーメモリ４４０をアクセスし、質問ｑを表すベクトルと各キーとの関連度の指標である内積を計算し、ソフトマックス関数で正規化して出力するための関連度計算部６３２と、関連度計算部６３２の出力する関連度ｒ１，…，ｒｎを一時記憶するための関連度記憶部６３６と、バリューメモリ４４２に記憶された各回答のベクトルに対し、同じ質問に対する回答を式（１）及び（２）にしたがって平均（チャンク化）するチャンク化処理部６３８（図６に示す平均処理部３３４に相当）と、関連度記憶部６３６に記憶された対応の質問から得られた関連度を重みとして、チャンク化処理部６３８によりチャンク化された平均回答ベクトルに乗じ、その合計を計算することにより回答の加重和ｏを算出するための加重和算出部６４０とを含む。
【００６２】
なお、上記式（７）に代えて以下の式（１０）による更新を行っても良い。
【００６３】
【数７】
2020004045.tif 000009
＜動作＞
上に構成を説明した質問応答システム３８０は以下のように動作する。質問応答システム３８０の動作フェーズとしては、訓練と推論との２つがある。最初に推論について説明し、その後に訓練について説明する。
【００６４】
〈推論〉
推論に先立って、必要なパラメータの訓練は全て終わっていることが前提である。図７を参照して、質問３９０及び回答候補３９２が質問応答システム３８０に入力される。推論結果は回答候補３９２が正解クラス及び誤答クラスにそれぞれ属する確率である。
【００６５】
図８を参照して、「何」型質問生成部４８０が質問３９０を１又は複数の「何」型質問に変換してファクトイド・なぜ型質問応答システム３９４に与え、各々の質問に対して１又は複数の回答を得る。「何」型質問生成部４８０はこれら回答の各々を対応する「何」型質問とペアにして背景知識記憶部３９８に格納する。同様に「なぜ」型質問生成部４８２が質問３９０を１又は複数の「なぜ」型質問に変換し、ファクトイド・なぜ型質問応答システム３９４に与えて各々に対して１又は複数の回答を得る。「なぜ」型質問生成部４８２は、これら回答の各々を元の「なぜ」型質問とペアにして背景知識記憶部３９８に格納する。背景知識記憶部３９８は質問と回答のペアの各々をエンコーダ４０６に与える。なお背景知識記憶部３９８は、背景知識記憶部３９８に記憶された「何」型質問に対する回答の集合Ｂｔからｔｆ（ｗ，Ｂｔ）を、「なぜ」型質問に対する回答の集合Ｂｃからｔｆ（ｗ，Ｂｃ）を、それぞれ計算し、図７に示すエンコーダ４０４に出力する。
【００６６】
図１２を参照して、エンコーダ４０６は背景知識記憶部３９８から与えられた質問と回答のペアの各々について、質問をベクトル変換部６００により単語埋込ベクトル列６０２に変換し、ＣＮＮ６０４によりさらにベクトル６０６に変換する。同様にエンコーダ４０６は、回答をベクトル変換部６１０により単語埋込ベクトル列６１２に変換し、ＣＮＮ６１４により更にベクトル６１６に変換する。エンコーダ４０６は、このように変換された質問ベクトル及び回答ベクトルのペアの各々をキー・バリューメモリ４２０に格納する。この処理の結果、今回の例では、キー・バリューメモリ４２０のキーメモリ４４０には「何」型質問に対応するキーと「なぜ」型質問に対応するキーとが格納され、バリューメモリ４４２には、これら各質問とペアになっている回答４６０,…,４６２が格納される。
【００６７】
一方、質問３９０はエンコーダ４０２に与えられる。図９を参照して、エンコーダ４０２のベクトル変換部５００は、質問３９０を単語埋込ベクトル列５０２に変換してＣＮＮ５０４に与える。ＣＮＮ５０４はこの単語埋込ベクトル列５０２を質問ベクトル５０６に変換しキー・バリューメモリアクセス部４２２に与える。
【００６８】
図７に示すエンコーダ４０４は、回答候補３９２を受けて以下のように動作する。図１０を参照して、ベクトル変換部５２０は回答候補３９２を単語埋込ベクトル列５２２に変換する。単語埋込ベクトル列５２２は演算部５２８及びアテンション算出部５２４に与えられる。
【００６９】
図１１を参照して、アテンション算出部５２４のｔｆｉｄｆ算出部５７０は、回答候補の各単語ｗに対し、「何」型質問に対する回答の集合Ｂｔから計算したｔｆ（ｗ，Ｂｔ）を背景知識記憶部３９８から受ける。ｔｆｉｄｆ算出部５７０はまた、図７に示すファクトイド・なぜ型質問応答システム３９４から、｜Ｄ｜／ｄｆ（ｗ）を受ける。ｔｆｉｄｆ算出部５７０は、これらから式（３）にしたがってｔｆｉｄｆ（ｗ,Ｂｔ）を計算し正規化部５７２に与える。
【００７０】
正規化部５７２は、図７に示す背景知識記憶部３９８からΣｊｅｔｆｉｄｆ（ｗｊ，Ｂｔ）を受け、式（４）にしたがって正規化されたｔｆｉｄｆであるａｓｓｏｃ（ｗ,Ｂｔ）を各単語ｗについて算出し、行列生成部５５４に与える。
【００７１】
第２の正規化ｔｆｉｄｆ算出部５５２のｔｆｉｄｆ算出部５８０及び正規化部５８２も、「なぜ」型質問に対する回答の集合Ｂｃから計算されたｔｆ（ｗ,Ｂｔ）を用い、ｔｆｉｄｆ算出部５７０と同様にして正規化されたｔｆｉｄｆであるａｓｓｏｃ（ｗ,Ｂｃ）を算出し行列生成部５５４に与える。
【００７２】
行列生成部５５４は、これらのａｓｓｏｃ（ｗ,Ｂｔ）を第１行、ａｓｓｏｃ（ｗ,Ｂｃ）を第２行に配置した行列を生成し、図１０に示すアテンション行列５２６として演算部５２８に与える。
【００７３】
演算部５２８は、ベクトル変換部５２０からの単語埋込ベクトル列５２２に対してアテンション行列５２６を乗ずることによりアテンション付の単語埋込ベクトル列５３０を生成しＣＮＮ５３２に与える。
【００７４】
ＣＮＮ５３２は、この入力に応答して回答候補ベクトル５３４を出力し出力層４１０の入力に与える。
【００７５】
一方、図１３を参照して、エンコーダ４０２から質問ベクトルｑを受けた関連度計算部６３２は、キーメモリ４４０に格納されている各キー（背景知識の質問ベクトル）と質問ベクトルｑとの内積を取ることにより質問ｑと背景知識の各質問ベクトルとの関連度の指標を計算し、さらにソフトマックス関数によって各関連度を正規化して関連度記憶部６３６に格納する。
【００７６】
チャンク化処理部６３８は同じ質問に対する回答のベクトルの平均を式（１）及び（２）により算出し（チャンク化し）、正規化された回答ベクトルを算出する。すなわち、ここでいう正規化とは、各回答のベクトルを平均したものを求めることをいう。このような正規化を行うと以下のような効果がある。すなわち、ある質問に対して抽出された回答の集合に含まれる回答数が多い場合には、その集合にはかなりノイズが含まれると考えられる。一方、そのような回答の数が少ない質問は的確な質問であり、その回答の集合に含まれるノイズは少ないと考えられる。そこで、各質問に対する回答の集合を正規化すると、ノイズに相当する回答の重みがそうでない回答の重みに対して相対的に小さくなる。すなわち、知識源から得た背景知識におけるノイズを削減できる。そのため、最終的な回答が質問に対する的確な回答となる確率が高くなる。
【００７７】
加重和算出部６４０は、関連度記憶部６３６に記憶された関連度を重みとして、チャンク化処理部６３８により正規化された回答ベクトルの加重和を計算し、ベクトルｏとして図７に示す更新部４２４に出力する。
【００７８】
図７を参照して、更新部４２４は、式（７）にしたがってエンコーダ４０２から受けた質問ベクトルｑ（ｕ１）とベクトルｏ（ｏ１）との間で演算を行い、その結果のベクトルｕ２を出力層４１０の入力に与える。
【００７９】
出力層４１０は、エンコーダ４０４から与えられたアテンション付の回答候補ベクトルと、更新部４２４から与えられた更新後の質問ベクトルｕとの間で式（８）による演算を行って結果を出力する。この結果が、回答候補３９２が質問３９０に対する正しい回答かどうかの判定結果となる。
【００８０】
〈訓練〉
質問応答システム３８０のうち、エンコーダ４０２、４０４及び４０６以後の処理はニューラルネットワークで実現される。まず、質問と、その質問に対する回答候補とのペアを多数収集し、各ペアを訓練サンプルとする。訓練サンプルとしては正例と負例との双方を準備する。正例とは、回答候補が質問に対する正しい回答であるもののことをいい、負例とはそうでないものをいう。正例と負例とは各訓練サンプルに付されたラベルにより区別される。ニューラルネットワークのパラメータは、公知の方法により初期化される。
【００８１】
質問３９０と回答候補３９２として訓練サンプルの質問と回答候補とがエンコーダ４０２及び４０６に与えられる。質問応答システム３８０はこれらに対して上記した推論処理と同じ処理を実行し、結果を出力層４１０から出力する。この結果は、０から１の間で回答候補が正解クラスに属する確率と、誤答クラスに属する確率である。ラベル（０又は１）とこの出力との間の誤差を計算し、質問応答システム３８０のパラメータを誤差逆伝搬法により更新する。
【００８２】
こうした処理を全ての訓練サンプルに対して実行し、その結果、質問応答システム３８０の回答精度がどの程度となったかを別に準備した検証用データセットで検証する。検証結果の精度の変化が所定のしきい値より大きければ、再度全ての訓練サンプルに対して訓練を実行する。精度の変化がしきい値未満となった時点で訓練を終了する。繰返し回数が所定のしきい値となった時点で訓練を終了してもよい。
【００８３】
このようにして訓練をした結果、質問応答システム３８０を構成する各部のパラメータの訓練が行われる。
【００８４】
［第２の実施の形態］
第１の実施の形態ではホップ数Ｈ＝１、すなわちキー・バリューメモリアクセス部４２２によるメモリアクセスと更新部４２４による質問の更新とが１回のみ行われるものであった。しかし本発明はそのような実施の形態には限定されない。ホップ数が２以上でもよい。実験によれば、ホップ数Ｈ＝３の質問応答システムが最もよい性能を示した。第２の実施の形態はホップ数Ｈ＝３の場合を示す。
【００８５】
図１４を参照して、この第２の実施の形態に係る質問応答システム６６０は、図７に示す質問応答システム３８０の構成に、第１レイヤ４０８といずれも同様の構成を持つ第２レイヤ６７０及び第３レイヤ６７２を含む点である。これらの構造は第１レイヤ４０８と同様であるためここではその説明は繰返さない。
【００８６】
図１４に示すように、第１レイヤ４０８の更新部４２４の出力ｕ１は第２レイヤ６７０の更新部及びキー・バリューメモリアクセス部に与えられる。同様に、第２レイヤ６７０の更新部の出力ｕ２は第３レイヤ６７２の更新部及びキー・バリューメモリアクセス部に与えられる。第３レイヤ６７２の更新部の出力ｕ３は第１の実施の形態における第１レイヤ４０８の更新部４２４の出力と同様、出力層４１０に与えられる。これら各更新部によりコントローラ６８０が形成される。
【００８７】
この第２の実施の形態に係る質問応答システム６６０の動作は、推論時においても訓練時においても、第１レイヤ４０８だけではなく第２レイヤ６７０及び第３レイヤ６７２の処理を行う点を除き、第１の実施の形態と同様である。したがってここではその詳細な説明は繰返さない。
【００８８】
なお、キー・バリューメモリ４２０は第１レイヤ４０８、第２レイヤ６７０及び第３レイヤ６７２で共通に使用される。ただし、式（２）に示す行列Ｗｍｖ及びＷｍｋ（ｍ＝１,２,３）は、レイヤ毎に異なる行列であり、訓練の対象である。
【００８９】
［実験結果］
ホップ数Ｈの値を様々に代えた質問応答システムにより実験を行ったが、前述したとおり、ホップ数Ｈ＝３のときに最も良い性能を示した。図１５にその結果を示す。
【００９０】
図１５において、Ｂａｓｅは質問と回答のみを用いてニューラルネットワークで回答判定を行うシステムを表す。Ｂａｓｅ＋ＢＫはＢａｓｅに上記各実施の形態と同様の手法で獲得した背景知識を与えたシステムである。ただしメモリネットワークと異なり、質問に対する処理は行わない。Ｂａｓｅ＋ＫＶＭｓは背景知識の処理に非特許文献２において提案されたＫＶＭｓを使ったシステムを表す。Ｂａｓｅ＋ｃＫＶＭｓは上記第２の実施の形態の質問応答システム６６０に相当するシステムである。またＰ＠１は最上位回答の精度であり、ＭＡＰは上位２０の回答の精度の平均を表す。
【００９１】
図１５において、Ｂａｓｅ＋ＢＫはＢａｓｅに対してＰ＠１で＋６．８ポイント、ＭＡＰで＋６．１ポイントの改善を示した。したがって上記実施の形態で提案した背景知識がＨＯＷ型質問応答において有効であることが分かる。さらに、Ｂａｓｅ＋ＫＶＭｓと比較してＢａｓｅ＋ｃＫＶＭｓではＰ＠１で＋５．２ポイント、ＭＡＰでは＋２．５ポイントの改善を示した。したがって、ＫＶＭｓに代えてｃＫＶＭｓを使うことで精度をより向上させることができることが分かった。
【００９２】
［コンピュータによる実現」
上記した各実施の形態に係る質問応答システム３８０及び質問応答システム６６０の各機能部は、それぞれコンピュータハードウェアと、そのハードウェア上でＣＰＵ（中央演算処理装置）及びＧＰＵ（Graphics  Processing  Unit）により実行されるプログラムとにより実現できる。図１６及び図１７に上記各装置及びシステムを実現するコンピュータハードウェアを示す。ＧＰＵは通常は画像処理を行うために使用されるが、このようにＧＰＵを画像処理ではなく通常の演算処理に使用する技術をＧＰＧＰＵ（General-purpose  computing  on  graphics  processing  units）と呼ぶ。ＧＰＵは同種の複数の演算を同時並列的に実行できる。一方、ニューラルネットワークの動作時には、各ノードの重み演算は単純な積和演算であり、しかもそれらは同時に超並列的に実行できる。訓練時にはさらに大量の演算を行う必要が生ずるが、それらも超並列的に実行できる。したがって、質問応答システム３８０及び質問応答システム６６０を構成するニューラルネットワークの訓練と推論にはＧＰＧＰＵを備えたコンピュータが適している。
【００９３】
図１６を参照して、このコンピュータシステム８３０は、メモリポート８５２及びＤＶＤ（Digital  Versatile  Disk）ドライブ８５０を有するコンピュータ８４０と、キーボード８４６と、マウス８４８と、モニタ８４２とを含む。
【００９４】
図１７を参照して、コンピュータ８４０は、メモリポート８５２及びＤＶＤドライブ８５０に加えて、ＣＰＵ８５６及びＧＰＵ８５８と、ＣＰＵ８５６、ＧＰＵ８５８、メモリポート８５２及びＤＶＤドライブ８５０に接続されたバス８６６と、ブートプログラム等を記憶する読出専用メモリであるＲＯＭ８６０と、バス８６６に接続され、プログラム命令、システムプログラム及び作業データ等を記憶するコンピュータ読出可能な記憶媒体であるランダムアクセスメモリ（ＲＡＭ）８６２と、ハードディスク８５４を含む。コンピュータ８４０はさらに、いずれもバス８６６に接続され、他端末との通信を可能とするネットワーク８６８への接続を提供するネットワークインターフェイス（Ｉ／Ｆ）８４４と、外部との音声信号の入出力を行うための音声Ｉ／Ｆ８７０とを含む。
【００９５】
コンピュータシステム８３０を上記した実施の形態に係る各装置及びシステムの各機能部として機能させるためのプログラムは、ＤＶＤドライブ８５０又はメモリポート８５２に装着される、いずれもコンピュータ読出可能な記憶媒体であるＤＶＤ８７２又はリムーバブルメモリ８６４に記憶され、さらにハードディスク８５４に転送される。又は、プログラムはネットワーク８６８を通じてコンピュータ８４０に送信されハードディスク８５４に記憶されてもよい。プログラムは実行の際にＲＡＭ８６２にロードされる。ＤＶＤ８７２から、リムーバブルメモリ８６４から又はネットワーク８６８を介して、直接にＲＡＭ８６２にプログラムをロードしてもよい。また、上記処理に必要なデータは、ハードディスク８５４、ＲＡＭ８６２、ＣＰＵ８５６又はＧＰＵ８５８内のレジスタ等の所定のアドレスに記憶され、ＣＰＵ８５６又はＧＰＵ８５８により処理され、プログラムにより指定されるアドレスに格納される。最終的に訓練が終了したニューラルネットワークのパラメータは、ニューラルネットワークの訓練及び推論アルゴリズムを実現するプログラムとともに例えばハードディスク８５４に格納されたり、ＤＶＤドライブ８５０及びメモリポート８５２をそれぞれ介してＤＶＤ８７２又はリムーバブルメモリ８６４に格納されたりする。又は、ネットワークＩ／Ｆ８４４を介してネットワーク８６８に接続された他のコンピュータ又は記憶装置に送信される。
【００９６】
このプログラムは、コンピュータ８４０を、上記実施の形態に係る各装置及びシステムとして機能させるための複数の命令からなる命令列を含む。上記各装置及びシステムにおける数値演算処理は、ＣＰＵ８５６及びＧＰＵ８５８を用いて行う。ＣＰＵ８５６のみを用いてもよいがＧＰＵ８５８を用いる方が高速である。コンピュータ８４０にこの動作を行わせるのに必要な基本的機能のいくつかはコンピュータ８４０上で動作するオペレーティングシステム若しくはサードパーティのプログラム又はコンピュータ８４０にインストールされる、ダイナミックリンク可能な各種プログラミングツールキット又はプログラムライブラリにより提供される。したがって、このプログラム自体はこの実施の形態のシステム、装置及び方法を実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令のうち、所望の結果が得られるように制御されたやり方で適切な機能又はプログラミングツールキット又はプログラムライブラリ内の適切なプログラムを実行時に動的に呼出すことにより、上記したシステム、装置又は方法としての機能を実現する命令のみを含んでいればよい。もちろん、プログラムのみで必要な機能を全て提供してもよい。
【００９７】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。
【符号の説明】
【００９８】
１５０  Key-value  memory
１７０、３９０  質問
１７２  マッチング
１７４、３３０  keyメモリ
１７６、３３２  valueメモリ
１７８  加重和
２５０  How型質問
２５２、２８０、２８２  「何」型質問
２５４  「なぜ」型質問
２５６  「何」型質問応答システム
２５８  「なぜ」型質問応答システム
２６０、２６２、３５０、３５２  回答群
２９０、２９２、２９４、２９６、２９８、３００  回答
３２０  chunked  key-value  memory
３３４  平均処理部
３８０、６６０  質問応答システム
３９２  回答候補
３９４  ファクトイド・なぜ型質問応答システム
３９６  背景知識抽出部
３９８  背景知識記憶部
４０２、４０４、４０６  エンコーダ
４０８  第１レイヤ
４１０  出力層
４２０  キー・バリューメモリ
４２２  キー・バリューメモリアクセス部
４２４  更新部
４４０  キーメモリ
４４２  バリューメモリ
４５０、４５２  キー
４６０、４６２  回答
４８０  「何」型質問生成部
４８２  「なぜ」型質問生成部
５００、５２０、６００、６１０  ベクトル変換部
５０２、５２２、６０２、６１２  単語埋込ベクトル列
５０４、５３２、６０４、６１４  ＣＮＮ
５０６  質問ベクトル
５２４  アテンション算出部
５２６  アテンション行列
５２８  演算部
５３０  アテンション付ベクトル列
５３４  回答候補ベクトル
５５０  第１の正規化ｔｆｉｄｆ算出部
５５２  第２の正規化ｔｆｉｄｆ算出部
５７０、５８０  ｔｆｉｄｆ算出部
５７２、５８２  正規化部
６３２  関連度計算部
６３６  関連度記憶部
６３８  チャンク化処理部
６４０  加重和算出部
６７０  第２レイヤ
６７２  第３レイヤ
【図１】
2020004045.tif 000010
【図２】
2020004045.tif 000011
【図３】
2020004045.tif 000012
【図４】
2020004045.tif 000013
【図５】
2020004045.tif 000014
【図６】
2020004045.tif 000015
【図７】
2020004045.tif 000016
【図８】
2020004045.tif 000017
【図９】
2020004045.tif 000018
【図１０】
2020004045.tif 000019
【図１１】
2020004045.tif 000020
【図１２】
2020004045.tif 000021
【図１３】
2020004045.tif 000022
【図１４】
2020004045.tif 000023
【図１５】
2020004045.tif 000024
【図１６】
2020004045.tif 000025
【図１７】
2020004045.tif 000026