(57)【要約】【課題】  多数の人物の中から自分にとって有用な情報を持つ人物とネットワークを通じて選択的にコミュニケーションを図る場合に、ネットワーク上での負荷分散に適したシステムを提供する。【解決手段】  自己の使用する装置１から他のユーザが使用する装置２に対して自己のプロファイル情報を送信し、装置１からのプロファイル情報を受信した装置２では、当該装置のユーザに係るプロファイル情報及び受信したプロファイル情報を用いて両者間の相関度計算を行う。そして、その計算結果を装置１に送信すると、装置１は相関度計算の結果から相関度の高い通信相手の装置を選別して、当該装置との通信により利用情報を通知し又は受信する。大規模なネットワークサーバーを必要とせず、また、特定のノードにおいて処理負担が大きくならないようにした。【選択図】図５
2006011550.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを通じて装置間でユーザのプロファイル情報を送受信し、相関度の高い通信相手との間で利用情報の通知又は交換を行うための、協調フィルタリングによる情報伝送システムにおいて、
第一の装置から複数の第二の装置に対して、該第一の装置を使用するユーザのプロファイル情報を送信し、
上記第一の装置から上記プロファイル情報を受信した上記第二の装置内で当該装置のユーザに係るプロファイル情報及び受信した上記プロファイル情報を用いて両者間の相関度計算を行い、その計算結果を上記第一の装置に送信し、
上記第一の装置が、返送された相関度計算の結果から相関度の高い通信相手の装置を選別して、当該装置との通信により利用情報を要求し又は受信する
ことを特徴とする協調フィルタリングによる情報伝送システム。
【請求項２】
請求項１に記載した協調フィルタリングによる情報伝送システムにおいて、
上記第二の装置が上記プロファイル情報に基づくベクトル空間距離を計算してその計算結果を上記第一の装置に送信するとともに、該第一の装置が、返送されたベクトル空間距離の計算結果から該ベクトル空間距離が最小又は予め決められた基準値以下とされる通信相手の装置を上記第二の装置から選別する
ことを特徴とする協調フィルタリングによる情報伝送システム。
【請求項３】
請求項１に記載した協調フィルタリングによる情報伝送システムにおいて、
上記プロファイル情報にはコンテンツデータ又はプログラムを含む利用情報を類別するためのデータが含まれる
ことを特徴とする協調フィルタリングによる情報伝送システム。
【請求項４】
ネットワークを通じてユーザのプロファイル情報を送受信し、相関度の高い通信相手との間で利用情報の通知又は交換を行うための、協調フィルタリングによる情報伝送システムに用いる情報処理装置において、
他のユーザが使用する装置から該ユーザのプロファイル情報を受信した場合に、該受信したプロファイル情報及び自己のプロファイル情報を用いて両者間の相関度計算を行い、その計算結果を返送する
ことを特徴とする協調フィルタリングによる情報伝送システムに用いる情報処理装置。
【請求項５】
請求項４に記載した協調フィルタリングによる情報伝送システムに用いる情報処理装置において、
上記プロファイル情報に基づく互いのベクトル空間距離を計算してその計算結果を相手の装置に返送する
ことを特徴とする協調フィルタリングによる情報伝送システムに用いる情報処理装置。
【請求項６】
ネットワークを通じてユーザのプロファイル情報を送受信し、相関度の高い通信相手との間で利用情報の通知又は交換を行うための、協調フィルタリングによる情報伝送システムに用いる情報処理装置において、
他のユーザが使用する装置に対して自己のプロファイル情報を送信し、該装置から返送された相関度計算の結果を受けて相関度の高い通信相手の装置を選別して、当該装置に対して利用情報を要求し又は当該装置から利用情報を受信する
ことを特徴とする協調フィルタリングによる情報伝送システムに用いる情報処理装置。
【請求項７】
ネットワークを通じてユーザのプロファイル情報を送受信し、相関度の高い通信相手との間で利用情報の通知又は交換を行うための、情報処理装置に用いるプログラムにおいて、
他のユーザが使用する装置から該ユーザのプロファイル情報を受信した場合に、該受信したプロファイル情報及び自己のプロファイル情報を用いて両者間の相関度計算を行い、その計算結果を返送するステップを有する
ことを特徴とする情報処理装置に用いるプログラム。
【請求項８】
請求項７に記載した情報処理装置に用いるプログラムにおいて、
上記プロファイル情報に基づく互いのベクトル空間距離を計算してその計算結果を相手の装置に返送するステップを有する
ことを特徴とする情報処理装置に用いるプログラム。
【請求項９】
ネットワークを通じてユーザのプロファイル情報を送受信し、相関度の高い通信相手との間で利用情報の通知又は交換を行うための、情報処理装置に用いるプログラムにおいて、
他のユーザが使用する装置に対して自己のプロファイル情報を送信するステップと、該装置から返送された相関度計算の結果を受けて相関度の高い通信相手の装置を選別するステップと、当該装置に対して利用情報を要求し又は当該装置から利用情報を受信するステップを有する
ことを特徴とする情報処理装置に用いるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを通じて自分と趣味嗜好の似た通信相手との間でコンテンツデータやプログラム等の通知や交換等を行う、協調フィルタリングによる情報伝送システムにおいて、膨大なデータを蓄積して多量の計算を行うサーバーの存在を前提とすることなく、個人間通信を通じてお互いに関心度の高い情報を交換し合えるようにするための技術に関する。
【背景技術】
【０００２】
趣味嗜好の似たユーザ間でネットワークを通じて互いに情報交換等を行う場合に利用される技術として、協調フィルタリングが知られている（例えば、特許文献１参照。）。協調フィルタリングでは、例えば、各ユーザのプロファイル情報を比較して相関度を計算することにより、相関度の高いユーザ（協調相手）を検索することが可能であり、この技術を用いた各種のシステムが提案されているが、それらの殆どはネットワークサーバーを中心としたネットワーク形態（クライアント−サーバーモデル、以下、「C/Sモデル」という。）である。その理由は、協調フィルタリング技術が多量のデータと計算量を必要とするためである。
【０００３】
また、音楽や映像のコンテンツをユーザに推薦するシステム（例えば、特許文献２参照。）では、ユーザがインターネットを通じて過去の視聴履歴を送ると、サーバーから該ユーザのクライアント・マシンに対してコンテンツが推薦される。この場合もC/Sモデルでの形態を基本とし、巨大なサーバーが必要不可欠とされる。
【０００４】
個人間通信を通じて母集団を形成するネットワーク形態（Peer to Peerネットワークモデル、以下、「P2Pモデル」という。）のシステムでは、サーバーマシンを用いた集中管理機構が不要であり、運用コスト面で有利とされる。例えば、端末使用履歴情報に基いてユーザのプロファイル情報を生成してメモリカード等に蓄積し、ユーザに特化した情報を提供するシステムが知られている（例えば、特許文献３参照。）。
【０００５】
多数の人物の中から自分にとって有用な情報を持つ人物のみと選択的にネットワーク上でコミュニケーションを図るために利用される技術には、ユーザプロファイリングが挙げられ、個人の興味嗜好を定量化して、プロファイルデータを登録した個人プロファイルを利用する方式が知られている（例えば、特許文献４参照。）。例えば、あるユーザが他のユーザとの間で通信された情報からテキストを抽出し、単語分割や頻度計算を行うことにより自己のプロファイルを作成する。さらに個人間通信を行ってユーザ個人を含む集団との比較において適切に顕現度を評価したプロファイルを作成するというものである。
【０００６】
【特許文献１】特開平９−２６５４７８号公報
【０００７】
【特許文献２】特開２００３−１７３３５０号公報
【特許文献３】特開２００１−１４３２４号公報
【特許文献４】特開２０００−７６３０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来のシステムにあっては、多量な計算を高速に処理できるネットワークサーバーの存在が不可欠であったり、あるいは特定の装置において計算処理上の負荷（負担すべきタスクや計算量）が大きくなってしまうといった問題がある。
【０００９】
例えば、協調フィルタリングを実現する際に、ユーザのプロファイルデータを手元に集めて処理を行うサーバーが本来的に行うべき仕事には、下記に示す事項が含まれる。
【００１０】
・自分が空間（各ユーザのプロファイル情報に基づく多次元のベクトル空間）内でどのような位置に存在するか
・自分と趣味嗜好が近いのは誰か
・お勧めすべきコンテンツはどれか。
【００１１】
これらの事項を定量的に特定するための計算処理を引き受けるネットワークサーバーの大規模化は運用コストの増大に繋がるとともに、全ての情報についてサーバーで集中管理を行う必要がある。
【００１２】
また、P2Pモデル形態での協調フィルタリング技術の使用法としては、下記に示す処理例が挙げられる。
【００１３】
（１）ネットワーク全体に対して通信相手を募るための同報通信（Broadcast）を行い、相手の持っているコンテンツのリストを返してもらう
（２）自分のコンピュータ内で協調フィルタリングの計算を行ってお勧めコンテンツを特定する
（３）必要に応じてそのコンテンツを持っている相手と再び通信して所望のコンテンツを取得する。
【００１４】
この方法では、協調フィルタリングのデータ蓄積や計算は各自のコンピュータで行う必要があるため、処理上の負担が大きい。つまり、データを要求する側のコンピュータの計算量がネットワーク規模に比例して増大し、負荷がネットワーク上で分散しないため、大規模ネットワークの利用には向かない等の問題が残る。
【００１５】
そこで、本発明は、多数の人物の中から自分にとって有用な情報を持つ人物とネットワークを通じて選択的にコミュニケーションを図る場合に、ネットワーク上での負荷分散に配慮したシステムの構築を課題とする。
【課題を解決するための手段】
【００１６】
本発明に係る協調フィルタリングによる情報伝送システムは、上記した課題を解決するために、自己の使用する第一の装置から他のユーザが使用する第二の装置に対して自己のプロファイル情報を送信し、第一の装置からのプロファイル情報を受信した第二の装置内で当該装置のユーザに係るプロファイル情報及び受信した上記プロファイル情報を用いて両者間の相関度計算を行う。そして、その計算結果を第一の装置に送信し、該第一の装置が、返送された相関度計算の結果から相関度の高い通信相手の装置を選別して、当該装置との通信により利用情報を要求し又は受信するように構成したものである。
【００１７】
また、本発明に係る協調フィルタリングによる情報伝送システムに用いる情報処理装置は、下記の（Ａ）若しくは（Ｂ）又は（Ａ）及び（Ｂ）に示す構成を備えたものである。
【００１８】
（Ａ）他のユーザが使用する装置から該ユーザのプロファイル情報を受信した場合に、該受信したプロファイル情報及び自己のプロファイル情報を用いて両者間の相関度計算を行い、その計算結果を返送すること。
【００１９】
（Ｂ）他のユーザが使用する装置に対して自己のプロファイル情報を送信し、該装置から返送された相関度計算の結果を受けて相関度の高い通信相手の装置を選別して、当該装置に対して利用情報を要求し又は当該装置から利用情報を受信すること。
【００２０】
本発明に係る情報処理装置に用いるプログラムは、他のユーザが使用する装置から該ユーザのプロファイル情報を受信した場合の処理において、該受信したプロファイル情報及び自己のプロファイル情報を用いて両者間の相関度計算を行い、その計算結果を返送するステップを有する。
【００２１】
また、自分と相関度の高い通信相手を探して、利用情報の通知や交換を行う場合の処理においては、他のユーザが使用する装置に対して自己のプロファイル情報を送信するステップと、該装置から返送された相関度計算の結果を受けて相関度の高い通信相手の装置を選別するステップと、当該装置に対して利用情報を要求し又は当該装置から利用情報を受信するステップを有する。
【００２２】
従って、本発明では、自分のプロファイル情報を相手に送信して相関度の計算結果のみを返してもらい、該計算結果に基づいて通信相手を決定することができるので、ネットワーク上での負荷分散や、計算負荷の軽減という点で優れている。つまり、多数のプロファイル情報を収集して高速に処理するための大掛かりなネットワークサーバーを必要とせず、また、特定のノードにおいて計算処理上の負荷が大きくなることはない。
【発明の効果】
【００２３】
本発明によれば、多数の人物の中から自分と相関度の高い通信相手を選択して情報交換等を行う場合に、ネットワーク上での負荷分散に適したシステムを構築することができ、大規模なネットワークサーバーの存在を前提とすることなく、例えば、個人間通信によるネットワーク形態において実現できるので、運用面や管理面において有利である。
【００２４】
相関度の計算処理においては、プロファイル情報に基づくベクトル空間距離を通信相手に計算してもらい、その計算結果を受け取ってベクトル空間距離が最小又は予め決められた基準値以下とされる通信相手の装置を選別することにより、複雑な計算処理を相手方の装置に強いることがない（処理負担を軽減することができる。）。
【００２５】
また、コンテンツリスト等の個別データを用いて相関度計算を行う場合には、計算量が増大することを考慮し、プロファイル情報にはコンテンツデータ又はプログラムを含む利用情報を類別するためのデータが含まれるようにすることが好ましい（つまり、類別化に係るメタデータ、例えば、ジャンルやカテゴリ等のデータを用いてユーザの趣味嗜好等を区分するのが良い。）。
【発明を実施するための最良の形態】
【００２６】
本発明は、例えば、ネットワークを介して繋がった複数台のコンピュータを想定した場合に、ネットワークサーバーの存在を必要条件とせずに、個人間通信により装置間でユーザのプロファイル情報を送受信し、自分と趣味嗜好の似た通信相手との間で、コンテンツデータやプログラム等を互いに通知し合ったり又は交換できるようにするための、協調フィルタリングによる情報伝送システムに関する。つまり、ネットワーク上に巨大なサーバーが存在しなくても、お互いに対等な関係をもって繋がったコンピュータ同士において１対１(Peer to Peer)で通信を行うことができる。つまり、本発明では、協調フィルタリングを実現する際に行うべき仕事に関してサーバーを介さずに各々のコンピュータで行う。
【００２７】
但し、協調フィルタリングのデータ蓄積や計算を各自のコンピュータで行う形態では、上記したように計算量がネットワーク規模に比例して増大することが問題になる（その解決策としては、例えば、膨大なデータを取得して計算を行うのは初回のみとし、次回からはその差分情報をネットワーク上の各ノードから取得し、次回以降の計算に関しても差分の計算のみ行う形態等が挙げられるが、処理がやや面倒である。）。
【００２８】
そこで、以下では、協調フィルタリング技術を使用して、趣味嗜好が自分とよく似た相手をそれぞれのコンピュータが分散処理して導き出すことの出来る構成形態について説明する。
【００２９】
図１乃至図４は、本発明に係る情報伝送システムの概要について説明するための図である。例えば、同報通信によって自分のプロファイル情報（例えば、趣味嗜好を定量化したデータを含むプロファイルや、ユーザ毎に使用されるコンテンツリスト等）を他の装置に送信して相手側で自分との相関度（例えば、ベクトル空間距離）を計算してもらい、その計算結果を取得して通信相手を選定し又は特定することにより、趣味嗜好の似た人物からコンテンツ等を紹介してもらったり、自分と似ている相手を含む母集団を形成する場合（グルーピング）に有効である。これにより、多数の人物の中から自分にとって有用な情報を持つ人物を選らんで、コミュニケーションを図ることが可能となる。
【００３０】
尚、各図において大文字で示す「Ａ」はネットワーク上での自己のノードを示しており、該ノードでは自分の使用する装置（以下、「装置Ａ」という。）を用いて他のユーザが使用する装置と繋がれている。また、小文字で示す「ｂ」、「ｃ」、…は、自分以外のノードを示しており、該ノードでは他のユーザが使用する装置（以下、ノード「ｘ」に対して、「装置ｘ」という。）を用いて装置Ａと繋がれている。各装置については、コンピュータや個人携帯端末、移動体通信端末装置、各種映像機器や音響機器等が用いられるが、インターネット等のコンピュータネットワークやＷＡＮ（ワイド・エリア・ネットワーク）、あるいはＬＡＮ（ローカル・エリア・ネットワーク）等で通信（例えば、個人間通信）を行えるように構成されており、装置間でユーザのプロファイル情報を送受信したり、自分と趣味嗜好の似た通信相手との間でデータ（例えば、映像や音声のコンテンツデータ等）やプログラム又はそれらのアドレスや所在情報（ＵＲＬ：Uniform Resource Locator等）を含む利用情報の通知や交換を行うことができる。
【００３１】
先ず、図１では、自己の装置Ａから他の装置ｂ、ｃ、ｄ、…に対して同報通信を行う。つまり、多数の通信相手に自分のプロファイルやコンテンツリスト等を同時に送信する。それらを受け取ったネットワーク上の装置は、装置Ａからのプロファイル情報と、受信側装置のユーザに係るプロファイル情報を用いて両者間の相関度計算を行う。
【００３２】
図２に示す例では、装置Ａからの呼びかけ（送信）に対して装置ｃ、ｄ、ｆ、ｇが反応し（応答）、各装置は、送信元のプロファイルやコンテンツリストを自分の保有するプロファイルやコンテンツリストと比較して、お互いのベクトル空間距離（該距離が小さい程、両者間の相関度が高いことを意味する。）を求め、その計算結果を送信元である装置Ａに返す。
【００３３】
装置Ａでは、返送された相関度計算の結果から相関度の高い通信相手の装置を選別し、当該装置との通信により情報を通知したり又は当該装置から必要な情報を受信する。
【００３４】
図２に示す例では、装置ｃ、ｄ、ｆ、ｇからそれぞれベクトル空間距離の計算結果が装置Ａに返送され、ベクトル空間距離をもとに装置Ａでは，例えば、図３に示すように、該装置のユーザと最も趣味や好みの似た相手の装置（本例では装置ｄ）を特定する。そして、相手の装置に対して、お勧めコンテンツのリクエスト等を行う。
【００３５】
図４に示すように、コンテンツをリクエストされた装置ｄは該装置のユーザ及び装置Ａのユーザに係るプロファイルやコンテンツリストを用いて送信すべき情報（例えば、お勧めコンテンツ又はそのアドレス等）を導き出して、再び送信元の装置Ａに転送する。
【００３６】
図５は、本発明に係る情報処理装置の構成例を示す概念図であり、図中に示す情報処理装置１が上記した装置Ａに相当し、情報処理装置２が上記した他の装置（ｂ、ｃ、…等）に相当する。
【００３７】
情報処理装置１は送受信手段１ａ、フィルタリング処理手段１ｂ、記憶手段１ｃを有しており、情報処理装置２に対して自己のプロファイル情報を送信する。つまり、記憶手段１ｃにはユーザのプロファイルやコンテンツリスト等が格納されており、それらの情報は送受信手段１ａを構成する送信部から情報処理装置２に対して送信される。
【００３８】
情報処理装置２は、送受信手段２ａ、相関度計算手段２ｂ、記憶手段２ｃを有しており、送受信手段２ａを構成する受信部によって情報処理装置１からのプロファイル情報を受信する。そして、相関度計算手段２ｂは受信したプロファイル情報及び情報処理装置２のユーザに係るプロファイル情報を用いて両者間の相関度計算を行う。尚、情報処理装置２のユーザに係るプロファイル情報は記憶手段２ｃに格納されている。
【００３９】
相関度計算手段２ｂによる計算結果（ベクトル空間距離等）は情報処理装置１に返送される。例えば、情報処理装置２に用いられるプログラムにおいては、他のユーザが使用する情報処理装置１から該ユーザのプロファイル情報を受信した場合に、受信したプロファイル情報及び情報処理装置２のユーザのプロファイル情報を用いて互いのベクトル空間距離を計算して、その計算結果を情報処理装置１に返送するステップを有する。
【００４０】
送受信手段１ａを構成する受信部は、計算結果をフィルタリング処理手段１ｂに送出する。
【００４１】
フィルタリング処理手段１ｂには、複数の装置から返送された相関度計算の結果が集計され、ここで相関度の高い通信相手の装置が選別される。具体的には、例えば、あるユーザと他のユーザとの相関度について、それぞれのプロファイル情報に基づいて計算されるベクトル空間距離が最小となる通信相手又は該ベクトル空間距離が予め決められた基準値以下とされる通信相手の装置が抽出される。ベクトル空間内でのユーザ同士のベクトル空間距離「Ｌ」は、各プロファイルデータ間の差分を「ΔＥi」（次元Ｎに対して、ｉ＝１、２、…、Ｎ）と記すとき、一般に「Ｌ＝Σ（αi・ｆ（ΔＥi））」（但し、Σはｉについての総和を意味する。）で表すことができる。ここで、「ｆ（Ｘ）」は差分の大きさ（正値）の累積的効果を得るための関数であり、Ｘの２乗や絶対値｜Ｘ｜等が用いられる。また、係数パラメータ「αi」は、重み付けのための加重係数を意味する（例えば、「αi＝１」の場合に重み付けなし、つまり、各「ｆ（ΔＥi）」が対等に加算される。）。
【００４２】
ベクトル空間距離Ｌの判定処理において、その基準値（閾値）を「Ｌｓ」と記すとき、「Ｌ≦Ｌｓ」を満たす相手を見つければ、自分と趣味嗜好の近い人物を探すという協調フィルタリングの目的を達成することができる（尚、Ｌｓの値については、これを固定値とする形態において相手が見つからない場合が起こり得るので、例えば、ユーザ操作による指定や選択等によって、Ｌｓ値を連続的又は段階的に設定できるようにしたり、Ｌ値の小さい順にランキング形式で相手を表示させるといった構成にすると良い。）。
【００４３】
情報処理装置１はベクトル空間距離Ｌの近い相手の装置を探索して、当該装置に対してコンテンツ等のリクエストを送信する。このリクエストを受けた相手側の装置は必要に応じて該リクエストに応答し、よって送信元の装置は所望のコンテンツ等を入手することが可能となる。
【００４４】
尚、情報処理装置１に用いられるプログラムは、他のユーザが使用する情報処理装置２に対して自己のプロファイル情報を送信するステップと、該装置から返送された相関度計算の結果を受けて相関度の高い通信相手を探し出し、該通信相手が使用する情報処理装置を選別するステップと、当該情報処理装置に対して利用情報を要求したり又は該利用情報を通信相手の装置から受信するステップを有する。
【００４５】
情報処理装置１、２を実現するための構成においては、ＣＰＵ（中央処理装置）やメモリ、入出力ポート、ハードディスク等を用いたストレージデバイス、ネットワーク接続用の通信デバイスや、ＣＰＵによって解釈されて実行されるプログラム等が使用されるが、図５ではそれらによる機能要素のみを示している。また、説明の便宜上、情報処理装置１を送信側装置とし、情報処理装置２を受信側装置としたが、実際の装置形態では自己と他者との関係において送信側にも受信側にもなり得る（つまり、情報処理装置１、２の両方の機能を具備する。）ことは勿論である。
【００４６】
上記に説明したシステムによれば、相手に自分のプロファイル情報を渡すことによって相手側で相関度を計算してもらえるので、計算の負荷分散に好適である。即ち、各ユーザのプロファイル情報を１箇所に集めて相関度を計算したり蓄積する必要がない。但し、自分が持っているコンテンツに対して他の全ての人が持っているコンテンツを参照してコンテンツのお勧めを行うという従来の協調フィルタリングの趣旨とは異なる側面をもっており、自分と趣味嗜好の似ている人を探した上で、その人からお勧めコンテンツ等を紹介してもらったり、自分と趣味嗜好の似ている人とのグルーピングを行ったりという目的に対して有効である。
【００４７】
また、ネットワーク上での通信相手と、自己との間でベクトル空間距離を計算するためには、自分のプロファイルやコンテンツリスト等の同報通信が必要であり、ネットワーク規模が大きくなるにつれてネットワークのトラフィック（通信量）が増大する。そこで、相手とのベクトル空間距離を計算する指標としては、コンテンツそのもののリストやＵＲＬ等を用いるよりは、それをさらに一段階抽象化したメタデータを用いるのが適切である。つまり、プロファイル情報としては、コンテンツデータやプログラム自体を特定するための情報ではなく、それらの種別等を区別するためのカテゴリや属性を標榜するデータを用いることが好ましい。
【００４８】
例えば、音楽情報を伝送するシステムにおいて、楽曲をクラシックやジャズ、ロック、演歌、ポップス等のジャンルに類別したり、あるいは歌手の性別や年代別等で区分するとともに、これまでに聞いた曲目数や頻度等を度数として定量化されるユーザのプロファイルを生成し、該プロファイルデータを装置間で互いに伝送し合うことにより、趣味嗜好の計量化を可能とする形態が挙げられる。
【００４９】
コンテンツデータやプログラム等の類別用データを含むプロファイルは、各装置の記憶手段に格納されて、ユーザの趣味や嗜好の変遷に伴って随時に更新されていく。例えば、音楽コンテンツの場合、下記のデータが挙げられる。
【００５０】
・楽曲の属性情報として提供されるジャンル情報等
・ユーザが楽曲を判断して入力し又は選択したジャンル情報や属性情報等
・ユーザがコンテンツを再生したり、記録した場合に音声データの特徴量を解析した結果に基づいて自動判定されたジャンル情報や属性情報等。
【００５１】
このようなプロファイリングを利用して、同じ事柄に関心をもつユーザの間で所望の情報を交換することにより、利便性を高めることができる（あるいはユーザの興味を惹かない情報については通信相手の選別段階で除外される。）。
【００５２】
図６は、本発明に係るプログラムを用いたアプリケーションによる処理の一例を示すフローチャート図である。
【００５３】
先ず、ステップＳ１にて協調フィルタリングの開始指令が出された後、次ステップＳ２では同報通信によって他のユーザを募る。そして、次ステップＳ３において所定の時間経過を待ち、応答がなく時間切れの場合にはステップＳ１に戻るが、他のユーザから応答があった場合にはステップＳ４に進んで当該ユーザに対して自分のプロファイルを送信する。
【００５４】
プロファイルを受信した相手の装置でベクトル空間距離の算出計算が行われて、その計算結果が返送されると、ステップＳ５において該計算結果を受信する。
【００５５】
ステップＳ６では、複数のユーザから受信した計算結果から自分と相関度の高い通信相手を決定し（ベクトル空間距離の近い相手を探す。）、次ステップＳ７に進んで当該通信相手に対してコンテンツリスト（例えば、コンテンツのＵＲＬ等を記載したリスト）を要求する。
【００５６】
そして、ステップＳ８においてコンテンツリストを受信した後、次ステップＳ９に進み、当該リストを決定するか否かについて判断し、決定時にはステップＳ１０に進むが、そのリストに決定しない場合には、別のリストを選択するためにステップＳ７に戻るか又は通信相手を変更するためにステップＳ６に戻る。
【００５７】
ステップＳ１０では決定したコンテンツリストに従ってコンテンツ要求を行った後、次ステップＳ１１にて意図するコンテンツを受信する。尚、通信相手がコンテンツデータ自体を所有する場合には、該データの受信が可能であるが、通信相手がコンテンツデータ自体を所有していない場合には、該データに係るネットワーク上でのアドレス情報が通知されるので、該情報からリンク先にアクセスして所望のコンテンツデータを取得することができる。
【００５８】
尚、本例では、ステップＳ８で受信したコンテンツリストの決定処理を経てコンテンツ要求を出しているが、これに限らず、ステップＳ８で受信した相手のコンテンツリストと、自分が持っているコンテンツリストとを比較して、所望のコンテンツを相手に要求するといった処理例が挙げられる（つまり、受信したコンテンツリストに基づいて取得したいコンテンツを決定してそのコンテンツ要求を発することで該コンテンツを受信する。）。
【００５９】
以上に説明した協調フィルタリングを、P2Pモデルのネットワーク形態において実現する場合に、上記の例では通信相手を同報通信によって探索していたが、これは狭いセグメント内やＬＡＮの中であればあまり問題ないが、その範囲をインターネットのような大規模なネットワークにまで広げると現実的ではなくなる。
【００６０】
ネットワーク形態には、C/Sモデルと、純粋なP2Pモデルの他に、両者の中間的な「ハイブリッドP2Pモデル」が挙げられる。このハイブリッドP2Pモデルでは、ノードの一員として簡易サーバーが用意され、ネットワークへのユーザの参加や退出時にはこのサーバーにアクセスし、該サーバーはネットワークに参加している全てのノードのアドレス又はプロファイル等を把握している。そして、協調フィルタリングを行う際には、クライアントに現在参加しているノードの情報を問い合わせることができる。但し、この簡易サーバーでは、膨大なデータを蓄積するデータベースは持たず、複雑な計算を行うこともないため、C/Sモデルとは異なり小規模なサーバであっても問題はない。
【００６１】
このように、ノードのひとつとして、クライアント間を仲介する簡易サーバーをたて、ノードリスト（PeerリストやPeerのプロファイルリスト）程度の情報だけを提供する方法では、C/Sモデルに比較してサーバーの運用コストがかからない。
【００６２】
簡易サーバーを使わない、純粋なP2Pモデルでは、全ての処理をノード間で行うことになるが、大規模なネットワーク上で多人数の同報通信を行うことは困難である。そこで、各ノードは自分を中心にして一定の通信範囲内におけるノードのアドレス又はプロファイル等を所有し、協調フィルタリングを行う際には当該範囲内にある既知のノードに対して通信を行う。通信を受けたノードはさらに自分の持っているノードリストの相手と通信して必要な情報を取得し、送信元に結果を返す。この手順を既定の回数だけ繰り返すことによって、ネットワーク上の広範囲の相手と通信することが可能となる。
【００６３】
図７に示す例では、自己のノード「Ａ」において「Ｒａ」で示す範囲内のノード「Ｂ」と通信し、該ノード「Ｂ」から「Ｒｂ」で示す範囲内のノード「Ｃ」、さらには、「Ｒｃ」で示す範囲内のノード「Ｄ」へと通信が行われて、規模が拡大していく様子を示す。
【００６４】
このように、自分のノードリストに登録されている相手だけと通信し、その通信相手の持つノードリストの相手にも通信してもらうという手順を踏むことで通信範囲を連鎖的に広げていく方法が好ましい。
【実施例】
【００６５】
図８乃至図１１は、上記した協調フィルタリング技術の実装例を示すものであり、以下では、ブラウザのお気に入り（ＵＲＬ）についてネットワーク内で協調フィルタリングを行い、その結果に基づいて、お勧めのウェブ（Web）ページをユーザに提示するアプリケーションの説明を行う。
【００６６】
このアプリケーションでは、ネットワーク上のユーザのお気に入りを全て取得して協調フィルタリングを行い、ユーザの趣味嗜好に合ったウェブページを別のユーザに勧める。
【００６７】
図８はアプリケーションを起動した直後の表示画面例を示し、２つのボタンオブジェクトが設けられ、ボタンｂ１がPeer（相手）検索用、ボタンｂ２がお勧めウェブページの表示用である。
【００６８】
また、図９はボタンｂ１を操作した後の表示画面例を示し、ボタンｂ１、ｂ２の下方に位置するウィンドウｗ１には、検索された相手方を特定するための名前情報（ハンドル等）が表示される。また、ボタンｂ１、ｂ２の右側に設けられたテキスト表示用のウィンドウｗ２には、検索された相手に関する情報（IPアドレスやお気に入りの数等）が表示される。
【００６９】
図１０は、協調フィルタリング後における、お勧めウェブページのリスト表示画面例を示しており、ウェブページリストがウィンドウｗ１に表示され、また、その関連情報（ウェブページのお勧め度や、登録人数等）がウィンドウｗ２に表示される。
【００７０】
アプリケーションを立ち上げると図８の画面が現れ、ボタンｂ１の操作によって、現在ネットワークに接続されて同じアプリケーションを立ち上げているユーザのうち、自分と相関度が高いと判断されたユーザの名前が表示される（図９参照。）。つまり、自分のプロファイル情報と他のユーザのプロファイル情報から計算されるベクトル空間距離の計算結果から自分と似た相手が検索されて表示される。
【００７１】
この状態で、ボタンｂ２を操作した場合には、表示されている全てのユーザのお気に入りに登録されているウェブページの名前とアドレスを取得する。そして、作成したリストをもとに協調フィルタリングを行い、お勧めウェブページのリストを作成する。
【００７２】
図１１は、リストの作成法に関するアルゴリズムの説明図であり、各リストの意味は下記の通りである。
【００７３】
・「ＭＹＬＳＴ」（図の左上参照）＝自分の「お気に入り」リスト
・「ＬＳＴ＿Ａ」（図の中央上参照）、「ＬＳＴ＿Ｂ」（図の中央下参照）＝ユーザ「Ａ」、「Ｂ」を例にした場合の、それぞれの「お気に入り」リスト（スコア付きりスト）
・「ＬＳＴａｌｌ」（図の右上参照）＝ＬＳＴ＿Ａ、ＬＳＴ＿Ｂをマージ（合成）したリスト（スコア付きりスト）
・「ＲＬＳＴ」（図の右下参照）＝ＬＳＴａｌｌの項目からＭＹＬＳＴの項目を削除してソーティング（並べ替え）した、お勧めリスト（スコア付きりスト）。
【００７４】
ＲＬＳＴの作成手順を下記に示す。
【００７５】
（１）各ユーザから「お気に入り」リストを集める
（２）スコア計算（ＭＹＬＳＴの項目とＬＳＴ＿Ａ、ＬＳＴ＿Ｂの項目との間で重複度を求める。）
（３）リスト合成（ＬＳＴａｌｌの生成）
（４）ＲＬＳＴの生成。
【００７６】
本例では、各リストに「Name」と「Address」が含まれており、ＭＹＬＳＴとＬＳＴ＿Ａとを比較した場合に、「01.hmtl」及び「03.hmtl」が重複しているので、ＬＳＴ＿Ａのスコアが「２」と計算される（重複度＝２）。他方、ＭＹＬＳＴとＬＳＴ＿Ｂとを比較した場合に、「03.hmtl」だけが重複しているので、ＬＳＴ＿Ｂのスコアが「１」と計算される（重複度＝１）。
【００７７】
リスト合成によって得られるＬＳＴａｌｌでは、「Name」及び「Address」毎の項目についてそれぞれにスコアが加算される。そして、ＭＹＬＳＴに含まれる「Name」及び「Address」毎の項目については不要であるため、それらを削除した後、スコアの高い順に並べ替えることでお勧めリストＲＬＳＴが生成される（本例では、スコア２の「06.hmtl」が最もお勧め度が高い。）。
【００７８】
こうして得られたＲＬＳＴについては、図１０に示すｗ１内に表示され、これらの中から所望のＵＲＬをユーザが選択することによって、お勧めのウェブページを閲覧することができる。
【００７９】
次に、音楽コンテンツについて趣味嗜好の似たユーザ同士が互いに情報交換を行い、音楽データの取得及び再生を実現する形態について説明する。
【００８０】
図１２乃至図２３は、多数の人物の中から自分にとって有用な情報を持つ人物と選択的にコミュニケーションを行うことを実現するアプリケーションとして、楽曲をお勧めする音楽用ソフトウェア（音楽プレーヤ）の実装例について説明するための図である。
【００８１】
この音楽プレーヤの機能を列挙すると下記のようになる。
【００８２】
１．基本的な再生機能（再生や早送り、後戻し等）
２．明示的（手動）又は自動的に行われるユーザープロファイルの更新機能
３．プロファイルによる曲リストの作成機能
４．協調フィルタリングによる曲リストのお勧め機能。
【００８３】
図１２乃至図１６は、アプリケーションの表示画面例を示したものである。
【００８４】
図１２はアプリケーション起動後の画面例を示しており、右上には曲に対する好感度をユーザが指示するための顔マーク付のボタンオブジェクトが設けられ、ボタンｂｔｎ１を操作すると好感度が上がり、ボタンｂｔｎ２を操作すると好感度が下がる。また、それらの左側のウィンドウｗ２にはプロファイルに基づくお勧め度が数値表示される。
【００８５】
ｂｔｎ１、ｂｔｎ２の下方に位置されたボタンｂｔｎ３はリクエストボタンであり、その下方にはランダム再生用のボタンｂｔｎ４が設けられ、その左側には曲の再生、停止、早送り、後戻し等の操作を行うためのボタンｂｔｎ５、ｂｔｎ５、…が配置されている。さらにその下方には各種情報を表示するためのウィンドウｗ３が設けられ、例えば、曲目のリスト表示が行われる。ｗ３の下方には複数のボタンオブジェクトが横一列に配置されており、例えば、曲目リストの表示用ボタンｂｔｎ６、ユーザのプロファイルを表示させるためのボタンｂｔｎ７、通信相手の検索用のボタンｂｔｎ８、コンテンツ取得用のボタンｂｔｎ９、検索エンジンへのアクセス用ボタンＢｔｎ１０が位置されている。
【００８６】
図１３はボタンｂｔｎ７を操作してｗ３内にプロファイルデータ（ジャンル等のメタデータ）を表示させた場合の画面例を示している。本例では、再生対象である歌や曲に関するメタデータが横長の長方形枠で囲まれることで区別される。
【００８７】
図１４はボタンｂｔｎ８を操作してｗ３内に通信可能な相手とそのベクトル空間距離が表示された画面例を示している。本例では、現在選択されている通信相手の名前及び相関度（ベクトル空間距離）が横長の長方形枠で囲まれることで区別される。
【００８８】
図１５は、通信相手からのお勧めの曲リストを生成して画面上に表示させた例を示しており、本例では、ユーザによって所望のコンテンツを選択する操作が行われると、該コンテンツの該当部分が横長の長方形枠で囲まれることで区別され、かつ、そのお勧め度がボタンｂｔｎ１の左側に数値表示される。
【００８９】
図１６は、図１５で選んだコンテンツの取得中（ダウンロード）の画面例を示している。
【００９０】
上記した再生機能については、操作用のボタンｂｔｎ５、ｂｔｎ５、…を用いて該ボタンの操作イベントに関連付けられたプログラム処理に従って音楽再生等が行われる。
【００９１】
また、この音楽プレーヤ（アプリケーション）では、ユーザのプロファイルを用いる。このプロファイルは、例えば、３０種類のメタデータ（ジャンルデータや歌手の性別データ等）を用いて構成される。再生する音楽に関して予めメタデータを付加しておくことによって、ユーザは音楽を聴きながら自分のプロファイルを更新していくことができる。本アプリケーションでは、ユーザ間でプロファイルを比較することによって自分と好みの似た相手を選択して通信することを可能にしている。
【００９２】
自分のプロファイルを更新する場合に、例えば、下記に示す方法が挙げられる。
【００９３】
（ａ）操作ボタンを使ってプロファイルデータを明示的に変化させる方法
（ｂ）ユーザによる意識的な操作を必要とせずにユーザの操作や行動パターン等を監視しながらプロファイルデータを暗黙裡に変化させる方法
（ｃ）上記（ａ）と（ｂ）とを併用する方法。
【００９４】
方法（ａ）では、例えば、今聴いている曲が好きか嫌いかを指示するボタンｂｔｎ１（Goodボタン）、ｂｔｎ２（Badボタン）をユーザが押すことによって明示的にプロファイルデータを変化させ、その結果をその都度更新する。
【００９５】
また、方法（ｂ）では、例えば、ユーザが曲を最後まで聴いたか又は途中でスキップしたか、あるいは曲をリピートしたか等といった操作行動のパターンをアプリケーション側が分析し、その結果をプロファイルデータに反映させて自動的に更新していく。よって、ユーザがプロファイルの管理に煩わされることがない。
【００９６】
尚、上記方法（ｃ）では必要に応じて方法（ａ）、（ｂ）を用いることができ、また、プロファイルの更新方法については既知の方法を用いることが可能である。
【００９７】
そして、本例に示す音楽プレーヤでは、ユーザのプロファイルを用いて曲リストを自動的に作成することが可能である。
【００９８】
アプリケーションが起動している状態で、ボタンｂｔｎ７を押すと、図１３に示すように、ユーザのプロファイルデータを表示する画面に切り替えることができる。
【００９９】
自分と音楽の趣味が良く似た相手を探すためには、先ず、同じネットワーク上に接続している人を探さなければならない。そこで、検索用のボタンｂｔｎ８を押すことによって図１４に示すように、現在ネットワーク上で通信を行える相手を検索することができる。通信相手の名前の右側に示す数字がその相手のプロファイルと自分のプロファイルとのベクトル空間距離である（その値が小さいほど似た趣味を持つ。つまり、自分に近いプロファイルを持っていることを意味する。）。
【０１００】
ｂｔｎ８の操作イベントに関連付けられるプログラム処理は下記のステップを含む。
【０１０１】
・ボタンを押した時点で相手に自分のプロファイルを送信するステップ
・相手のプロファイルとのベクトル空間距離を相手側で計算してもらい、その計算結果を自分に送信してもらうステップ。
【０１０２】
ｗ３に表示されたベクトル空間距離を参考にして，ユーザが実際に通信を行う相手を決定する。例えば、マウスポインタを所望の相手に移動させてマウス釦をクリックするといった操作で通信相手を決定すると、下記に示す処理が行われる（通信を行う相手を決定する場合の操作イベントに関連付けられたプログラム処理には下記のステップが含まれる。）。
【０１０３】
・決定した相手に自分のプロファイルを送信するステップ
・相手の持っている音楽コンテンツのリストと自分のプロファイルを参照して、お勧めの曲リストを生成してもらった場合に、その結果を受信して画面上に提示するステップ。
【０１０４】
尚、通信可能な相手全員についてそのベクトル空間距離とともに表示させる必要はないので、例えば、ベクトル空間距離の基準値をユーザの指示に従って設定するか、あるいは予め設定された基準値（例えば、類似度を大、中、小等に規定する場合において、それぞれの基準値を決めておく等）に従って、自分と趣味嗜好の似ている相手だけをランキング形式等で表示させることが可能である（自分と趣味嗜好の似ていない相手については、マスク処理によって非表示とする。）。
【０１０５】
図１５に示すように、お勧めの曲リストがｗ３内に表示された場合に、ユーザはこのお勧めリストの中から欲しいコンテンツを選択することができる。そして、コンテンツ取得のためにボタンｂｔｎ９を押すと、図１６に示すように所望のコンテンツのダウンロードが開始され、該コンテンツを通信相手やリンク先のサイト等から取得することができる。
【０１０６】
以上に説明した処理の流れをコマンド形式で簡潔にまとめると下記のようになる（図１７参照。太線の矢印が各ユーザ及びその使用装置を表象し、それらに亘る細線の矢印が信号やデータの流れを表す。）。
【０１０７】
（１）BROADCAST（同報通信：「User０」→「User１、User２、…、User N」）
（２）RESPONCE（応答：「User１、User２」→「User０」）
（３）SEND_PROFILE（プロファイル送信：「User０」→「User１、User２」）
（４）SEND_SCORE（相関度取得：「User１、User２」→「User０」）
（５）REQUEST_SONG_LIST（曲リスト要求：「User０」→「User１」）
（６）SEND_SONG_LIST（曲リスト送信：「User１」→「User０」）
（７）REQUEST_FILE（コンテンツ要求：「User０」→「User１」）
（８）SEND_FILE（コンテンツ送信：User１→User０）
【０１０８】
上記の「User０」が自分であり、それ以外のユーザ「User１、User２、…、User N」のうち、本例では、User１、User２に反応があって、自分とのベクトル空間距離が近いユーザUser１を通信相手に決定した場合を想定している。また、「Ｘ」→「Ｙ」はＸからＹへの通信の向きを示す。
【０１０９】
尚、本例に限らず、例えば、（１）と（３）を１つにまとめ、（２）と（４）を１つにまとめた形態でも構わない。
【０１１０】
図１８乃至図２１はアプリケーションに関する画面表示形態について別例を示したものである。
【０１１１】
図１８は、自分（画面右上の顔マーク「Ｍａ」を用いて区別される。）のプロファイルを水平バーの棒グラフ表示で示しており、ジャンルやテンポ、ムード、邦楽や洋楽及び歌手の性別等に関するデータが表示される。
【０１１２】
図１９は自分と相手（顔マーク「Ｍｂ」を用いて区別される。）との相関度（ジャンルやテンポ、年代、ムード等に関する相関度）をレーダーチャートで表示した例を示している。
【０１１３】
図２０は自分（顔マーク「Ｍａ」を用いて識別される。）のもっている音楽コンテンツのリストから所望の曲を選らんで再生する場合（ローカル再生）を示す。また、図２１は相手（顔マーク「Ｍｂ」を用いて区別される。）もっている音楽コンテンツに基づくお勧めリストから所望の曲を選らんで再生する場合（ネットワーク再生）を示しており、曲目リストの表示領域の上方には相手との相関度が「★」印の数で示され、その左側には図１９と同様のレーダーチャートが縮小表示される。
【０１１４】
プロファイルに用いるメタデータには、例えば、曲のテンポやスピード感等のように、楽曲を分析してその特徴量を検出することで自動的に抽出できるものがある。
【０１１５】
例えば、テンポ等の検出方法には、音声信号レベルの推移を表すレベル信号を生成し、該レベル信号を周波数分析した結果に基づいて、音声信号の特徴量を算出する方法が挙げられる。
【０１１６】
図２２は、特徴量検出手段３の構成例を示したものであり、再生された楽曲のデジタル信号が供給されると、特徴量として、テンポやスピード感、テンポ揺れを検出して結果を出力する。
【０１１７】
加算器４には、楽曲に係る左右の各チャンネルの音声信号が供給されて両者が加算された結果が後段のレベル計算部５に供給される。
【０１１８】
レベル計算部５は、加算後の音声信号レベルの推移を表すレベル信号を生成して、後段の周波数分析部８に供給するものであり、例えば、ＥＱ（Equalize）処理部６やレベル信号生成部７を備えている。ＥＱ処理部６は、加算器４から音声信号に対してフィルタ処理を行うものであり、ＨＰＦ（High Pass Filter)を用いて、テンポ抽出に適していない低域成分を除去する。そして、テンポの抽出に適した周波数成分がレベル信号生成部７に供給され、ここでは、音声信号レベルの推移を表すレベル信号（例えば、絶対値や、パワー値(２乗)あるいはそれらの移動平均値、レベルメータでのレベル表示に用いられている値等を示す信号。）が得られる。
【０１１９】
周波数分析部８は、レベル計算部５から供給される信号を受けてその周波数分析を行い、その分析結果を特徴抽出部１６に供給するものであり、例えば、下記に示す構成要素を備えている（括弧内の数字は符号を示す。）。
【０１２０】
・デシメーションフィルタ部（９）
・ダウンサンプリング部（１０）
・ＥＱ処理部（１１）
・窓処理部（１２）
・周波数変換部（１３）
・周波数成分処理部（１４）
・統計処理部（１５）
【０１２１】
デシメーションフィルタ部９は、レベル信号生成部７から供給されるレベル信号の高周波数成分を除去し、ダウンサンプリング部１０に供給する。該ダウンサンプリング部１０では、該レベル信号のダウンサンプリングを行う。例えば、テンポ検出には、レベル信号の数百Ｈｚ程度の成分があれば十分であるため、サンプルの間引きによりダウンサンプリングを行い、後段のＥＱ処理部１１においてフィルタ処理が行われる。ここでは、低周波数成分、例えば、ＤＣ成分とテンポ５０（「テンポｉ」を、１分間の４分音符数がｉ個である場合の音声信号のテンポとして定義している。よって、テンポ５０では、１分間の４分音符の数が５０個である。）に対応する周波数以下の成分と、高周波数成分、例えば、テンポ４００に対応する周波数以上の成分が除去される（テンポの抽出に適していない低周波数成分と高周波数成分を除去する。）。
【０１２２】
そして、フィルタ処理後のレベル信号は窓処理部１２に供給され、所定のサンプル数のレベル信号を１ブロックとして、時系列信号を抽出する。さらに、窓処理部１２では、ブロックの両端でのレベル信号が急激に変化していることの影響を低減する等のために、その両端の部分を徐々に減衰させるハミング窓やハニング窓等の窓関数で、ブロックのレベル信号に窓処理を施して（ブロックのレベル信号に窓関数を乗算する。）、その結果を周波数変換部１３に供給する。
【０１２３】
周波数変換部１３では、離散コサイン変換等を行うことで、レベル信号の周波数変換(周波数分析)を行う。例えば、ブロックのレベル信号を周波数変換することにより得られる周波数成分のうち、テンポ５０乃至１６００に対応する周波数についての周波数成分を得て、周波数成分処理部１４に供給する。
【０１２４】
周波数成分処理部１４では、周波数変換部１３からのブロックのレベル信号に係る周波数成分のうち、例えば、テンポ５０乃至４００の範囲に対応する周波数の周波数成分に、そのテンポの２倍、３倍、４倍となるテンポに対応する周波数の周波数成分（倍音）をそれぞれ加算し、その加算結果を、そのテンポに対応する周波数の周波数成分とする。
【０１２５】
例えば、テンポ「ｔ」に対応する周波数の周波数成分には、テンポ「ｔ」の２倍となるテンポ「２・ｔ」、３倍となるテンポ「３・ｔ」、４倍となるテンポ「４・ｔ」に対応する周波数それぞれの周波数成分が加算され、その加算結果がテンポ「ｔ」に対応する周波数の周波数成分を代表する。尚、例えば、テンポ５０に対応する周波数成分を求めるときに加算する、テンポ１００に対応する周波数成分は、その倍音の周波数成分が加算される前のテンポ１００に対応する周波数成分である。
【０１２６】
このように周波数成分処理部１４は、テンポ５０乃至４００の範囲に対応する周波数に対して、その倍音の周波数成分を加算した結果を、ブロック毎に得て統計処理部１５に供給する。
【０１２７】
統計処理部１５は、１曲分のブロックを対象に統計処理を行う。即ち、周波数成分処理部１４からブロック単位で供給される１曲分のレベル信号の周波数成分を、周波数ごとに加算する。そして、統計処理によって得られる、１曲分のブロックに亘る周波数成分の加算結果を、その曲のレベル信号の周波数成分として、特徴抽出部１６に供給する。
【０１２８】
特徴抽出部１６は、テンポ算出部１７、スピード感検出部１８、テンポ補正部１９、テンポ揺れ検出部２０を備えている。
【０１２９】
テンポ算出部１７は、周波数分析部８からの信号に基づいて、音声信号のテンポを算出してテンポ補正部１９に供給する。
【０１３０】
テンポ算出は下記の手順で行われる。
【０１３１】
（１）周波数分析部８から供給されるレベル信号の周波数成分から、最大の周波数成分を検出する
（２）（１）の最大の周波数成分から、レベル信号の基本周波数（これを「ｆb」と記す。）を決定する。
【０１３２】
（３）基本周波数ｆb及びレベル信号のサンプリング周波数（これを「ｆs」と記す。）に基づいて、「ｔ＝（ｆb／ｆs）×６０」によりテンポｔを求める。
【０１３３】
スピード感検出部１８は、周波数分析部８からの信号に基づいて、音声信号のスピード感を検出するとともにテンポ補正部１９に供給する。
【０１３４】
スピード感検出は下記の手順で行われる。
【０１３５】
（１）統計処理部１５から供給されたレベル信号の周波数成分から、ピークを検出し、さらにその中から、大きい順に上位ｎ個（例えば、ｎ＝１０）のピークとなっている周波数成分（Ａ1乃至Ａn）を抽出する。
【０１３６】
（２）上位ｎ個の周波数成分をすべて加算する（ΣＡi＝Ａ1＋Ａ2＋・・・＋Ａn）
（３）周波数成分Ａ1乃至Ａnと、それらに対応する周波数値ｆ1乃至ｆnとを用いて、積算値「Σ（Ａi×ｆi）＝Ａ1×ｆ1＋Ａ2×ｆ2＋・・・＋Ａn×ｆn」を計算する
（４）「Ｓ＝（Σ（Ａi×ｆi））／（ΣＡi）」によりスピード感Ｓを算出する。
【０１３７】
尚、上記の「Σ」は自然数変数「i」についての総和を意味する。
【０１３８】
テンポ補正部１９は、テンポ算出部１７から供給されるテンポを、スピード感検出部１８から供給されるスピード感Ｓに基づき、必要に応じて補正して最終的なテンポを出力する。
【０１３９】
テンポ補正は下記の手順で行われる。
【０１４０】
（１）上記のテンポｔを所定の基準値（REF１）と比較し、ｔ値がREF１より大きい場合には下記（２）に進むが、ｔ値がREF１以下の場合には下記（３）に進む
（２）上記のスピード感Ｓを所定の基準値（REF２）と比較し、Ｓ値がREF２より大きい場合には下記（４）に進むが、Ｓ値がREF２以下の場合には下記（５）に進む
（３）上記のスピード感Ｓを所定の基準値（REF３）と比較し、Ｓ値がREF３より大きい場合には下記（６）に進むが、Ｓ値がREF３以下の場合には下記（４）に進む
（４）テンポｔをそのまま採用し、下記（７）に進む
（５）テンポｔに対して、その半分の値を補正後のテンポとして下記（７）に進む
（６）テンポｔに対して、その２倍の値を補正後のテンポとして下記（７）に進む
（７）テンポ値を確定する。
【０１４１】
テンポ揺れ検出部２０は、周波数分析部８からの信号に基づいて、テンポ揺れ（テンポの揺らぎ）を検出する。
【０１４２】
テンポ揺れの検出は下記の手順で行われる。
【０１４３】
（１）周波数分析部８から供給されたテンポ５０乃至４００の範囲に対応する各周波数の周波数成分を、すべての周波数に亘って加算する（加算値＝ΣＡ）
（２）上記テンポ５０乃至４００の範囲に対応する各周波数の周波数成分Ａから、最大の周波数成分（これを「Ａ1」と記す。）を抽出する
（３）「Ｗ＝（ΣＡ）／Ａ1」により、テンポ揺れＷを算出する。
【０１４４】
テンポやテンポ揺れの情報を用いて、楽曲の分類等が可能となる。例えば、クラシック音楽等の場合には、一般に、テンポが遅く、テンポ揺れが大きい。また、電子ドラム等が用いられている音楽の場合には、一般に、テンポが速く、テンポ揺れＷが小さい。このような特徴に基づいて、曲のジャンル等を識別し、その結果をメタデータとして利用することができる。
【０１４５】
図２３は、ジャンル別のメタデータについて、ユーザＡ乃至Ｄの関心度（数値が大きいほど関心度が高いことを意味する。）を例示したものである。
【０１４６】
例えば、ユ−ザＡ、Ｂではポップス（Ｊ−Ｐｏｐ）とクラシック音楽（Ｃｌａｓｓｉｃ）への関心度が高く、お互いのベクトル空間距離が近いが、ユーザＣではジャズ（Ｊａｚｚ）への関心度が高く、ユ−ザＡやＢに対してはベクトル空間距離が離れている。
【０１４７】
以上のように楽曲の周波数分析によって特徴量を抽出して、その結果をユーザのプロファイルに反映させることができるので、ユーザが曲のジャンル等を毎回入力するといった手間を省くことができる（例えば、ユーザがテンポの速い曲を好むか、あるいはテンポの遅い曲を好むか等の情報に関して、再生される曲の音声信号をアプリケーション側で分析することにより、正確に把握することが可能となる。）。
【０１４８】
上記に説明した構成によれば、下記に示す利点が得られる。
【０１４９】
・クライアントマシン同士がネットワーク上でお互いに対等な関係をもって接続することによって協調フィルタリングを行えるので、大規模なサーバーを必要としないこと（協調フィルタリングによってコンテンツのお勧めサービス等を行いたい場合に、サーバー導入時やサービス開始後のメンテナンスにおけるコストが大幅に削減される。）。
【０１５０】
・多数の人物の中から自分にとって有用な情報を持つ人物のみと選択的にコミュニケーションを行う場合に、P2Pモデル形態での個人間通信でお互いのベクトル空間距離を求めて、自分とその相手との相関度を計算するとともに、その計算結果に基づいて相手を選択して通信を行えること（通信相手を絞り込んでから情報交換を行える。）。
【０１５１】
・楽曲の特徴やユーザの再生頻度や再生方法等を分析して、ユーザの趣味嗜好を定量化したプロファイルを用いて、趣味の合う仲間を探し出して、好感度の高い曲を互いに紹介し合ったり、紹介された曲を試聴できること。
【０１５２】
・プロファイルの記述にはメタデータを用いることで、相関度の計算処理上の負担を軽減できること（通信相手が高性能の情報処理装置を使用しているとは限らないため。）。
【０１５３】
・楽曲の自動分析によってテンポ等の特徴量を抽出した結果を利用してプロファイルの生成や更新等を行えること。
【図面の簡単な説明】
【０１５４】
【図１】図２乃至図４とともに本発明に係るシステムの概要を示すものであり、本図は、自己の装置から他ユーザの装置への同報通信を示す。
【図２】反応のあったユーザから相関度の計算結果が返送される様子を示す図である。
【図３】相関度の高い相手を特定してリクエストを発する様子を示す図である。
【図４】リクエストへの応答の様子を示す図である。
【図５】本発明に係る情報処理装置の構成例を示す概念図である。
【図６】本発明に係るアプリケーション処理の一例を示すフローチャート図である。
【図７】P2Pモデル形態での、自己を中心とした通信範囲の連鎖的拡大について説明するための図である。
【図８】図９乃至図１１とともに、本発明に係る実施の一例を示すものであり、本図はアプリケーション起動直後の表示画面例を示す図である。
【図９】相手検索時の表示画面例を示す図である。
【図１０】お勧めウェブページのリスト表示画面例を示す図である。
【図１１】リストの作成法に関するアルゴリズムの説明図である。
【図１２】図１３乃至図２３とともに、本発明に係る実施の別例を示すものであり、本図はアプリケーション起動直後の表示画面例を示す図である。
【図１３】プロファイルデータを表示させた場合の画面例を示す図である。
【図１４】通信可能な相手とそのベクトル空間距離を表示させた場合の画面例を示す図である。
【図１５】通信相手からのお勧めの曲リストを表示させた場合の画面例を示す図である。
【図１６】ユーザが選んだコンテンツの取得中の表示画面例を示す図である。
【図１７】同報通信からコンテンツ取得までの処理の流れを説明するための図である。
【図１８】図１９乃至図２２とともに、画面表示形態について別例を示すものであり、本図は自己のプロファイル表示画面例を示す図である。
【図１９】自分と相手との相関度を表示する場合の画面例を示す図である。
【図２０】自己所有の音楽コンテンツリストから所望の曲を選らんで再生する場合（ローカル再生）の画面例を示す図である。
【図２１】相手所有の音楽コンテンツリストから所望の曲を選らんで再生する場合（ネットワーク再生）の画面例を示す図である。
【図２２】楽曲の特徴量検出手段について構成例を示す図である。
【図２３】複数のユーザ間でのジャンル別の関心度を例示した説明図である。
【符号の説明】
【０１５５】
２…情報処理装置、１…第一の装置、２…第二の装置
【図１】
2006011550.tif 000003
【図２】
2006011550.tif 000004
【図３】
2006011550.tif 000005
【図４】
2006011550.tif 000006
【図５】
2006011550.tif 000007
【図６】
2006011550.tif 000008
【図７】
2006011550.tif 000009
【図８】
2006011550.tif 000010
【図９】
2006011550.tif 000011
【図１０】
2006011550.tif 000012
【図１１】
2006011550.tif 000013
【図１２】
2006011550.tif 000014
【図１３】
2006011550.tif 000015
【図１４】
2006011550.tif 000016
【図１５】
2006011550.tif 000017
【図１６】
2006011550.tif 000018
【図１７】
2006011550.tif 000019
【図１８】
2006011550.tif 000020
【図１９】
2006011550.tif 000021
【図２０】
2006011550.tif 000022
【図２１】
2006011550.tif 000023
【図２２】
2006011550.tif 000024
【図２３】
2006011550.tif 000025