以下、対話装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、一の対象者が1または2以上の各コミュニケーション手段に対して入力した当該対象者の発言と各発言と対になる他人の対話とを用いて、他人の質問に対する対象者の回答をデータベース化し、対話に利用する対話システムについて説明する。
また、本実施の形態において、キーワード生成モデルで生成したモデルを用いて、回答を取得し、出力する対話システムについて説明する。
また、本実施の形態において、一般知識のデータベースをも利用して、回答を取得し、出力する対話システムについて説明する。なお、ここで、例えば、対話システムは、質問が予め決められた条件を満たす場合、一般知識のデータベースを用いる。
対話システムについて説明する。
また、本実施の形態において、2以上の回答候補を取得し、各回答候補に対してスコアを算出し、最もスコアが高い回答候補を回答として出力する対話システムについて説明する。
また、本実施の形態において、2以上の発話生成モデルに対して質問を与え、質問のクラス(例えば、疑問文か否か)により、各発話生成モデルに対する重みを変える対話システムについて説明する。
また、本実施の形態において、質問と回答候補との文の類似度を用いて、回答候補のスコアを決定する対話システムについて説明する。
また、本実施の形態において、2以上の各回答候補に対して、対象者の発言らしさを算出し、当該発言らしさを用いて、各回答候補のスコアを決定する対話システムについて説明する。
対話システムについて説明する。
また、本実施の形態において、一の対象者の映像と一緒に、回答を出力する対話システムについて説明する。
また、本実施の形態において、一の対象者を模したロボットである対話装置2を有する対話システムについて説明する。
さらに、本実施の形態において、一の対象者が1または2以上の各コミュニケーション手段に対して入力した当該対象者の発言を示す2以上の発言情報と、前記2以上の発言情報のうちの1以上の各発言情報と対になる他人の対話情報とを学習する学習装置を含む対話システムについて説明する。
図1は、本実施の形態における対話システムAの概念図である。対話システムAは、学習装置1、対話装置2、および1または2以上のユーザ端末3を備える。学習装置1は、人格を形成する対象の対象者の発言を学習する装置である。学習装置1は、例えば、いわゆるパーソナルコンピュータ、クラウドサーバやASPサーバ等のサーバ装置等であり、その種類は問わない。対話装置2は、対象者の発言を学習した結果である学習情報を用いて、受け付けたユーザの会話に対する、仮想的な対象者の回答を取得し、出力する装置である。対話装置2は、例えば、いわゆるパーソナルコンピュータ、クラウドサーバやASPサーバ等のサーバ装置等であり、その種類は問わない。ユーザ端末3は、対話装置2と対話を行うユーザが使用する端末である。ユーザ端末3は、例えば、いわゆるパーソナルコンピュータ、タブレット端末、スマートフォン等であり、その種類は問わない。
また、図1において、学習装置1、対話装置2、1以上のユーザ端末3、および1または2以上の外部のサーバ装置4とは、インターネット等のネットワークにより通信可能となっている。ただし、学習装置1と対話装置2、対話装置2とサーバ装置4、学習装置1と1以上のユーザ端末3とサーバ装置4は、相互に通信可能でなくても良い。
つまり、学習装置1は、インターネット等のネットワークにより、外部のサーバ装置4と通信可能である。また、対話装置2、および1または2以上のユーザ端末3は、インターネット等のネットワークにより、外部のサーバ装置4と通信可能である。
なお、外部のサーバ装置4は、facebook(登録商標)、Line、Twitter(登録商標)等のSNSのサーバ装置、ブログ等のサービスを提供するサーバ装置、チャットなどのシステムのサーバ装置等である。外部のサーバ装置4は、後述するコミュニケーション手段を実現するサーバ装置である。外部のサーバ装置4は、例えば、ウィキペディア等の一般知識情報を格納しているサーバ装置でも良い。
図2は、本実施の形態における学習装置1のブロック図である。
学習装置1は、学習格納部11、学習取得部12、学習部13を備える。学習格納部11は、コミュニケーション情報格納部111、学習情報格納部112を備える。学習取得部12は、発言情報取得部121、対話情報取得部122を備える。学習部13は、学習情報構成部131、学習情報蓄積部132を備える。
図3は、本実施の形態における対話システムAのブロック図である。
対話装置2は、格納部21、受付部22、処理部23、出力部24を備える。
格納部21は、学習情報格納部112、重み情報格納部211、画像格納部212を備える。受付部22は、会話受付部221を備える。処理部23は、応答取得部231を備える。応答取得部231は、応答取得手段2311、クラス取得手段2312、類似度算出手段2313、対象者評価値取得手段2314、スコア算出手段2315、応答選択手段2316を備える。出力部24は、応答出力部241、対象者画像出力部242を備える。
ユーザ端末3は、端末格納部31、端末受付部32、端末処理部33、端末送信部34、端末受信部35、端末出力部36を備える。
学習装置1を構成する学習格納部11は、各種の情報が格納される。各種の情報とは、例えば、後述するコミュニケーション情報、後述する学習情報、後述する一般知識情報等である。各種の情報は、例えば、1または2以上の各コミュニケーション手段を実現する外部のサーバ装置4への通信を実現する通信先情報(例えば、サーバ装置4のIPアドレス、発言情報や対話情報が格納されているURL等)、およびコミュニケーション手段ごとの対象者のIDである。つまり、各種の情報は、例えば、1以上の通信情報である。通信情報は、通信先情報と対象者のIDとの組である。対象者のIDとは、発言情報をサーバ装置4から取得する際に必要となる情報である。
コミュニケーション情報格納部111は、コミュニケーション情報が格納される。コミュニケーション情報は、1または2以上のサーバ装置4から取得した情報である。コミュニケーション情報は、一の対象者が1または2以上の各コミュニケーション手段に対して入力した対象者の発言を示す2以上の発言情報と、2以上の発言情報のうちの1以上の各発言情報と対になる他人の対話情報とを有する。なお、コミュニケーション情報は、当該一の対象者が作成した書籍(例えば、エッセイ)が電子化されている電子書籍等を含んでも良い。
ここで、対象者とは、回答者と言っても良い。対象者は、学習する対象の発言を行った人である。対象者は、例えば、故人、家族、著名人等である。
コミュニケーション手段とは、facebook(登録商標)、Line、Twitter(登録商標)等のSNS、ブログ等のサービス、チャットなどのシステム等である。コミュニケーション手段は、メールシステム等も含むと考えても良い。コミュニケーション手段は、通常、対話を行えるシステムや手段であるが、一方的に対象者が発言するブログ、一方的に対象者が発言した内容を取得するシステム等も含むと考えても良い。また、対象者の発言情報とは、対象者が発した情報、対象者が入力した情報等である。対話情報とは、通常、対象者では無い人である他人が発した情報、当該他人が入力した情報等である。
学習情報格納部112は、学習情報が格納される。学習情報は、1または2以上の人格情報を有する。人格情報は、質問情報と回答情報の対である。ここで、質問情報と回答情報の対とは、質問情報の入力を受け付けた際に回答情報が抽出可能な情報であれば良い。質問情報と回答情報の対とは、必ずしも質問情報と回答情報とがそのまま存在する情報でなくても良い。質問情報は、質問に関する情報である。質問情報は、通常、他人が発した対話情報、または他人が発した対話情報から作られる情報である。質問情報は、質問の文から構成されたベクトルでも良い。なお、かかるベクトルは、例えば、word2vec(「T. Mikolov, et al. Distributed Representations of Words and Phrases and their Compositionality. NIPS 2013」参照のこと)により構成される。また、回答情報は、質問に対する回答に関する情報である。回答情報は、通常、一の対象者の発言情報、または一の対象者の発言情報から作られる情報である。回答情報は、回答を構成するためのベクトルでも良い。つまり、人格情報は、通常、一の対象者が1または2以上の各コミュニケーション手段に対して入力した対象者の発言を示す発言情報と、当該発言情報と対になる他人の対話情報とを用いて作成される情報である。例えば、人格情報を作成する元になる他人の対話情報と、一の対象者の発言情報とは、コミュニケーション手段に対して連続して入力された情報である。学習情報は、例えば、多階層のニューラルネットワークである。
学習情報は、発言グラフを有することは好適である。発言グラフは、一の対象者が発言した2以上の発言情報から抽出された2以上の用語、および2以上の用語間の関連の度合いを示す関連度情報を有する。発言グラフの構成方法については後述する。
また、学習情報は、連想記憶モデルを有することは好適である。連想記憶モデルは、例えば、Associatronモデルである。なお、Associatron モデルは、公知技術であり、「KAORU NAKANO:(1972) 「Associatron - A Model of Associative Memory」IEEE」を参照のこと。
学習情報は、質問情報を有さない1以上の人格情報を含んでも良い。質問情報を有さない人格情報は、例えば、一の対象者の発言情報に基づくが、当該発言情報は、他人の対話情報に対する発言に基づく情報では無い発言情報に基づく。また、質問情報を有さない人格情報は、例えば、一般知識を格納している外部のサーバ装置4から取得された一般知識情報である。かかる場合の外部のサーバ装置4は、例えば、Wikipedia(登録商標)の情報を格納しているサーバ装置である。かかる場合、人格情報は、一般常識の情報も有する、と考えられる。かかる場合の人格情報は、例えば、用語とその用語の説明文とを有する。
学習取得部12は、発言情報および対話情報を外部のサーバ装置4から取得する。学習取得部12は、学習格納部11の通信情報を用いて、外部のサーバ装置4にアクセスし、対象者の発言情報と、当該対象者の発言情報の直前の対話情報(他人が発言した情報)とを対にして取得する。また、学習取得部12は、対話情報と対になっていない発言情報も含めて、学習格納部11の通信情報を用いて、外部のサーバ装置4にアクセスし、対象者の発言情報をすべて取得しても良い。さらに、学習取得部12は、学習格納部11の通信情報を用いて、外部のサーバ装置4にアクセスし、対象者の発言情報と、当該発言情報と一連の対話を構成する1以上の対話情報と0または1以上の発言情報とを、群で取得しても良い。なお、一連の対話を構成するか否かは、発言情報または対話情報の間で、引用関係を示す情報が含まれていることを検知し、学習取得部12が判断しても良い。また、一連の対話を構成するか否かは、発言情報または対話情報がサーバ装置4に受け付けされた時刻または蓄積等された時刻を用いて、予め決められた条件を満たすほど近い時刻に受け付け等されている発言情報と対話情報が一連の対話を構成すると、学習取得部12が判断しても良い。
発言情報取得部121は、一の対象者が1または2以上の各コミュニケーション手段に対して入力した対象者の発言を示す2以上の発言情報を、1以上の外部の装置から取得する。外部の装置とは、上述した外部のサーバ装置4である。発言情報取得部121は、例えば、上述した通信情報を用いて、発言情報を取得する。
対話情報取得部122は、2以上の発言情報のうちの1以上の各発言情報と対になる他人の対話情報を、1以上の外部の装置から取得する。外部の装置とは、上述した外部のサーバ装置4である。対話情報取得部122は、例えば、上述した通信情報を用いて、対話情報を取得する。
学習部13は、学習情報を取得し、学習情報格納部112に蓄積する。
学習情報構成部131は、コミュニケーション情報が有する1組以上の発言情報と対話情報との組を分析し、質問に関する質問情報と質問に対する回答に関する回答情報の対である1以上の人格情報を取得し、1以上の人格情報を有する学習情報を構成する。
学習情報構成部131は、例えば、以下の第一の方法により学習情報を構成する。学習情報構成部131は、学習取得部12が取得した、対話情報と発言情報の組が有する対話情報を形態素解析し、その結果を、質問を示す文か否かの識別器に入力する。また、学習情報構成部131は、学習取得部12が取得した、対話情報と発言情報の組が有する発言情報を形態素解析し、その結果を、回答を示す文か否かの識別器に入力する。そして、対話情報が質問を示す文であり、かつ発言情報が回答を示す文であるとの識別結果である場合、対話情報を質問情報とし、発言情報を回答情報とする人格情報を構成する。そして、学習情報構成部131は、複数の対話情報と発言情報の組に対して、上記の処理を行い、1以上の人格情報を有する学習情報を構成する。なお、かかる識別器は、学習情報構成部131が有する、と考えても良いし、外部の識別器でも良い。例えば、別途、回答を示す文、質問等の回答以外を示す文を、公知の機械学習技術(例えば、SVMや決定木等)により学習し、識別器が生成できる。また、例えば、別途、質問を示す文、質問以外を示す文を、公知の機械学習技術(例えば、SVMや決定木等)により学習し、識別器が生成できる。なお、かかる識別器または識別器に与えるパラメータを学習情報と考えても良い。
学習情報構成部131は、例えば、以下の第二の方法により学習情報を構成する。学習情報構成部131は、学習取得部12が取得した、対話情報と発言情報の組が有する対話情報から文の素性ベクトルを取得する。そして、学習情報構成部131は、当該素性ベクトルを、質問を示す文か否かの識別器に入力する。また、学習情報構成部131は、学習取得部12が取得した、対話情報と発言情報の組が有する発言情報から文の素性ベクトルを取得する。そして、学習情報構成部131は、当該素性ベクトルを、回答を示す文か否かの識別器に入力する。そして、対話情報が質問を示す文であり、かつ発言情報が回答を示す文であるとの識別結果である場合、対話情報または対話情報の素性ベクトルを質問情報とし、発言情報または発言情報の素性ベクトルを回答情報とする人格情報を構成する。そして、学習情報構成部131は、複数の対話情報と発言情報の組に対して、上記の処理を行い、1以上の人格情報を有する学習情報を構成する。なお、かかる識別器も、上述した公知の機械学習技術(例えば、SVMや決定木等)により生成され得る。
なお、対話情報または発言情報から各文の素性ベクトルを取得する方法は公知技術であるので、詳細な説明を省略する。例えば、学習情報構成部131は、対話情報または発言情報を形態素解析し、その結果を用いて、自立語のみを抽出し、当該自立語を有する文のベクトル(これを素性ベクトル、と言っても良い)を取得する。また、例えば、学習情報構成部131は、学習情報構成部131は、対話情報または発言情報を形態素解析し、すべての形態素からベクトル(これを素性ベクトル、と言っても良い)を取得する。また、例えば、学習情報構成部131は、対話情報または発言情報を形態素解析し、形態素のみならず、形態素の品詞の情報をも用いて、ベクトル(これを素性ベクトル、と言っても良い)を構成しても良い。
学習情報構成部131は、例えば、以下の第三の方法により学習情報を構成する。第三の方法は、学習情報を構成する発言グラフを構成する方法である。
第三の方法において、対象者の発言に含まれる単語のうち、共起度が高く、かつそれらの単語がその他の単語と類似した共起関係を持つ場合、それらの単語で構成されたクラスタは、過去の発言において似た文脈で利用されている単語である。また、発言グラフ内で高いPageRankをもつ単語は対象者の思想において重要なワードである可能性が高く、クラスタ内でPageRankが高い単語はそのクラスタを説明する意味を含むと考える。なお、ここでのPageRankとは、単語をページ(ノード)としたPageRankである。また、PageRankの算出方法は公知技術であるので、詳細な説明を省略する。そのようにして、発言グラフ内に構成されるクラスタに対して、あるキーワードと同じクラスタに含まれる単語を取得することで、対象者の意図を反映した関連キーワードを抽出できる。
具体的には、例えば、学習情報構成部131は、以下の1.から2.の処理を行うことにより、発言グラフの構築を行う。
1.共起関係に基づいたグラフ生成
学習情報構成部131は、発言情報を形態素解析し、同文中の単語間の自己相互情報量 (PMI:Point-wise Mutual Information) を算出する。そして、学習情報構成部131は、上記により得られた共起関係に基づき、ノードに各単語を設定し、共起関係のある単語間にはPMI を重みとしたエッジを設定した発言グラフを構成する。
なお、1.のグラフ生成の方法は公知技術であり、「Wei Wang, Diep Bich Do, and Xuemin Lin.: Term Graph Model for Text Classification,Springer-Verlag Berlin Heidelberg 2005, pp.19-30, 2005.」および「Samer Hassan, Rada Mihalcea and Carmen Banea. :Random-Walk Term Weighting for Improved Text Classification, 2007.」を参照のこと。
2.クラスタリングと重要単語の決定
学習情報構成部131は、1.で構成したグラフに対してinfomap によるクラスタリングを実施する。そして、学習情報構成部131は、類似した共起関係を持つ単語によるクラスタを構成する。また、発言グラフに対してPageRank の算出を行い、この値をクラスタ内の重要単語の決定に利用する。
なお、2.のクラスタリングと重要単語の決定の方法は公知技術であり、「Christian Scheible, Hinrich Shutze. : Bootstrapping Sentiment Labels For Unannotated Documents With Polarity PageRank, Proceedings of the Eight International Conference on Language Resources and Evaluation, 2012.」を参照のこと。
以上の処理により、学習情報構成部131は、例えば、図4に示す発言グラフを得る。なお、図4において、発言グラフの各エッジは、重みを有しないが、重みを有することは好適である。
学習情報構成部131は、例えば、以下の第四の方法により学習情報を構成する。第四の方法は、上述したAssociatron によるキーワード抽出の方法である。第四の方法は、Associatron モデルによる、より個人に特化した判断モデル(学習情報)へのアプローチである。
第四の方法において、学習情報構成部131は、事前にデータから素性ベクトルを作成し、素性ベクトルをクラス分けし、クラス中の最も特徴ある言葉を抽出し、各クラスの言葉と、各クラスの特徴語に対して事前に作成した要素が?1または1の相関の低い配列を割り当てる。なお、学習情報構成部131は、データから素性ベクトルを作成する処理、および素性ベクトルをクラス分けする処理において、例えば、word2vecを使用する。
ここで、例えば、各クラスの言葉には1500要素、特徴語には1500要素を有する行行列を用いることとする。かかる行行列による概念形成を行うことで、対象者個人に特化した対話モデルを獲得できる。
Associatronは連想記憶モデルである。連想記憶とは「関係のある事柄の結びつきAssociatronを記憶し、その事柄の一部分から全体を思いだすような記憶」のことである。なお、Associatronについて、文献「中野馨(1995) 『C でつくる脳の情報システム』(知能システム研究会)近代化学社」「中野馨(1988)『アソシアトロン-連想記憶モデルと知的情報処理』株式会社 昭晃堂」を参照のこと。
Associatronにおいて、記憶すべきパターンである行ベクトルを、以下の数式1で示す。
また、学習情報構成部131は、記憶行列Mを、以下の数式2を用いて生成する。そして、学習情報蓄積部132は、記憶行列Mを学習情報格納部112に蓄積する。なお、ここで、記憶行列Mは、学習情報の例である。
ここでAssociatronの量子化関数φは、以下の数式3である。
また、実験において、例えば、学習情報構成部131は、Associatronの学習のための前処理として、形態素解析器(例えば、MeCab、ChaSen等)による分かち書きを行い、例えば、word2vec等を用い素性ベクトルを作成し、素性ベクトルをword2vec等によりクラス分けし、 各クラスの単語また各クラスの特徴語に対し事前に作成した1または1の行ベクトルを割り当て、数式2を用いて記憶行列に記憶させる。
学習情報構成部131は、例えば、以下の第五の方法により学習情報を構成する。第五の方法は、RNNを用いる方法である。RNNとは、"Recurrent Neural Network"である。学習情報構成部131は、多層化したLSTMを用いて、文字レベルで入出力を実行する。第五の方法で使用するネットワークの概要を図6に示す。図6について、文献「松元 叡一, 中村政義, 山川宏; 階層型リカレントニュートラルネットワークによる対話システムの試作(http://ailab.dwango.co.jp/technical_report/DWAL-TR-2015-001.pdf(2015)」を参考にした。なお、上記文献では、LSTMの前にリザバーを設けているが、実装のしやすさを考慮して、例えば、リザバーは置かなくても良い。学習情報構成部131は、例えば、学習データセットとして、対象者の過去の発話並びにSNSの文を用いて、学習情報を構成する。学習情報構成部131は、実験では、対象者のオリジナルの文(発話情報)の総数約5000文からRNNを構成した。ここで、学習情報構成部131は、ロス関数はソフトマックスクロスエントロピーとし、文全体を入力した上でバックプロパゲーションをし、確率的勾配降下法(SGD)を用いてRNNを最適化した。なお、ここでは、RNNが学習情報の一例である。
学習情報構成部131は、例えば、以下の第六の方法により学習情報を構成する。第六の方法は、DFR(Divergence from randomness)を用いる方法である。DFRモデルを用いた学習情報の構成、および発話候補の生成処理は、文献「Amati, G. (2003). Probability Models for Information Retrieval based on Diver gence from Randomness . PhD thesis, University of Glasgow.)」に記載されている。学習情報構成部131は、一の対象者の発言(例えば、コミュニケーション情報を構成する発言情報)を元に、DFRを構成する。そして、学習情報蓄積部132は、DFRを学習情報格納部112に蓄積する。なお、ここで、DFRは、学習情報の例である。
学習情報構成部131は、例えば、以下の第七の方法により学習情報を構成する。第七の方法は、Skip-Thoughtベクトルを用いた対話モデルによるアプローチセクションである。Skip-Thoughtベクトルにより、さらに個人に特化した判断モデルへのアプローチが可能となる。なお、Skip-Thoughtベクトルについて、文献「Ryan Kiros, Yukun Zhu, Ruslan Salakhutdinov,Richard S. Zemel, Antonio Torralba, Raquel Urtasun,Sanja Fidler: Skip-Thought Vectors. arXiv:1506.06726,(2015)」を参照のこと。
第七の方法では、学習情報構成部131は、事前に一般知識情報(例えば、日本語Wikipediaの記事)を用いてSkip-Thoughtモデルを取得する。そして、学習情報蓄積部132は、Skip-Thoughtモデルを学習情報格納部112に蓄積する。なお、ここで、Skip-Thoughtモデルは、学習情報の例である。なお、事前に一般知識情報を用いてSkip-Thought モデルを取得し、エンコーダーとして用いることで特定の個人の対話ログから個人に特化した対話モデルを得ることができる。日本語Wikipedia等の記事からSkip-Thought によるエンコーダーを学習することで、一般的な知識の獲得が期待される。また、このエンコーダーを用いて個人の対話ログを学習することで、少量の対話ログから個人に特化した対話モデルを獲得することが期待される。
Skip-Thoughtは文章の分散表現を得るためのエンコーダーである。学習時はエンコーダーデコーダーモデルとして、エンコードする文章の前後の文章をデコードするよう学習する。学習にはより一般的な知識の学習を目的として、例えば、日本語Wikipedia の記事を利用する。学習後に得られるSkip-Thoughtモデルは、任意のタスクに用いることのできる汎用的な特徴抽出器と考えることができる。
3つの文章の組を(??i-1, ??i, ??i+1)で表す。??i tを文章??iのt番目の単語とし、xi tをその埋め込み表現とする。また、Nを文章における単語の総数とする。
エンコーダーは単語の集合を文章ベクトルに写像する。本方法では、例えば、GRU RNNをエンコーダーとして用いる。文章のエンコード時は、各ステップで以下の数式4を通して隠れ状態hi tを得る。最終的に得られるhi Nが文章全体を表していると考えることができる。
デコーダーはエンコーダーの出力htで条件付けされた言語モデルであり、エンコーダーの入力である??iの前後の文章??i-1と??i+1を生成する。デコーダーもエンコーダーと同じくGRU RNN を用いる。??i-1と??i+1を生成するデコーダーではそれぞれ異なるパラメータを用いる。両デコーダーのRNNにおける初期状態としてエンコーダーの出力??iを用いる。以下の数式5に??i+1のデコーダーの式を示す。
そして、目的関数は、例えば、2つのデコーダーの対数確率の和となる(数式6参照)。
第七の方法の実験において、Skip-Thoughtの学習は以下のように行った、つまり、学習データには日本語Wikipedia 記事(2016/08/20時点のダンプデータ)1028940件を用いた。前処理として、Mecabによる分かち書きを行った。Mecabの辞書としてはmecab-ipadic-neologdと、Wikipedia のタイトルから作成した辞書を用いた。
第七の方法の実験において、デコーダーの学習は以下のように行った。つまり、事前に日本語Wikipediaの記事を用いて得られたSkip-Thoughtモデルを入力文章のエンコーダーとして用いた。デコーダー部分にはSkip-Thoughtの学習で用いているのと同等のGRU RNNを利用している。学習データとしては特定の個人のFacebookの投稿を用いた。
以上の処理により、例えば、学習情報構成部131は、日本語Wikipediaの記事等の一般知識情報からSkip-Thought によるエンコーダーとデコーダーとを構成する。なお、ここで、エンコーダーとデコーダーとは、学習情報の例である。
学習情報構成部131は、例えば、後述するクラス取得手段2312が会話のクラスを取得するための学習情報を構成しても良い。例えば、クラス識別子(例えば、「疑問文」または「平叙文」)と文との対の集合をSVM等の機械学習により学習し、識別器である学習情報を構成しても良い。
また、学習情報構成部131は、例えば、後述する類似度算出手段2313が文の類似度を算出するための学習情報を構成しても良い。かかる技術は公知技術であるので、詳細な説明は省略する。
また、学習情報構成部131は、例えば、後述する対象者評価値取得手段2314が対象者評価値を取得するための学習情報を構成しても良い。学習情報構成部131は、例えば、対象者の1以上の発言情報と、対象者以外が主体となる文等の情報を用いて、対象者評価値を取得するための学習情報を構成しても良い。なお、対象者評価値は、対象者らしさを示す情報である。対象者評価値は、対象者らしさの度合いを示す情報(通常、数値)でも良い。かかる技術は公知技術であるので、詳細な説明は省略する。
学習情報蓄積部132は、学習情報構成部131が構成した学習情報を学習情報格納部112に蓄積する。ここで、学習情報は、例えば、発言グラフ、連想記憶モデル、RNN、DFR、Skip-Thought によるエンコーダーとデコーダーである。
対話装置2を構成する格納部21は、各種の情報が格納される。各種の情報は、例えば、学習情報、後述する重み情報、後述する対象者画像等である。
格納部21を構成する学習情報格納部112は、学習情報が格納される。学習情報は、学習装置1が蓄積した情報であることは好適である。
重み情報格納部211は、2以上の各応答取得手段2311に対応付けて、会話の分類を示すクラスに対する重み情報が格納される。重み情報格納部211は、例えば、クラスを識別するクラス識別子と応答取得手段2311を識別する応答取得識別子と重み情報との組であるクラス重み情報を1または2以上格納している。なお、クラス識別子は、例えば、疑問文を示す「疑問文」、または平叙文を示す「平叙文」である。疑問文は、質問文と言っても良い。クラス識別子は、例えば、会話のジャンルを示す情報でも良い。クラス識別子は、例えば、「旅行」、「教育」などである。
画像格納部212は、対象者画像が格納される。対象者画像は、一の対象者の画像である。対象者画像は、静止画でも動画でも良い。
受付部22は、各種の情報を受け付ける。各種の情報とは、例えば、ユーザの会話である。ユーザの会話は、疑問文であることは好適である。ただし、ユーザの会話は、平叙文、命令文、感嘆文等でも良い。ここで、受け付けとは、通常、ユーザ端末3からの、有線もしくは無線の通信回線を介した受信であるが、マイクからの音声の受け付け、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。
会話受付部221は、ユーザの会話を受け付ける。会話受付部221は、通常、ユーザ端末3からユーザの会話を受信する。なお、会話は、例えば、音声、テキスト等である。会話のデータタイプは問わない。
処理部23は、各種の処理を行う。各種の処理とは、応答取得部231等が行う処理である。
応答取得部231は、会話受付部221が受け付けた会話を分析し、会話に関する会話情報を取得し、会話情報を学習情報に適用し、対応する応答を取得する。なお、上記における会話を分析とは、例えば、形態素解析を行い、自立語のベクトルを取得することである。また、上記における会話を分析とは、例えば、会話のクラス(例えば、質問文か平常文か)を取得することである。会話のクラスの取得は、文の分類問題であり、例えば、SVM、決定木等の機械学習を用いた公知技術であるので、詳細な説明を省略する。
また、会話情報とは、例えば、文である会話をベクトル化した情報である。会話情報は、会話の種類を示す情報(種類と言っても良い)でも良い。
また、会話情報を学習情報に適用することは、会話情報と学習情報とを用いることである、と言っても良い。
応答取得部231は、例えば、会話受付部221が受け付けた会話をベクトル化し、当該ベクトルに最も近似する質問情報を学習情報格納部112から検索し、当該検索した質問情報と対になる回答情報を応答として取得する。なお、会話のベクトル化のために、例えば、形態素解析器を用いる。
応答取得部231は、例えば、会話から1以上の用語を抽出し、1以上の用語と予め決められた条件を満たすほど関連の大きい1以上の用語を発言グラフから取得し、関連の大きい1以上の用語を学習情報に適用し、対応する応答を取得する。なお、用語の抽出は、例えば、形態素解析、パターンマッチング等により行う。なお、関連の大きい1以上の用語を学習情報に適用することは、例えば、会話から抽出した1以上の用語を含む用語群を学習情報に適用することである。
応答取得部231は、例えば、会話が予め決められた条件を満たす場合、1以上の一般知識情報に適用し、対応する応答を取得する。ここで、予め決められた条件とは、「Aとは何ですか」等の、会話がある用語(A)に対する質問であると判断されることである。また、予め決められた条件とは、会話に含まれる1以上の用語が、学習情報の中に予め決められた条件を満たすほど少ない割合または少ない数しか存在しないことである。
応答取得部231は、2以上の応答取得手段2311を有することは好適である。2以上の各応答取得手段2311は、通常、異なるアルゴリズムや異なるモデルを用いて、応答候補を取得する。応答取得手段2311は、会話情報を学習情報に適用し、会話情報に対応する応答候補を取得する。
第一の応答取得手段2311は、例えば、以下の第一の方法により、応答候補を取得する。第一の方法は、発言グラフを用いた発話候補の作成である。第一の応答取得手段2311は、例えば、発言グラフから以下のように関連ワードを抽出する。つまり、第一の応答取得手段2311は、ユーザの発話(会話)に含まれる1以上のキーワードを抽出する。そして、第一の応答取得手段2311は、かかる1以上の各キーワードを発言グラフに入力として与え、各キーワードが共起グラフに含まれる場合は、発言グラフ内で同じクラスタに属する単語のうちPageRank が高いワードを関連ワードとして取得する。そして、第一の応答取得手段2311は、取得した1以上のワードを用いて、発話候補の文を構成する。なお、発話候補の文は、文そのものでも良いし、ワード群や、ワードから構成されるベクトル等でも良い。
第二の応答取得手段2311は、例えば、以下の第二の方法により、応答候補を取得する。第二の方法は、連想記憶モデルを用いた発話候補の作成である。第二の応答取得手段2311は、ユーザの発話をクラス化した各クラスの言葉と照合し、発話が各クラスに存在すればそのクラスの言葉に対して事前に割り当てたベクトルを、以下の数式7の入力yとする。なお、発話をクラス化する処理は、例えば、word2vecを用いるが、他の技術、他のソフトウェアを用いても良い。
すると、記憶行列Mと入力yによる想起は、以下の数式8で表現される。つまり、第二の応答取得手段2311は、入力yと記憶行列Mとを用いて、数式8により、応答zを取得する。応答zは、ベクトルであえる。第二の応答取得手段2311は、例えば、ベクトルzから応答の文を生成しても良い。用語のベクトルから文を構成する技術は公知技術であるので、詳細な説明を省略する。
なお、上記において、想起の際の閾値の設定は相関係数を用いる。そして、例えば、相関係数は0.45である。また、第二の応答取得手段2311の実験において、word2vec等でクラス分けした単語に互いに相関の低い配列を割り当てると、記憶行列に存在する単語に対しては、想起されることがわかった。
また、Associatronを応用した想起の概念図を図5に示す。また、言葉とは、文でも良いし、用語でも良い。
第三の応答取得手段2311は、例えば、以下の第三の方法により、応答候補を取得する。第三の方法は、RNNを用いた発話候補の作成である。
第三の方法では、雑談的な会話への対応を主目的として、RNNを利用した発話候補の作成を行うモデルを設置している。第三の応答取得手段2311は、会話受付部221が受け付けた会話を、多層化したLSTMに入力し、応答を得る。
第三の方法を用いた実験では、多層化したLSTMを用いて、文字レベルで入出力を実行する。第三の方法で使用するネットワークの概要を図6に示す。第三の方法を適用した場合の動作時には、第三の応答取得手段2311は、ユーザの発話(会話)の中から適当な単語を選び、その単語を初期入力として文を出力する。第三の方法において、第三の応答取得手段2311は、LSTMの出力(h)を上位のLSTMの入力にするとともに、すべてのLSTMの出力をマージして後続のFully-Connected層に渡している。取得可能な対象者の過去の発話やSNSの文は、一般にはそれほど多くないため、出力のバリエーションが乏しくなる。そこで、文字レベルで文を作成することによって偶然性も利用してバリエーションを広げることを狙った。
第四の応答取得手段2311は、例えば、以下の第四の方法により、応答候補を取得する。第四の方法は、DFRモデルを用いた発話候補の生成である。
第四の方法では、第四の応答取得手段2311は、対象者個人を模倣した応答文を生成することを主目的として、会話(例えば、質問文)に含まれるキーワードに類似した過去の発言(ここでは、学習情報)を利用し、発話文を生成する。このモデルを利用することにより、ある質問に対する回答を過去に発言していた場合、その発言を利用することで対象者が過去に行った判断・発言を再利用することを目的としている。
第四の方法において、第四の応答取得手段2311は、過去発言(ここでは、学習情報)の検索を行う。そして、第四の応答取得手段2311は、過去発言の検索を行うために、例えば、文書の類似度の計算方法には確率モデルを利用したDFRを利用する。確率モデルによる類似度の計算はtf-idfなどのベクトル空間モデルと比較して、検索ワードには含まれない単語も考慮の対象となるため、質問回答に適していると考えDFRを採用した。なお、実装にあたって、例えば、第四の応答取得手段2311は、一般的な検索エンジンを利用しDFRを利用した類似度をスコアリングに利用することで質問文のキーワードと類似した過去発言の取得を行っても良い。
第五の応答取得手段2311は、例えば、以下の第五の方法により、応答候補を取得する。第五の方法は、Skip-Thoughtベクトルを用いる方法である。つまり、第五の応答取得手段2311は、受け付けられた会話(??i)から単語の集合を取得する。そして、第五の応答取得手段2311は、当該単語の集合からエンコーダーを用いて文章ベクトルを取得する。次に、第五の応答取得手段2311は、文章ベクトルをデコーダーに与え、会話(??i)の次の文(??i+1)を取得する。かかる文(??i+1)が応答である。
クラス取得手段2312は、会話を分析し、会話のクラスを取得する。クラス取得手段2312は、例えば、会話を形態素解析し、その結果から文の素性ベクトルを取得する。そして、クラス取得手段2312は、当該素性ベクトルを、SVM等の機械学習を用いて、分類し、クラス識別子(例えば、「疑問文」または「平叙文」)を取得する。
なお、例えば、クラス取得手段2312が、ユーザの会話が疑問文か平叙文かなどを判定し、発話作成モデルの得意不得意に即して評価値にオフセットを与える。なお、オフセットとは、重み情報である。なお、かかる文の分類技術(会話のクラスを取得する技術)は公知技術であるので、詳細な説明は省略する。
類似度算出手段2313は、2以上の応答候補ごとに、応答候補と会話との類似度を算出する。類似度算出手段2313は、例えば、各応答候補と会話とを、それぞれ形態素解析し、各文の素性ベクトルを取得し、応答候補の素性ベクトルと会話の素性ベクトルとの間の類似度を算出する。
類似度算出手段2313は、例えば、word2vecにて作成した単語の素性ベクトルを基にして、文に対して素性ベクトルを計算する。word2vecは日本語版wikipediaの全記事に対して前処理を行い学習データセットとする。そして、類似度算出手段2313は、ユーザの会話と発話作成モデルの出力した文の素性ベクトルに対してcos類似度を計算する。なお、発話作成モデルの出力した文とは、いずれかの応答取得手段2311が出力した応答候補である。
対象者評価値取得手段2314は、一の対象者の発言を示す2以上の発言情報を用いて、2以上の応答候補ごとに、対象者評価値を取得する。対象者評価値取得手段2314は、応答候補の表現が、対象者らしい度合いを推定する処理を行っていることとなる。
対象者の過去の発話やSNSの文とその他の文を識別する識別器(例えば、SVMや決定木などの機械学習を用いる)をあらかじめ作成しておき、対象者評価値取得手段2314は、識別器が出力する対象者である確率を取得する。なお、識別器は文を双方向のLSTMに通してベクトルにエンコードした後、2層のパーセプトロン層を挟みsoftmax関数で対象者、それ以外の確率値を計算する。ロス関数はソフトマックスクロスエントロピーとし、SGDにて最適化を行う。
スコア算出手段2315は、2以上の各応答取得手段2311が取得した応答候補に対するスコアを算出する。スコア算出手段2315は、3以上の各応答取得手段2311が取得した応答候補に対するスコアを算出することは好適である。
スコア算出手段2315は、例えば、クラス取得手段2312が取得したクラスに対応する重み情報を用いて、2以上の各応答取得手段が取得した応答候補に対するスコアを算出する。クラスに対応する重み情報は、重み情報格納部211に格納されている。なお、クラス取得手段2312が取得したクラスに対応する重み情報が大きな値であるほど、スコア算出手段2315は、通常、高いスコアを算出する。
スコア算出手段2315は、類似度算出手段2313が算出した類似度を用いて、2以上の各応答取得手段2311が取得した応答候補に対するスコアを算出する。なお、類似度算出手段2313は、2以上の各応答取得手段2311が取得した応答候補(文)と、受け付けられた会話との類似度が大きいほど、通常、高いスコアを算出する。
なお、スコア算出手段2315は、例えば、類似度算出手段2313が算出したcos類似度をスコアに加算する。なお、かかる処理は、会話の文脈から極端に外れた発話候補を排除することを意図している。
スコア算出手段2315は、対象者評価値取得手段2314が取得した対象者評価値を用いて、2以上の各応答取得手段が取得した応答候補に対するスコアを算出する。スコア算出手段2315は、対象者評価値が高いほど、通常、高いスコアを算出する。そして、スコア算出手段2315は、例えば、対象者評価値取得手段2314が取得した、対象者らしさの確率をスコアに加算する。
なお、スコア算出手段2315は、上記のクラスに対応する重み情報、類似度、対象者評価値のうちの2以上の情報を用いて、スコアを算出することは好適である。スコア算出手段2315は、例えば、「重み情報×類似度×対象者評価値」等の3つのパラメータを増加関数とする演算式により、スコアを算出しても良い。また、スコア算出手段2315は、例えば、「重み情報+類似度+対象者評価値」等の3つのパラメータを増加関数とする演算式により、スコアを算出しても良い。
今、例えば、重み情報格納部211に4つのクラス重み情報(クラス識別子「疑問文」,応答取得識別子「RNN」,重み情報「0.5」)、(クラス識別子「疑問文」,応答取得識別子「DFR」,重み情報「1.0」)、(クラス識別子「平叙文」,応答取得識別子「RNN」,重み情報「1.0」)、(クラス識別子「平叙文」,応答取得識別子「DFR」,重み情報「0.5」)が格納されている、とする。なお、雑談向きの応答取得識別子「RNN」で識別される第一の応答取得手段2311は、通常、クラス識別子「平叙文」に対する重み情報が大きい。一方、応答取得識別子「DFR」で識別される第二の応答取得手段2311は、通常、クラス識別子「疑問文」に対する重み情報が大きい。
そして、クラス取得手段2312が、受け付けられた会話に対して取得したクラス識別子が「疑問文」である場合、応答取得識別子「RNN」に対する重み情報「0.5」と、応答取得識別子「DFR」に対する重み情報「1.0」とを取得する。
また、類似度算出手段2313は、応答取得識別子「RNN」に対応する第一の応答取得手段2311が出力した応答候補と受け付けられた会話との類似度を「0.7」と算出した、とする。そして、類似度算出手段2313は、応答取得識別子「DFR」に対応する第二の応答取得手段2311が出力した応答候補と受け付けられた会話との類似度を「0.5」と算出した、とする。
さらに、応答取得識別子「RNN」に対応する第一の応答取得手段2311が出力した応答候補に対して、対象者評価値取得手段2314は、対象者評価値「0.9」と算出した、とする。また、応答取得識別子「DFR」に対応する第二の応答取得手段2311が出力した応答候補に対して、対象者評価値取得手段2314は、対象者評価値「0.4」と算出した、とする。
そして、スコア算出手段2315は、例えば、演算式「重み情報×類似度×対象者評価値」により、第一の応答取得手段2311が出力した応答候補に対するスコア「0.5+0.7+0.9=2.1」、第二の応答取得手段2311が出力した応答候補に対するスコア「1.0×0.5×0.4=1.9」を取得する。
応答選択手段2316は、スコア算出手段2315が算出しスコアが最も高い応答候補を応答として取得する。
出力部24は、各種の情報等を出力する。ここで、出力とは、通常、ユーザ端末3への送信である。ただし、出力は、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
応答出力部241は、応答を出力する。ここでの出力とは、通常、ユーザ端末3への送信である。ただし、出力は、音声出力、ディスプレイへの表示等でも良い。
対象者画像出力部242は、応答の出力に対応付けて、対象者画像を出力する。対象者画像出力部242は、対象者画像を用いて、応答の出力中に、対象者が発言しているように動画を出力することは好適である。対象者画像出力部242は、例えば、静止画である対象者画像に対して、モーフィング技術を用いて、発言している様の動画を構成し、出力する。対象者画像出力部242は、例えば、応答の出力中のみ、発言している間の動画を出力し、応答していない間は口を閉じた静止画を出力する。
ユーザ端末3を構成する端末格納部31は、各種の情報を格納し得る。各種の情報とは、例えば、ユーザを識別するユーザ識別子、ユーザ端末3を識別する端末識別子等である。
端末受付部32は、各種の情報や指示等を受け付ける。各種の情報や指示等とは、例えば、ユーザが入力した会話、対話装置2へのログイン指示等である。
各種の情報や指示等の入力手段は、マイクやキーボードやマウスやメニュー画面によるもの等、何でも良い。端末受付部32は、マイクやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
端末処理部33は、各種の処理を行う。各種の処理とは、例えば、音声入力された会話を音声認識し、会話の文字列を取得する処理である。また、各種の処理とは、例えば、対話装置2から受信した応答を音声合成し、音声データを取得する処理である。
端末送信部34は、各種の情報や指示等を対話装置2に送信する。各種の情報や指示等とは、例えば、会話である。
端末受信部35は、各種の情報を対話装置2から受信する。各種の情報とは、例えば、応答である。
端末出力部36は、端末受信部35が受信した情報、端末処理部33が取得した情報、端末受付部32が受け付けた情報等を出力する。ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、外部装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
学習格納部11、コミュニケーション情報格納部111、学習情報格納部112、格納部21、学習情報格納部112、重み情報格納部211、画像格納部212、端末格納部31は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
学習格納部11等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が学習格納部11等で記憶されるようになってもよく、通信回線等を介して送信された情報が学習格納部11等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が学習格納部11等で記憶されるようになってもよい。
学習取得部12、発言情報取得部121、対話情報取得部122は、通常、有線または無線の通信手段、およびMPUやメモリ等から実現され得る。学習取得部12の一部の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
学習部13、学習情報構成部131、学習情報蓄積部132、処理部23、応答取得部231、応答取得手段2311、スコア算出手段2315、クラス取得手段2312、類似度算出手段2313、対象者評価値取得手段2314、応答選択手段2316、端末処理部33は、通常、MPUやメモリ等から実現され得る。学習部13の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
受付部22、会話受付部221、端末受信部35は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
出力部24、応答出力部241、対象者画像出力部242、端末送信部34は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
端末出力部36は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。端末出力部36は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、対話システムAの動作について説明する。まず、学習装置1の動作について、図7のフローチャートを用いて説明する。
(ステップS701)学習取得部12は、カウンタiに1を代入する。
(ステップS702)学習取得部12は、i番目の通信先情報が学習格納部11に存在するか否かを判断する。i番目の通信先情報が存在すればステップS703に行き、存在しなければステップS709に行く。
(ステップS703)学習取得部12は、i番目の通信先情報を学習格納部11から取得する。
(ステップS704)学習取得部12は、i番目の通信先情報を用いて、通信先情報に対応するサーバ装置4と接続し、i番目の通信先情報が有する対象者識別子で識別される一の対象者の1以上の発言情報および当該発言情報と対になる1以上の対話情報をサーバ装置4から受信する。
(ステップS705)学習取得部12は、ステップS704で取得された1以上の発言情報および1以上の対話情報から1以上のコミュニケーション情報を構成し、コミュニケーション情報格納部111に蓄積する。
(ステップS706)学習取得部12は、カウンタiを1、インクリメントする。ステップS702に戻る。
(ステップS707)学習取得部12は、一般知識情報を取得するか否かを判断する。一般知識情報を取得場合はステップS708に行き、一般知識情報を取得しない場合はステップS710に行く。なお、一般知識情報を取得するか否かを判断方法は問わない。学習取得部12は、常に取得すると判断しても良いし、一度、一般知識情報を取得した後は、一般知識情報を取得しないと判断しても良い。また、学習取得部12は、常に取得しないと判断しても良い。また、学習取得部12は、以前に一般知識情報を取得してから、予め決められた期間以上の期間が経過している場合に、一般知識情報を取得すると判断しても良い。
(ステップS708)学習取得部12は、外部のサーバ装置(サーバ装置4でも良い)から一般知識情報を取得する。かかる処理は公知技術である。
(ステップS709)学習取得部12は、ステップS708で取得した一般知識情報を学習格納部11に蓄積する。
(ステップS710)学習部13は、学習処理を行うか否かを判断する。学習処理を行う場合はステップS711に行き、学習処理を行わない場合はステップS701に戻る。なお、学習部13は、例えば、学習格納部11にコミュニケーション情報または一般知識情報が、新たに追加された場合に、学習処理を行うと判断することは好適である。ただし、学習処理の開始のトリガーは問わない。
(ステップS711)学習情報構成部131は、学習格納部11のコミュニケーション情報、またはコミュニケーション情報と一般知識情報、またはコミュニケーション情報と学習情報、または一般知識情報と学習情報、またはコミュニケーション情報と一般知識情報と学習情報のいずれかを用いて、学習情報を構成する処理を行う。かかる処理の例は、上述した。
(ステップS712)学習情報蓄積部132は、ステップS711で構成された学習情報を学習情報格納部112に蓄積する。ステップS701に戻る。
なお、図7のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、対話装置2の動作について、図8のフローチャートを用いて説明する。
(ステップS801)会話受付部221は、会話を受け付けたか否かを判断する。会話を受け付けた場合はステップS802に行き、会話を受け付けない場合はステップS801に戻る。
(ステップS802)応答取得部231は、カウンタiに1を代入する。
(ステップS803)応答取得部231は、i番目の応答取得手段2311が存在するか否かを判断する。i番目の応答取得手段2311が存在する場合はステップS804に行き、存在しない場合はステップS806に行く。
(ステップS804)応答取得部231は、i番目の応答取得手段2311に、ステップS801で受け付けられた会話を与え、i番目の応答取得手段2311を動作させる。そして、i番目の応答取得手段2311は、会話に対するi番目の応答候補を得て、当該応答候補を図示しないバッファに一時蓄積する。
(ステップS805)応答取得部231は、カウンタiを1、インクリメントする。ステップS803に戻る。
(ステップS806)クラス取得手段2312は、ステップS801で受け付けられた会話のクラスを識別するクラス識別子を取得する。
(ステップS807)応答取得部231は、カウンタiに1を代入する。
(ステップS808)応答取得部231は、i番目の応答候補がバッファに存在するか否かを判断する。i番目の応答候補が存在する場合はステップS809に行き、存在しない場合はステップS814に行く。
(ステップS809)スコア算出手段2315は、ステップS806で取得されたクラス識別子およびi番目の応答取得手段2311に対応する重み情報を重み情報格納部211から取得する。
(ステップS810)類似度算出手段2313は、ステップS801で受け付けられた会話と、i番目の応答候補との類似度を算出する。
(ステップS811)対象者評価値取得手段2314は、i番目の応答候補の対象者評価値を取得する。
(ステップS812)スコア算出手段2315は、ステップS809で取得した重み情報、ステップS810で取得された類似度、およびステップS811で取得された対象者評価値のうちの、1または2以上の情報を用いて、i番目の応答候補に対するスコアを算出する。そして、スコア算出手段2315は、i番目の応答候補に対応付けて、スコアを蓄積する。
(ステップS813)応答取得部231は、カウンタiを1、インクリメントする。ステップS808に戻る。
(ステップS814)応答選択手段2316は、スコアが最も高い応答候補を取得する。
(ステップS815)応答出力部241は、ステップS814で取得された応答候補を、応答として出力する。ステップS801に戻る。
なお、図8のフローチャートのステップS815において、対象者画像出力部242は、応答と同期をとり、対象者画像を出力することは好適である。
また、図8のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ユーザ端末3の動作例について説明する。まず、端末受付部32は、ユーザが入力した会話を受け付ける。そして、端末処理部33は、例えば、音声入力された会話を音声認識し、会話の文字列を取得する。次に、端末送信部34は、文字列である会話を対話装置2に送信する。そして、会話の送信に応じて、端末受信部35は、対話装置2から応答を受信する。次に、端末処理部33は、受信された応答を音声データに変換する。ここで、端末処理部33は、対象者の音声データを分析して取得した音声の1以上の特徴量を反映させた音声データを取得することは好適である。かかる音声処理は公知技術であるので、詳細な説明は省略する。次に、端末出力部36は、当該応答の音声データを音声出力する。
以上、本実施の形態によれば、一の対象者の過去の複数の発言を学習することにより、入力された会話に対して、当該一の対象者があたかも応答しているように感じさせることができる対話装置を提供できる。かかることにより、会えなくなった故人、会うことが難しい著名人等の仮想的な対話相手を実現できる。
また、本実施の形態によれば、学習した一の対象者の過去の複数の発言が少なくとも、一般的な知識を用いることにより、入力された会話に対して、適切な応答が可能となる。
また、本実施の形態によれば、対象者画像も応答と一緒に出力することにより、対象者があたかも回答しているように、ユーザに感じさせることができる。
さらに、本実施の形態によれば、対象者を模した形状を有するロボットが応答を出力することにより、対象者があたかも回答しているように、ユーザにより感じさせることができる。なお、かかるロボットは、例えば、大阪大学石黒研究室のアンドロイド(人間酷似型ロボット)(「http://www.irl.sys.es.osaka−u.ac.jp/home/research」参照)である。
なお、本実施の形態において、応答取得部231は、会話が予め決められた条件を満たす場合、会話を1以上の一般知識情報に適用し、対応する応答を取得しても良い。かかることにより、一の対象者の過去の複数の発言、および一般的な知識を、適切に切り替えて利用できる。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における対話装置2を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータがアクセス可能な記録媒体は、一の対象者が1または2以上の各コミュニケーション手段に対して入力した当該対象者の発言を示す2以上の発言情報と、前記2以上の発言情報のうちの1以上の各発言情報と対になる他人の対話情報とを用いて作成された情報であり、質問に関する質問情報と当該質問に対する回答に関する回答情報の対である1以上の人格情報を有する学習情報が格納される学習情報格納部を具備し、コンピュータを、ユーザの会話を受け付ける会話受付部と、前記会話を分析し、当該会話に関する会話情報を取得し、当該会話情報を前記学習情報に適用し、対応する応答を取得する応答取得部と、前記応答を出力する応答出力部として機能させるためのプログラムである。
また、上記プログラムにおいて、前記学習情報は、前記一の対象者が発言した2以上の発言情報から抽出された2以上の用語、および2以上の用語間の関連の度合いを示す関連度情報を有する発言グラフを有し、前記応答取得部は、前記会話から1以上の用語を抽出し、当該1以上の用語と予め決められた条件を満たすほど関連の大きい1以上の用語を前記発言グラフから取得し、当該関連の大きい1以上の用語を前記学習情報に適用し、対応する応答を取得するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記学習情報は、質問情報を有さない1以上の人格情報を含み、当該質問情報を有さない人格情報は、一般知識を格納している外部のサーバ装置から取得された一般知識情報であるものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記応答取得部は、前記会話が予め決められた条件を満たす場合、前記1以上の一般知識情報に適用し、対応する応答を取得するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記応答取得部は、前記会話情報を前記学習情報に適用し、当該会話情報に対応する応答候補を取得する2以上の応答取得手段と、前記2以上の各応答取得手段が取得した応答候補に対するスコアを算出するスコア算出手段と、前記スコア算出手段が算出しスコアが最も高い応答候補を応答として取得する応答選択手段とを具備するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、記録媒体は、2以上の各応答取得手段に対応付けて、会話の分類を示すクラスに対する重み情報が格納される重み情報格納部をさらに具備し、
前記応答取得部は、前記会話を分析し、当該会話のクラスを取得するクラス取得手段をさらに具備し、前記スコア算出手段は、前記クラス取得手段が取得したクラスに対応する重み情報を用いて、前記2以上の各応答取得手段が取得した応答候補に対するスコアを算出するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記応答取得部は、前記2以上の応答候補ごとに、応答候補と前記会話との類似度を算出する類似度算出手段をさらに具備し、前記スコア算出手段は、前記類似度算出手段が算出した類似度を用いて、前記2以上の各応答取得手段が取得した応答候補に対するスコアを算出するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記応答取得部は、前記一の対象者の発言を示す2以上の発言情報を用いて、前記2以上の応答候補ごとに、当該対象者らしさを示す対象者評価値を取得する対象者評価値取得手段をさらに具備し、前記スコア算出手段は、前記対象者評価値取得手段が取得した対象者評価値を用いて、前記2以上の各応答取得手段が取得した応答候補に対するスコアを算出するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて記録媒体は、前記一の対象者の画像である対象者画像が格納される画像格納部を具備し、前記応答の出力に対応付けて、前記対象者画像を出力する対象者画像出力部としてさらにコンピュータを機能させるプログラムであることは好適である。
また、本実施の形態における学習装置1を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータがアクセス可能な記録媒体は、一の対象者が1または2以上の各コミュニケーション手段に対して入力した当該対象者の発言を示す2以上の発言情報と、前記2以上の発言情報のうちの1以上の各発言情報と対になる他人の対話情報とを用いて作成された情報であり、質問に関する質問情報と当該質問に対する回答に関する回答情報の対である1以上の人格情報を有する学習情報が格納される学習情報格納部と、1または2以上のサーバ装置から取得した情報であり、一の対象者が1または2以上の各コミュニケーション手段に対して入力した当該対象者の発言を示す2以上の発言情報と、前記2以上の発言情報のうちの1以上の各発言情報と対になる他人の対話情報とを有するコミュニケーション情報が格納されるコミュニケーション情報格納部とを具備し、コンピュータを、前記コミュニケーション情報が有する1組以上の発言情報と対話情報との組を分析し、質問に関する質問情報と当該質問に対する回答に関する回答情報の対である1以上の人格情報を取得し、当該1以上の人格情報を有する学習情報を構成する学習情報構成部と、前記学習情報構成部が構成した学習情報を前記学習情報格納部に蓄積する学習情報蓄積部として機能させるためのプログラムである。
また、図9は、本明細書で述べたプログラムを実行して、上述した実施の形態の学習装置1、対話装置2等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図9は、このコンピュータシステム300の概観図であり、図10は、システム300のブロック図である。
図9において、コンピュータシステム300は、CD−ROMドライブを3012含むコンピュータ301と、キーボード302と、マウス303と、モニタ304と、マイク305と、スピーカー306とを含む。
図10において、コンピュータ301は、CD−ROMドライブ3012と、MPU3013と、バス3014と、ROM3015と、RAM3016と、ハードディスク3017とを含む。ROM3015は、ブートアッププログラム等のプログラムを記憶している。RAM3016は、MPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供する。ハードディスク3017は、通常、アプリケーションプログラム、システムプログラム、及びデータを記憶している。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム300に、上述した実施の形態の対話装置2等の機能を実行させるプログラムは、CD−ROM3101に記憶されて、CD−ROMドライブ3012に挿入され、さらにハードディスク3017に転送されても良い。また、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD−ROM3101またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ301に、上述した実施の形態の対話装置2等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切なモジュールを呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。