以下、本発明の実施の形態を、図面等を参照しながら説明する。但し、本発明は多くの異なる態様で実施することが可能であり、以下に例示する実施の形態の記載内容に限定して解釈されるものではない。また、図面は説明をより明確にするため、実際の態様に比べ、各部の幅、厚さ、形状等について模式的に表される場合があるが、あくまで一例であって、本発明の解釈を限定するものではない。また、本明細書と各図において、既出の図に関して前述したものと同様の要素には、同一の符号を付して、詳細な説明を適宜省略することがある。
[システムの概要]
図1Aは、本発明の一実施形態に係るコミュニケーション提供システムと、ソーシャル・ネットワーキング・サービス(以下「SNS」ともいう。)及び、このコミュニケーション提供システムを利用する利用者との関係を示す。本実施形態に係るコミュニケーション提供システム100は、利用者が利用している様々なSNSからデータを取得しデータベースに蓄積する機能を有している。コミュニケーション提供システム100はさらに、データベースに蓄積された情報に基づいて、利用者の思考を推論し学習する機能(人工知能としての機能)を有し、質問に対する適切な回答を提供可能としている。以下、その詳細を説明する。
図1Aにおいて、コミュニケーション提供システム100は、複数の利用者202との間で電気通信回線を通じてアクセス可能な状態に置かれている。複数の利用者202は、コミュニケーション提供システム100が提供するサービスによって、直接的及び間接的にコミュニケーションを相互に図ることができる。
図1Aは、複数の利用者202が、それぞれのユーザ端末200によってコミュニケーション提供システム100と電気通信回線を通じて双方に通信可能な状態に置かれていることを示している。ここで、複数の利用者202は、コミュニケーション提供システム100を介して提供されるサービスを受けるために予め登録された利用者の集合であることが好ましい。コミュニケーション提供システム100を介して提供されるサービスの利用を登録制とすることで、コミュニケーションの安全性及び信頼性を高めることができる。
なお、必ずしも、複数の利用者202の全員がコミュニケーション提供システム100を介して提供されるサービスを受けるために予め登録されている必要は、ない。例えば、複数の利用者202の少なくとも一人は匿名のユーザとしてコミュニケーション提供システム100を利用できるようになっていてもよい。
コミュニケーション提供システム100は、公衆に提供されているSNS300の一つ又は複数と通信可能な状態に置かれている。SNS300としては、例えば、Twitter(登録商標)、Facebook(登録商標)等であり、インターネット上で提供される様々なコミュニケーションサービスが例示される。なお、SNSにより提供されるコミュニケーションの態様は様々であり、上記に例示されるサービスに限定されるものではない。本実施形態において、コミュニケーション提供システム100と連携するSNS300は、その利用者のソーシャルデータが提供されるものであればよく、複数の利用者間で情報を共有できる態様のものであることが好ましい。
なお、本明細書において「ソーシャルデータ」とは、何らかのSNSを通じて、利用者が特定人(例えば、友人として登録されている他の利用者。)又は不特定人に発信する文字(顔文字を含む)、記号、音声、静止画像、動画等の情報をいう。また、「個人ソーシャルデータ」とは、複数の利用者の内、特定個人のソーシャルデータを指すものとする。
コミュニケーション提供システム100は、少なくとも一つ、好ましくは複数のSNS300から、それぞれに蓄積されるソーシャルデータを取得する。コミュニケーション提供システム100が行うソーシャルデータの取得は、リアルタイムで実行されてもよいし、一定時間又は一定期間ごとに適時行われてもよい。コミュニケーション提供システム100は、取得したソーシャルデータをデータベースに蓄積する。データベースに蓄積される情報の量及び質を高めるためには、コミュニケーション提供システム100は複数のSNS300と連携してソーシャルデータを取得することが好ましい。
具体的なソーシャルデータの取得と取得されたソーシャルデータがデータベースに蓄積される過程の一例としては、次のものがある。まず、第1の利用者204が、パーソナルコンピュータやスマートフォンなどを用いて、第1の利用者204の属性をコミュニケーション提供システム100に登録を行う。このために、第1の利用者204は、例えば、図1Bに示すように、「ようこそpersonalized AIへ」に示される画面をブラウザやアプリを用いて表示を行い、「登録へ」のボタン1を押す。すると、第1の利用者204の属性を入力する画面が表示される。第1の利用者204の属性には、SNS300のいずれのSNSからソーシャルデータを取得するかを特定するための情報(SNS特定情報)および、ソーシャルデータを取得するSNSにおける第1の利用者204の認証情報が含まれ得る。例えば、図1Cに示されるように、SNS特定情報をフィールド2に入力し、認証情報として、ユーザ名およびパスワードをフィールド3および4に入力する。そして、「登録」のボタン5を押す。
第1の利用者204の属性は、コミュニケーション提供システム100の記憶装置、例えばデータベースなどを格納する2次記憶などに格納される。コミュニケーション提供システム100は、SNS特定情報およびSNSの認証情報を用いて、SNS特定情報で特定されるSNSにアクセスを行い、第1の利用者204の認証情報を用いてSNSにログインなどを行う。この後、コミュニケーション提供システム100は、そのSNSに格納されている第1の利用者204に関する情報、すなわちソーシャルデータ、を取得する。第1の利用者204に関する情報には、第1の利用者204がそのSNSにおける特定のユーザと交換したメッセージや、第1の利用者204がそのSNSに投稿した記事、写真、音声情報、動画(音声情報を含み得る)が含まれる。
コミュニケーション提供システム100は、そのSNSより取得した第1の利用者204に関する情報をデータベースに格納する。この場合、コミュニケーション提供システム100は、そのSNSより取得した第1の利用者204に関する情報を、そのままデータベースにすることができる。あるいは、コミュニケーション提供システム100は、取得した情報の属性や内容に応じて、第1の利用者204に関する情報を、別の情報に変換してデータベースに蓄積してもよい。
例えば、そのSNSにおける第1の利用者204が別の利用者からの質問に対して回答したことを表わす情報が取得されると、別の利用者からの質問とそれに対する第1の利用者204の回答とを互いに関連付けてデータベースに蓄積することができる。この場合、データベースは、複数の領域(サブデータベース、あるいはテーブルなど)により構成されており、(1)質問が蓄積される領域および(2)回答が蓄積される領域を含むことができる。したがって、質問が蓄積される領域には、別の利用者からの質問が蓄積され、回答が蓄積される領域には、第1の利用者204の回答が蓄積される。また、別の利用者からの質問と第1の利用者204の回答とは互いに関連付けられ、例えば、第3の領域に関連付けのための情報が格納される。例えば、質問に対する主キーと回答に関する主キーとの組が第3の領域に格納される。
なお、コミュニケーション提供システム100は、SNS特定情報により特定されるSNSから第1の利用者204に関する全ての情報が取得されデータベースに蓄積されていない場合には、データベースに蓄積された情報の、第1の利用者204に関する全ての情報の比率を第1の利用者204に提示してもよい。これにより、第1の利用者204は、情報の蓄積の程度を知ることができ、例えば、複数の利用者202のいずれかからの質問に対して、コミュニケーション提供システム100が第1の利用者204に代わって回答を行うか否かを決定することができる。また、このような情報の蓄積の程度を複数の利用者202に提示することにより、質問に対する回答の適切さを予想することも可能となる。
例えば、図1Dに示されるように、データベースに蓄積された情報の、第1の利用者204に関する全ての情報の比率を円グラフ6として表示し、60%の情報がデータベースに蓄積された場合には、「あなたの60%になりました。」と表示される。第1の利用者204が、60%以上であればよいと考えれば、「公開」のボタン7を押す。これにより、コミュニケーション提供システム100は、データベースに蓄積された情報を用いて、他のユーザからの質問に回答を行う。
また第1の利用者204が60%では不満であると考えれば、その後、全て(100%)の情報がデータベースに蓄積され、例えば図1Eに示すように「私はあなたになり切りました」というメッセージが表示される。第1の利用者204がこれで満足であれば、「公開」のボタン8を押す。これにより、コミュニケーション提供システム100は、データベースに蓄積された情報を用いて、他のユーザからの質問に回答を行う。
なお、第1の利用者204は、コミュニケーション提供システム100に試みの質問をいくつか行うことが可能になっていてもよい。いくつかの試みの質問に対する回答を見て、「公開」のボタン7および8を押すようになっていてもよい。
SNSによって提供されるソーシャルデータであっても、利用者のプライバシーは確保されるべきである。本実施形態に係るコミュニケーション提供システム100は、それぞれのSNS300で利用者が個別に設定している情報を反映することが可能となっている。例えば、あるSNS300を利用する利用者が、個人プロフィールは非公開とし、SNSに投稿するメッセージは公開すると設定している場合、さらにはメッセージ毎に公開又は非公開、公開の範囲が設定されている場合、コミュニケーション提供システム100はその設定を引き継ぐことができる。
したがって、コミュニケーション提供システム100は、第1の利用者204に関する情報を取得してデータベースに蓄積する場合、その情報の開示の範囲もデータベースに蓄積することになる。例えば、図1Fに示すように、SNS6(301)における利用者207との1対1のメッセージの交換301−1であれば、このメッセージの交換301−1による質問と回答は、利用者207に対してのみ開示される。言い換えると、利用者207以外の利用者Aがコミュニケーション提供システム100を用いて行った質問が、第1の利用者204が利用者207との1対1のメッセージの交換においてのみ出現したのならば、その質問に対する回答は、利用者Aには提供されないようになる。
第1の利用者204がSNS6における特定のグループにおいてのみ回答した回答についても、その特定のグループに属している利用者以外が質問を行っても、その回答は提供されない。例えば、図1Fに示すように、SNS6において、第1の利用者204が、グループ301−2において質問を受けて、回答した場合、その回答は、グループ3010−2に属している利用者208に開示される。
一方、第1の利用者204が、SNSにおいて、だれでも見られる状態で質問に対して回答などを行った場合には、どの利用者がその質問を行っても、その回答がコミュニケーション提供システム100から提供される。例えば、第1の利用者204が、SNS6(301)に属しているどの利用者にも閲覧可能な状態(301−3)下において、質問に回答すると、第1の利用者204とは、特別な関係がなく、単に同じSNS6に属している利用者209から同様の質問をうけると、その回答が提供される。
本実施形態において、コミュニケーション提供システム100からサービスが提供される複数の利用者202は、同時に一つ又は複数のSNS300の利用者であることが好ましい。コミュニケーション提供システム100は、複数の利用者202のそれぞれのソーシャルデータを、公衆に提供されているSNS300から取得するためである。すなわち、複数の利用者202は、SNS300のコミュニティに参加していることで、コミュニケーション提供システム100を介してサービスの提供を受けることができる。
図1Aは、第2の利用者206が、コミュニケーション提供システム100を介して、第1の利用者204と対話をする態様を示す。だたし、本実施形態における特徴の一つは、第1の利用者204と第2の利用者206とは直接的にメッセージの交換をするのではなく、コミュニケーション提供システム100によって生成された仮想的な第1の利用者204bと実在する第2の利用者206とが対話する形式をとっている。これにより、同じ質問が複数回、第1の利用者204に対して行われたとしても、第1の利用者204に代わってコミュニケーション提供システム100が仮想的な第1の利用者204bとして回答を行うことができる。これにより、第1の利用者204の手間を減少させることができる。例えば、第1の利用者204が著名人である場合、多くの利用者が同じ質問を行っても、第1の利用者204には負担とならないようにすることができる。また、特殊な質問がされたとしても、そのような質問に対して第1の利用者204が過去に回答している場合には、第1の利用者204が過去の回答を探すことなく、コミュニケーション提供システム100が仮想的な第1の利用者204bとして回答を行うことができる。これによっても第1の利用者204の手間を減少させることができる。
この場合における対話の一例は、次の通りである。まず、第2の利用者206は、コミュニケーション提供システム100にアクセスし、必要ならばログインなどを行った後、対話を希望する相手(第1の利用者204b)を特定する。例えば、図1Gに示すように、質問を行なうための画面を表示させ、「ログインする」のボタン9を押し、ログインする。あるいは、匿名の利用者として質問をする場合には、「匿名」のボタン10を押す。また、対話を希望する相手を特定するために、図1Hに示すように、フィールド11に対話を希望する相手のユーザ名を入力する。あるいは、第2の利用者206のコミュニケーション提供システム100における知人の一覧を表示して、対話を希望する相手を特定することもできる。
そしてユーザ端末200から相手(第1の利用者204b)に対する質問を送信する。例えば、図1Hに示すように、フィールド12に質問を入力し、エンターキーなどを押すことにより、コミュニケーション提供システム100に質問が受け付けられる。質問を受け付けたコミュニケーション提供システム100は、それに対する適切な回答をユーザ端末200に送信する。例えば、フィールド12に「あなたは誰ですか?」という質問が入力されたとすると、図1Jに示すように、フィールド14に「私は社長です。」という回答が表示される。また、このとき、第1の利用者204の顔写真データ13が表示されるようになっていてもよい。この顔写真データ13は、後述するように、3次元データにより生成されたデータであってもよい。
このとき、コミュニケーション提供システム100が送信する回答は、第1の例として、第1の利用者204の個人ソーシャルデータに基づき生成される。第2の例として、コミュニケーション提供システム100は、個人ソーシャルデータの中から適切な回答を見つけられないとき、複数の利用者のソーシャルデータを参照して適切な回答を生成し応答する。
この場合、コンピュータシステムの特性により、第2の利用者206が質問をするために要する時間(ユーザ端末200を操作する時間)に対し、仮想的な第1の利用者204bの応答は極めて速いものとなる。そのため、複数の利用者202は、上述のように、同時多発的に仮想的な第1の利用者204bと対話をすることが可能となる。
本実施形態において、第1の利用者204の個人ソーシャルデータに基づいて生成される仮想的な第1の利用者204bは、コミュニケーション提供システム100を介して具現化されるものと考えることができる。別の観点からは、コミュニケーション提供システム100によって実行されるコンピュータプログラム又はアプリケーションプログラム上に仮想的な第1の利用者204bが存在するものとみなすこともできる。あるいは、仮想的な第1の利用者204bは、コミュニケーション提供システム100を構成するハードウェア資源と、その上で実行されるソフトウェア資源とによって具現化される存在であるとみなすこともできる。
図2は、本実施形態に係るコミュニケーション提供システム100の機能的構成を示す。コミュニケーション提供システム100は、人工知能としての機能を有する情報処理モジュール104、データベース102を含んで構成されている。
なお、図2で示すコミュニケーション提供システム100は、ハードディスク、半導体メモリ及び磁気メモリ等のメモリモジュール又はストレージデバイスによりデータベース102が実現され、中央処理装置(CPU)又はこれと同等の機能を有する演算処理回路により実現されるデバイスにより情報処理モジュール104が実現され得る。ここで、情報処理モジュールとは、ハードウェア資源、又は、ハードウェア資源とソフトウェア資源により実現される機能ブロックともみなすことができ、情報処理部又は情報処理手段と呼ばれる場合もある。以下、本明細書でモジュールと標記されるものについては同様である。
ここで、人工知能とは、推論、判断など知的な機能をハードウェア資源及びソフトウェア資源を使って実現されるものであり、知識としてのデータを記憶するデータベースを含む概念として認識されてもよい。また、人工知能には学習する機能があり、それにより過去の情報(データ)から将来を予測する能力を有していてもよい。本実施形態においても、人工知能としての機能を有する情報処理モジュール104とは、少なくとも上記のように通常の人工知能としての機能を有するものを含むものとする。
データベース102は、少なくともソーシャルデータを記憶する領域を有している。図2では、データベース102に、SNS300から取得されるソーシャルデータを記憶する第1のデータベース102a、第2のデータベース102bが含まれている態様を示す。また、第3のデータベース102cは、同様にソーシャルデータを含むようにしてもよいし、コミュニケーションで使用される単語、語彙、定型文が予め記憶されていてもよい。
第1のデータベース102a、第2のデータベース102b及び第3のデータベース102cは、質問と回答(または、問いかけと応答)といったように、ソーシャルデータに含まれる対話の内容を関連付けられて記憶されている。また、個人のツイート(つぶやき)のように一方的に発信されるソーシャルデータが含まれていてもよい。
一般的には、ツイート(つぶやき)は質問に対する回答ではない場合が多い。この場合には、ツイート(つぶやき)の構文解析などを行い、主語、目的語、場所や時間、態様を表わす副詞句などに分解し、主語、目的語、場所や時間、態様を表わす副詞句などを尋ねる質問とそれに対する回答とを生成して、データベースに第1の利用者204に関する情報を蓄積してもよい。例えば、第1の利用者204が「私の妹が、昨日、自動車を購入する契約をしました。」とつぶやきを行ったとする。このとき、主語は、「私の妹」、目的語は、「自動車」および「契約」、時間を表わす副詞句は、「昨日」となる。そこで、「誰がしたのですか?」という質問を生成し「私の妹です。」という回答を生成し、「いつしたのですか?」という質問を生成し、「昨日です。」という回答を生成し、「何を購入する契約をしたのですか?」という質問を生成し「自動車です。」という回答を生成し、「何をしたのですか?」という質問を生成し「自動車を購入する契約です。」という回答を生成し、それぞれをデータベースに蓄積することができる。
類似データベース106は、類似する質問を一つのクループとし、そのグループに対する回答が関連付けられて記憶されている。類似データベース106は、前述の第1乃至第3のデータベースに対応して、第1の類似データベース106a、第2の類似データベース106b、第3の類似データベース106cに分割されていてもよい。
人工知能としての機能を有する情報処理モジュール104は、データベース102及び類似データベース106と連携して人工知能としての機能を発揮する外、メッセージ(回答情報等)の編集機能、メッセージ(回答情報等)の評価機能、評価結果の通知機能、利用者の音声を再現するための音素生成機能、新しい質問を生成する質問生成機能、利用者の三次元映像を生成する三次元映像化機能を含んでいる。
コミュニケーション提供システム100は、複数の利用者(図2で例示する、ユーザ端末202a、202b)と双方向に通信可能な状態に置かれている。別言すれば、ユーザ端末202a、202bはコミュニケーション提供システム100及びSNS300と通信可能であり、一方、コミュニケーション提供システム100から見れば複数のユーザ端末202a、202bと通信可能であり、SNS300からソーシャルデータを入手可能な状態に置かれている。
コミュニケーション提供システム100は、第1の利用者204に対する仮想的な第1の利用者204bをシステム上に生成し、複数の他の利用者と逐次的又は同時多発的に会話をすることが可能である。この場合、仮想的な第1の利用者204bは、アクセスしてくる全ての利用者と平等に会話をすることが可能である。一方、第1の利用者204にとっては、複数の第2の利用者202の中に、親密度合(家族、友人関係)や組織的な関係(同一法人又はグループに属するか否か)等によって、回答の範囲を制限したいという要求がある。すなわち、第1の利用者204は、第2の利用者206との関係において、質問に対して回答を留保したい場合もある。
本実施形態に係るコミュニケーション提供システム100は、第1の利用者204が複数の利用者202に対して、仮想的な第1の利用者204bによって自動的に回答をしても良いか否かの設定をしておく機能を有している。図1Kは、第1の利用者204が操作するユーザ端末の画面表示の一例を示す。図1Kで示す画面表示は、第1の利用者204がコミュニケーション提供システム100を介して提供されるサービスを受けるために登録されている利用者毎に、自動的な回答をしても良いか否かを設定する段階を示す。図1Kでは、利用者名や利用者のサムネイル画像等による利用者を識別する表示210と、回答可否の選択スイッチ211が示されている。第1の利用者204は、このような画面表示を見ながら、利用者ごとに自動的な回答可否を設定することができる。なお、このような設定は適時変更可能であり、第1の利用者204は適時回答可否の選択スイッチ211を操作して設定を変更することができる。
図1Lは、複数の第2の利用者202に対し、回答可否の設定が個別になされている場合におけるコミュニケーション提供システム100の動作を示す。例えば、第2の利用者206から質問がされた場合(S31)、その利用者の識別と自動的な回答可否の判断を行う(S32)。質問をした第2の利用者206が、第1の利用者204によって「回答可」と設定されている場合、仮想的な第1の利用者204bは回答を生成し(S33)、第2の利用者206に対して回答をする(S34)。一方、質問をした第2の利用者206が、第1の利用者204によって「回答不可」と設定されている場合(S32)、仮想的な第1の利用者204bは回答を留保することとなる。
このように、コミュニケーション提供システム100は、第1の利用者204が、複数の第2の利用者202に対し、個別に回答可否の設定をする機能を提供することができる。すなわち、コミュニケーション提供システム100は、第2の利用による質問に対し、情報処理モジュール104で回答を生成するか否かの設定をする機能を有する。それにより、仮想的な第1の利用者204bによるコミュニケーションの範囲を設定することができる。これにより、第1の利用者204にとっては、特定の利用者とのコミュニケーションを制限することができ、コミュニケーション提供システム100においては、仮想的な第1の利用者204bが複数の第2の利用者202の全てと、全ての質問に対する回答をしなくても良いので、システムの負荷を軽減することができる。
以下、コミュニケーション提供システム100が利用者の仮想的個人を生成し、当該仮想個人が他の利用者とコミュニケーションを可能とするための構成を詳細に説明する。
[データベース]
図3Aは、本発明の一実施形態に係るコミュニケーション提供システム100におけるデータベース102構成を説明する図である。図3Aで示すように、データベース102は複数の階層に分かれて構築されていてもよい。第1のデータベース102aは、各利用者に対応するデータベースであり、個人ソーシャルデータが記憶されている。この第1のデータベース102aに記憶される個人ソーシャルデータは、コミュニケーション提供システム100において、仮想的な利用者データを生成するときの基礎データとしても利用される。したがって、個人ソーシャルデータおよびそれから生成される情報は、利用者ごとにデータベースに記憶される。また、個人ソーシャルデータから生成される情報には、後述のように、個人ソーシャルデータをキーワードにより分析して得られるベクトル、個人ソーシャルデータをコンセプトにより分析して得られるベクトル、個人ソーシャルデータをタイプにより分析したベクトル、および、個人ソーシャルデータをグループにより分析したベクトルのいずれか一以上が含まれる。
第1のデータベース102aに記憶されるデータは、複数のSNS300から取得される個人ソーシャルデータを含んでいる。例えば、ある利用者がSNSに投稿したコメント、当該利用者と他の利用者との間で、SNS上で交わされたコミュニケーションの内容、当該利用者のツイート(つぶやき)などの情報が記憶されている。また、上述したように、質問と回答とを生成して、これらが記憶されているようにすることもできる。
第2のデータベース102bは、複数の利用者のソーシャルデータが記憶されている。第2のデータベース102bに記憶されるデータは、複数のSNS300から取得されるそれぞれの利用者のソーシャルデータを含んでいる。第2のデータベース102bは第1のデータベース102aと比べて、記憶されるデータ量が多くなっている。この第2のデータベース102bは、階層的には第1のデータベース102aの下位に位置している。
なお、第1のデータベース102aに記憶されているソーシャルデータの変化に基づいて、第2のデータベース102bに記憶されているデータを変更することが可能である。例えば、多数の利用者が同様の質問に対する回答の長さや文体、内容が変化することが検出された場合に、その変化に応じて第2のデータベース102bに記憶されているデータを変更することが可能である。すなわち、図3Bに示すように、第1のデータベース102aに対する傾向分析を行い、第2のデータベース102bを更新することができる。このような場合の一例としては、「あなたはどのような人ですか?」という質問に対して、従来は多数の利用者が、「私は短気な性格です。」などというように、性格を返答していたのに対して、近時は、「私は会社員です。」などというように、職業を返答するような変化が検出された場合に、この変化に応じて、第2のデータベース102bに記憶されているデータを変更し、「あなたはどのような人ですか?」という質問に対して、職業を返答するようにすることもできる。なお、このような変更を「質問に対する回答を傾向分析する」という場合がある。
第3のデータベース102cは、複数のテキストデータを記憶している。第3のデータベース102cに記憶されるデータは、予め設定された任意のテキストデータであってもよく、またはSNS上に出現するテキストの中で出現頻度の高いテキストを収集したものであってもよい。例えば、SNSにおいて交わされるチャットと呼ばれるリアルタイムコミュニケーションの中から出現頻度の高いテキストを収集したものであってもよい。
具体的に、第1のデータベース102aに記憶される第1の利用者のソーシャルデータは、チャットと呼ばれるリアルタイムコミュニケーションにおけるデータ、Twitter(登録商標)等にアップロードされたツイート、Facebook(登録商標)等にアップロードされたコメント、並びにコメントに対する他の利用者のコメント等が記憶されている。また、第2のデータベース102bに記憶される複数の利用者のソーシャルデータは、上記と同様のデータを含み、さらに、質問とそれに対する回答のテキストデータが関連付けられて記憶されていてもよい。また、第3のデータベース102cにおいても、複数のテキストデータが、質問とそれに対する回答と言う形式で関連付けられて記憶されていてもよい。
第1のデータベース102a、第2のデータベース102bに記憶されるソーシャルデータは、テキストデータであることが好ましい。しかし、このテキストデータは、SNSの利用者が作成したテキストデータのみならず、音声データ、写真データ及び映像データから生成されたテキストデータが含まれていてもよい。
例えば、音声データ及び映像データに含まれる音声データは、音声をテキスト変換してテキストデータとしてデータベースに記憶させることができる。また、利用者が写真や動画をSNSにアップデートするときは、コメントを同時に付す場合があり、またそのコメントに対する他の利用者のコメントが付けられる場合がある。また、写真や動画、音声には、撮影場所やその内容がタグとして付与される場合がある。そこで、写真データ及び映像データからテキストデータを生成するに当たっては、それに付されたタグ、コメント等のデータをテキストデータとし、データベースに記憶させることができる。また、写真データ及び映像データが取得された位置情報(国名、地名等)、日付情報をテキストデータとしてデータベースに記憶させることができる。言い換えると、音声データ、写真データおよび映像データのいずれか一以上に基づいて、テキストデータを生成し、データベースに記憶することができる。
このようなデータベース102は、図2を参照して説明したように、人工知能としての機能を有する情報処理モジュール104と連携し、または協働して動作する。第1のデータベース102aは利用者の個人ソーシャルデータが記憶されるので、この階層を用いたものは個人を反映させる人工知能として「プライベートAI」あるいは「パーソナライズド(personalized)AI」と表現することもできる。また第2のデータベースは、利用者全体のソーシャルデータが記憶されるので、この階層を使って実現されるものは「エブリワンAI」あるいは「コモンセンスAI」と表現することもできる。
[情報処理モジュール(人工知能)]
人工知能としての機能を有する情報処理モジュール104は、データベース102に記憶されているソーシャルデータを用いて仮想個人を生成し、実在の利用者とコミュニケーションを行う。人工知能としての機能を有する情報処理モジュール104は、例えば、データベース102に記憶されているテキストデータを認識し、質問に対する回答を作成又は生成する機能を有する。このとき人工知能としての機能を有する情報処理モジュール104は、データベース102に記憶されたテキストデータから、質問に対する適切な回答を推論し又は学習して決定する機能を有している。
人工知能としての機能を有する情報処理モジュール104は、仮想的な第1の利用者204bに対する第2の利用者206の質問を受け付け、それに対する回答を作成又は生成する。このとき、人工知能としての機能を有する情報処理モジュール104は、データベース102の上位の階層から順に回答を求める処理を行う。
図4は、人工知能としての機能を有する情報処理モジュール104がデータベース102を検索して質問に対する回答を作成する工程の一例をフローチャートで示す。以下、図4を参照しつつ、処理の流れを説明する。
最初に、人工知能としての機能を有する情報処理モジュール104がある質問に対する回答を作成又は生成するとき、最初に第1のデータベース102aの中から当該質問に対する適した回答を検索する(S01)。第1のデータベース102aから回答が得られれば、それは第1の利用者204の思考、思想及び感情等を最も的確に反映させたものとなる(S06)。
第1のデータベース102aの中から当該質問に対する適した回答を検索する場合には、第1のデータベース102aに蓄積された質問のうち、当該質問と文字列として一致している質問を検索し、検索された質問と関連付けられた回答を検索することができる。あるいは、第1のデータベース102aに蓄積された質問のうち、当該質問と文字列として完全一致していなくても、ある程度の表記の揺らぎを考慮して一致するかどうかを判定して検索を行うこともできる。また、第1のデータベース102aに蓄積された質問のうち、当該質問に含まれる単語数が最も大きいものを検索することもできる。この場合、単語数に加えて、単語が並ぶ順序を考慮して検索することもできる。また、第1のデータベース102aに蓄積された質問と、当該質問との意味の解析を行い、最も意味が近いものを検索することもできる。意味の解析として、例えば、所定の論理体系に基づいて、回答からの論理的な帰結を結論として導き出したり、回答が前提としている条件を導き出したりすることを含めることができる。このように、回答を検出する場合に、文字列として完全一致していない場合を含む場合には、「回答を推論して決定する」という場合がある。また、文字列として完全一致している場合には、「回答を学習して決定する」という場合がある。
人工知能としての機能を有する情報処理モジュール104は、第1のデータベース102aの中から回答を得ることができないとき(S02)、下位の階層にある第2のデータベース102bを検索する(S03)。第2のデータベース102bから得られる回答は、大多数の利用者が特定の質問に対してどのように回答しているかの傾向を知ることができ、平均的で妥当な回答を得ることができる。例えば、
「貴方は誰ですか」
という質問に対し、
「私は○○(名前)です。」
という回答が多くなされている場合、人工知能としての機能を有する情報処理モジュール104は同様の回答を、質問に対する回答として決定することができる。上記は簡単な質問の一例であるが、第2のデータベース102bに基づけば、多数の利用者の回答傾向が反映されるので、時流に沿った回答を得ることができる(S06)。
人工知能としての機能を有する情報処理モジュール104は、第2のデータベース102bで回答を見つけることができないとき(S04)、第3のデータベース102cを検索する(S05)。第3のデータベース102cには膨大な数のテキストデータが記憶されているので、その中から回答を選択することができる。そして、その選択されたものを回答とする(S06)。
[類似する質問の判断]
データベース102は、質問と質問に対する返答を関連付けて記憶している。しかし、人間社会のコミュニケーションにおける質問(問いかけ)と、それに対する返回答(返答)は画一的なものではないのが通常である。例えば、初対面の人の名前を問いかけようとする場合、「貴方は誰ですか?」と問いかけるような場合もあれば、「お名前を教えて下さい」と問いかける場合もある。
本発明の一実施形態では、このような類似の質問がなされたときに、該当する質問に対する返答を選択する仕組みが設けられている。例えば、前述の「貴方は誰ですか?」と、「お名前を教えて下さい」との質問に対しては、いずれも「私はアニーです。」という返答があっても違和感がない。この仕組みは、図2で説明したような、類似データベース106として構築されていてもよい。
図5は、類似データベース106の一例を示す。類似データベース106は、質問を記憶する質問データベース107と、返答を記憶する返答データベース108とを含んでいる。あるいは、類似データベース106の中で質問を記憶する領域と、返答を記憶する領域が設けられていてもよい。
質問データベース107には複数の質問がデータとして記憶されている。複数の質問は、類似する質問が関連付けられて一つのグループとして記憶されている。例えば、前述の「貴方は誰ですか?」と「お名前を教えて下さい」とは類似する質問として関連付けられて記憶されている。
返答データベース108は、質問に対する応答内容、すなわち複数の返答がデータとして記憶されている。例えば、前述の「私はアニーです。」という返答が記憶されている。返答データベース108の中で、返答データは特定の質問と関連付けられている。上記の例に従えば、「貴方は誰ですか?」と「お名前を教えて下さい」との質問は一つのグループとしてまとめられ、その返答として「私はアニーです。」という返答と関連付けられている。
図6Aは、類似データベース106の他の態様を示す。図6Aでは、類似データベース106が階層化されている態様を示す例えば、類似データベース106は、第1のデータベース102aに対応する第1の類似データベース106a、第2のデータベース102bに対応する第2の類似データベース106b、第3のデータベース102cに対応する第3の類似データベース106cに階層化されていてもよい。
第1の類似データベース106aは、特定の利用者ごとに、その利用者の個人ソーシャルデータに基づいて作成されている。個人ソーシャルデータに含まれるチャット等によるテキストデータや、テキスト化された会話の内容から、質問文に対応するテキストデータと、返答文に対応するテキストデータが記憶される。この場合、図5で説明したように、質問文に対応するテキストデータの内、類似する質問文データがクループ化されて質問データベースに記憶され、それに対する返答文データが返答データベースに記憶され、関連付けられている。
第2の類似データベース106bは、複数の利用者のソーシャルデータに基づいて作成されている。複数の利用者のソーシャルデータに含まれるチャット等によるテキストデータや、テキスト化された会話の内容から、質問文に対応するテキストデータと、返答文に対応するテキストデータが記憶される。第2の類似データベース106bも、図5で説明したように、質問文に対応するテキストデータの内、類似する質問文データがクループ化されて質問データベースに記憶され、それに対する返答文データが返答データベースに記憶され、関連付けられている。
なお、第1の類似データベース106aに記憶されているソーシャルデータの変化に基づいて、第2の類似データベース106bに記憶されているデータを変更することが可能である。すなわち、図6Bに示すように、第1の類似データベース106aの傾向分析を行い、その結果を用いて第2の類似データベース106bを更新することができる。例えば、「貴方は誰ですか?」と「お名前を教えて下さい」との質問それぞれに、多数の利用者が指名を回答している場合があるとする。この場合、多数の利用者について、第1の類似データベース106aにおいて、「貴方は誰ですか?」と「お名前を教えて下さい」とが類似した質問であることが検出された場合に、第2の類似データベース106bにおいても、「貴方は誰ですか?」と「お名前を教えて下さい」との質問の両方を類似した質問とするように、第2の類似データベース106bを更新することができる。
第3の類似データベース106cは、複数のテキストデータを記憶している。複数のテキストデータは予め用意された質問文と、それに対する返答文のテキストデータであってもよい。これらのテキストデータは、SNS上に出現するテキストデータの中で出現頻度の高いテキストデータを収集したものであってもよい。第3の類似データベース106cも、図5で説明したように、質問文に対応するテキストデータの内、類似する質問文データがクループ化されて質問データベースに記憶され、それに対する返答文データが返答データベースに記憶され、関連付けられている。
このように、類似データベース106は、第1の利用者のソーシャルデータの中から質問と回答の内容を類型化したデータが記憶される第1の類似データベースと、複数の利用者のソーシャルデータの中から質問と回答の内容を類型化したデータが記憶される第2の類似データベースと、テキストデータの中から質問と回答の内容を類型化したデータが記憶される第3の類似データベースとに階層化されていることが好ましい。
本実施形態によれば、複数の質問に対し、同一の返答でよいと判断されるものは、質問と返答の組み合わせとして関連付けられている。このような処置により、質問とそれに対する返答の組み合わせを全通り記憶させる必要がなく、記憶容量を節約することができる。また、質問に対する返答にすばやくアクセスすることができる。
さらに、本実施形態に係るコミュニケーション提供システムでは、人工知能としての機能を有する情報処理モジュール104が、第2のデータベース102bを参照して、多くの利用者からの回答に、同一の内容が多いと判断される場合には、その回答に対する質問事項を自動的に類似データベース106に追加し、更新する機能を有していてもよい。このように、複数の利用者のソーシャルデータを参照して類似データベースを更新することにより、類似と判断される質問と回答の組み合わせはより的確に、かつ正確になり、コミュニケーションの精度を高めることができる。
[音素の生成]
本実施形態に係るコミュニケーション提供システムは、図1Aで示す態様において、第2の利用者206が音声で話しかけることでその音声を認識し、第1の利用者204の本人の音声(又は、擬似的な本人の音声)で返答する機能を有していてもよい。あるいは、第2の利用者206が文字情報などにより非音声的に質問をした場合に、第1の利用者204の本人の音声(又は、擬似的な本人の音声)で返答する機能を有していてもよい。このような音声による返答の方式としては、あらかじめ第1の利用者204の本人の音声を数多く録音しておき、それを用いて返答文を音声データとして作成する方式がとり得る。しかしながら、このような方式は、利用者本人に予め多量の音声データの入力を強いることになり、全ての利用者に適用することは好ましくなく、また利用者の利便性を損なうこととなる。
そこで本実施形態に係るコミュニケーション提供システム100おいては、SNSを介して行われる利用者の音声によるコミュニケーションのデータを随時収録し、それに基づいて音素データを作成する。例えば、利用者が音声によるコミュニケーションの中で話している言葉を取り出し、複数の単語のセットを作成する。
そしてこの単語のセットを、音素を作成するデータとして記憶する。音素の作り方は、まず利用者の属性(例えば、性別、年齢等)に合わせて、予め用意された音声データの特徴(波形)と、実際の利用者の音声波形とを比較する。そして、利用者の音声の波形に近づくように、予め用意された音声データの波形を調整する。調整された音声データを利用者の音素データとして用いる。
あるいは、あらかじめ第1の利用者204の本人の音声を数多く録音しておき、それを用いて返答文を音声データとして作成する方式が用いられる場合には、次のようにすることも可能である。すなわち、あらかじめ第1の利用者204の本人の音声を数多く録音する場合、あらかじめ定められた文を第1の利用者204に読ませて音声データを取得するとする。このとき、SNSを介して行われる利用者の音声によるコミュニケーションのデータを随時収録し、第1の利用者204の発した音声の認識を行う。そして、あらかじめ定められた文やその一部を構成する単語の部分の認識がされた場合、その認識された部分の音声データを取得して記憶する。もし、この処理を繰り返し、取得して記憶された音声データを適切に連接することにより、あらかじめ定められた文全体の音声データが得られる場合には、連接した音声データを登録する。これにより、あらかじめ第1の利用者204の本人の音声を数多く録音して、音声データを作成する方式が用いられていても、第1の利用者204に負担をかけることなく、第1の利用者204の本人の音声を数多く録音した音声データを取得することができる。
このような音素データの作成は、人工知能としての機能を有する情報処理モジュール104とデータベース102によって行われても良いし、音素を作成する外部のサーバと連携して実行されてもよい。
人工知能としての機能を有する情報処理モジュール104では、第2の利用者206が音声による質問をした場合に、返答文のテキストデータを、上記のようにして作成された音素データを用いて音声データを作成する。そして、作成された音声データを返答文として、第2の利用者206に送信する。
このように、SNSを介して行われる会話の音声データを取得して、各利用者に会わせた音素データを作成することで、利用者に特別な負荷を与えることなく、コミュニケーション提供システム100が擬似的であっても、利用者本人に近い音声データを作成し、音声コミュニケーションを成立させることができる。
[回答の評価]
本実施形態に係るコミュニケーション提供システムは、第2の利用者206が、コミュニケーション提供システム100から送信された回答の内容を評価する評価モジュールを有することができる。回答の評価は、第2の利用者206のユーザ端末200を操作することによって行うことができる。ユーザ端末200に、回答内容を画面表示するとともに、評価を行うためのアイコン(またはボタン)を表示させ、第2の利用者206はその画面表示に従って操作をすることにより、評価を実行することができる。評価用の画面は、回答のメッセージと共に、「Like」、「Dislike」を示すアイコン(またはボタン)(図1Jのボタン15および16)を表示させることで構築することができる。また、評価は2者択一式ではなく、利用者が点数を付ける形式のものであってもよい。
図7は、第2の利用者206が仮想の第1の利用者204bに対して行った質問に対して、コミュニケーション提供システム100から回答された回答を評価する態様を説明する図である。
図7において、第2の利用者206(A氏、B氏、C氏の何れか)が、コミュニケーション提供システム100上に生成される仮想の第1の利用者204bとコミュニケーションを図るため、ある質問をした場合が示されている(図中の左側)。第2の利用者206(A氏、B氏、C氏の何れか)は、コミュニケーション提供システム100から提供された回答を評価する。例えば、A氏の場合であれば「Dislike」と評価し、B氏やC氏の場合であれば「Like」と評価している(図中の略中央)。
人工知能としての機能を有する情報処理モジュール104は、評価モジュールに入力された評価情報を返答文毎に集計し、評価データとして蓄積することができる。例えば、評価データはポイント制として、返答文データに対等付けて記憶するようにしてもよい。人工知能としての機能を有する情報処理モジュール104は、評価値に基づいて、質問に対する応答時に、評価値の高い応答データが優先して選択されるように序列化をすることができる。
また、第2の利用者206が、ある返答内容について低い評価を与えた場合、その情報を第1の利用者204に通知するようにしてもよい。通知を受けた第1の利用者204は、返答内容を編集し、返答文を更新することができる。
[質問に対する回答の編集]
本実施形態に係るコミュニケーション提供システムは、コミュニケーション提供システム100が作成した返答文を、第1の利用者204が自ら編集する編集モジュールを有する。例えば、
「貴方は誰ですか」又は「お名前を教えて下さい」
という質問に対し、
「私は○○(名前)です。」
と返答するように、人工知能としての機能を有する情報処理モジュール104は学習されているとする。しかし、利用者によっては、このように導き出された返答内容では適切でないと考える場合がある。例えば、上記の質問に対して、
「私は○○会社の代表取締役です。」
と答えることが適切であると考える場合がある。
また、第1の利用者204は、図7で示すように、応答内容に対して低い評価の通知を受ける場合がある(図中の左側)。その場合、第1の利用者204は、返答内容を修正し、編集したいと考える場合がある。
本実施形態に係るコミュニケーション提供システム100は、このような場合、利用者が、人工知能としての機能を有する情報処理モジュール104が作成した応答文と異なる応答文を設定したいとき、個別に応答文を編集モジュールの機能により編集することができる。
応答内容の編集の方式としては、利用者が応答内容のテキストデータを自己のユーザ端末200から入力し、内容を更新モジュールにより更新するようにしてもよい。また、好ましい態様としては、利用者が、人工知能としての機能を有する情報処理モジュール104と対話して学習させてもよい。
例えば、第1の利用者204が、ユーザ端末200を使ってコミュニケーション提供システム100にアクセスし、コミュニケーション提供システム100上に作成された擬似的な第1の利用者204に、例えば、
「お名前を教えて下さい」
と問いかける。人工知能としての機能を有する情報処理モジュール104は、予め用意されている回答として、
「私は、○○(名前)です。」
と応答する。第1の利用者204は、この応答内容に問題ないと判断することができる。この場合、第1の利用者204は編集機能を使用しないで済む。次に、別の質問として、「貴方は誰ですか」
という問いかけに対し、人工知能としての機能を有する情報処理モジュール104は、予め用意されている回答として、
「私は、○○(名前)です。」
という応答がなされると、第1の利用者204は、この応答は適切ではないと判断し、編集機能を使用する。例えば、ユーザ端末200の画面表示に従ってアイコンを操作し、編集モードにする。そして、「私は、○○(名前)です。」という応答内容を、「私は○○会社の代表取締役です。」という応答内容に設定する。これにより、「貴方は誰ですか」という問いかけに対しては、「私は○○会社の代表取締役です。」と回答するように設定することができる。
この場合、「お名前を教えて下さい」と「貴方は誰ですか」が、図5で示す類似データベース106において、同じ類似グループに登録されているとき、この類似データベース106の内容を更新する。例えば、「お名前を教えて下さい」に対しては「私は、○○(名前)です。」が回答されるようにし、「貴方は誰ですか」に対しては「私は○○会社の代表取締役です。」と回答されるように、別のグループとして登録し直すことができる。
図8Aは、第2の利用者206による質問と回答の評価と、第1の利用者204が編集を行う態様を説明するフローチャートを示す。
図8Aにおいて、第2の利用者206は、コミュニケーション提供システム100の存在する仮想の第1の利用者204bにアクセスし、ある質問(問いかけ)をする(S11)。コミュニケーション提供システム100は質問に対する回答を生成し(S12)、第2の利用者206へその回答を送信する(S13)。そして、第2の利用者206は、得られた回答を評価する(S14)。
コミュニケーション提供システム100は評価値を集計する(S15)。評価値が通常又は高いもの、若しくは一定レベルより高い評価値のものは、その回答は好ましい回答であるとして、重み付けをするようにしてもよい(S16,S17)。この場合、重み付けされた回答は、次回の検索のときに選択される確率が高くなるようにされていてもよい。
また、回答の評価が低かったものは、その旨を第1の利用者204に通知する(S16,S18)。通知を受けた第1の利用者204は(S19)、好ましい回答となるように、回答の内容を編集する(S20)。コミュニケーション提供システム100は、編集された回答を受信したとき、データベースに記録されている該当する回答を修正し、更新する(S21)。第1の利用者204は、回答の内容を修正する必要がないと判断した場合には、そのままにしておくこともできる。
なお、図8Aでは、第2の利用者206が質問をし、第1の利用者204が質問に対する回答を編集するという対立関係で示す。しかし、本発明の一実施形態はこれに限定されず、第1の利用者204が、コミュニケーション提供システム100に表れる仮想の第1の利用者204bと会話をし、自ら質問をして、自ら評価及び編集をするという処理を行うことができる。このような処理により、第1の利用者204は、質問に対する回答の内容を知ることができ、また回答を評価し、回答を編集して好ましい回答が得られるようにすることができる。すなわち、人工知能としての機能を有する情報処理モジュール104を学習させることができる。
このように本実施形態に係るコミュニケーション提供システム100は、質問と応答の関連付けられたデータを、利用者が編集して、新たな応答文を作成することができる。この場合において、利用者は、コミュニケーション提供システム100上に生成される擬似的な自己と対話をしながら、質問に対する適切な応答をするように人工知能機能を学習させることができる。
この場合において、第1の利用者204は、コミュニケーション提供システム100上に生成される仮想的な第1の利用者204bと対話をしながら、質問に対する回答を編集し、また人工知能としての機能を有する情報処理モジュール104に学習させることができる。
[回答候補の表示と選択]
図8Bは、コミュニケーション提供システム100が、質問に対する回答の候補を生成し、利用者がこれを選択する態様を示す。コミュニケーション提供システム100は、個人ソーシャルデータが記憶された第1のデータベース102aに基づいて、質問に対する回答の候補を生成する。このとき、人工知能としての機能を有する第1の情報処理モジュール104aは、異なるロジックに基づいて複数の回答の候補を生成する機能を有する。人工知能としての機能を有する第1の情報処理モジュール104aは、第1の利用者の個人ソーシャルデータの中から、近時の会話の内容に重み付けをして回答の候補を生成し、別のロジックとしては全データの中から出現頻度の高い会話の内容に基づいて回答候補を作成する。例えば、好きな食べ物の関する質問に対し、最近食べて美味しかった食べ物を回答するロジックと、第1の利用者が昔から好きであった食べ物を回答するロジックとがある。
また、人工知能としての機能を有する第2の情報処理モジュール104bは、第1の情報処理モジュール104aが第1のデータベース102aの中に適切な答えを見つけられない場合、第2のデータベース102bに記憶されているデータに基づいて回答の候補を作成する。第2のデータベース102bには、利用者全体のソーシャルデータが記憶されていることの他、例えば、インターネット上にある様々な情報をクローリングして収集して記憶されている。人工知能としての機能を有する第2の情報処理モジュール104bが生成する質問に対する回答は、利用者個人の個性を反映した回答ではなく、社会通念上一般化された回答が生成される。例えば、国際試合で優勝した自国の選手に関する質問に対して、喜ばしいという回答が生成される。
人工知能としての機能を有する情報処理モジュール104によって生成された回答の候補は、第1の利用者の端末204aに出力される。例えば、人工知能としての機能を有する第1の情報処理モジュール104aは7通りの回答の候補を生成し、第1の利用者の端末204aに回答の候補を出力する。図8Bは、第1の利用者の端末204aに回答A1〜A7が表示される態様を示す。第1の利用者の端末204aには、人工知能としての機能を有する情報処理モジュール104によって生成された回答の候補が、優先度の高い順(最も的確であると判断される回答の順)にA1〜A7の回答候補が表示される。第1の利用者は、この回答A1〜A7を参照して、自己の判断で回答の順番を変更することができる。図8Bでは、回答候補A1とA3の順番を入れ替えている。
第1の利用者が変更した、回答候補の順は、人工知能としての機能を有する情報処理モジュール104に反映される。その結果、次回同じ質問がされた場合には、A3、A2、A1の順に回答の候補が生成される。この結果は、人工知能としての機能を有する情報処理モジュール104によって生成される擬似的な第1の利用者204bの回答として利用される。このように、人工知能としての機能を有する情報処理モジュール104が、質問に対する回答の候補を複数生成し、第1の利用者がこの回答候補を選択することで、擬似的な第1の利用者204bの回答をより適切なものとすることができる。
このような回答候補の編集機能は、前述の編集モジュールの機能により回答候補を編集し、更新モジュールの機能により、編集モジュールで編集された内容に基づいて質問に対する回答候補を更新することができる。
[ユーザ写真の三次元化]
本実施形態に係るコミュニケーション提供システム100は、利用者の姿を画像データとして取得し、三次元の画像データに変換してユーザ端末に表示させることができる。例えば、図1Aで示す構成において、第2の利用者206が、コミュニケーション提供システム100上に生成される仮想の第1の利用者と対話をするとき、ユーザ端末200に第1の利用者の映像を表示させることができる。
利用者の画像データは、ユーザ端末200の撮像機能を使って取得することができる。例えば、利用者は、ユーザ端末200を使って自己の写真を撮影し、コミュニケーション提供システム100に、その画像データをアップロードする。あるいは、利用者がSNSなどにおいて、その利用者を撮影して他の利用者とメッセージを交換した情報が記録されている場合には、その撮影した情報を用いて、画像データを抽出することもできる。これにより、利用者の最新の画像データを取得することができ、利用者の最新の画像データに基づいて、ユーザ写真の三次元化を実現することができる。
コミュニケーション提供システム100は、二次元の写真データから、そこに写っている人物の3次元形状を推測し、また計算して3次元画像データを生成することができる。その方法として、例えば、物体の肌理の密度分布などから奥行き情報を求める方法や、物体表面での光の反射の強さから法線方向を計算する方法によって、三次元の画像データを作成する。
利用者の3次元画像データは、上述したように、適宜更新するようにしてもよい。別の構成としては、例えば、第1のデータベース102aに収録された、特定の利用者の個人ソーシャルデータの中から画像データを検索し、顔認識の機能を使って利用者の写っている画像データを特定する。そして、利用者の写っている画像データの中から、最新のデータを選択し、そのデータに基づいて利用者の3次元画像データを更新する構成も提供することができる。
このように、コミュニケーション提供システム100上に存在する仮想個人と対話をするときに、相手方の映像を三次元画像でユーザ端末に表示させることで、コミュニケーションに実体感を持たせることができる。この場合において、仮想個人の三次元映像が、より直近のデータに更新されることで、話し相手の姿がより具体的なものとなり、擬似的なコミュニケーションを介してより親密感を高めることができる。
[質問の自動生成]
本実施形態のコミュニケーション提供システム100は、データベース102に記憶されているソーシャルデータを使って、質問文を自動的に生成し、登録しておく機能を有する。
例えば、第1のデータベース102aには、第1の利用者204の個人ソーシャルデータとして、個人的な「ツイート」が多く収録されていてもよい。個人的な「ツイート」とは、例えば、「今日は東京で買い物をした。」、「渋谷で待ち合わせ中。」などである。このような個人ソーシャルデータは、問いかけに対する応答の形式を有していないものの、「ツイート」の中には、少なくとも一つの情報が含まれている。
前述の文例では、「東京」、「渋谷」といった地名に関する情報が含まれている。また、それ以外にも、食べ物、天候、服装、株価、ニュースのキーワード、人名など様々な情報を個人ソーシャルデータの中から見出すことができる。
人工知能としての機能を有する情報処理モジュール104は、このような個人ソーシャルデータのテキストデータを、名詞、動詞、形容詞等に分解し、構文解釈して得られた情報から、質問データを作成し登録しておく機能を有する。人工知能としての機能を有する情報処理モジュール104は、第2のデータベース102bに登録されている複数の利用者のソーシャルデータを参照し、どのような会話がなされているのかを学習する。例えば、「どこに行きましたか?」という質問に対して、「機能は○○(地名)へ行きました。」というような会話が数多くなされている場合、地名に対する質問文として「どこに行きましたか?」という質問文を生成し、第1のデータベース102に登録する。複数の質問文が作成可能な場合には、類似データベース106に登録することも可能である。
このように、人工知能としての機能を有する情報処理モジュール104が、個人ソーシャルデータから自動的に設問文を作成することで、対話能力を高めることができる。
[人間らしさの表現方法]
質問に対する返答には揺らぎを与えるようにしてもよい。例えば、
「お元気ですか?」
という質問に対し、
「元気です。あなたはいかがですか?」
という返答が設定されていたとしても、必ずしもこの返答をしないようにしてもよい。例えば、他の多くの利用者が「すごくいいよ!」と返答をしているとき、それに影響をされて同様に回答をするようにしてもよい。
この揺らぎは、利用者の性格分析から、揺らぎの発生する確率の多い人、または他の利用者に影響されにくい人、などのパラメータを当該利用者に割り当てておいてもよい。それにより、その揺らぎの反映され方により個々の利用者の性格、あるいはその利用者らしさを演出することができる。このようなパラメータは、利用者の属性として、コミュニケーション提供システムへ100の登録時に、コミュニケーション提供システムへ100に格納して、必要に応じて読み出すことができる。また、このようなパラメータや性格分析の結果は、第1のデータベース102aに蓄積された利用者の回答の時間的な変化を検出した結果をコミュニケーション提供システムへ100に格納して、必要に応じて読み出すことができる。同様に、第1の類似データベース106aに蓄積された利用者に関する情報の時間的な変化を検出した結果をコミュニケーション提供システム100に格納して、必要に応じて読み出すことができる。
[質問に対する回答の導出]
人工知能としての機能を有する情報処理モジュール104は、問いかけに対する応答を次のようにして行うことができる。
−全体的な構成−
例えば、利用者1と、利用者2とで次のような会話がなされることを想定する。ここで、T1、T2・・・は時刻を表すものとする。
利用者1:「こんにちは」[T1]
利用者2:「こんにちは」[T2]
利用者1:「ごきげんいかがですか」[T3]
利用者2:「調子いいよ、あなたは」[T4]
利用者1:「今日は素晴らしいよ」[T5]
利用者1と利用者2のこのような会話の内容をまとめると表1及び表2に示すようになる。
このような、利用者1と利用者2との間で交わされる典型的な会話の中で、例えば、利用者1の質問に対する回答は、「こんにちは」に対する「ごきげんいかがですか」であることが判る。これは、利用者1は利用者2に対し、すでに「こんにちは」と述べている文脈から理解することができる。
利用者が、ツイートなどの一方的な会話、つまり質問を受けずに答えを与えている場合もある。例えば、次のようなツイートである。
利用者1:「なんて素晴らしい試合だ」[T1]
利用者1:「コンピューティングの将来はユビキタス人工知能である」[T2]
利用者1によるこのようなツイートをまとめると表3のようになる。
質問と回答の組み合わせは過去の会話の中から得ることができる。コミュニケーション提供システム100は過去の会話を学習することができる。本実施形態に係るコミュニケーション提供システム100は、過去の会話データ(データベースに蓄積されているソーシャルデータ)を学習することで、新しい質問を生成し、応答を推論し予測することができる。図9は、質問を受けたとき、過去の会話の中からその回答を検索し、また適切な回答を予測するための構成を示す。
回答を予測するための重要な側面は、人工知能が人間の行動を模倣しなければならないところにある。質問への応答は、その質問をしている人に依存する。したがって、ある利用者がした質問に対する応答を予測するには、人工知能は、当該利用者の過去の会話データを参照し、その中から得られる優先順位の高い応答内容を予測する必要がある。
しかし、過去の会話データの中から適切な応答文を検出することができない場合、人工知能は、第1の利用者が他の利用者と交わしている会話の中から、適切な応答文を見つける必要がある。これを行う場合には、他の利用者が交わしている会話を検索することによって、他の利用者の個人情報等、機密事項が漏洩しないように注意する必要がる。
このような場合、個人情報が漏洩する危険を排除するために、人工知能は、他の利用者が交わしている会話の内容において、各回答の機密性のスコアを推定するようにする。
例えば、既に他の利用者と共有されている回答文は、機密性のスコアは低いものとなる。また、上記例文にあるような、一般的な回答文は、仮に他の利用者と共有されていないものであっても、機密性のスコアは低いものとすることができる。
利用者2から利用者1への質問に対する回答を選択するための処理の流れを図10に示す。人工知能は、最初に、過去に交わされた第1の利用者と第2の利用者との会話の中から適した回答があるかを検索する(S21)。その結果、適した回答が見つかった場合には、それを回答として選択する(S22、S26)。一方、適した回答が見つからない場合には、全利用者の会話の中から学習した回答を一つ又は複数選択する(S22、S23)。ここで得られた回答に対し、機密性のスコアを評価する(S24)。そして、機密性のスコアの低いものを選択し、回答として選択する(S25、S26)。
−回答の検索−
また、図11に示すように、質問に対する回答は、次のようにランク分けしてもよい。例えば、図11で示すように、第1の利用者と第2の利用者が過去に交わした会話の中から回答が見つけられる場合、その回答は両者の間で共有され得る「個人レベル」の回答とすることができる。また、第1の利用者が他の利用者と交わしている会話の中から、適切な応答文を見つける場合には、得られた一つ又は複数の回答について機密性のスコアを評価する。そして、機密性のスコアが低い回答を「公開レベル」の回答とすることができる。さらに、図12で示すように、複数の利用者のソーシャルデータを学習し、そこから得られた一つ又は複数の回答の機密性のスコアを評価し、スコアの低い回答を「共有レベル」の回答とすることができる。
このような利用者を数式化して表すと、次式のように表すことができる。
ここで、M
j iは、利用者iと利用者jとの会話を表すサブモデルである。
そして、全ての利用者の会話を表すパブリックサブモデルM
public iは次式で表す ことができる。
ここで、Q(i,j)は利用者jから利用者iに対してなされた質問を表し、A(i、j)は利用者iから利用者jになされた回答を示し、tは対応する時間を示す。
質問に対する回答の関係を、関数fを用いて次式のように表すことができる。
ここで、qは利用者iに対する利用者jの質問(またはクエリ)であり、Aは予測される回答である。
そして、例えば、その回答の機密性のスコアが第1の閾値より高い場合、予測される回答は個人レベルの回答となる。また、機密性のスコアが第1の閾値以下であり、その機密性のスコアが第2の閾値より低い場合は、、予測される回答は公開レベルの回答となる。そして、これらに該当しない場合は共有レベルの回答として扱うことができる。なお、機密性のスコアが第2の閾値より低いとは、機密性と対を成す概念である公開性のスコアとすることもできる。例えば、機密性のスコアをCprivateとし、公開性のスコアをCpublicとした場合、Cprivate= 1−Cpublicと定義したりすることができる。
このような回答レベルの態様は、次式で表すことができる。
ここで、C
privateは個人レベルの回答に対する機密性のスコアを与え、C
publicは公開性のスコアを与える。
質問に対する回答として最も適していると判断される回答は一つであり、次式で示すことができる。
ここで、sim(q,Qx)は、q及びtuple(Qx,Ax,tx)との間の類似性又はマッチングを示す関数である。
−文脈の統合−
質問に対する回答を予測する場合には、文脈を把握することが重要となる。同じ質問に対する回答は、会話の中でなされていた、過去の質問と回答に依拠することができる。これは、「はい」と返事をする場合のような、一般的な質問の場合に特に当てはまるものとなる。そのような質問への答えは、上記で述べた関数に当てはめることができる。文脈を統合するために、過去になされた会話における質問と回答の学習データをグループ化して適用することができる。図13は、会話における質問と回答をグループ化することにより、文脈を統合する態様を示す。クエリと、質問及び回答とのマッチングは、加重和となることが示されている。
文脈を統合するときの類似性は次式で示すことができる。
ここで、a
iは重み係数であり、Wは文脈ウィンドウに含まれているタプル数を示す。
−マッチング関数−
過去の会話から質問と回答の適合性を見つけるために、それらの間の類似性を評価する必要がある。ベクトルの集合として質問と回答を、各クエリで表すことができる。2つのベクトルの集合間の類似性は、対応するベクトル間の類似度の加重和として表すことができる。ベクトル間の類似性は、コサイン距離、ユークリッド距離、マハラノビス距離として推定することができる。
質問と回答に対する各クエリは、次式に示すように、キーワード(W)、コンセプト(C)、タイプ(T)及びグループ(G)の、各ベクトルの集合で構成される。
・キーワード
キーワードは、利用者の間で交わされるすべてのメッセージから単語を構築することによって得られる。2つのキーワードの間のベクトルの類似性は、重み付け(TF−IDF:Robertson, S. E., Walker, S., Beaulieu, M. M., Gatford, M., & Payne, A. Okapi at TREC-4. In Proceedings of the 4th Text REtrieval Conference (TREC-4), pp. 73-96, 1995])されたキーワードのコサイン距離として得ることができる。或いは、OkapiBM25(Harman, D. Ranking algorithms. In W. B. Frakes & R. Baeza-Yates (Eds.), Information retrieval: Data structures and algorithms, pp. 363-392. Englewood Cliffs, New Jersey, USA: Prentice Hall, 1992])、または情報検索において使用される任意の他のランク付け関数を用いることができる。キーワード間の類似性には意味的類似性が含まれる。それは、意味的に関連している2つのキーワードは類似していると考えられる。この意味的な関係は、WordNet(G. A. Miller, R. Beckwith, C. D. Fellbaum, D. Gross, K. Miller. WordNet: An online lexical database. Int. J. Lexicograph. 3, 4, pp. 235-244, 1990)、BabelMet(R. Navigli and S. P Ponzetto. BabelNet: The Automatic Construction, Evaluation and Application of a Wide-Coverage Multilingual Semantic Network. Artificial Intelligence, 193, Elsevier, pp. 217-250, 2012)、共出現分析(Harris Z. S. Co-occurrence and transformation in linguistic structure, Language, 33, pp. 283-340., 1957)のデータを用いて得ることができる。類似度を推定する際には、文書内におけるキーワードの順序と場所を考慮しなければならない。システム内の順序を統合する対策として場所を表すインデックスの分散を用いる。図14は、どのようなキーワードの順序が、一致を求める際に重要であるかを示している。
・コンセプト
コンセプトは、語彙の次元を圧縮することで得ることができる。潜在的意味解析(Latent Semantic Analysis)は、コンセプトの限定されたリストを提供するために用いることができる(Thomas K. Landauer, Peter W. Foltz et Darrell Laham. Introduction to Latent Semantic Analysis, Discourse Processes, vol. 25, p. 259-284, 1998)。各質問と応答は、概念空間に投影される。この投影は概念ベクトルを与える。そして、コサイン距離は、概念ベクトル間の類似度を推定することができる。
・タイプ
タイプは文法構造と評判分析の観点から、メッセージの異なるグループとして定義される。このグループには、質問、人、大体の場所、順序、ロマンチックなメッセージ、幸せなメッセージなどが含まれる。これらの分類は、手動のラベル付けされた特徴ベクトルは、文法構造であるデータ、概念やキーワードを人工知能が学習することによって得ることができる。
・グループ
全利用者のタプル(Q,A)は、回答同士のテキストの類似性に基づいてクラスタ化される。各クラスタには名前が与えられる。グループベクトルはタプル(Q,A)が属するクラスタのリストである。どちらも同じような答えを持っているので、明らかに同じグループの2つの質問は類似するものとなる。図15は、質問と回答が、その回答の類似性によってクラスタ化された態様を示し、各クラスタが一つのグループを構成する態様を示す。
・テンプレートの生成
利用可能な全てのデータを使って人工知能を学習させることができる。入力ベクトルは質問であり、出力ベクトルは回答となる。任意の質問の回答を得るために、学習された人工知能は、解答のテンプレートを推定する。データベースに記憶されている質問と共にクエリのマッチングと組み合わせることで、データベース内の回答にこのテンプレートの答えを一致させることができる。これは、質問がデータの中に見つけられないときに、回答を見つけることができるようにする上で重要である。どんな監修アルゴリズムであっても、ニューラルネットワーク、サポートベクターマシン、k−Nearest−Neighbors、ガウス混合モデルとして、この場合使用することができる。
質問と回答の間でキーワードに共起分析は、回答テンプレートのキーワードの一部に対して実施することができる。図16は、各質問を構成するベクトル(キーワード、コンセプト、タイプ)は、同等の回答ベクトルを推定する予測因子を持っている。回答テンプレートのグループは、質問テンプレートにおけるものと同等である。
以上のように、本発明の一実施形態に係るコミュニケーション提供システムは、コミュニケーション提供システムが様々なSNSからデータを取得しデータベースに蓄積すると共に、人工知能としての機能を有する情報処理モジュールが利用者の思考を学習することで、質問に対する適切な回答を提供することができる。
本発明の一実施形態に係るコミュニケーション提供システムは、複数のSNSからソーシャルデータを収集し、それを人工知能としての機能を有する情報処理モジュールが推論し学習することで、一利用者では想到し得ない思考についても提供することができる。
さらに、本発明の一実施形態によれば、コミュニケーション提供システム100によって生成される仮想の利用者を生成するデータベース(第1のデータベース102a)に、専門知識を習得させれば、当該仮想の利用者によって様々なサービスを提供することができる。そのような専門知識は、該当する利用者が利用するSNSから習得されるものであってもよい。
例えば、専門知識として、自然科学、人文学、心理学、法律、金融、工学等の各分野における専門知識の少なくとも一つを、仮想の利用者を生成するデータベースに記憶させれば、該当する分野に専門知識を仮想の利用者が使用できるようにすることができる。なお、この場合における専門知識は、書籍等により蓄積された画一的な専門知識のみでなく、ソーシャルネットワーク上で自然人が会話として使用される専門知識の情報が含まれていることが好ましい。このような会話型の専門知識に関する情報が含まれていることにより、コミュニケーション提供システム100は、質問に対する回答として、さまざまな専門知識を有益に活用することができる。
なお、このような専門知識は、例えば、第1の利用者が希望する場合、人工知能によって生成される擬似的な第1の利用者の知識として身につけることができる。その場合、擬似的な第1の利用者は、単に特定の専門知識を取得するのみでなく、当該第1の利用者の個性を加味する形で活用することができる。例えば、第1の利用者が医学分野の知識を有する場合、その知性は擬似的な第1の利用者も医学分野の専門知識を有し、擬似的な第1の利用者がさらに専門知識として法律分野の専門知識を取得すれば、法医学の分野で能力を発揮することが可能となる。
この場合、第1のデータベース102aに記憶される専門知識は、質問と回答(すなわちQ&A)形式で記憶されていてもよい。第1のデータベース102に記憶されるソーシャルデータ(知識)は、適時更新することができ、データは消失することがないので、知識量を増やして行くことができる。
さらに、このような専門知識が記憶される第1のデータベース102aに、全利用者のソーシャルデータが記憶される第2のデータベース102bの情報を反映させ、学習効果を高めることで、より適切な回答を出力させることができる。
専門知識としては、司法、行政、医療、環境、経済など、利用者の属性に会わせた様々な分野の知識に対応することができる。すなわち、本発明の一実施形態によれば、利用者の属性に合わせて、高い専門知識を有する仮想個人をコミュニケーション提供システム上に出現させ、他の利用者にサービスを提供することができる。
[グループによる知識の共有:グループAI]
図2は、個人ソーシャルデータに基づき構成される、人工知能としての機能を有する情報処理モジュール(第1の情報処理モジュール)と、利用者全体のソーシャルデータに基づき構成される、人工知能としての機能を有する情報処理モジュール(第2の情報処理モジュール)と、の関係を示している。本発明は、さらに複数の第1の情報処理モジュールが集合して、情報又は知識レベルを共有する、人工知能としての機能を有する情報処理モジュール(第3の情報処理モジュール)を有することができる。
図17は、個人ソーシャルデータに基づき構成される、人工知能としての機能を有する第1の情報処理モジュール104aが複数存在する態様を示す(第1の情報処理モジュール104a_1〜104a_n(nは2以上の整数))。なお、第1の情報処理モジュール104aは、図2を参照して説明したように、「プライベートAI」、「パーソナライズドAI」と呼ばれる擬似的な利用者を生成するものである。一方、第1の情報処理モジュール104aと連係する第2の情報処理モジュール104bは、利用者全体のソーシャルデータや、ソーシャルネットワーク上にある様々な情報がクローリングされて得られた知識の融合体に基づく人工知能であり「エブリワンAI」、「コモンセンスAI」若しくは「モラールAI」と呼ばれるものである。
図17は、複数の第1の情報処理モジュール104a_1〜104a_nが、一つの集合110を形成していることを示す。そして、この集合110に対して、知識及び情報を共有する、人工知能としての機能を有する第3の情報処理モジュール112が接続されている。第3の情報処理モジュール112は、複数の第1の情報処理モジュール104a_1〜104a_nにより生成される共通の知識レベルによって生成される人工知能である。すなわち、第3の情報処理モジュール112は、複数の第1の情報処理モジュール104a_1〜104a_nにより生成される複数の擬似的な利用者の全ての知識と個性及び人格を備えた擬似的な利用者であるといえる。このような第3の情報処理モジュール112は「グループAI」と呼ぶことができる。
第3の情報処理モジュール104cは、複数の第1の情報処理モジュール104a_1〜104a_nにより生成される擬似的な各利用者の知識および個性を発揮することができる。別の観点から見れば、第3の情報処理モジュール112により生成される擬似的な利用者は、第1の情報処理モジュール104aによって生成される擬似的な利用者が個人レベルであるのに対し、複数の個人が集合して生成されるものであるので、法人的な性格を有しているともいえる。
複数の第1の情報処理モジュール104a_1〜104a_nは、第3の情報処理モジュール112と会話をすることができる。これにより、複数の第1の情報処理モジュール104a_1〜104a_nは、お互いの情報や知識を共有することができる。第3の情報処理モジュール112は、第1の情報処理モジュール104a_1〜104a_nにより生成される擬似的な利用者の一人が、このグループから離脱したとしても、その脱離した利用者の知識や個性を保持することができるので、メンバーの離脱による知能の欠損を防止することができる。例えば、人工知能としての機能を有する第3の情報処理モジュール112が、ある法人の一部の機能として運用されるとき、法人に属する構成員(自然人)が途中で離脱しても、離脱したメンバーのスキルをその法人に留めておくことができる。
第3の情報処理モジュール104cは、複数の第1の情報処理モジュール104a_1〜104a_nから、新たな情報を取得することが可能であり、それによって人工知能が成長する。すなわち、第1の情報処理モジュール104a_1〜104a_nによって生成される擬似的な各個人のスキルが向上することにより、そのスキルは第3の情報処理モジュール112によって生成される擬似的な利用者のスキルとして反映される。
なお、図17で示すように、第3の情報処理モジュール112は、第2の情報処理モジュール104bと電気通信回線を通してアクセス可能な状態に置かれていてもよい。これにより、第3の情報処理モジュール112は、幅広く情報を収集することができる。
図17を参照して説明したように、本発明によれば、人工知能によって生成される複数の疑似的な利用者の集合により、その集合を形成する複数の利用者の知識、知能、個性の全てを備えた擬似的な利用者を形成し、活用することができる。