(本発明の基礎となった知見等)
専門知識が豊富な専門家と専門知識が乏しい一般者とが対話により情報を交換することで、両者の納得する結論としての情報を特定するタスクが遂行される場面は多い。このようなタスクの一例としては、例えば、医者と患者との間で行われる問診が挙げられる。問診では、専門知識はあるが患者の自覚症状についての情報がない医者と、専門知識は乏しいが自分の症状についての情報を、問いかけに答えることで或いは自ら発することで、提供できる患者との間で、対話によって手掛りとなる情報の量を増やして結論(診断結果)に反映する。この問診等といった、一般者であるユーザとの対話により結論としての情報を特定するタスクを、コンピュータ等の機械を用いて遂行する対話システムが検討されている。例えばPOMDPモデルによる対話制御では、音声認識、言語理解等のエラーを含んだ不確実な入力を扱うことができ、ユーザに対する確認行為等を過不足なく行うための行動選択の最適化が期待できる。
しかし、問診の例では、問診の結論(診断結果)となり得る病気の候補の数は、数千以上に及ぶ。つまり、患者から得られた情報に基づき、病気の候補を特定するプロセスを状態の遷移として表すには、論理的な条件分岐と結論とを含めて数千以上の状態が必要となる。対話制御に必要な状態(対話状態)の数が数千以上と多くなると、対話制御におけるユーザに対する確認行為等の行動選択の最適化のための演算負荷が増大し、対話制御のために例えば大規模なコンピュータリソースが必要となり得る。これまで、小規模の対話制御で大規模のタスクを遂行するための技術について検討がなされていなかった。
そこで、小規模の対話システムにおいて大規模のタスクの遂行を可能にすべく、本願発明者らは、対話制御に係る対話状態の数を減らす方式を着想した。そして、その方式を用いて、対話状態の数を減らすことで、従来の技術より効率的に対話状態に対する制御を行い得る対話システムを提供する。また、その対話システムの一部であるエージェント装置、対話方法、及び、プログラムを提供する。
本発明の一態様に係るエージェント装置は、ユーザインタフェース処理を行うフロントエンド、及び、情報処理を行うバックエンドの各々と、対話行為タイプと付帯情報とで構成される所定対話行為形式の情報である対話行為の授受を行うエージェント装置であって、前記フロントエンド及び前記バックエンドの一方から取得した対話行為に応じて提供用の対話行為を決定する決定部と、前記決定部により決定された前記提供用の対話行為を、前記フロントエンド及び前記バックエンドの一方へ提供する提供部とを備え、前記決定部は、前記提供用の対話行為における対話行為タイプを、前記フロントエンド及び前記バックエンドの集合から逐次取得した対話行為における、付帯情報の系列に基づかず対話行為タイプの系列に基づいて、決定する。ここで付帯情報は上述の行為項目に相当する。この構成によると、対話行為から付帯情報を除いた対話行為タイプの系列に基づいて行動を決定する。このため、対話行為のバリエーションが多くなる要因となる付帯情報を除いて、対話行為タイプの系列から行動を決定するので、対話状態の数の低減化が可能となる。この結果として、強化学習により行動選択の最適化を行う場合における最適化の負荷が抑えられ、最適化が容易となり得る。これにより、例えば小規模の対話システムにおいて大規模のタスクを遂行可能なように、効率的に対話状態に応じた制御を行うことができるようになる。
また、例えば、前記決定部は、前記提供用の対話行為における対話行為タイプを、過去に決定した対話行為タイプの系列にも基づいて、決定することとしてもよい。これにより、エージェント装置は、観測及び行動としての対話行為タイプの系列から行動を適切に決定し得るようになる。
また、前記決定部は、観測としての対話行為タイプの系列に基づいて、行動としての対話行為タイプを決定する行動決定部と、前記フロントエンド及び前記バックエンドの集合から対話行為を逐次取得し、取得した対話行為から付帯情報を分離することで対話行為タイプの系列を前記行動決定部に観測として逐次入力する分離部と、前記行動決定部で決定された対話行為タイプと前記分離部で分離された付帯情報とを合成することで提供用の対話行為を生成する合成部とを有し、前記行動決定部は、行動としての対話行為タイプの前記決定を、過去に決定した行動としての対話行為タイプの系列にも基づいて、行うこととしてもよい。これにより、エージェント装置は取得した対話行為における付帯情報を、提供する対話行為のために利用でき、行動決定部においては付帯情報に依らずに行動としての対話行為タイプを決定し得るようになる。
また、前記行動決定部は、POMDP(Partially Observable Markov Decision Process)モデルに基づいて行動を決定することとしてもよい。これにより、強化学習により行動選択の最適化を行うことができる。
また、前記観測としての対話行為タイプは、予め定められた複数の対話行為タイプ値のいずれかを表し、前記行動としての対話行為タイプは、前記フロントエンドに向けた第1種の対話行為タイプ値と前記バックエンドに向けた第2種の対話行為タイプ値とに区別される予め定められた複数の対話行為タイプ値のいずれかを表し、前記提供部は、前記決定部により決定された提供用の対話行為における対話行為タイプが第1種及び第2種のいずれの対話行為タイプ値を表すかに基づいて、前記フロントエンド及び前記バックエンドのうち当該対話行為の提供先を選択し、選択した提供先へ当該対話行為を提供することとしてもよい。これにより、エージェント装置は、ユーザ向けのフロントエンドへの対話行為の提供のみならず、対話行為タイプによって区別してバックエンドへの対話行為の提供も行える。
また、前記付帯情報はキーワードを表すこととしてもよい。これにより、多様な情報を表し得るキーワード(付帯情報)を用いた多様な対話が可能となるにも関わらず、対話行為から付帯情報を除いた対話行為タイプに基づいて行動を決定するので、対話状態の数の低減化が可能となる。
また、本発明の一態様に係る対話システムは、上述のエージェント装置と、自然言語で表現される情報をユーザとの間で交換する前記フロントエンドと、知識ベースの検索に基づき情報の提供を行う前記バックエンドとを備える。これにより、例えば、症状についての質問により病気を特定する問診タスク等といった専門知識を必要とするタスクを、実現し得る。そして、このようなタスクのための対話(つまり対話行為の授受)において、対話行為のバリエーションが多くなる要因となる付帯情報を除いて、対話行為タイプの系列から行動を決定するので、対話状態の数の低減化が可能となる。
また、例えば、前記付帯情報は前記知識ベースの検索のために利用可能なキーワードを表し、前記バックエンドは、前記エージェント装置から取得した対話行為における付帯情報が表すキーワードを用いて前記知識ベースの検索処理を行い、検索処理の結果に基づいて生成した対話行為を前記エージェント装置に提供することとしてもよい。これにより、知識ベースの検索に利用可能な、ユーザから取得されるキーワードが多様であっても、対話状態の数の低減化が可能となり、例えば強化学習によって行動選択(対話行為の選択)の最適化等が容易に行えるようになり得る。
また、前記バックエンドは、前記知識ベースの検索処理の結果が充分に絞り込まれたか否かを判定し、充分に絞り込まれたと判定した場合には当該結果を表す対話行為を前記エージェント装置に提供し、充分に絞り込まれていないと判定した場合には前記検索処理の結果を絞り込むために有効なキーワードを表す対話行為を前記エージェント装置に提供することとしてもよい。これにより、所望の情報を特定するための絞込みを対話的に行えるようになり得る。
また、本発明の一態様に係る対話方法は、自然言語で表現される情報をユーザとの間で交換するフロントエンドと、知識ベースの検索に基づく情報の提供を行うバックエンドと、前記フロントエンド及び前記バックエンドの各々と、対話行為タイプと付帯情報とで構成される所定対話行為形式の情報である対話行為の授受を行うエージェント装置とを含む対話システムにおいて用いられる対話方法であって、前記エージェント装置が、前記フロントエンド及び前記バックエンドの一方から取得した対話行為に応じて提供用の対話行為を決定する決定ステップと、前記エージェント装置が、前記決定ステップで決定された前記提供用の対話行為を、前記フロントエンド及び前記バックエンドの一方へ提供する提供ステップとを含み、前記決定ステップでは前記提供用の対話行為における対話行為タイプを、前記フロントエンド及び前記バックエンドの集合から逐次取得した対話行為における、付帯情報の系列に基づかず対話行為タイプの系列に基づいて、決定する。これにより、対話行為のバリエーションが多くなる要因となる付帯情報を除いて、対話行為タイプの系列から行動を決定するので、対話状態の数の低減化が可能となり、効率的に対話状態に応じた制御を行うことができるようになる。
また、例えば、前記決定ステップは、前記フロントエンド及び前記バックエンドの集合から対話行為を逐次取得し、取得した対話行為における付帯情報と対話行為タイプとを分離する分離サブステップと、前記分離サブステップで分離された対話行為タイプを観測とし、当該観測に基づいて、観測に対応して行動を決定するための基準となる信念状態情報を参照して、行動としての対話行為タイプを決定する行動決定サブステップと、前記行動決定サブステップで決定された対話行為タイプと前記分離サブステップで分離された付帯情報とを合成することで提供用の対話行為を生成する合成サブステップと、前記分離サブステップで分離された対話行為タイプの系列である観測と、前記行動決定サブステップで決定された対話行為タイプの系列である行動とに応じて前記信念状態情報を更新する更新ステップとを含むこととしてもよい。これにより、付帯情報を用いずに対話行為タイプの系列によって効率的に信念状態を更新し得る。
また、本発明の一態様に係るプログラムは、ユーザインタフェース処理を行うフロントエンド、及び、情報処理を行うバックエンドの各々と、対話行為タイプと付帯情報とで構成される所定対話行為形式の情報である対話行為の授受を行う対話制御処理を、コンピュータに実行させるためのプログラムであって、前記対話制御処理は、前記フロントエンド及び前記バックエンドの一方から取得した対話行為に応じて提供用の対話行為を決定する決定ステップと、前記決定ステップで決定された前記提供用の対話行為を、前記フロントエンド及び前記バックエンドの一方へ提供する提供ステップとを含み、前記決定ステップでは前記提供用の対話行為における対話行為タイプを、前記フロントエンド及び前記バックエンドの集合から逐次取得した対話行為における、付帯情報の系列に基づかず対話行為タイプの系列に基づいて、決定する。このプログラムをコンピュータにインストールすれば、コンピュータが対話エージェントとしての装置として機能し、対話行為のバリエーションが多くなる要因となる付帯情報を除いて、対話行為タイプの系列から行動を決定するので、対話状態の数の低減化が可能となる。これにより、強化学習により行動選択の最適化を行う場合における最適化の負荷が抑えられ、最適化が容易となり得る。
なお、これらの包括的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なCD−ROM等の記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されてもよい。
以下、図面を参照して本発明の実施の形態を詳細に説明する。なお、以下で説明する実施の形態は、いずれも本発明の包括的又は具体的な一例を示すものである。以下の実施の形態で示される数値、形状、構成要素、構成要素の配置、ステップ、ステップの順序等は、一例であって本発明を限定するものではない。また、以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
(提供するサービスの全体像)
まず、本実施の形態における対話システムが提供するサービスの態様について説明する。
図1Aは、本実施の形態における対話システム10が提供するサービスの態様の一例を示す図である。対話システム10は、グループ1100、データセンタ運営会社1110及びサービスプロバイダ1120を備える。
グループ1100は、例えば企業、団体又は家庭等の施設(例えばビルディング、住宅等)であり、その規模を問わない。グループ1100は、機器1101及びホームゲートウェイ1102を備える。機器1101は、ユーザと何らかの方法で情報を交換するためのユーザインタフェースを有する。機器1101は、例えば、インターネットと接続可能な機器(例えば、スマートフォン、パーソナルコンピュータ(PC)、テレビ等)である。なお、機器1101は、それ自身ではインターネットと接続不可能な機器(例えば、洗濯機、冷蔵庫等)であってもよく、ホームゲートウェイ1102を介してインターネットと接続可能となる機器であってもよい。なお、ホームゲートウェイ1102が必要ない場合もある。ユーザ1010は、機器1101を使用する。機器1101が、インターネットに無線接続可能で携帯可能な機器(例えばスマートフォン、ノートPC等)であってもよく、この場合には、ユーザ1010及び機器1101は、必ずしもグループ1100内に所在していなくてもよい。なお、機器1101は、1台の機器に限られず、機器1101が、複数台の機器により構成されているとしてもよい。
データセンタ運営会社1110は、クラウドサーバ1111を備える。クラウドサーバ1111は、インターネットを介して様々な機器と連携するコンピュータであり、例えば仮想化サーバである。クラウドサーバ1111は、例えば、通常のデータベース管理ツール等で扱うことが困難な巨大なデータ(ビッグデータ)等を管理する。データセンタ運営会社1110は、データの管理、クラウドサーバ1111の管理等を行っている。なお、データセンタ運営会社1110は、データの管理又はクラウドサーバ1111の管理のみを行っている管理会社に限られず、他の事業を併せて行っている会社であってもよく、例えば、機器1101を開発又は製造している機器メーカであってもよい。また、データセンタ運営会社1110は一つの会社に限られず、例えば、図1Bに示すように、機器メーカ及び管理会社が共同又は分担してデータの管理又はクラウドサーバ1111の管理を行っている場合は、機器メーカ及び管理会社の両者がデータセンタ運営会社1110に該当し得る。
サービスプロバイダ1120は、サーバ1121を備える。サーバ1121は、例えば1台又は複数台のコンピュータで実現され、その規模は問わず、記憶媒体として大容量のハードディスク等のストレージを備えてもよいし、例えば、PC内のメモリ等しか備えていなくてもよい。なお、サーバ1121が必ずしも記憶媒体を備えていなくてもよい。
次に、上述の態様の対話システム10における情報の流れを説明する。
まず、グループ1100の機器1101は、ユーザインタフェースを介して取得した入力情報を、直接或いはホームゲートウェイ1102を介してデータセンタ運営会社1110のクラウドサーバ1111に送信する。機器1101においてユーザ1010による入力情報の入力に用いられるユーザインタフェースは、例えば、キーボード、タッチパネル、或いは、既存の音声認識技術を用いた音声入力装置等である。クラウドサーバ1111は、機器1101からの入力情報を取得する。
次に、データセンタ運営会社1110のクラウドサーバ1111は、機器1101からの入力情報に基づく情報をサービスプロバイダ1120のサーバ1121に送信する。この入力情報に基づく情報は、入力情報の少なくとも一部と同一の情報を含むものであっても、その同一の情報を含まず入力情報に対して演算等の処理を施した結果としての情報であってもよい。また、この入力情報に基づく情報の送信の単位は、いかなる単位であってもよい。サーバ1121は、クラウドサーバ1111からの情報を取得する。
そして、サービスプロバイダ1120のサーバ1121は、クラウドサーバ1111からの情報に対応して、ユーザへの提供用の情報を特定して、その提供用の情報をユーザ1010に提供すべく、クラウドサーバ1111に送信する。クラウドサーバ1111は、サーバ1121からの提供用の情報を機器1101に転送する又はその提供用の情報に対して演算等の処理を施した結果としての情報を機器1101に送信する。これにより、機器1101のユーザインタフェースからユーザ1010に情報が提供される。機器1101においてユーザ1010への情報の提供に用いられるユーザインタフェースは、例えば、ディスプレイ、或いは、既存の音声合成技術を用いた音声出力装置等である。
なお、サーバ1121が、クラウドサーバ1111を介さずに機器1101と通信を行うことで、ユーザ1010からの入力情報の取得、及び、提供用の情報の提供を行うこととしてもよい。また、対話システム10は、上述した例と異なる態様であってもよい。例えば、対話システム10において、データセンタ運営会社1110及びサービスプロバイダ1120を省いてもよく、機器1101がユーザから取得した入力情報に基づいて、提供用の情報を特定して、その提供用の情報をユーザに提供してもよい。
(実施の形態1)
(構成)
以下、一例としてPOMDPモデルを用いた対話システム10においてユーザと情報を交換する対話方法を行うための構成について説明する。
一般的に、POMDPモデルは、状態の集合Sと、行動の集合Aと、観測の集合Zと、状態遷移行列Tと、観測行列Oと、報酬行列Rと、信念状態の初期状態B0というモデル要素で定義される。ある環境内でエージェントが現在の状態を観測して取るべき行動を決定するPOMDPモデルを用いた従来の対話システムでは、ユーザを環境、システム(コンピュータシステム)をエージェントと対応づけ、ユーザの対話行為を観測とし、システムの対話行為を行動とみなす。これに対して、対話システム10では、1つのエージェントと2つの環境という構造でのモデル化を行う。
図2は、対話システム10の概略構成図である。
図2に示すように、対話システム10は、エージェント2001と、第1の環境としてのフロントエンド2002と、第2の環境としてのバックエンド2005と、知識ベース206とを備える。
エージェント2001は、対話エージェントとしての装置(エージェント装置)である。エージェント2001は、例えば、プロセッサ(マイクロプロセッサ)、メモリ等を備えるコンピュータに実装され得る。具体的には、例えば、メモリに格納されたプログラムをプロセッサが実行すること等によりエージェント2001の機能が実現され得る。エージェント2001は、フロントエンド2002とバックエンド2005との間で対話行為の交換を仲介する。即ち、エージェント2001は、フロントエンド2002及びバックエンド2005の各々と、対話行為の授受を行う。対話行為は、対話行為タイプと付帯情報とで構成される所定形式(所定対話行為形式)の情報である。
フロントエンド2002は、ユーザインタフェース処理を行う装置であり、自然言語で表現される情報をユーザとの間で交換する。フロントエンド2002は、例えば、エージェント2001と同一又は別のコンピュータに実装され得る。例えば、コンピュータのユーザインタフェース、及び、コンピュータのメモリに格納されたプログラムを実行するプロセッサ等により、フロントエンド2002の機能が実現され得る。
バックエンド2005は、検索処理等の情報処理を行う装置であり、知識ベース206への問い合わせ(検索処理)に基づく情報の提供を含む知識処理を行う。バックエンド2005は、例えば、エージェント2001と同一又は別のコンピュータに実装され得る。例えば、コンピュータの通信インタフェース、及び、コンピュータのメモリに格納されたプログラムを実行するプロセッサ等により、バックエンド2005の機能が実現され得る。
エージェント2001と、フロントエンド2002及びバックエンド2005の各々とが、互いに離れた複数の装置で実現される場合には、エージェント2001と、フロントエンド2002及びバックエンド2005の各々とは直接又は他装置を介して通信する。
知識ベース206は、情報を保持する装置であり、例えば、情報を表すデータを構造化して管理するデータベース管理装置である。知識ベース206は、例えば、バックエンド2005と同一又は別のコンピュータに実装され得る。例えば、コンピュータにおけるメモリ、ハードディスク等の記憶媒体等によって知識ベース206が実現され得る。問診タスクを遂行するための対話システム10においては、知識ベース206は、問診タスクの遂行に有用な情報(例えば症状と病気とに関連する情報)を保持している。知識ベース206は複数台の装置で構成されていてもよい。
図2では、問診タスクを遂行するための対話システム10における対話行為を例示している。観測2003は、フロントエンド2002からエージェント2001が取得する対話行為の例である。観測2006は、バックエンド2005からエージェント2001が取得する対話行為の例である。行動2004は、エージェント2001がフロントエンド2002へ提供する対話行為の例である。また、行動2007は、エージェント2001がバックエンド2005へ提供する対話行為の例である。観測2003、観測2006、行動2004、及び、行動2007は、いずれも所定対話行為形式の情報(対話行為)の例である。この例での文字列情報の対話行為において、括弧より前の部分(例えば「Provide」、「Confirm」等)が対話行為タイプであり、括弧内の部分(例えば「めまい」、「頭痛」等)が付帯情報である。対話行為タイプは、例えば、予め定められた「Provide」、「Confirm」、「Check」、「push」等といった複数の値(対話行為タイプ値)のいずれかを表し、対話行為タイプ値は例えば文字列で表される。この例では対話行為タイプ値を、英単語で表現しているがこれは一例に過ぎず、いかなる言語或いは規則に基づいて表現してもよい。付帯情報は、例えば、キーワードを示す文字列情報である。
対話システム10においては、エージェント2001と、フロントエンド2002及びバックエンド2005の集合との間で授受される対話行為の系列に対応して、タスクが遂行される。問診タスクの例では、ユーザから対話的にフロントエンド2002を介してエージェント2001に収集された情報に基づき、バックエンド2005で病気の特定が行われる。
以下、エージェント2001、フロントエンド2002、及び、バックエンド2005の、より詳細な構成について説明する。
図2に示すように、フロントエンド2002は、ユーザインタフェース処理に係る入力処理部201と出力処理部208とを備える。エージェント2001は、決定部200と提供部205とを備える。バックエンド2005は知識処理部207を備える。
決定部200は、フロントエンド2002及びバックエンド2005の一方から取得した対話行為に応じて、フロントエンド2002及びバックエンド2005の一方への提供用の対話行為を決定する機能を担う。この機能を実現すべく決定部200は、分離部202と行動決定部203と合成部204とを備える。なお、決定部200は、提供用の対話行為における対話行為タイプを、過去に決定した対話行為タイプの系列にも基づいて、決定するように構成され得る。
入力処理部201は、例えば、キーボード、タッチパネル、或いは、音声入力装置等のユーザインタフェース等によるユーザからの入力である自然言語表現(文字列)を既存の自然言語処理技術(例えば言語理解技術)により対話行為に変換し、対話行為に信頼度を付けて出力する。これにより、対話行為及び信頼度が分離部202により取得される。入力処理部201は、ユーザの入力が音声である場合に入力された音声を音声認識技術により文字化する前処理を行うこととしてもよい。
分離部202は、フロントエンド2002の入力処理部201或いはバックエンド2005の知識処理部207から取得した対話行為を、対話行為タイプと付帯情報とに分離する。例えば、対話行為「Provide(頭痛)」は、対話行為タイプ「Provide」と付帯情報「頭痛」とに分離される。分離部202は、分離した対話行為タイプを行動決定部203に入力する。即ち、分離部202は、フロントエンド2002及びバックエンド2005の集合から対話行為を逐次取得し、取得した対話行為から付帯情報を分離することで対話行為タイプの系列を行動決定部203に観測として逐次入力する。また、分離部202は、分離した付帯情報を合成部204へ入力する。
行動決定部203は、POMDPモデルを用いた既存の行動決定技術により、観測として逐次入力される対話行為タイプの系列に基づいて、行動としての対話行為タイプを決定して出力する。行動決定部203により例えば、対話行為タイプ「push」が決定され、出力される。POMDPモデルで参照される方策(policy)の学習には既存の技術を利用し得る。なお、POMDPで扱う状態の確率分布(信念状態とも称する)が、0か1の値しかとらないケースでは、モデルをMDP(マルコフ決定過程:Markov Decision Process)モデルとみなすことができる。つまり行動決定部203による行動の決定には、MDPモデルによるものも含まれる。これらのモデル(POMDPモデル、MDPモデル)では、選択的な行動決定のために参照される方策の最適化を、強化学習(Reinforcement Learning)によって行うことができる。なお、行動決定部203では、観測に基づいて、信念状態及び方策を参照して、行動を決定する。行動決定部203は、この信念状態を示す情報としての信念状態情報を保持しており、観測と決定した行動とに応じて信念状態情報を更新し得る。また、行動決定部203は、決定した行動としての対話行為タイプの履歴を保持してもよい。そして、行動決定部203は、行動としての対話行為タイプの決定を、過去に決定した行動としての対話行為タイプの系列にも基づいて行うこととしてもよい。
合成部204は、分離部202で分離された対話行為タイプに基づいて行動決定部203で決定されて出力された対話行為タイプと、分離部202で分離された付帯情報とを合成することで、提供用の対話行為を生成して出力する。合成部204により、例えば、対話行為「push(頭痛)」が出力される。
提供部205は、決定部200により決定された提供用の対話行為を、フロントエンド2002及びバックエンド2005の一方へ提供する機能を担う。提供部205は、合成部204から出力された対話行為の出力先となる環境を、フロントエンド2002及びバックエンド2005のいずれかに切り替え得る。具体的には、提供部205は、提供用の対話行為の出力先を、出力処理部208にすべきか、知識処理部207にすべきかを、対話行為の出力先を区別するために予め定められた基準に基づいて判定する。予め定め得られた基準は、例えば、対話行為の先頭の文字が大文字か小文字かにより出力先を区別する基準である。提供部205は、例えば行動2004で示すように提供用の対話行為の先頭の文字(つまり対話行為タイプの先頭の文字)が大文字であればその対話行為を出力処理部208に出力する。また、提供部205は、例えば行動2007で示すように提供用の対話行為の先頭の文字(つまり対話行為タイプの先頭の文字)が小文字であればその対話行為を知識処理部207に出力する。
出力処理部208は、提供部205から出力された対話行為の示す意味表現を、応答文生成技術(例えば既存の文生成技術)によって、応答文に変換して、文字列としてユーザに提供する。文字列のユーザへの提供は、例えば、ディスプレイ、音声出力装置等のユーザインタフェースによって行われる。出力処理部208は、ユーザへ提供すべき文字列を、音声合成技術により音声化する後処理を行うこととしてもよい。
知識処理部207は、知識ベース206を参照して、提供部205から出力された対話行為に応じた情報処理を行い、その結果を示す対話行為を、分離部202へ提供する。知識処理部207における情報処理は、例えば、知識ベース206から情報を検索して抽出する検索処理であり、例えば、エージェント2001からこれまでに取得した対話行為における付帯情報が表す文字列としてのキーワードのリストを、検索キーワード(検索用のキーワード)の集合として、知識ベースの内容を、AND検索する検索処理を行う。知識処理部207は、検索処理の結果に基づいて対話行為を生成して、生成した対話行為をエージェント2001の分離部202へ提供する。例えば、知識処理部207は、検索処理の結果が、充分に絞り込まれたか否かを判定し、充分に絞り込まれたことを示すように予め定められた所定の条件(例えば検索された情報の数の上限等の条件)が満たされて充分に絞り込まれたと判定した場合には、その検索結果を示す対話行為を生成して出力(分離部202へ提供)する。一方、充分に絞り込まれていないと判定した場合には、知識処理部207は、検索処理の結果を絞り込むために有効なキーワード(検索キーワード)を推定して、そのキーワードを示す対話行為を生成して出力(分離部202へ提供)する。検索処理の結果を絞り込むために有効なキーワードを示す対話行為の一例は、例えば、付帯情報として「発熱」を含ませた「suggest(発熱)」である。
このような構成を備えることによりエージェント2001の決定部200では、逐次取得した対話行為における対話行為タイプを抽出して、過去の対話行為タイプの系列に基づき、行動として出力すべき提供用の対話行為における対話行為タイプを決定できる。即ち、エージェント2001では、対話行為における付帯情報に基づく判断を行うことなく、過去の対話行為タイプの系列に基づき、出力すべき対話行為タイプの決定を行うことが可能となっている。
このように対話行為の種類(対話行為全体の値の各々)ではなく、対話行為タイプの種類(対話行為タイプ値の各々)に基づいて対話行為タイプを決定することにより、対話状態の数を、少なく抑えることができる。対話状態の数を少なく抑えることは、強化学習による行動選択の最適化に有利となる。この最適化の結果としてエージェント2001は、環境の1つであるフロントエンド2002から、観測2003としての情報を取得(収集)するための質問のタイプ等に係る行動2004を状況に応じて適切に選択できるようになり得るし、情報処理の結果として環境の他の1つであるバックエンドから観測2006を得るための行動2007を適切に選択できるようになり得る。これらの選択(例えば質問のタイプの異なる対話行為タイプの選択等)を通じて、エージェント2001により、対話の主体者の制御、不確実な情報の確認の制御等の対話制御処理が行われ得る。
なお、エージェント2001は、取得した対話行為における対話行為タイプと分離した付帯情報については、取得した最新の1つを保持すれば足りる。
また、バックエンド2005においては、対話開始以降、取得した付帯情報の系列を、メモリ等の一領域であるスタックに積んで管理すると、複数の付帯情報を用いた高度なタスクを遂行可能となる。バックエンド2005での情報処理によって、例えば、「頭痛」、「めまい」等といった症状を表す付帯情報が収集され、これらの症状に基づいて、「病気A」、「病気B」、「病気C」等といった病気が、所望の情報として特定され得る。バックエンド2005においては、取得した対話行為の対話行為タイプを、例えばコマンドの種類として扱い、現在の対話行為タイプのみに応じて処理を行えばよく、対話行為タイプの履歴を管理する必要はない。
(動作)
以下、上述した構成を備える対話システム10の動作について説明する。
図3は、対話システム10における対話処理の一例を示すフローチャートである。以下、同図に即して、対話に係るエージェント2001の動作に注目して説明する。
対話の開始にあたって、まず、エージェント2001は、信念状態を設定する(ステップS31)。信念状態とは、対話の進行状況とユーザの意図をあわせて定義された対話状態に対して、総和が1となるような確率値の集合(確率分布)のことである。例えば、対話開始時にはひとつの対話状態にいると想定し、その状態の確率値を1、それ以外の状態の確率値を0とする。信念状態の設定は、エージェント2001の決定部200が、初期状態としての信念状態を示す信念状態情報をメモリ等の記憶媒体に保持することで行われる。
エージェント2001の決定部200は、信念状態情報が示す信念状態に基づいて行動を決定する(ステップS32)。具体的には、決定部200の行動決定部203は、どのような信念状態のときにどのような行動を取るべきかという基準の集合である方策を参照し、信念状態に基づいて行動としての対話行為タイプを決定する。決定部200では、行動決定部203において決定された対話行為タイプを含む、提供用の対話行為を提供部205に伝える。
次に、エージェント2001は、ステップS32で決定された行動が向けられた環境がフロントエンド2002であるか、バックエンド2005であるかを判定する(ステップS33)。具体的には、提供部205が、予め定められた基準に基づいて、提供用の対話行為に応じて出力先を判定する。そして提供部205は、判定結果に応じて、提供用の対話行為を、フロントエンド2002の出力処理部208、及び、バックエンド2005の知識処理部207のいずれかに提供する。
ステップS33での判定の結果として、環境の1つとしてのフロントエンド2002にエージェント2001から対話行為が提供された場合には、フロントエンド2002は、ユーザとのインタラクションを実行する(ステップS34)。つまり、フロントエンド2002の出力処理部208は、提供部205から取得した所定対話行為形式の行動(対話行為)を自然言語に変換してユーザに提示する。また、フロントエンド2002の入力処理部201は、ユーザからの応答(回答)を自然言語の形式で取得して、対話行為の形式に変換し、エージェント2001に提供する。
一方、ステップS33での判定の結果として、環境の他の1つとしてのバックエンド2005にエージェント2001から対話行為が提供された場合には、バックエンド2005は、知識処理を実行する(ステップS35)。つまり、バックエンド2005の知識処理部207は、提供部205から取得した所定対話行為形式の行動(対話行為)に基づき、知識ベース206の検索処理を行い、検索処理の結果に基づく情報を対話行為の形式にして、エージェント2001に提供する。知識処理部207は、対話行為が知識ベース206の検索用のコマンド(例えば機械語のコマンド)としてそのまま用いることができればその対話行為であるコマンドを実行し、そのまま用いることができなければ機械語のコマンドに変換して実行する。また、知識処理部207は、検索処理の結果としての知識ベース206からの戻り値等に基づく情報を、対話行為の形式にして、エージェント2001に提供する。
ステップS34又はステップS35に続いて、エージェント2001は、フロントエンド2002又はバックエンド2005から所定対話行為形式の観測(対話行為)を受理(取得)する(ステップS36)。
次に、エージェント2001は、取得した対話行為に基づいて、対話処理を終了すべきか判断する(ステップS37)。例えば、エージェント2001は、観測として、フロントエンド2002から「Acknowledge()」という対話行為を取得したら、対話処理を終了すべきと判断し、対話処理を終了させる。
ステップS37で終了と判断しない場合には、エージェント2001は、現在の信念状態と、決定した行動(対話行為タイプの形式の行動)と、環境から得られた観測(対話行為タイプの形式の観測)とに基づき、信念状態を更新する(ステップS38)。つまり決定部200は、信念状態を示す信念状態情報を、取得した対話行為における対話行為タイプの系列と、決定した対話行為タイプの系列とに応じて更新する。
ステップS38に続いて、エージェント2001は、ステップS32に戻って、ステップS36で取得した対話行為に対応して、行動の決定を行う。
このように、対話処理においては、エージェント2001による、次の決定ステップ及び提供ステップを含む対話制御処理が含まれている。対話処理において、繰り返されるステップS36で、フロントエンド2002及びバックエンド2005のいずれかから対話行為を取得する度に、エージェント2001は、取得した対話行為に応じて提供用の対話行為を決定する決定ステップ(ステップS32)を行う。そしてエージェント2001は、この決定ステップで決定した提供用の対話行為を、フロントエンド2002及びバックエンド2005のいずれかへ提供する提供ステップ(ステップS33〜S35)を行う。決定ステップでは、エージェント2001は、提供用の対話行為における対話行為タイプを、フロントエンド2002及びバックエンド2005の集合から逐次取得した対話行為における、付帯情報の系列に基づかず対話行為タイプの系列に基づいて、決定する。エージェント2001は、対話行為タイプの系列に基づいて、信念状態を更新し、信念状態に基づいて、行動としての対話行為タイプを決定し得る。
このように、エージェント2001における信念状態は、行動の対話行為タイプと観測の対話行為タイプによって逐次更新され、対話処理の開始以降における対話行為タイプの系列の全てを反映した信念状態となっている。このため、エージェント2001は、信念状態に基づいて行動の決定を行えば、対話の進行状況に適合した行動で、かつ、ユーザの意図に適合した行動をとることができる。
以下、バックエンド2005における情報処理の一種である知識処理の一例について、図4A及び図4Bを用いて説明する。
図4Aは、バックエンド2005で参照される知識ベース206の一例を示す図である。
知識ベース206は、バックエンド2005の知識処理部207による知識処理において検索対象となるデータベースであり、例えば症状を検索キーワードとして病気を検索するための知識を構造化して管理している。図4Aの表は、知識ベース206の知識内容のイメージの一例を示す。図4Aの表中、ある症状の行と、ある病気の列との交点となるセルには、その病気である場合においてその症状が出やすければ「+」を、その症状が出にくければ「−」を記述している。検索キーワードとして、例えば、症状が出ることを指定する指定キーワードと、症状が出ないことを指定する除外キーワードとに区別して検索を行うこととしてもよい。症状を指定する指定キーワードと除外キーワードとのうちの1つ以上の組み合わせでAND検索を行うことで病気の集合から該当する病気を絞り込むことが可能となる。図4Aの例では、症状Aを指定キーワード(+)とし、症状Dを除外キーワード(−)としてAND検索を行うことで、該当する病気は、病気1のみとなる。図4Aは説明の便宜上の一例に過ぎず、知識ベース206において、検索キーワード(例えば症状)と検索対象名(例えば病気)とは、それぞれ多数(例えば数十、数千以上等)であり得る。
図4Bは、バックエンド2005の知識処理部207による知識処理の一例を、質問木で表した概念図である。
図4Bの例は、図4Aの表で例示される知識ベース206を用いて、症状に係る質問により病気を特定するという問診タスクを遂行することに関連した質問木の例であり、ここでは、説明の便宜上、比較的単純な質問木を示している。図4Bの質問木のルートノードは最初の質問を表し、症状Aが発症しているかどうかの質問を「症状A」と表現している。リーフノードは、質問により特定された病気を示している。ルートとリーフとの中間に位置する各中間ノードは、2番目以降の質問を表している。ノード間の矢印(エッジ)は、質問への回答が「+」(質問の症状が発症していることを示す回答)であるか「−」(質問の症状が発症していないことを示す回答)であるかに対応しており、質問木全体は、二分木となっている。ルートノードでは、全ての病気の集合を対応させ、質問によって、該当する病気の集合が逐次分割されて、病気が絞り込まれる。これ以上病気の集合を分割する質問がなくなったところで、そのときに残っている病気の集合(1つ又は複数の病気)が結論(検索処理の結果)となる。この質問木は、質問の順番によって、候補の絞込みの効率が異なる。最悪ケースの質問回数をなるべく少なくするためには、残っている病気の集合の「+」と「−」の割合が、1:1になるべく近い質問を選ぶとよい。
バックエンド2005の知識処理部207としての動作は、エージェント2001からコマンドを示す対話行為を取得して、コマンドに基づく知識処理(検索処理等)を行い、コマンドに対する戻り値を示す対話行為をエージェント2001に返す(提供する)。より具体的には、知識処理部207は、取得した対話行為における対話行為タイプに付帯する付帯情報(症状を示すキーワード)を検索キーワードとしてスタックに積み、検索キーワードのリストに従って知識ベース206の検索を行う検索処理を行う。知識処理部207は、検索処理の結果として、検索対象の病気が充分絞り込まれたか否かを判定して、充分絞り込まれた場合には、結論として絞り込まれた検索対象の情報(病気)をエージェント2001に返す。絞り込みが不充分であると判定した場合には、知識処理部207は、検索対象を絞り込むのに有効な検索キーワードを、エージェント2001に提案(提供)する。なお、ここで示した、バックエンド2005による病気の特定という処理は、バックエンド2005による情報処理の一例に過ぎない。バックエンド2005で行われる情報処理は、例えば、キーワードを用いて、インターネット検索(インターネット上の情報の検索)を行い、検索の結果が所定数(例えば1つ、数個等)以下になるまでは、次の有効な検索キーワードを提案(提供)し、所定数以下になると検索の結果としての情報を提供するような処理であってもよい。この場合に、バックエンド2005は、既存のインターネット検索プログラムへのラッパー等を含んで構成され得る。
以下、対話システム10による対話のシーケンスについて説明する。図5は、対話システム10による対話のシーケンスの一例を示したシーケンス図である。
図5において、フロントエンド2002、エージェント2001及びバックエンド2005のそれぞれ(各オブジェクト)における処理区間(活性区間)を縦長長方形で表しており、オブジェクトから下に向かう縦の破線が時間経過を表し、横向きの矢線(矢印)のうち、実線の矢印が呼び出しメッセージ(つまりエージェント2001からの対話行為の提供)を表し、破線の矢印が手続きの結果通知メッセージ(つまりエージェント2001による対話行為の取得)を表している。また、図5ではバックエンド2005内で管理されるスタック50の内容(検索キーワードのリスト)を付記している。スタック50内においてキーワードに付加された正(+)の符号は、知識ベース206の検索時にそのキーワードが指定キーワードとして扱われることを意味し、キーワードに付加された負(−)の符号は、知識ベース206の検索時にそのキーワードが除外キーワードとして扱われることを意味する。
以下、図5に即して、問診タスクに係る対話の例に係るシーケンスにおける各ステップを順に説明する。
ステップS101では、エージェント2001は、バックエンド2005に、知識ベース206の検索処理のための検索キーワードを格納するスタック50を空にさせるコマンドを表す対話行為「clear()」を、与える(提供する)。なお、エージェント2001が提供する対話行為の先頭が小文字であればバックエンド2005が提供先であり、大文字であればフロントエンド2002が提供先となるように定められている。
ステップS102では、エージェント2001は、バックエンド2005から、例えばコマンドに応じた処理が終わったこと等を表す対話行為「pass()」を、受ける(取得する)。
ステップS103では、エージェント2001は、フロントエンド2002に、「今日はどうされましたか?」という旨の質問を表す対話行為「What1st()」を提供する。これにより、フロントエンド2002は、ユーザに、例えば「今日はどうされましたか?」という自然言語で、質問する。この例では、この質問に対してユーザは、症状を示す「頭がくらくらします。」という回答を行う。
ステップS104では、エージェント2001は、ユーザの「頭がくらくらします。」という回答をフロントエンド2002で変換した対話行為「Provide(頭痛)」を、フロントエンド2002から取得する。
ステップS104に続いて、エージェント2001は、取得した対話行為「Provide(頭痛)」における対話行為タイプ「Provide」に応じて対話行為タイプ「Confirm」を決定し、その「Confirm」と、取得した対話行為における付帯情報である「頭痛」とを合成することで提供用の対話行為「Confirm(頭痛)」を生成する。
ステップS105では、エージェント2001は、対話行為「Confirm(頭痛)」をフロントエンド2002に提供する。これにより、フロントエンド2002は、対話行為「Confirm(頭痛)」に基づいて変換した自然言語「頭痛ですか?」により、ユーザに対して確認の質問を行う。この例では、この質問に対してユーザは、頭痛を訂正して「めまいです。」という回答を行う。
ステップS106では、エージェント2001は、ユーザの「めまいです。」という回答(つまり確認内容を訂正する回答)をフロントエンド2002で変換した対話行為「Correct(めまい)」を、フロントエンド2002から取得する。
ステップS106に続いて、エージェント2001は、取得した対話行為「Correct(めまい)」における対話行為タイプ「Correct」に応じて対話行為タイプ「push」を決定し、その「push」と、取得した対話行為における付帯情報である「めまい」とを合成することで提供用の対話行為「push(めまい)」を生成する。
ステップS107では、エージェント2001は、対話行為「push(めまい)」をバックエンド2005に提供する。対話行為「push(めまい)」が表すコマンド(例えば検索キーワードの設定のためのコマンド)に応じて、バックエンド2005のスタック50には、付帯情報の「めまい」を示す指定キーワードが蓄積される。
ステップS108では、エージェント2001は、バックエンド2005から、例えばコマンドに応じた処理が終わったこと等を表す対話行為「pass()」を取得する。
ステップS108に続いて、エージェント2001は、取得した対話行為「pass()」における対話行為タイプ「pass」に応じて対話行為タイプ「WhatElse」を決定し、対話行為「WhatElse()」を生成する。
ステップS109では、エージェント2001は、対話行為「WhatElse()」をフロントエンド2002に提供する。なお、エージェント2001においては、逐次取得した対話行為における対話行為タイプの系列によって、対話行為タイプの決定に際して参照される信念状態が変化しているので、同内容の対話行為を取得した場合であっても異なる提供用の対話行為を決定して提供し得る。フロントエンド2002は、対話行為「WhatElse()」に基づいて変換した自然言語「他に気になることはありますか?」により、ユーザに対して更なる質問を行う。この例では、この質問に対してユーザは、更なる症状を示す「動悸もします。」という回答を行う。
ステップS110では、エージェント2001は、ユーザの「動悸もします。」という回答をフロントエンド2002で変換した対話行為「Provide(動悸)」を、フロントエンド2002から取得する。
ステップS110に続いて、エージェント2001は、取得した対話行為「Provide(動悸)」における対話行為タイプ「Provide」に応じて対話行為タイプ「push」を決定し、その「push」と、取得した対話行為における付帯情報である「動悸」とを合成することで提供用の対話行為「push(動悸)」を生成する。
ステップS111では、エージェント2001は、対話行為「push(動悸)」をバックエンド2005に提供する。対話行為「push(動悸)」が表すコマンド(例えば検索キーワードの設定のためのコマンド)に応じて、バックエンド2005のスタック50には、更に付帯情報の「動悸」を示す指定キーワードが蓄積される。
ステップS112では、エージェント2001は、バックエンド2005から、例えばコマンドに応じた処理が終わったこと等を表す対話行為「pass()」を取得する。
ステップS112に続いて、エージェント2001は、取得した対話行為「pass()」における対話行為タイプ「pass」に応じて対話行為タイプ「WhatElse」を決定し、対話行為「WhatElse()」を生成する。
ステップS113では、エージェント2001は、対話行為「WhatElse()」をフロントエンド2002に提供する。フロントエンド2002は、対話行為「WhatElse()」に基づいて変換した自然言語「他に気になることはありますか?」により、ユーザに対して更なる質問を行う。この例では、この質問に対してユーザは、他の症状がないことを示す「ないです。」という回答を行う。
ステップS114では、エージェント2001は、ユーザの「ないです。」という回答をフロントエンド2002で変換した対話行為「Negative()」を、フロントエンド2002から取得する。
ステップS114に続いて、エージェント2001は、取得した対話行為「Negative()」における対話行為タイプ「Negative」に応じて対話行為タイプ「solve1st」を決定し、提供用の対話行為「solve1st()」を生成する。
ステップS115では、エージェント2001は、対話行為「solve1st()」をバックエンド2005に提供する。対話行為「solve1st()」が表すコマンド(例えば検索実行のためのコマンド)に応じて、バックエンド2005では知識ベース206の検索処理を行う。バックエンド2005は、検索処理の結果が充分に絞り込まれたか否かを判定する。例えば、バックエンド2005は、検索処理の結果としての病気が所定数(例えば1つ、数個等)以下に絞り込まれたか否かを判定する。バックエンド2005は、検索処理の結果が充分に絞り込まれない場合には、知識ベース206を用いて、検索処理の結果を絞り込むために有効な検索キーワードを特定して提案する。この例では、検索処理の結果が所定数以下に絞り込まれずに、絞り込みに有効な検索キーワードとして「発熱」が提案される。このとき、この例では、バックエンド2005のスタック50に、指定キーワードか除外キーワードかが未決定の状態の「発熱」を示す検索キーワードが蓄積される。
ステップS116では、エージェント2001は、バックエンド2005から、「発熱」の症状の質問を提案することを表す対話行為「suggest(発熱)」を取得する。
ステップS116に続いて、エージェント2001は、取得した対話行為「suggest(発熱)」における対話行為タイプ「suggest」に応じて対話行為タイプ「Check」を決定し、その「Check」と、取得した対話行為における付帯情報である「発熱」とを合成することで提供用の対話行為「Check(発熱)」を生成する。
ステップS117では、エージェント2001は、対話行為「Check(発熱)」をフロントエンド2002に提供する。フロントエンド2002は、対話行為「Check(発熱)」に基づいて変換した自然言語「発熱はありますか?」により、ユーザに対して発熱の症状についての質問を行う。この例では、この質問に対してユーザは、発熱の症状が現れていないことを示す「ありません。」という回答を行う。
ステップS118では、エージェント2001は、ユーザの「ありません。」という回答をフロントエンド2002で変換した対話行為「Negative()」を、フロントエンド2002から取得する。
ステップS118に続いて、エージェント2001は、取得した対話行為「Negative()」における対話行為タイプ「Negative」に応じて対話行為タイプ「set_negative」を決定し、提供用の対話行為「set_negative()」を生成する。
ステップS119では、エージェント2001は、対話行為「set_negative()」をバックエンド2005に提供する。対話行為「set_negative()」が表すコマンド(例えばスタックに最後に積まれた検索キーワードを除外キーワードに設定した上で検索キーワードのリストで検索を実行するためのコマンド)に応じて、バックエンド2005では、スタック50の「発熱」を除外キーワードとして知識ベース206の検索処理を行う。そしてバックエンド2005は、検索処理の結果が充分に絞り込まれたか否かを判定する。この例では、検索処理の結果がまだ所定数以下に絞り込まれずに、絞り込みに有効な検索キーワードとして更に「咳」が提案される。このとき、この例では、バックエンド2005のスタック50に、「咳」を示す検索キーワードが蓄積される。
ステップS120では、エージェント2001は、バックエンド2005から、「咳」の症状の質問を提案することを表す対話行為「suggest(咳)」を取得する。
ステップS120に続いて、エージェント2001は、取得した対話行為「suggest(咳)」における対話行為タイプ「suggest」に応じて対話行為タイプ「Check」を決定し、その「Check」と、取得した対話行為における付帯情報である「咳」とを合成することで提供用の対話行為「Check(咳)」を生成する。
ステップS121では、エージェント2001は、対話行為「Check(咳)」をフロントエンド2002に提供する。フロントエンド2002は、対話行為「Check(咳)」に基づいて変換した自然言語「咳は出ますか?」により、ユーザに対して咳の症状についての質問を行う。この例では、この質問に対してユーザは、咳の症状が現れていることを示す「出ます。」という回答を行う。
ステップS122では、エージェント2001は、ユーザの「出ます。」という回答をフロントエンド2002で変換した対話行為「Positive()」を、フロントエンド2002から取得する。
ステップS122に続いて、エージェント2001は、取得した対話行為「Positive()」における対話行為タイプ「Positive」に応じて対話行為タイプ「set_positive」を決定し、提供用の対話行為「set_positive()」を生成する。
ステップS123では、エージェント2001は、対話行為「set_positive()」をバックエンド2005に提供する。対話行為「set_positive()」が表すコマンド(例えばスタックに最後に積まれた検索キーワードを指定キーワードに設定した上で検索キーワードのリストで検索を実行するためのコマンド)に応じて、バックエンド2005では、スタック50の「咳」を指定キーワードにし、知識ベース206の検索処理を行う。そしてバックエンド2005は、検索処理の結果が充分に絞り込まれたか否かを判定する。この例では、検索処理の結果が所定数以下の1つである「病気C」に絞り込まれる。
ステップS124では、エージェント2001は、バックエンド2005から、結論としての「病気C」を表す対話行為「conclude(病気C)」を取得する。
ステップS124に続いて、エージェント2001は、取得した対話行為「conclude(病気C)」における対話行為タイプ「conclude」に応じて対話行為タイプ「Present」を決定し、その「Present」と、取得した対話行為における付帯情報である「病気C」とを合成することで提供用の対話行為「Present(病気C)」を生成する。
ステップS125では、エージェント2001は、対話行為「Present(病気C)」をフロントエンド2002に提供する。フロントエンド2002は、対話行為「Present(病気C)」に基づいて変換した自然言語「病気Cのようです。」により、ユーザに対して結論を提供する。この例では、この結論の提供に対してユーザは、「わかりました。」という回答を行う。
ステップS126では、エージェント2001は、ユーザの「わかりました。」という回答をフロントエンド2002で変換した対話行為「Acknowledge()」を、フロントエンド2002から取得する。これにより、エージェント2001が対話処理を終了させて、対話のシーケンスが終了する。
このように、エージェント2001が仲介してフロントエンド2002とバックエンド2005との対話が行われる。
上述の例で、エージェント2001がフロントエンド2002との間で授受する情報である対話行為のシーケンスは、次の対話行為シーケンス1となっている。
対話行為シーケンス1=[What1st(),Provide(頭痛),Confirm(頭痛),Correct(めまい),WhatElse(),Provide(動悸),WhatElse(),Negative(),Check(発熱),Negative(),Check(咳),Positive(),Present(病気C),Acknowledge()]
また、対話行為シーケンス1にエージェント2001とバックエンド2005との間で授受される対話行為を加えたシーケンスは、次の対話行為シーケンス2となっている。
対話行為シーケンス2=[clear(),pass(),What1st(),Provide(頭痛),Confirm(頭痛),Correct(めまい),push(めまい),pass(),WhatElse(),Provide(動悸),push(動悸),pass(),WhatElse(),Negative(),solve1st(),suggest(発熱),Check(発熱),Negative(),set_negative(),suggest(咳),Check(咳),Positive(),set_positive(),conclude(病気C),Present(病気C),Acknowledge()]
対話行為シーケンス2において奇数番目の対話行為はエージェント2001の行動に該当し、偶数番目の対話行為はエージェント2001が、環境としてのフロントエンド2002又はバックエンド2005から得た観測に該当する。括弧内の付帯情報に注目すると、観測とそれに続く行動の間で一致している。つまり、エージェント2001(対話エージェント)は、Provideに対してConfirm、Correctに対してpush等と対話行為タイプを決定しているが、付帯情報については、単に仲介しているだけである。このような観測に応じて行動を決定する動作は、エージェント2001の決定部200(つまり分離部202、行動決定部203、及び、合成部204)によって実現される。
(対話状態に係る考察)
以下、上述した対話システム10による対話において遷移する対話状態の数の低減化等について、図6A〜図6Dを用いて考察を行う。
まず、上述の図5の例に係る対話行為シーケンス1を用いて、ユーザと関わるフロントエンドのみを環境とした対話システムを仮定し、この仮定した対話システムでのフロントエンドとエージェント(ここでは知識処理の機能を包含するシステム)とでの対話の例について考える。
図6Aは、対話行為シーケンス1が含まれるように作成した状態遷移の一例を示す状態遷移図である。なお、POMDPモデルにおいては、状態がsであるときに、行動aを取ったら、状態がs´に遷移する時の遷移確率T(s´|s,a)と、行動aを取った結果状態s´において観測zが得られる観測確率O(z|a,s´)とで行動と観測と状態の関係が表現される。ここでは、POMDPモデルにおける上述の確率を閾値処理して、行動と観測と状態の関係を、状態遷移図で表している。以下で説明する図6B〜図6Dの各状態遷移図も図6Aと同様である。例えば、状態遷移図での矢線は、状態の遷移確率が一定閾値を超える経路を表したものである。また、図6A〜図6Dにおいて、各ノードを表す円には、状態の名前を記している。ノード間のエッジを表す矢線には、エージェントから環境への行動としての対話行為を記している。また、各ノード(状態)に、エージェントによる環境の観測としての対話行為を記している。これにより、状態遷移図において、行動によって、環境の状態が変化し、変化した状態の下で観測がなされることが表される。
ここでは、対話行為シーケンス1を2つの部分(パート)に分けて考察を行う。まず、先行するパートである[What1st(),Provide(頭痛),Confirm(頭痛),Correct(めまい),WhatElse(),Provide(動悸),WhatElse(),Negative()]のパートは、オープン質問(open question)を主としたユーザ主体の対話が行われているパートである。このパートは、問診タスクにおいて、患者中心の問診と言われる。一方、後続するパートである[Check(発熱),Negative(),Check(咳),Positive(),Present(病気C),Acknowledge()]のパートは、クローズド質問(closed question)を主としたシステム(対話システム)主体の対話が行われているパートである。このパートは、問診タスクにおいて、医師中心の問診と言われる。
先行するパート(ユーザ主体の対話パート)について、図6Aでは、このパートの状態(ノード)を直線状に配置している。このパートに対応する対話行為のシーケンスは、Negative()という観測で終わる可変長のシーケンスとなる。このパートの状態の数を減らすには、「s1a」〜「s3a」を縮退させて、ループ構造にすればよいように思われる。ループによって、可変長のシーケンスに対応できる。
また、後続するパート(システム主体の対話パート)について、図6Aでは、このパートの状態(ノード)を木構造となるように配置している。対話行為シーケンス1のシステム主体の対話パートを、トレースするためには、「s4a」に続いて、状態の系列[s6a、s9a、s13a]という経路を辿ればよい。木構造のパートは全体として、図4Bに例示したような質問木に対応しており、質問と回答に従って異なる結論に到達できるようになっている。このシステム主体の対話パートは、例えば知識ベースの規模により増大し得る。つまり、1000の結論があれば、状態数は1000以上になる。また、図4Bの質問木では、単純な例であるので長さが揃っているが、システム主体の対話パートの経路の長さは可変長である。このパートも、ループ構造にすればよいように思われる。
図6Bは、以上の考察に基づいて、2つのループ構造を持つようにした状態遷移の例を示す状態遷移図である。
図6Bは、図6Aと同様に、対話行為シーケンス1のユーザ主体の対話パート[What1st(),Provide(頭痛),Confirm(頭痛),Correct(めまい),WhatElse(),Provide(動悸),WhatElse(),Negative()]と、システム主体の対話パート[Check(発熱),Negative(),Check(咳),Positive(),Present(病気C),Acknowledge()]とに対応している。但し、図6Bでは、対話行為の付帯情報である「頭痛」、「病気C」等は、一般化して「*」で表している。この一般化した部分の付帯情報はいずれであっても、状態との対応関係が変わらないと考えられる。
図6Bの状態「s1b」に注目すると、次の状態は「s1b」又は「s2b」である。つまり、「s1b」から出て「s1b」に戻るループを0回以上回った後に、ループから抜け出して、「s2b」に進む。「s1b」と「s2b」には、異なる観測が記されており、行動としての対話行為「WhatElse()」に対して、「Negative()」という対話行為が観測された場合に、ループから抜け出す。
また、状態「s3b」に注目すると、次の状態は「s3b」又は「s4b」である。つまり、「s3b」から出て「s3b」に戻るループを0回以上回った後に、ループから抜け出して、「s4b」に進む。「s3b」と「s4b」には、同じ観測(「Negative()」及び「Positive()」)が記されており、行動「Check(*)」も同じであるため、ループを抜けるための条件は明確でない。このような場合には、ループを回る遷移確率とループを抜ける遷移確率との比によって、何回回ったらループを抜けるのかが決定される。しかし、問診により病気を特定するという問診タスクを考えれば、終了は、医者が、問診の内容によって決めるものであって、回数で決めるべきものではない。或いは「s4b」を除いて「s3b」から「s5b」に、行動「Present(*)」によって遷移すればよいのかもしれない(図示せず)。しかし、行動選択のための情報がない。ここでは、「Check(*)」という行動によってループを回るか「Present(*)」という行動によってループを抜けるかについて、強化学習によって得られた方策に従うとしても、状態と観測とが同じであれば、常に同じ行動が選ばれる。つまり、無限ループに入るか、ループを1回も回らないで通過するかしかできないことになる。これは、ユーザと関わるフロントエンドのみを環境として、対話行為の付帯情報を使わずに、状態を極力縮退させようとした場合に起こる。これでは、タスクが遂行できない。
次に、上述の図5の例に係る対話行為シーケンス2を用いて、フロントエンド2002とバックエンド2005とのそれぞれを環境とした対話システム10について考える。
図6Cは、対話行為シーケンス2に対応して作成した状態遷移の一例を示す状態遷移図である。図6Cの状態遷移図は、2つのループ構造を持ち、かつ、2つの環境に対応するようにしたものである。
全体を通して、2つのループが存在するのは、図6Bと図6Cとで同様である。図6Cでは、各ノードの配置について、左側がフロントエンド2002とエージェント2001との間で授受される対話行為と、右側がエージェント2001とバックエンド2005との間で授受される対話行為と、それぞれ対応するようにノードを配置している。
ここでは、上述の対話行為シーケンス1と同様に、対話行為シーケンス2を2つの部分(パート)に分けて考察を行う。つまり、ユーザ主体の対話パートである[clear(),pass(),What1st(),Provide(頭痛),Confirm(頭痛),Correct(めまい),push(めまい),pass(),WhatElse(),Provide(動悸),push(動悸),pass(),WhatElse(),Negative()]のパートと、これに後続するパートであるシステム主体の対話パートである[solve1st(),suggest(発熱),Check(発熱),Negative(),set_negative(),suggest(咳),Check(咳),Positive(),set_positive(),conclude(病気C),Present(病気C),Acknowledge()]のパートに分ける。
図6Cにおけるユーザ主体の対話パートには、1つ目のループが存在し、このループの終了条件は、フロントエンド2002からの観測(具体的には「Negative()」)によって与えられる。この1つ目のループの終了条件は、図6Bに示す1つ目のループの終了条件と同様である。一方、図6Cにおけるシステム主体の対話パートには、2つ目のループが存在し、ループの終了条件は、バックエンド2005からの観測(具体的には「conclude(*)」)によって与えられる。補足すれば、「s5c」においてとるべき行動は「Check(*)」であり、その遷移先は3つあるが、次に想定される観測毎に状態を設定されているので、観測確率を乗ずると観測に応じた状態の確率が高くなる。つまり、2つ目のループの終了条件は、図6Bとは異なり、観測として与えられた対話行為が状態の確率に反映され、行動決定の基準となり得るので、強化学習により適切な方策の獲得が可能となる。
なお、図6Cにおける1つ目のループでは、[Confirm(頭痛),Correct(めまい)]というシーケンスに対応する状態遷移は省略されており、これについては、次の図6Dを用いて考察する。
図6Dは、図6Cの「s2c」の状態を分割して、不確実性への対応を行うための拡張を行った状態遷移を示す状態遷移図である。図6Dにおいて、「s2d lev0」、「s2d lev1」、「s2d posi」、及び「s2d corr」の4つを除くノードについては、図6Cにおける同じ名前のノードと対応している。
拡張の1つ目は、フロントエンド2002の入力処理部201から得られる言語理解の結果の信頼度に応じた状態の分割である。「s2d lev0」及び「s2d lev1」の各ノードは、予め設定した信頼度の閾値との大小比較によって分かれるようにしたものであり、閾値より大きいものは「s2d lev0」とし、閾値未満であれば「s2d lev1」としている。この例では、2分割であるが、必要に応じて分割数は、数倍程度に増やせばよい。例えば、4分割する場合の各閾値の設定の仕方としては、信頼度の取り得る値域を4等分するように閾値を設定する方法、頻度分布を得て4分位点を閾値として設定する方法等が挙げられる。
拡張の2つ目は、エージェント2001がフロントエンド2002から得られた情報をバックエンド2005へ仲介する前に、フロントエンド2002に確認を行うことで確実性を高める場合に対応した状態「s2d posi」と「s2d corr」とを設けたことである。
対話行為シーケンス2の[Provide(頭痛),Confirm(頭痛),Correct(めまい),push(めまい),pass(),WhatElse(),Provide(動悸),push(動悸)]の部分に沿って、状態遷移の様子を追ってみると、「Provide(頭痛)」が観測される際の信頼度が比較的低い場合に状態「s2d lev1」にいると想定され、「Confirm(頭痛)」という行動が決定され、状態は「s2d corr」に遷移し、「Correct(めまい)」が観測される。次に「push(めまい)」という行動が決定されて「s3c」に遷移し、「pass()」が観測される。次に、「WhatElse()」という行動が決定され、「Provide(動悸)」が比較的高い信頼度とともに観測されると「s2d lev0」にいると想定される。ここでは、確認を行わずに、行動「push(動悸)」を伴って「s3c」に遷移する。
このように、状態を、フロントエンド2002からの観測の信頼度に基づいて分割し、分割された状態毎に別々の行動を紐付けることができる。図6Dの例では、信頼度のレベル(つまり閾値での分割数)が2つで、信頼度が高いときには確認を行わず、信頼度が低いときには確認を行う。このような信頼度に応じた行動を定める方策を人手によって設定することは、信頼度のレベルが2つであれば容易である。信頼度のレベルを多段階にする場合においては、レベル毎に確認を行うか行わないかを設定することには、試行錯誤が必要となり得る。
なお、図5の例についての説明において、対話行為シーケンス2について、観測の対話行為とそれに続く行動の対話行為との間で付帯情報が一致することを説明したが、図6Dでは、[s2d lev1,s2d posi,s3c」の経路で、例えば、[Provide(頭痛),Confirm(頭痛),Positive(),push(頭痛)]というシーケンスに対応する状態遷移も可能となっている。上述したように、エージェント2001は、取得した対話行為における対話行為タイプと分離した付帯情報については、取得した最新の1つを保持しているので、保持している最新の付帯情報を、必要に応じて行動の対話行為として補うことで、図6Dの状態遷移に対応できる。
(比較実験結果)
以下、対話システム10の効果を定量的に示すための比較実験について説明する。
対話システム10を用いて問診タスクとしての対話のシミュレーション実験を行った。図7は、対話システム10を用いたシミュレーション実験の結果を示す図である。
このシミュレーション実験では、知識ベース206として、39種類の症状と854の病気の関係を収めたものを用いた。また、対話行為タイプとして、観測2003、観測2006、行動2004、及び、行動2007(図2参照)に含まれる対話行為における対話行為タイプを用いた。対話のシミュレーション実験において対話システム10のフロントエンド2002と対話するユーザとしての患者シミュレータは、指定された病気と関連づけられた症状の回答(対話行為「Provide()」に相当する回答)を1回行い、その後は、対話システム10の質問に返答する。
その他の主な条件は、以下の通りである。
・フロントエンド2002における言語理解の機能部分は、25%の割合で誤った症状を生成する。
・信頼度に応じた状態の分割数は4で、分割のための3つの閾値は、0.2、0.5及び0.8である。
・バックエンド2005(知識処理部207)は、症状に係る検索キーワードを用いて検索して特定された病気(病気の候補)が1つになるか、又は、病気を絞り込むためのキーワード(症状)の候補がなくなると、検索により特定された病気を結論として出力(エージェント2001に提供)する。それ以外の場合には、バックエンド2005は、絞り込むために有効なキーワードを提案(エージェント2001に提供)する。
・結論として得られた病気の数が3つ以内で、かつ、患者シミュレータに対して指定された病気が含まれれば、正解とする。
図7には、以上の条件で、「確認戦略なし」と、「確認戦略あり(hand-crafted)」と、「確認戦略あり(強化学習)」との3種類のモデルにおける実験結果をまとめている。ここで、「確認戦略なし」は、図6Cの状態遷移図に対応するモデルである。また、「確認戦略あり(hand-crafted)」は、信頼度が0.5以上の2つの状態については確認を行わず、信頼度が0.5未満の2つの状態については確認を行うようにしたものであり、図6Dの状態遷移図に対応するモデルである。「確認戦略あり(強化学習)」も、図6Dの状態遷移図の類型に相当するモデルであるが、このモデルでは、信頼度に応じた4つの状態が取るべき行動について、確認(Confirm)してから「push」するか、確認しないで「push」するかは、POMDPモデルでの強化学習によって得られた方策に従うようにした。ある環境内でエージェントは現在の状態を観測して取るべき行動を決定するところ、強化学習では、エージェントが逐次選択した行動を行うことで、環境から最も多くの報酬が得られるような方策を学習する。「確認戦略あり(強化学習)」のモデルの強化学習での報酬については、トレーニング用の対話コーパスに表れる対話行為の系列が通る経路については5、それ以外は−50を基本として、特に、「s2d corr」からの「push(*)」は100、「s2d posi」からの「push(*)」は−1として、誤りの訂正のための確認を行って訂正されれば価値が高く、訂正の必要がないときの確認は価値が低いという設定を行った。
図7の平均ターン数は、フロントエンド2002とユーザ(患者シミュレータ)の間のインタラクションのみについてカウントしたターン数である。また、平均報酬は、「確認戦略あり(強化学習)」の他に強化学習を用いないモデルについても同じ条件で算出している。
実験結果として図7のように、正解率は、「確認戦略あり(強化学習)」が最も高く、「確認戦略あり(hand-crafted)」が次に高く、「確認戦略なし」が最も低いことが確認できた。また、平均ターン数は、「確認戦略あり(強化学習)」が最も少なく、「確認戦略あり(hand-crafted)」が次に少なく、「確認戦略なし」が最も多いことが確認できた。また、得られる平均報酬は、「確認戦略あり(強化学習)」が最も高く、「確認戦略あり(hand-crafted)」が次に高く、「確認戦略なし」が最も低いことが確認できた。
なお、「確認戦略あり(強化学習)」のモデルの強化学習に用いたPOMDPソルバーによる学習結果が収束するまでに要した時間は1秒未満であるが、図6Aの状態遷移図に対応するモデルではPOMDPソルバーが要した時間は30日以上であった。
(他の実施の形態等)
以上のように、本発明に係る技術の例示として実施の形態1を用いて説明した。しかしながら、上述の実施の形態は一例にすぎず、各種の変更、付加、省略等が可能であることは言うまでもない。
上述の実施の形態では、バックエンド2005が知識ベース206の検索処理を行う例を示したが、バックエンド2005における情報処理は、検索処理でなくてもよく、いかなる処理であってもよい。バックエンド2005は知識ベース206以外の外部装置と通信してもよい。また、知識ベース206は必ずしもバックエンド2005の外部に存在する必要はなくバックエンド2005に含まれるものとしてもよい。
また、上述の実施の形態では、フロントエンド2002、バックエンド2005が1つずつである例を示したが、フロントエンド2002及びバックエンド2005のそれぞれは、1つに限定されず、複数設けてもよい。
また、上述の実施の形態では、付帯情報がキーワードである例を示したが、付帯情報は文字列以外の情報であってもよい。例えば、付帯情報は、標章、図形、画像、音声データ等であってもよい。また、例えば、付帯情報は、キーワードのみではなく、キーワードの種類を表すスロットとキーワードとの組であってもよい。
また、上述の実施の形態では行動決定部203が、POMDPモデルに基づいて行動として対話行為タイプを決定することとしたが、行動決定部203は、必ずしもPOMDPモデルに基づくものでなくてもよい。行動決定部203は、例えば、信念状態に依らず、予め定められた方策と過去に入力された対話行為タイプの系列(履歴)とに基づいて、対話行為タイプを決定するものであってもよい。
また、上述の実施の形態では、提供部205が、対話行為における先頭文字が大文字か小文字かにより対話行為の提供先がフロントエンド2002かバックエンド2005かを判定する例を示した。しかし、対話行為における対話行為タイプの値(対話行為タイプ値)が、フロントエンド2002に向けたものとして予め定められた種類(第1種)か、バックエンド2005に向けたものとして予め定められた種類(第2種)かにより区別できれば足りるので、その区別を、大文字か小文字かによる区別以外の方法で実現してもよい。提供部205が、対話行為タイプ値と、第1種か第2種かの種類(つまり提供先を区別する種類)とを対応付けた対応表を有していてもよい。例えば、提供部205は、決定部200により決定された提供用の対話行為における対話行為タイプが第1種及び第2種のいずれの対話行為タイプ値を表すかに基づいて、対話行為の提供先を選択し、選択した提供先へ対話行為を提供し得る。
上述の実施の形態では、対話システム10を問診に用いる場合を例として説明した。しかし、上述の対話行為タイプは、問診に限らず、対話により情報を特定するタスクにおいては共通するものである。
そのため、対話システム10を、問診の例に限らず、種々の分野において、ユーザとの対話により情報を特定するタスクの遂行に適用することが可能である。具体例としては、対話システム10は、料理等の分野でのレシピ検索、観光等の分野での旅行プラン検索、不動産売買等の分野での不動産物件検索、テレビジョン放送等の分野での映像コンテンツ検索等に適用可能である。この場合に、対話システム10(図2参照)では、例えば、知識ベース206には、所定の分野(対話システム10の適用分野等)に有用な情報を保持させておき、フロントエンド2002で、当該分野に関して、自然言語で表現される情報をユーザとの間で交換するようにすればよい。なお、対話システム10が行う対話処理は図3で例示した処理と同様である。
対話システム10をレシピ検索に用いる場合においては、知識ベース206に、例えば、食材、調味料、料理、調理方法等に関連する情報を保持させ、フロントエンド2002では、例えば、好みの料理のジャンルや食材等に関する情報をユーザとの対話により取得するようにすればよい。また、対話システム10を旅行プラン検索に用いる場合においては、知識ベース206に、例えば、行き先、人数、宿泊数、予算等に関する情報を保持させ、フロントエンド2002では、例えば、ユーザが所望する旅行プランの行き先や人数等に関する情報をユーザとの対話により取得するようにすればよい。また、対話システム10を不動産物件検索に用いる場合においては、知識ベース206には、例えば、住居エリア、間取り、築年数、最寄り駅からの距離、家賃等に関連する情報を保持させ、フロントエンド2002では、例えば、ユーザが所望する不動産物件の住居エリアや間取り等に関する情報をユーザとの対話により取得するようにすればよい。また、対話システム10を映像コンテンツ検索に用いる場合においては、知識ベース206には、例えば、ジャンル、出演者、放送局、放送日時等に関する情報を保持させ、フロントエンド2002では、例えば、ユーザが見たい番組のジャンルや出演者等に関する情報をユーザとの対話により取得するようにすればよい。なお、いずれのタスクにおいても、ユーザとの対話によりユーザから取得する情報の種類、取得順、総数等は、予め定められた一定値等である必要はなく、ユーザが所望する情報が十分に絞り込まれて特定されるという条件を満たすように動的に決定されればよい。
以上の各例において、エージェント2001における分離部202は、フロントエンド2002及びバックエンド2005のいずれかから取得した対話行為を対話行為タイプと付帯情報とに分離するが、前述のとおり、情報を特定するタスクでは、対話行為タイプは分野を問わず共通するため、対話行為タイプの値は、問診の例と同様のものを用いることができる。
なお、具体的な適用分野に応じて、対話行為タイプを適宜追加してもよい。例えば、レシピ検索においては、実施の形態で例示した対話行為タイプに加え、ユーザからの情報要求に応じて推薦するレシピ(お薦めレシピ)の情報を提示するケースとして、フロントエンド2002からエージェント2001への推薦情報要求の対話行為タイプ「RequestRecommend」、エージェント2001からバックエンド2005への推薦情報探索の対話行為タイプ「seek_recommend」、バックエンド2005からエージェント2001への推薦情報提供の対話行為タイプ「inform_recommend」、エージェント2001からフロントエンド2002への推薦情報提示「PresentRecommend」、及び、お薦め情報等を追加してもよい。このようにして、分野に応じて効率的に情報の特定を行うことが可能となる。
また、上記実施の形態における各構成要素(エージェント2001、フロントエンド2002、バックエンド2005等)の一部又は全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAM等を含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。また、上記各装置を構成する構成要素の各部は、個別に1チップ化されていてもよいし、一部又はすべてを含むように1チップ化されてもよい。また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。更には、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
また、上記実施の形態における各構成要素の一部又は全部は、コンピュータ等の装置に脱着可能なICカード又は単体のモジュールから構成されているとしてもよい。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
また、本発明の一態様としては、例えば図3、図5等に示す手順の全部又は一部を含む対話方法であるとしてもよい。対話システム10で用いられる対話方法は、例えば、エージェント2001が、フロントエンド2002及びバックエンド2005の一方から取得した対話行為に応じて提供用の対話行為を決定する決定ステップと、エージェント2001が、前記決定ステップで決定された提供用の対話行為を、フロントエンド2002及びバックエンド2005の一方へ提供する提供ステップとを含み、前記決定ステップでは提供用の対話行為における対話行為タイプを、フロントエンド2002及びバックエンド2005の集合から逐次取得した対話行為における、付帯情報の系列に基づかず対話行為タイプの系列に基づいて、決定する。例えば、前記決定ステップは、フロントエンド2002及びバックエンド2005の集合から対話行為を逐次取得し、取得した対話行為における付帯情報と対話行為タイプとを分離する分離サブステップと、前記分離サブステップで分離された対話行為タイプを観測とし、その観測に基づいて、観測に対応して行動を決定するための基準となる信念状態情報を参照して、行動としての対話行為タイプを決定する行動決定サブステップと、前記行動決定サブステップで決定された対話行為タイプと前記分離サブステップで分離された付帯情報とを合成することで提供用の対話行為を生成する合成サブステップと、前記分離サブステップで分離された対話行為タイプの系列である観測と、前記行動決定サブステップで決定された対話行為タイプの系列である行動とに応じて信念状態情報を更新する更新ステップとを含む。また、この対話方法をコンピュータにより実現するコンピュータプログラム(例えば前記決定ステップと前記提供ステップとを含む対話制御処理を行うプログラム等)であるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。また、本発明の一態様としては、前記コンピュータプログラム又は前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリ等に記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。また、本発明の一態様としては、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。また、本発明の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、或いは前記プログラム又は前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
また、上記実施の形態で示した対話システム10に係る技術は、上述したサービスの態様(図1参照)の他、例えば、以下のクラウドサービスの類型において実現され得る。但し、上記実施の形態で示した技術の適用が、ここで説明するクラウドサービスの類型に限られるものではない。
(サービスの類型1:自社データセンタ型クラウドサービス)
図8は、サービスの類型1(自社データセンタ型クラウドサービス)における対話システムが提供するサービスの全体像を示す図である。本類型では、サービスプロバイダ1120が、機器1101からユーザ1010により入力される情報を取得し、ユーザ1010に対して機器1101を介してサービスを提供する。本類型では、サービスプロバイダ1120が、データセンタ運営会社の機能を有している。すなわち、サービスプロバイダ1120が、ビッグデータを管理するクラウドサーバを保有している。本類型では、データセンタ運営会社は存在しない。本類型では、サービスプロバイダ1120は、データセンタとしてのクラウドサーバ1203を有し、オペレーティングシステム(OS)1202及びアプリケーションプログラム(アプリケーション)1201を管理する。サービスプロバイダ1120は、OS1202及びアプリケーション1201を用いて、クラウドサーバ1203により機器1101と通信することで、サービスを提供する。
(サービスの類型2:IaaS利用型クラウドサービス)
図9は、サービスの類型2(IaaS利用型クラウドサービス)における対話システムが提供するサービスの全体像を示す図である。ここで、IaaSとは、インフラストラクチャー・アズ・ア・サービスの略であり、コンピュータシステムを構築および稼動させるための基盤そのものを、インターネット経由のサービスとして提供するクラウドサービス提供モデルである。
本類型では、データセンタ運営会社1110が、データセンタ(クラウドサーバ)1203を運営及び管理している。また、サービスプロバイダ1120は、OS1202及びアプリケーション1201を管理する。サービスプロバイダ1120は、サービスプロバイダ1120が管理するOS1202及びアプリケーション1201を用いてサービスを提供する。
(サービスの類型3:PaaS利用型クラウドサービス)
図10は、サービスの類型3(PaaS利用型クラウドサービス)における対話システムが提供するサービスの全体像を示す図である。ここで、PaaSとは、プラットフォーム・アズ・ア・サービスの略であり、ソフトウェアを構築および稼動させるための土台となるプラットフォームを、インターネット経由のサービスとして提供するクラウドサービス提供モデルである。
本類型では、データセンタ運営会社1110は、OS1202を管理し、データセンタ(クラウドサーバ)1203を運営及び管理している。また、サービスプロバイダ1120は、アプリケーション1201を管理する。サービスプロバイダ1120は、データセンタ運営会社1110が管理するOS1202及びサービスプロバイダ1120が管理するアプリケーション1201を用いてサービスを提供する。
(サービスの類型4:SaaS利用型クラウドサービス)
図11は、サービスの類型4(SaaS利用型クラウドサービス)における対話システムが提供するサービスの全体像を示す図である。ここで、SaaSとは、ソフトウェア・アズ・ア・サービスの略である。SaaS利用型クラウドサービスは、例えば、データセンタ(クラウドサーバ)を保有しているプラットフォーム提供者が提供するアプリケーションを、データセンタ(クラウドサーバ)を保有していない会社又は個人等の利用者がインターネット等のネットワーク経由で使用できる機能を有するクラウドサービス提供モデルである。
本類型では、データセンタ運営会社1110は、アプリケーション1201を管理し、OS1202を管理し、データセンタ(クラウドサーバ)1203を運営及び管理している。また、サービスプロバイダ1120は、データセンタ運営会社1110が管理するOS1202及びアプリケーション1201を用いてサービスを提供する。
以上、いずれのクラウドサービスの類型においても、サービスプロバイダ1120がサービスを提供する。また、例えば、サービスプロバイダ又はデータセンタ運営会社は、OS、アプリケーション又はビッグデータのデータベース等を自ら開発してもよいし、また、第三者に開発させてもよい。
なお、上述したクラウドサービスの類型に依らずに、図1に示す機器1101(例えばスマートフォン、PC等)単体で対話システム10を構成してもよいし、例えば、知識ベース206を機器1101の外部のネットワーク上に配置して知識ベース206及び機器1101とで対話システム10を構成してもよい。
また、上記実施の形態で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本発明の範囲に含まれる。