(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023183930
(43)【公開日】2023-12-28
(54)【発明の名称】発話データ生成装置、対話装置及び生成モデルの作成方法
(51)【国際特許分類】
G06F 16/90 20190101AFI20231221BHJP
G06F 40/56 20200101ALI20231221BHJP
【FI】
G06F16/90 100
G06F40/56
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022097746
(22)【出願日】2022-06-17
(71)【出願人】
【識別番号】301022471
【氏名又は名称】国立研究開発法人情報通信研究機構
(74)【代理人】
【識別番号】100099933
【弁理士】
【氏名又は名称】清水 敏
(72)【発明者】
【氏名】飯田 龍
(72)【発明者】
【氏名】鳥澤 健太郎
(72)【発明者】
【氏名】水野 淳太
(72)【発明者】
【氏名】クロエツェー ジュリアン
【テーマコード(参考)】
5B091
5B175
【Fターム(参考)】
5B091CA21
5B091EA01
5B175DA01
5B175EA01
(57)【要約】
【課題】対話装置においてキャッシュデータを効率よく生成できるような発話データ作成装置、対話装置及び学習装置を提供する。
【解決手段】発話データ作成装置は、複数のパッセージの各々から、入力発話に対する応答発話を構成する発話単語列と、発話単語列を検索するキーとなるキー単語列とを含むキャッシュデータを生成するキャッシュデータ生成装置140と、キャッシュデータ生成装置140により生成されたキャッシュデータを、少なくともキー単語列をキーとして読み出し可能に記憶するキャッシュデータ記憶装置162とを含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
複数パッセージの各々から、入力発話に対する応答発話を構成する発話単語列と、前記発話単語列を検索するキーとなるキー単語列とを含む単語列対を生成するための応答発話生成手段と、
前記応答発話生成手段により生成された前記単語列対を、少なくとも前記キー単語列をキーとして読出可能に記憶する単語列対記憶装置とを含む、対話装置のための発話データ生成装置。
【請求項2】
前記応答発話生成手段は、パッセージが与えられると、当該パッセージから、所定の分離トークンにより互いに分離されたキー単語列と発話単語列とを含む単語列を生成するよう学習済の単語列生成モデルを含む、請求項1に記載の発話データ生成装置。
【請求項3】
前記応答発話生成手段は、
パッセージが与えられると、発話単語列を生成するよう予め学習済の第1の単語列生成モデルと、
パッセージと発話単語列が与えられると、前記キー単語列を生成するよう予め学習済の第2の単語列生成モデルとを含む、請求項1又は請求項2に記載の発話データ生成装置。
【請求項4】
さらに、前記応答発話生成手段により生成された単語列対のうち、所定の基準を満たすもののみを選択して前記単語列対記憶装置に記憶させるための選択手段を含む、請求項1又は請求項2に記載の発話データ生成装置。
【請求項5】
入力発話に応答して、応答発話を生成するための発話生成手段と
前記応答発話と、前記応答発話を検索するために前記入力発話から導出されたキー単語列とを含むキャッシュレコードを記憶する記憶装置とを備え、
前記記憶装置には、複数パッセージの各々から生成された、入力発話に対する応答発話を構成する発話単語列と、前記発話単語列を検索するキーとなる単語列とを含む単語列対を含むキャッシュレコードが格納され、
前記発話生成手段は、前記入力発話に応答して、前記入力発話から導出された入力単語列を前記キー単語列として含むキャッシュレコードを前記記憶装置において検索するための応答発話検索手段を含む、対話装置。
【請求項6】
入力発話に応答して、複数パッセージを含むパッセージ集合に基づいて応答発話を生成し、当該応答発話と、前記応答発話を検索するために前記入力発話から導出されたキー単語列とを含むキャッシュレコードを記憶する記憶装置を含む対話装置において、任意のパッセージに基づいて前記キャッシュレコードと同じフォーマットを持つ応答検索用レコードを生成する機能を持つ生成モデルの作成方法であって、
前記記憶装置に記憶されている前記キャッシュレコードに含まれる応答発話及びキー単語列と、当該応答発話を生成するために前記対話装置が使用したパッセージである原パッセージとを組み合わせることにより、前記生成モデルの学習に使用される学習用レコードを生成するステップと、
前記学習用レコードを生成するステップにおいて生成された複数の学習用レコードの各々について、当該学習用レコードに含まれる前記原パッセージを入力とし、当該学習用レコードに含まれる前記キー単語列及び当該学習用レコードに含まれる前記応答発話を所定のフォーマットに整形して得られる単語列を正解とすることによって、前記生成モデルの学習を行うステップとを含む、生成モデルの作成方法。
【請求項7】
さらに、前記記憶装置に記憶された前記キャッシュレコードのうち、所定の基準を満たすもののみを選択して前記記憶装置から読出して前記学習用レコードを生成するステップへの入力とするステップを含む、請求項6に記載の生成モデルの作成方法。
【請求項8】
入力発話に基づいて複数の質問文を作成し、質問回答システムに入力して、当該質問回答システムから出力される複数の回答文を取得するステップと、
前記回答文を取得するステップにおいて取得された前記複数の回答文に基づいて前記入力発話に対する応答発話を生成するステップと、
前記複数の回答文の各々について、当該回答文を入力とし、当該回答文から得られた前記応答発話と前記入力発話との組み合わせを正解データとした、自然言語文の生成モデルの学習データを生成するステップと、
前記学習データを生成するステップにおいて生成された前記学習データを用いて前記生成モデルの学習を行うステップとを含み、
前記正解データは、前記応答発話と前記入力発話との一方を応答発話単語列とし、他方を前記応答発話の検索のためのキー単語列とするものである、自然言語文の生成モデルの作成方法。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は対話装置に関し、特に、処理負荷の小さな対話装置のための発話データ生成装置、対話装置及びそのための生成モデルの作成方法に関する。
【背景技術】
【0002】
コンピュータの性能の向上と、自然言語に関するコンピュータ処理技術の発展により、人間がコンピュータを相手に対話をする時代が近づいている。そうした対話は、以前と異なりオープンドメインであることが想定される。また特定の問題に対する回答を得るためだけではなく、コンピュータが人間と自然な対話を行うようになることも期待される。
【0003】
そうした対話を行うシステムとして、ウェブから収集した大規模なパッセージ群を知識源として持つ質問応答システムを準備し、ユーザの発話に対してこれらパッセージ群から応答として適切な内容を抽出して応答文を生成するものが知られている(非特許文献1)。
図1にその概略を示す。なお、ここでは、パッセージとは文書の一部のことを指し、たとえば5文から9文程度の連続する文のことをいう。
【0004】
図1を参照して、この対話システム50においては、対話エンジン62が、ユーザ発話60から多数の質問120を作成する質問作成処理110を行う。これら質問120は質問応答システム122に入力される。質問応答システム122は、ウェブから収集した大量のパッセージを含む大規模パッセージ集合64から、各質問に対する回答124を生成する。対話エンジン62は、これら大量の回答124から応答を生成する応答生成処理126を行う。対話エンジン62は、これら応答を、ユーザ発話60に対する応答としてのふさわしさという観点からランキング128し、システム発話66として出力する。
【0005】
上記対話システム50は、大規模パッセージ集合64により表される非常に幅広い知識に基づいてユーザ発話60に対する応答を生成する。したがって、ユーザ発話60のドメインを問わず、適切な回答を与えることができる。しかし、この対話システム50においては、処理に要する負荷が大きいという問題がある。なぜなら、対話エンジン62は、1つの発話に対して多数の質問120を作成し、それらの各々に対して適切な回答となるパッセージを大規模パッセージ集合64の中から検索し、さらにその中から最適な回答を選択するという複雑な処理をする必要があるためである。この過程では多様な深層学習に基づく多くの処理が並行して実行される。そのために必要な計算リソースは非常に大きく、応答まで時間を要することがある。
【0006】
こうした問題を解決するために、対話エンジン62が出力したシステム発話66をキャッシュするという考え方がある。例えば
図1に示すように、ユーザ発話60からトピック単語列をトピック抽出部68が抽出する。トピック単語列とは、ユーザ発話60の中の中心的な単語列のことをいう。トピック単語列は、予め発話例とその中心と思われる単語とを学習データとして学習したニューラルネットワークからなるトピックモデルに、ユーザ発話60を入力することによりトピックモデルの出力に導出される。トピック抽出部68は、このトピックモデルを持ち、ユーザ発話60をトピックモデルに入力することにより、ユーザ発話60からトピック単語列を抽出する。
【0007】
キャッシュデータ作成部80がこのトピック単語列と、システム発話66、大規模パッセージ集合64の中において、システム発話66の元になったパッセージとを組にしたキャッシュデータを作成する。キャッシュデータ作成部80がこのキャッシュデータを対話処理用キャッシュデータ82に蓄積する。次に別のユーザ発話60の入力があった場合には、トピック抽出部68がユーザ発話60からトピック単語列を抽出する。キャッシュ検索部84がこのトピック単語列と同じトピック単語列を持つキャッシュデータを対話処理用キャッシュデータ82内において検索する。該当するキャッシュデータがあれば、キャッシュ検索部84は検索されたキャッシュデータのシステム発話を出力する。キャッシュ検索部84は、該当するキャッシュデータがあったか否かを示す通知92を対話エンジン62に与える。該当するキャッシュデータがなければ、対話エンジン62が通常の応答生成を行い、システム発話66を出力する。
【0008】
対話システム50は、システム発話66を受ける第1入力とキャッシュ検索部84の出力を受ける第2入力とを持つ選択部88を持つ。キャッシュ検索部84は、トピック抽出部68が抽出したトピック単語列に該当するキャッシュデータがあれば第2入力を、そうでなければ第1入力を、それぞれ選択するように選択部88を制御する制御信号94を選択部88に与える。この結果、ユーザ発話60に対する応答としてふさわしいキャッシュデータが既に対話処理用キャッシュデータ82に記憶されていれば、対話システム50は多量の計算を行うことなくシステム発話90を出力できる。そのようなキャッシュデータがなければ対話システム50は通常の方法によりシステム発話66を生成し、システム発話90として出力する。
【先行技術文献】
【非特許文献】
【0009】
【非特許文献1】国立研究開発法人情報通信研究機構、「会話するAI、次世代音声対話システム『WEKDA(ウェクダ)』」、[online]、2017年10月24日、国立研究開発法人情報通信研究機構、[令和4年6月1日検索]、インターネット<URL:https://www.nict.go.jp/press/2017/10/24-1.html>
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかし、この対話システム50においては、1つのトピック単語列に対して複数個のレコードを記録するため、多様なトピックに対する応答を行うために膨大な規模のキャッシュデータを保持する必要がある。先行技術ではキャッシュのレコードを効率的に作成するためには、事前に獲得された多数のトピック単語列集合に対して自動的に質問を作成し、その質問を対話エンジン62に入力し、その結果として対話エンジン62から出力されるシステム発話を使用することが考えられる。しかし、多くのキャッシュのレコードを作成しようとすれば、対話システム50の処理量も増加し、その負荷が非常に高くなるという問題がある。そのため、効率的にキャッシュデータを作成することは困難である。
【0011】
さらに、大規模パッセージ集合64の内容をアップデートし、日々更新されるインターネット上の情報の変化を対話システム50の出力に反映させるためには、ウェブクロールをする必要がある。しかしその場合も、多数の質問を対話システム50に入力しない限り、新たな情報を反映したキャッシュデータは作成できない。したがって対話エンジン62に負荷がかかることが避けられない。
【0012】
したがってこの発明は、対話装置において発話データのキャッシュデータを効率よく生成できるような発話データ生成装置、対話装置及び生成モデルの作成方法を提供することを目的とする。
【課題を解決するための手段】
【0013】
この発明の第1の局面に係る対話装置のための発話データ生成装置は、複数のパッセージの各々から、入力発話に対する応答発話を構成する発話単語列と、発話単語列を検索するキーとなるキー単語列とを含む単語列対を生成する応答発話生成手段と、応答発話生成手段により生成された単語列対を、少なくともキー単語列をキーとして単語列対を読出可能に記憶する単語列対記憶装置とを含む。
【0014】
好ましくは、キー単語列は、入力発話のトピックを示すトピック単語列である。
【0015】
より好ましくは、キー単語列は、入力発話を表す入力発話単語列である。
【0016】
さらに好ましくは、応答発話生成手段は、パッセージが与えられると、当該パッセージから、所定の分離トークンにより互いに分離されたキー単語列と発話単語列とを含む単語列を生成するよう学習済の単語列生成モデルを含む。
【0017】
好ましくは、応答発話生成手段は、パッセージが与えられると、発話単語列を生成するよう予め学習済の第1の単語列生成モデルと、パッセージと発話単語列が与えられると、キー単語列を生成するよう予め学習済の第2の単語列生成モデルとを含む。
【0018】
より好ましくは、応答発話生成手段は、パッセージが与えられると、当該パッセージに含まれる単語について、発話単語列を構成する単語には第1ラベルを、キー単語列を構成する単語には第1ラベルと異なる第2ラベルを、それぞれ付与するよう学習済の単語分類モデルと、パッセージ中の、第1ラベルが付された単語から、発話単語列を生成するための発話単語列生成手段と、パッセージの中における第2ラベルが付された単語から、キー単語列を生成するためのキー単語列生成手段とを含む。
【0019】
さらに好ましくは、応答発話生成手段は、複数のパッセージの各々について、当該パッセージから複数の部分を抽出するための抽出手段と、抽出手段により抽出された複数の部分の各々について、当該部分を入力として受け、単語列対を含む出力単語列を生成するよう学習済の出力単語列生成手段とを含む。
【0020】
好ましくは、抽出手段により抽出される複数の部分の各々は、抽出手段に与えられたパッセージを構成する1文である。
【0021】
より好ましくは、抽出手段により得られる複数の部分の各々は、1又は複数の文を含む。
【0022】
さらに好ましくは、抽出手段により得られる複数の部分の各々は1文、又は1文より短い文字列である。
【0023】
好ましくは、応答発話生成手段はさらに、抽出手段により抽出された複数の部分の中において、所定の基準を満たした部分のみを選択して出力単語列生成手段に入力するための選択手段を含む。
【0024】
より好ましくは、発話データ生成装置は、さらに、応答発話生成手段により生成された単語列対のうち、所定の基準を満たすもののみを選択して単語列記憶装置に記憶させるための選択手段を含む。
【0025】
この発明の第2の局面に係る対話装置は、入力発話に応答して、応答発話を生成するための発話生成手段と、応答発話と、応答発話を検索するために入力発話から導出されたキー単語列とを含むキャッシュレコードを記憶する記憶装置とを備え、記憶装置には、複数パッセージの各々から生成された、入力発話に対する応答発話を構成する発話単語列と、発話単語列を検索するキーとなる単語列とを含む単語列対を含むキャッシュレコードが格納され、発話生成手段は、入力発話に応答して、入力発話から導出された入力単語列をキー単語列として含むキャッシュレコードを記憶装置において検索するための応答発話検索手段を含む。
【0026】
この発明の第3の局面に係る生成モデルの作成方法は、入力発話に応答して、複数パッセージを含むパッセージ集合に基づいて応答発話を生成し、当該応答発話と、応答発話を検索するために入力発話から導出されたキー単語列とを含むキャッシュレコードを記憶する記憶装置を含む対話装置において、任意のパッセージに基づいてキャッシュレコードと同じフォーマットを持つ応答検索用レコードを生成する機能を持つ生成モデルの作成方法であって、記憶装置に記憶されているキャッシュレコードに含まれる応答発話及びキー単語列と、当該応答発話を生成するために対話装置が使用したパッセージである原パッセージとを組み合わせることにより、生成モデルの学習に使用される学習用レコードを生成するステップと、学習用レコードを生成するステップにおいて生成された複数の学習用レコードの各々について、当該学習用レコードに含まれる原パッセージを入力とし、当該学習用レコードに含まれるキー単語列及び当該学習用レコードに含まれる応答発話を所定のフォーマットに整形して得られる単語列を正解とすることによって、生成モデルの学習を行うステップとを含む。
【0027】
好ましくは、作成方法はさらに、記憶装置に記憶されたキャッシュレコードのうち、所定の基準を満たすもののみを選択して記憶装置から読出して学習用レコードを生成するステップへの入力とするステップを含む。
【0028】
より好ましくは、学習を行うステップは、学習用レコードを生成するステップにおいて生成された複数の学習用レコードの各々について、当該学習用レコードに含まれる原パッセージを入力とし、当該学習用レコードに含まれるキー単語列及び当該学習用レコードに含まれる応答発話を所定の分離トークンを介して結合して得られる単語列を正解とすることによって、生成モデルの学習を行うステップを含む。
【0029】
さらに好ましくは、キー単語列は、入力発話が関連するトピック単語列である。
【0030】
好ましくは、キー単語列は、入力発話を構成する単語列である。
【0031】
この発明の第4の局面に係る自然言語文の生成モデルの作成方法は、入力発話に基づいて複数の質問文を作成し、質問回答システムに入力して、当該質問回答システムから出力される複数の回答文を取得するステップと、回答文を取得するステップにおいて取得された複数の回答文に基づいて入力発話に対する応答発話を生成するステップと、複数の回答文の各々について、当該回答文を入力とし、当該回答文から得られた応答発話と入力発話との組み合わせを正解データとした、自然言語文の生成モデルの学習データを生成するステップと、学習データを生成するステップにおいて生成された学習データを用いて生成モデルの学習を行うステップとを含み、正解データは、応答発話と入力発話との一方を応答発話単語列とし、他方を応答発話の検索のためのキー単語列とするものである。
【0032】
好ましくは、応答発話単語列は応答発話であり、キー単語列は入力発話である。
【0033】
より好ましくは、応答発話単語列は入力発話であり、キー単語列は応答発話である。
【0034】
さらに好ましくは、学習データを生成するステップは、複数の回答文の各々について、当該回答文を入力とし、当該回答文が得られた質問文と、回答文から得られた応答発話と、入力発話との組み合わせを正解データとして、学習データを生成するステップを含む。
【図面の簡単な説明】
【0035】
【
図1】
図1は、先行技術に係る対話システムの構成を示すブロック図である。
【
図2】
図2は、この発明の第1実施形態に係るキャッシュデータ生成装置の構成を示すブロック図である。
【
図3】
図3は、
図2に示すキャッシュデータ生成モデルの学習を行うキャッシュデータ生成モデル学習部の構成を示すブロック図である。
【
図4】
図4は、キャッシュデータ生成モデル学習部が使用する学習データの構成の1例を示す図である。
【
図5】
図5は、この発明の第2実施形態に係るキャッシュデータ生成装置の構成を示すブロック図である。
【
図6】
図6は、
図5に示すトピック単語列付与部を構成するトピック単語列生成モデルの学習データの構成の1例を示す図である。
【
図7】
図7は、
図5に示すシステム発話付与部286を構成するシステム発話生成モデルの学習データの構成の1例を示す図である。
【
図8】
図8は、この発明の第3実施形態に係るキャッシュデータ生成装置の構成を示すブロック図である。
【
図9】
図9は、
図8に示すシステム発話生成部を構成するシステム発話生成モデルの学習データの構成の1例を示す図である。
【
図10】
図10は、
図8に示すトピック単語列付与部を構成するトピック単語列生成モデルの学習データの構成の1例を示す図である。
【
図11】
図11は、この発明の第4実施形態に係るキャッシュデータ生成装置におけるキャッシュデータ生成モデルの学習を行うモデル学習システムの構成を示すブロック図である。
【
図12】
図12は、この発明の第5実施形態に係るキャッシュデータ生成装置の構成を示すブロック図である。
【
図13】
図13は、
図12に示すモデル学習システムによるキャッシュデータの生成過程を示す図である。
【
図15】
図15は、
図14に示す分類モデルの学習データ生成装置の構成を示すブロック図である。
【
図16】
図16は、
図15に示す学習データ生成装置による学習データの生成過程を示す図である。
【
図17】
図17は、
図12に示すシステム発話生成モデルの学習を行う学習システムの構成を示すブロック図である。
【
図18】
図18は、
図17に示す学習データ生成装置による学習データの生成過程を示す図である。
【
図19】
図19は、この発明の第6実施形態に係るキャッシュデータ生成装置により生成されたキャッシュデータを使用する対話装置の構成を示すブロック図である。
【
図20】
図20は、第6実施形態に係るキャッシュデータ生成装置の構成を示すブロック図である。
【
図21】
図21は、
図20に示すパッセージ読出部及び対象文選択部を実現するためのコンピュータプログラムの制御構造を示すフローチャートである。
【
図22】
図22は、第6実施形態に係るキャッシュデータ生成装置のキャッシュデータ生成部が使用するキャッシュデータ生成モデルの学習データを生成するシステムの構成を示すブロック図である。
【
図23】
図23は、第6実施形態におけるキャッシュデータの生成手順の1例を示す模式図である。
【
図24】
図24は、第6実施形態の変形例におけるキャッシュデータの生成手順の1例を示す模式図である。
【
図25】
図25は、第6実施形態におけるキャッシュデータ生成モデルの学習データの構成の1例を示す図である。
【
図26】
図26は、第6実施形態の変形例におけるキャッシュデータ生成モデルの学習データの構成の1例を示す図である。
【
図27】
図27は、第6実施形態及びその変形例について行った実験の評価を示す図である。
【
図28】
図28は、第6実施形態及びその変形例について行った実験の評価を示す図である。
【
図29】
図29は、この発明の第7実施形態に係るキャッシュデータ生成装置の学習データを生成するシステムの構成を示すブロック図である。
【
図30】
図30は、この発明の第8実施形態に係るキャッシュデータを使用する質問応答装置の構成を示すブロック図である。
【
図31】
図31は、この発明の第8実施形態に係るキャッシュデータ生成装置の概略ブロック図である。
【
図32】
図32は、
図31に示すキャッシュデータ生成モデルのための学習データ生成装置の概略ブロック図である。
【
図33】
図33は、この発明の各実施形態を実現するためのコンピュータの外観を示す図である。
【発明を実施するための形態】
【0036】
以下の説明及び図面では、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。
【0037】
1.第1実施形態
A.構成
-キャッシュデータ生成装置-
図2を参照して、この発明の第1実施形態に係るキャッシュデータ生成装置140は、大規模パッセージ集合64から
図1に示す対話システム50のためのキャッシュデータを生成し、キャッシュデータ記憶装置162に格納する。大規模パッセージ集合64は、例えば複数のパッセージを順番に記憶したテキストファイルの形式で準備されてもよいし、各々が1パッセージずつを記憶した複数レコードを持つデータベースの形式で準備されてもよい。なお、キャッシュデータ生成装置140により生成されたデータは、応答検索用に生成されるものであって、対話システム50によって得られたキャッシュデータと同様に使用できる。しかしこれらは通常の方法で生成されたキャッシュデータではない。したがって、両者を明確に区別するためには、キャッシュデータ生成装置140により生成されたデータは、キャッシュデータを代替する疑似キャッシュデータ、又は応答検索用データという名称で呼ぶ方が適切かも知れない。しかし、以下の説明では、両者を実質的に区別できると考えられ、煩を避けるという意味もあって両者ともにキャッシュデータと呼ぶこととする。
【0038】
キャッシュデータ生成装置140は、大規模パッセージ集合64からパッセージを1つずつ読出すためのパッセージ読出部152と、パッセージ読出部152が読出したパッセージから
図1に示す対話処理用キャッシュデータ82に記憶されたキャッシュデータを構成する各データ項目と同じ形式を持つキャッシュデータを生成するためのキャッシュデータ生成モデル154とを含む。キャッシュデータ生成モデル154としては、後述するように自然言語処理で多用されその効果が実証されているトランスフォーマ・エンコーダ・デコーダ(以下、「トランスフォーマ」という。)を用いる。キャッシュデータ生成モデル154を構成する自然言語文の生成モデルであるトランスフォーマの学習については後述する。なお、第1実施形態だけではなく、以下の各実施形態におけるキャッシュデータ生成モデルとしては、トランスフォーマが用いられる。もちろん、モデルはトランスフォーマに限定されるわけではなく、自然言語文の生成が可能で学習可能なモデルであればどのようなものも利用できる。
【0039】
キャッシュデータ生成装置140はさらに、キャッシュデータ生成モデル154が生成したキャッシュデータを記憶するための生成データ記憶装置156と、予め準備した面白さ判定モデル158を用いて生成データ記憶装置156に記憶されたキャッシュデータの中から面白さのスコアがしきい値以上のものを選択するためのキャッシュデータ選択部160とを含む。キャッシュデータ選択部160により選択されたキャッシュデータはキャッシュデータ記憶装置162に格納される。
【0040】
キャッシュデータ生成モデル154は、この実施形態では、
図1に示す対話処理用キャッシュデータ82に記憶されているキャッシュデータを使用して、キャッシュデータ生成モデル学習部200により予め訓練される。対話処理用キャッシュデータ82に記憶されたキャッシュデータは、この実施形態では、ユーザ発話から導出されてトピック単語列と、ユーザ発話に対するシステム発話の単語列とを含むフォーマットであり、さらに応答を生成する元になったパッセージ(これをここでは「原パッセージ」と呼ぶ。)の単語列を含む。したがって、キャッシュデータ生成モデル学習部200は、キャッシュデータのパッセージを入力とし、キャッシュデータのトピック単語列とシステム発話とを所定のデリミタを介して結合した、キャッシュデータと同じフォーマットの単語列を正解データとして、キャッシュデータ生成モデル154の学習を行う。
【0041】
キャッシュデータ記憶装置162は、少なくともトピック単語列をキー、すなわちキー単語列として、キャッシュデータのレコードを読み出すことができるようにキャッシュデータを記憶する。なお、キャッシュデータとしては原パッセージは必要ではない。しかし、この実施形態では、原パッセージをキャッシュデータに含ませている。これは、後述するようにユーザ発話60から生成したキャッシュデータを使用してさらにキャッシュデータを生成するときには、原パッセージが必要になるためである。そうした目的がないなら、キャッシュデータに原パッセージを含ませることは必要ではない。
【0042】
面白さ判定モデル158は、予め準備したニューラルネットワークからなるモデルである。面白さ判定モデル158は、入力された発話が発話として利用可能か否か、及び面白い発話かという観点で、発話に対するスコアを出力する。面白さ判定モデル158の学習は、予め準備した多数の単語列について、その発話をシステム発話として利用できるか、利用したときに面白いかを示すラベルを付すことで得られる学習データを使用して行われる。
【0043】
-キャッシュデータ生成モデル学習部200-
図3に、
図2のキャッシュデータ生成モデル学習部200のより詳細な構成を示す。
図3を参照して、キャッシュデータ生成モデル学習部200は、対話処理用キャッシュデータ82に記憶されているキャッシュデータの各レコードを読出し、面白さ判定モデル212によるそのレコードの面白さを示すスコアがしきい値以上であるもののみ選択するデータ選択部214を含む。面白さ判定モデル212は、
図2に示す面白さ判定モデル158と同様のものである。
【0044】
キャッシュデータ生成モデル学習部200はさらに、データ選択部214により選択されたキャッシュデータの各レコードを記憶するための対象キャッシュデータ記憶装置216と、対象キャッシュデータ記憶装置216に記憶された各レコードを使用して、キャッシュデータ生成モデル154の学習データを生成するための学習データ生成部218とを含む。学習データ生成部218の機能は、前述したとおり、対象レコードに含まれるパッセージを入力とし、対象レコードに含まれるトピック単語列とシステム発話の単語列とをデリミタを介して連結した単語列を正解とする学習データを生成することである。
【0045】
キャッシュデータ生成モデル学習部200はさらに、学習データ生成部218により生成された学習データを記憶するための学習データ記憶装置220と、学習データ記憶装置220に記憶された学習データを用いてキャッシュデータ生成モデル154の学習を行うためのモデル学習部222とを含む。
【0046】
図4に、学習データ記憶装置220に記憶された学習データのレコードの1例を示す。以下の説明では、記載を簡潔にするために「学習データのレコード」を単に「学習レコード」と呼ぶ。
図4を参照して、この学習レコード250は、キャッシュデータ生成モデル154に入力されるパッセージの単語列260と、キャッシュデータ生成モデル154が出力すべき正解データである出力単語列262との組である。学習データ生成部218は、ユーザ発話から得られたトピック単語列(例えば「F社製のワクチン」)と、システム発話の単語列(「5~11歳の子ども用のF社製ワクチンが承認されたらしい」)とをデリミタ(
図4では「SEP」で表されている。以下の各図において同じ。)を介して結合することにより出力単語列262を生成する。なお、パッセージの単語列260及び出力単語列262の各単語列は互いに空白で分離されているが、明細書ではスペースを節約するために単語間の空白は省略する。
【0047】
B.動作
図2に示すキャッシュデータ生成装置140は以下のように動作する。キャッシュデータ生成装置140の動作の前には、キャッシュデータ生成モデル154の学習を行う必要がある。そこで、最初にキャッシュデータ生成モデル154の学習について説明する。
【0048】
図3を参照して、対話処理用キャッシュデータ82には、例えば
図1に示す対話システム50により複数のキャッシュデータが作成され記憶されている。面白さ判定モデル212も既に学習済であるものとする。
【0049】
データ選択部214は対話処理用キャッシュデータ82に記憶されているキャッシュデータの各レコードを読出し、面白さ判定モデル212に各レコードを入力する。面白さ判定モデル212は、入力されたレコードに応答して、そのレコードに含まれるシステム発話の面白さを示すスコアを出力する。データ選択部214は、対話処理用キャッシュデータ82から読出したキャッシュデータの各レコードの中で、このスコアがしきい値以上のもののみを選択し対象キャッシュデータ記憶装置216に格納する。
【0050】
学習データ生成部218は、対象キャッシュデータ記憶装置216に記憶された各レコードを使用して、キャッシュデータ生成モデル154の学習データを生成し学習データ記憶装置220に格納する。具体的には、学習データ生成部218は、対象レコードに含まれるパッセージを入力とし、対象レコードに含まれるトピック単語列とシステム発話の単語列とをデリミタを介して連結した単語列を正解とする学習データを生成する。
【0051】
モデル学習部222は、学習データ記憶装置220に記憶された学習データを用いてキャッシュデータ生成モデル154の学習を行う。この学習により、キャッシュデータ生成モデル154は、パッセージが与えられると、トピック単語列としての各単語列の確率分布と、システム発話としての各単語列の確率分布とを生成し出力するようになる。
【0052】
図2を参照して、キャッシュデータ生成モデル154の学習が完了すると、キャッシュデータ生成モデル学習部200が動作可能になる。大規模パッセージ集合64には、
図1に関連して説明したとおり、ウェブなどから収集した大量のパッセージが格納されている。
【0053】
パッセージ読出部152は、大規模パッセージ集合64から1パッセージずつパッセージを読出し、キャッシュデータ生成モデル154に入力する。キャッシュデータ生成モデル154は、入力されたパッセージに応答して、トピック単語列の確率分布と、システム発話の単語列の確率分布とを出力する。説明を簡単にするために、ここではトピック単語列の中で最も確率が高い単語がトピック単語列として選択され、システム発話としても、システム発話の単語列の確率が最も高い単語列がシステム発話の単語列として選択されるものとする。こうして得られたトピック単語列及びシステム発話の単語列はデリミタを介して結合され、パッセージ読出部152が読出したパッセージと組み合わされてキャッシュデータの候補を形成する。キャッシュデータは生成データ記憶装置156に一旦格納される。
【0054】
キャッシュデータ選択部160は、例えば生成データ記憶装置156に記憶されたキャッシュデータの候補の各々を面白さ判定モデル158に入力し、各キャッシュデータ内のシステム発話の面白さのスコアを出力させる。キャッシュデータ選択部160は、生成データ記憶装置156に記憶されたシステム発話の候補の中において、面白さ判定モデル158による面白さのスコアがしきい値以上のものを選択してキャッシュデータ記憶装置162に格納される。この実施形態においては、生成データ記憶装置156は、システム発話の候補の中において、スコアがしきい値未満のものは破棄する。
【0055】
以上のようにこの第1実施形態においては、対話処理用キャッシュデータ82に格納されていたキャッシュデータを使用してキャッシュデータ生成モデル154を訓練する。キャッシュデータ生成装置140は、キャッシュデータ生成モデル154を用いて大規模パッセージ集合64に記憶されているパッセージの各々からキャッシュデータのレコードを生成し、それらの中で面白さのスコアがしきい値以上のレコードのみをキャッシュデータとしてキャッシュデータ記憶装置162に格納する。
図2に示すキャッシュデータ生成装置140の動作においても、
図3に示すキャッシュデータ生成モデル学習部200の動作においても、必要な処理は単純な処理のみであり、面白さのスコアがしきい値以上のレコードのみを選択するため、対話装置の発話としてあまり面白みのない発話がキャッシュデータとして生成されることが防止できる。
【0056】
この実施形態では、上述した処理により得られたキャッシュデータを、
図1に示す対話システム50における対話処理用キャッシュデータ82に追加する。この処理により、トピック抽出部68によって抽出されたトピック単語列をキー単語列として対話処理用キャッシュデータ82を検索したときにヒットするキャッシュデータのレコードの数が増大することが予測される。その結果、対話装置においてキャッシュデータを効率よく生成できるような発話データ生成装置、対話装置及び生成モデルの作成方法が提供できる。なお、
図1に示す対話システム50において、もともとキャッシュデータを使用する機能を持たないものに、キャッシュデータを使用する機能を新たに付加する場合もある。そうした場合、
図1に示す対話処理用キャッシュデータ82にレコードがない状態で、上記実施形態1の方法により別の装置で生成したキャッシュデータを格納することにより、対話システム50と同じ機能を発揮できる。その場合でもキャッシュデータを対話処理用キャッシュデータ82に追加することに代わりはなく、そうした装置はキャッシュデータを上記実施形態1に記載の装置又は方法により生成する限り、この実施形態1に包含される。
【0057】
2.第2実施形態
図3を参照して、第2実施形態においては、第1実施形態の
図2に示すキャッシュデータ生成モデル学習部200に代えて、
図5に示すキャッシュデータ生成装置270を用いる点においてキャッシュデータ生成モデル学習部200と異なる。キャッシュデータ生成装置270は、学習データ生成部218のように各パッセージから直接にキャッシュデータの候補を生成するのではない。
【0058】
図5を参照して、キャッシュデータ生成装置270は、大規模パッセージ集合64から各パッセージを読出すパッセージ読出部152と、パッセージ読出部152により読出されたパッセージからトピック単語列を抽出しパッセージに付与するトピック単語列付与部282とを含む。
【0059】
キャッシュデータ生成装置270はさらに、トピック単語列付与部282が出力したトピック単語列付のパッセージを記憶するためのトピック単語列付パッセージ記憶装置284と、トピック単語列付パッセージ記憶装置284に記憶された各パッセージからシステム発話の単語列を生成し、そのパッセージに付与してキャッシュデータの候補として出力するためのシステム発話付与部286とを含む。システム発話付与部286は、各パッセージを入力として、そのパッセージに付与されたトピック単語列とシステム発話の候補とをデリミタを介して結合し、得られた単語列をパッセージと組み合わせてキャッシュデータの候補とする。
【0060】
キャッシュデータ生成装置270はさらに、システム発話付与部286が出力したキャッシュデータの候補を記憶するためのキャッシュデータ候補記憶装置288と、キャッシュデータ候補記憶装置288に記憶されたキャッシュデータの各々を面白さ判定モデル158に入力することによりそのキャッシュデータに含まれるシステム発話のスコアを算出し、スコアがしきい値以上のもののみを選択して出力するキャッシュデータ選択部290とを含む。キャッシュデータ選択部290が選択したキャッシュデータはキャッシュデータ記憶装置292に記憶される。
【0061】
トピック単語列付与部282及びシステム発話付与部286は、いずれも自然言語文を生成可能なニューラルネットワークにより実現される。
図6に、トピック単語列付与部282による第1ステップの処理に用いられる、パッセージからトピック単語列を生成するニューラルネットワークの学習データの構成例を示す。
【0062】
図6を参照して、トピック単語列付与部282のためのニューラルネットワークの学習データ310は、パッセージ単語列320と、対話処理用キャッシュデータ82に記憶されたキャッシュデータにおいて、パッセージ単語列320と組になっているトピック単語列322とを組にしたものである。パッセージ単語列320が入力であり、トピック単語列322が正解データ(出力)である。この学習データ310を用いてニューラルネットワークの学習を行うことにより、
図5に示すトピック単語列付与部282が得られる。
【0063】
図7を参照して、
図5に示すシステム発話付与部286による第2ステップの処理に用いられる、トピック単語列付のパッセージ単語列からシステム発話の単語列を生成するためのニューラルネットワークの学習データの構成例を示す。
図7を参照して、この学習データ340は、トピック単語列付パッセージ記憶装置284に記憶されたトピック単語列とパッセージ単語列とをデリミタを介して結合した単語列350を入力とする。学習データ340はさらに、このパッセージと組になって
図1の対話処理用キャッシュデータ82にキャッシュデータとして記憶されているシステム発話単語列352を正解データ(出力)として、単語列350と組み合わせたものである。
【0064】
このように第2実施形態に係るキャッシュデータ生成装置270では、トピック単語列とシステム発話の単語列とが別々にこの順番でそれぞれ生成された後、キャッシュデータのフォーマットに整形してキャッシュデータとして蓄積される。キャッシュデータの生成に大量の計算資源を必要とすることはない。このキャッシュデータを
図1に示す対話処理用キャッシュデータ82に追加することにより、ユーザ発話60に対するシステム発話が対話処理用キャッシュデータ82においてヒットする確率が高くなり、対話システム50の稼働効率を高めることができる。
【0065】
3.第3実施形態
第2実施形態では、キャッシュデータ生成において、第1ステップとしてパッセージからトピック単語列を抽出し、第2ステップとして、トピック単語列付のパッセージからシステム発話単語列を推定している。しかしこの発明はそのような実施形態には限定されない。最初にパッセージからシステム発話単語列を推定し、システム発話単語列付のパッセージからトピック単語列を推定してもよい。
図8にそのようにしてキャッシュデータを生成するキャッシュデータ生成装置370の構成を示す。
【0066】
図8を参照して、キャッシュデータ生成装置370は、大規模パッセージ集合64からパッセージを読出すパッセージ読出部152と、パッセージ読出部152のより読出されたパッセージからシステム発話単語列を生成しパッセージに付与して出力するためのシステム発話生成部382と、キャッシュデータ生成の第1ステップにおいて、システム発話生成部382の出力を記憶するシステム発話付パッセージを記憶するためのシステム発話付パッセージ記憶装置384とを含む。
【0067】
キャッシュデータ生成装置370は、キャッシュデータ生成の第2ステップにおいて、システム発話付パッセージ記憶装置384からシステム発話付パッセージを読出し、トピック単語列を付与してキャッシュデータの形に整形し出力するためのトピック単語列付与部386と、トピック単語列付与部386が出力するキャッシュデータの候補を記憶するためのキャッシュデータ候補記憶装置388とを含む。
【0068】
キャッシュデータ生成装置370はさらに、キャッシュデータ候補記憶装置388に記憶されたキャッシュデータ候補の各々について、面白さ判定モデル158を用いてスコアを算出し、スコアがしきい値以上のキャッシュデータ候補のみを選択してキャッシュデータ記憶装置292に格納するためのキャッシュデータ選択部290を含む。
【0069】
トピック単語列付与部282及びシステム発話付与部286はいずれも、学習済の自然言語文を生成可能なニューラルネットワークを用いて実現できる。
図9に第1ステップのシステム発話生成部382のニューラルネットワークの学習データの構成例を示す。
図10には第2ステップのトピック単語列付与部386のニューラルネットワークの学習データの構成例を示す。
【0070】
図9を参照して、システム発話生成部382のニューラルネットワークの学習のための学習データ410は、パッセージ単語列420を入力とし、システム発話単語列422を正解データ(出力)とするものである。
【0071】
図10を参照して、トピック単語列付与部386のニューラルネットワークの学習のための学習データ440は、システム発話単語列とパッセージ単語列とをデリミタで結合した単語列450を入力とし、トピック単語列452を正解データ(出力)として組み合わせたものである。
【0072】
このように第3実施形態に係るキャッシュデータ生成装置370では、システム発話単語列とトピック単語列とが別々にこの順番でそれぞれ生成された後、キャッシュデータのフォーマットに整形してキャッシュデータとして蓄積される。キャッシュデータの生成に大量の計算資源を必要とすることはない。このキャッシュデータを
図1に示す対話処理用キャッシュデータ82に追加する。こうすることにより、ユーザ発話60に対するシステム発話が対話処理用キャッシュデータ82においてヒットする確率が高くなり、対話システム50の稼働効率を高めることができる。
【0073】
なお、この第3実施形態の第2ステップでは、システム発話単語列付のパッセージからトピック単語列を推定している。しかしこの発明はそうした実施形態に限定されるわけではない。第2ステップにおいて、システム発話の単語列からトピック単語列を推定するようにしてもよい。この場合は、システム発話の単語列を入力とし、対応するトピック単語列を出力(正解)とする学習データとして、トピック単語列を生成するように機械学習モデルを学習させる。この機械学習モデルを、トピック単語列を推定するためのモデルとして使用すればよい。
【0074】
4.第4実施形態
上記第1実施形態では、キャッシュデータ生成モデルの学習に、実際のユーザ発話から得られたトピック単語列とシステム発話単語列とからなるキャッシュデータを教師データとして用いている。しかしキャッシュデータ生成モデルの学習データが実際のユーザ発話に基づいたものである必要はない。何らかの対話データが入手できれば、それらとパッセージとを関連付けることで、キャッシュデータ生成モデルの学習データが生成できる。
【0075】
図11を参照して、この第4実施形態に係るモデル学習システム500は、インターネット510をクローリングし、ユーザによる対話が行われているページから対話データを収集するための対話データ収集部512と、対話データ収集部512により収集された対話データを記憶するための対話データ記憶装置514と、大規模パッセージ集合64とを含む。モデル学習システム500はさらに、対話データ記憶装置514及び大規模パッセージ集合64に接続され、対話データ記憶装置514に記憶された対話データと大規模パッセージ集合64に記憶されたパッセージとを用いてキャッシュデータ生成モデル528のための学習データを生成し、キャッシュデータ生成モデル528の学習を行うためのキャッシュデータ生成モデル学習装置502を含む。
【0076】
対話データ収集部512がアクセスするサイトは、例えばミニブログ、ブログ又はニュースページなどのコメント欄、質問サイトなど、複数のユーザがアクセスし、ユーザ同士でのコミュニケーションが行われているサイトであればどのようなものでもよい。なお、ここでの対話は1つの発話とその発話に対する応答からなる1対の発話単語列のことをいう。
【0077】
キャッシュデータ生成モデル学習装置502は、対話データ記憶装置514に記憶された1対の発話単語列を読出し、その発話単語列と特に関連が高いパッセージを大規模パッセージ集合64において検索し読出すための関連パッセージ選択部518と、関連パッセージ選択部518により読出されたパッセージと、検索に用いられた1対の発話単語列とを組にして学習データ生成のための対象データとして記憶するための対象データ記憶装置520とを含む。1対の発話単語列と関連が高いパッセージを選択するためには、発話単語列に出現する単語群と、パッセージに出現する単語群との重なりが大きいこと、などという基準により1対の発話単語列とパッセージとを関連付ける、等の手法を用いる。
【0078】
キャッシュデータ生成モデル学習装置502はさらに、対象データ記憶装置520に記憶された対象データからキャッシュデータ生成モデル528の学習データを生成するための学習データ生成部522と、これら学習データを記憶するための学習データ記憶装置524と、学習データ記憶装置524に記憶された学習データを用いてキャッシュデータ生成モデル528の学習を行うためのモデル学習部526とを含む。
【0079】
学習データ生成部522は例えば、対象データの中の発話単語列のうち、時間的に先行する発話単語列からトピック単語列を抽出する。学習データ生成部522はさらに、時間的にあとの発話単語列をシステム発話とし、トピック単語列及び対象データ内のパッセージと組み合わせることにより学習データを生成する。
【0080】
キャッシュデータ生成モデル528の学習は、第1から第4の実施形態におけるキャッシュデータ生成モデルの学習と同じである。
【0081】
このように、インターネット510に大量に存在している対話データと大規模パッセージ集合64のパッセージとを組み合わせることにより、大量の学習データが生成できる。
【0082】
なお、対話データとパッセージとの対応付の精度が高ければ、学習データそのものをキャッシュデータとみなしてもよい。この場合にキャッシュデータ生成モデル528の学習を行う必要はない。
【0083】
5.第5実施形態
第1実施形態から第3実施形態においては、キャッシュデータ生成の段階で、パッセージからシステム発話の単語列を生成するという手順が必要とされている。例えば
図2のキャッシュデータ生成モデル154、
図5のシステム発話付与部286、
図8のシステム発話生成部382などである。パッセージからのキャッシュデータの生成は、
図1に示す従来のものと比較すればはるかに計算負荷は小さい。しかし、さらに計算負荷を小さくできればより好ましい。この第5実施形態はそのような実施形態である。
【0084】
A キャッシュデータ生成装置の全体構成
図12に第5実施形態に係るキャッシュデータ生成装置550の構成をブロック図形式で示す。
図12を参照して、キャッシュデータ生成装置550は、大規模パッセージ集合64からキャッシュデータを生成し、キャッシュデータ記憶装置578に格納するためのものである。
【0085】
キャッシュデータ生成装置550は、大規模パッセージ集合64から各パッセージを読出すためのパッセージ読出部562と、読出されたパッセージに含まれる単語をシステム発話に使用されるもの、トピック単語列に使用されるもの、及びそれ以外に分類するための分類モデル564とを含む。より詳細には、分類モデル564は、入力されるパッセージの各単語のうち、システム発話に使用される単語には第1ラベルを付す。分類モデル564はさらに、システム発話に使用される単語のうち、トピック単語列には第1ラベルと別に第2ラベルを付す。分類モデル564はこのようにラベルが付された後のパッセージの単語列を出力する。ここでは、この単語列をラベリング後パッセージ568とよぶ。分類モデル564の構成については
図14を参照して後述する。
【0086】
キャッシュデータ生成装置550はさらに、ラベリング後パッセージ568の中で、第2ラベルが付された単語列を抽出しトピック単語列566として出力するためのトピック単語列抽出部565と、ラベリング後パッセージ568の中で第1ラベルが付された単語列を抽出し、システム発話部分単語列571として出力するためのシステム発話部分抽出部570とを含む。すなわち、対象となるパッセージはトピック単語列抽出部565及びシステム発話部分単語列571により、トピック単語列の部分とシステム発話の部分とが抽出される。
キャッシュデータ生成装置550はさらに、システム発話部分単語列571を入力として受け、システム発話部分単語列571からシステム発話単語列574を生成するための、予め学習済のシステム発話生成モデル572と、トピック単語列566及びシステム発話単語列574とをデリミタを介して結合することによりキャッシュデータを生成するためのキャッシュデータ生成モデル576とを含む。キャッシュデータ生成モデル576が生成したキャッシュデータはキャッシュデータ記憶装置578に格納される。
【0087】
図13を参照して、キャッシュデータ生成装置550は以下のように動作する。キャッシュデータ生成装置550の分類モデル564がパッセージ590を受信したものとする。
図12に示す分類モデル564は、このパッセージ590のうち、システム発話部分に相当する単語列600に第1ラベルを付す。分類モデル564はさらに、第1ラベルが付された単語列の中でトピック単語列に相当する単語列602に第2ラベルを付す。その結果、得られるパッセージ単語列から第1ラベルが付された単語列を抽出することによりシステム発話部分単語列594が得られる。同様に、パッセージ単語列から第2ラベルが付された単語列を抽出することにより、トピック単語列566が得られる。システム発話部分単語列594を
図12に示すシステム発話生成モデル572に入力することにより、システム発話単語列574が得られる。システム発話生成モデル572は、このようにシステム発話部分単語列の入力を受けると、その単語列に基づいてシステム発話を出力するよう、予め学習データを用いて学習されている。
【0088】
こうして得られたトピック単語列566とシステム発話単語列574とをデリミタ(SEP)を介して結合することにより、キャッシュデータ598が得られる。キャッシュデータ598を蓄積し、
図1に示す対話処理用キャッシュデータ82に追加することにより、対話システム50においてユーザ発話60に対する応答発話が対話処理用キャッシュデータ82においてヒットする確率が高くなる。その結果、対話エンジン62の負荷を小さくでき、システム発話90もより短時間で出力できるようになる。また、システム発話単語列574は、パッセージ590から直接的にではなく、システム発話を構成する単語列として推定されたシステム発話部分単語列594から生成される。システム発話部分単語列594は短く、後述するようにシステム発話単語列574を生成する処理は簡単である。その結果、システム発話単語列574を生成するための負荷は小さくなる。
【0089】
B 分類モデル564の構成
図14に、分類モデル564の構成の概要を示す。分類モデル564としては、自然言語関係のニューラルネットワークモデルとして周知であるBERT(Bidirectional Encoder Representation from Transformers)を用いている。
図14を参照して、分類モデル564は、入力単語列618を受けて単語ベクトル列に変換する埋込層610と、埋込層610の出力を入力に受ける、トランスフォーマ層を複数段にわたり積層したBERTトランスフォーマ層612と、BERTトランスフォーマ層612の最終層の隠れベクトル列614を入力として、各々のベクトルから上記したラベルを決定するための確率ベクトル620を出力するための出力層616とを含む。出力層616内の要素は、各隠れベクトル対して第1要素及び第2要素が準備されている。第1要素は、入力される隠れベクトルに対応する入力単語がトピック単語列である確率p
t
i(Nを入力単語数としてi=1からN)を出力するためのものである。第2要素は、同じ入力単語がシステム発話部分の単語列である確率p
u
i(i=1からN)を出力するためのものである。
【0090】
BERTトランスフォーマ層612への入力である入力単語列618は、図に示すように先頭に入力の先頭であることを示すトークン「[CLS]」を、末尾にデリミタ「[SEP]」を付したパッセージ単語列である。なお、
図14において「emb」は埋込み層の各要素を表し、「Trm」はトランスフォーマ層を表す。
【0091】
分類モデル564の学習は以下のように行う。
図15を参照して、分類モデル564の学習のためには、
図3に示す学習データ記憶装置220に記憶されたものと同じデータは使用できないが、学習データ記憶装置220に記憶されたデータから分類モデル564のために生成した学習データを用いる。学習データ記憶装置220に記憶された学習データは、パッセージの単語列260と、正解データである出力単語列262との組である。出力単語列262は、
図4に示すように、トピックワードの単語列とシステム発話の単語列と両者を分離する所定のトークンであるデリミタとを含む。
【0092】
分類モデル564のための学習データ生成システムは、学習データ記憶装置220と、学習データ記憶装置220に記憶された学習データから、分類モデル564の学習のために学習データの単語列に所定のラベリングを行って出力するための学習データ生成装置650と、学習データ生成装置650の出力を格納するためのラベリング後学習データ記憶装置652とを含む。学習データ生成システムはさらに、ラベリング後学習データ記憶装置652に記憶されたラベリング後学習データを読出し、分類モデル564の学習を行うための分類モデル学習部654を含む。
【0093】
学習データ生成装置650は、学習データ記憶装置220から学習データを順に読出すためのデータ選択部660と、データ選択部660が読出した学習データからトピック単語列666を抽出するためのトピック単語列抽出部662と、データ選択部660からパッセージを抽出し、パッセージに対する形態素解析を行って、活用語(動詞など)を基本形に置換して解析後パッセージ668として出力するためのパッセージ解析部664とを含む。学習データ生成装置650はさらに、学習データからシステム発話を抽出し、システム発話に対する形態素解析を行って、活用語を基本形に置換して解析後システム発話670とし出力するためのシステム発話解析部669をさらに含む。
【0094】
学習データ生成装置650はさらに、解析後パッセージ668と解析後システム発話670とをアライメントするためのアライメント部672と、アライメント部672により解析後システム発話670とアライメントされた解析後パッセージ668において、解析後システム発話670の単語列に相当する部分の単語列に第1ラベルを付すための第1ラベリング部674と、第1ラベリング部674により第1ラベルが付された解析後パッセージ668において、第1ラベルが付された部分のうち、トピック単語列666と一致する単語列に第2ラベルを付してラベリング後学習データを生成し、ラベリング後学習データ記憶装置652に格納するための第2ラベリング部676とを含む。第1ラベルが付された単語は、システム発話部分の単語としての正例として使用され、第1ラベルが付されていない単語は負例として使用される。また第2ラベルが付された単語は、トピック単語列の正例として使用され、第2ラベルが付されていない単語は、負例として使用される。
【0095】
パッセージ解析部664及びシステム発話解析部669による単語列の解析は、アライメント部672によるアライメントを容易にすることを目的とする。アライメント部672におけるアライメントには、アライメントのための公知のアルゴリズム、例えばNeedleman-Wunsch Algorithmが使用できる。
【0096】
分類モデル学習部654は、第1ラベルが付された単語を正例、付されていない単語を負例として単語単位でその単語がシステム発話部分であるpu
iを予測できるように分類モデル564の学習を行う。分類モデル学習部654はまた、第2ラベルが付された単語を正例、付されていない単語を負例として、単語単位でその単語がトピック単語列である確率pt
iを予測できるように分類モデル564の学習を行う。
【0097】
したがって、分類モデル学習部654により分類モデル564の訓練を行うことにより、分類モデル564にパッセージを入力すると、分類モデル564の出力として、パッセージの各単語に対し、その単語がシステム発話を構成する単語である確率と、その単語がトピック単語列である確率とが得られる。これらの確率がしきい値以上か否かなどの条件を満たしたものがシステム発話を構成する単語列及びトピック単語列と予測できる。
【0098】
図15に示す学習データ生成装置650による学習データの生成過程を、
図16を参照して説明する。
図15に示すデータ選択部660が学習データ記憶装置220から読出した学習データが、パッセージ663、システム発話665及びトピック単語列666を含むものとする。パッセージ663はパッセージ解析部664に入力される。パッセージ解析部664による解析の結果、パッセージ663の中の活用語が基本形により置換される。したがって、パッセージ解析部664は解析後パッセージ668を出力する。置換後の活用語を
図16の解析後パッセージ668において下線部により示す。
【0099】
一方、システム発話665は
図15に示すシステム発話解析部673に入力される。システム発話解析部673による解析の結果、システム発話665の中の活用語が基本形により置換される。置換後の活用語を
図16の解析後システム発話670において下線部により示す。したがって、システム発話解析部673は解析後システム発話670を出力する。
【0100】
解析後パッセージ668及び解析後システム発話670はいずれも
図15に示すアライメント部672に入力される。アライメント部672は、解析後パッセージ668と解析後システム発話670とのアライメントをとる。解析後パッセージ668と解析後システム発話670との活用語はいずれも基本形に置換されている。そのため、このアライメントは高い精度で実行できる。このアライメントの結果、解析後パッセージ668の単語列の中で、解析後システム発話670に出現する単語列684が特定できる。この単語列684を構成する各単語に第1ラベルが付される。このように第1ラベルが付されたパッセージ680は
図15に示す第2ラベリング部676に入力される。
【0101】
図15に示す第2ラベリング部676は、パッセージ680の中の、第1ラベルが付された単語の中で、トピック単語列666と一致する単語列を探索する。
図16に示す例では、パッセージ680の中の単語列682がトピック単語列666と一致する。したがって単語列682に第2ラベルが付される。このようにして第1ラベルと第2ラベルとが付された単語列を含むパッセージ680がラベリング後学習データとしてラベリング後学習データ記憶装置652に格納される。なお、後述するように、
図12に示すシステム発話生成モデル572の学習のため、ラベリング後学習データには、そのデータの元となった学習データの中のシステム発話も格納する。
【0102】
このように、パッセージ590からシステム発話部分単語列594を生成する処理は、基本的には単語列の分類処理である。その処理のためのキャッシュデータをすべて生成処理で生成する場合と比較して処理の負荷は小さい。
【0103】
C システム発話生成モデル572の学習
図12に示すシステム発話生成モデル572は、自然言語文を生成可能なモデルならどのようなモデルを使用してもよい。例えばトランスフォーマをベースとしたものでもよい。以下、システム発話生成モデル572の学習について説明する。
【0104】
図17に、システム発話生成モデル572の学習を行うための学習システム690の構成を示す。
図17を参照して、この学習システム690は、ラベリング後学習データ記憶装置652に記憶されたラベリング後学習データからシステム発話生成モデル572の学習データを生成するための学習データ生成装置720と、学習データ生成装置720により生成された学習データを記憶するためのシステム発話生成モデル学習データ記憶装置722とを含む。学習システム690はさらに、システム発話生成モデル学習データ記憶装置722に記憶された学習データを用いてシステム発話生成モデル572の学習を行うためのシステム発話生成モデル学習部724を含む。
【0105】
学習データ生成装置720は、ラベリング後学習データ記憶装置652に記憶されたラベリング後の学習データ(
図16のパッセージ680がその1例である。)を順番に選択し読出すためのデータ選択部730と、データ選択部730により読出された学習データから第1ラベルが付されたラベル付単語列734を抽出するためのラベル付単語列抽出部732とを含む。ラベル付単語列抽出部732は、抽出された単語列が連続していない場合には、それら単語列の境界にデリミタを挿入する。学習データ生成装置720はさらに、データ選択部730により読出された学習データからシステム発話738を抽出するためのシステム発話抽出部736と、ラベル付単語列734及びシステム発話738を対にしてシステム発話生成モデル572の学習データを生成しシステム発話生成モデル学習データ記憶装置722に格納するためのシステム発話生成モデル学習データ生成部740とを含む。この学習データではシステム発話抽出部736が入力であり、システム発話738が正解データとなる。
【0106】
図18に、
図17のデータ選択部730により読出されたラベリング後学習データ733から学習データ760が生成される過程を示す。
図18を参照して、ラベリング後学習データ733においてラベルが付された箇所(下線部で示す)を抽出することによりラベル付単語列734が得られる。このラベル付単語列734を
図17のシステム発話抽出部736により抽出されたシステム発話738と組み合わせることにより学習データ760が生成される。学習データ760においてはラベル付単語列734が入力でありシステム発話738の単語列が出力(正解データ)である。
【0107】
システム発話生成モデル学習部724によるシステム発話生成モデル572の学習は、システム発話生成モデル学習データ記憶装置722に記憶された学習データを使用して行われる。その学習は通常のニューラルネットワークの学習と同様に誤差逆伝播法により行われる。この学習データにおいて、ラベル付単語列734とシステム発話抽出部736とはよく似た単語列からなる。そのため、システム発話生成モデル学習部724の学習も、システム発話生成モデル学習部724によるシステム発話の生成も小さな負荷で実行できる。
【0108】
以上のようにこの実施形態によれば、
図13に示されるようなパッセージ590からシステム発話部分単語列594を生成する処理の負荷も、システム発話部分単語列594からシステム発話単語列574を生成する処理の負荷も小さく済む。そのため、パッセージ590から直接にシステム発話を生成する場合と比較して処理のための負荷は小さくなる。その結果、この実施形態に係るキャッシュデータ生成装置550により短時間のうちに多くのキャッシュデータを生成できる。
【0109】
6.第6実施形態
上記した各実施形態では、1パッセージからキャッシュデータの1レコードが生成される。しかし、これではパッセージが大量にあっても効率が悪い。この第6実施形態では、1パッセージから可能ならキャッシュデータの複数レコードを生成する。また上記各実施形態では、キー単語列はトピック単語列のみであった。しかし、同じトピック単語列を含むユーザ発話でも、様々な形式が可能である。したがってこの第6実施形態では、トピック単語列ではなくユーザ発話そのものをキー単語列に採用する。
【0110】
図19に、第6実施形態に係るキャッシュデータを利用する対話装置780の概略構成を示す。対話装置780が
図1に示す先行技術に係る対話システム50と異なるのは、
図1の対話処理用キャッシュデータ82とは異なり、ユーザ発話そのものをキーとしてシステム発話を検索できる形式でキャッシュデータを記憶した対話処理用キャッシュデータ792を含む点である。この変更に対応して、対話装置780は、
図1に示すキャッシュデータ作成部80に代えて、ユーザ発話60及びシステム発話66からキャッシュデータを生成するためのキャッシュデータ作成部790を含む。対話装置780はまた、
図1に示すトピック抽出部68を含まない。さらに対話装置780は、キャッシュ検索部84に代えて、ユーザ発話60をキーに対話処理用キャッシュデータ792を検索するためのキャッシュ検索部794を含む点でも対話システム50と異なる。キャッシュ検索部794は、ユーザ発話60と一致するキー単語列を持つキャッシュデータがあればそのシステム発話の単語列を読出す機能を持つ。
【0111】
キャッシュ検索部794は、対話処理用キャッシュデータ792でキャッシュデータが発見されたか否かを示す通知92を対話エンジン62に通知する。キャッシュ検索部794はまた、キャッシュデータが発見されなかったときには第1入力を、発見されたときには第2入力を、それぞれ選択するよう選択部88を制御する制御信号94を対話エンジン62に与える。その結果、ユーザ発話60と一致するキー単語列を持つキャッシュデータがあればそのキャッシュデータのシステム発話がシステム発話90として出力される。そうしたキャッシュデータがなければ対話エンジン62により生成されたシステム発話66がシステム発話90として出力される。
【0112】
図20に、大規模パッセージ集合64に記憶された大量のパッセージの各々から、1又は複数のキャッシュデータを生成し、キャッシュデータ記憶装置812に格納するためのキャッシュデータ生成装置810の概略構成を示す。ここでは、キャッシュデータの1レコードは、ユーザ発話60に相当するキー単語列と、そのユーザ発話に対する応答としてのシステム発話とをデリミタにより結合したものである。
【0113】
図20を参照して、キャッシュデータ生成装置810は、大規模パッセージ集合64からパッセージを順に読出すためのパッセージ読出部820と、面白さ判定モデル822と、面白さ判定モデル822を用いて、パッセージ読出部820の読出した各パッセージから面白さ判定モデル822によるスコアが所定のしきい値以上となる1又は複数の文をキャッシュ生成の対象文として出力するための対象文選択部824とを含む。
【0114】
面白さ判定モデル822は、
図2に示す面白さ判定モデル158などとは異なり、判定の対象となる文と、パッセージ内でその文の前の全ての文(これらの文を以下、対象となる文の「文脈」と呼ぶ。)とを入力として、対象となる文がその文脈との比較においてどの程度面白い文かを示すスコアを出力する、BERTによるモデルである。
【0115】
キャッシュデータ生成装置810はさらに、対象文選択部824により選択された対象分を格納するための対象文記憶装置826と、対象文記憶装置826に記憶された対象文の各々から、キャッシュデータを生成するためのキャッシュデータ生成部828とを含む。
【0116】
キャッシュデータ生成部828はトランスフォーマのアーキテクチャを利用したニューラルネットワークモデルを用いて実現される。トランスフォーマについては、特に自然言語処理において、それ以前のニューラルネットワークと際立った性能の違いを示したことが知られている。このニューラルネットワークの学習方法については
図22から
図26を参照して後述する。
【0117】
図21は、パッセージ読出部820及び対象文選択部824による対象文の選択を実現するためのコンピュータプログラムの制御構造を示すフローチャートである。
図21を参照して、このプログラムは、大規模パッセージ集合64から先頭パッセージを読出すステップ830と、全パッセージを大規模パッセージ集合64から読出すまでステップ834を繰り返すステップ832とを含む。
【0118】
ステップ834は、処理対象のパッセージ内における各文区切り位置で分割して配列Aの各要素にそれぞれ格納するステップ840と、配列Aの2番目以降の要素(配列Aの添字が1以上の要素)の各々に対して以下のステップ844を実行するステップ842と、ステップ842が終了したことに応答して、大規模パッセージ集合64から次のパッセージを読出してステップ834を終了するステップ846とを含む。ステップ846において読出すべき次のパッセージがないときにはステップ832は終了する。
【0119】
ステップ844は、配列の処理対象の要素より前の全ての要素を連結した文字列と、デリミタであるトークン「SEP」と、処理対象の要素の文字列とを連結し、面白さ判定モデル822に入力するステップ850と、この入力に対して面白さ判定モデル822が出力するスコアが所定のしきい値より大きいか否かを判定するステップ852と、ステップ852の判定が肯定的であるときに、処理対象の要素を選択し、対象文記憶装置826(
図20)に格納するステップ854とを含む。ステップ852の判定が否定的であるときには処理対象の要素は対象文とはされない。
【0120】
このプログラムをコンピュータに実行させることによって、各パッセージから、文脈と対比したときの面白さがしきい値以上の文が選択される。パッセージから得られる文の数は、0であるかも知れないが、1又はそれ以上であることもある。各パッセージに含まれる文の数にもよるが、最終的に得られる文の数は大規模パッセージ集合64に記憶されたパッセージの数よりははるかに多くなることが期待できる。
【0121】
なお、この実施形態ではこのように文脈との対比で面白さのスコアがしきい値以上のもののみを対象文として選択している。したがって各パッセージの1文目は選択されない。しかしこの発明はそのような実施形態に限定されない。各パッセージの各文を全て対象文として選択することも考えられる。またこの実施形態では、対象文選択部824が選択するのは1文ずつである。しかしこの発明はそのような実施形態に限定されない。例えば1文ずつではなく2文ずつ以上でもよいし、1文より小さな単位の単語列でもよい。さらに、選択される又は単語列の長さとして複数通りを選択してもよい。
【0122】
図22に、
図20に示したキャッシュデータ生成部828を実現するためのニューラルネットワークの学習データを作成するための学習データ生成装置860の概略構成を示す。学習データ生成装置860は、大規模パッセージ集合64と、ユーザ発話60に応答して、大規模パッセージ集合64を利用して
図1に示す対話エンジン62と同様の手法によりシステム発話872を生成するための対話エンジン870を含む。
【0123】
対話エンジン870は、
図1に示す対話エンジン62と同様の構成を持つ。しかし対話エンジン870は、対話エンジン62と異なり、ランキング128によって得られた、ユーザ発話60に対する応答として最もふさわしいとされた応答だけではなく、所定の条件を満たした応答を含む複数の応答を複数のシステム発話872として出力する。例えばランキング128においてユーザ発話60又は質問120に対する応答としての各応答の面白さ判定を行い、その結果により応答をフィルタリングしてもよい。こうすることにより、1つのユーザ発話60から複数の学習データが作成できる。その結果、キャッシュデータの生成のための学習データの作成が効率化できる。なお、以下ではキャッシュのレコードを単にキャッシュレコードという。
【0124】
学習データ生成装置860はさらに、ユーザ発話60に応答して対話エンジン870の内部で生成された複数の回答124の1つと、ユーザ発話60及び選択された回答124から生成されたシステム発話872をデリミタで連結した単語列とを組み合わせることにより学習データを作成するための学習データ作成部874と、学習データ作成部874の出力する学習データを格納する学習データ記憶部876とを含む。
【0125】
このようにして生成される学習データの例を
図23に示す。
図23の上段には、ユーザ発話60と、ユーザ発話60から質問作成処理110が自動作成した質問と、その質問に対して質問応答システム122が生成した複数の回答の一つである回答124と、回答124から自動生成される応答文(システム発話)との組み合わせを示す。なお、回答124は自動生成される応答文の元になる文なので、ここでは「元文」と呼んでいる。
【0126】
これらの文(単語列)のうち、この実施形態では元文(質問に対する回答)を入力880とし、ユーザ発話60とデリミタと応答文(システム発話)とをこの順序で連結した単語列882を出力(正解データ)として組み合わせ、学習データのレコードを生成する。
【0127】
このようなレコードを多数含む学習データを使用してニューラルネットワークの学習を行うことにより、
図20に示すキャッシュデータ生成部828が実現できる。
【0128】
なお、学習データを生成するときの単語列の組み合わせは
図23に示されるものには限定されない。例えば、
図24に示すような組み合わせも可能である。
【0129】
図24に示す例では、質問に対して得られた元文を入力880とする点は
図23と同じである。しかし
図24では、正解データは応答文(システム発話)とデリミタとユーザ発話とをこの順序で連結した単語列884を出力(正解データ)として組み合わせ、学習データのレコードを生成する。
図23に示す例に従ってできた学習レコード890の例を
図25に示し、
図24に示す例に従ってできた学習レコード900の例を
図26に示す。学習レコード890と学習レコード900とは、同じ発話から得られた元文と応答文とから得られたものである。
【0130】
図25を参照して、学習レコード890は、入力892と出力894とを含む。一方、
図26を参照して、学習レコード900は、入力902と出力904とを含む。入力892と入力902とは等しい。しかし出力894と出力904とは、デリミタの前後の単語列が入れ替わっている。すなわち、
図25では正解データはユーザ発話→システム発話という順番であるのに対し、
図26ではシステム発話→ユーザ発話という順番である。
【0131】
図25に示す形式と、
図26に示す形式のいずれを用いても、キャッシュデータ生成部828の学習が可能である。すなわち、1文からユーザ発話とシステム発話との組み合わせからなるキャッシュデータが生成できるようにキャッシュデータ生成部828に学習させることができる。しかし、その結果得られたキャッシュデータ生成部828においては、いずれの学習データを用いたかにより効果が異なる可能性がある。ここでは、その結果を確認するために行った実験について述べる。
【0132】
実験設定
実験で使用した全事例数は、学習データが178,374、開発データが2,272、テストデータが27,037であった。これらのうち、面白さ判定スコアが0.5以上の事例数は、学習データが61,312、開発データが3,173、及びテストデータが9,215であった。
【0133】
実験では、キャッシュデータ生成部828として事前学習済のトランスフォーマを準備した。トランスフォーマはエンコーダとデコーダとの組み合わせを含むが、実験で使用したトランスフォーマは24層からなるエンコーダと1層からなるデコーダとを含む。エンコーダの埋め込み層とデコーダの埋め込み層のパラメータは共有するものとした。このトランスフォーマをファインチューニングした。ファインチューニングにおける探索パラメータとしては以下のとおり。
【0134】
学習のエポック数は{1,2,3,5,10,15,20,25,30}にわたって探索した。学習率は3e-5、バッチサイズは32とした。
【0135】
評価尺度としては(1)ROUGE-1、ROUGE-2及びROUGE-3、及び(2)生成されたユーザ発話及びシステム発話の対を面白さ判定器に入力し、得られた面白さ判定スコアの平均、を用い、この2種類の評価尺度の各々についてベストパラメータを調べた。
【0136】
また、上記実施形態のように面白さ判定モデル822を使用して、各パッセージの文のうち、面白さ判定スコアがしきい値(0.5)以上のもののみを使用した場合と、各パッセージから得た全ての文を使用した場合との双方に分けて実験を行った。
【0137】
結果を
図27及び
図28に示す。
図27は評価尺度としてROUGE-{1,2,L}を使用した結果である。
図28は評価尺度として面白さ判定スコアの平均を使用した結果である。なお、
図27及び
図28の双方において、ユーザ発話→システム発話の順番のときの評価と、システム発話→ユーザ発話の順番のときの評価とのうち、評価値が高い方に下線を付して示す。
【0138】
図27を参照して、ユーザ発話→システム発話の組み合わせを使用した場合とシステム発話→ユーザ発話の組み合わせを使用した場合とを比較すると、いずれの場合も後者の方のスコアが高いことが分かる。
【0139】
図28を参照して、面白さ判定スコアの平均を評価尺度として使用した場合では、全事例を使用した場合と面白さ判定スコアが0.5以上のもののみを使用した場合のいずれにおいても、
図27と異なりユーザ発話→システム発話の順番で学習したものの方のスコアが高かった。なお、
図28の最下段のベストパラメータは40となっている。前述したとおり、エポック数の探索範囲の上限は30だったが、この設定ではエポック数が30のときにスコアの平均が最大となったため、追加でエポック数={35,40,45,50}について実験を行ってベストパラメータを定めた。
【0140】
この実験結果から、エポック数が少ない場合には未知語を記号に置き換える場合に文の生成がおかしくなっている場合が多い。一方、面白さ判定スコアの平均を評価尺度に用いた場合には、エポック数が多く、相対的にそのような生成誤りが少なくなっている。この結果、面白さ判定スコアの平均を評価尺度として使用したときのベストパラメータを使用することが望ましいと考えられる。
【0141】
7.第7実施形態
第6実施形態では、
図25及び
図26に示すように、
図22の対話エンジン870により得られたユーザ発話、元文、及びシステム発話の組み合わせにより学習データを生成している。しかし、この発明はそのような実施形態には限定されない。さらに対話エンジン870が出力した元文の元になった質問を学習データに追加するようにしてもよい。この第7実施形態はそのような実施形態である。
【0142】
図29を参照して、第7実施形態に係る学習データ生成装置910は、
図22に示す対話エンジン870と同様の構成の対話エンジン920と、ユーザ発話60、及びユーザ発話60に対して質問作成処理110が生成した質問120の1つ、その質問に対して質問応答システム122が出力した回答124、及び回答124を元文として応答生成処理126により生成されたシステム発話872を組み合わせて学習データを生成するための学習データ作成部922と、学習データ作成部922により生成された学習データを格納するための学習データ記憶部924とを含む。
【0143】
図示はしないが、この実施形態では、学習データ作成部922が生成する学習データは、回答124を入力とし、ユーザ発話60、デリミタ、質問120、デリミタ、及びシステム発話872をこの順番に結合したものを出力(正解データ)とする。すなわち、この学習データを使用して学習したキャッシュデータ生成モデルにより生成されるキャッシュデータは、ユーザ発話とシステム発話の組だけではなく、そのユーザ発話からどのような質問をした結果、そのシステム発話が回答として得られたか、という情報まで含むことになる。このようなキャッシュデータを生成して記憶しておくことにより、ユーザ発話に対してシステム発話をキャッシュから出力できる可能性が高くなるだけではなく、そのシステム発話が得られたある種の根拠を示す情報がキャッシュから得られるという効果が得られる。
【0144】
8.第8実施形態
第1実施形態から第7実施形態は、いずれも対話システムのように雑談に利用するものである。しかしこの発明は雑談に利用するものだけではなく、質問に対する回答を出力する質問応答システムのようなシステムにも適用できる。
【0145】
図30に第8実施形態に係る、キャッシュデータを利用可能な質問応答システム930のブロック図を示す。
図30に示す質問応答システム930は、
図1に示す対話システム50とよく似た構成を持つ。質問応答システム930が対話システム50と異なるのは、入力されるのが一般的なユーザ発話60ではなく質問932であること、質問応答システム122に代えて、キャッシュ検索部84からの通知92に応答して動作を切り替える質問応答システム934を含むこと、及び応答生成処理126及びランキング128に代えて、質問に対する回答としてふさわしいシステム発話90を出力するよう動作する応答生成処理936及びランキング938を含むことである。質問応答システム930はまた、
図1の対話処理用キャッシュデータ82に代えて質問応答用キャッシュ942を含む点でも対話システム50と異なる。ただし質問応答用キャッシュ942は、格納するデータが異なるというだけで、実質的には対話処理用キャッシュデータ82と同じものである。
【0146】
質問応答システム930の動作は対話システム50とほぼ同じである。すなわち、質問932に対するキャッシュデータが質問応答用キャッシュ942に存在しない場合、質問応答システム930は以下のように動作する。
【0147】
キャッシュ検索部84は、質問応答用キャッシュ942に質問932と同じキー単語列を持つキャッシュレコードが存在するか否かを調べる。この場合にはキャッシュレコードは存在しない。したがってキャッシュ検索部84は質問応答システム934に対して通常の動作をするよう通知92を送信する。キャッシュ検索部84はまた、選択部88に対してシステム応答940を選択するよう制御信号94を送信する。
【0148】
質問932に対して質問応答システム934が大規模パッセージ集合64の中のパッセージから質問932に対する回答としてふさわしい記載を含む複数個の回答124を出力する。応答生成処理936が、これらの回答の各々から、質問932に対する回答としてふさわしい処理を行ってシステム応答の候補を生成する。ランキング938が、これらシステム応答の候補の中から質問932に対する回答として最もふさわしいシステム応答940を選択し選択部88に与える。通常は選択部88はシステム応答940を選択してシステム発話90として出力する。
【0149】
このとき、キャッシュデータ作成部80には、質問932、システム応答940、及びシステム応答940の原パッセージが与えられる。キャッシュデータ作成部80は、質問932とシステム応答とをデリミタを介して結合し、さらに原パッセージを含めてキャッシュレコードを生成し、質問応答用キャッシュ942に格納する。質問応答用キャッシュ942の各レコードの形式は基本的には、
図4の学習レコード250のうち、出力単語列262と同じ形式である。ただし第1実施形態と同様、キャッシュレコードには、システム発話の単語列が得られた原パッセージも格納されている。
【0150】
一方、質問932をキー単語列とするキャッシュレコードが存在する場合には、質問応答システム930は以下のように動作する。
【0151】
キャッシュ検索部84は質問応答システム934に対して動作しないよう通知92を送信する。キャッシュ検索部84は、質問応答用キャッシュ942から該当するキャッシュレコードを読み出し、そのレコードに含まれる応答文を選択部88に対して出力する。キャッシュ検索部84はまた、選択部88に対してキャッシュ検索部84の出力を選択するよう制御信号94を送信する。したがって選択部88はキャッシュ検索部84の出力を選択し、システム発話90として出力する。質問応答システム934は動作しない。
【0152】
この質問応答システム930においても、質問応答用キャッシュ942を効率よく生成できることが望ましい。この第8実施形態はそのためのものである。
【0153】
図31に、この実施形態において質問応答システム930のためのキャッシュデータを生成するためのキャッシュデータ生成装置960の概略構成を示す。
【0154】
図31を参照して、キャッシュデータ生成装置960は、大規模パッセージ集合64から各パッセージを読み出すためのパッセージ読出部152と、パッセージ読出部152が読み出した各パッセージから、上記したキャッシュデータのレコードを生成するよう予め学習済のキャッシュデータ生成モデル952とを含む。キャッシュデータ生成モデル952の学習については後述する。
【0155】
キャッシュデータ生成装置960はさらに、キャッシュデータ生成モデル952が出力した各レコードを記憶するための生成データ記憶装置156と、生成データ記憶装置156に記憶された各レコードに対して質問応答ランキングモデル954を適用してそのスコアを算出し、所定のしきい値以上のレコードのみを出力するためのキャッシュデータ選択部160とを含む。質問応答ランキングモデル954は、
図2に示す面白さ判定モデル158と同様のモデルだが、ユーザ発話60に対するシステム発話の面白さという観点ではなく、質問932に対するシステム発話(回答)の適切さという観点で質問応答のペアをランキングするよう予め学習済のものである。
【0156】
この実施形態では、キャッシュデータ選択部160の出力はキャッシュデータ記憶装置962に蓄積される。キャッシュデータ記憶装置962に蓄積されたキャッシュレコードを
図30に示す質問応答用キャッシュ942にコピー(追加)することにより、質問応答システム930において質問に対する回答が質問応答用キャッシュ942においてヒットする確率が高くなる。
【0157】
図31に示すように、キャッシュデータ生成モデル952の学習は、キャッシュデータ生成モデル学習用データ記憶装置944に記憶された学習用データを使用してキャッシュデータ生成モデル学習部950により行われる。キャッシュデータ生成モデル学習部950行による学習そのものは通常の学習と異なるところはない。この実施形態では、キャッシュデータ生成モデル952のための学習データを以下にして効率的に生成するかが問題となる。
【0158】
図32に、学習データ生成システム980の概略構成を示す。
図32を参照して、学習データ生成システム980の構成は質問応答システム930と類似する。すなわち、学習データ生成システム980は、質問996を受けて大規模パッセージ集合64から複数の回答124を出力するための質問応答システム122と、質問996と、回答124と、大規模パッセージ集合64に記憶されているパッセージの中の、回答124を生成する際に使用された原パッセージとを組み合わせることにより、上記した形式の学習データを作成しキャッシュデータ生成モデル学習用データ記憶装置944に記憶するための学習データ作成部998とを含む。
【0159】
学習データ生成システム980はさらに、インターネット510の様々なサイトから質問文を収集するための質問文収集部990と、質問文収集部990が収集した質問文を格納するための質問文記憶装置992と、質問文記憶装置992に記憶された質問の各々を質問996として質問応答システム122に入力するための質問文入力部994とを含む。
【0160】
図示はしないが、この実施形態では、学習データ作成部998が作成する学習データは、大規模パッセージ集合64からの原パッセージを入力とし、質問996+デリミタ+回答124をこの順番に結合したものを出力(正解データ)とする。すなわち、この学習データを使用して学習したキャッシュデータ生成モデルは、パッセージが与えられると、そのパッセージに含まれる単語列が回答を形成するような質問と、デリミタと、その回答となる単語列とを含むことになる。なお、このようにして生成されたキャッシュレコードが、
図30に示す質問応答システム930の動作により生成されたキャッシュレコードと同じ形式を持つように、キャッシュレコードに、さらに原パッセージ(又はその識別子)を追加して持たせるようにするとより好ましい。
【0161】
この実施形態によれば、いわゆる雑談のような対話のためではなく、質問に対する回答としてふさわしいシステム発話を生成するためのシステム負荷を軽減できる。インターネット510上には質問文が大量に存在している。したがって、
図32に示す質問文収集部990は大量の質問文をインターネット510から収集できる。その結果、これらの質問文を学習データ生成システム980に入力することにより、
図31に示すキャッシュデータ生成モデル952の学習データが大量に生成できる。その結果、キャッシュデータ生成モデル952によりキャッシュデータを大量に生成できる。さらに、質問応答の精度も高くできるという効果がある。そのための計算資源に対する負荷も、
図30に示す質問応答システム930により個々にキャッシュデータを生成するための負荷よりも小さくできる。その結果、効率的に精度の高いキャッシュデータを生成できるという効果がある。
【0162】
9.コンピュータによる実現
図33は、上記した各実施形態におけるキャッシュデータ生成装置、各種のモデル学習装置、及びそのための学習データ生成装置として動作するコンピュータシステムの外観図である。
図34は、
図33に示すコンピュータシステムのハードウェアブロック図である。
図19に示す対話装置780、
図22に示す学習データ生成装置860、及び
図29に示す学習データ生成装置910についてもそれぞれ
図33及び
図34に示すものと同様の構成のコンピュータシステムにより実現できる。ここでは、
図2に示すキャッシュデータ生成装置140として動作するコンピュータシステムの構成についてのみ述べることとし、他の装置を実現するコンピュータシステムの構成の詳細については繰り返さない。
【0163】
図33を参照して、このコンピュータシステム1050は、DVD(Digital Versatile Disc)ドライブ1102を有するコンピュータ1070と、いずれもコンピュータ1070に接続された、ユーザと対話するためのキーボード1074、マウス1076、及びモニタ1072とを含む。もちろんこれらは一例であり、ユーザ対話に利用できる一般のハードウェア及びソフトウェア(例えばタッチパネル、音声入力、ポインティングデバイス一般)であればどのようなものも利用できる。
【0164】
図34を参照して、コンピュータ1070は、DVDドライブ1102に加えて、CPU(Central Processing Unit)1090と、GPU(Graphics Processing Unit)1092と、CPU1090、GPU1092、DVDドライブ1102に接続されたバス1110とを含む。コンピュータ1070はさらに、バス1110に接続され、コンピュータ1070のブートアッププログラムなどを記憶するROM(Read-Only Memory)1096と、バス1110に接続され、プログラムを構成する命令、システムプログラム、及び作業データなどを記憶するRAM(Random Access Memory)1098と、バス1110に接続された不揮発性メモリであるSSD(Solid State Drive)1100とを含む。SSD1100は、CPU1090及びGPU1092が実行するプログラム、並びにCPU1090及びGPU1092が実行するプログラムが使用するデータなどを記憶するためのものである。
【0165】
コンピュータ1070はさらに、他端末との通信を可能とするネットワーク1086(例えば
図11に示すインターネット510)への接続を提供するネットワークI/F(Interface)1108と、USB(Universal Serial Bus)メモリ1084が着脱可能で、USBメモリ1084とコンピュータ1070内の各部との通信を提供するUSBポート1106とを含む。
【0166】
コンピュータ1070はさらに、マイクロフォン1082及びスピーカ1080とバス1110とに接続され、CPU1090により生成されRAM1098又はSSD1100に保存された音声信号、映像信号及びテキストデータをCPU1090の指示に従って読出し、アナログ変換及び増幅処理をしてスピーカ1080を駆動したり、マイクロフォン1082からのアナログの音声信号をデジタル化し、RAM1098又はSSD1100の、CPU1090により指定される任意のアドレスに保存したりする機能を持つ音声I/F1104を含む。これらは、ユーザとの音声対話のために必要である。
【0167】
上記実施形態において各装置の各機能を実現するプログラムなどは、いずれも例えば
図34に示すSSD1100、RAM1098、DVD1078又はUSBメモリ1084、若しくはネットワークI/F1108及びネットワーク1086を介して接続された図示しない外部装置の記憶媒体などに格納される。典型的には、これらのデータ及びパラメータなどは、例えば外部からSSD1100に書込まれコンピュータ1070の実行時にはRAM1098にロードされる。
【0168】
このコンピュータシステムを、上記実施形態の各装置及びその各構成要素の機能を実現するよう動作させるためのコンピュータプログラムは、DVDドライブ1102に装着されるDVD1078に記憶され、DVDドライブ1102からSSD1100に転送される。又は、これらのプログラムはUSBメモリ1084に記憶され、USBメモリ1084をUSBポート1106に装着し、プログラムをSSD1100に転送する。又は、このプログラムはネットワーク1086を通じてコンピュータ1070に送信されSSD1100に記憶されてもよい。
【0169】
プログラムは実行のときにRAM1098にロードされる。もちろん、キーボード1074、モニタ1072及びマウス1076を用いてソースプログラムを入力し、コンパイルした後のオブジェクトプログラムをSSD1100に格納してもよい。プログラムがスクリプト言語で記述されている場合には、キーボード1074などを用いて入力したスクリプトをSSD1100に格納してもよい。仮想マシン上において動作するプログラムの場合には、仮想マシンとして機能するプログラムを予めコンピュータ1070にインストールしておく必要がある。音声認識及び音声合成などにはニューラルネットワークが使用される。上記各実施形態のモデル生成部などには、学習済のニューラルネットワークを使用してもよいし、コンピュータシステム1050を学習装置として使用してニューラルネットワークの学習を行ってもよい。
【0170】
CPU1090は、その内部のプログラムカウンタと呼ばれるレジスタ(図示せず)により示されるアドレスに従ってRAM1098からプログラムを読出して命令を解釈し、命令の実行に必要なデータを命令により指定されるアドレスに従ってRAM1098、SSD1100又はそれ以外の機器から読出して命令により指定される処理を実行する。CPU1090は、実行結果のデータを、RAM1098、SSD1100、CPU1090内のレジスタなど、プログラムにより指定されるアドレスに格納する。アドレスによっては音声信号などとしてコンピュータから出力される。このとき、プログラムカウンタの値もプログラムによって更新される。コンピュータプログラムは、DVD1078から、USBメモリ1084から、又はネットワーク1086を介して、RAM1098に直接にロードしてもよい。なお、CPU1090が実行するプログラムの中で、一部のタスク(主として数値計算)については、プログラムに含まれる命令により、又はCPU1090による命令実行時の解析結果に従って、GPU1092にディスパッチされる。
【0171】
コンピュータ1070により上記した実施形態に係る各部の機能を実現するプログラムは、それら機能を実現するようコンピュータ1070を動作させるように記述され配列された複数の命令を含む。この命令を実行するのに必要な基本的機能のいくつかはコンピュータ1070上において動作するオペレーティングシステム(OS)若しくはサードパーティのプログラム、コンピュータ1070にインストールされる各種ツールキットのモジュール又はプログラムの実行環境により提供される場合もある。したがって、このプログラムはこの実施形態のシステム及び方法を実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令の中で、所望の結果が得られるように制御されたやり方によって適切な機能又はモジュールなどをコンパイル時に静的にリンクすることにより、又は実行時に動的に呼出すことにより、上記した各装置及びその構成要素としての動作を実行する命令のみを含んでいればよい。そのためのコンピュータ1070の動作方法は周知なので、ここでは繰り返さない。
【0172】
なお、GPU1092は並列処理を行うことが可能であり、機械学習に伴う多量の計算を同時並列的又はパイプライン的に実行できる。例えばプログラムのコンパイル時にプログラム中に発見された並列的計算要素、又はプログラムの実行時に発見された並列的計算要素は、随時、CPU1090からGPU1092にディスパッチされ、実行され、その結果が直接に、又はRAM1098の所定アドレスを介してCPU1090に返され、プログラム中の所定の変数に代入される。
【0173】
さらに、上記実施形態に係る各装置は、
図33及び
図34に示すように独立したコンピュータにより実現されている。しかしこの発明はそのような実施形態には限定されない。例えば1又は複数のコンピュータに上記実施形態の各部が分散して配置され、相互に通信により全体として統御された動作をするようにしてもよい。また1又は複数の上に仮想システムを構築し、その仮想システム上で動作するOSの上で上記プログラムを実行するようにしてもよい。また、いわゆるクラウドに上記システムを構築し、インターネット上のどこからもアクセスして上記したようなキャッシュデータの生成ができるようにしてもよい。
【0174】
以上に説明したように、この発明によれば、大規模パッセージ集合64に含まれる大量のパッセージから対話システムのためのキャッシュデータを生成できる。生成されたキャッシュデータを対話システムのキャッシュデータに追加することによって、ユーザ発話60に対する応答としてのシステム発話がキャッシュにおいて発見され、対話エンジンを稼働させることなくユーザに対して応答できる。その結果、対話装置のためのキャッシュデータを効率よく生成できるような発話データ生成装置、対話装置及び生成モデルの作成方法を提供できる。
【0175】
今回開示された実施の形態は単に例示であり、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。
【符号の説明】
【0176】
50 対話システム
60 ユーザ発話
62、870、920 対話エンジン
64 大規模パッセージ集合
66、90、665、738、872 システム発話
80、790 キャッシュデータ作成部
82、792 対話処理用キャッシュデータ
122、930、934 質問応答システム
140、270、370、550、810、960 キャッシュデータ作成装置
152、562、820 パッセージ読出部
154、528、576、952 キャッシュデータ生成モデル
158、212、822 面白さ判定モデル
160、290 キャッシュデータ選択部
162、292、578、812、962 キャッシュデータ記憶装置
200、950 キャッシュデータ生成モデル学習部
216 対象キャッシュデータ記憶装置
218、522 学習データ生成部
220、524 学習データ記憶装置
222、526 モデル学習部
288、388 キャッシュデータ候補記憶装置
310、340、410、440、760 学習データ
320、420 パッセージ単語列
322、452、566、666 トピック単語列
350、450、600、602、682、684、882、884 単語列
352、422、574 システム発話単語列
382 システム発話生成部
384 システム発話付パッセージ記憶装置
500 モデル学習システム
502 キャッシュデータ生成モデル学習装置
512 対話データ収集部
514 対話データ記憶装置
518 関連パッセージ選択部
520 対象データ記憶装置
564 分類モデル
565、662 トピック単語列抽出部
570 システム発話部分抽出部
571、594 システム発話部分単語列
572 システム発話生成モデル
598 キャッシュデータ
650、720、860、910 学習データ生成装置
652 ラベリング後学習データ記憶装置
654 分類モデル学習部
690 学習システム
724 システム発話生成モデル学習部
740 システム発話生成モデル学習データ生成部
780 対話装置
828 キャッシュデータ生成部
874、922、998 学習データ作成部
954 質問応答ランキングモデル