以下、図を参照して、本発明の実施の形態について説明する。
図1を用いて、テレビジョン番組放送、およびストリームデータの配信について説明する。
放送局1は、地上波の番組放送を送信するか、もしくは、衛星2を介して衛星波の番組放送を送信する。図1においては、放送局1を1つだけ図示して説明しているが、放送局1が、複数存在することは言うまでもない。テレビジョン受信装置4のアンテナ3は、地上波、または衛星波の番組放送を受信する。放送信号には、必要に応じて、EPG(Electronic Program Guide)が含まれている。
配信サーバ5は、ストリーミングデータデータベース6から、ストリーミングデータを読み出し、インターネットその他のネットワークを含むネットワーク8を介して、テレビジョン受信装置4に配信するとともに、メタデータデータベース7から、放送局1から放送される番組に関する情報であるEPG、あるいは、EPGよりも詳細な情報を含むメタデータを読み出して、番組ごとに、番組ベクトルPPを生成し、EPGデータとともに、ネットワーク8を介して、EPG受信装置9に配信する。
一般的な放送信号に重畳されるEPGの情報量が、以下に説明する処理に十分な情報である場合、処理には、一般的な放送信号に重畳されるEPGと同一のものを利用するようにしても良い。また、一般的な放送信号に重畳されるEPGの情報量が、以下に説明する処理に十分な情報であるとはいえない場合、処理には、一般的な放送信号に重畳されるEPGに加えて、もしくは単独で、メタデータを利用するようにしても良い。以下、一般的な放送信号に重畳されるEPGでは、処理に十分な情報量がないため、本実施の形態では、メタデータを含む情報を利用するものとし、この情報を、EPGデータと総称するものとする。
EPG受信装置9は、配信されたEPGデータを、テレビジョン受信装置4に供給する。また、EPG受信装置9は、EPGデータとともに配信された番組ベクトルPPを、番組推薦処理装置10に供給する。
チューナを有するテレビジョン受信装置4は、操作部を有するテレビジョン表示装置11、または、録画再生装置12から供給されるチャンネルの選択を示す制御信号に基づいて、アンテナ3を介して、地上波、または衛星波の放送信号を選局して受信するとともに、ネットワーク8を介して、配信サーバ5から、ストリーミングデータの配信を受ける。また、テレビジョン受信装置4は、EPG受信装置9から、EPGデータの供給を受け、テレビジョン表示装置11、または、録画再生装置12に供給する。なお、テレビジョン受信装置4は、受信した放送波に、EPGが含まれていた場合、番組の信号と分離して、それぞれ、テレビジョン表示装置11、または、録画再生装置12に供給する。
番組推薦処理装置10は、EPG受信装置9から、番組ベクトルPPを取得するとともに、テレビジョン表示装置11および録画再生装置12から、操作ログを取得し、これらの情報、または、ユーザの操作入力を基に、ユーザの嗜好に合致した番組を推薦するための推薦情報を生成し、テレビジョン表示装置11および録画再生装置12に供給する。
テレビジョン表示装置11は、ユーザの操作入力を基に、テレビジョン受信装置4から供給された放送信号、または、録画再生装置12から供給された再生信号を表示したり、番組推薦処理装置10から供給された推薦情報を基に、チャンネルを自動設定したり、推薦番組情報を表示する。テレビジョン表示装置11は、ユーザの操作履歴である操作ログを番組推薦処理装置10に供給する。
録画再生装置12は、ユーザの操作入力を基に、テレビジョン受信装置4から供給された放送信号を、装着された記録媒体、または、内蔵する記録媒体(例えば、ハードディスク)に録画したり、番組推薦処理装置10から供給された推薦情報を基に、テレビジョン受信装置4から供給された放送信号を、装着された記録媒体、または、内蔵する記録媒体に自動録画する。また、録画再生装置12は、装着された記録媒体、または、内蔵する記録媒体に録画されている番組を再生し、テレビジョン表示装置11に出力して表示させる。更に、録画再生装置12は、ユーザの操作履歴である操作ログを番組推薦処理装置10に供給する。
ここでは、EPG受信装置9、テレビジョン受信装置4、番組推薦処理装置10、テレビジョン表示装置11、および、録画再生装置12を、それぞれ異なる装置として説明したが、これらの装置は、個別に構成されなくてもよい。例えば、EPG受信装置9、テレビジョン受信装置4、および、テレビジョン表示装置11を、チューナ機能を内蔵したテレビジョン受像機15−1として、一体的に構成するようにしても良いことは、言うまでもない。更に、録画再生装置12も一体的に構成して、録画機能を有するテレビジョン受像機15−2として構成するようにしても良い。この録画再生装置12は、記録媒体として、大容量のハードディスクを有する、いわゆるハードディスクレコーダであってもよいことは言うまでもない。また、番組推薦処理装置10を、チューナ機能を内蔵したテレビジョン受像機15−1に内蔵して、テレビジョン受像機15−3としても、または、録画機能を有するテレビジョン受像機15−2に内蔵して、テレビジョン受像機15−4とするようにしても良い。
図2は、配信サーバ5の構成を示すブロック図である。
データ取得部21は、メタデータデータベース7およびストリーミングデータデータベース6からデータを取得し、データ送信部25に供給するとともに、EPGデータを、メタデータ抽出部22に供給する。また、データ取得部21は、メタデータデータベース7に登録されているEPGデータを、その内容により、グループ化する処理を実行する。
メタデータ抽出部22は、データ取得部21から供給されたEPGデータから、番組ベクトルPPを生成するために必要なデータを抽出し、番組ベクトル生成部23に供給する。番組ベクトル生成部23は、メタデータを基に、番組ベクトルPPを生成し、必要に応じて、データ記憶部24に記憶されている番組側効き目ベクトルEfPPを対応付けて、データ送信部25に供給する。
データ記憶部24は、番組ベクトルPPを生成する場合に必要な情報である番組側効き目ベクトルEfPPを、必要に応じて記憶する。
いかに視聴率を稼ぐかという制作側、放送側の観点に基づいて、例えば、教養系番組においては、ジャンルや内容の要素が強いという特性、バラエティ番組などにおいては、出演者の要素が強いという特性、ドラマなどにおいては、出演者および脚本家の要素が強いという特性がある。番組の特徴を正しく抽出するためには、これらの特性を利用する必要がある。すなわち、番組ベクトルPPを構成する要素のうち、ユーザの嗜好に合致した番組を推薦するために実行されるマッチング処理において、どの要素が重要であるかは、番組のジャンルによって異なる。
すなわち、番組のジャンルが「教養・ドキュメント」である場合、重要な項目は、出演者ではなく、その内容や題名である。これに対して、番組のジャンルが「バラエティ」のとき、重要な項目は出演者であり、番組のジャンルが「ドラマ」であるとき、重要な項目は、出演者と脚本家である。これらを番組ベクトルPPの生成に利用する場合、番組のジャンル別に、項目ごとの、マッチング処理における寄与の度合いを規定する番組側効き目ベクトルが設定され、データ記憶部24に記憶される。
データ送信部25は、データ取得部21から供給された、EPGデータおよびストリーミングデータ、並びに、番組ベクトル生成部23から供給された番組ベクトルPP、および、番組側効き目ベクトルEfPPを、ネットワーク8を介して、EPG受信装置9、または、テレビジョン受信装置4に送信する。
また、番組ベクトル生成部23には、必要に応じて、ドライブ26が接続される。ドライブ26には、必要に応じて、磁気ディスク31、光ディスク32、光磁気ディスク33、および半導体メモリ34が装着され、データの授受を行う。
次に、図3のフローチャートを参照して、配信サーバ5が実行する番組ベクトル生成処理1について説明する。
ステップS1において、データ取得部21は、メタデータデータベース7から、メタデータで構成されているEPGデータの供給を受ける。
ステップS2において、メタデータ抽出部22は、データ取得部21からEPGデータの供給を受け、番組ベクトルPPを生成するために必要なメタデータを抽出し、番組ベクトル生成部23に出力する。
図4に、メタデータの例を示す。メタデータには、例えば、ジャンルとして「映画−邦画」、映画の題名として「東海道三谷怪談」、放送された年月日および配給元のデータ、放送の日時、放送する放送局名、並びに、放送時刻などが含まれている。更に、メタデータには、監督名、脚本家名、撮影者(カメラマン)、音楽担当者、出演者などのデータ、および、この番組の内容として、映画の解説などが含まれている。
ステップS3において、番組ベクトル生成部23は、メタデータに含まれている、タイトル、内容などを、必要に応じて形態素解析し、単語に分解する。具体的には、番組ベクトル生成部23は、メタデータに含まれている映画の題名をタイトルとして、「東海道」、「三谷」、「怪談」の3つの単語に分解する。また、番組ベクトル生成部23は、メタデータに、映画の解説として、図4に示されるように、「'59西宝 様式美たっぷりに有名な“三谷怪談”の世界を描く邦画ホラーの傑作。」という情報が含まれていた場合、解説に含まれている単語を抽出して、「西宝」、「様式」、「美」、「たっぷり」、「有名」、「三谷」、「怪談」、「世界」、「描く」、「邦画」、「ホラー」、「傑作」を内容情報とする。
ステップS4において、番組ベクトル生成部23は、メタデータに含まれているそれぞれの項目をベクトル化し、番組ベクトルPPが生成されて、処理が終了される。生成された番組ベクトルPPは、データ送信部25に出力されて、ネットワーク8を介して、EPG受信装置9に送信される。項目のベクトル化は、全ての詳細要素を1列として並べるようにしても良いし、大項目に分離した後に、大項目ごとにベクトル化するようにしても良い。
大項目別にベクトル化が行われる場合、例えば、図5に示されるように、大項目を、タイトル、ジャンル、時間帯、放送局、出演者、脚本/原作/演出、内容の7項目として、番組ベクトルPP=(Tm,Gm,Pm,Am,Km)が生成される。そして、各項目の内容が、タイトル(Title)Tm={title1,title2,・・・}、ジャンル(Genre)Gm={ドラマ,バラエティ,スポーツ,映画,音楽,子供向け/教育,教養/ドキュメント,ニュース/報道,その他}、時間帯(Hour)Hm={朝,昼,夕方,ゴールデン,深夜}、放送局(TV Station) Sm={NNK総合,NNK教育,亜細亜テレビ,TTS,ブジ,テレ日,東都,NNK衛星第1,NNK衛星第2,WOWO}、出演者(Person)Pm={person A,person B,・・・}脚本/原作/演出等(Author)Am={person a,person b,・・・}内容(Keyword)Km={kw1,kw2,・・・}として、ベクトル化される。
上述した7つの大項目の中で、大項目「ジャンル」、「放送局」、「時間帯」は、種類が固定できるため、詳細要素をそれぞれ数値ベクトルで表すことができる。放送局の場合、例えば、放送局Sm={NNK総合,NNK教育,亜細亜テレビ,TTS,ブジ,テレ日,東都,NNK衛星第1,NNK衛星第2,WOWO}において、対応する番組の放送局がWOWOである場合、放送局ベクトルは、放送局Sm={0,0,0,0,0,0,0,0,0,1}で表すことができる。ジャンルの場合、例えば、ジャンルGm={ドラマ,バラエティ,スポーツ,映画,音楽,子供向け/教育,教養/ドキュメント,ニュース/報道,その他}において、対応する番組のジャンルが、教養/ドキュメントであった場合、ジャンルベクトルは、ジャンルGm={0,0,0,0,0,0,1,0,0}で表すことができる。
一方、大項目「タイトル」、「出演者」、「脚本/原作/演出」、「内容」などの、数値ベクトルで表すことのできない項目においては、ベクトルに含まれる単語の頻度などによって、項目値(単語)と重み(数値)が対応付けられる。例えば、大項目「タイトル」は、タイトルTm={東海道−1,三谷−1,怪談−1}のように、それぞれ、単語−数値で構成される要素によって表される。この例における、例えば、「東海道−1」は、「東海道」の単語の頻度が「1であることを意味する。
このような処理により、番組ベクトルPPが生成されて、EPG受信装置9に送信される。具体的には、図4を用いて説明した番組メタデータから番組ベクトルPPが生成された場合、番組ベクトルPP={タイトルTm={東海道−1,三谷−1,怪談−1}、ジャンルGm={0,0,0,1,0,0,0,0,0}、時間帯Hm={0,0,0,0,1}、放送局Sm={0,0,0,0,0,0,0,0,0,1}、出演者Pm={若杉嘉津美−1,天海茂−1,江見俊彦−1,中村竜二郎−1,西沢典子−1}、脚本/原作/演出Am={中川信男−1,大貫正一−1,石田義寛−1,西本正二−1,渡辺宙太−1}、内容Km={西宝−1,様式−1,美−1,たっぷり−1,有名−1,三谷−1,怪談−1,世界−1,描く−1,邦画−1,ホラー−1,傑作−1}}が生成されて、EPG受信装置9に送信される。
このように生成される番組ベクトルPPにおいて、例えば、出演者Pmの構成要素のうち、主演を重み付けしたり、脚本/原作/演出Amの構成要素のうち、監督を重み付けして、番組ベクトルPPを生成するようにしても良い。このような場合、番組ベクトルPPの構成要素は、例えば、出演者Pm={若杉嘉津美−3,天海茂−2,江見俊彦−1,中村竜二郎−1,西沢典子−1}、脚本/原作/演出Am={中川信男−3,大貫正一−1,石田義寛−1,西本正二−1,渡辺宙太−1}となる。
また、番組ベクトルPPを生成するために、どの要素が重要であるかは、上述したように、番組のジャンルによって異なる。ジャンルごとにどのような要素が重要であるかを示した番組側効き目ベクトルEfPPが、番組側効き目ベクトル情報として、データ記憶部24に記憶されている場合、番組側効き目ベクトルEfPPを、番組ベクトルPPに対応付けて送信するようにしても良い。番組側効き目ベクトルEfPPは、番組ベクトルPPの大項目に対応して設定される。
番組ベクトルPP={タイトルTm,ジャンルGm,時間帯Hm,放送局Sm,出演者Pm,脚本/原作/演出Am,内容Km}において、例えば、番組のジャンルが「教養/ドキュメント」である場合、重要な項目は、その内容や題名(重み付け値が3の場合)であるので、番組側効き目ベクトルEfPP={3,1,1,1,1,1,3}となる。これに対して、番組のジャンルが「バラエティ」のとき、重要な項目は出演者(重み付け値が5の場合)であるので、番組側効き目ベクトルEfPP={1,1,1,1,5,1,1}となる。また、番組のジャンルが「ドラマ」であるとき、重要な項目は、出演者(重み付け値が2の場合)と脚本家であり、特に脚本家が重要(重み付け値が3の場合)である場合、番組側効き目ベクトルEfPP={1,1,1,1,2,3,1}となる。
次に、図6のフローチャートを参照して、番組側効き目ベクトルEfPPが、番組ベクトルPPに対応付けて送信される場合の、番組ベクトル生成処理2について説明する。
ステップS11乃至ステップS14において、図3を用いて説明したステップS1乃至ステップS4の処理と同様の処理が実行される。すなわち、メタデータデータベース7から、EPGデータの供給を受け、EPGデータから、番組ベクトルPPを生成するために必要なメタデータが抽出され、メタデータに含まれている、タイトル、内容などが、必要に応じて形態素解析されて、単語に分解される。そして、メタデータに含まれているそれぞれの項目がベクトル化されて、番組ベクトルPPが生成される。
ステップS15において、番組ベクトル生成部23は、供給されたメタデータの番組のジャンルに基づいて、対応する効き目ベクトルを、データ記憶部24に記憶されている効き目ベクトル情報から抽出する。例えば、番組のジャンルが「バラエティ」のとき、データ記憶部24から、出演者に対する重み付けを行う効き目ベクトルEfPP={1,1,1,1,5,1,1}が抽出される。
ステップS16において、番組ベクトル生成部23は、ステップS15において抽出された効き目ベクトルEfPPを、ステップS14において生成された番組ベクトルPPと対応付けて、処理が終了される。
このような処理により、番組ベクトルPPが生成されて、番組のジャンルに基づいて、重要な項目に重み付けを施すための番組側効き目ベクトルEfPPが対応付けられて、ネットワーク8を介して、EPG受信装置9に送信される。
以上説明したようにして、番組ベクトルPPが生成されるが、例えば、番組をその属性ごとにグループ化することにより、番組ベクトルPPを、少ない演算量で、正確に作成するようにすることができる。
番組のグループ化は、例えば、連続ドラマ、1週単位の同一ジャンルの番組群、番組編成単位(13週)の出演者ごとの番組群などで生成できるが、その具体例として、次の図7のフローチャートを参照して、連続ドラマをグループ化する場合のグループ化処理1について説明する。
ステップS31において、データ取得部21は、メタデータデータベース7に登録されているEPGデータから、例えば、同一タイトル、同一放送局で、放送時刻が平日の同時刻や、同じ曜日の同時刻であるなどの所定の条件(グループ化のための条件)に合致した番組を抽出する。
ステップS32において、データ取得部21は、抽出された番組をグループ化し、対応する番組のEPGデータにグループIDをつける。
ステップS33において、メタデータ抽出部22は、同一グループIDを有する、すなわち、連続ドラマであると認識された番組の第1回目の放送の番組ベクトル生成に必要なメタデータを抽出する。
ステップS34において、図3または図6を用いて説明した番組ベクトル生成処理が実行される。
ステップS35において、番組ベクトル生成部23は、対応するグループIDの番組ベクトルPPを、第1回の放送分の番組ベクトルに固定して設定し、処理が終了される。
このような処理により、連続ドラマがグループ化されて、番組ベクトルが統一される。また、グループIDと番組ベクトルPPとを、対応付けて、データ記憶部24に記憶しておくようにしても良い。
特に、連続ドラマのEPGデータにおいて、初回の内容は、番組全体の解説になっているが、初回以外の内容は、その回の分の解説となっていることが多く、番組全体の内容を表してはいない。また、内容以外の部分のメタデータは毎回ほぼ同じであることから、初回分のEPGデータを採用して番組ベクトルPPを生成することにより、番組ベクトル生成処理の処理回数を減少することができるのみならず、より正確に番組の特性と合致した番組ベクトルPPを生成することが可能になる。
図7においては、連続ドラマのEPGデータに同一のIDを付加する処理について説明したが、EPGデータに、連続ドラマを区別する情報が予め含まれている場合、ステップS31の処理を省略して、EPGデータに含まれている連続ドラマを区別する情報を参照して、連続ドラマのEPGに同一のIDを付加するようにしても良い。
次に、図8のフローチャートを参照して、連続ドラマ以外の要素によってもグループ化を行うことができるグループ化処理2について説明する。ここでは、ジャンルおよび出演者によるグループ化を行うものとして説明する。
ステップS51において、データ取得部21は、メタデータデータベース7に登録されているEPGデータを参照して、番組のEPGデータに、メタデータの内容に対応したクラスタコードを付加する。
例えば、同一タイトル、同一放送局で、放送時刻が平日の同時刻や、同じ曜日の同時刻であるなどの、連続ドラマである条件に合致した番組を抽出し、抽出された、連続ドラマであると認識される番組群の中で、例えば、連続ドラマの放送時刻によって、平日の同時刻であればコード1、同じ曜日の同時刻であればコード2、隔週、隔日など、コード1およびコード2以外の放送時刻であればコード3などの、最小桁の第1のクラスタコードが決定される。連続ドラマでない場合、最小桁の第1のクラスタコードは0となる。
次に、メタデータデータベース7に登録されているメタデータのジャンルに関するデータを参照して、そのジャンルごとに、例えば、コード20、コード30などの、下位から2桁目(10の位)に数値を有する第2のクラスタコードが決定される。
最後に、メタデータデータベース7に登録されているメタデータの出演者のデータを参照して、例えば、コード2300、コード800など、下位から2桁目以上(100以上の位)を用いて表される第3のクラスタコードが決定される。
そして、第1乃至第3のクラスタコードの合計値が、その番組のEPGに付加されるクラスタコードとなる。
ステップS52において、データ取得部21は、クラスタコードの1桁目が0であるか否かを基に、対応するEPGは、連続ドラマのものであるか否かを判断する。
ステップS52において、連続ドラマであると判断された場合、ステップS53およびステップS54において、図7のステップS33およびステップS34と同様の処理が実行される。すなわち、第1回目の放送のEPGが抽出されて、図3または図6を用いて説明した番組ベクトル生成処理が実行される。
ステップS55において、番組ベクトル生成部23は、この連続ドラマの番組ベクトルPPを、第1回の放送分の番組ベクトルPPに固定して設定し、番組ベクトルPPに、生成したクラスタコードを対応付けて設定し、処理が終了される。
ステップS52において、連続ドラマではないと判断された場合、ステップS56において、図3または図6を用いて説明した番組ベクトル生成処理が実行される。
ステップS57において、番組ベクトル生成部23は、番組ベクトルPPに生成したクラスタコードを対応付けて、処理が終了される。
このような処理により、連続ドラマ以外であっても、ジャンルや出演者によって番組ベクトルPPをグループ化することが可能となり、グループを示すクラスタコードと、番組ベクトルPPとを対応付けることができる。
図2を用いて説明した配信サーバ5において、図3乃至図8を用いて説明したようにして番組ベクトルPPが生成されるので、常に新しい用語やジャンルなどに対応した番組ベクトルPPを生成することが可能となる。生成された番組ベクトルPPは、EPGデータとともに、ネットワーク8を介して、EPG受信装置9に受信され、番組推薦処理装置10に供給される。
また、グループ化処理は、タイトルを形態素解析して、単語に分解し、単語ごとにグループIDを付けることにより行うようにしてもよい。
次に、図9のフローチャートを参照して、タイトルグループ化処理1について説明する。
ステップS61において、データ取得部21は、メタデータデータベース7に登録されているEPGデータを参照して、登録されているメタデータから、タイトルを抽出し、番組ベクトル生成部23に供給する。
ステップS62において、番組ベクトル生成部23は、タイトルを形態素解析し、単語に分解する。具体的には、メタデータに含まれている映画の題名が「東海道三谷怪談」であった場合、これがタイトルとして形態素解析されるので、「東海道」、「三谷」、「怪談」の3つの単語が得られる。
ステップS63において、番組ベクトル生成部23は、解析された単語、もしくは、複数の単語から構成される単語群のうちのいずれかを抽出して、データ記憶部24から、抽出された単語、または単語群に対応するグループIDを抽出する。
ここで、複数の単語から構成される単語群とは、形態素解析により得られた単語の組み合わせにより生成される単語群であり、例えば、形態素解析により得られた単語が「東海道」、「三谷」、「怪談」である場合、単語群は、「東海道・三谷」、「東海道・怪談」、「三谷・怪談」となる。
ステップS64において、番組ベクトル生成部23は、データ記憶部24から、対応するグループIDが抽出されたか否かを判断する。
ステップS64において、対応するグループIDが抽出されなかったと判断された場合、抽出された単語、もしくは、複数の単語から構成される単語群には、まだグループIDが付けられていないので、ステップS65において、番組ベクトル生成部23は、抽出された単語、もしくは、複数の単語から構成される単語群に新たなグループIDを対応付ける。また、番組ベクトル生成部23は、単語、もしくは、複数の単語から構成される単語群と、それに対応するグループIDを、データ記憶部24に記憶させる。
ステップS64において、対応するグループIDが抽出されたと判断された場合、または、ステップS65の処理の終了後、ステップS66において、番組ベクトル生成部23は、タイトルを構成する全ての単語、もしくは、複数の単語から構成される単語群についてグループIDを抽出したか否かを判断する。
ステップS66において、タイトルを構成する全ての単語、もしくは、複数の単語から構成される単語群についてグループIDを抽出していないと判断された場合、処理は、ステップS63に戻り、それ以降の処理が繰り返される。
ステップS66において、タイトルを構成する全ての単語、もしくは、複数の単語から構成される単語群についてグループIDが抽出されたと判断された場合、ステップS67において、番組ベクトル生成部23は、番組ベクトルに、抽出されたグループIDを対応付けて、処理が終了される。
このような処理により、番組ベクトルに、タイトルを構成する単語、または単語群に対応するグループIDが対応付けられて、データ送信部25により、ネットワーク8を介して、テレビジョン受信装置4または、EPG受信装置9に送信される。
また、類似したタイトルの番組を、同一のグループとするようにしても良い。例えば、タイトル「2年A組銀八先生」の連続ドラマと、タイトル「2年A組銀八先生スペシャル」の特別番組とを、同一のグループとしてグループ化することができるように、タイトルを構成する単語の形態素解析結果を基に、例えば、2週間、1ヶ月、半年などの所定の期間の番組タイトルで、単語の一致率を総当りで算出し、単語の一致率が所定の値以上である場合、同一グループとするようにしてもよい。
次に、図10のフローチャートを参照して、タイトルを構成する単語の一致率によりグループ化を実行するタイトルグループ化処理2について説明する。
ステップS401およびステップS402において、図9を用いて説明した、ステップS61およびステップS62と同様の処理が実行される。すなわち、データ取得部21は、メタデータデータベース7に登録されているEPGデータを参照して、登録されているメタデータから、タイトルを抽出し、番組ベクトル生成部23に供給し、番組ベクトル生成部23は、タイトルを形態素解析し、単語に分解する。
ステップS403において、番組ベクトル生成部23は、解析された単語を基に、タイトル間の単語の一致度、すなわち、単語が一致している割合を示す一致率を算出する。
具体的には、タイトル「2年A組銀八先生」と、タイトル「2年A組銀八先生スペシャル」とが、それぞれ、「2」「年」「A」「組」「銀八」「先生」と、「2」「年」「A」「組」「銀八」「先生」「スペシャル」とに形態素分析された場合、この2つの番組のタイトルを構成する単語の一致率は、6/7で85.7%となる。
ステップS404において、番組ベクトル生成部23は、単語が、例えば、70%などの所定の値以上一致しているか否かを判断する。この、一致率の閾値は、70%以外のいかなる数値であっても良いことは言うまでもない。
ステップS404において、単語が、70%などの所定の値以上一致していると判断された場合、ステップS405において、番組ベクトル生成部23は、それらの番組に、同一のグループIDを対応付ける。また、番組ベクトル生成部23は、一致した単語、または、単語群と、それに対応するグループIDを、データ記憶部24に記憶させる。
ステップS404において、70%などの所定の値以下の一致率であると判断された場合、または、ステップS405の処理の終了後、ステップS406において、番組ベクトル生成部23は、タイトルの総当りが終了したか否かを判断する。
ステップS406において、タイトルの総当りが終了していないと判断された場合、処理は、ステップS403に戻り、それ以降の処理が繰り返される。
ステップS406において、タイトルの総当りが終了したと判断された場合、処理が終了される。
このような処理により、番組ベクトルに、タイトルを構成する単語の一致率を基にしたグループIDが対応付けられて、データ送信部25により、ネットワーク8を介して、テレビジョン受信装置4または、EPG受信装置9に送信されるので、例えば、連続ドラマとスペシャル番組などの類似したタイトルの番組を、同一のグループとして処理させるようにすることができる。
さらに、タイトルを構成する単語の一致率を基にグループを決定するようにすることにより、例えば、EPG、またはメタデータにおいて、数字の半角と全角、または、英字の半角と全角、もしくは、大文字と小文字などの表記ゆれがあった場合にも、同一タイトルの番組を、同一のグループとして検出することが可能となる。
また、単語の一致率に加えて、例えば、放送局や番組ジャンル、あるいは、放送開始時刻などを、グループ化の条件に加えるようにしても良い。例えば、ニュース番組などにおいては、タイトルが、「ニュース」を含む少ない単語によって構成されているので、図10を用いて説明した処理では、異なる放送局の異なる形態のニュース番組であっても、同一のグループとして検出されてしまう恐れがあるので、単語の一致率に加えて、放送局も一致した場合、同一グループとするようにしても良い。
図11のフローチャートを参照して、放送局の一致を条件に加えて、タイトルを構成する単語の一致率によりグループ化を実行するタイトルグループ化処理3について説明する。
ステップS421乃至ステップS424において、図10を用いて説明した、ステップS401乃至ステップS404と同様の処理が実行される。すなわち、データ取得部21は、メタデータデータベース7に登録されているEPGデータを参照して、登録されているメタデータから、タイトルを抽出し、番組ベクトル生成部23に供給し、番組ベクトル生成部23は、タイトルを形態素解析し、単語に分解する。そして、番組ベクトル生成部23は、解析された単語を基に、タイトル間の単語の一致度を算出し、単語が、例えば、70%などの所定の値以上一致しているか否かを判断する。
ステップS424において、単語が、70%などの所定の値以上一致していると判断された場合、ステップS425において、番組ベクトル生成部23は、それらの番組の放送局が一致しているか否かを判断する。
ステップS425において、これらの番組の放送局が一致していると判断された場合、ステップS426において、番組ベクトル生成部23は、それらの番組に、同一のグループIDを対応付ける。また、番組ベクトル生成部23は、一致した単語、または、単語群と、それに対応する放送局およびグループIDを、データ記憶部24に記憶させる。
ステップS424において、70%などの所定の値以下の一致率であると判断された場合、ステップS425において、これらの番組の放送局が一致していないと判断された場合、または、ステップS426の処理の終了後、ステップS427において、番組ベクトル生成部23は、タイトルの総当りが終了したか否かを判断する。
ステップS427において、タイトルの総当りが終了していないと判断された場合、処理は、ステップS423に戻り、それ以降の処理が繰り返される。
ステップS427において、タイトルの総当りが終了したと判断された場合、処理が終了される。
このような処理により、番組ベクトルに、放送局の一致とタイトルを構成する単語の一致率を基にしたグループIDが対応付けられて、データ送信部25により、ネットワーク8を介して、テレビジョン受信装置4または、EPG受信装置9に送信されるので、例えば、類似したタイトルの番組を、同一のグループとする場合に、他局のニュース番組を同一のグループとするようなことを防ぐことができる。
なお、図11においては、タイトルを構成する単語の一致率以外に、同一の放送局であるか否かを条件として、グループ化を行うものとして説明したが、放送局以外の、例えば、放送時間帯やジャンルなどを、タイトルを構成する単語の一致率以外の条件として、グループ化を実行するようにしても良いことは言うまでもない。
更に、例えば、連続ドラマや帯番組の放送開始時刻が、スポーツ中継や特別番組などのためにずれた場合においても、同一グループとして検出可能なように、タイトルを構成する単語の一致率以外の条件を、放送時刻が、例えば、1時間などの所定の時間範囲内のずれで一致しているか否かとして、グループ化を実行するようにしても良い。
図12のフローチャートを参照して、放送時刻が、所定の時間範囲内のずれで一致しているか否かを条件に加えて、タイトルを構成する単語の一致率によりグループ化を実行するタイトルグループ化処理4について説明する。
ステップS441乃至ステップS444において、図10を用いて説明した、ステップS401乃至ステップS404と同様の処理が実行される。すなわち、データ取得部21は、メタデータデータベース7に登録されているEPGデータを参照して、登録されているメタデータから、タイトルを抽出し、番組ベクトル生成部23に供給し、番組ベクトル生成部23は、タイトルを形態素解析し、単語に分解する。そして、番組ベクトル生成部23は、解析された単語を基に、タイトル間の単語の一致度を算出し、単語が、例えば、70%などの所定の値以上一致しているか否かを判断する。
ステップS444において、単語が、70%などの所定の値以上一致していると判断された場合、ステップS445において、番組ベクトル生成部23は、それらの番組の放送開始時刻が、例えば、1時間などの所定の範囲内のずれで一致しているか否かを判断する。
ステップS445において、それらの番組の放送開始時刻が所定の範囲内のずれで一致していると判断された場合、ステップS446において、番組ベクトル生成部23は、それらの番組に、同一のグループIDを対応付ける。また、番組ベクトル生成部23は、一致した単語、または、単語群と、それに対応する放送開始時刻の範囲、およびグループIDを、データ記憶部24に記憶させる。
ステップS444において、70%などの所定の値以下の一致率であると判断された場合、ステップS445において、それらの番組の放送開始時刻が所定の範囲以上にずれていると判断された場合、または、ステップS446の処理の終了後、ステップS447において、番組ベクトル生成部23は、タイトルの総当りが終了したか否かを判断する。
ステップS447において、タイトルの総当りが終了していないと判断された場合、処理は、ステップS443に戻り、それ以降の処理が繰り返される。
ステップS447において、タイトルの総当りが終了したと判断された場合、処理が終了される。
このような処理により、番組ベクトルに、放送開始時刻の所定の範囲内のずれを含む一致と、タイトルを構成する単語の一致率を基にしたグループIDが対応付けられて、データ送信部25により、ネットワーク8を介して、テレビジョン受信装置4または、EPG受信装置9に送信されるので、例えば、類似したタイトルの番組を同一のグループとする場合に、特別番組などによる放送時刻の変更のために、同一グループとして検出されるべき番組が、同一グループとして検出されないようなことを防ぐことができる。
図13は、番組推薦処理装置10の構成を示すブロック図である。
データ取得部41は、配信サーバ5から送信された番組ベクトルPP、および番組ベクトルPPに対応する番組側効き目ベクトルEfPPを取得する。番組ベクトル抽出部42は、データ取得部41が取得した番組ベクトルPPから、マッチング処理に必要な番組ベクトルPP、あるいは、ユーザモデル生成のために必要な番組ベクトルPPを抽出し、必要に応じて、番組ベクトルPPに対応する番組側効き目ベクトルEfPPとともに、マッチング処理部43に供給する。
操作入力部44は、例えば、キーボード、タッチパッド、マウスなどの入力デバイスで構成され、ユーザが入力した初期登録情報や、ユーザモデル生成のためのトピックの入力を受け、初期登録保存部45に出力する。初期登録保存部45は、操作入力部44から供給された初期登録内容や、ユーザモデル生成のためのトピックを登録し、必要に応じて、操作ログ取得部46、または、マッチング処理部43に供給する。また、初期登録保存部45に保存されている内容は、操作入力部44から入力されるユーザの操作に基づいて、逐次更新される。初期登録される内容には、例えば、嫌いなジャンル、嫌いなキーワード、嫌いな出演者などの、ユーザが好まない番組を示す情報や、好きなジャンル、好きなキーワード、好きな出演者などの、ユーザが好む番組を示す情報がある。
操作ログ取得部46は、テレビジョン表示装置11または録画再生装置12から、操作ログを取得し、これらの情報を正履歴と負履歴に分類し、必要に応じて、初期登録保存部45に保存されている情報を参照して、データ取得部41が取得した番組ベクトルPPのうち、正履歴および負履歴に対応する番組ベクトルPPを読み出して、正履歴保存部47と負履歴保存部48に供給して保存させる。正履歴保存部47は、供給された正履歴を保存し、正履歴ベクトルUPを生成する。負履歴保存部48は、供給された負履歴を保存し、負履歴ベクトルMUPを生成する。生成された正履歴ベクトルUPと負履歴ベクトルMUPは、マッチング処理部43に供給される。
ここで、正履歴とは、ユーザが積極的に視聴しようとする、換言すれば、好ましいと思う番組の候補を抽出するために用いられる情報であり、例えば、ユーザが、番組を視聴したり、録画した場合、または、後述する処理によりユーザに推薦番組リストとして提案された番組が、ユーザに受け入れられて視聴または録画された場合、その番組のメタデータは、好印象メタデータとして、正履歴保存部47に保存される。正履歴保存部47は、詳細項目ごとに、または、大項目ごとに、正履歴の総和を求め、正履歴ベクトルUPを生成する。
一方、負履歴とは、ユーザが視聴するのに消極的である、換言すれば、好ましくないと思う番組を、推薦する番組から除くために用いられる情報であり、例えば、初期登録で嫌いであるとされた項目や、録画後見ずに消去された番組、または、後述する処理によりユーザに推薦番組リストとして提案された番組がユーザに受け入れられず、視聴または録画操作されなかった場合、その番組のメタデータは負印象メタデータとして、負履歴保存部48に保存される。例えば、ユーザが、初期登録で「スポーツ」を嫌いであるとした場合、ジャンルGmup={0,0,5,0,0,0,0,0,0}が、重み5で負印象として負履歴保存部48に追加保存される。負履歴保存部48は、詳細項目ごとに、または、大項目ごとに、負履歴の総和を求め、負履歴ベクトルMUPを生成する。
マッチング処理部43は、番組ベクトル抽出部42から抽出された番組ベクトルと、正履歴保存部47または負履歴保存部48から供給された正履歴ベクトルUP、または、負履歴ベクトルMUPとのマッチングを検証する。
番組ベクトルPP、正履歴ベクトルUP、または、負履歴ベクトルMUPが、全ての詳細要素を1列に並べてベクトル化されている場合、タイトルやキーワードなどは複数の単語で構成されているので、その単語1語と、例えば、ジャンルなどの項目が、ベクトルにおいて同じ重さになってしまう。そこで、マッチング処理部43の正規化処理部61は、単語によって構成される項目であるタイトルおよび内容について、番組ごとに、単語を単語数で割ることで正規化する。例えば、タイトルTm={東海道−1,三谷−1,怪談−1}である場合、タイトルTm={東海道:0.33,三谷:0.33,怪談:0.33}と正規化される。これにより、タイトル、内容とも、その項目内の単語のトータルで、重みが1になるので、マッチング処理において不都合が生じない。
ベクトル演算部62は、番組ベクトルPPと、正履歴ベクトルUP、または、負履歴ベクトルMUPとのマッチング処理を実行する。
ベクトル演算部62は、番組ベクトルPP、正履歴ベクトルUPおよび負履歴ベクトルMUPが、詳細項目の全要素を1列に並べたベクトルで表されている場合、正履歴ベクトルUPまたは負履歴ベクトルMUPと、番組ベクトルPPとのベクトル間のコサイン距離(cosθ)によって、次の式(1)に示されるように、番組ベクトルPPと正履歴ベクトルUPとの類似度SimUPを求め、式(2)に示されるように、番組ベクトルPPと負履歴ベクトルMUPとの類似度SimMUPを求める。コサイン距離とは、式(1)と式(2)に示されるように、2つのベクトルの内積を各ベクトルの絶対値の積で除算して得られる値である。
SimUP=cosθu=UP・PP/|UP|×|PP|・・・(1)
SimMUP=cosθm=MUP・PP/|MUP|×|PP|・・・(2)
ただし、式(1)および式(2)において、PPは番組ベクトルPPを示し、UPは正履歴ベクトルUPを示し、MUPは、負履歴ベクトルMUPを示す。また、“・”は、内積を示し、“×”は、要素の掛け算(スカラ演算)を示す。
また、ベクトル演算部62は、番組ベクトルPP、正履歴ベクトルUPおよび負履歴ベクトルMUPが大項目ごとにベクトル化されている場合、大項目ごとに、番組ベクトルPPと正履歴ベクトルUPとの類似度と、番組ベクトルPPと負履歴ベクトルMUPとの類似度を求め、大項目ごとに類似度の和を算出して、類似度SimUPおよび類似度SimMUPを算出することができる。例えば、単語に分解されている大項目「タイトル」において、正履歴ベクトルUPが、タイトルTup={学校−1,怪談−1,トイレ−1}であり、供給された番組ベクトルPPが、タイトルTm={東海道−1,三谷−1,怪談−1}である場合、単位ベクトル長さを1とすると、ベクトルの長さ(絶対値)は、要素の合計の2乗和の平方根であるので、タイトルの類似度であるコサイン距離cosθtは、次の式(3)のように算出される。
cosθt=(1・1)/(√3×√3)=1/3・・・(3)
式(3)において、“・”は、内積を示し、“×”は、スカラ演算を示す。番組ベクトルPPと、負履歴ベクトルMUPとの大項目ごとの類似度も、式(3)と同様の計算によって算出される。
例えば、正履歴ベクトルUPを、正履歴ベクトルUP={タイトルTup,ジャンルGup,出演者Pup,脚本/原作/演出Aup,内容(キーワード)Kup}および負履歴ベクトルMUPを、負履歴ベクトMUP={タイトルTmup,ジャンルGmup,出演者Pmup,脚本/原作/演出Amup,内容(キーワード)Kmup}とした場合、それぞれの大項目で、式(3)と同様の演算により、大項目ごとに類似度が得られるので、類似度SimUPおよび類似度SimMUP は、いずれも、次の式(4)の類似度Simとして演算される。
Sim=cosθt+ cosθg+cosθp+cosθa+cosθk・・・(4)
ここで、cosθtは、大項目「タイトル」における、番組ベクトルPPと、正履歴ベクトルUPまたは負履歴ベクトルMUPとのコサイン距離であり、cosθgは、大項目「ジャンル」における、番組ベクトルPPと、正履歴ベクトルUPまたは負履歴ベクトルMUPとのコサイン距離であり、cosθpは、大項目「出演者」における、番組ベクトルPPと、正履歴ベクトルUPまたは負履歴ベクトルMUPとのコサイン距離であり、cosθaは、大項目「脚本/原作/演出」における、番組ベクトルPPと、正履歴ベクトルUPまたは負履歴ベクトルMUPとのコサイン距離であり、cosθkは、大項目「内容」における、番組ベクトルPPと、正履歴ベクトルUPまたは負履歴ベクトルMUPとのコサイン距離である。
類似度SimUPおよび類似度SimMUPが、大項目ごとの演算結果の和として算出された場合、項目間の重みの偏りがなくなるため、正規化を行っているのと道義である。従って、全要素を1列に並べたベクトルと異なり、正規化処理部61による正規化処理を行わなくてもよい。
すなわち、正規化を行うことなく、全要素を1列に並べたベクトルを用いてしまった場合、頻度の積み重なり易い、例えば、放送局、ジャンルなどの項目と比較して、タイトルや内容などの項目においては、履歴が増えるに従って、単語数は増える一方、それぞれの単語の頻度は大きくなりにくい。
このため、全要素を用いて、要素ごとに合計を取った場合、頻度の重なりやすい、放送局、ジャンルなどの項目の影響が大きくなってしまうので、例えば、ユーザが解説者Aのファンであるので、「解説者Aが解説している球団Bの試合の実況中継」を好んで視聴しているような場合、ジャンルである「野球の実況中継」という情報は履歴として重なりやすいが、出演者である「解説者A」という情報は履歴として重なり難い。従って、他の解説者が解説している球団Bの試合の実況中継が推薦されて、解説者Aが出演しているバラエティ番組が推薦されないような場合が発生する。
これに対して、正規化を行うか、または、大項目ごとの演算結果の和を類似度SimUPおよび類似度SimMUPとして算出するようにすることにより、履歴の頻度の大小の影響を受けることなく、解説者Aが出演しているバラエティ番組を推薦することができ、より正確にユーザの嗜好を反映するようにすることができる。
また、ベクトル演算部62は、初期登録保存部45に保存されているユーザの初期登録情報、番組ベクトルPPに対応付けられて送信される番組側効き目ベクトルEfPP、または、ユーザ情報登録部63において生成されて登録されているユーザ側効き目ベクトルEfUP(後述)、もしくは、ユーザ側反効き目ベクトルEfMUP(後述)により、重み付けを行って、類似度SimUPおよび類似度SimMUPを算出するようにすることもできる。
ベクトル演算部62は、上述したような方法で算出された類似度SimUPを基に、例えば、正履歴ベクトルとの類似度が高い上位所定数(例えば、10)の番組に対して、更に履歴ベクトルMUPとの類似度SimMUPを求め、SimUP−SimMUPを演算し、演算結果の上位所定数(例えば、3)の番組を推薦番組として、推薦情報出力部49に出力する。
また、ベクトル演算部62は、番組ベクトルがグループ化されている場合、推薦された番組の情報を基に、ユーザ情報登録部63に、推薦優先グループを登録し、推薦優先グループに対応する番組を、優先的に推薦する。
更に、ベクトル演算部62は、初期登録保存部45に保存されているトピックを用いて番組ベクトルPPのフィルタリングを行うことにより、ユーザモデルベクトルを生成し、ユーザ情報登録部63に登録して、マッチング処理を行うようにすることができる。ユーザモデルについての詳細については後述する。
ユーザ情報登録部63は、初期登録保存部45から供給されたユーザの初期登録内容、あるいは、正履歴保存部47または負履歴保存部48から供給された正履歴ベクトルUPまたは負履歴ベクトルMUPを基に、ユーザ側効き目ベクトルEfUPおよび反効き目ベクトルEfMUPを生成して、保存する。ユーザ側効き目ベクトルEfUPは、そのユーザにとって、大項目のうちのいずれの要素が番組の選択に重要であり、番組の選択のために重みが置かれている項目であるかを示すベクトルか、または、それぞれの項目におけるユーザの嗜好を示すベクトルである。反効き目ベクトルEfMUPは、そのユーザにとって、大項目のうちのいずれの要素が番組の選択に重要でない要素であり、番組の選択のために重みが置かれていない項目であるかを示すベクトルか、または、それぞれの項目において、ユーザが好まない項目を示すベクトルである。
換言すれば、ユーザ側効き目ベクトルEfUPおよび反効き目ベクトルEfMUPは、番組ベクトルPPと、正履歴ベクトルUPまたは負履歴ベクトルMUPとのマッチングにおいて、いずれの項目が大きく寄与するかを規定するものである。
ユーザ側効き目ベクトルEfUPおよび反効き目ベクトルEfMUPは、ユーザによって設定可能としたり、予め定められた値を用いるようにしても良いが、初期登録保存部45に登録されているユーザの初期登録内容を基に生成されるようにしても良い。
具体的には、ユーザ側効き目ベクトルEfUPが、そのユーザにとって、大項目のうちのいずれの要素が番組の選択に重要であるかを示す情報である場合、番組ベクトルPP={タイトルTm,ジャンルGm,時間帯Hm,放送局Sm,出演者Pm,脚本/原作/演出Am,内容Km}において、ユーザにとってジャンルが重要である場合、例えば、効き目ベクトルEfUP=(1,5,1,1,1,1,1)と設定される。これに対して、ユーザにとって出演者とジャンルが重要である場合、例えば、効き目ベクトルEfUP=(1,3,1,1,5,1,1)と設定される。
また、ユーザ側効き目ベクトルEfUPが、それぞれの項目におけるユーザの嗜好を示すベクトルである場合、大項目ジャンルGm={ドラマ,バラエティ,スポーツ,映画,音楽,子供向け/教育,教養/ドキュメント,ニュース/報道,その他}において、ユーザが好ましいと思う番組のジャンルが、教養/ドキュメントであった場合、ユーザ効き目ベクトルEfUPは、例えば、ジャンルGm={0,0,0,0,0,0,5,0,0}と設定される。
また、ユーザ側効き目ベクトルEfUPおよび反効き目ベクトルEfMUPは、正履歴ベクトルUPまたは負履歴ベクトルMUPを基に、あるいは、一定期間にユーザが視聴した番組をカウントすることにより、生成されるようにしても良い。更に、ユーザ側効き目ベクトルEfUPおよび反効き目ベクトルEfMUPは、ジャンル別に生成することも可能である。ユーザ側効き目ベクトルEfUPまたは反効き目ベクトルEfMUPを生成する方法については、図22乃至図27を用いて後述する。
更に、ユーザ情報登録部63は、ベクトル演算部62の処理により生成された、推薦優先グループの情報や、ユーザモデルベクトルなどを、必要に応じて登録する。
以上説明したマッチング処理部43においては、正履歴ベクトルUPとの類似度が高い番組(ユーザが積極的に視聴する番組)から、負履歴を用いて、ユーザが好まないと思われる番組(ユーザが視聴するのに消極的である番組)を取り除く処理を行わなくても、例えば、正履歴のみを用いて推薦番組を決定することも可能である。
推薦情報出力部49は、マッチング処理部43から供給された推薦番組の情報を、推薦番組リスト50に登録するとともに、テレビジョン表示装置11、または、録画再生装置12に供給する。推薦番組リスト50は、番組推薦処理装置10から取り外し可能に構成されており、推薦番組出力部49から出力された推薦番組情報を登録する。推薦番組リスト50に推薦番組情報を保存するようにすることにより、例えば、異なるテレビジョン受信装置4、テレビジョン表示装置11、あるいは、録画再生装置12などを用いる場合においても、これまで蓄積した履歴情報を用いて、番組の推薦や、自動録画などを実行させるようにすることが可能である。
また、マッチング処理部43は、必要に応じて、ドライブ51とも接続されている。ドライブ51には、必要に応じて、磁気ディスク71、光ディスク72、光磁気ディスク73、および半導体メモリ74が装着され、データの授受を行う。
図14のフローチャートを参照して、番組推薦処理装置10が実行する、正履歴ベクトルおよび負履歴ベクトル生成処理1について説明する。
ステップS71において、操作ログ取得部46は、初期登録保存部45から読み出した初期登録内容を負履歴保存部48に供給する。負履歴保存部48は、供給された初期登録内容を参照して、負履歴ベクトルMUPを生成する。
ステップS72において、操作ログ取得部46は、初期登録保存部45に保存されている登録内容を基に、初期登録内容が変更されたか否かを判断する。ステップS72において、初期登録内容が変更されたと判断された場合、処理は、ステップS71に戻り、それ以降の処理が繰り返される。
ステップS72において、初期登録内容が変更されていないと判断された場合、ステップS73において、操作ログ取得部46は、テレビジョン表示装置11または録画再生装置12から、操作ログが供給されたか否かを判断する。ステップS73において、操作ログが供給されていないと判断された場合、処理は、ステップS72に戻り、それ以降の処理が繰り返される。
ステップS73において、操作ログが供給されたと判断された場合、ステップS74において、操作ログ取得部46は、供給された操作ログは、正履歴であるか否かを判断する。例えば、操作ログが、録画操作である場合、その操作に対応する番組の番組ベクトルPPは、正履歴となり、操作ログが、再生していない録画データの消去である場合、その操作に対応する番組の番組ベクトルPPは、負履歴となる。
ステップS74において、供給された操作ログは、正履歴であると判断された場合、ステップS75において、操作ログ取得部46は、正履歴であると判断された操作ログに対応する番組ベクトルPPをデータ取得部41から抽出し、正履歴保存部47に供給する。正履歴保存部47は、供給された番組ベクトルPPを、正履歴として追加保存する。
ステップS76において、正履歴保存部47は、詳細項目ごと、または、大項目ごとに正履歴番組ベクトルPPのベクトルの総和を求めて、正履歴ベクトルUPを生成する。ステップS76の処理の終了後、処理は、ステップS72に戻り、それ以降の処理が繰り返される。
ステップS74において、供給された操作ログは、正履歴ではないと判断された場合、供給された操作ログは、負履歴であるので、ステップS77において、操作ログ取得部46は、負履歴であると判断された操作ログに対応する番組ベクトルPPをデータ取得部41から抽出し、負履歴保存部48に供給する。負履歴保存部48は、供給された番組ベクトルPPを、負履歴として追加保存する。
ステップS78において、負履歴保存部48は、詳細項目ごと、または、大項目ごとに負履歴番組ベクトルPPのベクトルの総和を求めて、負履歴ベクトルMUPを生成する。テップS78の処理の終了後、処理は、ステップS72に戻り、それ以降の処理が繰り返される。
大項目が、正履歴ベクトルUP={タイトルTup,ジャンルGup,出演者Pup,脚本/原作/演出Aup,内容(キーワード)Kup}であり、大項目の中に詳細項目が記載されている場合、正履歴ベクトルUPにおいては、各詳細項目の後に、ベクトル総和を示す数値が記載される。例えば、図15に示されるように、大項目「ジャンル」に関しては、ジャンルGup={(ドラマ−25),(バラエティ−34),(スポーツ−42),(映画−37),(音楽−73),(子供向け/教育−120),(教養/ドキュメント−3),(ニュース/報道−5),(その他−23)}のように、詳細項目ごとに正履歴の総和を示す数値が記載される。また、大項目「タイトル」のように、単語によって示されるベクトルにおいては、例えば、タイトルTup={(title1−12),(title2−3),・・・}のように、単語に続いて、単語ごとの正履歴の総和を示す数値が記載される。負履歴ベクトルMUPにおいても、正履歴ベクトルUPと同様にして、項目に続いて総和を示す数値が記述される。
図15においては、正履歴ベクトルUP(および、負履歴ベクトルMUP)の大項目を、タイトル、ジャンル、出演者、脚本/原作/演出、内容(キーワード)とし、図5を用いて説明した番組ベクトルPPよりも少ない項目数であるものとして説明したが、番組ベクトルPPと同様の大項目としても良いことは言うまでもない。
図14においては、初期登録の内容を基に、操作ログが入力される前に負履歴ベクトルMUPが生成されるものとして説明しているが、初期登録時に、ユーザが好ましいと思う番組を選択するための情報の登録を受けるようにし、操作ログが入力される前に正履歴ベクトルUPも生成されるようにしても良い。また、初期登録を基に正履歴ベクトルUP、または、負履歴ベクトルMUPを生成せず、操作ログのみを用いて正履歴ベクトルUP、または、負履歴ベクトルMUPを生成するようにしてもよい。
このようにして、正履歴ベクトルUP、および、負履歴ベクトルMUPを独立して生成して保持することにより、より精密に、ユーザの嗜好とのマッチング処理を行うことができる。
なお、このとき、正履歴および負履歴を、更に精緻に求めることができるようにしても良い。例えば、図14を用いて説明した処理においては、全ての項目における正履歴と負履歴に対応する番組ベクトルPPの総和を用いて、正履歴ベクトルUPおよび負履歴ベクトルMUPを生成したが、正履歴および負履歴に対応する番組ベクトルPPの総和を、例えば、ジャンル別に蓄積して、ジャンル別に正履歴ベクトルUPおよび負履歴ベクトルMUPを生成するようにしても良い。
放送される番組のジャンルによって、出演者が偏ってしまうことが頻繁に発生するため、ユーザの嗜好が正しく反映されない場合がある。具体的には、ドラマが好きで、バラエティは、ほとんどドラマに出演しないコメディアンAが出演するもののみを好み、バラエティ対ドラマの視聴比率が2:8であるユーザにおいて、ジャンルを区別せずに出演者の正履歴を蓄積した場合、ほとんどドラマに出演しないコメディアンAよりも、特に好きな俳優でないにもかかわらず、ドラマに頻繁に出演する出演者Bが、正履歴ベクトルUPにおいて高ポイントとなってしまう場合がある。このような場合、例えば、コメディアンAが出演するバラエティよりも、ドラマに頻繁に出演する出演者Bが出演するドキュメンタリーが推薦されてしまう。これを防止するためには、ジャンル別に正履歴および負履歴を蓄積し、これを基に、ジャンル別に正履歴ベクトルUPおよび負履歴ベクトルMUPを生成すればよい。
また、例えば、ユーザが解説者Aのファンであるので、「解説者Aが解説している球団Bの試合の実況中継」を好んで視聴しているような場合、ジャンルである「スポーツ」という情報は履歴として重なりやすいが、出演者である「解説者A」という情報は履歴として重なり難いので、他の解説者が解説している球団Bの試合の実況中継が推薦されて、解説者Aが出演しているバラエティ番組が推薦されないような場合が発生する。これを防止するためには、例えば、出演者別に正履歴および負履歴を蓄積し、これを基に、出演者別に正履歴ベクトルUPおよび負履歴ベクトルMUPを生成すればよい。
このように、特定の要素別に履歴を蓄積するようにすることにより、ユーザの好みをなまらせることなく、より緻密にユーザの嗜好を反映することが可能となる。
そして、マッチング処理部43において、このようにして生成された正履歴ベクトルUPおよび負履歴ベクトルMUPと、供給された番組ベクトルPPのマッチングを検証することにより、ユーザの嗜好を正しく反映した推薦番組情報を生成することが可能となる。
次に、図16のフローチャートを参照して、ジャンル別に履歴を蓄積するようにした、正履歴ベクトルおよび負履歴ベクトル生成処理2について説明する。
ステップS81乃至ステップS84において、図14のステップS71乃至ステップS74と同様の処理が実行される。すなわち、初期登録が参照されて、負履歴ベクトルMUPが生成され、初期登録内容が変更されたか否かが判断されて、変更されなかった場合、供給された操作ログが、正履歴であるか否かが判断される。
ステップS84において、供給された操作ログが正履歴であると判断された場合、ステップS85において、操作ログ取得部46は、正履歴であると判断された操作ログに対応する番組ベクトルPPをデータ取得部41から抽出し、正履歴保存部47に供給する。正履歴保存部47は、供給された番組ベクトルPPのジャンルを抽出する。
ステップS86において、正履歴保存部47は、データ取得部41から抽出された番組ベクトルPPを、ジャンル別に、正履歴として追加保存する。
ステップS87において、正履歴保存部47は、詳細項目ごと、または、大項目ごとに、番組ベクトルが追加保存されたジャンルにおいて、正履歴の番組ベクトルPPのベクトルの総和を求めて、対応するジャンルの正履歴ベクトルUPを生成する。ステップS87の処理の終了後、処理は、ステップS82に戻り、それ以降の処理が繰り返される。
ステップS84において、供給された操作ログが正履歴ではないと判断された場合、供給された操作ログは負履歴であるので、ステップS88において、操作ログ取得部46は、負履歴であると判断された操作ログに対応する番組ベクトルPPをデータ取得部41から抽出し、負履歴保存部48に供給する。負履歴保存部48は、供給された番組ベクトルPPのジャンルを抽出する。
ステップS89において、負履歴保存部48は、データ取得部41から抽出された番組ベクトルPPを、ジャンル別に、負履歴として追加保存する。
ステップS90において、負履歴保存部48は、詳細項目ごと、または、大項目ごとに、番組ベクトルが追加保存されたジャンルにおいて、負履歴の番組ベクトルPPのベクトルの総和を求めて、対応するジャンルの負履歴ベクトルMUPを生成する。ステップS90の処理の終了後、処理は、ステップS82に戻り、それ以降の処理が繰り返される。
このような処理により、ジャンル別に正履歴ベクトルUPと負履歴ベクトルMUPが生成されるので、ユーザの好みをなまらせることなく、より緻密にユーザの嗜好を反映することが可能となり、ユーザの嗜好を正しく反映した推薦番組情報を生成することが可能となる。
図17のフローチャートを参照して、番組ベクトルPP、正履歴ベクトルUPおよび負履歴ベクトルMUPが、詳細項目の全要素を1列に並べたベクトルで表されている場合の、マッチング処理1について説明する。
ステップS101において、番組ベクトル抽出部42は、複数番組(例えば、所定の時間帯に放送される番組)の番組ベクトルPPをデータ取得部41から抽出して、マッチング処理部43の正規化処理部61に供給する。正規化処理部61は、供給された番組ベクトルPPと、正履歴保存部47から読み出した正履歴ベクトルUPの構成要素のうち、単語で構成されているタイトルおよび内容についての正規化を行い、ベクトル演算部62に正規化結果を供給する。
具体的には、正規化処理部61は、供給された番組ベクトルPPが、例えば、タイトルTm={東海道−1,三谷−1,怪談−1}である場合、タイトルTm={東海道:0.33,三谷:0.33,怪談:0.33}として、その番組ごとに、その項目内の単語のトータルで、重みが1になるように正規化する。
ステップS102において、マッチング処理部43のベクトル演算部62は、上述した式(1)を用いて、複数番組の番組ベクトルPPと正履歴ベクトルUPのコサイン距離である類似度SimUPを算出する。
ステップS103において、ベクトル演算部62は、ステップS102において算出された、番組ベクトルPPと正履歴ベクトルUPとの類似度を示す類似度SimUPを比較し、類似度の上位から、例えば、10などの所定の数だけ、番組ベクトルPPを抽出する。
ステップS104において、ベクトル演算部62は、ステップS103において抽出された番組ベクトルPPと、負履歴保存部48から読み出した負履歴ベクトルMUPとのコサイン距離である類似度SimMUPを、上述した式(2)を用いて算出する。
ステップS105において、ベクトル演算部62は、正履歴ベクトルUPとの類似度(すなわち、コサイン距離)SimUP−負履歴ベクトルとの類似度(すなわち、コサイン距離)SimMUPを算出し、その上位となる、所定数(例えば、1つ)の番組の番組ベクトルまたはEPGデータを推薦情報として抽出し、推薦情報出力部49に出力して、推薦番組リスト50に登録させるとともに、テレビジョン表示装置11および録画再生装置12に出力して、処理が終了される。
このような処理により、番組ベクトルPP、正履歴ベクトルUPおよび負履歴ベクトルMUPが、詳細項目の全要素を1列に並べたベクトルで表されている場合において、番組ベクトルPPと正履歴ベクトルUPとの類似度と、番組ベクトルPPと負履歴ベクトルとの類似度とを基に、ユーザの嗜好に合致した推薦番組を決定することが可能となる。
次に、図18のフローチャートを参照して、単語で示される項目の正規化を行うのではなく、大項目ごとにコサイン距離の計算を行い、その和を類似度SimUPおよび類似度SimMUPとして算出することにより推薦番組を決定する、マッチング処理2について説明する。
ステップS111において、番組ベクトル抽出部42は、複数番組(例えば、所定の時間帯に放送される番組)の番組ベクトルPPをデータ取得部41から抽出して、マッチング処理部43のベクトル演算部62に供給する。ベクトル演算部62は、供給された番組ベクトルPPと、正履歴保存部47から読み出した正履歴ベクトルUPのそれぞれの大項目について、番組ベクトルPPと正履歴ベクトルUPのコサイン距離を算出する。
ステップS112において、ベクトル演算部62は、ステップS111において項目ごとに算出されたコサイン距離の値を、上述した式(4)を用いて合計し、類似度SimUPを算出する。
ステップS113において、ベクトル演算部62は、ステップS112において算出された、番組ベクトルPPと正履歴ベクトルUPとの類似度SimUPを比較し、類似度の上位から、例えば、10などの所定の数の番組ベクトルPPを抽出する。
ステップS114において、ベクトル演算部62は、ステップS113の処理により抽出された番組ベクトルPPと、負履歴保存部48から読み出した負履歴ベクトルMUPのそれぞれの大項目について、番組ベクトルPPと負履歴ベクトルMUPのコサイン距離を算出する。
ステップS115において、ベクトル演算部62は、ステップS114において項目ごとに算出されたコサイン距離の値を、上述した式(4)を用いて合計し、類似度SimMUPを算出する。
ステップS116において、ベクトル演算部62は、{番組ベクトルPPと正履歴ベクトルUPとのコサイン距離である類似度SimUP}−{番組ベクトルPPと負履歴ベクトルとのコサイン距離である類似度SimMUP}を算出し、その上位となる所定数(例えば3つ)の番組の番組ベクトルPPまたはEPGデータを推薦情報として抽出し、推薦情報出力部49に出力して、推薦番組リスト50に登録させるとともに、テレビジョン表示装置11および録画再生装置12に出力して、処理が終了される。
このような処理により、単語で示される項目の正規化を行うことなく、大項目ごとに演算結果の和が類似度SimUPおよび類似度SimMUPとして算出されるので、異なる大項目に属する詳細要素間の履歴の重なりの偏りの影響を受けることなく、番組ベクトルPPと正履歴ベクトルUPとの類似度と、番組ベクトルPPと負履歴ベクトルMUPとの類似度とを基に、ユーザの嗜好に合致した推薦番組を決定することが可能となる。
図17および図18を用いて説明したマッチング処理1およびマッチング処理2においては、ユーザの正履歴ベクトルUPとの類似度が高い番組から、負履歴を用いて、ユーザが好まないと思われる番組を取り除くことができるものとして説明しているが、例えば、正履歴のみを用いて推薦番組を決定するようにしてもよい。
また、ユーザによっては、番組を選択するにあたり、ニュースや報道番組を非常に好んだり、ジャンルよりも出演者が重要であったり、出演者にはこだわらないが、内容が重要であるなど、番組を選択するために重み付けられる項目と、重み付けられない項目、換言すれば、重要な項目とそうでない項目が固定している場合がある。
従って、マッチング処理は、上述した番組側効き目ベクトルEfPP、ユーザ側効き目ベクトルEfUP、または、ユーザ側反効き目ベクトルEfMUPを利用して行うようにしてもよい。また、番組側効き目ベクトルEfPP、ユーザ側効き目ベクトルEfUP、または、ユーザ側反効き目ベクトルEfMUPを利用するか否かは、ユーザにより設定可能なようにしても良い。
次に、図19のフローチャートを参照して、番組ベクトルPP、正履歴ベクトルUPおよび負履歴ベクトルMUPが、詳細項目の全要素を1列に並べたベクトルで表されている場合に、ユーザの設定により、番組側効き目ベクトルEfPPまたはユーザ側効き目ベクトルEfUPを利用してマッチング処理を行う、マッチング処理3について説明する。
ステップS121において、ベクトル演算部62は、操作入力部44を用いてユーザにより入力され、初期登録保存部45に登録されている番組側効き目ベクトルEfPPおよびユーザ側効き目ベクトルEfUPまたはユーザ側反効き目ベクトルEfMUPの利用設定内容を取得する。効き目ベクトルの利用設定内容とは、マッチング処理において、番組側効き目ベクトルEfPP、ユーザ側効き目ベクトルEfUPまたはユーザ側反効き目ベクトルEfMUPを利用して、重み付けを行うか否かを示す情報である。
ステップS122において、ベクトル演算部62は、必要に応じて、ユーザ情報登録部63から、ユーザ側効き目ベクトルEfUPを読み込み、次の式(5)を用いて、番組ベクトルPPと正履歴ベクトルUPのコサイン距離を算出し、類似度SimUPとする。
なお、式(5)においては、番組ベクトルPP=(p1、p2、・・・)、正履歴ベクトルUP=(u1,u2,・・・)、番組側効き目ベクトルEfPP=(epd1,epd2,・・・)、ユーザ側効き目ベクトルEfUP=(eud1,eud2,・・・)であるものとする。また、式(5)においては、番組側効き目ベクトルEfPPおよびユーザ側効き目ベクトルEfUPのいずれをも利用するものとして説明しているが、設定により、番組側効き目ベクトルEfPPおよびユーザ側効き目ベクトルEfUPのうちのいずれかが利用されない場合、利用されないベクトルに代わって数値「1」が代入されて計算される。
また、ユーザ側効き目ベクトルEfUPは、ユーザにより設定可能であっても、ユーザの初期設定を基に設定されるものであっても良いし、ユーザ情報登録部63において生成されるものであっても良い。ユーザ側効き目ベクトルEfUPの生成の詳細については、図22乃至図25を用いて後述する。
ステップS123において、ベクトル演算部62は、ステップS122において算出された、番組ベクトルPPと正履歴ベクトルUPとの類似度SimUPを比較し、類似度の上位から、例えば、10などの所定の数の番組ベクトルPPを抽出する。
ステップS124において、ベクトル演算部62は、必要に応じて、ユーザ情報登録部63から、ユーザ側反効き目ベクトルEfMUPを読み込み、次の式(6)を用いて、ステップS123において抽出された番組ベクトルPPと負履歴ベクトルMUPのコサイン距離を算出する。
なお、式(6)においては、番組ベクトルPP=(p1、p2、・・・)、負履歴ベクトルMUP=(m1,m2,・・・)、番組側効き目ベクトルEfPP=(epd1,epd2,・・・)、ユーザ側反効き目ベクトルEfMUP=(emd1,emd2,・・・)であるものとする。また、式(6)においては、番組側効き目ベクトルEfPPおよびユーザ側反効き目ベクトルEfMUPのいずれをも利用するものとして説明しているが、設定により、番組側効き目ベクトルEfPPおよびユーザ側反効き目ベクトルEfMUPのうちのいずれかが利用されない場合、利用されないベクトルに代わって、数値「1」が代入されて計算される。
また、ユーザ側反効き目ベクトルEfMUPは、ユーザにより設定可能であっても、ユーザの初期設定を基に設定されるものであっても良いし、ユーザ情報登録部63において生成されるものであっても良い。ユーザ側反効き目ベクトルEfMUPの生成の詳細については、図26または図27を用いて後述する。
ステップS125において、ベクトル演算部62は、番組ベクトルPPと正履歴ベクトルUPとの類似度SimUP−番組ベクトルPPと負履歴ベクトルとの類似度SimMUPを算出し、その上位となる所定数(例えば3つ)の番組の番組ベクトルPPまたはEPGデータを推薦情報として抽出し、推薦情報出力部49に出力して、推薦番組リスト50に登録させるとともに、テレビジョン表示装置11および録画再生装置12に出力して、処理が終了される。
このような処理により、設定に応じて、番組側効き目ベクトルEfPP、ユーザ側効き目ベクトルEfUP、または、ユーザ側反効き目ベクトルEfMUPが用いられて、推薦情報が抽出されるので、ユーザの嗜好を正しく反映した番組を推薦するようにすることができる。
図19を用いて説明した処理では、番組ベクトルPP、正履歴ベクトルUPおよび負履歴ベクトルMUPが、詳細項目の全要素を1列に並べたベクトルで表されている場合の処理について説明したが、番組ベクトルPP、正履歴ベクトルUPおよび負履歴ベクトルMUPを、それぞれ、大項目ごとに演算するようにしても良い。
次に、図20のフローチャートを参照して、大項目ごとに、番組側効き目ベクトルEfPP、ユーザ側効き目ベクトルEfUP、または、ユーザ側反効き目ベクトルEfMUPを反映させることができるようにした、マッチング処理4について説明する。
ステップS131において、図19のステップS121と同様の処理が実行されて、効き目ベクトルの利用設定内容が取得される。
ステップS132において、ベクトル演算部62は、供給された番組ベクトルPPと、正履歴保存部47から読み出した正履歴ベクトルUPのそれぞれの大項目について、番組ベクトルPPと正履歴ベクトルUPのコサイン距離を算出する。ここでは、効き目ベクトルは演算に利用されない。
ステップS133において、ベクトル演算部62は、次の式(7)を用いて、項目ごとに算出されたコサイン距離に、必要に応じて効き目ベクトルを乗算し、得られた値を合計して、類似度SimUPを算出する。
SimUP=epdt・eudt・cosθut+ epdg・eudg・cosθug+ epdp・eudp・cosθup
+ epda・euda・cosθua+ epdk・eudk・cosθuk・・・(7)
なお、式(7)においては、番組ベクトルPP=(pt,pg,pp,pa,pk)と正履歴ベクトルUP=(ut,ug,up,ua,uk)との大項目ごとのコサイン距離が、(cosθut,cosθug,cosθup ,cosθua,cosθuk)であり、番組側効き目ベクトルEfPP=(epdt,epdg,epdp,epda,epdk)、ユーザ側効き目ベクトルEfUP=(eudt,eudg,eudp,euda,eudk)であるものとする。また、式(7)においては、番組側効き目ベクトルEfPPおよびユーザ側効き目ベクトルEfUPのいずれをも利用するものとして説明しているが、設定により、番組側効き目ベクトルEfPPおよびユーザ側効き目ベクトルEfUPのうちのいずれかが利用されない場合、利用されないベクトルに代わって、数値「1」が代入されて計算される。
ステップS134において、ベクトル演算部62は、ステップS133において算出された、番組ベクトルPPと正履歴ベクトルUPとの類似度SimUPを比較し、類似度の上位から、例えば、10などの所定の数の番組ベクトルPPを抽出する。
ステップS135において、ベクトル演算部62は、ステップS134の処理により抽出された番組ベクトルPPと、負履歴保存部48から読み出した負履歴ベクトルMUPのそれぞれの大項目について、番組ベクトルPPと負履歴ベクトルMUPのコサイン距離を算出する。ここでは、効き目ベクトルは演算に利用されない。
ステップS136において、ベクトル演算部62は、次の式(8)を用いて、項目ごとに算出されたコサイン距離に、必要に応じて効き目ベクトルを乗算し、得られた値を合計して、類似度SimMUPを算出する。
SimMUP=epdt・emdt・cosθmt+ epdg・emdg・cosθmg+ epdp・emdp・cosθmp
+ epda・emda・cosθma+ epdk・emdk・cosθmk・・・(8)
なお、式(8)においては、番組ベクトルPP=(pt,pg,pp,pa,pk)と負履歴ベクトルUP=(mt,mg,mp,ma,mk)との大項目ごとのコサイン距離が、(cosθmt,cosθmg,cosθmp ,cosθma,cosθmk)であり、番組側効き目ベクトルEfPP=(epdt,epdg,epdp,epda,epdk、)、ユーザ側反効き目ベクトルEfMUP=(emdt,emdg,emdp,emda,emdk)であるものとする。また、式(8)においては、番組側効き目ベクトルEfPPおよびユーザ側反効き目ベクトルEfMUPのいずれをも利用するものとして説明しているが、設定により、番組側効き目ベクトルEfPPおよびユーザ側反効き目ベクトルEfMUPのうちのいずれかが利用されない場合、利用されないベクトルに代わって、数値「1」が代入されて計算される。
ステップS137において、ベクトル演算部62は、{番組ベクトルPPと正履歴ベクトルUPとのコサイン距離である類似度SimUP}−{番組ベクトルPPと負履歴ベクトルとのコサイン距離である類似度SimMUP}を算出し、その上位となる所定数(例えば3つ)の番組の番組ベクトルPPまたはEPGデータを推薦情報として抽出し、推薦情報出力部49に出力して、推薦番組リスト50に登録させるとともに、テレビジョン表示装置11および録画再生装置12に出力して、処理が終了される。
このような処理により、大項目ごとに、効き目ベクトルが利用されて重み付けが行われるので、ユーザの嗜好に詳細に合致した推薦情報を生成することが可能となる。
次に、図21のフローチャートを参照して、図16を用いて説明した正履歴ベクトルおよび負履歴ベクトル生成処理2の処理により生成された、ジャンル別の正履歴ベクトルUPおよび負履歴ベクトルMUP、並びに、ジャンル別のユーザ側効き目ベクトルEfUPおよびユーザ側反効き目ベクトルEfMUPを用いて、マッチング処理を実行するマッチング処理5について説明する。
ステップS141において、図19のステップS121と同様の処理が実行されて、効き目ベクトルの利用設定内容が取得される。
ステップS142において、ベクトル演算部62は、供給された番組ベクトルPPのジャンルを抽出する。ここでは、例えば、供給された番組ベクトルPPのジャンルが「ドラマ」であったものとして説明する。
ステップS143において、ベクトル演算部62は、供給された番組ベクトルPPと、正履歴保存部47から読み出した、ジャンル「ドラマ」に対応する正履歴ベクトルUPのそれぞれの大項目について、番組ベクトルPPと正履歴ベクトルUPのコサイン距離を算出する。ここでは、効き目ベクトルは演算に利用されない。
ステップS144において、ベクトル演算部62は、次の式(9)を用いて、項目ごとに算出されたコサイン距離に、必要に応じて、ジャンル「ドラマ」に対応するユーザ側効き目ベクトルを乗算し、得られた値を合計して、類似度SimUPを算出する。
SimUP=epdt・eudtd・cosθutd+ epdg・eudgd・cosθugd+ epdp・eudpd・cosθupd
+ epda・eudad・cosθuad+ epdk・eudkd・cosθukd・・・(9)
なお、式(9)においては、番組ベクトルPP=(pt,pg,pp,pa,pk)と、ジャンル「ドラマ」に対応する正履歴ベクトルUP=(ut,ug,up,ua,uk)との大項目ごとのコサイン距離が、(cosθutd,cosθugd,cosθupd ,cosθuad,cosθukd)であり、番組側効き目ベクトルEfPP=(epdt,epdg,epdp,epda,epdk)、ジャンル「ドラマ」に対応するユーザ側効き目ベクトルEfUP=(eudtd,eudgd,eudpd,eudad,eudkd)であるものとする。また、式(9)においては、番組側効き目ベクトルEfPPおよびユーザ側効き目ベクトルEfUPのいずれをも利用するものとして説明しているが、設定により、番組側効き目ベクトルEfPPおよびユーザ側効き目ベクトルEfUPのうちのいずれかが利用されない場合、利用されないベクトルに代わって、数値「1」が代入されて計算される。
ステップS145において、ベクトル演算部62は、ステップS144において算出された、番組ベクトルPPと正履歴ベクトルUPとの類似度SimUPを比較し、類似度の上位から、例えば、10などの所定の数の番組ベクトルPPを抽出する。
ステップS146において、ベクトル演算部62は、ステップS145の処理により抽出された番組ベクトルPPと、負履歴保存部48から読み出したジャンル「ドラマ」に対応する負履歴ベクトルMUPのそれぞれの大項目について、番組ベクトルPPと負履歴ベクトルMUPのコサイン距離を算出する。ここでは、効き目ベクトルは演算に利用されない。
ステップS147において、ベクトル演算部62は、次の式(10)を用いて、項目ごとに算出されたコサイン距離に、必要に応じて、ジャンル「ドラマ」に対応する効き目ベクトルを乗算し、得られた値を合計して、類似度SimMUPを算出する。
SimMUP=epdt・emdtd・cosθmtd+ epdg・emdgd・cosθmgd+ epdp・emdpd・cosθmpd
+ epda・emdad・cosθmad+ epdk・emdkd・cosθmkd・・・(10)
なお、式(10)においては、番組ベクトルPP=(pt,pg,pp,pa,pk)と負履歴ベクトルMUP=(mt,mg,mp,ma,mk)との大項目ごとのコサイン距離が、(cosθmtd,cosθmgd,cosθmpd ,cosθmad,cosθmkd)であり、番組側効き目ベクトルEfPP=(epdt,epdg,epdp,epda,epdk)、ジャンル「ドラマ」に対応するユーザ側反効き目ベクトルEfMUP=(emdtd,emdgd,emdpd,emdad,emdkd)であるものとする。また、式(10)においては、番組側効き目ベクトルEfPPおよびユーザ側反効き目ベクトルEfMUPのいずれをも利用するものとして説明しているが、設定により、番組側効き目ベクトルEfPPおよびユーザ側反効き目ベクトルEfMUPのうちのいずれかが利用されない場合、利用されないベクトルに代わって、数値「1」が代入されて計算される。
ステップS148において、ベクトル演算部62は、{番組ベクトルPPと正履歴ベクトルUPとのコサイン距離である類似度SimUP}−{番組ベクトルPPと負履歴ベクトルとのコサイン距離である類似度SimMUP}を算出し、その上位となる所定数(例えば3つ)の番組の番組ベクトルPPまたはEPGデータを推薦情報として抽出し、推薦情報出力部49に出力して、推薦番組リスト50に登録させるとともに、テレビジョン表示装置11および録画再生装置12に出力して、処理が終了される。
このような処理により、大項目ごとに、ジャンル別の正履歴ベクトルUPおよび負履歴ベクトルMUPと番組ベクトルPPとのコサイン距離が求められ、ジャンルに対応した効き目ベクトルが利用されて重み付けが行われて類似度が算出されるので、ユーザの嗜好に詳細に合致した推薦情報を生成することが可能となる。
また、ユーザ側効き目ベクトルEfUPおよび反効き目ベクトルEfMUPは、上述したように、初期登録保存部45に登録されている、ユーザの初期登録内容を基に生成されるようにしても良いし、正履歴ベクトルUPまたは負履歴ベクトルMUP、あるいは、一定期間にユーザが視聴した番組をカウントすることにより、ユーザ固有のユーザ側効き目ベクトルEfUPおよび反効き目ベクトルEfMUPが生成されるようにしても良い。
図22のフローチャートを参照して、一定期間にユーザが視聴した番組をカウントすることによりユーザ側効き目ベクトルEfUPを生成する、ユーザ側効き目ベクトル生成処理1について説明する。
ステップS151において、マッチング処理部43のユーザ情報登録部63は、未処理の大項目のうちのいずれかを選択する。
ステップS152において、ユーザ情報登録部63は、正履歴保存部47に保存されている正履歴を参照して、例えば、1週間、1ヶ月、または3ヶ月などの一定期間中にユーザが視聴した番組を検出し、番組ベクトル抽出部42に、一定期間中にユーザが視聴した番組に対応する番組ベクトルPPをデータ取得部41から抽出させて、ステップS151において選択された大項目に含まれる詳細項目ごとに番組数をカウントする。
具体的には、例えば、ステップS151において選択された大項目が、大項目ジャンルGm={ドラマ,バラエティ,スポーツ,映画,音楽,子供向け/教育,教養/ドキュメント,ニュース/報道,その他}であれば、ユーザ情報登録部63は、一定期間中にユーザが視聴した番組の番組ベクトルPPの構成要素を、それぞれに対応する項目に分類してカウントする。一定期間中にユーザが視聴した番組が、例えば、50番組であった場合、番組数のカウント結果は、例えば、ジャンルGm=(10,18,5,2,8,1,0,1,5)となる。
ステップS153において、ユーザ情報登録部63は、番組ベクトル抽出部42に、同一期間における全ての番組に対応する番組ベクトルPPをデータ取得部41から抽出させて、ステップS151において選択された大項目に含まれる詳細項目ごとに番組数をカウントする。
具体的には、例えば、ステップS151において選択された大項目が、大項目ジャンルGm={ドラマ,バラエティ,スポーツ,映画,音楽,子供向け/教育,教養/ドキュメント,ニュース/報道,その他}であれば、ユーザ情報登録部63は、同一期間における全ての番組の番組ベクトルPPの構成要素を、それぞれに対応する項目に分類してカウントする。同一期間における全ての番組が、例えば、1000番組であった場合、番組数のカウント結果は、例えば、ジャンルGm=(104,239,68,25,78,91,60,254,81)となる。
ステップS154において、ユーザ情報登録部63は、ステップS152およびステップS153のカウント結果を基に、ユーザの視聴実績のカウント数/全番組のカウント数を算出する。
番組編成は、視聴率競争の影響により、大衆の嗜好を反映していると考えられる。すなわち、ユーザの視聴実績のカウント数/全番組のカウント数の演算は、換言すれば、ユーザの視聴実績のカウント数を、標準モデルとしての全番組のカウント数で正規化することと同義である。ステップS154において算出される正規化ベクトルを正規化ベクトルDと称するものとする。
例えば、大項目ジャンルGm={ドラマ,バラエティ,スポーツ,映画,音楽,子供向け/教育,教養/ドキュメント,ニュース/報道,その他}において、1週間の全番組のカウント数が、(8,12,3,7,6,4,2,8,10)であり、対してユーザが視聴した番組のカウント数が、(4,0,1,2,3,4,1,2,2)であった場合、正規化ベクトルDは、以下のようになる。
D=(4/8,0/12,1/3 ,2/7,3/6,4/4,1/2,2/8,2/10)=(0.5,0,0.33,0.28,0.5,1.0,0.5,0.25,0.2)
すなわち、正規化ベクトルDの構成要素が1.0である場合は、設定された期間中に、該当する項目の全番組を視聴したこと、正規化ベクトルDの構成要素が0である場合は、設定された期間中に、該当する番組は一つも視聴しなかったことを意味する。
ステップS155において、ユーザ情報登録部63は、ステップS154の算出結果を基に、対応する大項目の効き目ベクトルを生成する。
効き目ベクトルを生成するために、大項目ジャンルGm={ドラマ,バラエティ,スポーツ,映画,音楽,子供向け/教育,教養/ドキュメント,ニュース/報道,その他}のうちのいずれかの項目を用いて、標準値を設定する。例えば、ジャンル:「ドラマ」の番組1週間分において、一般的なユーザは、その2割程度を視聴しているとして、標準値を0.2に設定すればよい。大項目の効き目ベクトルは、相対値として算出されるため、設定値は0乃至1のいずれの値であってもかまわない。そして、ユーザ側効き目ベクトルは、ステップS154において算出された正規化ベクトルDと、設定値との相対値である。
従って、ユーザの興味ジャンルを示す、大項目ジャンルGmの効き目ベクトルEは、
E=(0.3,−0.2,0.13,0.08,0.3,0.8,0.3,−0.07,0.0)
と算出されるので、対応するユーザは、「子供向け/教育」のジャンルを好み、「バラエティ」のジャンルを好まないと判断することができる。
ステップS156において、ユーザ情報登録部63は、全ての大項目の効き目ベクトルが生成されたか否かを判断する。ステップS156において、全ての大項目の効き目ベクトルが生成されていないと判断された場合、処理は、ステップS151に戻り、それ以降の処理が繰り返される。
ステップS156において、全ての大項目の効き目ベクトルが生成されたと判断された場合、ステップS157において、ユーザ情報登録部63は、全ての大項目の効き目ベクトルを保存して、処理が終了される。
このような処理により、一般的な嗜好と、ユーザ固有の嗜好との差を求めることができる。また、ユーザ側効き目ベクトルEfUPを、例えば、3ヶ月、半年などの所定の期間ごとに再演算するようにすることにより、ユーザの嗜好をリアルタイムに反映した番組を推薦することができる。
また、図22の処理においては、例えば、1週間、1ヶ月、または3ヶ月などの一定期間中にユーザが視聴した番組を基にユーザ側効き目ベクトルEfUPを求めるものとして説明したが、複数の期間を対象として、例えば、短期、中期、長期に対応するユーザ側効き目ベクトルEfUPを算出し、これら複数の効き目ベクトルを用いて、推薦情報を決定するようにしても良い。
ここでは、ユーザ固有の嗜好を、ユーザ側効き目ベクトルEfUPとして利用する場合について説明したが、ユーザ固有の嗜好を、正履歴ベクトルUPとしてマッチング処理に用いるようにしても良い。
また、放送されている全番組に代わって、視聴者が最も番組を視聴する所定の時間帯(例えば、18時乃至22時の、いわゆる、ゴールデンタイム)に放送される全番組をカウントするようにしてもよい。このようにすることにより、一般的な嗜好を求めるための演算処理を大幅に少なくすることができる。
次に、図23のフローチャートを参照して、正履歴ベクトルUPと、大衆の嗜好との類似度を示すコサイン距離の演算によって、ユーザ固有の嗜好と、大衆の嗜好との隔たりをマッチングに利用するためのユーザ側効き目ベクトルEfUPを求める、ユーザ側効き目ベクトル算出処理2について説明する。
ステップS161において、マッチング処理部43のユーザ情報登録部63は、正履歴保存部47に保存されている正履歴ベクトルUPを取得する。
ステップS162において、ユーザ情報登録部63は、一般的な嗜好を示す、標準嗜好ベクトルAPPを取得する。
標準嗜好ベクトルAPPは、配信サーバ5から供給されるものとしても良いし、または、番組編成は、視聴率競争の影響により、大衆の嗜好を反映していると考えられるので、図22を用いて説明したユーザ側効き目ベクトル算出処理1と同様にして、一定期間に放送された全番組の内容をカウントし、必要に応じて正規化して、標準嗜好ベクトルAPPとするようにしても良い。
配信サーバ5においては、例えば、一般的な視聴率調査や、その他の方法を用いて、一般的な嗜好を示す標準嗜好ベクトルAPPを生成するようにしても良い。
ステップS163において、ユーザ情報登録部63は、大項目ごとに、標準嗜好ベクトルAPPと、正履歴ベクトルUPとのコサイン距離を算出する。コサイン距離が大きいほど、標準嗜好ベクトルAPPと、正履歴ベクトルUPとの類似度が高い。
ステップS164において、ユーザ情報登録部63は、ステップS163において算出されたコサイン距離を基に、大項目ごとに、コサイン距離を逆数にして、効き目ベクトルEfUPを生成して、処理が終了される。コサイン距離の逆数が大きいほど、標準嗜好ベクトルAPPと、正履歴ベクトルUPとの類似度は低い。
このような処理により、一般的な嗜好と、対応するユーザ固有の嗜好との差を反映したユーザ側効き目ベクトルEfUPを求めることができる。このユーザ側効き目ベクトルEfUPを用いて番組推薦処理を行った場合、ユーザの嗜好と一般的な嗜好との違いが強調されて、推薦される番組が決定される。
なお、ここでは、番組ベクトルPP、および正履歴ベクトルUPが、大項目ごとにベクトルで表されているものとして説明したが、番組ベクトルPP、および正履歴ベクトルUPが、詳細項目の全要素を1列に並べたベクトルで表されている場合においても、同様の処理が実行可能であることは言うまでもない。
また、標準嗜好ベクトルAPPと、正履歴ベクトルUPとの類似度は、効き目ベクトルを算出するのみならず、そのユーザのユニーク度を示す指数として、番組の推薦に直接的に用いるようにしても良い。例えば、標準嗜好ベクトルAPPと、正履歴ベクトルUPとの類似度が高い場合、一般向けの流行に即した新番組などを優先的に推薦するようにしても良い。
図22および図23を用いて説明したように、ユーザ側効き目ベクトルEfUPは、ユーザの操作履歴に基づいて、学習的に求められると好適であるが、ユーザ側効き目ベクトルは、予め初期登録として登録されていても良いし、経験などにより求められる、予め設定されている値を用いるようにしても良い。
なお、大項目に着目して、ユーザ側効き目ベクトルEfUPを生成するのみならず、大項目を構成する構成要素に着目して、ユーザ側効き目ベクトルEfUPを生成するようにしても良い。例えば、大項目を構成する構成要素「出演者Pm」において、主役と脇役を区別可能にしておき、ドラマや映画において、主役よりも脇役の配役を優先するユーザは、主役に対して、脇役の重み付けを大きくするようにユーザ側効き目ベクトルEfUPを設定可能としたり、大項目を構成する構成要素「脚本/原作/演出Am」において、監督、演出家、原作者、カメラマンなどを区別可能にしておき、監督や演出家より、カメラマンを重視するユーザは、カメラマンの重み付けを大きくするようにユーザ側効き目ベクトルEfUPを設定可能なようにしても良い。
また、ユーザ側効き目ベクトルEfUPをジャンルごとに生成し、図21を用いて説明したマッチング処理5のように、対応するジャンルの正履歴ベクトルUPと番組ベクトルPPとのマッチングのときに作用させるようにしても良い。
次に、図24のフローチャートを参照して、一定期間にユーザが視聴した番組を、ジャンル別にカウントすることによりユーザ側効き目ベクトルEfUPを生成する、ユーザ側効き目ベクトル生成処理3について説明する。
ステップS171において、マッチング処理部43のユーザ情報登録部63は、一定期間にユーザが視聴した番組を、ジャンル別にカウントするために、いずれかのジャンルを選択する。
ステップS172において、ユーザ情報登録部63は、未処理の大項目のうちのいずれかを選択する。
ステップS173において、ユーザ情報登録部63は、正履歴保存部47に保存されている正履歴を参照して、例えば、1週間、1ヶ月、または3ヶ月などの一定期間中にユーザが視聴した番組のうち、選択されたジャンルのものを検出し、番組ベクトル抽出部42に、一定期間中にユーザが視聴したもののうち、選択されたジャンルの番組に対応する番組ベクトルPPをデータ取得部41から抽出させて、ステップS172において選択された大項目に含まれる詳細項目ごとに番組数をカウントする。
ステップS174において、ユーザ情報登録部63は、番組ベクトル抽出部42に、同一期間における全ての番組のうち、選択されたジャンルに対応する番組ベクトルPPをデータ取得部41から抽出させて、ステップS172において選択された大項目に含まれる詳細項目ごとに番組数をカウントする。
ステップS175において、ユーザ情報登録部63は、ステップS173およびステップS174のカウント結果を基に、選択されたジャンルにおける、ユーザの視聴実績のカウント数/全番組のカウント数を算出する。
上述したように、番組編成は、視聴率競争の影響により、大衆の嗜好を反映していると考えられる。すなわち、選択されたジャンルにおける、ユーザの視聴実績のカウント数/全番組のカウント数の演算は、換言すれば、対応するジャンルにおけるユーザの視聴実績のカウント数を、標準モデルとしての対応するジャンルの全番組のカウント数で正規化することと同義である。ステップS175において算出される正規化ベクトルを正規化ベクトルD´と称するものとする。
例えば、大項目ジャンルGm={ドラマ,バラエティ,スポーツ,映画,音楽,子供向け/教育,教養/ドキュメント,ニュース/報道,その他}のうちの「ドラマ」のジャンルに対応する番組ベクトルPPの、大項目時間帯Tm={朝、昼、夕方、ゴールデン、深夜}において、1週間の全番組のカウント数が、(10,35,7,53,17)であり、対してユーザが視聴した番組のカウント数が、(5,0,0,8,4)であった場合、正規化ベクトルD´は、以下のようになる。
D´=(5/10,0/35,0/7,8/53,4/17)
=(0.5,0,0,0.28,0.15,0.24)
すなわち、正規化ベクトルD´の構成要素が1.0である場合は、設定された期間中に、該当する項目の全番組を視聴したことを意味し、正規化ベクトルD´の構成要素が0である場合は、設定された期間中に、該当する番組は一つも視聴しなかったことを意味する。
ステップS176において、ユーザ情報登録部63は、ステップS175の算出結果を基に、選択されたジャンルにおける、対応する大項目の効き目ベクトルを生成する。
効き目ベクトルを生成するために、大項目時間帯Tm={朝、昼、夕方、ゴールデン、深夜}のうちのいずれかの項目を用いて、標準値を設定する。例えば、時間帯:「ゴールデン」の番組1週間分において、一般的なユーザは、ドラマの2割程度を視聴しているとして、標準値を0.2に設定すればよい。大項目の効き目ベクトルは、相対値として算出されるため、設定値は0乃至1のいずれの値であってもかまわない。そして、ユーザ側効き目ベクトルは、ステップS175において算出された正規化ベクトルD´と、設定値との相対値である。
従って、ユーザの興味ジャンルを示す、大項目ジャンルGmの効き目ベクトルE´は、
E´=(0.3,−0.2,−0.2,−0.05,0.04)
と算出されるので、対応するユーザは、朝の時間帯のドラマを好み、昼や夕方の時間帯のドラマを好まないと判断することができる。
ステップS177において、ユーザ情報登録部63は、選択されたジャンルにおいて、全ての大項目の効き目ベクトルが生成されたか否かを判断する。ステップS177において、全ての大項目の効き目ベクトルが生成されていないと判断された場合、処理は、ステップS172に戻り、それ以降の処理が繰り返される。
ステップS177において、全ての大項目の効き目ベクトルが生成されたと判断された場合、ステップS196において、ユーザ情報登録部63は、全てのジャンルの処理が終了したか否かを判断する。ステップS178において、全てのジャンルが終了していないと判断された場合、処理は、ステップS171に戻り、それ以降の処理が繰り返される。
ステップS178において、全てのジャンルが終了したと判断された場合、ステップS179において、ユーザ情報登録部63は、全ての大項目の効き目ベクトルを保存して、処理が終了される。
このような処理により、一般的な嗜好と、ユーザ固有の嗜好との差をジャンル別に求めることができる。また、図22を用いて説明した場合と同様にして、ユーザ側効き目ベクトルEfUPを、例えば、3ヶ月、半年などの所定の期間ごとに再演算するようにすることにより、ユーザの嗜好をリアルタイムに反映した番組を推薦することができる。
また、図24の処理においても、例えば、1週間、1ヶ月、または3ヶ月などの一定期間中にユーザが視聴した番組を基にユーザ側効き目ベクトルEfUPを求めるものとして説明したが、図22を用いて説明した場合と同様にして、複数の期間を対象として、例えば、短期、中期、長期に対応するユーザ側効き目ベクトルEfUPを算出し、これら複数の効き目ベクトルを用いて、推薦情報を決定するようにしても良い。
また、図24の処理においても、放送されている全番組に代わって、視聴者が最も番組を視聴する所定の時間帯(例えば、18時乃至22時の、いわゆる、ゴールデンタイム)に放送される全番組をカウントするようにしてもよい。
次に、図25のフローチャートを参照して、正履歴ベクトルUPと、大衆の嗜好との類似度を示すコサイン距離の演算を、ジャンル別に実行することによって、ユーザ固有の嗜好と大衆の嗜好との隔たりをマッチングに利用するためのユーザ側効き目ベクトルEfUPを求める、ユーザ側効き目ベクトル生成処理4について説明する。
ステップS191において、マッチング処理部43のユーザ情報登録部63は、処理を実行するジャンルを指定するために、いずれかのジャンルを選択する。
ステップS192において、ユーザ情報登録部63は、正履歴保存部47に保存されている正履歴ベクトルUPのうち、選択されたジャンルの正履歴ベクトルUPを取得する。
ステップS193において、ユーザ情報登録部63は、一般的な嗜好を示す、標準嗜好ベクトルAPPのうち、選択されたジャンルの標準嗜好ベクトルAPPを取得する。
標準嗜好ベクトルAPPは、上述したように、配信サーバ5から供給されるものとしても良いし、または、番組編成は、視聴率競争の影響により、大衆の嗜好を反映していると考えられるので、図24を用いて説明したユーザ側効き目ベクトル算出処理3と同様にして、一定期間に放送された全番組の内容をジャンル別にカウントし、必要に応じて正規化して、ジャンル別標準嗜好ベクトルAPPとするようにしても良い。
配信サーバ5においては、例えば、一般的な視聴率調査や、その他の方法を用いて、一般的な嗜好を示す標準嗜好ベクトルAPPをジャンル別に生成するようにしても良い。
ステップS194において、ユーザ情報登録部63は、選択されたジャンルの正履歴ベクトルUPと、選択されたジャンルの標準嗜好ベクトルAPPを用いて、大項目ごとに、標準嗜好ベクトルAPPと、正履歴ベクトルUPとのコサイン距離を算出する。コサイン距離が大きいほど、標準嗜好ベクトルAPPと、正履歴ベクトルUPとの類似度が高い。
ステップS195において、ユーザ情報登録部63は、ステップS194において算出されたコサイン距離を基に、大項目ごとに、コサイン距離を逆数にして、選択されたジャンルの効き目ベクトルEfUPを生成する。コサイン距離の逆数が大きいほど、標準嗜好ベクトルAPPと、正履歴ベクトルUPとの類似度は低い。
ステップS196において、ユーザ情報登録部63は、全てのジャンルの処理が終了したか否かを判断する。ステップS178において、全てのジャンルが終了していないと判断された場合、処理は、ステップS191に戻り、それ以降の処理が繰り返される。ステップS196において、全てのジャンルが終了したと判断された場合、処理が終了される。
このような処理により、一般的な嗜好と、対応するユーザ固有の嗜好との差を反映した、ジャンル別のユーザ側効き目ベクトルEfUPを求めることができる。
また、図23を用いて説明した処理と同様にして、標準嗜好ベクトルAPPと、負履歴ベクトルMUPとの類似度を求め、その逆数を、反効き目ベクトルEfMUPとして算出するようにしてもよい。
次に、図26のフローチャートを参照して、負履歴ベクトルMUPを、大衆の嗜好と比較することにより、反効き目ベクトルEfMUPを求めるユーザ側反効き目ベクトル算出処理1について説明する。
ステップS201において、マッチング処理部43のユーザ情報登録部63は、負履歴保存部48に保存されている負履歴ベクトルMUPを取得する。
ステップS202において、ユーザ情報登録部63は、一般的な嗜好を示す、標準嗜好ベクトルAPPを取得する。
標準嗜好ベクトルAPPは、配信サーバ5から供給されるものとしても良い。あるいは、番組編成は、視聴率競争の影響により、大衆の嗜好を反映していると考えられるので、図22を用いて説明したユーザ側効き目ベクトル算出処理1と同様にして、一定期間に放送された全番組の内容をカウントし、必要に応じて正規化して、標準嗜好ベクトルAPPとするようにしても良い。
ステップS203において、ユーザ情報登録部63は、大項目ごとに、標準嗜好ベクトルAPPと、負履歴ベクトルMUPとのコサイン距離を算出する。コサイン距離が大きいほど、標準嗜好ベクトルAPPと、負履歴ベクトルMUPとの類似度が高い。
ステップS204において、ユーザ情報登録部63は、ステップS203において算出されたコサイン距離を基に、大項目ごとに、コサイン距離を逆数にして、反効き目ベクトルEfMUPを生成して、処理が終了される。
このような処理により、反効き目ベクトルEfMUPを生成することができるので、ユーザが好まない番組を、推薦する番組から効果的に省くことができる。
次に、図27のフローチャートを参照して、ジャンル別に実行されるユーザ側反効き目ベクトル生成処理2について説明する。
ステップS211において、マッチング処理部43のユーザ情報登録部63は、処理を実行するジャンルを指定するために、いずれかのジャンルを選択する。
ステップS212において、ユーザ情報登録部63は、負履歴保存部48に保存されている負履歴ベクトルMUPのうち、選択されたジャンルの負履歴ベクトルMUPを取得する。
ステップS213において、ユーザ情報登録部63は、一般的な嗜好を示す、標準嗜好ベクトルAPPのうち、選択されたジャンルの標準嗜好ベクトルAPPを取得する。
ステップS214において、ユーザ情報登録部63は、選択されたジャンルの負履歴ベクトルMUPと選択されたジャンルの標準嗜好ベクトルAPPとを基に、大項目ごとに、標準嗜好ベクトルAPPと、負履歴ベクトルMUPとのコサイン距離を算出する。コサイン距離が大きいほど、標準嗜好ベクトルAPPと、負履歴ベクトルMUPとの類似度が高い。
ステップS215において、ユーザ情報登録部63は、ステップS214において算出されたコサイン距離を基に、大項目ごとに、コサイン距離を逆数にして、反効き目ベクトルEfMUPを生成する。コサイン距離の逆数が大きいほど、標準嗜好ベクトルAPPと、負履歴ベクトルMUPとの類似度が低い。
ステップS216において、ユーザ情報登録部63は、全てのジャンルの処理が終了したか否かを判断する。ステップS216において、全てのジャンルが終了していないと判断された場合、処理は、ステップS211に戻り、それ以降の処理が繰り返される。ステップS216において、全てのジャンルが終了したと判断された場合、処理が終了される。
このような処理により、反効き目ベクトルEfMUPを、ジャンル別に生成することができるので、ユーザが好まない番組を、推薦する番組から効果的に省くことができる。
なお、ユーザ側効き目ベクトルEfUPと、反効き目ベクトルEfMUPは、図23、および、図25乃至図27を用いて説明した大項目ごとのコサイン距離の逆数をn倍した値、あるいは、所定の桁で四捨五入した値を用いるものとしてもかまわないし、1からコサイン距離の逆数を減算した値、あるいは、その値をn倍した値を用いるものとしてもかまわない。
ここでは、番組ベクトルPP、および負履歴ベクトルMUPが、大項目ごとにベクトルで表されているものとして説明したが、番組ベクトルPP、および負履歴ベクトルMUPが、詳細項目の全要素を1列に並べたベクトルで表されている場合においても、同様の処理が実行可能であることは言うまでもない。
また、番組ベクトル抽出部42によって抽出される番組ベクトルには、図7または図8を用いて説明した処理により生成された、クループID、またはクラスタコードなどのグループを示す情報が付加されている場合がある。
例えば、ユーザが好んで視聴する番組が、連続ドラマであった場合、該当する連続ドラマは、全ての回において推薦されるようにすれば、推薦のための演算処理を削減することができる。また、ユーザに非常に好まれている番組と同グループの番組を優先的に推薦するようにすることによっても、推薦のための演算処理を削減することができる。
次に、図28のフローチャートを参照して、クループ推薦を含むマッチング処理について説明する。
ステップS221において、マッチング処理部43のベクトル演算部62は、番組ベクトル抽出部42から供給された番組ベクトルPPに、クループID、またはクラスタコードなどのグループを示す情報が付加されているか否かを基に、対応する番組は、グループ化されているか否かを判断する。
ステップS221において、対応する番組はグループ化されていると判断された場合、ステップS222において、ベクトル演算部62は、クループID、またはクラスタコードで示されるグループは、推薦優先グループとして、ユーザ情報登録部63に登録されているか否かを判断する。
ステップS222において、推薦優先グループとして登録されていると判断された場合、ステップS223において、ベクトル演算部62は、対応する番組の情報を、推薦情報として、推薦情報出力部49に供給する。推薦情報出力部49は、推薦番組リスト50に推薦する番組を登録するとともに、テレビジョン表示装置11、または、録画再生装置12に、推薦する番組の情報を出力して、処理は、後述するステップS227に進む。
ステップS221において、対応する番組はグループ化されていないと判断された場合、または、ステップS222において、推薦優先グループとして登録されていないと判断された場合、ステップS224において、図17乃至図21を用いて説明した、マッチング処理1乃至マッチング処理5のいずれかの処理が実行される。
ステップS225において、ベクトル演算部62は、ステップS224において実行されたマッチング処理1乃至マッチング処理5のいずれかの処理において推薦された番組の番組ベクトルに、クループID、またはクラスタコードなどのグループを示す情報が付加されているか否かを基に、推薦された番組は、グループ化されているか否かを判断する。ステップS225において、推薦された番組は、グループ化されていないと判断された場合、処理は終了される。
ステップS225において、推薦された番組は、グループ化されていると判断された場合、ステップS226において、ベクトル演算部62は、番組ベクトルに付加しているグループID、またはクラスタコードを、推薦優先グループとして、ユーザ情報登録部63に登録して保存する。
ステップS223、または、ステップS226の処理の終了後、ステップS227において、ベクトル演算部62は、負履歴保存部48に保存されている負履歴の操作ログを参照して、ステップS223の処理により推薦された番組、または、ステップS224の処理により推薦された番組のうち、グループ化されているので、ステップS226の処理において推薦優先グループとして登録された番組に対して、例えば、推薦した番組が受け入れられずにその他の番組の視聴の視聴または録画を指令する操作入力や、自動録画された番組の再生前の消去を指令する操作入力など、負の履歴となる操作入力を受けたか否かを判断する。ステップS227において、負の履歴となる操作入力を受けていないと判断された場合、処理が終了される。
ステップS227において、負の履歴となる操作入力を受けたと判断された場合、ステップS228において、ベクトル演算部62は、ユーザ情報登録部63の推薦優先グループの登録から、対応するグループをはずして、処理が終了される。
なお、図9を用いて説明したタイトルグループ化処理1により、1つの番組ベクトルPPに複数のグループIDが関連付けられている場合もある。特にこのような場合には、ステップS228において、負の履歴となる操作入力により、ユーザ情報登録部63の推薦優先グループの登録から、全てのグループIDがはずされるようにしても良いし、負の履歴となる操作入力の回数を蓄積するようにし、所定の数だけ負の履歴となる操作入力が行われた場合に、ユーザ情報登録部63の推薦優先グループの登録から、対応するグループIDがはずされるようにしても良い。また、1つの番組ベクトルPPに1つののグループIDが関連付けられている場合においても同様である。
このような処理により、ユーザが好んで視聴している連続ドラマを全ての回において推薦されるようにしたり、ユーザに非常に好まれている番組と同グループの番組を推薦するようにすることができるので、推薦のための演算処理を削減することができる。
このように、グループ推薦を含むマッチング処理が行われている場合、テレビジョン表示装置11または録画再生装置12から取得されるユーザの操作履歴を基に生成される正履歴ベクトルUPおよび負履歴ベクトルMUPは、対応するグループごとに生成されるようにしてもよい。
また、テレビジョン表示装置11または録画再生装置12から取得されるユーザの操作履歴のうちの正履歴を基に、同一の連続ドラマにおける視聴または録画予約の回数をカウントし、所定回数以上になった場合に、マッチング処理を特に行うことなく、優先的に推薦するようにしてもかまわない。
また、ユーザ履歴を用いて番組の推薦処理を行うのではなく、ユーザが予め指定したトピックを基にユーザモデルを設定し、ユーザモデルを基に番組の推薦処理を行うようにしてもよい。
ユーザモデルは、所定の番組群から、ユーザが予め指定したトピックを用いてフィルタリングを行うことにより、トピックに対応する番組を抽出することで得られる。初期登録保存部45は、ユーザにより入力されたトピックを保存する。登録されるトピックは複数であってもかまわないし、ユーザの操作入力によって、適宜、更新される。ベクトル演算部62は、番組ベクトル抽出部42から供給される、ユーザモデル作成対象の番組の番組ベクトルにおいて、初期登録保存部45に保存されているトピックを含む番組ベクトルを抽出し、抽出された番組ベクトルの総和を、必要に応じて正規化することにより、ユーザモデルベクトルを生成し、ユーザ情報登録部63に登録する。
これにより、例えば、トピックとして、時間帯Hm=「23時以降」およびジャンルGm=「バラエティ」が指定された場合、これらのトピックを用いてフィルタリングが行われ、ユーザモデル「深夜のバラエティ」が生成される。ユーザモデル「深夜のバラエティ」には、23時以降の深夜枠に放送されるバラエティ番組に出演したコメディアンが構成要素として含まれるので、例えば、ドラマなどの、バラエティとは異なるジャンルの番組において、対応するコメディアンが出演する番組がマッチング処理において抽出され、推薦されるので、項目ごとにマッチング処理を行う場合と比較して、ユーザの嗜好を、ジャンルなどを超越して適用することが可能となる。
なお、ユーザモデル作成対象の番組は、例えば、所定期間の全番組であっても、所定の時間帯(例えば、いわゆるゴールデンタイム)に放送された番組群であってもよい。
また、例えば、同じフィルタリング条件を用いて、異なる番組集合を対象にフィルタリングを行うことによって、例えば、異なる時期、あるいは、異なる時間帯などの、異なる番組編成に詳細に対応したユーザモデルベクトルを生成することができる。
具体的には、同じ「ジャンルGm=音楽」という条件でも、現在の番組編成と、10年前の番組編成では、放送時刻や出演者に違いがあるので、「現在の音楽ファン」「10年前の音楽ファン」という異なるユーザモデルを生成することができる。これにより、「10年前の音楽ファン」が好んで聞いていたポップス歌手が、現在、俳優として出演しているドラマや映画などを推薦したり、または、「10年前の音楽ファン」が好んで聞いていた楽曲を、現在の歌手が歌うような番組を推薦することが可能となる。
また、例えば、主に社会人が視聴するような、20時乃至24時などの時間帯と、主に子供が視聴するような、15時乃至20時などの時間帯とでは、同じ「ジャンルGm=音楽」という条件でも、フィルタリングにより異なる番組群を得ることができるので、異なるユーザモデルを生成することができる。
そして、ベクトル演算部62は、番組ベクトル抽出部42から供給される番組の番組ベクトルPPと、ユーザ情報登録部63に登録されているユーザモデルベクトルとの類似度を演算し、その結果を基に、推薦情報を生成し、推薦情報出力部49に供給する。推薦情報出力部49は、推薦情報を、推薦番組リスト50に登録するとともに、テレビジョン表示装置11、または、録画再生装置12に供給する。
次に、図29のフローチャートを参照して、ユーザモデルを用いたマッチング処理について説明する。
ステップS231において、マッチング処理部43のベクトル演算部62は、番組ベクトル抽出部42において抽出された、ユーザモデル作成対象の番組の番組ベクトルを取得する。ユーザモデル作成対象の番組とは、例えば、1ヶ月または3ヶ月などの所定の期間に放送された番組であっても、それら所定の期間中の所定の時間帯(例えば、ゴールデンタイム)に放送された番組であっても良いし、あるいは、10年前、20年前などの、過去の所定の期間に放送された番組であっても良い。
ステップS232において、初期登録保存部45は、操作入力部44より、ユーザにより入力されたトピックを取得し、保存する。ベクトル演算部62は、初期登録保存部45からトピックを読み出して、フィルタリング条件として設定する。フィルタリング条件は、例えば、ハッシュテーブルとして記載されるようにしても良い。
ステップS233において、ベクトル演算部62は、ステップS231において取得された番組ベクトルPPを、ステップS232において設定されたフィルタリング条件を基にフィルタリングし、トピックに合致する番組ベクトルPPを抽出する。例えば、ユーザモデル作成対象の番組が、過去3ヶ月間の全番組である場合、ベクトル演算部62は、過去3ヶ月間の全番組ベクトルPPに対して「タイトルTm、または、ジャンルGm=サッカー」という条件でフィルタリングを施す。
ステップS234において、ベクトル演算部62は、ステップS233においてフィルタリングによって抽出された番組ベクトルPPの総和を求めて、ユーザモデルベクトルとする。例えば、「タイトルTm、または、ジャンルGm=サッカー」という条件でフィルタリングが施された場合、「サッカーファン」というユーザモデルのユーザモデルベクトルが生成される。
ステップS235において、ベクトル演算部62は、ステップS234において生成されたユーザモデルベクトルと、番組ベクトル抽出部42において抽出された、推薦情報を求めるための候補となる(この後放送される予定である)番組の番組ベクトルPPとのコサイン距離を算出する。
ステップS236において、ベクトル演算部62は、ステップS235において算出されたコサイン距離を基に、ユーザモデルベクトルと推薦情報を求めるための候補となる番組の番組ベクトルPPとの類似度を比較し、比較結果を基に、類似度が高いもののうち、上位から所定の数の番組を推薦情報として抽出し、推薦情報出力部49に供給する。推薦情報出力部49は、推薦情報を、推薦番組リスト50に登録するとともに、テレビジョン表示装置11、または、録画再生装置12に供給して、処理が終了される。
このような処理により、ユーザの操作履歴がない場合においても、ユーザが設定したトピックに合致した番組を推薦することができる。また、従来においては、例えば、「タイトルTm、または、ジャンルGm=サッカー」という条件を設定してマッチング処理を行った場合、サッカー選手が出演するバラエティやドラマなどを抽出することができなかった。これに対して、図29を用いて説明した処理においては、「タイトルTm、または、ジャンルGm=サッカー」というトピックでユーザモデルを設定することにより、ユーザモデルベクトルの出演者や内容などの項目にも、サッカー選手名が多く含まれるために、たとえ「タイトルTm、または、ジャンルGm=サッカー」という条件に合致していない番組であっても、サッカー選手が出演するバラエティやドラマなどを抽出して推薦することが可能となる。
ここでは、ユーザモデルベクトルと、番組ベクトルとのコサイン距離を算出することにより、類似度を求めるものとして説明しているが、大項目ごとに、個別にコサイン距離を算出し、その合計を用いて類似度を求めるようにしても良い。
なお、ユーザモデルベクトルの生成処理は、配信サーバ5において実行されるようにしてもよい。その場合、例えば、図2を用いて説明した番組ベクトル生成部23が生成した番組ベクトルを用いて、図29のステップS231乃至ステップS234の処理が実行されるようにすれば良い。
また、ユーザの嗜好にあった番組を推薦するばかりでなく、正履歴ベクトルUPおよび負履歴ベクトルMUPのいずれとも類似度が低いものを選ぶと、好きでも嫌いでもない、すなわち、これまでユーザが視聴したことのない特徴を有する番組、換言すれば、食わず嫌いの番組が推薦される可能性が高くなる。このように、ユーザの嗜好を抽出して学習を進めるためには、これまでユーザが視聴したことのない特徴を有する番組も評価してもらうことが重要である。
これにより、ユーザに対して提供する推薦結果に意外性を与え、ユーザの興味の拡大につなげることが可能になるばかりでなく、よりユーザの嗜好に合致した番組を推薦するために、非常に重要な履歴情報を取得することが可能となる。
次に、図30のフローチャートを参照して、例外推薦番組選択処理について説明する。
ステップS241において、マッチング処理部43のベクトル演算部62は、番組ベクトル抽出部42から供給された番組ベクトルPPと、正履歴保存部47に保存されている正履歴ベクトルUP、および、負履歴保存部48に保存されている負履歴ベクトルMUPとを用いて、大項目ごとに、正履歴ベクトルUPと番組ベクトルPPとのコサイン距離、および、負履歴ベクトルMUPと番組ベクトルPPとのコサイン距離を、それぞれ算出する。
ステップS242において、ベクトル演算部62は、項目ごとに算出されたコサイン距離の値を、正履歴側と負履歴側で、それぞれ、合計する。すなわち、ステップS241およびステップS242の処理により、上述した、正履歴ベクトルUPと番組ベクトルPPとの類似度SimUPおよび負履歴ベクトルMUPと番組ベクトルPPとの類似度SimMUPが算出される。
ステップS243において、ベクトル演算部62は、正履歴ベクトルUP、および、負履歴ベクトルMUPとの類似度の低さを示す例外推薦値を算出する。
具体的には、例外推薦値は、(1−SimUP)×(1−SimMUP)または(1/SimUP)×(1/SimMUP)によって求めることが可能である。
ステップS244において、ベクトル演算部62は、ステップS243の算出結果を基に、例外推薦値の高い番組を求め、推薦情報として抽出し、処理が終了される。
このような処理により、これまでユーザが視聴したことのない特徴を有する番組を抽出して推薦することができるので、ユーザへの推薦番組の選択に、意外性を与え、ユーザの興味の拡大につなげることが可能になるばかりでなく、よりユーザの嗜好に合致した番組を推薦するために、非常に重要な履歴情報を取得することが可能となる。
図13乃至図30を用いて説明した処理により、番組推薦処理装置10において、推薦情報が生成されて、テレビジョン表示装置11、または、録画再生装置12に供給される。
テレビジョン表示装置11、または、録画再生装置12には、テレビジョン受信装置4において受信されて復号された衛星波または地上波の放送信号が供給される。
テレビジョン表示装置11は、ユーザの操作入力を基に、テレビジョン受信装置4から供給された放送信号、または、録画再生装置12から供給された再生データを表示したり、番組推薦処理装置10から供給された推薦情報を基に、推薦番組情報を表示したり、チャンネルの自動設定を実行する。更に、テレビジョン表示装置11は、操作ログを番組推薦処理装置10に供給する。
また、録画再生装置12は、ユーザの操作入力を基に、テレビジョン受信装置4から供給された放送信号を録画または録画予約したり、番組推薦処理装置10から供給された推薦情報を基に、番組を自動録画する。また、録画再生装置12は、装着された記録媒体、または、内蔵する記録媒体に録画されている番組を再生し、テレビジョン表示装置11に出力して表示させる。更に、録画再生装置12は、操作ログを番組推薦処理装置10に供給する。
図31は、テレビジョン受信装置4の構成を示すブロック図である。テレビジョン受信装置4は、デジタル放送用受信装置の標準規格に対応する一般的な受信装置であるものとして説明する。
衛星波検波部91は、衛星2を介して送信され、アンテナ3によって受信された衛星波を、テレビジョン表示装置11、または、録画再生装置12から供給されたチャンネルを選択する信号を基に選局して検波し、伝送モードに関する制御信号をTMCC(Transmission and Multiplexing Configuration Control)復号部92に、放送信号を復調・復号処理部93に供給する。
TMCC復号部92は、伝送多重制御信号における伝送モード(変調方式、符号化率など)やスロット等の情報の入力を受け、これらの情報を復号し、復調・復号処理部93に供給する。
復調・復号処理部93は、TMCC復号部92から供給された、伝送モードに関する情報に基づいて、供給された放送信号を、例えば、QPSK(quadri-phase shift keying:4位相変調方式、または、4相PSKとも称する)方式や、8相PSK方式などの方法を用いて復調および復号し、デインタリーバ94に供給する。
デインタリーバ94は、供給された信号をデインタリーブして、誤り訂正処理部95に供給する。また、デインタリーバ94は、供給された信号に対して、更に、フレーム分離やデスクランブルの処理を施すようにしても良い。
誤り訂正処理部95は、例えば、リードソロモン符号などを用いた誤り訂正処理を行い、CA(Conditional Access:限定受信)デスクランブル部101に供給する。
地上波検波部96は、アンテナ3によって受信された地上波を、テレビジョン表示装置11または録画再生装置12から供給された、チャンネルを選択する制御信号を基に選局して検波し、伝送モードに関する制御信号をTMCC復号部97に、放送信号を復調・復号処理部98に供給する。
TMCC復号部97は、伝送多重制御信号における伝送モード(変調方式、符号化率など)やスロット、TS等の情報の入力を受け、これらの情報を復号し、復調・復号処理部98に供給する。
復調・復号処理部98は、TMCC復号部97から供給された、伝送モードに関する情報に基づいて、供給された放送信号を、例えば、QAM(quadrature amplitude modulation:直交振幅変調)方式などの方法を用いて復調および復号し、デインタリーバ99に供給する。
デインタリーバ99は、供給された信号をデインタリーブして、TS(Transport Stream;トランスポートストリーム)再生部100に供給する。また、デインタリーバ99は、供給された信号に対して、更に、フレーム分離やデスクランブルの処理を施すようにしても良い。
TS再生部100は、供給された信号を基に、トランスポートストリームを再生し、CAデスクランブル部101に供給する。
CAデスクランブル部101は、誤り訂正処理部95、または、TS再生部100から供給された信号を基に、限定受信信号をデスクランブルし、デマルチプレクサ102に供給する。
データ入力部103は、EPG受信装置9から、EPGデータの入力を受けたり、ネットワーク8を介して、配信サーバ5より、ストリーミングデータの供給を受け、デマルチプレクサ102に供給する。
デマルチプレクサ102は、CAデスクランブル部101、または、データ入力部103から供給された信号をデマルチプレクスし、音声信号は音声信号復号部104に、映像信号は、映像信号復号部105に、そして、制御信号やEPGなどのデータは、データ復号部106にそれぞれ供給する。
音声信号復号部104は、供給された音声信号を復号し、テレビジョン表示装置11、または、録画再生装置12に供給する。映像信号復号部105は、供給された映像信号を復号し、テレビジョン表示装置11、または、録画再生装置12に供給する。データ復号部106は、供給された制御信号やEPGなどのデータを復号し、テレビジョン表示装置11、または、録画再生装置12に供給する。
テレビジョン受信装置4の処理により、受信された衛星波、または地上波、あるいは、配信されたストリーミングデータが、所定の方式により復調および復号されて、テレビジョン表示装置11、または、録画再生装置12に供給される。
図32は、テレビジョン表示装置11の構成を示すブロック図である。
操作入力部121は、ユーザからの操作入力を受け、テレビジョン表示装置11の各部にユーザの操作入力に対応する制御信号を供給するとともに、ユーザの操作内容を操作ログリスト122に供給して保存させる。操作ログリスト122に保存されているユーザの操作ログは、図13を用いて説明した番組推薦処理装置10の操作ログ取得部46により取得される。また、ユーザの操作入力が、チャンネルの選択であった場合、操作入力部121は、入力されたユーザの操作をチャンネル設定部123に供給する。
チャンネル設定部123は、操作入力部121から供給されたユーザの操作入力を示す信号に基づいて、チャンネルの選択を示す制御信号を生成し、テレビジョン受信装置4に供給する。また、チャンネル設定部123は、後述する推薦番組リスト128に登録されている推薦情報に基づいて、自動的にチャンネルを設定するために、チャンネルの選択を示す制御信号を生成し、テレビジョン受信装置4に供給する。テレビジョン受信装置4は、制御信号に基づいて、指定されたチャンネルの放送信号を受信する。
データ入力部124は、テレビジョン受信装置4から放送信号の入力を受け、画像処理部125に供給する。画像処理部125は、供給された放送信号に対して、出力部126の画像表示方法に基づいて、画像処理を施し、出力部126に供給する。出力部126は、例えば、CRT(Cathode Ray Tube)、または、LCD(Liquid Crystal Display)などの表示デバイスと、スピーカなどの音声出力デバイスで構成され、供給された画像処理後の放送信号の画像信号を表示デバイスに表示し、音声出力デバイスから音声信号を出力する。
推薦番組リスト取得部127は、番組推薦処理装置10から、推薦情報を取得し、推薦番組リスト128に供給する。推薦番組リスト128は、供給された推薦情報を登録する。推薦番組リスト128に登録された推薦情報は、チャンネル設定部123に読み出されたり、推薦番組情報表示制御部129に読み出される。
推薦番組情報表示制御部129は、番組の推薦情報をユーザに提示するために、推薦番組リスト128から読み出した推薦情報を、画像処理部125に出力する。画像処理部125は、推薦番組情報表示制御部129から供給された推薦情報を、単独で、または、データ入力部124から供給された放送信号の画像に重畳させて、出力部126に出力して、表示デバイスに表示させる。
なお、番組推薦処理装置10から供給される推薦情報を基に、出力部126に推薦情報を表示させるか、自動的にチャンネルを設定させるようにするかは、ユーザの設定によって決定されるようにしても良い。
図33のフローチャートを参照して、番組推薦処理装置10から供給される推薦情報を基に、ユーザに番組推薦情報を提示するための推薦情報表示処理について説明する。
ステップS251において、推薦番組リスト取得部127は、番組推薦処理装置10の推薦情報出力部49から出力された推薦情報を取得する。
ステップS252において、推薦番組リスト取得部127は、取得した推薦情報を、推薦番組リスト128に登録する。
ステップS253において、推薦番組情報表示制御部129は、推薦番組リスト128から、例えば、3時間や1日など、現在時刻よりも所定の時間以内に放送される番組の推薦情報を読み出し、推薦する番組のタイトル、内容、放送時間、および、放送チャンネルなどを表示させるための、推薦情報表示用のデータを生成し、画像処理部125に供給する。
ステップS254において、画像処理部125は、供給された推薦情報表示用のデータを、出力部126に表示させるための画像処理を実行し、出力部126に供給する。推薦情報は、単独で、または、データ入力部124から供給された放送信号の画像に重畳されて、画像処理される。
ステップS255において、出力部126は、画像処理部125から供給された推薦情報を表示し、処理が終了される。
このような処理により、出力部126に推薦情報が表示されるので、ユーザは、表示された推薦情報を参照して、視聴する番組を選択することが可能となる。
次に、図34のフローチャートを参照して、番組推薦処理装置10から供給される推薦情報を基に、自動的にチャンネルを設定して、ユーザの嗜好に合致した番組を表示させるための自動チャンネル設定処理について説明する。
ステップS271およびステップS272において、図33を用いて説明したステップS251およびステップS252と同様の処理が実行される。すなわち、番組推薦処理装置10の推薦情報出力部49から出力された推薦情報が取得され、取得された推薦情報が、推薦番組リスト128に登録される。
チャンネル設定部123は、ステップS273において、番組推薦リスト128から、現在時刻に対応する推薦番組の情報を取得し、ステップS274において、推薦番組の情報を基に、チャンネル設定情報を生成し、テレビジョン受信装置4に出力する。テレビジョン受信装置4は、制御信号に基づいて、指定されたチャンネルの放送信号を受信する。
ステップS275において、データ入力部124は、テレビジョン受信装置4から指定されたチャンネルの放送信号を取得し、画像処理部125に供給する。
ステップS276において、画像処理部125は、供給された放送信号に、出力部126に表示させるための画像処理を実行し、出力部126に供給する。
ステップS277において、出力部126は、画像処理部125から供給された、推薦された番組の映像を表示して、音声を出力し、処理が終了される。
このような処理により、自動的に、ユーザの嗜好に合致した番組が放送されているチャンネルにチャンネル設定される。図34を用いて説明した自動チャンネル設定処理は、例えば、ユーザが指令したときに実行されるようにしても良い。これにより、ユーザが、どの番組を視聴するかを悩んだ場合などに、適切な番組が放送されている番組にチャンネルを自動的に設定することが可能となる。
また、図34を用いて説明した自動チャンネル設定処理は、例えば、2時間など、特に意識してチャンネルを設定せず、ただ放置されていると判断可能なような所定の時間ごとに、あるいは、放置されていると判断可能なような所定の時間、ユーザからの操作入力がなかった場合などに実行されるようにしても良い。
なお、ユーザが意識して番組を視聴している途中で、自動的にチャンネルが切り替わってしまうことがないように、自動チャンネル設定処理の実行不可のモードを用意して、ユーザが指令することができるようにしても良い。
図35は、録画再生装置12の構成を示すブロック図である。
操作入力部141は、ユーザからの操作入力を受け、録画再生装置12の各部にユーザの操作入力に対応する制御信号を供給するとともに、ユーザの操作内容を操作ログリスト142に供給して保存させる。操作ログリスト142に保存されているユーザの操作ログは、図13を用いて説明した番組推薦処理装置10の操作ログ取得部46により取得される。
録画設定部143は、操作入力部141から供給されたユーザの操作入力を示す信号に基づいて、または、後述する推薦番組リスト149に登録されている推薦情報から、例えば、録画する番組の放送開始時間および放送終了時間、並びに、放送されるチャンネルなど、録画処理を行うために必要な情報を抽出する。録画設定部143は、操作入力部141から供給されたユーザの操作入力が録画予約である場合、録画処理を行うために必要な情報を録画予約リスト144に登録し、操作入力部141から供給されたユーザの操作入力が、現在放送されている番組の録画処理である場合、または、後述する推薦番組リスト149に登録されている推薦情報を用いて自動録画処理を行う場合、録画処理を行うために必要な情報を、録画制御部145に供給する。
録画制御部145は、録画設定部143から供給された、録画処理を行うために必要な情報を基に、または、録画予約リスト144に登録されている録画予約情報のうち現在時刻に対応する録画予約情報を抽出することにより、録画する番組の放送チャンネルを示す制御信号を生成して、テレビジョン受信装置4に供給するとともに、録画処理を実行するための制御信号を生成し、録画再生処理部147に供給する。テレビジョン受信装置4は、制御信号に基づいて、指定されたチャンネルの放送信号を受信する。
データ入力部146は、テレビジョン受信装置4から放送信号の入力を受け、録画再生処理部147に供給する。録画再生処理部147は、例えば、磁気テープ、光ディスク、磁気ディスク、光磁気ディスク、または、半導体メモリなどの記録媒体が装着可能なように構成されるか、その内部に、例えば、ハードディスク、または、半導体メモリなどの記録媒体を有し、それらの記録媒体に情報を記録したり、それらの記録媒体から情報を再生可能なようになされている。具体的には、録画再生処理部147に装着可能な記録媒体が磁気テープである場合、録画再生処理部147は、磁気ヘッドを有し、磁気テープにデータ入力部146から供給された放送信号を記録(すなわち、録画)したり、磁気テープに記録されている情報を再生して、テレビジョン表示装置11などに供給して再生出力させる。
推薦番組リスト取得部148は、番組推薦処理装置10から、推薦情報を取得し、推薦番組リスト149に供給する。推薦番組リスト149は、供給された推薦情報を登録する。推薦番組リスト149に登録された推薦情報は、録画設定部143に読み出されて、自動的に録画処理が実行される。
次に、図36のフローチャートを参照して、自動録画処理について説明する。
ステップS291において、推薦番組リスト取得部148は、番組推薦処理装置10の推薦情報出力部49から出力された推薦情報を取得する。
ステップS292において、推薦番組リスト取得部148は、取得した推薦情報を、推薦番組リスト149に登録する。
ステップS293において、録画設定部143は、番組推薦リスト149から、現在時刻に対応する推薦番組の情報を抽出し、放送開始時間および放送終了時間、並びに、放送チャンネルなどの、録画処理のために必要な情報を取得して、録画制御部145に供給する。
ステップS294において、録画制御部145は、録画する番組の放送信号の供給を受けるためのチャンネル設定情報を生成し、テレビジョン受信装置4に出力する。テレビジョン受信装置4は、制御信号に基づいて、指定されたチャンネルの放送信号を受信する。
ステップS295において、データ入力部146は、テレビジョン受信装置4から、指定されたチャンネルの放送信号を取得し、録画再生処理部147に供給する。
ステップS296において、録画再生処理部147は、供給された放送信号を、装着されている、または、内蔵されている記録媒体に記録して、処理が終了される。
このような処理により、ユーザの嗜好に合致した番組を、自動的に録画することが可能となる。図36を用いて説明した自動録画処理は、ユーザが指令した録画処理、または、録画予約処理による録画動作中など、すでに録画動作が行われている間には実行されない。
ここでは、現在時刻に対応する推薦番組を基に、自動的に録画を行い場合について説明したが、例えば、現在時刻よりも先の所定の時間分の推薦情報を取得して、同様の処理により、自動的に録画予約を設定することができるようにしてもよいことは言うまでもない。
図1乃至図36を用いて説明した処理では、番組ベクトルPPが、配信サーバ5において生成されるものとして説明したが、配信サーバが番組ベクトルPPを生成するのではなく、ネットワーク8を介して、EPGデータを番組推薦処理装置に供給し、番組推薦処理装置において、番組ベクトルPPを生成するようにしても良い。
配信サーバが番組ベクトルPPを生成するのではなく、ネットワーク8を介して、EPGデータを番組推薦処理装置に供給し、番組推薦処理装置において、番組ベクトルPPを生成する場合の配信サーバ171の構成を図37に示し、番組推薦処理装置191の構成を図38に示す。
なお、図2の配信サーバ5、および、図13の番組推薦処理装置10における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
すなわち、配信サーバ171は、図2を用いて説明した配信サーバ5のデータ取得部21およびデータ送信部25で構成され、ストリーミングデータデータベース6またはメタデータデータベース7からストリーミングデータ、または、メタデータで構成されるEPGデータを取得して、ネットワーク8を介して、EPG受信装置9またはテレビジョン受信装置4に送信する。
そして、番組推薦処理装置191は、図2の配信サーバ5に設けられていたものと同様のメタデータ取得部22および番組ベクトル生成部23が新たに設けられている以外は、図13を用いて説明した番組推薦処理装置10と同様の構成を有するものであり、番組推薦処理装置10が実行する処理に加えて、図3を用いて説明した番組ベクトル生成処理1、および、図6を用いて説明した番組ベクトル生成処理2、並びに、図7を用いて説明したグループ化処理1、および、図8を用いて説明したグループ化処理2を実行する。
配信サーバが番組ベクトルPPを生成するのではなく、ネットワーク8を介して、EPGデータを番組推薦処理装置に供給し、番組推薦処理装置において、番組ベクトルPPを生成する場合においても、図1乃至図36を用いて説明した場合と同様の効果を奏することが可能である。
また、更に、EPG受信装置9が、テレビジョンジョン表示装置11および録画再生装置12から、ユーザの操作履歴や設定情報などを収集して、ネットワーク8を介して、配信サーバに供給するようにし、配信サーバが、番組ベクトルPPを生成するのみでなく、マッチング処理を実行し、ネットワーク8を介して、マッチング結果をEPG受信装置9に供給するようにしてもよい。この場合のネットワーク構成を図39に示し、配信サーバ201の構成を示すブロック図を図40に示す。
なお、図1、図37、および図38における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
すなわち、配信サーバ201は、図37を用いて説明した配信サーバ171に、図38を用いて説明した番組推薦処理装置191の機能を加えたものであり、ユーザは、番組推薦処理装置を保有する必要がない。
図39および図40に示される構成においては、番組ベクトルPP、番組側効き目ベクトルEfPP、正履歴ベクトルUP、負履歴ベクトルMUP、もしくは、標準嗜好ベクトルAPPなどの生成処理や、番組ベクトルのグループ化処理、マッチング処理、または、例外推薦番組選択処理などの、図3乃至図12、および、図14乃至図30を用いて説明した全ての処理が、配信サーバ201で実行される。
なお、このとき、EPG受信装置9が、テレビジョンジョン表示装置11および録画再生装置12から収集して、ネットワーク8を介して送信する、ユーザの操作履歴や設定情報などには、たとえば、ユーザIDなどが付けられて、ユーザごとに区別可能なようになされる。また、配信サーバ201の番組推薦処理装置191において、初期登録保存部45、正履歴保存部47、負履歴保存部48などは、供給された情報のユーザIDを基に、それぞれの情報をユーザ別に保存する。
以上の説明においては、テレビジョン放送信号のEPGデータを用いて、ユーザの嗜好にあった番組を推薦する場合について説明したが、本発明は、ラジオ放送、あるいは、ストリーミングデータなどの各種デジタルコンテンツに属性情報を付加し、ユーザの嗜好にあったものを推薦する場合についても適用可能である。
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
この記録媒体は、図2、図13、または、図38に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク31または71(フレキシブルディスクを含む)、光ディスク32または72(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク33または73(MD(Mini-Disk)(商標)を含む)、もしくは半導体メモリ34または74などよりなるパッケージメディアなどにより構成される。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
5 配信サーバ, 10 番組推薦処理装置, 21 データ取得部, 22 メタデータ抽出部, 23 番組ベクトル生成部, 24 データ記憶部, 25 データ送信部, 41 データ取得部, 42 番組ベクトル抽出部, 43 マッチング処理部, 44 操作入力部, 45 初期登録保存部, 46 操作ログ取得部, 47 正履歴保存部, 48 負履歴保存部, 49 推薦情報出力部, 50 推薦番組リスト, 61 正規化処理部, 62 ベクトル演算部, 63 ユーザ情報登録部, 171 配信サーバ, 191 番組推薦処理装置, 201 配信サーバ