以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
<第1の実施の形態>
<ネットワークシステムの全体構成と動作概要>
まず、本実施の形態にかかるネットワークシステム1の全体構成と動作概要について説明する。図1は、本実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示すイメージ図である。図2は、本実施の形態にかかるユーザ端末100を中心とした機能構成と動作概要とを示すイメージ図である。
まず、図1および図2を参照して、本実施の形態にかかるネットワークシステム1の全体構成について説明する。本実施の形態にかかるネットワークシステム1は、主に、複数のユーザのそれぞれが使用するユーザ端末100A,100B・・・と、サービスを提供するサーバ200とを含む。
なお、ユーザ端末100A,100B・・・は、スマートフォンや、タブレットや、パーソナルコンピュータや、ゲーム機などによって実現され、ユーザの命令によって、インターネットやクラウドを介して各種の情報を検索したりダウンロードしたりすることができる。以下では、ユーザ端末100A,100B・・・を総称して、ユーザ端末100ともいう。
次に、図1および図2を参照して、本実施の形態にかかるネットワークシステム1の動作概要について説明する。まず、ユーザ端末100は、ユーザの名前や年齢や住所などの静的な個人情報を受け付けて、記憶する。
そして、ユーザ端末100は、ユーザがユーザ端末100を操作した場合や、移動した場合などに、ユーザの操作命令や移動履歴を行動情報として蓄積する(ステップS101)。そして、ユーザ端末100は、ユーザの行動情報から作成される、ユーザの好みなどを示すための特性情報と、ユーザ端末100用の公開鍵とをサーバ200に提供する(ステップS102)。
なお、ユーザAがユーザ端末100Aを操作したり、行動した場合には、ユーザ端末100AのユーザAの行動の履歴などの行動情報を特徴づける特性情報Aをサーバ200にアップロードするし、ユーザBがユーザ端末100Bを操作したり、行動した場合には、ユーザ端末100BのユーザBの行動の履歴などの行動情報を特徴づける特性情報Bをサーバ200にアップロードする。
サーバ200は、ユーザの組み合わせ毎の特性情報の関係値を計算する(ステップS103)。
ユーザ端末100Aは、定期的に、または所定の情報を検索する際に、または所定の情報をプッシュされた際などに、サーバ200に、他のユーザ端末100のユーザの行動情報を要求する(ステップS104)。サーバ200は、当該要求に応じて、ユーザの特性情報Aに近い特性情報に対応するユーザを特定する(ステップS105)。
サーバ200は、特定されたユーザのユーザ端末100Bに、ユーザ端末100Aからの公開鍵Aを渡して、特定されたユーザの行動情報を要求する(ステップS106)。ユーザ端末100Bは、ユーザBの行動情報を公開鍵Aによって暗号化したデータをサーバ200に送信する(ステップS107)。サーバ200は、暗号化されたデータをユーザ端末100Aに送信する(ステップS108)。
ユーザ端末100Aは、自身からの公開鍵で暗号化されたデータを自身の秘密鍵で復号化する。そして、ユーザ端末100Aは、ユーザの指示に基づいてインターネットやクラウドを介して情報を検索する(ステップS109)。または、ユーザ端末100Aは、外部からプッシュされた情報を受信する(ステップS109)。
このような場合に、本実施の形態においては、ユーザ端末100Aが、ユーザ端末100Aのユーザの行動情報や静的個人情報だけでなく、別のユーザの行動情報も参考にして、情報を選択したり、情報を抽出したりすることができる(ステップS110)。
より詳細には、たとえば、ユーザ端末100Aは、ユーザ端末100Aのユーザの行動情報や静的個人情報だけでなく、別のユーザの行動情報も参考にして、クラウド上のサーバなどから受信した膨大な情報からユーザ端末100Aで出力する情報を選択する。あるいは、ユーザ端末100Aは、ユーザ端末100Aのユーザの行動情報や静的個人情報だけでなく、別のユーザの行動情報をもクラウド上のサーバに提供することによって、情報を検索してもよい。すなわち、クラウド上のサーバなどのユーザ端末100Aとは別の装置が、ユーザ端末100Aのユーザのために、ユーザ端末100Aのユーザの行動情報や静的個人情報だけでなく別のユーザの行動情報に基づいて、情報を検索・選択してユーザ端末100Aに情報を送信してもよい。
なお、ユーザ端末100Aは、ユーザ端末100Aのユーザの行動情報や静的個人情報を利用せずに、別のユーザの行動情報を参考にして、クラウド上のサーバなどから受信した膨大な情報からユーザ端末100Aで出力する情報を選択してもよい。
そして最終的に、ユーザ端末100Aは、ユーザ端末100Aのユーザの行動情報や静的個人情報だけでなく別のユーザの行動情報も考慮された情報が出力される(ステップS111)。
このように、本実施の形態にかかるネットワークシステムにおいては、ユーザ自身の行動情報だけなく、他のユーザの行動情報にも基づいて、情報が選択されて出力されるため、ユーザにとって刺激的な情報が出力される可能性を従来よりも高めたり、出力された情報にユーザが飽きてしまう可能性を従来よりも低減したりすることができる。
以下、このような機能を実現するためのネットワークシステム1の具体的な構成について詳述する。
<ユーザ端末100のハードウェア構成>
次に、ネットワークシステム1を構成するユーザ端末100のハードウェア構成の一態様について説明する。なお、図3は、本実施の形態にかかるユーザ端末100のハードウェア構成を表わすブロック図である。
図3を参照して、ユーザ端末100は、主たる構成要素として、CPU(Central Processing Unit)110と、メモリ120と、ディスプレイ130と、操作部140と、通信インターフェイス160と、スピーカ170と、マイク180とを含む。
CPU110は、メモリ120に記憶されているプログラムを実行することによって、ユーザ端末100の各部を制御する。その結果、CPU110は、図1の行動情報管理部112や情報選択部114を実現する。
メモリ120は、各種のRAM(Random Access Memory)や各種のROM(Read-Only Memory)などによって実現される。メモリ120は、CPU110によって実行されるプログラムや、CPU110によるプログラムの実行により生成されたデータ、サーバ200などの他の装置から受信したデータ、操作部140を介して入力された操作履歴、ユーザの行動履歴、ユーザ端末100のユーザを特定するための情報、公開鍵、秘密鍵などを記憶する。
ディスプレイ130は、CPU110からのデータに基づいて、画像やテキストを表示する。操作部140は、ポインティングデバイスやスイッチなどから構成され、ユーザからの各種の命令をCPU110に入力する。なお、ユーザ端末100は、ディスプレイ130と操作部140とを含むタッチパネル150を有してもよい。
通信インターフェイス160は、CPU110からのデータを、ルータ、キャリア網、インターネットなどを介して、サーバ200などの他の装置に送信する。逆に、通信インターフェイス160は、インターネット、キャリア網、ルータなどを介してサーバ200などの他の装置からのデータを受信して、CPU110に受け渡す。
本実施の形態においては、CPU110は、操作履歴や行動履歴を含む行動情報から特性情報を作成して、通信インターフェイス160を介して当該特性情報と公開鍵とをサーバ200に送信する。また、CPU110は、通信インターフェイス160を介してサーバ200から暗号化された他のユーザの行動情報を受信して、秘密鍵で復号化する。CPU110は、自身の行動情報または/および他のユーザの行動情報に基づいて、通信インターフェイス160を介して取得した情報を選別して、ディスプレイ130やスピーカ170に出力させる。
より詳細には、本実施の形態においては、CPU110は、行動情報を構成する複数の操作履歴や行動履歴を予め定義されたn個のカテゴリ別にメモリ120に記録する。たとえば、各カテゴリに記録された複数の操作履歴や行動履歴の数をXi,(1≦i≦n)とし、全カテゴリの操作履歴や全行動履歴の総数をm個とした時に、行動ベクトルP(X1/m,X2/m,・・・Xn/m)を行動情報の特性情報とする。すなわち、本実施の形態においては、行動ベクトルPの要素Xi/mは、全部の行動の履歴に対する、各カテゴリに含まれる行動の履歴の割合であり、行動ベクトルPはユーザの行動の特徴を示す情報となる。
ただし、ユーザの操作履歴や行動履歴などの行動情報はこのような形態に限られず、ユーザの過去の動作などが特定できればよいものである。また、ユーザの行動情報から得られる特性情報もこのような形態には限られず、ユーザの過去の動作や性格や趣味や興味や好みなどをある程度の精度の数値またはベクトルとして表すことができればよいものである。
<サーバ200のハードウェア構成>
次に、ネットワークシステム1を構成するサーバ200のハードウェア構成の一態様について説明する。なお、図4は、本実施の形態にかかるサーバ200のハードウェア構成を表わすブロック図である。
図4を参照して、サーバ200は、主たる構成要素として、CPU210と、メモリ220と、ディスプレイ230と、操作部240と、通信インターフェイス260とを含む。
CPU210は、メモリ220に記憶されているプログラムを実行することによって、サーバ200の各部を制御する。より詳細には、CPU210は、メモリ220に格納されているプログラムを実行し、各種のデータを参照することによって、後述する各種の処理を実行する。
メモリ220は、各種のRAM、各種のROMなどによって実現される。メモリ220は、CPU210によって実行されるプログラムや、CPU210によるプログラムの実行により生成されたデータ、入力されたデータ、受信されたデータなどを記憶する。たとえば、メモリ220は、ユーザ毎の、特性情報と公開鍵とを記憶する。
たとえば、メモリ220は、ユーザの組み合わせ毎の、特性情報間の関係値、たとえば、相関係数を記憶する。なお、本実施の形態においては、CPU210は、ユーザの組み合わせ毎に、特性情報としての行動ベクトルP(X1/m,X2/m,・・・Xn/m)同士の内積を、当該行動ベクトルP(X1/m,X2/m,・・・Xn/m)同士の大きさの積で割った値を計算し、当該計算結果をユーザ間の行動の相関係数として、メモリ120に格納する。
ディスプレイ230は、CPU210からの信号に基づいて、テキストや画像を表示する。操作部240は、サービスの管理者などの命令を受け付けて、当該命令をCPU210に入力する。
通信インターフェイス260は、CPU210からのデータを、インターネット、キャリア網、ルータなどを介して、ユーザ端末100などの他の装置に送信する。逆に、通信インターフェイス260は、インターネット、キャリア網、ルータなどを介してユーザ端末100などの他の装置からのデータを受信して、CPU210に受け渡す。
<ユーザ端末100における情報処理>
次に、本実施の形態にかかるユーザ端末100またはサーバ200における情報処理について説明する。まずは、図5を参照して、本実施の形態にかかるユーザ端末100における情報選択の情報処理について説明する。図5は、本実施の形態にかかるユーザ端末100における情報選択の情報処理を示すフローチャートである。
CPU110は、情報選択部114として、何かしらのイベント発生を待っている(ステップS116)。CPU110は、何かしらのイベントを検出した場合はステップS117へ進み、検出しなかった場合は、ステップS116に戻る。何かしらのイベントとは、たとえば、プッシュ情報の通知、購入などのユーザ操作、インターネットの利用した検索・インターネットを利用しない検索などのユーザ操作によるプル情報の受信、各種センサから取得される測定値など、ユーザ端末100が検知しうる全てのイベントが該当し得る。
ステップS117では、CPU110は、発生したイベントによって取得された多くの情報の中から、ユーザ端末100のユーザの静的個人情報と行動情報と、後述する(ステップS148で取得された他のユーザの行動情報とに基づき、ユーザに提供する情報を選択して、ディスプレイ130またはスピーカ170から出力したり、メモリ120に格納したりする。
なお、ユーザへ提供する情報の選択方法は、ユーザまたは他のユーザの静的個人情報とユーザまたは他のユーザの行動情報の内容を反映した情報の選択方法であればよく、それ以上限定されるものではない。
次に、図6を参照して、本実施の形態にかかるユーザ端末100における特性情報としての行動ベクトルPの登録処理について説明する。図6は、本実施の形態にかかるユーザ端末100における特性情報としての行動ベクトルPの登録処理を示すフローチャートである。
CPU110は、行動情報管理部112として、ユーザからの操作命令やその他の行動に基づいて、行動情報を取得または作成する(ステップS121)。CPU110は、通信インターフェイス160を介して、サーバ200に行動ベクトルPと公開鍵PKと共に行動ベクトル登録メッセージを送信する(ステップS122)。CPU110は、通信インターフェイス160を介して、サーバ200からの確認メッセージを待ち受ける(ステップS123)。CPU110は、確認メッセージを受信すると(ステップS123においてYESである場合)、次のユーザからの操作命令やその他の行動を待ち受ける。
一方、確認メッセージを受信していない場合は(ステップS123においてNOである場合)、CPU110は、行動ベクトルの送信から所定の時間が経過したか否かを判断する(ステップS124)。CPU110は、所定時間が経過していない場合は(ステップS124においてNOである場合)、ステップS123からの処理を繰り返す。CPU110は、所定時間が経過している場合は(ステップS124においてYESである場合)、データを所定回数送信したか否かを判断する(ステップS125)。
データを所定回数送信していない場合(ステップS125においてNOである場合)、CPU110は、通信インターフェイス160を介して、行動ベクトルPと公開鍵PKとのデータを再送する(ステップS126)。CPU110は、ステップS123からの処理を繰り返す。
CPU110は、所定回数送信した場合(ステップS125においてYESである場合)、ディスプレイ130および/またはスピーカ170を介してエラー情報を出力する(ステップS127)。CPU110は、次のユーザからの操作命令やその他の行動を待ち受ける。
次に、図7を参照して、本実施の形態にかかるユーザ端末100における行動ベクトルの更新処理について説明する。図7は、本実施の形態にかかるユーザ端末100における行動ベクトルの更新処理を示すフローチャートである。
CPU110は、行動情報管理部112として、ユーザ端末100のユーザの行動情報が更新されているか判定する(ステップS131)。行動情報が更新されていない場合(ステップS131においてNOである場合)、CPU110は、ステップS131からの処理を繰り返す。
行動情報が更新されている場合(ステップS131においてYESである場合)、CPU110は、行動情報に基づいて行動ベクトルPを更新する。CPU110は、通信インターフェイス160を介して行動ベクトルPをサーバ200へ送信する(ステップS132)。
CPU110は、通信インターフェイス160を介して、サーバ200からの確認メッセージを待ち受ける(ステップS133)。CPU110は、確認メッセージを受信すると(ステップS133においてYESである場合)、ユーザの行動情報の次の更新を待ち受ける。
一方、確認メッセージを受信していない場合は(ステップS133においてNOである場合)、CPU110は、行動ベクトルの送信から所定の時間が経過したか否かを判断する(ステップS134)。CPU110は、所定時間が経過していない場合は(ステップS134においてNOである場合)、ステップS133からの処理を繰り返す。CPU110は、所定時間が経過している場合は(ステップS134においてYESである場合)、行動ベクトルPのデータの送信を所定回数トライしたか否かを判断する(ステップS135)。
行動ベクトルPのデータの送信を所定回数トライしていない場合(ステップS135においてNOである場合)、CPU110は、通信インターフェイス160を介して、行動ベクトルPのデータを再送する(ステップS136)。CPU110は、ステップS133からの処理を繰り返す。
CPU110は、行動ベクトルPのデータの送信を所定回数トライしている場合(ステップS135においてYESである場合)、ディスプレイ130および/またはスピーカ170を介してエラー情報を出力する(ステップS137)。CPU110は、ユーザの行動情報の次の更新を待ち受ける。
次に、図8を参照して、本実施の形態にかかるユーザ端末100における他のユーザの行動情報の要求処理について説明する。図8は、本実施の形態にかかるユーザ端末100における他のユーザの行動情報の要求処理を示すフローチャートである。CPU110は、行動情報管理部112として定期的に、あるいは情報選択部114として情報を検索する場合や、情報選択部114として他のサーバからのプッシュ情報を受信した場合などに、以下の処理を実行する
CPU110は、行動情報管理部112あるいは情報選択部114として、通信インターフェイス160を介して、サーバ200に他のユーザの行動情報を要求するメッセージを送信する(ステップS141)。
CPU110は、通信インターフェイス160を介して、サーバ200からの他のユーザの行動情報を待ち受ける(ステップS142)。CPU110は、他のユーザの行動情報を受信していない場合は(ステップS142においてNOである場合)、CPU110は、要求メッセージの送信から所定の時間が経過したか否かを判断する(ステップS143)。CPU110は、所定時間が経過していない場合は(ステップS143においてNOである場合)、ステップS142からの処理を繰り返す。CPU110は、所定時間が経過している場合は(ステップS143においてYESである場合)、要求メッセージを所定回数送信したか否かを判断する(ステップS144)。
要求メッセージを所定回数送信していない場合(ステップS144においてNOである場合)、CPU110は、通信インターフェイス160を介して、要求メッセージをサーバ200に再送する(ステップS145)。CPU110は、ステップS142からの処理を繰り返す。
CPU110は、要求メッセージを所定回数送信した場合(ステップS144においてYESである場合)、ディスプレイ130および/またはスピーカ170を介してエラー情報を出力する(ステップS146)。
CPU110は、他のユーザの暗号化された行動情報を受信すると(ステップS142においてYESである場合)、秘密鍵を用いて受信データを複合化する(ステップS147)。CPU110は、他のユーザの行動情報を習得して、自端末のユーザの行動情報と交換したり、自端末のユーザの行動情報に追加したりする(ステップS148)。
次に、図9を参照して、本実施の形態にかかるユーザ端末100における行動情報の送信処理について説明する。図9は、本実施の形態にかかるユーザ端末100における行動情報の送信処理を示すフローチャートである。
CPU110は、行動情報管理部112として、通信インターフェイス160を介して、サーバ200から行動情報要求メッセージを受信して、受信データから他のユーザの公開鍵を取得する(ステップS151)。CPU110は、公開鍵を用いて、自端末のユーザの行動情報を暗号化する(ステップS152)。CPU110は、通信インターフェイス160を介して、暗号化した行動情報のデータをサーバ200に送信する(ステップS153)。
次に、図10を参照して、本実施の形態にかかるユーザ端末100における行動情報の記録処理について説明する。図10は、本実施の形態にかかるユーザ端末100における行動情報の記録処理を示すフローチャートである。
CPU110は、行動情報管理部112として、ユーザの行動に関するイベント発生を待ち受ける。CPU110は、イベントが検出できない間はステップS161を繰り返し、ユーザの行動に関するイベントを検出した場合は、当該イベントを特定する(ステップS161)。なお、ユーザの行動に関するイベントとは、ユーザ操作、各種センサから取得される測定値など、ユーザ端末が知り得る全てのユーザの行動に関するイベントが該当し得る。
CPU110は、発生したイベントに関連する情報を行動情報として、予め定義された複数のカテゴリのうちの該当するカテゴリの行動情報として、メモリ120に記録する(ステップS162)。
次に、図11を参照して、本実施の形態にかかるサーバ200における行動ベクトルPの登録処理について説明する。図11は、本実施の形態にかかるサーバ200における行動ベクトルの登録処理を示すフローチャートである。
CPU210は、通信インターフェイス260を介して、ユーザ端末100からの行動ベクトルPと公開鍵PKを受信すると、まず、ユーザを特定する(ステップS171)。CPU210は、ユーザの識別情報に対応づけて行動ベクトルPをメモリ220に格納する(ステップS172)。CPU210は、ユーザの識別情報に対応付けて公開鍵PKをメモリ220に格納する(ステップS173)。
CPU210は、ユーザの組み合わせ毎の関係値としての、行動ベクトルP同士の相関係数を計算する(ステップS174)。ただし、特性情報間の関係値は、相関係数でなくてもよい。CPU210は、通信インターフェイス260を介して、行動ベクトルPを無事に取得した旨のメッセージをユーザ端末100に送信する(ステップS175)。CPU210は、通信インターフェイス260を介して、次のユーザ端末100からの行動ベクトルPを待ち受ける。
次に、図12を参照して、本実施の形態にかかるサーバ200における行動ベクトルPの更新処理について説明する。図12は、本実施の形態にかかるサーバ200における行動ベクトルPの更新処理を示すフローチャートである。
CPU210は、通信インターフェイス260を介して、ユーザ端末100からの行動ベクトルPを受信すると、まず、ユーザを特定する(ステップS181)。CPU210は、行動ベクトルPをユーザの識別情報に対応づけてメモリ220に格納する(ステップS182)。
CPU210は、ユーザの組み合わせ毎の関係値としての、行動ベクトルP同士の相関係数を計算して更新する(ステップS183)。ただし、特性情報間の関係値は、相関係数でなくてもよい。CPU210は、通信インターフェイス260を介して、行動ベクトルPを更新した旨のメッセージをユーザ端末100に送信する(ステップS184)。CPU210は、通信インターフェイス260を介して、次のユーザ端末100からの行動ベクトルPを待ち受ける。
次に、図13を参照して、本実施の形態にかかるサーバ200における行動情報の要求処理について説明する。図13は、本実施の形態にかかるサーバ200における行動情報の要求処理を示すフローチャートである。
CPU210は、通信インターフェイス260を介して、ユーザ端末100からの要求データを受信すると、まず第1のユーザとして、ユーザを特定する(ステップS191)。CPU210は、当該第1のユーザに関する行動ベクトルPとの相関係数が最も高い(最も1に近い)行動ベクトルPに対応する第2のユーザを検索する(ステップS192)。
なお、ステップS191およびステップS192では、CPU210は、当該第1のユーザに関する行動ベクトルPとの相関係数が最も低い(最も0に近い)行動ベクトルP、すなわち当該第1のユーザに関する行動ベクトルPと最も異なる行動ベクトルPに対応する第2のユーザを探してもよい。あるいは、ユーザ端末100による相関係数の指定を受付けて、サーバ200のCPU210が、当該第1のユーザに関する行動ベクトルPとの相関係数が指定された相関係数に近い行動ベクトルPに対応する第2のユーザを探してもよい。あるいは、サーバ200が何らかのユーザ端末100に関する情報に基づき自律的に第2のユーザを探してもよい。
CPU210は、第2のユーザを特定すると、通信インターフェイス260を介して、当該第2のユーザのユーザ端末100に、第1のユーザの公開鍵PKと第2のユーザの行動情報の要求とを送信する(ステップS193)。CPU210は、通信インターフェイス260を介して、第2のユーザからの暗号化された行動情報を待ち受ける(ステップS194)。
CPU210は、通信インターフェイス260を介して、第2のユーザからの行動情報を受信できていない場合は(ステップS194においてNOである場合)、行動情報の要求から所定の時間が経過したか否かを判断する(ステップS195)。CPU210は、所定時間が経過していない場合は(ステップS195においてNOである場合)、ステップS194からの処理を繰り返す。CPU210は、所定時間が経過している場合は(ステップS195においてYESである場合)、行動情報の要求を所定回数送信したか否かを判断する(ステップS196)。
行動情報の要求を所定回数送信していない場合(ステップS196においてNOである場合)、CPU210は、通信インターフェイス260を介して、第1のユーザの公開鍵PKと第2のユーザの行動情報の要求とを再送する(ステップS197)。CPU210は、ステップS194からの処理を繰り返す。
CPU210は、要求を所定回数送信した場合(ステップS196においてYESである場合)、ユーザ端末100にエラー情報を通知する(ステップS198)。CPU210は、通信インターフェイス260を介して、次のユーザ端末100からの行動情報の要求を待ち受ける。
一方、CPU210は、通信インターフェイス260を介して、第2のユーザのユーザ端末100から暗号化された行動情報を受信すると(ステップS194においてYESである場合)、通信インターフェイス260を介して、暗号化された第2のユーザの行動情報を第1のユーザ端末100に転送する(ステップS199)。CPU210は、通信インターフェイス260を介して、次のユーザ端末100からの行動情報の要求を待ち受ける。
<第2の実施の形態>
第1の実施の形態においては、ユーザ端末100が行動情報から作成される特性情報をアップロードした際に(ステップS102)、サーバ200がユーザの組み合わせ毎の特性情報の相関係数を計算する(ステップS103)ものであった。しかしながら、そのような形態には限られない。
図14は、本実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示すイメージ図である。図14を参照して、本実施の形態にかかるネットワークシステム1の動作概要について説明する。
まず、ユーザ端末100は、ユーザの名前や年齢や住所などの静的な個人情報を記憶する。そして、ユーザ端末100は、ユーザがユーザ端末100を操作した場合や、移動した場合などに、ユーザの操作命令や行動履歴を行動情報として蓄積する(ステップS101)。そして、ユーザ端末100は、ユーザの行動情報から作成される、ユーザの好みなどを示すための特性情報と、ユーザ端末100用の公開鍵とをサーバ200に提供する(ステップS102)。
なお、ユーザAがユーザ端末100Aを操作したり、行動した場合には、ユーザ端末100AのユーザAの行動の履歴を示す特性情報Aをサーバ200にアップロードするし、ユーザBがユーザ端末100Bを操作したり、行動した場合には、ユーザ端末100BのユーザBの行動の履歴を示す特性情報Bをサーバ200にアップロードする。
そして、本実施の形態においては、ユーザ端末100Aが他のユーザ端末100Bのユーザの行動情報を要求した際に(ステップS103)、サーバ200は、ユーザAと他のユーザとの組み合わせ毎の特性情報の関係値を計算する(ステップS104)。そして、サーバ200は、当該要求に応じて、ユーザの特性情報Aと所定の関係値に近い特性情報Bを有するユーザを特定する(ステップS105)。その後の処理は、第1の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。
<第3の実施の形態>
第1の実施の形態においては、ユーザ端末100が行動情報から作成される特性情報をアップロードした際に(ステップS102)、サーバ200がユーザの組み合わせ毎の特性情報の相関係数を計算する(ステップS103)ものであった。しかしながら、そのような形態には限られない。
図15は、本実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示すイメージ図である。図15を参照して、本実施の形態にかかるネットワークシステム1の動作概要について説明する。
まず、ユーザ端末100は、ユーザの名前や年齢や住所などの静的な個人情報を記憶する。そして、ユーザ端末100は、ユーザがユーザ端末100を操作した場合や、移動した場合などに、ユーザの操作命令や行動履歴を行動情報として蓄積する(ステップS101)。
本実施の形態においては、ユーザ端末100Aが他のユーザ端末100のユーザの行動情報を要求する際に(ステップS102)、ユーザ端末100は、ユーザの行動情報から作成される、ユーザの好みなどを示すための特性情報と、ユーザ端末100用の公開鍵とをサーバ200に提供する(ステップS103)。サーバ200は、当該ユーザと他のユーザとの組み合わせ毎の特性情報の関係値を計算する(ステップS104)。そして、サーバ200は、当該要求に応じて、ユーザの特性情報Aと指定された関係値に近い特性情報を有するユーザを特定する(ステップS105)。その後の処理は、第1の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。
より詳細には、サーバ200は、ユーザ端末100が他のユーザの行動情報を要求してくる際に(ステップS102)、サーバ200に送信される特性情報や公開鍵を蓄積しておく(ステップS103)。これによって、別のユーザ端末100が他のユーザの行動情報を要求してくる際に(ステップS102)、それまでに蓄積されているユーザ毎の特性情報に基づいて、サーバ200がユーザ間の特性情報の関係値を計算することができる。
<第4の実施の形態>
第1から第3の実施の形態においては、ユーザ端末100が行動情報から作成される特性情報をアップロードして、サーバ200がユーザの組み合わせ毎の特性情報の関係値を計算するものであった。しかしながら、そのような形態には限られない。
図16は、本実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示すイメージ図である。図16に示すように、本実施の形態においては、ユーザ端末100は、特性情報ではなく、行動情報をサーバにアップロードするものである。なお、ユーザ端末100は、サーバ200の公開鍵PKSによって暗号化した行動情報をアップロードし、そして、サーバ200は、ユーザ端末100からの暗号化された行動情報をサーバ200の秘密鍵によって復号化してユーザ端末100の行動情報を取得する。サーバ200は、これらの行動情報から特性情報を作成して、ユーザの組み合わせ毎の特性情報の関係値を計算するものである。関係値が高いユーザが特定された後の処理は第1から第3の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。
<第5の実施の形態>
第1から第3の実施の形態においては、ユーザ端末100が行動情報から作成される特性情報をアップロードして、サーバ200がユーザの組み合わせ毎の特性情報の関係値を計算するものであった。しかしながら、そのような形態には限られない。
図17は、本実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示すイメージ図である。図17に示すように、本実施の形態においては、第4の実施の形態と同様に、ユーザ端末100は、特性情報ではなく、行動情報をサーバにアップロードするものである。そして、サーバ200が、ユーザの組み合わせ毎の行動情報の関係値を計算するものである。たとえば、サーバ200が、ユーザの組み合わせ毎に、行動情報同士のマッチング率を関係値として計算してもよい。関係値が高いユーザが特定された後の処理は第1から第3の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。
<第6の実施の形態>
第1から第5の実施の形態においては、ユーザ端末100の情報選択部114としてのCPU110が、ユーザの行動情報および他のユーザの行動情報に基づいて、発生したイベントによって取得された多くの情報の中から、ユーザに提供する情報を選択して、ディスプレイ130またはスピーカ170から出力したり、メモリ120に格納したりする(図5のステップS117)ものであった。しかしながら、そのような形態には限られない。
図18は、本実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示すイメージ図である。図19は、本実施の形態にかかるユーザ端末100を中心とした機能構成と動作概要とを示すイメージ図である。図18および図19に示すように、本実施の形態においては、サーバ200が、情報を提供する宛先の第1のユーザの行動情報または/および他の第2のユーザの行動情報に基づいて、多量の情報から1または複数の情報を選択して第1のユーザのユーザ端末100に提供するものである。以下、より詳細に説明する。
まず、ユーザ端末100は、ユーザの名前や年齢や住所などの静的な個人情報を記憶する。
そして、ユーザ端末100は、ユーザがユーザ端末100を操作した場合や、移動した場合などに、ユーザの操作命令や行動履歴を行動情報として蓄積する(ステップS101)。そして、ユーザ端末100は、ユーザの行動情報をサーバ200に提供する(ステップS102)。
なお、ユーザAがユーザ端末100Aを操作したり、移動したりした場合には、ユーザ端末100AのユーザAの行動の履歴を示す行動情報をサーバ200にアップロードするし、ユーザBがユーザ端末100Bを操作したり、行動した場合には、ユーザ端末100BのユーザBの行動の履歴を示す行動情報をサーバ200にアップロードする。
サーバ200のCPU210は、ユーザの行動情報から、ユーザの好みなどを示すための特性情報を作成する。サーバ200は、ユーザの組み合わせ毎の行動情報の特性情報の関係値を計算する(ステップS103)。
ユーザ端末100Aがユーザの指示に基づいてインターネットやクラウドを介して情報を検索する際(ステップS104)、または、他のサーバがユーザ端末100に情報をプッシュする際(ステップS104)などに、サーバ200は、第1のユーザの行動情報の特性情報との関係値が所定の値に近い特性情報を有する第2のユーザを特定する(ステップS105)。
サーバ200のCPU210は、情報選択部214として、ユーザ端末100Aの第1のユーザの行動情報だけでなく、別の第2のユーザの行動情報も参考にして、情報を選択したり、情報を抽出したりする(ステップS107)。サーバ200は、選択された情報をユーザ端末100に送信する(ステップS108)。これによって、ユーザ端末100がユーザにとって従来よりも刺激的な情報を出力する可能性を従来よりも高めたり、出力された情報にユーザが飽きてしまう可能性を従来よりも低減したりすることができる(ステップS111)。
<第7の実施の形態>
第1から第5の実施の形態においては、ユーザ端末100の情報選択部114としてのCPU110が、ユーザの行動情報および他のユーザの行動情報に基づいて、発生したイベントによって取得された多くの情報の中から、ユーザに提供する情報を選択して、ディスプレイ130またはスピーカ170から出力したり、メモリ120に格納したりする(図5のステップS117)ものであった。しかしながら、そのような形態には限られない。
図20は、本実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示すイメージ図である。図20に示すように、本実施の形態においては、サーバ200が、情報を提供する宛先のユーザの行動情報または/および他のユーザの行動情報に基づいて、多数の情報から1または複数の情報を選択してユーザのユーザ端末100に提供するものである。以下、より詳細に説明する。
まず、ユーザ端末100は、ユーザの名前や年齢や住所などの静的な個人情報を記憶する。
そして、ユーザ端末100は、ユーザがユーザ端末100を操作した場合や、移動した場合などに、ユーザの操作命令や行動履歴を行動情報として蓄積する(ステップS101)。そして、ユーザ端末100は、ユーザの行動情報をサーバ200に提供する(ステップS102)。
なお、ユーザAがユーザ端末100Aを操作したり、行動した場合には、ユーザ端末100AのユーザAの行動の履歴を示す行動情報をサーバ200にアップロードするし、ユーザBがユーザ端末100Bを操作したり、行動した場合には、ユーザ端末100BのユーザBの行動の履歴を示す行動情報をサーバ200にアップロードする。
サーバ200のCPU210は、ユーザの組み合わせ毎の行動情報同士の関係値を計算する(ステップS103)。
ユーザ端末100Aは、ユーザの指示に基づいてインターネットやクラウドを介して情報を検索する際(ステップS104)、または、他のサーバなどがユーザ端末100に情報をプッシュする際(ステップS104)などに、サーバ200は、ユーザの行動情報との関係値が所定の値に近いユーザの行動情報を有するユーザを特定する(ステップS105)。
サーバ200のCPU210は、情報選択部214として、ユーザ端末100Aの第1のユーザの行動情報だけでなく、別の第2のユーザの行動情報も参考にして、情報を選択したり、情報を抽出したりすることができる(ステップS107)。サーバ200は、選択された情報をユーザ端末100に送信する(ステップS108)。これによって、ユーザ端末100がユーザにとって従来よりも刺激的な情報を出力する可能性を従来よりも高めたり、出力された情報にユーザが飽きてしまう可能性を従来よりも低減したりすることができる(ステップS111)。
<第8の実施の形態>
第1から第7の実施の形態においては、ユーザ端末100またはサーバ200の情報選択部114,214としてのCPU110,210が、自分の行動情報または/および他人の行動情報に基づいて、多数の情報から1または複数の情報を選択してユーザに提供するものであった。しかしながら、そのような形態には限られない。本実施の形態においては、他人の静的個人情報も利用するものである。
図21は、本実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示すイメージ図である。図21を参照して、本実施の形態にかかるネットワークシステム1の動作概要について説明する。
まず、ユーザ端末100は、ユーザの名前や年齢や住所などの静的な個人情報を記憶する。
そして、ユーザ端末100は、ユーザがユーザ端末100を操作した場合や、移動した場合などに、ユーザの操作命令や行動履歴を行動情報として蓄積する(ステップS101)。そして、ユーザ端末100は、ユーザの行動情報、または行動情報と静的個人情報、から作成される、ユーザの好みなどを示すための特性情報と、ユーザ端末100用の公開鍵とをサーバ200に提供する(ステップS102)。
なお、ユーザAがユーザ端末100Aを操作したり、行動した場合には、ユーザ端末100AのユーザAの行動の履歴を示す特性情報Aをサーバ200にアップロードするし、ユーザBがユーザ端末100Bを操作したり、行動した場合には、ユーザ端末100BのユーザBの行動の履歴を示す特性情報Bをサーバ200にアップロードする。
サーバ200は、ユーザの組み合わせ毎の特性情報同士の関係値を計算する(ステップS103)。
ユーザ端末100Aは、定期的に、または所定の情報をサーバ200にアップロードした際に、他のユーザ端末100のユーザの行動情報と静的個人情報とを要求する(ステップS104)。サーバ200は、当該要求に応じて、第1のユーザの特性情報と指定された関係値に近い特性情報を有する第2のユーザを特定する(ステップS105)。
サーバ200は、特定されたユーザ端末100Bに、ユーザ端末100Aからの公開鍵Aを渡して、行動情報と静的個人情報とを要求する(ステップS106)。ユーザ端末100Bは、ユーザBの行動情報と静的個人情報とを公開鍵Aによって暗号化したデータをサーバ200に送信する(ステップS107)。サーバ200は、暗号化されたデータをユーザ端末100Aに送信する(ステップS108)。
ユーザ端末100Aは、暗号化されたデータを自身の秘密鍵で復号化する。そして、ユーザ端末100Aは、ユーザの指示に基づいてインターネットやクラウドを介して情報を要求する(ステップS109)。または、ユーザ端末100Aは、外部から情報をプッシュされたりする(ステップS109)。
そして、ユーザ端末100Aが、ユーザ端末100Aのユーザの行動情報や静的個人情報だけでなく、別のユーザの行動情報や静的個人情報も参考にして、情報を選択したり、情報を抽出したりする(ステップS110)。これによって、ユーザ端末100のユーザの情報だけなく、他のユーザの情報にも基づいて、出力する情報が選択されるため、刺激的な情報が出力される可能性を従来よりも高めたり、出力された情報にユーザが飽きてしまう可能性を従来よりも低減したりすることができる(ステップS111)。
なお、当然に、実施の形態2または3のように、関係値に基づいて第2のユーザを特定するタイミングなどを変更してもよい。また、実施の形態4のように、ユーザ端末100が、サーバ200に行動情報や静的個人情報を送信して、行動情報や静的個人情報の特性情報に基づいて関係値を計算してもよい。また、実施の形態5のように、ユーザ端末100が、サーバ200に行動情報や静的個人情報を送信して、行動情報や静的個人情報に基づいて関係値を計算してもよい。
<第9の実施の形態>
第1から第7の実施の形態においては、ユーザ端末100またはサーバ200の情報選択部114,214としてのCPU110,210が、自分の行動情報または/および他人の行動情報に基づいて、複数の情報から情報を選択してユーザに提供するものであった。しかしながら、そのような形態には限られない。本実施の形態においては、他人の静的個人情報も利用するものである。
図22は、本実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示すイメージ図である。図22に示すように、本実施の形態においては、サーバ200が、情報を提供する宛先のユーザの行動情報または/および他のユーザの行動情報だけでなく、他のユーザの静的個人情報にも基づいて、多数の情報から1または複数の情報を選択してユーザのユーザ端末100に提供するものである。以下、より詳細に説明する。
まず、ユーザ端末100は、ユーザの名前や年齢や住所などの静的な個人情報を記憶する。
そして、ユーザ端末100は、ユーザがユーザ端末100を操作した場合や、移動した場合などに、ユーザの操作命令や行動履歴を行動情報として蓄積する(ステップS101)。そして、ユーザ端末100は、ユーザの行動情報をサーバ200に提供する(ステップS102)。本実施の形態においては、ユーザ端末100は、このとき、または別のタイミングで、ユーザの静的個人情報もサーバ200に提供する。
サーバ200のCPU210は、ユーザの組み合わせ毎の行動情報および/または静的個人情報の特性情報の関係値を計算する(ステップS103)。
ユーザ端末100Aが、ユーザの指示に基づいてインターネットやクラウドを介して情報を検索する際(ステップS104)、または、他のサーバがユーザ端末100に情報をプッシュする際(ステップS104)などに、サーバ200は、ユーザの行動情報および/または静的個人情報の特性情報との関係値が所定の値に近いユーザの行動情報および/または静的個人情報に基づいて、を有するユーザを特定する(ステップS105)。
サーバ200のCPU210は、情報選択部214として、ユーザ端末100Aのユーザの行動情報および静的個人情報だけでなく、別のユーザの行動情報および/または静的個人情報も参考にして、情報を選択したり、情報を抽出したりすることができる(ステップS107)。サーバ200は、選択された情報をユーザ端末100に送信する(ステップS108)。これによって、ユーザ端末100のユーザの情報だけなく、他のユーザの情報にも基づいて、出力する情報が選択されるため、刺激的な情報が出力される可能性を従来よりも高めたり、出力された情報にユーザが飽きてしまう可能性を従来よりも低減したりすることができる(ステップS111)。
なお、当然に、実施の形態2または3のように、関係値に基づいて第2のユーザを特定するタイミングなどを変更してもよい。また、実施の形態4のように、ユーザ端末100が、サーバ200に行動情報や静的個人情報を送信して、行動情報や静的個人情報の特性情報に基づいて関係値を計算してもよい。また、実施の形態5のように、ユーザ端末100が、サーバ200に行動情報や静的個人情報を送信して、行動情報や静的個人情報に基づいて関係値を計算してもよい。
<第10の実施の形態>
上記の第1〜第9の実施の形態のユーザ端末100やサーバ200の役割の一部または全部を他の装置が実行してもよい。あるいは、第1〜第9の実施の形態の各装置の役割が複数の装置に分担されてもよい。逆に、第1〜第9の実施の形態の複数の装置の役割の一部または全部が1つの装置に集約されてもよい。
<その他の応用例>
本発明の一態様は、システム或いは装置にプログラムを供給することによって達成される場合にも適用できることはいうまでもない。そして、本発明の一態様を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体(あるいはメモリ)を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の一態様の効果を享受することが可能となる。
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明の一態様を構成することになる。
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わる他の記憶媒体に書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
<まとめ>
上記の第1〜9の実施の形態においては、複数の端末100A,100B・・・と、複数の端末100A,100B・・・と通信可能なサーバ200とを備えるネットワークシステム1が提供される。複数の端末100A,100B・・・の各々は、ユーザの行動に関する情報Pをサーバ200に送信する。サーバ200は、複数の端末のユーザ間の行動に関する情報Pに関する相関に基づいて、複数の端末100A,100B・・・のユーザのうちの第1の端末100Aのユーザの行動と所定の関係を有する第2の端末100Bのユーザの行動に関する情報を第1の端末100Aに送信する。第1の端末100Aは、少なくとも第2の端末100Bのユーザの行動に関する情報に基づいて選択された情報を出力する。
好ましくは、サーバ200は、第2の端末100Bに、第1の端末100Aの公開鍵PKを送信する。第2の端末100Bは、公開鍵PKを利用して暗号化した第2の端末100Bのユーザの行動に関する情報をサーバ200に送信する。サーバ200は、第2の端末100Bからの情報を第1の端末100Aに送信する。
好ましくは、サーバ200は、所定の関係として、ユーザの行動を示す特性ベクトル同士の相関係数を利用する。
好ましくは、サーバ200は、所定の関係として、相関係数が高いもの、相関係数が低いもの、ユーザあるいは端末100により指定された相関係数に近いもの、サーバ200が何らかの情報に基づき自律的に選択した相関係数に近いもの、の少なくともいずれかを利用する。
上記の第1〜9の実施の形態においては、複数の端末100A,100B・・・と通信するための通信インターフェイス260と、プロセッサ210とを備えるサーバ200が提供される。プロセッサ210が、通信インターフェイス260を介して、複数の端末100A,100B・・・のユーザの行動に関する情報を受信して、複数の端末100A,100B・・・のユーザのうちの第1の端末100Aのユーザの行動と所定の関係を有する第2の端末100Bのユーザの行動に関する情報を第1の端末100Aに送信する。
上記の第1〜9の実施の形態においては、通信インターフェイス260を介して、複数の端末100A,100B・・・のユーザの行動に関する情報を受信するステップと、プロセッサ210が複数の端末100A,100B・・・のユーザ間の行動に関する情報の相関を算出するステップと、通信インターフェイス260を介して、複数の端末100A,100B・・・のユーザのうちの第1の端末100Aのユーザの行動と所定の関係を有する第2の端末100Bのユーザの行動に関する情報を第1の端末100Aに送信するステップと、を備えるサーバ200の情報処理方法が提供される。
上記の第1〜9の実施の形態においては、サーバ200と通信するための通信インターフェイス160と、プロセッサ110とを備える通信端末100が提供される。プロセッサ110は、通信インターフェイス160を介してユーザの行動に関する情報をサーバ200に送信し、サーバ200から他の通信端末100Bのユーザの行動に関する情報を受信し、少なくとも他の通信端末100Bのユーザの行動に関する情報に基づいて取得された情報を出力する。
上記の第1〜9の実施の形態においては、通信端末100のためのアプリケーションプログラムであって、通信インターフェイス160を介してユーザの行動に関する情報をサーバ200に送信するステップと、サーバ200から他の通信端末100Bのユーザの行動に関する情報を受信するステップと、少なくとも他の通信端末100Bのユーザの行動に関する情報に基づいて取得された情報を出力するステップと、を通信端末100のプロセッサ110に実行させるためのアプリケーションプログラムが提供される。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。