(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-27
(45)【発行日】2024-03-06
(54)【発明の名称】質問回答装置
(51)【国際特許分類】
G06F 16/90 20190101AFI20240228BHJP
G06N 20/00 20190101ALI20240228BHJP
【FI】
G06F16/90 100
G06N20/00 130
(21)【出願番号】P 2020016325
(22)【出願日】2020-02-03
【審査請求日】2022-12-22
(73)【特許権者】
【識別番号】000155469
【氏名又は名称】株式会社野村総合研究所
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100080953
【氏名又は名称】田中 克郎
(72)【発明者】
【氏名】中野 留里
(72)【発明者】
【氏名】岡田 智靖
【審査官】原 秀人
(56)【参考文献】
【文献】特開2010-009177(JP,A)
【文献】特開2019-028839(JP,A)
【文献】特開2019-153093(JP,A)
【文献】中辻 真,ディープラーニング活用事例と使いこなしの勘所 4 AIによる恋愛相談への回答生成 -答えのない回答生成への試み-,情報処理,日本,一般社団法人情報処理学会,2018年10月15日,第59巻 第11号 ,pp. 978-982
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
問合せ文を取得する取得部と、
学習用問合せ文に対する正例の学習用回答文及び前記学習用回答文の頻度分布に従ってサンプリングされた負例の学習用回答文を用いて、前記学習用問合せ文と前記正例の学習用回答文との類似度が大きく、前記学習用問合せ文と前記負例の学習用回答文との類似度が小さくなるように学習処理を実行して生成された学習済みモデルを用いて、前記問合せ文と複数の回答候補文との類似度を算出する算出部と、
前記類似度に基づいて、前記複数の回答候補文から1又は複数の回答候補文を抽出する抽出部と、
を備える質問回答装置
であって、
前記正例の学習用回答文は、複数の学習用回答文のうちから、前記学習用問合せ文に対する正例の学習用回答文としてサンプリングされ、
前記負例の学習用回答文は、前記複数の学習用回答文が前記正例の学習用回答文としてサンプリングされる頻度分布に応じて、前記複数の学習用回答文のうちから、前記学習用問合せ文に対する負例の学習用回答文としてそれぞれサンプリングされる、
質問回答装置。
【請求項2】
前記負例の学習用回答文は、前記複数の学習用回答文のそれぞれが前記正例の学習用回答文としてサンプリングされる回数に応じて、前記複数の学習用回答文のうちから、前記学習用問合せ文に対する負例の学習用回答文としてそれぞれサンプリングされる、請求項1に記載の質問回答装置。
【請求項3】
前記学習処理を実行して前記学習済みモデルを生成する学習部をさらに備える、
請求項1に記載の質問回答装置。
【請求項4】
前記学習用問合せ文に含まれる複数のセンテンスのそれぞれをベクトル化して得られる複数の問合せセンテンスベクトルに基づいて、前記学習用問合せ文をベクトル化した問合せベクトルを生成する第1生成部と、
前記学習用回答文をベクトル化した回答ベクトルを生成する第2生成部と
、
をさらに備える請求項1から3のいずれか一項に記載の質問回答装置。
【請求項5】
前記算出部は、前記問合せ文を入力したユーザに関する情報に基づいてパラメータが変化する前記学習済みモデルを用いて、前記問合せ文と複数の回答候補文との類似度を算出する、
請求項1から4のいずれか一項に記載の質問回答装置。
【請求項6】
前記ユーザに関する情報は、前記ユーザの属性を示す情報及び前記ユーザによる過去の問合せ履歴に関する情報の少なくともいずれかを含む、請求項5に記載の質問回答装置。
【請求項7】
前記第1生成部は、前記複数のセンテンスに含まれる最終センテンス以外のセンテンスの問合せセンテンスベクトルに基づいて生成されるコンテキストベクトルと、前記最終センテンスの問合せセンテンスベクトルとに基づいて、前記問合せベクトルを生成する、請求項4に記載の質問回答装置。
【請求項8】
前記問合せベクトル及び前記回答ベクトルの少なくともいずれかに、ノイズを付加する付加部、をさらに備える、請求項4又は7に記載の質問回答装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、質問回答装置に関する。
【背景技術】
【0002】
近年、ニューラルネットワークを用いてチャットボット等の対話システムを構築する研究が行われている。例えば、下記非特許文献1には、ユーザの過去の発話列から、現在の発話と関係付けられるトピックをアテンションモデルにより抽出し、ユーザの現在の発話を表すベクトルに反映する研究が記載されている。
【先行技術文献】
【非特許文献】
【0003】
【文献】奥井颯平、中辻真、“LSTMを用いたパーソナル対話技術”、2018年度人工知能学会全国大会(第32回)、インターネット<URL:https://confit.atlas.jp/guide/event-img/jsai2018/4G2-02/public/pdf>
【発明の概要】
【発明が解決しようとする課題】
【0004】
非特許文献1では、質問文を表すベクトルと、その質問文に対する正しい回答文(正例)を表すベクトルとの類似度を大きくし、質問文を表すベクトルと、その質問文に対する正しくない回答文(負例)を表すベクトルとの類似度を小さくするように損失関数を定義して、LSTM(Long Short-Term Memory)をベースとしてモデルの学習を行っている。ここで、負例は、全ての回答文の中からランダムに選出されている。
【0005】
しかしながら、負例を一様乱数に基づきランダムに選出すると、モデルの精度が十分に向上しないことがあり、回答文の抽出が必ずしも高精度に行えない場合がある。なぜなら、学習用問合せ文に対する正例の学習用回答文の出現頻度に偏り(ベキ分布など、一様分布とは異なる分布特性)がある場合、正例とは異なる分布特性で負例が学習され、非効率的な学習結果となるからである。
【0006】
そこで、本発明は、回答文の抽出をより高い精度で行うことができる質問回答装置を提供する。
【課題を解決するための手段】
【0007】
本発明の一態様に係る質問回答装置は、問合せ文を取得する取得部と、学習用問合せ文に対する正例の学習用回答文及び学習用回答文の頻度分布に従ってサンプリングされた負例の学習用回答文を用いて、学習用問合せ文と正例の学習用回答文との類似度が大きく、学習用問合せ文と負例の学習用回答文との類似度が小さくなるように学習処理を実行して生成された学習済みモデルを用いて、問合せ文と複数の回答候補文との類似度を算出する算出部と、類似度に基づいて、複数の回答候補文から1又は複数の回答候補文を抽出する抽出部と、を備える。
【0008】
この態様によれば、学習用問合せ文に対する正例の学習用回答文及び学習用回答文の頻度分布に従ってサンプリングされた負例の学習用回答文を用いて学習された学習済みモデルによって、問合せ文と複数の回答候補文との類似度を算出することで、回答文の抽出をより高い精度で行うことができる。
【0009】
上記態様において、学習処理を実行して学習済みモデルを生成する学習部をさらに備えてもよい。
【0010】
この態様によれば、学習用問合せ文に対する正例の学習用回答文及び学習用回答文の頻度分布に従ってサンプリングされた負例の学習用回答文を用いて学習モデルの学習処理を実行することで、問合せ文と複数の回答候補文との類似度をより高精度に算出することができる学習済みモデルが得られる。
【0011】
上記態様において、負例の学習用回答文は、学習用回答文の正例の頻度分布に従ってサンプリングされてもよい。
【0012】
この態様によれば、学習用回答文の正例の頻度分布に従ってサンプリングされた負例の学習用回答文を用いて学習モデルの学習処理を行うことで、問合せ文と複数の回答候補文との類似度をより高精度に算出することができる学習済みモデルが得られる。
【0013】
上記態様において、学習用問合せ文をベクトル化した問合せベクトルを生成する第1生成部と、学習用回答文をベクトル化した回答ベクトルを生成する第2生成部と、問合せベクトル及び回答ベクトルの少なくともいずれかに、ノイズを付加する付加部と、をさらに備えてもよい。
【0014】
この態様によれば、問合せベクトル及び回答ベクトルの少なくともいずれかにノイズを付加することで、学習済みモデルの汎化性能をより向上させることができる。
【0015】
上記態様において、算出部は、問合せ文を入力したユーザに関する情報に基づいてパラメータが変化する学習済みモデルを用いて、問合せ文と複数の回答候補文との類似度を算出してもよい。
【0016】
この態様によれば、問合せ文を入力したユーザに関する情報に基づいてパラメータが変化する学習済みモデルを用いることで、ユーザに応じた回答候補文が抽出できるようになる。
【発明の効果】
【0017】
本発明によれば、回答文の抽出をより高い精度で行うことができる質問回答装置を提供することができる。
【図面の簡単な説明】
【0018】
【
図1】本発明の実施形態に係る質問回答システムのネットワーク構成を示す図である。
【
図2】本実施形態に係る質問回答装置の機能ブロックを示す図である。
【
図3】本実施形態に係る質問回答装置により用いられる学習済みモデルの概要を示す図である。
【
図4】本実施形態に係る質問回答装置の物理的構成を示す図である。
【
図5】本実施形態に係る質問回答装置により実行される処理の概要を示す図である。
【
図6】本実施形態に係る質問回答装置により実行される学習前処理のフローチャートである。
【
図7】本実施形態に係る質問回答装置により実行されるモデル学習処理のフローチャートである。
【
図8】本実施形態に係る質問回答装置により実行される回答候補ベクトル化処理のフローチャートである。
【
図9】本実施形態に係る質問回答装置により実行される問合せベクトル化処理のフローチャートである。
【
図10】本実施形態に係る質問回答装置により実行される類似度算出処理のフローチャートである。
【発明を実施するための形態】
【0019】
添付図面を参照して、本発明の実施形態について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。
【0020】
図1は、本発明の実施形態に係る質問回答システム100のネットワーク構成を示す図である。質問回答システム100は、質問回答装置10、ユーザ端末20及びデータベースDBを含む。質問回答装置10及びユーザ端末20は、インターネット等の通信ネットワークNを介して通信可能に接続され、質問回答装置10及びデータベースDBは、任意のネットワークを介して通信可能に接続される。
【0021】
ユーザ端末20は、汎用のコンピュータで構成され、例えばパーソナルコンピュータやスマートフォンで構成される。ユーザ端末20は、ユーザから問合せ文の入力を受け付け、入力された問合せ文は、ユーザ端末20から質問回答装置10に送信される。
【0022】
質問回答装置10は、汎用のコンピュータで構成され、例えばクラウドサーバで構成される。質問回答装置10は、ユーザ端末20から問合せ文を受信し、問合せ文をベクトル化して、複数の回答候補文のベクトルとの類似度を算出する。質問回答装置10は、類似度が相対的に大きい1又は複数の回答候補文を抽出して、ユーザ端末20に送信する。ここで、質問回答装置10により参照されるデータは、質問回答装置10及びデータベースDBに保存されている。
【0023】
データベースDBは、汎用のコンピュータで構成され、例えばクラウドストレージで構成される。データベースDBは、複数の回答候補文をベクトル化した回答ベクトル、質問回答装置10により用いられる学習済みモデル及び学習済みモデルの学習に用いる学習用データ等を保存する。
【0024】
図2は、本実施形態に係る質問回答装置10の機能ブロックを示す図である。質問回答装置10は、取得部11、第1生成部12、第2生成部13、算出部14、抽出部15及び学習部16を備える。
【0025】
取得部11は、ユーザ端末20から問合せ文を取得する。問合せ文は、自然言語で記載された文章であり、例えば、業務に関する質問文であったり、コールセンターで受け付けた質問文であったりしてよい。
【0026】
第1生成部12は、問合せ文をベクトル化した問合せベクトルを生成する。また、学習モデルの学習処理を行う場合、第1生成部12は、学習用問合せ文をベクトル化した問合せベクトルを生成する。第1生成部12は、任意の手法で文章をベクトル化してよいが、例えば、word2vec(Tomas Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean, "Efficient Estimation of Word Representations in Vector Space," arXiv:1301.3781, 2013)、ELMo(Matthew E. Peters, Mark Neumann, Mohit Iyyer, Matt Gardner, Christopher Clark, Kenton Lee, Luke Zettlemoyer, "Deep contextualized word representations," arXiv:1802.05365, 2018)、BERT(Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova, "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding," arXiv:1810.04805, 2018)等を用いてよい。
【0027】
第2生成部13は、複数の回答候補文をベクトル化した複数の回答ベクトルを生成する。また、学習モデルの学習処理を行う場合、第2生成部13は、学習用回答文をベクトル化した回答ベクトルを生成する。第2生成部13は、任意の手法で文章をベクトル化してよいが、例えば、word2vec、ELMo、BERT等を用いてよい。
【0028】
算出部14は、学習済みモデル14aを用いて、問合せ文と複数の回答候補文との類似度を算出する。ここで、学習済みモデル14aは、学習用問合せ文に対する正例の学習用回答文及び学習用回答文の頻度分布に従ってサンプリングされた負例の学習用回答文を用いて、学習用問合せ文と正例の学習用回答文との類似度が大きく、学習用問合せ文と負例の学習用回答文との類似度が小さくなるように学習処理を実行して生成されている。ここで、問合せ文と複数の回答候補文との類似度は、問合せ文をベクトル化した問合せベクトルと、複数の回答候補文をベクトル化した複数の回答ベクトルとのコサイン類似度であってよいが、他の類似度を用いてもよい。
【0029】
抽出部15は、類似度に基づいて、複数の回答候補文から1又は複数の回答候補文を抽出する。抽出部15は、複数の回答候補文を、問合せ文に対する類似度が大きい順に並べて、上位1又は複数の回答候補文を抽出する。
【0030】
本実施形態に係る質問回答装置10によれば、学習用問合せ文に対する正例の学習用回答文及び学習用回答文の頻度分布に従ってサンプリングされた負例の学習用回答文を用いて学習された学習済みモデル14aによって、問合せ文と複数の回答候補文との類似度を算出することで、回答文の抽出をより高い精度で行うことができる。
【0031】
学習部16は、学習用問合せ文に対する正例の学習用回答文及び学習用回答文の頻度分布に従ってサンプリングされた負例の学習用回答文を用いて、学習用問合せ文と正例の学習用回答文との類似度が大きく、学習用問合せ文と負例の学習用回答文との類似度が小さくなるように学習モデルの学習処理を実行し、学習済みモデル14aを生成する。学習部16によって、学習用問合せ文に対する正例の学習用回答文及び学習用回答文の頻度分布に従ってサンプリングされた負例の学習用回答文を用いて学習モデルの学習処理を実行することで、問合せ文と複数の回答候補文との類似度をより高精度に算出することができる学習済みモデル14aが得られる。
【0032】
負例の学習用回答文は、学習用回答文の正例の頻度分布に従ってサンプリングされてよい。例えば、学習用問合せ文が100種類あり、学習用回答文が50種類ある場合、学習用回答文は、正例として1回引用されたり、2回引用されたり、3回以上引用されたりする。学習部16は、そのような学習用回答文の正例の頻度分布に従って、負例の学習用回答文をサンプリングしてよい。学習用回答文の正例の頻度分布に従ってサンプリングされた負例の学習用回答文を用いて学習モデルの学習処理を行うことで、問合せ文と複数の回答候補文との類似度をより高精度に算出することができる学習済みモデル14aが得られる。
【0033】
算出部14は、問合せ文を入力したユーザに関する情報に基づいてパラメータが変化する学習済みモデル14aを用いて、問合せ文と複数の回答候補文との類似度を算出してよい。具体的には、Aaron Jaech, Mari Ostendorf, "Personalized Language Model for Query Auto-Completion," Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics, 2018に記載されたFactorCellモデルを用いて、学習済みモデル14aのパラメータをユーザに応じて変化させてよい。ユーザに関する情報は、ユーザの属性を表す情報や、ユーザの過去の問合せ履歴に関する情報を含む。このように、問合せ文を入力したユーザに関する情報に基づいてパラメータが変化する学習済みモデル14aを用いることで、ユーザに応じた回答候補文が抽出できるようになる。
【0034】
第1生成部12は、学習モデルの学習処理を行う場合、問合せベクトルにノイズを付加する付加部12aを含む。また、第2生成部13は、学習モデルの学習処理を行う場合、回答ベクトルにノイズを付加する付加部13aを含む。ここで、付加部12a及び付加部13aは、それぞれ、平均0、分散が所定の値である正規分布に従うノイズを問合せベクトル及び回答ベクトルに加えてよい。このように、問合せベクトル及び回答ベクトルの少なくともいずれかにノイズを付加することで、学習済みモデル14aの汎化性能をより向上させることができる。
【0035】
図3は、本実施形態に係る質問回答装置10により用いられる学習済みモデル14aの概要を示す図である。学習済みモデル14aは、学習用問合せ文Y
1
q,Y
2
q,…,Y
E
q(Y
i
qはそれぞれセンテンスを表し、複数の単語に対応するトークンを含む。)と、学習用回答文Y
aについて、損失関数Lを最小化するようにパラメータを更新することで生成される。
【0036】
学習済みモデル14aは、学習用問合せ文及び学習用回答文をベクトル化するembeddingモデル14bと、ベクトルhtを出力するFactorCell LSTM14cと、アテンション機構14dとを含む。embeddingモデル14bは、センテンスYに含まれる単語のトークンytを、et=E(yt)+δtによって、ベクトルetとする。ここで、Eは、word2vec、ELMo、BERT等のモデルによるベクトル化を表し、δtは、平均0、分散が所定の値である正規分布により生成されたノイズを表す。
【0037】
FactorCell LSTM14cは、以下の数式(1)によって、センテンスのベクトルetから、中間表現のベクトルhtを算出する。
【0038】
【0039】
ここで、σはシグモイド関数であり、Wa及びUa(a=i,f,o,c)は、以下の数式(2)で表される重みパラメータである。また、ba(a=i,f,o,c)は、バイアスパラメータである。
【0040】
【0041】
ここで、Wa0、Ua0(a=i,f,o,c)、L及びRは、重みパラメータであり、uは、問合せ文を入力したユーザに関する情報を表すベクトルである。ベクトルuは、例えば、ユーザの属性を表す1-hotベクトルであってよい。また、×iは、テンソルのi番目の次元について積をとることを表す演算子である。
【0042】
アテンション機構14dは、以下の数式(3)によって、コンテキストベクトルCE,kを算出する。
【0043】
【0044】
ここで、hE,kは、センテンスYE
qのk番目のトークンに関するFactorCell LSTM14cの中間表現ベクトルである。また、Vα、Wα、Uαは、重みパラメータである。
【0045】
学習部16は、学習用問合せ文の最終センテンスYE
qが入力されるFactorCell LSTM14cの出力oqと、学習用回答文のセンテンスYaが入力されるFactorCell LSTM14cの出力oaとについて、以下の数式(4)で表される損失関数Lの値を最小化するように、誤差逆伝播法によってパラメータを更新することで、学習済みモデル14aの学習処理を行う。
【0046】
【0047】
ここで、oa
+は、正例の学習用回答文に関するFactorCell LSTM14cの出力であり、oa
-は、負例の学習用回答文に関するFactorCell LSTM14cの出力である。負例の学習用回答文は、学習用回答文の正例の頻度分布に従ってサンプリングされてよい。なお、学習処理は、バッチ毎に行ってもよく、その場合、所定のバッチサイズについて損失関数の総和を求めてよい。
【0048】
図4は、本実施形態に係る質問回答装置10の物理的構成を示す図である。質問回答装置10は、演算部に相当するCPU(Central Processing Unit)10aと、記憶部に相当するRAM(Random Access Memory)10bと、記憶部に相当するROM(Read only Memory)10cと、通信部10dと、入力部10eと、表示部10fと、を有する。これらの各構成は、バスを介して相互にデータ送受信可能に接続される。なお、本例では質問回答装置10が一台のコンピュータで構成される場合について説明するが、質問回答装置10は、複数のコンピュータが組み合わされて実現されてもよい。また、
図4で示す構成は一例であり、質問回答装置10はこれら以外の構成を有してもよいし、これらの構成のうち一部を有さなくてもよい。
【0049】
CPU10aは、RAM10b又はROM10cに記憶されたプログラムの実行に関する制御やデータの演算、加工を行う制御部である。CPU10aは、問合せ文に対する回答文を抽出するプログラム(質問回答プログラム)を実行する演算部である。CPU10aは、入力部10eや通信部10dから種々のデータを受け取り、データの演算結果を表示部10fに表示したり、RAM10bに格納したりする。
【0050】
RAM10bは、記憶部のうちデータの書き換えが可能なものであり、例えば半導体記憶素子で構成されてよい。RAM10bは、CPU10aが実行するプログラム、問合せ文をベクトル化した問合せベクトル、回答文をベクトル化した回答ベクトルといったデータを記憶してよい。なお、これらは例示であって、RAM10bには、これら以外のデータが記憶されていてもよいし、これらの一部が記憶されていなくてもよい。
【0051】
ROM10cは、記憶部のうちデータの読み出しが可能なものであり、例えば半導体記憶素子で構成されてよい。ROM10cは、例えば質問回答プログラムや、書き換えが行われないデータを記憶してよい。
【0052】
通信部10dは、質問回答装置10を他の機器に接続するインターフェースである。通信部10dは、インターネット等の通信ネットワークNに接続されてよい。
【0053】
入力部10eは、ユーザからデータの入力を受け付けるものであり、例えば、キーボード及びタッチパネルを含んでよい。
【0054】
表示部10fは、CPU10aによる演算結果を視覚的に表示するものであり、例えば、LCD(Liquid Crystal Display)により構成されてよい。表示部10fは、取得した問合せ文や、抽出した回答候補文を表示してよい。
【0055】
質問回答プログラムは、RAM10bやROM10c等のコンピュータによって読み取り可能な記憶媒体に記憶されて提供されてもよいし、通信部10dにより接続される通信ネットワークを介して提供されてもよい。質問回答装置10では、CPU10aが質問回答プログラムを実行することにより、
図2を用いて説明した様々な動作が実現される。なお、これらの物理的な構成は例示であって、必ずしも独立した構成でなくてもよい。例えば、質問回答装置10は、CPU10aとRAM10bやROM10cが一体化したLSI(Large-Scale Integration)を備えていてもよい。
【0056】
図5は、本実施形態に係る質問回答装置10により実行される処理の概要を示す図である。質問回答装置10により実行される処理は、大きく分けて、学習処理と、回答抽出処理とを含む。
【0057】
学習処理は、学習前処理S1、モデル学習処理S2及び回答候補ベクトル化処理S3を含む。学習前処理S1は、回答履歴データD1及び回答候補データD2を前処理して、評価用データD3及び学習用データD4をつくる処理である。モデル学習処理S2は、学習用データD4を用いて学習済みモデルを生成する処理であり、学習用モデル構造D5、問合せベクトル化用モデル構造D6、回答候補ベクトル化用モデル構造D7及び学習済みモデルD8をつくる処理である。回答候補ベクトル化処理S3は、回答候補データD2を、回答候補ベクトル化用モデル構造D7及び学習済みモデルD8を用いてベクトル化して、回答候補ベクトルD9をつくる処理である。
【0058】
回答抽出処理は、問合せベクトル化処理S4及び類似度算出処理S5を含む。問合せベクトル化処理S4は、ユーザ端末20から受け付けた問合せクエリD10を、問合せベクトル化用モデル構造D6及び学習済みモデルD8を用いてベクトル化して、問合せベクトルD11をつくる処理である。類似度算出処理S5は、問合せベクトルD11と、回答候補ベクトルD9との類似度を算出し、類似度スコアD12をつくる処理である。質問回答装置10は、類似度スコアD12に基づいて、スコアが高い(問合せベクトルに対して類似度が高い)1又は複数の回答候補を抽出し、ユーザ端末20に返送する。
【0059】
図6は、本実施形態に係る質問回答装置10により実行される学習前処理S1のフローチャートである。はじめに、質問回答装置10は、学習・評価用元データを、回答履歴データD1及び回答候補データD2から取得する(S10)。ここで、回答履歴データD1及び回答候補データD2は、データベースDBに記憶されていてもよいし、質問回答装置10に記憶されていてもよい。質問回答装置10は、取得したデータを、学習用データと評価用データに分割して、評価用データD3として記憶する(S11)。
【0060】
その後、質問回答装置10は、学習用データについて、正例と負例のデータを生成する(S12)。正例の学習用データは、問合せ文と、正しい回答文とのペアを含み、負例の学習用データは、問合せ文と、正しくない回答文とのペアを含む。ここで、質問回答装置10は、学習用データに含まれる回答文の正例の頻度分布に従って、負例の学習用回答文をサンプリングしてよい。
【0061】
質問回答装置10は、学習用データについて形態素解析を行い(S13)、所定のルールに従って重要語を抽出する(S14)。そして、質問回答装置10は、重要語に基づいて新たな学習用データを生成することで、学習用データを拡張する(S15)。このようにして拡張された学習用データは、学習用データD4として記憶される。なお、学習用データの拡張は必ずしも行われなくてもよい。
【0062】
図7は、本実施形態に係る質問回答装置10により実行されるモデル学習処理S2のフローチャートである。質問回答装置10は、学習用データD4を取得し(S20)、学習用モデル構造を作成して、学習用モデル構造D5を記憶する(S21)。ここで、学習用モデル構造D5は、FactorCell LSTM及びアテンション機構の構造を表す。
【0063】
質問回答装置10は、問合せベクトル化用モデル構造を作成し、問合せベクトル化用モデル構造D6を記憶する(S22)。また、質問回答装置10は、回答候補ベクトル化用モデル構造を作成し、回答候補ベクトル化用モデル構造D7を記憶する(S23)。ここで、問合せベクトル化用モデル構造D6及び回答候補ベクトル化用モデル構造D7は、word2vec、ELMo、BERT等の埋め込みモデルの構造を表す。
【0064】
その後、質問回答装置10は、モデルパラメータの学習処理を行い、学習済みモデルD8を記憶する(S24)。
【0065】
図8は、本実施形態に係る質問回答装置10により実行される回答候補ベクトル化処理S3のフローチャートである。はじめに、質問回答装置10は、学習済みモデルD8及び回答候補ベクトル化用モデル構造D7を取得し(S30)、回答候補データD2について回答候補ベクトル化を行い、回答候補ベクトルD9を記憶する(S31)。質問回答装置10は、回答候補データD2を事前にベクトル化して、回答候補ベクトルD9を記憶しておくことで、問合せクエリを受け付けた場合に、都度回答候補をベクトル化する場合よりも高速に回答候補を抽出することができるようになる。
【0066】
図9は、本実施形態に係る質問回答装置10により実行される問合せベクトル化処理S4のフローチャートである。はじめに、質問回答装置10は、学習済みモデルD8及び問合せベクトル化用モデル構造D6を取得する(S40)。そして、質問回答装置10は、ユーザ端末20から受け付けた問合せクエリD10について問合せベクトル化を行い、問合せベクトルD11を記憶する(S41)。
【0067】
図10は、本実施形態に係る質問回答装置10により実行される類似度算出処理S5のフローチャートである。質問回答装置10は、問合せベクトルD11を取得し(S50)、回答候補ベクトルD9を取得する(S51)。ここで、回答候補ベクトルD9は、複数の回答候補のベクトルを含む。その後、質問回答装置10は、問合せベクトルD11と回答候補ベクトルD9とについて、類似度を算出し、類似度スコアD12を記憶する(S52)。ここで、類似度スコアは、問合せベクトルD11と回答候補ベクトルD9とのコサイン類似度であってよいが、他の類似度を表すスコアであってもよい。
【0068】
最後に、質問回答装置10は、類似度スコアD12に基づいて、スコアが高い1又は複数の回答候補を抽出し、ユーザ端末20に返送する。
【0069】
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。
【符号の説明】
【0070】
10…質問回答装置、10a…CPU、10b…RAM、10c…ROM、10d…通信部、10e…入力部、10f…表示部、11…取得部、12…第1生成部、12a…付加部、13…第2生成部、13a…付加部、14…算出部、14a…学習済みモデル、15…抽出部、16…学習部、20…ユーザ端末、100…質問回答システム