【文献】
Klaus-Peter Engelbrecht, et al.,"Modeling User Satisfaction with Hidden Markov Models",Proceedings of SIGDIAL 2009,2009年 9月11日,pp.170-177
【文献】
犬塚遼佑 他,"癒し系ロボットPDDIN2007",電子情報通信学会技術研究報告,2007年12月 7日,Vol.107,No.387,pp.49-54
【文献】
新田恒雄,"マルチモーダル対話の深化と記述言語の今後",情報処理学会研究報告,2004年 2月 7日,Vol.2004,No.15,pp.15-22
【文献】
目黒豊美 他,"POMDPを用いた聞き役対話システムの対話制御",言語処理学会第17回年次大会発表論文集,2011年 3月31日,pp.912-915
(58)【調査した分野】(Int.Cl.,DB名)
前記振る舞い決定部は、強化学習を行うことで作成された学習済みの統計モデルに、前記対話状態に基づく入力データを与えることで前記ユーザに対する振る舞いを決定する、請求項1に記載の対話システム。
前記強化学習における報酬は、学習用入力音声に基づいて推定された前記学習用入力音声を発話したユーザの満足度に応じて設定される、請求項4に記載の対話システム。
【発明を実施するための形態】
【0014】
以下、図面を参照しながら実施形態の説明を述べる。なお、以降、説明済みの要素と同一または類似の要素には同一または類似の符号を付し、重複する説明については基本的に省略する。
【0015】
(第1の実施形態)
図1に例示されるように、第1の実施形態に係る対話システム100は、音声認識部101と、満足度推定部102と、意図・検索条件推定部103と、対話状態推定部104と、振る舞い決定部105と、検索部106と、検索データベース(DB:Data Base)107と、応答生成部108と、音声合成部109とを含む。
【0016】
なお、対話システム100は、1個の装置、例えば1個のスマートフォン、コンピュータなどによって実現される必要はない。すなわち、ある機能部を実現する装置と、他の機能部を実現する装置とが異なっていてもよい。例えば、音声認識部101および音声合成部109は個々のユーザ10のスマートフォンによって実現され、残りの機能部が1または複数のサーバによって実現される、という形態が想定される。
【0017】
音声認識部101は、例えば図示されないマイクロフォンから電気信号の形式のユーザ10の入力音声を受け取る。音声認識部101は、ユーザ10の入力音声に対して自動音声認識(ASR:Automatic Speech Recognition)処理を行い、認識結果テキストを得る。音声認識部101は、認識結果テキストを意図・検索条件推定部103へ送る。
【0018】
なお、意図・検索条件推定部103によって受け付け可能なユーザ入力は、認識結果テキストに限られない。故に、音声認識部101に加えて、または音声認識部101に代えて他の入力部が用いられてもよい。具体的には、この入力部は、キーボードなどのテキストを直接入力する装置からテキストを受け取ってもよいし、GUI(Graphical User Interface)部品へのタッチ情報などの操作情報を受け取ってもよい。
【0019】
満足度推定部102は、例えば図示されないマイクロフォンから電気信号の形式のユーザ10の入力音声を受け取る。満足度推定部102は、ユーザ10の入力音声に基づいてユーザ10の満足度を推定する。満足度推定部102は、推定した満足度を対話状態推定部104へ送る。
【0020】
満足度は、例えば「1:非常に不満である」、「2:不満である」、「3:普通である」、「4:満足である」および「5:非常に満足である」の5段階の尺度を用いて推定され得る。なお、満足度は、1つの尺度として表現されてもよいし、
図4に例示されるように複数の尺度に亘る確率分布として表現されてもよい。また、ここで説明した5段階の尺度は一例に過ぎず、「1:不満である」および「2:満足である」の2段階、「1:不満である」、「2:普通である」および「3:満足である」3段階、またはそれ以外であってもよい。
【0021】
満足度推定部102は、例えば、予め作成されたルールに基づいて満足度を推定してもよい。或いは、満足度推定部102は、学習済みの統計モデル(例えば、学習済みのニューラルネットワークなどの統計モデル)に、入力音声に基づく入力データを与えることでユーザ10の満足度を推定してもよい。この学習済みの統計モデルは、例えば満足度を示すラベルが付与された学習用入力音声を用いた教師付き学習によって作成され得る。かかる満足度推定部102の動作および機械学習の詳細は後述される。
【0022】
意図・検索条件推定部103は、音声認識部101から認識結果テキストを受け取り、これに基づいてユーザ10の意図および/または検索条件を推定する。意図・検索条件推定部103は、推定した意図・検索条件を対話状態推定部104へ送る。
【0023】
意図・検索条件推定部103は、ユーザ10の発話毎に、当該発話に対応する認識結果テキストに基づいて意図・検索条件を推定する。すなわち、意図・検索条件推定部103は、ユーザ10の発話毎に、当該発話をテキスト化した認識結果テキストから把握可能な意図・検索条件を推定する。
【0024】
ユーザ10の意図は、例えば、(発話)タグとスロットとの組として表現され得る。
発話タグは、認識結果テキスト(より一般化すれば入力テキスト)から推定される、ユーザ10の対話システム100に対する行動を大まかに分類する情報である。具体的には、「要求を伝達している(Inform)」、「情報を確認している(Confirm)」、「対話システム100からの質問に対して肯定している(Affirm)/否定している(Negate)」などの発話タグが利用可能である。或いは、より具体的なレベルの行動を示す発話タグ、例えば、「レストランを探したい(Inform−search−restaurant)」、「ホテルを探したい(Inform−search−hotel)」などを必要に応じて定めることもできる。
【0025】
他方、スロットは、入力テキストに含まれる(或いは、それから推定される)、対話処理に必要な情報である。スロットは、[スロット名=値]として表現される。例えば、意図・検索条件推定部103は、「安いバッグが買いたい」という入力テキストから、[値段=安め]、[商品=バッグ]、などのスロットを推定することができる。スロットおよびスロット名は、属性および属性名と読み替えることもできる。
【0026】
意図・検索条件推定部103は、キーワードマッチングを利用して発話タグおよびスロットを推定してもよいし、例えば最大エントロピー法、ニューラルネットワークまたはその他の統計モデル、などの統計的アプローチを利用して発話タグおよびスロットを推定してもよい。統計的アプローチでは、例えば、学習用入力テキストに含まれる単語列を用いた機械学習によって作成された学習済みの統計モデルが利用され得る。
【0027】
ニューラルネットワークを利用した発話タグおよびスロットの推定は、例えば非特許文献2に記載の技法により実現可能である。ここでは、ニューラルネットワークの一種である再帰型ニューラルネットワーク(RNN:Recurrent Neural Network)が用いられる。
【0028】
具体的には、非特許文献2は、旅行サイトのフライト検索に適用される発話タグおよびスロットの推定法について解説がある。この概念図を
図2に示す。この例では、RNNの一種である双方向LSTM(Long−Short Time Memory)のエンコーダが、入力テキストに含まれる単語列「from LA to Seattle」をエンコードする。そして単方向LSTMのデコーダが、エンコードされた単語列をデコード、この場合には、発話タグ「Flight」、ならびにスロット[FromLoc(出発空港)=LA]および[ToLoc(到着空港)=Seattle]を推定する。推定結果は、[FromLoc=LA]の確率が80%、[ToLoc=Seattle]の確率が60%のように、確率として表現するのが一般的である。
【0029】
検索条件は、例えばスロットと同様に[条件(属性)=値]として表現され得るが、検索条件の表現は検索DB 107のスキーマにも依存する。検索条件は、スロットと同様にキーワードマッチングまたは統計的アプローチを用いて推定されてよい。
【0030】
また、意図・検索条件推定部103は、現行の入力テキストが、過去に推定した条件に関して言及していない場合にもかかる条件を維持する、または過去に推定した条件を消すことを意味する場合にはかかる条件を削除する、などの検索条件の引き継ぎ処理を行い得る。かかる検索条件の引き継ぎ処理は、例えばルールとして記述されてよい。また、かかる検索条件の引き継ぎ処理は、前述の条件値と共に統計的アプローチにより推定されてもよい。
【0031】
なお、
図1には示されていないが、意図・検索条件推定部103は、入力テキストに加えて、満足度推定部102によって推定された満足度を受け取り、これらに基づいて意図・検索条件を推定してもよい。具体的には、意図・検索条件推定部103は、満足度も考慮して発話タグ、スロット、または検索条件の確率を決定してもよい。例えば、意図・検索条件推定部103は、入力テキストが同じでも満足度が高ければ確率が高くなるように決定してもよく、これにより意図・検索条件がより対話システム100の振る舞いに反映されやすくなる。
【0032】
対話状態推定部104は、例えばユーザ10の発話毎に、満足度推定部102から満足度を受け取り、意図・検索条件推定部103から意図・検索条件を受け取る。対話状態推定部104は、これまでに受け取った満足度および意図検索条件に基づいて推定した対話状態と、新たに受け取った満足度および意図・検索条件とに基づいて、最新の対話状態を推定する。
【0033】
例えば、対話状態推定部104は、最初に満足度および意図・検索条件を受け取った時に、これらを初期の対話状態として保存してもよい。以降、対話状態推定部104は、最後に保存された対話状態、すなわち最後に推定した対話状態を、新たに受け取った満足度および意図・検索条件に基づいて更新することで最新の対話状態を推定してもよい。
【0034】
対話状態は、例えば、ユーザ10の意図、検索条件および満足度を含み得る。対話状態推定部104は、最後に保存された対話状態に含まれるユーザ10の満足度、意図および検索条件の確率を、新たに受け取った満足度、意図および検索条件の確率に基づいて補正することで対話状態を更新してもよい。対話状態推定部104は、更新後の対話状態を振る舞い決定部105へ送り、さらにこれに含まれる検索条件を検索部106へ送る。
【0035】
検索部106は、対話状態推定部104から検索条件を受け取り、当該検索条件に基づいて検索DB 107を検索する。検索部106は、検索結果を振る舞い決定部105へ返す。
【0036】
検索DB 107は、予め複数の検索対象が保存されている。検索対象は、例えば、レストランの店舗情報、ホテルの空室情報、フライトの空席情報、バッグの商品情報など様々である。検索DB 107において用いられるDBの種類、または検索部106による検索方法は特に限定されず、種々の形態で実現可能である。例えば、検索DB 107は、対話システム100内部に構築される必要はなく、対話システム100とは異なるシステムからもアクセス可能な外部のデータベースであってよい。
【0037】
振る舞い決定部105は、対話状態推定部104から対話状態、すなわち、意図、検索条件および満足度を受け取り、検索部106から検索結果を受け取る。振る舞い決定部105は、対話状態および検索結果に基づいて、対話システム100の振る舞いを決定する。振る舞い決定部105は、振る舞いを応答生成部108へ送る。
【0038】
振る舞いは、対話システム100の採る行動を概念的に表す情報、例えばタグおよびスロットを用いて表現されてよい。具体的には、振る舞い決定部105は、例えば「Request(商品)(希望する商品をユーザ10に確認する)」、「Offer(店舗名=Aストア)(Aストアをユーザ10の希望する店舗として提示する)」などを振る舞いとして決定し得る。
【0039】
振る舞い決定部105は、例えば、学習済みの統計モデル(例えば、学習済みのニューラルネットワークであって、ポリシーモデルとも呼ばれる)に、対話状態および検索結果に基づく入力データを与えることで振る舞いを決定してもよい。この学習済みの統計モデルは、例えば強化学習によって作成され得る。かかる振る舞い決定部105の動作および機械学習の詳細は後述される。
【0040】
応答生成部108は、振る舞い決定部105から振る舞いを受け取り、これに基づいてユーザ10に提示するための応答文を生成する。応答生成部108は、応答文を音声合成部109へ送る。
【0041】
応答生成部108は、様々な技法により応答文を生成することができる。応答生成部108は、例えば、振る舞い毎に予め作成された応答文を参照し、受け取った振る舞いに対応付けられた応答文を読み出すことで応答文を生成してもよい。応答生成部108は、予め作成された空欄のある応答文を利用し、対話状態に含まれるスロットの値(単語)を当該空欄にはめ込んで応答文を作成してもよい。応答生成部108は、事前に大量に収集された、振る舞いに対応する応答文を用いた機械学習によって作成された応答文生成モデルを利用して応答文を作成してもよい。
【0042】
なお、応答生成部108は、応答文に加えて検索結果を提示するための情報を生成し、図示されないディスプレイなどの出力部によってこの情報をユーザ10に提示してもよい。
【0043】
音声合成部109は、応答生成部108から応答文を受け取り、これに対して音声合成処理、すなわちTTS(Text−to−Speech)処理を行い、応答音声を生成する。音声合成部109は、例えば図示されないスピーカなどの出力部へ応答音声を送る。この出力部によって、応答音声はユーザ10へ提示される。
【0044】
なお、応答文を聴覚的に提示する必要がない場合には、音声合成部109を省略してもよい。この場合に、例えば、図示されないディスプレイなどの出力部が応答文を視覚的に提示してもよい。
【0045】
次に、満足度推定部102の動作例の詳細を説明する。満足度推定部102は、前述のようにルールベースで満足度を推定してもよいが、学習済みの統計モデルを用いて満足度を推定してもよい。ここでは、後者の例について説明する。
【0046】
満足度推定部102は、
図3に例示される畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)を含むことができる。このCNNは、入力層301と、畳み込み層302と、プーリング層303と、畳み込み層304と、プーリング層305と、畳み込み層306と、全結合層307と、全結合層308と、ソフトマックス層309とを含む。
【0047】
入力層301は、入力音声としての電気信号を30msのフレーム単位でフーリエ変換し、フーリエ変換結果を40個の周波数帯域に分割し、各周波数帯域内で平均化することで、40次元のベクトルを生成する。そして、入力層301は、現在フレームおよびその前後の5フレームの計11フレーム分のベクトルを二次元上に配置して40×11の行列を作成して出力する。
【0048】
畳み込み層302は、入力層301の出力行列(特徴マップ)に対して3×3の二次元フィルタを用いた畳み込み演算を行い、さらにそれぞれの演算結果に非線形の活性化関数を適用してから出力する。なお、畳み込み層302は、4種類の二次元フィルタを用いるので、4個の38×9の行列を出力することになる。
【0049】
プーリング層303は、畳み込み層302の出力行列に対して、2×2の平均化、すなわち出力行列から抽出された2×2の要素ついて平均を計算し、当該2×2の要素をその平均によって置き換える。これにより、プーリング層303は、4個の19×8の行列を出力することになる。
【0050】
畳み込み層304は、プーリング層303の出力行列に対して3×3の二次元フィルタを用いた畳み込み演算を行い、さらにそれぞれの演算結果に非線形の活性化関数を適用してから出力する。なお、畳み込み層304は、8種類の二次元フィルタを用いるので、8個の17×6の行列を出力することになる。プーリング層305は、畳み込み層304の出力行列に対して、2×2の平均化を行う。これにより、プーリング層305は、8個の8×3の行列を出力することになる。
【0051】
畳み込み層306は、プーリング層305の出力行列に対して3×3の二次元フィルタを用いた畳み込み演算を行い、さらにそれぞれの演算結果に非線形の活性化関数を適用する。畳み込み層306は、8個の入力行列のそれぞれについて5×1の行列、すなわち5次元のベクトルを生成する。畳み込み層306は、これら8個のベクトルを結合して40次元のベクトルとして全結合層307へ出力する。
【0052】
全結合層307は、通常のニューラルネットワークと同様に、入力ベクトルに対してアフィン変換(行列演算)を行い、活性化関数を適用してから、全結合層308へ出力する。全結合層308もまた同様に、入力ベクトルに対してアフィン変換を行い、活性化関数を適用してから、ソフトマックス層309へ出力する。
【0053】
ソフトマックス層309は、全結合層308の出力ベクトルにソフトマックス関数を適用し、満足度の尺度毎の事後確率を計算して出力する。なお、ソフトマックス層309は、入力音声のフレーム毎、すなわち30ms毎に事後確率を計算して出力することになる。
【0054】
満足度推定部102は、満足度の尺度毎の事後確率を例えば1つの発話に含まれる全フレームに亘って平均化し、当該発話におけるユーザ10の満足度の推定結果としてもよい。かかる推定結果の一例を
図4に示す。なお、満足度は、必ずしもこのような確率分布として表現されなくてもよい。例えば、満足度推定部102は、ある発話について計算された確率分布から計算される期待値、すなわち、各尺度と当該尺度の事後確率との積を全尺度に亘って合計した値を、満足度の推定結果としてもよい。
【0055】
図3に示したCNNにおいて、フィルタ演算またはアフィン変換に用いられる、重み行列、バイアスベクトルなどは、モデルパラメータと呼ばれる。モデルパラメータは、統計的な機械学習によって決定される。この機械学習では、学習用入力音声と、当該学習用入力音声に割り当てられた満足度のラベルデータとが大量に用いられる。ラベルデータは、例えば学習用入力音声に備わっている声の調子、感情などの非言語的な情報を手がかりに人間が総合的に判断して作成することができる。ラベルデータの尺度体系は前述のように5段階であってもよいし、2段階、3段階またはそれ以外であってもよい。ラベルデータは、教師データとも呼ばれる。この機械学習では、学習用入力音声に対してCNNが出力する事後確率に基づいて推定される満足度と、ラベルデータの示す満足度とに基づいて計算されるクロスエントロピーが最小となるように、バックプロパゲーション的に出力側から入力側に向かってモデルパラメータが繰り返し最適化される。
【0056】
次に、振る舞い決定部105の動作例の詳細を説明する。振る舞い決定部105は、前述のようにルールベースで振る舞いを決定してもよいが、これは、開発のコスト増および長期化という問題がある。さらに、学習済みの統計モデル(ポリシーモデル)を用いて振る舞いを決定した場合にはその振る舞いは統計的に最適といえるが、ルールベースで振る舞いを決定した場合にはその振る舞いの適切さを客観的に説明することが困難である。故に、ここでは、振る舞い決定部105は、ポリシーモデルを用いて振る舞いを決定することとするが、振る舞い決定部105がルールベースで振る舞いを決定したとしても構わない。
【0057】
振る舞い決定部105の用いるポリシーモデルのモデルパラメータは、例えば以下に説明する強化学習によって決定されてよい。ポリシーモデルは、例えば、ガウス過程(Gaussian process)モデル、DQN(Deep Q−Net)、などのディープニューラルネットワークに基づくモデル、またはその他のモデルであり得る。また、モデルパラメータの最適化には、アクタークリティック(Actor critic)法やSARSA(State Action Reward State Action)法などを用いることができる。
【0058】
この強化学習では、対話がユーザ10の要求に沿って進展しているか否かに応じて、正または負の報酬が与えられる。そして、学習用の対話状態および検索結果に対してどのように振る舞いを決定すると、対話の終了までに獲得できる報酬を最大化できるかという観点で、振る舞いの決定法が試行錯誤的に学習される。学習により最適なモデルパラメータを決定することで、ポリシーモデルが作成される。
【0059】
報酬は、例えば、対話中の発話毎、そして対話終了時に与えるようにしてもよい。具体的には、対話終了時に絶対値の大きな正の報酬を与え、対話中には発話毎に絶対値の小さな負の報酬を与えてもよい。かかる報酬体系によれば、ポリシーモデルとして、対話を少ないやり取りで終わらせる、振る舞いの決定法が学習される。或いは、
図7に例示されるように、対話中には発話毎の満足度に応じた報酬を与えてもよい。
図7の例では、5段階の満足度の尺度の昇順に、「−5」、「−3」、「−1」、「1」、「2」の報酬が設定されている。かかる報酬体系によれば、ポリシーモデルとして、ユーザ10の満足度が普通または低い場合に対話を少ないやり取りで終わらせる、振る舞いの決定法が学習される。他方、対話中には報酬を与えず、対話終了時に満足度に応じた報酬を与えるようにしてもよい。
【0060】
振る舞い決定部105は、このように作成されたポリシーモデルを用いることで、入力された対話状態および検索結果に対して、対話の終了までに獲得できると統計的に期待される報酬を最大化するように振る舞いを決定できる。振る舞い決定部105は、対話状態に含まれる満足度を考慮して振る舞いを決定する。故に、ポリシーモデルの学習次第で、振る舞い決定部105は、例えばユーザ10が対話システム100の応答に苛立って満足度が低下している場合には、同じ質問の繰り返しを避ける、「申し訳ございません」などのユーザ10の苛立ちを抑えるための一言を応答に添えるなど、ユーザ10の感情を気遣った振る舞いを選択することができる。
【0061】
具体的には、振る舞い決定部105の使用するポリシーモデルは、
図6に例示される機械学習によって作成されてよい。なお、以降の説明では、
図1の対話システム100が
図6の機械学習を行うこととしているが、他の装置、例えばコンピュータによってかかる機械学習を行い、作成したポリシーモデルを対話システム100に設定することもできる。
【0062】
図6の機械学習が開始すると、処理はまずステップS501へ進む。ステップS501では、音声認識部101および満足度推定部102が、それぞれ学習用入力音声を受け取る。この学習用入力音声は、学習データとして予め大量に収集された、ユーザと対話システム100との対話事例から抽出されてもよし、正式運用前の対話システム100にユーザと対話させることでリアルタイムに取得してもよい。
【0063】
音声認識部101は、ステップS501において受け取った入力音声に音声認識処理を行い、認識結果テキストを得る(ステップS502)。満足度推定部102は、ステップS501において受け取った入力音声に基づいて、当該入力音声を発話したユーザの満足度を推定する(ステップS503)。
【0064】
意図・検索条件推定部103は、ステップS502において生成された認識結果テキストを受け取り、これに基づいてユーザの意図および/または検索条件を推定する(ステップS504)。
【0065】
対話状態推定部104は、ステップS503において推定された満足度と、ステップS504において推定された意図・検索条件と、前回のステップS505の実行時(ただし、前回の実行時とは異なる対話中である場合には対話状態はリセットされ得る)に推定した対話状態とに基づいて、最新の対話状態を推定する(ステップS505)。
【0066】
他方、図示されないポリシーモデル学習部は、ステップS503において推定された満足度に対応する報酬を設定する(ステップS508)。ここでの報酬体系は、
図7に例示されたものであってよい。さらに、ポリシー学習部は、ステップS508において設定された報酬に基づいて、ポリシーモデル(のモデルパラメータ)を更新する(ステップS509)。なお、発話毎に報酬を与えない場合に、ステップS508およびステップS509は省略可能である。
【0067】
振る舞い決定部105は、ステップS509において更新されたポリシーモデルを用いて、ステップS505において推定された対話状態に基づいて対話システム100の振る舞いを決定する(ステップS506)。
【0068】
応答生成部108は、ステップS506において決定された振る舞いに基づいて、例えば応答文などのシステム応答を生成する(ステップS507)。ステップS507の終了時に、対話が終了していれば処理はステップS511へ進み、終了していなければ対話を継続するために処理はステップS501へ戻る(ステップS510)。
【0069】
ステップS511では、図示されないポリシーモデル学習部は、対話終了に対応する報酬を設定する(ステップS511)。ここでの報酬体系は、
図7に例示されたものであってよい。さらに、ポリシー学習部は、ステップS511において設定された報酬に基づいて、ポリシーモデルを更新する(ステップS512)。ステップS512の終了時に、未処理の学習データが残存している、ユーザと別の対話を開始するなどして、学習を継続する場合には処理はステップS501へ戻る(ステップS513)。他方、学習を継続しない場合には
図6の機械学習は終了する。
【0070】
以下、
図5を用いて、対話システム100の動作を説明する。なお、
図5は、対話システム100がユーザ10の発話毎に行われ、1回分のシステム応答を提示するための動作を示す。故に、対話の継続中は
図5の動作が繰り返し行われ得る。
【0071】
図5の動作が開始すると、処理はまずステップS401へ進む。ステップS401では、音声認識部101および満足度推定部102が、それぞれユーザ10からの入力音声を受け取る。
【0072】
音声認識部101は、ステップS401において受け取った入力音声に音声認識処理を行い、認識結果テキストを得る(ステップS402)。満足度推定部102は、ステップS401において受け取った入力音声に基づいてユーザ10の満足度を推定する(ステップS403)。
【0073】
意図・検索条件推定部103は、ステップS402において生成された認識結果テキストを受け取り、これに基づいてユーザ10の意図および/または検索条件を推定する(ステップS404)。
【0074】
対話状態推定部104は、ステップS403において推定された満足度と、ステップS404において推定された意図・検索条件と、前回のステップS405の実行時(ただし、前回の実行時とは異なる対話中である場合には対話状態はリセットされ得る)に推定した対話状態とに基づいて、最新の対話状態を推定する(ステップS405)。
【0075】
検索部106は、ステップS405において推定された対話状態に含まれる検索条件に基づいて検索DB 107を検索する(ステップS406)。そして、振る舞い決定部105は、学習済みのポリシーモデルを用いて、ステップS405において推定された対話状態と、ステップS406による検索結果とに基づいて対話システム100の振る舞いを決定する(ステップS407)。
【0076】
応答生成部108は、ステップS407において決定された振る舞いに基づいて、例えば応答文などのシステム応答を生成する(ステップS408)。音声合成部109は、ステップS408において生成された応答文を受け取り、これに対して音声合成処理を行い、応答音声を生成する(ステップS409)。図示されない出力部は、この応答音声をユーザ10へ提示する。これで、
図5の動作は終了する。
【0077】
以上説明したように、第1の実施形態に係る対話システムは、ユーザの入力音声に基づいてユーザの満足度を推定し、この満足度とユーザ入力(例えば、上記入力音声の認識結果テキスト)とに基づいて対話状態を推定する。そして、この対話システムは、この対話状態に基づいて振る舞いを決定する。故に、この対話システムによれば、例えばユーが対話システムの応答に苛立って満足度が低下している場合には、同じ質問の繰り返しを避ける、「申し訳ございません」などのユーザの苛立ちを抑えるための一言を応答に添える、など、ユーザの感情を気遣った振る舞いを採ることができる。
【0078】
(第2の実施形態)
図8に例示されるように、第2の実施形態に係る対話システム600は、音声認識部101と、満足度推定部102と、意図・検索条件推定部103と、対話状態推定部604と、振る舞い決定部605と、検索部106と、検索DB 107と、応答生成部108と、音声合成部109とを含む。
【0079】
対話状態推定部604は、満足度推定部102によって推定されるユーザ10の発話毎の満足度を考慮せずに対話状態を推定する点で前述の対話状態推定部104とは異なる。すなわち、対話状態推定部604は、例えばユーザ10の発話毎に、意図・検索条件推定部103から意図・検索条件を受け取る。対話状態推定部604は、これまでに受け取った意図検索条件に基づいて推定した対話状態と、新たに受け取った意図・検索条件とに基づいて、最新の対話状態を推定する。
【0080】
例えば、対話状態推定部604は、最初に意図・検索条件を受け取った時に、これらを初期の対話状態として保存してもよい。以降、対話状態推定部604は、最後に保存された対話状態、すなわち最後に推定した対話状態を、新たに受け取った意図・検索条件に基づいて更新することで最新の対話状態を推定してもよい。
【0081】
対話状態は、例えば、ユーザ10の意図および検索条件を含み得る。対話状態推定部604は、最後に保存された対話状態に含まれるユーザ10の意図および検索条件の確率を、新たに受け取った意図および検索条件の確率に基づいて補正することで対話状態を更新してもよい。対話状態推定部604は、更新後の対話状態を振る舞い決定部605へ送り、さらにこれに含まれる検索条件を検索部106へ送る。
【0082】
振る舞い決定部605は、満足度推定部102によって推定されるユーザ10の発話毎の満足度と、対話状態推定部604によって推定された対話状態(これは、満足度を含んでいない)と、検索部106による検索結果に基づいて、対話システム600の振る舞いを決定する。
【0083】
振る舞い決定部105は、例えば、ポリシーモデル(例えば、学習済みのニューラルネットワークなどの統計モデル)に、満足度、対話状態および検索結果に基づく入力データを与えることで振る舞いを決定してもよい。この学習済みの統計モデルは、例えば
図6を用いて説明した強化学習と類似の強化学習によって作成され得る。
【0084】
以上説明したように、第2の実施形態に係る対話システムは、ユーザの入力音声に基づいてユーザの満足度を推定し、ユーザ入力(例えば、上記入力音声の認識結果テキスト)に基づいて対話状態を推定する。そして、この対話システムは、満足度と、対話状態とに基づいて振る舞いを決定する。故に、この対話システムによれば、第1の実施形態に係る対話システムと同様に、ユーザの感情を気遣った振る舞いを採ることができる。
【0085】
(第3の実施形態)
図9に例示されるように、第3の実施形態に係る対話システム700は、音声認識部101と、満足度推定部102と、意図・検索条件推定部103と、対話状態推定部604と、振る舞い決定部705と、検索部106と、検索DB 107と、応答生成部108と、音声合成部109と、対話打ち切り決定部710とを含む。
【0086】
振る舞い決定部705は、対話状態推定部604によって推定された対話状態(これは、満足度を含んでいない)と、検索部106による検索結果に基づいて、対話システム700の振る舞いを決定する。
【0087】
振る舞い決定部105は、例えば、ポリシーモデル(例えば学習済みのニューラルネットワークなどの統計モデル)に、対話状態および検索結果に基づく入力データを与えることで振る舞いを決定してもよい。この学習済みの統計モデルは、例えば
図6を用いて説明した強化学習と類似の強化学習によって作成され得る。
【0088】
なお、振る舞い決定部705は、前述の振る舞い決定部605に置き換えられてよい。また、対話状態推定部604および振る舞い決定部705の組み合わせは、前述の対話状態推定部104および振る舞い決定部105の組み合わせに置き換えられてもよい。
【0089】
対話打ち切り決定部710は、例えばユーザ10の発話毎に、満足度推定部102から満足度を受け取る。対話打ち切り決定部710は、受け取った満足度に基づいてユーザ10と対話システム700との対話を打ち切るか否かを決定する。
【0090】
具体的には、対話打ち切り決定部710は、満足度の瞬時値、または満足度の統計値、例えば過去数回のユーザ10の発話の満足度の平均値、が閾値以下となった場合に、対話の打ち切りを決定してもよい。また、対話打ち切り決定部710は、満足度に加えて、対話状態推定部604によって推定された対話状態、例えば意図または検索条件、の推定確率に基づいて対話の打ち切りを決定してもよい。例えば、対話打ち切り決定部710は、満足度が閾値a1以下、または対話状態の推定確率が閾値b1以下の場合に対話の打ち切りを決定してもよいし、満足度が閾値a2以下、かつ対話状態の推定確率がb2以下である場合に対話の打ち切りを決定してもよい。
【0091】
対話打ち切り決定部710は、対話の打ち切りを決定した場合に、これを応答生成部108に通知する。例えば、対話打ち切り決定部710は、応答生成部108に、「申し訳ありません。自動対応ができませんのでオペレータにお繋ぎします。」などの応答文を生成させてもよい。また、対話打ち切り決定部710は、上位システムへ対話の打ち切りを通知し、対話をオペレータに引き継いでもよい。
【0092】
以上説明したように、第3の実施形態に係る対話システムは、ユーザの入力音声に基づいてユーザの満足度を推定する。そして、この対話システムは、満足度に基づいて対話を打ち切るか否かを決定する。故に、この対話システムによる対話の継続が困難となるケース、例えば、ユーザの不満が度を超えそうな場合、または実際に度を超えた場合などに、対話を自動的に打ち切り例えばオペレータに対話を引き継ぐことで、ユーザの対話システムへの満足度が致命的に悪化するのを回避することができる。
【0093】
なお、上記第1の実施形態乃至第3の実施形態に係る対話システム100,600および700は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現可能である。具体的には、音声認識部101、満足度推定部102、意図・検索条件推定部103、対話状態推定部104,604、振る舞い決定部105,605,705、検索部106、検索DB 107、応答生成部108、音声合成部109、および対話打ち切り決定部710のうち一部または全部が、コンピュータ装置に搭載されたプロセッサなどの制御装置にプログラムを実行させることで実現されてもよい。
【0094】
かかるコンピュータ装置は、
図10に例示されるように、CPU(Central Processing Unit)131などの制御装置と、ROM(Read Only Memory)132、RAM(Random Access Memory)133などの記憶装置と、マイクロフォン、(操作)入力装置、表示装置などに接続される入出力I/F(Interface)134と、ネットワークに接続して通信を行う通信I/F 135と、各ハードウェアを接続する136とを含むことができる。
【0095】
制御装置の実行するプログラムは、コンピュータ装置に予めインストールされていてもよいし、CD−ROMなどの記憶媒体、またはネットワーク経由で取得され、インストールされてもよい。また、それぞれの機能部は、コンピュータ装置に内蔵または外付けされたメモリ、ハードディスク、またはCD−R、CD−RW、DVD−RAM、DVD−Rなどの記憶媒体を適宜利用することができる。
【0096】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。