(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-30
(45)【発行日】2024-10-08
(54)【発明の名称】回答生成装置及びプログラム
(51)【国際特許分類】
G06F 16/90 20190101AFI20241001BHJP
【FI】
G06F16/90 100
(21)【出願番号】P 2020038077
(22)【出願日】2020-03-05
【審査請求日】2023-02-20
(73)【特許権者】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】110001210
【氏名又は名称】弁理士法人YKI国際特許事務所
(72)【発明者】
【氏名】高橋 拓誠
(72)【発明者】
【氏名】谷口 元樹
(72)【発明者】
【氏名】谷口 友紀
(72)【発明者】
【氏名】大熊 智子
【審査官】酒井 恭信
(56)【参考文献】
【文献】特開2019-220142(JP,A)
【文献】特開2019-008367(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00 - 16/958
(57)【特許請求の範囲】
【請求項1】
質問及び解析の対象となるデータである解析対象データを入力する入力部と、
プロセッサと、
出力部と、
を備え、前記プロセッサは、プログラムを実行することで、
前記質問及び前記解析対象データが入力された場合に、事前に用意した、
前記質問に対して前記解析対象データから単一の回答をそれぞれ抽出する複数の異なる単一回答モデルを用いて前記質問に対する回答
候補を前記解析対象データからそれぞれ独立に抽出し、
前記解析対象データに含まれている全てのトークンに対して、各トークンが
前記複数の異なる単一回答モデルによって前記解析対象データからそれぞれ独立に抽出された複数の回答候補に出現した出現頻度を算出し、
判定の処理において、第1閾値、及び前記第1閾値よりも小さい第2閾値を用い、判定対象のトークンの前記出現頻度が前記第1閾値以上の場合に、前記出現頻度が前記第1閾値以上となる当該トークンを単一回答のトークンと判定して選択し、判定対象のトークンの前記出現頻度が前記第1閾値未満であって前記第2閾値以上の場合に、前記出現頻度が前記第1閾値未満であって前記第2閾値以上となる当該トークンを複数回答のトークンと判定して選択し、判定対象のトークンの前記出現頻度が前記第2閾値未満の場合に、当該トークンを回答のトークンとして選択せず、
前記判定の処理の終了後に、前記判定の処理において選択したトークンによって構成される単一あるいは複数の回答を抽出して前記出力部に出力する、
回答生成装置。
【請求項2】
前記プロセッサは、
連続する複数の判定対象のトークンに対して判定結果が同一であ
り、当該判定結果に応じてトークンを選択する場合に、各トークンを
個別に選択することに代えて、系列長が最大となる
連続するトークン
を選択する、
請求項1に記載の回答生成装置。
【請求項3】
前記プロセッサは、
判定対象のトークンを単一回答
のトークンと判定した後、次の判定対象のトークンを複数回答の
トークンと判定した、あるいは回答
のトークンとして選択しなかった場合、
前記単一回答
のトークンと判定したトークンのみを
選択して、
前記判定の処理を終了する、
請求項1に記載の回答生成装置。
【請求項4】
前記プロセッサは、
前記複数の回答の回答数以上の
数の前記複数の
異なる単一回答モデルを用いる、
請求項1~3のいずれかに記載の回答生成装置。
【請求項5】
前記複数の
異なる単一回答モデルのそれぞれは、深層学習方法に基づき前記質問及び前記解析対象データを分散表現に符号化し、符号化された前記分散表現に基づき、前記回答の開始点及び終了点を推定するための全結合層により最大確率の回答範囲を前記解析対象データから抽出するモデルである、
請求項1~4のいずれかに記載の回答生成装置。
【請求項6】
前記複数の
異なる単一回答モデルのそれぞれは、質問に対して単一の回答のみが付与された学習データを用いて学習される、
請求項1~5のいずれかに記載の回答生成装置。
【請求項7】
前記解析対象データは、テキストデータであり、
前記トークンは、前記テキストデータ中の単語あるいは文字列である、
請求項1~6のいずれかに記載の回答生成装置。
【請求項8】
コンピュータに、
質問及び解析の対象となるデータである解析対象データを入力するステップと、
事前に用意した、
前記質問に対して前記解析対象データから単一の回答をそれぞれ抽出する複数の異なる単一回答モデルを用いて前記質問に対する回答
候補を前記解析対象データからそれぞれ独立に抽出するステップと、
前記解析対象データに含まれている全てのトークンに対して、各トークンが
前記複数の異なる単一回答モデルによって前記解析対象データからそれぞれ独立に抽出された複数の回答候補に出現した出現頻度を算出し、判定の処理において、第1閾値、及び前記第1閾値よりも小さい第2閾値を用い、判定対象のトークンの前記出現頻度が前記第1閾値以上の場合に、前記出現頻度が前記第1閾値以上となる当該トークンを単一回答のトークンと判定して選択し、判定対象のトークンの前記出現頻度が前記第1閾値未満であって前記第2閾値以上の場合に、前記出現頻度が前記第1閾値未満であって前記第2閾値以上となる当該トークンを複数回答のトークンと判定して選択し、判定対象のトークンの前記出現頻度が前記第2閾値未満の場合に、当該トークンを回答のトークンとして選択しない、ステップと、
前記判定の処理の終了後に、前記判定の処理において選択したトークンによって構成される単一あるいは複数の回答
を出力するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、回答生成装置及びプログラムに関する。
【背景技術】
【0002】
従来から、質問と関連テキストが与えられたときに、適切な回答を関連テキストから抽出する技術が提案されている。
【0003】
特許文献1には、極性で回答することができる質問に対して、精度よく、極性で回答することができるようにする装置が記載されている。機械読解部は、入力された文章及び質問文に基づいて、当該文章における当該質問文に対する回答の根拠となる範囲を推定するための予め学習された読解モデルを用いて、当該範囲の始端及び終端を推定する。判断部は、機械読解部の処理によって得られる情報に基づいて、質問文に対する回答の極性が正か否かを判断するための予め学習された判断モデルを用いて、当該質問文に対する回答の極性を判断する。
【0004】
特許文献2には、精度の高い質問応答を実現する装置が記載されている。装置は、文書及び質問を入力として、所定の第1の語彙と、文書及び質問に含まれる単語により構成される第2の語彙との和集合に含まれる単語を用いて、質問に対する回答文を生成する処理を学習済モデルにより実行する回答生成手段を有する。学習済モデルは、回答文に含まれる単語が第2の語彙に含まれるか否かについて予め学習した学習済ニューラルネットワークを含み、該学習済ニューラルネットワークにより、回答文の生成時に、該回答文に含まれる単語として、第2の語彙に含まれる単語が選択される確率を増減させる。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2019-220142号公報
【文献】特開2019-191827号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、質問と、その質問に関連するテキスト等の解析の対象となるデータである解析対象データが与えられたときに、その質問に対する複数の回答を解析対象データから抽出し得る技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
請求項1に記載の発明は、質問及び解析の対象となるデータである解析対象データを入力する入力部と、プロセッサと、出力部と、を備え、前記プロセッサは、プログラムを実行することで、前記質問及び前記解析対象データが入力された場合に、事前に用意した、前記質問に対して前記解析対象データから単一の回答をそれぞれ抽出する複数の異なる単一回答モデルを用いて前記質問に対する回答候補を前記解析対象データからそれぞれ独立に抽出し、前記解析対象データに含まれている全てのトークンに対して、各トークンが前記複数の異なる単一回答モデルによって前記解析対象データからそれぞれ独立に抽出された複数の回答候補に出現した出現頻度を算出し、判定の処理において、第1閾値、及び前記第1閾値よりも小さい第2閾値を用い、判定対象のトークンの前記出現頻度が前記第1閾値以上の場合に、前記出現頻度が前記第1閾値以上となる当該トークンを単一回答のトークンと判定して選択し、判定対象のトークンの前記出現頻度が前記第1閾値未満であって前記第2閾値以上の場合に、前記出現頻度が前記第1閾値未満であって前記第2閾値以上となる当該トークンを複数回答のトークンと判定して選択し、判定対象のトークンの前記出現頻度が前記第2閾値未満の場合に、当該トークンを回答のトークンとして選択せず、前記判定の処理の終了後に、前記判定の処理において選択したトークンによって構成される単一あるいは複数の回答を抽出して前記出力部に出力する、回答生成装置である。
【0009】
請求項2に記載の発明は、前記プロセッサは、連続する複数の判定対象のトークンに対して判定結果が同一であり、当該判定結果に応じてトークンを選択する場合に、各トークンを個別に選択することに代えて、系列長が最大となる連続するトークンを選択する、請求項1に記載の回答生成装置である。
【0010】
請求項3に記載の発明は、前記プロセッサは、判定対象のトークンを単一回答のトークンと判定した後、次の判定対象のトークンを複数回答のトークンと判定した、あるいは回答のトークンとして選択しなかった場合、前記単一回答のトークンと判定したトークンのみを選択して、前記判定の処理を終了する、請求項1に記載の回答生成装置である。
【0011】
請求項4に記載の発明は、前記プロセッサは、前記複数の回答の回答数以上の数の前記複数の異なる単一回答モデルを用いる、請求項1~3のいずれかに記載の回答生成装置である。
【0012】
請求項5に記載の発明は、前記複数の異なる単一回答モデルのそれぞれは、深層学習方法に基づき前記質問及び前記解析対象データを分散表現に符号化し、符号化された前記分散表現に基づき、前記回答の開始点及び終了点を推定するための全結合層により最大確率の回答範囲を前記解析対象データから抽出するモデルである、請求項1~4のいずれかに記載の回答生成装置である。
【0013】
請求項6に記載の発明は、前記複数の異なる単一回答モデルのそれぞれは、質問に対して単一の回答のみが付与された学習データを用いて学習される、請求項1~5のいずれかに記載の回答生成装置である。
【0014】
請求項7に記載の発明は、前記解析対象データは、テキストデータであり、前記トークンは、前記テキストデータ中の単語あるいは文字列である、請求項1~6のいずれかに記載の回答生成装置である。
【0015】
請求項8に記載の発明は、コンピュータに、質問及び解析の対象となるデータである解析対象データを入力するステップと、事前に用意した、前記質問に対して前記解析対象データから単一の回答をそれぞれ抽出する複数の異なる単一回答モデルを用いて前記質問に対する回答候補を前記解析対象データからそれぞれ独立に抽出するステップと、前記解析対象データに含まれている全てのトークンに対して、各トークンが前記複数の異なる単一回答モデルによって前記解析対象データからそれぞれ独立に抽出された複数の回答候補に出現した出現頻度を算出し、判定の処理において、第1閾値、及び前記第1閾値よりも小さい第2閾値を用い、判定対象のトークンの前記出現頻度が前記第1閾値以上の場合に、前記出現頻度が前記第1閾値以上となる当該トークンを単一回答のトークンと判定して選択し、判定対象のトークンの前記出現頻度が前記第1閾値未満であって前記第2閾値以上の場合に、前記出現頻度が前記第1閾値未満であって前記第2閾値以上となる当該トークンを複数回答のトークンと判定して選択し、判定対象のトークンの前記出現頻度が前記第2閾値未満の場合に、当該トークンを回答のトークンとして選択しない、ステップと、前記判定の処理の終了後に、前記判定の処理において選択したトークンによって構成される単一あるいは複数の回答を出力するステップと、を実行させるプログラムである。
【発明の効果】
【0016】
請求項1,8に記載の発明によれば、質問と解析対象データが与えられたときに、その質問に対する複数の回答を解析対象データから抽出できる。
【0017】
請求項2,3に記載の発明によれば、さらに、単一回答、複数回答、回答なしのいずれかを判定して出力できる。
【0018】
請求項4,5に記載の発明によれば、さらに、回答の精度を上げることができる。
【0019】
請求項6に記載の発明によれば、さらに、学習データを確保できる。
【0020】
請求項7に記載の発明によれば、さらに、テキストデータから単語あるいは文字列を回答として抽出できる。
【図面の簡単な説明】
【0021】
【
図1】関連テキスト及び質問の説明図(その1)である。
【
図2】関連テキスト及び質問の説明図(その2)である。
【
図3】単一回答QAと複数回答QAの回答の平均異なり数を示すグラフ図である。
【
図4】実施形態の回答生成装置の構成ブロック図である。
【発明を実施するための形態】
【0022】
以下、図面に基づき本発明の実施形態について、解析の対象となるデータである解析対象データとしてテキストデータを例にとり説明する。
【0023】
<基本原理>
まず、本実施形態の基本原理について説明する。
【0024】
機械読解タスクは、与えられたテキストを読み解き質問に回答することを目的としており、モデルの読解能力をベンチマークする上でも重要なタスクである。例えばSQuAD(Pranav Rajpurkar, Jian Zhang, Konstantin Lopyrev, and Percy Liang. SQuAD: 100,000+ questions for machine comprehension of text. In EMNLP, 2016.)のような抽出型機械読解では、質問および関連テキスト(コンテキスト) が与えられたとき、最も適切な回答をコンテキストの中から抽出する。
【0025】
図1は、質問(Question)及び関連テキスト(Context)の一例を示す。関連テキスト中の、質問に対する適切な回答として「Russel」を抽出する。
【0026】
但し、これまでの抽出型機械読解は、質問に対する正解が一つの回答範囲に基づく質問応答(以下、「単一回答QA」という)に限定しており、複数の回答が同時に成立するような質問応答には対応できない。
【0027】
他方で、複数の範囲における回答を抽出するために、適切な回答を過不足なく抽出するためのモデルがいくつか提案されている。しかし、これらのモデルはいずれも複数回答QAをもつ機械読解のデータを用いて学習することを前提としており、このような複雑なデータを常に用意することは現実的ではない。
【0028】
単一回答のみ可能とするモデル(以下、「単一回答モデル」という)を適用した場合、モデルにより推定される回答は常に一つに限定される。本願出願人は、いくつかの単一回答モデルを複数回答QAに適用したところ、各モデルの出力する回答が分散することを見出した。
【0029】
図2は、単一回答QAの例と複数回答QAの例を示す。
図2における上段は関連テキストであり、中段は単一回答モデルによる回答であり、下段は複数(具体的には10個)の単一回答モデルによる回答である。単一回答モデルは、回答として「50」を抽出するが、複数の単一回答モデルは、回答として「100 peso note」、「500 peso notes」を抽出し、回答が分散する。
【0030】
同様に、単一/複数回答QAにおける各モデルの回答の一致度を比較すると、単一回答QAの方が回答の一致度が高い傾向にあることが分かる。
【0031】
図3は、単一回答QAと複数回答QAの回答の一致度を示す。
図3において、DROP(single-span)は単一回答QAを示し、DROP(multi-span)は複数回答QAを示す。また、縦軸は回答の平均異なり数を示し、各モデルの推定した回答が完全一致した場合を異なり数=1としている。各モデルは、
BiDAF:(Minjoon Seo, Aniruddha Kembhavi, Ali Farhadi, and Hannaneh Hajishirzi. Bidirectional attention flow for machine comprehension. arXiv preprint arXiv:1611.01603, 2016.)
QANet:(Adams Wei Yu, David Dohan, Minh-Thang Luong, Rui Zhao, Kai Chen, Mohammad Norouzi, and Quoc V Le. Qanet: Combining local convolution with global
self-attention for reading comprehension. arXiv preprint arXiv:1804.09541, 2018.)
BERT
BASE:(Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. BERT: Pre-training of deep bidirectional transformers for language understanding. In NAACL, 2019.)
BERT
LARGE:(Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. BERT: Pre-training of deep bidirectional transformers for language understanding. In NAACL, 2019.)
である。
【0032】
単一回答QAモデルは、事前に学習した10個の単一回答QAモデルである。
図3に示されるように、単一回答QAの方が回答の平均異なり数が少なく、回答の一致度が高い。これは、各単一回答QAモデルは、最適と考える回答を一つしか出力しない制約に起因するものである。従って、複数の回答がコンテキストに散在する場合、各モデルの回答はしばしば一致しない。
【0033】
そこで、本実施形態では、複数の単一回答QAモデルの回答が、複数回答QAにおいて特に一致しない性質を利用する。具体的には、単一回答しかできないモデルを複数組み合わせることで、複数回答可能なモデルを実現する。
【0034】
具体的なモデルは以下の通りである。
【0035】
典型的な抽出型機械読解のデータセットであるSQuADでは、質問に対して与えられたコンテキストの中から最も適切な回答を一つ抽出することが目的とされており、既に多くのモデルによって人間の読解能力を上回ることが報告されている。その後、SQuAD2.0(Pranav Rajpurkar, Robin Jia, and Percy Liang. Know what you don't know: Unanswerable questions for SQuAD. In ACL, 2018.)では質問に対する回答がコンテキストに存在しない場合に回答不可と回答するための質問が新しく追加されている。DROP(Dheeru Dua, Yizhong Wang, Pradeep Dasigi, Gabriel Stanovsky, Sameer Singh, and Matt Gardner. DROP: A reading comprehension benchmark requiring discrete reasoning over paragraphs. In NAACL, 2019.)では、従来取り組まれていなかった複数の回答範囲の抽出(複数回答QA) を考慮するための質問が追加されている。SQuAD2.0は単一回答/回答なしの2パターンであるが、DROPは一つ以上の任意の数の回答を求められることから、DROPのほうがより多様な回答パターンを要求されるデータセットであるといえる。
【0036】
Hu等(Minghao Hu, Yuxing Peng, Zhen Huang, and Dongsheng Li. A multi-type multi-span network for reading comprehension that requires discrete reasoning. In EMNLP-IJCNLP, 2019.)による複数回答モデルは、質問に対する回答がコンテキスト中に何個あるか予測し、予測された回答数に基づき回答範囲を繰り返し抽出するモデルにより、DROPの複数回答QAを回答可能であることを示している。Efrat等(Avia Efrat, Elad Segal, and Mor Shoham. Tag-based multi-span extraction in reading comprehension. arXiv preprint arXiv:1909.13375, 2019.)は、回答抽出を系列ラベリング問題と見立て、各トークンにBIOタグを付与するMulti-span Head を提案している。ここで、「トークン」は、単語や文字列等の文の最小構成要素である。これらのモデルは複数回答が可能であるものの、学習のために複数回答QAを含む機械読解のデータをあらかじめ十分に用意しておく必要がある。
【0037】
そこで、本実施形態は、単一回答のみ対象とした抽出型機械読解のデータセットだけを必要とし、単一回答しかできない単純なモデルを複数組み合わせることで、複数回答QA を回答可能とする。本実施形態は、単一回答しかできない複数のモデルの回答が、複数回答QAにおいて特に一致しない性質を利用するものといえる。
【0038】
以下、本実施形態についてより詳細に説明する。
【0039】
<構成>
図4は、本実施形態における回答生成装置の構成ブロック図を示す。
【0040】
回答生成装置は、コンピュータで構成され、プロセッサ10、ROM12、RAM14、入力部16、出力部18、及びモデル記憶部20を備える。
【0041】
プロセッサ10は、ROM12あるいはその他のプログラムメモリに記憶された処理プログラムを読み出し、RAM14を作業メモリとして用いて実行することで、機械読解タスクを実現する。プロセッサ10は、入力された関連テキスト及び質問に基づき、モデル記憶部20に記憶された学習済モデルを用いて関連テキストから質問に対する適切な単一あるいは複数回答を抽出する。
【0042】
入力部16は、キーボードや通信インターフェイス等で構成され、関連テキスト22及び質問24を入力する。関連テキスト22や質問24は、基本的にはテキストデータであるが、画像データであってもよい。画像データの場合、OCR(Optical Character Recognition)技術を用いてテキストデータに変換する。
【0043】
出力部18は、ディスプレイや通信インターフェイス等で構成され、プロセッサ10での機械読解タスクの結果、すなわち関連テキストから抽出された回答を出力する。
【0044】
モデル記憶部20は、N個の異なる単一回答モデルを記憶する。N個の異なる単一回答モデルは、単一回答QAのデータセットのみを用いて事前に学習した学習済モデルである。単一回答モデルは、例えば公知のBERT(Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. BERT: Pre-training of deep bidirectional transformers for language understanding. In NAACL, 2019.)を用いることができるが、これに限定されない。単一回答モデルについてはさらに後述する。
【0045】
なお、プロセッサ10は、広義的なプロセッサを指し、汎用的なプロセッサ(例えば CPU:Central Processing Unit等)や、専用のプロセッサ(例えば GPU:Graphics Processing Unit、ASIC:Application Specific Integrated Circuit、FPGA:Field Programmable Gate Array 、プログラマブル論理デバイス等)を含むものである。また、プロセッサの動作は、1つのプロセッサによって成すのみでなく、物理的に離れた位置に存在する複数のプロセッサが協働して成すものであってもよい。
【0046】
図5は、プロセッサ10で実行される機械読解処理を機能的に示す。
【0047】
プロセッサ10は、関連テキスト22及び質問24を入力する。関連テキスト22は任意であるが、例えば、
「In the first quarter, Cincinnati trailed early as Patriots kicker Stephen Gostkowski got a 31-yard field goal, while QB Tom Brady completed a 1-yard TD pass to LB Mike Vrabel.(…) QB Carson Palmer completing a 1-yard TD pass to LB Mike Vrabel.(…)」
であるとする。質問24も任意であるが、例えば、
「Which two players both completed 1-yard TD pass ?」
であるとする。ここで、質問が、正解が一つの回答に限定されるのではなく、正解が複数の回答を含むことに留意されたい(上記の質問では、2つの正解を含む)。
【0048】
機械読解モデル26は、N個の異なる単一回答モデル(M={m
1、・・・、m
N})から構成され、これらの単一回答モデルは予め単一回答QAのみを用いて学習しておく。単一回答モデルとして、例えば公知のBERTを用いた場合、質問Q及び関連テキスト(コンテキスト)を入力し、回答の開始点と終了点を表す確率分布を出力すべく学習する。N個の異なる単一回答モデルからは、N個の独立な回答候補が得られる。それぞれの回答候補は、開始点と終了点を表す確率分布である。
図5では、機械読解モデル26から、
「Brady」
「Tom」
「Carson Palmer」
「Tom Brady completed」
・・・
「Palmer」
等が開始点と終了点におけるトークン、すなわち単語や文字列が出力されたことを示す。
N個の異なる単一回答モデルからのN個の独立な回答候補は、RC-リライタ28に供給される。
【0049】
RC-リライタ28は、N個の独立な回答候補のうち、最終的にどの回答を採用すべきかを選択する単一/複数回答選択部30を備える。単一/複数回答選択部30は、関連テキスト(コンテキスト)中の特定のトークン(文字列や単語列)に回答範囲が集中していれば対象トークンが単一回答であり、他方で複数のトークンに回答範囲が分散していれば複数回答になると決定して回答選択を行う。
図5では、複数のトークンに回答範囲が分散していると決定され、最終回答として複数の回答
「Tom Brady」
「Carson Palmer」
が出力されたことを示す。特定トークンに回答範囲が集中しているか、あるいは複数トークンに回答範囲が分散しているかは、回答の一致度を算出し、当該回答の一致値を予め設定された閾値と大小比較することで決定され得る。
【0050】
図6は、機械読解モデル26を模式的に示す。機械読解モデル26は、N個の異なる単一回答モデルM={m
1,m
2,・・・、m
N}から構成され、それぞれのモデルは単一回答QAデータセットのみを用いて学習する。BERTに基づく単一回答モデルでは、質問Q およびコンテキストCが与えられたとき、
x = [CLS]Q[SEP]C[SEP]
をBERTへの入力とする。ここで、[CLS] はペア文全体の表現を表すトークン、[SEP] は入力ペアの分割を明示するためのトークンを表す。従って、x をBERTへ入力することで、長さLのトークン系列に対するd次元の分散表現H
H・R
d×L
が得られる。
回答範囲の抽出のため、2種類の全結合層を用いて回答の開始点と終了点を予測するための確率分布を以下の式に基づき計算する。
【0051】
【0052】
【0053】
ここで、Ws,We は重み行列、bs,be はバイアス項である。
【0054】
最終的に、単一回答モデルmiは、pstart とpend が最大となるトークンを回答の開始点および終了点として回答amiを抽出する。
【0055】
このように回答の抽出は確率分布の最大値に基づくため、単一回答モデルmiはコンテキストCに潜在する回答の個数にかかわらず、常に回答を一つだけ抽出する。機械読解モデル26のN個の異なる単一回答モデルは、以上のようにして独立したN個の回答候補をRC-リライタ28に出力する。
【0056】
RC-リライタ28の単一/複数回答選択部30は、コンテキストC中の特定のトークンに回答範囲が集中していれば対象トークンが単一回答であり、複数のトークンに回答範囲が分散していれば複数回答になると決定して回答を選択する。
【0057】
具体的には、最初に各回答の一致度を算出するために、コンテキストCに含まれているすべてのトークンT={t1、t2、・・・}に対して、各トークンが回答候補aに出現した頻度を計算する。
【0058】
トークンt1が回答候補aに出現した頻度fiは、以下の式で算出される。
【0059】
【0060】
【0061】
この計算をコンテキストC中のすべてのトークンに対して適用することで、トークン単位で回答候補aに出現した頻度を表す系列F={f1、f2、・・・}を得る。
【0062】
続いて、各トークンの回答候補における出現頻度Fを参照しながら、予め設定した2つの閾値である閾値u及び閾値lに基づき最終的な回答aを得る。ここで、u>lであり、u≧0.5×Nである。
【0063】
より具体的には、下記の操作に基づき、コンテキストC中のすべてのトークンを選別する。
【0064】
操作1:fi≧uを満たす場合、tiを単一回答のトークンと決定して最終回答に追加する(単一回答QA)
操作2: u>fi≧lを満たす場合、tiを複数回答のトークンと決定して回答に追加する(複数回答QA)
操作3:l>fiを満たす場合、tiを回答のトークンでないと決定する
以上の操作1~操作3により、最終回答として単一回答または複数回答が得られる。
例えば、
u=0.9×N
l=0.2×N
とすると、出現頻度fi≧0.9×N、つまり一致度が90%以上である場合、単一回答QAとなる。また、出現頻度fiが0.9>fi≧0.2N、つまり一致度が90%未満20%以上である場合、複数回答QAとなる。また、出現頻度fi>0.2×N、つまり一致度が20%未満であれば、回答なしと決定される。
【0065】
なお、操作1または操作2において、連続する複数のトークンTに対して同じ操作が繰り返される場合、各トークンを個別に最終回答に追加するのではなく、系列の長さが最大となるトークンを最終回答に追加する。
【0066】
また、tjに対して操作1を実行した後、tj+1に対する処理が操作1以外であった場合、操作1で得られたトークン系列を単一回答として最終回答に追加し、回答の選択を終了する。
【0067】
RC-リライタ28の単一/複数回答選択部30では、機械読解モデル26が抽出した回答候補をトークン単位の頻度に基づき再構成するため、
図5に示すように、
「Tom」
「Brady」
という別々に抽出されたトークンから
「Tom Brady」
といった回答を構成可能である。
【0068】
<処理フローチャート>
図7は、本実施形態の処理フローチャートを示す。S101~S103の処理がモデルの学習処理であり、S104~S107の処理が学習済モデルを用いた回答作成処理である。
【0069】
まず、複数N個の単一回答モデルを用意する(S101)。単一回答モデルの数N及び種類は任意であるが、例えばBERTに基づく単一回答モデルを20個用意する。なお、単一回答モデルは、同一種類あるいは異なる種類のいずれでもよい。
【0070】
次に、用意した複数の単一回答モデルのそれぞれについて、単一回答QAデータセットのみを用いて学習する(S102)。すなわち、質問及び関連テキスト(コンテキスト)を入力し、回答の開始点と終了点を表す確率分布を出力するように学習する。学習済モデルは、記憶部に記憶される(S103)。学習処理が終了した後、次に、回答作成処理に移行する。
【0071】
まず、関連テキスト及び質問を入力する(S104)。
【0072】
次に、記憶部に記憶された学習済モデル、すなわち機械読解モデル26を用いて回答を出力する(S105)。機械読解モデル26のN個の単一回答モデルは、独立したN個の回答候補を出力する。
【0073】
次に、機械読解モデル26から出力されたN個の回答から、RC-リライタ28により単一/複数回答を選択する(S106)。すなわち、2つの閾値u、lを用いた下記の判定操作に基づき、コンテキスト中のすべてのトークンtiを選別する。
操作1:fi≧uを満たす場合、tiを単一回答のトークンと決定して最終回答に追加する(単一回答QA)
操作2: u>fi≧lを満たす場合、tiを複数回答のトークンと決定して回答に追加する(複数回答QA)
操作3:l>fiを満たす場合、tiを回答のトークンでないと決定する
以上のようにして単一/複数回答、あるいは回答なしを選択すると、これらの選択結果を最終回答として出力する(S107)。
【実施例】
【0074】
データセットとして、DROP(Dheeru Dua, Yizhong Wang, Pradeep Dasigi, Gabriel Stanovsky, Sameer Singh, and Matt Gardner. DROP: A reading comprehension benchmark requiring discrete reasoning over paragraphs. In NAACL, 2019.)に含まれる抽出型機械読解のうち、回答が一つのものを単一回答QA(single-span)、回答が二つ以上のものを複数回答QA(multi-span) として使用した。なお、DROPの複数回答QAは学習データとして使用せず、評価時のみ使用した。従って、学習時にはDROP(single-span) のみ使用した。
【0075】
表1に、実施例に使用した単一/複数回答QAの統計量を示す。
【0076】
【0077】
単一回答の抽出型機械読解モデルとして、BiDAF、QANet、及びBERTを使用した。BERTは、事前学習済みモデルのBERTBASE及びBERTLARGEを用いた。
機械読解モデル26として使用するために、異なるシードを設定した20個のモデルを事前に学習した。学習時には、Adamによる最適化を行った。
表2に、各モデルで使用したパラメータを示す。
【0078】
【0079】
また、RC-リライタ28における、回答選択する際の各トークンの頻度に対する2つの閾値を
u=0.9N
l=0.2N
に設定した。なお、Nは機械読解モデル26で用いるモデルの数に対応し、実施例では
N=20
である。
【0080】
<比較例>
他方、比較例として、機械読解モデル26として用意したモデルと同様の条件で学習した単一回答モデルをベースラインとして用意した。さらに、単一回答モデルにおける性能の上限値としてOraclesingle を用意した。Oraclesingle では、各質問に付与された複数の真の回答のうち、F1の値が最も高くなる回答を一つ抽出する。
【0081】
Dua等に倣い、DROPの評価用に変更したEM(Exact Match) およびF1(macro-averaged) を使用した。EMでは、正解に含まれるすべての回答とモデルの予測した回答が完全に一致することで評価値が1となる。また、F1は正解と予測回答でアライメントを取り、すべての組み合わせに対してF1を計算したのち規格化を行うため、複数の回答を過不足なく得ることで評価値が最大化される。
【0082】
表3に、DROPの複数回答QA(multi-span) の実施結果を示す。
【0083】
【0084】
表3に示すように、ベースラインの単一回答モデルとRC-リライタ28(RC-rewriter)を用いた手法を比較すると、すべてのモデルでF1が約10ポイント向上することを確認できた。
【0085】
さらに、単一回答モデルは回答を一つしか抽出しないため、Oraclesingleを含むすべてのモデルでEM=0となる。他方で、実施例の手法は最大5.61%の複数回答QAでコンテキスト中のすべての回答を正しく抽出できることが確認された。
【0086】
以上説明したように、本実施形態では、特定の単一回答モデルに依存することなく、複数回答QAにおける性能を大幅に向上させることが可能である。
【0087】
<変形例1>
本実施形態における機械読解モデル26として用いる単一回答モデルの数および種類は任意に設定し得る。
【0088】
本願出願人は、単一回答モデルの数を最小(N=1)にした条件と比較して、モデルの数を増やすことで性能が向上することを確認している。同時に、モデルの数が増えすぎると性能が低下する傾向にあることも確認している。従って、ある程度の数の単一回答モデルを用意することは、複数回答QAを解くために必要であるものの、モデル数を際限なく増やすことによる性能向上は見込めず、適切な数を設定することが望ましい。一般的には、所望の回答数以上の数であり、所望の回答数に応じて設定される上限数以下とし得る。
【0089】
また、本実施形態において、単一回答モデルは同種類ではなく、互いに異なる種類の単一回答モデルを組み合わせることが望ましい。
【0090】
表4に、異なる単一回答モデルを組み合わせた場合とそうでない場合の比較結果を示す。
【0091】
【0092】
表4において、比較するモデル間で単一回答モデルの数を統一するため、組み合わせモデルの各モデルの数は5個とし、合計20個の単一回答モデルを用いた。multi-span において、組み合わせモデルを同一種類の単一回答モデルと比較した場合、EMで0.54ポイント、F1で2.9ポイント性能向上することを確認した。
【0093】
以上より、機械読解モデル26として用いる単一回答モデルは、最も性能の高い単一回答モデルのみ使用するのではなく、多様な種類の単一回答モデルを組み合わせることが、複数回答QAの正解率を向上させる上で望ましいといえる。
【0094】
<変形例2>
本実施形態では、解析対象データとして関連テキスト等のテキストデータとしたが、他のデータ形式、例えば画像データにも同様に適用し得る。解析対象データが画像データの場合、トークンとしてピクセルを用いることができる。
【符号の説明】
【0095】
10 プロセッサ、12 ROM、14 RAM、16 入力部、18 出力部、20 モデル記憶部、22 関連テキスト(コンテキスト)、24 質問。