(本発明の基礎となった知見)
ユーザが求めるコンテンツ(音楽、商品情報など)などの検索又は提案を、対話により行う対話システムが提案されている。このような対話システムは、通常、検索又は提案の対象となるコンテンツを多数保持している。そして、対話システムがユーザからコンテンツを絞り込むための情報を対話により徐々に獲得することで、ユーザの要望に合致するコンテンツの候補を絞り込んでいく。絞り込まれた候補は、例えば、その候補の個数が一定数を下回った場合に、画面に候補の一覧としてユーザに提示される。ユーザは、提示された候補を確認して、所望の候補を選択することができる。
ここで、候補を提示するタイミングに関しては、候補の個数が一定数を下回ることを判断基準にすることが適切であるとは必ずしも言えない。候補が提示されるまでに繰り返される対話の回数が、ユーザが意図した回数より多くなると、検索又は提案の結果がなかなか提示されないことに対するユーザの不満が高まるからである。一方、候補が提示されるまでに繰り返される対話の回数が、ユーザが意図した回数より少ないと、多くの条件を入れて候補の十分な絞り込みができなかったことに対するユーザの不満が高まるからである。このように、対話の過程で、どのようなタイミングで(どれぐらい早く又は遅く)絞り込まれた候補の一覧を閲覧したいのかは、ユーザによっても異なると考えられる。
前述した従来技術による絞り込み結果の提示の制御方法は、騒音による音声認識の誤り率(つまり、ユーザの実際の発話の内容と、対話システムが認識した発話の内容とが一致しない確率)、絞り込み結果を表示する画面のサイズの大小、及び、対話の繰り返し回数に対するユーザの寛容さ、といった3つのパラメータから計算される報酬関数を用いる。そして、当該制御方法は、報酬関数により算出される報酬が、強化学習により対話の中で最大になるように、質問を行うか、一覧を提示するかの判断を繰り返す。つまり、当該制御方法では、結果を提示するかどうかについて所定の候補数のしきい値を設定して制御しているわけではなく、上記3つのパラメータで設定される対話が行われる状況を、報酬関数として統合的に評価することで、絞り込み結果の一覧を表示するタイミングを動的に決定している。
しかしながら、この従来技術では、ユーザの対話の繰り返し回数に対する寛容さのパラメータが既知であるという前提でタイミングの制御を行っている。そのため、このパラメータが分からない状況では適切にタイミングを制御することができないという問題を有している。言い換えれば、この従来技術では、候補の一覧の提示のタイミング制御が適切になされるためには、当該ユーザの寛容さなどのパラメータがあらかじめ分かっていることが必要であるという問題がある。
そこで、上記特性に関する情報がない場合でも、候補の一覧の提示のタイミングをより適切に制御する情報処理方法などを提供することを目的とする。
このような問題を解決するために、本発明の一態様に係る情報処理方法は、格納部に格納されている情報に関する情報処理方法であって、ユーザへの質問と、当該質問に対する前記ユーザによる応答とを含む対話の履歴を保持し、保持している前記対話の履歴に含まれる前記応答の履歴における、前記質問に対する肯定を示す第一応答、及び、前記質問に対する否定を示す第二応答のいずれでもない第三応答の出現の態様が、所定の条件を満たすか否かを判定し、前記所定の条件を満たすと判定した場合に、前記格納部に格納されている前記情報に関する提示をする。
上記態様によれば、情報処理方法は、ユーザとの対話における、ユーザの発話の内容から候補の一覧を提示するタイミングを制御する。肯定応答でも否定応答でもない第三応答は、ユーザが明確な絞り込みの条件を提供しない意思の表れであるとも考えられる。そのため、第三応答の出現の態様が、ユーザがコンテンツ候補の一覧を見たいか否かの判断基準となり得る。これにより、あらかじめユーザが絞り込んだコンテンツ候補の一覧を早く見たいのかどうか(つまり、上記の「寛容さ」)が分からない場合であっても、ユーザの発話の内容からユーザの意図を推定することにより、絞り込まれたコンテンツ候補の一覧を提示するタイミングを制御することができる。
この情報処理方法は、多数のコンテンツの中からユーザの意図に沿ったものを対話により絞り込んで提示する対話システムのアプリケーションへ応用され得る。特にユーザがコンテンツを絞り込むための情報をそれほど明確に言語化していない場合に、対話システムから適切なタイミングで候補を提示してユーザに選択させる、というアプリケーションに利用可能である。
例えば、前記所定の条件は、前記応答の履歴において、前記第三応答が所定回数連続して出現することである。
上記態様によれば、情報処理方法は、第三応答が所定回数連続して出現するという条件を用いて、より具体的に情報処理方法を実現し、候補の一覧の提示のタイミングをより適切に制御することができる。
例えば、前記所定の条件は、前記応答の履歴において、前記第三応答が累積して所定回数出現することである。
上記態様によれば、情報処理方法は、第三応答が累積して所定回数出現するという条件を用いて、より具体的に情報処理方法を実現し、候補の一覧の提示のタイミングをより適切に制御することができる。
例えば、前記提示の際には、前記格納部に格納されている前記情報の少なくとも一部を提示する。
上記態様によれば、情報処理方法は、意図推定に基づいて、絞り込んだコンテンツ候補の一覧をユーザに閲覧させることができる。このようにして、ユーザの発話の内容からユーザの意図を推定することにより、絞り込まれたコンテンツ候補の一覧を提示するタイミングを制御することができる。
例えば、前記提示の際には、前記格納部に格納されている前記情報の少なくとも一部を提示するか否かについての前記ユーザに対する質問を提示する。
上記態様によれば、情報処理方法は、意図推定に基づいて、絞り込んだコンテンツ候補の一覧をユーザに閲覧させるか否かの質問を提示することができる。意図推定に基づいたタイミングの制御では、ユーザが実際に意図しているタイミングと異なるタイミングでコンテンツ候補の一覧を提示しようとしてしまうことが生じる。そのため、上記の質問によりユーザの実際の意図を確認することで、ユーザの意図に反してコンテンツ候補の一覧を提示することを抑制することができる。
例えば、前記提示の際には、前記質問に対して前記ユーザによる肯定応答を得た場合に、前記格納部に格納されている前記情報の少なくとも一部を提示する。
上記態様によれば、情報処理方法は、コンテンツ候補の一覧の提示に関して、ユーザの実際の意図と合致していることを確認した上で、コンテンツ候補の一覧を提示してユーザに閲覧させることができる。
例えば、前記情報処理方法では、さらに、前記対話に含まれる前記応答を用いて、前記格納部に格納されている情報を絞り込む処理を行い、前記提示の際には、前記処理が行われた後に前記格納部に格納されている前記情報に関する前記提示をする。
上記態様によれば、情報処理方法は、対話のインタフェースによって格納部に格納されている情報を絞り込み、絞り込んだ情報をユーザに提示することができる。これにより、ユーザは、検索エンジンなどによって情報を検索するのと異なり、対話による逐次的な情報入力に基づいて情報の検索を行い、また、対話システムからの提案を受けることができる。
例えば、前記情報処理方法では、さらに、前記応答の履歴に1以上の前記第三応答だけが含まれていると判定した場合に、予め定められた情報を用いて、前記格納部に格納されている情報を絞り込む処理を行い、前記提示の際には、前記処理が行われた後に前記格納部に格納されている前記情報に関する前記提示をする。
上記態様によれば、情報処理方法は、絞り込み条件が1つもない場合、格納部に格納された全ての情報、つまり絞り込みが一切なされていない情報を一覧として表示することを回避することができる。
例えば、前記質問は、前記第一応答と、前記第二応答と、前記第三応答とのいずれかの応答を前記ユーザにさせるためのクローズ質問である。
上記態様によれば、情報処理方法は、選択肢を提供して回答を選択させるクローズ質問と、その回答により構成される対話に基づいて、より具体的に検索及び提案を行うことができる。
例えば、前記格納部には、前記情報として、それぞれが料理メニューを示す複数の情報が格納されており、前記対話は、前記ユーザへの料理メニューの検索に関する質問と、当該質問に対する前記ユーザによる前記応答とを含む。
上記態様によれば、情報処理方法は、料理メニューを示す情報の絞り込みを用いて、料理メニューの検索又は提案を、ユーザに提供することができる。
例えば、前記格納部には、前記情報として、それぞれが作家を示す複数の情報が格納されており、前記対話は、前記ユーザへの作家の検索に関する質問と、当該質問に対する前記ユーザによる前記応答とを含む。
上記態様によれば、情報処理方法は、作家を示す情報の絞り込みを用いて、作家の検索又は提案を、ユーザに提供することができる。
また、本発明の一態様に係る情報処理方法は、ユーザの端末を介したチャット形式による前記ユーザとの対話を用いた、前記ユーザの好むメニューに関する情報処理方法であって、前記端末に備えられたディスプレイに、データベースに基づいて、前記メニューに対するリクエストを尋ねる第一質問を吹き出し型に表示させ、前記データベースは、複数のメニューと前記複数のメニューそれぞれの分類を示す分類情報とを対応付け、前記分類情報は、前記メニューの温冷、前記メニューのジャンル、前記メニューのカテゴリ、前記メニューの調理法、前記メニューに用いられる食材を含み、前記第一質問は、前記メニューに対して、前記データベースに含まれる第一分類をリクエストするか否かを尋ね、前記端末を通して、前記ユーザによって入力された前記第一質問に対する第一回答を受信し、前記第一回答に、前記第一分類を肯定する語句が含まれていると判断された場合は、前記ディスプレイに、前記データベースに基づいて、前記第一分類に対応する第一メニューに対応する第二分類をリクエストするかを尋ねる第二質問を吹き出し型に表示させ、前記第二分類は、前記第一分類とは異なり、前記端末を通して、前記ユーザによって入力された前記第二質問に対する第二回答を受信し、前記第二回答に、前記第二分類を肯定する語句も、前記第二分類を否定する語句も含まれていないと判断された場合、前記ディスプレイに、前記データベースに基づいて、前記第一メニューに対応する第三分類をリクエストするかを尋ねる第三質問を吹き出し型に表示させ、前記第三分類は、前記第一分類及び前記第二分類とは異なり、前記端末を通して、前記ユーザによって入力された前記第三質問に対する第三回答を受信し、(a)前記第三回答に、前記第三分類を肯定する語句が含まれていると判断された場合、前記第一メニューのうち前記第三分類に対応する第二メニューに対応する第四分類をリクエストするか否かを尋ねる第四質問を吹き出し型に表示させ、前記第四分類は、前記第一分類、前記第二分類および前記第三分類のいずれとも異なり、(b)前記第三回答に、前記第三分類を否定する語句が含まれていると判断された場合、前記第一メニューのうち前記第三分類に対応しない第三メニューに対応する第五分類をリクエストするか否かを尋ねる第五質問を吹き出し型に表示させ、前記第五分類は、前記第一分類、前記第二分類、前記第三分類および前記第四分類のいずれとも異なり、(c)前記第三回答に、前記第三分類を肯定する語句も、前記第三分類を否定する語句も含まれていないと判断された場合、前記ディスプレイに、前記第一メニューを示す情報を表示させてもよいかを尋ねる第五質問を吹き出し型に表示させ、前記端末を通して、前記ユーザによって入力された前記第五質問に対する第五回答を受信し、前記第五回答に、前記第一メニューを示す情報を表示させることを肯定する語句が含まれていると判断された場合、前記ディスプレイに前記第一メニューを示す情報を表示させる。
上記態様によれば、上記情報処理方法と同様の効果を奏する。
また、本発明の一態様に係る情報処理装置は、格納部に格納されている情報に関する情報処理を行うための情報処理装置であって、ユーザへの質問と、当該質問に対する前記ユーザによる応答とを含む対話の履歴を保持する対話履歴保持部と、保持している前記対話の履歴に含まれる前記応答の履歴における、前記質問に対する肯定を示す第一応答、及び、前記質問に対する否定を示す第二応答のいずれでもない第三応答の出現の態様が、所定の条件を満たすか否かを判定する対話管理部と、前記所定の条件を満たすと判定した場合に、前記格納部に格納されている前記情報に関する提示をする提示部とを備える。
上記態様によれば、上記情報処理方法と同様の効果を奏する。
また、本発明の一態様に係るプログラムは、上記の情報処理方法をコンピュータに実行させるためのプログラムである。
上記態様によれば、上記情報処理方法と同様の効果を奏する。
なお、これらの包括的または具体的な態様は、システム、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、装置、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
以下、実施の形態について、図面を参照しながら具体的に説明する。
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
(実施の形態)
本実施の形態において、候補の一覧の提示のタイミングをより適切に制御する対話システム1について説明する。なお、対話システム1は、情報処理装置に相当する。また、対話システム1の制御方法を、絞り込み結果提示制御方法又は情報処理方法ともいう。
図1は、本実施の形態に係る対話システム1の構成の一例を表すブロック図である。
図1に示されるように、本実施の形態に係る対話システム1は、入力部101と、表示部102と、言語理解部103と、対話管理部104と、応答生成部105と、コンテンツデータベース106と、絞り込み情報保持部107と、絞り込み処理部108と、対話履歴保持部109と、ユーザ意図推定部110と、候補一覧表示生成部111とを備える。
対話システム1は、コンテンツデータベース106が記憶しているコンテンツを、ユーザとの対話によって絞り込み、絞り込んだコンテンツをユーザに提示するシステムである。この対話は、例えば、チャット形式によるユーザとの対話であり、対話システム1は、ユーザの好む情報に関する情報処理を行うシステムである。
コンテンツデータベース106には、絞り込む対象となる複数のコンテンツが格納されているとする。コンテンツの一例は、料理メニューを示す情報(単に「料理メニュー」ということもある)であり、この場合を以降で説明するが、コンテンツは、この他にも、作家又は不動産を示す情報など、さまざまなものがあり得る。コンテンツデータベース106は、格納部に相当し、記憶装置及びデータベース管理システム等により実現され得る。
コンテンツデータベース106には、それぞれが料理メニューを示す複数の情報が格納されている。そして、対話システム1は、ユーザへの料理メニューの検索に関する質問と、当該質問に対するユーザによる応答とを含む対話を用いて、ユーザの所望の料理メニューを示す情報を提供する。
入力部101は、ユーザから対話システム1への発話を取得し、発話テキストに変換する。表示部102には、ユーザが入力部101から入力した発話テキスト、対話システム1からのユーザへの応答テキスト、ならびに、その他の応答情報がされる。入力部101は、プロセッサ及びメモリなどにより実現され得る。入力部101は、ユーザの発話を収音して音信号を取得するマイクを備えてもよいし、マイクを備えずに、外部のマイクが収音により生成した音信号を取得してもよい。また、入力部101は、取得した音信号に対する音声認識処理により発話テキストを得る。音声認識処理は公知の技術を採用し得る。
表示部102は、発話テキスト及び応答テキストなどを表示する。表示部102は、プロセッサ、メモリ及びディスプレイ(表示画面)などにより実現され得る。なお、表示部102は、ディスプレイに表示される画像として実現されてもよい。なお、表示部102は、提示部の一例である。また、対話システム1は、提示部の別の一例として、表示部102に代わりに、応答テキストなどを音声により出力する音声出力部を備えてもよい。
図2は、本実施の形態に係る入力部101及び表示部102の例を表す説明図である。図2に入力部101及び表示部102をディスプレイに表示されるGUI(グラフィカルインターフェース)として実現した画像の例を示す。
図2に示される画像201が入力部101に相当する。また、図2に示される画像202が表示部102に相当する。
ユーザは、入力部101としての画像201を操作して、入力欄201Aに発話テキストを入力し、送信ボタン201Bを操作することで、発話テキストの入力を完了する。なお、「操作」とは、押下、タッチ、タップ及びクリックなど、GUIに対する一般の操作をいう。
表示部102に相当する画像202には、ユーザが入力した発話テキスト、及び、対話システム1からの応答テキストが吹き出し型で表示される。図2には、対話システム1からの応答テキスト202A及び202B、及び、ユーザが入力した発話テキスト202Cが示されている。応答テキスト202A及び202Bは、画像202内の左側寄りに、上から下へ向かって時間経過の順に表示されている。発話テキスト202Cは、画像202内の右側寄りに、上から下へ向かって時間経過の順に表示されている。画像202内の下端まで応答テキスト202A及び202B、又は、発話テキスト202Cが表示された場合は、画像202が上向きにスクロールして、新たな応答テキスト、又は、発話テキストが画像202内に表示される。
言語理解部103は、入力部101から入力されたユーザの発話テキストを言語解析し、発話テキストから意味情報に変換する。言語理解部103は、プロセッサ及びメモリ等により実行される公知の言語解析処理により実現され得る。
図3は、本実施の形態に係る言語理解部103による発話テキストから意味情報への変換の例を示す説明図である。
言語理解部103は、同じ意味を有する発話テキストの表現を同じ意味情報へ変換する。
例えば、言語理解部103は、「それがいいです」及び「はい」のような、質問に対する肯定応答を示す発話テキストを「YES」という意味情報へ変換する。また、「それはいやです」及び「いいえ」のような、質問に対する否定応答を示す発話テキストを「NO」という意味情報へ変換する。また、「おまかせでいい」及び「どちらでもいい」のような、肯定応答でも否定応答でもない発話テキストを「NOT_CARE」という意味情報へ変換する。
言語理解部103の機能の実現には、さまざまな方式を採用し得る。例えば、あらかじめ想定する発話テキストのテーブルを作成して意味情報との対応を取るルールベースの方式、又は、機械学習により発話テキストに対して意味情報のラベル付を行う方式などがある。
対話管理部104は、言語理解部103で変換された意味情報を受取り、その意味情報の種類により、コンテンツの絞り込みの制御、対話履歴を参照した対話システム1の動作制御、及び、対話システム1の応答内容の決定の動作を行う。具体的には、対話管理部104は、対話履歴保持部109が保持している対話の履歴に含まれる応答の履歴における肯定応答及び否定応答のいずれでもない第三応答の出現の態様が、所定の条件を満たすか否かを判定する。対話管理部104は、応答内容として、選択肢を提供して回答を選択させるクローズ質問を決定する。対話管理部104は、プロセッサ、メモリ及び記憶装置等により実現され得る。
応答生成部105は、対話管理部104で決定した応答内容を応答テキストに変換する。対話管理部104が決定する応答内容は「Q,ジャンル(中華)」のような記号列であり、応答生成部105は、この応答内容を「中華風がいいですか?」という質問文を示す応答テキストに変換する。応答生成部105は、プロセッサ及びメモリ等により実現され得る。
対話管理部104は、ユーザの発話テキストの意味情報を受け取った時、及び、対話システム1からユーザへの応答内容(意味情報に相当)を決定した時に、これらの意味情報及び応答内容のそれぞれを対話履歴保持部109に記憶する。対話履歴保持部109は、ユーザへの質問と、当該質問に対する前記ユーザによる応答とを含む対話の履歴を保持する。対話履歴保持部109は、記憶装置により実現され得る。
図4は、本実施の形態に係る対話履歴保持部109に保持される対話履歴の一例を示す説明図である。
図4に示されるように、対話履歴はテーブル形式で記録され、各行が1つのユーザの発話、あるいは、対話システム1の応答を示している。
対話履歴の一番左の列は、対話に含まれる個々の発話及び応答の順序を表すID(又は番号)を示す情報である。IDは1から始まり、1つの履歴が追加される度にIDが1カウントアップされる。
対話履歴の左から二番目の列は、話者を示す情報であり、対話システム1からユーザへの応答の場合は「System」と記録され、ユーザから対話システム1への発話の場合は「User」と記録される。
対話履歴の左から三番目の列は、ユーザの発話の意味情報、もしくは、対話システム1の応答内容を示す情報である。
対話管理部104は、対話履歴保持部109に記録されている対話システム1の応答内容が「Q,ジャンル(中華)」のような質問形であり、かつ、それに対するユーザの発話(回答)が「YES」、「NO」及び「NOT_CARE」のいずれかであった場合、直前の応答内容である「ジャンル(中華)」を絞り込みキーとして扱う。この場合、対話管理部104は、その絞り込みキーに対して、「YES」、「NO」又は「NOT_CARE」という絞り込み条件が与えられたものとして扱う。そして、対話管理部104は、この絞り込みキーと絞り込み条件との組を絞り込み情報として絞り込み情報保持部107に格納する。絞り込み情報保持部107は、記憶装置により実現され得る。
図5は、本実施の形態に係る絞り込み情報保持部107に保持される絞り込み情報の例を示す説明図である。
絞り込み情報の一番左の列は、絞り込みキーであり、左から二番目の列が絞り込み条件である。対話管理部104は、対話システム1とユーザとの間での発話と応答、つまり対話のやりとりから、このような絞り込み情報を複数取得し、絞り込み情報保持部107に格納する。
対話管理部104は、絞り込み情報保持部107に格納されている絞り込み情報を用いて、絞り込み処理部108でコンテンツデータベース106に格納されている複数のコンテンツの絞り込み処理を行うように指示を行う。
図6は、本実施の形態に係るコンテンツデータベース106に格納されるコンテンツの例を示すコンテンツテーブルの説明図である。図6は、コンテンツが料理のメニューである場合のコンテンツテーブルの例である。なお、コンテンツデータベース106を単にデータベースともいう。
図6に示されるコンテンツテーブルの各行が1つのコンテンツの情報を表す。
コンテンツテーブルの一番左の列は、コンテンツを識別するためのコンテンツIDを示す情報である。コンテンツIDは、例えば、101、109というような数値であるが、アルファベット又は記号などを含んでもよい。
コンテンツテーブルの左から二番目の列は、コンテンツの名前を表すコンテンツ名を示す情報である。コンテンツ名は、例えば、酢豚、八宝菜などの文字列である。
コンテンツテーブルの左から三番目以降の列は、各コンテンツに割り当てられた絞り込みキーと絞り込み条件との組み合わせである絞り込み情報である。絞り込み情報は、各コンテンツの分類を示す分類情報に相当する。
例えば、図6に示されるコンテンツテーブルにおいて、「コンテンツID=101」のコンテンツは、コンテンツ名が「酢豚」であり、絞り込みキー及び絞り込み条件として、「温度(暖かい)=YES」、「ジャンル(中華)=YES」、「ジャンル(和風)=NO」等を含んでいる。なお、図6に示される絞り込み情報は一部であり、図6に示されていない種類の絞り込みキーと絞り込み条件とをさらに含んでもよい。
絞り込み処理部108は、対話管理部104の指示により、コンテンツデータベース106に格納されているコンテンツの絞り込み処理を行い、絞り込み結果を候補コンテンツとして保持する。絞り込み処理部108は、絞り込み情報保持部107に保持されている絞り込み情報を用いて、コンテンツデータベース106内のコンテンツのうち、各絞り込み情報に合致するコンテンツを抽出することで絞り込み処理を行う。絞り込み処理部108は、プロセッサ及びメモリ等により実現され得る。
絞り込み処理は、絞り込みキーに対して「YES」あるいは「NO」の絞り込み条件が設定されている場合は、その絞り込みキーと絞り込み条件との組み合わせに合致するコンテンツのみを抽出することで行う。また、絞り込みキーに対して「NOT_CARE」の絞り込み条件が設定されている場合は、その絞り込みキーに対しては合致してもよいし、合致しなくてもよいとしてコンテンツを抽出することで行う。このようにして、絞り込み処理部108は、複数の絞り込み情報を同時に満たすコンテンツを抽出し、抽出したコンテンツを候補コンテンツとして保持する。
例えば、図5に示す絞り込み情報で、図6のコンテンツデータベース106のコンテンツの絞り込みを行うと、「ジャンル(中華)=YES」という検索情報に合致するコンテンツが抽出されるので、図6のコンテンツID=101、109及び121の「酢豚」、「八宝菜」及び「天津飯」の3つが、絞り込み処理により絞り込まれた結果に含まれる。
ユーザ意図推定部110は、対話履歴の系列の状態に応じてユーザの意図を推定する。対話管理部104は、ユーザ意図推定部110が対話履歴の系列の状態に応じて決定するユーザ意図推定結果に応じて、次にどのような対話の動作を行うかを決定する。ユーザ意図推定部110は、プロセッサ及びメモリなどにより実現され得る。
ユーザ意図推定部110は、対話システム1の直前の応答内容が「Q,絞り込みキー」であり、それに対するユーザの発話の意味情報が「YES」、「NO」及び「NOT_CARE」のいずれかであった場合には、ユーザの意図が「絞り込み要求」であると推定する。その場合、対話管理部104は、応答内容に含まれる絞り込みキーと、ユーザの発話の意味情報から得られる絞り込み条件とを組にして、絞り込み情報保持部107に保持されている絞り込み情報に追加した上で、絞り込み処理部108に対して絞り込み処理を行うよう指示する。
例えば、図4の対話履歴保持部109の「ID=3」「Q,ジャンル(中華)」の応答内容に対して、「ID=4」「意味情報=YES」が得られた時点では、ユーザ意図推定部110は、ユーザの意図が「絞り込み」であると推定し、対話管理部104はコンテンツの絞り込み処理を行うよう絞り込み処理部108に指示を行う。
一方、ユーザ意図推定部110は、対話履歴保持部109に保持されている対話履歴の系列が、所定の条件を満たした場合には、ユーザの意図が「候補一覧要求」であると推定する。ここでは一例として、「Q,絞り込みキー」の応答内容に対して、ユーザ発話の意味情報が「NOT_CARE」であることが2回連続で出現した場合を所定の条件とする。
例えば、図4の対話履歴保持部109の「ID=8」のユーザ発話の意味情報が得られた時点で、応答の履歴において2回連続で「Q,絞り込みキー」に対して「NOT_CARE」が出現している。より具体的には、「ID=5」「Q,カテゴリ(サラダ)」の応答内容に対して「ID=6」「NOT_CARE」の意味情報の発話が出現しており、また、「ID=7」「Q,食材(豚肉)」の応答内容に対して「ID=8」「NOT_CARE」の意味情報の発話が出現していることから、応答の履歴において2回連続で「Q,絞り込みキー」に対して「NOT_CARE」の意味情報の発話が出現している。この時点で所定の条件が満たされているので、ユーザ意図推定部110は、ユーザの意図を「候補一覧要求」であると推定する。
なお、ここでは、ユーザ意図推定部110が、応答の履歴において2回連続で「Q,絞り込みキー」の応答内容に対して「NOT_CARE」の意味情報の発話が出現することを条件としてユーザの意図を「候補一覧要求」と推定するとしたが、他の条件を用いることもできる。例えば、3以上の所定回数連続で「Q,絞り込みキー」に対して「NOT_CARE」が出現することを条件としてもよい。また、「Q,絞り込みキー」に対して「NOT_CARE」が累積で2回、又は、累積で3以上の所定回数出現することを条件としてもよい。
判断の方式自体も、上記のように特定の対話のパターン、つまり、応答と発話とのパターンが生じることを条件する方式でもよいし、人同士の対話の履歴とその履歴に対するユーザの意図推定結果とをアノテーションしたデータを学習データとして機械学習により実現する方式でもよい。
対話管理部104は、ユーザ意図推定部110でユーザの意図が「候補一覧要求」と推定された場合、絞り込み処理部108が保持している候補コンテンツの一覧を生成するように候補一覧表示生成部111に指示する。
候補一覧表示生成部111は、絞り込み処理部108が保持している、直前の絞り込み処理による候補コンテンツから、表示部102に表示可能なテキスト情報の形式で候補一覧テキストを生成する。生成した候補一覧テキストは、応答生成部105で生成される応答テキストの一部として追加され、対話システム1の応答情報として表示部102により表示される。このようにして、表示部102は、対話管理部104が所定の条件を満たすと判定した場合に、コンテンツデータベース106に格納されている情報に関する提示つまり表示をする。上記情報の一例は、コンテンツデータベース106に格納されている、絞り込み処理により絞り込まれた情報の少なくとも一部である。候補一覧表示生成部111は、プロセッサ及びメモリ等により実現され得る。
なお、表示部102による提示の際には、予めコンテンツデータベース106に格納されている情報の少なくとも一部を提示するか否かについてのユーザに対する質問を提示してもよい。そして、上記質問に対してユーザによる肯定応答を得た場合に限り、コンテンツデータベース106に格納されている情報の少なくとも一部を提示するようにしてもよい。
なお、ユーザ意図推定部110でユーザの意図が「候補一覧要求」と推定された場合において、絞り込み情報保持部107に絞り込み条件が設定されていないとき、言い換えれば、応答の履歴に1以上の第三応答だけが含まれていると判定したときには、予め定められた情報を用いて絞り込み処理部108による絞り込み処理を行った上で、候補一覧表示生成部111による候補一覧テキストを生成してもよい。絞り込み条件が1つもない場合、コンテンツデータベース106に格納された全てのコンテンツが候補となってしまうことを回避するためである。
次に、本実施の形態の対話システム1の処理のフローについて説明する。図7は、本実施の形態に係る対話システム1の処理フローを示すフロー図である。図8は、本実施の形態に係る対話システム1における、候補一覧を提示するか否かについての判断に係る処理を示すフロー図である。
ステップS101において、対話管理部104は、絞り込みのための質問を生成し応答内容として出力する。絞り込みのための質問は、コンテンツデータベース106のコンテンツに割り当てられている絞り込みキーのうち、絞り込み情報保持部107に保持されている絞り込み情報の中に出現していない絞り込みキーの中から1つ選択して選ぶ。この選択方式については、ランダムに選ぶ方式としてもよいし、決定木アルゴリズムによりどの絞り込みキーを優先して調べるかの順位付けを決定する方式としてもよいし、あるいは、あらかじめ固定した順序に従う方式としてもよい。
ステップS102において、応答生成部105は、ステップS101で選択した応答内容(つまり質問)を応答テキストに変換する。
ステップS103において、表示部102は、ステップS103で応答生成部105が生成した応答テキスト(つまり質問文)を表示する。
例えば、応答内容が「Q,ジャンル(中華)」であった場合には、図8の応答テキスト801のように「中華風がいいですか?」といったテキストで表示される。
ステップS104において、入力部101は、ユーザ発話の発話テキストを取得する。
ステップS105において、言語理解部103は、ステップS104で取得した発話テキストの言語理解処理を行いユーザの発話テキストを意味情報へ変換する。
ステップS106において、対話管理部104は、ステップS105で変換した意味情報を対話履歴保持部109に追加する。言い換えれば、対話管理部104は、ユーザへの質問と、当該質問に対するユーザによる応答とを含む対話の履歴を保持する。
ステップS107において、ユーザ意図推定部110は、対話履歴に基づいてユーザの意図を推定する。対話管理部104は、対話履歴に基づきユーザ意図推定部110が推定した意図推定結果に基づき、コンテンツの候補一覧表示作成処理を行うか否かを判断する。言い換えれば、対話管理部104及びユーザ意図推定部110は、保持している対話の履歴に含まれる応答の履歴における第三応答の出現の態様が、所定の条件を満たすか否かを判定する。ステップS107の判断の詳細については後述する。
ステップS107においてコンテンツの候補一覧表示作成処理を行うと判断をした場合(ステップS107でYES)にはステップS110に進み、そうでない場合(ステップS107でNO)にはステップS108に進む。
ステップS108において、対話管理部104は、直前の応答内容から絞り込みキーを取り出し、ユーザ発話の意味情報から絞り込み条件を取り出した上で、それらを組み合わせて、絞り込み情報として絞り込み情報保持部107に追加する。また、絞り込み処理部108に絞り込み処理を行うように指示し、絞り込み処理部108がコンテンツの絞り込み処理を行う。その後、ステップS101に戻る。
ステップS110において、対話管理部104は、候補一覧表示生成部111に候補一覧表示を作成するように指示する。候補一覧表示生成部111は、絞り込み処理部108に保持されている直前までのコンテンツの絞り込み結果から、絞り込まれたコンテンツの候補の一覧のテキスト情報を作成する。
ステップS111において、対話管理部104は、候補のコンテンツのどれを選択するかを問う応答内容を生成する。そして、対話管理部104が生成した応答内容を応答生成部105が応答テキストに変換する。また、対話管理部104は、ステップS108で候補一覧表示生成部111が生成した候補一覧のテキストを受け取る。
ステップS112において、対話管理部104は、応答テキストと候補一覧テキストとを表示部102に表示する。言い換えれば、表示部102は、ユーザ意図推定部110が所定の条件を満たすと判定した場合に、コンテンツデータベース106に格納されている情報に関する提示をする。
次に、上記ステップS107に含まれる処理の詳細について図8を参照しながら説明する。
ステップS201において、ユーザ意図推定部110は、言語理解部103による言語理解の結果として得られた、ユーザの発話の意味情報が「NOT_CARE」であるか否かを判定する。ユーザの発話の意味情報が「NOT_CARE」であると判定した場合(ステップS201でYES)には、ステップS202に進み、そうでない場合には、ステップS205に進む。
ステップS202において、ユーザ意図推定部110は、対話履歴におけるユーザの発話履歴において、現在から遡って「NOT_CARE」が連続している回数をカウントする。
ステップS203において、ユーザ意図推定部110は、対話履歴におけるユーザの発話履歴において、「NOT_CARE」の連続する回数が2以上であるか否かを判定する。「NOT_CARE」の連続する回数が2以上である場合(ステップS202でYES)にはステップS204に進み、そうでない場合(ステップS202でYES)には、ステップS205に進む。
ステップS204において、ユーザ意図推定部110は、ユーザの意図が「候補一覧要求」であると推定する。そして、対話管理部104は、ユーザに候補一覧を提示すべきと判断する。
ステップS205において、ユーザ意図推定部110は、ユーザの意図が「絞り込み要求」であると推定する。そして、対話管理部104は、ユーザに候補一覧を提示すべきでないと判断する。
ステップS204及びS205を終えたら図8に示される一連の処理を終了し、ステップS108(図7)に進む。
次に、対話システム1の動作例を示す。図9及び図10は、本実施の形態に係る対話システム1の動作例を示す説明図である。
最初に対話システム1からユーザに対して、検索する料理についてのジャンルを中華風としてよいかを応答テキスト801によって問い合わせる。この問い合わせに対してユーザが発話テキスト802によって肯定応答をする。ユーザからの肯定応答に基づいて、絞り込み処理部108は、コンテンツテーブルを参照して、ジャンルが中華であるもののみを抽出することでコンテンツの絞り込みを行う。
次に、対話システム1からユーザに対して、応答テキスト803及び805によって調理方法及び食材について問い合わせる。これらの問い合わせそれぞれに対してユーザが発話テキスト804及び806によって意味情報が「NOT_CARE」である発話をする。
このとき、発話テキスト804及び806が、応答の履歴において2回連続で出現した、意味情報が「NOT_CARE」である発話に相当する。そのため、ユーザ意図推定部110による意図推定を経て、対話管理部104は、ユーザに候補一覧を提示すべきであると判断する(ステップS204)。そして、応答テキスト807及び候補一覧テキスト808を提示する(ステップS111及びS112)。
このようにして、対話システム1を用いた料理メニューの絞り込みと候補一覧の表示が実現する。
以上の処理フローにより、対話システム1は、対話システム1とユーザとの対話の履歴に基づいて、コンテンツの絞り込みを継続したいのか、又は、絞り込まれているコンテンツの候補一覧を閲覧したいのかといったユーザの意図を適切に推定する。これにより、あらかじめ、ユーザが候補一覧を早く見たいのかどうかの情報を把握することなく、対話の状況からユーザに対してコンテンツの一覧を提示するタイミングを適切に判断することが可能である。
次に、対話システム1を別のコンテンツである作家の検索に適用する例を説明する。
この場合、コンテンツデータベース106には、それぞれが作家を示す複数の情報が格納されている。そして、対話システム1は、ユーザへの作家の検索に関する質問と、当該質問に対するユーザによる応答とを含む対話を用いて、ユーザの所望の作家を示す情報を提供する。
図11は、本実施の形態に係る対話システム1の別の適用例におけるコンテンツテーブルを示す説明図である。
図11に示されるコンテンツテーブルでは、コンテンツ名に作家の名前が含まれている。また、絞り込みキーには、当該作家の作品のジャンル及びカテゴリが含まれている。
図12及び図13は、本実施の形態に係る対話システム1の別の適用例における動作例を示す説明図である。
最初に対話システム1からユーザに対して、検索する作家についてのジャンルを文芸作品としてよいかを応答テキスト901によって問い合わせる。この問い合わせに対してユーザが発話テキスト902によって肯定応答をする。ユーザからの肯定応答に基づいて、絞り込み処理部108は、コンテンツテーブルを参照して、ジャンルが文芸作品であるもののみを抽出することでコンテンツの絞り込みを行う。
次に、対話システム1からユーザに対して、応答テキスト903及び905によってカテゴリについて問い合わせる。これらの問い合わせそれぞれに対してユーザが発話テキスト904及び906によって意味情報が「NOT_CARE」である発話をする。
このとき、発話テキスト904及び906が、応答の履歴において2回連続で出現した、意味情報が「NOT_CARE」である発話に相当する。そのため、ユーザ意図推定部110による意図推定を経て、対話管理部104は、ユーザに候補一覧を提示すべきであると判断する(ステップS204)。そして、応答テキスト907及び候補一覧テキスト908を提示する(ステップS111及びS112)。
このようにして、対話システム1を用いた作家の絞り込みと候補一覧の表示が実現する。
なお、上記の対話システム1による対話処理方法は、以下のようにも表現され得る。
すなわち、対話システム1による対話処理方法は、ユーザの端末を介したチャット形式によるユーザとの対話を用いた、ユーザの好むメニューに関する情報処理方法である。この情報処理方法では、端末に備えられたディスプレイに、データベースに基づいて、メニューに対するリクエストを尋ねる第一質問を吹き出し型に表示させ、データベースは、複数のメニューと複数のメニューそれぞれの分類を示す分類情報とを対応付け、分類情報は、メニューの温冷、メニューのジャンル、メニューのカテゴリ、メニューの調理法、メニューに用いられる食材を含み、第一質問は、メニューに対して、データベースに含まれる第一分類をリクエストするか否かを尋ねる。端末を通して、ユーザによって入力された第一質問に対する第一回答を受信する。第一回答に、第一分類を肯定する語句が含まれていると判断された場合は、ディスプレイに、データベースに基づいて、第一分類に対応する第一メニューに対応する第二分類をリクエストするかを尋ねる第二質問を吹き出し型に表示させ、第二分類は、第一分類とは異なる。そして、端末を通して、ユーザによって入力された第二質問に対する第二回答を受信する。第二回答に、第二分類を肯定する語句も、第二分類を否定する語句も含まれていないと判断された場合、ディスプレイに、データベースに基づいて、第一メニューに対応する第三分類をリクエストするかを尋ねる第三質問を吹き出し型に表示させ、第三分類は、第一分類及び第二分類とは異なる。そして、端末を通して、ユーザによって入力された第三質問に対する第三回答を受信する。(a)第三回答に、第三分類を肯定する語句が含まれていると判断された場合、第一メニューのうち第三分類に対応する第二メニューに対応する第四分類をリクエストするか否かを尋ねる第四質問を吹き出し型に表示させ、第四分類は、第一分類、第二分類および第三分類のいずれとも異なる。(b)第三回答に、第三分類を否定する語句が含まれていると判断された場合、第一メニューのうち第三分類に対応しない第三メニューに対応する第五分類をリクエストするか否かを尋ねる第五質問を吹き出し型に表示させ、第五分類は、第一分類、第二分類、第三分類および第四分類のいずれとも異なる。(c)第三回答に、第三分類を肯定する語句も、第三分類を否定する語句も含まれていないと判断された場合、ディスプレイに、第一メニューを示す情報を表示させてもよいかを尋ねる第五質問を吹き出し型に表示させる。そして、端末を通して、ユーザによって入力された第五質問に対する第五回答を受信し、第五回答に、第一メニューを示す情報を表示させることを肯定する語句が含まれていると判断された場合、ディスプレイに第一メニューを示す情報を表示させる。
このようにして、上記と同様に、対話システム1を用いた作家の絞り込みと候補一覧の表示が実現する。
(実施の形態の変形例)
本変形例において、ネットワークを介して通信可能に接続された複数の装置により対話システムを実現する構成について説明する。
図14は、本変形例に係る対話システム1Aの構成を示すブロック図である。なお、上記実施の形態におけるものと同じ構成要素には同じ符号を付し、詳細な説明を省略する。
対話システム1Aは、クライアント2とサーバ3とを備える。
クライアント2は、入力部101と、表示部102と、クライアント通信部112とを備える。
サーバ3は、言語理解部103と、対話管理部104と、応答生成部105と、コンテンツデータベース106と、絞り込み情報保持部107と、絞り込み処理部108と、対話履歴保持部109と、ユーザ意図推定部110と、候補一覧表示生成部111と、サーバ通信部113とを備える。
クライアント通信部112とサーバ通信部113とは、ネットワーク(不図示)を介して通信可能に接続されている。そして、入力部101と言語理解部103との通信、応答生成部105と表示部102との通信等が、クライアント通信部112とサーバ通信部113とによるネットワークを介した通信により実現する。
この構成により、上記実施の形態と同様に、候補の一覧の提示のタイミングをより適切に制御することができる。
また、本変形例の構成では、複数のクライアント2と一のサーバ3とが接続される形態も実現し得る。このように構成すると、例えばユーザそれぞれが所有する端末をクライアント2とし、当該端末からネットワークで通信可能なサーバ(いわゆるクラウドサーバ)装置にサーバ3を実現することができる。これにより、言語理解部103及び対話管理部104などのサーバ3が備える構成要素の改修及びメンテナンス作業が容易になり、処理負荷の低減、コスト低減などの利点がある。
以上のように、本実施の形態の情報処理方法によれば、情報処理方法は、ユーザとの対話における、ユーザの発話の内容から候補の一覧を提示するタイミングを制御する。肯定応答でも否定応答でもない第三応答は、ユーザが明確な絞り込みの条件を提供しない意思の表れであるとも考えられる。そのため、第三応答の出現の態様が、ユーザがコンテンツ候補の一覧を見たいか否かの判断基準となり得る。これにより、あらかじめユーザが絞り込んだコンテンツ候補の一覧を早く見たいのかどうかが分からない場合であっても、ユーザの発話の内容からユーザの意図を推定することにより、絞り込まれたコンテンツ候補の一覧を提示するタイミングを制御することができる。
また、情報処理方法は、第三応答が所定回数連続して出現するという条件を用いて、より具体的に情報処理方法を実現し、候補の一覧の提示のタイミングをより適切に制御することができる。
また、情報処理方法は、第三応答が累積して所定回数出現するという条件を用いて、より具体的に情報処理方法を実現し、候補の一覧の提示のタイミングをより適切に制御することができる。
また、情報処理方法は、意図推定に基づいて、絞り込んだコンテンツ候補の一覧をユーザに閲覧させることができる。このようにして、ユーザの発話の内容からユーザの意図を推定することにより、絞り込まれたコンテンツ候補の一覧を提示するタイミングを制御することができる。
また、情報処理方法は、意図推定に基づいて、絞り込んだコンテンツ候補の一覧をユーザに閲覧させるか否かの質問を提示することができる。意図推定に基づいたタイミングの制御では、ユーザが実際に意図しているタイミングと異なるタイミングでコンテンツ候補の一覧を提示しようとしてしまうことが生じる。そのため、上記の質問によりユーザの実際の意図を確認することで、ユーザの意図に反してコンテンツ候補の一覧を提示することを抑制することができる。
また、情報処理方法は、コンテンツ候補の一覧の提示に関して、ユーザの実際の意図と合致していることを確認した上で、コンテンツ候補の一覧を提示してユーザに閲覧させることができる。
また、情報処理方法は、対話のインタフェースによって格納部に格納されている情報を絞り込み、絞り込んだ情報をユーザに提示することができる。これにより、ユーザは、検索エンジンなどによって情報を検索するのと異なり、対話による逐次的な情報入力に基づいて情報の検索を行い、また、対話システムからの提案を受けることができる。
また、情報処理方法は、絞り込み条件が1つもない場合、格納部に格納された全ての情報、つまり絞り込みが一切なされていない情報を一覧として表示することを回避することができる。
また、情報処理方法は、選択肢を提供して回答を選択させるクローズ質問と、その回答により構成される対話に基づいて、より具体的に検索及び提案を行うことができる。
また、情報処理方法は、料理メニューを示す情報の絞り込みを用いて、料理メニューの検索又は提案を、ユーザに提供することができる。
また、情報処理方法は、作家を示す情報の絞り込みを用いて、作家の検索又は提案を、ユーザに提供することができる。
なお、上記の実施の形態の一部又は全部は、以下のようにも表現され得るが、以下の記載に限定されない。
(1)対話により検索や提案の対象である複数コンテンツの絞込む情報を獲得して、ユーザの要望にあうコンテンツを提示する対話システムにおける絞り込み結果提示制御方法であって、対話システムからのユーザへの質問に対して、ユーザが所定の意図を意味する回答を行うという対話の履歴から、ユーザがコンテンツの絞り込みを継続したいか、絞り込まれた候補の一覧を閲覧したいかの意図を推定し、前記ユーザの意図の推定結果により、その時点で絞り込んだコンテンツ候補の一覧を提示するかを制御する、絞り込み結果提示制御方法。
(2)対話システムに保持される対話の履歴において対話システムに対するユーザの回答の系列が所定の条件を満たす場合に、ユーザの意図を候補の一覧を閲覧したいと推定することを特徴とする、上記(1)に記載の絞り込み結果提示制御方法。
(3)対話システムとユーザとの対話、あるいは、人同士の対話から得られた対話履歴に対して、ユーザの意図が候補一覧の閲覧を要望しているかどうかの情報を付与した対話履歴データを学習データとして機械学習により構成したユーザ意図推定方式により、ユーザの意図が候補の一覧を閲覧したいかどうかを推定することを特徴とする、上記(1)に記載の絞り込み結果提示制御方法。
上記の構成により、あらかじめユーザが絞込んだコンテンツ候補の一覧を早く見たいのかどうかという情報が分からなくても、システムの質問に対するユーザの回答の状況から、ユーザが回答により絞込を行いたいかどうかの意図を推定することにより、絞込まれたコンテンツ候補の一覧を提示するタイミングを制御することができる。
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態の情報処理装置などを実現するソフトウェアは、次のようなプログラムである。
すなわち、このプログラムは、コンピュータに、格納部に格納されている情報に関する情報処理方法であって、ユーザへの質問と、当該質問に対する前記ユーザによる応答とを含む対話の履歴を保持し、保持している前記対話の履歴に含まれる前記応答の履歴における、前記質問に対する肯定を示す第一応答、及び、前記質問に対する否定を示す第二応答のいずれでもない第三応答の出現の態様が、所定の条件を満たすか否かを判定し、前記所定の条件を満たすと判定した場合に、前記格納部に格納されている前記情報に関する提示をする情報処理方法を実行させる。
以上、一つまたは複数の態様に係る情報処理装置などについて、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。