以下、本発明の実施形態について図面に基づき詳細に説明する。
図1は、本発明の実施形態に係るコンテンツ推薦システムの全体構成図である。同図に示すように、このコンテンツ推薦システム10は、インターネット等のデータ通信ネットワーク18に接続され、相互にデータ通信可能な楽曲配信サーバ14、楽曲ランキング配信サーバ15及び複数のユーザ装置12を含んでいる。ユーザ装置12は、例えば各家庭に設置されるパーソナルコンピュータ、コンピュータゲームシステム、ホームサーバなどのコンピュータシステム、或いは携帯ゲーム機や携帯電話機などの可搬型のコンピュータシステムであり、楽曲配信サーバ14にアクセスして当該ユーザ装置12のユーザに推薦される楽曲のリストを受信する。そして、該リストに含まれる楽曲のデータを楽曲配信サーバ14にリクエストし、これを受信して再生するものである。一方、楽曲配信サーバ14は、例えば公知のサーバコンピュータなどのコンピュータシステムにより構成されており、各ユーザ装置12に該ユーザ装置12のユーザに推薦する楽曲のリストを送信する。また、各ユーザ装置12からのリクエストに応じて個々の楽曲のデータを送信するものである。なお、ここでは楽曲の推薦に本発明を適用する例を説明するが、本発明はこれに限らず、映画などの動画像、写真などの静止画像、小説などの文書など、各種のコンテンツの推薦に適用してよいのはもちろんである。楽曲ランキング配信サーバ15は、例えば公知のサーバコンピュータなどのコンピュータシステムにより構成されており、楽曲配信サーバ14の管理者とは異なる者により管理され、楽曲配信サーバ14からのリクエストに応じて楽曲のランキングを返信するものである。この楽曲のランキングは、例えば毎週或いは毎月などの定期的に、例えばポップス、ジャズ、クラシックなどの音楽ジャンル別、国別に発行され、各ランキングは、その発行時期及び音楽ジャンルに関連づけて楽曲配信サーバ14に記憶されている。ランキングは様々な観点で作成されてよく、例えば購入数の多い楽曲のランキング、ダウンロードされた回数の多い楽曲のランキング、楽曲に関する情報(例えば解説文書)が閲覧された回数の多い楽曲のランキングなどであってよい。
図2は、楽曲配信サーバ14及び楽曲ランキング配信サーバ15のハードウェア構成例を示す図である。同図に示すように、楽曲配信サーバ14や楽曲ランキング配信サーバ15は、プロセッサ20、メモリ21、ハードディスクドライブ23、媒体ドライブ24、通信インタフェース26を含んでおり、これらはバス22に接続され、相互にデータを授受できるように構成されている。メモリ21はROM及びRAMにより構成されており、ROMは各種のシステムプログラムが記憶され、RAMは主としてプロセッサ20の作業用に用いられる。ハードディスクドライブ23は、楽曲配信或いは楽曲ランキング配信のためのプログラムが格納されたり、楽曲配信或いは楽曲ランキング配信のための各種データベースが構築される。媒体ドライブ24は、CD−ROMやDVD−RAMなどのコンピュータ可読媒体25に格納されたデータを読み出したり、或いはそこにデータを書き込んだりする装置である。通信インタフェース26は、楽曲配信サーバ14や楽曲ランキング配信サーバ15が他のコンピュータシステムと通信ネットワーク18を介してデータ通信するのを制御するものである。また、プロセッサ20は、メモリ21、ハードディスクドライブ23又は媒体25に記憶されているプログラムに従って、サーバ各部を制御するものである。
一方、図3は、ユーザ装置12のハードウェア構成例を示す図である。同図に示すように、ユーザ装置12は、プロセッサ31、メモリ32、表示制御部33、サウンド制御部34、ハードディスクドライブ35、操作デバイス36、媒体ドライブ37、通信インタフェース38を含んでおり、これらはバス39に接続され、相互にデータを授受できるように構成されている。メモリ32はROM及びRAMにより構成されており、ROMは各種のシステムプログラムが記憶され、RAMは主としてプロセッサ31の作業用に用いられる。ハードディスクドライブ35は、楽曲再生プログラムなどの各種プログラムが格納されたり、各種データベースが構築される。媒体ドライブ37は、CD−ROMやDVD−RAMなどのコンピュータ可読媒体40に格納されたデータを読み出したり、或いはそこにデータを書き込んだりする装置である。通信インタフェース38は、ユーザ装置12が楽曲配信サーバ14などの他のコンピュータシステムと通信ネットワーク18を介してデータ通信するのを制御するものである。表示制御部33はビデオメモリを含んで構成されており、プロセッサ31がビデオメモリに描画した画像をビデオ信号に変換してディスプレイに出力し、該画像を表示させる。サウンド制御部34はサウンドバッファを含んで構成されており、プロセッサ31がサウンドバッファに格納したサウンドデータをアナログ音声信号に変換してスピーカに出力し、発音させる。操作デバイス36は、ユーザがユーザ装置12に指示を与える手段であり、例えばキーボード、マウスなどのポインティングデバイス、ゲームPADなどである。さらに、プログラム31は、メモリ32、ハードディスクドライブ35又は媒体40に記憶されているプログラムに従って、ユーザ装置12の各部を制御するものである。
ユーザ装置12は、種々の形態で実現されてよく、例えば図4に示すような家庭用電源で動作する据え置き型のゲームコンソールとして構成されてよい。この場合、図3に示される各ハードウェア要素は筐体43に収容され、ディスプレイ及びスピーカとしては、筐体43とは別体のテレビ受像器41の表示器41a及び内蔵スピーカ42,42が用いられる。また、操作デバイス36も筐体43とは別体に設けられる。
或いは、ユーザ装置12は、図5に示すようなバッテリで動作する可搬型且つ一体型のゲーム装置として構成されてよい。この場合、図3に示される各ハードウェア要素は筐体44に収容され、さらにディスプレイとしては、筐体44の表面に設けられたフラットパネルディスプレイ45が用いられる。操作デバイス36も筐体44の表面に設けられ、例えばフラットパネルディスプレイ45の左右に配置される。スピーカとしては、筐体44に内蔵された図示しないスピーカが用いられてもよいし、筐体44とは別体のステレオヘッドフォン46が用いられてもよい。
ここで、ユーザ装置12の機能的構成を説明する。図6は、ユーザ装置12の機能ブロック図である。同図に示すように、ユーザ装置12は、機能的には操作部61及び楽曲再生部62を含んで構成される。これらの機能要素はユーザ装置12においてプログラムが実行されることにより実現される。操作部61は、操作デバイス36を中心に構成されており、操作デバイス36に対して特定の要求操作が行われると、楽曲リストの要求(ユーザIDを含む)を通信インタフェース38を介して楽曲配信サーバ14に送信する。この要求には、ユーザID及び楽曲の属性(例えばリラックス、バラード、ハッピー、アクティブなどの曲調)の指定が含まれる。楽曲の属性は、ユーザが操作デバイス36を用いて指定してもよいし、ランダムに選択されてもよい。なお、後述する嗜好ベクトルをユーザ装置12で管理してもよく、この場合、楽曲リストの要求に管理されているユーザ嗜好情報を含めてよい。後述する楽曲再生部62は、要求に応答して楽曲配信サーバ14から返信される楽曲リストを、通信ネットワーク18を介して受信し、該楽曲リストに含まれる各楽曲の識別情報、すなわち楽曲IDを順に通信インタフェース38を介して楽曲配信サーバ14に送信する。楽曲再生部62は、この楽曲IDの送信に応答して楽曲配信サーバ14から返信される楽曲データを、サウンド制御部34を用いて再生する。このとき、楽曲再生部62は、図4及び図5に示すように、ディスプレイに楽曲データに含まれる曲名データを表示する。
操作部61は、楽曲再生中に、操作デバイス36に対して明示の否定操作(ユーザが当該楽曲を好まないことを示す特定の操作)が行われた場合に、楽曲配信サーバ14に対し、再生されている楽曲の楽曲ID及びユーザIDとともに否定的評価を送信する。また、楽曲再生中、操作デバイス36に対してスキップ操作が行われた場合、それを楽曲再生部62に通知する。楽曲再生部62は、この通知に従って、楽曲の再生を中止し、次の楽曲IDを楽曲配信サーバ14に送信し、返信される楽曲データを再生する。このようにスキップ操作が行われる場合にも、操作部61は楽曲配信サーバ14に、再生されていた楽曲の楽曲ID及びユーザIDとともに否定的評価を送信するように構成してよい。また、楽曲をスキップすることなく最後まで再生すると、楽曲再生部62はその旨を操作部61に通知する。この場合、操作部61は楽曲配信サーバ14に、最後まで再生した楽曲の楽曲ID及びユーザIDとともに肯定的評価を送信する。さらに、楽曲再生中に、操作デバイス36に対して明示の肯定操作(ユーザが当該楽曲を好むことを示す特定の操作)が行われた場合にも、再生されている楽曲の楽曲ID及びユーザIDとともに肯定的評価を送信する。楽曲配信サーバ14に伝達される各楽曲に生じた肯定的又は否定的評価は、該楽曲配信サーバ14において、各ユーザが嗜好する楽曲の特徴を示す嗜好ベクトルを生成したり、或いは多数のユーザにより嗜好される楽曲のランキングを生成するのに用いられる。
次に、楽曲配信サーバ14の機能的構成を説明する。図7は、楽曲配信サーバ14の機能ブロック図である。同図に示すように、楽曲配信サーバ14は、機能的にはユーザ情報記憶部71、集計部72、内部ランキング生成部73、内部ランキング記憶部74、ランキング選択合成部75、嗜好ベクトル更新部77、嗜好ベクトル記憶部78、ソート部79、2次リスト生成部80、1次リスト記憶部81、楽曲属性データベース82、楽曲特徴データベース83、楽曲配信部84及び楽曲データベース85を含んで構成されている。これらの機能要素は楽曲配信サーバ14においてプログラムが実行されることにより実現される。
ユーザ情報記憶部71は、ハードディスクドライブ23又は図示しない別体のデータベースを用いて構成されるものであり、ユーザの属性を記憶する。図8は、ユーザ情報記憶部71の記憶内容を模式的に示しており、ユーザの識別情報であるユーザIDと、年齢、居住都市、使用言語等のユーザの属性と、を関連づけて記憶している。ユーザ情報記憶部71の記憶内容は、事前にユーザ装置12から登録されてよい。
集計部72は、ユーザ装置12から送信される評価に係る情報、及びユーザ装置12に対して送信される楽曲リストに係る情報を集計する。集計部72は、ハードディスクドライブ23又は図示しない別体のデータベースを用いて構成される集計データベース72aを備えており、集計結果はこの集計データベース72aに格納される。図9は、集計データベース72aの記憶内容を模式的に示しており、楽曲の識別情報である楽曲IDと、ユーザ属性の範囲(13才以下であり、居住都市が東京であり、且つ使用言語が日本語など)毎の集計値(x−y−z)と、を関連づけて記憶している。集計値は、ここではユーザ装置12に対して送信された楽曲リストに含まれた回数(x)、ユーザ装置12から当該楽曲に対して肯定的評価が送信された回数(y)、及びユーザ装置12から当該楽曲に対して否定的評価が送信された回数(z)の3つの数値を含んでいる。集計部72では、ユーザ装置12から楽曲ID、ユーザID及び肯定的又は否定的評価を受信すると、ユーザ情報記憶部71から受信したユーザIDに関連づけられたユーザの属性を読み出し、このユーザの属性が属しているユーザ属性範囲の集計値のうち、上記回数y又は回数zを更新する。具体的には、肯定的評価を受信した場合には回数yを1だけ増加させ、否定的評価を受信した場合には回数zを1だけ増加させる。また、ソート部79が楽曲リストを生成し、ユーザ装置12に送信する際には、当該楽曲リストに含まれる楽曲ID及び当該楽曲リストの宛先のユーザ装置12のユーザのユーザIDを取得し、該ユーザIDに関連づけられたユーザの属性をユーザ情報記憶部71から読み出す。そして、読み出された属性が属しているユーザ属性範囲の集計値のうち、上記回数xを1だけ増加させる。
内部ランキング生成部73は、集計データベース72aの記憶内容に基づいて、毎週又は毎月などの定期的に、各種のユーザ属性の範囲についてランキングを生成し、これを内部ランキング記憶部74に記憶するものである。内部ランキング記憶部74は、ハードディスクドライブ23又は図示しない別体のデータベースを用いて構成されるものであり、図10に示すように、内部ランキング生成部73により生成される各種のランキングを、その生成時期及びユーザ属性の範囲に関連づけて記憶する。例えば、15才以下であり、居住都市が東京であり、使用言語が日本語であるユーザが好む楽曲のランキングは、図9における「13才以下・東京・日本語」、「14才・東京・日本語」、「15才・東京・日本語」のカラムに記録された回数yの合計値が大きいものから順に所定数(例えば100)の楽曲のIDを列記することにより生成される。このとき、上記回数xの合計値に対する回数yの合計値の割合、すなわち推薦した回数に対する肯定的評価がされる回数の割合が大きいものから順に所定数の楽曲のIDを列記することにより生成してもよい。
ランキング選択合成部75は、ユーザ装置12から送信される楽曲リストの要求に含まれるユーザIDに関連づけられたユーザの属性をユーザ情報記憶部71から読み出し、このユーザの属性が含まれる範囲に関連づけられたランキングを内部ランキング記憶部74から読み出す。また、楽曲ランキング配信サーバ15から、ユーザの属性に対応するランキングを受信する。例えば、ユーザの居住都市の最新のランキングを受信してもよいし、ユーザの年齢を基にして、当該ユーザが15才のときに当該ユーザの居住都市で発行されたランキングを受信してもよい。ランキング選択合成部75は、このようにしてユーザの属性に関連するランキングを受信して、それらを図11に示すようにして合成する。このとき、各ランキングに含まれる楽曲IDの全てを合成後のリストに含めなくてもよい。
また、ランキング選択合成部75は、内部ランキング記憶部74からユーザの属性が含まれる範囲に関連づけられたランキングとともに、それに隣接する範囲に関連づけられたランキングも読み出し、それらのランキングを合成してもよい。この場合、ユーザの属性が含まれる範囲に関連づけられたランキングから合成後のリストに含められる楽曲数は、隣接する範囲に関連づけられたランキングから合成後のリストに含まれる楽曲数よりも少なくなるようにしてよい。ランキング選択合成部75により合成されるランキング、すなわち楽曲IDのリストは、ハードディスクドライブ23又は図示しない別体のデータベースを用いて構成される1次リスト記憶部81に格納される。
次に、楽曲特徴データベース83は、ハードディスクドライブ23又は図示しない別体のデータベースを用いて構成されるものであり、図12に示すように楽曲IDと複数の特徴の量とを関連づけて記憶している。特徴は、例えば楽曲のテンポ、楽曲が特定周波数の音を含む程度、楽曲の解説テキスト中に特定キーワードが含まれている頻度などであり、それらの特徴量はコンピュータによる解析処理の結果として入力されてよい。以下では、各特徴の量を成分とするベクトルを特徴ベクトルと記す。
嗜好ベクトル記憶部78は、ハードディスクドライブ23又は図示しない別体のデータベースを用いて構成されるものであり、各ユーザの嗜好ベクトルを記憶する。嗜好ベクトルは、各楽曲の特徴ベクトルと同様に、図12に示される各特徴の量を成分とするベクトルである。こうした嗜好ベクトルは、ユーザの好みの楽曲の特徴ベクトルに基づいて生成することができる。
嗜好ベクトル更新部77は、ユーザ装置12から送信される各楽曲に対する評価に係る情報に基づいて、嗜好ベクトル更新部77に記憶される嗜好ベクトルを更新する。例えば、ユーザ装置12から楽曲ID、ユーザID及び肯定的評価を受信すると、受信した楽曲IDに関連づけられた特徴ベクトルを楽曲特徴データベース83から読み出し、受信したユーザIDに関連づけて嗜好ベクトル記憶部78に記憶された嗜好ベクトルの向きを、読み出した特徴ベクトルの向きに近づける。なお、嗜好ベクトル更新部77をユーザ装置12側に設けて、ユーザ装置12内の嗜好ベクトル更新部77が、操作部61で得られる各楽曲に対する評価に係る情報に基づき、ユーザ装置12内に記憶された嗜好ベクトルを更新するようにしてもよい。このとき、嗜好ベクトル更新部77は、楽曲配信サーバ14内の楽曲特徴データベース83から楽曲の特徴ベクトルをダウンロードするようにしてもよいし、或いは楽曲特徴データベース83と同等のデータベースをユーザ装置12に設けるようにして、そこから楽曲の特徴ベクトルを読み出すようにしてもよい。こうしてユーザ装置12内において常に最新のものに管理される嗜好ベクトルは、上述のように楽曲リストの要求に含められて、楽曲配信サーバ14に送信される。そして、これを受信した楽曲配信サーバ14は該楽曲配信サーバ14内の嗜好ベクトル記憶部78に格納する。
楽曲属性データベース82は、ハードディスクドライブ23又は図示しない別体のデータベースを用いて構成されるものであり、図13に示すように楽曲IDと複数の楽曲の属性のそれぞれに当てはまるか否かを示すフラグとを関連づけて記憶している。楽曲の属性は、例えばリラックス、バラード、ハッピー、アクティブなどの曲調であり、コンピュータによる解析処理の結果として入力されてよい。
2次リスト生成部80は、1次リスト記憶部81に記憶されるリストに含まれる各楽曲IDに関連づけられたフラグを楽曲属性データベース82から読み出し、ユーザ装置12から送信される要求に含まれる属性に当てはまる楽曲であるか否かを判断する。そして、ユーザ装置12から送信される要求に含まれる属性に当てはまる楽曲の楽曲IDだけを、1次リスト記憶部81に記憶されるリストに含まれる楽曲IDから抽出し、これらの楽曲IDのリストを2次リストとしてソート部79に供給する。ソート部79では、2次リストに含まれる楽曲IDに関連づけられた特徴ベクトルを楽曲特徴データベース83から読み出すとともに、ユーザ装置12から受信した要求に含まれるユーザIDに関連づけて嗜好ベクトル記憶部78に記憶されている嗜好ベクトルを読み出す。そして、両ベクトルの類似度を算出して、類似度が高い順に楽曲IDをソートする。なお、ベクトル間の類似度は、両ベクトルのなす角度であってよい。この場合、なす角度が小さいほど類似度は高いことになる。ソート部79は、両ベクトルの類似度が高い順に所定数(例えば10)の楽曲IDを推薦楽曲リストに含め、同リストをユーザ装置12に返信する。
楽曲データベース85は、ハードディスクドライブ23又は図示しない別体のデータベースを用いて構成されるものであり、楽曲IDに関連づけて該楽曲のデータを記憶するものである。楽曲配信部84は、ユーザ装置12から楽曲IDを受信し、この楽曲IDに関連づけて記憶された楽曲データを楽曲データベース85から読み出し、ユーザ装置12に返信するものである。
ここで、本実施形態に係るコンテンツ推薦システム10の動作を説明する。図14は、コンテンツ推薦システム10の動作シーケンス図である。同図に示すように、ユーザ装置12は楽曲配信サーバ14に対し、ユーザID及び楽曲属性を含む楽曲リスト要求を送信する(S101)。楽曲配信サーバ14では、ランキング選択合成部75が、受信したユーザIDに関連づけられたユーザ属性をユーザ情報記憶部71から読み出し(S102)、読み出したユーザ属性に対応するランキングを内部ランキング記憶部74及び楽曲ランキング配信サーバ15から取得する(S103,104)。そして、取得したランキングを合成し、1次リスト記憶部81に格納する(S105)。次に、楽曲配信サーバ14では、2次リスト生成部80が1次リスト記憶部81に記憶された楽曲IDを楽曲属性に基づいて絞り込み、2次リストを生成する(S106)。さらに、ソート部79は、2次リストに含まれる楽曲IDを、それら楽曲IDに関連づけられた特徴ベクトルとユーザの嗜好ベクトルとの類似度に従ってソートし(S107)、類似度が高い順に所定数の楽曲IDからなる推薦楽曲リストを生成して、ユーザ装置12に返信する(S108)。ユーザ装置12では、楽曲再生部62が推薦楽曲リストを受信し、そこに含まれる楽曲IDを楽曲配信サーバ14に送信する(S109)。楽曲配信サーバ14では、楽曲配信部84が受信した楽曲IDに関連づけられた楽曲データをユーザ装置12に返信する(S110)。そして、ユーザ装置12の楽曲再生部62では受信した楽曲データを再生する。同様にして推薦楽曲リストに含まれる全ての楽曲IDについて楽曲再生を行うと、ユーザ装置12は再びS101の処理を実行する。
以上説明したコンテンツ推薦システム10によると、時間経過に応じて順次生成されるコンテンツのリストである各種のランキングを用いて推薦楽曲リストが生成されるので、同じ楽曲がユーザに推薦され続けるという不具合を防止でき、ユーザに多様な楽曲を推薦することができる。
なお、本発明は上記実施形態に限定されるものではなく、種々の変形が可能である。例えば、以上の説明では推薦楽曲リストを楽曲配信サーバ14において生成するようにしたが、ユーザ装置12に図7に示される機能、特にランキング選択合成部75、1次リスト記憶部81、2次リスト生成部80、ソート部79、嗜好ベクトル記憶部78及び嗜好ベクトル更新部77を設けて、該ユーザ装置12において推薦楽曲リストを生成するようにしてもよい。