以下、図面を参照して、本発明の実施の形態について説明する。
図1は、本発明の一実施の形態に係るユーザ紹介システムの構成例を示すブロック図である。このユーザ紹介システム10は、例えば、SNS(social networking service)を提供するコンテンツウェブサイトとして構成される。コンテンツウェブサイトでは、音楽、映画、動画、TV番組、文章等のメディアコンテンツ、物販商品などのコンテンツを提供するとともに、あるユーザに別のユーザを紹介するサービスを提供するものとする。
ユーザ紹介システム10においては、例えば、パーソナルコンピュータなどに実装されたブラウザを介してコンテンツウェブサイトにアクセスした個々のユーザのそれぞれの個人ページが提供される。個人ページには、そのユーザが公開するコンテンツの情報であって、例えば、気に入った音楽、映画などのコンテンツの情報が掲載されるようになされている。ユーザ紹介システム10のユーザは、自分のパーソナルコンピュータなどに実装されたブラウザを利用し、インターネットなどのネットワークを介してコンテンツウェブサイトにアクセスし、コンテンツウェブサイト内のページ、またはコンテンツウェブサイトにリンクされたページなどを閲覧する。
このユーザ紹介システム10は、例えば、インターネットなどのネットワークに接続されたサーバなどとして構成される。なお、相互に接続された複数のサーバによりユーザ紹介システム10が構成されるようにしても構わない。
図1のユーザ情報処理部32は、上述した個人ページを有するユーザであって、コンテンツウェブサイトにアクセスするユーザのパーソナルコンピュータなどに実装されたブラウザ31からユーザ情報を取得する。ここでユーザ情報とは、例えば、そのユーザのコンテンツウェブサイト利用履歴(例えば、閲覧したページ)とユーザが公開したコンテンツに関する情報などから構成される情報とされる。
そして、ユーザ情報処理部32は、ブラウザ31からユーザ情報を取得すると、取得したユーザ情報に含まれる情報に基づいて、コンテンツメタ情報DB(データベース)33からコンテンツメタ情報を読み込む。ここで、コンテンツメタ情報とは、例えば、音楽のコンテンツのジャンル、アーティスト、レビュー文に出現する単語、映像のコンテンツを解析することにより抽出された特徴量など、それぞれのコンテンツに関連するデータを表すものとする。
コンテンツメタ情報DB33には、例えば、個々のコンテンツに固有のIDとコンテンツメタ情報が対応付けられて記憶されており、ユーザ情報処理部32は、ユーザ情報に含まれるコンテンツのIDを特定し、それらのコンテンツに対応するコンテンツメタ情報を取得するようになされている。コンテンツメタ情報は、例えば、公開されたコンテンツの供給会社(または製作者)などにより提供された情報などを用いて生成され、予めコンテンツメタ情報DB33に記憶されているものとする。
ユーザ情報処理部32は、ブラウザ31から取得したユーザ情報と、コンテンツメタ情報DB33から取得したコンテンツメタ情報に基づいてユーザ嗜好情報Aを生成する。詳細は後述するが、ユーザ嗜好情報Aは、多数の要素を有する高次元のベクトルとされる。ユーザ嗜好情報Aは、複数のユーザのそれぞれについて生成され、生成されたユーザ嗜好情報Aは、A嗜好情報DB34に記憶される。
ユーザ情報解析部35は、A嗜好情報DB34からユーザ嗜好情報Aを読み込んで解析し、ユーザ嗜好情報Bを生成するようになされている。詳細は後述するが、ユーザ嗜好情報Bは、ユーザ嗜好情報Aの要素数を圧縮(少なく)したベクトルとされ、ユーザ情報解析部35は、マルチトピックモデルによる解析を行うことにより、要素数を圧縮したベクトルを生成する。
マルチトピックモデルによる解析手法としては、例えば、後述するPLSA(Probabilistic Latent Semantic Analysis)、LDA(Latent Dirichlet Allocation)などの、単語や文書の生起確率を求める手法が挙げられる。ユーザ情報解析部35は、例えば、ユーザ嗜好情報AについてPLSAによる解析を行うことにより、要素数を圧縮したベクトルを生成する。ユーザ嗜好情報Bは、複数のユーザのそれぞれについて生成され、生成されたユーザ嗜好情報Bは、B嗜好情報DB36に記憶される。
紹介ユーザ決定部37は、ブラウザ31のユーザのユーザ嗜好情報Aに基づいて、ユーザ紹介システム10に個人ページを有する複数のユーザのそれぞれのユーザ嗜好情報Aまたはユーザ嗜好情報Bをフィルタリングし、フィルタリングの結果得られたユーザ嗜好情報Aまたはユーザ嗜好情報Bに対応するユーザを特定するとともに、それらの特定されたユーザのユーザ嗜好情報Bを抽出する。
そして、紹介ユーザ決定部37は、抽出されたユーザ嗜好情報Bのそれぞれと、ブラウザ31のユーザのユーザ嗜好情報Bの類似度を演算し、その類似度に基づいてブラウザ31のユーザに紹介すべきユーザを決定する。
紹介ユーザ提示部38は、紹介ユーザ決定部37により決定されたユーザのユーザ嗜好情報Aに基づいて後述するように紹介理由を作成し、紹介すべきユーザを紹介理由とともに表示する紹介ユーザリストを表示するようになされている。
なお、以後、例えば、図1のブラウザ31のユーザであって、ユーザ紹介システム10による別のユーザの紹介を希望するユーザを利用ユーザと称し、利用ユーザに紹介すべきユーザとしてユーザ紹介システム10が選択したユーザを紹介ユーザと称することにする。
また、ここでは、ユーザ紹介システム10に個人ページを有するユーザのうちの所定のユーザが紹介ユーザとして選択されると説明したが、例えば、ユーザ紹介システム10にURL(Uniform Resource Locator)などのアドレスが登録された、いわゆるウェブログ(ブログ)の管理者であるユーザが紹介ユーザとして紹介されるようにしてもよい。
図2は、ユーザ紹介システム10によるユーザの紹介の処理について説明する図である。
同図に示されるように、ユーザ情報とコンテンツメタ情報とに基づいてユーザ嗜好情報Aが生成される。ユーザ嗜好情報AについてPLSAによる解析を行うことにより、要素数を圧縮したベクトルであるユーザ嗜好情報Bが生成される。
そして、ユーザ嗜好情報Aとユーザ嗜好情報Bとに基づいて、利用ユーザに紹介すべきユーザである紹介ユーザが決定されて、その紹介ユーザが提示されることになる。
次に、ユーザ嗜好情報Aについて説明する。図3は、ユーザ嗜好情報Aの構成例を示す図である。
図3は、ユーザがコンテンツ1、コンテンツ2、およびコンテンツ3を視聴、録画するなどして利用した場合のユーザ嗜好情報Aの例であって、コンテンツ1はコンテンツメタ情報a(同図にはメタ情報aと表示)を有し、コンテンツ2はコンテンツメタ情報cを有し、コンテンツ3はやはりコンテンツメタ情報c(同図にはメタ情報cと表示)を有するものとする。図3の例では、コンテンツ1がメタ情報aを有することを、コンテンツ1の行とメタ情報aの列が交差するマスに1を記入することで表現している。
各コンテンツのコンテンツメタ情報には重みが乗じられるようになされており、この重みは、例えば、録画、視聴などの行為であって、コンテンツの利用状況に対応して定められるようになされている。例えば、ユーザが、単に視聴したコンテンツと、録画したコンテンツとでは、そのユーザにとっての重要度が異なると考えられる。すなわち、ユーザは、単に視聴のみを行ったコンテンツよりも、録画したコンテンツの方がより興味があったものと推定することができ、ユーザの嗜好に関する情報を生成する際には、各コンテンツの利用状況(録画、視聴など)に応じた重み付けがなされることが好ましい。
図3の例では、コンテンツ1の利用状況に応じた重みが「0.4」とされ、コンテンツ2の利用状況に応じた重みが「0.9」とされ、コンテンツ3の利用状況に応じた重みが「0.4」とされている。
ユーザ嗜好情報Aは、各コンテンツメタ情報(いまの場合、メタ情報a乃至メタ情報c)の値(いまの場合「1」または「0」)に対して、それぞれコンテンツの利用状況に応じた重みを乗じた値を要素としたベクトルとされる。
図3の例では、ユーザ嗜好情報Aのメタ情報aの要素における値は、1×0.4=0.4、メタ情報bの要素では0、メタ情報cの要素では1×0.9+1×0.4=1.3となり、ユーザ嗜好情報Aは3次元の実数値ベクトル(0.4,0,1.3)として構成される。
なお、重みは、利用状況によらず同一としてもよい。例えば、図3の例において、重みをすべて「1」とすればユーザ嗜好情報Aは、ベクトル(1,0,2)となる。
また、コンテンツメタ情報を用いず、コンテンツ自体をユーザ嗜好情報Aの要素として用いるようにしてもよい。図4は、コンテンツ自体を要素として用いる場合のユーザ嗜好情報Aの構成例を示す図である。同図の場合、ユーザ嗜好情報Aは、ベクトル(0.4,0.9,0.4)となる。
図4に示されるように、ユーザ嗜好情報Aを構成する場合、図1においてコンテンツメタ情報DB33を設けないようにしてもよい。
図3または図4に示したユーザ嗜好情報Aの例は、3次元のベクトルであるが、実際には、要素の数が膨大なものとなる。コンテンツ、およびコンテンツメタ情報の数(種類)が大量に存在するからである。実際のユーザ嗜好情報Aは、数千次元乃至数万次元の高次元の実数値ベクトルとなる。
また、大量に存在するコンテンツのうち、ユーザが実際に視聴、録画などするコンテンツは、ごく一部であると考えられる。すなわち、ユーザ嗜好情報Aのベクトルのほとんどの要素の値は「0」となる。このように、要素の殆どが0となることをスパースといい、ユーザ嗜好情報Aは、スパースな高次元ベクトルといえる。
なお、ユーザ嗜好情報Aは、ユーザが利用したコンテンツの如何にかかわらず、各ユーザのユーザ嗜好情報Aのベクトルの要素の数が同じになるように、生成されるものとする。例えば、A嗜好情報DB34に、予め設定された数の要素を有するベクトルとしてユーザ嗜好情報Aのひな形などが記憶されており、ユーザ情報処理部32がブラウザ31から取得したユーザ情報に対応して、ユーザ嗜好情報Aのひな形の各要素に値を書き込むことでユーザ嗜好情報Aが生成されるようにしてもよい。
次に、ユーザ嗜好情報Bについて説明する。上述したように、ユーザ嗜好情報Bは、PLSAによる解析を行うことにより、ユーザ嗜好情報Aの要素数を圧縮した、比較的低次元のベクトルとされる。
図1のユーザ情報解析部35は、マルチトピックモデル(例えば、PLSA)の解析の処理を実行可能な機能ブロックとして構成されており、例えば、与えられたPLSAの確率モデルのパラメータに応じて、入力されたユーザ嗜好情報Aに対するPLSAの解析の処理を実行するようになされている。
また、ユーザ情報解析部35は、複数のユーザ嗜好情報Aに対してPLSAの解析の処理を実行することにより、最適なPLSAの確率モデルのパラメータを学習するようになされている。
PLSAは、例えば、テキスト解析などに多く用いられており、トピックと呼ばれる単語の生起確率を決める確率密度を1つ以上考慮することによって、単語の生起確率を計算し、各文書固有のトピック生起確率によって、文書を特徴づける方式である。PLSAでは、例えば、大規模な文書コーパスを用いて、トピックの単語生起確率と文書のトピック生起確率をEM(Expectation Maximization)アルゴリズムにより予め特定する。また、PLSAでは、トピックの単語生起確率をパラメータとして与えて、入力された文書に対応する文書のトピック生起確率を求めるようにすることもできる。
なお、PLSAの詳細は、「Thomas Hofmann, Probabilistic Latent Semantic Indexing, Proceedings of the Twenty-Second Annual International SIGIR Conference on Research and Development in Information Retrieval (SIGIR-99), 1999」などの文献に記載されている。
PLSAと同様の操作はLDA(Latent Dirichlet Allocation)によっても可能である。LDAはPLSAを拡張したものであり、LDAの詳細については「David M. Blei, Andrew Y. Ng, Michael I. Jordan, Latent Dirichlet Allocation, Journal of Machine Learning Research 3, 2003」に記載されている。ユーザ情報解析部35は、PLSAの解析の処理に替えてLDAの解析の処理を実行するようにしてもよい。
ここでは、マルチトピックモデルによる解析としてPLSAを用いる場合の例について説明することにする。すなわち、ユーザ嗜好情報Bの要素数と同数または同数以上のトピックを設定したPLSAの確率モデルを用意し、ユーザ嗜好情報Aの各要素の生起確率を求め、ユーザ嗜好情報Aの各要素の生起確率に基づいて、ユーザ嗜好情報Bの要素の値を定めることとする。
図5は、ユーザ1乃至ユーザ3のユーザ嗜好情報Aの例を示す図であり、図6は、図5のユーザ嗜好情報Aに対してPLSAによる解析を行うことにより生成されたユーザ嗜好情報Bの例を示す図である。ここでは、説明を簡単にするために、5次元のベクトルであるユーザ嗜好情報Aが3次元のベクトルであるユーザ嗜好情報Bに変換される例を説明するが、実際には、ユーザ嗜好情報A、ユーザ嗜好情報Bともにより高次元のベクトルとなる。
いまの場合、ユーザ情報解析部35では、トピック数が3でありかつパラメータが予め特定されたPLSAの確率モデルを用意し、ユーザ嗜好情報Aの要素A1乃至要素A5の生起確率を求めることになる。第1のトピックでは、要素A1と要素A2の生起確率が高くなり、第2のトピックでは、要素A3と要素A4の生起確率が高くなったものとする。すなわち、要素A1と要素A2は類似した要素であり、また要素A3と要素A4は類似した要素といえる。
いまの場合、第1乃至第3のトピックが図6の要素B1乃至要素B3に対応するので、要素A2の値が比較的大きいユーザ1のユーザ嗜好情報Bと、要素A1の値が比較的大きいユーザ2のユーザ嗜好情報Bにおいては、ともに要素B1の値が比較的大きい値となっている。要素A1と要素A2が類似した要素だからである。また、要素A3の値が比較的大きいユーザ1のユーザ嗜好情報Bと、要素A4の値が比較的大きいユーザ2のユーザ嗜好情報Bにおいては、ともに要素B2の値が比較的大きい値となっている。要素A3と要素A4が類似した要素だからである。これに対して、要素A1乃至要素A4のいずれも比較的小さい値であるユーザ3のユーザ嗜好情報Bにおいては、要素B1と要素B2の値は比較的小さい値となっている。
このようすることで、高次元のスパースなベクトルであるユーザ嗜好情報Aを、より低次元のベクトルであるユーザ嗜好情報Bに変換(生成)することができる。
また、ユーザ嗜好情報Aにおいては、ユーザ1の要素A1の値は0であり、ユーザ2の要素A1の値が1であり、ユーザ嗜好情報Aのみを参照すると、双方の値に隔たりがあるため、ユーザ1とユーザ2の嗜好が大きく異なっていると誤り易いが、ユーザ嗜好情報Bにおいては、ユーザ1の要素B1の値が0.4とされ、ユーザ2の要素B1の値が0.4とされ、例えば、ユーザ1とユーザ2の嗜好が大きく異なっていると誤って判断される可能性は小さくなる。
このように、ユーザ嗜好情報Bを生成することで、ユーザの嗜好をより簡単、かつ正確に比較することが可能となる。
なお、ユーザ嗜好情報Bは、ユーザ嗜好情報Aの如何にかかわらず、各ユーザのユーザ嗜好情報Bのベクトルの要素の数が同じになるように、生成されるものとする。例えば、B嗜好情報DB36に、予め設定された数の要素を有するベクトルとしてユーザ嗜好情報Bのひな形などが記憶されており、ユーザ情報解析部35がA嗜好情報DB34から取得したユーザ嗜好情報Aを解析して、ユーザ嗜好情報Bのひな形の各要素に値を書き込むことでユーザ嗜好情報Bが生成されるようにしてもよい。
次に、紹介ユーザの決定についてより詳細に説明する。上述したように、紹介ユーザ決定部37は、利用ユーザのユーザ嗜好情報Aに基づいて、ユーザ紹介システム10に個人ページを有する複数のユーザのそれぞれのユーザ嗜好情報Aをフィルタリングし、フィルタリングの結果得られたユーザ嗜好情報Aに対応するユーザを特定するとともに、それらの特定されたユーザのユーザ嗜好情報Bを抽出する。
例えば、紹介ユーザ決定部37は、利用ユーザのユーザ嗜好情報Aの中で最大の値をもつ要素を検索し、その要素におけるユーザ嗜好情報Aの値が閾値以上のユーザのみを抽出し、抽出されたユーザをその後の処理の対象(候補ユーザ)とする。閾値は、例えば、利用ユーザのユーザ嗜好情報Aの中で最大の値を持つ要素の値の2分の1とする。例えば、図5の例において、ユーザ3が利用ユーザである場合、ユーザ3の最大の要素は要素A5である。ユーザ1の要素A5の値は0.8>(1.0/2)であるので、ユーザ1は候補ユーザとなる。一方、ユーザ2の要素A5の値は0<(1.0/2)であるので、ユーザ2は候補ユーザとはならない。
ここでは、利用ユーザのユーザ嗜好情報Aに基づいて、各ユーザのユーザ嗜好情報Aをフィルタリングする例について説明したが、例えば、利用ユーザのユーザ嗜好情報Bに基づいて、各ユーザのユーザ嗜好情報Bがフィルタリングされるようにしてもよいし、利用ユーザのユーザ嗜好情報Aおよびユーザ嗜好情報Bの両方を用いて各ユーザをフィルタリングするようにしてもよい。
なお、フィルタリングを行わず、ユーザ紹介システム10に個人ページを有する複数のユーザを全て候補ユーザとするようにしてもよい。
そして、紹介ユーザ決定部37は、上述したように、候補ユーザのユーザ嗜好情報Bのそれぞれと、利用ユーザのユーザ嗜好情報Bの類似度を演算し、その類似度に基づいて紹介ユーザを決定する。
ここで、類似度は、例えば、ある候補ユーザのユーザ嗜好情報Bのベクトルと、利用ユーザのユーザ嗜好情報Bのベクトルとのユークリッド距離の符号反転値として演算される。例えば、図6の例において、ユーザ1とユーザ2の類似度は、次式により演算される。
なお、類似度は、ユークリッド距離に基づいて演算されるものに限られるものではなく、例えば、ベクトルの内積として算出されるようにすることも可能である。要は、2人のユーザのユーザ嗜好情報Bを入力とし、実数が出力されるものであればどのような計算方
法でもよい。
ここでは、候補ユーザのユーザ嗜好情報Bのそれぞれと、利用ユーザのユーザ嗜好情報Bの類似度を演算すると説明したが、例えば、類似度の演算に、ユーザ嗜好情報Bだけでなくユーザ嗜好情報Aも用いられるようにしてもよい。
このように、利用ユーザと候補ユーザの類似度が演算され、例えば、類似度の大きい順にユーザをソートし、紹介ユーザリストとしてブラウザに表示される。このとき、上述したように、紹介ユーザ提示部38は、紹介ユーザのユーザ嗜好情報Aに基づいて紹介理由を作成し、紹介すべきユーザを紹介理由とともに表示する。
紹介理由は、紹介ユーザの嗜好の特徴であり、例えば、ユーザ嗜好情報Aの各要素のうち大きい値をもつ上位3つの要素の名前を表示する。例えば、図5のユーザ1が紹介ユーザであった場合、要素A2、要素A5、および要素A3の名前(例えば、コンテンツメタ情報であって、アーティスト名、ジャンルなど)がユーザ1の紹介理由として表示されることになる。
また、利用ユーザのユーザ嗜好情報Aの各要素からも、値の大きい上位10個の要素を選んでおき、紹介ユーザの紹介理由の各要素と比較する。そして、利用ユーザのユーザ嗜好情報Aの各要素から選ばれた10個の要素と、紹介ユーザのユーザ嗜好情報Aの各要素から選ばれた3個の要素とにおいて共通する要素がある場合、紹介理由として表示されるその共通の要素の色を変える。
図7は、紹介ユーザリストの例を示している。この例では、紹介ユーザが「○○○さん」、「×××さん」、「△△△さん」、・・・と表示されている。そして、紹介ユーザ「○○○さん」の紹介理由が「要素A1」、「要素A10」、「要素A2」とされており、紹介ユーザ「×××さん」の紹介理由が「要素A9」、「要素A2」、「要素A8」とされており、紹介ユーザ「△△△さん」の紹介理由が「要素A5」、「要素A8」、「要素A3」とされている。いまの場合、利用ユーザのユーザ嗜好情報Aの各要素の値の大きい上位10個の要素が、それぞれ要素A2、要素A5、要素A6、要素A7、要素A10、要素A11、要素A12、要素A13、要素A14、および要素A15であったものとする。
紹介理由に表示される要素のうち、上述した利用ユーザのユーザ嗜好情報Aから選ばれた10個の要素と共通するものは、要素A2、要素A5、および要素A10なので、図7の画面の中でこれらの要素の色が変更されて表示される。同図においては、下線により色が変更されたことを表している。このように表示することで、紹介ユーザの特徴、利用ユーザと紹介ユーザの嗜好の違い、利用ユーザと紹介ユーザの嗜好が同じ部分が一目でわかるようになる。
なお、図7には、説明を簡単にするために、紹介理由に「要素A1」、「要素A10」、「要素A2」、・・・と記載したが、実際には、各要素の名前であって、アーティスト名、ジャンルなどが紹介理由として表示されることになる。
また、紹介理由としてユーザ嗜好情報Bの要素を表示するようにしてもよい。
さらに、紹介理由の色を変える代わりに、フォントを変えるようにしてもよいし、文字サイズを変えるようにしてもよいし、点滅させて表示するなどしてもよい。
あるいはまた、紹介理由を文字で表示せず、それぞれの要素に対応するアイコンなどの画像として表示するようにしてもよい。その場合、例えば、紹介理由の色を変える代わりに、画像を動かして表示するなどしてもよい。
次に、図8のフローチャートを参照して、ユーザ紹介システム10によるユーザ嗜好情報Aの処理について説明する。この処理は、ユーザが初めてユーザ紹介システム10を利用するとき、または、ユーザ情報が変更されたとき実行される。
ステップS11において、図1のユーザ情報処理部32は、コンテンツウェブサイトにアクセスしたユーザのパーソナルコンピュータなどに実装されたブラウザ31からユーザ情報を取得する。ユーザ情報には、例えば、そのユーザのコンテンツウェブサイト利用履歴(例えば、閲覧したページ)とユーザが公開したコンテンツに関する情報などが含まれている。
ステップS12において、ユーザ情報処理部32は、取得したユーザ情報に含まれる情報に基づいて、コンテンツメタ情報DB(データベース)33からコンテンツメタ情報を読み込む。このとき、ユーザ情報処理部32は、例えば、ユーザ情報に含まれるコンテンツのIDを特定し、それらのコンテンツに対応するコンテンツメタ情報を取得する。
ステップS13において、ユーザ情報処理部32は、コンテンツウェブサイトにアクセスしたユーザのユーザ嗜好情報AをA嗜好情報DB34から読み込む。なお、そのユーザが初めてユーザ紹介システム10を利用する場合、ユーザ嗜好情報Aがまだ作成されていないので、ステップS13では、例えば、ユーザ嗜好情報Aのひな形が読み込まれることになる。
ステップS14において、ユーザ情報処理部32は、ステップS11で取得したユーザ情報と、ステップS12で取得したコンテンツメタ情報に基づいてユーザ嗜好情報Aを更新する。なお、そのユーザが初めてユーザ紹介システム10を利用する場合、ステップS14でそのユーザのユーザ嗜好情報Aが生成されることになる。
ステップS15において、ステップS14の処理で更新または生成されたユーザ嗜好情報AがA嗜好情報DB34に記憶される。
このようにして、ユーザ嗜好情報Aが生成される。
次に、図9のフローチャートを参照して、ユーザ紹介システム10によるパラメータ学習処理について説明する。この処理は、上述したPLSAの確率モデルのパラメータを学習するものであり、例えば、A嗜好情報DB34に記憶されるユーザ嗜好情報Aが所定の数以上となったとき実行される。
ステップS31において、ユーザ情報解析部35は、A嗜好情報DB34から複数のユーザ嗜好情報Aを読み込んで解析し、ステップS32でPLSAの確率モデルのパラメータを設定する。
このようにしてパラメータの学習が行われる。
次に、図10のフローチャートを参照して、ユーザ紹介システム10によるユーザ嗜好情報B生成処理について説明する。この処理は、例えば、図9を参照して上述した処理により、パラメータが学習された後、そのパラメータを用いて実行される。また、この処理は、ユーザ情報が変更されたとき図8を参照して上述した処理が実行されることでそのユーザのユーザ嗜好情報Aが更新されたとき、実行されるようにしてもよい。
ステップS51において、ユーザ情報解析部35は、ユーザ嗜好情報Bの要素数を決定する。要素数は、予め定められた値とされてもよいし、例えば、システム管理者などの指令に基づいて決定されるようにしてもよい。
ステップS52において、ユーザ情報解析部35は、A嗜好情報DB34からユーザ嗜好情報Aを読み込む。
ステップS53において、ユーザ情報解析部35は、ステップS52の処理で読み込んだユーザ嗜好情報AについてPLSA(Probabilistic Latent Semantic Analysis)による解析を行うことにより、要素数を圧縮する。
ステップS54において、ユーザ情報解析部35は、B嗜好情報DB36からユーザ嗜好情報Bを読み込む。なお、そのユーザのユーザ嗜好情報Bがまだ作成されていない場合、ステップS54では、例えば、ユーザ嗜好情報Bのひな形が読み込まれることになる。
ステップS55において、ユーザ情報解析部35は、ステップS53の処理結果に基づいてユーザ嗜好情報Bを更新する。なお、そのユーザのユーザ嗜好情報Bがまだ作成されていない場合、ステップS55でそのユーザのユーザ嗜好情報Bが生成されることになる。
ステップS56において、ステップS55の処理で更新または生成されたユーザ嗜好情報BがB嗜好情報DB36に記憶される。
このようにして、ユーザ嗜好情報Bが生成される。
なお、図10を参照して上述した処理の実行に伴って、PLSAの確率モデルのパラメータが学習されるようにすることも可能である。すなわち、図9を参照して上述した処理により、パラメータが学習された後、そのパラメータを用いて図10の処理が実行されるのではなく、図10の処理を実行しながら、パラメータを学習させるようにしても構わない。
次に、図11のフローチャートを参照して、ユーザ紹介システム10による紹介リスト生成表示処理について説明する。この処理は、例えば、利用ユーザから紹介リストの表示が指令されたとき実行される。
ステップS71において、紹介ユーザ決定部37は、利用ユーザのユーザ嗜好情報Aを読み込む。
ステップS72において、紹介ユーザ決定部37は、ステップS71で読み込んだ利用ユーザのユーザ嗜好情報Aに基づいて、ユーザのフィルタリングを行う。このとき、例えば、利用ユーザのユーザ嗜好情報Aの中で最大の値を持つ要素が検索され、その要素におけるユーザ嗜好情報Aの値が閾値以上のユーザのみが抽出され、候補ユーザとされる。
なお、ステップS72の処理は、省略されるようにしてもよい。
ステップS73において、紹介ユーザ決定部37は、ステップS72のフィルタリングにより得られた候補ユーザのユーザ嗜好情報Bを、B嗜好情報DB36から抽出する。
ステップS74において、紹介ユーザ決定部37は、利用ユーザのユーザ嗜好情報Bと、候補ユーザのユーザ嗜好情報Bのそれぞれとの類似度を演算する。このとき、例えば、ユーザ嗜好情報Bをベクトルとした場合のユークリッド距離の符号反転値として類似度が演算される。
ステップS75において、紹介ユーザ決定部37は、ステップS74の処理により得られた類似度に基づいて紹介ユーザを決定する。このとき、例えば、予め設定された閾値以上の類似度となったユーザ嗜好情報Bに対応する候補ユーザが紹介ユーザとなるように決定される。
ステップS76において、紹介ユーザ提示部38は、例えば、紹介ユーザのユーザ嗜好情報Aに基づいて紹介理由を作成する。
ステップS77において、紹介ユーザ提示部38は、紹介ユーザリストを、例えば、利用ユーザのブラウザに表示させる。このとき、例えば、図7を参照して上述したような画面が利用ユーザのパーソナルコンピュータの画面などに表示されることになる。
このようにしてユーザの紹介が行われる。
以上においては、主に、利用ユーザに紹介する紹介ユーザを特定するために、ユーザ嗜好情報Aとユーザ嗜好情報Bを用いる例について説明したが、個々のユーザの嗜好の特徴をより分かり易く表現するために、ユーザ嗜好情報Aとユーザ嗜好情報Bが用いられるようにしてもよい。
例えば、紹介ユーザが多数あった場合、利用ユーザが、紹介ユーザの個人ページを逐一閲覧するには、時間と手間がかかる。実際には、利用ユーザが、それぞれの紹介ユーザの個人ページを短時間眺め、どの紹介ユーザの個人ページを、時間をかけて閲覧する価値があるかどうか判断し、その後、時間をかけて閲覧する価値があると判断された少数の紹介ユーザの個人ページを、あらためて閲覧することになるであろう。
また、システムにより紹介されるユーザのみならず、例えば、他のユーザの嗜好の特徴が自分の嗜好の特徴とどの程度一致、または異なっているのかについて、ユーザは関心をもっていると思われ、ユーザの嗜好の特徴を直感的に把握させることができればより便利である。
上述したユーザ嗜好情報Aとユーザ嗜好情報Bを用いれば、ユーザの嗜好の特徴を直感的に把握させるようにすることも可能である。
図12は、ユーザ紹介システムにより、ユーザの嗜好の特徴を直感的に把握できるように表示させる場合の処理について説明する図である。
同図に示されるように、ユーザ情報とコンテンツメタ情報とに基づいてユーザ嗜好情報Aが生成される。ユーザ嗜好情報AについてPLSAによる解析を行うことにより、要素数を
圧縮したベクトルであるユーザ嗜好情報Bが生成される。
ここまでは、図2を参照して上述した場合と同様である。
そして、ユーザ嗜好情報Aとユーザ嗜好情報Bとに基づいて、例えば、あるユーザの嗜好表現値を計算する。嗜好表現値は、ユーザの嗜好の特徴を直感的に把握できるように表示するために用いられる値とされる。嗜好表現値の詳細については後述する。
さらに、計算された嗜好表現値に基づいて、そのユーザの嗜好の特徴が直感的に把握できるように表現されて提示(表示)される。
図13は、ユーザの嗜好の特徴を直感的に把握できるように表示させる場合のユーザ紹介システム20の構成例を示すブロック図である。同図は、図1に対応する図であり、図1と対応する部分には、同一の符号が付されている。
このユーザ紹介システム20も、ユーザ紹介システム10と同様に、例えば、インターネットなどのネットワークに接続されたサーバなどとして構成される。なお、相互に接続された複数のサーバによりユーザ紹介システム20が構成されるようにしても構わない。その他、ユーザ紹介システム20の紹介ユーザ、利用ユーザについてもユーザ紹介システム10の場合と同様である。
また、ユーザ紹介システム20には、図1の紹介ユーザ決定部37および紹介ユーザ提示部38が設けられていないが、例えば、嗜好表現値計算部41は、紹介ユーザ決定部37の一部として実装され、ユーザ嗜好表現部42は、紹介ユーザ提示部38の一部として実装されるようにしてもよい。
図13におけるブラウザ31乃至B嗜好情報DB36は、図1の場合と同様なので詳細な説明は省略する。
嗜好表現値計算部41は、B嗜好情報DB36に記憶されているユーザ嗜好情報B、またはA嗜好情報DB34に記憶されているユーザ嗜好情報Aに基づいて嗜好表現値を計算する。
嗜好表現値は、例えば、ユーザ嗜好情報Bの各要素の値とされる。上述したように、ユーザ嗜好情報Bは、高次元のスパースなベクトルであるユーザ嗜好情報Aの要素数が圧縮されて生成された、より低次元のベクトルである。このため、例えば、ユーザ嗜好情報Aの要素では、双方の値に隔たりがある場合でも、ユーザ嗜好情報Bを参照すれば嗜好が類似していると判断できる場合もあり、ユーザの嗜好をより簡単、かつ正確に比較することが可能となる。
例えば、あるユーザのユーザ嗜好情報Aの要素A1乃至要素A3が、それぞれコンテンツメタ情報「ジャズ」、「クラッシック」、「ボサノバ」に対応するものであった場合、ユーザ嗜好情報Bにおいて、要素A1乃至要素A3の生起確率が高い要素B1が生成されたものとする。
この場合、例えば、そのユーザの嗜好の特徴を、「ジャズ 1」、「クラッシック 2」、「ボサノバ 3」と表現するよりも、要素B1の名前を「大人っぽい」とし、「大人っぽい 1.5」のように表現した方がより直感的にユーザの嗜好の特徴を把握できる。
また、例えば、ユーザ嗜好情報Bの要素数が多い場合、次のようにして嗜好表現値を演算するようにしてもよい。
例えば、嗜好表現値を2次元のベクトル(嗜好表現値1,嗜好表現値2)として生成する場合、そのユーザの嗜好表現値1をユーザ嗜好情報Aの要素A1乃至要素A4とユーザ嗜好情報Bの要素B1、要素B2の和として計算し、嗜好表現値2をユーザ嗜好情報Aの要素A5乃至要素A8とユーザ嗜好情報Bの要素B3、要素B4の和で計算するようにしてもよい。
あるいはまた、ユーザ情報解析部35により、ユーザ嗜好情報Bについてさらに、PLSAの解析を行わせ、より要素数の少ないベクトルを生成させ、そのベクトルの要素の値のそれぞれが嗜好表現値のベクトルを構成する要素の値とされるようにしてもよい。
さらに、ユーザ嗜好情報Aの所定の要素とユーザ嗜好情報Bの所定の要素を抽出し、それらの要素の値のそれぞれが嗜好表現値のベクトルを構成する要素の値とされるようにしてもよい。例えば、ユーザ嗜好情報Aが要素A1乃至要素A8で構成され、ユーザ嗜好情報Bが要素B1乃至要素B4で構成される場合、嗜好表現値のベクトルは、ベクトル(要素A1,要素B2,要素B3,要素B4)とされるようにしてもよい。
このようにして得られた嗜好表現値に基づいて、ユーザ嗜好表現部42が、例えば、ブラウザ31にユーザの嗜好の特徴を表す画面を表示させる。
図14は、ユーザ嗜好表現部42により生成されるユーザの嗜好の特徴を表す画面の例を示す図である。図14の例では、例えば、嗜好表現値が5次元のベクトルとして構成される場合の例であって、ベクトルの要素である嗜好表現値1乃至嗜好表現値5がそれぞれ軸とされ、嗜好表現値が5角形のグラフとして表示されている。
図15は、ユーザ嗜好表現部42により生成されるユーザの嗜好の特徴を表す画面の別の例を示す図である。図15の例では、例えば、嗜好表現値が5次元のベクトルとして構成される場合の例であって、ベクトルの要素である嗜好表現値1乃至嗜好表現値5がそれぞれ軸とされ、嗜好表現値が棒グラフとして表示されている。
このようにすることで、そのユーザの嗜好の特徴を、より直感的に把握させることが可能となる。
あるいはまた、複数のユーザの嗜好表現値が重ね合わせて表示されるようにしてもよい。図16は、ユーザ嗜好表現部42により生成されるユーザの嗜好の特徴を表す画面の別の例を示す図である。図16の例では、例えば、嗜好表現値が5次元のベクトルとして構成される場合の例であって、ベクトルの要素である嗜好表現値1乃至嗜好表現値5がそれぞれ軸とされ、2人のユーザの嗜好表現値がそれぞれ5角形のグラフとして表示されている。
同図において、例えば、点線112で示されるグラフは、利用ユーザ(自分)の嗜好の特徴を表すものとされ、線111で示されるグラフは、紹介ユーザ(他人)の嗜好の特徴を表すものとされる。
図17は、ユーザ嗜好表現部42により生成されるユーザの嗜好の特徴を表す画面のさらに別の例を示す図である。図17の例では、例えば、嗜好表現値が5次元のベクトルとして構成される場合の例であって、ベクトルの要素である嗜好表現値1乃至嗜好表現値5がそれぞれ軸とされ、2人のユーザの嗜好表現値が棒グラフとして表示されている。
同図において、例えば、図中白色で示される棒グラフは、利用ユーザ(自分)の嗜好の特徴を表すものとされ、図中ハッチングされて示される棒グラフは、紹介ユーザ(他人)の嗜好の特徴を表すものとされる。
このようにすることで、それぞれのユーザの嗜好の特徴の一致の度合い、または嗜好の特徴の違いを、より直感的に把握させることが可能となる。
さらに、上述したように嗜好表現値をグラフ化した画面とともに、ユーザ嗜好情報A、若しくはユーザ嗜好情報Bまたはそれら両方のうち大きい値を持つ要素の名前をユーザの特徴として有限個表示し、嗜好表現をより詳細にすることもできる。
例えば、利用ユーザのユーザ嗜好情報Aから値の大きい要素を10個選んでおき、紹介ユーザのユーザ嗜好情報Aから値の大きい要素を6個抽出する。紹介ユーザの嗜好の特徴をより直感的に表現するためには、例えば、抽出された6個の要素の名前を、それらの要素の値の大きさに応じたサイズで表示するようにすると効果的である。
そして、利用ユーザのユーザ嗜好情報Aの各要素から選ばれた10個の要素と、紹介ユーザのユーザ嗜好情報Aの各要素から選ばれた6個の要素とにおいて共通する要素がある場合、紹介理由として表示されるその共通の要素の色を変える。
図18は、ユーザ嗜好表現部42により生成されるユーザの嗜好の特徴を表す画面のさらに別の例を示す図である。図18の場合、例えば、利用ユーザに紹介ユーザの嗜好の特徴を提示する場合の画面の例とされ、図中の領域151は、利用ユーザと紹介ユーザの嗜好表現値をグラフ化したものが表示され、領域152には、紹介ユーザの嗜好の特徴が、領域151における表示とは別の方式で表示されるものとする。
図18の例では、例えば、嗜好表現値が5次元のベクトルとして構成される場合の例であって、ベクトルの要素である嗜好表現値1乃至嗜好表現値5がそれぞれ軸とされ、2人のユーザの嗜好表現値が5角形のグラフとして領域151に表示されている。同図において、例えば、点線172で示されるグラフは、利用ユーザの嗜好の特徴を表すものとされ、線171で示されるグラフは、紹介ユーザの嗜好の特徴を表すものとされる。
また、図18の例では、紹介ユーザのユーザ嗜好情報Aから値の大きい上位6個の要素が抽出されて、紹介ユーザの特徴として領域152に表示されている。同図の例では、「要素A1」、「要素A2」、「要素A5」、「要素A8」、「要素A9」、および「要素A10」が表示されている。ここでは、説明を簡単にするために、紹介理由に「要素A1」、「要素A2」、・・・と記載したが、実際には、各要素の名前であって、アーティスト名、ジャンルなどが紹介理由として表示されることになる。
さらに、図18の例では、抽出された6個の要素の名前が、それらの要素の値の大きさに応じたサイズで表示されている。この例では、「要素A8」の値が最も大きかったことになり、「要素A1」の値が最も小さかったことになる。
また、図18の例では、利用ユーザのユーザ嗜好情報Aの各要素から選ばれた10個の要素と、紹介ユーザのユーザ嗜好情報Aの各要素から選ばれた6個の要素とにおいて共通する要素がある場合、領域152に表示されるその共通の要素の色が変えられて表示されている。同図においては、要素に下線を付することで色を変えて表示したことを表現している。いまの場合、「要素A2」、「要素A5」、および「要素A10」が、利用ユーザのユーザ嗜好情報Aの各要素から選ばれた10個の要素と、紹介ユーザのユーザ嗜好情報Aの各要素から選ばれた6個の要素とにおいて共通する要素であったことになる。
さらに、領域152において色を変える代わりに、フォントを変えるようにしてもよいし、文字サイズを変えるようにしてもよいし、点滅させて表示するなどしてもよい。
あるいはまた、領域152において文字で表示せず、それぞれの要素に対応するアイコンなどの画像として表示するようにしてもよい。その場合、例えば、各要素の色を変える代わりに、画像を動かして表示するなどしてもよい。
また、ここでは、ユーザの嗜好の特徴を表す画面として、嗜好表現値を多角形のグラフまたは棒グラフによりグラフ化する例について説明したが、ユーザの嗜好の特徴を表す画面は、これらのグラフに限られるものではなく、また、必ずしも嗜好表現値をグラフ化したものでなくてもよい。
例えば、ユーザの嗜好の特徴を表す画面として、キャラクタの画像を表示し、嗜好表現値のベクトルの各要素の値に応じて、表示されるキャラクタが異なるようにしてもよいし、嗜好表現値のベクトルの各要素の値に応じて、キャラクタの顔の表情が変化するようにしてもよい。または、ユーザの嗜好の特徴として図形の色や形、動きを嗜好表現値のベクトルの各要素の値に応じて異なるようにしてもよい。
このようにすることで、紹介ユーザの嗜好の特徴、利用ユーザと紹介ユーザの嗜好の特徴の違い、利用ユーザと紹介ユーザの嗜好の特徴の同じ部分などが一目でわかるようになる。
次に、図19のフローチャートを参照して、ユーザ紹介システム20による嗜好表現画面生成表示処理について説明する。この処理は、例えば、所定のユーザの嗜好の特徴を表す画面の表示が要求されたとき実行されるようにしてもよいし、利用ユーザから紹介リストの表示が指令されたとき、図11を参照して上述した処理とともに実行されるようにしてもよい。
ステップS91において、嗜好表現値計算部41は、B嗜好情報DB36からユーザ嗜好情報Bを読み込む。なお、嗜好の特徴を表す画面(嗜好表現値)を表示すべきユーザが複数あるときは、それら複数のユーザに対応するユーザ嗜好情報Bが読み込まれる。
ステップS92において、嗜好表現値計算部41は、A嗜好情報DB34からユーザ嗜好情報Aを読み込む。なお、嗜好の特徴を表す画面(嗜好表現値)を表示すべきユーザが複数あるときは、それら複数のユーザに対応するユーザ嗜好情報Aが読み込まれる。
なお、嗜好表現値の計算において、ユーザ嗜好情報Aを用いない場合、ステップS92の処理は、省略されるようにしてもよい。
ステップS93において、嗜好表現値計算部41は、ステップS91の処理で読み込んだユーザ嗜好情報Bの要素と、ステップS92の処理で読み込んだユーザ嗜好情報Aの要素のうち、嗜好表現値の計算に必要となる要素を選択する。
ステップS94において、嗜好表現値計算部41は、ステップS93の処理で選択された要素に基づいて、嗜好表現値を計算する。
このとき、例えば、上述したように、嗜好表現値のベクトルを構成する各要素の値のそれぞれが、ユーザ嗜好情報Bの各要素の値とされるようにしてもよいし、1つの嗜好表現値の要素(例えば、嗜好表現値1)をユーザ嗜好情報Aの複数の要素の和、若しくはユーザ嗜好情報Bの複数の要素の和、またはユーザ嗜好情報Aの複数(または単数)の要素とユーザ嗜好情報Bの複数(または単数)の要素の和として計算されるようにしてもよい。
あるいはまた、ユーザ情報解析部35により、ユーザ嗜好情報Bについてさらに、PLSAの解析を行わせ、より要素数の少ないベクトルを生成させ、そのベクトルの要素の値のそれぞれが嗜好表現値のベクトルを構成する要素の値とされるようにしてもよい。
さらに、ユーザ嗜好情報Aの所定の要素とユーザ嗜好情報Bの所定の要素を抽出し、それらの要素の値のそれぞれが嗜好表現値のベクトルを構成する要素の値とされるようにしてもよい。
ステップS95において、ユーザ嗜好表現部42は、ユーザの嗜好の特徴を表示するための嗜好表現画面であって、例えば、図14乃至図18を参照して上述したような画面をユーザのパーソナルコンピュータの画面などに表示させる。
このようにして嗜好表現画面が表示される。
ところで以上においては、利用ユーザのユーザ嗜好情報Bと、候補ユーザのユーザ嗜好情報Bのそれぞれとの類似度に基づいて紹介ユーザが決定され、紹介ユーザリストが表示される場合の例について説明した。すなわち、以上においては、ユーザ嗜好情報に基づいてユーザを紹介する例について説明した。
しかし、本発明を適用すれば、例えば、コンテンツメタ情報に基づいてユーザを紹介することも可能である。例えば、コンテンツメタ情報が、ユーザ嗜好情報Aと同様に高次元の実数値ベクトルとなるように構成されていれば、そのコンテンツメタ情報を圧縮し、上述した例と同様に、圧縮されたコンテンツメタ情報と候補ユーザのユーザ嗜好情報Bのそれぞれとの類似度に基づいて紹介ユーザが決定されるようにすることも可能である。
図20は、本発明の一実施の形態に係るユーザ紹介システムの別の構成例を示すブロック図である。このユーザ紹介システム200は、例えば、SNS(social networking service)を提供するコンテンツウェブサイトとして構成される。コンテンツウェブサイトでは、音楽、映画、動画、TV番組、文章等のメディアコンテンツ、物販商品などのコンテンツを提供するとともに、あるユーザに別のユーザを紹介するサービスを提供するものとする。
ユーザ紹介システム200は、図1のユーザ紹介システム10の場合と異なり、例えば、所定のコンテンツメタ情報に基づいてユーザを紹介することも可能となるように構成されている。
ユーザ紹介システム200においては、図1のユーザ紹介システム10の場合と同様に、例えば、パーソナルコンピュータなどに実装されたブラウザを介してコンテンツウェブサイトにアクセスした個々のユーザのそれぞれの個人ページが提供される。個人ページには、そのユーザが公開するコンテンツの情報であって、例えば、気に入った音楽、映画などのコンテンツの情報が掲載されるようになされている。ユーザ紹介システム200のユーザは、自分のパーソナルコンピュータなどに実装されたブラウザを利用し、インターネットなどのネットワークを介してコンテンツウェブサイトにアクセスし、コンテンツウェブサイト内のページ、またはコンテンツウェブサイトにリンクされたページなどを閲覧する。
このユーザ紹介システム200は、ユーザ紹介システム10の場合と同様に、例えば、インターネットなどのネットワークに接続されたサーバなどとして構成される。なお、相互に接続された複数のサーバによりユーザ紹介システム200が構成されるようにしても構わない。
ユーザ情報処理部232は、図1のユーザ情報処理部32と同様に、上述した個人ページを有するユーザであって、コンテンツウェブサイトにアクセスするユーザのパーソナルコンピュータなどに実装されたブラウザ231からユーザ情報を取得する。そして、ユーザ情報処理部232は、ブラウザ231からユーザ情報を取得すると、取得したユーザ情報に含まれる情報に基づいて、コンテンツメタ情報DB(データベース)233からコンテンツメタ情報を読み込む。
コンテンツメタ情報DB233には、図1のコンテンツメタ情報DB33と同様に、例えば、個々のコンテンツに固有のIDとコンテンツメタ情報が対応付けられて記憶されており、ユーザ情報処理部232は、ユーザ情報に含まれるコンテンツのIDを特定し、それらのコンテンツに対応するコンテンツメタ情報を取得するようになされている。
なお、コンテンツメタ情報DB233に記憶されているコンテンツメタ情報は、A嗜好情報DB234に記憶されているユーザ嗜好情報Aと同様に、多数の要素を有する高次元のベクトルとされる。
また、ユーザ情報処理部232は、ブラウザ231から取得したユーザ情報と、コンテンツメタ情報DB233から取得したコンテンツメタ情報に基づいて、図1の場合と同様に、ユーザ嗜好情報Aを生成する。ユーザ嗜好情報Aは、複数のユーザのそれぞれについて生成され、生成されたユーザ嗜好情報Aは、A嗜好情報DB234に記憶される。
情報解析部235は、図1のユーザ情報解析部35と同様に、A嗜好情報DB234からユーザ嗜好情報Aを読み込んで解析し、ユーザ嗜好情報Bを生成するようになされている。ユーザ嗜好情報Bは、ユーザ嗜好情報Aの要素数を圧縮(少なく)したベクトルとされ、情報解析部235は、マルチトピックモデルによる解析を行うことにより、要素数を圧縮したベクトルを生成する。ユーザ嗜好情報Bは、複数のユーザのそれぞれについて生成され、生成されたユーザ嗜好情報Bは、B嗜好情報DB236に記憶される。
また、情報解析部235は、コンテンツメタ情報DB233からコンテンツメタ情報を読み込んで解析し、圧縮コンテンツメタ情報を生成するようになされている。圧縮コンテンツメタ情報は、コンテンツメタ情報の要素数を圧縮(少なく)したベクトルとされ、情報解析部235は、マルチトピックモデルによる解析を行うことにより、要素数を圧縮したベクトルを生成する。圧縮コンテンツメタ情報は、複数のコンテンツのそれぞれについて生成され、生成された圧縮コンテンツメタ情報は、圧縮コンテンツメタ情報DB239に記憶される。
すなわち、情報解析部235は、ユーザ嗜好情報を圧縮するとともに、コンテンツメタ情報も圧縮するのである。なお、コンテンツメタ情報DB233に記憶されているコンテンツメタ情報は、A嗜好情報DB234に記憶されているユーザ嗜好情報Aと同一の要素を有する同次元のベクトルとして構成されているものとする。また、圧縮コンテンツメタ情報DB239に記憶されている圧縮コンテンツメタ情報は、B嗜好情報DB236に記憶されているユーザ嗜好情報Bと同一の要素を有する同次元のベクトルとして構成されているものとする。
なお、情報解析部235によるマルチトピックモデルの解析手法としては、例えば、PLSA(Probabilistic Latent Semantic Analysis)、LDA(Latent Dirichlet Allocation)などの、単語や文書の生起確率を求める手法が挙げられる。
図21は、コンテンツ1乃至コンテンツ3のコンテンツメタ情報の例を示す図であり、図22は、図21のコンテンツメタ情報に対してPLSAによる解析を行うことにより生成された圧縮コンテンツメタ情報の例を示す図である。ここでは、説明を簡単にするために、5次元のベクトルであるコンテンツメタ情報が3次元のベクトルである圧縮コンテンツメタ情報に変換される例を説明するが、実際には、コンテンツメタ情報、圧縮コンテンツメタ情報ともにより高次元のベクトルとなる。
いまの場合、情報解析部235では、トピック数が3でありかつパラメータが予め特定されたPLSAの確率モデルを用意し、コンテンツメタ情報の要素A1乃至要素A5の生起確率を求めることになる。第1のトピックでは、要素A1と要素A2の生起確率が高くなり、第2のトピックでは、要素A3と要素A4の生起確率が高くなったものとする。すなわち、要素A1と要素A2は類似した要素であり、また要素A3と要素A4は類似した要素といえる。
いまの場合、第1乃至第3のトピックが図22の要素B1乃至要素B3に対応するので、要素A2の値が比較的大きいコンテンツ1の圧縮コンテンツメタ情報と、要素A1の値が比較的大きいコンテンツ2の圧縮コンテンツメタ情報においては、ともに要素B1の値が比較的大きい値となっている。要素A1と要素A2が類似した要素だからである。また、コンテンツ1乃至コンテンツ3のコンテンツメタ情報の要素A3および要素A4の値は「0」なのでコンテンツ1乃至コンテンツ3の圧縮コンテンツメタ情報においては、ともに要素B2の値が「0」となっている。要素A3と要素A4が類似した要素だからである。さらに、要素A5の値が比較的大きいコンテンツ1およびコンテンツ3の圧縮コンテンツメタ情報においては、要素B3の値が比較的大きい値となっている。
このようすることで、高次元のスパースなベクトルであるコンテンツメタ情報を、より低次元のベクトルである圧縮コンテンツメタ情報に変換(生成)することができる。このように、圧縮コンテンツメタ情報を生成することで、コンテンツの特徴をより簡単、かつ正確に比較することが可能となる。
なお、圧縮コンテンツメタ情報は、コンテンツメタ情報の如何にかかわらず、各ユーザの圧縮コンテンツメタ情報のベクトルの要素の数が同じになるように、生成されるものとする。
図20に戻って、決定処理部237は、図1の紹介ユーザ決定部37と同様に、ブラウザ231のユーザのユーザ嗜好情報Aに基づいて、ユーザ紹介システム200に個人ページを有する複数のユーザのそれぞれのユーザ嗜好情報Aまたはユーザ嗜好情報Bをフィルタリングし、フィルタリングの結果得られたユーザ嗜好情報Aまたはユーザ嗜好情報Bに対応するユーザを特定するとともに、それらの特定されたユーザのユーザ嗜好情報Bを抽出する。
そして、決定処理部237は、抽出されたユーザ嗜好情報Bのそれぞれと、ブラウザ231のユーザのユーザ嗜好情報Bの類似度を演算し、その類似度に基づいてブラウザ231のユーザに紹介すべきユーザを決定する。
また、決定処理部237は、ブラウザ231を介して入力されたコンテンツのIDに対応する圧縮コンテンツメタ情報を特定するとともに、ユーザ紹介システム200に個人ページを有する複数のユーザのそれぞれのユーザ嗜好情報Bを抽出する。
そして、決定処理部237は、抽出されたユーザ嗜好情報Bのそれぞれと、入力されたコンテンツのIDに対応する圧縮コンテンツメタ情報の類似度を演算し、その類似度に基づいてブラウザ231のユーザに紹介すべきユーザを決定する。
すなわち、決定処理部237は、ユーザ嗜好情報Bの入力を受け付けて、他のユーザ嗜好情報Bとの類似度を演算するだけでなく、圧縮コンテンツメタ情報の入力を受け付けてユーザ嗜好情報Bとの類似度の演算も行うようになされている。
ここで、類似度は、例えば、ある候補ユーザのユーザ嗜好情報Bのベクトルと、圧縮コンテンツメタ情報のベクトルとのユークリッド距離の符号反転値として演算される。また、類似度は、ユークリッド距離に基づいて演算されるものに限られるものではなく、例えば、ベクトルの内積として算出されるようにすることも可能である。
ここでは、候補ユーザのユーザ嗜好情報Bのそれぞれと、圧縮コンテンツメタ情報の類似度を演算すると説明したが、例えば、類似度の演算に、ユーザ嗜好情報Bだけでなくユーザ嗜好情報Aも用いられるようにしてもよい。
提示処理部238は、決定処理部237により決定された、紹介すべきユーザを紹介理由とともに表示する紹介ユーザリストを表示するようになされている。
提示処理部238は、例えば、類似度の大きい順にユーザをソートし、紹介ユーザリストとしてブラウザに表示される。このとき、上述したように、提示処理部238は、紹介ユーザのユーザ嗜好情報Aに基づいて紹介理由を作成し、紹介すべきユーザを紹介理由とともに表示する。
すなわち、提示処理部238は、例えば、図7を参照して上述したような紹介ユーザリストを生成して表示させるようになされている。
このように、本発明によれば、コンテンツメタ情報に基づいてユーザを紹介することも可能である。
図20のユーザ紹介システム200による、ユーザ嗜好情報A生成処理、パラメータ学習処理、およびユーザ嗜好情報B生成処理は、それぞれ図8、図9、および図10を参照して上述した処理と同様の処理なので詳細な説明は省略する。
次に、図23のフローチャートを参照して、図20のユーザ紹介システム200による、圧縮コンテンツメタ情報生成処理について説明する。
この処理は、例えば、図9を参照して上述した処理により、パラメータが学習された後、そのパラメータを用いて実行される。
ステップS111において、情報解析部235は、圧縮コンテンツメタ情報の要素数を決定する。要素数は、予め定められた値とされてもよいし、例えば、システム管理者などの指令に基づいて決定されるようにしてもよい。
ステップS112において、情報解析部235は、コンテンツメタ情報DB233からコンテンツメタ情報を読み込む。
ステップS113において、情報解析部235は、ステップS112の処理で読み込んだコンテンツメタ情報について、例えば、PLSA(Probabilistic Latent Semantic Analysis)による解析を行うことにより、要素数を圧縮する。実際には、コンテンツメタ情報DB233に記憶されているコンテンツメタ情報のそれぞれについて、例えば、PLSAによる解析を行うことにより、要素数の圧縮が行われることになる。
ステップS114において、情報解析部235は、ステップS113の処理で要素が圧縮されたコンテンツメタ情報を、圧縮コンテンツメタ情報DB239に記憶する。
このようにして、圧縮コンテンツメタ情報が生成される。
なお、図23を参照して上述した処理の実行に伴って、PLSAの確率モデルのパラメータが学習されるようにすることも可能である。すなわち、図9を参照して上述した処理により、パラメータが学習された後、そのパラメータを用いて図23の処理が実行されるのではなく、図23の処理を実行しながら、パラメータを学習させるようにしても構わない。
図20のユーザ紹介システム200において、ユーザ嗜好情報に基づいてユーザを紹介する場合の紹介リスト生成表示処理は、図11を参照して上述した処理と同様の処理なので、詳細な説明は省略する。
図20のユーザ紹介システム200において、所定のコンテンツのコンテンツメタ情報に基づいてユーザを紹介する場合の紹介リスト生成表示処理は、図24に示されるような処理となる。ここで、図24のフローチャートを参照して、ユーザ紹介システム200において、所定のコンテンツメタ情報に基づいてユーザを紹介する場合の紹介リスト生成表示処理の例について説明する。この処理は、例えば、利用ユーザからコンテンツメタ情報に基づく紹介リストの表示が指令されたとき実行される。
ステップS131において、決定処理部237は、例えば、コンテンツのIDの入力を受け付けることにより、所定のコンテンツを特定する。
ステップS132において、決定処理部237は、ステップS131で特定されたコンテンツメタ情報に基づいて、ユーザのフィルタリングを行う。このとき、例えば、コンテンツメタ情報の中で最大の値を持つ要素が検索され、その要素におけるユーザ嗜好情報Aの値が閾値以上のユーザのみが抽出され、候補ユーザとされる。
なお、ステップS132の処理は、省略されるようにしてもよい。
ステップS133において、決定処理部237は、ステップS132のフィルタリングにより得られた候補ユーザのユーザ嗜好情報Bを、B嗜好情報DB236から抽出する。
ステップS134において、決定処理部237は、ステップS131で特定された所定のコンテンツの圧縮コンテンツメタ情報と、候補ユーザのユーザ嗜好情報Bのそれぞれとの類似度を演算する。このとき、例えば、圧縮コンテンツメタ情報およびユーザ嗜好情報Bをベクトルとした場合のユークリッド距離の符号反転値として類似度が演算される。
ステップS135において、決定処理部237は、ステップS134の処理により得られた類似度に基づいて紹介ユーザを決定する。このとき、例えば、予め設定された閾値以上の類似度となったユーザ嗜好情報Bに対応する候補ユーザが紹介ユーザとなるように決定される。
ステップS136において、提示処理部238は、例えば、紹介ユーザのユーザ嗜好情報Aに基づいて紹介理由を作成する。
ステップS137において、提示処理部238は、紹介ユーザリストを、例えば、利用ユーザのブラウザに表示させる。このとき、例えば、図7を参照して上述したような画面が利用ユーザのパーソナルコンピュータの画面などに表示されることになる。
このようにして、コンテンツメタ情報に基づくユーザの紹介が行われる。
ここまで、ユーザ嗜好情報に基づいてユーザを紹介する例、およびコンテンツメタ情報に基づいてユーザを紹介する例について説明したが、ユーザ紹介システム200においては、ユーザ嗜好情報に基づいてコンテンツを紹介することも当然に可能である。
次に、図25のフローチャートを参照して、ユーザ紹介システム200において、ユーザ嗜好情報に基づいてコンテンツを紹介する場合の紹介リスト生成表示処理の例について説明する。この処理は、例えば、利用ユーザから、ユーザ嗜好情報に基づくコンテンツの紹介リストの表示が指令されたとき実行される。
ステップS151において、決定処理部237は、例えば、利用ユーザのユーザ嗜好情報Aを読み込む。
ステップS152において、決定処理部237は、ステップS151で読み込んだ利用ユーザのユーザ嗜好情報Aに基づいて、コンテンツメタ情報のフィルタリングを行う。このとき、例えば、利用ユーザのユーザ嗜好情報Aの中で最大の値を持つ要素が検索され、その要素におけるコンテンツメタ情報の値が閾値以上のコンテンツのみが抽出され、候補コンテンツとされる。
なお、ステップS152の処理は、省略されるようにしてもよい。
ステップS153において、決定処理部237は、ステップS152のフィルタリングにより得られた候補コンテンツの圧縮コンテンツメタ情報を、圧縮コンテンツメタ情報DB239から抽出する。
ステップS154において、決定処理部237は、利用ユーザのユーザ嗜好情報Bと、候補コンテンツの圧縮コンテンツメタ情報のそれぞれとの類似度を演算する。このとき、例えば、ユーザ嗜好情報Bおよび圧縮コンテンツメタ情報をベクトルとした場合のユークリッド距離の符号反転値として類似度が演算される。
ステップS155において、決定処理部237は、ステップS154の処理により得られた類似度に基づいて紹介コンテンツを決定する。このとき、例えば、予め設定された閾値以上の類似度となった圧縮コンテンツメタ情報に対応する候補コンテンツが紹介コンテンツとなるように決定される。
ステップS156において、提示処理部238は、例えば、紹介コンテンツのコンテンツメタ情報に基づいて紹介理由を作成する。
ステップS157において、提示処理部238は、紹介コンテンツリストを、例えば、利用ユーザのブラウザに表示させる。このとき、例えば、図26に示されるような画面が利用ユーザのパーソナルコンピュータの画面などに表示されることになる。
図26は、紹介コンテンツリストの例を示している。この例では、紹介コンテンツが「コンテンツ4」、「コンテンツ5」、「コンテンツ6」、・・・と表示されている。そして、紹介コンテンツ「コンテンツ4」の紹介理由が「要素A2」、「要素A5」とされており、紹介コンテンツ「コンテンツ5」の紹介理由が「要素A1」、「要素A2」、「要素A8」とされており、紹介コンテンツ「コンテンツ6」の紹介理由が「要素A5」、「要素A8」、「要素A3」とされている。上述したように、紹介理由としての「要素A1」、「要素A2」、・・・は、それぞれコンテンツメタ情報の要素に基づいて表示されるものである。
また、同図に示される星印は、紹介コンテンツが「コンテンツ4」、「コンテンツ5」、「コンテンツ6」、・・・の圧縮コンテンツメタ情報と利用ユーザのユーザ嗜好情報Bとの類似度を表している。この例では、「コンテンツ4」および「コンテンツ5」に星印が4つ付されて表示されており、「コンテンツ6」には星印が3つ付されて表示されている。このようにすることで、「コンテンツ6」との類似度と比較して、「コンテンツ4」および「コンテンツ5」との類似度が高かったことが簡単に認識できるようにすることができる。
なお、図26には、説明を簡単にするために、紹介理由に「要素A1」、「要素A10」、「要素A2」、・・・と記載したが、実際には、各要素の名前であって、アーティスト名、ジャンルなどが紹介理由として表示されることになる。
また、紹介理由として圧縮コンテンツメタ情報の要素を表示するようにしてもよい。
このようにして、ユーザ嗜好情報に基づいてコンテンツが紹介される。なお、ここでは、コンテンツの紹介と説明したが、実際には、ユーザに推薦するコンテンツのリストとして図26に示されるような紹介コンテンツリストが表示されるようにしてもよい。また、例えば、ユーザがユーザ紹介システム200にログインしたとき、自動的に図25を参照して上述した処理が実行され、ユーザに推薦するコンテンツの一覧として、図26に示されるようなリストが提示されるようにしてもよい。
ここまで、ユーザ嗜好情報に基づいてユーザを紹介する例、コンテンツメタ情報に基づいてユーザを紹介する例、およびユーザ嗜好情報に基づいてコンテンツを紹介(推薦)する例について説明したが、ユーザ紹介システム200においては、コンテンツメタ情報に基づいてコンテンツを紹介(推薦)することもやはり可能である。すなわち、本発明によれば、例えば、ユーザから視聴を希望するコンテンツ、購入したいコンテンツのIDなどの入力があった場合、そのコンテンツのコンテンツメタ情報に基づいて、新たなコンテンツを紹介(推薦)することもできる。
次に、図27のフローチャートを参照して、ユーザ紹介システム200において、コンテンツメタ情報に基づいてコンテンツを紹介する場合の紹介リスト生成表示処理の例について説明する。この処理は、例えば、利用ユーザからコンテンツメタ情報に基づくコンテンツの紹介リストの表示が指令されたとき実行される。
ステップS171において、決定処理部237は、例えば、コンテンツのIDの入力を受け付けることにより、所定のコンテンツを特定する。ここで特定されたコンテンツを基点コンテンツと称することにする。
ステップS172において、決定処理部237は、基点コンテンツのコンテンツメタ情報に基づいて、コンテンツメタ情報のフィルタリングを行う。このとき、例えば、基点コンテンツのコンテンツメタ情報の中で最大の値を持つ要素が検索され、その要素におけるコンテンツメタ情報の値が閾値以上のコンテンツのみが抽出され、候補コンテンツとされる。
なお、ステップS172の処理は、省略されるようにしてもよい。
ステップS173において、決定処理部237は、ステップS172のフィルタリングにより得られた候補コンテンツの圧縮コンテンツメタ情報を、圧縮コンテンツメタ情報DB239から抽出する。
ステップS174において、決定処理部237は、基点コンテンツの圧縮コンテンツメタ情報と、候補コンテンツの圧縮コンテンツメタ情報のそれぞれとの類似度を演算する。このとき、例えば、圧縮コンテンツメタ情報をベクトルとした場合のユークリッド距離の符号反転値として類似度が演算される。
ステップS175において、決定処理部237は、ステップS174の処理により得られた類似度に基づいて紹介コンテンツを決定する。このとき、例えば、予め設定された閾値以上の類似度となった圧縮コンテンツメタ情報に対応する候補コンテンツが紹介コンテンツとなるように決定される。
ステップS176において、提示処理部238は、例えば、紹介コンテンツのコンテンツメタ情報に基づいて紹介理由を作成する。
ステップS177において、提示処理部238は、紹介コンテンツリストを、例えば、利用ユーザのブラウザに表示させる。このとき、例えば、図26に示されるような画面が利用ユーザのパーソナルコンピュータの画面などに表示されることになる。
このように、基点コンテンツのコンテンツメタ情報に基づいてコンテンツが紹介される。なお、ここでは、コンテンツの紹介と説明したが、実際には、ユーザに推薦するコンテンツのリストとして図26に示されるような紹介コンテンツリストが表示されるようにしてもよい。また、例えば、ユーザがユーザ紹介システム200において、コンテンツの視聴または購入の指令を入力したとき、そのコンテンツを基点コンテンツとして自動的に図27を参照して上述した処理が実行され、ユーザに推薦するコンテンツの一覧として、図26に示されるようなリストが提示されるようにしてもよい。
なお、ユーザ紹介システム200において、コンテンツメタ情報に基づいてコンテンツを紹介させる場合、ユーザ情報処理部232、A嗜好情報DB234、およびB嗜好情報DB236が設けられないようにしてもよい。
なお、上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば図28に示されるような汎用のコンピュータ700などに、ネットワークや記録媒体からインストールされる。
図28において、CPU(Central Processing Unit)701は、ROM(Read Only Memory)702に記憶されているプログラム、または記憶部708からRAM(Random Access Memory)703にロードされたプログラムに従って各種の処理を実行する。RAM703にはまた、CPU701が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU701、ROM702、およびRAM703は、バス704を介して相互に接続されている。このバス704にはまた、入出力インタフェース705も接続されている。
入出力インタフェース705には、キーボード、マウスなどよりなる入力部706、CRT(Cathode Ray Tube)、LCD(Liquid Crystal display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部707、ハードディスクなどより構成される記憶部708、モデム、LANカードなどのネットワークインタフェースカードなどより構成される通信部709が接続されている。通信部709は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース705にはまた、必要に応じてドライブ710が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア711が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部708にインストールされる。
上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、インターネットなどのネットワークや、リムーバブルメディア711などからなる記録媒体からインストールされる。
なお、この記録媒体は、図28に示される、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フロッピディスク(登録商標)を含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)(登録商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア711により構成されるものだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM702や、記憶部708に含まれるハードディスクなどで構成されるものも含む。
なお、本明細書において上述した一連の処理を実行するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
10 ユーザ紹介システム, 20 ユーザ紹介システム, 31 ブラウザ, 32 ユーザ情報処理部, 33 コンテンツメタ情報DB, 34 A嗜好情報DB, 35 ユーザ情報解析部, 36 B嗜好情報DB, 37 紹介ユーザ決定部, 38 紹介ユーザ提示部, 41 嗜好表現値計算部, 42 ユーザ嗜好表現部, 200 ユーザ紹介システム, 231 ブラウザ, 232 ユーザ情報処理部, 233 コンテンツメタ情報DB, 234 A嗜好情報DB, 235 情報解析部, 236 B嗜好情報DB, 237 決定処理部, 238 提示処理部, 239 圧縮コンテンツメタ情報DB