(57)【要約】【課題】できる限り自然な対話の中で、ユーザ毎の対話習慣に応じて、固定的な対話ノードの間に動的対話ノードの挿入行動を制御する対話プログラム等を提供する。【解決手段】ユーザへ明示すべき文を対応付けた複数の固定対話ノードを蓄積し、第１の固定対話ノードから第２の固定対話ノードへシナリオとして結び付けた対話シナリオ蓄積手段と、固定対話ノード同士の間に挿入可能な複数の動的対話ノードを蓄積する動的対話ノード蓄積手段と、動的対話ノードの質問行動ａに対するユーザからの回答状態ｓに応じた報酬期待値ｒ(ｓ,ａ)を累積的に蓄積する報酬期待値蓄積手段と、固定対話ノードのシナリオ進行の間で、報酬期待値ｒ(ｓ,ａ)に基づいて、報酬Ｖtが最大となるように次に動的対話ノードの挿入行動を制御する動的対話ノード選択手段として機能させる。【選択図】図５
2015125198.tif 000002
【特許請求の範囲】
【請求項１】
ユーザと対話的にシナリオを進行するようにコンピュータを機能させる対話プログラムであって、
ユーザへ明示すべき文を対応付けた複数の固定対話ノードを蓄積し、第１の固定対話ノードから第２の固定対話ノードへシナリオとして結び付けた対話シナリオ蓄積手段と、
前記固定対話ノード同士の間に挿入可能な複数の動的対話ノードを蓄積する動的対話ノード蓄積手段と、
前記動的対話ノードの質問行動ａに対するユーザからの回答状態ｓに応じた報酬期待値ｒ(ｓ,ａ)を累積的に蓄積する報酬期待値蓄積手段と、
固定対話ノードのシナリオ進行の間で、前記報酬期待値ｒ(ｓ,ａ)に基づいて、報酬Ｖtが最大となるように次に動的対話ノードの挿入行動を制御する動的対話ノード選択手段と
してコンピュータを機能させることを特徴とする対話プログラム。
【請求項２】
前記対話シナリオ蓄積手段及び前記動的対話ノード蓄積手段は、一体的に構成されており、
先の対話ノードと後の対話ノードと間の遷移確率が、所定閾値以上の場合、後の対話ノードは固定対話ノードとし、所定閾値よりも低い場合、後の対話ノードは動的対話ノードとする
ようにコンピュータを機能させることを特徴とする請求項１に記載の対話プログラム。
【請求項３】
前記報酬期待値蓄積手段は、前記動的対話ノードの質問文に対するユーザの回答の内容が、ポジティブの場合にプラス所定値を導出し、ネガティブの場合にマイナス所定値を導出する
ようにコンピュータを機能させることを特徴とする請求項１又は２に記載の対話プログラム。
【請求項４】
前記動的対話ノード選択手段は、マルコフ決定ＭＤＰ(Markov Decision Process)を用いて、報酬Ｖtが最大となるように回答状態ｓに対する質問行動ａを決定するようにコンピュータを機能させることを特徴とする請求項１から３のいずれか１項に記載の対話プログラム。
【請求項５】
前記マルコフ決定ＭＤＰのモデルの最適化学習に、Q-learningのＱ値を用いることを特徴とする請求項１から４のいずれか１項に記載の対話プログラム。
【請求項６】
ユーザ操作に基づく端末との間で、対話的にシナリオを進行する対話サーバであって、
ユーザへ明示すべき文を対応付けた複数の固定対話ノードを蓄積し、第１の固定対話ノードから第２の固定対話ノードへシナリオとして結び付けた対話シナリオ蓄積手段と、
前記固定対話ノード同士の間に挿入可能な複数の動的対話ノードを蓄積する動的対話ノード蓄積手段と、
前記動的対話ノードの質問行動ａに対するユーザからの回答状態ｓに応じた報酬期待値ｒ(ｓ,ａ)を累積的に蓄積する報酬期待値蓄積手段と、
固定対話ノードのシナリオ進行の間で、前記報酬期待値ｒ(ｓ,ａ)に基づいて、報酬Ｖtが最大となるように次に動的対話ノードの挿入行動を制御する動的対話ノード選択手段と
を有することを特徴とする対話サーバ。
【請求項７】
装置を用いて、ユーザと対話的にシナリオを進行する対話方法であって、
ユーザへ明示すべき文を対応付けた複数の固定対話ノードを蓄積し、第１の固定対話ノードから第２の固定対話ノードへシナリオとして結び付けた対話シナリオ蓄積部と、
前記固定対話ノード同士の間に挿入可能な複数の動的対話ノードを蓄積する動的対話ノード蓄積部と
を有し、
前記動的対話ノードの質問行動ａに対するユーザからの回答状態ｓに応じた報酬期待値ｒ(ｓ,ａ)を累積的に蓄積する第１のステップと、
固定対話ノードのシナリオ進行の間で、前記報酬期待値ｒ(ｓ,ａ)に基づいて、報酬Ｖtが最大となるように次に動的対話ノードの挿入行動を制御する第２のステップと
を有することを特徴とする対話方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対話シナリオを用いてユーザと対話する対話システムの技術に関する。
【背景技術】
【０００２】
人間に対して自然な対話を実現した対話システムが、特にスマートフォンやタブレット端末で一般的に普及しつつある。その中でも、事前に設定された固定的な対話シナリオに従って、ユーザとの間で交互に対話プロセスを進めて、ユーザから必要な情報を取得する技術がある。特に、対話シナリオにおけるユーザの回答に応じて、適切な対話ノードの質問をする技術が必要となる（例えば特許文献１参照）。この技術によれば、対話ノードを大量に用意し、現在の対話ノードに対して遷移確率が最大となる対話ノードへ遷移することによって、自然な対話を進めることができる。遷移確率は、過去の判別結果も考慮されて更新されていく。そのために、システム管理者が固定的な対話シナリオを作成する手間が少なくなる。
【０００３】
また、ユーザとの対話進行に応じて、ユーザの知識情報及び嗜好情報の両方を考慮した対話状態モデルを自動的に更新する技術もある（例えば特許文献２参照）。この技術によれば、対話状態モデルを機械学習によって最適化することによって、ユーザに対して適切な質問をし、良好な意思を取得することができる。この機械学習によれば、文毎の重みベクトルを自動的に構築する。
【０００４】
更に、事前に収集された対話シミュレーションの実験や大量のユーザモニタ操作実験によって蓄積された行動系列データ（学習データ）を機械学習に適用し、対話システムに対するユーザの使用の習熟度（経験的対応レベル）を推定する技術もある（例えば非特許文献１参照）。この技術によれば、ユーザの対応レベルに応じて、対話遷移の推移確率を最尤化する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１９８６１４号公報
【特許文献２】特開２０１２−０３８２８７号公報
【非特許文献】
【０００６】
【非特許文献１】「バス運行情報案内システムにおけるユーザモデルを用いた適応的応答の生成」、[online]、［平成２５年１１月１日検索］、インターネット＜http://www.ipsj.or.jp/award/9faeag0000004f4v-att/LF_2.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
固定的なシナリオで対話を進行させる対話システムの場合、長期間の利用によってユーザが飽きやすいという問題がある。そのような問題に対しては、対話システムの運用者が、対話シナリオの分岐やセリフのバリエーションを増やすことが必要となり、人手がかかることとなる。
【０００８】
これに対し、固定的な対話ノードの進行の間に、特許文献１に基づく遷移確率が最大となる動的な対話ノードを挿入することもできる。動的な対話ノードとしては、ユーザの個人情報を取得するべく、例えば、ユーザの趣味や嗜好などプロフィール情報を収集するための会話や、ユーザが興味ありそうな情報提供する会話を挿入する。これによって、固定的な対話シナリオが部分的に且つ自動的に修正され、対話のバリエーションを増やす手間も少なくなる。
【０００９】
しかしながら、特許文献１に記載の技術によれば、固定対話ノードから、遷移確率の高い動的対話ノードへ移行したとしても、その移行の全てが確率モデルに依存するために、対話シナリオの部分的な修正が難しいという問題がある。
【００１０】
また、特許文献２に記載の技術によれば、対話内容に対するユーザの知識や嗜好を考慮しているが、ユーザの対話習慣までを考慮したものではない。例えば対話システムからのユーザの嗜好に対する質問であっても、直ぐに返答する人、全く返答しない人、何回か質問することによって返答する人、など様々である。
【００１１】
更に、非特許文献１に記載の技術によれば、既存の１つのオフライン機械学習技術を適用した場合、多様なユーザの特性に合わせて学習データを構築することはできず、各ユーザの特性をカバーすることまではできない。特に、事前に集めた学習データでは、ユーザの対話習慣を代表するデータが十分得られていない。そのために、その学習モデルでは、ユーザがネガティブな回答をした場合に、直ぐに固定シナリオの次の固定対話ノードの質問をしようとする。
【００１２】
図１は、固定対話ノードのシナリオ進行を表す説明図である。
【００１３】
図１によれば、予め固定的に設定されたシナリオで進行しているだけである。
（システム：固定）「何かありますか？」
（ユーザ）        「ラーメン特集のテレビ番組の録画を予約して！」
（システム）      「了解です。」
（システム：固定）「予約スペースが足りません。＊＊＊を削除してもいいですか？」
（ユーザ）        「削除して！」
（システム）      「了解です。」
この例によれば、ユーザの要求を受け付ける固定対話ノードと、録画要求に対してメモリを空けるための固定対話ノードとが、連続して実行されている。
【００１４】
図２は、固定対話ノードの間に動的対話ノードを挿入したシナリオ進行を表す説明図である。
【００１５】
図２によれば、図１と比較して、多数の動的対話ノードを蓄積しており、ユーザの回答に応じた適切な動的対話ノードを、固定対話ノードの間に自動的に挿入している。
（システム：固定）「何かありますか？」
（ユーザ）        「ラーメン特集のテレビ番組の録画を予約して！」
（システム）      「了解です。」
（システム：動的）「ラーメンは好きですか？」
（ユーザ）        「・・・・・」
（システム）      「・・・・・」
（システム：固定）「予約スペースが足りません。＊＊＊を削除してもいいですか？」
（ユーザ）        「削除して！」
（システム）      「了解です。」
【００１６】
図２によれば、動的対話ノードとして「ラーメンは好きですか？」と質問することによって、ユーザがラーメンを好きか否かの回答を得ようとしている。しかしながら、ユーザが何も返答しなければ、それ以上、動的対話ノードを進行させることができない。即ち、ユーザがネガティブが回答をした場合、それ以上、動的対話ノードを進行させることは、ユーザに不快な思いをさせるためである。結局、次の固定対話ノードにおける質問をするだけである。
【００１７】
しかしながら、発明者らは、ユーザ毎の対話習慣の違いによっては、全く回答しないユーザだけでなく、必ず回答するユーザや、更に動的対話ノードの質問をすることによって回答をするユーザも存在するのではないか？と考えた。
【００１８】
そこで、本発明は、できる限り自然な対話の中で、ユーザ毎の対話習慣に応じて、固定的な対話ノードの間における動的対話ノードの挿入行動を制御することができる対話プログラム、サーバ及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１９】
本発明によれば、ユーザと対話的にシナリオを進行するようにコンピュータを機能させる対話プログラムであって、
ユーザへ明示すべき文を対応付けた複数の固定対話ノードを蓄積し、第１の固定対話ノードから第２の固定対話ノードへシナリオとして結び付けた対話シナリオ蓄積手段と、
固定対話ノード同士の間に挿入可能な複数の動的対話ノードを蓄積する動的対話ノード蓄積手段と、
動的対話ノードの質問行動ａに対するユーザからの回答状態ｓに応じた報酬期待値ｒ(ｓ,ａ)を累積的に蓄積する報酬期待値蓄積手段と、
固定対話ノードのシナリオ進行の間で、報酬期待値ｒ(ｓ,ａ)に基づいて、報酬Ｖtが最大となるように次に動的対話ノードの挿入行動を制御する動的対話ノード選択手段と
してコンピュータを機能させることを特徴とする。
【００２０】
本発明の対話プログラムにおける他の実施形態によれば、
対話シナリオ蓄積手段及び動的対話ノード蓄積手段は、一体的に構成されており、
先の対話ノードと後の対話ノードと間の遷移確率が、所定閾値以上の場合、後の対話ノードは固定対話ノードとし、所定閾値よりも低い場合、後の対話ノードは動的対話ノードとするようにコンピュータを機能させることも好ましい。
【００２１】
本発明の対話プログラムにおける他の実施形態によれば、
報酬期待値蓄積手段は、動的対話ノードの質問文に対するユーザの回答の内容が、ポジティブの場合にプラス所定値を導出し、ネガティブの場合にマイナス所定値を導出する
ようにコンピュータを機能させることも好ましい。
【００２２】
本発明の対話プログラムにおける他の実施形態によれば、
動的対話ノード選択手段は、マルコフ決定ＭＤＰ(Markov Decision Process)を用いて、報酬Ｖtが最大となるように回答状態ｓに対する質問行動ａを決定するようにコンピュータを機能させることも好ましい。
【００２３】
本発明の対話プログラムにおける他の実施形態によれば、
マルコフ決定ＭＤＰのモデルの最適化学習に、Q-learningのＱ値を用いることも好ましい。
【００２４】
本発明によれば、ユーザ操作に基づく端末との間で、対話的にシナリオを進行する対話サーバであって、
ユーザへ明示すべき文を対応付けた複数の固定対話ノードを蓄積し、第１の固定対話ノードから第２の固定対話ノードへシナリオとして結び付けた対話シナリオ蓄積手段と、
固定対話ノード同士の間に挿入可能な複数の動的対話ノードを蓄積する動的対話ノード蓄積手段と、
動的対話ノードの質問行動ａに対するユーザからの回答状態ｓに応じた報酬期待値ｒ(ｓ,ａ)を累積的に蓄積する報酬期待値蓄積手段と、
固定対話ノードのシナリオ進行の間で、報酬期待値ｒ(ｓ,ａ)に基づいて、報酬Ｖtが最大となるように次に動的対話ノードの挿入行動を制御する動的対話ノード選択手段と
を有することを特徴とする。
【００２５】
本発明によれば、装置を用いて、ユーザと対話的にシナリオを進行する対話方法であって、
ユーザへ明示すべき文を対応付けた複数の固定対話ノードを蓄積し、第１の固定対話ノードから第２の固定対話ノードへシナリオとして結び付けた対話シナリオ蓄積部と、
固定対話ノード同士の間に挿入可能な複数の動的対話ノードを蓄積する動的対話ノード蓄積部と
を有し、
動的対話ノードの質問行動ａに対するユーザからの回答状態ｓに応じた報酬期待値ｒ(ｓ,ａ)を累積的に蓄積する第１のステップと、
固定対話ノードのシナリオ進行の間で、報酬期待値ｒ(ｓ,ａ)に基づいて、報酬Ｖtが最大となるように次に動的対話ノードの挿入行動を制御する第２のステップと
を有することを特徴とする。
【発明の効果】
【００２６】
本発明の対話プログラム、サーバ及び方法によれば、できる限り自然な対話の中で、ユーザ毎の対話習慣に応じて、固定的な対話ノードの間に動的対話ノードの挿入行動を制御することができる。
【図面の簡単な説明】
【００２７】
【図１】固定対話ノードのシナリオ進行を表す説明図である。
【図２】固定対話ノードの間に動的対話ノードを挿入したシナリオ進行を表す説明図である。
【図３】本発明における対話システムの構成図である。
【図４】本発明における報酬期待値蓄積部の状態遷移図である。
【図５】本発明におけるシナリオ進行を表す説明図である。
【発明を実施するための形態】
【００２８】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【００２９】
図３は、本発明における対話システムの構成図である。
【００３０】
図３によれば、対話サーバモジュールプログラム１と、端末モジュールプログラム２とから構成されている。例えば、対話サーバモジュールプログラム１は、ユーザと対話的にシナリオを進行するものであって、例えばサーバによって実行される。一方で、端末モジュールプログラム２は、スマートフォンやタブレット端末によって実行されるものであって、ネットワークを介してサーバと通信する。対話サーバモジュールプログラム１は、端末２を通じて、ユーザと対話する。尚、両モジュールプログラム１及び２が、単体装置の１つのコンピュータによって一体的に実行されるものであってもよい。本発明によれば、サーバモジュールプログラムと端末モジュールプログラムとそれぞれが実行されるべき対象装置が、特定されるものではない。
【００３１】
端末モジュールプログラム２は、ユーザに対する入力デバイス及び出力デバイスを有する。入力デバイスがマイクである場合、入力音声処理部は、マイクによって取得された音声信号を回答文に変換し、その回答文を対話サーバモジュールプログラム１へ送信する。また、出力デバイスがスピーカである場合、対話サーバモジュールプログラム１から受信した回答文を音声信号に変換し、その音声信号がスピーカから出力される。
【００３２】
図３によれば、対話サーバモジュールプログラム１は、対話シナリオ蓄積部１０と、動的対話ノード蓄積部１１と、動的対話ノード選択部１２と、対話シナリオ進行部１３と、質問文送信部１４と、回答文受信部１５と、報酬期待値蓄積部１６と、挿入判定部１７とを有する。尚、質問文送信部１４は、対話シナリオ進行部１３に基づくユーザへの質問文を、端末モジュールプログラム２へ送信する。また、回答文受信部１５は、端末モジュールプログラム２から、ユーザからの回答文を受信する。
【００３３】
［対話シナリオ蓄積部１０］
対話シナリオ蓄積部１０は、ユーザへ明示すべき文を対応付けた複数の固定対話ノードを蓄積し、第１の固定対話ノードから第２の固定対話ノードへシナリオとして結び付けている。「対話シナリオ」とは、質問及び回答からなる対話ノードをツリー状に構成したものである。
【００３４】
［動的対話ノード蓄積部１１］
動的対話ノード蓄積部１１は、対話ノード同士の間に挿入可能な複数の動的対話ノードを蓄積する。動的対話ノードも、固定対話ノードと構造としては同じであるが、対話ノード同士が予め結び付いているものではない。
【００３５】
本発明によれば、固定対話ノードと動的対話ノードとを明確に区別して説明している。
「固定対話ノード」とは、何らかの達成したいタスク（目的）があるタスク指向型の対話ノードである。事前の対話経験やシステムに関するノウハウに基づいて予め設計されたものであって、対話ノード間の遷移が固定となる。即ち、対話ノード間の遷移は、編集（挿入や削除）作業のような人手を要する。
「動的対話ノード」とは、具体的なタスクを持たず、雑談のような対話ノード（又はノード群）であり、他の動的対話ノードへの遷移は前後の遷移確率によって決定される。この遷移確率は、機械学習によって、自動的に更新される。
【００３６】
ここで、固定か又は動的かの区別を、対話ノード間の遷移確率の高さによって判定することもできる。即ち、対話シナリオ蓄積部１０及び動的対話ノード蓄積１１を、一体的に構成する。その上で、先の対話ノードと後の対話ノードと間の遷移確率が、所定閾値以上の場合、後の対話ノードは固定対話ノードとし、所定閾値よりも低い場合、後の対話ノードは動的対話ノードとする。
【００３７】
尚、固定対話ノード及び動的対話ノードの各々は、ユーザへの質問に対する複数の回答によって短い対話シナリオを構成している。従って、１つのノードの中でも、質問と回答とがツリー状に対話シナリオとして構成されている。
【００３８】
［動的対話ノード選択部１２］
動的対話ノード選択部１２は、動的対話ノードの選択と、動的対話ノードの挿入行動制御との２つの機能を有する。尚、動的対話ノードの挿入行動制御については、以下の報酬期待値蓄積部１６に後述する。
【００３９】
＜動的対話ノードの選択＞（動的対話ノード選択部１２）
動的対話ノード選択部１２は、動的対話ノード蓄積部１１から、固定対話ノードの文に対して類似確率Ｐが高い動的対話ノードを検索する。類似確率Ｐとしては、例えば、固定対話ノードの文と動的対話ノードの文との間の「コサイン距離」に基づくものであってもよい。
【００４０】
各文は、形態素に区分された後、対話コーパスにおける出現頻度が高い重要語（名詞）を蓄積した重要語辞書を用いて、重要語が検出される。勿論、あえて重要語として検出することなく、形態素の名詞を全て、コサイン距離を算出するための要素としてもよい。コサイン距離は、各文の中から抽出された重要語及びその名詞種別に応じて算出される。例えば以下のような概念式で算出される。
固定対話ノードの文の重要語の特徴ベクトル：Ｄ
動的対話ノードの文の重要語の特徴ベクトル：Ｅ
２つの文の類似度：sim(Ｄ,Ｅ)
sim(Ｄ,Ｅ)＝cosθ＝（Ｄ・Ｅ）／(|Ｄ||Ｅ|)
【００４１】
コサイン距離は、同じ単語同士である場合には類似度重みを１とし、同じカテゴリ同士である場合には類似度重みを１に近い値を設定する。回答「ラーメン特集のテレビ番組の録画を予約して！」に対して、単語「ラーメン」によって、動的対話ノード「ラーメンは好きですか？」の文同士の間のコサイン距離が、最も短く（高い値と）なる。
【００４２】
［対話シナリオ進行部１３］
対話シナリオ進行部１３は、第１の固定対話ノードから、選択された動的対話ノードを挿入し、第２の固定対話ノードへシナリオを進行する。ここで、動的対話ノードの挿入行動制御は、挿入判定部１７からの制御に基づく。
【００４３】
［報酬期待値蓄積部１６］
報酬期待値蓄積部１６は、動的対話ノードの質問行動ａに対するユーザからの回答状態ｓに応じた報酬期待値ｒ(ｓ,ａ)を累積的に蓄積する。報酬期待値ｒ(ｓ,ａ)とは、状態ｓで行動ａを実行した際に得られる報酬の「見込み」を表す。
【００４４】
図４は、本発明における報酬期待値蓄積部の状態遷移図である。
【００４５】
図４によれば、４つの質問行動ａに対する４つの回答状態ｓからなる状態遷移が表されている。
＜質問行動＞
（質問行動ａ１）別の動的対話ノードの質問をする
（質問行動ａ２）前の動的対話ノードの質問を繰り返す
（質問行動ａ３）待機
（質問行動ａ４）次の固定対話ノードの質問をする
＜回答状態＞
（回答状態ｓ１）固定対話ノードの質問に対して回答される
（回答状態ｓ２）動的対話ノードの質問に対してネガティブに回答される
このとき、当該状態ｓ２へ移行してきた先の状態ｓから行動ａについて
報酬期待値ｒ(ｓ,ａ)を−１ポイントとする
（回答状態ｓ３）動的対話ノードの質問に対してポジティブに回答される
このとき、当該状態ｓ３へ移行してきた先の状態ｓから行動ａについて
報酬期待値ｒ(ｓ,ａ)を＋１ポイントとする
（回答状態ｓ４）動的対話ノードを挿入せず、次の固定対話ノードの質問に回答される
（回答状態ｓ５）対話を中止される
このとき、当該状態ｓ５へ移行してきた先の状態ｓから行動ａについて
報酬期待値ｒ(ｓ,ａ)を−２ポイントとする
【００４６】
図４の状態遷移図を所定回数以上繰り返すことによって、状態ｓに対する行動ａに基づく報酬期待値が累積的にカウントされていき、ユーザ毎の対話習慣が蓄積されていく。
【００４７】
報酬期待値蓄積部１６は、動的対話ノードの質問文に対するユーザの回答の内容に応じて、報酬期待値ｒへの加算値を導出する。
ポジティブの場合->プラス所定値  （図４のＳ３によれば＋１ポイント）
ネガティブの場合->マイナス所定値（図４のＳ２によれば−１ポイント）
回答内容の判定について、ネガティブ（否定的）の意味属性が対応付けられた評価極性辞書を用いることが好ましい。回答内容に、ネガティブな評価極性単語が含まれている場合、ネガティブと判定する。
（回答）        （意味属性）
・・・・・・      ネガティブ
もういいよ        ネガティブ
今、忙しい        ネガティブ
これによって、ある時間で実行した対話ノードが、その後の報酬獲得にどの程度貢献したのかを評価することができる。
【００４８】
＜動的対話ノードの挿入行動制御＞（動的対話ノード選択部１２）
動的対話ノード選択部１２は、固定対話ノードのシナリオ進行の間で、ユーザ毎の対話習慣を表す報酬期待値ｒ(ｓ,ａ)に基づいて、報酬Ｖtが最大となるように次に動的対話ノードの挿入行動を制御する。動的対話ノード選択部１２は、強化学習(Reinforcement Learning)、基本的には、マルコフ決定ＭＤＰ(Markov Decision Process)（又は、ＰＯＭＤＰ（部分観測マルコフ決定過程）やその他のＭＤＰの拡張モデル）を用いて、報酬Ｖtが最大となるように回答状態ｓに対する質問行動ａを決定する。
【００４９】
マルコフ決定ＭＤＰによれば、最初に、状態遷移確率Ｐ(ｓ'｜ｓ,ａ)を用いて、時刻ｔにおける確率分布ｂt(ｓ)を算出する。
ｂt(ｓ')＝ηΣsＰ(ｓ'|ｓ,ａ)ｂt-1(ｓ)                            式（１）
η：ｂtの総和を１にするための正規化定数
状態遷移確率Ｐ(ｓ'｜ｓ,ａ)：
状態ｓから、行動ａを実行した後、状態ｓ'へ移行する確率を表す。
次に、報酬期待値ｒ(ｓ,ａ)と確率分布ｂt(ｓ)とを用いて、報酬Ｖtを算出する。
Ｖt＝Σr=0∞γrΣsｂγ+t(ｓ)γ(ｓ,ａγ+t)                        式（２）
γ：１より小さい正定数
結果的に、報酬Ｖtが最大となるように、状態ｓにおける行動ａを決定する。
【００５０】
マルコフ決定ＭＤＰモデルを用いることによって、動的対話ノード選択部１２は、ユーザの対話習慣の状態遷移確率や報酬の与えられ方についての知識を予め持つことなく、動的対話ノードの質問文に対してユーザがポジティブに回答することを最大化するように制御方策が学習される。
【００５１】
ＭＤＰモデルの最適化学習については、オンライン学習技術（例えばQ-learning）を用いることも好ましい。Q-learningによれば、有限マルコフ決定過程について全ての状態が十分にサンプリングできるようなイベントを無限回試行した場合、最適な評価値に収束する。Q-learningを用いて、最適なAction-Value関数によってＱ(ｓ,ａ)を算出する。Ｑ(ｓ,ａ)は、Ｓ×Ａ個のエントリを持つ２次元配列変数である。
Ｑ(ｓ,ａ)＝max π Ｑπ(ｓ,ａ)、 for all ｓ∈Ｓ and ａ∈Ａ
Ｑ(ｓ,ａ)は、Ｑ値と称され、状態ｓについて最大のＱ値を持つ行動ａが最適な行動となる。Q-learningのオンライン学習を用いることによって、モデルにおける状態及び行動をセットにして評価することができ、行動に対して直接的に評価することができる。
【００５２】
システムによれば、Ｑ(ｓ,ａ)を、回答に応じて、以下のように更新する。
（１）状態ｓを取得する。
（２）行動選択法（ボルツマン行動選択戦略）に従って行動ａtを実行する。
Ｐ(ａi)＝exp(Ｑ(ｓ,ａi)/Ｔ)／Σj=1DNexp(Ｑ(ｓ,ａj)/Ｔ)
Ｔ：正の定数
DN：状態ｓで可能な行動ａの集合
（３）報酬ｒtを取得する。
（４）状態遷移後の状態観測ｓt+1を取得する。
（５）Ｑ値を更新する。
Ｑ(ｓ,ａi)←Ｑ(ｓ,ａi)＋α(ｒ＋γmaxαＱ(ｓ',ａ)−Ｑ(ｓ,ａi))
α：学習率
γ：割引率（0≦γ≦1）
ｒ：状態ｓへ遷移したときに得た報酬
この更新式は、現在の状態ｓtから次の状態ｓt+1へ遷移したとき、そのＱ値を次の状態で最もＱ値の高い状態の値に近づけることを意味している。これによって、ある状態で高い報酬を得た場合は、その状態に到達することが可能な状態にもその報酬が更新毎に伝播することになる。これにより、最適な状態遷移の学習が行われる。
（６）時間ステップtを、t+1へ進めて手順１へ戻る。
Ｑ(ｓ,ａ)＝1/ＴsＴa・Σj=12TsΣk=12TaＦj(ｓ)Ｇk(ａ)ｗjk
【００５３】
図５は、本発明におけるシナリオ進行を表す説明図である。
【００５４】
図５によれば、図２と比較して、多数の動的対話ノードを蓄積しており、ユーザの回答に応じた適切な動的対話ノードを、固定対話ノードの間に自動的に挿入している。
（システム：固定）「何かありますか？」
（ユーザ）        「ラーメン特集のテレビ番組の録画を予約して！」
（システム）      「了解です。」
（システム：動的）「ラーメンは好きですか？」
（ユーザ）        「・・・・・」
（システム）      「・・・・・」
（システム：動的）「ラーメンは好きですか？教えてよ」
（ユーザ）        「別に好きだけど」
（システム）      「ありがとう」
（システム：固定）予約スペースが足りません。＊＊＊を削除してもいいですか？」
（ユーザ）        「削除して！」
（システム）      「了解です。」
【００５５】
この例によれば、当該ユーザに対しては、動的対話ノードに対して一度ネガティブに回答したとしても、更に動的対話ノードを繰り返すことによってポジティブな回答をする対話習慣があったとする。この場合、固定対話ノードの間に挿入された動的対話ノードの質問に対してネガティブな回答がされたとしても、もう一度、動的対話ノードの質問を繰り返すことによってユーザからポジティブな回答を得ようとする。
【００５６】
本発明によれば、ユーザ毎の対話習慣によっては、１回のネガティブな回答によって次に動的対話ノードを挿入しないようにした方がいい場合もあれば、最初はネガティブな回答であっても動的対話ノードの質問を繰り返すことによってポジティブな回答が得られる場合もある。このようなユーザ毎の対話習慣に応じて、動的対話ノードの挿入行動を制御することができる。
【００５７】
以上、詳細に説明したように、本発明の対話プログラム、サーバ及び方法によれば、できる限り自然な対話の中で、ユーザ毎の対話習慣に応じて、固定的な対話ノードの間に動的対話ノードの挿入行動を制御することができる。
【００５８】
尚、本発明は、ユーザ操作に基づく端末のディスプレイに「キャラクタ・エージェント」を表示し、ユーザとエージェントとが音声による対話を進める、音声対話システムに適する。勿論、本発明は、音声対話に限定されるものではなく、テキスト対話であってもよい。
【００５９】
前述した本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
【符号の説明】
【００６０】
１  対話サーバモジュールプログラム
１０  対話シナリオ蓄積部
１１  動的対話ノード蓄積部
１２  動的対話ノード選択部
１３  対話シナリオ進行部
１４  質問文送信部
１５  回答文受信部
１６  報酬期待値蓄積部
２  端末モジュールプログラム
【図１】
2015125198.tif 000003
【図２】
2015125198.tif 000004
【図３】
2015125198.tif 000005
【図４】
2015125198.tif 000006
【図５】
2015125198.tif 000007