〔実施形態1〕
<対話制御システムの概要>
以下、本発明の一実施形態について、詳細に説明する。図2は、本実施形態にかかる対話制御システム100の概要を示す図である。対話制御システム100は、少なくとも、対話制御サーバ1と、対話装置2と、コメントソース3とを含む。上述の各装置は、例えば、インターネットなどの広域通信網を介して互いに通信可能に接続されている。
対話制御サーバ1は、対話装置2を制御して、対話装置2に、ユーザ40との対話が成立するようにコメントを発話させる。対話装置2は、対話制御サーバ1の制御にしたがって、ユーザ40と直接対話するように構成されている。コメントソース3は、対話装置2に発話させる候補のコメント(以下、候補コメント)を、対話制御サーバ1からの要求に応じて、対話制御サーバ1に提供する。
コメントソース3に格納されているコメントは、すでに完成した状態で、あらかじめ大量に格納されていてもよい。対話制御サーバ1は、その中から対話装置2に発話させる候補となるコメントを1以上抽出してもよい。コメントソース3に格納されるコメントは、随時、修正、追加または削除などの編集が可能であってもよい。例えば、コメントソース3は、SNS(Social Networking Service)サーバであってもよい。コメントソース3には、該SNSサーバのサービスを利用する不特定多数のユーザ(ユーザ41、ユーザ43など)が、自身の通信端末(パソコン42、スマートフォン44など)を用いて投稿するコメントが格納される。対話制御サーバ1は、このように随時投稿されるコメントの中から、候補コメントを抽出してもよい。あるいは、コメントソース3は、完成した状態から編集ができないようになっていてもよい。あるいは、コメントソース3は、既存の雑談エンジンを備え、対話制御サーバ1から送信されたクエリに基づいて、対話の文脈に応じた適切なコメントを1以上生成してもよい。
対話制御サーバ1は、対話制御ユニット10を備え、対話装置2に発話させるコメントを決定する。本実施形態では、対話制御ユニット10は、候補コメントの評価を行う予測器を含む。予測器によって評価された結果に応じて、対話制御サーバ1は、複数の候補コメントの中から、対話装置2に発話させるコメントを1つ決定することができる。
また、対話制御サーバ1は、学習ユニット20を備え、対話装置2が実際に発話したコメント(以下、発話済コメント)に対して、ユーザ40がどのような反応を示したのかを表したデータを蓄積する。蓄積されたデータを用いて機械学習を行い、上述の予測器を構築する。
したがって、対話制御サーバ1は、発話済コメントに対してユーザが見せた実際の反応についてのフィードバックを受け、対話装置にこれから発話させるコメントを決定する際に、過去にフィードバックされた内容を生かすことができる。したがって、対話制御サーバ1は、対話力を高めることが可能な魅力あるコメントを、対話装置2に発話させることができる。
対話装置2は、ユーザ40と直接対話する装置である。一例として、対話装置2は、マイクおよびスピーカを備えたロボットであってよい。この場合、対話装置2は、音声をやりとりすることによりユーザ40と対話する。あるいは、対話装置2は、スマートフォンなどの電子機器であってもよい。この場合、対話装置2は、スピーカに代えて、コメントをテキストとして表示部に出力することで発話を行ってもよい。
対話制御システム100における処理の流れを簡単に説明すると以下のとおりである。まず、ユーザ40は、対話装置2と対話しようとして、メタ情報またはメタ情報を特定するためのヒントとなる参考情報を対話装置2に対して提示する。メタ情報とは、対話の内容に係るテーマ、ジャンル、属性などである。メタ情報または参考情報の提示は、例えば、ユーザ40が、対話装置2に何かを話しかけることによって行われてもよい。あるいは、ユーザ40が、対話装置2に物理的にまたはソフトウェア的に設けられている操作部を操作してメタ情報または参考情報を入力することによって行われてもよい。あるいは、ユーザ40が何らかの行動を起こしたことを、対話装置2に設けられているセンサ部が検知することによって行われてもよい。
(対話制御時)
(1)対話装置2は、対話開始のトリガとしてのメタ情報または参考情報を受け付け、発話するべきコメントを求めて、対話制御サーバ1に対してリクエストを送信する。(2)対話制御ユニット10は、コメントソース3から対話装置2に発話させる候補コメントを1または複数抽出する。ここでは、従来技術を採用して、対話シーンに合わせて自然な発言となるように、適したコメントが抽出される。例えば、対話制御ユニット10は、適したコメントが抽出されるように、上述のメタ情報または参考情報に基づいてクエリを生成してもよい。(3)対話制御ユニット10は、上述の予測器を用いて、候補コメントそれぞれの評価値を予測する。評価値は、候補コメントの内容に基づいて、どの程度対話力がある魅力的なコメントであるのかという観点で予測される。(4)対話制御ユニット10は、評価値が最も高いコメント、すなわち、最も対話力があると推定されたコメントを決定する。そして、これを発話するように指示するレスポンスを対話装置2に返信する。(5)対話装置2は、返信されたコメントをユーザ40に対して発話する。
(学習時)
(6)対話装置2が発話した発話済コメントに対して、ユーザ40は、何らかの反応を示す。反応は、バーバルであってもよいし、ノンバーバルであってもよい。対話装置2は、自装置に設けられた各種センサ部を用いて、ユーザ40の反応を検知する。(7)対話装置2は、ユーザ40の反応に係る検知内容を、対話制御サーバ1にフィードバックする。(8)学習ユニット20は、フィードバックされた内容に基づいて、上述の発話済コメントに対するユーザの反応の良し悪しを測り、該発話済コメントに対して評価値を算出する。そして、発話済コメントを入力値とし、算出した評価値を出力値として、学習を行い、対話制御ユニット10の予測器を構築する。
こうして、次の対話制御時には、学習済みの予測器に基づいて、評価値の予測が行われる。したがって、より多くの前記入力値と前記出力値とのセットを用いて学習を行うほど、ユーザ40にとってより魅力的な候補コメントが高い評価値を得るように、対話制御ユニット10が調整される。結果として、フィードバックされた内容を生かして、対話力を高めることが可能な魅力あるコメントを、対話装置2に発話させることができる。
<対話制御サーバ1の機能的構成>
図1は、対話制御サーバ1の機能的構成を示すブロック図である。対話制御サーバ1は、一例として、通信部、記憶部、および、制御部を備えている。
通信部は、所定の通信方式にしたがう通信網(例えば、インターネットなど)を介して、外部装置と通信する。通信部における、通信回線、通信方式、または通信媒体などは、対話制御システム100の規模、対話制御システム100を構築するその他の外部装置の仕様などに応じて適宜決定される。
記憶部は、不揮発性の記憶装置によって構成され、対話制御サーバ1が処理する各種情報を記憶する。具体的には、記憶部には、図1に示す学習データ30などが記憶されている。
制御部は、対話制御サーバ1が有する各種の機能を統括的に制御する。本実施形態において、制御部は、機能ブロックとして、少なくとも、コメント抽出部11、予測器120、コメント決定部13、評価値算出部14および学習制御部15を含んでいる。
学習データ30に基づく学習が完了した予測器120が、候補コメントの評価値を予測する評価値予測装置12として機能する。評価値予測装置12は、コメントのテキストデータを入力とし、該コメントの対話力の高さを示す評価値を出力する装置である。
対話制御サーバ1において、コメント抽出部11、予測器120、および、コメント決定部13が、上述の対話制御ユニット10に属し、評価値算出部14、学習制御部15および学習データ30が上述の学習ユニット20に属する。
コメント抽出部11は、通信部を介して対話装置2からリクエストを受け付ける。コメント抽出部11は、受け付けたリクエストに基づいて、クエリを生成し、コメントソース3から候補コメントを抽出する。
予測器120は、機械学習により、候補コメントのテキストデータの入力に応じて、該候補コメントの評価値を予測して出力するように構築されたものである。予測器120の学習に用いるデータ(レコード)は、学習データ30に記憶されている。学習データ30に登録されるレコードの各々において、少なくとも発話済コメントのテキストデータと、該発話済コメントに対するユーザの反応に基づいて算出された評価値とが紐付けられている。これにより、予測器120に、両者の相関関係を学習させることができる。
なお、コメントのすべてに対してメタ情報が付与される実施形態では、発話済コメントのテキストデータおよびメタ情報の組み合わせと、算出された評価値との相関関係が示されたレコードを、予測器120を構築するための機械学習に用いてもよい。これにより、候補コメントのテキストデータおよびメタ情報の組み合わせを入力とし、これに応じて候補コメントの評価値を出力するように構築された予測器120を得ることができる。
以下では、予測器120によって、候補コメントに対して予測される評価値と、発話済コメントに対してユーザ40の反応に係るフィードバック基づいて算出された評価値とを区別するために、前者を、予測評価値と称し、後者をフィードバック(FB)評価値と称する。
予測評価値は、ユーザの反応の良し悪しを予測した数値である。予測評価値は、後述のコメント決定部13が対話装置2に発話させるコメントを決定するときに、コメント決定部13によって利用される。
FB評価値(学習評価値)は、発話済コメントに対するユーザの実際の反応の良し悪しを示す数値である。FB評価値は、上述の予測器120を構築するための学習を行うときに、後述の学習制御部15によって利用される。
両評価値は、ユーザの反応の良し悪し(すなわち、対話力の高さ)を同じ尺度で示しており、一例として、0〜100の整数で表される。両評価値は値が高いほど、ユーザの反応が良い、すなわち、対話力が高いことを意味する。
予測器120の機械学習の方法は特に限定されない。予測器120は、例えば、サポートベクターマシン(SVM;support vector machine)あるいは、ニューラルネットワーク、特に、ディープニューラルネットワーク(DNN;deep neural network)などで実現されてもよい。
コメント決定部13は、候補コメントごとに予測された予測評価値に基づいて、対話装置2に発話されるコメントを決定する。コメント決定部13は、決定したコメントのテキストデータを含むレスポンスを対話装置2に返信する。
評価値算出部14は、対話装置2から送信されたフィードバックに基づいて、対話装置2の発話済コメントを対話力の観点から評価する。具体的には、発話済コメントに対してユーザ40が示した反応に基づいて、発話済コメントに対してFB評価値を算出する。算出されたFB評価値は、学習データ30として記憶部に格納される。
学習制御部15は、予測器120の学習に関する処理を行う。具体的には、学習データ30に蓄積されたレコード、すなわち、発話済コメントと、該発話済コメントに紐付けられたFB評価値とを、予測器120の学習に用いて、学習済みの予測器120を得る。学習制御部15は、学習のタイミングを制御することができる。例えば、学習制御部15は、所定の時間間隔で定期的に(例えば、1日1回)学習を行ってもよいし、学習データ30に未学習のレコードが所定数以上(例えば、50レコード)蓄積されたときに学習を行っても。学習制御部15は、学習の対象を制御することができる。学習制御部15は、学習データ30に蓄積されているすべてのレコードを学習に用いてもよいし、登録された日時が新しい順から所定数のレコードを学習に用いてもよいし、登録された日時が、直近の特定期間(例えば、直近1週間)以内のレコードを学習に用いてもよい。
<対話制御ユニット10が扱うデータについて>
図3は、コメント抽出部11が生成したクエリのデータ構造の一例を示す図である。例えば、クエリは、ユーザ40が発話したコメント(以下、ユーザ発話コメント)を音声認識によりテキストに変換したテキストデータと、メタ情報とを含む。具体的には、テキストデータは、対話装置2から送信されたリクエストに含まれており、コメント抽出部11は、これをクエリの生成に用いる。コメント抽出部11は、例えば、テキストデータに対して意味解釈の処理を実行し、これが気候に関する発話だと判断すれば、「気候」のメタ情報をクエリに含める。本実施形態では、あらゆる事物をおおまかに区別するためのメタ情報が、あらかじめいくつか設定されており、コメント抽出部11は、ユーザ40の発話の内容に近いメタ情報を、上述のテキストデータに付与してクエリを生成する。これにより、コメントソース3からの候補コメントの抽出を効率的に行う。なお、コメント抽出部11は、テキストデータのみをクエリとして、コメントソース3に送信してもよい。
図4は、抽出された候補コメントのデータ構造の一例を示す図である。コメント抽出部11は、図4に示すとおり、候補コメントリスト50を生成してもよい。候補コメントリスト50は、記憶部に格納される。候補コメントリスト50において、コメント抽出部11は、抽出した候補コメントのテキストデータに、メタ情報を付与してもよい。メタ情報は、1つのコメントに対して複数付与されてもよい。また、コメント抽出部11は、便宜上、候補コメントを一意に識別するためのコメントIDを関連付けてもよい。
例えば、図4に示すとおり、コメント抽出部11がコメント1〜7の7個の候補コメントを抽出した場合、予測器120は、7個の候補コメントのそれぞれについて予測評価値を出力する。コメント決定部13は、出力された予測評価値を、図4に示すとおり、対応する候補コメントに対応付けて記憶部に格納する。コメント決定部13は、一例として、最も予測評価値が高い候補コメントを、対話装置2に発話させるコメントとして決定する。最高の予測評価値が複数ある場合は、コメント決定部13は、コメントIDの数字が最小(または最大)の候補コメントを選択してもよいし、テキストデータの文字数が最少(または最多)の候補コメントを選択してもよいし、予測評価値が最高値のすべての候補コメントを順次発話するように対話装置2に指示してもよい。図4に示す例では、コメント決定部13は、予測評価値が最も高いコメント6を、対話装置2に発話させるコメントとして決定する。
<学習ユニット20が扱うデータについて>
図5は、対話装置2から提供されたフィードバックのデータ構造の一例を示す図である。フィードバックは、発話済コメントのテキストデータと、ユーザ40の反応に関して対話装置2が検知した内容を示す反応データとを含む。
コメントIDが、対話制御サーバ1と対話装置2との間で共有されている場合には、テキストデータに代えて、発話済コメントのコメントIDがフィードバックに含まれていてもよい。
反応データは、複数の項目で構成され、項目ごとにユーザ40の反応に係る情報が格納されていてもよい。反応データは、一例として、直接入力データ、テキストデータ、音声データ、および、画像データの4つの項目を含む。直接入力データは、例えば、ユーザ40が発話済コメントに面白みを感じたか、そうでないかを示す2値の情報である。
本実施形態では、ユーザ40は、対話装置2がコメントを発話した後、該コメントに対する自身の評価を、対話装置2に直接入力できる構成である。例えば、対話装置2は、コメントを発話した後、「いいね」に対応するソフトウェアボタンと、「う〜ん」に対応するソフトウェアボタンとを自装置に設けられたタッチパネルに表示し、ユーザ40にいずれかのボタンを押させるように構成されていてもよい。ユーザ40は、対話装置2の発話済コメントに魅力を感じれば「いいね」ボタンを、魅力を感じなかったり、嫌悪感を抱いたりすれば「う〜ん」ボタンをタッチ操作で選択する。対話装置2は、タッチ操作されたボタンに対応する情報を直接入力データとして生成し、フィードバックに含める。例えば、直接入力データの「1」は、「いいね」に対応し、「0」は、「う〜ん」に対応していてもよい。
このように直接入力データは、対話装置2と対話しているユーザ40が対話の過程で起こす行動とは別に、コメントを評価する目的で能動的にわざわざ行動することにより対話装置2に入力されたデータである。また、直接入力データは、発話済コメントに対するユーザ40の評価を直接的に表現したものである。したがって、直接入力データは、反応データの中でも、コメントを対話力の観点から評価するための指標として非常に信頼性が高く、重要視されるべきものである。直接入力データは、能動的評価項目として、後述の他の反応データとは区別される。
なお、直接入力データは、2値ではなく、多値の情報であってもよい。例えば、2段階以上の段階評価を入力できるように、対話装置2を構成してもよい。例えば、対話装置2は、「大ウケ」、「ややウケ」、「ウケない」の3段階で、ユーザ40の評価を受け付け、直接入力データを生成してもよい。あるいは、直接入力データは、評価値と同様に、0〜100点の値を示すものであり、対話装置2は、0〜100の数字をユーザ40に入力させる構成であってもよい。
テキストデータは、対話装置2の発話済コメントに対してユーザ40が行った発話をテキスト化した情報である。テキストデータは、例えば、対話装置2が、マイクで集音したユーザ40の音声を既存の音声認識技術を用いて認識することにより得られる。
音声データは、対話装置2の発話済コメントに対してユーザ40が行った発話の音声をデジタル化したものである。音声データは、例えば、対話装置2がマイクを用いてユーザ40の音声を録音することにより得られる。
画像データは、対話装置2の発話済コメントを聞いた時のユーザ40の姿を写した画像をデジタル化したものである。画像データは、静止画データであってもよいし、動画データであってもよい。画像データは、例えば、対話装置2がカメラまたはビデオカメラを用いて、発話済コメントを聞いた時のユーザ40を撮像することにより得られる。
テキストデータ、音声データおよび画像データは、対話装置2と対話する過程でユーザ40が起こす行動に基づいて、対話装置2が必然的に得ることができるデータであって、発話済コメントを評価することが目的の、能動的なユーザ40の行動に基づいて得られるものではない。したがって、これらのデータは、非能動的評価項目に属し、上述の、能動的評価項目である直接入力データとは区別される。
非能動的評価項目として、他にも、生体信号データがフィードバックに含まれていてもよい。生体信号データは、例えば、対話装置2の発話済コメントを聞いた時点前後に計測されたユーザ40の生体信号を示す情報である。生体信号としては、例えば、脈拍、心拍、血圧、または、脳波などが想定される。例えば、対話装置2は、ユーザ40に装着された生体測定装置(血圧計など)と無線通信し、生体信号データを取得することができる。
評価値算出部14は、対話装置2から提供された、図5に示すフィードバックを解析して、発話済コメントに対するFB評価値を算出する。
一実施形態では、評価値算出部14は、反応データの各項目ごとに0〜100点の点数を付け、それらの平均をFB評価値として算出してもよい。具体的には、評価値算出部14は、直接入力データが、「1:いいね」である場合に、100点、「0:う〜ん」である場合に、0点を付けてもよい。評価値算出部14は、テキストデータが肯定的な文言を含むほど点数を高くつけてもよい。評価値算出部14は、音声データから解析された声色が、喜び、幸福、肯定、共感などプラスの感情を多くまた強く含むほど点数を高くつけてもよい。評価値算出部14は、画像データから解析されたユーザの顔の表情またはジェスチャが、上述のプラスの感情を多くまたは強く含むほど点数を高くつけもよい。
例えば、図5に示すフィードバックに含まれる反応データに基づいて、評価値算出部14は、4つの項目について、それぞれ、100点、90点、98点、96点の点数を付けたとする。この場合、評価値算出部14は、これらの点数の平均点「96点」を、コメント6の発話済コメントに対するFB評価値として算出する。この算出方法によれば、フィードバック内の反応データを構成する4つの項目のうちいずれかが欠けたとしても、1つの項目さえ埋まっていれば、最終的に1つのFB評価値を算出できるメリットがある。
図6は、評価値算出部14が生成するレコードの一具体例を示す図である。図6に示すレコードは、図5に示すフィードバックに基づいて生成されたレコードである。具体的には、評価値算出部14は、コメント6と、算出したFB評価値「96点」との相関関係を示したレコードを生成する。さらに、評価値算出部14は、コメント6のメタ情報をレコードに含めてもよい。
別の実施形態では、評価値算出部14は、能動的評価項目だけを用いてFB評価値を算出してもよい。例えば、評価値算出部14は、直接入力データが、「1:いいね」である場合に、FB評価値を100点、「0:う〜ん」である場合に、FB評価値を50点としてもよい。この算出方法によれば、信頼性の高い能動的評価項目のみに基づいて、ユーザ40の評価を正確に反映したFB評価値を算出できるというメリットがある。
さらに別の実施形態では、評価値算出部14は、反応データの項目ごとに0〜100点の点数をつけ、それらの重み付け平均値をFB評価値として算出してもよい。そして、評価値算出部14は、能動的評価項目に係る点数に対して重い重み付け値を付与するか、または、非能動的評価項目に係る点数に対して軽い重み付け値を付与した上で、上述の重み付け平均値を算出する。この算出方法によれば、信頼性の高い能動的評価項目に重きを置いて、ユーザ40の評価を正確に反映したFB評価値を算出できるとともに、欠けた項目があったとしても、最終的に1つのFB評価値を算出できるメリットがある。なお、評価値算出部14は、ユーザ40によってボタンが操作されず、直接入力データが取得されなかった場合には、能動的評価項目について50点を付けてもよい。
さらに別の実施形態では、評価値算出部14は、基本的に、能動的評価項目の点数に基づいてFB評価値を算出する構成であってもよい。そして、能動的評価項目(すなわち、直接入力データ)が取得されなかった場合に、評価値算出部14は、残りの非能動的評価項目と、過去にFB評価値算出済みのレコードとに基づいて、能動的評価項目の点数を補完してもよい。
提供された新規フィードバックにおいて、直接入力データが欠けている場合、すなわち、ユーザ40が評価を入力しなかった場合、能動的評価項目に基づいてFB評価値を算出することができない。そこで、評価値算出部14は、過去に処理済みのフィードバックのうち、反応データのすべての項目がそろっていたフィードバックを参考にして、欠けている直接入力データを推測し、該項目に付ける点数を補完する。評価値算出部14は、過去に処理済みのフィードバック(図5)のうち、少なくとも、すべての項目が埋まっている完全なフィードバックを記憶部に蓄積しておく。そして、直接入力データが欠けている新規フィードバックに基づいてFB評価値を算出する処理を実行しなければならなくなった場合に、記憶部に蓄積しておいた、過去の完全なフィードバックを参照する。これにより、評価値算出部14は、発話済コメントが、どのようなテーマ(メタ情報)であって、ユーザ40の発言がどのような内容(テキストデータ)で、ユーザ40の声色がどのようで(音声データ)、ユーザ40の表情またはジェスチャがどのようであるときに、直接入力データがどうであったのか(「いいね」か、「う〜ん」か)を認識する。評価値算出部14は、この認識と、新規フィードバックに含まれている残りの反応データとに基づいて、該新規フィードバックにおける直接入力データを推測する。
この算出方法によれば、信頼性の高い能動的評価項目に重きを置いて、ユーザ40の評価を正確に反映したFB評価値を算出できるとともに、能動的評価項目が欠けているとしても、過去の例を参照して、ユーザ40の評価を正確に反映した値にできるだけ近づけてFB評価値を算出できるメリットがある。対話装置2と対話しているときに、ユーザ40に毎回、評価の目的で対話以外の行動をとらせることは、ユーザ40が煩わしさを感じるため非常に難しい。したがって、この算出方法は、そのような煩わしさを解消できる点で特にメリットが大きい。
評価値算出部14は、上述のいずれかの算出方法により、発話済コメントと、該発話済コメントについて算出したFB評価値とを関連付けたレコードを生成し、学習データ30に登録する。
上述の算出方法について、例えば、評価値算出部14は、対話制御サーバ1に集約されるフィードバックに基づいて機械学習された算出器(図示せず)を用いてFB評価値を算出することができる。上述したとおり、フィードバックに含まれる反応データには、能動的評価項目(求めたいFB評価値と相関が強いデータ)と、非能動的評価項目(求めたいFB評価値との関係性が弱いかまたは不明なデータ)とがある。そこで、ある発話済コメントのユーザの反応に関して、能動的評価項目と非能動的評価項目との両方が得られた場合、評価値算出部14は、算出器に、能動的評価項目の点数を教師データとして、非能動的評価項目の点数と能動的評価項目の点数との関係を学習させる。すなわち、評価値算出部14は、非能動的評価項目に基づく点数に基づいて能動的評価項目の点数を推定する算出器(推定モデル)を生成する。
その後、評価値算出部14は、受信したフィードバックに含まれている反応データに基づいてFB評価値を算出するとき、反応データが、能動的評価項目のみで構成されている第1のケースでは、該能動的評価項目(例えば、直接入力データ)の点数に基づいてFB評価値を算出する。
また、反応データが、能動的評価項目および非能動的評価項目で構成されている第2のケースでは、上述の重み付け平均値を用いた算出方法と同様に、能動的評価項目の点数に対する重み付け値が、非能動的評価項目の点数に対する重み付け値よりも重くなるように重み付け値を付与した上で、重み付け平均値を算出することにより、FB評価値を算出する。
また、反応データが、非能動的評価項目のみで構成されている第3のケースでは、評価値算出部14は、上述の算出器を用いて、該非能動的評価項目の点数に基づいて、能動的評価項目の点数を推定する。そして、推定して得られた能動的評価項目の点数に基づいて、反応データが能動的評価項目のみで構成されている場合と同様に、FB評価値を算出する。
あるいは、評価値算出部14は、推定して得られた能動的評価項目の点数と、非能動的評価項目の点数とに基づいて、各点数の平均値をFB評価値として算出してもよい。この場合、第2のケースと同様に、推定して得られた能動的評価項目の点数により重い重み付け値が付与されてもよい。あるいは、能動的評価項目の点数は、推定して得られたものであるから、反応データに含まれている能動的評価項目に基づいて決定された点数よりも信頼性が低いと言える。したがって、第3のケースでは、推定して得られた能動的評価項目の点数に対しては、第2のケースで付与される重み付け値よりも軽い重み付け値が付与されてもよいし、重み付け値が付与されなくてもよい。
こうして、集約されるフィードバックに含まれる反応データにおいて、能動的評価項目および非能動的評価項目のいずれかが欠ける場合があったり、両方そろっている場合があったりしても、1つの値に統合されたFB評価値を、安定して精度よく算出することができる。
図7は、学習データ30のデータ構造の一例を示す図である。評価値算出部14は、発話済コメントのテキストデータに、該発話済コメントのメタ情報と、該発話済コメントについて算出したFB評価値とを関連付けたレコードを、学習データ30に登録する。評価値算出部14は、FB評価値が算出された日を評価日として該レコードに含めることが好ましい。これにより、各レコードの情報の新鮮度を効率的に把握することができる。
各レコードは、発話済コメントのテキストデータと、該発話済コメントのメタ情報との組み合わせを「入力」の項目に分類し、該発話済コメントについて算出したFB評価値を「出力」の項目に分類したデータ構造を有している。これにより、学習時において、学習ユニット20によって、メタ情報と発話済コメントのテキストデータとの組み合わせが、予測器120の入力値として、FB評価値が予測器120の出力値として取り扱われる。
<対話制御ユニット10の処理フロー>
図8は、対話制御サーバ1の対話制御ユニット10が実行する処理の流れを示すフローチャートである。該フローチャートに示される一連の処理は、対話装置2が、発話を開始するための任意のイベントをトリガにして、発話すべきコメントを要求するリクエストを対話制御サーバ1に送信することによって開始される。
コメント抽出部11は、対話装置2からリクエストを受信する(S1)。リクエストには、メタ情報を特定するための参考情報として、例えば、ユーザ発話コメントのテキストデータが含まれている。コメント抽出部11は、ユーザ発話コメントに基づいてメタ情報を特定し、クエリを生成する(S2)。例えば、クエリには、ユーザ発話コメントのテキストデータと、メタ情報とが含まれる。
コメント抽出部11は、コメントソース3にクエリを送信することにより、文脈に適合した1以上の候補コメントをコメントソース3から抽出する(S3)。なお、コメントソース3において、ユーザ発話コメントに応答するような内容で、または、メタ情報が指定するテーマに沿って候補コメントを生成したり探索したりする技術は、公知のものを採用できる。
コメント抽出部11は、コメントソース3から抽出した1以上の候補コメントのテキストデータを、予測器120に入力する(S4)。予測器120は、入力された候補コメントに対する予測評価値を出力する(S5)。S4およびS5は、候補コメントの個数分繰り返される。
コメント決定部13は、抽出されたすべての候補コメントについて予測された予測評価値に基づいて、対話装置2に発話させるコメントを決定する(S6)。例えば、予測評価値が最も高い(最も対話力が高い)コメントに決定する。
コメント決定部13は、決定したコメントを発話するように対話装置2に対して指示するレスポンスを対話装置2に返信する(S7)。
<学習ユニット20の処理フロー>
図9は、対話制御サーバ1の学習ユニット20が実行する処理の流れを示すフローチャートである。該フローチャートに示される一連の処理は、対話装置2が、発話済コメントに対するユーザ40の反応を検知したことをトリガにして、該反応を対話制御サーバ1にフィードバックすることによって開始される。
評価値算出部14は、対話装置2からフィードバックを受信する(S11)。フィードバックには、発話済コメントを特定する情報と、該発話済コメントに対するユーザ40の反応を示した反応データとが含まれている。評価値算出部14は、反応データを分析する(S12)。一例として、評価値算出部14は、反応データが含む項目ごとに、該項目のデータを分析して点数を付ける。例えば、能動的評価項目について、直接入力データが「いいね」を示していれば、100点、「う〜ん」を示していれば0点を付ける。他の複数の非能動的評価項目についても、各データの内容に応じて、項目ごとに0〜100点の点数を付ける。
評価値算出部14は、項目ごとに付けた点数に基づいて、上述の発話済コメントについてFB評価値を算出する(S13)。そして、評価値算出部14は、発話済コメントおよびメタ情報の組み合わせと、FB評価値とを対応付けたレコードを生成する。
評価値算出部14は、該レコードにさらに評価日を関連付けて、該レコードを学習データ30に登録する(S14)。S11〜S14の処理は、対話制御サーバ1が対話装置2からフィードバックを受信する度に、随時実行される。
学習制御部15は、あらかじめ定められた学習タイミングが到来したか否かを判定する(S15)。学習タイミングは、例えば、1日1回決まった時刻、または、未学習のレコードが所定数蓄積したとき、などに到来する。
学習タイミングが到来すると(S15でYES)、学習制御部15は、学習データ30に蓄積されているレコードを用いて学習を行い、予測器120を更新する(S16)。具体的には、図7に示す、入力のカラムに格納されている、メタ情報および発話済コメントの組み合わせと、出力のカラムに格納されている、FB評価値との相関関係を学習させる。学習制御部15は、学習データ30に格納されているすべてのレコードを学習させてもよいし、直近数日の間に登録された比較的新しいレコードだけを学習させてもよいし、これまで未学習であるレコードのみを学習させてもよい。あるいは、学習制御部15は、新しいレコードほど重い重み付けを付与した上で、すべてのレコードを学習させてもよい。
これ以後、上述の機械学習によって得られた新しい予測器120が、対話制御時に各候補コメントの予測評価値を予測することになる。
<効果>
上述の構成および方法によれば、予測器120に対して、ユーザ40の反応に基づくフィードバックを生かした機械学習を行わせることができる。そのような予測器120を用いて求めた予測評価値に基づいて、対話装置2に発話させるコメントが決定される。これにより、ユーザ40にとって対話力が高いコメントを対話装置2に発話させることが可能となる。また、対話するほどにユーザ40の反応に係るフィードバックが蓄積されるので、対話すればするほど、多くの情報を予測器120に学習させることができる。したがって、対話すればするほど、ユーザ40にとっての対話力の高いコメントを精度よく決定し、対話装置2に発話させることができる。結果として、対話装置2の対話力を継続して高めていくことが可能となる。
〔実施形態2〕
本発明の他の実施形態について、以下に説明する。なお、説明の便宜上、上記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
<対話制御システムの概要>
図2を参照して、本実施形態では、対話装置2は、ユーザ40がテレビ4において視聴している現在放送中の番組をテーマにして、ユーザ40と対話する。したがって、本実施形態では、メタ情報は、現在視聴中の番組に関するあらゆる情報を含むものとして取り扱われる。対話制御サーバ1は、ユーザ40が視聴中のチャンネルを対話装置2から指定され、参考情報である該チャンネルに基づいてメタ情報を特定することができる。本実施形態では、対話制御サーバ1は、メタ情報提供サーバ5と通信し、ユーザ40が視聴している番組関するメタ情報の提供をメタ情報提供サーバ5から受けてもよい。
例えば、メタ情報提供サーバ5は、EPG(Electronic Programs Guide)情報を提供してもよい。また、メタ情報提供サーバ5は、放送中の番組の映像情報、副音声情報、または、字幕情報などを解析して、番組の中で現在放送中のトピックを単語または文章などで表したテキストデータ(以下、トピック情報)を出力することができる。このように番組内のトピックを表したトピック情報が対話制御サーバ1に提供されることにより、対話制御サーバ1は、番組単位よりも細かい粒度で、現在の放送内容を把握し、メタ情報を特定することができる。したがって、対話装置2は、あたかもテレビ4と連動しているかのように、テレビ4が放送中の内容に関連したコメントをリアルタイムで発話することができる。
本実施形態では、一例として、コメントソース3として、SNSサーバが採用される。SNSサーバのサービスを利用する不特定多数のユーザ(ユーザ41、ユーザ43など)は、現在放送中の番組を視聴し、その番組についてのコメントを、その場で自身の通信端末(パソコン42、スマートフォン44など)を用いて投稿する。したがって、SNSサーバには、放送中の番組または番組内のトピックに関して、様々なコメントが随時蓄積されていく。
対話制御サーバ1は、コメントソース3に投稿されたコメントの中から、ユーザ40が視聴中の番組に関するコメントを抽出し、対話装置2に発話させる。これにより、ユーザ40は、あたかも、対話装置2と一緒にテレビ4を見ているかのように、今見ている番組についての対話(議論、または、雑談など)を楽しむことができる。
なお、対話装置2が、ユーザ40が現在視聴しているチャンネルを識別する方法について説明すると以下の通りである。本実施形態では、ユーザ40は、テレビを見ながら対話装置2と対話しようとして、メタ情報を特定するための参考情報、すなわち、自身が視聴しているチャンネルを、対話装置2に対して提示する。チャンネルの提示は、例えば、ユーザ40が、視聴しているチャンネルを対話装置2に対して話しかけることによって行われてもよい。例えば、対話装置2は、「今から1チャンネル見ようよ」などのユーザ40の発話に基づいて、音声認識により、視聴中チャンネルを「1ch」と識別することができる。あるいは、チャンネルの提示は、ユーザ40が、対話装置2に物理的にまたはソフトウェア的に設けられている操作部を操作して視聴中チャンネルに相当する数字を入力することによって行われてもよい。
あるいは、対話装置2は、公知の任意の近距離無線通信手段によって、テレビ4を遠隔操作するように構成されている場合が想定される。この場合、対話装置2は、例えば、チャンネルを切り替える指示をテレビ4に送信したとき、視聴中チャンネルを識別することができる。あるいは、対話装置2は、テレビ4と通信し、テレビ4から視聴中チャンネルの通知を受信してもよい。
あるいは、テレビ4を操作するためのリモコンが、WiFi(登録商標)などの指向性のない近距離無線通信手段によってテレビ4を遠隔操作するように構成されている場合が想定される。この場合、対話装置2は、リモコンからテレビ4に対して送信されたリモコン信号を取得して、視聴中チャンネルを識別することができる。
あるいは、対話装置2は、マイクを介してテレビ4から出力される音声を集音し、集音された音声データを解析して、ユーザ40が視聴中のチャンネルを推測してもよい。この場合、メタ情報提供サーバ5から対話装置2に対して、EPG情報、および、あらゆるチャンネルの映像情報、副音声情報、字幕情報、または、トピック情報が提供されてもよい。あるいは、対話装置2は、カメラでテレビ4の表示画面を撮像し、それによって得られた画像データを解析して、ユーザ40が視聴中のチャンネルを推測してもよい。
<クエリについて>
図10は、コメント抽出部11が生成したクエリのデータ構造の一例を示す図である。コメント抽出部11は、対話装置2からリクエストを受信すると、図10に示すクエリを生成する。例えば、クエリは、ユーザ40が視聴中の番組に関するメタ情報を少なくとも含む。さらに、クエリは、タイムスタンプを含んでいてもよい。
メタ情報は、一例として、視聴中チャンネル、番組名、放送日時、番組詳細、および、トピックの各項目を含む。視聴中チャンネルは、ユーザ40が現在視聴しているチャンネルを示す情報である。視聴中チャンネルは、対話装置2から送信されたリクエストに含まれており、コメント抽出部11は、これを、クエリの視聴中チャンネルの項目に格納する。
番組名、放送日時、ジャンル、および、番組詳細の各項目は、EPG情報から、ユーザ40が現在視聴している番組に関して、取得されたものである。コメント抽出部11は、リクエストを受信した時点の日時と、視聴中チャンネルとに基づいて、メタ情報提供サーバ5から提供されたEPG情報の中から、ユーザ40が現在視聴している視聴中番組を特定することができる。そして、コメント抽出部11は、視聴中番組の番組名、放送日時、ジャンル、および、番組詳細をEPG情報から取得し、クエリの該当項目にそれぞれ格納する。
トピックは、メタ情報提供サーバ5から提供されたトピック情報が格納される。コメント抽出部11は、リクエストを受信した時点と、上述のように特定した視聴中番組とを指定して、メタ情報提供サーバ5にトピック情報を要求する。メタ情報提供サーバ5は、前記視聴中番組の中で、前記時点において放送されている内容を表したトピック情報をコメント抽出部11に提供する。コメント抽出部11は、提供されたトピック情報を、トピックの項目に格納する。
コメント抽出部11は、対話装置2から今回受け付けたリクエストの1つ前にリクエストを受け付けた時点から、今回リクエストを受け付けた時点においてトピックが変更されていない場合には、クエリに、タイムスタンプを含めることが好ましい。タイムスタンプとは、対話装置2が、前回リクエストを送信した時点を示す情報である。前回のリクエスト時点を示すタイムスタンプは、今回のリクエストに含めて対話装置2から提供される。
クエリにタイムスタンプが含まれていることにより、SNSサーバであるコメントソース3は、タイムスタンプが示す時点より後に投稿されたコメントに絞って、候補コメントを探索することができる。これにより、対話装置2が、同じトピックに関して、同じコメントを重複して発話することを回避することができ、より自然な対話を実現することが可能となる。
なお、前回のリクエスト時点から、トピックが変更されている場合、または、今回のリクエスト時点が、前回のリクエスト時点から長い時間(例えば、3〜4時間以上)開いてる場合には、同じトピックについてコメントが重複する可能性がほぼないと考えられる。これらの場合には、コメント抽出部11は、クエリにおいて、タイムスタンプを省略してもよい。
<学習データについて>
図11は、学習データ30のデータ構造の一例を示す図である。評価値算出部14は、1つの発話済コメントにつき、対話装置2からフィードバックを受信すると、該発話済コメントについてレコードを生成し、学習データ30に登録する。図11は、4つのレコードが登録されている例を示している。
FB評価値の算出方法は、実施形態1に示したとおりである。本実施形態では、レコードに対応付けるメタ情報は、発話済コメントの元になっている番組に関する情報である。一例として、評価値算出部14は、図11に示すとおり、メタ情報として、前記番組のジャンルと、前記発話済コメントの元になっているトピックを示すトピック情報とを採用する。
評価値算出部14は、発話済コメントのテキストデータに、該発話済コメントのメタ情報としてジャンルおよびトピック情報と、該発話済コメントについて算出したFB評価値とを関連付けたレコードを、学習データ30に登録する。評価値算出部14は、FB評価値が算出された日を評価日として該レコードに含めることが好ましい。
各レコードは、発話済コメントのテキストデータと、該発話済コメントの元になった番組のジャンルと、該発話済コメントの元になった番組内のトピック情報との組み合わせを「入力」の項目に分類し、該発話済コメントについて算出したFB評価値を「出力」の項目に分類したデータ構造を有している。これにより、学習時において、学習ユニット20によって、番組に関するメタ情報と発話済コメントのテキストデータとの組み合わせが、予測器120の入力として、FB評価値が予測器120の出力として取り扱われる。
なお、番組のメタ情報として、番組名または番組詳細を採用することも考えられる。しかし、学習データ30のデータ構造、特に、「入力」の項目が複雑になり、予測器120における学習の負担が大きくなることが予想される。そこで、「入力」の項目におけるデータ構造が比較的簡素となるように、ジャンル、トピック情報など、少ない情報量で番組の内容が端的に表現された項目をメタ情報として採用することが好ましい。
さらには、「入力」の項目に、トピック情報が含まれていることには、以下のメリットがある。上述したとおり、トピック情報は、放送されている番組の映像情報、副音声情報、または、字幕情報などを解析して、番組の中で現在放送中のトピックを単語または端的な文章で表したテキストデータである。したがって、トピック情報は、1つの番組内でも、現在の放送内容を、分単位あるいは秒単位で区別して表現することが可能である。つまり、放送内容を、番組単位で表現している「番組名」、「番組詳細」などのメタ情報と比較して、高い粒度(細かい時間単位)で放送内容を識別することができる。このようなトピック情報を「入力」の項目に採用することにより、学習に用いる入力値のデータ構造を複雑にすることなく、少ない情報量で、情報の粒度が高い、すなわち、リアルタイム性に優れた発話を行わせるための学習を実現することができる。
<処理フロー>
図12は、対話制御システム100の各装置が実行する処理の流れを示すシーケンス図である。図12に示す例では、テレビ4は、チャンネル「1」を選局しているものとし、時点t1において、チャンネル「1」では、番組名「朝のニュース」という番組が放送されているものとする。また、該番組において、時点t20までは、第1トピックに関する放送が行われ、時点t20より後は、別の第2トピックに関する放送が行われているものとする。
対話装置2は、例えば、ユーザ40から視聴中チャンネルに関する入力を受け付けると、時点t1にて、該視聴中チャンネルを含むリクエストを対話制御サーバ1に送信する。一例として、視聴中チャンネルは、「1ch」である。
リクエストを受信した対話制御サーバ1のコメント抽出部11は、リクエストに含まれる視聴中チャンネルと、リクエストが送信された時点t1とに基づいて、ユーザ40が現在視聴している視聴中番組を特定する。そして、視聴中番組のメタ情報を含むクエリを生成し、時点t2にて、クエリをコメントソース3に送信する。一例として、クエリは、番組名「朝のニュース」という番組のEPG情報およびトピック情報をメタ情報として含む。
なお、コメント抽出部11は、前回の時点t1−nにおいて、同じ番組の同じトピックをテーマにした発話を要求するリクエストを受け付けたことがある場合、クエリに、時点t1−nを示すタイムスタンプを含めてもよい。ここでは、前回、同じトピックをテーマにしたリクエストを受け付けたことはないものとし、コメント抽出部11は、タイムスタンプを含めずにクエリを生成したものとする。
コメントソース3は、受信したクエリに基づいて、時点t3にて、候補コメントを抽出し、結果を対話制御サーバ1に返す。ここでは、「1ch」の「朝のニュース」という番組で放送されている第1トピックに関して投稿されたコメントが複数抽出される。ここで、コメントソース3は、クエリを受信した時点t2から遡って数分前以降に投稿されたコメントを抽出の対象としてもよい。これにより、過去の(例えば、1日以上前に)同じ番組同じトピックについて投稿された古いコメントが抽出されなくなり、対話装置2に発話させるコメントを常に新鮮に保つことができるため、対話力が損なわれない。
対話制御サーバ1は、時点t4にて、上述の複数の候補コメントをコメントソース3から受信する。対話制御サーバ1のコメント決定部13は、予測器120によって候補コメントごとに出力された予測評価値に基づいて、対話装置2に発話させるコメントを決定する。コメント決定部13は、時点t5にて、決定したコメントを発話するように指示するレスポンスを対話装置2に対して返信する。
レスポンスを受信した対話装置2は、時点t6にて、レスポンスにおいて指定されたコメントを発話する。発話済コメントを聞いたユーザ40は、これに対して何らかの反応を示す。対話装置2は、時点t7にてユーザ40の前記反応を検知する。対話装置2は、検知内容を含むフィードバックを対話制御サーバ1に送信する。
対話制御サーバ1の評価値算出部14は、時点t8にてフィードバックを受信する。このフィードバックは、時点t6で発話された発話済コメントに対するユーザの反応示す反応データを含む。評価値算出部14は、受信したフィードバックに含まれている反応データを解析して、時点t6の発話済コメントについてのFB評価値を算出する。
評価値算出部14は、時点t6の発話済コメントおよびメタ情報の組み合わせと、FB評価値とを対応付けたレコードを生成し、学習データ30に登録する。ここで、メタ情報は、時点t6の発話済コメントの元になった番組(すなわち、「朝のニュース」という番組)のジャンルと、該番組内で、時点t6の発話済コメントの元になったトピック(すなわち、第1トピック)のトピック情報とを含む。これにより、「どんなジャンルの番組のどんなトピックにおいて、どんなコメントが発話されたとき、ユーザ40の反応は何点だった」という事実の記録を学習データ30に蓄積していくことができる。
時点t6より後からトピックが変更される時点t20までの間の時点t11において、対話装置2は、リクエストを対話制御サーバ1に送信してもよい。この場合、同じトピックについて前回のリクエストが送信された時点t1を示すタイムスタンプがリクエストに含まれる。
コメント抽出部11は、時点t12にて、クエリを生成し、該クエリをコメントソース3に送信する。クエリには、時点t1を示すタイムスタンプが含まれる。したがって、時点t13にて、コメントソース3は、時点t1以降に投稿されたコメントのみを候補コメントとして抽出する。これにより、同じ番組同じトピックについて投稿されたコメントのうち、前回のリクエストに応答して抽出した候補コメントは、重複して抽出されなくなる。こうして、対話装置2に同じコメントを何度も発話させることを回避できるため、対話力が損なわれない。時点t14〜t18までは、上述の時点t4〜t8までと同様に進行する。
同じ番組においてトピックが第1トピックから第2トピックへ変更される時点t20よりも後の時点t21において、対話装置2は、リクエストを対話制御サーバ1に送信してもよい。この場合、第2トピックに関してリクエストを送ることが初めてであれば、対話装置2は、タイムスタンプをリクエストに含めることを省略してもよい。
コメント抽出部11は、前記リクエストに基づいてクエリを生成する。ここで、コメント抽出部11は、時点t21に基づいて、メタ情報提供サーバ5からトピック情報を取得すると、現在放送されている内容が第2トピックであることを特定する。そして、第1トピックに代えて第2トピックのトピック情報をメタ情報としてクエリに含める。したがって、時点t23では、第2トピックに関して投稿されたコメントが候補コメントとして抽出される。
以降、第1トピックではなく、第2トピックに関するコメントおよびメタ情報が取り扱われる点を除けば、時点t24〜t28までは、上述の時点t4〜t8までと同様に進行する。
<効果>
上述の構成および方法によれば、ユーザ40が現在視聴している番組に関して、リアルタイムで対話ができる対話装置2および対話制御システム100を実現することができる。しかも、予測器120に対して、ユーザ40の反応に基づくフィードバックを生かした機械学習を行わせることができる。そのような予測器120を用いて求めた予測評価値に基づいて、対話装置2に発話させるコメントが決定される。これにより、視聴中の番組について、ユーザ40にとって対話力が高いコメントを対話装置2に発話させることが可能となる。また、対話するほどにユーザ40の反応に係るフィードバックが蓄積されるので、対話すればするほど、多くの情報を予測器120に学習させることができる。したがって、対話すればするほど、ユーザ40にとっての対話力の高いコメントを精度よく決定し、対話装置2に発話させることができる。結果として、対話装置2の対話力を継続して高めていくことが可能となる。
〔実施形態3〕
本発明の他の実施形態について、以下に説明する。なお、説明の便宜上、上記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
<対話制御システムの概要>
図2を参照して、本実施形態では、複数のユーザ40が対話制御システム100のサービスを利用する。すなわち、ユーザ40ごとに所有されている複数の対話装置2が対話制御サーバ1に接続される。実施形態2と同様に、それぞれのユーザ40は、それぞれが所有するテレビ4を視聴しながら対話装置2と対話する。
本実施形態では、対話制御システム100において、ユーザ401人につき、対話装置2が1台設けられているものとする。対話制御サーバ1は、複数の対話装置2と通信するとき、どのユーザ40の対話装置2であるのかを、ユーザIDに基づいて識別することができる。ユーザIDは、対話装置2と対話制御サーバ1との間で共有されている。
本実施形態の対話制御システム100によれば、対話装置2を利用するユーザ40が複数に増えた分、より多くのフィードバックが対話制御サーバ1に集約されることになる。したがって、その分、学習データにおいて多くのレコードが短期間で蓄積されるので、予測器の学習の速度が上がるというメリットがある。例えば、1人のユーザ40が対話装置2を使用している場合に、対話制御サーバ1が学習のためのレコードを50個集めるためには、対話装置2に50回発話させて、その回ごとのユーザ40の反応に基づいてフィードバックを50回生成しなければならない。しかし、50人のユーザ40が、それぞれ対話装置2を使用している場合には、50台の対話装置2にそれぞれ1回発話をさせるだけで、各ユーザ40の反応に基づくフィードバックを50個対話制御サーバ1に集めることができる。
一方、ユーザ40には、それぞれに異なった好みや考え方がある。つまり、どのようなコメントに魅力を感じ、どのようなコメントであれば対話が弾むのかは、ユーザ40それぞれである。そのため、複数のユーザ40を対象に学習を繰り返したとしても、1人1人のユーザ40にとって対話力が高い発話を対話装置2にさせることが困難であるというデメリットがある。
そこで、本実施形態では、複数のユーザ40を対象にする場合に、該複数のユーザ40を、属性に応じて複数の集団にグルーピングする。そして、対話制御サーバ1は、共通の属性を有する集団ごとに、対話制御および学習を実行する。これにより、対象が大人数であることのメリットを享受しつつ、デメリットをカバーすることが可能な対話制御システム100を実現することができる。
<対話制御サーバ1の機能的構成>
図13は、対話制御サーバ1の機能的構成を示すブロック図である。対話制御サーバ1は、実施形態1および2と同様に、通信部、記憶部、および、制御部を備えている。本実施形態では、制御部は、機能ブロックとして、さらに、予測器選択部16(集団識別部)および学習データ選択部17(集団識別部)を含んでいる。
本実施形態では、制御部は、1つの予測器120に代えて、複数の予測器を備えている。一例として、制御部は、第1予測器121、および、第2予測器122を備えている。制御部は、グルーピングした集団の数に合わせて、さらに多くの予測器を備えていてもよい。本実施形態では、記憶部は、1つの学習データ30に代えて、複数の学習データを記憶している。学習データは、備えられている複数の予測器のそれぞれに対応付けて設けられる。一例として、第1予測器121に対応する第1学習データ131、および、第2予測器122に対応する第2学習データ132が記憶部に記憶されている。本実施形態では、第1予測器121、第1学習データ131、第2予測器122、および、第2学習データ132が評価値予測装置12を構成する。
(プロファイルデータについて)
本実施形態では、記憶部は、さらに、ユーザのプロファイルデータ31を記憶している。図14は、プロファイルデータ31のデータ構造の一例を示す図である。対話制御サーバ1は、ユーザIDに関連付けて、ユーザ40ごとのプロファイルを管理している。プロファイルとは、ユーザの属性を示す情報である。一例として、プロファイルは、ユーザが所属している集団を識別するための所属集団名である。図14に示すとおり、プロファイルデータ31は、ユーザIDおよび所属集団名の項目を含む。
本実施形態では、一例として、対話制御システム100のサービスを利用するすべてのユーザ40を母集団として、該母集団を、ユーザの属性に基づいて2つの集団(第1集団、および、第2集団)に分類するものとする。母集団を属性に基づいて分類する方法は、特に限定されない。コメントに対するユーザ40の反応に、何らかの共通性が見出されるような有意義な分類であることが好ましい。一例として、ユーザ40の出身地域が関東か関西かによって母集団を分類してもよいし、年齢または性別によって母集団を分類してもよいし、イヌ好きかネコ好きかによって母集団を分類してもよいし、ある球団ファンかアンチかによって母集団を分類してもよい。また母集団を3以上の任意の数の集団に分類してもよい。
図14に示すプロファイルデータ31を参照することにより、対話制御サーバ1は、ユーザ40のユーザIDに基づいて、ユーザ40が、いずれの集団に属しているのかを識別することができる。
(集団分類データについて)
本実施形態では、記憶部は、さらに、集団分類データ32を記憶している。図15は、集団分類データ32のデータ構造の一例を示す図である。評価値予測装置12において、予測器および学習データは、母集団を分類した集団ごとに設けられる。集団分類データ32は、母集団をいくつのどのような集団に分類したのかを示すとともに、分類された集団に対応する予測器および学習データを示す情報である。
集団分類データ32は、一例として、集団名、予測器、および、学習データの各項目を含む。項目「集団名」には、母集団を分類する集団のそれぞれを識別するための識別情報が格納される。本実施形態では、母集団は、第1集団、および、第2集団の2つの集団に分類されているので、この2つの集団ごとに、集団名が格納されている。
項目「予測器」には、集団に対応する予測器を識別するための識別情報が格納される。図15に示す例によれば、第1集団には、第1予測器121が対応している。項目「学習データ」には、集団に対応する学習データを識別するための識別情報が格納される。図15に示す例によれば、第2集団には、第2学習データ132が対応している。
対話制御サーバ1は、対話装置2からリクエストを受信すると、対話装置2のユーザ40にとって対話力のあるコメントを決定しなければならない。このとき、対話制御サーバ1は、集団分類データ32を参照することにより、ユーザ40にとって対話力のあるコメントを決定するためにいずれの予測器を用いればよいのかを特定することができる。
対話制御サーバ1は、対話装置2からフィードバックを受信すると、対話装置2のユーザ40が所属している集団のための学習データにレコードを登録しなければならない。このとき、対話制御サーバ1は、集団分類データ32を参照することにより、ユーザ40の属性に応じて適切な学習データにレコードの登録を行うことができる。
予測器選択部16は、リクエストの送信元である対話装置2の所有者(すなわち、ユーザ40)に応じて、予測器を選択する。本実施形態では、リクエストには、視聴中チャンネル、および、前回のリクエストのタイムスタンプに加えて、所有者であるユーザ40のユーザIDが含まれている。予測器選択部16は、プロファイルデータ31を参照し、リクエストに含まれているユーザIDに基づいて、ユーザ40が所属している集団を識別する。そして、集団分類データ32を参照し、識別した集団に対応する予測器を選択する。
コメント抽出部11によって抽出された候補コメントのテキストデータは、予測器選択部16によって選択された予測器(ここでは、第1予測器121または第2予測器122)に入力される。
学習データ選択部17は、フィードバックの送信元である対話装置2の所有者(すなわち、ユーザ40)に応じて、レコード登録先の学習データを選択する。本実施形態では、フィードバックには、発話済コメントのテキストデータおよび反応データに加えて、所有者であるユーザ40のユーザIDが含まれている。学習データ選択部17は、プロファイルデータ31を参照し、フィードバックに含まれているユーザIDに基づいて、ユーザ40が所属している集団を識別する。そして、集団分類データ32を参照し、識別した集団に対応する学習データを選択する。評価値算出部14によって算出されたFB評価値を含む学習のためのレコードは、学習データ選択部17によって選択された学習データ(ここでは、第1学習データ131または第2学習データ132)に登録される。
第1予測器121および第2予測器122は、実施形態1および2の予測器120と同様に、候補コメントの予測評価値を出力する。第1予測器121および第2予測器122は、学習データ30に代えて、それぞれ、第1学習データ131および第2学習データ132に基づく機械学習によって得られたものであるという点で、実施形態1および2の予測器120と異なっている。
第1学習データ131は、第1集団に属するユーザ40の発話済コメントに対する反応に係るレコードを蓄積するものである。第2学習データ132は、第2集団に属するユーザ40の発話済コメントに対する反応に係るレコードを蓄積するものである。
したがって、第1予測器121を第1学習データ131に基づいて学習させることにより、学習を重ねるごとに、第1集団に属するユーザ40達にとって対話力のあるコメントが高く評価されるように精度よく予測評価値を出力できる第1予測器121を構築することができる。一方、第2予測器122を第2学習データ132に基づいて学習させることにより、学習を重ねるごとに、第2集団に属するユーザ40達にとって対話力のあるコメントが高く評価されるように精度よく予測評価値を出力できる第2予測器122を構築することができる。
〔実施形態4〕
実施形態3では、対話制御サーバ1は、ユーザ40の母集団を、一次元的に複数の集団に分類して管理している。例えば、「性別」など、単一のテーマに基づいて母集団を分類だけであった。対話制御サーバ1は、母集団を、多次元的に、すなわち、複数のテーマごとに分類して管理することができる。各テーマは、コメントに対するユーザ40の反応に、何らかの共通性が見出されるような有意義な分類が行えるように、設定されることが好ましい。一例として、第1のテーマとして「スポーツ」を、第2のテーマとして「出身地域」を設定することができる。この場合、例えば、1人のユーザ40を、第1のテーマ「スポーツ」に基づいて、「集団:野球(ファン)」に分類し、さらに、第2のテーマ「出身地域」に基づいて、「集団:関西(出身)」に分類することができる。
図13に示すとおり、本実施形態では、制御部は、機能ブロックとして、さらに、テーマ特定部18を含んでいる。テーマ特定部18は、対話装置2から送信されたリクエストに基づいて、ユーザ40と対話装置2との間で行われる対話の内容に合致するテーマを特定するものである。
リクエストには、視聴中チャンネル、前回のリクエストのタイムスタンプ、および、ユーザ40のユーザIDが含まれている。テーマ特定部18は、ユーザ40が現在視聴している視聴中番組に関するメタ情報(EPG情報、および、トピック情報など)をメタ情報提供サーバ5から取得する。そして、メタ情報に基づいて、テーマを特定する。例えば、テーマ特定部18は、メタ情報に基づいて、視聴中番組が野球中継であると判断した場合、テーマを「スポーツ」と特定することができる。
図16は、本実施形態に係るプロファイルデータ31のデータ構造の一例を示す図である。本実施形態では、プロファイルデータ31は、さらに、「テーマ」の項目を有する。1つのユーザIDにつき、テーマごとに、所属集団名が関連付けられている。すなわち、ユーザIDと、テーマとに基づいて、ユーザ40が所属する集団が一意に識別される。予測器選択部16は、図16に示すプロファイルデータ31を参照し、テーマ特定部18によって特定されたテーマと、リクエストに含まれているユーザIDとに基づいて、ユーザ40が所属する集団を識別する。
図17は、本実施形態に係る集団分類データ32のデータ構造の一例を示す図である。本実施形態では、集団分類データ32は、さらに、「テーマ」の項目を有する。テーマごとに、該テーマに基づいて母集団を分類した複数の集団が関連付けられており、該複数の集団のそれぞれにつき、対応する予測器と学習データとが対応付けられている。
対話制御サーバ1は、集団分類データ32を参照することにより、自装置において、どのようなテーマがいくつ設定されているのかを把握することができ、それぞれのテーマにおいて、母集団がどのような集団に分類されているのかを把握することができる。また、予測器選択部16は、候補コメントの予測評価値を得るために、どの予測器を用いればよいのかを特定することができる。
本実施形態では、コメント決定部13は、対話装置2に発話させるコメントを決定して、対話装置2にレスポンスを返信するときに、該レスポンスに、該コメントがどのテーマに基づいて予測され決定されたのかを示す情報(すなわち、テーマの識別情報)を含めることが好ましい。これにより、対話装置2は、該コメントを発話した後、この発話済コメントに対してユーザ40の反応が示された場合に、フィードバックに、テーマの識別情報を含めることができる。
学習データ選択部17は、フィードバックを受信すると、図16に示すプロファイルデータ31を参照し、該フィードバックに含まれているテーマの識別情報(例えば、スポーツ、出身地域、などのテーマ名)と、ユーザIDとに基づいて、ユーザ40の集団を識別することができる。そして、図17に示す集団分類データ32を参照して、該フィードバックに基づいて作成したレコードの登録先(学習データ)を特定することができる。
〔変形例〕
対話制御システム100を利用するユーザ40が増加したり、学習データにおけるレコード数が増加したり、テレビ4で放送される番組の内容が変更されたり、あるいは、多様化することが予想される。このような場合には、テーマ特定部18が、リクエストに基づいていずれのテーマとも特定できない事案が増加することが想定される。
図18は、対話制御サーバ1において設定されているテーマと、テーマに基づいて母集団が複数の集団に分類されることを模式的に説明する概念図である。例えば、テーマ特定部18は、これまで、リクエストから特定されるメタ情報に基づいて、対話のテーマを、「スポーツ」、「ニュース」、「バラエティ」、および、「出身地域」の中から特定していたとする。しかし、上述の事情が起因して、いずれのテーマにも該当しない事案が増えてきたとする。この場合、テーマ特定部18は、既存のテーマに該当しない事案の中から共通事項を見出し、該共通事項に基づく新規のテーマを設定してもよい。
例えば、映画番組を放送するチャンネルが増えたり、映画番組を視聴するユーザ40が急増したりして、映画番組に関するリクエストが増加したとする。この場合、テーマ特定部18は、各リクエストに基づいて集められたメタ情報から、「映画」という共通事項を見出し、新規に「映画」というテーマを作成することができる。
このように、時期によって変わる放送の傾向や、対話制御システム100における環境の変化にもフレキシブルに対応することができる。
さらに、学習制御部15は、集団を監視する機能を備えていてもよい。具体的には、学習制御部15は、1つの集団に関して学習データに蓄積されたレコードを分析して、1つの集団の中で、新規の共通事項を見出した場合に、該共通事項に基づいて集団を細分化することができる。例えば、図18を参照して、これまで、テーマ「スポーツ」における野球に関する集団は、「野球」という1つの集団しかなかったとする。学習制御部15は、集団「野球」に対応する学習データ(図17に示す例では、「学習データ001」)を監視する。そして、例えば、「学習データ001」に蓄積されている全レコードのうち、発話済コメントがプロ野球に関することである場合にFB評価値が高いレコードの割合が、一定以上に到達したことを検出する。この場合、学習制御部15は、集団「野球」を、下位集団「プロ野球」と、それ以外の集団とに細分化してもよい。プロ野球以外にも、FB評価値が高いレコードの共通事項として、メジャーリーグ、高校野球、世界大会における日本代表チームなどに関連していることが見出された場合には、学習制御部15は、それぞれの共通事項に基づいて下位集団を設けてもよい。学習制御部15は、集団を細分化すると、細分化後の下位集団に対応するように、学習データも併せて細分化する。そして、細分化後の学習データに基づいて機械学習させた予測器を作成する。併せて、学習制御部15は、新たな分類を集団分類データ32に反映させる。
このように、集団を細分化すれば、学習データも細分化されることになり、予測器の学習負荷を低減することができる。加えて、さまざまな集団の傾向およびその多様性に対応して、予測器に、コメントの対話力の高さを精度よく予測させることが可能となる。
さらに、図13に示す対話制御サーバ1において、制御部は、機能ブロックとして、個傾向監視部19を備えていてもよい。個傾向監視部19は、ユーザ40単位でフィードバックおよびそれに基づいて作成されるレコードの傾向を監視する。例えば、これまで、サッカーに特に関心がなかったあるユーザ40が、急にあるいは徐々にサッカーに関心を持つようになったとする。このような場合、個傾向監視部19は、ある日を境に、あるいは、日を追うごとに、話題がサッカーに関することである発話済コメントに対して、高いFB評価値が算出されていることを検出することができる。これに伴い、個傾向監視部19は、該ユーザ40の所属集団を「サッカー」に変更する。具体的には、個傾向監視部19は、プロファイルデータ31において、該ユーザ40のユーザIDに関連付ける集団名を「サッカー」へと更新する。
このように、個別のユーザ40の変遷する嗜好または思想にもフレキシブルに対応することができる。
コメントソース3としてSNSサーバを採用する場合、不特定多数のユーザ(ユーザ41など)が投稿するという性質上、対話装置2に発話させることが適切でないコメント(過激な内容、乱暴な言葉などを含むコメント)が候補コメントとしてコメントソース3から提供される虞がある。そこで、コメント抽出部11は、不適切な内容を含むコメントを候補コメントから排除するブロック機能を備えていてもよい。
例えば、対話制御サーバ1の記憶部に、NGワード、または、不適切な特徴的な言い回しなどのブロック条件を予め記憶部に設定しておく。コメント抽出部11は、記憶部を参照して、ブロック条件として定められた文字列を含むコメントを候補コメントから排除することができる。
対話装置2の対話を制御するための対話制御ユニット10(対話制御装置)および学習ユニット20(学習装置)の少なくとも1つは、対話装置2に内蔵されていてもよい。この場合、対話装置2が、本発明の対話制御装置または学習装置として機能する。
〔ソフトウェアによる実現例〕
対話制御サーバ1の制御ブロック(特に、コメント抽出部11、予測器120、第1予測器121、第2予測器122、コメント決定部13、評価値算出部14、学習制御部15、予測器選択部16、学習データ選択部17、テーマ特定部18、および、個傾向監視部19)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。
後者の場合、対話制御サーバ1は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば1つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するRAM(Random Access Memory)などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
〔まとめ〕
本発明の一側面に係る内容を以下に示す。
(態様1) 本開示のある局面によると、対話制御装置(対話制御サーバ1、対話制御ユニット10)は、ユーザ(40)と対話する対話装置(2)を制御する対話制御装置であって、前記対話装置に発話させるコメントの候補を、候補コメントとしてコメントソース(3)から複数抽出するコメント抽出部(11)と、少なくとも前記候補コメントを入力とし、該候補コメントにつき、前記ユーザの反応の良し悪しを予測した予測評価値を出力する予測器(120、第1予測器121、第2予測器122)と、前記候補コメントごとに出力された前記予測評価値に基づいて、複数の前記候補コメントの中から、前記対話装置に発話させるコメントを決定するコメント決定部(13)とを備え、前記予測器は、少なくとも前記対話装置によって発話された発話済コメントと、該発話済コメントに対する前記ユーザの反応の良し悪しを示す学習評価値(FB評価値)とを対応付けた学習データ(30、第1学習データ131、第2学習データ132)に基づいて、少なくとも前記発話済コメントを入力値とし、前記学習評価値を出力値として学習させたものである。これにより、対話装置の対話力を高めることができるという効果を奏する。
(態様2) (態様1)において、前記コメント抽出部は、前記ユーザが現在視聴している視聴中番組を特定するための参考情報を取得し、該参考情報に基づいて特定された前記視聴中番組のメタ情報を用いて、前記コメントソースに保持された前記視聴中番組に関するコメントを前記候補コメントとして抽出し、前記予測器は、前記視聴中番組に関する発話済コメントおよび該視聴中番組のメタ情報の組み合わせと、前記学習評価値とを対応付けた学習データに基づいて、前記組み合わせを入力値とし、前記学習評価値を出力値として学習を行い、前記視聴中番組に関する候補コメントおよび該視聴中番組のメタ情報の組み合わせを入力とし、前記候補コメントにつき、前記予測評価値を出力してもよい。これにより、視聴中番組に関する対話装置の対話力を高めることができるという効果を奏する。
(態様3) (態様2)において、前記対話制御装置は、複数のユーザ各々のための対話装置をそれぞれ制御するものであって、前記複数のユーザは、複数の集団に分類されており、前記集団ごとに、前記予測器を備え、さらに、前記対話装置から取得された前記ユーザを識別するユーザIDに基づいて前記ユーザが所属する集団を識別する集団識別部(予測器選択部16、学習データ選択部17)を備え、前記コメント決定部は、識別された前記集団に対応する予測器によって出力された前記予測評価値に基づいて、前記対話装置に発話させるコメントを決定し、各予測器は、自器と同じ集団に対応する学習データに基づいて学習させたものである。これにより、複数のユーザ各々のための対話装置の対話力を高めることができるという効果を奏する。
(態様4) (態様3)において、テーマごとに複数の集団が設けられており、前記ユーザは、各テーマについて1つの集団に所属し、前記対話制御装置は、前記視聴中番組のメタ情報に基づいて、前記ユーザと前記対話装置との間の対話の内容に合致する前記テーマを特定するテーマ特定部(18)を備え、前記集団識別部は、特定された前記テーマにおいて、前記ユーザが所属する集団を識別してもよい。これにより、複数のユーザ各々のための対話装置の対話力をテーマごとに高めることができるという効果を奏する。
(態様5) (態様3)または(態様4)において、前記対話制御装置は、集団に対応する学習データから見出された共通事項に基づく下位集団を作成するとともに、前記学習データを、該下位集団に対応するように細分化する学習制御部(15)を備えていてもよい。これにより、複数のユーザ各々のための対話装置の対話力を効率的かつ精度よく高めることができるという効果を奏する。
(態様6) 本開示のある局面によると、学習装置(対話制御サーバ1、学習ユニット20)は、ユーザと対話する対話装置を制御する対話制御装置が該対話装置に発話させるコメントを決定するために用いる予測器を構築する学習装置であって、前記対話装置によって発話された発話済コメントに対する前記ユーザの反応を示す反応データを取得し、該反応データの解析結果に応じて、前記発話済コメントに対する前記ユーザの反応の良し悪しを示す学習評価値を算出する評価値算出部(14)と、少なくとも前記発話済コメントを入力値とし、前記学習評価値を出力値として学習を行うことにより、前記対話装置に発話させるコメントの候補である候補コメントを少なくとも入力とし、前記候補コメントにつき、前記ユーザの反応の良し悪しを予測した予測評価値を出力するように前記予測器を構築する学習制御部と、を備えている。これにより、対話装置の対話力を高めることが可能な対話制御装置を実現できるという効果を奏する。
(態様7) 本開示のある局面によると、対話制御方法は、ユーザと対話する対話装置を制御する対話制御装置が実行する対話制御方法であって、前記対話装置に発話させるコメントの候補を、候補コメントとしてコメントソースから複数抽出する抽出ステップ(S3)と、少なくとも前記候補コメントを入力とし、該候補コメントにつき、前記ユーザの反応の良し悪しを予測した予測評価値を出力する予測器を用いて、該予測評価値を出力する出力ステップ(S5)と、前記候補コメントごとに出力された前記予測評価値に基づいて、複数の前記候補コメントの中から、前記対話装置に発話させるコメントを決定する決定ステップ(S6)と、を含み、前記予測器は、少なくとも前記対話装置によって発話された発話済コメントと、該発話済コメントに対する前記ユーザの反応の良し悪しを示す学習評価値とを対応付けた学習データに基づいて、少なくとも前記発話済コメントを入力値とし、前記学習評価値を出力値として学習させたものである。(態様7)に係る方法は、(態様1)に係る装置と同様の作用効果を奏する。
(態様8) 本開示のある局面によると、学習方法は、ユーザと対話する対話装置を制御する対話制御装置が該対話装置に発話させるコメントを決定するために用いる予測器を構築する学習装置が実行する学習方法であって、前記対話装置によって発話された発話済コメントに対する前記ユーザの反応を示す反応データを取得する取得ステップ(S11)と、前記反応データの解析結果に応じて、前記発話済コメントに対する前記ユーザの反応の良し悪しを示す学習評価値を算出する算出ステップ(S13)と、少なくとも前記発話済コメントを入力値とし、前記学習評価値を出力値として学習を行うことにより、前記対話装置に発話させるコメントの候補である候補コメントを少なくとも入力とし、前記候補コメントにつき、前記ユーザの反応の良し悪しを予測した予測評価値を出力するように前記予測器を構築する学習ステップ(S16)と、を含む。(態様8)に係る方法は、(態様6)に係る装置と同様の作用効果を奏する。
本発明の各態様に係る対話制御サーバは、コンピュータによって実現してもよく、この場合には、コンピュータを上記対話制御サーバが備える各部(ソフトウェア要素)として動作させることにより上記対話制御サーバをコンピュータにて実現させる対話制御サーバの制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。