以下、本発明の各実施形態について、図面を参照しながら詳細に説明する。以降では、機械読解型の質問応答技術を用いた質問応答の回答精度を高めることを目的として、入力された質問(以降、単に「入力質問」とも表す。)の改訂質問(RQ:Revised Question)を生成する質問生成装置100について説明する。改訂質問とは、入力質問の質問内容を補強した、より具体的な内容の質問文のことである。すなわち、改訂質問とは、質問内容が明確であり、かつ、回答に必要な情報が不足なく含まれている質問のことである。
質問に対する回答を生成及び応答するタスク(質問応答タスク)の前に、当該質問の改訂質問を生成した上で、当該改訂質問を用いた質問応答タスクを行うことで、質問応答の回答精度を高めることができるようになる。
なお、以下で説明する各実施形態は一例に過ぎず、本発明を適用可能な形態は、以下の各実施形態に限定されない。本発明の各実施形態に係る技術は、例えば、ユーザが自然言語で入力した質問に対する回答を提供するサービス等に利用可能であるが、利用対象はこれに限られず、様々な対象に利用可能である。
[第一の実施形態]
まず、本発明の第一の実施形態について説明する。
(概要)
本発明の第一の実施形態では、入力質問と、この入力質問に関連する文書(以降、「関連文書」とも表す。)とが与えられた場合に、質問生成装置100が、改訂質問を生成する機械学習モデル(以降、「改訂質問生成モデル」とも表す。)を用いて、当該入力質問の改訂質問を生成する。
より具体的には、本発明の第一の実施形態では、改訂質問生成モデルにより、入力質問と関連文書とのマッチングを行って、入力質問の潜在的に欠損した部分(単語や文節等の文字列)を補うことで、改訂質問を生成する。これにより、例えば、質問内容が曖昧な入力質問や質問文が短すぎる入力質問が与えられた場合に、入力質問よりも詳細化・具体化した改訂質問が生成される。また、このとき、関連文書を用いて改訂質問が生成されることにより、例えば、質問応答タスクを行うシステムが回答可能な改訂質問を生成することができる(言い換えれば、質問応答タスクを行うシステムが回答不能な改訂質問は生成されないようにすることができる。)。
また、本発明の第一の実施形態では、正解データとして用いる入力質問と、この入力質問の一部を欠損させた質問(これを「欠損質問」とも表す。)と、関連文書とを用いて、改訂質問生成モデルを学習する。この学習では、欠損質問と関連文書とを用いて得られる自然文が、正解データである入力質問に近付くように改訂質問生成モデルのパラメータを更新する。欠損質問とは、入力された関連文書に関する質問文として、必要な情報(単語や文節等の文字列)が一部欠けている質問文のことである。なお、自然文とは、自然言語で記述された文のことである。
ここで、本発明の第一の実施形態では、入力質問は、自然言語で記述された文(すなわち、自然文)であり、例えば形態素解析等を行うことによってJ個の単語トークンの集合Q={q0,q1,・・・,qJ-1}と表されるものとする。なお、入力質問となる文は自然文以外にも、例えば、単にキーワードを列挙しただけの文でも良い。また、音声認識結果として得られた文等であっても良い。
また、関連文書は、例えば数百語程度の単語から構成された文であり、T個の単語トークンの集合X={x0,x1,・・・,xT-1}と表されるものとする。ここで、関連文書には、入力質問に対する回答となる情報が含まれるものとする。関連文書としては、例えば、入力質問に対する回答が記述されたマニュアル等が挙げられる。なお、本発明の第一の実施形態では、関連文書をパッセージ(Passage)とも称する。
また、改訂質問は、入力質問が詳細化・具体化された文であり、S個の単語トークンの集合RQ={y0,y1,・・・,yS-1}と表されるものとする。
(質問生成装置100の機能構成)
まず、本発明の第一の実施形態における改訂質問生成時の質問生成装置100の機能構成について、図1を参照しながら説明する。図1は、本発明の第一の実施形態における改訂質問生成時の質問生成装置100の機能構成の一例を示す図である。
図1に示すように、本発明の第一の実施形態における改訂質問生成時の質問生成装置100は、改訂質問生成部200を有する。改訂質問生成部200は、学習済みの改訂質問生成モデル(すなわち、後述する改訂質問生成モデル学習部400によって更新されたパラメータを用いた改訂質問生成モデル)により実現される。
改訂質問生成部200は、質問(入力質問)と関連文書とを入力して、改訂質問を生成及び出力する。より具体的には、改訂質問生成部200は、入力質問を欠損質問と見做した上で、関連文書を用いて、欠損する前の質問文を復元することで、改訂質問を生成する。
ここで、改訂質問生成部200には、照合部210と、質問復元部220とが含まれる。照合部210は、入力質問と関連文書とのマッチング情報を生成する。マッチング情報とは、入力質問に含まれる各単語と関連文書に含まれる各単語との一致関係を表す情報である。質問復元部220は、照合部210が生成したマッチング情報と、入力質問と、関連文書とを用いて、入力質問が、欠損する前の質問文となるように自然文を生成(復元)する。質問復元部220により生成された自然文が改訂質問となる。
次に、本発明の第一の実施形態における学習時の質問生成装置100の機能構成について、図2を参照しながら説明する。図2は、本発明の第一の実施形態における学習時の質問生成装置100の機能構成の一例を示す図である。
図2に示すように、本発明の第一の実施形態における学習時の質問生成装置100は、欠損質問作成部300と、改訂質問生成モデル学習部400とを有する。
欠損質問作成部300は、質問(入力質問)を入力して、入力質問の一部を欠損させることで、欠損質問を作成する。
改訂質問生成モデル学習部400は、欠損質問作成部300が作成した欠損質問と、入力質問と、関連文書とを用いて、改訂質問生成モデルを学習する。そして、改訂質問生成モデル学習部400は、学習済みの改訂質問生成モデルのパラメータを出力する。
ここで、改訂質問生成モデル学習部400には、照合部210と、質問復元部220と、パラメータ更新部410とが含まれる。照合部210及び質問復元部220は、上述した通りである。パラメータ更新部410は、質問復元部220が生成した自然文(改訂質問)と、入力質問との誤差を算出した上で、この誤差を用いて、任意の最適化方法により改訂質問生成モデルのパラメータ(学習済みでない改訂質問生成モデルパラメータ)を更新する。パラメータ更新部410によりパラメータが更新されることで、改訂質問生成モデルが学習される。
本発明の第一の実施形態では、改訂質問生成モデルは、ニューラルネットワークで実現された機械学習モデルであるものとする。ただし、改訂質問生成モデルの全部又は一部が、ニューラルネットワーク以外の機械学習モデルで実現されていても良い。例えば、照合部210及び質問復元部220のうちの少なくとも一方の機能部が、ニューラルネットワーク以外の機械学習モデルで実現されていても良い。
(質問生成装置100のハードウェア構成)
次に、本発明の第一の実施形態における質問生成装置100のハードウェア構成について、図3を参照しながら説明する。図3は、本発明の第一の実施形態における質問生成装置100のハードウェア構成の一例を示す図である。
図3に示すように、本発明の第一の実施形態における質問生成装置100は、入力装置501と、表示装置502と、外部I/F503と、RAM(Random Access Memory)504と、ROM(Read Only Memory)505と、演算装置506と、通信I/F507と、補助記憶装置508とを有する。これら各ハードウェアは、それぞれがバスBを介して通信可能に接続されている。
入力装置501は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置502は、例えばディスプレイ等であり、質問生成装置100の処理結果(例えば、改訂質問等)を表示する。なお、質問生成装置100は、入力装置501及び表示装置502の少なくとも一方を有していなくても良い。
外部I/F503は、外部装置とのインタフェースである。外部装置には、記録媒体503a等がある。質問生成装置100は、外部I/F503を介して、記録媒体503a等の読み取りや書き込み等を行うことができる。記録媒体503aには、質問生成装置100が有する各機能部を実現する1以上のプログラム等が記録されていても良い。
記録媒体503aには、例えば、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等がある。
RAM504は、プログラムやデータを一時保持する揮発性の半導体メモリである。ROM505は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM505には、例えば、OS(Operating System)に関する設定や通信ネットワークに関する設定等が格納されている。
演算装置506は、例えば、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)等であり、ROM505や補助記憶装置508等からプログラムやデータをRAM504上に読み出して処理を実行する。質問生成装置100が有する各機能部は、例えば、補助記憶装置508に格納されている1以上のプログラムが演算装置506に実行させる処理により実現される。なお、質問生成装置100は、演算装置506としてCPUとGPUとの両方を有していても良いし、CPU又はGPUのいずれか一方のみを有していても良い。
通信I/F507は、質問生成装置100を通信ネットワークに接続するためのインタフェースである。質問生成装置100が有する各機能部を実現する1以上のプログラムは、通信I/F507を介して、所定のサーバ装置等から取得(ダウンロード)されても良い。
補助記憶装置508は、例えばHDDやSSD(Solid State Drive)等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置508に格納されているプログラムやデータには、例えば、OS、質問生成装置100が有する各機能部を実現する1以上のプログラム等がある。
本発明の第一の実施形態における質問生成装置100は、図3に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。なお、図3に示す例では、本発明の第一の実施形態における質問生成装置100が1台の装置(コンピュータ)で実現される場合について説明したが、これに限られない。本発明の第一の実施形態における質問生成装置100は、複数台の装置(コンピュータ)で実現されていても良い。また、本発明の第一の実施形態における質問生成装置100は、複数の演算装置506や複数のメモリ(RAM504、ROM505、補助記憶装置508等)を備える装置(コンピュータ)で実現されていても良い。
(改訂質問の生成処理)
次に、本発明の第一の実施形態における改訂質問の生成処理について、図4を参照しながら説明する。図4は、本発明の第一の実施形態における改訂質問の生成処理の一例を示すフローチャートである。なお、改訂質問の生成処理では、改訂質問生成部200を実現する改訂質問生成モデルは学習済みであるものとする。
ここで、本発明の第一の実施形態における改訂質問生成部200を実現する改訂質問生成モデルの一例を図5に示す。図5に示すように、本発明の第一の実施形態では、改訂質問生成モデルは、Encode Layer、Matching Layer及びDecode Layerの3つ層で構成されるニューラルネットワークである。これらの層のうち、Encode Layer及びMatching Layerによって照合部210が実現される。また、Decode Layerによって質問復元部220が実現される。以降の改訂質問の生成処理では、図5に示す改訂質問生成モデルを参照も参照しながら、各層の詳細な処理についても説明する。
なお、Encode Layer及びDecode Layerは、言語生成のモデルであるSeq2Seqをベースとした層である。一方で、Matching Layerは、機械読解タスクで用いられるAttention Flow Layer及びModeling Layerをベースとした層である。Seq2Seqの詳細については、例えば、以下の参考文献1や参考文献2を参照されたい。また、読解タスクの詳細については、例えば、以下の参考文献3を参照されたい。
[参考文献1]
I. Sutskever, O. Vinyals, and Q. V. Le. Sequence to sequence learning with neural networks. Proc of the 27th International Conference on Neural Information Processing Systems(NIPS2014), pp. 3104-3112, 2014.
[参考文献2]
O. Vinyals and Q. V. Le. A neural conversational model. Proc of the ICML Deep Learning Workshop 2015, 2015.
[参考文献3]
M. J. Seo, A. Kembhavi, A. Farhadi, and H. Hajishirzi. Bidirectional attention flow for machine comprehension. Proc of 5th International Conference on Learning Representations(ICLR2017), 2017.
ステップS101:改訂質問生成部200は、質問(入力質問)Qと、関連文書Xとを入力する。
ステップS102:改訂質問生成部200の照合部210は、以下のステップS102-1~ステップS102-4により、マッチング情報として、Decoderの初期状態とする隠れ状態ベクトルhd0と、機械読解タスクで用いられるマッチングモデルであるマッチング行列Mとを生成する。
ステップS102-1:まず、照合部210は、図5に示す改訂質問生成モデルのEncode LayerにおけるWord Embeddingの処理として、関連文書X及び入力質問Qをそれぞれd次元の単語ベクトル系列に変換する。すなわち、照合部210は、関連文書X及び入力質問Qをそれぞれ構成する各単語トークンをベクトル化して単語ベクトル系列を作成する。
関連文書Xの単語ベクトル系列もXで表すものとして、関連文書Xの単語ベクトル系列Xを、
また、入力質問Qの単語ベクトル系列もQで表すものとして、入力質問Qの単語ベクトル系列Qを、
なお、本発明の第一の実施形態では、入力された入力質問Q及び関連文書Xから単語ベクトル系列X及びQを作成したが、これに限られず、例えば、上記のステップS101で単語ベクトル系列X及びQが入力されても良い。
ステップS102-2:次に、照合部210は、図5に示す改訂質問生成モデルのEncode LayerにおけるPassage Contextの処理として、単語ベクトル系列XをRNN(Recurrent Neural Network)によりエンコードして、関連文書Xのコンテキスト行列H∈R2d×Tを得る。なお、コンテキスト行列Hの第t列目の要素で構成される列ベクトルをコンテキストベクトルHtと表す。
同様に、照合部210は、図5に示す改訂質問生成モデルのEncode LayerにおけるQuestion Contextの処理として、単語ベクトル系列QをRNNによりエンコードして、入力質問Qのコンテキスト行列U∈R2d×Jを得る。なお、コンテキスト行列Uの第j列目の要素で構成される列ベクトルをコンテキストベクトルUjと表す。
ここで、Passage Context及びQuestion Contextの処理に用いられるRNNは、例えば、bi-RNN、LSTM(Long Short Term Memory)、bi-LSTM等であっても良い。ただし、Passage Contextの処理に用いられるRNNと、Question Contextの処理に用いられるRNNとは共通のパラメータを用いる。
ステップS102-3:次に、照合部210は、図5に示す改訂質問生成モデルのMatching Layerの処理として、以下により、Decoderの初期状態とする隠れ状態ベクトルhd0を生成する。
まず、照合部210は、注意機構(attention)を用いて、コンテキストベクトルUJ-1及びコンテキスト行列Hに対して、以下の式(1)及び式(2)により、関連文書XとのアテンションベクトルH^U∈R2dを計算する。なお、明細書の記載の便宜上、「^を上に付与したX」(すなわち、アクセントとして「^」が付与されたX)を「X^」と表記する。
ここで、τは転置を表す。また、softmax
tはsoftmax関数のt番目の出力を表す。なお、上記の式(2)のH^
Uで下付き表記されている「U」は添字ではない。
同様に、照合部210は、注意機構(attention)を用いて、コンテキストベクトルUJ-1及びコンテキスト行列Uに対して、以下の式(3)及び式(4)により、入力質問QとのアテンションベクトルU^U∈R2dを計算する。
ここで、softmax
jはsoftmax関数のj番目の出力を表す。なお、上記の式(4)のU^
Uで下付き表記されている「U」は添字ではない。
これは、入力質問Qのコンテキスト自身でアテンションを取ることになり、入力質問Q中の重要な単語を考慮するためのものである。
そして、照合部210は、上記の式(2)及び(4)でそれぞれ計算した2つのアテンションベクトルH^U及びU^Uを用いて、以下の式(5)により、Decoderの初期状態とする隠れ状態ベクトルhd0を計算する。
ここで、W
m∈R
4d×2d及びb
m∈R
2dはパラメータである。また、fは活性化関数であり、例えば、Leaky ReLU等を用いる。なお、[;]は連結を表す。
ステップS102-4:次に、照合部210は、図5に示す改訂質問生成モデルのMatching Layerの処理として、以下により、マッチング行列Mを生成する。
まず、照合部210は、系列長がTであるコンテキスト行列Hと、系列長がJであるコンテキスト行列UとをAttention層に入力する。そして、照合部210は、Attention層の処理として、関連文書Xと入力質問Qとの単語の類似度行列Sを計算する。
関連文書Xのt番目の単語と、入力質問Qのj番目の単語との類似度を、
と定義する。ここで、w
s
τ∈R
6dはパラメータである。また、
これにより、類似度行列S=(Stj)∈RT×Jが作成される。
次に、照合部210は、類似度行列Sを用いて、関連文書Xから入力質問Qへのアテンションと、入力質問Qから関連文書Xへのアテンションとの2方向のアテンションを計算する。
関連文書Xから入力質問Qへのアテンションでは、照合部210は、関連文書Xの各単語について、入力質問Qの単語で重み付けしたアテンションベクトルを計算する。すなわち、照合部210は、以下の式(7)及び(8)により、関連文書Xのt番目の単語に対応するアテンションベクトル
また、入力質問Qから関連文書Xへのアテンションでは、照合部210は、入力質問Qのいずれかの単語に強く関連する単語で重み付けしたアテンションベクトルを計算した上で、このアテンションベクトルを関連文書Xの系列長T分並べた行列を作成する。すなわち、まず、照合部210は、以下の式(9)及び(10)により、アテンションベクトル
ここで、max
j(S)は、t=1,・・・,T-1に対して、max(S
t)となる、ベクトルS
tのj番目の要素S
tjを要素とするT次元のベクトルである(なお、各γ
tを要素とするベクトルγはT次元のベクトルである。)。
続いて、照合部210は、上記の式(10)で計算されたアテンションベクトルをT個並べた行列
その後、照合部210は、コンテキストベクトルHT-1とコンテキスト行列Hとのself-attentionをとったアテンションベクトルH^H∈R2d×Tを用いて、以下の式(11)により、アテンション行列Gを計算する。
なお、self-attentionの詳細については、例えば、以下の参考文献4を参照されたい。
[参考文献4]
W. Wang, N. Yang, F. Wei, B. Chang, and M. Zhou. Gated self-matching networks for reading comprehension and question answering. Proc of the 55th Annual Meeting of the Association for Computational Linguistics (ACL2017), pp.189-198, 2017.
ただし、照合部210は、アテンションベクトルH^H∈R2dを用いずに(すなわち、上記の式(11)でアテンションベクトルH^Hを連結せずに)、アテンション行列Gを計算しても良い。この場合、アテンション行列Gは、G∈R8d×Tとなる。
そして、照合部210は、図5に示す改訂質問生成モデルのEncode LayerにおけるMatching Modelの処理として、上記の式(11)で計算されたアテンション行列GをRNNに入力してマッチング行列M∈R2d×Tを得る。
以上のステップS102により、マッチング情報として、Decoderの初期状態とする隠れ状態ベクトルhd0と、機械読解タスクで用いられるマッチングモデルであるマッチング行列Mとが生成される。
なお、マッチング情報を生成する方法として、上記以外の任意の方法を用いても良い。また、マッチング情報の表現形式として、ベクトルや行列、テンソル等の任意の形式が用いられても良い。例えば、入力質問Qと関連文書Xとで一致した単語の要素を1、それ以外の単語の要素を0としたbag-of-wordsベクトルを用いても良いし、単語の種類の一致だけでなく、関連文書X中の単語の出現位置まで考慮した情報を用いても良い。ただし、マッチング情報が類似度等のスカラー値のみで表現される場合には入力質問Qと関連文書Xとがどの部分で一致しているかの情報が欠落してしまうため、マッチング情報の表現形式としてはスカラー値でないことが好ましい。
ステップS103:改訂質問生成部200の質問復元部220は、照合部210が生成したマッチング情報(隠れ状態ベクトルhd0及びマッチング行列M)と、入力質問Qと、関連文書Xとを用いて、以下のステップS103-1~ステップS103-7により、改訂質問RQとなる自然文を生成する。
ここで、改訂質問RQとなる自然文は、単語ys(s=0,1,・・・)により構成されているものとする。ただし、単語y0は、文の始端を示すトークン<BOS>であるものとする。質問復元部220は、例えば、文の終端を示すトークン<EOS>が生成されるまで、s=1から順に、単語ysを繰り返し生成することで、改訂質問RQを生成する。以下のステップS103-1~ステップS103-7では、或るsにおける単語ysを生成する場合について説明する。また、DecoderであるRNNはLSTMであるものとして、このLSTMの隠れ状態をhdsと表し、この隠れ状態の初期値(すなわち、s=0である場合の隠れ状態hds)を、照合部210で計算された隠れ状態ベクトルhd0とする。
ステップS103-1:まず、質問復元部220は、図5に示す改訂質問生成モデルのDecode LayerにおけるWord Embeddingの処理として、1つ前の繰り返しで生成された単語ys-1を単語ベクトルeys-1に変換する。なお、上述したように、s=1である場合(すなわち、初回である場合)、単語ys-1=y0として、文の始端を示すトークン<BOS>が単語ベクトルey0に変換される。
ステップS103-2:次に、質問復元部220は、図5に示す改訂質問生成モデルのDecode Layerの処理として、注意機構(attention)を用いて、以下の式(12)~(15)により、DecoderであるLSTMへの入力z^s∈R3dを計算する。
ここで、W
d∈R
2d×3d及びb
d∈R
2dはパラメータ、fは活性化関数である。また、M
t∈R
2dはマッチング行列Mの第t列目の要素で構成される列ベクトルである。
ステップS103-3:次に、質問復元部220は、Decoderの隠れ状態hdsを以下の式(16)により更新する。
ステップS103-4:次に、質問復元部220は、Decode LayerにおけるDecoderの処理として、上記の式(15)で得られたz^
sをLSTMに入力して、softmax関数を計算する。これにより、softmax関数の出力として、生成確率分布P
G(y
s|y
<s,X,Q)が得られる。生成確率分布P
G(y
s|y
<s,X,Q)は、s-1番目までの単語y
sが生成された場合に、s番目の単語y
sとして、予め設定された或る特定の語彙集合に含まれる単語が生成される条件付き確率の分布である。なお、特定の語彙集合としては、例えば、一般的な文書に頻出する単語によって構成される集合等が挙げられる。
ステップS103-5:次に、質問復元部220は、Decode Layerにおける処理として、上記の式(13)で得られた重みεstと、softmax関数とを用いて、以下の式(17)により、生成確率PC(ys|y<s,X,Q)を計算する。
ここで、I(y
s=x
t)は、生成する単語y
sが関連文書Xのt番目の単語x
tと一致する場合は1、それ以外の場合は0を返す関数である。
上記の生成確率PC(ys|y<s,X,Q)は、CopyNetの考え方を応用したものである。CopyNetとは、単語の生成確率をLSTMの出力の外からも与えることで、エンコード側の単語をそのまま生成(コピー)し易くするニューラルネットワークモデルである。本発明の第一の実施形態では、この生成確率PC(ys|y<s,X,Q)を導入することで、s番目の単語ysとして、関連文書Xに含まれる単語が生成(コピー)され易くすることができる。したがって、PC(ys|y<s,X,Q)を導入することで、欠損質問と見做された入力質問Qを、関連文書Xに含まれる単語で補うことができるようになる。なお、CopyNetの詳細は、例えば、以下の参考文献5や参考文献6を参照されたい。
[参考文献5]
Z. Cao, C. Luo, W. Li, and S. Li. Joint copying and restricted generation for paraphrase. Proceedings of the Thirty-First AAAI Conference on Artificial Intelligence(AAAI2017), pp. 3152-3158, 2017.
[参考文献6]
J. Gu, Z. Lu, H. Li, and V. O. Li. Incorporating copying mechanism in sequence-to-sequence learning. Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (ACL2016), pp. 1631-1640, 2016.
ステップS103-6:次に、質問復元部220は、重みλsを用いて、単語ysの最終的な生成確率P(ys|y<s,X,Q)を以下の式(18)により計算する。
ここで、重みλ
sは、以下の式(19)により計算される。
ここで、W
λ∈R
1×2d及びb
λ∈R
1はパラメータ、σはシグモイド関数を表す。
上記の生成確率P(ys|y<s,X,Q)は、重みλsによるPG(ys|y<s,X,Q)とPC(ys|y<s,X,Q)との加重平均である。このため、重みλsによって、関連文書Xに含まれる単語がysとしてコピーされるか否かが決定される。
ステップS103-7:次に、質問復元部220は、上記の式(18)で計算された最終的な生成確率P(ys|y<s,X,Q)により単語ysを生成する。すなわち、質問復元部220は、例えば、関連文書X及び入力質問Qに含まれる各単語のうち、P(ys|y<s,X,Q)が最大となる単語をysとして生成する。
以上のステップS103-1~ステップS103-7を、単語ysとして<EOS>が生成されるまで繰り返すことで、各単語ys(s=0,1,・・・)により構成される改訂質問RQが生成される。この改訂質問RQは、改訂質問生成部200により、所定の出力先に出力される。ここで、所定の出力先としては、例えば、表示装置502や補助記憶装置508、他のプログラム(例えば、質問応答タスクを実行するプログラム)等が挙げられる。
ここで、改訂質問RQは、入力質問Qをベースに関連情報X内の情報を付与することで作成される。このとき、マッチング情報のみを用いて、Encoder-Decoderモデル等のような生成モデルによって改訂質問RQを生成した場合、関連文書Xや入力質問Qとあまり関係のない改訂質問RQが生成されてしまうことがある。そこで、本発明の第一の実施形態では、CopyNetの考え方を応用した手法により、マッチング情報だけでなく、関連文書X自体の情報も利用することで、欠損質問と見做した入力質問Qに対して、関連文書Xに関係のある改訂質問RQを生成することができるようになる。
なお、上記のステップS103-7では、各sに対して1つの単語ysを生成したが、これに限られず、或るs(又は全てのs)に対して複数の単語ysを生成しても良い。複数の単語ysを生成することで、例えば、ビームサーチ等を用いて、複数の改訂質問RQを生成することができるようになる。ビームサーチとは、グラフの幅優先探索のような探索アルゴリズムの一種である。ビームサーチを用いる場合、質問復元部220は、例えば、各sに対して、B個のビーム幅分の単語ysを生成する。これにより、最終的に生成された改訂質問RQの単語長をLとした場合、BL個の改訂質問RQの候補が生成される。次に、質問復元部220は、これらの候補から、ビームサーチを用いて、生成スコア順に並べて上位q個を出力することで、複数のバリエーションの改訂質問RQを生成することができる。
また、上記のステップS103-1~ステップS103-7では、単語y0を<BOS>として、文頭の単語から順に改訂質問RQを生成する場合について説明したが、これに限られず、例えば、単語y0を<EOS>として、文末の単語から順に改訂質問RQを生成しても良い。
(部分生成及び全体生成)
ここで、本発明の第一の実施形態における改訂質問の生成処理では、欠損質問と見做された入力質問Qの一部の欠損を補った改訂質問RQが生成されても良いし、入力質問Qの全ての欠損を補った改訂質問RQが生成されても良い。以降では、入力質問Qの一部の欠損を補った改訂質問RQを生成することを「部分生成」、入力質問Qの全ての欠損を補った改訂質問RQを生成することを「全体生成」と表す。
具体的には、例えば、質問内容が明確であり、かつ、回答に必要な情報の不足がない質問(以降では、このような質問を「全体質問」と表す。)を「プランAを途中解約するときの料金は?」であり、入力質問Qを「料金は?」であるとする。
この場合、部分生成では、例えば、改訂質問RQとして「途中解約するときの料金は?」が生成される。一方で、全体生成では、例えば、改訂質問RQとして全体質問「プランAを途中解約するときの料金は?」が生成される。
したがって、この場合、部分生成によって全体質問を得るためには、改訂質問RQとして得られた「途中解約するときの料金は?」を入力質問Qとして、再度、改訂質問の生成処理を行う必要がある。これより、最終的な改訂質問RQとして全体質問「プランAを途中解約するときの料金は?」が得られる。
上述したように、部分生成を用いる場合、全体質問を得るためには改訂質問の生成処理を繰り返し実行する必要があるが、一般に、全体生成よりも部分生成の方が、全体質問を高い精度で復元することができる。
なお、改訂質問の生成処理が部分生成であるか又は全体生成であるかは、改訂質問生成モデルの学習処理に用いられる学習データセットによって決定される。また、改訂質問の生成処理を部分生成とするか又は全体生成とするかは、改訂質問が用いられる質問応答タスクに応じて決定される。
ここで、学習データセットとは、正解データとして用いる入力質問Qと、関連文書Xとの組で表される学習データの集合である。また、正解データとして用いる入力質問Qを構成する各単語に対して、該単語が関連文書Xに含まれる単語である場合は1、それ以外の場合は0となるラベルが付与されているものとする。以降では、便宜上、正解データとして用いる入力質問Qを「正解質問Qtrue」と表す。
(改訂質問生成モデルの学習処理)
次に、本発明の第一の実施形態における改訂質問生成モデルの学習処理について、図6を参照しながら説明する。図6は、本発明の第一の実施形態における改訂質問生成モデルの学習処理の一例を示すフローチャートである。なお、改訂質問生成モデルの学習処理は、例えば、学習データセットを所定の個数のミニバッチに分割した上で、ミニバッチ毎に、改訂質問生成モデルのパラメータを更新する。
以下のステップS201~ステップS204は、ミニバッチに含まれる各学習データを用いて繰り返し実行される。一方で、以下のステップS205~ステップS206は、ミニバッチに含まれる全ての学習データに対してステップ201~ステップS204が実行された後に実行される。
ステップS201:欠損質問作成部300は、学習データに含まれる正解質問Qtrueを入力する。また、改訂質問生成モデル学習部400は、学習データに含まれる正解質問Qtrue及び関連文書Xを入力する。
ステップS202:次に、欠損質問作成部300は、正解質問Qtrueの一部を欠損させた質問Q(欠損質問Q)を作成する。ここで、正解質問Qtrueに対する欠損質問Qのバリエーションは一般に複数存在するが、欠損質問作成部300は、これらの全ての欠損質問Qを作成しても良いし、一部(1つも含む)の欠損質問Qを作成しても良い。
例えば、正解質問Qtrueが「プランAの料金を教えて」であるとする。この場合、欠損質問Qのバリエーションとして、「料金を教えて」、「教えて」が存在する。したがって、欠損質問作成部300は、「料金を教えて」と「教えて」との両方の欠損質問Qを作成しても良いし、「料金を教えて」又は「教えて」のいずれかの欠損質問Qを作成しても良い。
なお、部分生成を実現する改訂質問生成モデルを学習する場合、正解質問Qtrueと同一の全体質問文を欠損質問Qとした上で、正解質問Qtrueとして文頭を示すトークン<BOS>を設定しても良い。これより、例えば、部分生成による改訂質問の生成処理を行う場合に、単語y1として<BOS>が生成されたとき、改訂質問RQとして全体質問が生成されたことを知ることができる。
例えば、全体質問を「プランAを途中解約するときの料金は?」であるとする。この場合、1回目の部分生成では、入力質問Q「料金は?」から改訂質問RQ「途中解約するときの料金は?」が生成される。次に、2回目の部分生成では、入力質問Q「途中解約するときの料金は?」から改訂質問RQ「プランAを途中解約するときの料金は?」が生成される。そして、3回目の部分生成では、入力質問Q「プランAを途中解約するときの料金は?」から改訂質問RQ「<BOS>」が生成される。<BOS>が生成されるということは、これ以上追加(生成)可能な文節が存在しないことを示す。このため、2回目の改訂質問RQ「プランAを途中解約するときの料金は?」が全体質問であると知ることができる。
ここで、欠損質問Qの作成方法は任意の方法を用いることができるが、欠損質問Qの作成方法としては、例えば、正解質問Qtrueの係り受け解析や句構造解析等の構文解析を行った結果を用いて作成することができる。また、正解質問Qtureから欠損させる部分の粒度も任意に設定することができる。
欠損質問Qの作成方法の一例として、例えば、先頭から文節を順に欠損させる方法が挙げられる。例えば、正解質問Qtrueが「プランAを途中解約するときの料金は?」であったとする。この正解質問Qtrueは、「プランAを」と「途中解約するときの」と「料金は?」との3文節で構成されている。このため、この場合、欠損質問作成部300は、例えば、正解質問Qtrueの先頭の1文節を欠損させた「途中解約するときの料金は?」と、正解質問Qtrueの先頭の2文節を欠損させた「料金は?」とを欠損質問Qとして作成する。
また、欠損質問Qの作成方法の他の例として、例えば、正解質問Qtrueから係り受け関係にある任意の2文節を抽出して、抽出した2文節を係り受け関係通りに結合した文を欠損質問Qとする方法が挙げられる。このとき、得られた欠損質問Qと係り受け関係にある文節が正解質問Qtrueに存在する場合は、更に、当該欠損質問Qと当該文節とを結合した文を新たな欠損質問Qとしても良い。
また、正解質問Qtrueが英語等の言語である場合には、句構造解析や係り受け木の解析等を行い、この解析結果から節又は単語単位での欠損を行うことで欠損質問Qを作成すれば良い。例えば、正解質問Qtrueが英語である場合、名詞句(NP:noun phrase)以下の句構造を欠損させた欠損質問Qを作成すれば良い。
なお、欠損質問作成部300は、正解質問Qtrueの構文情報が破壊された欠損質問Qは作成しないことが好ましい。例えば、正解質問Qtrueが「プランAの料金を教えて」であり、係り受け解析の解析結果を用いる場合、係り受け関係にない「プランAを教えて」との欠損質問Qは作成しないことが好ましい。
また、欠損質問作成部300は、例えば、パターンマッチングにより欠損質問Qを作成しても良い。例えば、所定の表現をマーカに用いて、正解質問Qtrueにおける欠損位置を決定する等である。具体的には、例えば、所定の表現として「~の場合」をマーカに用いることが考えられる。この場合、正解質問Qtrueが「契約が2年未満の場合の違約金は?」であったとすれば、マーカ「~の場合」よりも前の文を欠損させた欠損質問Q「違約金は?」を作成することができる。
ステップS203:改訂質問生成モデル学習部400の照合部210は、マッチング情報を生成する。このステップS203は、図4のステップS102における入力質問Qを欠損質問Qと読み替えることで、ステップS102と同様であるため、その説明を省略する。
ステップS204:改訂質問生成モデル学習部400の質問復元部220は、改訂質問RQを生成する。このステップS204は、図4のステップS103における入力質問Qを欠損質問Qと読み替えることで、ステップS103と同様であるため、その説明を省略する。
ステップS205:改訂質問生成モデル学習部400のパラメータ更新部410は、ミニバッチに含まれる各学習データを用いてそれぞれ生成された改訂質問RQと、当該学習データに含まれる正解質問Qtrueとの誤差を計算する。誤差の計算に用いられる誤差関数としては、例えば、クロスエントロピーを用いれば良い。なお、誤差関数は、改訂質問生成モデルに応じて適宜に決定される。
ステップS206:改訂質問生成モデル学習部400のパラメータ更新部410は、上記のステップS205で計算した誤差を用いて、改訂質問生成モデルのパラメータを更新する。すなわち、パラメータ更新部410は、例えば、上記のステップS205で計算した誤差を用いて、誤差逆伝播法(バックプロパゲーション)により誤差関数の偏微分値を計算することで、改訂質問生成モデルのパラメータを更新する。これにより、改訂質問生成モデルが学習される。
ここで、図5に示す改訂質問生成モデルのパラメータを更新する場合に用いる誤差関数について説明する。
図5に示す改訂質問生成モデルでは、生成確率Pで生成される各単語ysが、正解質問Qtrueと一致するようにパラメータ(以降、学習対象のパラメータを「θ」と表す。)を学習する必要がある。ここで、単語ysの生成確率Pは、上記の式(18)に示す通り、適切なλsが設定されている必要がある。そこで、本発明の第一の実施形態では、単語ysの生成確率Pとλsとを同時に学習するマルチタスク学習により改訂質問生成モデルを学習するものとし、誤差関数は、単語ysの生成確率Pに関する誤差Lgと、λsに関する誤差Lλとの和L(θ)=Lg+Lλとする。この誤差関数Lを最小化するように、パラメータθを更新する。
ここで、λsは、1に近い値を取る程、関連文書Xに含まれる単語がysとしてコピーされる確率が高くなることを示している。前記したように、学習時には、正解データとして用いる入力質問Qを構成する各単語に対して、該単語が関連文書Xに含まれる単語である場合は1、それ以外の場合は0となるラベルを付与するものとする。このラベルを正解としてλsを生成するニューラルネットワークの学習を行うことで、λsは、c^sが生成する単語ysが関連文書Xに含まれる単語であるか否かを予測する確率となる。この学習によって、改訂質問RQの生成時には、λsが1に近い値である程、生成されて欲しい単語が関連文書X内にある確率が高いと判断され、生成確率Pcが強く考慮されるようになる。
上記の誤差関数L(θ)=Lg+Lλにおける誤差Lλ、Lgは、ニューラルネットワークの学習における一般的な方法で計算すれば良い。例えば、誤差Lλは2値のクロスエントロピー、誤差Lgは負の対数尤度等を用いて計算することができる。
(改訂質問生成モデルの変形例)
ここで、本発明の第一の実施形態では、図5に示す改訂質問生成モデルにより改訂質問生成部200が実現される場合について説明したが、例えば、図7に示す改訂質問生成モデルや図8に示す改訂質問生成モデルにより改訂質問生成部200が実現されても良い。
図7に示す改訂質問生成モデルは、Decode Layerにおいて、生成確率PC(ys|y<s,X,Q)を計算する機構を有しないモデルである。この場合、単語ysの最終的な生成確率P(ys|y<s,X,Q)=PG(ys|y<s,X,Q)となる。
図8に示す改訂質問生成モデルは、図7に示す改訂質問生成モデルに対して、更に、Matching Layerを有しないモデルである。この場合、Decode Layerの処理として、注意機構(attention)では、マッチング行列Mの代わりにコンテキスト行列Hを用いて、Decoderへの入力z^sが計算される。
(質問生成装置100の機能構成の変形例)
ここで、改訂質問RQの生成時に、入力質問Qと関連する関連文書Xが明確ではなく、関連文書Xが含まれていると想定される文書集合しか得られない場合がある。このような場合に、文書集合に含まれる各文書を用いて、改訂質問の生成処理を行うとすれば、処理時間が増大する。そこで、改訂質問の処理の前処理として、文書集合から関連文書Xを検索する処理を行うことが考えられる。
上記の前処理を行う質問生成装置100の機能構成を図9に示す。図9は、本発明の第一の実施形態における改訂質問生成時の質問生成装置100の機能構成の変形例を示す図である。
図9に示すように、改訂質問生成時の質問生成装置100は、更に、関連文書検索部600を有していても良い。関連文書検索部600は、入力質問Qと、文書集合Yと入力して、文書集合Yの中から、当該入力質問Qに関連する文書(関連文書)Xを検索する。そして、関連文書検索部600は、検索した関連文書Xを改訂質問生成部200に出力する。これにより、関連文書Xが含まれていると想定される文書集合しか得られない場合であっても、容易に改訂質問RQを得ることができるようになる。
なお、関連文書検索部600による検索手法は、任意の検索手法を用いることができる。例えば、文書集合Yに含まれる各文書と、入力質問Qとのスコアをそれぞれ算出した上で、スコアが上位のN´件を関連文書Xとすることが挙げられる。N´の値は任意に設定されるが、例えば、1~10程度等が考えられる。
ここで、関連文書検索部600により検索された関連文書Xと、この関連文書X及び入力質問Qから生成された改訂質問RQとを、入力質問Qを行った質問者(ユーザ)に提示することも考えられる。そこで、図9に示すように、改訂質問生成時の質問生成装置100は、更に、表示制御部700を有していても良い。表示制御部700は、関連文書検索部600により検索された関連文書Xと、この関連文書X及び入力質問Qから改訂質問生成部200によって生成された改訂質問RQとを表示する。
(応用例)
ここで、上述したように、例えばN´として2以上の値が設定された場合等に、文書集合Yから複数の関連文書Xが得られることがある。この場合、これらの複数の関連文書Xのそれぞれを用いて、改訂質問RQを生成することができる。
例えば、文書集合Yから2つの関連文書X1及び関連文書X2が得られた場合、改訂質問生成部200により、入力質問Q及び関連文書X1を用いた改訂質問RQ1と、入力質問Q及び関連文書X2を用いた改訂質問RQ2とが得られる。
そこで、このような質問生成装置100の応用例として、ユーザから何等かの質問(入力質問Q)がなされた場合に、複数の改訂質問RQと、この改訂質問RQの生成に用いられた関連文書Xとをユーザに提示するチャットボットが考えられる。
例えば、図10に示すように、ユーザから入力質問Q「料金が知りたい」が入力された場合(S11)、質問生成装置100の関連文書検索部600は、文書集合Yから複数の関連文書X(関連文書X1及び関連文書X2)を検索する。そして、質問生成装置100の表示制御部700は、関連文書X1及び入力質問Qから改訂質問生成部200によって生成された改訂質問RQ1「プランAの料金が知りたい」と、関連文書X1へのリンクと、関連文書X2及び入力質問Qから改訂質問生成部200によって生成された改訂質問RQ2「特別割引が適用されたときの料金が知りたい」と、関連文書X2へのリンクとをユーザに表示する(S12)。これにより、ユーザが曖昧な質問(入力質問Q)を行った場合であっても、質問生成装置100は、複数の改訂質問RQと、これらの複数の改訂質問RQにそれぞれ関連する関連文書Xへのリンクとをユーザに提示することができるようになる。
また、チャットボットへの他の応用例として、複数の改訂質問RQ及び関連文書Xを順に提示しても良い。例えば、図11に示すように、ユーザから入力質問Q「料金が知りたい」が入力された場合(S21)、質問生成装置100の関連文書検索部600は、文書集合Yから複数の関連文書X(関連文書X1及び関連文書X2)を検索する。そして、質問生成装置100の表示制御部700は、例えば、改訂質問RQ1「プランAの料金が知りたい」を意図しているか否かをユーザに対して確認するための文を表示する(S22)。
この確認文に対して、ユーザから「違うよ」等の否定を示す応答が入力された場合(S23)、質問生成装置100の表示制御部700は、例えば、改訂質問RQ2「特別割引が適用されたときの料金が知りたい」を意図しているか否かをユーザに対して確認するための文を表示する(S24)。
この確認文に対して、ユーザから「そうだよ」等の肯定を示す応答が入力された場合(S25)、質問生成装置100の表示制御部700は、例えば、関連文書X2へのリンクをユーザに提示する(S26)。
これにより、ユーザが曖昧な質問(入力質問Q)を行った場合であっても、質問生成装置100は、対話的に、改訂質問RQと、この改訂質問RQに関連する関連文書Xへのリンクとをユーザに提示することができるようになる。
(まとめ)
以上のように、本発明の第一の実施形態における質問生成装置100は、例えばニューラルネットワークにより実現される改訂質問生成モデルを用いて、潜在的な欠損が含まれている可能性がある入力質問Qから、欠損が含まれない改訂質問RQを生成することができる。これにより、例えば、改訂質問RQを用いた質問応答タスク等を行う場合に、当該質問応答タスクの回答精度を向上させることができるようになる。
また、本発明の第一の実施形態における質問生成装置100では、改訂質問生成モデルを用いて改訂質問RQを生成する際に、入力質問Qに関連する関連文書Xに含まれる単語をコピーした改訂質問RQを生成する。これにより、上記の質問応答タスクの回答精度を更に向上させることができると共に、ユーザは、関連文書Xのどの部分から改訂質問RQが生成されたのかを知ることができるようになる。
また、本発明の第一の実施形態における質問生成装置100では、1つの入力質問Qに対して複数のバリエーションの改訂質問RQを生成することもできる。例えば、本発明の第一の実施形態における質問生成装置100では、1つの入力質問Q「料金を知りたい」に対して、改訂質問Qとして、「プランAの料金を知りたい」、「特別割引が適用されたときの料金を知りたい」等のバリエーションを生成することができる。これにより、例えば、複数のバリエーションの改訂質問Qの中から質問の意図に近い改訂質問Qをユーザに選択させることもできるようになる。
更に、1つの入力質問Qに対して複数のバリエーションの改訂質問RQを生成することで、本発明の第一の実施形態における質問生成装置100は、例えば、「よくある質問集(FAQ)」を自動で作成したり、拡張したりすること等にも応用することができる。
[第二の実施形態]
次に、本発明の第二の実施形態について説明する。
(概要)
上述した第一の実施形態では、入力質問と関連文書とが与えられた場合に、質問生成装置100が改訂質問生成モデルを用いて、当該入力質問の改訂質問を生成する場合について説明した。しかしながら、例えば、入力質問が短い場合や曖昧なものである場合等には、当該入力質問に対する回答が一意に特定できるとは限らず、回答の可能性が関連文書中に複数箇所存在することがある。したがって、このような場合に、回答を考慮せずに質問を詳細化・具体化した場合、回答不能な改訂質問が生成されることがある。また、複数パターンの詳細化・具体化をした場合であっても、全ての改訂質問に対する回答が同じになってしまう可能性も想定される。更に、機械読解等の質問応答技術で回答できるのは1つのみ(つまり、1問1答)であることが多く、回答が複数想定されるような質問には完全には対応することができない。
そこで、本発明の第二の実施形態では、入力質問と関連文書とが与えられた場合に、質問生成装置100が改訂質問を生成する前に、質問応答を行って、入力質問に対してN個(Nは1以上の整数)の回答を生成する。そして、質問生成装置100は、これらN個の回答の各々に対して、改訂質問を生成する。これにより、入力質問に対する回答が複数存在する場合であっても、これらの回答を機械読解等でそれぞれ一意に得るための改訂質問を生成することができ、短い質問や曖昧な質問に対しても高い回答精度を実現することができる。なお、質問応答によって生成されるN個の回答は、入力質問に対する最終的な回答(つまり、質問者が真に必要とする回答)の候補となるため、「回答候補」とも表す。
本発明の第二の実施形態における改訂質問の生成について、図12を参照しながら、より具体的に説明する。例えば、図12に示す関連文書と、入力質問「午後5時時点の円相場はどうなりましたか?」とが与えられたとする。この場合、関連文書中には、入力質問に対する回答候補が複数存在する(つまり、関連文書には、当該入力質問に対する回答候補として、ドルに対する円相場の情報と、ユーロに対する円相場の情報とが記載されている。)。したがって、この時点では、これら複数の回答候補のうちのどの回答候補が、質問者が真に必要とする回答であるのかを判定することはできない。
そこで、本発明の第二の実施形態では、まず、回答1「先週末と比べて26銭円高ドル安の1ドル=109円74銭から75銭」及び回答2「先週末と比べて64銭円安ユーロ高の1ユーロ=129円57銭から61銭」の2つの回答候補を生成する。そして、これらの回答を用いて、当該回答を一意に決定できるような質問となるように入力質問を詳細化・具体化することで、それぞれの回答に対して改訂質問を生成する。図12に示す例では、入力質問に対して「ドルに対して」と「ユーロに対して」とをそれぞれ付与して、改訂質問1「午後5時時点の円相場はドルに対してどうなりましたか?」及び改訂質問2「午後5時時点の円相場はユーロに対してどうなりました?」を生成する。
このように、本発明の第二の実施形態では、以下の(1)及び(2)により改訂質問を生成する。
(1)入力質問に対して質問応答を行って、当該入力質問に対する回答(回答候補)をN個生成する。
(2)N個の回答毎に、当該回答を得るための改訂質問を生成する(すなわち、N個の回答それぞれに対応するN個の改訂質問を生成する。)。
ここで、上記の(1)及び(2)は、ニューラルネットワークで実現された改訂質問生成モデルにより、end-to-endで同時に実行することができる。ただし、改訂質問生成モデルは、必ずしもニューラルネットワークで実現される必要はなく、改訂質問生成モデルの全部又は一部がニューラルネットワーク以外の機械学習モデルで実現されていても良い。また、上記の(1)の質問応答を行うモデルと、上記の(2)の改訂質問を生成するモデルとを別々に用意して、これらを個別に又は組み合わせて用いても良い。
上記の(1)の質問応答では、関連文書から回答(回答候補)となる可能性が高い情報を発見し、この発見した情報をベースに回答を行う。ここで、回答(回答候補)を得る方法としては、例えば、関連文書中の記述をそのまま抽出したものを回答とする方法や関連文書中の記述を参考に回答となる文を生成する方法等、種々の方法が存在する。本発明の第二の実施形態では、一例として、上記の(1)で回答(回答候補)を得る方法として、主に、関連文書中の記述をそのまま抽出したものを回答とする方法を用いる場合について説明する。
ここで、改訂質問生成モデルの学習では、第一の実施形態と同様に、正解データとして用いる入力質問と、この入力質問の一部を欠損させた質問(つまり、欠損質問)と、関連文書とを入力として、欠損質問と関連文書とを用いて得られる自然文が、正解データである入力質問に近付くように改訂質問生成モデルのパラメータを更新する。このとき、改訂質問生成モデルの内部では、第一の実施形態と同様に、欠損質問と関連文書とのマッチングが行われ、欠損部分を関連文書から発見して補われる。このような改訂質問生成モデルが学習されることで、第一の実施形態と同様に、例えば、自然文の短い入力質問と関連文書とが入力された場合に、当該入力質問の潜在的に欠損した部分が関連文書から発見及び補われ、入力質問よりもより詳細化及び具体化した改訂質問文が生成される。
また、第二の実施の形態では、改訂質問生成モデルの学習において、入力質問に対する回答の正解を正解データとして、当該入力質問に対する回答が正解データに近付くように改訂質問生成モデルのパラメータを更新する。
(質問生成装置100の機能構成)
まず、本発明の第二の実施形態における改訂質問生成時の質問生成装置の機能構成について、図13を参照しながら説明する。図13は、本発明の第二の実施形態における改訂質問生成時の質問生成装置100の機能構成の一例を示す図である。
図13に示すように、本発明の第二の実施形態における質問生成装置100は、テキスト処理部800と、改訂質問生成部900と、出力部1000とを有する。
テキスト処理部800は、自然文で記述された入力質問と関連文書とを入力して、これらの入力質問及び関連文書を改訂質問生成部900に入力するための前処理を行う。具体的には、テキスト処理部800は、例えば形態素解析等を行うことによって、自然文で記述された入力質問及び関連文書をそれぞれ単語トークンの集合(単語系列)に変換する。なお、入力質問及び関連文書の少なくとも一方が音声認識結果として得られた文等であっても良い。また、テキスト処理部800に入力される関連文書は、1つ以上の文書(すなわち、関連文書の集合)であっても良い。本発明の第二の実施形態では、「関連文書」と表した場合には、関連文書の集合も含まれるものとする。
また、以降では、第一の実施形態と同様に、入力質問はJ個の単語トークンの集合(単語系列)Q={q0,q1,・・・,qJ}に変換されるものとし、この単語系列Qも入力質問Qと表すものとする。同様に、関連文書はT個の単語トークンの集合(単語系列)X={x0,x1,・・・,xT}に変換されるものとし、この単語系列Xも関連文書Xと表すものとする。
なお、単語系列で表された入力質問Q及び関連文書Xが質問生成装置100に入力される場合は、当該質問生成装置100はテキスト処理部800を有しなくても良い。
改訂質問生成部900は、入力質問に対する質問応答と、当該質問応答によって得られた回答(回答候補)に対応する改訂質問の生成とを行う。改訂質問生成部900は、学習済みの改訂質問生成モデル(すなわち、後述する改訂質問生成モデル学習部1100によって更新されたパラメータを用いた改訂質問生成モデル)により実現される。
ここで、改訂質問生成部900には、質問応答実行部910と、質問生成部920とが含まれる。
質問応答実行部910は、入力質問Qと、関連文書Xとを入力して、質問応答を行って、当該入力質問Qに対する回答候補を関連文書Xから生成する。なお、上述したように、ここで生成される回答候補は1つである必要はなく、Nを1以上の整数としてN個の回答候補が生成される。本発明の第二の実施形態では、関連文書中の記述をそのまま抽出したものを回答候補とする方法を用いるが、これに限られず、自然文の質問と任意の文書(関連文書)とを入力として自然文の回答を得ることができる方法であれば任意の方法を用いることができる。
質問生成部920は、入力質問Qと、関連文書Xと、N個の回答候補とを入力して、当該入力質問Qよりも詳細化・具体化した改訂質問RQを生成する。このとき、質問生成部920は、N個の回答候補の各々に対して改訂質問RQを生成する(すなわち、N個の回答候補のそれぞれに対応するN個の改訂質問RQを生成する。)。
ここで、本発明の第二の実施形態では、質問生成部920は、各回答候補をそれぞれ一意に特定可能とするような情報を入力質問Qに対して追加することで改訂質問RQを生成する。例えば、関連文書X中で回答候補となる情報の周辺には「~の場合」や「~であるときには」といった条件に関する情報が記述されている場合がある。したがって、このような条件に関する情報を入力質問Qに追加することで、この条件に合致した場合の回答(回答候補)を一意に決定することができる改訂質問RQを生成することができる。この他にも、例えば、人名や地名等の固有表現も回答候補を絞り込むための有益な情報となり得るので、これらを入力質問Qに追加した改訂質問RQを生成しても良い。
なお、改訂質問RQの生成方法や入力質問Qに追加する情報の発見方法、入力質問Qへの情報の追加方法等は、上述した「各回答候補をそれぞれ一意に特定可能とするような情報を入力質問Qに対して追加することで改訂質問RQを生成する」ものであれば任意の手法を採用することができる。例えば、上述した「~の場合」という情報をパターンマッチングで発見及び抽出した上で、抽出した情報の中から回答(回答候補)に最も近い場所にある情報を、入力質問Qの先頭に追加して改訂質問RQを生成する、といった手法を用いても良い。又は、例えば、ニューラルネットワークによる文生成手法を用いて改訂質問RQが生成されても良い。
出力部1000は、N個の回答(回答候補)と、これらのN個の回答のそれぞれに対応するN個の改訂質問RQとを出力する。このとき、出力部1000は、例えば、或る回答候補と、この回答候補に対応する改訂質問RQとの組(ペア)を1以上出力する。ここで、回答候補と改訂質問RQとの組(ペア)の出力方法には、質問生成装置100のユーザインタフェースに応じて任意の方法を採用することができる。
例えば、質問生成装置100が検索システム等のように画面に回答を出力するユーザインタフェースを備えている場合、ユーザ(質問者)から入力された入力質問Qに対して、検索結果のサジェスト機能のように「もしかして・・・」と改訂質問RQの候補を表示し、ユーザによって改訂質問RQが選択されたときに当該改訂質問RQに対応する回答(回答候補)を表示する、といった方法を採用しても良い。
また、例えば、質問生成装置100が音声対話によるユーザインタフェースを備えている場合、ユーザから入力質問Qが入力されると、最も尤度の高い回答(回答候補)に対応する改訂質問RQについて「もしかして○○ということですか?」(○○は当該改訂質問RQの質問内容)といったように確認の聞き返しを発話し、ユーザが同意したときに当該改訂質問RQに対応する回答(回答候補)を発話する、といった方法を採用しても良い。なお、このとき、例えば、確認の聞き返しの発話に対してユーザが非同意の場合には次に尤度の高い回答(回答候補)に対応する改訂質問RQについて確認の聞き返しを発話し、ユーザが同意するまでこれを繰り返す、といった方法を採用しても良い。ここで、回答(回答候補)の尤度については、例えば、当該尤度を算出する機能を質問生成装置100が備えていても良いし、質問応答実行部910で回答候補の生成と共に当該回答候補の尤度が算出されても良い。
なお、出力部1000の出力先は上述したものに限られず、例えば、補助記憶装置508や記録媒体503a、ネットワークを介して接続される他の装置等であっても良い。
次に、本発明の第二の実施形態における学習時の質問生成装置100の機能構成について、図14を参照しながら説明する。図14は、本発明の第二の実施形態における学習時の質問生成装置100の機能構成の一例を示す図である。
図14に示すように、本発明の第二の実施形態における学習時の質問生成装置100は、欠損質問作成部300と、改訂質問生成モデル学習部1100とを有する。
欠損質問作成部300は、第一の実施形態と同様に、入力質問Qを入力して、当該入力質問Qの一部を欠損させることで、欠損質問を作成する。
改訂質問生成モデル学習部1100は、欠損質問作成部300が作成した欠損質問と、入力質問Qと、この入力質問Qに対する正解回答Atrueと、関連文書Xとを用いて、改訂質問生成モデルを学習する。そして、改訂質問生成モデル学習部1100は、学習済みの改訂質問生成モデルのパラメータを出力する。
ここで、改訂質問生成モデル学習部1100には、質問応答実行部910と、質問生成部920と、パラメータ更新部1110とが含まれる。質問応答実行部910及び質問生成部920は、上述した通りである。パラメータ更新部1110は、質問生成部920が生成した自然文(改訂質問RQ)と、入力質問Qとの誤差を算出すると共に、質問応答実行部910による入力質問Qに対する回答と、当該入力質問Qに対する回答の正解との誤差を算出する。そして、これらの誤差を用いて、任意の最適化方法により改訂質問生成モデルのパラメータ(学習済みでない改訂質問生成モデルパラメータ)を更新する。パラメータ更新部1110によりパラメータが更新されることで、改訂質問生成モデルが学習される。
(質問生成装置100のハードウェア構成)
本発明の第二の実施の形態における質問生成装置100のハードウェア構成は、第一の実施形態と同様とすれば良いため、その説明を省略する。
(改訂質問の生成処理)
次に、本発明の第二の実施形態における改訂質問の生成処理について、図15を参照しながら説明する。図15は、本発明の第二の実施形態における改訂質問の生成処理の一例を示すフローチャートである。なお、改訂質問の生成処理では、改訂質問生成部900を実現する改訂質問生成モデルは、ニューラルネットワークで実現されており、かつ、学習済みであるものとする。
ここで、本発明の第二の実施形態における改訂質問生成部900を実現する改訂質問生成モデルの一例を図16に示す。図16に示すように、本発明の第二の実施形態では、改訂質問生成モデルは、文書エンコード層、質問エンコード層、文書・質問照合層、機械読解モデリング層、機械読解出力層、回答ベクトル生成層、デコード層、及び改訂質問単語生成層で構成されるニューラルネットワークである。これらの層のうち、文書エンコード層、質問エンコード層、文書・質問照合層、機械読解モデリング層、及び機械読解出力層によって質問応答実行部910が実現される。また、回答ベクトル生成層、デコード層、及び改訂質問単語生成層によって質問生成部920が実現される。
なお、文書エンコード層、質問エンコード層、文書・質問照合層、及び機械読解モデリング層は、第一の実施形態における照合部210に相当する。また、デコード層及び改訂質問単語生成層は、第一の実施形態における質問復元部220に相当する。
本発明の第二の実施形態における訂正質問生成モデルを実現するニューラルネットワークは、ニューラルネットワークで自然文を生成するための手法であるEncoder-Decoderモデルと、ニューラルネットワークで質問応答の回答を生成する機械読解モデルとをベースに構成されている。機械読解モデルでは、回答候補となる記述を関連文書X中から直接抜き出す(つまり、記述を抜き出す際の始点及び終点の位置を推定する)ことにより、回答候補の生成を実現する。この機械読解モデルは、文書・質問照合層、機械読解モデリング層及び機械読解出力層で構成される。なお、Encoder-Decoderモデルの詳細については、例えば、上記の参考文献1を参照されたい。また、機械読解モデルの詳細については、例えば、上記の非特許文献1を参照されたい。
以降の改訂質問の生成処理では、図16に示す改訂質問生成モデルを参照も参照しながら、各層の詳細な処理についても説明する。
ステップS301:テキスト処理部800は、自然文で記述された入力質問と関連文書とを入力する。
ステップS302:テキスト処理部800は、入力した入力質問及び関連文書をそれぞれ単語系列に変換する。上述したように、以降では、入力質問がJ個の単語トークンの単語系列Q、関連文書がT個の単語トークンの単語系列Xにそれぞれ変換されたものとして、「入力質問Q」及び「関連文書X」と表す。
なお、単語系列で表された入力質問Q及び関連文書Xが質問生成装置100に入力された場合は、上記のステップS302は行われなくても良い。
ステップS303:改訂質問生成部900は、以下のステップS303-1~ステップS303-3により、マッチング情報として、デコード層の初期状態とする状態ベクトルhq0及びhM0を生成する。
ステップS303-1:まず、改訂質問生成部900の質問応答実行部910は、関連文書X及び入力質問Qを入力し、図16に示す改訂質問生成モデルの文書エンコード層及び質問エンコード層の処理として、関連文書X及び入力質問Qをそれぞれd次元の単語ベクトル系列に変換(エンコード)する。すなわち、質問応答実行部910は、関連文書X及び入力質問Qをそれぞれ構成する各単語トークンをd次元の実ベクトル化して単語ベクトル系列を作成する。
また、質問応答実行部910は、入力質問Qをd次元の単語ベクトル系列にエンコードした際の状態ベクトルhq0を出力する。
なお、本発明の第二の実施形態では、関連文書Xの単語ベクトル系列をHで表すものとして、「文書ベクトル系列H」と表す。また、入力質問Qの単語ベクトル系列はUで表すものとして、「質問ベクトル系列U」と表す。このとき、文書ベクトル系列はH∈Rd×Tであり、質問ベクトル系列がU∈Rd×Jである。
ここで、関連文書X及び入力質問Qをそれぞれd次元の単語ベクトル系列にエンコードするための手法については、文書ベクトル系列及び質問ベクトル系列が生成できれば任意の手法を採用することができる。例えば、関連文書Xと入力質問Qとをそれぞれ単語埋め込み層(Word Embedding Layer)に入力して各単語トークンをd次元の実ベクトルに変換した後に、RNNによって単語ベクトル系列に変換する手法を用いることができる。この他にも、例えば、注意機構(attention)を用いたエンコードを行っても良い。ただし、デコード層(Decode Layer)では、質問エンコード層から出力された状態ベクトルhq0を初期状態として用いるため、任意の方法で状態ベクトルhq0を生成しておく必要がある。
なお、本発明の第二の実施形態では、質問エンコード層でのみ状態ベクトルhq0を生成する場合について説明するが、文書エンコード層でのみ又は文書エンコード層でも状態ベクトルhx0が生成されても良い。文書エンコード層でのみ状態ベクトルhx0が生成された場合には、デコード層では、状態ベクトルhx0を初期状態として用いれば良い。一方で、文書エンコード層及び質問エンコード層で状態ベクトルhq0及び状態ベクトルhx0がそれぞれ生成された場合には、デコード層では、これらの状態のベクトルのうちの一方又は両方を初期状態として用いることができる。
ステップS303-2:次に、改訂質問生成部900の質問応答実行部910は、図16に示す改訂質問生成モデルの文書・質問照合層の処理として、文書ベクトル系列H及び質問ベクトル系列Uを用いて、機械読解を行うために関連文書X中で入力質問Qと関連する情報を発見及び抽出する。この発見及び抽出は、関連文書Xと入力質問Qとを照合することで行われる。
ここで、関連文書Xと入力質問Qとを照合する方法としては、任意の手法を採用することができる。例えば、注意機構(attention)を用いたBiDAFを採用することができる。また、例えば、CNN(Convolutional Neural Network)を使用したQANetを採用することもできる。なお、注意機構(attention)を用いたBiDAFの詳細については、例えば、上記の非特許文献1を参照されたい。また、CNNを使用したQANetの詳細については、例えば、以下の参考文献7を参照されたい。
[参考文献7]
Adams Wei Yu, David Dohan, Minh-Thang Luong, Rui Zhao, Kai Chen, Mohammad Norouzi, Quoc V. Le. QANet: Combining Local Convolution with Global Self-Attention for Reading Comprehension. ICLR2018
これにより、関連文書Xと入力質問Qとの照合結果として、r次元の実ベクトル系列である照合ベクトル系列G∈Rr×Tが出力される。ここで、rは、関連文書Xと入力質問Qとの照合に用いる手法によって異なる。なお、この照合ベクトル系列Gは、第一の実施形態におけるアテンション行列Gに相当する。
ステップS303-3:改訂質問生成部900の質問応答実行部910は、図16に示す改訂質問生成モデルの機械読解モデリング層の処理として、照合ベクトル系列Gを用いて、機械読解モデリングベクトル系列M∈Rd×Tを作成する。ここで、機械読解モデリングベクトル系列Mは、例えば、文書エンコード層及び質問エンコード層と同様に、照合ベクトル系列Gに対してRNNを用いた手法を行うことで、機械読解モデリングベクトル系列Mを作成する。また、このとき、質問応答実行部910は、質問エンコード層と同様に、隠れ状態ベクトルhM0を生成する。この隠れ状態ベクトルhM0は、デコード層の初期状態として用いられる。なお、機械読解モデリングベクトル系列Mは、第一の実施形態におけるマッチング行列Mに相当する。
ステップS304:次に、改訂質問生成部900の質問応答実行部910は、図16に示す改訂質問生成モデルの機械読解出力層の処理として、機械読解モデリングベクトル系列Mを用いて、回答候補を生成する。この回答候補の生成は、関連文書X中から回答候補となる記述の始点及び終点を抽出することにより行われる。
ここで、始点に関しては、図16に示す改訂質問生成モデルの機械読解出力層に含まれる回答始点出力層の処理として、機械読解モデリングベクトル系列Mを重みW0∈R1×dにより線形変換することで始点ベクトルOstart∈RTを作成した上で、この始点ベクトルOstartに対して系列長Tでsoftmax関数を適用して確率分布Pstartに変換する。そして、この確率分布Pstartを用いて、最も確率が高いtstart(0≦tstart≦T)番目の要素を関連文書Xから抜き出して、始点の単語とする。
一方で、終点に関しては、図16に示す改訂質問生成モデルの機械読解出力層に含まれる回答終点出力層の処理として、まず始点ベクトルOstart及び機械読解モデリングベクトル系列MをRNNに入力して新しい機械読解モデリングベクトル系列M´を作成する。その後、始点と同様の方法により新しい機械読解モデリングベクトル系列M´から確率分布Pendを得て、この確率分布Pendを用いて、最も確率が高いtend(tstart≦tend≦T)番目の要素を関連文書Xから抜き出して、終点の単語とする。
これにより、関連文書X中のtstart番目(始点)の単語からtend番目(終点)の単語までの区間が回答(回答候補)として抽出される。
N個の回答(回答候補)を抽出するには、まず、Pstart及びPendを用いて、P(i,k)=Pstart(i)×Pend(k)を計算する。ただし、0≦i≦T、かつ、i≦k≦Tである。そして、P(i,k)が上位N個のi,kの組み合わせを始点及び終点とすれば良い。これにより、上位N個のi,kの組み合わせに対応する区間が、N個の回答(回答候補)としてそれぞれ抽出される。
なお、質問応答実行部910は、N個の回答(回答候補)のそれぞれの始点及び終点を出力しても良いし、N個の回答(回答候補)そのものを出力しても良いし、N個の回答(回答候補)のそれぞれの始点の単語及び終点の単語を出力しても良い。本発明の第二の実施形態では、N個の回答(回答候補)のそれぞれの始点及び終点が出力されるものとする。また、以降のステップS305は、N個の始点及び終点の組のそれぞれに対して実行されるが、以降では、或る1組の始点tstart及び終点tendを「回答候補A」として、この回答候補Aに関してステップS305を説明する。
ステップS305:改訂質問生成部900は、以下のステップS305-1~ステップS305-3により、回答候補Aに対応する改訂質問を生成する。
ステップS305-1:改訂質問生成部900の質問生成部920は、回答候補A(つまり、始点tstart及び終点tend)を入力し、図16に示す改訂質問生成モデルの回答ベクトル生成層の処理として、回答候補Aに対応する回答ベクトル
を作成する。ここで、d
aは回答ベクトルの次元数を表す。
回答ベクトルaの作成方法は、入力として回答候補A(つまり、始点tstart及び終点tend)を用いて、回答ベクトルaを作成することができるものであれば任意の方法を採用することができる。例えば、始点tstartから終点tendまでの区間の記述を一度単語系列に変換した上で、この単語系列を文書エンコード層によってベクトルに変換したもの回答ベクトルaとしても良いし、始点tstart及び終点tendで決定される区間H(tstart,tend)∈Rd×l(lは回答候補Aの系列長)を文書ベクトル系列から抽出し、抽出した区間に対応するベクトル系列に対してRNNを適用したり、重心ベクトルを計算したりする等により回答ベクトルaを作成しても良い。
なお、例えば、関連文書X中の記述をそのまま抽出したものを回答(回答候補A)とするのではなく、関連文書X中の記述を参考に回答(回答候補A)となる文を生成する方法を用いた場合、生成された文(回答となる文)を入力とし、回答ベクトル生成層の処理として、回答ベクトルaを作成すれば良い。
ステップS305-2:改訂質問生成部900の質問生成部920は、図16に示す改訂質問生成モデルのデコード層の処理として、RNNにより、回答ベクトルaを用いて、改訂質問を構成する単語を出力するためのベクトルを作成する。ここで、このRNNでは、状態ベクトルの初期値(初期状態)として、質問応答実行部910から出力された状態ベクトルhq0及びhM0を用いる。
上記の状態ベクトルhq0及びhM0の使用方法については、任意の方法を採用することができる。例えば、RNNを2層にして、1層目のRNNの初期状態をhq0、2層目のRNNの初期状態をhM0としても良い。又は、例えば、1層のRNNで使用する場合には、次元数を整合させるために線形変換を行った上で、2つの状態ベクトルhq0及びhM0の平均ベクトルを初期状態としても良いし、2つの状態ベクトルhq0及びhM0のいずれか一方のみを初期状態としても良い。
また、状態ベクトルhM0の代わりに、文書エンコード層の状態ベクトルhx0を用いて、状態ベクトルhq0及びhx0をデコード層の初期状態を決定しても良い。これにより、例えば、P(i,k)が同程度の異なる回答候補が複数存在するような場合(つまり、質問内容が曖昧であるような場合等)に、回答精度の向上が期待できる。
ここで、Encoder-Decoderモデルでは、デコード層には1つ前に生成した単語の埋め込みベクトル
を入力する。ここで、d
eは単語埋め込みベクトルの次元数を表す。これに対して、本発明の第二の実施形態では、単語埋め込みベクトルに回答ベクトルを結合したベクトル
をデコード層に入力するものとする。なお、状態ベクトルの初期値と入力されるベクトル以外は、Encoder-Decoderモデルのデコード層と同様である。したがって、例えば、注意機構(attention)やコピー等、Encoder-Decoderモデルのデコード層で用いられる任意の手法を、図16に示す改訂質問生成モデルのデコード層に適用しても良い。
ステップS305-3:改訂質問生成部900の質問生成部920は、Encoder-Decoderモデルと同様に、デコード層の出力から改訂質問を構成するs番目の単語ysを生成する。すなわち、例えば、デコード層の出力結果を線形変換した後に、softmax関数により関連文書X中の単語の生成確率を生成する。そして、例えば、単語の生成確率が最大となる単語を、s番目の単語ysとして生成する。これを単語ysとして<EOS>が生成されるまで繰り返すことで、回答候補Aに対応する改訂候補を構成する単語が生成される。なお、y0は<BOS>であるものとする。
ステップS306:最後に、出力部1000は、N個の回答(回答候補)と、これらのN個の回答のそれぞれに対応するN個の改訂質問RQとを出力する。
(改訂質問生成モデルの学習処理)
次に、本発明の第二の実施形態における改訂質問生成モデルの学習処理について、図17を参照しながら説明する。図17は、本発明の第二の実施形態における改訂質問生成モデルの学習処理の一例を示すフローチャートである。ここで、本発明の第二の実施形態では、改訂質問生成モデルを学習するために、機械読解のコーパスを用いるものとする。機械読解のコーパスは、「質問」と、「質問対象となる文書」と、「質問対象となる文書中の回答範囲(又は、当該回答範囲の文字列)」との組が複数含まれる。このとき、コーパスに含まれる「質問対象となる文書」を関連文書X、コーパスに含まれる「質問」を入力質問Qとし、当該入力質問Qに対する回答の正解Atrueは、当該コーパス中の「質問対象となる文書中の回答範囲(又は、当該回答範囲の文字列)」をそのまま使用するものとする。そして、入力質問Qと、この入力質問Qに対する回答の正解Atrueとを質問応答実行部910における機械読解処理のための学習データとする。なお、本発明の第二の実施の形態では、回答の正解Atrueは、始点及び終点の組で表されているものとする。
ステップS401:テキスト処理部800は、複数の学習データ(すなわち、学習データセット)と、関連文書とを入力する。
ステップS402:テキスト処理部800は、入力した複数の学習データにそれぞれ含まれる複数の入力質問と、関連文書とを、単語系列である複数の入力質問Qと、関連文書Xとにそれぞれ変換する。ただし、機械読解のコーパスを用いる場合、入力された複数の入力質問及び関連文書は、既に単語系列で表現されていることが多いため、このステップS402は行わなくても良い。
なお、改訂質問生成モデルの学習処理は、例えば、学習データセットを所定の個数のミニバッチに分割した上で、ミニバッチ毎に、改訂質問生成モデルのパラメータを更新する。
以下のステップS403~ステップS406は、ミニバッチに含まれる各学習データを用いて繰り返し実行される。一方で、以下のステップS407~ステップS409は、ミニバッチに含まれる全ての学習データに対してステップ401~ステップS206が実行された後に実行される。
ステップS403:欠損質問作成部300は、学習データである入力質問Qの一部を欠損させた質問Q(欠損質問Q)を作成する。なお、当該入力質問Qは欠損質問Qに対する正解データとなるため、以降では、入力質問Qを正解質問Qtrueと表す。
ここで、欠損質問Qの作成方法としては、任意の手法を作成することができる。例えば、学習済みのEncoder-Decoderモデルを用いて統計的に欠損質問Qを作成しても良いし、文の係り受け等の構文情報を用いて文節や句を切り落とすことで欠損質問Qを作成しても良い。又は、自然言語処理のタスクの一つである文圧縮の手法を用いて欠損質問Qを作成しても良い。
ステップS404:改訂質問生成モデル学習部1100の質問応答実行部910は、マッチング情報を生成する。このステップS404は、図15のステップS303における入力質問Qを欠損質問Qと読み替えることで、ステップS303と同様であるため、その説明を省略する。
ステップS405:改訂質問生成モデル学習部1100の質問応答実行部910は、欠損質問Qに対する回答候補を生成する。このステップS405は、図15のステップS304における入力質問Qを欠損質問Qと読み替えることで、ステップS304と同様であるため、その説明を省略する。
ステップS406:改訂質問生成モデル学習部1100の質問生成部920は、欠損質問Qの回答候補のそれぞれに対応する改訂質問RQを生成する。このステップS406は、図15のステップS305における入力質問Qを欠損質問Qと読み替えることで、ステップS305と同様であるため、その説明を省略する。
ステップS407:改訂質問生成モデル学習部1100のパラメータ更新部1110は、ミニバッチに含まれる各学習データを用いてそれぞれ生成された改訂質問RQと、当該学習データに含まれる入力質問Q(つまり、正解質問Qtrue)の第1の誤差を計算する。また、パラメータ更新部1110は、ミニバッチに含まれる各学習データにそれぞれ含まれる入力質問Qに対する回答Aと、当該学習データに含まれる正解Atrueとの第2の誤差を計算する。ここで、回答Aは、質問応答実行部910に対して入力質問Q(及び関連文書X)を入力することで、質問応答における回答として得られる。
第1の誤差及び第2の誤差の計算に用いられる誤差関数としては、例えば、クロスエントロピーを用いれば良い。なお、誤差関数は、改訂質問生成モデルに応じて適宜に決定される。
ステップS408:改訂質問生成モデル学習部1100のパラメータ更新部1110は、上記のステップS407で計算した第1の誤差及び第2の誤差を用いて、改訂質問生成モデルのパラメータを更新する。すなわち、パラメータ更新部410は、例えば、上記のステップS407で計算した第1の誤差及び第2の誤差を用いて、誤差逆伝播法(バックプロパゲーション)により誤差関数の偏微分値を計算することで、改訂質問生成モデルのパラメータを更新する。これにより、改訂質問生成モデルが学習される。
ここで、図16に示すように、改訂質問生成モデルがニューラルネットワークである場合、機械読解(つまり、質問応答実行部910)と改訂質問生成(つまり、質問生成部920)とのそれぞれで正解データ(つまり、改訂質問RQに対する正解質問Qtrueと、当該正解質問Qtrueに対する正解回答Atrue)に関する誤差関数を定義し、これらの誤差関数値の和(つまり、第1の誤差と第2の誤差との和)をニューラルネットワーク全体の誤差として扱い、この誤差が小さくなるようにパラメータを更新する(すなわち、マルチタスク学習によりパラメータを更新する。)。
(まとめ)
以上のように、本発明の第二の実施形態における質問生成装置100は、例えばニューラルネットワークにより実現される改訂質問生成モデルを用いて、改訂質問RQの生成の前に、入力質問Qに対して質問応答を行って、この質問応答で得られた回答候補に対応する改訂質問RQを生成する。これにより、例えば、入力質問Qに対する回答が一意に特定できないような場合であっても、回答候補毎に改訂質問RQが生成されるため、質問応答タスクにおいて、これらの改訂質問RQを用いることで、高い回答精度の実現することができるようになる。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。