以下、本発明の一実施の形態に係る番組推薦システムについて図面を参照しながら説明する。なお、以下の実施の形態は、本発明を具体化した一例であって、本発明の技術的範囲を限定する性格のものではない。
(第1の実施形態)
図1は、本発明の第1の実施形態の推薦番組の抽出方法を表した概念図である。本実施形態では、説明の簡略化のためにユーザの番組操作として、録画予約操作を用いて説明する。
図1のグラフ100aは、“ドラマA”を予約したユーザをグルーピングした後、グルーピングしたグループAに属する全ユーザのその他の予約を行っている番組の予約率ランキングを示したものである。すなわち、“ドラマA”を予約したユーザのその他の予約番組のランキングである。従って、本来であれば、“ドラマA”を共通に予約しているという嗜好条件の一致によって、その他のユーザの嗜好の協調フィルタリングによって、“ドラマA”以外のその他の予約率ランキングの上位番組をユーザに推薦番組として提供することができる。
しかしながら、本実施形態では、例えばワールドカップサッカーの日本戦のように、多数のユーザが、本来のユーザの趣味嗜好と関係の無い特定番組へ一時的に予約が集中している場合を示している。このような場合においては、“ドラマA”を予約したユーザも、その他のニュースや音楽番組に対して嗜好を持っているユーザであったとしても、一時的にこのような特定番組に予約が集中している。そのため、その番組を視聴しているユーザにも、予約した番組でグルーピングしているにもかかわらず同じ特定番組しか推薦できない事態となる。グラフ100aでは、推薦番組を生成するための予約率の閾値104を超えたワールドカップ2試合のみが推薦番組101として生成されてしまう。
よって、本実施形態では、“ドラマA”を予約したユーザのグループAだけではなく、グループAのユーザを包含する、グループBを抽出して、このグループBの予約率ランキングを生成する(図1のグラフ100b)。グループBは、グループAに属する全ユーザを全て包含するグループであればどのようなグルーピングでもかまわないが、処理の軽減のために、番組推薦システムを利用する全てのユーザがグループBとしてグルーピングされる。
よって、番組推薦システムでは、“ドラマA”を予約したグループAの予約率ランキング(図1のグラフ100a)と、全ユーザからなるグループBの予約率ランキング(図1のグラフ100b)とがともに生成される。そして、グループAの予約率ランキングからグループBの予約率ランキングが減算処理されることによって、グループAに特化した予約率ランキングが生成される(図1のグラフ100c)。ここで、各予約率ランキングを番組の予約数ではなく、予約率としたのは、グループA及びグループBで互いに所属するユーザ数が異なるため、それぞれのグループに属するユーザ数で予約数を正規化していることと同等の処理とするためである。また、グラフ100cに示すように、減算後、グループAに特化した予約率ランキングを閾値105によって、閾値判定して、閾値105を上回った番組を推薦番組103としてユーザに推薦する。従って、この推薦番組103は、グループAに特化した推薦番組として提供可能である。
この減算処理を用いることによって、グループAの各番組の予約率を、ユーザ全体が一般的に予約している番組の予約率に基づいて低下させて、一般的に視聴されている番組ではなく、グループAに属するユーザが特に嗜好している番組を抽出することが可能となる。
なお、上記、グループAが特許請求の範囲の第1のグループに相当し、グループBが特許請求の範囲の第2のグループに相当する。
図2は、第1の実施形態に係る番組推薦システムの全体構成を示すブロック図である。番組推薦システムは、例えば番組録画装置などの複数の番組視聴端末2と、番組推薦サーバ3とを備える。複数の番組視聴端末2と番組推薦サーバ3とは、インターネットなどの汎用のネットワーク4を介して互いに通信可能に接続される。なお、図2に示すように、本来、番組推薦サーバ3には、複数の番組視聴端末2が接続されるが、本実施形態では、説明の簡易化のために1台の番組視聴端末2が接続されている場合について説明する。
番組視聴端末2は、放送波又はIP網から番組を受信して、番組を視聴したり、番組を録画したり、録画した番組を再生したり、録画した番組を消去したり、番組の録画予約をしたりする。番組推薦サーバ3は、番組視聴端末2とネットワーク4を介して互いに通信可能に接続され、番組に対するユーザの操作を表す操作情報を番組視聴端末2から取得し、ユーザの嗜好に合った番組に関する推薦情報を操作情報に応じて作成する。
まず、本実施形態の番組推薦システムにおける番組視聴端末2の構成について説明する。図3は、第1の実施形態の番組視聴端末の構成を示すブロック図である。
番組視聴端末2は、アンテナ201、チューナ202、TS(トランスポート・ストリーム)デコーダ203、CAS(Conditional Access System)204、暗号解除部205、デマルチプレクサ206、MPEG Videoデコーダ207、MPEG Audioデコーダ208、HDMI(High−Definition Multimedia Interface)端子209、記録用暗号化部213、記録制御部214、記録媒体215、再生制御部216、記録用復号化部217、PSI(Program Specific Information)抽出部218、EPG(Electronic Program Guide)記憶部219、キー220、予約管理部221、予約メモリ222、ユーザ識別部223、ユーザ情報DB(データベース)224、予約情報送信部225、推薦受信部226、推薦番組情報抽出部227、番組予約判定部228及び推薦番組抽出部229から構成される。
チューナ202は、例えば地上波デジタル放送やBSデジタル放送などの放送波から所定チャンネルの放送波を受信して、放送波をTSデコーダ203に出力する。TSデコーダ203は、受信した一般的なトランスポート・ストリーム形式の放送波を復調して暗号解除部205に出力する。
CAS204は、一般的なConditional Access Systemであり、ユーザの登録情報及び番組の暗号鍵の記録されたICカードから暗号鍵情報を読み出し、暗号解除部205に出力する。
暗号解除部205は、TSデコーダ203によって復調された、暗号化された放送信号を、CAS204からの暗号鍵をもとに復号化し、暗号化された番組情報の暗号を解除してデマルチプレクサ206に出力する。
デマルチプレクサ206は、番組情報として多重化されている情報を分離する。番組情報には、少なくともビデオ情報、オーディオ情報及び番組管理情報が多重化され、これらを分離後、ビデオ情報をMPEG Videoデコーダ207へ、オーディオ情報をMPEG Audioデコーダ208へ、番組管理情報をPSI抽出部218へ出力する。
MPEG Videoデコーダ207は、デマルチプレクサ206からのビデオ情報を復調して映像データに変換し、HDMI端子209に出力する。MPEG Audioデコーダ208は、デマルチプレクサ206から入力されたオーディオ情報を復調してオーディオデータに変換し、HDMI端子209に出力する。HDMI端子209は、HDMIケーブルを介して外部のHDMI端子210と接続されており、HDMI端子210は、モニタ211及びスピーカ212と接続されている。
HDMI端子209,210は、一般的な映像情報用及び音声情報用のインタフェースであり、番組視聴端末2とモニタ211及びスピーカ212とを互いに相互認証するとともに、暗号鍵の共通化を行い、共通化した暗号鍵で、映像データや音声データを暗号化して、モニタ211やスピーカ212に出力する。
モニタ211は、一般的な番組の映像情報の表示装置であって、HDMI端子210で受信した暗号化された映像データを復号して番組の映像データを出力する。スピーカ212は、一般的な番組の音声情報の出力装置であって、HDMI端子210で受信した暗号化された音声データを復号して番組の音声データを出力する。
記録用暗号化部213は、受信した番組情報を記録媒体に記録するための暗号処理を施す。記録用暗号化部213は、デマルチプレクサ206から入力された番組情報を暗号化して記録制御部214に出力する。従って、記録用暗号化部213は、番組情報を記録する記録媒体に特有の暗号化処理を行う。例えば、DVD−RAMではCPRM(Content Protection for Rewritable Media)、Blu−rayディスクやHD−DVDでは、AACS(Advanced Access Content System)が用いられる。
記録制御部214は、記録用暗号化部213によって暗号化された番組情報の記録媒体への記録を制御する。記録制御部214は、記録媒体特有の変調処理や誤り訂正符号化処理を行うことによって記録媒体に番組情報を記録する。
記録媒体215は、番組情報を記録するコンピュータ読み取り可能な記録媒体であって、例えば、ハードディスクのような磁気記録ディスクやDVD、Blu−rayディスクなどの光ディスク、SDカードのような半導体メモリ、及びMO/MDのような光磁気記録媒体が用いられる。なお、記録媒体215には、番組視聴プログラムが記録されており、番組視聴プログラムがCPU(中央演算処理装置)等によって読み出されて実行される。
再生制御部216は、記録媒体215に記録されている番組情報を読み出す。なお、記録制御部214、記録媒体215及び再生制御部216は、ドライブシステムとして構成されるのが一般的である。
記録用復号化部217は、記録用暗号化部213の暗号化に対応する復号を行う。記録用復号化部217は、暗号化して記録媒体215に記録された番組情報を復号化してTSデコーダ203に出力する。なお、TSデコーダ203に出力された番組情報の再生処理は、上述のアンテナ201で受信した番組の再生処理と同様である。
PSI抽出部218は、デマルチプレクサ206で抽出した番組管理情報からPSI(Program Specific Information)を抽出する。PSIの中には、主に、PMT(Program Map Table)、EIT(Event Information Table)及びTOT(Time Offset Table)などの情報が含まれる。
PMTは、番組に含まれる画像や音声などの各パケット識別情報を格納している。よって、PMTから画像や音声などのパケット識別情報を得ることが出来れば、それらパケット識別情報のついたパケットを抽出することで番組を再生できる。
EITは、番組の名称、放送日時及び放送内容などの番組に関連する情報が含まれる。EPG(Electronic Program Guide)は主にこの情報を用いて作成される。
EPG記憶部219は、PSI抽出部218で抽出したPSI中のEITを用いてEPG情報を作成して、記憶する。キー220は、ユーザからの入力を受け付け、リモコンやフロントパネルで構成される。
予約管理部221は、キー220で入力されるコマンドに従って録画予約する番組を受け付け、予約番組情報を作成する。予約番組情報には、番組を識別するための番組識別情報が含まれる。予約番組情報は、EPG記憶部219に記憶したEPG情報を用いて作成される。予約メモリ222は、予約管理部221によって作成された予約番組情報を蓄積するメモリで構成される。なお、予約番組情報は、番組識別情報ではなく、番組の放送日時、チャンネル情報及び放送局識別情報を含んでもよい。すなわち、番組の放送日時、チャンネル情報及び放送局識別情報により、番組を識別することが可能となる。
ユーザ識別部223は、番組視聴端末2を使用するユーザを識別する。ユーザ識別部223は、キー220を用いて入力されるユーザ情報に基づいて、番組視聴端末2を使用するユーザを識別する。
ユーザ情報DB224は、番組視聴端末2を使用する全ユーザのユーザ情報が登録されているデータベースである。ユーザ識別部223は、キー220を用いて入力されるユーザ情報と、ユーザ情報DB224に予め記憶されているユーザ情報とに基づいてユーザを識別する。また、ユーザ識別部223は、ユーザの認証に成功すると現在使用中のユーザのユーザ情報を予約情報送信部225に出力する。
予約情報送信部225は、一般的なネットワークインタフェースであり、汎用のネットワーク4を介して接続される番組推薦サーバ3とのネットワークを確立した後、予約メモリ222に記憶した予約番組情報とユーザ識別部223から入力されたユーザ情報とを含む予約情報を番組推薦サーバ3に送信する。
なお、予約メモリ222は、ユーザ識別部223と連動して予約したユーザを対応付けて記憶するとともに、予約情報送信部225によって番組推薦サーバ3に送信済みの予約番組情報と未送信の予約番組情報とを識別可能に管理する。
推薦受信部226は、汎用のネットワーク4を介して、番組推薦サーバ3の推薦する番組に関する推薦情報を受信する。推薦番組情報抽出部227は、推薦受信部226によって受信された推薦情報から、推薦番組情報を抽出する。推薦番組情報は、推薦する番組を一意に識別できる情報であり、例えば、番組を識別するための番組識別情報、又は番組の放送日時、チャンネル情報及び放送局を識別するための放送局識別情報を含む。抽出した推薦番組情報は、番組予約判定部228に出力される。
なお、推薦情報は、推薦番組情報と人気番組情報とを含む。推薦番組情報は、番組視聴端末2を使用するユーザの嗜好に特化した番組を表す情報であり、人気番組情報は、全てのユーザに人気のある番組を表す情報である。
番組予約判定部228は、推薦番組情報で示された推薦番組が、過去に放送された番組であるか否かを判定する。すなわち、番組予約判定部228は、推薦番組の放送日時が現在の日時よりも前である場合、過去に放送された番組であると判定する。推薦番組が過去に放送された番組ではないと判定された場合、番組予約判定部228は、予約メモリ222に記憶している予約番組情報と、推薦番組情報抽出部227から入力された推薦番組情報とに基づいて、該当する番組が既に予約されているかどうかを判定する。
予約されていないと判定された場合、番組予約判定部228は、推薦番組情報を予約管理部221に出力して、推薦番組情報に該当する予約処理を行う。予約されていると判定された場合、番組予約判定部228は、推薦番組が既に予約されている旨をユーザに通知し、処理を終了する。また、番組予約判定部228は、推薦番組情報で示された推薦番組が、過去に放送された番組であると判定された場合、推薦番組抽出部229に推薦番組情報を出力する。
推薦番組抽出部229は、推薦番組情報で指定された番組が、記録媒体215に記録されているかどうかを判定する。記録されていない場合、推薦番組抽出部229は、推薦番組が記録されていない旨をユーザに通知し、処理を終了する。記録されていると判定された場合、推薦番組抽出部229は、推薦番組が存在することをユーザに通知し、ユーザからの再生を促す。キー220を用いてユーザが再生を選択した場合、再生制御部216は、推薦番組情報に示された番組情報を記録媒体215から呼び出して、番組の再生を行う。
なお、推薦番組抽出部229は、推薦番組情報で指定された番組が、記録媒体215に記録されているかどうかを、番組推薦サーバ3からの推薦番組情報に含まれる推薦番組の番組識別情報、又は推薦番組の放送日時、チャンネル情報及び放送局識別情報を基に判定する。
次に、本実施形態の番組推薦システムにおける番組推薦サーバ3の構成について説明する。図4は、第1の実施形態の番組推薦サーバの構成を示す図である。
番組推薦サーバ3は、予約情報受信部230、ユーザ管理部231、ユーザ属性DB(データベース)232、予約情報登録部234、予約情報DB(データベース)235、特化生成部30、推薦番組作成部239及び推薦送信部240から構成される。また、番組推薦サーバ3の特化生成部30は、コミュニティ予約情報統計部236、全ユーザ予約情報統計部237及びコミュニティ特化部238で構成される。
予約情報受信部230は、汎用のネットワーク4に接続された複数の番組視聴端末2の予約情報送信部225から、各ユーザによって予約された番組の予約番組情報と、予約を行ったユーザを識別するためのユーザ情報とを含む予約情報を受信する。なお、予約番組情報は、予約を行った番組を一意に識別可能な番組識別情報、又は予約された番組の番組放送日時、チャンネル情報及び放送局識別情報を含む。受信した予約情報は、ユーザ管理部231に出力される。
ユーザ属性DB232は、登録ユーザのユーザ情報と、必要であれば、ユーザ氏名、性別、住所/電話番号、番組視聴端末のメーカ/機種、接続するモニタの解像度および番組視聴端末のネットワークIDなどのユーザ属性情報とをユーザ登録リストとして管理する。ユーザは、予め番組推薦サーバ3に、番組推薦を行うためのユーザ登録処理を行う。ユーザ登録処理には、ユーザ名の設定、住所/電話番号の通知などユーザ登録情報の通知を行った後、番組推薦サーバ3側で、該ユーザにユーザ情報を生成して通知し、ユーザ属性DB232で生成したユーザ情報に対応付けて、ユーザから通知されたユーザ属性情報を記憶/管理する。
ユーザ管理部231は、受信したユーザ情報により特定されるユーザが、番組推薦サーバ3の登録ユーザであるか否かを判定する。ユーザ管理部231は、ユーザ属性DB232に記憶されているユーザ登録リストの中から、受信したユーザ情報に一致するユーザ情報を検索する。受信したユーザ情報がユーザ属性DB232に登録されていると判断された場合、番組推薦サーバ3の登録ユーザであると判断して、処理を継続する。
一方、受信したユーザ情報がユーザ属性DB232に登録されていないと判断された場合、番組推薦サーバ3への未登録ユーザであるとして、当該ユーザの使用する番組視聴端末2に登録ユーザでない旨のエラーメッセージを送信して以後の処理を中断する。エラーメッセージを受信した番組視聴端末2は、当該エラーメッセージをモニタ211に表示する。
予約情報登録部234は、ユーザ管理部231によってユーザが番組推薦サーバ3の登録ユーザであると判定された場合、予約情報受信部230によって受信されたユーザ毎の予約番組情報を、受信したユーザ情報に対応付けて、予約情報DB235に記憶する。予約情報DB235は、番組視聴端末2によって送信された予約番組情報をユーザ情報に対応付けて記憶するデータベースである。
コミュニティ予約情報統計部236は、予約情報受信部230によって受信された予約番組情報に基づいて、当該予約番組情報と同じ予約番組情報を持った全ユーザをコミュニティグループとしてグループ化する。また、コミュニティ予約情報統計部236は、当該コミュニティグループに属する全ユーザの当該予約番組情報以外の予約番組情報を番組毎に集計してランキングを生成するとともに、コミュニティグループに所属する全ユーザ数でランキングを正規化し、コミュニティグループ内の各番組の予約率ランキングを算出する。コミュニティ予約情報統計部236は、正規化したランキング(予約率ランキング)をコミュニティ特化部238に出力する。
全ユーザ予約情報統計部237は、予約情報受信部230によって受信された予約番組情報を持った全ユーザをコミュニティグループとしてグループ化するコミュニティ予約情報統計部236とは異なり、ユーザ属性DB232に登録されている全ユーザ、すなわち番組推薦サーバ3の全登録ユーザを、コミュニティグループを包含する全ユーザグループとしてグルーピングする。また、全ユーザ予約情報統計部237は、全ユーザのグルーピング後、全ユーザの予約番組情報を統計処理して、番組毎の予約率ランキングを作成する。すなわち、全ユーザ予約情報統計部237は、全登録ユーザの予約番組情報を番組毎に集計してランキングを生成するとともに、全登録ユーザ数でランキングを正規化し、全登録ユーザで形成されるグループ内の各番組の予約率ランキングを算出する。作成した予約率ランキングは、コミュニティ特化部238と推薦番組作成部239とに出力される。
コミュニティ特化部238は、コミュニティ予約情報統計部236によって算出された予約率ランキングから、全ユーザ予約情報統計部237によって算出された予約率ランキングを減算することによって、コミュニティ予約情報統計部236でグルーピングしたコミュニティグループに特化した予約率ランキングを作成して、推薦番組作成部239に出力する。なお、ランキングの減算は、番組毎の予約率を、同一番組ごとに減算する。
推薦番組作成部239は、コミュニティ特化部238によって生成された予約率ランキングを基に、予め設定された閾値よりも予約率の高い番組を推薦番組として抽出し、当該推薦番組を識別するための番組識別情報、又は当該推薦番組の放送日時、当該推薦番組が放送されるチャンネル情報及び当該推薦番組が放送される放送局を識別するための放送局識別情報を含む推薦番組情報を作成する。これによって、推薦番組作成部239は、コミュニティグループに特化した推薦番組情報を作成する。
なお、本実施形態では、予め設定された閾値よりも予約率の高い番組を推薦番組として抽出しているが、本発明は特にこれに限定されず、コミュニティ特化部238によって生成された予約率ランキングの上位所定数の番組を推薦番組として抽出してもよい。
また、推薦番組作成部239は、全ユーザ予約情報統計部237によって生成された予約率ランキングを基に、予め設定された閾値よりも予約率の高い番組を人気番組として抽出し、当該人気番組を識別するための番組識別情報、又は当該人気番組の放送日時、当該人気番組が放送されるチャンネル情報及び当該人気番組が放送される放送局を識別するための放送局識別情報を含む人気番組情報を作成する。
なお、本実施形態では、予め設定された閾値よりも予約率の高い番組を人気番組として抽出しているが、本発明は特にこれに限定されず、全ユーザ予約情報統計部237によって生成された予約率ランキングの上位所定数の番組を人気番組として抽出してもよい。
推薦送信部240は、推薦番組作成部239によって作成された推薦番組情報と人気番組情報とを含む推薦情報を番組視聴端末2に送信する。
番組推薦サーバ3は、コンピュータ読み取り可能な記録媒体からプログラム及びデータを読み出す再生制御部(不図示)を備えている。記録媒体としては、例えば、ハードディスクのような磁気記録ディスクやDVD、Blu−rayディスクなどの光ディスク、SDカードのような半導体メモリ、及びMO/MDのような光磁気記録媒体が用いられる。この記録媒体には、番組推薦プログラムが記録されており、番組推薦プログラムがCPU(中央演算処理装置)等によって読み出されて実行される。
以下、本実施形態における番組推薦システムの動作について説明する。例えば、ユーザAが、ユーザAの所有する番組視聴端末2によって、番組Aを予約する。番組視聴端末2は、ユーザAを識別するためのユーザ情報と、番組Aを特定するための予約番組情報を番組推薦サーバ3に送信する。番組推薦サーバ3の予約情報受信部230は、ユーザAの所有する番組視聴端末2から、ユーザAを識別するためのユーザ情報と番組Aを特定するための予約番組情報とを受信する。ユーザ管理部231は、受信したユーザ情報がユーザ属性DB232に記憶されているか否かを判定し、記憶されていれば、ユーザAが番組推薦サーバ3の登録ユーザであるとして、処理を継続する。
予約情報登録部234は、ユーザAを識別するためのユーザ情報に対応付けて、番組Aを特定するための予約番組情報を予約情報DB235に登録する。コミュニティ予約情報統計部236は、番組Aを特定するための予約番組情報が対応付けられている全ユーザを予約情報DB235から抽出してコミュニティグループを形成する。コミュニティ予約情報統計部236は、コミュニティグループ内における番組A以外の番組を統計的に処理する。そして、コミュニティ予約情報統計部236は、コミュニティグループ内において番組A以外の番組の予約率を算出して、予約率の高い順に番組を並べた予約率ランキングを生成し、生成した予約率ランキングをコミュニティ特化部238に出力する。
全ユーザ予約情報統計部237は、番組推薦サーバ3のユーザ属性DB232に登録されている全ユーザを予約情報DB235から抽出してコミュニティ予約情報統計部236で形成したコミュニティグループを包含する全ユーザグループを形成する。全ユーザ予約情報統計部237は、全ユーザグループ内のユーザ情報に対応付けられている予約番組情報を、予約情報DB235から抽出して、番組A以外の番組を統計処理する。そして、全ユーザ予約情報統計部237は、全ユーザグループ内において番組A以外の番組の予約率を算出して、予約率の高い順に番組を並べた予約率ランキングを生成し、生成した予約率ランキングをコミュニティ特化部238と推薦番組作成部239とに出力する。
コミュニティ特化部238は、コミュニティ予約情報統計部236によって作成された番組の予約率ランキングから、全ユーザ予約情報統計部237によって作成された番組の予約率ランキングを減算する。これにより、コミュニティ特化部238は、番組Aを予約したユーザのコミュニティグループに特化した番組の予約率ランキングを作成して推薦番組作成部239に出力する。
推薦番組作成部239は、コミュニティ特化部238によって作成された、コミュニティグループに特化した予約率ランキングに基づき、閾値よりも予約率の高い番組の予約番組情報又はランキング上位の予約番組情報を抽出して推薦番組情報を作成する。また、推薦番組作成部239は、全ユーザ予約情報統計部237によって作成された、全登録ユーザの一般化された予約率ランキングに基づき、閾値よりも予約率の高い番組の予約番組情報又はランキング上位の予約番組情報を抽出して人気番組情報を作成する。推薦送信部240は、推薦番組作成部239によって作成された推薦番組情報及び人気番組情報をユーザAの番組視聴端末2に出力する。
次に、番組推薦システムの処理の流れについてさらに説明する。図5〜7は、第1の実施形態に係る番組推薦システムの処理の流れを示したフローチャートであり、図5は、第1の実施形態に係る番組視聴端末における予約情報を送信するまでの処理の流れを示すフローチャートであり、図6は、第1の実施形態に係る番組推薦サーバにおける処理の流れを示すフローチャートであり、図7は、第1の実施形態に係る番組視聴端末における推薦情報を受信してからの処理の流れを示すフローチャートである。
図5において、まず、キー220は、ユーザによるユーザ情報の入力を受け付け、番組視聴端末2へのログインを受け付ける(ステップS1)。次に、ユーザ識別部223は、ユーザ認証が成功したか否か、すなわち、入力されたユーザ情報がユーザ情報DB224に予め登録されているユーザ情報と一致するか否かを判断する(ステップS2)。ここで、入力されたユーザ情報が誤っており、登録ユーザでないと判断された場合(ステップS2でNO)、ユーザ識別部223は、エラー通知をモニタ211に出力して処理を終了する(ステップS3)。
一方、入力されたユーザ情報に誤りがなく、登録ユーザであると判断された場合(ステップS2でYES)、チューナ202は、アンテナ201から放送波を受信する(ステップS4)。
次に、TSデコーダ203は、チューナ202によって受信された放送波を復調する。次に、暗号解除部205は、CAS204からの復号鍵を利用して、放送波に含まれる番組情報の暗号化を解除する。次に、デマルチプレクサ206は、多重化されている番組情報を、ビデオ信号、オーディオ信号および番組制御信号に分離する。次に、PSI抽出部218は、分離された番組制御信号に含まれるPSIを抽出する(ステップS5)。
次に、PSI抽出部218は、抽出したPSIを基に、受信可能な全チャンネルのEPGを作成し、EPG記憶部219に記憶する(ステップS6)。次に、PSI抽出部218は、モニタ211に作成したEPGをユーザから個々の番組を選択可能に表示する(ステップS7)。
次に、予約管理部221は、ユーザからの予約操作が有ったか否かを判断する(ステップS8)。予約管理部221は、番組を選択可能に表示したEPGから、ユーザによる予約操作を受け付ける。ここで、ユーザによる予約操作がないと判断された場合(ステップS8でNO)、予約管理部221は、ユーザによる予約操作が行われるまで待機する。
一方、ユーザからの予約操作があると判断された場合(ステップS8でYES)、予約管理部221は、予約操作の対象となった番組に対応した番組識別情報、又は番組放送日時、チャンネル情報及び放送局識別情報をEPGから抽出し、予約メモリ222に予約番組情報として記憶する。これにより、予約管理部221は、番組の予約の設定を行う(ステップS9)。以後、本実施形態では、ステップS9において予約の設定を行った番組を番組Aとして説明する。
ステップS9において番組Aの予約の設定が完了すると、予約情報送信部225は、番組Aに対応した予約番組情報Aと、番組Aの予約を行ったユーザを識別するためのユーザ情報とを予約情報として番組推薦サーバ3に送信する(ステップS10)。
図6において、次に、番組推薦サーバ3の予約情報受信部230は、番組視聴端末2によって送信された予約情報を受信する(ステップS11)。次に、ユーザ管理部231は、ユーザ認証が成功したか否か、すなわち、受信した予約情報に含まれるユーザ情報が番組推薦サーバ3のユーザ属性DB232に予め登録されているユーザ情報と一致するか否かを判断する(ステップS12)。ここで、ユーザ認証に失敗し、登録ユーザでないと判断された場合(ステップS12でNO)、ユーザ管理部231は、その旨を示すエラーメッセージを作成して、番組視聴端末2にエラーメッセージを送信し、処理を終了する(ステップS13)。なお、エラーメッセージを受信した番組視聴端末2は、ユーザ認証に失敗した旨を表すエラー通知をモニタ211へ出力する。
一方、ユーザ認証に成功し、登録ユーザであると判断された場合(ステップS12でYES)、予約情報登録部234は、予約情報受信部230によって受信されたユーザ情報に対応付けて、予約番組情報Aを予約情報DB235に登録する(ステップS14)。
次に、予約情報登録部234は、予約情報DB235に記憶された全登録ユーザの予約番組情報を基に、番組Aの予約番組情報Aを有する全ユーザを抽出し、コミュニティグループとしてグルーピングする(ステップS15)。
次に、コミュニティ予約情報統計部236は、グルーピングされたコミュニティグループのユーザのユーザ情報に対応付けられている番組A以外の番組の予約番組情報を集計して、番組毎の予約数のランキングを生成する(ステップS16)。
次に、コミュニティ予約情報統計部236は、集計された番組毎の予約数を、グルーピングされたユーザ数によって正規化して、番組毎の予約率を生成して、予約率の高い番組から順に並べた予約率ランキングを生成する(ステップS17)。
次に、全ユーザ予約情報統計部237は、ユーザ属性DB232に登録されているユーザ、すなわち番組推薦サーバ3の全登録ユーザを抽出し、全ユーザグループとしてグルーピングする(ステップS18)。なお、ステップS18において作成される全ユーザグループは、全ての登録ユーザで構成されるので、ステップS15において作成された番組Aの予約番組情報を持ったユーザのグループを包含したグループとなる。
次に、全ユーザ予約情報統計部237は、グルーピングされた全ユーザグループにおいて、番組A以外の番組の全ユーザの予約番組情報を集計して、番組毎の予約数のランキングを生成する(ステップS19)。
次に、全ユーザ予約情報統計部237は、集計された番組毎の予約数を、グルーピングされたユーザ数、すなわち番組推薦サーバ3に登録されている全ユーザ数で正規化して、番組毎の予約率を生成して、予約率の高い番組から順に並べた予約率ランキングを生成する(ステップS20)。
次に、コミュニティ特化部238は、コミュニティ予約情報統計部236によって生成された番組Aを予約したユーザの番組A以外の番組の予約率ランキングから、全ユーザ予約情報統計部237によって生成された全ユーザの番組A以外の番組の予約率ランキングを、番組ごとに減算することによって、番組Aを予約したユーザに特化した予約率ランキングを生成する。そして、推薦番組作成部239は、コミュニティ特化部238によって生成された予約率ランキングの中から、予め定められた閾値よりも予約率の高い番組を抽出して推薦番組情報を作成する(ステップS21)。なお、推薦番組作成部239は、コミュニティ特化部238によって生成された予約率ランキングのうちの上位の番組から所定数の番組を抽出して推薦番組情報を作成してもよい。
次に、推薦番組作成部239は、全ユーザ予約情報統計部237によって生成された全ユーザの予約率ランキングの中から、予め定められた閾値よりも予約率の高い番組を抽出して人気番組情報を作成する(ステップS22)。なお、推薦番組作成部239は、コミュニティ特化部238によって生成された予約率ランキングのうちの上位の番組から所定数の番組を抽出して人気番組情報を作成してもよい。
次に、推薦送信部240は、推薦番組作成部239によって作成された推薦番組情報及び人気番組情報を含む推薦情報を番組視聴端末2に送信する(ステップS23)。
図7において、次に、番組視聴端末2の推薦受信部226は、番組推薦サーバ3の推薦送信部240によって送信された推薦番組情報及び人気番組情報を含む推薦情報を受信する(ステップS31)。
次に、推薦番組情報抽出部227は、推薦受信部226によって受信された推薦情報から推薦番組情報が抽出されたか否かを判断する(ステップS32)。推薦番組情報抽出部227は、ユーザに推薦番組情報及び人気番組情報のうちのいずれかの選択を促す。キー220を用いて、推薦番組情報が選択された場合には推薦番組情報を抽出し、人気番組情報が選択された場合には人気番組情報を抽出する。なお、推薦番組情報及び人気番組情報の両方を抽出する設定を設けてもかまわない。これによって、ユーザに対してより多くの選択肢を提供することができる。
推薦番組情報が抽出されたと判断された場合(ステップS32でYES)、番組予約判定部228は、推薦番組情報抽出部227によって抽出された推薦番組情報に含まれる番組識別情報、又は番組放送日時、チャンネル情報及び放送局識別情報を利用して、番組視聴端末2によって既に予約が完了しているか否かを判断する(ステップS33)。例えば、番組予約判定部228は、推薦番組情報に含まれる番組識別情報と、予約メモリ222に記憶されている予約番組情報に含まれる番組識別情報とが一致するか否かを判断する。
推薦番組の予約が完了していないと判断された場合(ステップS33でNO)、予約管理部221は、推薦番組の予約設定を行う(ステップS34)。推薦番組の予約設定が完了した後、又は推薦番組の予約設定が予め完了していた場合(ステップS33でYES)、番組予約判定部228は、推薦情報に含まれる全ての推薦番組情報について予約設定が完了しているか否かを判断する(ステップS35)。
全ての推薦番組情報の予約が完了していないと判断された場合(ステップS35でNO)、ステップS33の処理へ戻り、残りの推薦番組情報における予約設定処理を繰り返し実行する。全ての推薦番組情報の予約が完了したと判断された場合(ステップS35でYES)、処理を終了する。
一方、推薦番組情報が抽出されていないと判断された場合、すなわち、人気番組情報が抽出されたと判断された場合(ステップS32でNO)、番組予約判定部228は、推薦番組情報抽出部227によって抽出された人気番組情報に含まれる番組識別情報、又は番組放送日時、チャンネル情報及び放送局識別情報を利用して、番組視聴端末2によって、既に予約が完了しているか否かを判断する(ステップS36)。例えば、番組予約判定部228は、人気番組情報に含まれる番組識別情報と、予約メモリ222に記憶されている予約番組情報に含まれる番組識別情報とが一致するか否かを判断する。
人気番組の予約が完了していないと判断された場合(ステップS36でNO)、予約管理部221は、人気番組の予約設定を行う(ステップS37)。人気番組の予約設定が完了した後、又は人気番組の予約設定が予め完了していた場合(ステップS36でYES)、番組予約判定部228は、推薦情報に含まれる全ての人気番組情報について予約設定が完了しているか否かを判断する(ステップS38)。
全ての人気番組情報の予約が完了していないと判断された場合(ステップS38でNO)、ステップS36の処理へ戻り、残りの人気番組情報における予約設定処理を繰り返し実行する。全ての人気番組情報の予約が完了したと判断された場合(ステップS38でYES)、処理を終了する。
なお、本実施形態では、番組推薦サーバ3によって送信された推薦番組を全て予約しているがこれに限定されない。推薦番組が既に放送された後であると判断された場合には、番組視聴端末2の推薦番組抽出部229は、推薦番組が記録媒体215に記録済みか否かを判定する。記録済みである場合、推薦番組抽出部229は、ユーザに再生を促すメッセージをモニタ211に出力すればよい。近年のデジタルレコーダは、EPGのキーワード検索により自動的に番組を録画するものや、24時間全チャンネルを録画し続けているものまで存在する。よって、ユーザが意図的に予約設定を行わなかったり、録画を行わなかったりしても、推薦番組が録画されていることは容易に考えられるので、これによってユーザに視聴を見逃した番組の再生を促すシステムを同様のシステムで提供しうる。
また、ユーザが視聴済みである番組については、番組の視聴を促す必要はないので、記録媒体215に記録されている番組に視聴か未視聴かを示すフラグを設け、推薦番組が視聴済みである場合には、番組の再生を促す処理を実施しないようにしてもよい。
また、本実施形態では、ユーザ操作として番組の録画予約操作を用いて説明したが、本発明はこれに限られない。ユーザ操作は、ユーザが番組に対する嗜好に関する動作であればどんな操作でもかまわない。例えば、ユーザ操作は、番組の再生操作、録画操作及び消去操作などでもかまわない。
ユーザ操作が番組の再生操作である場合、番組視聴端末2は、再生した番組の識別情報を番組推薦サーバ3に送信する。番組推薦サーバ3の予約情報登録部234は、ユーザ毎に再生した番組を管理しており、コミュニティ予約情報統計部236は、同一番組を再生したユーザをグルーピングして、グループ内のユーザの再生した番組の再生率ランキングを生成する。また、全ユーザ予約情報統計部237は、全ての登録ユーザをグルーピングして、全ての登録ユーザの再生率ランキングを生成する。コミュニティ特化部238は、コミュニティ予約情報統計部236によって作成された番組の再生率ランキングから全ユーザ予約情報統計部237によって作成された番組の再生率ランキングを減算する。これにより、コミュニティ特化部238は、特定番組を再生したユーザに特化した再生率ランキングを生成し、推薦番組作成部239は、コミュニティ特化部238によって生成された再生率ランキングに基づいて推薦番組情報を生成する。
また、ユーザ操作が録画操作である場合も同様である。ユーザ操作が番組の録画操作である場合、番組視聴端末2は、録画した番組の識別情報を番組推薦サーバ3に送信する。番組推薦サーバ3の予約情報登録部234は、ユーザ毎に録画した番組を管理しており、コミュニティ予約情報統計部236は、同一番組を録画したユーザをグルーピングして、グループ内のユーザの録画した番組の録画率ランキングを生成する。また、全ユーザ予約情報統計部237は、全ての登録ユーザをグルーピングして、全ての登録ユーザの録画率ランキングを生成する。コミュニティ特化部238は、コミュニティ予約情報統計部236によって作成された番組の録画率ランキングから全ユーザ予約情報統計部237によって作成された番組の録画率ランキングを減算する。これにより、コミュニティ特化部238は、特定番組を録画したユーザに特化した録画率ランキングを生成し、推薦番組作成部239は、コミュニティ特化部238によって生成された録画率ランキングに基づいて推薦番組情報を生成する。
また、ユーザ操作が番組の消去操作である場合も応用可能である。ユーザ操作が番組の消去操作である場合、番組視聴端末2は、消去した番組の識別情報を番組推薦サーバ3に送信する。番組推薦サーバ3の予約情報登録部234は、ユーザ毎に消去した番組を管理しており、コミュニティ予約情報統計部236は、同一番組を消去したユーザをグルーピングして、グループ内のユーザの消去した番組の消去率ランキングを生成する。また、全ユーザ予約情報統計部237は、全ての登録ユーザをグルーピングして、全ての登録ユーザの消去率ランキングを生成する。コミュニティ特化部238は、コミュニティ予約情報統計部236によって作成された番組の消去率ランキングから全ユーザ予約情報統計部237によって作成された番組の消去率ランキングを減算する。これにより、コミュニティ特化部238は、特定番組を消去したユーザに特化した消去率ランキングを生成し、推薦番組作成部239は、コミュニティ特化部238によって生成された消去率ランキングに基づいて推薦番組情報を生成する。
また、これらの操作の組み合わせも同様に可能である。例えば、再生した番組情報を集計して、将来放送される番組の予約動作を促すこともできる。このときは、同一の予約情報を持つユーザをグルーピングして、グループ内で再生された番組を集計することで再生を促すための推薦情報を作成することが可能となる。逆に、ユーザの再生した番組情報でグループ化を行い、グループ内で予約情報を集計すれば、同じ番組を再生した類似嗜好を持つユーザの予約情報に基づいて、ユーザの嗜好に合致する番組の予約動作を自動で行うことも可能となる。
また、ユーザ操作として、異なる操作を組み合わせてもよい。例えば、ユーザ操作として、再生操作を伴った番組と、録画操作を伴った番組とをともに集計してランキングを作成してもよい。このときには、異なる操作に基づいて、集計するときの重み付けを変更しても良い。例えば、録画されたけれども、再生されなかった番組よりも、再生された番組のほうがユーザの嗜好度は高いと判断される。そこで、これに基づいた重み付けでランキングを作成する。例えば、特定番組に対して録画のみされている場合には、1ポイント、再生されている場合には2ポイント、消去動作を伴っているものは−1ポイントとして集計する。これにより、ユーザの嗜好に対してより精度の高いランキングを生成することが可能となる。
本実施形態では、番組視聴端末2毎(ユーザ毎)に番組への嗜好操作情報を、番組推薦サーバ3で集計して、ユーザ嗜好の類似したユーザをグルーピングして、グループ内の協調フィルタリングによってユーザに対して嗜好度の高いと思われる番組を推薦して、この推薦された番組を自動的に録画したり、再生を促したり、消去を促したりして、ユーザの番組視聴を支援する。ただし、これだけでは、本明細書の発明が解決しようとする課題に示した課題が解決できない。そこで、圧倒的な人気番組が存在したとしても、操作対象となった番組に基づいてユーザをグループ化して第1のグループを作成し、この第1のグループを包含するような第2のグループをさらに作成し、第1のグループ特有の推薦番組情報を生成できるように、第1のグループのランキングから第2のグループのランキングを減算、すなわち圧倒的に人気のある番組を雑音として抹消することによって、第1のグループに特化した推薦番組を生成することができ、ユーザの嗜好番組の検索動作等の煩雑な操作を回避し、嗜好度の高い番組視聴を支援する。
次に、番組推薦システムの予約情報DB235のデータ構造と、コミュニティ予約情報統計部236による統計処理とについて説明する。図8は、第1の実施形態の予約情報DB235のデータ構造を示す図である。
まず、図8(A)は、番組推薦サーバ3の予約情報DB235に記憶される情報のデータ構造の一例を示す図である。なお、図8(A)には、番組推薦サーバ3の予約情報受信部230によって、ユーザAが番組Aを予約したことを示す予約情報が受信されて、予約情報登録部234によって、予約情報DB235のユーザAのリスト401に番組Aの予約番組情報402が登録されたときの予約情報DB235のデータ構造を示している。予約情報DB235は、番組推薦サーバ3の全登録ユーザのユーザ識別情報(ユーザID)を管理するユーザ識別情報が列方向に登録され、個々のユーザ識別情報に対応して、ユーザが録画予約している予約番組情報が行方向に登録されたデータ構造である。リスト403には、ユーザB,C,Dが登録されている。ユーザB,C,Dは、ユーザA以外の登録ユーザを示し、このユーザB,C,Dに対応した予約番組情報が、個々のユーザの行方向に登録されている。
例えば、ユーザBには、番組A、番組C、番組D及び番組Eという予約番組情報が対応付けられており、ユーザCには、番組X、番組Y、番組Z及び番組Sという予約番組情報が対応付けられており、ユーザDには、番組A、番組B、番組C及び番組Eという予約番組情報が対応付けられている。
図8(B)は、番組Aの予約情報を持ったユーザをグルーピングした結果を示す図である。図8(B)の例では、コミュニティ予約情報統計部236によって、番組Aの予約情報を持ったユーザがグルーピングされた結果を示している。図8(B)に示すように、ユーザC以外のユーザ全てが番組Aの予約情報を持っているので、ユーザC以外の、ユーザA、B、Dがグルーピングされる。
図8(C)は、番組Aを予約した全てのユーザをグルーピングしたグループ内において、番組A以外の番組の予約率を示す図である。図8(C)では、コミュニティ予約情報統計部236によって、番組Aを予約したユーザで構成されるグループにおいて、番組A以外の番組の予約頻度がランキングされる。図8(C)において、番組Aを予約したユーザのグループでは、番組Aの他に番組Cが一番多く予約されており、ついで番組B、番組D及び番組Eが予約されている。
以降、番組の予約率ランキングは、グルーピングされたユーザ数、すなわち3人で正規化され、番組Cの予約率は100%、番組B、番組D及び番組Eは67%と算出される。
なお、正規化方法としては、ランキングの全度数で正規化してもよい。本例では、各ユーザA,B,Dが番組A以外の3つの予約番組情報を有しているので全度数は9となる。よって、番組Cの確率は33%、番組B、番組D及び番組Eの確率は22%と正規化される。この正規化方法は、ユーザの予約番組情報が異なったとしても、グループ内の番組毎の予約確率を求めることになるので正確なランキングが生成可能である。
(第2の実施形態)
続いて、本発明における第2の実施形態について説明する。第1の実施形態では、番組毎に対するユーザ操作情報を、番組推薦サーバにおいて収集するとともに、同一の番組に対するユーザ操作をもとにユーザをグルーピングして、グループ内でのユーザの嗜好番組をランキングして、グループに特化した推薦番組を抽出してユーザに推薦番組を提供している。第2の実施形態では、番組ごとに対するユーザ操作情報を収集するのではなく、番組内の時間軸で指定される一部分に対するユーザ操作を集計することによって、番組内の推薦シーンや推薦時間帯を提供する。
本実施形態では、番組内の時間軸で指定される一部分に対するユーザ操作として、番組中にユーザの嗜好シーンをマーキングするユーザ操作を用いて説明する。マーキングとは、ユーザが放送番組の視聴中、あるいは録画番組の視聴中に、お気に入りのシーンをマーキングすることであり、例えば、お気に入りシーンの間で所定のお気に入りシーンボタンを押し続けることによるマーキング、お気に入りシーンの開始時間と終了時間とを入力することによるマーキング、お気に入りシーンの開始時間でボタン操作を行いお気に入りシーンの継続時間を指定するマーキング、お気に入りシーンの終了時間でボタン操作を行いお気に入りシーンの継続時間を指定するマーキングなどが挙げられる。
本実施形態では、ユーザ毎の番組視聴端末において、ユーザ毎に番組にマーキングを行い、マーキング情報と番組の識別情報とを番組推薦サーバに送信する。番組推薦サーバは、同一時間にマーキングしたユーザ、マーキングの時間的な類似性を持ったユーザ、又はマーキング時間に重なりを有するユーザをグループ化して、グループ内でマーキング情報を集計し、グループ内で特化したお勧めシーンを生成して、ユーザにお勧めシーンを提供する。
図9は、ユーザA及びユーザBの特定番組に対するマーキング方法と、マーキングの集計方法とについて説明するためのタイミングチャートである。
図9に示す番組ストリーム500は、図面の右方向に向かって進行する放送番組の時間経過を示している。また、番組ストリーム500は、連続した番組のフレームで構成される。
図9において、ユーザAは、本特定番組に対してマーキングを行っている。ユーザAは、本特定番組内で、時刻T1〜時刻T3までの間のシーンをマーキング(第1のマーキング501)し、時刻T6〜時刻T8までの間のシーンをマーキング(第2のマーキング502)している。
同様に、図9において、ユーザBは、本特定番組に対してマーキングを行っている。ユーザBは、本特定番組内で、時刻T2〜時刻T4までの間のシーンをマーキング(第1のマーキング503)し、時刻T5〜時刻T7までの間のシーンをマーキング(第2のマーキング504)し、時刻T9〜時刻T10までの間のシーンをマーキング(第3のマーキング505)している。
特定番組の再生が終了した後、ユーザAの番組視聴端末は、番組推薦サーバに対して、ユーザAのユーザ情報、特定番組の番組識別情報及びユーザAのマーキング情報を送信する。なお、マーキング情報は、特定番組においてマーキングされた時間を表し、例えばマーキングが開始された時刻とマーキングが終了された時刻とを含む。図9のユーザAの場合、第1のマーキング501におけるマーキング開始時刻T1及びマーキング終了時刻T3と、第2のマーキング502におけるマーキング開始時刻T6及びマーキング終了時刻T8とがマーキング情報として生成される。
また、特定番組の再生が終了した後、ユーザBの番組視聴端末は、番組推薦サーバに対して、ユーザBのユーザ情報、特定番組の番組識別情報及びユーザBのマーキング情報を送信する。図9のユーザBの場合、第1のマーキング503におけるマーキング開始時刻T2及びマーキング終了時刻T4と、第2のマーキング504におけるマーキング開始時刻T5及びマーキング終了時刻T7と、第3のマーキング505におけるマーキング開始時刻T9及びマーキング終了時刻T10とがマーキング情報として生成される。なお、ユーザBは、ユーザAよりも時間的に早く本特定番組を視聴し、マーキング情報を送信しているので、ユーザAがマーキング情報を送信する時点では、ユーザBのマーキング情報が番組推薦サーバ内に既に登録されているとして、以後の説明を行う。
なお、ユーザ情報は、番組推薦サーバにユーザ情報を登録することによって番組推薦サーバからユーザに対して付与され、ユーザの使用する番組視聴端末内で管理される。
また、番組識別情報は、番組ごとに付与されている番組を識別するための番組識別情報、及び、番組の放送日時、チャンネル情報及び放送局識別情報で示される識別情報のいずれであってもかまわない。
また、マーキング情報は、マーキングの開始時刻とマーキングの終了時刻とが含まれる。例えば、ユーザAの第1のマーキング501の場合は、マーキング開始時刻として時刻T1が含まれ、マーキング終了時刻として時刻T3が含まれる。また、ユーザによってマーキング時間が、マーキング開始時刻とマーキング幅とで指定される場合は、マーキング開始時刻とマーキング終了時刻とに変更して送信する。
番組推薦サーバは、ユーザAの番組視聴端末から、ユーザAのマーキング情報を受信すると受信したマーキング情報を解析し、類似のマーキング情報を有するユーザをグループ化する。なお、類似のマーキング情報を有するユーザとは、マーキング位置が時間的に一致しているユーザ、及びマーキング位置に重なりを持つユーザである。また、マーキング位置の重なりを判定する場合には、ユーザの嗜好の同一性の判定を精度良く行うため、全マーキング時間に対して50%以上の重なりを持つか否かを判定し、50%以上の重なりを持つユーザをグルーピングする。
図9において、第1の重なり506及び第2の重なり507は、ユーザAのマーキング情報とユーザBのマーキング情報との重なりを示している。この場合、第1の重なり506と第2の重なり507との合計時間は、ユーザAの総マーキング時間(ユーザAの第1のマーキング501と第2のマーキング502との合計時間)に対して50%以上なので、ユーザA及びユーザBは同一のグループとしてグループ化される。なお、本実施形態では、ユーザA及びユーザBのみでグループが構成されるとして説明するが、マーキング時間の重なりが50%以上あるユーザはすべて同一グループにグループ化される。
このように、本実施形態では、ユーザの番組へのマーキング操作に基づいてユーザをグループ化する。
図10は、グループ化したユーザの特定番組以外の番組において、類似するマーキング情報が存在した番組B及び番組Cのそれぞれのマーキング度数を示したグラフである。
図10の度数分布グラフ600aは、ユーザAの特定番組のマーキング情報と類似のマーキング情報を持ったユーザをグループ化して、特定番組以外の番組でマーキング情報が類似している番組B及び番組Cが抽出され、番組B及び番組C内のグループ内のユーザのマーキング情報の重なりを示した度数分布である。この例では、番組Bに対して、第1のピーク601と第2のピーク602において高い度数を示している。また、番組Cでは、第1のピーク603、第2のピーク604において高い度数を示している。これは、ユーザAの特定番組へのマーキング情報と類似するマーキング情報を持ったユーザのグループにおいて、番組Bの第1のピーク601、番組Bの第2のピーク602、番組Cの第1のピーク603及び番組Cの第2のピーク604で多くのマーキングが行われていることを示している。
また、図10の度数分布グラフ600bは、ユーザAの特定番組のマーキング情報と類似のマーキング情報を持ったユーザのグループを包含するグループとして、番組推薦サーバの全登録ユーザの番組B及び番組Cにおけるマーキング情報の重なりを示した度数分布である。全ユーザの度数分布グラフ600bでは、番組Bにおける第1のピーク605及び第2のピーク606で、比較的多くのマーキングが行われている。しかしながら、番組Cでは、全体的にマーキング度数は低く、第1のピーク607及び第2のピーク608においてもそれほどマーキングが行われていない。
図10の度数分布グラフ600cは、ユーザAのマーキング情報に類似するマーキング情報を持ったユーザで構成されるグループのマーキング度数をグループ内の全ユーザの総マーキング時間で正規化した度数分布グラフ600aから、全ユーザのマーキング度数を全ユーザの総マーキング時間で正規化した度数分布グラフ600bを減算した結果を示す。この結果、番組Bにおけるグループ内の第1のピーク601と全ユーザの第1のピーク605とに時間的なずれが生じているため、番組Bの第1の差分のピーク609が生成される。
また、番組Bのグループ内の第2のピーク602は、全ユーザの第2のピーク606とほぼ同等のマーキング度数を有しているので、差分の結果、第2の差分のピーク610は、大きなマーキング度数を有していない。
番組Cにおいては、グループ内の度数分布では、第1のピーク603及び第2のピーク604が高いマーキング度数を有しているにもかかわらず、全ユーザの度数分布では、第1のピーク607及び第2のピーク608とも高い度数を有していない。従って、番組Cでは、第1の差分のピーク611及び第2の差分のピーク612とも高い度数を有している。
図10の差分の度数分布グラフ600cは、番組毎の差分のマーキング度数と予め定められた閾値620とに基づいて閾値判定を行い、閾値620より高いマーキング度数を有するシーンを推薦シーンとして生成する。本例では、番組Bにおいては、番組Bの時刻T1〜時刻T2までのシーンを推薦シーン1として生成し、番組Cにおいては、番組Cの時刻T3〜時刻T4までを推薦シーン2として生成するとともに、番組Cの時刻T5〜時刻T6までを推薦シーン3として抽出する。
なお、番組毎の推薦度は、差分の度数分布において抽出した各推薦シーンの番組毎の時間軸でのマーキング度数の積分値の大きい番組から優先することが望ましい。
図11は、第2の実施形態の番組視聴端末の構成を示すブロック図であり、図12は、第2の実施形態の番組推薦サーバの構成を示すブロック図である。第2の実施形態の番組推薦システムは、例えば番組録画装置などの番組視聴端末5と、複数の番組視聴端末5とインターネットなどの汎用のネットワーク7を介して通信可能に接続される番組推薦サーバ6とで構成される。なお、第2の実施形態の番組推薦システムの構成は、図2に示す番組推薦システムの構成と同じである。本来、番組推薦サーバ6には、複数の番組視聴端末5が接続されるが、説明の簡易化のために1台の番組視聴端末5が接続された形態について説明する。
番組視聴端末5は、放送波又はIP網から番組を受信して、番組を視聴したり、番組を録画したり、録画した番組を再生したり、録画した番組を消去したり、番組の録画予約をしたりする。番組視聴端末5は、アンテナ701、チューナ702、TSデコーダ703、CAS704、暗号解除部705、デマルチプレクサ706、MPEG Videoデコーダ707、MPEG Audioデコーダ708、HDMI端子709、記録用暗号化部713、記録制御部714、記録媒体715、再生制御部716、記録用復号化部717、PSI抽出部718、EPG記憶部719、キー720、赤外線通信部721、マーキング管理部722、マーキング記憶部724、ユーザ識別部725、ユーザ情報DB726、マーキング送信部727、推薦受信部728、推薦番組情報抽出部729、番組記録判定部730、予約管理部731、予約メモリ732及び特定シーン抽出部733から構成される。
また、番組推薦サーバ6は、マーキング受信部750、ユーザ管理部751、ユーザ属性DB752、マーキング登録部754、マーキングDB755、特化生成部70、推薦シーン作成部759及び推薦送信部760から構成される。
また、番組推薦サーバ6の特化生成部70は、コミュニティマーキング統計部756、全ユーザマーキング統計部757及びコミュニティ特化部758で構成される。
チューナ702は、例えば地上波デジタル放送やBSデジタル放送などの放送波、あるいはマルチキャストで送信されるIP放送から、所定チャンネルの放送波を受信して、放送波をTSデコーダ703に出力する。TSデコーダ703は、受信した一般的なトランスポート・ストリーム形式の放送波を復調して暗号解除部705に出力する。
CAS704は、一般的なConditional Access Systemであり、ユーザの登録情報及び番組の暗号鍵の記録されたICカードから暗号鍵情報を読み出し、暗号解除部705に出力する。
暗号解除部705は、TSデコーダ703によって復調された、暗号化された放送信号を、CAS704からの暗号鍵をもとに復号化し、暗号化された番組情報の暗号を解除してデマルチプレクサ706に出力する。
デマルチプレクサ706は、番組情報として多重化されている情報を分離する。番組情報には、少なくともビデオ情報、オーディオ情報及び番組管理情報が多重化され、これらを分離後、ビデオ情報をMPEG Videoデコーダ707へ、オーディオ情報をMPEG Audioデコーダ708へ、番組管理情報をPSI抽出部718へ出力する。
MPEG Videoデコーダ707は、デマルチプレクサ706からのビデオ情報を復調して映像データに変換し、HDMI端子709に出力する。MPEG Audioデコーダ708は、デマルチプレクサ706からのオーディオ情報を復調してオーディオデータに変換し、HDMI端子709に出力する。HDMI端子709は、HDMIケーブルを介して外部のHDMI端子710と接続されており、HDMI端子710は、モニタ711及びスピーカ712と接続されている。
HDMI端子709,710は、一般的な映像情報用及び音声情報用のインタフェースであり、番組視聴端末5とモニタ711及びスピーカ712とを互いに相互認証するとともに、暗号鍵の共通化を行い、共通化した暗号鍵で、映像データや音声データを暗号化して、モニタ711やスピーカ712に出力する。
モニタ711は、一般的な番組の映像情報の表示装置であって、HDMI端子710で受信した暗号化された映像データを復号して番組の映像データを出力する。スピーカ712は、一般的な番組の音声情報の出力装置であって、HDMI端子710で受信した暗号化された映像データを復号して番組の音声データを出力する。
記録用暗号化部713は、受信した番組情報を記録媒体に記録するための暗号処理を施す。記録用暗号化部713は、デマルチプレクサ706から入力された番組情報を暗号化して記録制御部714に出力する。従って、記録用暗号化部713は、番組情報を記録する記録媒体に特有の暗号化処理を行う。例えば、DVD−RAMではCPRM(Content Protection for Rewritable Media)、Blu−rayディスクやHD−DVDでは、AACS(Advanced Access Content System)が用いられる。
記録制御部714は、記録用暗号化部713によって暗号化された番組情報の記録媒体715への記録を制御する。記録制御部714は、記録媒体特有の変調処理や誤り訂正符号化処理を行うことによって記録媒体に番組情報を記録する。
記録媒体715は、番組情報を記録するコンピュータ読み取り可能な記録媒体であって、例えば、ハードディスクのような磁気記録ディスクやDVD、Blu−rayディスクなどの光ディスク、SDカードのような半導体メモリ、及びMO/MDのような光磁気記録媒体が用いられる。
再生制御部716は、記録媒体715に記録されている番組情報を読み出す。なお、記録制御部714、記録媒体715及び再生制御部716は、ドライブシステムとして構成されるのが一般的である。
記録用復号化部717は、記録用暗号化部713の暗号化に対応する復号を行う。記録用復号化部217は、暗号化して記録媒体715に記録された番組情報を復号化してTSデコーダ703に出力する。なお、TSデコーダ703に出力された番組情報の再生処理は、上述のアンテナ701で受信した番組の再生処理と同様である。
PSI抽出部718は、デマルチプレクサ706で抽出した番組管理情報からPSI(Program Specific Information)を抽出する。PSIの中には、主に、PMT(Program Map Table)、EIT(Event Information Table)及びTOT(Time Offset Table)などの情報が含まれる。
PMTは、番組に含まれる画像や音声などの各パケット識別情報を格納している。よって、PMTから画像や音声などのパケット識別情報を得ることが出来れば、それらパケット識別情報のついたパケットを抽出することでプログラムを再生できる。
EITは、番組の名称、放送日時及び放送内容などの番組に関連する情報が含まれる。EPG(Electronic Program Guide)は主にこの情報を用いて作成される。
EPG記憶部719は、PSI抽出部718で抽出したPSI中のEITを用いてEPG情報を作成して、記憶する。キー720は、ユーザからの入力を受け付け、リモコンやフロントパネルで構成される。また、キー720は、視聴する番組に対して、ユーザが行うマーキング部として機能する。実際には、リモコンに、マーキングボタンが設けられ、ユーザがマーキングボタンを押している間、番組に対してマーキングが行われる。または、キー720は、ユーザからマーキングを行う番組内の時間情報の入力を受け付ける。
赤外線通信部721は、一般的なリモートコントローラからの赤外線信号の受光部である。赤外線通信部721は、キー720に付随したマーキングボタンの押下中、マーキングボタン押下信号を生成して、マーキング管理部722に出力する。
マーキング管理部722は、赤外線通信部721からマーキングボタン押下信号を受け取り、マーキングボタン押下信号によってマーキングボタンが押されていると判断したときには、現在再生中の番組の番組内の時間情報をPSI抽出部718から受け取り、マーキング記憶部724に出力する。
PSI抽出部718は、内部に時間抽出部7181とPID抽出部7182とを備える。時間抽出部7181は、PSI内のタイムオフセットテーブル(TOT)を確認することによって、番組内の再生時間を抽出する。また、PID抽出部7182は、現在再生中の映像コンテンツのパケットのパケット識別情報であるPIDを抽出して、現在再生中のパケットを特定する。
マーキング記憶部724は、マーキング管理部722によって抽出された番組内においてマーキングされた時間情報、あるいはマーキング中の番組のパケット識別情報群を記憶する。マーキング記憶部724は、マーキング開始時の番組内の時刻及びマーキング終了時の番組内の時刻の2つを対応させて時間情報として記憶しても良いし、マーキング開始時の番組のパケットのパケット識別情報とマーキング終了時の番組のパケットのパケット識別情報とを対応付けてパケット識別情報群として記憶してもいい。また、マーキング中の全パケットのパケット識別情報を1つの群として記憶してもかまわない。また、これらの時間情報やパケット情報は、再生している番組の番組識別情報に対応付けてマーキング記憶部724に記憶される。番組識別情報は、PSI抽出部718で抽出したPSI内に含まれる。これらの番組識別情報に対応したマーキング位置の時間情報やパケット識別情報は、マーキング情報としてマーキング記憶部724に記憶される。
ユーザ識別部725は、番組視聴端末5を使用するユーザを識別する。ユーザ識別部725は、キー720を用いて入力されるユーザ情報に基づいて、番組視聴端末5を使用するユーザを識別する。
ユーザ情報DB726は、番組視聴端末5を使用する全ユーザのユーザ情報が登録されているデータベースである。ユーザ識別部725は、キー720を用いて入力されるユーザ情報と、ユーザ情報DB726に予め記憶されているユーザ情報とに基づいてユーザを識別する。また、ユーザ識別部725は、ユーザの認証に成功すると現在使用中のユーザのユーザ情報をマーキング送信部727に出力する。
マーキング送信部727は、一般的なネットワークインタフェースであり、汎用のネットワーク7を介して接続される番組推薦サーバ6とのネットワークを確立した後、マーキング記憶部724に記憶したマーキング情報とユーザ識別部725から入力されたユーザ情報とをともに番組推薦サーバ6に送信する。
なお、マーキング記憶部724は、ユーザ識別部725と連動してマーキングしたユーザを対応付けて記憶するとともに、マーキング送信部727によって番組推薦サーバ6に送信済みのマーキング情報と未送信のマーキング情報とを識別可能に管理する。
推薦受信部728は、汎用のネットワーク7を介して、番組推薦サーバ6の推薦する番組に関する推薦情報を受信する。推薦番組情報抽出部729は、推薦受信部728で受信した推薦情報から、推薦番組情報を抽出する。推薦番組情報は、推薦する番組を一意に識別できる情報であり、例えば、番組を識別するための番組識別情報、又は番組の放送日時、チャンネル情報及び放送局を識別するための放送局識別情報を含む。さらに、推薦番組情報は、番組内の推薦シーンを一意に指定可能な時間情報又はパケット識別情報を含んでいる。抽出した推薦番組情報は、番組記録判定部730に出力される。
番組記録判定部730は、受信した推薦番組情報で示される番組識別情報に基づいて、番組識別情報が示す番組が記録媒体715に記録されているか否かを確認する。また、番組記録判定部730は、推薦番組情報で示される番組が記録されていると判断した場合、推薦番組情報の示す番組内の時間情報あるいはパケット識別情報で表された推薦シーンが記録されているか否かを判定する。番組記録判定部730は、推薦シーンが記録されていると判断した場合、特定シーン抽出部733に推薦番組情報を出力する。さらに、番組記録判定部730は、推薦番組情報で示される番組が記録されていないと判断した場合、又は番組の推薦シーンが記録されていないと判断した場合、番組の番組識別情報とEPG記憶部719に記憶されているEPG情報とに基づいて、現在以降の番組であるか否かを判断する。番組記録判定部730は、現在以降に放送予定の番組であると判断された場合、予約管理部731に番組識別情報を出力する。
予約管理部731は、番組記録判定部730からの番組識別情報に基づいて、番組識別情報の示す番組の録画予約処理を行う。予約メモリ732は、予約管理部731で予約を行う番組の番組識別情報をユーザ識別部725から入力されるユーザ情報に対応付けて記憶する。
特定シーン抽出部733は、番組記録判定部730から推薦番組情報が入力されると、番組識別情報の示す番組を記録媒体715から抽出して、推薦番組情報の示す推薦シーンの開始時刻から終了時刻までの番組の再生を行う。
次に、本実施形態の番組推薦システムにおける番組推薦サーバ6の構成について説明する。マーキング受信部750は、汎用のネットワーク7に接続された複数の番組視聴端末5のマーキング送信部727から、各ユーザによってマーキングされた番組のマーキング情報とマーキングを行ったユーザのユーザ情報とを受信する。なお、マーキング情報は、マーキングを行った番組を一意に識別可能な番組識別情報、又は予約された番組の番組放送日時、チャンネル情報及び放送局識別情報を含む。また、マーキング情報は、マーキングの行われた番組内の時間情報あるいはパケット識別情報を含む。受信したマーキング情報及びユーザ情報は、ユーザ管理部751に出力される。
ユーザ属性DB752は、登録ユーザのユーザ情報と、必要であれば、ユーザ氏名、性別、住所/電話番号、番組視聴端末のメーカ/機種、接続するモニタの解像度および番組視聴端末のネットワークIDなどのユーザ属性情報とをユーザ登録リストとして管理する。ユーザは、予め番組推薦サーバ6に、番組推薦を行うためのユーザ登録処理を行う。ユーザ登録処理には、ユーザ名の設定、住所/電話番号の通知などユーザ登録情報の通知を行った後、番組推薦サーバ6側で、該ユーザにユーザ情報を生成して通知し、ユーザ属性DB752で生成したユーザ情報に対応付けて、ユーザから通知されたユーザ属性情報を記憶/管理する。
ユーザ管理部751は、受信したユーザ情報により特定されるユーザが、番組推薦サーバ6の登録ユーザであるか否かを判定する。ユーザ管理部751は、ユーザ属性DB752に記憶されているユーザ登録リストの中から、受信したユーザ情報に一致するユーザ情報を検索する。受信したユーザ情報がユーザ属性DB752に登録されていると判断された場合、番組推薦サーバ6の登録ユーザであると判断して、処理を継続する。
一方、受信したユーザ情報がユーザ属性DB752に登録されていないと判断された場合、番組推薦サーバ6の未登録ユーザであるとして、当該ユーザの使用する番組視聴端末5に登録ユーザでない旨のエラーメッセージを送信して以後の処理を中断する。エラーメッセージを受信した番組視聴端末5は、当該エラーメッセージをモニタ711に表示する。
マーキング登録部754は、ユーザ管理部751によってユーザが番組推薦サーバ6の登録ユーザであると判断された場合、マーキング受信部750によって受信されたユーザ毎のマーキング情報を、受信したユーザ情報に対応付けて、マーキングDB755に記憶する。
コミュニティマーキング統計部756は、マーキング受信部750によって受信されたマーキング情報に基づいて、当該マーキング情報と類似したマーキング情報を持った全ユーザをコミュニティグループとしてグループ化する。また、コミュニティマーキング統計部756は、当該コミュニティグループに属する全ユーザの当該マーキング情報の対象番組以外のマーキング情報を集計するとともに、コミュニティグループに所属する全ユーザ数で集計結果を正規化し、コミュニティグループ内の各番組のマーキング率を算出する。コミュニティマーキング統計部756は、正規化したマーキング率をコミュニティ特化部758に出力する。
なお、前述の類似したマーキング情報とは、マーキング受信部750によって受信されたマーキング情報の示す番組内のマーキング位置と、マーキングDB755に記憶されているマーキング情報の示す番組内のマーキング位置とに重なりを有すること、あるいは受信したマーキング情報の示す番組内のパケット識別情報と、マーキングDB755に記憶されているマーキング情報の示す番組内のパケット識別情報とに重なりを有することである。望ましくは、受信したマーキング情報の示す番組内のマーキング位置と、マーキングDB755に記憶されているマーキング情報の示す番組内のマーキング位置との重なりが、受信したマーキング情報の総マーキング時間に対して50%以上であることが好ましい。また、受信したマーキング情報の示す番組内のパケット識別情報群と、マーキングDB755に記憶されているマーキング情報の示す番組内のパケット識別情報群との重なりが、受信したマーキング情報の総マーキングパケット数に対して50%以上であることが好ましい。
全ユーザマーキング統計部757は、マーキング受信部750によって受信されたマーキング情報の類似した全ユーザをコミュニティグループとしてグループ化するコミュニティマーキング統計部756とは異なり、ユーザ属性DB752に登録されている全ユーザ、すなわち番組推薦サーバ6への全登録ユーザを、コミュニティグループを包含する全ユーザグループとしてグルーピングする。
また、全ユーザマーキング統計部757は、全ユーザのグルーピング後、マーキング受信部750で受信したマーキング情報が示す番組以外の番組で、全ユーザのマーキング情報を統計処理して、番組毎のマーキング度数を作成する。また、このマーキング度数は、登録ユーザの全マーキング総時間、あるいはマーキングパケット総数で正規化される。作成したマーキング度数は、コミュニティ特化部758と推薦シーン作成部759とに出力される。
コミュニティ特化部758は、コミュニティマーキング統計部756によって算出されたマーキング度数から、全ユーザマーキング統計部757によって算出されたマーキング度数を減算することによって、コミュニティマーキング統計部756でグルーピングしたコミュニティグループに特化したマーキング度数を作成して、推薦シーン作成部759に出力する。なお、マーキング度数の減算は、番組毎のマーキング度数を、同一番組ごとに減算する。
推薦シーン作成部759は、コミュニティ特化部758によって生成されたマーキング度数を基に、予め設定された閾値よりも高いマーキング度数を有する番組を推薦番組として抽出する。また、推薦シーン作成部759は、各番組内でマーキング度数が閾値を上回ったシーンの開始時刻及び終了時刻、あるいは開始パケットのパケット識別情報及び終了パケットのパケット識別情報を推薦シーン情報として抽出する。推薦シーン作成部759は、推薦番組を識別するための番組識別情報、又は推薦番組の放送日時、推薦番組が放送されるチャンネル情報及び推薦番組が放送される放送局を識別するための放送局識別情報と、推薦シーン情報とを含む推薦番組情報を作成する。これによって、推薦シーン作成部759は、コミュニティグループに特化した推薦シーンを作成する。
また、推薦シーン作成部759は、全ユーザマーキング統計部757によって生成されたマーキング度数を基に、予め設定された閾値よりも高いマーキング度数を有する番組を人気番組として抽出する。また、推薦シーン作成部759は、各番組内でマーキング度数が閾値を上回ったシーンの開始時刻及び終了時刻、あるいは開始パケットのパケット識別情報及び終了パケットのパケット識別情報を人気シーン情報として抽出する。推薦シーン作成部759は、人気番組を識別するための番組識別情報、又は人気番組の放送日時、人気番組が放送されるチャンネル情報及び人気番組が放送される放送局を識別するための放送局識別情報と、人気シーン情報とを含む人気番組情報を作成する。これによって、コミュニティグループに特化した推薦シーンの開始時刻と終了時刻とを含み、かつ推薦シーンを含む番組の番組識別情報を含んだ推薦番組情報が生成されるとともに、人気シーンの開始時刻と終了時刻とを含み、かつ人気シーンを含む番組の番組識別情報を含んだ人気番組情報が生成されて、推薦送信部760に出力される。
推薦送信部760は、推薦シーン作成部759によって作成された、推薦シーン情報を含む推薦番組情報と、人気シーン情報を含む人気番組情報とを含む推薦情報を番組視聴端末5に送信する。
以下、本実施形態における番組推薦システムの動作について説明する。例えば、ユーザAが、ユーザAの所有する番組視聴端末5によって、番組Aの一部をマーキングする。番組視聴端末5は、ユーザAを識別するためのユーザ情報と、番組Aを識別するための番組識別情報と、番組内におけるマーキングされた位置を特定するためのマーキング情報とを番組推薦サーバ6に送信する。
番組推薦サーバ6のマーキング受信部750は、ユーザAの所有する番組視聴端末5から、ユーザAを識別するためのユーザ識別情報と、番組Aを識別するための番組識別情報と、番組内におけるマーキングされた位置を特定するためのマーキング情報とを受信する。ユーザ管理部751は、受信したユーザ情報がユーザ属性DB752に記憶されているか否かを判定し、記憶されていれば、ユーザAが番組推薦サーバ6の登録ユーザであるとして、処理を継続する。
マーキング登録部754は、ユーザAを識別するためのユーザ情報に対応付けて、番組Aを識別するための番組識別情報と、番組内におけるマーキングされた位置を特定するためのマーキング情報とをマーキングDB755に登録する。コミュニティマーキング統計部756は、番組Aのマーキング情報と類似したマーキング情報を持った全ユーザをマーキングDB755から抽出してコミュニティグループを形成する。コミュニティマーキング統計部756は、コミュニティグループ内における番組A以外の番組のマーキング情報を統計的に処理する。そして、コミュニティマーキング統計部756は、コミュニティグループ内における番組A以外の番組のマーキング度数を算出して、コミュニティ特化部758に出力する。
全ユーザマーキング統計部757は、番組推薦サーバ6のユーザ属性DB752に登録されている全ユーザをマーキングDB755から抽出してコミュニティマーキング統計部756で形成したコミュニティグループを包含する全ユーザグループを形成する。全ユーザマーキング統計部757は、全ユーザグループ内のユーザ情報に対応付けられているマーキング情報をマーキングDB755から抽出して、番組A以外の番組のマーキング情報を統計処理する。そして、全ユーザマーキング統計部757は、全ユーザグループ内において番組A以外の番組のマーキング度数を算出して、コミュニティ特化部758と推薦シーン作成部759とに出力する。
コミュニティ特化部758は、コミュニティマーキング統計部756によって作成された番組A以外の番組のマーキング度数から、全ユーザマーキング統計部757によって作成された番組A以外の番組のマーキング度数を減算する。これにより、コミュニティ特化部758は、番組Aにおける所定の位置をマーキングしたユーザの属するコミュニティグループに特化した番組のマーキング度数を作成して推薦シーン作成部759に出力する。
推薦シーン作成部759は、コミュニティ特化部758によって作成された、コミュニティグループに特化したマーキング度数に基づき、閾値よりもマーキング度数の高い番組の番組識別情報と、閾値よりもマーキング度数の高いシーンの開始時刻及び終了時刻を表す推薦シーン情報とを抽出して推薦番組情報を作成する。また、推薦シーン作成部759は、全ユーザマーキング統計部757によって作成された、全登録ユーザの一般化されたマーキング度数に基づき、閾値よりもマーキング度数の高い番組の番組識別情報と、閾値よりもマーキング度数の高いシーンの開始時刻及び終了時刻を表す人気シーン情報とを抽出して人気番組情報を作成する。推薦送信部760は、推薦シーン作成部759によって作成された推薦番組情報及び人気番組情報をユーザAの番組視聴端末5に送信する。
次に、本実施形態の番組推薦システムの処理の流れについてさらに説明する。図13〜15は、第2の実施形態に係る番組推薦システムの処理の流れを示したフローチャートであり、図13は、第2の実施形態に係る番組視聴端末におけるマーキング情報を送信するまでの処理の流れを示すフローチャートであり、図14は、第2の実施形態に係る番組推薦サーバにおける処理の流れを示すフローチャートであり、図15は、第2の実施形態に係る番組視聴端末における推薦情報を受信してからの処理の流れを示すフローチャートである。
図13において、まず、ユーザ識別部725は、ユーザに対するユーザ認証のためのユーザ認証画面をモニタ711に表示し、キー720は、ユーザによるユーザ情報の入力を受け付け、番組視聴端末5へのログインを受け付ける(ステップS41)。次に、ユーザ識別部725は、ユーザ認証が成功したか否か、すなわち、入力されたユーザ情報がユーザ情報DB726に予め登録されているユーザ情報と一致するか否かを判断する(ステップS42)。
ここで、入力されたユーザ情報がユーザ情報DB726に登録されていない、すなわち番組視聴端末5の登録ユーザでないと判断された場合、又は入力されたユーザ情報に誤りがある場合(ステップS42でNO)、ユーザ識別部725は、モニタ711にエラーメッセージを出力して以後の処理を終了する(ステップS43)。
一方、入力されたユーザ情報に誤りがなく、番組視聴端末5の登録ユーザであると判断された場合(ステップS42でYES)、再生制御部716は、記録媒体715に記録済みの番組に対する再生指示操作があったか否かを判断する(ステップS44)。ここで、再生指示操作がないと判断された場合(ステップS44でNO)、再生制御部716は、ユーザからの再生指示操作があるまで待機する。
ユーザからの再生指示操作があったと判断された場合(ステップS44でYES)、再生制御部716は、ユーザによって選択された番組を記録媒体715から再生してモニタ711に出力する再生処理を実行する(ステップS45)。
次に、番組の再生中、マーキング管理部722は、ユーザによるマーキング操作が開始されたか否かを判断する(ステップS46)。なお、赤外線通信部721は、リモートコントローラのマーキングボタンを押下された際に出力される赤外線信号を感知したとき、マーキングボタン押下信号を生成して、マーキング管理部722に出力する。マーキング管理部722は、マーキングボタン押下信号が入力されるとマーキング操作が開始されたと判断する。
マーキング操作が開始されたと判断された場合(ステップS46でYES)、時間抽出部7181は、番組放送に多重化されているPSIから番組内の再生時間を抽出して、マーキング操作が開始されたマーキング開始時刻としてマーキング記憶部724に一時記憶する(ステップS47)。一方、マーキング操作が開始されていないと判断された場合(ステップS46でNO)、再生している番組が終了したか否かの判定処理に移る(ステップS50)。
次に、マーキング管理部722は、ユーザによるマーキング操作が終了したか否かを判断する(ステップS48)。赤外線通信部721は、リモートコントローラのマーキングボタンの押下が解除されると、マーキングボタン押下信号の生成を終了する。マーキング管理部722は、マーキングボタン押下信号が入力されなくなるとマーキング操作が終了したと判断する。
マーキング操作が終了したと判断された場合(ステップS48でYES)、時間抽出部7181は、マーキング開始時刻を抽出した時と同様に、番組に多重化されているPSIから番組内の再生時間を抽出して、マーキング操作が終了したマーキング終了時刻としてマーキング記憶部724に一時記憶する(ステップS49)。一方、マーキング操作が終了していないと判断された場合(ステップS48でNO)、マーキング管理部722は、マーキング操作が終了されるまで待機する。
次に、マーキング送信部727は、再生している番組が終了したか否かを判断する(ステップS50)。再生している番組が終了したと判断された場合(ステップS50でYES)、マーキング送信部727は、マーキング記憶部724に記憶されているマーキング開始時刻、マーキング終了時刻及び再生した番組の番組識別情報と、ユーザ識別部725によって識別されたユーザのユーザ情報とをマーキング情報として番組推薦サーバ6に送信する(ステップS51)。一方、再生している番組が終了していないと判断された場合(ステップS50でNO)、ステップS45の再生処理を継続する。
図14において、次に、番組推薦サーバ6のマーキング受信部750は、番組視聴端末5のマーキング送信部727によって送信されたマーキング情報を受信する(ステップS61)。
次に、ユーザ管理部751は、ユーザ認証が成功したか否か、すなわち、マーキング受信部750によって受信されたマーキング情報に含まれるユーザ情報が番組推薦サーバ6のユーザ属性DB752に予め登録されているユーザ情報と一致するか否かを判断する(ステップS62)。ここで、ユーザ認証に失敗し、登録ユーザでないと判断された場合(ステップS62でNO)、ユーザ管理部751は、その旨を示すエラーメッセージを作成して、番組視聴端末5にエラーメッセージを送信し、以後の処理を終了する(ステップS63)。なお、エラーメッセージを受信した番組視聴端末5は、ユーザ認証に失敗した旨を表すエラー通知をモニタ711へ出力する。
一方、ユーザ認証に成功し、登録ユーザであると判断された場合(ステップS62でYES)、マーキング登録部754は、マーキング受信部750によって受信されたマーキング情報を、当該ユーザのユーザ情報に対応付けてマーキングDB755に登録する(ステップS64)。
次に、コミュニティマーキング統計部756は、マーキング受信部750によって受信されたマーキング情報に類似するマーキング情報を持った全ユーザを、マーキングDB755から抽出し、コミュニティグループとしてグループ化する(ステップS65)。なお、類似するマーキング情報とは、マーキング受信部750で受信したマーキング情報の示す番組識別情報と同一の番組識別情報であり、番組内のマーキングされた時間やマーキングされた番組のパケット識別情報に重なりがあるマーキング情報のことである。望ましくは、同じ番組内でユーザ毎のマーキングされた時間やマーキングされたパケット識別情報のうち50%以上の重なりのあるマーキング情報を類似のマーキング情報として判定する。
次に、コミュニティマーキング統計部756は、類似したマーキング情報を有するユーザで構成されるコミュニティグループ内の全ユーザに登録されているマーキング情報のうち、マーキング受信部750によって受信されたマーキング情報の示す番組以外のマーキング情報を番組ごとに集計する(ステップS66)。コミュニティマーキング統計部756は、各番組において、単位時間毎にマーキングしているユーザがいればカウントし、番組毎に時間軸での度数分布を算出する。あるいは、コミュニティマーキング統計部756は、各番組において、パケット毎にマーキングを行ったユーザがいればカウントし、番組毎にパケット単位で度数分布を算出する。
次に、コミュニティマーキング統計部756は、集計された結果を、コミュニティグループ内におけるグループ化された全ユーザの総マーキング時間、あるいは総マーキングパケット数で正規化する(ステップS67)。コミュニティマーキング統計部756は、正規化した結果をコミュニティ特化部758に出力する。
次に、全ユーザマーキング統計部757は、ユーザ属性DB752に登録されているユーザ、すなわち番組推薦サーバ6に登録されている全ユーザを抽出し、類似したマーキング情報を有するユーザで構成されるコミュニティグループを包含する全ユーザグループとしてグルーピングする(ステップS68)。
次に、全ユーザマーキング統計部757は、全ユーザのマーキング情報をマーキングDB755から抽出して、マーキング受信部750によって受信されたマーキング情報の示す番組以外の番組のマーキング情報を集計する(ステップS69)。全ユーザマーキング統計部757は、各番組において、単位時間毎にマーキングしているユーザがいればカウントし、番組毎に時間軸での度数分布を算出する。あるいは、全ユーザマーキング統計部757は、各番組において、パケット毎にマーキングを行ったユーザがいればカウントし、番組毎にパケット単位で度数分布を算出する。
次に、全ユーザマーキング統計部757は、集計された結果を、登録されている全ユーザの総マーキング時間あるいは総マーキングパケット数で正規化する(ステップS70)。正規化した結果は、コミュニティ特化部758および推薦シーン作成部759に出力される。
次に、コミュニティ特化部758は、類似したマーキング情報を有するユーザで構成されるコミュニティグループ内における正規化されたマーキング集計結果(マーキング度数)から、全ユーザグループ内における正規化されたマーキング集計結果(マーキング度数)を減算する。そして、推薦シーン作成部759は、減算結果を閾値判定し、閾値よりもマーキング度数の高い番組の番組識別情報と、閾値よりもマーキング度数の高いシーンの開始時刻及び終了時刻を表す推薦シーン情報とを抽出して推薦番組情報を作成する(ステップS71)。開始時刻は、マーキング度数が閾値を上回った時間位置であり、終了時刻は、マーキング度数が閾値を下回った時間位置である。抽出された全推薦シーンの開始時刻及び終了時刻は、対応する番組識別情報と対応付けられて、推薦番組情報として推薦送信部760に出力される。
次に、推薦シーン作成部759は、全ユーザマーキング統計部757によって作成された全ユーザグループ内における正規化されたマーキング集計結果を閾値判定し、閾値よりもマーキング度数の高い番組の番組識別情報と、閾値よりもマーキング度数の高いシーンの開始時刻及び終了時刻を表す人気シーン情報とを抽出して人気番組情報を作成する(ステップS72)。抽出された全人気シーンの開始時刻及び終了時刻は、対応する番組識別情報と対応付けられて、人気番組情報として推薦送信部760に出力される。
次に、推薦送信部760は、推薦シーン作成部759によって作成された推薦番組情報と人気番組情報とを推薦情報として、番組視聴端末5に送信する(ステップS73)。
図15において、次に、番組視聴端末5の推薦受信部728は、番組推薦サーバ6によって送信された推薦番組情報及び人気番組情報を含む推薦情報を受信する(ステップS81)。
次に、推薦番組情報抽出部729は、推薦受信部728によって受信された推薦情報から推薦番組情報が抽出されたか否かを判断する(ステップS82)。推薦番組情報抽出部729は、ユーザに推薦番組情報及び人気番組情報のうちのいずれかの選択を促す。キー720を用いて推薦番組情報が選択された場合、推薦番組情報抽出部729は推薦番組情報を抽出し、人気番組情報が選択された場合、推薦番組情報抽出部729は人気番組情報を抽出する。なお、推薦番組情報及び人気番組情報の両方を抽出する設定を設けてもかまわない。これによって、ユーザに対してより多くの選択肢を提供することができる。
推薦番組情報が抽出されたと判断された場合(ステップS82でYES)、番組記録判定部730は、推薦番組情報抽出部729によって抽出された推薦番組情報に含まれる推薦シーン情報に付随する推薦シーンに対応した番組識別情報に基づいて、推薦シーンを含む番組が記録媒体715に記録済みであるか否かを判断する(ステップS83)。なお、ステップS83では、番組の記録だけではなく、推薦シーンの開始時刻及び終了時刻に基づいて推薦シーン自体が記録媒体715に記録されるか否かを判断するほうが好適である。ここで、推薦シーンを含む番組、あるいは推薦シーンそのものが記録媒体715に記録されていないと判断された場合(ステップS83でNO)、ステップS88の処理に移行する。
一方、推薦シーンを含む番組、あるいは推薦シーンそのものが記録媒体715に記録済みであると判断された場合(ステップS83でYES)、特定シーン抽出部733は、推薦番組をモニタ711に表示する(ステップS84)。このとき、特定シーン抽出部733は、番組の名称と同時に、推薦シーンの開始時刻及び終了時刻、推薦シーンの時間的長さ、及び推薦シーン内のキャプチャ画像又は映像を表示するとよい。
また、番組推薦サーバ6において、推薦シーン作成部759によって作成された各推薦シーンの度数分布に従って、推薦シーン毎の度数分布を積分した値、あるいは度数分布のピーク度数に基づいて推薦シーン毎に優先度を付与して番組視聴端末5に送信してもよい。この場合、特定シーン抽出部733は、推薦シーンの表示を行う場合、優先度に比例したテキストの大きさ、又はキャプチャの大きさで推薦シーンを表示するとなお良い。これによって、ユーザは一目で番組シーンの優先度を判断できる。
ステップS84において推薦シーンをモニタ711に表示したら、特定シーン抽出部733は、ユーザによる推薦シーンの選択及び再生指示が発行されたか否かを判断する(ステップS85)。ここで、推薦シーンの再生指示が発行されていないと判断された場合(ステップS85でNO)、ステップS88の処理へ移行する。一方、推薦シーンの再生指示が発行されたと判断された場合(ステップS85でYES)、特定シーン抽出部733は、推薦番組情報から、ユーザにより選択された番組の番組識別情報と推薦シーンの開始時刻とを抽出する。そして、再生制御部716は、記録媒体715から、特定シーン抽出部733によって抽出された番組識別情報に対応した番組情報を読み出して、特定シーン抽出部733によって抽出された開始時刻から推薦シーンの再生を行う(ステップS86)。
次に、特定シーン抽出部733は、推薦シーンの再生処理が終了したか否かを判断する(ステップS87)。推薦シーンの再生処理が終了していないと判断された場合(ステップS87でNO)、特定シーン抽出部733は、推薦シーンの再生処理が終了するまで待機する。
一方、推薦シーンの再生処理が終了したと判断された場合(ステップS87でYES)、特定シーン抽出部733は、番組推薦サーバ6によって送信された推薦番組情報に含まれる全ての推薦シーン情報の再生処理が終了したか否かを判断する(ステップS88)。全ての推薦シーン情報の再生処理が終了していないと判断された場合(ステップS88でNO)、ステップS83の処理に戻り、残りの推薦シーン情報についての処理が行われる。一方、全ての推薦シーン情報の再生処理が終了したと判断された場合(ステップS88でYES)、全ての処理を終了する。
一方、推薦番組情報が抽出されていないと判断された場合、すなわち、人気番組情報が抽出されたと判断された場合(ステップS82でNO)、番組記録判定部730は、推薦番組情報抽出部729によって抽出された人気番組情報に含まれる人気シーン情報に付随する人気シーンに対応した番組識別情報に基づいて、人気シーンを含む番組が記録媒体715に記録済みであるか否かを判断する(ステップS89)。なお、ステップS89では、番組の記録だけではなく、人気シーンの開始時刻及び終了時刻に基づいて人気シーン自体が記録媒体715に記録されるか否かを判断するほうが好適である。ここで、人気シーンを含む番組、あるいは人気シーンそのものが記録媒体715に記録済みでないと判断された場合(ステップS89でNO)、ステップS94の処理に移行する。
一方、人気シーンを含む番組、あるいは人気シーンそのものが記録媒体715に記録済みであると判断された場合(ステップS89でYES)、特定シーン抽出部733は、人気番組をモニタ711に表示する(ステップS90)。このとき、特定シーン抽出部733は、番組の名称と同時に、人気シーンの開始時刻及び終了時刻、人気シーンの時間的長さ、及び人気シーン内のキャプチャ画像又は映像を表示するとよい。
また、番組推薦サーバ6において、推薦シーン作成部759によって作成された各人気シーンの度数分布に従って、人気シーン毎の度数分布を積分した値、あるいは度数分布のピーク度数に基づいて人気シーン毎に優先度を付与して番組視聴端末5に送信してもよい。この場合、特定シーン抽出部733は、人気シーンの表示を行う場合、優先度に比例したテキストの大きさ、又はキャプチャの大きさで人気シーンを表示するとなお良い。これによって、ユーザは一目で番組シーンの優先度を判断できる。
ステップS90において人気シーンをモニタ711に表示したら、特定シーン抽出部733は、ユーザによる人気シーンの選択及び再生指示が発行されたか否かを判断する(ステップS91)。ここで、人気シーンの再生指示が発行されていないと判断された場合(ステップS91でNO)、ステップS94の処理へ移行する。一方、人気シーンの再生指示が発行されたと判断された場合(ステップS91でYES)、特定シーン抽出部733は、人気番組情報から、ユーザにより選択された番組の番組識別情報と人気シーンの開始時刻とを抽出する。そして、再生制御部716は、記録媒体715から、特定シーン抽出部733によって抽出された番組識別情報に対応した番組情報を読み出して、特定シーン抽出部733によって抽出された開始時刻から人気シーンの再生を行う(ステップS92)。
次に、特定シーン抽出部733は、人気シーンの再生処理が終了したか否かを判断する(ステップS93)。人気シーンの再生処理が終了していないと判断された場合(ステップS93でNO)、特定シーン抽出部733は、人気シーンの再生処理が終了するまで待機する。
一方、人気シーンの再生処理が終了したと判断された場合(ステップS93でYES)、特定シーン抽出部733は、番組推薦サーバ6によって送信された人気番組情報に含まれる全ての人気シーン情報の再生処理が終了したか否かを判断する(ステップS94)。全ての人気シーン情報の再生処理が終了していないと判断された場合(ステップS94でNO)、ステップS89の処理に戻り、残りの人気シーン情報についての処理が行われる。一方、全ての人気シーン情報の再生処理が終了したと判断された場合(ステップS94でYES)、全ての処理を終了する。
なお、ステップS83において、番組記録判定部730は、推薦シーンを含む番組が記録されているかの判断に加え、推薦シーンを含む番組あるいは推薦シーンが既に当該ユーザによって再生されたと判断した場合には、その推薦シーンの再生を行わず、次の推薦シーンの再生へと移行してもよい。これには、記録媒体715に記録されている番組に対して再生された部分には、再生したユーザのユーザ情報とともに既再生フラグを時間軸に対応させて付与する。これにより、ユーザ毎に番組内のどのシーンを閲覧したかの判定が可能となるので、推薦シーンが既に再生されている場合は、ステップS84で推薦シーンを表示させなくしても良い。
以上、説明したように本番組推薦システムを利用すれば、ユーザが番組の嗜好シーンに直接マーキングを施し、ユーザ毎の嗜好シーンを番組推薦サーバ6で管理し、類似したマーキング情報を持ったユーザをグルーピングし、当該グループの中でマーキング度数を生成して、このマーキング度数を基にして、ユーザにその他の嗜好に関するシーンを推薦できる。よって、ユーザは、番組自体を紹介されるときよりも、必要最低限のシーンのみを効率的に視聴することが可能となる。また、人気番組などのほぼ全てのユーザがマーキングしてしまう番組があったとしても、グループ内の推薦番組情報を生成するときにユーザ全体の視聴傾向を削除して、真にグループ内のユーザに特化した番組内のシーンの推薦を可能とする。
次に、第2の実施形態における番組推薦システムの応用例について説明する。図16は、マーキング送信部727とマーキング受信部750との間で送受信されるマーキング情報のデータ構造の一例を示す図である。図16に示すマーキング情報は、ユーザ情報“A”で特定されるユーザが、番組ID“1”で特定される番組を、番組開始から7分間マーキングしたときのデータ構造である。番組視聴端末5は、ユーザ情報“A”と、番組ID“1”と、番組を開始から7分間マーキングしたことを表す時間情報とを含むマーキング情報を番組推薦サーバ6に送信する。
図17は、マーキングDB755に記憶されている番組推薦サーバ6の登録ユーザごとのマーキング情報のデータ構造の一例を示す図である。今、ユーザID“A”及び番組ID“1”を含むマーキング情報が送付されてきたので、ユーザID“A”がユーザ属性DB752に登録されているか否かがユーザ管理部751によって確認される。ユーザID“A”が登録されている場合、受信した図16に示すマーキング情報がマーキングDB755に登録される。これにより、図16に示すように、ユーザID“A”に関するマーキング情報1001がマーキングDB755に追加される。
本例では、ユーザID“A”以外に予めユーザID“B”、“C”、“D”が番組ID“1”に対して対応付けられている。マーキング情報1002は、ユーザID“B”と、番組ID“1”と、番組を2〜8分までマーキングしたことを表す時間情報とを含み、マーキング情報1003は、ユーザID“C”と、番組ID“1”と、番組を5〜12分までマーキングしたことを表す時間情報とを含み、マーキング情報1004は、ユーザID“C”と、番組ID“1”と、番組を1〜8分までと16〜25分までの2回マーキングしたことを表す時間情報とを含む。
コミュニティマーキング統計部756は、このように受信したマーキング情報と同じ番組へマーキングを行っているユーザを抽出し、グルーピングのための各マーキング情報の類似度の判定を行う。
図18は、図17で示したマーキング情報を時間軸で示したタイミングチャートである。ユーザ“A”の番組“1”におけるマーキング時間1101は、番組の開始位置から7分後までの7分間である。マーキングDB755に記憶されているユーザ“B”の番組“1”におけるマーキング時間1102は、番組開始位置の2分後から9分後までの7分間である。よって、ユーザ“A”のマーキング時間1101と、ユーザ“B”のマーキング時間1102とは互いに50%以上の重なりを有し、ユーザ“A”とユーザ“B”とは同じグループにグループ化される。
また、マーキングDB755に記憶されているユーザ“C”の番組“1”におけるマーキング時間1103は、番組開始位置の5分後から12分後までの7分間である。よって、ユーザ“A”のマーキング時間1101と、ユーザ“C”のマーキング時間1103とは互いに50%以上の重なりを有さず、ユーザ“A”のグループにユーザ“C”をグループ化しない。
さらに、マーキングDB755に記憶されているユーザ“D”の番組“1”におけるマーキング時間1104は、番組開始位置の1分後から8分後までの7分間であり、マーキング時間1105は、番組開始位置の16分後から25分後までの7分間である。よって、ユーザ“A”のマーキング時間1101と、ユーザ“D”のマーキング時間1104とは50%以上の重なりを有し、ユーザ“A”のグループにユーザ“D”をグループ化する。
以上のように、コミュニティマーキング統計部756は、マーキング受信部750によって受信されたマーキング情報を基準として、当該マーキング情報に類似するマーキング情報を有するユーザを、マーキングDB755に登録されているマーキング情報の中から抽出してグループ化する。
図19は、番組ID“1”以外の番組IDを含むマーキング情報が記憶されるマーキングDB755のデータ構造の一例を示す図である。図19に示すマーキングDB755のデータ構造は、上述のようにユーザ“A”のマーキング情報と類似のマーキング情報を持っていてグループ化されたユーザ“B”及びユーザ“D”のマーキング情報に加え、ユーザ“Z”のマーキング情報を記憶しており、番組ID“1”以外の番組IDを含むマーキング情報を記憶している。
ユーザID“A”には、番組ID“1”以外に、番組ID“2”及び番組ID“4”が対応付けられている。マーキング情報1201は、ユーザID“A”と、番組ID“2”と、番組を0〜40分までマーキングしたことを表す時間情報とを含み、マーキング情報1202は、ユーザID“A”と、番組ID“4”と、番組を30〜70分及び90〜110分までマーキングしたことを表す時間情報とを含む。
ユーザID“B”には、番組ID“1”以外に、番組ID“2”、番組ID“3”及び番組ID“4”が対応付けられている。マーキング情報1203は、ユーザID“B”と、番組ID“2”と、番組を10〜50分までマーキングしたことを表す時間情報とを含み、マーキング情報1204は、ユーザID“B”と、番組ID“3”と、番組を10〜50分までマーキングしたことを表す時間情報とを含み、マーキング情報1205は、ユーザID“B”と、番組ID“4”と、番組を30〜70分までマーキングしたことを表す時間情報とを含む。
ユーザID“Z”には、番組ID“1”以外に、番組ID“3”及び番組ID“4”が対応付けられている。マーキング情報1206は、ユーザID“Z”と、番組ID“3”と、番組を10〜50分までマーキングしたことを表す時間情報とを含み、マーキング情報1207は、ユーザID“Z”と、番組ID“4”と、番組を20〜60分までマーキングしたことを表す時間情報とを含む。
ユーザID“D”には、番組ID“1”以外に、番組ID“2”、番組ID“3”及び番組ID“4”が対応付けられている。マーキング情報1208は、ユーザID“D”と、番組ID“2”と、番組を20〜40分までマーキングしたことを表す時間情報とを含み、マーキング情報1209は、ユーザID“D”と、番組ID“3”と、番組を20〜30分までマーキングしたことを表す時間情報とを含み、マーキング情報1210は、ユーザID“D”と、番組ID“4”と、番組を40〜50分及び100〜120分までマーキングしたことを表す時間情報とを含む。
次に、本グループ内のマーキング情報の集計方法について説明する。図20は、本番組推薦システムの番組推薦サーバ6のコミュニティマーキング統計部756でのグループ内のマーキング情報の集計方法を説明するための概念図である。図20の横軸方向において、先頭の0〜60分までが番組ID“2”の再生時間、ついで0〜60分までが番組ID“3”の再生時間、ついで0〜120分までが番組ID“4”の再生時間を表している。
図20に示すマーキング時間1301,1302,1303は、ユーザ“A”のマーキング時間を示している。マーキング時間1301は、図19のマーキング情報1201で示す番組“2”の番組開始から40分後までの40分間である。マーキング時間1302は、図19のマーキング情報1202で示す番組“4”の番組開始位置の30分後から70分後までの40分間である。マーキング時間1303は、図19のマーキング情報1202で示す番組“4”の番組開始位置の90分後から110分後までの20分間である。
図20に示すマーキング時間1304,1305,1306は、ユーザ“B”のマーキング時間を示している。マーキング時間1304は、図19のマーキング情報1203で示す番組“2”の番組開始位置の10分後から50分後までの40分間である。マーキング時間1305は、図19のマーキング情報1204で示す番組“3”の番組開始位置の10分後から50分後までの40分間である。マーキング時間1306は、図19のマーキング情報1205で示す番組“4”の番組開始位置の30分後から70分後までの40分間である。
図20に示すマーキング時間1307,1308は、ユーザ“Z”のマーキング時間を示している。マーキング時間1307は、図19のマーキング情報1206で示す番組“3”の番組開始位置の10分後から50分後までの40分間である。マーキング時間1308は、図19のマーキング情報1207で示す番組“4”の番組開始位置の20分後から60分後までの40分間である。
図20に示すマーキング時間1309,1310,1311,1312は、ユーザ“D”のマーキング時間を示している。マーキング時間1309は、図19のマーキング情報1208で示す番組“2”の番組開始位置の20分後から40分後までの20分間である。マーキング時間1310は、図19のマーキング情報1209で示す番組“3”の番組開始位置の20分後から30分後までの10分間である。マーキング時間1311は、図19のマーキング情報1210で示す番組“4”の番組開始位置の40分後から50分後までの10分間である。マーキング時間1312は、図19のマーキング情報1210で示す番組“4”の番組開始位置の100分後から120分後までの20分間である。
図20のマーキング度数分布は、コミュニティグループの番組“2”、“3”および“4”のマーキング情報の統計結果を示している。本実施形態における統計処理は、単位時間(本例では10分)で、ユーザ毎のマーキング数をカウントして度数分布を形成するように集計される。また、この度数分布は、コミュニティグループ内のユーザの総マーキング時間で正規化された後、全ユーザグループの正規化したマーキング統計結果を減算して、コミュニティグループに特化したマーキング度数分布が生成される。本例では、番組“2”、“3”および“4”での正規化統計結果は、どの単位時間でも限りなく“0”に近い分布として算出された例であるので、全ユーザグループの統計結果を減算しても、コミュニティグループ内のマーキング度数分布とほぼ変わらない。
次に、推薦シーン作成部759によって、コミュニティグループ内の正規化されたマーキング度数分布に基づいて、予め定められた閾値1316を用いて閾値判定することにより推薦シーンが作成される。
本例では、閾値1316を上回った番組“2”の20〜40分の番組シーン1313、番組“3”の20〜30分の番組シーン1314および番組“4”の30〜50分の番組シーンが推薦シーンとして作成される。そして、推薦シーンを特定するための時間情報と、推薦シーンを含む番組を識別するための番組識別情報とを含む推薦情報が番組視聴端末5に送信される。また、各番組シーンの度数分布の積分値の高い、番組シーン1315、番組シーン1313及び番組シーン1314の順で、優先度が付与される。
番組視聴端末5の推薦受信部728は、この推薦情報を受け取り、番組記録判定部730は、各推薦シーンが記録媒体715に記録済みか否かを判定して、記録媒体715に記録されていないものは推薦情報から削除する。また、記録媒体715は、既に該当ユーザによって再生された推薦シーンも同じように削除して推薦シーンを表示しない。本例では、推薦シーン1313及び推薦シーン1315は、既にユーザ“A”によって再生済みであるので、推薦シーン1313及び推薦シーン1315はユーザ“A”には推薦されない。
本応用例により、番組推薦システムによって、ユーザ“A”が未視聴であって、かつ他のユーザの視聴結果からユーザ“A”の嗜好度の高いと想定される番組シーン1314をユーザ“A”に推薦することができる。
次に、本実施形態の番組推薦システムの第2の応用例について説明する。図21は、第2の実施形態の第2の応用例のマーキングDBのデータ構造の一例を示す図である。図21では、図19と同様に、マーキング受信部750によって受信したユーザの番組“1”に対するマーキング情報と類似したマーキング情報を持ったユーザをグループ化して、グループ内の全ユーザの番組“1”以外の番組のマーキング情報を示している。ただし、図21に示すデータ構造は、図19のデータ構造と比べて、ユーザ操作の種類を示したフラグ1400を備えるところが異なる。
マーキングDB755のデータ構造は、前述のようにフラグ1400を有している。すなわち、番組視聴端末5から番組推薦サーバ6に送信されるマーキング情報には、番組への操作の種別を表したフラグが付与される。例えば、番組“A”の10〜50分をマーキングした場合には、番組“A”を示す番組識別情報と、10〜50分を示すマーキング時間情報あるいはパケット識別情報と、マーキング操作を示す識別情報とで構成されたマーキング情報が送信される。また、この場合、ユーザ操作は、マーキング操作だけに限られない。再生、消去又は早送りなどの操作情報を識別するための識別情報が付加されてもよい。
図21のデータ構造は、マーキング受信部750によって受信されたユーザ“A”の番組“1”へのマーキングを表すマーキング情報と類似したマーキング情報を持ったユーザ“B”、“C”及び“D”をグループ化して、グループ内で番組“1”以外のマーキング情報をマーキングDB755から抽出した結果である。
ユーザID“A”には、番組ID“1”以外に、番組ID“2”が対応付けられている。マーキング情報1401は、番組“2”の0〜5分、15〜35分及び50〜80分が早送り操作され、5〜15分、35〜50分及び80〜95分が再生操作されたというマーキング時間及びフラグを有する。なお、図21のフラグ1400において、“F”は早送り操作を表し、“P”は再生操作を表し、“M”はマーキング操作を表し、“D”は消去操作を表している。
ユーザID“B”には、番組ID“1”以外に、番組ID“2”が対応付けられている。マーキング情報1402は、番組“2”の30〜35分、45〜65分及び70〜95分が再生操作され、35〜45分がマーキング操作され、65〜70分が早送り操作されたというマーキング時間及びフラグを有する。
ユーザID“C”には、番組ID“1”以外に、番組ID“2”が対応付けられている。マーキング情報1403は、番組“2”の0〜10分、20〜35分、40〜85分及び90〜125分が再生操作され、10〜20分、35〜40分及び85〜90分がマーキング操作されたというマーキング時間及びフラグを有する。
ユーザID“D”には、番組ID“1”以外に、番組ID“2”が対応付けられている。マーキング情報1404は、番組“2”の0〜25分、30〜65分、70〜85分及び90〜125分が再生操作され、25〜30分及び65〜70分が削除操作され、85〜95分がマーキング操作されたというマーキング時間及びフラグを有する。
なお、マーキング受信部750によって受信されたユーザ“A”のマーキング情報に類似するマーキング情報を抽出してグループを形成する際に、マーキングの時間軸上の重なりあるいはパケットの重なりだけで類似を判断するのではなく、番組に対する操作が一致しているか否かをさらに判断しても良い。すなわち、同じ番組の同一シーンで同じ操作を行ったユーザは、ほぼ同一の嗜好を持っていると判断して、グループ化を行っても良い。
図22は、図21のようにグループ化されたマーキング情報の集計方法を説明するための概念図である。
図22に示すストリームは、番組“2”の時間軸でのストリームを仮想的に示している。番組開始位置1501から25〜30分、及び65〜70分にCM(コマーシャルメッセージ)が挿入されて放送されている。
図22に示すマーキング時間1504は、図21のマーキング情報1401に示すユーザ“A”の番組“1”以外の番組である番組“2”におけるマーキング時間を示している。マーキング時間1504において、0〜5分、15〜35分及び50〜80分は早送り操作が行われ、5〜15分、35〜50分及び80〜95分は再生操作が行われている。
図22に示すマーキング時間1505は、図21のマーキング情報1402に示すユーザ“B”の番組“1”以外の番組である番組“2”におけるマーキング時間を示している。マーキング時間1505において、30〜35分、45〜65分及び70〜95分は再生操作が行われ、35〜45分はマーキング操作が行われ、65〜70分は早送り操作が行われている。
図22に示すマーキング時間1506は、図21のマーキング情報1403に示すユーザ“C”の番組“1”以外の番組である番組“2”におけるマーキング時間を示している。マーキング時間1506において、0〜10分、20〜35分、40〜85分及び90〜125分は再生操作が行われ、10〜20分、35〜40分及び85〜90分はマーキング操作が行われている。
図22に示すマーキング時間1507は、図21のマーキング情報1404に示すユーザ“D”の番組“1”以外の番組である番組“2”におけるマーキング時間を示している。マーキング時間1507において、0〜25分、30〜65分、70〜85分及び90〜125分は再生操作が行われ、25〜30分及び65〜70分は削除操作が行われ、85〜95分はマーキング操作が行われている。
図22のマーキング度数分布は、コミュニティグループのマーキング情報の集計結果を示している。本実施形態における集計処理は、番組の単位時間でのマーキング情報の示す操作情報ごとに異なるポイントを加算することによって集計する。ここでは、例えば、消去フラグ“D”には“−2”ポイント、早送りフラグ“F”には“−1”ポイント、再生フラグ“P”には“+1” ポイント、マーキングフラグ“M”には“+2” ポイントが、単位時間ごとに重み付け加算される。また、集計結果は、コミュニティグループ内の全ユーザの操作フラグの付与されているマーキング時間の総時間で正規化される。
また、コミュニティグループを包含する番組推薦サーバ6の全登録ユーザで構成される全ユーザグループでも同様に番組“1”以外の番組のマーキング情報が集計され、全ユーザの操作フラグの付与されているマーキング時間の総時間で正規化される。そして、コミュニティグループの正規化された集計結果から全ユーザグループの正規化された集計結果を減算することによって、コミュニティグループに特化した集計結果が作成される。本例では、全ユーザグループでの正規化統計結果は、いずれの単位時間でもほぼ“0”付近となり、減算結果も減算結果前もほぼ同じ集計結果となっている。
また、減算された集計結果は、予め定められた閾値を用いて閾値判定することによって推薦シーンが生成される。本例では、2つの閾値を用いて、番組シーンの視聴推薦情報と、番組シーンの削除推薦情報を作成する。
推薦シーン作成部759は、正規化して減算された集計結果が上側の第1の閾値1508を上回るマーキング時間情報を抽出して番組シーンの視聴推薦シーン1510,1511,1512の視聴推薦情報を生成する。また、推薦シーン作成部759は、正規化して減算された集計結果が下側の第2の閾値1509を下回るマーキング時間情報を抽出して番組シーンの削除推薦シーン1513,1514の削除推薦情報を生成する。
このように作成した視聴推薦情報と削除推薦情報とは、それぞれの番組の番組識別情報と各番組シーンの開始時刻及び終了時刻とを含めて推薦情報として、推薦送信部760によって番組視聴端末5に送信される。
送信された推薦情報は、番組視聴端末5の推薦受信部728によって受信され、推薦情報に含まれる番組識別情報に基づいて、番組が記録媒体715に記録されているか否かの判定が行われる。記録されていると判定された場合、さらに各番組の番組シーンが記録されているか否かの判定が各番組シーンの開始時刻及び終了時刻に基づいて、番組記録判定部730によって行われる。また、番組記録判定部730は、番組シーンが記録済みであると判定され、且つその番組シーンが削除推薦シーンであった場合には、自動的に当該番組シーンを削除する。また、番組記録判定部730は、番組シーンが記録済みであると判定され、且つその番組シーンが視聴推薦シーンであった場合には、その番組シーンの開始時刻に基づいて番組情報を抽出し、サムネイルを作成してモニタ711に表示し、ユーザへの視聴を促す。
よって本例においては、番組“2”がCMであるときに、CM位置で各ユーザが早送りしたり、削除したりするので、削除推薦シーンとして番組内におけるCM部分が選択されることとなる。
なお、番組視聴端末5は、番組シーンの削除推薦情報を受信して、当該番組シーンを削除した場合、削除が開始された番組内の時間位置と削除が終了した番組内の時間位置とをつなぎ合わせることが望ましい。
以上のように、本応用例では、ユーザ操作の種類に応じた重み付け加算によって各ユーザのマーキング情報を集計することによって、番組シーンの視聴推薦だけではなく、番組シーンの削除推薦や早送り推薦などが可能となるとともに、応用例を適用しない本実施形態よりも精度の高い番組推薦を行うことができる。
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。図23は、第3の実施形態の番組推薦システムの概略構成を示す概念図である。
第3の実施形態において、放送波あるいはIP網を利用して配信される番組は、番組内の1画面1600が複数のクラスタ1601〜1604に分割されている。そして、各クラスタ1601〜1604は、レーザポインタやマウスなどのポインティングデバイス1605によって選択可能に放送される。また、クラスタ1602〜1604は、番組内の例えば俳優や商品など1つのオブジェクトを包含する形で放送されている。また、これらの各クラスタの座標情報は、番組情報に多重化されている。なお、座標情報は、番組の放送と同期して、クラスタの座標情報を提供するクラスタ情報提供サーバからネットワーク10を利用して番組視聴端末8に配信される形態でもかまわない。このときは、番組視聴端末8が、受信中の放送の番組識別情報を、図示しないクラスタ情報提供サーバに送信して、送信した番組識別情報に対応したクラスタ情報を受信する。
ユーザは、ポインティングデバイス1605を用いて、画面に表示されるオブジェクトの中から嗜好のオブジェクトを選択する。例えばポインティングデバイスとしてレーザポインタを用いる場合は、番組視聴端末8に接続されたモニタの画面の表面に感光フィルムを付着させて、レーザの照射された座標情報を抽出する。マウスの場合は、画面上に矢印などのマーカーを表示して、ユーザがクリックした場所の座標情報を抽出する。番組に多重化されたクラスタ情報は、クラスタID記憶部1606に記録されている。番組視聴端末8は、ポインティングデバイス1605で選択された座標情報に基づいて、その座標情報がどのクラスタに属するかを判定して、多重化されたクラスタ情報に基づいてクラスタ識別情報を獲得して、クラスタ識別情報を、汎用のネットワーク10によって接続される番組推薦サーバ9に送信する。
番組推薦サーバ9は、受信したクラスタ識別情報から、同一のクラスタ識別情報をもったユーザを自身のもつクラスタDBから抽出して、グループ化する。また、番組推薦サーバ9は、グループ化したユーザに対応付けられているその他の選択されたクラスタ識別情報を、グループ内の全ユーザに対して集計してランキングを形成し、ランキングに基づいて、推薦クラスタを生成する。そして、番組推薦サーバ9は、推薦クラスタを番組視聴端末8に送信する。
番組視聴端末8のクラスタ検索部1608は、推薦されたクラスタ識別情報に基づいて、そのクラスタを含む番組を記録媒体(録画手段)1607から検索して、お勧めクラスタとして選択画面1609に表示して、ユーザからの選択を促す。お勧めクラスタが選択されるとお勧めクラスタを含む番組の所定の再生時間位置から番組の再生が行われる。また、お勧めクラスタは、お勧めの優先度に基づいた表示形態、例えば、サムネイルの大きさを変える、色を変える等して表示してもよい。図23では、お勧めクラスタを選択したユーザの数に応じてサムネイルの大きさが変化されて表示されている。
次に、第3の実施形態の番組推薦システムの構成について説明する。図24は、第3の実施形態の番組視聴端末の構成を示すブロック図であり、図25は、第3の実施形態の番組推薦サーバの構成を示すブロック図である。第3の実施形態の番組推薦システムは、例えば番組録画装置などの番組視聴端末8と、複数の番組視聴端末8とインターネットなどの汎用のネットワーク10を介して互いに通信可能に接続される番組推薦サーバ9とで構成される。なお、第3の実施形態の番組推薦システムの構成は、図2に示す番組推薦システムの構成と同じである。本来、番組推薦サーバ9には、複数の番組視聴端末8が接続されるが、説明の簡易化のために1台の番組視聴端末8が接続された形態について説明する。
番組視聴端末8は、放送波又はIP網から番組を受信して、番組を視聴したり、番組を録画したり、録画した番組を再生したり、録画した番組を消去したり、番組の録画予約をしたりする。番組視聴端末8は、アンテナ1701、チューナ1702、TSデコーダ1703、CAS1704、暗号解除部1705、デマルチプレクサ1706、MPEG Videoデコーダ1707、MPEG Audioデコーダ1708、HDMI端子1709、記録用暗号化部1713、記録制御部1714、記録媒体1715、再生制御部1716、記録用復号化部1717、PSI抽出部1718、EPG記憶部1719、ポインタ受光部1720、座標抽出部1721、クラスタ識別情報抽出部1722、クラスタ記憶部1723、キー1724、ユーザ識別部1725、ユーザ情報DB1726、クラスタ送信部1727、推薦受信部1728、推薦番組情報抽出部1729、クラスタ検索部1730、推薦再生制御部1732及び拡大制御部1733から構成される。
また、番組推薦サーバ9は、クラスタ受信部1750、ユーザ管理部1751、ユーザ属性DB1752、クラスタ登録部1754、クラスタ再生時間管理部1755、クラスタDB1756、コミュニティクラスタ統計部1757、全ユーザクラスタ統計部1758、コミュニティ特化部1759、推薦クラスタ作成部1760及び推薦送信部1761から構成される。
チューナ1702は、例えば地上波デジタル放送やBSデジタル放送などの放送波から所定チャンネルの放送波を受信して、放送波をTSデコーダ1703に出力する。TSデコーダ1703は、受信した一般的なトランスポート・ストリーム形式の放送波を復調して暗号解除部1705に出力する。
CAS1704は、一般的なConditional Access Systemで、ユーザの登録情報及び番組の暗号鍵の記録されたICカードから暗号鍵情報を読み出し、暗号解除部1705に出力する。
暗号解除部1705は、TSデコーダ1703によって復調された、暗号化された放送信号を、CAS1704からの暗号鍵をもとに復号化し、暗号化された番組情報の暗号を解除してデマルチプレクサ1706に出力する。
デマルチプレクサ1706は、番組情報として多重化されている情報を分離する。番組情報には、少なくともビデオ情報、オーディオ情報及び番組管理情報が多重化され、これらを分離後、ビデオ情報をMPEG Videoデコーダ1707へ、オーディオ情報をMPEG Audioデコーダ1708へ、番組管理情報をPSI抽出部1718へ出力する。
MPEG Videoデコーダ1707は、デマルチプレクサ1706からのビデオ情報を復調して映像データに変換し、HDMI端子1709に出力する。MPEG Audioデコーダ1708は、デマルチプレクサ1706からのオーディオ情報を復調してオーディオデータに変換し、HDMI端子1709に出力する。HDMI端子1709は、HDMIケーブルを介して外部のHDMI端子1710と接続されており、HDMI端子1710は、モニタ1711及びスピーカ1712と接続されている。
HDMI端子1709,1710は、一般的な映像情報、音声情報用のHDMIインタフェースであり、番組視聴端末8とモニタ1711及びスピーカ1712とを互いに相互認証するとともに、暗号鍵の共通化を行い、共通化した暗号鍵で、映像データや音声データを暗号化して、モニタ1711やスピーカ1712に出力する。
モニタ1711は、一般的な番組の映像情報の表示装置であって、HDMI端子1710で受信した暗号化された映像データを復号して番組の映像データを出力する。スピーカ1712は、一般的な番組の音声情報の出力装置であって、HDMI端子1710で受信した暗号化された映像データを復号して番組の音声データを出力する。
記録用暗号化部1713は、受信した番組情報を記録媒体に記録するための暗号処理を施す。記録用暗号化部1713は、デマルチプレクサ1706から入力された番組情報を暗号化して記録制御部1714に出力する。従って、記録用暗号化部1713は、番組情報を記録する記録媒体に特有の暗号化処理を行う。例えば、DVD−RAMではCPRM(Content Protection for Rewritable Media)、Blu−rayディスクやHD−DVDでは、AACS(Advanced Access Content System)が用いられる。
記録制御部1714は、記録用暗号化部1713によって暗号化された番組情報を記録媒体1715への記録を制御する。記録制御部1714は、記録媒体特有の変調処理や誤り訂正符号化処理を行うことによって記録媒体に番組情報を記録する。
記録媒体1715は、番組情報を記録するコンピュータ読み取り可能な記録媒体であって、例えば、ハードディスクのような磁気記録ディスクやDVD、Blu−rayディスクなどの光ディスク、SDカードのような半導体メモリ、及びMO/MDのような光磁気記録媒体が用いられる。
再生制御部1716は、記録媒体1715から記録媒体に記録されている番組情報を読み出す。なお、記録制御部1714、記録媒体1715及び再生制御部1716は、ドライブシステムとして構成されるのが一般的である。
記録用復号化部1717は、記録用暗号化部1713の暗号化に対応する復号を行う。記録用復号化部1717は、暗号化して記録媒体1715に記録された番組情報の暗号を復号化してTSデコーダ1703に出力する。なお、TSデコーダ1703に出力された番組情報の再生処理は、上述のアンテナ1701で受信した番組の再生処理と同様である。
PSI抽出部1718は、デマルチプレクサ1706で抽出した番組管理情報からPSI(Program Specific Information)を抽出する。PSIの中には、主に、PMT(Program Map Table)、EIT(Event Information Table)やTOT(Time Offset Table)などの情報が含まれる。
PMTは、番組に含まれる画像や音声などの各パケット識別情報を格納している。よって、PMTから画像や音声などのパケット識別情報を得ることが出来れば、それらパケット識別情報のついたパケットを抽出することでプログラムを再生できる。
EITは、番組の名称、放送日時及び放送内容などの番組に関連する情報が含まれる。EPG(Electronic Program Guide)は主にこの情報を用いて作成される。
EPG記憶部219は、PSI抽出部218で抽出したPSI中のEITを用いてEPG情報を作成して、記憶する。ポインタ受光部1720は、例えばポインティングデバイスがレーザポインタで構成される場合に、レーザポインタで指示された位置を抽出する。なお、ポインティングデバイスがマウスで構成されるときには、このポインタ受光部1720は必要ない。
座標抽出部1721は、ポインタ受光部1720でレーザポインタの照射された位置情報を画面内の座標情報に変換する。座標抽出部1721は、モニタ1711の画面内の横方向をx軸、縦方向をy軸とした2次元座標情報を獲得する。
クラスタ識別情報抽出部1722は、デマルチプレクサ1706によって分離された、番組データに多重化されていた番組管理情報からクラスタ情報を抽出する。クラスタ情報は、番組内に定義されているクラスタのクラスタ識別情報と、クラスタ毎の座標情報とが示されている。クラスタは、動画フレーム内の2次元座標で指定された、ユーザによって選択可能に分割された番組の部分情報である。例えば、フレーム内の出演俳優などのオブジェクトを包含するようなクラスタが定義される。また、時間軸で連続したフレームに出現する同一オブジェクトは、同一のクラスタ識別情報が付与されるとともに、番組フレーム単位にオブジェクトの存在位置に同期して座標を変化させて定義される。また、本実施形態におけるクラスタは、矩形状である。クラスタの座標情報は、クラスタの左上端部の画素に対応する座標と、右下端部の画素に対応する座標とを含む。
また、クラスタ識別情報抽出部1722は、ユーザによってポインティングデバイスで選択された番組の座標情報を抽出して、座標情報と、番組に多重化されているクラスタ情報とを比較することによって、ユーザが選択したクラスタを識別して、そのクラスタ識別情報を抽出してクラスタ記憶部1723に出力する。
なお、クラスタ情報は、番組内に多重化されている形態について説明したがこれに限られない。クラスタ情報は、汎用のネットワーク10に接続されたクラスタ情報提供サーバなどから入手してもよい。この場合、番組視聴端末8は、ユーザが視聴及び選択された番組の番組識別情報をクラスタ情報提供サーバに送信して、ユーザに視聴及び選択された番組に対応したクラスタ情報を入手する。また、ユーザによってクラスタが選択されると、対象の番組の番組識別情報および番組の時間情報、選択されたクラスタの座標情報をクラスタ情報提供サーバに送信して、選択されたクラスタに対応するクラスタ情報を入手してもかまわない。
クラスタ記憶部1723は、クラスタ識別情報抽出部1722によって抽出されたユーザによりポインティングデバイスを用いて選択されたクラスタを識別するためのクラスタ識別情報と、PSI抽出部1718によって抽出されたクラスタ選択時の番組の時間情報と、フレームごとのクラスタの座標情報とを、当該番組の番組識別情報に対応付けて記憶する。ユーザが複数のクラスタを選択した場合でも、クラスタ記憶部1723は、複数のクラスタ識別情報を記憶する。
キー1724は、ユーザからの入力を受け付ける部分であり、リモコンやフロントパネルで構成される。ユーザ情報DB1726は、番組視聴端末8を使用する全ユーザのユーザ情報の登録されているデータベースである。ユーザ識別部1725は、キー1724を用いて入力されるユーザ情報と、ユーザ情報DB1726に記憶されているユーザ情報とに基づいて、番組視聴端末8を使用するユーザを識別する。また、ユーザ識別部1725は、ユーザの認証に成功すると現在使用中のユーザのユーザ情報をクラスタ送信部1727に出力する。
クラスタ送信部1727は、汎用のネットワーク10によって接続される番組推薦サーバ9との接続を確立して、クラスタ記憶部1723に記憶されているユーザが選択したクラスタのクラスタ識別情報と、クラスタ選択時における番組の時間情報と、当該番組を識別するための番組識別情報と、フレームごとのクラスタの座標情報とを、ユーザ識別部1725からのユーザ識別情報と対応付けて、ユーザクラスタ情報として番組推薦サーバ9に送信する。
推薦受信部1728は、汎用のネットワーク10を介して、番組推薦サーバ9の推薦する番組に関する推薦情報を受信する。推薦番組情報抽出部1729は、推薦受信部1728で受信した推薦情報から、推薦番組情報を抽出する。推薦番組情報は、推薦する番組を一意に識別できる情報であり、例えば、番組識別情報や、番組の放送日時及びチャンネル情報である。また、推薦番組情報抽出部1729は、推薦番組情報に付与されている推薦番組内の推薦クラスタのクラスタ識別情報と、当該推薦クラスタの番組内の時間を示したクラスタ時間情報と、推薦クラスタの座標情報とを抽出する。
クラスタ検索部1730は、推薦番組情報抽出部1729によって抽出された推薦番組の番組識別情報に基づいて記録媒体1715を検索し、当該番組が記録されているか否かを判定する。当該番組が記録されていると判定された場合、クラスタ検索部1730は、番組推薦サーバ9によって推薦された推薦クラスタのクラスタ識別情報あるいは推薦クラスタの開始時間情報から、推薦クラスタが記録媒体1715に記録されているか否かを判定する。推薦クラスタが記録媒体1715記録されていると判定された場合、クラスタ検索部1730は、推薦再生制御部1732に推薦クラスタ情報を出力する。
推薦再生制御部1732は、クラスタ検索部1730から入力される推薦クラスタ情報に基づいて、推薦される番組を、推薦クラスタの再生開始位置から再生する。また、推薦再生制御部1732は、再生する前に、推薦クラスタの最初のフレーム画面を記録媒体1715から呼び出して、サムネイル表示を行い、ユーザに再生を促す。この場合、推薦再生制御部1732は、複数の推薦クラスタ情報から、推薦クラスタを呼び出してサムネイル画像を作成してリスト表示を行う。ユーザによってサムネイル画像が選択された場合、推薦再生制御部1732は、サムネイル画像に対応する推薦クラスタの再生開始位置から番組を再生する。
拡大制御部1733は、ユーザからの設定操作に従って、番組内の推薦クラスタを拡大して表示する。この場合、番組推薦サーバ9からの推薦クラスタ情報に、クラスタの座標情報が付加されており、この座標情報をもとに番組の推薦クラスタを拡大して表示する。これによって、ユーザは、嗜好のクラスタを拡大して再生することができる。また、拡大制御部1733は、MPEG Videoデコーダ1707からの出力に対して、推薦クラスタ情報が示す座標範囲を拡大して表示する。拡大制御部1733は、推薦クラスタが画面内に最大となるように拡大する。
次に、本実施形態の番組推薦システムにおける番組推薦サーバ9の構成について説明する。
クラスタ受信部1750は、汎用のネットワーク10に接続された複数の番組視聴端末8のクラスタ送信部1727から、各ユーザによって選択された番組を識別するための番組識別情報と、番組内において選択されたクラスタを識別するためのクラスタ識別情報と、選択を行ったユーザのユーザ情報と、クラスタ選択時における番組の時間情報と、フレームごとのクラスタの座標情報とを含むユーザクラスタ情報を受信する。番組識別情報は、選択を行った番組を一意に識別可能な番組識別情報、あるいは選択された番組の番組放送日時、チャンネル情報及び放送局識別情報である。受信したユーザクラスタ情報は、ユーザ管理部1751に出力される。
ユーザ属性DB1752は、登録ユーザのユーザ識別情報と、必要であれば、ユーザ氏名、性別、住所/電話番号、番組視聴端末のメーカ/機種、接続するモニタの解像度および番組視聴端末のネットワークIDなどのユーザ属性情報とをユーザ登録リストとして管理する。ユーザは、予め番組推薦サーバ9に、番組推薦を行うためのユーザ登録処理を行う。ユーザ登録処理には、ユーザ名の設定、住所/電話番号の通知などユーザ登録情報の通知を行った後、番組推薦サーバ9側で、該ユーザにユーザ情報を生成して通知し、ユーザ属性DB1752で生成したユーザ情報に対応付けて、ユーザから通知されたユーザ属性情報を記憶/管理する。
ユーザ管理部1751は、受信したユーザ情報により特定されるユーザが、番組推薦サーバ9の登録ユーザであるか否かを判定する。ユーザ管理部1751は、ユーザ属性DB1752に記憶されているユーザ登録リストの中から、受信したユーザ情報に一致するユーザ情報を検索する。受信したユーザ情報がユーザ属性DB1752に登録されていると判断された場合、番組推薦サーバ9の登録ユーザであると判断して、処理を継続する。
一方、受信したユーザ情報がユーザ属性DB1752に登録されていないと判断された場合、番組推薦サーバ9の未登録ユーザであるとして、当該ユーザの使用する番組視聴端末8に登録ユーザでない旨のエラーメッセージを送信して以後の処理を中断する。エラーメッセージを受信した番組視聴端末8は、当該エラーメッセージをモニタ1711に表示する。
クラスタ登録部1754は、ユーザ管理部1751によってユーザが番組推薦サーバ9の登録ユーザであると判断された場合、クラスタ受信部1750によって受信されたユーザ毎のユーザクラスタ情報を、受信したユーザ情報に対応付けて、クラスタDB1756に記憶する。
また、クラスタ登録部1754は、ユーザクラスタ情報内に含まれる選択されたクラスタのクラスタ識別情報と、当該クラスタの番組内の時間位置情報と、当該クラスタが含まれる番組を識別するための番組識別情報とを抽出して、クラスタ再生時間管理部1755に記憶する。クラスタ再生時間管理部1755は、クラスタ識別情報と、時間位置情報と、番組識別情報とを対応付けて記憶/管理する。なお、時間位置情報に対応付けられた各フレーム内の当該クラスタの画面内の座標情報がユーザクラスタ情報に含まれる場合、クラスタ再生時間管理部1755は、クラスタ識別情報と、時間位置情報と、座標情報とを記憶する。
コミュニティクラスタ統計部1757は、クラスタ受信部1750によって受信されたユーザクラスタ情報に含まれるクラスタ識別情報と同じクラスタ識別情報を持ったユーザを、クラスタDB1756から選択してグループ化する。同一クラスタ識別情報を持ったユーザは、クラスタDB1756にユーザ情報に対応付けて管理されているクラスタ識別情報をもとにグループ化される。また、コミュニティクラスタ統計部1757は、グループ化されたグループに属する全ユーザのクラスタ識別情報に基づいて、クラスタ受信部1750で受信したクラスタ識別情報の示すクラスタ以外の全てのクラスタを集計し、集計結果を、グループ内のユーザの選択した全クラスタ数で正規化する。
全ユーザクラスタ統計部1758は、クラスタ受信部1750によって受信されたクラスタ識別情報を持った全ユーザをコミュニティグループとしてグループ化するコミュニティクラスタ統計部1757とは異なり、ユーザ属性DB1752に登録されている全ユーザ、すなわち番組推薦サーバ9への全登録ユーザを、コミュニティグループを包含する全ユーザグループとしてグルーピングする。
また、全ユーザクラスタ統計部1758は、全ユーザのグルーピング後、全ユーザのクラスタ識別情報に基づいて、クラスタ受信部1750で受信したクラスタ識別情報の示すクラスタ以外の全てのクラスタを集計し、集計結果を番組推薦サーバ9の登録ユーザの選択した全クラスタ数で正規化する。
コミュニティ特化部1759は、コミュニティクラスタ統計部1757によって正規化された集計結果から、全ユーザクラスタ統計部1758によって正規化された集計結果を減算して、当該コミュニティグループに特化したクラスタのコミュニティグループ内の集計ランキングを作成する。作成したコミュニティグループ内の集計ランキングは、推薦クラスタ作成部1760に出力される。
推薦クラスタ作成部1760は、コミュニティ特化部1759からのコミュニティグループ内の集計ランキングの上位クラスタ、あるいは集計ランキングの度数を閾値判定して閾値以上の度数のあるクラスタを推薦クラスタとして抽出する。推薦クラスタ作成部1760は、推薦クラスタに対応するクラスタ識別情報に基づいて、クラスタ再生時間管理部1755から、番組内の推薦クラスタの出現時間(再生時間)を表す時間情報と、その時間情報に対応して1フレーム毎の推薦クラスタの座標情報とを呼び出す。推薦クラスタ作成部1760は、推薦クラスタを識別するためのクラスタ識別情報と、推薦クラスタの時間情報と、推薦クラスタの座標情報と、推薦クラスタを含む番組を識別するための番組識別情報とをセットとして、推薦番組情報を作成する。
また、推薦クラスタ作成部1760は、全ユーザクラスタ統計部1758からの全ユーザのクラスタの正規化された集計結果を入力し、集計結果をクラスタ数の多い順番にランキングしてランキング上位のクラスタ、あるいは集計結果を閾値判定して閾値以上のクラスタ数を有するクラスタを人気クラスタとして抽出する。推薦クラスタ作成部1760は、人気クラスタに対応するクラスタ識別情報に基づいて、クラスタ再生時間管理部1755から、番組内の人気クラスタの出現時間(再生時間)を表す時間情報と、その時間情報に対応して1フレーム毎の人気クラスタの座標情報とを呼び出す。推薦クラスタ作成部1760は、人気クラスタを識別するためのクラスタ識別情報と、人気クラスタの番組内の時間情報と、人気クラスタの座標情報と、人気クラスタを含む番組を識別するための番組識別情報とをセットとして、人気番組情報を作成する。推薦クラスタ作成部1760によって作成された推薦番組情報と人気番組情報とは、推薦情報として推薦送信部1761に出力される。
推薦送信部1761は、汎用のネットワーク10で接続された番組視聴端末8との接続を確立して、推薦クラスタ作成部1760で作成した推薦番組情報及び人気番組情報を含む推薦情報を番組視聴端末8に送信する。
以下、本実施形態における番組推薦システムの動作について説明する。例えば、ユーザAが、ユーザAの所有する番組視聴端末8によって、番組A内のクラスタを選択する。番組視聴端末8は、ユーザAを識別するためのユーザ情報と、番組Aに多重化されているクラスタを識別するためのクラスタ識別情報と、クラスタの出現時間情報と、フレームごとのクラスタの座標情報と、クラスタを含む番組を識別するための番組識別情報とをユーザクラスタ情報として番組推薦サーバ9に送信する。
番組推薦サーバ9のクラスタ受信部1750は、ユーザAの所有する番組視聴端末8から、ユーザ情報と、クラスタ識別情報と、時間情報と、座標情報と、番組識別情報とを含むユーザクラスタ情報を受信する。ユーザ管理部1751は、受信したユーザ情報がユーザ属性DB1752に記憶されているか否かを判定し、記憶されていれば、ユーザAが番組推薦サーバ9の登録ユーザであるとして、処理を継続する。
クラスタ登録部1754は、ユーザAを識別するためのユーザ情報に対応付けて、クラスタ識別情報と、時間情報と、座標情報と、番組識別情報とをクラスタDB1756に登録する。コミュニティクラスタ統計部1757は、受信したユーザクラスタ情報に含まれるクラスタ識別情報と同じクラスタ識別情報を持った全ユーザをクラスタDB1756から抽出してコミュニティグループを形成する。また、コミュニティクラスタ統計部1757は、コミュニティグループ内における番組A以外の番組に含まれるクラスタを統計的に処理する。そして、コミュニティクラスタ統計部1757は、コミュニティグループ内における番組A以外の番組に含まれるクラスタのうち、選択されたクラスタの数が多い順番にランキングを形成し、形成したランキングをコミュニティ特化部1759に出力する。
全ユーザクラスタ統計部1758は、番組推薦サーバ9のユーザ属性DB1752に登録されている全ユーザをコミュニティクラスタ統計部1757で形成したコミュニティグループを包含する全ユーザグループとして形成する。全ユーザクラスタ統計部1758は、全ユーザグループ内のユーザ情報に対応付けられているクラスタ識別情報をクラスタDB1756から抽出して、番組A以外の番組に含まれるクラスタを統計処理する。そして、全ユーザクラスタ統計部1758は、全ユーザグループ内における番組A以外の番組に含まれるクラスタのうち、選択されたクラスタの数が多い順番にランキングを形成し、形成したランキングをコミュニティ特化部1759と推薦クラスタ作成部1760とに出力する。
コミュニティ特化部1759は、コミュニティクラスタ統計部1757によって作成されたクラスタのランキングから、全ユーザクラスタ統計部1758によって作成されたクラスタのランキングを減算する。これにより、コミュニティ特化部1759は、番組A内における所定のクラスタを選択したユーザのコミュニティグループに特化したランキング情報を作成して推薦クラスタ作成部1760に出力する。
推薦クラスタ作成部1760は、コミュニティ特化部1759によって作成された、コミュニティグループに特化した選択クラスタのランキング情報に基づき、閾値よりもクラスタ数の多いクラスタ、あるいはランキング上位の所定数のクラスタを推薦クラスタとして抽出する。そして、推薦クラスタ作成部1760は、推薦クラスタに対応する、クラスタ識別情報、番組識別情報、時間情報及び座標情報を含む推薦番組情報を作成する。
また、推薦クラスタ作成部1760は、全ユーザクラスタ統計部1758によって作成された、全登録ユーザの選択クラスタのランキング情報に基づき、閾値よりもクラスタ数の多いクラスタ、あるいはランキング上位の所定数のクラスタを人気クラスタとして抽出する。そして、推薦クラスタ作成部1760は、人気クラスタに対応する、クラスタ識別情報、番組識別情報、時間情報及び座標情報を含む人気番組情報を作成する。推薦送信部1761は、推薦クラスタ作成部1760によって作成された推薦番組情報及び人気番組情報をユーザAの番組視聴端末8に送信する。
次に、本実施形態の番組推薦システムの処理の流れについてさらに説明する。図26〜29は、第3の実施形態に係る番組推薦システムの処理の流れを示したフローチャートであり、図26は、第3の実施形態に係る番組視聴端末におけるユーザクラスタ情報を送信するまでの処理の流れを示すフローチャートであり、図27は、第3の実施形態に係る番組推薦サーバにおける処理の流れを示すフローチャートであり、図28及び図29は、第3の実施形態に係る番組視聴端末における推薦情報を受信してからの処理の流れを示すフローチャートである。
図26において、まず、ユーザ識別部1725は、ユーザに対するユーザ認証のためのユーザ認証画面をモニタ1711に表示し、キー1724は、ユーザによるユーザ情報の入力を受け付け、番組視聴端末8へのログインを受け付ける(ステップS101)。次に、ユーザ識別部1725は、ユーザ認証が成功したか否か、すなわち、入力されたユーザ情報がユーザ情報DB1726に予め登録されているユーザ情報と一致するか否かを判断する(ステップS102)。
ユーザ認証の結果、ユーザ認証に失敗した場合(ステップS102でNO)、ユーザ識別部1725は、モニタ1711にエラーメッセージを表示して以降の処理を終了する(ステップS103)。
一方、ユーザ認証に成功した場合(ステップS102でYES)、再生制御部1716は、記録媒体1715に記録済みの番組に対する再生指示操作があったか否かを判断する(ステップS104)。ここで、再生指示操作がないと判断された場合(ステップS104でNO)、再生制御部1716は、ユーザからの録画番組の再生指示操作があるまで待機する。
ユーザからの再生指示操作があったと判断された場合(ステップS104でYES)、再生制御部1716は、ユーザによって選択された番組を記録媒体1715から再生してモニタ1711に出力する再生処理を実行する(ステップS105)。再生処理中において、デマルチプレクサ1706は、番組に多重化された番組管理情報を分離し、PSI抽出部1718は、番組管理情報からPSIを抽出し、クラスタ識別情報抽出部1722は、番組管理情報からクラスタ情報を抽出する。クラスタ情報は、番組の動画フレームの単位で、フレーム内のクラスタのクラスタ識別情報およびその座標情報を含む。
次に、座標抽出部1721は、再生中の番組に対してユーザがポインティングデバイスを用いて、番組内のクラスタを選択したかを判断する(ステップS106)。すなわち、ポインタ受光部1720によってレーザポインタによる光が受光された場合、座標抽出部1721は、番組内のクラスタが選択されたと判断する。ここで、ポインティングデバイスによってクラスタが選択されたと判断された場合(ステップS106でYES)、座標抽出部1721は、ポインティングデバイスで選択された画面内の座標情報を抽出する(ステップS107)。
座標情報を抽出した後、クラスタ識別情報抽出部1722は、座標抽出部1721によって抽出された座標情報に対応したクラスタのクラスタ識別情報を抽出する(ステップS108)。抽出したクラスタ識別情報は、当該クラスタの番組に多重化されている番組内の時間情報及び座標情報とともに、当該番組の番組識別情報に対応付けてクラスタ記憶部1723に記憶される。
クラスタ識別情報が抽出されてクラスタ記憶部1723に記憶された後、又は、クラスタが選択されていないと判断された場合(ステップS106でNO)、再生制御部1716は、番組の再生処理を継続し、再生中の番組が終了したか否かを判断する(ステップS109)。ここで、再生中の番組が終了していないと判断された場合(ステップS109でNO)、ステップS105の処理に戻り、再生制御部1716は、番組の再生処理を継続して実行する。
一方、再生中の番組が終了したと判断された場合(ステップS109でYES)、クラスタ送信部1727は、クラスタ記憶部1723に記憶されている、ユーザにより選択されたクラスタを識別するためのクラスタ識別情報と、PSI抽出部1718によって抽出されたクラスタ選択時の番組の時間情報と、フレームごとのクラスタの座標情報と、クラスタを含む番組の番組識別情報と、ユーザ識別部1725によって識別されたユーザのユーザ情報とをユーザクラスタ情報として番組推薦サーバ9に送信する(ステップS110)。
図27において、次に、番組推薦サーバ9のクラスタ受信部1750は、番組視聴端末8によって送信されたユーザクラスタ情報を受信する(ステップS111)。
次に、ユーザ管理部1751は、クラスタ受信部1750によって受信されたユーザクラスタ情報に含まれるユーザ情報が番組推薦サーバ9のユーザ属性DB1752に予め登録されているユーザ情報と一致するか否かを判断する(ステップS112)。ユーザ認証の結果、登録ユーザでないと判断された場合(ステップS112でNO)、ユーザ管理部1751は、その旨を示すエラーメッセージを作成して、番組視聴端末8にエラーメッセージを送信して、以後の処理を終了する(ステップS113)。
一方、ユーザ認証の結果、登録ユーザであると判断された場合(ステップS112でYES)、クラスタ登録部1754は、クラスタ受信部1750によって受信されたユーザクラスタ情報に含まれるクラスタ識別情報を、同じくユーザクラスタ情報に含まれるユーザ情報に対応付けてクラスタDB1756に登録する(ステップS114)。また、クラスタ登録部1754は、受信したユーザクラスタ情報に含まれるクラスタ識別情報と、そのクラスタの番組内の時間情報と、動画フレーム毎のクラスタの座標情報とをクラスタ再生時間管理部1755に登録する。
ステップS114でユーザクラスタ情報をクラスタDB1756及びクラスタ再生時間管理部1755に登録した後、コミュニティクラスタ統計部1757は、クラスタDB1756の中から、現在登録したクラスタ識別情報を持つ全ユーザを抽出して、抽出したユーザをコミュニティグループとしてグループ化する(ステップS115)。
ユーザをグループ化すると、コミュニティクラスタ統計部1757は、グループ化した全ユーザのユーザ情報に対応して記憶されている、クラスタ受信部1750によって受信されたユーザクラスタ情報の示す番組以外の番組におけるクラスタ識別情報を集計する(ステップS116)。なお、コミュニティクラスタ統計部1757は、ユーザごとに記憶されたクラスタ識別情報をカウントする。
次に、コミュニティクラスタ統計部1757は、コミュニティグループ内で集計した集計結果を、コミュニティグループ内の全ユーザの全クラスタ数で正規化する(ステップS117)。これによって、クラスタごとにユーザが選択したかどうかの確率を算出することができ、クラスタへの選択確率を示したランキング情報が生成される。
次に、全ユーザクラスタ統計部1758は、ユーザ属性DB1752に登録されているユーザ、すなわち番組推薦サーバ9に登録されている全ユーザを抽出し、受信したクラスタ識別情報と同じクラスタ識別情報を有するユーザで構成されるコミュニティグループを包含する全ユーザグループとしてグルーピングする(ステップS118)。
次に、全ユーザクラスタ統計部1758は、全登録ユーザのユーザ情報に対応して記憶されている、クラスタ受信部1750によって受信されたユーザクラスタ情報の示す番組以外の番組におけるクラスタ識別情報を集計する(ステップS119)。
次に、全ユーザクラスタ統計部1758は、集計した全登録ユーザのクラスタ識別情報の集計結果を、全登録ユーザの全クラスタ数で正規化する(ステップS120)。これによって、全ユーザグループ内のユーザのクラスタの選択率をクラスタごとに算出したランキングを生成することができる。
次に、コミュニティ特化部1759は、コミュニティグループ内における正規化されたクラスタ識別情報の集計結果から、全ユーザグループ内における正規化されたクラスタ識別情報の集計結果を減算して、コミュニティグループに特化したクラスタを集計する。そして、推薦クラスタ作成部1760は、減算結果をクラスタ数の多い順にランキングし、ランキングの上位の所定数のクラスタを推薦クラスタとし、推薦クラスタを識別するためのクラスタ識別情報と、推薦クラスタの番組内の時間情報と、番組の動画フレーム毎の推薦クラスタの座標情報と、番組を識別するための番組識別情報とを含む推薦番組情報を作成する(ステップS121)。
なお、推薦クラスタ作成部1760は、推薦クラスタのクラスタ識別情報に対応する時間情報及び座標情報をクラスタ再生時間管理部1755から抽出し、推薦番組情報を作成する。また、推薦クラスタ作成部1760は、減算結果を閾値判定し、閾値を上回ったクラスタを推薦クラスタとしてもよい。
次に、推薦クラスタ作成部1760は、全ユーザクラスタ統計部1758によって作成された全ユーザグループ内における正規化されたクラスタ識別情報の集計結果をクラスタ数の多い順にランキングし、ランキングの上位の所定数のクラスタを人気クラスタとし、人気クラスタを識別するためのクラスタ識別情報と、人気クラスタの番組内の時間情報と、番組の動画フレーム毎の人気クラスタの座標情報と、番組を識別するための番組識別情報とを含む人気番組情報を作成する(ステップS122)。なお、推薦クラスタ作成部1760は、全ユーザクラスタ統計部1758による集計結果を閾値判定し、閾値を上回ったクラスタを人気クラスタとしてもよい。
次に、推薦送信部1761は、推薦クラスタ作成部1760によって作成された推薦番組情報及び人気番組情報を推薦情報として番組視聴端末8に送信する(ステップS123)。
図28において、次に、番組視聴端末8の推薦受信部1728は、番組推薦サーバ9の推薦送信部1761によって送信された推薦番組情報及び人気番組情報を含む推薦情報を受信する(ステップS131)。
次に、推薦番組情報抽出部1729は、推薦受信部1728によって受信された推薦情報から推薦番組情報が抽出されたか否かを判断する(ステップS132)。推薦番組情報抽出部1729は、ユーザに推薦番組情報及び人気番組情報のうちのいずれかの選択を促す。キー1724を用いて推薦番組情報が選択された場合、推薦番組情報抽出部1729は推薦番組情報を抽出し、人気番組情報が選択された場合、推薦番組情報抽出部1729は人気番組情報を抽出する。なお、推薦番組情報及び人気番組情報の両方を抽出する設定を設けてもかまわない。これによって、ユーザに対してより多くの選択肢を提供することができる。
推薦番組情報が抽出されたと判断された場合(ステップS132でYES)、クラスタ検索部1730は、推薦番組情報抽出部1729によって抽出された推薦番組情報に含まれる番組識別情報に基づいて、記録媒体1715に当該番組識別情報と同じ番組識別情報を有する番組が記録されているか否かを判断する(ステップS133)。ここで、推薦クラスタを含む番組が記録媒体1715に記録されていないと判断された場合(ステップS133でNO)、ステップS140の処理に移行する。
一方、推薦クラスタを含む番組が記録されていると判断された場合(ステップS133でYES)、クラスタ検索部1730は、記録媒体1715から番組識別情報に対応する番組情報を呼び出すとともに、受信した推薦番組情報に含まれる推薦クラスタの番組内の時間情報と座標情報とを抽出し、推薦再生制御部1732に出力する。推薦再生制御部1732は、クラスタ検索部1730によって抽出された時間情報と座標情報とに基づいて推薦クラスタのサムネイル画像をモニタ1711に表示させる(ステップS134)。
次に、推薦再生制御部1732は、ユーザによるサムネイル画像の選択及び再生指示が発行されたか否かを判断する(ステップS135)。ここで、サムネイル画像の再生指示が発行されていないと判断された場合(ステップS135でNO)、ステップS140の処理へ移行する。一方、再生指示が発行されたと判断された場合(ステップS135でYES)、再生制御部1716は、記録媒体1715から、クラスタ検索部1730によって抽出された番組識別情報に対応した番組を読み出して、クラスタ検索部1730によって抽出された時間情報に含まれる推薦クラスタの再生開始時刻から番組を再生する(ステップS136)。
次に、拡大制御部1733は、ユーザによる推薦クラスタを拡大するための拡大指示が発行されたか否かを判断する(ステップS137)。なお、拡大指示は、キー1724により入力が受け付けられるとともに発行される。ここで、拡大指示が発行されたと判断された場合(ステップS137でYES)、拡大制御部1733は、ユーザから推薦クラスタの拡大指示を受けて、クラスタ検索部1730によって抽出された当該推薦クラスタの動画フレーム単位の座標情報に基づいて、番組の表示画像上から推薦クラスタを切り出して拡大表示を行う(ステップS138)。
推薦クラスタが拡大表示された後、又は、拡大指示が発行されていないと判断された場合(ステップS137でNO)、再生制御部1716は、選択された推薦クラスタを含む番組の再生処理が終了したか否かを判断する(ステップS139)。なお、再生制御部1716は、クラスタ検索部1730によって抽出された時間情報に含まれる推薦クラスタの再生終了時刻に達すると、自動的に番組の再生処理を終了する。ここで、番組の再生処理が終了していないと判断された場合(ステップS139でNO)、再生制御部1716は、再生処理を継続する。
一方、番組の再生処理が終了したと判断された場合(ステップS139でYES)、クラスタ検索部1730は、番組推薦サーバ9によって送信された推薦番組情報に含まれる全ての推薦クラスタの再生処理が終了したか否かを判断する(ステップS140)。なお、ステップS140において、クラスタ検索部1730は、受信した推薦番組情報に含まれる推薦クラスタの全てにおいてステップS133〜S139の処理が完了したか否かを判断する。
ここで、全ての推薦クラスタの再生処理が終了していないと判断された場合(ステップS140でNO)、ステップS133の処理に戻り、残りの推薦クラスタについての処理が行われる。一方、全ての推薦クラスタの再生処理が終了したと判断された場合(ステップS140でYES)、全ての処理を終了する。
一方、推薦番組情報が抽出されていないと判断された場合、すなわち、人気番組情報が抽出されたと判断された場合(ステップS132でNO)、クラスタ検索部1730は、推薦番組情報抽出部1729によって抽出された人気番組情報に含まれる番組識別情報に基づいて、記録媒体1715に当該番組識別情報と同じ番組識別情報を有する番組が記録されているか否かを判断する(ステップS141)。ここで、人気クラスタを含む番組が記録媒体1715に記録されていないと判断された場合(ステップS141でNO)、ステップS148の処理に移行する。
一方、人気クラスタを含む番組が記録されていると判断された場合(ステップS141でYES)、クラスタ検索部1730は、記録媒体1715から番組識別情報に対応する番組情報を呼び出すとともに、受信した人気番組情報に含まれる人気クラスタの番組内の時間情報と座標情報とを抽出し、推薦再生制御部1732に出力する。推薦再生制御部1732は、クラスタ検索部1730によって抽出された時間情報と座標情報とに基づいて人気クラスタのサムネイル画像をモニタ1711に表示させる(ステップS142)。
次に、推薦再生制御部1732は、ユーザによるサムネイル画像の選択及び再生指示が発行されたか否かを判断する(ステップS143)。ここで、サムネイル画像の再生指示が発行されていないと判断された場合(ステップS143でNO)、ステップS148の処理へ移行する。一方、再生指示が発行されたと判断された場合(ステップS143でYES)、再生制御部1716は、記録媒体1715から、クラスタ検索部1730によって抽出された番組識別情報に対応した番組を読み出して、クラスタ検索部1730によって抽出された時間情報に含まれる人気クラスタの再生開始時刻から番組を再生する(ステップS144)。
次に、拡大制御部1733は、ユーザによる人気クラスタを拡大するための拡大指示が発行されたか否かを判断する(ステップS145)。なお、拡大指示は、キー1724により入力が受け付けられるとともに発行される。ここで、拡大指示が発行されたと判断された場合(ステップS145でYES)、拡大制御部1733は、ユーザから人気クラスタの拡大指示を受けて、クラスタ検索部1730によって抽出された当該人気クラスタの動画フレーム単位の座標情報に基づいて、番組の表示画像上から人気クラスタを切り出して拡大表示を行う(ステップS146)。
人気クラスタが拡大表示された後、又は、拡大指示が発行されていないと判断された場合(ステップS145でNO)、再生制御部1716は、選択された人気クラスタを含む番組の再生処理が終了したか否かを判断する(ステップS147)。なお、再生制御部1716は、クラスタ検索部1730によって抽出された時間情報に含まれる人気クラスタの再生終了時刻に達すると、自動的に番組の再生処理を終了する。ここで、番組の再生処理が終了していないと判断された場合(ステップS147でNO)、再生制御部1716は、再生処理を継続する。
一方、番組の再生処理が終了したと判断された場合(ステップS147でYES)、クラスタ検索部1730は、番組推薦サーバ9によって送信された人気番組情報に含まれる全ての人気クラスタの再生処理が終了したか否かを判断する(ステップS148)。なお、ステップS148において、クラスタ検索部1730は、受信した人気番組情報に含まれる人気クラスタの全てにおいてステップS141〜S147の処理が完了したか否かを判断する。
ここで、全ての人気クラスタの再生処理が終了していないと判断された場合(ステップS148でNO)、ステップS141の処理に戻り、残りの人気クラスタについての処理が行われる。一方、全ての人気クラスタの再生処理が終了したと判断された場合(ステップS148でYES)、全ての処理を終了する。
以上のように、本実施形態の番組推薦システムを利用すれば、番組視聴端末8は、番組を空間的にクラスタに分割された放送番組を受信し、ユーザがポインティングデバイスによって選択したクラスタを番組推薦サーバ9に送信する。番組推薦サーバ9では、選択されたクラスタをユーザ毎に管理するとともに、選択されたクラスタに従ってユーザをグルーピングし、グループ内の協調フィルタリングによって、ユーザに推薦番組を提供することができる。
また、本実施形態の番組推薦システムでは、同一のクラスタを選択したユーザで構成されるコミュニティグループ内で特有の番組を推薦可能とするように、コミュニティグループを包含するグループ、例えば全ユーザからなるグループを作成して、全ユーザから嗜好されている一般的な人気番組の影響を、コミュニティグループ内で推薦される番組から削除することによってコミュニティグループ内で特有の番組の推薦が可能となる。一般的に人気のある番組は、このような推薦システムを利用することなくユーザは容易に知りえるので、コミュニティグループに特化した番組の推薦は有用である。また、一般的に人気のある番組の推薦方法は、公知の方法を用いて実現することができる。
なお、本実施形態では、ユーザによって選択されたクラスタを1つ送信する方法を説明しているが、本発明はこれに限られない。ユーザからのクラスタの選択履歴として複数のユーザクラスタ情報を番組推薦サーバ9に送信しても良い。この場合は、ユーザ毎のクラスタの選択履歴と、その他のユーザの選択履歴の一致度を見てユーザをグループ化する。例えば、送信されてきたクラスタの選択履歴に含まれる全クラスタを、選択履歴として有するユーザをグループ化する。また、この場合の選択履歴は、1つの特定番組内でのクラスタの選択履歴の類似度を判定してもよいし、例えば履歴が数個保持されたときに送信するようにしてもよい。このようにクラスタの選択履歴によるグルーピングによって、より嗜好の一致したグループ化が可能となるので、推薦する番組やクラスタの精度向上に繋がる。
なお、上記のクラスタの選択履歴を送信する形態は、前述の第1の実施形態及び第2の実施形態においても適用可能である。第1の実施形態であれば、番組視聴端末2は、番組の予約情報の履歴を送信して、番組推薦サーバ3は、送信されてきた番組の予約情報の履歴と類似する予約情報履歴を持ったユーザをグループ化する。この場合でも類似する予約情報は、履歴の完全一致でもいいし、送信される履歴情報の半数以上が合致したユーザをグループ化してもいい。また、第2の実施形態でも同様であり、番組視聴端末5は、マーキングされた番組シーンの履歴を複数、番組推薦サーバ6に送信し、番組推薦サーバ6は、マーキングされた番組の履歴の類似度によってユーザをグループ化する。
これら第1の実施形態や第2の実施形態の適用例においても、履歴情報の比較でユーザをグループ化できるため、より嗜好の一致したユーザのグループ化が可能となる。よって、グループ内で生成する推薦情報の精度の向上に繋がる。
また、全ての実施形態において、グループ内のユーザの番組への操作情報の集計を行って、グループ内における推薦番組を生成するが、送信されてくる履歴情報の類似度(履歴情報の重複度など)に応じた集計を行ってもよい。例えば、番組推薦サーバ6は、5つの履歴情報を受信して、5つとも履歴が合致するユーザに対して、3つの履歴しか合致しないユーザは、全て合致するユーザに対して5分の3の重み付けで集計を行う。このようにすれば、類似度に応じた重み付けによって集計が行われるので、より精度の高い推薦番組を抽出することが可能となる。
また、全ての実施形態で、番組推薦サーバにおいて、グループ化したユーザを全て包含するグループとして、全ユーザをグループ化する方法で説明したがこれに限られない。ユーザ情報として、性別や、年齢、住まいなどのユーザ属性情報を管理して、これらのユーザ属性情報に基づいて、コミュニティグループ(第1のグループ)を包含する全ユーザグループ(第2のグループ)を形成して、コミュニティグループ内の集計結果から、この全ユーザグループの集計結果を減算して推薦情報を生成してもよい。このようにすれば、例えば性別、年代、又は住所によって人気番組に偏りが生じている場合にでも、この影響を排除して、よりコミュニティグループ内に特化した推薦情報を作成することが可能となる。
なお、第1の実施形態では、予約を行ったユーザ数で予約率の正規化を行うとしていたが、例えば、ニュース番組のように放送頻度が高いジャンルの放送に関しては、放送頻度や放送時間で正規化を行ってもよい。
また、第2の実施形態で述べたマーキングに関して、例えば、スポーツ番組などのマーキングをつけられる頻度の高いジャンルの番組に対しては、マーキングの重み付けを軽くしてもよいし、ユーザによるマーキングをつける頻度の高さに応じて、マーキングの重み付けを変更してもよい。
また、全ての実施形態で、グループ内の集計を行う際に、推薦情報の信頼度が高いとされる特定のユーザの重み付けを重くして、集計を行っても良い。推薦情報の信頼度が高いとされるユーザは、ユーザの予約番組と、グループ内の推薦情報の一致度によって自動的に抽出されても良いし、他のユーザまたは番組推薦システムを管理する管理者等から人為的に選ばれても良い。
また、例えば大晦日などの特定の日や数年に1度のスポーツ大会の開催期間などは、予約率の集計対象から除外したり、重み付けの変更を行っても良い。
なお、第2の実施形態において、番組シーンのマーキング方法として、ボタン押下時間によるマーキング、番組シーンの開始時刻及び終了時刻の入力によるマーキング、番組シーンの開始時刻と継続時間とを指定するマーキング、シーンの終了時刻と継続時間とを指定するマーキングを挙げたが、これらに限定されるものではない。例えば、ユーザによるお気に入りシーンボタン押下時刻から所定時間戻った時間をお気に入りシーン開始時刻として番組シーンのマーキングを行ってもよく、お気に入りシーンボタン押下時刻から所定時間進んだ時間をお気に入りシーン終了時刻として番組シーンのマーキングを行ってもよい。
また、ユーザによるお気に入りシーンボタン押下時刻の直前および直後のシーンチェンジを自動的に検出し、これらのシーンチェンジをそれぞれお気に入りシーン開始時刻および終了時刻として、番組シーンのマーキングを行ってもよい。このようにすれば、お気に入りシーンをマーキングするユーザの負担を軽減することができる。なお、シーンチェンジの判定は、番組のフレームごとに抽出するヒストグラムの変化からシーンが変わったことを判定したり、画像認識により映し出される出演者の変化を判定したりする、映像ベースのシーンチェンジの判定や、音声のトーン変化、音量の変化、又は音声認識を利用した出演者の変化を判定する音声ベースのシーンチェンジの判定を用いる。
また、第2の実施形態において、ユーザ操作の種類に応じた重み付け加算によりマーキング情報を集計する方法について述べたが、操作の種類だけでなく操作の内容に応じて重み付け加算を行ってもよい。例えば、番組の録画予約操作に対しては、高画質モードや長時間モードといった録画画質の指定に応じて重み付けを変えてもよい。
なお、第1の実施形態におけるコミュニティ予約情報統計部236において、ユーザAが予め用意された複数のコミュニティグループの中から、参加するコミュニティグループをユーザ自身が選択し、このコミュニティグループを全体集合として、ユーザAが予約した番組との統計を計算してもよい。これによって、ユーザニーズにマッチしたコミュニティグループおよびユーザAが録画予約した番組と類似性が高いグループを生成することができる。
なお、第1の実施形態におけるコミュニティ予約情報統計部236において、ユーザAが所属するグループをユーザAが選択することもできる。これによって、番組推薦サーバは、ユーザA自身が選択したグループの嗜好およびユーザAが録画予約した番組と類似性が高い番組を推薦することが可能となる。
なお、ユーザはコミュニティグループの入会/脱会を選択することが可能となる。これによって、ユーザの嗜好が変わった場合や、その場のユーザの気分に合わせた番組推薦が可能となる。
なお、このコミュニティグループの選択においては、ユーザが選択可能なコミュニティグループの一覧を表示させることが望ましい。これによって、ユーザは簡易な手続きでコミュニティグループへの参加が可能となる。
なお、ユーザはコミュニティグループを検索できるようにしてもよい。これによってユーザは多数のコミュニティグループからユーザが望むコミュニティグループを捜し出すことができる。この検索における検索クエリはユーザの検索キーワードの入力による方法が望ましいが、その他の検索クエリ、例えば、カテゴリからの選択、画像情報、映像情報、音楽情報、及び音声などを検索クエリとする方法や、ユーザのジェスチャなどを利用しても同等の効果を得ることができる。
なお、ユーザのコミュニティグループ選択時において、過去にユーザが選択したことのある、コミュニティグループグループの履歴を表示しても良い。これによって、ユーザは過去に選択したことのあるコミュニティグループを容易に選択することができる。
なお、ユーザのコミュニティグループ選択時において、他のユーザが選択しているコミュニティグループのランキングを表示させてもよい。好ましくは他のユーザによって選択された数の多いコミュニティグループのランキングを表示させることが望ましい。これによって、より人気度の高いコミュニティグループをユーザは選択することができる。また、その他の例としては、他のユーザの選択度が急増したコミュニティグループのランキングを表示させても良い。これによって、瞬間的に人気が上がってきているコミュニティグループを選択することが可能となる。
なお、推薦番組作成部239における閾値判定基準を、ユーザが指定することがきるようにしてもよい。例えばユーザが閾値判定基準をあげることによって、よりグループ内での予約率が高い番組のみを推薦させることができる。反対に、閾値判定基準を下げることによってより多くの番組を推薦させることができる。
なお、全ての実施形態で、グループ内の集計を行う際に、ユーザの選択した番組に重み付けを行っても良い。例えば、ユーザが録画した番組の日時を保存しておき、時間が経過するにつれて重みが減少するような仕組みが考えられる。これによって、例えば、ある一定時期に特定の番組を多く録画予約していたユーザの嗜好が変わり、以前予約していた番組と嗜好が異なる番組を録画予約したときに、過去のユーザの録画した番組の嗜好の影響が小さくなり、より最近のユーザの嗜好にあった番組を推薦することが可能となる。
なお、全ての実施形態で、グループ内の集計を行う際に、ユーザが過去に録画した番組だけでなく、ユーザが録画せずに生で見た番組をグループの集計に利用しても良い。これによって、ユーザが選択した番組のサンプル数を増やすことが可能となるため、よりユーザの嗜好にマッチした番組を推薦することが可能となる。
なお、全ての実施形態における、録画方式において、ユーザの録画予約した番組と類似度の高い番組の一覧を表示し、その中からユーザが録画したい番組を選択するようにしても良い。これによって、例えば番組を記憶する記録媒体の容量に上限がある場合に、記録媒体の容量を節約することができる。
なお、この予約番組の選択において、他のユーザ全体の予約率や視聴率が高い、一般的な人気番組と、本発明で開示されたユーザの録画予約番組との嗜好度が近い推薦番組を同じ画面に表示させてもよいし、ユーザが一般的な人気番組と、嗜好度の高い推薦番組とのうちのいずれを表示するかを選択できる仕組みを取り入れても良い。これによって、ユーザは自身の嗜好に合致した番組だけでなく、所謂人気番組も容易に録画予約することが可能となる。
(第4の実施形態)
第4の本実施形態では、第1の実施形態で説明した図4に示す番組推薦サーバ3における特化生成部30において、tf・idf(term frequency・inverse document frequency)値を算出して、ユーザの予約番組情報群から推定されるユーザの属するコミュニティグループに特化した推薦番組を作成する方法について説明する。
tf・idf値は、番組の予約番組情報の出現頻度から重み付けする手法であり、tfは、対象となるコミュニティグループにおける特定の予約番組情報の出現頻度を表し、idfは、全ユーザの予約番組情報の中で特定番組の予約番組情報が含まれているユーザの数の逆数を表す。もし、ある予約番組情報が一つのコミュニティグループ内に頻出するものであり、その予約番組情報が出現するユーザ数がわずかな場合であれば、それはtf・idf値が高く、コミュニティグループの特徴的な予約番組情報と言える。そこで、この特徴的な予約番組情報をコミュニティグループに特化した推薦番組として生成する。
tf・idf値を利用して推薦番組を生成する第4の実施形態の構成は、図4の番組推薦サーバ3の特化生成部30と同様の構成であり、コミュニティ予約情報統計部236、全ユーザ予約情報統計部237およびコミュニティ特化部238で構成される。
コミュニティ予約情報統計部236は、tf・idf値のtfを算出し、コミュニティグループ内で出現頻度の高い予約番組情報を抽出する。実際には、コミュニティ予約情報統計部236は、コミュニティグループに属するユーザ毎に保持している予約番組情報群から、1つ1つの予約番組情報ごとに、コミュニティグループ内でカウントアップし、出現頻度の高い予約番組情報を抽出し、出現頻度をtfとして算出する。
図30は、第4の実施形態に係るコミュニティ予約情報統計部236の処理の流れを示すフローチャートである。
まず、コミュニティ予約情報統計部236は、ユーザ管理部231によって認証されたユーザ(認証ユーザ)が属するコミュニティグループにおける全てのユーザの予約番組情報を予約情報DB235から取得する(ステップS161)。ここで取得する予約番組情報は、ユーザ管理部231でユーザ情報が認証されたユーザと同じコミュニティグループに属するユーザが送信した予約番組情報、すなわち認証ユーザのコミュニティグループ内で予約された番組の予約番組情報である。
次に、コミュニティ予約情報統計部236は、認証ユーザの属するコミュニティグループ内の全ての予約番組情報の総数を取得する(ステップS162)。次に、コミュニティ予約情報統計部236は、1つ1つの予約番組情報ごとに、コミュニティグループ内での予約数をカウントする(ステップS163)。
次に、コミュニティ予約情報統計部236は、認証ユーザの属するコミュニティグループにおける各予約番組情報の出現頻度tfを算出する(ステップS164)。具体的に、コミュニティ予約情報統計部236は、コミュニティグループにおける予約番組情報の数を、コミュニティグループにおける全ての予約番組情報の総数で除算することにより、予約番組情報の出現頻度tfを算出する。
次に、コミュニティ予約情報統計部236は、コミュニティグループ内の全ての予約番組情報の出現頻度tfを算出したか否かを判断する(ステップS165)。ここで、全ての予約番組情報の出現頻度tfを算出していないと判断された場合(ステップS165でNO)、コミュニティ予約情報統計部236は、ステップS163の処理へ戻り、コミュニティグループ内の他の予約番組情報の予約数をカウントする。
一方、全ての予約番組情報の出現頻度tfを算出したと判断された場合(ステップS165でYES)、コミュニティ予約情報統計部236は、認証ユーザが属する全てのコミュニティグループの予約番組情報の出現頻度tfを算出したか否かを判断する(ステップS166)。すなわち、認証ユーザが複数のコミュニティグループに所属している場合は、認証ユーザが所属する全てのコミュニティグループについて、予約番組情報の出現頻度tfを算出する。
ここで、全てのコミュニティグループの予約番組情報の出現頻度tfを算出していないと判断された場合(ステップS166でNO)、コミュニティ予約情報統計部236は、ステップS161の処理へ戻り、認証ユーザが属する他のコミュニティグループにおける全てのユーザの予約番組情報を予約情報DB235から取得する。一方、全てのコミュニティグループの予約番組情報の出現頻度tfを算出したと判断された場合(ステップS166でYES)、処理を終了する。
全ユーザ予約情報統計部237は、tf・idf値のidfを算出し、予約情報DB235に登録されている全ユーザの予約番組情報の中で、コミュニティグループ内の全予約番組情報の1つ1つの出現頻度を算出する。コミュニティグループ内の予約番組情報が、全ユーザの予約番組情報においても出現頻度が高い場合には、idfは小さくなり、コミュニティグループに代表される予約番組情報ではないと判定される。一方、コミュニティグループ内の予約番組情報が、全ユーザの予約番組情報においても出現頻度が低い場合には、idfは大きくなり、コミュニティグループに代表される予約番組情報であると判定される。
実際には、全ユーザ予約情報統計部237は、ある特定の予約番組情報kについて、log((全ユーザ数)÷(予約番組情報kを有するユーザ数))+1によってidfを算出する。
図31は、第4の実施形態に係る全ユーザ予約情報統計部237の処理の流れを示すフローチャートである。
まず、全ユーザ予約情報統計部237は、ユーザ管理部231及び予約情報登録部234を介してユーザ属性DB232に登録されているユーザの総数を取得する(ステップS171)。次に、全ユーザ予約情報統計部237は、認証ユーザのコミュニティグループ内の各予約番組情報について、予約を行ったユーザ数をカウントする(ステップS172)。
次に、全ユーザ予約情報統計部237は、認証ユーザの属するコミュニティグループにおける各予約番組情報のidfを算出する(ステップS173)。具体的に、全ユーザ予約情報統計部237は、下記の(1)式に基づいて各予約番組情報のidfを算出する。
idf=log((全ユーザ数)÷(各予約番組情報を有するユーザ数))+1・・・
(1)
次に、全ユーザ予約情報統計部237は、コミュニティグループ内の全ての予約番組情報についてidfを算出したか否かを判断する(ステップS174)。ここで、全ての予約番組情報のidfを算出していないと判断された場合(ステップS174でNO)、全ユーザ予約情報統計部237は、ステップS172の処理へ戻り、コミュニティグループ内の他の予約番組情報について、予約を行ったユーザ数をカウントする。一方、全ての予約番組情報のidfを算出したと判断された場合(ステップS174でYES)、処理を終了する。
なお、本実施形態では、全ユーザ数と、各予約番組情報を有するユーザ数とを用いてidfを算出しているが、本発明は特にこれに限定されず、全コミュニティグループ数と、各予約番組情報を有するコミュニティグループ数とを用いてidfを算出してもよい。
コミュニティ特化部238は、コミュニティ予約情報統計部236によって算出された出現頻度tfと、全ユーザ予約情報統計部237によって算出されたidfとに基づき、コミュニティグループ内の全ユーザの予約番組情報ごとにtf・idf値を算出して、推薦番組作成部239に出力する。なお、tf・idf値は、tf×idfで算出される。
推薦番組作成部239は、tf・idf値が高く、かつ、推薦を行うユーザが未だ予約していない推薦対象の番組を、推薦番組として抽出する。したがって、コミュニティグループ内で出現頻度が高く、全ユーザで出現頻度の高くない、すなわちidfが大きい番組で、かつ、推薦を行うユーザが未だ予約を行っていない番組が推薦される。これによって、ユーザには、コミュニティグループに特化した、すなわち、ユーザの嗜好にマッチしていると考えられる番組が推薦される。
図32は、第4の実施形態に係るコミュニティ特化部238の処理の流れを示すフローチャートである。
まず、コミュニティ特化部238は、認証ユーザが属するコミュニティグループ内の予約番組情報について、コミュニティ予約情報統計部236で取得したtfと、全ユーザ予約情報統計部237で取得したidfとを用いて、tf・idf値を算出する(ステップS181)。
次に、コミュニティ特化部238は、認証ユーザが属するコミュニティグループ内の全ての予約番組情報のtf・idf値を算出したか否かを判断する(ステップS182)。ここで、全ての予約番組情報のtf・idf値を算出していないと判断された場合(ステップS182でNO)、コミュニティ特化部238は、ステップS181の処理へ戻り、認証ユーザが属するコミュニティグループ内の他の予約番組情報のtf・idf値を算出する。
一方、全ての予約番組情報のtf・idf値を算出したと判断された場合(ステップS182でYES)、コミュニティ特化部238は、推薦対象となる番組を判定するための推薦閾値を求める。この推薦閾値としては、例えば、コミュニティグループ内の予約番組情報におけるtf・idf値の平均値といった、容易に計算可能な値が好ましい。そのため、コミュニティ特化部238は、コミュニティグループ内における全ての予約番組情報のtf・idf値の平均値を算出する(ステップS183)。
次に、コミュニティ特化部238は、推薦閾値(平均値)以上のtf・idf値を持つ予約番組情報を推薦対象予約番組情報として抽出する。次に、コミュニティ特化部238は、推薦対象予約番組情報の中に認証ユーザが予約していない予約番組情報があるか否かを判断する(ステップS185)。ここで、認証ユーザが予約していない予約番組情報はないと判断された場合(ステップS185でNO)、処理を終了する。
一方、認証ユーザが予約していない予約番組情報があると判断された場合(ステップS185でYES)、コミュニティ特化部238は、認証ユーザが未予約の予約番組情報の中から、tf・idf値が高いものから順に所定数の予約番組情報を推薦番組として抽出し、当該推薦番組を識別するための番組識別情報を含む推薦番組情報を作成する(ステップS186)。
ここで、tf・idf値を用いた推薦番組の抽出の一例を、図33を用いてさらに具体的に説明する。図33は、tf・idf値を用いた推薦番組の抽出について説明するための図である。図33に示す表301中の横軸は、予約された番組α〜ζを表し、縦軸は、コミュニティグループc1〜c4と、各コミュニティグループに所属するユーザA〜Pを表している。表301中の丸印は、ユーザがどの番組を予約したか示すものである。ここで、ユーザAは、ユーザ管理部231でユーザ情報を認証された認証ユーザである。
まず、コミュニティ予約情報統計部236は、ユーザAが所属するコミュニティグループc1及びc2において、各予約番組情報のtfを算出する。例えば、コミュニティグループc1内の予約番組情報の総数は11件であり、番組αはユーザA及びCによって2件の予約が行われているので、コミュニティグループc1における番組αのtfは2/11=0.18となる。同様にして、コミュニティ予約情報統計部236は、コミュニティグループc1及びc2内の全ての予約番組情報のtfを算出する。
次に、全ユーザ予約情報統計部237は、コミュニティグループc1及びc2において、各予約番組情報(番組α〜ζ)のidfを算出する。例えば、番組αは、ユーザA〜Pの全15名のユーザの内、11名のユーザによって予約が行われているので、番組αのidfは、log(15/11)+1=1.13となる。同様にして、全ユーザ予約情報統計部237は、他の予約番組情報についてもidfを算出する。
さらに、コミュニティ特化部238は、tf・idf値を求め、このtf・idf値を基に推薦番組を抽出する。tf・idf値は、コミュニティグループc1及びc2のそれぞれの予約番組情報について算出する。例えば、コミュニティグループc1の番組αのtf・idf値は、2÷11×(log(15/11)+1)=0.20となる。コミュニティ特化部238は、他の番組についても同様にtf・idf値を算出する。そして、コミュニティ特化部238は、算出した10個のtf・idf値の平均値を算出し、この平均値以上のtf・idf値を持つ予約番組情報を推薦対象予約番組情報とする。
図33の一例では、コミュニティグループc1における番組β及び番組δが推薦対象予約番組となり、コミュニティグループc2における番組α、番組δ及び番組εが推薦対象予約番組となる。ここで、番組α及び番組δは、tf・idf値が平均値よりも高いが、ユーザAがすでに予約を行っている番組であるので、残りの番組の内の番組β及び番組εが推薦対象予約番組として抽出される。このとき、番組βのtf・idf値は番組εのtf・idf値よりも大きいので、番組βが1番に推薦され、番組εが2番目に推薦される。
なお、本実施形態では、認証ユーザが属するコミュニティグループに特徴的な予約番組情報を、ユーザ属性DB232に登録されている全てのユーザに対して抽出しているが、全ユーザではなく所定の複数コミュニティグループに所属するユーザに対して予約番組情報を抽出してもよい。この所定の複数コミュニティグループは、例えば以下のような方法により設定することができる。
まず、認証ユーザに最初の番組推薦を行う際は、本実施形態で説明したとおり全ユーザ数を用いてidf値を求める。次に、初回の処理で推薦された番組のコミュニティ予約率(コミュニティグループ内の推薦番組の予約数÷そのコミュニティグループ内のユーザ数)が所定の閾値(例えば0.5)以上であるコミュニティグループを近傍コミュニティグループとする。
認証ユーザに推薦した番組の予約率が高いコミュニティグループは、認証ユーザの所属するコミュニティグループに番組予約傾向が類似しているコミュニティグループ(近傍コミュニティグループ)と言える。二回目以降の番組推薦を行う際には、この近傍コミュニティグループおよび認証ユーザが所属するコミュニティグループのユーザ総数を用いてidf値を求める。すなわち、予約番組情報kのidf値は、下記の(3)式に基づいて算出される。
idf=log((近傍コミュニティグループのユーザ数+認証ユーザが所属するコミュニティグループのユーザ数)÷予約番組情報kが出現するユーザ数)+1・・・(3)
図33で説明した一例では、認証ユーザAに番組βが(1位で)推薦されている。ここで、図34に示すように、認証ユーザAが所属していないコミュニティグループc3とc4とにおける推薦番組βのコミュニティ予約率は、それぞれ0.5と0.3となり、コミュニティ予約率の閾値(0.5)以上であるコミュニティグループc3が近傍コミュニティグループとなる。
したがって、二回目以降の番組推薦処理においては、認証ユーザAが所属するコミュニティグループc1,c2及び近傍コミュニティグループc3の3つのコミュニティグループのユーザ総数12名を用いて、予約番組情報kのidf値をlog(12÷予約番組情報kが出現するユーザ数)+1と算出する。
このように、全ユーザではなく近傍コミュニティグループに所属するユーザに限定してidfを求めて番組推薦を行うことで、よりコミュニティグループに特化した番組を推薦することができる。また、二回目以降の番組推薦処理にかかる計算負荷を、初回の計算負荷よりも小さくすることができる。
さらに、番組推薦処理を繰り返し行っていく際に、定期的に初回の番組推薦と同様の処理を行うことで、近傍コミュニティグループを更新する構成としてもよい。このようにすれば、コミュニティグループの番組予約傾向が時間経過とともに変化する場合でも、コミュニティグループに特化した番組推薦を行うことができる。
なお、この近傍コミュニティグループは、比較的嗜好が近いコミュニティグループと判断することができる。このため、ユーザに近傍コミュニティグループへの加入を推薦する仕組みを持たせることも可能である。これによって、ユーザは自分の嗜好に近いコミュニティグループを発見しやすくなるという効果が期待できる。
なお、本実施形態では、番組の推薦閾値としてtf・idf値の平均値を用いたが、これに限定されない。例えば、tf・idf値のばらつきが大きい傾向がある場合には、相乗平均や中央値を推薦閾値として用いることで、ユーザが納得する番組推薦を高精度に行うことができる。
また、本実施形態では、コミュニティ特化部238は、推薦対象予約番組情報と認証ユーザの予約済みの予約番組情報との比較を行っているが、コミュニティ予約情報統計部236及び全ユーザ予約情報統計部237で、処理の対象となる予約番組情報と認証ユーザの予約番組情報との比較を行い、認証ユーザの予約番組情報を処理の対象から除外する構成としてもよい。このような構成にすることで、コミュニティ予約情報統計部236及び全ユーザ予約情報統計部237における処理対象予約番組情報が少なくなり、計算処理量を減らすことが可能となる。
なお、本実施形態では、番組の予約番組情報からtf・idf値を算出する例に関して述べたが、番組の予約番組情報以外の情報を用いてtf・idf値を算出してもよい。例えば、ユーザの作成したブログや日記などのコンテンツのタイトルやコンテンツ内に出現する単語などからtf・idf値を算出し、tf・idf値が高い単語をコミュニティグループに代表される単語として、その単語が番組情報のタイトルや詳細情報(EPGから得られる情報や番組に関連付けられたタグなど)に含まれる番組を推薦しても良い。
また、コミュニティグループに代表される番組情報や単語をコミュニティグループの詳細情報として関連付けを行なっても良い。そうすることにより、コミュニティグループを検索する際のタグ情報として使用することが可能になったり、コミュニティグループ名を表示する際に同時に一覧を出力することで、ユーザがコミュニティグループを選択する際によりユーザの嗜好に合ったコミュニティグループを選択しやすくするという効果が得られる。