(57)【要約】【課題】精度の高い質問応答を実現すること。【解決手段】文書及び質問を入力として、所定の第１の語彙と、前記文書及び前記質問に含まれる単語により構成される第２の語彙との和集合に含まれる単語を用いて、前記質問に対する回答文を生成する処理を学習済モデルにより実行する回答生成手段を有し、前記学習済モデルは、前記回答文に含まれる単語が前記第２の語彙に含まれるか否かについて予め学習した学習済ニューラルネットワークを含み、該学習済ニューラルネットワークにより、前記回答文の生成時に、該回答文に含まれる単語として、前記第２の語彙に含まれる単語が選択される確率を増減させる、ことを特徴とする。【選択図】図２
2019191827.tif 000002
【特許請求の範囲】
【請求項１】
文書及び質問を入力として、所定の第１の語彙と、前記文書及び前記質問に含まれる単語により構成される第２の語彙との和集合に含まれる単語を用いて、前記質問に対する回答文を生成する処理を学習済モデルにより実行する回答生成手段を有し、
前記学習済モデルは、前記回答文に含まれる単語が前記第２の語彙に含まれるか否かについて予め学習した学習済ニューラルネットワークを含み、該学習済ニューラルネットワークにより、前記回答文の生成時に、該回答文に含まれる単語として、前記第２の語彙に含まれる単語が選択される確率を増減させる、
ことを特徴とする質問応答装置。
【請求項２】
前記文書及び前記質問にそれぞれ含まれる単語の単語ベクトル系列からマッチング行列を計算するマッチング手段と、
前記マッチング手段により計算されたマッチング行列から、前記文書に含まれる単語の第１の注視を計算する文書注視手段と、
前記マッチング手段により計算されたマッチング行列から、前記質問に含まれる単語の第２の注視を計算する質問注視手段と、
を有し、
前記確率の分布は、前記第１の注視の分布と、前記第２の注視の分布とを用いて計算される、ことを特徴とする請求項１に記載の質問応答装置。
【請求項３】
文書と、質問と、該質問に対する正解回答文とが含まれる訓練データを入力として、所定の第１の語彙と、前記文書及び前記質問に含まれる単語により構成される第２の語彙との和集合を用いて、該和集合に含まれる各単語が、前記質問に対する回答文に含まれる単語として選択される確率の分布を計算する処理をニューラルネットワークにより実行する計算手段と、
前記正解回答文と、前記確率の分布とを用いて計算された損失から、前記ニューラルネットワークのパラメータを更新する更新手段と、
ことを特徴とする質問応答装置。
【請求項４】
コンピュータが、
文書及び質問を入力として、所定の第１の語彙と、前記文書及び前記質問に含まれる単語により構成される第２の語彙との和集合に含まれる単語を用いて、前記質問に対する回答文を生成する処理を学習済モデルにより実行する回答生成手順を実行し、
前記学習済モデルは、前記回答文に含まれる単語が前記第２の語彙に含まれるか否かについて予め学習した学習済ニューラルネットワークを含み、該学習済ニューラルネットワークにより、前記回答文の生成時に、該回答文に含まれる単語として、前記第２の語彙に含まれる単語が選択される確率を増減させる、
ことを特徴とする質問応答方法。
【請求項５】
コンピュータが、
文書と、質問と、該質問に対する正解回答文とが含まれる訓練データを入力として、所定の第１の語彙と、前記文書及び前記質問に含まれる単語により構成される第２の語彙との和集合を用いて、該和集合に含まれる各単語が、前記質問に対する回答文に含まれる単語として選択される確率の分布を計算する処理をニューラルネットワークにより実行する計算手順と、
前記正解回答文と、前記確率の分布とを用いて計算された損失から、前記ニューラルネットワークのパラメータを更新する更新手順と、
を実行することを特徴とする質問応答方法。
【請求項６】
コンピュータを、請求項１乃至３の何れか一項に記載の質問応答装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、質問応答装置、質問応答方法及びプログラムに関する。
【背景技術】
【０００２】
与えられた文書及び質問に対して回答文を生成する「読解」を人工知能により正確に行うことができれば、質問応答、知的エージェント等の幅広いサービスに応用することができる。
【０００３】
読解を行うための従来技術として、例えば非特許文献１等に開示された技術がある。非特許文献１等に開示されている従来技術では、例えば、文書及び質問の単語系列を符号化（ベクトル化）し、各単語系列のベクトル表現のマッチングを取った上で、文書の内容に基づいて回答を生成している。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Chuanqi Tan, Furu Wei, Nan Yang, Weifeng Lv, Ming Zhou: S-Net: From Answer Extraction to Answer Generation for Machine Reading Comprehension. CoRR abs/1706.04815 (2017)
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、読解においては、回答に含まれる単語は、質問及び文書の中に含まれる場合が多い。しかしながら、非特許文献１等に開示されている従来技術では、或る特定の語彙（例えば、一般的な文書に頻出する単語によって構成される語彙）に含まれる単語から回答を生成している。このため、この語彙に含まれない単語（例えば、固有名詞や専門用語等の単語）が文書中に存在する場合、この単語が未知語として扱われてしまい、精度の高い回答文が得られないことがある。
【０００６】
本発明の実施の形態は、上記の点に鑑みてなされたもので、精度の高い質問応答を実現することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の実施の形態は、文書及び質問を入力として、所定の第１の語彙と、前記文書及び前記質問に含まれる単語により構成される第２の語彙との和集合に含まれる単語を用いて、前記質問に対する回答文を生成する処理を学習済モデルにより実行する回答生成手段を有し、前記学習済モデルは、前記回答文に含まれる単語が前記第２の語彙に含まれるか否かについて予め学習した学習済ニューラルネットワークを含み、該学習済ニューラルネットワークにより、前記回答文の生成時に、該回答文に含まれる単語として、前記第２の語彙に含まれる単語が選択される確率を増減させる、ことを特徴とする。
【発明の効果】
【０００８】
精度の高い質問応答を実現することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態における質問応答時の質問応答装置の機能構成の一例を示す図である。
【図２】本発明の実施の形態における学習時の質問応答装置の機能構成の一例を示す図である。
【図３】単語ベクトル記憶部に格納されているデータの一例を示す図である。
【図４】本発明の実施の形態における質問応答装置のハードウェア構成の一例を示す図である。
【図５】本発明の実施の形態における学習処理の一例を示すフローチャートである。
【図６】本発明の実施の形態におけるパラメータ更新処理の一例を示すフローチャートである。
【図７】本発明の実施の形態における質問応答処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。以降では、与えられた文書及び質問の中に含まれる単語を精度良く回答文中に含めることで、精度の高い質問応答を実現する質問応答装置１００について説明する。
【００１１】
なお、以下で説明する実施の形態は一例に過ぎず、本発明を適用可能な形態は、以下の実施の形態に限定されない。例えば、本発明の実施の形態に係る技術は、専門文書に関する質問応答等に利用可能であるが、利用対象はこれに限られず、様々な対象に利用可能である。
【００１２】
（概要）
本発明の実施の形態では、任意の文書と、この文書に対する任意の質問文（以降、単に「質問」と表す。）とが与えられた場合、質問応答装置１００が、ニューラルネットワークによる文生成技術を用いて、文書及び質問に対する回答文となる単語列を生成する。このとき、本発明の実施の形態では、或る特定の語彙（例えば、一般的な文書に頻出する単語によって構成される語彙であり、後述する語彙Ｖ）だけでなく、質問応答装置１００に与えられた文書及び質問に含まれる単語によって構成される語彙（後述する語彙Ｂ）も用いて、当該質問に対する回答文を生成する。この回答文が出力されることで、与えられた文書及び質問に対する質問応答が行われる。
【００１３】
より具体的には、本発明の実施の形態では、回答文に含まれる単語をニューラルネットワークにより生成する際に、文書及び質問に含まれる単語の出現確率を増減させる。これにより、本発明の実施の形態では、文書及び質問に含まれる単語を、精度良く回答文に含めることが可能となる。
【００１４】
また、本発明の実施の形態では、上記の回答文を生成するために、回答文に含まれる単語が、与えられた文書及び質問に含まれるか否かを識別するニューラルネットワークを学習する。
【００１５】
ここで、本発明の実施の形態では、一般的な文書に頻出する単語によって構成される語彙を「Ｖ」、質問応答装置１００に与えられた文書及び質問に出現する単語によって構成される語彙を「Ｂ」と表す。また、語彙Ｖと語彙Ｂとの和集合で表される語彙を「Ｖ´」と表す。
【００１６】
語彙Ｖは、例えば、大量のテキスト集合等の一般的な文書集合中に出現する単語のうち、出現頻度が上位数万〜数十万語である単語の集合として構成することができる。また、語彙Ｂは、例えば、質問応答装置１００に与えられた文書及び質問中に出現する単語の集合として構成することができる。なお、語彙Ｖ´には、文書の文頭や文末を表す特殊単語（例えば、＜ｓ＞や＜／ｓ＞等）も含まれる。
【００１７】
（質問応答装置１００の機能構成）
まず、本発明の実施の形態における質問応答時の質問応答装置１００の機能構成について、図１を参照しながら説明する。図１は、本発明の実施の形態における質問応答時の質問応答装置１００の機能構成の一例を示す図である。
【００１８】
図１に示すように、質問応答時の質問応答装置１００は、単語ベクトル記憶部１０１と、入力部１０２と、単語系列符号化部１０３と、単語系列マッチング部１０４と、文書注視部１０５と、質問注視部１０６と、回答生成部１０７と、出力部１０８とを有する。
【００１９】
また、本発明の実施の形態における学習時の質問応答装置１００の機能構成について、図２を参照しながら説明する。図２は、本発明の実施の形態における学習時の質問応答装置１００の機能構成の一例を示す図である。
【００２０】
図２に示すように、学習時の質問応答装置１００は、質問応答時の質問応答装置１００の機能構成に対して、出力部１０８を有さずに、パラメータ更新部１０９を有している点が異なる。学習時の質問応答装置１００のその他の機能構成は、質問応答時の質問応答装置１００の機能構成と同様である。ただし、学習時の質問応答装置１００は、出力部１０８を有していても良い。すなわち、学習時の質問応答装置１００は、質問応答時の質問応答装置１００の機能構成に対して、パラメータ更新部１０９を追加した機能構成であっても良い。
【００２１】
単語ベクトル記憶部１０１は、単語と、この単語をベクトルで表現した単語ベクトルとの組を格納している。以降では、単語ベクトルの次元数はＥ次元であるものとする。単語と単語ベクトルとの組は、例えば、以下の参考文献１に開示されている方法により生成することができる。なお、Ｅとしては、例えば、Ｅ＝３００等とすれば良い。
【００２２】
［参考文献１］
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.
ここで、単語ベクトル記憶部１０１に格納されているデータ（単語と単語ベクトルとの組）の一例を図３に示す。図３は、単語ベクトル記憶部１０１に格納されているデータの一例を示す図である。図３に示すように、単語ベクトル記憶部１０１では、例えば、「ｇｏ」や「ｗｒｉｔｅ」、「ｂａｓｅｂａｌｌ」等の単語に対して、当該単語をベクトルで表現した単語ベクトルが対応付けられている。
【００２３】
なお、単語ベクトル記憶部１０１に記憶されていない単語の単語ベクトルは、Ｅ次元の零ベクトルであるものとする。また、所定の長さのベクトル系列を作成する際のパディングに用いられる特殊単語「ＰＡＤ」の単語ベクトルは、Ｅ次元の零ベクトルであるものとする。
【００２４】
入力部１０２は、質問応答時において、与えられた文書及び質問を入力する。また、入力部１０２は、学習時において、訓練データセット（すなわち、文書と質問と正解回答文との組である訓練データから構成される集合（データセット））を入力する。
【００２５】
単語系列符号化部１０３は、入力部１０２により入力された文書に含まれる各単語の系列（以降、「単語系列」と表す。）を、当該単語系列を構成する各単語それぞれをベクトルで表現したベクトル系列（以降、「第１の文書ベクトル系列」と表す。）に変換する。また、単語系列符号化部１０３は、第１の文書ベクトル系列を、ニューラルネットワークによる符号化器を用いて第２の文書ベクトル系列に変換する。
【００２６】
単語系列符号化部１０３は、入力部１０２により入力された質問に含まれる単語系列を、当該単語系列を構成する各単語それぞれをベクトルで表現したベクトル系列（以降、「第１の質問ベクトル系列」と表す。）に変換する。また、単語系列符号化部１０３は、第１の質問ベクトル系列を、ニューラルネットワークによる符号化器を用いて第２の質問ベクトル系列に変換する。
【００２７】
単語系列マッチング部１０４は、単語系列符号化部１０３により得られた第２の文書ベクトル系列及び第２の質問ベクトル系列について、マッチング行列を計算する。
【００２８】
文書注視部１０５は、単語系列マッチング部１０４により計算されたマッチング行列を用いて、文書に含まれる各単語の注視を計算する。
【００２９】
質問注視部１０６は、単語系列マッチング部１０４により計算されたマッチング行列を用いて、質問に含まれる各単語の注視を計算する。
【００３０】
回答生成部１０７は、ニューラルネットワークによる復号化器と、文書注視部１０５により計算された文書に含まれる各単語の注視の分布（以降、「注視分布」と表す。）と、質問注視部１０６により計算された質問に含まれる各単語の注視分布と、語彙Ｖに含まれる単語の確率分布とを用いて、語彙Ｖ´に含まれる各単語が、回答文に含まれる単語として選択されるスコアを計算する。そして、回答生成部１０７は、質問応答時において、計算したスコアを用いて、回答文に含まれる各単語を語彙Ｖ´から選択する。これにより、回答文が生成される。
【００３１】
出力部１０８は、質問応答時において、回答生成部１０７により生成された回答文を出力する。なお、回答文の出力先は限定されない。回答文の出力先としては、例えば、ディスプレイ等の表示装置、ＨＤＤ（Hard Disk Drive）等の補助記憶装置、スピーカ等の音声出力装置、通信ネットワークを介して接続される他の装置等が挙げられる。
【００３２】
パラメータ更新部１０９は、学習時において、回答生成部１０７により計算されたスコアを表す確率分布と、入力部１０２により入力された正解回答文とを用いて、損失を計算する。そして、パラメータ更新部１０９は、この損失を用いて、任意の最適化方法によりパラメータを更新する。これにより、回答文に含まれる単語を生成するためのニューラルネットワークが学習される。
【００３３】
なお、訓練データセットを用いてパラメータの更新が行われた後、質問応答装置１００は、訓練データセットに含まれない文書及び質問（訓練データセットに含まれない文書及び質問を示すデータは「テストデータ」とも呼ばれる。）を用いて、学習されたニューラルネットワークの認識精度の評価（すなわち、回答生成部１０７により生成される回答文の精度に関する評価）を行っても良い。
【００３４】
（質問応答装置１００のハードウェア構成）
次に、本発明の実施の形態における質問応答装置１００のハードウェア構成について、図４を参照しながら説明する。図４は、本発明の実施の形態における質問応答装置１００のハードウェア構成の一例を示す図である。
【００３５】
図４に示すように、本発明の実施の形態における質問応答装置１００は、入力装置１５１と、表示装置１５２と、外部Ｉ／Ｆ１５３と、ＲＡＭ（Random Access Memory）１５４と、ＲＯＭ（Read Only Memory）１５５と、演算装置１５６と、通信Ｉ／Ｆ１５７と、補助記憶装置１５８とを有する。これら各ハードウェアは、それぞれがバスＢを介して通信可能に接続されている。
【００３６】
入力装置１５１は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置１５２は、例えばディスプレイ等であり、質問応答装置１００の処理結果（例えば、質問に対する回答文等）を表示する。なお、質問応答装置１００は、入力装置１５１及び表示装置１５２の少なくとも一方を有していなくても良い。
【００３７】
外部Ｉ／Ｆ１５３は、外部装置とのインタフェースである。外部装置には、記録媒体１５３ａ等がある。質問応答装置１００は、外部Ｉ／Ｆ１５３を介して、記録媒体１５３ａ等の読み取りや書き込み等を行うことができる。記録媒体１５３ａには、質問応答装置１００が有する各機能部を実現する１以上のプログラム等が記録されていても良い。
【００３８】
記録媒体１５３ａには、例えば、フレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk）、ＳＤメモリカード（Secure Digital memory card）、ＵＳＢ（Universal Serial Bus）メモリカード等がある。
【００３９】
ＲＡＭ１５４は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＲＯＭ１５５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＲＯＭ１５５には、例えば、ＯＳ（Operating System）に関する設定や通信ネットワークに関する設定等が格納されている。
【００４０】
演算装置１５６は、例えば、ＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）等であり、ＲＯＭ１５５や補助記憶装置１５８等からプログラムやデータをＲＡＭ１５４上に読み出して処理を実行する。質問応答装置１００が有する各機能部は、例えば、補助記憶装置１５８に格納されている１以上のプログラムが演算装置１５６に実行させる処理により実現される。なお、質問応答装置１００は、演算装置１５６としてＣＰＵとＧＰＵとの両方を有していても良いし、ＣＰＵ又はＧＰＵのいずれか一方のみを有していても良い。
【００４１】
通信Ｉ／Ｆ１５７は、質問応答装置１００を通信ネットワークに接続するためのインタフェースである。質問応答装置１００が有する各機能部を実現する１以上のプログラムは、通信Ｉ／Ｆ１５７を介して、所定のサーバ装置等から取得（ダウンロード）されても良い。
【００４２】
補助記憶装置１５８は、例えばＨＤＤやＳＳＤ（Solid State Drive）等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置１５８に格納されているプログラムやデータには、例えば、ＯＳ、質問応答装置１００が有する各機能部を実現する１以上のプログラム等がある。
【００４３】
本発明の実施の形態における質問応答装置１００は、図４に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。なお、図４に示す例では、本発明の実施の形態における質問応答装置１００が１台の装置（コンピュータ）で実現される場合について説明したが、これに限られない。本発明の実施の形態における質問応答装置１００は、複数台の装置（コンピュータ）で実現されていても良い。
【００４４】
（学習処理）
以降では、本発明の実施の形態における質問応答装置１００が実行する学習処理について、図５を参照しながら説明する。図５は、本発明の実施の形態における学習処理の一例を示すフローチャートである。上述したように、学習時の質問応答装置１００は、図２に示す各機能部を有する。
【００４５】
ステップＳ１０１：入力部１０２は、訓練データセットを入力する。入力部１０２は、例えば、補助記憶装置１５８や記録媒体１５３等に格納されている訓練データセットを入力しても良いし、通信Ｉ／Ｆ１５７を介して所定のサーバ装置等から取得（ダウンロード）した訓練データセットを入力しても良い。
【００４６】
ステップＳ１０２：入力部１０２は、訓練データセットの学習回数を示すエポック数ｎｅを１に初期化する。なお、エポック数ｎｅの最大値は、ハイパーパラメータであり、Ｎｅであるものとする。Ｎｅとしては、例えば、Ｎｅ＝１５等とすれば良い。
【００４７】
ステップＳ１０３：入力部１０２は、訓練データセットをＮｂ個のミニバッチに分割する。なお、ミニバッチへの分割数Ｎｂは、ハイパーパラメータである。Ｎｂとしては、例えば、Ｎｂ＝６０等とすれば良い。
【００４８】
ステップＳ１０４：質問応答装置１００は、Ｎｂ個のミニバッチ毎に、パラメータ更新処理を繰り返し実行する。すなわち、質問応答装置１００は、ミニバッチを用いて損失を計算した上で、計算した損失を用いて、任意の最適化方法によりパラメータを更新する。なお、パラメータ更新処理の詳細については後述する。
【００４９】
ステップＳ１０５：入力部１０２は、エポック数ｎｅがＮｅ−１より大きいか否かを判定する。エポック数ｎｅがＮｅ−１より大きいと判定されなかった場合、質問応答装置１００は、ステップＳ１０６の処理を実行する。一方で、エポック数ｎｅがＮｅ−１より大きいと判定された場合、質問応答装置１００は、学習処理を終了する。
【００５０】
ステップＳ１０６：入力部１０２は、エポック数ｎｅに対して「１」を加算する。そして、質問応答装置１００は、ステップＳ１０３の処理を実行する。これにより、ステップＳ１０１で入力された訓練データセットを用いて、ステップＳ１０３〜ステップＳ１０４の処理がＮｅ回繰り返し実行される。
【００５１】
（パラメータ更新処理）
ここで、上記のステップＳ１０４におけるパラメータ更新処理について、図６を参照しながら説明する。図６は、本発明の実施の形態におけるパラメータ更新処理の一例を示すフローチャートである。なお、以降では、Ｎｂ個のミニバッチのうちの或る１つのミニバッチを用いたパラメータ更新処理について説明する。
【００５２】
ステップＳ２０１：入力部１０２は、ミニバッチの中から１つの訓練データを取得する。なお、訓練データは、文書と質問と正解回答文の組（すなわち、（文書，質問，正解回答文）で表されるデータ）である。以降では、「文書」、「質問」及び「正解回答文」と表した場合、ステップＳ２０１で取得された訓練データに含まれる文書、質問及び正解回答文をそれぞれ指すものとする。
【００５３】
ステップＳ２０２：単語系列符号化部１０３は、以下のステップＳ２０２−１〜ステップＳ２０２−２により第１の文書ベクトル系列Ｘ及び第２の文書ベクトル系列Ｈを得る。
【００５４】
ステップＳ２０２−１：単語系列符号化部１０３は、文書の先頭からＴ番目までの単語系列（ｘ１，ｘ２，・・・，ｘＴ）に含まれる各単語について単語ベクトル記憶部１０１を検索し、これらの各単語ｘｔ（ｔ＝１，２，・・・，Ｔ）を単語ベクトルｅｔにそれぞれ変換する。そして、単語系列符号化部１０３は、これらの単語ベクトルｅｔ（ｔ＝１，２，・・・，Ｔ）をベクトル系列とすることで、第１の文書ベクトル系列Ｘ＝［ｅ１ ｅ２ ・・・ ｅＴ］∈ＲＥ×Ｔを得る。これにより、文書の単語系列（ｘ１，ｘ２，・・・，ｘＴ）が第１の文書ベクトル系列Ｘに変換される。ここで、Ｔは単語系列の長さであり、例えば、Ｔ＝４００等とすれば良い。
【００５５】
なお、文書の単語系列の長さがＴに満たない場合は、特殊単語「ＰＡＤ」でパディングする。一方で、文書の単語系列の長さがＴを超える場合は、超えた部分の単語系列は無視される。
【００５６】
ステップＳ２０２−２：単語系列符号化部１０３は、ニューラルネットワークによる符号化器を用いて、第１の文書ベクトル系列Ｘを、２ｄ×Ｔの第２の文書ベクトル系列Ｈ＝［Ｈ１，Ｈ２，・・・，ＨＴ］に変換する。ここで、符号化器には、例えば、隠れ状態のサイズをｄとして、以下の参考文献２に開示されている双方向のＬＳＴＭ（Long short-term memory）を用いる。なお、ｄとしては、例えば、ｄ＝１００等とすれば良い。
【００５７】
［参考文献２］
Hochreiter, S., and Schmidhuber, J. 1997. Long short-term memory. Neural Computation 9(8):1735-1780.
ステップＳ２０３：単語系列符号化部１０３は、以下のステップＳ２０３−１〜ステップＳ２０３−２により第１の質問ベクトル系列Ｑ及び第２の質問ベクトル系列Ｕを得る。
【００５８】
ステップＳ２０３−１：単語系列符号化部１０３は、質問の先頭からＪ番目までの単語系列（ｑ１，ｑ２，・・・，ｑＪ）に含まれる各単語について単語ベクトル記憶部１０１を検索し、これらの各単語ｑｊ（ｊ＝１，２，・・・，Ｊ）を単語ベクトルｅｊにそれぞれ変換する。そして、単語系列符号化部１０３は、これらの単語ベクトルｅｊ（ｊ＝１，２，・・・，Ｊ）をベクトル系列とすることで、第１の質問ベクトル系列Ｑ＝［ｅ１ ｅ２ ・・・ ｅＪ］∈ＲＥ×Ｊを得る。これにより、質問の単語系列（ｑ１，ｑ２，・・・，ｑＪ）が第１の質問ベクトル系列Ｑに変換される。ここで、Ｊは単語系列の長さであり、例えば、Ｔ＝３０等とすれば良い。
【００５９】
なお、質問の単語系列の長さがＪに満たない場合は、特殊単語「ＰＡＤ」でパディングする。一方で、文書の単語系列の長さがＪを超える場合は、超えた部分の単語系列は無視される。
【００６０】
ステップＳ２０３−２：単語系列符号化部１０３は、ニューラルネットワークによる符号化器を用いて、第２の質問ベクトル系列Ｑを、２ｄ×Ｊの第２の質問ベクトル系列Ｕ＝［Ｕ１，Ｕ２，・・・，ＵＪ］に変換する。なお、符号化器は、上記のステップＳ２０２−２と同様に、隠れ状態のサイズをｄとした双方向のＬＳＴＭを用いる。
【００６１】
ステップＳ２０４：単語系列マッチング部１０４は、以下のステップＳ２０４−１〜ステップＳ２０４−４によりマッチング行列ＭＨ及びＭＵを計算する。
【００６２】
ステップＳ２０４−１：単語系列マッチング部１０４は、第２の文書ベクトル系列Ｈと、第２の質問ベクトル系列Ｕとを用いて、マッチング行列Ｓを計算する。マッチング行列Ｓの各要素Ｓｔｊは、以下により計算される。
【００６３】
【数１】
2019191827.tif 000003
ここで、τは転置、○はベクトルの要素毎の積、；はベクトルの連結をそれぞれ表す。また、ｗＳ∈Ｒ６ｄは学習対象となるニューラルネットワーク（すなわち、符号化器として機能するニューラルネットワーク）のパラメータである。
【００６４】
ステップＳ２０４−２：単語系列マッチング部１０４は、第２の文書ベクトル系列Ｈと、第２の質問ベクトル系列Ｕと、マッチング行列Ｓとを用いて、アテンション重み付き平均ベクトルＵｊ〜及びＨｔ〜を計算する。なお、明細書の記載の便宜上、明細書のテキストにおいては、「波線を上に付したＸ」をＸ〜と表記する。
【００６５】
アテンション重み付き平均ベクトルＵｊ〜及びＨｔ〜は、それぞれ以下により計算される。
【００６６】
【数２】
2019191827.tif 000004
ここで、
【００６７】
【数３】
2019191827.tif 000005
である。また、Ｓｊはマッチング行列Ｓのｊ列目の列ベクトルを表し、Ｓｔはマッチング行列Ｓのｔ行目の行ベクトルを表す。
【００６８】
ステップＳ２０４−３：単語系列マッチング部１０４は、ベクトル系列ＧＵ及びＧＨを計算する。ベクトル系列ＧＵ及びＧＨは、それぞれ以下により計算される。
【００６９】
【数４】
2019191827.tif 000006
ステップＳ２０４−４：単語系列マッチング部１０４は、隠れ状態のサイズをｄとした１層の双方向ＬＳＴＭにより、ベクトル系列ＧＵ及びＧＨをそれぞれマッチング行列ＭＨ∈Ｒ２ｄ×Ｔ及びＭＵ∈Ｒ２ｄ×Ｊに変換する。
【００７０】
ステップＳ２０５：回答生成部１０７は、回答文に含まれる単語ｙｋのインデックスｋをｋ＝１に初期化すると共に、ニューラルネットワークによる復号化器の初期状態ｓ０∈Ｒ２ｄを零ベクトルで初期化する。また、回答生成部１０７は、回答文に含まれる０番目の単語ｙ０を、文頭を表す特殊単語＜ｓ＞に設定する。ここで、復号化器には、ＲＮＮ（Recurrent Neural Network）、ＲＮＮの一種であるＬＳＴＭ等のニューラルネットワークを用いる。なお、以降では、回答文に含まれる単語ｙｋを「出力単語ｙｋ」とも表す。
【００７１】
ステップＳ２０６：回答生成部１０７は、出力単語ｙｋ−１について単語ベクトル記憶部１０１を検索し、当該出力単語ｙｋ−１をＥ次元の単語ベクトルｚｋ−１に変換する。
【００７２】
ステップＳ２０７：文書注視部１０５は、復号化器の状態ｓｋ−１を用いて、以下により文書に含まれる各単語の注視ｃｋＨを計算する。
【００７３】
【数５】
2019191827.tif 000007
ここで、スコア関数Ｆは内積（ＭｔＨ・ｓｋ−１）を用いる。なお、スコア関数Ｆとして、ｂｉｌｉｎｅｒや多層パーセプトロン等が用いられても良い。
【００７４】
ステップＳ２０８：質問注視部１０６は、復号化器の状態ｓｋ−１を用いて、以下により質問に含まれる各単語の注視ｃｋＵを計算する。
【００７５】
【数６】
2019191827.tif 000008
ここで、スコア関数Ｆは内積（ＭｔＵ・ｓｋ−１）を用いる。なお、スコア関数Ｆとして、ｂｉｌｉｎｅｒや多層パーセプトロン等が用いられても良い。
【００７６】
ステップＳ２０９：回答生成部１０７は、復号化器の状態ｓｋを以下により更新する。
【００７７】
【数７】
2019191827.tif 000009
ここで、復号化器の関数ｆには、上述したようにＬＳＴＭ等のニューラルネットワークが用いられる。この復号化器として機能するニューラルネットワークが学習対象である。なお、復号化器として、ＬＳＴＭ以外のＲＮＮが用いられても良い。
【００７８】
ステップＳ２１０：回答生成部１０７は、以下により文書注視スコアλＨ及び質問注視スコアλＵをそれぞれ計算する。
【００７９】
【数８】
2019191827.tif 000010
ここで、ｗＨ∈Ｒ２ｄ及びｗＵ∈Ｒ２ｄは、学習対象のニューラルネットワーク（すなわち、復号化器として機能するニューラルネットワーク）のパラメータである。
【００８０】
ステップＳ２１１：回答生成部１０７は、語彙Ｖ´中の各単語が出力単語ｙｋに選択されるスコアを表すベクトルｏｋを計算する。
【００８１】
ここで、語彙Ｖ´に含まれる単語数をＮ、語彙Ｖ´に含まれるｎ番目の単語が出力単語ｙｋとして選択されるスコアをｏｋ，ｎと表すものとする。このとき、ベクトルｏｋはｏｋ＝（ｏｋ，１，ｏｋ，２，・・・，ｏｋ，Ｎ）と表すことができる。
【００８２】
また、ｏｋ，ｎが大きい程、語彙Ｖ´に含まれるｎ番目の単語が出力単語ｙｋに選択され易いものとする。このとき、各ｏｋ，ｎが０≦ｏｋ，ｎ≦１、かつ、各ｏｋ，ｎの和が１となるように正規化されることによって、ｏｋ＝（ｏｋ，１，ｏｋ，２，・・・，ｏｋ，Ｎ）は、ｋ−１番目までの出力単語が選択されている場合に、語彙Ｖ´に含まれる各単語が出力単語ｙｋとして選択される条件付き確率の確率分布ｐ（ｙｋ｜ｙ＜ｋ，Ｘ）により表すことができる。この確率分布ｐ（ｙｋ｜ｙ＜ｋ，Ｘ）は、文書注視スコアλＨ及び質問注視スコアλＵを用いて、例えば、以下により計算される。
【００８３】
【数９】
2019191827.tif 000011
ここで、λｍａｘ＝ｍａｘ（λＨ，λＵ）とする。また、ＰＣＨは文書に含まれる単語に基づく確率分布、ＰＣＵは質問に含まれる単語に基づく確率分布であり、それぞれ文書の注視分布及び質問の注視分布を用いて以下により計算される。
【００８４】
【数１０】
2019191827.tif 000012
ここで、Ｉ（・）は、述部が真の場合に１、偽の場合に０となる関数である。
【００８５】
また、ＰＧは語彙Ｖに含まれる単語に基づく確率分布であり、以下により計算される。
【００８６】
【数１１】
2019191827.tif 000013
ここで、関数ψは多層パーセプトロン等のニューラルネットワークが利用可能である。また、Ｗ∈Ｒ２ｄ×Ｖは学習対象のニューラルネットワーク（すなわち、関数ψとして機能するニューラルネットワーク）のパラメータである。
【００８７】
ステップＳ２１２：回答生成部１０７は、正解回答文に含まれる各単語のうち、出力単語ｙｋに対応する単語ｙｋ＊（すなわち、正解単語）が、文末を表す特殊単語＜／ｓ＞であるか否かを判定する。正解単語ｙｋ＊が特殊単語＜／ｓ＞でないと判定された場合、質問応答装置１００は、ステップＳ２１３の処理を実行する。一方で、正解単語ｙｋ＊が特殊単語＜／ｓ＞であると判定された場合、質問応答装置１００は、ステップＳ２１４の処理を実行する。
【００８８】
ステップＳ２１３：回答生成部１０７は、出力単語ｙｋのインデックスｋに対して１を加算する。そして、回答生成部１０７は、加算後のｋを用いて、ステップＳ２０６の処理を実行する。これにより、各ｋ（ｋ＝１，２，・・・）に対して、正解単語ｙｋ＊が特殊単語＜／ｓ＞となるまで、ステップＳ２０６〜ステップＳ２１２の処理が繰り返し実行される。
【００８９】
ステップＳ２１４：パラメータ更新部１０９は、上記のステップＳ２０１で取得された訓練データに関する損失Ｌを計算する。損失Ｌは、この訓練データに含まれる正解回答文と、定数ωと、回答生成部１０７により計算されたスコアを表す確率分布ｐとを用いて、以下により計算される。
【００９０】
【数１２】
2019191827.tif 000014
なお、定数ωとしては、例えば、ω＝１等とすれば良い。
【００９１】
ステップＳ２１５：入力部１０２は、未取得の訓練データがミニバッチの中にあるか否かを判定する。未取得の訓練データがミニバッチの中にあると判定された場合、質問応答装置１００は、ステップＳ２０１の処理を実行する。これにより、ミニバッチに含まれる訓練データ毎に、ステップＳ２０２〜ステップＳ２１４の処理が実行される。一方で、未取得の訓練データがミニバッチの中にないと判定された場合（すなわち、ミニバッチに含まれる全ての訓練データに対してステップＳ２０２〜ステップＳ２１４の処理が実行された場合）、質問応答装置１００は、ステップＳ２１６の処理を実行する。
【００９２】
ステップＳ２１６：パラメータ更新部１０９は、ミニバッチに含まれる各訓練データに関してそれぞれ計算された損失Ｌの平均を計算した上で、計算した損失Ｌの平均を用いて、例えば、確率的勾配降下法により、学習対象のニューラルネットワークのパラメータを更新する。なお、確率的勾配降下法は、パラメータの最適化方法の一例であって、任意の最適化方法が用いられても良い。これにより、１つのミニバッチ用いて、学習対象のニューラルネットワークのパラメータが更新される。
【００９３】
なお、上記で説明したパラメータ更新処理では、回答文に含まれる出力単語ｙｋの生成は行っていないが、後述する図７のステップＳ３１２と同様の方法により出力単語ｙｋを生成しても良い。
【００９４】
（質問応答処理）
以降では、本発明の実施の形態における質問応答装置１００が実行する質問応答処理について、図７を参照しながら説明する。図７は、本発明の実施の形態における質問応答処理の一例を示すフローチャートである。上述したように、質問応答時の質問応答装置１００は、図１に示す各機能部を有する。
【００９５】
ステップＳ３０１：入力部１０２は、文書及び質問を入力する。
【００９６】
以降のステップＳ３０２〜ステップＳ３１１は、図６のステップＳ２０２〜ステップＳ２１１とそれぞれ同様であるため、その説明を省略する。ただし、ニューラルネットワークのパラメータは、学習処理で学習されたパラメータを用いる。
【００９７】
ステップＳ３１２：回答生成部１０７は、ステップＳ３１１で計算されたベクトルｏｋを用いて、語彙Ｖ´の中から出力単語ｙｋを選択する。
【００９８】
例えば、回答生成部１０７は、ベクトルｏｋの各要素ｏｋ，ｎのうち、スコアが最大である要素に対応する単語を語彙Ｖ´から選択し、選択した単語を出力単語ｙｋとすれば良い。なお、スコアが最大となる要素ｏｋ，ｎに対応する単語とは、この単語を出力単語ｙｋとして選択した場合に確率ｐ（ｙｋ｜ｙ＜ｋ，Ｘ）が最大となる単語のことである。
【００９９】
なお、回答生成部１０７は、上記以外にも、例えば、確率分布ｐ（ｙｋ｜ｙ＜ｋ，Ｘ）に従って、語彙Ｖ´からサンプリングすることにより出力単語ｙｋを選択しても良い。
【０１００】
このように、出力単語ｙｋが語彙Ｂ（すなわち、文書及び質問に含まれる単語により構成される語彙）に含まれるか否かを識別する学習済のニューラルネットワークを用いることで、各ｋに対して、出力単語ｙｋに対応する確率分布ｐ（ｙｋ｜ｙ＜ｋ，Ｘ）を増減させることができる。これにより、回答文に含まれる出力単語ｙｋとして、語彙Ｂに含まれる単語を精度良く選択することができるようになる。
【０１０１】
ステップＳ３１３：回答生成部１０７は、上記のステップＳ３１２で出力単語ｙｋとして、文末を表す特殊単語＜／ｓ＞が選択されたか否かを判定する。出力単語ｙｋとして特殊単語＜／ｓ＞が選択されなかったと判定された場合、質問応答装置１００は、ステップＳ３１４の処理を実行する。これにより、各ｋ（ｋ＝１，２，・・・）に対して、出力単語ｙｋとして特殊単語＜／ｓ＞が選択されるまで、ステップＳ３０６〜ステップＳ３１２の処理が繰り返し実行される。一方で、出力単語ｙｋとして特殊単語＜／ｓ＞が選択されたと判定された場合、質問応答装置１００は、ステップＳ３１５の処理を実行する。
【０１０２】
以降のステップＳ３１４は、図６のステップＳ２１３とそれぞれ同様であるため、その説明を省略する。
【０１０３】
ステップＳ３１５：回答生成部１０７は、出力単語ｙｋ（ｋ＝０，１，２，・・・）が含まれる回答文を生成する。これにより、上記のステップＳ３０１で入力された文書及び質問に対する回答文が生成される。
【０１０４】
ステップＳ３１６：出力部１０８は、上記のステップＳ３１５で生成された回答文を所定の出力先に出力する。
【０１０５】
（まとめ）
以上のように、本発明の実施の形態における質問応答装置１００は、任意の文書と、この文書に対する任意の質問とが与えられた場合に、与えられた文書及び質問に含まれる単語も用いて、ニューラルネットワークによる文生成技術により回答文を生成する。これにより、本発明の実施の形態における質問応答装置１００では、例えば、与えられた文書及び質問に対する回答文に未知語が含まれてしまう事態を大幅に削減することができ、精度の高い質問応答を実現することができるようになる。
【０１０６】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１０７】
１００        質問応答装置
１０１        単語ベクトル記憶部
１０２        入力部
１０３        単語系列符号化部
１０４        単語系列マッチング部
１０５        文書注視部
１０６        質問注視部
１０７        回答生成部
１０８        出力部
１０９        パラメータ更新部
【図１】
2019191827.tif 000015
【図２】
2019191827.tif 000016
【図３】
2019191827.tif 000017
【図４】
2019191827.tif 000018
【図５】
2019191827.tif 000019
【図６】
2019191827.tif 000020
【図７】
2019191827.tif 000021