以下、学習システム等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態においてシミュレーション装置と対話装置との対話を自動生成し、報酬を決定し、重みベクトルを更新していく学習システムについて説明する。なお、重みベクトルとは、ユーザ状態情報の各要素に対する重みの集合である。
なお、対話装置は、ユーザが装置から情報の提示や情報の推薦を受けながら、候補を選択する相談型の対話装置を、シミュレーション装置対応にした装置である。
本実施の形態において、対話装置は、複数の候補(ここでは、主として、スポットと言う)の中からユーザに適した候補を選択する相談型対話のモデルを実装する対話装置である。
図1は、本実施の形態における学習システムの概念図である。学習システムは、対話装置1とシミュレーション装置2を具備する。対話装置1とシミュレーション装置2とは、対話を示すデータである対話データ(後述する対話文情報およびユーザ入力情報)をやりとりしながら、シミュレーション装置2が対話装置1の重みベクトルを更新する。かかる更新を学習と適宜言うこととする。また、図1において、対話装置1とシミュレーション装置2とは、2つの装置であるが、一つの装置でも良い。
図2は、本実施の形態における学習システムを構成する対話装置1の内部構造を示すブロック図である。
対話装置1は、知識ベース11、情報推薦手法格納部12、ユーザ状態情報格納部13、ユーザ入力情報受付部14、スコア算出部15、対話文情報構成部16、対話文出力部17、ユーザ状態情報更新部18を具備する。
対話文情報構成部16は、手法識別子取得手段161、変数値取得手段162、対話文情報構成手段163を具備する。
ユーザ状態情報更新部18は、ユーザ提示用語取得手段181、装置提示用語取得手段182、嗜好ベクトル更新手段183、知識ベクトル更新手段184を具備する。
図3は、本実施の形態における学習システムを構成するシミュレーション装置2の内部構造を示すブロック図である。
シミュレーション装置2は、知識ベース11、対話情報格納部21、ユーザ嗜好ベクトル格納部22、対話文情報受付部23、ユーザ文種類決定部24、決定要因等取得部25、ユーザ入力情報送付部26、報酬算出部27、学習部28を具備する。
報酬算出部27は、ランダム選択合致値算出手段271、選択スポット合致度算出手段272、報酬算出手段273を具備する。
なお、対話装置1とシミュレーション装置2とは、知識ベース11を共用しても良いことは言うまでもない。
知識ベース11は、2以上のスポット情報を格納している。スポット情報とは、スポットと、1以上の決定要因と、評価値とを有する情報である。スポットとは、スポットを識別する情報と同意義であり、例えば、スポット名である。スポットとは、観光のスポット、レストラン、店舗など、通常、ユーザが訪れる場所である。ただし、対話の対象となるものであれば何でも良い。例えば、スポットとは、企業、人の集まり、概念などでも良く、広く解する。また、決定要因は、スポットを決定するための要因である。また、決定要因は、スポットの属性とも言える。決定要因は、スポットの評価の観点とも言える。スポットが観光地である場合、決定要因は、例えば、「庭園で有名」「混雑していない」「世界遺産」「景色がいい」などである。また、評価値は、スポットの1以上の各決定要因の評価を示す情報である。評価値は、「1(○),0(×)」などの2値(2段階)でも良いし、1から5の整数などの多段階でも良い。評価値は、スポットが決定要因に当てはまるか否かを示す評価の値である。スポット情報は、スポットと決定要因に対応する説明文を有しても良い。スポット情報が説明文を有する場合、通常、一のスポットと一の決定要因ごとに説明文を有する。
情報推薦手法格納部12は、2以上の情報推薦手法を格納している。情報推薦手法は、ここでは、手法識別子と、文パターン情報と、評価情報と、重みベクトルとを有する。手法識別子は、情報推薦手法を識別する情報である。文パターン情報は、対話装置1が出力する文または対話装置1が出力する文のパターンを示す情報である。評価情報は、文パターン情報を選択する際に利用される文パターン情報の評価のための情報である。評価情報は、情報推薦手法を評価するための情報である、とも言える。評価情報は、例えば、後述するように29の要素を有するベクトルである。重みベクトルは、評価情報を構成する各要素の重みを示すベクトルである。なお、情報推薦手法において、文パターン情報は必須ではない。情報推薦手法は、手法識別子と、評価情報と、重みベクトルとからなっていても良い。
また、情報推薦手法には、例えば、以下の6つの手法がある。(1)現在話題のスポットに関する情報推薦(手法1)、(2)現在話題の決定要因に関する情報推薦(手法2)、(3)オープンプロンプト(手法3)、(4)決定要因の提示1(手法4)、(5)決定要因の提示2(手法5)、(6)ユーザが、興味があると推定されるスポットの推薦(手法6)である。手法1は、手法識別子「1」と、直前に説明したスポットについて、詳細な説明を推薦する文パターン情報と、文パターン情報の評価情報と、重みベクトルとを有する現在話題スポット情報推薦手法である。手法2は、手法識別子「2」と、直前に説明した決定要因に関連した別の観光スポットを推薦する文パターン情報と、文パターン情報の評価情報と、重みベクトルとを有する現在話題決定要因情報推薦手法である。手法3は、手法識別子「3」と、特に情報を推薦せず、オープンプロンプトを示す文パターン情報と、文パターン情報の評価情報と、重みベクトルとを有するオープンプロンプト情報推薦手法である。手法4は、対話装置1が説明可能な決定要因を提示する手法である。手法4が選択された場合、対話装置1が推定するユーザの知識が低い決定要因から選択する。手法5は、手法4と同様に、対話装置1が説明可能な決定要因を提示する手法である。手法5が選択された場合、対話装置1が推定するユーザの知識が高い決定要因から選択する。手法6は、対話装置1が推定するユーザの興味に基づいて、ユーザが最も興味を示すと考えられるスポットkを選択し、ユーザに提示する手法である。
ユーザ状態情報格納部13は、ユーザの状態を示す情報であり、1以上の各決定要因に対するユーザの嗜好を示す情報である嗜好ベクトルと、1以上の各決定要因に対するユーザの知識を示す知識ベクトルとを有するユーザ状態情報を格納している。また、ユーザ状態情報は、ユーザの1以上の属性値を示す情報である属性ベクトルを有しても良い。ユーザの属性値とは、例えば、性別(男性または女性)、年齢層(10代,20代,30代,団塊の世代団塊ジュニアなど)、職業、出身地、支持政党等である。
ユーザ状態情報は、ユーザの決定要因の観点からのスポットに対する重要度を示す1以上の局所重みに関する情報である局所重み情報を含むことは好適である。ユーザの決定要因mの観点からのスポットnに対する局所重みvnmは、例えば、対話装置1が情報推薦手法1または情報推薦手法2または情報推薦手法6を用いてユーザにスポットの評価を知らせた場合に「1」をとるものとする。なお、これは、ユーザは、対話装置1から提示された情報のみから判断すると仮定している。また、ユーザ状態情報格納部13のユーザ状態情報は、対話の進行とともに、動的に変更される。
また、ユーザ状態情報は、対話装置1とシミュレーション装置2との現在までの対話の量を示す情報である対話量情報を有することは好適である。また、ユーザ状態情報は、直前に対話装置1が送付した対話文情報に対応する決定要因に関する情報、または直前にシミュレーション装置2から受け付けたユーザ入力情報に対応する決定要因に関する情報のいずれか1以上の情報を含むことは好適である。
ユーザ入力情報受付部14は、シミュレーション装置2から、ユーザ入力情報を受け付ける。ユーザ入力情報とは、ユーザ文種類識別子を有する情報、またはユーザ文種類識別子と1以上の決定要因または1以上のスポットのうちの1以上の情報とを有する情報である。ユーザ文種類識別子とは、ユーザが入力する文のパターンを識別する情報である。
スコア算出部15は、情報推薦手法格納部12に格納されている2以上の各情報推薦手法が有する評価情報および重みベクトルと、ユーザ状態情報とを用いて、2以上の各情報推薦手法に対する2以上のスコアを算出する。また、スコア算出部15は、情報推薦手法格納部12に格納されている2以上の各情報推薦手法が有する評価情報および重みベクトルと、ユーザ状態情報更新部18が更新したユーザ状態情報とを用いて、2以上の各情報推薦手法に対する2以上のスコアを算出する。
スコア算出部15は、通常、対話文出力部17が対話文を出力する前(直前であるとは限らない)に、スコアを算出する。なお、スコア算出部15は、ユーザ入力情報受付部14がユーザ入力情報を受け付けるごとに、スコアを算出することは好適である。また、ここで、スコア算出部15は、例えば、演算式「スコア=f(ユーザ状態情報,重みベクトル)」によりスコアを算出することである。また、例えば、fは「スコア=ユーザ状態情報×重みベクトル」である。つまり、スコア算出部15は、次に対話装置1が出力すべき文の文パターン情報を決定するために、文パターン情報と対応付けて管理されている評価情報と動的に変化するユーザ状態情報とを用いて、情報推薦手法ごとにスコアを算出する。
対話文情報構成部16は、スコア算出部15が算出した2以上のスコアを用いて、対話文情報を構成する。通常、対話文情報構成部16は、スコア算出部15が算出した最大のスコアに対応する情報推薦手法を識別する手法識別子を有する対話文情報を構成する。なお、対話文情報は、手法識別子を有する。対話文情報は、1以上の決定要因または1以上のスポットのうちの1以上の情報を有することは好適である。手法識別子は、一の情報推薦手法を識別する情報である。
手法識別子取得手段161は、スコア算出部15が算出した2以上のスコアのうち最も大きいスコアに対応する一の情報推薦手法を識別する手法識別子を、情報推薦手法格納部12から取得する。
変数値取得手段162は、対話文出力部17が直前に出力した対話文情報、またはユーザ入力情報受付部14が直前に受け付けたユーザ入力情報のうちの1以上の情報から、1以上のスポットまたは1以上の決定要因のうちの1以上の情報を取得する。
対話文情報構成手段163は、手法識別子取得手段161が取得した手法識別子、変数値取得手段162が取得した1以上のスポットまたは1以上の決定要因のうちの1以上の情報から、対話文情報を構成する。
なお、スコア算出部15、および対話文情報構成部16により、システムの行動asys(casys)は、以下の数式1が示すソフトマックス政策に基づいて選択される。なお、システムの行動とは、対話文情報が有する手法識別子である。
数式1において、Sはユーザ状態情報である。kは、手法識別子である。また、θは、パラメータの集合であり、(θ11,θ12,...,θ1I,...,θJI)は,J(手法数)×I(特徴量数)個のパラメータからなる.パラメータθjiは,行動jのi番目の特徴量に対する重みであり、手法jの選択されやすさを決定する。このθが、学習システムにおける学習の対象である。なお。学習には、好ましくは強化学習が用いられる。
対話文出力部17は、対話文情報構成部16が構成した対話文情報を、シミュレーション装置2に送付する。
ユーザ状態情報更新部18は、ユーザ入力情報受付部14が受け付けたユーザ入力情報、または対話文出力部17が出力した対話文のうちの1以上の情報から、少なくとも1以上のスポットまたは1以上の決定要因を取得し、当該1以上のスポットまたは1以上の決定要因を用いて、ユーザ状態情報格納部13のユーザ状態情報を更新する。そして、ユーザ状態情報更新部18は、通常、取得したスポットまたは決定要因についてのユーザ状態情報を構成する要素の値(嗜好ベクトルや知識ベクトルや属性ベクトルなどの要素)が上昇するようにユーザ状態情報を更新する。ユーザ状態情報更新部18は、取得したスポットまたは決定要因についてのユーザ状態情報を構成する要素の値をどのような演算式やアルゴリズムで上昇されるかは問わない。ユーザ状態情報更新部18は、取得したスポットまたは決定要因についてのユーザ状態情報を構成する要素の値を、定数を加算することにより上昇させても良いし、定数を乗算することにより上昇させても良いし、その他の増加関数により上昇させても良い。
また、ユーザ状態情報更新部18は、通常、ユーザ入力情報受付部14がユーザ入力情報を受け付けるごとに更新する。ただし、ユーザ状態情報更新部18は、対話文出力部17が対話文を送付するごとに更新しても良い。
ユーザ提示用語取得手段181は、ユーザ入力情報受付部14が受け付けたユーザ入力情報から少なくとも1以上の決定要因を取得する。ユーザ提示用語取得手段181は、肯定的な決定要因のみを取得しても良いし、肯定/否定を検知して、各カテゴリー(肯定/否定)ごとに決定要因を取得しても良い。また、ユーザ提示用語取得手段181は、着目決定要因を取得しても良い。
装置提示用語取得手段182は、対話文出力部17が出力した対話文から、少なくとも1以上の決定要因を取得する。なお、対話文出力部17が出力した対話文とは、対話文情報構成部16が構成した対話文と同意義である。また、装置提示用語取得手段182は、肯定的な決定要因のみを取得しても良いし、肯定/否定を検知して、各カテゴリー(肯定/否定)ごとに決定要因を取得しても良い。また、装置提示用語取得手段182は、着目決定要因を取得しても良い。
嗜好ベクトル更新手段183は、ユーザ提示用語取得手段181が取得した1以上の決定要因に対する嗜好ベクトルの要素の値を高くするように、ユーザ状態情報を更新する。また、嗜好ベクトル更新手段183は、装置提示用語取得手段182が取得した1以上の決定要因の中で、ユーザ提示用語取得手段181が取得できなかった1以上の決定要因に対する嗜好ベクトルの要素の値を低くするように、ユーザ状態情報を更新する。これは、対話装置1が出力したが、シミュレーション装置2に選択されなかった決定要因の値を低くすることである。
知識ベクトル更新手段184は、装置提示用語取得手段182が取得した1以上の決定要因に対する知識ベクトルの要素の値を高くするように、ユーザ状態情報を更新する。
なお、ユーザ状態情報更新部18は、ユーザ提示用語取得手段181が取得した1以上の決定要因に対する属性ベクトルの要素の値を変更し、ユーザ状態情報を更新する属性ベクトル更新手段185を具備しても良い。
シミュレーション装置2を構成する対話情報格納部21は、対話確率情報、決定要因確率情報、およびスポット確率情報とを格納し得る。対話確率情報とは、各情報推薦手法と各ユーザ文種類との確率に関する情報である。対話確率情報は、例えば、(手法識別子,ユーザ文種類識別子,ユーザ文種類,確率)の情報が、手法識別子とユーザ文種類識別子との組み合わせの数だけ有する。かかる場合、確率は、手法識別子で識別される手法に対応する文が対話装置から送付された場合に、シミュレーション装置2がユーザ文種類識別子で識別される種類の文を生成する(対話装置1に送信する)確率である。決定要因確率情報とは、決定要因が選択される確率に関する情報である。決定要因確率情報は、例えば、(決定要因,確率)の集合である。決定要因確率情報は、関連する2以上の決定要因確率情報を有するグループごとに、管理されている。スポット確率情報は、スポットが選択される確率に関する情報である。なお、すべてのスポットが選択される確率が同じである場合、スポット確率情報は不要である。また、ユーザ文種類とは、ユーザの回答の種類であるとも言えるし、ユーザが入力する文の種類であるとも言える。ユーザの回答、ユーザが入力する文は、ここではシミュレーション装置2が対話装置1に送付する情報とも言える。
ユーザ嗜好ベクトル格納部22は、ユーザの嗜好を示すベクトルであるユーザ嗜好ベクトルを格納し得る。ユーザ嗜好ベクトルは、2以上の各決定要因に対する嗜好を示す値の集合である。各決定要因に対する値は「0」または「1」のどちらかであっても良いし、多段階(例えば、1から5のいずれかの整数等)であっても良い。
対話文情報受付部23は、対話装置1から対話文情報を受け付ける。ここでの受け付けとは、通常、情報の受け渡しである。なお、対話文情報は、手法識別子を有する。対話文情報は、1以上の決定要因または1以上のスポットのうちの1以上の情報を有することは好適である。
ユーザ文種類決定部24は、対話文情報が有する手法識別子と対話確率情報とを用いて、ユーザ文種類を決定し、ユーザ文種類識別子を取得する。ユーザ文種類決定部24は、対話文情報が有する手法識別子と対になる確率とユーザ文種類識別子とを、対話確率情報から取得し、当該確率に応じて、ユーザ文種類識別子を取得する。
決定要因等取得部25は、1以上の決定要因または1以上のスポットを取得する。決定要因等取得部25は、決定要因確率情報またはスポット確率情報のうちの1以上の情報を用いて、1以上の決定要因または1以上のスポットを取得する。また、決定要因等取得部25は、決定要因確率情報またはスポット確率情報のうちの1以上の情報および対話文情報が有する1以上の決定要因または1以上のスポットのうちの1以上の情報とを用いて、1以上の決定要因または1以上のスポットを取得する。例えば、対話文情報が3つのスポットを有する場合、決定要因等取得部25は、スポット確率情報が有する前記3つの各スポットの確率に応じて、一のスポットを取得する。なお、決定要因等取得部25は、対話文情報の中にスポットが含まれない場合、スポット確率情報が有する確率に応じて、一のスポットを取得することは好適である。
ユーザ文種類決定部24と決定要因等取得部25とにより、システムの行動at sysに対するユーザの発話行為cat user、意味内容sct userが取得される。ユーザ文種類決定部24と決定要因等取得部25とは、以下の数式2を用いて、ユーザの発話行為と意味内容とを取得する。ここでユーザの発話行為とは、ユーザ文種類識別子である。また、意味内容とは、1以上の決定要因または1以上のスポットのうちの1以上の情報である。
すなわち、数式2は、ユーザの発話行為cat userは、条件付き確率Pr(cat user|cat sys)に基づいて、取得される。条件付き確率は、上述した対話確率情報である。ユーザ発話の意味内容sct userは,ユーザの知識下にあるユーザの嗜好に基づいて決定される。scは,ユーザが知っている(km=1)決定要因の中から,ユーザが興味の有無に基づいて(コーパスの統計に基づいて)取得される。
ユーザ入力情報送付部26は、ユーザ入力情報を対話装置1に送付する。ユーザ入力情報は、ユーザ文種類識別子を有する。また、ユーザ入力情報は、ユーザ文種類識別子と1以上の決定要因または1以上のスポットのうちの1以上の情報とを有しても良い。ここでのユーザ文種類識別子は、ユーザ文種類決定部24が取得したユーザ文種類識別子である。また、1以上の決定要因または1以上のスポットは、決定要因等取得部25が取得した情報である。
報酬算出部27は、決定要因等取得部25が取得したスポットが選択された場合の報酬を算出する。報酬算出部27は、決定要因等取得部25が取得したスポットの1以上の各決定要因の評価を示す1以上の評価値を、知識ベース11から取得する。そして、報酬算出部27は、ユーザ嗜好ベクトル格納部22からユーザ嗜好ベクトルを読み出す。そして、報酬算出部27は、読み出したユーザ嗜好ベクトルと、取得したスポットの1以上の各決定要因の評価を示す1以上の評価値(適宜、「スポット評価ベクトル」という)との合致度を算出し、合致度を用いて、ユーザ文種類識別子で識別されるユーザ文種類が選択される報酬を算出する。例えば、ユーザ嗜好ベクトルが(1,0,1,1,1)、取得したスポット評価ベクトルが(1,1,0,1,1)である場合、合致度は「3」とする。合致度は、例えば、ユーザ嗜好ベクトルとスポット評価ベクトルとで、一致している要素の数である。また、報酬算出部27は、後述するランダム選択合致値算出手段271、選択スポット合致度算出手段272、および報酬算出手段273を用いて、ランダムにスポットを決定した場合と、決定要因等取得部25が取得したスポットが選択された場合とを比較し、報酬を算出することは好適である。
報酬算出部27は、例えば、以下の数式3の報酬関数を用いて、報酬を算出する。
報酬関数は、ユーザが選択したスポットが持つ属性(1以上の評価値)と、ユーザの嗜好(ユーザ嗜好ベクトル)との一致率を基に報酬を算出する関数である。ユーザは、現在の対話状態における知識Kuserと局所重みVuserの下で、最も優先度(Σmkk・pk・vkm)が高いスポットkを選択するものとする。報酬Rは、ユーザが決定したスポットkが,ランダムにスポットを決定した場合と比較してどれだけよい選択であるかに基づいて与えられる。数式3において、Mは、1以上の評価値の数であり、ユーザ嗜好ベクトルの要素の数であり、例えば、29である。数式3において、Nは、スポットの数である。また、数式3において、pmは、ユーザ嗜好ベクトルである。また、ek,mは、スポットkの評価情報の各要素である。
ランダム選択合致値算出手段271は、スポット確率情報を用いて、ランダムにスポットを決定した場合の1以上の評価値とユーザ嗜好ベクトルとの合致度の期待値を算出する。なお、スポット確率情報が、すべてのスポットについて同一でも良く、かかる場合、「ランダムにスポットを決定した場合」とは、「均等な割合でスポットを決定した場合」という意味である。
選択スポット合致度算出手段272は、ユーザ嗜好ベクトルと、ユーザ入力情報に含まれるスポットの1以上の各決定要因の評価を示す1以上の評価値との合致度を算出する。また、選択スポット合致度算出手段272は、決定要因等取得部25が決定したスポットの1以上の各決定要因の評価を示す1以上の評価値と、ユーザ嗜好ベクトルとの合致度を算出しても良い。ユーザ入力情報に含まれるスポット、または決定要因等取得部25が決定したスポットをここでの着目スポットという。
報酬算出手段273は、ランダム選択合致値算出手段271が算出した合致度の期待値と、選択スポット合致度算出手段272が算出した合致度とを用いて、ユーザ入力情報に含まれるスポットが選択されたことの報酬を算出する。
学習部28は、報酬を用いて、対話装置1の手法識別子に対応する重みベクトルであり、対話装置1の情報推薦手法格納部12の重みベクトルを更新する。学習部28は、例えば、報酬が正の数の場合、対話文情報が有する情報推薦手法がより選択されやすくなるように、対話装置1の手法識別子に対応する重みベクトルを更新する。この重みベクトルは、情報推薦手法格納部12の重みベクトルである。ここで更新とは、学習部28が情報推薦手法格納部12の重みベクトルを、直接的に書き換えても良いし、対話装置1に更新を指示しても良い。対話装置1が更新の指示を受け付けた場合、対話装置1は重みベクトルを書き換える、とする。学習部28が重みベクトルを更新する方法や度合いは問わない。通常、報酬が大きいほど、学習部28は、対話文情報が有する情報推薦手法がより選択されやすくなるように、報酬の大きさに応じて、対話装置1の手法識別子に対応する重みベクトルを更新する。また、学習部28は、例えば、報酬が負の数の場合、対話文情報が有する情報推薦手法がより選択されにくくなるように、対話装置1の手法識別子に対応する重みベクトルを更新する。例えば、学習部28は、自然政策勾配法の一つである、後述するNatural Actor Critic(NAC)のアルゴリズムにより、重みベクトルを更新する。NACについては、「八谷大岳,杉山 将:強くなるロボティック・ゲームプレイヤーの作り方,毎日コミュニケーションズ(2008).」に記載されており、公知技術であるので、詳細な説明を省略する。なお、NACは、政策を最適化する手法であり、自然政策勾配法の一つである。政策勾配法では,状態Sに対する価値関数を直接推定したり、行動価値関数Q(S,A)を推定したりすることは行わない代わりに、更新前の政策により得られた対話エピソードの報酬を増加させるように自然勾配法により政策πを直接更新する。
知識ベース11、情報推薦手法格納部12、ユーザ状態情報格納部13、対話情報格納部21、ユーザ嗜好ベクトル格納部22は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。知識ベース11等にスポット情報等が記憶される過程は問わない。例えば、記録媒体を介してスポット情報等が知識ベース11等で記憶されるようになってもよく、通信回線等を介して送信されたスポット情報等が知識ベース11等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力されたスポット情報等が知識ベース11等で記憶されるようになってもよい。
ユーザ入力情報受付部14、および対話文情報受付部23は、例えば、無線または有線の通信手段により実現される。ユーザ入力情報受付部14等は、MPUやメモリ等から実現されても良い。ここでの受け付けとは、受信でも良いし、関数等による情報の受け付け等でも良い。
スコア算出部15、対話文情報構成部16、ユーザ状態情報更新部18、ユーザ文種類決定部24、決定要因等取得部25、報酬算出部27、学習部28は、通常、MPUやメモリ等から実現され得る。スコア算出部15等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
ユーザ入力情報送付部26、対話文出力部17は、例えば、無線または有線の通信手段により実現される。ユーザ入力情報送付部26等は、MPUやメモリ等から実現されても良い。ここでの送付とは、送信でも良いし、他の処理への情報の受け渡し等でも良い。
次に、学習システムの動作について説明する。まず、対話装置1の動作については、図4のフローチャートを用いて説明する。
(ステップS401)対話文出力部17は、予め保持している初期の対話文情報を、シミュレーション装置2に送付する。
(ステップS402)ユーザ入力情報受付部14は、シミュレーション装置2から、ユーザ入力情報を受け付けたか否かを判断する。ユーザ入力情報を受け付ければステップS403に行き、ユーザ入力情報を受け付けなければステップS402に戻る。
(ステップS403)ユーザ入力情報受付部14または図示しない手段が、ユーザ入力情報受付部14が受け付けたユーザ入力情報が終了条件を満たすか否かを判断する。終了条件を満たせば処理を終了し、終了条件を満たさなければステップS405に行く。なお、終了条件とは、例えば、ユーザ入力情報が、予め決められた文のパターンに対応するユーザ文種類識別子を含む場合である。予め決められた文のパターンとは、例えば、「<スポット>に行きます。」「<スポット>に決めました。」などである。
(ステップS404)スコア算出部15は、2以上の各情報推薦手法に対する2以上のスコアを算出する。スコア算出処理の詳細については、図5のフローチャートを用いて説明する。
(ステップS405)対話文情報構成部16は、送付する対話文情報を構成する。対話文情報の構成処理の詳細については、図6のフローチャートを用いて説明する。
(ステップS406)対話文出力部17は、対話文情報構成部16が構成した対話文情報を、シミュレーション装置2に送付する。
(ステップS407)ユーザ状態情報更新部18は、ユーザ状態情報更新処理を行い、ステップS402に戻る。ユーザ状態情報更新処理の詳細については、図7のフローチャートを用いて説明する。
なお、図4のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS404のスコア算出処理の詳細については、図5のフローチャートを用いて説明する。
(ステップS501)スコア算出部15は、ユーザ状態情報格納部13からユーザ状態情報を読み出す。
(ステップS502)スコア算出部15は、カウンタiに1を代入する。
(ステップS503)スコア算出部15は、情報推薦手法格納部12の中に、i番目の情報推薦手法が存在するか否かを判断する。i番目の情報推薦手法が存在すればステップS504に行き、存在しなければ上位処理にリターンする。
(ステップS504)スコア算出部15は、i番目の情報推薦手法が有する重みベクトルを読み出す。
(ステップS505)スコア算出部15は、ステップS501で読み出したユーザ状態情報と、ステップS504で読み出した評価情報、重みベクトルとを用いて、i番目の情報推薦手法のスコアを算出し、当該スコアをi番目の情報推薦手法と対応付けて一時蓄積する。スコア算出部15は、例えば、「ユーザ状態情報×重みベクトル」によりスコアを算出する。なお、ユーザ状態情報および評価情報もベクトルである。
(ステップS506)スコア算出部15は、カウンタiを1、インクリメントする。ステップS503に戻る。
なお、図5のフローチャートにおいて、スコア算出部15のスコア算出方法は、問わない。
次に、ステップS405の対話文情報の構成処理の詳細については、図6のフローチャートを用いて説明する。
(ステップS601)対話文情報構成部16は、直前のユーザ入力情報、または/および直前の対話装置1の対話文情報に含まれるスポットを取得する。ただし、ここで、スポットを取得できない場合もあり得る。
(ステップS602)対話文情報構成部16は、直前のユーザ入力情報、または/および直前の対話装置1の対話文情報に含まれる決定要因を取得する。ただし、ここで、決定要因を取得できない場合もあり得る。
(ステップS603)対話文情報構成部16は、ステップS601でスポットを取得できたか否かを判断する。取得できればステップS604に行き、取得できなければステップS605に行く。
(ステップS604)対話文情報構成部16は、変数「着目スポット」に、ステップS601で取得したスポットを代入する。なお、変数「着目スポット」の値は、現在、対話において着目されているスポットである。また、変数「着目スポット」の値は、通常、一のスポットである。
(ステップS605)対話文情報構成部16は、ステップS602で決定要因を取得できたか否かを判断する。取得できればステップS606に行き、取得できなければステップS607に行く。
(ステップS606)対話文情報構成部16は、変数「着目決定要因」に、ステップS602で取得した決定要因を代入する。なお、変数「着目決定要因」の値は、現在、対話において着目されている決定要因である。また、変数「着目決定要因」の値は、2以上の決定要因である場合もある。
(ステップS607)対話文情報構成部16は、変数「着目スポット」の値、および変数「着目決定要因」の値を用いて、知識ベース11を検索し、着目スポットおよび着目決定要因に対応する説明文情報を、知識ベース11から読み出す。なお、この説明文情報は、ユーザからの入力文に対する回答文情報である。通常、対話文情報構成部16は、変数「着目スポット」の値、および変数「着目決定要因」に対応する説明文を知識ベース11から読み出す。説明文情報とは、説明文そのものであっても良いし、説明文を識別する情報であっても良い。
(ステップS608)対話文情報構成部16は、推薦文情報の取得処理を行う。推薦文情報の取得処理については、図7のフローチャートを用いて説明する。推薦文情報は、手法識別子を有する。また、推薦文情報は、1以上のスポットまたは1以上の決定要因を有することは好適である。
(ステップS609)対話文情報構成手段163は、ステップS607で取得された説明文情報、およびステップS608で取得された推薦文情報から、対話文情報を構成する。
なお、図4のフローチャートにおいて、回答文情報と推薦文情報とを取得した。しかし、図4のフローチャートにおいて、推薦文情報のみを取得する、回答文情報と推薦文情報と他の文の情報も取得するなど、種々の文の情報の取得処理を行うことが考えられる。
次に、ステップS608(図6)の推薦文情報の取得処理については、図7のフローチャートを用いて説明する。
(ステップS701)対話文情報構成部16の手法識別子取得手段161は、スコア算出部15が算出した2以上のスコアのうち最も大きいスコアに対応する一の情報推薦手法を識別する手法識別子を、情報推薦手法格納部12から取得する。
(ステップS702)変数値取得手段162は、カウンタiに1を代入する。
(ステップS703)変数値取得手段162は、ステップS701で取得した手法識別子に対応する文パターン情報の中の、i番目の変数が存在するか否かを判断する。存在すればステップS704に行き、存在しなければ上位処理にリターンする。
(ステップS704)変数値取得手段162は、ステップS701で取得した文パターン情報の中の、i番目の変数を取得する。なお、この変数には、変数の値をどこから取得するかに関する情報も保持している。
(ステップS705)変数値取得手段162は、i番目の変数に代入される1以上の用語を取得する。この用語とは、通常、スポットまたは決定要因(決定要因を特定する単語等でも良い)である。
(ステップS706)変数値取得手段162は、カウンタiを1、インクリメントする。
次に、ステップS407のユーザ状態情報更新処理の詳細については、図8のフローチャートを用いて説明する。
(ステップS801)ユーザ状態情報更新部18のユーザ提示用語取得手段181は、ユーザ入力情報受付部14が受け付けた最新(直前)のユーザ入力情報から、1以上の決定要因を取得する。また、直前に受け付けた文から1以上の決定要因を取得できない場合、ユーザ提示用語取得手段181は、着目決定要因を取得する。また、ユーザ提示用語取得手段181は、ユーザ入力情報受付部14が受け付けた最新(直前)のユーザ入力情報から、1以上のスポットを取得する。そして、ユーザ提示用語取得手段181は、取得した決定要因または/および取得したスポットを、バッファに一時格納する。
(ステップS802)嗜好ベクトル更新手段183は、ユーザ状態情報格納部13のユーザ状態情報が有する嗜好ベクトルを読み出す。そして、嗜好ベクトル更新手段183は、ステップS801で取得した決定要因に対応する要素の値が大きくなるように、ユーザ状態情報に含まれる嗜好ベクトルを更新する。なお、ここで、属性ベクトル更新手段185は、ステップS801で取得された決定要因に対応する要素の値が大きくなるように、または当該決定要因に対応する要素の値になるように、または当該決定要因に対応する要素の値に近づくように、ユーザ状態情報に含まれる属性ベクトルを更新しても良い。例えば、属性ベクトルの要素が性別の場合であり、男性「1」、女性「0」で規定されており、ステップS801で取得された決定要因に対応する要素の値が「0」(女性)である場合、属性ベクトル更新手段185は、属性「性別」の値がより「0」に近づくように、属性値を変更する。なお、属性ベクトル更新手段185は、属性値をどのように変更するかは問わない。例えば、属性ベクトル更新手段185は、取得された決定要因に対応する要素の値(1または0)の平均値を、現在の属性値とする。
(ステップS803)装置提示用語取得手段182は、対話文出力部17が送付した最新(直前)の対話文情報から、1以上の決定要因を取得する。また、装置提示用語取得手段182は、対話文出力部17が送付した最新(直前)の対話文情報から、1以上のスポットを取得する。そして、装置提示用語取得手段182は、取得した決定要因または/および取得したスポットを、バッファに一時格納する。
(ステップS804)知識ベクトル更新手段184は、ユーザ状態情報格納部13のユーザ状態情報が有する知識ベクトルを読み出す。知識ベクトル更新手段184は、ステップS803で取得した決定要因に対応する要素の値が大きくなるように、ユーザ状態情報に含まれる知識ベクトルを更新する。
(ステップS805)ユーザ状態情報更新部18は、ユーザ状態情報格納部13のユーザ状態情報が有する対話のターン数を読み出す。なお、対話のターン数とは、対話が繰り返された対数である。そして、ユーザ状態情報更新部18は、読み出したターン数に1を加えた値を、新しいターン数として、ユーザ状態情報格納部13のユーザ状態情報を更新する。
(ステップS806)ユーザ状態情報更新部18は、直前ユーザ発話行為情報を更新する。直前ユーザ発話行為情報は、直前にユーザ入力情報受付部14が受け付けたユーザ入力情報に関する情報であり、ユーザが要求した情報の種類(スポットのみ、決定要因名のみ、またはその両方等)に対応する情報である。
(ステップS807)ユーザ状態情報更新部18は、直前システム発話行為情報を更新する。直前システム発話行為情報は、直前に対話文出力部17が送付した対話文情報に関する情報であり、選択した情報推薦手法を特定する情報(手法識別子)である。
(ステップS808)ユーザ状態情報更新部18は、システム提示履歴情報を更新する。なお、システム提示履歴情報は、対話装置1(システム)がシミュレーション装置2に送付したスポット、および決定要因の数である。ユーザ状態情報更新部18は、ステップS803でバッファに書き込んだ決定要因およびスポットを、それぞれユニーク処理し、バッファ内の決定要因の数およびスポットの数を取得する。そして、ユーザ状態情報更新部18は、バッファ内の決定要因の数およびスポットの数を、システム提示履歴情報として取得する。
なお、図8のフローチャートにおいて、ステップS805からS808において更新した情報は、ユーザ状態情報を構成する情報の例であり、その他の情報がユーザ状態情報を構成しても良い。
次に、シミュレーション装置2の動作については、図9のフローチャートを用いて説明する。
(ステップS901)対話文情報受付部23は、対話文情報を受け付けたか否かを判断する。対話文情報を受け付ければステップS902に行き、対話文情報を受け付けなければステップS901に戻る。
(ステップS902)ユーザ文種類決定部24は、ステップS901で受け付けた対話文情報が有する手法識別子を取得する。
(ステップS903)ユーザ文種類決定部24は、ステップS902で取得した手法識別子と、対話情報格納部21の対話確率情報とを用いて、ユーザ文種類を決定し、ユーザ文種類識別子を取得する。
(ステップS904)決定要因等取得部25は、ステップS901で受け付けた対話文情報が有する1以上の決定要因または/および1以上のスポットを取得する。なお、ここで決定要因および1以上のスポットが取得できない場合もある。
(ステップS905)決定要因等取得部25は、ステップS904で取得した1以上の決定要因または/および1以上のスポットを用いて、1以上の決定要因または1以上のスポットを取得する。なお、ここで、決定要因およびスポットが決定されない場合もある。なお、決定要因等取得部25は、ステップS904で取得した1以上の決定要因または/および1以上のスポットを用いて、スポットを取得できない場合、スポット確率情報が有する確率に応じて、一のスポットを取得しても良い。
(ステップS906)ユーザ入力情報送付部26は、ステップS903で取得したユーザ文種類識別子、およびステップS905で取得した0以上の決定要因または/および0以上のスポットを用いて、ユーザ入力情報を構成する。ここで、ユーザ入力情報とは、ユーザ文種類識別子、および0以上の決定要因または/および0以上のスポットを有するユーザ入力情報を、送信するデータ構造に構成することである。
(ステップS907)ユーザ入力情報送付部26は、ステップS906で構成したユーザ入力情報を、対話装置1に送付する。
(ステップS908)報酬算出部27は、決定要因等取得部25が取得したスポットが選択された場合の報酬を算出する。報酬算出処理については、図10のフローチャートを用いて説明する。
(ステップS909)学習部28は、ステップS908で算出された報酬を用いて、対話装置1の手法識別子に対応する重みベクトルであり、対話装置1の情報推薦手法格納部12の重みベクトルを更新し、ステップS901に戻る。
なお、図9のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS908の報酬算出処理については、図10のフローチャートを用いて説明する。
(ステップS1001)報酬算出部27は、ユーザ嗜好ベクトル格納部22からユーザ嗜好ベクトルを読み出す。
(ステップS1002)ランダム選択合致値算出手段271は、カウンタiに1を代入する。
(ステップS1003)ランダム選択合致値算出手段271は、i番目のスポットが知識ベース11に存在するか否かを判断する。i番目のスポットが存在すればステップS1004に行き、存在しなければステップS1007に行く。
(ステップS1004)ランダム選択合致値算出手段271は、i番目のスポットの1以上の評価値を、知識ベース11から読み出す。
(ステップS1005)ランダム選択合致値算出手段271は、ステップS1001で読み出したユーザ嗜好ベクトルと、ステップS1004で読み出したi番目のスポットの1以上の評価値とから、ユーザ嗜好ベクトルとi番目のスポットの1以上の評価値との合致度を算出し、当該合致度を図示しないバッファに一時蓄積する。ランダム選択合致値算出手段271は、例えば、ユーザ嗜好ベクトルの各要素と、i番目のスポットの1以上の各評価値との一致する数を、合致度とする。
(ステップS1006)ランダム選択合致値算出手段271は、カウンタiを、1インクリメントし、ステップS1003に戻る。
(ステップS1007)ランダム選択合致値算出手段271は、ステップS1005で一時蓄積された全スポットの合致度から、全スポットの合致度の期待値を算出する。ランダム選択合致値算出手段271は、全スポットの合致度の平均値を期待値としても良い。また、ランダム選択合致値算出手段271は、「各スポットの合致度×スポット確率情報が示す各スポットの確率」の合計を、期待値としても良い。
(ステップS1008)選択スポット合致度算出手段272は、着目スポットの1以上の各決定要因の評価を示す1以上の評価値を、知識ベース11から読み出す。
(ステップS1009)選択スポット合致度算出手段272は、ステップS1001で読み出したユーザ嗜好ベクトルと、ステップS1008で読み出した1以上の評価値とから、ユーザ嗜好ベクトルと着目スポットの1以上の評価値との合致度を算出する。選択スポット合致度算出手段272は、例えば、ユーザ嗜好ベクトルの各要素と、着目スポットの1以上の各評価値との一致する数を、合致度とする。
(ステップS1010)報酬算出手段273は、ランダム選択合致値算出手段271が算出した合致度の期待値と、選択スポット合致度算出手段272が算出した合致度とを用いて、ユーザ入力情報に含まれるスポットが選択されたことの報酬を算出する。報酬算出手段273は、例えば、「報酬=ステップS1009で算出した合致度−ステップS1007で算出した期待値」により、報酬を算出する。なお、かかる算出式は、報酬算出手段273が予め保持している、とする。
以下、本実施の形態における学習システムの評価実験について説明する。なお、評価実験における対話装置1は、ユーザを模擬したシミュレーション装置2との対話を進めながら、シミュレーション装置2の訪問先の意思決定を支援し、京都の観光案内を行う装置である。
図11は、知識ベース11が保持しているスポット情報管理表の一例である。スポット情報管理表は、スポットに関する情報であるスポット情報を2以上格納している。ここでのスポットは、京都の観光地である。なお、本明細書において、スポットとは、スポットを特定する情報(スポット識別子と言い換えても良い)である場合と、スポットの概念を示す場合とがある。また、スポット情報は、「スポット」「決定要因情報」「評価値」「説明文」を有する。「決定要因情報」は、決定要因を識別する「決定要因識別子」と決定要因を正確に示す句である(肯定的または否定的な用語も含む句である)「決定要因」を有する。また、本具体例において、決定要因は、「庭園が有名」「混雑しない」「世界遺産」「景色が良い」「アクセスが良い」「紅葉が有名」「桜が有名」「歴史で有名」「散策できる」「イベントがある」の10要因がある(順不同)、とする。「評価値」は、各スポットの決定要因に対する評価を示す情報であり、各スポットが、ここでは、決定要因情報が示す決定要因の特性を有している場合は「1」、有していない場合は「0」の値を採る。なお、「評価値」は、「1」「0」の2値ではなく、多段階の評価(例えば、「1」から「5」など)でも良い。
また、図12は、情報推薦手法格納部12の情報推薦手法管理表の一例である。情報推薦手法管理表は、6つの情報推薦手法を格納している。情報推薦手法は、「ID」「手法識別子」「文パターン情報」「評価情報」「重みベクトル」を有する。「ID」は、情報推薦手法を識別する数値である。「手法識別子」は、情報推薦手法を識別する文字列であり、その意義を示す。「文パターン情報」は、情報の推薦文を構成する元になる情報、または情報の推薦文(ID=3のみ)である。情報の推薦文においてタグ(先頭"<"、終端">"の情報)は変数である。また、文パターン情報の中の"{"および"}"で囲まれた情報は、直前の変数の値の取得方法(取得動作)を示す情報(以下、取得動作記述という。)である。<着目スポット>は、現在の着目スポットが代入される。<着目決定要因>は、現在の着目決定要因が代入される。また、<1以上の未出決定要因>は、着目スポットについて、今までの対話で出現しておらず、かつ着目スポットの評価値が「1」の決定要因が代入される。また、<1以上の未出スポット>は、着目決定要因について、今までの対話で出現しておらず、かつ着目決定要因の評価値が「1」のスポットが代入される。<最高嗜好スポット>は、ユーザ状態情報が有する嗜好ベクトルを元に、各スポットのランク(嗜好値)を算出した場合に最高点になるスポットである。取得動作記述「{select 3以下の決定要因 where 知識ベクトル内の値が低い順}」は、知識ベクトル内の決定要素の値が低い順に3以下の決定要因を取得する動作を示す。なお、この取得動作記述は、<1以上の未出決定要因>に付随しているので、知識ベクトル内の決定要素の値が低い順に、3以下の未出の決定要因を取得する動作を示すこととなる。取得動作記述「{select 3以下の決定要因 where 嗜好ベクトル内の値が高い順}」は、嗜好ベクトル内の値が高い順に3以下の決定要因を取得する動作を示す。なお、この取得動作記述は、<1以上の未出決定要因>に付随しているので、嗜好ベクトル内の値が高い順に、3以下の未出の決定要因を取得する動作を示すこととなる。取得動作記述「{select 最高嗜好スポット where 嗜好値が最大のスポット}」は、現在のユーザ状態情情報から、ユーザから見て、最大の嗜好値であるとシステムが推定するスポットを取得することを示す。例えば、この取得動作記述は、嗜好値を算出する演算式に嗜好ベクトル、スポットごとに各決定要因の評価値を代入し、嗜好値を算出し、最大の嗜好値を有するスポットを取得する動作を示す。「評価情報」は、情報推薦手法ごとに保持している情報である。そして、現在のユーザ状態情報と情報推薦手法が有する評価情報とを用いて、各情報推薦手法のスコアが算出され、当該スコアが最大の情報推薦手法に対応する文パターン情報を用いて、推薦文が構成される。例えば、現在のユーザ状態情報(ベクトル)と情報推薦手法が有する評価情報(ベクトル)とが乗算され、情報推薦手法のスコアが算出される。
また、ユーザ状態情報格納部13は、以下に説明するユーザ状態情報を格納している、とする。例えば、ユーザ状態情報は、知識ベクトル「Kuser」、嗜好ベクトル「Puser」、および局所重み行列「Vuser」の3要素を有する、とする。ここでは、簡単のため、ユーザの嗜好ベクトル「Puser=(p1,p2,・・・,pM)」の要素は、「1」または「0」の2値からなるパラメータである、とする。すなわち、ユーザがある決定要因mに興味があり(もしくは潜在的に興味があり)、スポット決定する際に重視する場合にpmは「1」をとるものとする。また、ユーザが、(ユーザ自身も気づいていない)潜在的な嗜好を持っている状態を表現するために、ユーザの知識ベクトル「Kuser=(k1,k2,・・・,kM)」を導入する。ユーザが、システム(対話装置1)が決定要因mを扱えることを知っている、もしくはシステムが決定要因mを推薦した場合にベクトルの要素kMは、「1」をとる。これらのベクトルを用いることにより、例えば、決定要因mが、ユーザが潜在的に興味を持っている要因であるが、ユーザはそれに気づいていないという状態は(km=0,pm=1)で表現できる。また、ユーザの決定要因mの観点からのスポットnに対する局所重みvnmは、ユーザは、システムから提示された情報のみから判断すると仮定して、システムが上記の6つの推薦手法のうち「ID=1,2,6」のいずれかの推薦手法を用いて、ユーザにスポットの評価を知らせた場合に「1」をとるものとする。なお、ユーザ状態情報は、属性ベクトル「Auser」を有していても良い。
また、ここでのユーザ状態情報は、対話状態の特徴ベクトルに相当する。さらに詳細には、ユーザ状態情報は、ここでは、以下の6種類の情報を有する。第一は、ターン数である。ターン数は、ここでは、ノコギリ関数を利用することにより、5つのパラメータでターン数を表現する。第二は、直前ユーザ発話行為情報である。直前ユーザ発話行為情報は、例えば、ベクトル(xi,xi+1,xi+2,xi+3,xi+4)であり、(1 if auser t-1=xi ,otherwise 0)とする。ここで、「auser t-1」は直前のユーザの発話である。また、直前のユーザの発話が、システム(対話装置1)が推薦したスポット(スポット名と言い換えても良い)もしくは決定要因のみを含む場合には「xi=1」であり他のベクトルの要素は「0」である。また、システムから推薦されていないスポットを含む場合には「xi+1=1」であり他のベクトルの要素は「0」である。また、システムから推薦されていない決定要因のみを含む場合には「xi+2=1」であり他のベクトルの要素は「0」である。また、システムから推薦されていないスポット・決定要因の双方を含む場合には「xi+3=1」であり他のベクトルの要素は「0」である。さらに、これらのいずれも含まない場合には「xi+4=1」であり他のベクトルの要素は「0」とする。第三は、直前システム発話行為情報である。直前システム発話行為情報は、例えば、ベクトル(yi,yi+1,yi+2,yi+3,yi+4,yi+5,yi+6)であり、(1 if asys t-1=yi ,otherwise 0)とする。ここで、「asys t-1」は直前のシステムの発話である。また、直前のシステムの発話が、情報推薦手法1を用いた場合は「yi+1=1」であり他のベクトルの要素は「0」である。また、情報推薦手法2を用いた場合は「yi+2=1」であり他のベクトルの要素は「0」である。つまり、情報推薦手法nを用いた場合は「yi+n=1」であり他のベクトルの要素は「0」とする。第四は、ユーザの決定要因に対する知識ベクトルである。なお、知識ベクトルは、ユーザの決定要因に対する知識を、「Σn=1 N Pr(kn=1)」により算出しても良い。ここで、knは、n番目の決定要因に対する知識ベクトルの要素値である。また、Pr(k=1)は、「kが1である」と、システムが推定する事後確率(確信度)である。ここで、嗜好ベクトルの要素値は、「1」または「0」である、とする。第五は、システムが提示したスポット・決定要因数である。つまり、第五は、システム提示履歴情報であり、例えば、「Σn=1 N Σm=1 Mvnm」である。ここで、vnmは、対話装置1が有するスポットmの決定要因nに対する評価値である。第六は、嗜好ベクトルである。嗜好ベクトルは、ユーザの各決定要因に対する嗜好を示す情報である。なお、嗜好ベクトルは、ユーザが決定要因を重視する確率の期待値に置き換えても良い。この期待値は、「Pr(kn=1)×Pr(pn=1))」で示され、ここで、各決定要因ごと計10パラメータを有する。ここで、「pn」は、嗜好ベクトルの要素値である。ここで、嗜好ベクトルの要素値は、「1」または「0」である、とする。
そして、ユーザ状態情報格納部13が格納しているユーザ状態情報は、上記で説明した要素値を有するベクトルであり、29の要素値を有するベクトル(s1,s2,・・・,s29)である、とする。そして、ユーザ状態情報の初期値は、(s0001,s0002,・・・,s0029)である、とする。
また、対話文出力部17は、対話装置1が起動時に出力される対話文情報である初期の対話文情報(手法識別子「3」)を格納している、とする。なお、手法識別子「3」に対応する文は、例えば、「京都観光システムです。お好みの観光スポットを推薦します。」である。
さらに、ユーザ入力情報受付部14は、対話の終了条件であるユーザ文種類識別子を保持している。ここでのユーザ文種類識別子は、文のパターン「<スポット>に行きます。」「<スポット>に決めました。」に対応するユーザ文種類識別子である。
また、対話情報格納部21の対話確率情報は、例えば、図13に示す対話確率情報管理表が示す情報である。対話確率情報管理表は、ユーザ文種類、および手法1から手法3の確率とを有する。つまり、図13は、情報推薦手法識別子「手法1」「手法2」「手法3」のいずれかの情報推薦手法識別子が対話文情報に含まれる場合に、ユーザ文種類識別子で識別されるユーザ文種類が選択される確率を示している。なお、図12において、推薦手法4から6に対するユーザの行動選択(ユーザ文種類識別子の選択)には,情報推薦手法識別子「手法1」による確率を用いる、とする。
かかる状態において、評価実験を行った。評価実験において、各シミュレーション対話ごとに,シミュレーション話者(Puser,Kuser,Vuser)をサンプリングする。擬似話者は,嗜好を4つ持つものと仮定する(=嗜好ベクトルPuserの4つの要素が"1",残りの要素が"0")。嗜好の選択には、被験者実験を行った後に行ったアンケートにより調べたユーザの嗜好の分布(図12参照)を用いた.ユーザの知識Kuser についても同様に、予備実験において、ユーザがシステム推薦前に発話した割合に基づいて設定した。ユーザの局所重みVuserは,ユーザが予備知識を持たないと仮定し、すべてを"0"に初期化した。対話装置1の側(システム側)のパラメータについても同様に、予備実験の結果に基づいてシステムが推定するユーザの嗜好Psysと知識Ksysを初期化した。また、シミュレーションを行うに際して、以下の仮定を置いた。システムは、ユーザの発話の音声認識、および理解誤りを行わず、その時点での政策πに基づいて推薦内容を決定する。ユーザは、20ターン対話を継続するものとし、シミュレーション装置2が応答(ユーザ入力情報)を生成する。対話装置1は、報酬関数に基づいて報酬を与えられる。以上の条件で、対話のシミュレーションを行い、2000対話ごとに政策(パラメータθ)をNACにより更新した。
以下に、実験結果を説明する。まず、最初に、政策反復による報酬の改善について調べた。本実験での手法には、ランダム要素が含まれるために、実験結果はすべて5回の試行の平均である。図14に、行ったシミュレーション対話数(2,000対話を1batchとする)と,2,5,10,15,20ターン後の報酬の関係を示す。また、図14において、ユーザがドメインに関するすべての知識を持っている場合に決定を行った場合を(Oracle)として併記する。システムの政策は30,000対話で収束した。
また、学習されたパラメータθ(重みベクトル)の値を比較・分析することにより、対話戦略を分析した。手法4,5では、開始からの対話のターン数が少ないことを表すパラメータに対する重みが大きく、手法2,6においてターン数が多いことを表すパラメータの重みが大きいことが分かった。この結果は、学習後の対話戦略では、最初にユーザに決定要因に対する知識を与え、ユーザの嗜好を推定した上で、具体的な候補を提示する対話戦略を行うことを表している。
次に、学習された対話戦略を、以下の2つのベースライン手法と比較した。
(1)推薦なし(B1)
ベースライン手法(B1)は、システムは要求された情報の提示のみを行い、推薦は行わない手法である。これは、常に手法3を選択する場合と等価である。
(2)ランダムに推薦(B2)
ベースライン手法(B2)は、システムは、選択可能な6手法からランダムに推薦手法を選択する。これは、パラメータθの初期値(すべて0)における戦略と等価である。
図15に、これらのベースライン手法との比較結果を示す。NACにより最適化した対話戦略は、ベースライン手法と比較して有意に大きな報酬を得ることができた(n=500,p<.01)。
さらに、決定するスポットの適合度と対話の長さのトレードオフの問題を考える。ユーザにとって、次に尋ねたい事項が明確に決まっている場合に情報推薦されることや、既知の内容を繰り返し推薦されることは、わずらわしいものとなる。そこで、推薦行為にペナルティを考慮した上での、対話戦略の最適さを考える。手法3以外の推薦手法に0.05のペナルティを与える評価関数により対話戦略を学習し評価を行った。この結果を、図16に示す。ランダムに推薦手法を選択する手法と比較して、提案法により学習した対話戦略は対話が長引いている場合にも、報酬の減少量が少ない。これは、学習された対話戦略では不必要な推薦を避けているものと考えられる。提案手法により得られた報酬は、ベースライン手法と比較して統計的に有意であった(p<.01)。
以上、本実施の形態によれば、ユーザと対話を行う対話装置が文を出力するために必要な重みベクトルを自動的に構築できる。
また、本実施の形態によれば、ユーザの知識と嗜好の両方を考慮する対話状態のモデルを提案し、強化学習により最適化を行い、ベースライン手法と比較してユーザがよりよい意思決定を行えることを確認した。
なお、本実施の形態において、重みベクトルの学習のアルゴリズムは問わない。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における対話装置1を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、スポットと、当該スポットを決定するための要因である1以上の決定要因と、当該スポットの前記1以上の各決定要因の評価を示す評価値とを有するスポット情報を、2以上格納しており、かつ、情報推薦手法を識別する手法識別子と、当該情報推薦手法の評価情報と、評価情報を構成する各要素の重みを示す重みベクトルとを有する2以上の情報推薦手法を格納しており、かつ、ユーザの状態を示す情報であり、1以上の各決定要因に対するユーザの嗜好を示す情報である嗜好ベクトルと、1以上の各決定要因に対するユーザの知識を示す知識ベクトルとを有するユーザ状態情報を格納しており、コンピュータを、シミュレーション装置から、ユーザが入力する文のパターンであるユーザ文種類を識別するユーザ文種類識別子、またはユーザ文種類識別子と1以上の決定要因または1以上のスポットのうちの1以上の情報とを有するユーザ入力情報を受け付けるユーザ入力情報受付部と、前記記憶媒体に格納されている2以上の各情報推薦手法が有する評価情報および重みベクトルと、前記ユーザ状態情報とを用いて、前記2以上の各情報推薦手法に対する2以上のスコアを算出するスコア算出部と、前記スコア算出部が算出した2以上のスコアを用いて、一の情報推薦手法を識別する手法識別子、または手法識別子と、1以上の決定要因または1以上のスポットのうちの1以上の情報とを有する対話文情報を構成する対話文情報構成部と、前記対話文情報構成部が構成した対話文情報を、前記シミュレーション装置に送付する対話文出力部と、前記ユーザ入力情報受付部が受け付けたユーザ入力情報、または前記対話文出力部が出力した対話文情報のうちの1以上の情報から、少なくとも1以上のスポットまたは1以上の決定要因を取得し、当該1以上のスポットまたは1以上の決定要因を用いて、前記記憶媒体のユーザ状態情報を更新するユーザ状態情報更新部とを具備し、前記スコア算出部は、前記記憶媒体に格納されている2以上の各情報推薦手法が有する評価情報および重みベクトルと、前記ユーザ状態情報更新部が更新したユーザ状態情報とを用いて、前記2以上の各情報推薦手法に対する2以上のスコアを算出するものとして機能させるためのプログラム、である。
また、本実施の形態におけるシミュレーション装置2を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、各情報推薦手法と各ユーザ文種類との確率に関する情報である対話確率情報、決定要因が選択される確率に関する情報である決定要因確率情報、およびスポットが選択される確率に関する情報であるスポット確率情報とを格納しており、かつ、ユーザの嗜好を示すベクトルであるユーザ嗜好ベクトルを格納しており、コンピュータを、対話装置から対話文情報を受け付ける対話文情報受付部と、前記対話文情報が有する手法識別子と前記対話確率情報とを用いて、ユーザ文種類を決定し、ユーザ文種類識別子を取得するユーザ文種類決定部と、前記決定要因確率情報または前記スポット確率情報のうちの1以上の情報、または前記決定要因確率情報または前記スポット確率情報のうちの1以上の情報および前記対話文情報が有する1以上の決定要因または1以上のスポットのうちの1以上の情報とを用いて、1以上の決定要因または1以上のスポットを取得する決定要因等取得部と、前記ユーザ文種類識別子、または前記ユーザ文種類識別子と1以上の決定要因または1以上のスポットのうちの1以上の情報とを有するユーザ入力情報を前記対話装置に送付するユーザ入力情報送付部と、前記ユーザ嗜好ベクトルと、前記ユーザ入力情報に含まれるスポットの前記1以上の各決定要因の評価を示す1以上の評価値とを取得し、前記ユーザ嗜好ベクトルと前記1以上の評価値との合致度を算出し、当該合致度を用いて、前記ユーザ文種類識別子で識別されるユーザ文種類が選択される報酬を算出する報酬算出部と、前記報酬を用いて、前記対話装置の前記手法識別子に対応する重みベクトルであり、前記対話装置の前記記憶媒体の重みベクトルを更新する学習部として機能させるためのプログラム、である。
また、上記プログラムにおいて、前記報酬算出部は、前記スポット確率情報を用いて、ランダムにスポットを決定した場合の1以上の評価値と前記ユーザ嗜好ベクトルとの合致度の期待値を算出するランダム選択合致値算出手段と、前記ユーザ嗜好ベクトルと、前記ユーザ入力情報に含まれるスポットの前記1以上の各決定要因の評価を示す1以上の評価値との合致度を算出する選択スポット合致度算出手段と、前記ランダム選択合致値算出手段が算出した合致度の期待値と、前記選択スポット合致度算出手段が算出した合致度とを用いて、前記ユーザ入力情報に含まれるスポットが選択されたことの報酬を算出する報酬算出手段とを具備するものとして、コンピュータを機能させるためのプログラムであることは好適である。
(実施の形態2)
本実施の形態において、実施の形態1で学習した重みベクトルを用いた、対話装置について説明する。この対話装置は、ユーザが装置から情報の提示や情報の推薦を受けながら、候補を選択する相談型の対話装置である。なお、本実施の形態における対話装置において、ユーザとのインタラクションは音声により行うが、音声による入出力は必須ではない。
嗜好に合った候補を選択する際には、多くの要因(後述する決定要因と同意義)を考慮する必要がある。対話装置を利用するユーザは、そのような要因を必ずしも全て把握しているわけではないため、対話装置はユーザに対して情報推薦を行い、対話装置が保有する知識とユーザの知識とのギャップを埋める必要がある。
本実施の形態において、複数の候補(ここでは、主として、スポットと言う)の中からユーザに適した候補を選択する相談型対話のモデルを実装する対話装置について述べる。
図17は、本実施の形態における対話装置3の内部構造を示すブロック図である。対話装置3は、知識ベース11、情報推薦手法格納部12、ユーザ状態情報格納部13、受付部34、スコア算出部15、文構成部36、文出力部37、ユーザ状態情報更新部18を備える。
受付部34は、音声受付手段341、音声認識手段342を備える。
文構成部36は、文パターン情報取得手段361、変数値取得手段362、文構成手段363を備える。
ユーザ状態情報更新部18は、ここでは、ユーザ提示用語取得手段181、装置提示用語取得手段182、嗜好ベクトル更新手段183、知識ベクトル更新手段184、および属性ベクトル更新手段185を具備する。
受付部34は、ユーザが入力した文を受け付ける。ここで、受け付けとは、通常、音声の受け付けである。ただし、受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。つまり、入力とは、音声入力、文字列入力等であり、入力手段は問わない。
文の入力手段は、マイクやキーボードやマウスやメニュー画面によるもの等、何でも良い。受付部34は、マイクやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
音声受付手段341は、ユーザが入力した音声を、マイクから受け付ける。
音声認識手段342は、音声受付手段341が受け付けた音声を認識し、文字列に変換する。音声認識手段342における音声認識方法は問わない。音声認識手段342は、公知技術であるので、詳細な説明は省略する。音声認識手段342は、通常、MPUやメモリ等から実現され得る。音声認識手段342の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
スコア算出部15は、ユーザ状態情報格納部13のユーザ状態情報を、情報推薦手法格納部12に格納されている2以上の各情報推薦手法が有する評価情報に適用し、2以上の各情報推薦手法に対する2以上のスコアを算出する。また、スコア算出部15は、ユーザ状態情報更新部18が更新したユーザ状態情報を、情報推薦手法格納部12に格納されている2以上の各情報推薦手法が有する評価情報に適用し、2以上の各情報推薦手法に対する2以上のスコアを算出する。
スコア算出部15は、通常、文出力部37が文を出力する前(直前であるとは限らない)に、スコアを算出する。なお、スコア算出部15は、受付部34が文を受け付けるごとに、スコアを算出することは好適である。また、ここで、適用とは、例えば、演算式「スコア=f(ユーザ状態情報,重みベクトル)」によりスコアを算出することである。また、例えば、fは「スコア=ユーザ状態情報×重みベクトル」である。つまり、スコア算出部15は、次に対話装置1が出力すべき文の文パターン情報を決定するために、文パターン情報と対応付けて管理されている評価情報と動的に変化するユーザ状態情報とを用いて、情報推薦手法ごとにスコアを算出する。
文構成部36は、スコア算出部15が算出した2以上のスコアを用いて、一の情報推薦手法が有する文パターン情報を取得し、文パターン情報から文を構成する。通常、文構成部36は、スコア算出部15が算出したスコアが最大の情報推薦手法が有する文パターン情報を取得し、文パターン情報から文を構成する。ここで、文パターン情報が文である場合は、文の構成とはNOP(何らの処理もしない)である。また、文パターン情報が変数を含む文のパターン情報であれば、文の構成とは、直前の出力文や直前の受け付けられた文や、着目している決定要因や着目しているスポットなどから変数の値を取得し、取得した変数の値を文パターン情報に代入する処理である。なお、着目している決定要因とは、1以上のスポットを出力する元になった決定要因である。また、着目しているスポットとは、1以上の決定要因を出力する元になったスポットである。なお、文構成部36は、直前のユーザ入力文、または/および直前の対話装置1の出力文から、着目スポットや着目決定要因を取得する処理も行う。かかる処理の詳細については後述する。
文構成部36は、通常、MPUやメモリ等から実現され得る。文構成部36の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
文パターン情報取得手段361は、スコア算出部15が算出した2以上のスコアのうち最も大きいスコアに対応する一の情報推薦手法が有する文パターン情報を、情報推薦手法格納部12から取得する。
変数値取得手段362は、文パターン情報取得手段361が取得した文パターン情報に含まれる1以上の変数を取得し、変数に対応するスポットまたは決定要因を、文出力部37が直前に出力した文、または受付部34が直前に受け付けた文のうちの1以上の文から取得する。また、変数値取得手段362は、文パターン情報取得手段361が取得した文パターン情報に含まれる1以上の変数を取得し、変数に対応する候補となる1以上のスポットまたは1以上の決定要因を、文出力部37が直前に出力した文、または受付部34が直前に受け付けた文のうちの1以上の文から取得し、候補となる1以上のスポットまたは1以上の決定要因から、候補となる1以上のスポットまたは1以上の決定要因に対応する知識ベース11の評価値を用いて、変数に対応するスポットまたは決定要因を選択する。変数値取得手段362は、現在着目しているスポットである着目スポット、または現在着目している決定要因である着目決定要因から、変数に対応するスポットまたは決定要因を取得しても良い。
文構成手段363は、文パターン情報取得手段361が取得した文パターン情報の変数の箇所に、変数値取得手段362が取得した用語(通常、スポットまたは決定要因)を挿入して文を構成する。文構成手段363は、出力される文が自然な流暢な文となるように、変形する処理を行っても良い。かかる処理は公知技術であるので詳細な説明を省略する。
文出力部37は、文構成部36が構成した文を出力する。ここで、出力とは、通常、音声出力である。つまり、文出力部37は、文構成部36が構成した文を音声出力することは好適である。ただし、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、外部の装置(音声出力装置や表示装置など)への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
文出力部37は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。文出力部37は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
ユーザ状態情報更新部18は、受付部34が受け付けた文、または文出力部37が出力した文のうちの1以上の文から、少なくとも1以上のスポットまたは1以上の決定要因を取得し、当該1以上のスポットまたは1以上の決定要因を用いて、ユーザ状態情報格納部13のユーザ状態情報を更新する。ユーザ状態情報更新部18は、受付部34が受け付けた文、または文出力部37が出力した文のうちの1以上の文を形態素解析し、特定の品詞(名詞や形容詞や形容動詞など)の用語を取得し、当該用語をキーとして、知識ベース11を検索し、知識ベース11に格納されている用語をスポットまたは決定要因として取得しても良い。また、ユーザ状態情報更新部18は、受付部34が受け付けた文、または文出力部37が出力した文のうちの1以上の文から漢字列を取得し、当該漢字列をキーとして、知識ベース11を検索し、知識ベース11に格納されている漢字列をスポットまたは決定要因として取得しても良い。そして、ユーザ状態情報更新部18は、通常、取得したスポットまたは決定要因についてのユーザ状態情報を構成する要素の値(嗜好ベクトルや知識ベクトルなどの要素)が上昇するようにユーザ状態情報を更新する。また、ユーザ状態情報更新部18は、通常、受付部34が文を受け付けるごとに更新する。ただし、ユーザ状態情報更新部18は、文出力部37が文を出力するごとに更新しても良い。
ユーザ提示用語取得手段181は、受付部34が受け付けた文から少なくとも1以上の決定要因を取得する。ユーザ提示用語取得手段181は、肯定的な決定要因のみを取得しても良いし、肯定/否定を検知して、各カテゴリー(肯定/否定)ごとに決定要因を取得しても良い。ユーザ提示用語取得手段181は、例えば、受付部34が受け付けた文から自立語を取得し、自立語が知識ベース11の決定要因である場合に、当該自立語を決定要因として取得する。また、ユーザ提示用語取得手段181は、着目決定要因を取得しても良い。
装置提示用語取得手段182は、文出力部37が出力した文のうちの1以上の文から、少なくとも1以上の決定要因を取得する。装置提示用語取得手段182は、例えば、文出力部37が出力した文から自立語を取得し、自立語が知識ベース11の決定要因である場合に、当該自立語を決定要因として取得する。なお、文出力部37が出力した文とは、文構成部36が構成した文と同意義である。また、装置提示用語取得手段182は、肯定的な決定要因のみを取得しても良いし、肯定/否定を検知して、各カテゴリー(肯定/否定)ごとに決定要因を取得しても良い。また、装置提示用語取得手段182は、着目決定要因を取得しても良い。
嗜好ベクトル更新手段183は、ユーザ提示用語取得手段181が取得した1以上の決定要因に対する嗜好ベクトルの要素の値を高くするように、ユーザ状態情報を更新する。また、嗜好ベクトル更新手段183は、装置提示用語取得手段182が取得した1以上の決定要因の中で、ユーザ提示用語取得手段181が取得できなかった1以上の決定要因に対する嗜好ベクトルの要素の値を低くするように、ユーザ状態情報を更新する。これは、対話装置1が出力したが、ユーザに選択されなかった決定要因の値を低くすることである。
知識ベクトル更新手段184は、装置提示用語取得手段182が取得した1以上の決定要因に対する知識ベクトルの要素の値を高くするように、ユーザ状態情報を更新する。
属性ベクトル更新手段185は、ユーザ提示用語取得手段181が取得した1以上の決定要因に対する属性ベクトルの要素の値を変更し、ユーザ状態情報を更新する。つまり、属性ベクトル更新手段185は、ユーザ提示用語取得手段181が取得した決定要因に対応する要素の値が大きくなるように、または当該決定要因に対応する要素の値になるように、または当該決定要因に対応する要素の値に近づくように、ユーザ状態情報に含まれる属性ベクトルの当該要素の値を更新する。
次に、対話装置1の動作については、図18のフローチャートを用いて説明する。
(ステップS1801)文出力部37は、予め保持している初期文を出力する。初期文とは、対話装置1が動作開始の際(例えば、起動時)にユーザに出力する文である。初期文は、例えば、「京都観光案内システムです。お好みの観光スポットを推薦します。」という文である。
(ステップS1802)受付部34は、ユーザから文を受け付けたか否かを判断する。文を受け付ければステップS1803に行き、文を受け付けなければステップS1802に戻る。
(ステップS1803)受付部34の音声認識手段342は、ステップS1802で受け付けた文を音声認識し、文字列の文(文字コード列の文)を取得する。
(ステップS1804)受付部34または図示しない手段が、受付部34が受け付けた文が終了条件を満たすか否かを判断する。終了条件を満たせば処理を終了し、終了条件を満たさなければステップS1805に行く。なお、終了条件とは、例えば、ユーザの入力文が、予め決められた文のパターンに合致する文を含むことである。予め決められた文のパターンとは、例えば、「<スポット>に行きます。」「<スポット>に決めました。」などである。
(ステップS1805)スコア算出部15は、2以上の各情報推薦手法に対する2以上のスコアを算出する。スコア算出処理の詳細については、図19のフローチャートを用いて説明する。
(ステップS1806)文構成部36は、出力する1以上の文を構成する。文構成処理の詳細については、図20のフローチャートを用いて説明する。
(ステップS1807)文出力部37は、文構成部36が構成した1以上の文を出力する。
(ステップS1808)ユーザ状態情報更新部18は、ユーザ状態情報更新処理を行い、ステップS1802に戻る。ユーザ状態情報更新処理の詳細については、図22のフローチャートを用いて説明する。
なお、図18のフローチャートにおいて、処理の終了前に、文出力部37は、予め決められた文や、予め決められた文パターンから構成された文を出力しても良い。
さらに、図4のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS1805のスコア算出処理の詳細については、図19のフローチャートを用いて説明する。
(ステップS1901)スコア算出部15は、ユーザ状態情報格納部13からユーザ状態情報を読み出す。
(ステップS1902)スコア算出部15は、カウンタiに1を代入する。
(ステップS1903)スコア算出部15は、情報推薦手法格納部12の中に、i番目の情報推薦手法が存在するか否かを判断する。i番目の情報推薦手法が存在すればステップS1904に行き、存在しなければ上位処理にリターンする。
(ステップS1904)スコア算出部15は、i番目の情報推薦手法が有する評価情報を読み出す。
(ステップS1905)スコア算出部15は、ステップS1901で読み出したユーザ状態情報と、ステップS1904で読み出した評価情報とを用いて、i番目の情報推薦手法のスコアを算出し、当該スコアをi番目の情報推薦手法と対応付けて一時蓄積する。スコア算出部15は、例えば、ステップS1901で読み出したユーザ状態情報とステップS1904で読み出した評価情報と乗算し、スコアを算出する。
(ステップS1906)スコア算出部15は、カウンタiを1、インクリメントし、ステップS1903に戻る。
なお、図19のフローチャートにおいて、スコア算出部15のスコア算出方法は、問わない。
次に、ステップS1806の文構成処理の詳細については、図20のフローチャートを用いて説明する。
(ステップS2001)文構成部36は、直前のユーザ入力文、または/および直前の対話装置1の出力文を自然言語処理し、スポットを取得する。文構成部36は、例えば、直前のユーザ入力文、または/および直前の対話装置1の出力文を形態素解析し、自立語を取得し、当該自立語をキーとして知識ベース11を検索し、知識ベース11に存在するスポットを取得する。ただし、ここで、スポットを取得できない場合もあり得る。
(ステップS2002)文構成部36は、直前のユーザ入力文、または/および直前の対話装置1の出力文を自然言語処理し、決定要因を取得する。文構成部36は、例えば、直前のユーザ入力文、または/および直前の対話装置1の出力文を形態素解析し、自立語を取得し、当該自立語をキーとして知識ベース11を検索し、知識ベース11に存在する決定要因を取得する。ただし、ここで、決定要因を取得できない場合もあり得る。
(ステップS2003)文構成部36は、ステップS2001でスポットを取得できたか否かを判断する。取得できればステップS2004に行き、取得できなければステップS2005に行く。
(ステップS2004)文構成部36は、変数「着目スポット」に、ステップS2001で取得したスポットを代入する。なお、変数「着目スポット」の値は、現在、対話において着目されているスポットである。また、変数「着目スポット」の値は、通常、一のスポットである。
(ステップS2005)文構成部36は、ステップS2002で決定要因を取得できたか否かを判断する。取得できればステップS2006に行き、取得できなければステップS2007に行く。
(ステップS2006)文構成部36は、変数「着目決定要因」に、ステップS2002で取得した決定要因を代入する。なお、変数「着目決定要因」の値は、現在、対話において着目されている決定要因である。また、変数「着目決定要因」の値は、2以上の決定要因である場合もある。
(ステップS2007)文構成部36は、変数「着目スポット」の値、および変数「着目決定要因」の値を用いて、知識ベース11を検索し、着目スポットおよび着目決定要因に対応する説明文を、知識ベース11から読み出す。なお、この説明文は、ユーザからの入力文に対する回答文である。通常、文構成部36は、変数「着目スポット」の値、および変数「着目決定要因」に対応する説明文を知識ベース11から読み出す。
(ステップS2008)文構成部36は、推薦文の取得処理を行い、上位処理にリターンする。推薦文取得処理については、図21のフローチャートを用いて説明する。
なお、図20のフローチャートにおいて、回答文と推薦文を取得した。しかし、図20のフローチャートにおいて、推薦文のみを取得する、回答文と推薦文と他の文も取得するなど、種々の文の取得処理が考えられる。
次に、ステップS2008の推薦文取得処理については、図21のフローチャートを用いて説明する。
(ステップS2101)文構成部36の文パターン情報取得手段361は、スコア算出部15が算出した2以上のスコアのうち最も大きいスコアに対応する一の情報推薦手法が有する文パターン情報を、情報推薦手法格納部12から取得する。
(ステップS2102)変数値取得手段362は、カウンタiに1を代入する。
(ステップS2103)変数値取得手段362は、ステップS2101で取得した文パターン情報の中の、i番目の変数が存在するか否かを判断する。存在すればステップS2104に行き、存在しなければステップS2108に行く。
(ステップS2104)変数値取得手段362は、ステップS2101で取得した文パターン情報の中の、i番目の変数を取得する。なお、この変数には、変数の値をどこから取得するかに関する情報も保持している。
(ステップS2105)変数値取得手段362は、i番目の変数に代入される1以上の用語を取得する。この用語とは、通常、スポットまたは決定要因(決定要因を特定する単語等でも良い)である。
(ステップS2106)文構成手段363は、ステップS2104で取得した1以上の用語を、文パターン情報の中のi番目の変数の箇所に代入する。
(ステップS2107)変数値取得手段362は、カウンタiを1、インクリメントし、ステップS2103に戻る。
(ステップS2108)文構成手段363は、取得した文を、自然な文に変更し、上位処理にリターンする。なお、自然な文に変更する必要がない場合は、ステップS2108では何も処理されない。また、文を自然な文に変更する技術は公知技術であるので、詳細な説明を省略する。文を自然な文に変更する技術は、例えば、統計ベースの手法を用いる。
次に、ステップS1808のユーザ状態情報更新処理の詳細については、図22のフローチャートを用いて説明する。
(ステップS2201)ユーザ状態情報更新部18のユーザ提示用語取得手段181は、受付部34が受け付けた最新(直前)の文から、1以上の決定要因を取得する。また、直前に受け付けた文から1以上の決定要因を取得できない場合、ユーザ提示用語取得手段181は、着目決定要因を取得する。また、ユーザ提示用語取得手段181は、受付部34が受け付けた最新(直前)の文から、1以上のスポットを取得する。そして、ユーザ提示用語取得手段181は、取得した決定要因または/および取得したスポットを、バッファに一時格納する。
(ステップS2202)嗜好ベクトル更新手段183は、ユーザ状態情報格納部13のユーザ状態情報が有する嗜好ベクトルを読み出す。そして、嗜好ベクトル更新手段183は、ステップS2201で取得した決定要因に対応する要素の値が大きくなるように、ユーザ状態情報に含まれる嗜好ベクトルを更新する。また、属性ベクトル更新手段185は、ステップS801で取得された決定要因に対応する要素の値が大きくなるように、または当該決定要因に対応する要素の値になるように、または当該決定要因に対応する要素の値に近づくように、ユーザ状態情報に含まれる属性ベクトルを更新する。
(ステップS2203)装置提示用語取得手段182は、文出力部37が出力した最新(直前)の文から、1以上の決定要因を取得する。また、装置提示用語取得手段182は、文出力部37が出力した最新(直前)の文から、1以上のスポットを取得する。そして、装置提示用語取得手段182は、取得した決定要因または/および取得したスポットを、バッファに一時格納する。
(ステップS2204)知識ベクトル更新手段184は、ユーザ状態情報格納部13のユーザ状態情報が有する知識ベクトルを読み出す。知識ベクトル更新手段184は、ステップS2203で取得した決定要因に対応する要素の値が大きくなるように、ユーザ状態情報に含まれる知識ベクトルを更新する。
(ステップS2205)ユーザ状態情報更新部18は、ユーザ状態情報格納部13のユーザ状態情報が有する対話のターン数を読み出す。なお、対話のターン数とは、対話が繰り返された対数である。そして、ユーザ状態情報更新部18は、読み出したターン数に1を加えた値を、新しいターン数として、ユーザ状態情報格納部13のユーザ状態情報を更新する。
(ステップS2206)ユーザ状態情報更新部18は、直前ユーザ発話行為情報を更新する。直前ユーザ発話行為情報は、直前に受付部34が受け付けた文に関する情報であり、ユーザが要求した情報の種類(スポットのみ、決定要因名のみ、またはその両方等)に対応する情報である。
(ステップS2207)ユーザ状態情報更新部18は、直前システム発話行為情報を更新する。直前システム発話行為情報は、直前に文出力部37が出力した文に関する情報であり、選択した情報推薦手法を特定する情報である。
(ステップS2208)ユーザ状態情報更新部18は、システム提示履歴情報を更新し、上位処理にリターンする。なお、システム提示履歴情報は、対話装置1(システム)が出力したスポット、および決定要因の数である。ユーザ状態情報更新部18は、ステップS2203でバッファに書き込んだ決定要因およびスポットを、それぞれユニーク処理し、バッファ内の決定要因の数およびスポットの数を取得する。そして、ユーザ状態情報更新部18は、バッファ内の決定要因の数およびスポットの数を、システム提示履歴情報として取得する。
なお、図22のフローチャートにおいて、ステップS2205からS2208において更新した情報は、ユーザ状態情報を構成する情報の例であり、その他の情報がユーザ状態情報を構成しても良い。
以下、本実施の形態における対話装置3の具体的な動作について説明する。対話装置1の概念図は図23である。本具体例において、対話装置3は、ユーザとの対話を進めながら、ユーザの訪問先の意思決定を支援し、京都の観光案内を行うシステムである。
知識ベース11が保持しているスポット情報管理表の一例は、上述した図11である。また、情報推薦手法格納部12の情報推薦手法管理表の一例は、上述した図12である。
また、ユーザ状態情報格納部13は、以下に説明するユーザ状態情報を格納している、とする。例えば、ユーザ状態情報は、知識ベクトル「Kuser」、嗜好ベクトル「Puser」、および局所重み行列「Vuser」の3要素を有する、とする。ここでは、簡単のため、ユーザの嗜好ベクトル「Puser=(p1,p2,・・・,pM)」の要素は、「1」または「0」の2値からなるパラメータである、とする。すなわち、ユーザがある決定要因mに興味があり(もしくは潜在的に興味があり)、スポット決定する際に重視する場合にpmは「1」をとるものとする。また、ユーザが、(ユーザ自身も気づいていない)潜在的な嗜好を持っている状態を表現するために、ユーザの知識ベクトル「Kuser=(k1,k2,・・・,kM)」を導入する。ユーザが、システム(対話装置3)が決定要因mを扱えることを知っている、もしくはシステムが決定要因mを推薦した場合にベクトルの要素kMは、「1」をとる。これらのベクトルを用いることにより、例えば、決定要因mが、ユーザが潜在的に興味を持っている要因であるが、ユーザはそれに気づいていないという状態は(km=0,pm=1)で表現できる。また、ユーザの決定要因mの観点からのスポットnに対する局所重みvnmは、ユーザは、システムから提示された情報のみから判断すると仮定して、システムが上記の6つの推薦手法のうち「ID=1,2,6」のいずれかの推薦手法を用いて、ユーザにスポットの評価を知らせた場合に「1」をとるものとする。
また、ここでのユーザ状態情報は、対話状態の特徴ベクトルに相当する。さらに詳細には、ユーザ状態情報は、ここでは、以下の6種類の情報を有する。第一は、ターン数である。ターン数は、ここでは、ノコギリ関数を利用することにより、5つのパラメータでターン数を表現する。第二は、直前ユーザ発話行為情報である。直前ユーザ発話行為情報は、例えば、ベクトル(xi,xi+1,xi+2,xi+3,xi+4)であり、(1 if auser t-1=xi ,otherwise 0)とする。ここで、「auser t-1」は直前のユーザの発話である。また、直前のユーザの発話が、システム(対話装置3)が推薦したスポット(スポット名と言い換えても良い)もしくは決定要因のみを含む場合には「xi=1」であり他のベクトルの要素は「0」である。また、システムから推薦されていないスポットを含む場合には「xi+1=1」であり他のベクトルの要素は「0」である。また、システムから推薦されていない決定要因のみを含む場合には「xi+2=1」であり他のベクトルの要素は「0」である。また、システムから推薦されていないスポット・決定要因の双方を含む場合には「xi+3=1」であり他のベクトルの要素は「0」である。さらに、これらのいずれも含まない場合には「xi+4=1」であり他のベクトルの要素は「0」とする。第三は、直前システム発話行為情報である。直前システム発話行為情報は、例えば、ベクトル(yi,yi+1,yi+2,yi+3,yi+4,yi+5,yi+6)であり、(1 if asys t-1=yi ,otherwise 0)とする。ここで、「asys t-1」は直前のシステムの発話である。また、直前のシステムの発話が、情報推薦手法1を用いた場合は「yi+1=1」であり他のベクトルの要素は「0」である。また、情報推薦手法2を用いた場合は「yi+2=1」であり他のベクトルの要素は「0」である。つまり、情報推薦手法nを用いた場合は「yi+n=1」であり他のベクトルの要素は「0」とする。第四は、ユーザの決定要因に対する知識ベクトルである。なお、知識ベクトルは、ユーザの決定要因に対する知識を、「Σn=1 N Pr(kn=1)」により算出しても良い。ここで、knは、n番目の決定要因に対する知識ベクトルの要素値である。また、Pr(k=1)は、「kが1である」と、システムが推定する事後確率(確信度)である。ここで、嗜好ベクトルの要素値は、「1」または「0」である、とする。第五は、システムが提示したスポット・決定要因数である。つまり、第五は、システム提示履歴情報であり、例えば、「Σn=1 N Σm=1 Mvnm」である。ここで、vnmは、対話装置3が有するスポットmの決定要因nに対する評価値である。第六は、嗜好ベクトルである。嗜好ベクトルは、ユーザの各決定要因に対する嗜好を示す情報である。なお、嗜好ベクトルは、ユーザが決定要因を重視する確率の期待値に置き換えても良い。この期待値は、「Pr(kn=1)×Pr(pn=1))」で示され、ここで、各決定要因ごと計10パラメータを有する。ここで、「pn」は、嗜好ベクトルの要素値である。ここで、嗜好ベクトルの要素値は、「1」または「0」である、とする。
そして、ユーザ状態情報格納部13が格納しているユーザ状態情報は、上記で説明した要素値を有するベクトルであり、29の要素値を有するベクトル(s1,s2,・・・,s29)である、とする。そして、ユーザ状態情報の初期値は、(s0001,s0002,・・・,s0029)である、とする。
また、文出力部37は、対話装置3が起動時に出力される文である初期文「京都観光システムです。お好みの観光スポットを推薦します。」を格納している、とする。
さらに、受付部34は、対話の終了条件である文のパターン「<スポット>に行きます。」「<スポット>に決めました。」を保持している、とする。なお、ここで<スポット>は、スポットが代入され得る変数である。
かかる状態において、ユーザは、対話装置3を起動した、とする。次に、文出力部37は、初期文を読み出し、初期文「京都観光システムです。お好みの観光スポットを推薦します。」を音声出力する。
次に、ユーザは、「仁和寺の桜について教えて。」と音声入力した、とする。すると、受付部34の音声受付手段341は、音声「仁和寺の桜について教えて。」を受け付ける。次に、音声認識手段342は、この音声を認識し、文「仁和寺の桜について教えて。」を取得する。
次に、受付部34は、入力された文「仁和寺の桜について教えて。」が終了条件である文パターン「<スポット>に行きます。」または「<スポット>に決めました。」に合致しない、と判断する。
次に、スコア算出部15は、各情報推薦手法に対する6つのスコアを算出する。つまり、まず、スコア算出部15は、ユーザ状態情報格納部13からユーザ状態情報(s0001,s0002,・・・,s0029)を読み出す。
次に、スコア算出部15は、情報推薦手法格納部12の中に、1番目から6番目までの各情報推薦手法が有する評価情報(ベクトル)と重みベクトルと、ユーザ状態情報(s0001,s0002,・・・,s0029)とを、情報推薦手法ごとに乗算する。そして、スコア算出部15は、6つの情報推薦手法のスコアを算出する。
次に、文構成部36は、直前のユーザ入力文を自然言語処理し、スポット「仁和寺」を取得する。また、文構成部36は、直前のユーザ入力文を自然言語処理し、決定要因「桜」を取得する。なお、文構成部36は、例えば、ユーザ入力文を形態素解析し、自立語「仁和寺」「桜」「教えて」を取得する。そして、文構成部36は、3つの自立語をキーとして、知識ベース11を検索し、「仁和寺」がスポット、「桜」が決定要因であることを検知し、スポット「仁和寺」および決定要因「桜」を取得する。
次に、文構成部36は、変数「着目スポット」に、取得したスポット「仁和寺」を代入する。また、文構成部36は、変数「着目決定要因」に、取得した決定要因「桜」を代入する。
次に、文構成部36は、変数「着目スポット」の値「仁和寺」、および変数「着目決定要因」の値「桜」を用いて、知識ベース11を検索し、着目スポットおよび着目決定要因に対応する説明文「御室桜は、樹高が低く単弁の香り高い白花を根元から咲かせる珍しい桜です。開花時期が遅く、京都の春の終わりを飾ります。」を、知識ベース11から読み出す。この説明文は、回答文となる。
次に、文構成部36は、推薦文の取得処理を行う。つまり、まず、文構成部36の文パターン情報取得手段361は、スコア算出部15が算出した6つのスコアのうち最も大きいスコアに対応する一の情報推薦手法(ここでは、ID=1の手法)が有する文パターン情報「<着目スポット>は、<1以上の未出決定要因>。何か説明しましょうか?」を、図12の情報推薦手法管理表から取得する。
次に、変数値取得手段362は、文パターン情報から、1番目の変数<着目スポット>を取得する。次に、変数値取得手段362は、変数<着目スポット>に代入される1以上の用語(変数「着目スポット」の値「仁和寺」)を取得する。次に、文構成手段363は、取得した1以上の用語「仁和寺」を、文パターン情報の中の1番目の変数の箇所に代入し、「仁和寺は、<1以上の未出決定要因>。何か説明しましょうか?」を得る。
次に、変数値取得手段362は、文パターン情報から、2番目の変数<1以上の未出決定要因>を取得する。そして、変数値取得手段362は、変数<1以上の未出決定要因>を取得する。つまり、変数値取得手段362は、変数「着目スポット」の値「仁和寺」の評価値が「1」であり、既出の決定要因「桜」を除く決定要因である「景色が良い」「庭園が有名」「紅葉が有名」「世界遺産」「イベントがある」を取得する。そして、次に、文構成手段363は、取得した1以上の用語を、文パターン情報の中の2番目の変数の箇所に代入し、「仁和寺は、景色が良い、庭園が有名、紅葉が有名、世界遺産、イベントがある。何か説明しましょうか?」を得る。次に、文構成手段363は、「仁和寺は、景色が良い、庭園が有名、紅葉が有名、世界遺産、イベントがある。何か説明しましょうか?」を自然な文「仁和寺は、景色が良く、庭園、紅葉が有名で、世界遺産であり、イベントがあります。何か説明しましょうか?」に変換し、推薦文を取得する。
つまり、上記の処理は、「Method1((Spot仁和寺),(Det景色,Det庭園,Det紅葉,Det世界遺産,Detイベント))」を実行したこととなる。Method1()は、情報推薦手法1を適用することを意味する。「Spot仁和寺」はスポット「仁和寺」、「Det景色」は決定要因「景色」、「Det庭園」は決定要因「庭園」、「Det紅葉」は決定要因「紅葉」、「Det世界遺産」は決定要因「世界遺産」、「Detイベント」は決定要因「イベント」を意味する。
次に、文出力部37は、回答文「御室桜は、樹高が低く単弁の香り高い白花を根元から咲かせる珍しい桜です。開花時期が遅く、京都の春の終わりを飾ります。」を音声出力する。続いて、文出力部37は、推薦文「仁和寺は、景色が良く、庭園、紅葉が有名で、世界遺産であり、イベントがあります。何か説明しましょうか?」を音声出力する。
次に、ユーザ状態情報更新部18は、以下のように、ユーザ状態情報更新処理を行う。つまり、まず、ユーザ状態情報更新部18のユーザ提示用語取得手段181は、受付部34が受け付けた最新の文「仁和寺の桜について教えて。」から、1以上の決定要因「桜」を取得する。
そして、嗜好ベクトル更新手段183は、ユーザ状態情報格納部13のユーザ状態情報が有する嗜好ベクトルを読み出す。そして、嗜好ベクトル更新手段183は、取得した決定要因「桜」に対応する要素の値が大きくなるように、ユーザ状態情報に含まれる嗜好ベクトルを更新する。決定要因「桜」に対応する要素の値を、どの程度大きくするかについては問わない。この大きくする値は、固定の値でも、固定の割合でも、動的に変化しても良い。
次に、装置提示用語取得手段182は、文出力部37が出力した最新の推薦文「仁和寺は、景色が良く、庭園、紅葉が有名で、世界遺産であり、イベントがあります。何か説明しましょうか?」から、1以上の決定要因「景色」「庭園」「紅葉」「世界遺産」「イベント」を取得する。
次に、知識ベクトル更新手段184は、ユーザ状態情報格納部13のユーザ状態情報が有する知識ベクトルを読み出す。知識ベクトル更新手段184は、取得した決定要因「景色」「庭園」「紅葉」「世界遺産」「イベント」に対応する要素の値が大きくなるように、ユーザ状態情報に含まれる知識ベクトルを更新する。決定要因「景色」等に対応する要素の値を、どの程度大きくするかについては問わない。この大きくする値は、固定の値でも、固定の割合でも、動的に変化しても良い。
次に、ユーザ状態情報更新部18は、ユーザ状態情報格納部13のユーザ状態情報が有する対話のターン数「0」を読み出す。そして、ユーザ状態情報更新部18は、読み出したターン数「0」に1を加えた値「1」を、新しいターン数として、ユーザ状態情報格納部13のユーザ状態情報を更新する。
次に、ユーザ状態情報更新部18は、直前ユーザ発話行為情報を「0」から「1」に更新する。
次に、ユーザ状態情報更新部18は、直前システム発話行為情報を「0」から「1」に更新する。
次に、ユーザ状態情報更新部18は、システム提示履歴情報を構成するスポット数を「0」から「1」(「仁和寺」を出力したので)に更新する。また、ユーザ状態情報更新部18は、システム提示履歴情報を構成する決定要因数を「0」から「5」(「景色」「庭園」「紅葉」「世界遺産」「イベント」を出力したので)に更新する。
以上により、ユーザ状態情報が最新の値(s0101,s0102,・・・,s0129)に更新された。
次に、ユーザと対話装置3との対話が何度か行われ、5回目の発話「ここの景色はどうですか?」が、ユーザにより音声入力された、とする。なお、現在の着目スポットは「仁和寺」である。
次に、受付部34の音声受付手段341は、ユーザから音声による文「ここの景色はどうですか?」を受け付ける。
次に、受付部34の音声認識手段342は、受け付けた文「ここの景色はどうですか?」を音声認識し、文字列の文を取得する。
次に、受付部34は、入力された文「ここの景色はどうですか?」が終了条件である文パターン「<スポット>に行きます。」または「<スポット>に決めました。」に合致しない、と判断する。
次に、スコア算出部15は、6つの各情報推薦手法に対する6つのスコアを、上述と同様に算出する。
つまり、まず、スコア算出部15は、ユーザ状態情報格納部13から、現在のユーザ状態情報(s0501,s0502,・・・,s0529)を読み出す。
次に、スコア算出部15は、情報推薦手法格納部12の中に、1番目から6番目までの各情報推薦手法が有する評価情報(ベクトル)と重みベクトルと、ユーザ状態情報(s0501,s0502,・・・,s0529)とを、情報推薦手法ごとに乗算する。そして、スコア算出部15は、6つの情報推薦手法のスコアを算出する。
次に、文構成部36は、直前のユーザ入力文を自然言語処理し、決定要因「景色」を取得する。なお、ここでは、文構成部36は、ユーザ入力文からスポットを取得できなかった。
次に、文構成部36は、変数「着目決定要因」に、取得した決定要因「景色」を代入する。
次に、文構成部36は、変数「着目スポット」の値「仁和寺」、および変数「着目決定要因」の値「景色」を用いて、知識ベース11を検索し、着目スポットおよび着目決定要因に対応する説明文「三門の上からは。京都市内が一望できます。」を、知識ベース11から読み出す。この説明文は、回答文となる。
次に、文構成部36は、推薦文の取得処理を行う。つまり、まず、文構成部36の文パターン情報取得手段361は、スコア算出部15が算出した6つのスコアのうち最も大きいスコアに対応する一の情報推薦手法(ここでは、ID=2の手法)が有する文パターン情報「<着目決定要因>ところですと、<1以上の未出スポット>などが紹介できます。」を、図12の情報推薦手法管理表から取得する。
次に、変数値取得手段362は、文パターン情報から、1番目の変数<着目決定要因>を取得する。次に、変数値取得手段362は、変数<着目決定要因>に代入される1以上の用語(変数「着目決定要因」の値「景色」)を取得する。次に、文構成手段363は、取得した1以上の用語「景色が良い」を、文パターン情報の中の1番目の変数の箇所に代入し、「景色が良いところですと、<1以上の未出スポット>などが紹介できます。」を得る。なお、「決定要因」に関する変数に値を代入する場合は、変数値取得手段362は、図11の属性値「決定要因」を取得する、とする。
次に、変数値取得手段362は、文パターン情報から、2番目の変数<1以上の未出スポット>を取得する。そして、変数値取得手段362は、変数<1以上の未出スポット>を取得する。つまり、変数値取得手段362は、変数「着目決定要因」の値「景色」の評価値が「1」であり、既出の決定要因「仁和寺」を除くスポットである「清水寺」「伏見稲荷大社」「鞍馬寺」を、知識ベース11(図11)から取得する。そして、次に、文構成手段363は、取得した用語「清水寺」「伏見稲荷大社」「鞍馬寺」を、文パターン情報の中の2番目の変数の箇所に代入し、「景色が良いところですと、清水寺、伏見稲荷大社、鞍馬寺などが紹介できます。」を得る。次に、文構成手段363は、「景色が良いところですと、清水寺、伏見稲荷大社、鞍馬寺などが紹介できます。」を自然な文に変換しようとするが、変更の必要がなく、推薦文「景色が良いところですと、清水寺、伏見稲荷大社、鞍馬寺などが紹介できます。」を取得する。
つまり、上記の処理は、「Method2((Spot清水寺,Spot伏見稲荷大社,Spot鞍馬寺),(Det景色))」を実行したこととなる。Method2()は、情報推薦手法2を適用することを意味する。「Spot清水寺」等はスポット「清水寺」等を意味する。
次に、文出力部37は、回答文「三門の上からは。京都市内が一望できます。」を音声出力する。続いて、文出力部37は、推薦文「景色が良いところですと、清水寺、伏見稲荷大社、鞍馬寺などが紹介できます。」を音声出力する。
次に、ユーザ状態情報更新部18は、以下のように、ユーザ状態情報更新処理を行う。つまり、まず、ユーザ状態情報更新部18のユーザ提示用語取得手段181は、受付部34が受け付けた最新の文「ここの景色はどうですか?」から、1以上の決定要因「景色」を取得する。
そして、嗜好ベクトル更新手段183は、ユーザ状態情報格納部13のユーザ状態情報が有する嗜好ベクトルを読み出す。そして、嗜好ベクトル更新手段183は、取得した決定要因「景色」に対応する要素の値が大きくなるように、ユーザ状態情報に含まれる嗜好ベクトルを更新する。決定要因「景色」に対応する要素の値を、どの程度大きくするかについては問わない。
次に、装置提示用語取得手段182は、文出力部37が出力した最新の推薦文「景色が良いところですと、清水寺、伏見稲荷大社、鞍馬寺などが紹介できます。」から、1以上の決定要因「景色」を取得する。
次に、知識ベクトル更新手段184は、ユーザ状態情報格納部13のユーザ状態情報が有する知識ベクトルを読み出す。知識ベクトル更新手段184は、取得した決定要因「景色」に対応する要素の値が大きくなるように、ユーザ状態情報に含まれる知識ベクトルを更新する。なお、例えば、すでに決定要因「景色」に対応する要素の値が最大値である場合は、この要素値は変化しない。
次に、ユーザ状態情報更新部18は、ユーザ状態情報格納部13のユーザ状態情報が有する対話のターン数「5」を読み出す。そして、ユーザ状態情報更新部18は、読み出したターン数「5」に1を加えた値「6」を、新しいターン数として、ユーザ状態情報格納部13のユーザ状態情報を更新する。
次に、ユーザ状態情報更新部18は、直前ユーザ発話行為情報を「1」のままとする。また、ユーザ状態情報更新部18は、直前システム発話行為情報を「1」のままとする。
次に、ユーザ状態情報更新部18は、システム提示履歴情報を構成するスポット数を「1」から「4」(「清水寺」「伏見稲荷大社」「鞍馬寺」を出力したので)に更新する。また、「景色」は、既に出現したいたので、ユーザ状態情報更新部18は、システム提示履歴情報を構成する決定要因数を「5」のままとする。
以上により、ユーザ状態情報が最新の値(s0601,s0602,・・・,s0629)に更新された。
次に、ユーザは、対話装置3が出力した回答文と推薦文を聞き、「清水寺」(6回目の発話)と答えた、とする。
次に、受付部34の音声受付手段341は、ユーザから音声による文「清水寺」を受け付ける。
次に、受付部34の音声認識手段342は、受け付けた文「清水寺」を音声認識し、文字列の文を取得する。
次に、受付部34は、入力された文「清水寺」が終了条件である文パターン「<スポット>に行きます。」または「<スポット>に決めました。」に合致しない、と判断する。
次に、スコア算出部15は、6つの各情報推薦手法に対する6つのスコアを、上述と同様に算出する。
つまり、まず、スコア算出部15は、ユーザ状態情報格納部13から、現在のユーザ状態情報(s0601,s0602,・・・,s0629)を読み出す。
次に、スコア算出部15は、情報推薦手法格納部12の中に、1番目から6番目までの各情報推薦手法が有する評価情報(ベクトル)と重みベクトルと、ユーザ状態情報(s0601,s0602,・・・,s0629)とを、情報推薦手法ごとに乗算する。そして、スコア算出部15は、6つの情報推薦手法のスコアを算出する。
次に、文構成部36は、直前のユーザ入力文を自然言語処理し、スポット「清水寺」を取得する。なお、ここでは、文構成部36は、ユーザ入力文から決定要因を取得できなかった。
次に、文構成部36は、変数「着目スポット」に、取得したスポット「清水寺」を代入する。なお、現在の変数「着目決定要因」は、「景色」である。
次に、文構成部36は、変数「着目スポット」の値「清水寺」、および変数「着目決定要因」の値「景色」を用いて、知識ベース11を検索し、着目スポットおよび着目決定要因に対応する説明文「清水の舞台は斜面の上に建てられ、ここから望む市街の風景は見事です。」を、知識ベース11から読み出す。この説明文は、回答文となる。
次に、文構成部36は、推薦文の取得処理を行う。つまり、まず、文構成部36の文パターン情報取得手段361は、スコア算出部15が算出した6つのスコアのうち最も大きいスコアに対応する一の情報推薦手法(ここでは、ID=4の手法)が有する文パターン情報「他にも<1以上の未出決定要因>{select 3以下の決定要因 where 知識ベクトル内の値が低い順}なところなどが説明できます。」を、図12の情報推薦手法管理表から取得する。
次に、変数値取得手段362は、文パターン情報から、1番目の変数<1以上の未出決定要因>を取得する。次に、変数値取得手段362は、取得動作記述{select 3以下の決定要因 where 知識ベクトル内の値が低い順}に従って、変数<1以上の未出決定要因>に代入される1以上の用語(変数「着目決定要因」の値「景色」)を取得する。つまり、変数値取得手段362は、既出の決定要因「桜」「景色」以外の決定要因「混雑」「世界遺産」「散策」・・・のうちで、知識ベクトル内の値が低い順に3つ(ここで、「世界遺産」「散策」「歴史」)を取得した、とする。次に、文構成手段363は、取得した3つの決定要因「世界遺産」「散策」「歴史」を、文パターン情報の中の1番目の変数の箇所に代入し、「他にも世界遺産、散策できる、歴史で有名なところなどが説明できます。」を得る。
つまり、上記の処理は、「Method4((NULL),(Det世界遺産,Det散策,Det歴史))」を実行したこととなる。Method4()は、情報推薦手法4を適用することを意味する。「Det世界遺産」等は決定要因「世界遺産」等を意味する。
次に、文出力部37は、回答文「清水の舞台は斜面の上に建てられ、ここから望む市街の風景は見事です。」を音声出力する。続いて、文出力部37は、推薦文「他にも世界遺産、散策できる、歴史で有名なところなどが説明できます。」を音声出力する。
次に、ユーザ状態情報更新部18は、上記と同様に、ユーザ状態情報更新処理を行い、ユーザ状態情報が最新の値(s0701,s0702,・・・,s0729)に更新された、とする。
その後、ユーザと対話装置3との対話が進行し、ユーザが16回目の発話で「では、南禅寺に行きます。」を音声入力した、とする。
次に、受付部34の音声受付手段341は、ユーザから音声による文「では、南禅寺に行きます。」を受け付ける。
次に、受付部34の音声認識手段342は、受け付けた文「では、南禅寺に行きます。」を音声認識し、文字列の文を取得する。
次に、受付部34は、入力された文「では、南禅寺に行きます。」が終了条件である文パターン「<スポット>に行きます。」に合致する、と判断する。文「では、南禅寺に行きます。」が文パターン「<スポット>に行きます。」に合致する文を含むからである。
そして、処理は終了する。なお、処理の終了時に、文出力部37は、予め決められた文「京都観光案内システムをご利用頂き、有り難うございました。」や、予め決められた文パターン「<スポット>に決定しました。他に知りたいことはありますか?」から構成された文を出力しても良い。なお、ここでは、文出力部37は、文パターン「<スポット>に決定しました。他に知りたいことはありますか?」から「南禅寺に決定しました。他に知りたいことはありますか?」を出力した、とする。
以上の対話の流れを、図24に示す。図24において、S[数値]は、対話装置3(システム)からの発話、U[数値]はユーザからの発話を示す。また、Ansは回答文、Recは推薦文を示す。
以上、本実施の形態によれば、ユーザとの対話の進行に応じて、ユーザの知識と嗜好とに関する情報を動的に変更しながら対話を行うことにより、ユーザの意思決定を適切に支援できる。
なお、本実施の形態によれば、ユーザ状態情報の内容は問わない。また、ユーザとの対話の進行に応じて、ユーザ状態情報をどのように変更するかは問わない。ただ、ユーザの発話内に含まれるスポットや決定要因であり、否定的な内容ではないスポットや決定要因に対する嗜好に関する値(嗜好ベクトルを構成する要素値など)は、大きくする(対話装置3に選択されやすくする)。また、対話装置3が出力した発話内に含まれるスポットや決定要因に対する知識に関する値(知識ベクトルを構成する要素値など)は、大きくする(対話装置3に選択されやすくする)。
また、本実施の形態における、対話によるユーザ状態情報の変更の例について、以下に詳細に説明する。事前のユーザ状態情報が有する知識ベクトルが「Ksys=(0.22,0.01,0.02,0.18,・・・)」であり、事前の嗜好ベクトルが「Psys=(0.37,0.19,0.48,0.38,・・・)」であるとする。そして、ユーザの発話を受け付けて、対話装置3は、情報推薦手法1を選択した、とする。つまり、対話装置3は、「asys=Method1{(Spot5),(Det1,Det3,Det4)}」を実行した、とする。そして、対話装置3は、推薦文「仁和寺(Spot5)に関しては、庭園(Det1)、世界遺産(Det3)、紅葉(Det4)について説明できます。」を得た、とする。そして、ユーザは、「世界遺産について(Det3)教えて」を入力した、とする。
すると、ユーザ状態情報更新部18は、事後の知識ベクトル「Ksys=((1.00,0.01,1.00,1.00,・・・)」、事後の嗜好ベクトル「Psys=(0.26,0.19,0.65,0.22,・・・)」を得る。なお、ベクトルは、(庭園,混雑,世界遺産,紅葉,景色,アクセス,桜,歴史,散策,イベント)の要素値で構成されている、とする。対話装置3(システム)から、決定要因「庭園」「世界遺産」「紅葉」が出力されたことにより、事後の知識ベクトルの「庭園」「世界遺産」「紅葉」の要素値が向上した。また、ユーザから決定要因「世界遺産」が入力されたことにより、嗜好ベクトルの「世界遺産」の要素値が増加した。そして、ユーザが決定要因「庭園」「紅葉」を選択しなかったことにより、嗜好ベクトルの「庭園」「紅葉」の要素値が減少した。
また、本実施の形態において、実施の形態1で学習した重みベクトルを用いた、対話装置について説明した。しかし、本実施の形態における対話装置3が用いる重みベクトルは、実施の形態1で学習した重みベクトルでなくても良い。つまり、対話装置3と実施の形態1で説明したシミュレーション装置2とは連携していなくても良い。
また、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における対話装置3を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、スポットと、当該スポットを決定するための要因である1以上の決定要因と、当該スポットの前記1以上の各決定要因の評価を示す評価値とを有するスポット情報を、2以上格納している知識ベースと、前記対話装置が出力する文または前記対話装置が出力する文のパターンを示す情報である文パターン情報と、当該文パターン情報を選択する際に利用される文パターン情報の評価情報とを有する2以上の情報推薦手法と、ユーザの状態を示す情報であり、1以上の各決定要因に対するユーザの嗜好を示す情報である嗜好ベクトルと、1以上の各決定要因に対するユーザの知識を示す知識ベクトルとを有するユーザ状態情報とを格納しており、コンピュータを、ユーザが入力した文を受け付ける受付部と、前記ユーザ状態情報を、前記記憶媒体に格納されている2以上の各情報推薦手法が有する評価情報に適用し、前記2以上の各情報推薦手法に対する2以上のスコアを算出するスコア算出部と、前記スコア算出部が算出した2以上のスコアを用いて、一の情報推薦手法が有する文パターン情報を取得し、当該文パターン情報から文を構成する文構成部と、前記文構成部が構成した文を出力する文出力部と、前記受付部が受け付けた文、または前記文出力部が出力した文のうちの1以上の文から、少なくとも1以上のスポットまたは1以上の決定要因を取得し、当該1以上のスポットまたは1以上の決定要因を用いて、前記記憶媒体のユーザ状態情報を更新するユーザ状態情報更新部とをして機能させるプログラムであり、前記スコア算出部は、前記ユーザ状態情報更新部が更新したユーザ状態情報を、前記情報推薦手法格納部に格納されている2以上の各情報推薦手法が有する評価情報に適用し、前記2以上の各情報推薦手法に対する2以上のスコアを算出するものとして機能させるプログラム、である。
また、上記プログラムにおいて、前記文構成部は、前記スコア算出部が算出した2以上のスコアのうち最も大きいスコアに対応する一の情報推薦手法が有する文パターン情報を取得する文パターン情報取得手段と、前記文パターン情報取得手段が取得した文パターン情報に含まれる1以上の変数を取得し、当該変数に対応するスポットまたは決定要因を、前記文出力部が直前に出力した文、または前記受付部が直前に受け付けた文のうちの1以上の文から取得する変数値取得手段と、前記文パターン情報取得手段が取得した文パターン情報の変数の箇所に、前記変数値取得手段が取得した用語を挿入して文を構成する文構成手段とを具備するものとして、コンピュータを機能させることは好適である。
また、上記プログラムにおいて、前記変数値取得手段は、前記文パターン情報取得手段が取得した文パターン情報に含まれる1以上の変数を取得し、当該変数に対応する候補となる1以上のスポットまたは1以上の決定要因を、前記文出力部が直前に出力した文、または前記受付部が直前に受け付けた文のうちの1以上の文から取得し、前記候補となる1以上のスポットまたは1以上の決定要因から、前記候補となる1以上のスポットまたは1以上の決定要因に対応する前記知識ベースの評価値を用いて、前記変数に対応するスポットまたは決定要因を選択するものとして、コンピュータを機能させることは好適である。
また、上記プログラムにおいて、前記ユーザ状態情報更新部は、前記受付部が受け付けた文から少なくとも1以上の決定要因を取得するユーザ提示用語取得手段と、前記文出力部が出力した文のうちの1以上の文から、少なくとも1以上の決定要因を取得する装置提示用語取得手段と、前記ユーザ提示用語取得手段が取得した1以上の決定要因に対する嗜好ベクトルの要素の値を高くするように更新する嗜好ベクトル更新手段と、前記装置提示用語取得手段が取得した1以上の決定要因に対する知識ベクトルの要素の値を高くするように更新する知識ベクトル更新手段とを具備するものとして、コンピュータを機能させることは好適である。
また、上記プログラムにおいて、前記受付部は、ユーザが入力した音声を受け付ける音声受付手段と、前記音声を認識し、文字列に変換する音声認識手段とを具備し、前記文出力部は、前記文構成部が構成した文を音声出力するものとして、コンピュータを機能させることは好適である。
また、図25は、本明細書で述べたプログラムを実行して、上述した実施の形態の対話装置等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図25は、このコンピュータシステム340の概観図であり、図26は、コンピュータシステム340のブロック図である。
図25において、コンピュータシステム340は、FDドライブ、CD−ROMドライブを含むコンピュータ341と、キーボード342と、マウス343と、モニタ344と、マイク345とを含む。なお、対話装置1、3、およびシミュレーション装置2は、マイク345を有しなくても良い。
図26において、コンピュータ341は、FDドライブ3411、CD−ROMドライブ3412に加えて、MPU3413と、CD−ROMドライブ3412及びFDドライブ3411に接続されたバス3414と、ブートアッププログラム等のプログラムを記憶するためのROM3415とに接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3416と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3417とを含む。ここでは、図示しないが、コンピュータ341は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム340に、上述した実施の形態の対話装置等の機能を実行させるプログラムは、CD−ROM3501、またはFD3502に記憶されて、CD−ROMドライブ3412またはFDドライブ3411に挿入され、さらにハードディスク3417に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ341に送信され、ハードディスク3417に記憶されても良い。プログラムは実行の際にRAM3416にロードされる。プログラムは、CD−ROM3501、FD3502またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ341に、上述した実施の形態の対話装置等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム340がどのように動作するかは周知であり、詳細な説明は省略する。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。