(57)【要約】【課題】対話装置において、ユーザにとって適切な応答を生成することにより利便性を向上させる。【解決手段】ユーザの入力文と過去の対話履歴に基づいてタスク特化型の対話を制御してタスク特化型応答を出力するタスク特化型対話制御部と、入力文と対話履歴に基づいて雑談型の対話を制御して雑談型応答を出力する雑談型対話制御部と、雑談型応答が対話履歴とタスクの目的から妥当な応答であるかどうかを評価した応答妥当性評価値を求め、応答妥当性評価値に基づいて雑談型応答とタスク特化型応答のいずれを採用するかを決定する応答妥当評価部とを有する。【選択図】図２
2020118842.tif 000002
【特許請求の範囲】
【請求項１】
タスク特化型の対話を行うタスク特化型対話システムと、雑談型の対話を行う雑談対話システムとを併用する対話システムであって、
ユーザの入力文と過去の対話履歴に基づいて、前記タスク特化型の対話を制御してタスク特化型応答を出力するタスク特化型対話制御部と、
前記入力文と前記対話履歴に基づいて、前記雑談型の対話を制御して雑談型応答を出力する雑談型対話制御部と、
前記雑談型応答が前記対話履歴とタスクの目的から妥当な応答であるかどうかを評価した応答妥当性評価値を求め、前記応答妥当性評価値に基づいて前記雑談型応答と前記タスク特化型応答のいずれを採用するかを決定する応答妥当評価部と、
を有することを特徴とする対話システム。
【請求項２】
前記ユーザの発話が前記タスクとは無関係の発話であるドメイン外発話であるか否かを判定し、直近のユーザ発話文が前記タスクで想定されるユーザ発話から離れているほど高くなるドメイン外評価値を出力するドメイン外評価部を更に有し、
前記応答妥当性評価部は、
前記ドメイン外評価値を用いて、前記応答妥当性評価値を求めることを特徴とする請求項１に記載の対話システム。
【請求項３】
前記応答妥当性評価部は、
前記ドメイン外評価値が第１の閾値以上であるかを判定し、
前記ドメイン外評価値が前記第１の閾値未満であった場合には、前記タスク特化型応答を採用し、
前記ドメイン外評価値が前記第１の閾値以上であった場合には、前記雑談型応答に対する前記応答妥当性評価値を求め、
前記応答妥当性評価値が第２の閾値以上であった場合は、前記雑談型応答を採用し、
前記応答妥当性評価値が前記第２の閾値未満であった場合には、前記タスク特化型応答を採用する請求項２に記載の対話システム。
【請求項４】
前記応答妥当性評価部は、
前記雑談型応答と、前記タスク特化型応答で定義される前記タスクの対話シナリオにおける知識であるオントロジーとの第１の類似度と、
前記雑談型応答と、前記タスクにおけるシステム発話との第２の類似度と、
前記雑談型応答と、前記タスクにおけるユーザ発話との第３の類似度と、をそれぞれ求め、
前記第１の類似度、前記第２の類似度及び前記第３の類似度の少なくとも一つを用いて、前記応答妥当性評価値を求めることを特徴とする請求項１に記載の対話システム。
【請求項５】
前記応答妥当性評価部は、
前記タスク特化型応答と前記雑談型応答の双方に対して評価を行い、前記応答妥当性評価値が高い応答を採用することを特徴とする請求項１に記載の対話システム。
【請求項６】
前記応答妥当性評価部は、
前記対話履歴、前記ドメイン外評価値及び前記タスク特化型応答に基づき、前記タスク特化型応答のタスク特化型応答妥当性評価値を求め、
前記対話履歴、前記ドメイン外評価値、前記雑談型応答及び前記第１の類似度、前記第２の類似度及び前記第３の類似度の少なくとも一つに基づき、前記雑談型応答の雑談型応答妥当性評価値を求め、
前記タスク特化型応答妥当性評価値及び前記雑談型応答妥当性評価値が閾値未満の場合、前記タスク特化型応答及び前記雑談型応答の両方を棄却し、
前記タスク特化型応答妥当性評価値及び前記雑談型応答の雑談型応答妥当性評価値が前記閾値以上の場合に前記タスク特化型応答妥当性評価値及び前記雑談型応答妥当性評価を比較し、前記タスク特化型応答妥当性評価値の方が高かった場合は前記タスク特化型応答を採用し、前記雑談型応答妥当性評価の方が高かった場合は前記雑談型応答を採用することを特徴とする請求項５に記載の対話システム。
【請求項７】
前記応答妥当性評価部は、
前記ユーザが対話中に入力した情報をまとめた信念状態を規定し、
応答に含まれる内容と前記信念状態との間の関係を考慮して、前記応答妥当性評価値を求めることを特徴とする請求項１に記載の対話システム。
【請求項８】
前記応答妥当性評価部は、
前記雑談型応答を複数生成し、
複数生成した前記雑談型応答の中から、より妥当なものに対して高い前記応答妥当性評価値を出力することを特徴とする請求項１に記載の対話システム。
【請求項９】
前記雑談型対話制御部は、雑談型応答生成部を有し、
前記雑談型応答生成部は、
前記雑談型応答としてターゲットとなる意味表現であるダイアログアクトを受付け、受け付けた前記ダイアログアクトに沿う前記雑談型応答を生成することを特徴とする請求項１に記載の対話システム。
【請求項１０】
前記応答妥当性評価部は、
システム応答を出力後に受理した前記ユーザの入力文から、前記ユーザの評価が肯定的と判断される場合には、前記システム応答としての前記タスク特化型応答と前記雑談型応答のいずれかの前記応答妥当性評価値が高くなるように調整し、
前記システム応答を出力後に受理した前記ユーザの前記入力文から、前記ユーザの評価が否定的と判断される場合には、前記システム応答としての前記タスク特化型応答と前記雑談型応答のいずれかの前記応答妥当性評価値が低くなるように調整することを特徴とする請求項５に記載の対話システム。
【請求項１１】
前記雑談型対話制御部と前記タスク特化型対話制御部の双方から参照できる共有対話状態と、
前記タスク特化型対話制御部から出力された前記タスク特化型応答と前記雑談型対話制御部から出力された前記雑談型応答に基づいて、実際にシステム出力に作用したシステム応答の内容に従い前記共有対話状態を更新する状態更新部と、
前記共有対話状態に保存されている情報に基づいて、前記システム応答の生成に必要となる文を決定する応答生成部と、
を更に有することを特徴とする請求項１に記載の対話システム。
【請求項１２】
タスク特化型の対話を行うタスク特化型対話システムと、雑談型の対話を行う雑談対話システムとを併用する対話システムにおける対話方法であって、
ユーザの入力文と過去の対話履歴に基づいて、前記タスク特化型の対話を制御してタスク特化型応答を出力し、
前記入力文と前記対話履歴に基づいて、前記雑談型の対話を制御して雑談型応答を出力し、
前記雑談型応答が前記対話履歴とタスクの目的から妥当な応答であるかどうかを評価した応答妥当性評価値を求め、
前記応答妥当性評価値に基づいて、前記雑談型応答と前記タスク特化型応答のいずれを採用するかを決定することを特徴とする対話方法。
【請求項１３】
前記ユーザの発話が前記タスクとは無関係の発話であるドメイン外発話であるか否かを判定し、
直近のユーザ発話文が前記タスクで想定されるユーザ発話から離れているほど高くなるドメイン外評価値を出力し、
前記ドメイン外評価値を用いて、前記応答妥当性評価値を求めることを特徴とする請求項１２に記載の対話方法。
【請求項１４】
前記ドメイン外評価値が第１の閾値以上であるかを判定し、
前記ドメイン外評価値が前記第１の閾値未満であった場合には、前記タスク特化型応答を採用し、
前記ドメイン外評価値が前記第１の閾値以上であった場合には、前記雑談型応答に対する前記応答妥当性評価値を求め、
前記応答妥当性評価値が第２の閾値以上であった場合は、前記雑談型応答を採用し、
前記応答妥当性評価値が前記第２の閾値未満であった場合には、前記タスク特化型応答を採用する請求項１３に記載の対話方法。
【請求項１５】
前記雑談型応答と、前記タスク特化型応答で定義される前記タスクの対話シナリオにおける知識であるオントロジーとの第１の類似度と、
前記雑談型応答と、前記タスクにおけるシステム発話との第２の類似度と、
前記雑談型応答と、前記タスクにおけるユーザ発話との第３の類似度と、をそれぞれ求め、
前記第１の類似度、前記第２の類似度及び前記第３の類似度の少なくとも一つを用いて、前記応答妥当性評価値を求めることを特徴とする請求項１２に記載の対話方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対話装置及び対話方法に関する。
【背景技術】
【０００２】
人が機械とやりとりを行うヒューマンインタフェースにおいて、ユーザの自然言語を受理し、ユーザが機械と対話を行うことができる対話装置が存在する。対話装置では、ユーザはあたかも人と対話するときのような自然言語で入力を行うことができる。機械の出力も、あたかも人が話して書くような自然言語で行われる。そのため、ユーザは機械の使い方を新たに習得する必要がなく、すでに慣れている人との対話と同様の方法で機械を操作できるため、操作容易なヒューマンインタフェースを実現できる。
【０００３】
人は機械と対話するとき、特定の目的を達成するために対話することが通常である。この目的とは、人が機械を通じて実行したいタスクであって、たとえば、飛行機のチケット予約、レストラン検索、など多数のものがある。
【０００４】
人がオペレータと対話してこれらのタスクを実行するときを考えると、対話の途中にタスクとは無関係の発話が行われることがしばしばある。こういったユーザの発話をドメイン外発話と呼ぶ。ホテル検索をタスクとして考えると、ドメイン外発話のなかには、「今日は良い天気ですね」のようなまったく無関係の発話と、「そのホテルのオーナーは別のホテルも持っていますよね」といったタスクに関連しているシステムに知識が無くて直接回答できない発話とがある。こういったドメイン外発話に対しても、可能な限り適切に応答することができればユーザの満足度は上がる。
【０００５】
この目的を達成するために、システムがターゲットとするタスク特化型の応答と、ドメイン外を主に対応するための応答である雑談型応答を併用する対話システムが知られている。
【０００６】
例えば、特許文献１では、情報検索をターゲットタスクとし、ユーザが情報検索の発話をした場合は情報検索の対話エンジンを使って応答を生成し、それ以外の発話のときには雑談エンジンから応答を生成する技術が開示されている。この中で、雑談エンジンが出力する発言の内容を統制するため、雑談エンジンの出力から強制的に除外される語彙が設定されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１４−９８８４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１のような雑談型応答の技術では、タスクとは無関係に応答が生成される。そのため、ユーザのタスク達成を阻害するような雑談応答が生成される場合がある。たとえば、ホテル検索システムにおいて、システムが「The hotel costs 200$ per night」と発話し、それに対しユーザが「Is it expensive in this area?」と質問したとする。
【０００９】
この質問に対し、タスク特化型対話システムが適切な応答を生成できない場合、雑談型対話システムからの応答を採用することが想定される。雑談型の応答は、ユーザの発言を入力として応答を生成する雑談型対話システムから生成される。この応答が、たとえば「Yes. It is expensive」となった場合、ユーザにとっては、本当にこのホテルが“expensive”であるように誤解される。このように、特許文献１のような雑談型応答の技術では、ユーザにとって適切な応答を生成することは困難であり利便性が低下する。
【００１０】
本発明の目的は、対話装置において、ユーザにとって適切な応答を生成することにより利便性を向上させることにある。
【課題を解決するための手段】
【００１１】
本発明の一態様の対話装置は、タスク特化型の対話を行うタスク特化型対話システムと、雑談型の対話を行う雑談対話システムとを併用する対話システムであって、ユーザの入力文と過去の対話履歴に基づいて、前記タスク特化型の対話を制御してタスク特化型応答を出力するタスク特化型対話制御部と、前記入力文と前記対話履歴に基づいて、前記雑談型の対話を制御して雑談型応答を出力する雑談型対話制御部と、前記雑談型応答が前記対話履歴とタスクの目的から妥当な応答であるかどうかを評価した応答妥当性評価値を求め、前記応答妥当性評価値に基づいて前記雑談型応答と前記タスク特化型応答のいずれを採用するかを決定する応答妥当評価部とを有することを特徴とする。
【００１２】
本発明の一態様の対話方法は、タスク特化型の対話を行うタスク特化型対話システムと、雑談型の対話を行う雑談対話システムとを併用する対話システムにおける対話方法であって、ユーザの入力文と過去の対話履歴に基づいて、前記タスク特化型の対話を制御してタスク特化型応答を出力し、前記入力文と前記対話履歴に基づいて、前記雑談型の対話を制御して雑談型応答を出力し、前記雑談型応答が前記対話履歴とタスクの目的から妥当な応答であるかどうかを評価した応答妥当性評価値を求め、前記応答妥当性評価値に基づいて、前記雑談型応答と前記タスク特化型応答のいずれを採用するかを決定することを特徴とする。
【発明の効果】
【００１３】
本発明の一態様によれば、対話装置において、ユーザにとって適切な応答を生成することにより利便性を向上させることができる。
【図面の簡単な説明】
【００１４】
【図１】実施形態１における対話システム構成を示す図である。
【図２】対話制御部の動作を説明するための図である。
【図３】応答妥当性評価部２０８０の動作を説明するための図である。
【図４】実施形態２の処理の流れを説明するための図である。
【図５】オントロジー５０１０を示す図である。
【図６】学習データ６０１０を示す図である。
【図７】類似度の例を示す図である。
【図８】言語理解部１０８０の実装方法の例を示す図である。
【図９】対話シナリオにおける状態の定義を説明するための図である。
【図１０】実施形態６における対話システムの処理の流れを示す図である。
【図１１】状態遷移について説明するための図である。
【発明を実施するための形態】
【００１５】
以下、図面を用いて実施形態について説明する。
【実施形態１】
【００１６】
図１を参照して、実施形態１における対話システム構成について説明する。
ユーザは、タッチパッド１０１０、キーボード１０２０、マイク１０３０のいずれかまたは複数を使って、自然言語を入力する。タッチパッド１０１０、キーボード１０２０を使う場合には、ユーザはテキストを入力する。音声で入力される場合には、ユーザの音声がマイク１０３０により集音され、それが音声認識部１０４０においてテキストに変換される。音声認識部１０４０には、音声認識を行うためのデータである音響モデル１０５０、言語モデル１０６０が接続されている。音声認識の手法は、公知の文献に記載の方法により実施される。
【００１７】
入力されたテキストは、言語理解部１０８０に入力される。言語理解部１０８０では、入力されたテキストを、意味表現に変換する。本発明では、この意味表現のことをダイアログアクトと呼ぶ。言語理解モデル１０７０は、言語理解部１０８０で使うためのデータが格納される。言語理解がルールベースで行われる場合には、言語理解モデル１０７０には、テキストとダイアログアクトの対応が記録される。言語理解が統計的手法で行われる場合には、既知である機械学習の手法を用いたモデルが保存され、ユーザが入力したテキストから、所定の機械学習で使われるモデルの計算方法に従って、ダイアログアクトに変換される。
【００１８】
ここで、図８を参照して、言語理解部１０８０の実装方法の例を説明する。
第１に、Recurrent Neural Networkを使った機械学習による手法を説明する。ＲＮＮ  ８０３０は、入力として単語８０１０、品詞８０２０を受け付ける。さらに、出力として、各入力単語に対応するダイアログアクト８０４０を出力する。最後に、ダイアログアクト８０４０から重複するものを削除し、最終的に採用するダイアログアクト８０５０を決定する。
【００１９】
つぎに、機械学習とルールを併用する方法を説明する。８４００は、同入力文に対して得られたルールベースの言語理解結果をさらにＲＮＮへの入力として使うものである。ルールベースの言語理解手法にはさまざまなものがあるが、たとえば、有限状態トランスデューサを使った以下の論文のものを使うことができる。Takeshi Homma, Adriano S. Arantes, Maria Teresa Gonzalez Diaz, and Masahito Togami, "Maximizing SLU performance with minimal training data using hybrid RNN plus rule−based approach," Proc. SIGDIAL, pp.366−370, Melbourne, Australia, Jul. 2018.
【００２０】
機械学習で言語理解を行う際には、学習データが必要となる。この学習データとして高精度を実現するものは、ユーザが実際にシステムに入力した大量の発話集である。しかし、実際にユーザが行う発話は、限られたダイアログアクトに集中する場合が多い。そのため、機械学習だけを使うと、レアなダイアログアクトに対する識別性能が低くなる恐れがある。このような欠点を克服するため、ルールベースを併用することは効果がある。
【００２１】
機械学習とルールを併用する方法には、つぎの方法もある。最初に、各単語８５１０に対するＲＮＮによる機械学習型言語理解によって得たダイアログアクト８５３０およびルールベース言語理解によって得たダイアログアクト８５４０の双方を事前に得ておく。さらに、各単語の品詞８５２０も使い、これらをConditional Random Field (CRF) 8550に入力する。ＣＲＦ  ８５５０は、各単語のダイアログアクトに対して、ＲＮＮのものが正しいか、ルールベースのものが正しいか、両方正しいか、両方誤りかの判定を行う（８５６０）。最後に、判定８５６０に従って、単語ごとのダイアログアクト８５７０を決定し、さらに重複するダイアログアクトを削り採用するダイアログアクト８５８０を決定する。
【００２２】
このような、さまざまな機械学習とルールベースの併用方法を取ることにより、ＲＮＮに対する訓練データの大小にかかわらず、高い言語理解精度を保つことができる。また、併用方法は、ここに挙げたものに限定されない。たとえば、ＲＮＮ８０３０において、単語８０１０、品詞８０２０、ルールベース言語理解で得たダイアログアクト８４００を入力し、ＲＮＮが出力するダイアログアクト８０４０を得る。さらに、このダイアログアクト８０４０を、ＣＲＦによる複合方法において入力に使われるダイアログアウト８５３０の代替として使う。このことにより、学習データの大小によらず、高精度な言語理解が可能となる。
【００２３】
また、機械学習のモデルや入力情報は、ここで説明したものに限られない。ＲＮＮ、ＣＲＦは、互いに置換可能であるし、他のモデル、たとえばCNN, Logistic Regression, SVM, Random Forestなども代替として使うことができる。また入力については、単語や品詞に限定されず、代替として、別の情報源から得た単語やフレーズに関するクラス情報を入力として使っても良い。
【００２４】
言語理解部１０８０の出力となるダイアログアクトは、対話制御部１０９０に入力される。対話制御部１０９０の詳細は、図２において説明する。対話制御部１０９０は、次のシステムの応答となる応答文およびアクションの内容を出力する。アクション生成部１１００は、対話制御部１０９０の出力に従い、システムのアクションを生成する。ここで、アクションとは、ロボットやバーチャルエージェントの発言、表情、動きなどである。アクション生成部１１００が出力したアクションは、システムの情報提示手段であるロボット１１１０、バーチャルエージェント１１２０またはディスプレイ１１３０に出力される。
【００２５】
次に、図２を参照して、対話制御部１０９０の動作について説明する。
入力はテキストまたは言語理解結果またはその双方となる（２０１０）。これらは、まずタスク特化型対話制御部２０２０に入力される。タスク特化型対話制御部２０２０は、システムのターゲットとなるタスクに関する対話を制御する。タスク特化型対話モデル２０３０には、タスク特化型対話を進めるための対話シナリオが保存される。一般的に対話シナリオには、対話における各状態と、それに対して入力されるユーザのダイアログアクトと、システムが行うアクションと、遷移先となる状態を網羅して記述される。または、統計的に学習した対話状態遷移モデルも使われる。統計的モデルの実装例としては、以下の論文のものを使うことができる。
Jason D. Williams, Kavosh Asadi, Geoffrey Zweig, "Hybrid Code Networks: practical and efficient end−to−end dialog control with supervised and reinforcement learning," Proc. ACL, pp.665−677, Vancouver, Canada, Jul.−Aug. 2017.
【００２６】
各状態では、システムが行うアクションが定義される。また、このシステムが行うアクションのそれぞれに、システムのアクションに対するダイアログアクトも付与できる。各状態において、入力されたユーザ発話に対応するダイアログアクトに応じて、次の状態へ遷移する。
【００２７】
入力２０１０は、さらに、雑談型対話制御部２０５０に入力される。雑談型対話制御部２０５０は、ユーザのあらゆる入力に対して応答を生成するものである。雑談を進めるためのモデルは、雑談型対話モデル２０６０に格納される。雑談型対話制御モデル２０６０の作り方としては、sequence−to−sequence型のニューラルネットワークによって、会話文のコーパスから学習させる方法が知られている。たとえば、以下の文献の方法がある。
Tiancheng Zhao, Ran Zhao and Maxine Eskenazi, "Learning discourse−level diversity for neural dialog models using conditional variational autoencoders," Proc. ACL, pp.654−664, Vancouver, Canada, Jul.−Aug. 2017.
【００２８】
このsequence−to−sequence型の雑談生成において、通常入力されるものは、直前のユーザ発話文である。別の種類では、直前のシステム応答を入れるもの、１ターン前だけではなく複数ターンの対話履歴を入力できるもの、システム応答やユーザ発話のダイアログアクトを入れるものなど様々な入力に対応できる。
【００２９】
また、雑談型対話モデル２０６０を構築するため、いろいろなタスクを実行できるモジュールを組み合わせて、あらゆる話題に対応した雑談型対話システムの構築方法を取ることもできる。たとえば、対話システムの中に、質問応答エンジンに基づいてユーザの質問へ応答するモジュールを用意したり、映画の話題に特化してシステム応答を生成しかつユーザへの質問を生成するモジュールを用意したり、天気予報にだけ回答できるモジュールを用意したりする。このような多モジュール構成による雑談型対話システムの構築方法は、下記の論文にて示されている。
Hao Fang, Hao Cheng, Maarten Sap, Elizabeth Clark, Ari Holtzman, Yejin Choi, Noah A. Smith, and Mari Ostendorf, "Sounding Board: A user−centric and content−driven social chatbot," Proc. NAACL−HLT, pp.96−100, New Orleans, Louisiana, June 2018.
【００３０】
対話履歴２０４０には、ユーザがシステムとの対話を開始してから現時点までのシステムが出力した応答と、ユーザが発話した文のすべて保存されている。これに合わせて、システム応答、ユーザ発話のそれぞれに対するダイアログアクトも保存する。さらに、タスク特化型対話における、ユーザが話した情報も保存する。たとえば、ホテル予約タスクの場合には、ユーザが入力したホテルの場所、価格帯、名称、星の数などである。これらの情報は、信念状態（ＢＥＬＩＥＦ  ＳＴＡＴＥ）と呼ばれる。
【００３１】
ドメイン外評価部２０７０は、ユーザ発話が、ターゲットタスクのドメイン外であるか否かを判定する。この判定には、まず、対話シナリオから、タスク特化型対話における現在の状態を参照し、次に待ち受けるユーザ発話のダイアログアクトを参照する。
【００３２】
実際のユーザ発話に対して識別されたダイアログアクトが、この待ち受けるダイアログアクトと異なる場合には、ドメイン外と判定して高いドメイン外評価値を出力する。統計的な対話制御を使う際においても、次に予測されるユーザの発話内容またはダイアログアクトと、実際に来た発話内容またはダイアログアクトの２個を情報として、ドメイン外か否かを判定できる。または、ドメイン外を判定することに特化した別途に設けた識別器を利用し、ドメイン外評価値を算出してもよい。
【００３３】
対話シナリオの各状態には、次に待ち受けられるユーザ発話のダイアログアクトを定義するほかに、ユーザが発話するかも知れないが、それに対応するシステム応答は明示しないようなダイアログアクトも書くことができる。このダイアログアクトは、たとえば、ユーザが発言するかもしれないが、それぞれ明示的な応答を定義するには大変手間がかかる場合、または、そもそも適するシステム応答を一意に定義することが難しい場合が挙げられる。これらのダイアログアクトをユーザが発言した場合もドメイン外と判定する。さらに、この場合には、通常のドメイン外よりもより雑談応答がよりシステムに採用されやすくなるような操作を行っても良い。
【００３４】
別の実装方法も存在する。まず、対話履歴とユーザが入力した発話およびダイアログアクトから、タスク特化型応答および雑談型応答の双方を出力する。それぞれの出力の際、タスク特化型対話システムおよび雑談型対話システムの双方において、それぞれの応答に対する確信度を求める。この確信度の求め方は、たとえばシステムが待ち受けるダイアログアクトのそれぞれに事前に付与した出現確率を付与しておき、その確率が大きいほど確信度を高くする実装が考えられる。
【００３５】
または、もし対話システムを統計ベースで作るのであれば、統計モデルがその応答出力とともに出力する尤度をもとに確信度を計算できる。こうして計算した確信度のうち、タスク特化型応答のもの、雑談型応答のもの、または両方を用いて、ドメイン外評価値を計算する。たとえば、タスク特化型の確信度が高ければドメイン評価値は低くする。また、タスク特化型の確信度が低い場合、または雑談型の確信度が高い場合にはドメイン外評価値を高くする。
【００３６】
応答妥当評価部２０８０は、どの程度雑談型応答が妥当か、どの程度タスク特化型応答が妥当かを評価した応答妥当性評価値を出力し、より妥当と判断された応答を出力する。出力された応答は、アクション生成部１１１０へ出力される。
【００３７】
図３を参照して、応答妥当性評価部２０８０の動作を説明する。
ステップ３０１０では、ドメイン外評価値が閾値以上であるかを判定する。もし閾値未満であった場合には、ユーザ発話が十分タスクの範疇内であると捉えられるため、ステップ３０２０に進み、タスク特化型応答を採用する。ドメイン外評価値が閾値以上であった場合には、ステップ３０３０にすすむ。ステップ３０３０では、雑談型応答に対する応答妥当性評価値の計算を行う。この詳細は後ほど説明する。
【００３８】
ステップ３０４０では、応答妥当性評価値が閾値以上であった場合は、ステップ３０５０において雑談型応答を採用する。閾値未満であった場合には、ステップ３０２０においてタスク特化型応答を採用する。
【００３９】
ここで、応答妥当性評価値の計算方法について説明する。第１の基準として、タスクの対話シナリオにおける知識（オントロジー）との類似度を使う。
【００４０】
図５に、この知識の一表現形態であるオントロジー５０１０を示す。オントロジー５０１０では、タスク特化型対話システムにおいて、ユーザがシステムに問い合わせを行う対象や、ユーザがタスクの目的として決めるべき事項を記録しておく。図５の例では、タスクがホテル検索であるときの例が示されている。スロット５０２０は、オントロジーにおける属性であり、値５０３０は、各スロット５０２０が取りうる具体的な内容の一覧である。ホテル検索の場合には、ユーザがホテルの場所（ａｒｅａ）、価格帯（ｐｒｉｃｅ）、名前（ｎａｍｅ）などを入力し、システムと対話しながら、最終的に１箇所のホテルに決める。そのため、オントロジー５０１０には、スロット５０２０として、場所（ａｒｅａ）、価格帯（ｐｒｉｃｅ）、名前（ｎａｍｅ）などが用意され、かつそれぞれの値５０３０には、具体的にユーザが指定可能である事項またはシステムが情報としてユーザに提供できる事柄が定義される。
【００４１】
図７には、実際の類似度の例７０１０を示す。雑談型応答７０２０のうち、たとえば”I recommend XYZ”という文には、”XYZ”というオントロジーの名前（ｎａｍｅ）に含まれる単語が存在する。そのため、類似度７０３０／７０４０は高くなる。結果として、妥当性７０７０は否（Ｎｏ）と判定される。いっぽう、”My pleasure”という文には、オントロジーと重なる単語がない。そのため、類似度７０３０／７０４０が低く計算される。
【００４２】
このオントロジーとの類似度を考慮する理由は、一般に、システムがオントロジーを含む文を応答すると、ユーザにとっては、実際には雑談型対話制御から出力された応答であっても、その応答がターゲットタスクにおいて重要な応答だと捉えるからである。これを防ぐ観点から、オントロジーとの類似度を導入する。
【００４３】
第２の基準として、タスク特化型対話システムで表出されるシステム発話との類似度を導入する。システム発話は、対話シナリオにおける各状態において、システムが発話する文として定義される。そこで、これらに列挙されている発話と、雑談型応答が出力した発話との類似度を計算する。類似度計算方法としては、たとえば単語の一致数、単語カテゴリの一致数などを計算する。
【００４４】
さらに、各システム応答に対してシステムのダイアログアクトが定義されているのであれば、システム応答を入力してシステムのダイアログアクトの確率を算出するような別の統計モデルを開発し、この統計モデルに雑談応答を入力した場合の尤度を用いても良い。さらに、タスク特化型対話システムの対話制御を統計的モデルで行う場合には、雑談応答が統計モデルから出力される確率を計算することで求められる。
【００４５】
タスク特化型応答と近い雑談型応答が採用されると、ユーザにとってはタスクにおいて重要な情報と捉えられるためユーザに混乱を招く。そのため、雑談型応答に含まれるタスク特化型応答と近い応答は、採用しないように調整することが望ましい。この理由により、システム発話との類似度を用いる。
【００４６】
例７０１０を参照すると、雑談型応答７０２０のうち、”I recommend XYZ”, “One of famous places around Denver is Mount. Evans”, “XYZ house was founded in 19xx.”という発話において、システム応答との類似度７０６０が高い値を付与している。
【００４７】
とくに、システムが何らかのホテルをお勧めする行為はダイアログアクトとしても存在することを想定すると”I recommend XYZ”はより高い類似度として計算される。それ以外の文については、XYZやDenverといったシステム応答によく使われる語彙は入っているものの、それ以外の語彙はシステム応答と類似しない。そのため、比較的低い値が付与される。
【００４８】
もし雑談応答がシステム応答と近くても、とくに問題が無いケースもある。ホテル検索タスクにおいては、ユーザに対して何らかの情報提示を行うダイアロアクトであるinformや、ユーザへホテルの提案を行うダイアログアクトであるofferは、ユーザのタスク達成に重要である。一方、感謝を表すthankyouや、開始を示すwelcomemsgといったダイアログアクトは、タスク達成には直接関係しない。そのため、仮に雑談型応答が、タスク特化型のシステム応答の内容またはシステム応答のダイアログアクトと類似していても、その対象となる応答の内容やダイアログアクトがユーザに対して誤解を与えないものであれば、この類似度は下げてもよい。このように、類似度の計算では、ダイアログアクトやシステム応答の内容に応じて重みを変えてよい。
【００４９】
第３の基準として、ユーザが行うであろう発話との類似度を導入する。ユーザが行うであろう発話は、言語理解モデル１０７０を用いることで判定できる。言語理解モデル１０７０を構築するためには、一般に、事前に学習データを用意する。
【００５０】
図６に、この学習データ６０１０を示す。学習データは、ユーザ発話６０２０と、対応するダイアログアクト６０３０の対応関係を記述する。図６の例では、１文に対して１個のダイアログアクトが付与されているが、図８の例に示すとおり、１文に対して複数のダイアログアクトが付与される場合もある。また、文単位ではなく、単語やフレーズ単位でダイアログアクトが付与されることもある。
【００５１】
図７に示す例７０１０を参照すると、雑談型応答７０２０のうち、”I want to visit Denver”は、ユーザが地名を指定するときの発話と類似するため、類似度７０５０に高い値が付与されている。ユーザが行うであろう発話との類似度を計算するには、実際に生成された雑談型応答と、この学習データにある発話文との類似度を計算すればよい。または、雑談型応答を言語理解部１０８０に入力し、得られたユーザ発話のダイアログアクトの尤度で評価することもできる。ルールベースの言語理解を用いる場合であっても、言語理解の確からしさを得ることはできる。たとえば、有限状態トランスデューサを用いた以下の論文の言語理解器では、ダイアログアクトに付与して算出される累積重みの値を、類似度として使うことができる。
Takeshi Homma, Adriano S. Arantes, Maria Teresa Gonzalez Diaz, and Masahito Togami, "Maximizing SLU performance with minimal training data using hybrid RNN plus rule−based approach," Proc. SIGDIAL, pp.366−370, Melbourne, Australia, Jul. 2018.
【００５２】
ユーザが行うであろう発話との類似度を使う理由は、多くのタスクにおいて、ユーザとシステムの役割は大きく異なるため、ユーザが言うと想定される発話はシステムが言うことは少ないためである。しかしながら、この状況はタスクによって異なる。たとえば、システムと人が、互いに同じ地図の情報を参照し、何かの建物の位置を確認するようなタスクでは、両者の発言には同じようなダイアログアクトがたくさん含まれる。さらに、ある１個のタスクの中においても、システムとユーザの双方が共通して表出するダイアログアクトもある。ダイアログアクト６０３０（図６参照）に示されるもののうち、感謝を示すthankyouは、ユーザがシステムに感謝する場合に表出されるダイアログアクトである。一方、システムがユーザに「利用してくれてありがとう」ということを表出するためのダイアログアクトでもある。
【００５３】
こういった事情を踏まえるために、雑談型応答とユーザが行うであろう発話との類似度の算出では、タスクごとまたはダイアログアクトや発言内容ごとに、別の重みをつけるようにしてもよい。
【００５４】
以上のように計算した類似度をもとに、３０３０（図３参照）における応答妥当性評価値を計算する。オントロジーとの類似度をSo，システム発話との類似度をSs、ユーザ発話との類似度をSuと表記すると、応答妥当性評価値Rは下記式で表される。
R=ｆ（So，Ss，Su）
ただし、ｆは任意の関数であり、たとえば重み付き和を使うことができる。さらに、ロジスティック回帰モデルやニューラルネットワークモデルを使い、各類似度と応答妥当性評価値の関係を、別途用意した学習データから求めてもよい。
【００５５】
最後に、決定された応答に従い、システムが実際に応答を出したあとには、それに伴う対話制御の状態遷移が行われる。この対話システムでは、対話制御として、タスク特化型と雑談型を併用する。そのため、実際には、採用された応答がタスク特化型であったか雑談型であったかによって、状態更新の対象となる対話制御が異なってくる。タスク特化型応答が採用された場合、まずタスク特化型対話制御における状態は更新される。
【００５６】
さらに、必要に応じて、雑談型対話制御についても、採用されたタスク特化型応答を、「雑談型対話制御が出力した」と仮定し、状態を更新することが可能である。つぎに、雑談型応答が採用された場合を考えると、まず雑談型対話制御の状態は更新される。また、タスク特化型対話制御においては、もともと雑談応答が採用されるような状態は存在しない。そこで、状態更新しないかまたは「雑談応答が採用された」という別の状態をもうけ、その状態に遷移することが考えられる。
【００５７】
状態遷移について図１１により説明する。図１１では、図２ですでに説明したタスク特化型対話制御部２０２０および雑談型対話制御部２０５０の内部を説明している。
【００５８】
タスク特化型対話制御部２０２０及び雑談型対話制御部２０５０のそれぞれは、応答生成部（１１３１０、１１０１０）、対話状態（１１３２０、１１０２０）、状態更新部（１１３３０、１１０３０）からなる。応答生成部（１１３１０、１１０１０）は、ユーザから入力されたテキストと言語理解結果２０１０を受理し、対話履歴２０４０および現在の対話状態（１１０２０または１１３２０）を参照して応答を生成し、応答妥当性評価部２０８０に出力する。
【００５９】
応答妥当性評価部２０８０では、タスク特化型か雑談型かのいずれかの応答を採用する。採用結果に応じて、状態更新部（１１３３０、１１０３０）では対話状態を更新する。
【００６０】
タスク特化型の応答が採用された場合には、タスク特化型対話制御部２０２０にある状態更新部１１３３０が働き、タスク特化型対話制御部２０２０の対話状態１１３２０が更新される。このとき、雑談型対話制御部の対話状態１１０２０の更新方法として、いくつかの方法をとることができる。シンプルな方法は、対話状態１１０２０を更新しないことである。一方、雑談型対話モデル２０６０が統計的手法で作られている場合には、雑談型対話モデル２０６０から採用されたタスク特化型の応答が出力される確率を計算することができる。よって、雑談型対話モデル２０６０から採用されたタスク特化型の応答を生成させる演算を行うことで、雑談型対話制御の対話状態１１０２０を更新することができる。
【００６１】
雑談型の応答が採用された場合には、雑談型対話制御部２０５０にある状態更新部１１０３０が働き、雑談型対話制御部の状態１１０２０が更新される。このとき、タスク特化型対話制御部の対話状態１１３２０の更新方法については、タスク特化型対話モデル２０３０で定義される各状態のいずれにも属さない「雑談型応答採用」をあらわす状態をあらかじめ用意しておき、この「雑談型応答採用」状態に遷移させる方法をとることができる。さらに、次のユーザ発話が入力されたときには、タスク特化型対話モデル２０３０で定義される状態のうち、雑談型応答をシステムが採用する直前の状態から復帰する想定で、状態遷移の処理を行うことができる。
【００６２】
システム応答を生成する際に参照する対話状態は、基本的に、タスク特化型対話制御部２０２０または雑談型対話制御部２０５０のいずれかに属する対話状態である。しかし、これとは別に、双方の対話制御部で共有される状態を設けて、これを参照して応答を生成する方法もとれる。
【００６３】
例として、システムとユーザとの間で、以下のように対話が進んだとする。
システム: “ABC hotel is one of the best hotel in the north area.” (タスク特化型対話制御部２０２０から生成された応答)
ユーザ: “That hotel is nice.”
これに対応するシステム応答として、雑談型応答を採用して、
システム: “Yes. That hotel is nice.”
と応答することは自然である。
【００６４】
しかし、さらに自然な応答を作るため、タスク特化型対話制御部２０２０において、ユーザがすでに入力済みである情報”ABC hotel”を使い、
システム: “Yes. ABC hotel is nice.”
というシステム応答を生成することも考えられる。
【００６５】
ここで使われたフレーズで”ABC hotel”は、タスク特化型対話制御部２０２０で使われた情報であるため、タスク特化型対話制御部２０２０の対話状態１１３２０に保存されているものである。そのため、このままでは、雑談型対話制御部２０５０で”ABC hotel”という名称を参照することはできない。
【００６６】
そこで、双方の対話制御部で共有する対話状態を保存する共有対話状態１１５２０を設け、さらに対応する状態更新部１１５３０を設ける。共有対話状態１１５２０には、タスク特化型対話制御部２０２０の対話状態１１３２０で扱われる情報および雑談型対話制御部２０５０の対話状態１１０２０で扱われる情報のうち、双方の対話制御部で行われる応答生成に有用な情報を保存する。
【００６７】
タスク特化型対話制御部２０２０から更新される共有対話状態１１５２０は、ターゲットタスクに関する情報であり、ホテル検索の場合には、ホテルの名称、価格帯、地域などである。雑談型対話制御部２０５０から更新される共有対話状態１１５２０は、雑談中に現れた情報であり、たとえばユーザの氏名、話題となっている地域などである。
【００６８】
応答生成部１１０１０、１１３１０でシステム応答を生成する際には、それぞれの対話制御部２０２０、２０５０にある対話状態１１３２０、１１０２０に加え、共有対話状態１１５２０を参照する。タスク特化型の応答生成の場合、対話シナリオ（タスク特化型対話モデル）に定義されている応答文の定義にて、対話状態から動的に埋められる部分を記述できるようにしておく。
【００６９】
たとえば、”(NAME) is one of the best hotel in the (PLACE) area”というように応答文を定義しておき、(NAME)には対話状態に保存されているホテル名、(PLACE)には対話状態に保存されている地域名を埋め込む。これらの埋め込みにおいて、共有対話情報を使う。
【００７０】
雑談型対話制御においても、雑談型対話モデルを会話データから学習する際に、会話データから固有名詞などを単語の種類をあらわす特殊シンボルに置換してから学習する方法がとられる。そして、実際に応答文を生成する際に、この特殊シンボルに対応する単語の種類をもとに、埋め込みに適する情報を共有対話状態１１５２０から生成し、単語を埋め込み応答を生成する。共有対話状態１１５２０に対応する状態更新部１１５３０は、双方の対話制御部２０２０、２０５０の状態の更新に使われる情報を得て、共有すべき情報に関して対話共有状態１１５２０を更新する。
【実施形態２】
【００７１】
次に、実施形態２について説明する。応答妥当性評価値の算出方法として、別の実装方法も存在する。ここでは、雑談型応答に対する妥当性だけでなく、タスク特化型応答に対する応答妥当性評価値も算出する。
【００７２】
この実施形態２の処理の流れを図４に従い説明する。図４は、応答妥当性評価部２０８０の内部における処理の流れである。
【００７３】
ステップ４０１０では、対話履歴、ドメイン外評価値およびタスク特化型応答の候補に基づき、タスク特化型応答の応答妥当性評価値を求める。
【００７４】
ステップ４０２０では、対話履歴、ドメイン外評価値、雑談型応答の出力に基づき、雑談型応答の応答妥当性評価値を求める。このとき、さらに、オントロジーとの類似度、システム発話との類似度、ユーザ発話との類似度も加味されて計算される。
【００７５】
ステップ４０３０では、両方の応答妥当性評価値が閾値より低かった場合、両方の応答を棄却し、使わないという処理を行う（ステップ４０４０）。この場合には、対話システムのアクション生成部１１１０では、あらかじめ決められた応答を出力する。たとえば、「もう一度お話ください」、「違う言葉で言ってみてください」という応答文を生成し、ユーザに対して再度発話することを促す。
【００７６】
ステップ４０５０では、両方の応答妥当性評価値を比較し、より高かったほうの応答を採用する。すなわち、タスク特化型応答の応答妥当性評価値が高かった場合は、タスク特化型応答を採用する（ステップ４０６０）。雑談型応答の応答妥当性評価値が高かった場合は、雑談型応答を採用する（ステップ４０７０）。
【００７７】
タスク特化型応答および雑談型応答のそれぞれに対する応答妥当性評価値は、双方およびユーザが直近で入力した発話およびダイアログアクトを含む対話履歴を使い、それぞれの応答に対して計算される。このとき、応答妥当性評価値の計算において、ドメイン外評価部が出力したドメイン外評価値を用いても良い。
【００７８】
この応答妥当性評価値の求め方は、たとえばシステムがその状態において待ち受けるダイアログアクトのそれぞれに対して、「実際にユーザが発言する」確率を付与し、確率が大きいダイアログアクトに対応する発言をユーザが行ったときほど応答妥当性評価値を高くするという実装が考えられる。もし対話システムを統計的モデリングにより作るのであれば、統計モデルが応答出力とともに、その応答に対応する確からしさを出力でき、かつ次にユーザが発話すると予測される様々なユーザ発話に対する尤度も得ることができる。そのため、実際に行われたユーザ発話が、統計モデルにおいてどの程度の尤度で予測されたものであるかを計算し、この尤度をもとに応答妥当性評価値を計算することができる。
【００７９】
最後に、雑談型応答の応答妥当性評価値は、オントロジーとの類似度、システム発話との類似度、ユーザ発話との類似度に依存して補正される。一般的には、これらの類似度が高い場合には雑談型応答は避けたほうが良いため、類似度が高いほど雑談型応答の応答妥当性評価値は下がるように調整される。類似度を加味する方法は、最後に補正するだけでなく、応答妥当性評価値の計算式においてあらかじめ類似度を入れておく方法でもよい。こうして計算したタスク特化型応答の応答妥当性評価値、雑談型応答の応答妥当性評価値を用いて、最終的に採用する応答を決定する。
【実施形態３】
【００８０】
次に、実施形態３について説明する。雑談型応答の応答妥当性評価値の計算において、上述の類似度だけでなく、対話途中においてユーザが発言した内容をまとめた信念状態（ＢＥＬＩＥＦ  ＳＴＡＴＥ）との類似度に基づく方法を取ることもできる。
【００８１】
たとえば、対話のなかで、ユーザはDenver地域のホテルを探していることがほぼ確実であると想定する。すなわち、信念状態において、inform(area=”Denver”)というダイアログアクトが高い確率値を伴って保持されている状態である。この状態において、たとえば雑談型対話制御が”Where do you want to stay?”という応答を出力したとする。この応答をシステムが出力することは、ユーザがすでに地域を確定させている状況から考えて、不適切である。よって、妥当性を評価する際に、すでにユーザが入力済み信念状態の情報も加味したうえで決めることで、より適切な応答生成を行うことができる。
【実施形態４】
【００８２】
次に、実施形態４について説明する。応答妥当性評価部２０８０において、雑談応答に対する応答妥当性評価値を計算するだけでなく、複数生成した雑談型応答のなかから適切なものを選ぶことも可能である。
【００８３】
第１に、まず、雑談型対話制御において、過去のシステム発言のダイアログアクト、ユーザ発言のダイアログアクトも順次入力することで、次にシステムが発言しても妥当と考えられるような応答候補を作ることができる。
【００８４】
第２に、事前に「つぎに来ても不自然ではないシステム応答のダイアログアクト」をなんらかの方法で保持していくこともできる。たとえば、対話シナリオの各状態において、タスク特化型対話制御が応答できるユーザ発言のダイアログアクトを定義するたけでなく、ユーザが言ってもおかしくはないダイアログアクトを列挙しておくことだけはできる。さらに、そのユーザ発言に対して、システムがどう振る舞うべきかの範囲を定めるため、システムが取りうるべきダイアログアクトを定義することもできる。よって、ある対話状態においてユーザが言った発言を使い雑談型応答を生成する際、まず複数の応答の候補を生成し、そこから、システムが取るべきダイアログアクトとなる応答となっているものを選択して採用する方法を取ることができる。
【００８５】
第３の方法は、雑談型対話制御の応答生成のメカニズムにおいて、出力する応答のダイアログアクトをあらかじめ定義したものの範囲に制御する方法である。この方法は、仮に雑談型応答をsequence−to−sequenceモデルで生成する場合は、このモデルに、システムが取りうるべきダイアログアクトを入力できるようにし、さらに応答モデルの学習において、入力されたダイアログアクトに従った応答を生成するように学習すれば実現できる。そして、上記で準備した対話シナリオの記載されている「システムが取りうるべきダイアログアクト」を雑談型対話制御モデル２０６０に入力することで、所望の応答を得ることができる。
【００８６】
上記第２の方法、第３の方法をとるときには、システムが取りうるべきダイアログアクトが定義されている必要がある。このときの対話シナリオにおける状態の定義を図９で説明する。
【００８７】
９０００、９１００、９２００のそれぞれは、１個の対話状態の定義を示す。９０１０は、状態ＩＤを示す。９０２０は、この状態において対話システムが出力する応答を示す。ここで示すNAME, PRICEとは、対話のやり取りのなかでユーザが検索対象としたいと推定された情報により置き換えられる。たとえばホテルの名前がABCであり、値段の範囲が高価格帯(expensive price range)なのであれば、９０２０のシステム応答は”ABC is another hotel with expensive range”となる。
【００８８】
９０３０は、システム応答９０２０に対応するシステムのダイアログアクトを示す。９０４０は、遷移方法を示す。遷移方法は、次に行われるユーザ発話のダイアログアクト９０５０と、それに対応する処理９０６０と、遷移先の状態ＩＤ９０７０が定義されたものである。処理９０６０は、対話システムの内部状態の更新、データベース検索など、必要となる処理を定義したものである。たとえば、ユーザ発話がホテル名”DEF”を指定したものであった場合、すなわちダイアログアクトinform(name=”DEF”)が認識された場合には、処理R001では内部状態のNAMEを”DEF”に更新する処理を行い、さらにデータベース検索を行ってホテル”DEF”の情報を得る。
【００８９】
遷移先には、１個の遷移先だけでなく複数の遷移先を記述することもありうる。たとえば、データベース検索で”DEF”に関する情報が存在した場合にはS002へ遷移し、無かった場合にはS012に遷移する、といった実装を行う。ここで、状態S001において、システムから提示されたホテル候補に対して、ユーザが”That’s great”と発言し、ダイアログアクトとしてopinion(polarity=”positive”)が認識されたとする。このユーザ発話に対するシステム応答を明示的に定義しても良いが、ここでは雑談型応答を使うことを考える。そこで、ダイアログアクトopinion(polarity=”positive”)が認識されたときの遷移先S101(９１００), S102(９２００)では、システム応答文言は明記せず、システムのダイアログアクトだけを定義しておく。
【００９０】
ユーザ発言”That’s great”に対して、システムが”Thank you”と言っても自然であるし、また”I think so”のように同意しても自然である。そこで、起こりうるシステム応答のダイアログアクトを記述しておく（９１３０ thankyou()、９２３０agree()）。さらに、それぞれのシステムのダイアログアクトに対して、ユーザが発言しうるダイアログアクトも定義する（９１５０、９２５０）。必要に応じて、処理（９１６０、９２６０）と遷移先ＩＤ（９１７０、９２７０）も定義する。
【００９１】
上記のように、次に取りうるべきシステムのダイアログアクト、ユーザのダイアログアクトを記述する以外にも、システムが取りうるべきではないダイアログアクト、ユーザが発言する可能性が無いダイアログアクトを記述する方法でもよい。さらに、対話状態の定義において、システムが取りうるべきダイアログアクトの発生しやすさの値を定義しておき、雑談型対話制御モデル２０６０が出力する応答の尤度と組み合わせて使い、より発生しやすいと考えられるシステム応答および状態遷移が起こるようにしてもよい。
【実施形態５】
【００９２】
次に、実施形態５について説明する。雑談型対話制御を学習する際、応答が、ターゲットタスクにおいて、より妥当になるように、あらかじめ学習しておくことが可能である。
【００９３】
雑談型対話制御は、通常、一般的な対話コーパスから学習されることが一般的である。学習プロセスでは、ある話者の発言をモデルに入力したとき、つぎの話者の発言がモデルから出力される尤度を最大化するように学習が行われる。すなわち、つぎの話者が発言する単語列と、モデルが出力する単語列の間の距離がコスト関数として使われ、このコスト関数が最小化されるように学習が行われる。
【００９４】
このコスト関数を計算する際に、本発明で開示する基準を入れ込むことで、よりターゲットタスクにふさわしい応答が生成されるようになる。すなわち、発言におけるオントロジーとの距離、ターゲットタスクにおけるユーザ発言との距離、ターゲットタスクにおけるシステム応答との距離である。
【００９５】
一般には、これらの距離は、より遠くなるように学習される。しかし、ダイアログアクトやタスクによっては、ターゲットタスクにおけるシステム応答と類似していたほうが良いケースもある。このような事情を考慮するためには、タスクごと、ダイアログアクトごとに、これらの距離がどの程度コスト関数に反映されるかに関する重みを変えることで実現できる。
【００９６】
また、コスト関数の最小化に基づく学習に限らず、報酬を最大化する形の強化学習を行ってもよい。たとえば、生成された雑談型のシステム応答に対して、実際にユーザがどう感じるかをシミュレーションできるユーザモデルを構築する。このユーザモデルは、システム応答が「当たり障りない応答」ならばプラスの報酬を与え、「ユーザが誤解を抱く応答」ならばマイナスの報酬を与える。また、雑談型応答がタスク特化型のような応答を出し、それがユーザの信念状態と矛盾しない応答であった場合も考えられる。
【００９７】
この場合、雑談型応答がタスク特化型のような応答を出すことは避けるべきという原則からいくと、マイナスの報酬を与える。しかし、この場合にはプラスの報酬を与えて、よりユーザの信念状態に矛盾しない応答を出すようにしてもよい。
【実施形態６】
【００９８】
次に、実施形態６について説明する。実際にシステムが応答を生成したあと、ユーザが応答のよさを評価するレーティングを行い、その結果を使い、さらに応答妥当性評価が良くなるように強化学習を行う。この実施形態６における対話システムの処理の流れを図１０に示す。
【００９９】
ステップ１００１０では、現在の対話状態に応じてシステム応答を生成する。ステップ１００２０にて、システムから実際に応答を出力する。ステップ１００３０ではユーザ発話を待ちうける。
【０１００】
ステップ１００４０において、ユーザ発話に、システム応答に対する肯定的な意図、否定的な意図が含まれるかを判断する。もし意図していた場合には、ステップ１００５０に進む。肯定的な場合には、ステップ１００６０に進み、ステップ１００１０にてシステム応答として採用されていた対話制御方式（タスク特化型または雑談型）の応答妥当性評価値がより高く計算されるように設定を変更する。または、採用されていなかった対話制御方式の応答妥当性評価値がより低く計算されるように設定を変更する。
【０１０１】
一方、否定的な場合には、ステップ１００７０に進み、システム応答として採用されていた対話制御方式の応答妥当性評価値がより低く計算されるように設定を変更する。または、採用されていなかった対話制御方式の応答妥当性評価値がより高く計算されるように設定を変更する。
【０１０２】
最後にステップ１００８０に進み、システム応答、ユーザ発話、対話履歴に沿って対話状態を更新し、再びシステム応答を生成するステップ１００１０に戻る。
【０１０３】
上記の処理では、ユーザが応答のよさを回答に込める際、ユーザが明示的に肯定的意図、否定的意図を表現することが前提である。別の方法として、ユーザが明示的に良さを回答してなくとも、その発話の内容から、ユーザの肯定的、否定的意図を推測する方法もある。たとえば、雑談型応答に対して、ユーザが”No, I don’t want that”と言った場合には、それは否定的な意図だと捉えることができるし、またはとくに支障なくそのまま話題が進んで言った場合には、肯定的な意図に捉えられる。
【０１０４】
これまでの実施例で示した応答妥当性評価は、多種の情報に基づいてシステム応答の妥当性を定量的に評価する一種の回帰モデルであると捉えることができる。よって、応答妥当性評価部は、回帰モデルを構築するあらゆる機械学習の手法を用いて、構築することができる(SVR, Logistic regression, Deep neural networkなど)。
【０１０５】
さらに、機械学習による回帰モデルを発展させて、ユーザフィードバックを教示信号とした強化学習モデルに拡張することができる。すなわち、与えられた情報の条件下において、次にシステムがタスク特化型応答を採用したとき、または雑談型応答を採用したときにおいて、ユーザから与えられる報酬の値を予測するモデルを作る。これは、公知の強化学習の方法によって可能である。
【０１０６】
さらに、実際に得たユーザのレーティング値を教示信号として、報酬の予測精度を上げていく。実際のシステム利用時には、報酬を最大化するような応答選択を予測し、システム応答として採用していく。こうすることにより、応答妥当性評価の値をより正確にしつつ、かつよりよい応答を生成することができる。
【０１０７】
上記実施形態では、タスク特化型対話システムと雑談対話システムを併用する。それぞれが生成する応答に対して、対話の状態から見て妥当な応答であるかを判定し、妥当な応答であると判定されたものを実際のシステム応答として採用する。そして、雑談型の応答に対して、想定するタスクにおける妥当性を評価する。この妥当性は、雑談型応答に対してタスクのオントロジーからの類似度、用意されているシステム応答からの類似度、またはユーザが発言しそうな内容からの類似度を使う。これらの類似度が低い場合には、ユーザへの誤解を生みづらい応答と判断して雑談対話システムを採用する。このような機能を取り入れることにより、よりユーザにとって適切な応答を生成できるようになり利便性を高めことができる。このように、上記実施形態によれば、ユーザの想定外の発言に対しても、適切な応答文を生成することができる。
【符号の説明】
【０１０８】
１０１０  タッチパッド
１０２０  キーボード
１０３０  マイク
１０４０  音声認識部
１０５０  音響モデル
１０６０  言語モデル
１０７０  言語理解モデル
１０８０  言語理解部
１０９０  対話制御部
１１００  アクション生成部
１１１０  ロボット
１１２０  バーチャルエージェント
１１３０  ディスプレイ
２０１０  入力
２０２０  タスク特化型対話制御部
２０３０  タスク特化型対話モデル
２０４０  対話履歴
２０５０  雑談型対話制御部
２０６０  雑談型対話モデル
２０７０  ドメイン外評価部
２０８０  応答妥当評価部
【図１】
2020118842.tif 000003
【図２】
2020118842.tif 000004
【図３】
2020118842.tif 000005
【図４】
2020118842.tif 000006
【図５】
2020118842.tif 000007
【図６】
2020118842.tif 000008
【図７】
2020118842.tif 000009
【図８】
2020118842.tif 000010
【図９】
2020118842.tif 000011
【図１０】
2020118842.tif 000012
【図１１】
2020118842.tif 000013