(57)【要約】【課題】ユーザの嗜好に適合する番組を推薦する。【解決手段】放送局からの電子番組表を受信する電子番組表受信部１１と、電子番組表から番組のジャンル情報と番組内容を抽出し、番組内容の形態素解析によって番組特定単語を抽出し、ジャンル情報と番組特定単語を組合せてジャンル付単語を生成するジャンル付単語生成部１２と、ジャンル付単語によってユーザの視聴履歴を解析し、嗜好ベクトルを生成する嗜好ベクトル生成部１８と、番組内容をジャンル付単語によって解析し、放送番組ベクトルを生成する放送番組ベクトル生成部２０と、ジャンル付単語の関連語モデルを生成する関連語モデル生成部１４と、関連語モデルによって嗜好ベクトルと放送番組ベクトルの類似度を計算する番組類似度計算部２１と、類似度が所定の条件を満たす推薦番組を出力する番組推薦部２２と、を有することを特徴とする番組推薦装置。【選択図】図１
2009213067.tif 000002
【特許請求の範囲】
【請求項１】
放送局から送信される電子番組表を受信する電子番組表受信部と、
前記受信された電子番組表に含まれる番組のジャンル情報および番組内容を抽出すると共に、前記番組内容の形態素解析によって番組特定単語を抽出し、前記ジャンル情報および前記番組特定単語を組合せてジャンル付単語を生成するジャンル付単語生成部と、
前記生成されたジャンル付単語に基づいて予め蓄積されているユーザの視聴履歴を解析し、前記ユーザの番組嗜好を表す嗜好ベクトルを生成する嗜好ベクトル生成部と、
前記電子番組表に含まれる各番組の前記番組内容を前記ジャンル付単語に基づいて解析し、前記番組内容を表す放送番組ベクトルを生成する放送番組ベクトル生成部と、
前記ジャンル付単語の関連語モデルを生成する関連語モデル生成部と、
前記生成された関連語モデルに基づいて前記嗜好ベクトルと前記放送番組ベクトルの類似度を計算する番組類似度計算部と、
前記計算された類似度が予め定められた条件を満たす番組を前記ユーザの嗜好に適合する推薦番組として出力する番組推薦部と、
を有することを特徴とする番組推薦装置。
【請求項２】
前記ジャンル付単語生成部は、ある一定期間の視聴番組について前記電子番組表の番組内容に含まれる番組特定単語の出現回数と前記番組特定単語の出現する番組の放送頻度の逆数との積をジャンル付単語の重みとして用い、前記ジャンル付単語を生成することを特徴とする請求項１記載の番組推薦装置。
【請求項３】
前記関連語モデル生成部は、ある一定期間の番組情報に含まれるジャンル付単語を潜在的意味解析における索引語として用いて索引語-番組行列を作成し、この索引語-番組行列を特異値分解および次元縮約して前記関連語モデルを生成することを特徴とする請求項１または請求項２記載の番組推薦装置。
【請求項４】
放送局から送信される電子番組表を受信する電子番組表受信ステップと、
前記受信された電子番組表に含まれる番組のジャンル情報および番組内容を抽出すると共に、前記番組内容の形態素解析によって番組特定単語を抽出し、前記ジャンル情報および前記番組特定単語を組合せてジャンル付単語を生成するジャンル付単語生成ステップと、
前記生成されたジャンル付単語に基づいて予め蓄積されているユーザの視聴履歴を解析し、前記ユーザの番組嗜好を表す嗜好ベクトルを生成する嗜好ベクトル生成ステップと、
前記電子番組表に含まれる各番組の前記番組内容を前記ジャンル付単語に基づいて解析し、前記番組内容を表す放送番組ベクトルを生成する放送番組ベクトル生成ステップと、
前記ジャンル付単語の関連語モデルを生成する関連語モデル生成ステップと、
前記生成された関連語モデルに基づいて前記嗜好ベクトルと前記放送番組ベクトルの類似度を計算する番組類似度計算ステップと、
前記計算された類似度が予め定められた条件を満たす番組を前記ユーザの嗜好に適合する推薦番組として出力する番組推薦ステップと、
を有することを特徴とする番組推薦方法。
【請求項５】
前記ジャンル付単語生成ステップにおいて、ある一定期間の視聴番組について前記電子番組表の番組内容に含まれる番組特定単語の出現回数と前記番組特定単語の出現する番組の放送頻度の逆数との積をジャンル付単語の重みとして用い、前記ジャンル付単語を生成することを特徴とする請求項４記載の番組推薦方法。
【請求項６】
前記関連語モデル生成ステップにおいて、ある一定期間の番組情報に含まれるジャンル付単語を潜在的意味解析における索引語として用いて索引語-番組行列を作成し、この索引語-番組行列を特異値分解および次元縮約して前記関連語モデルを生成することを特徴とする請求項４または請求項５記載の番組推薦方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テレビ番組を推薦する番組推薦装置および番組推薦方法に関する。
【背景技術】
【０００２】
近年、ユーザが視聴可能な番組数が非常に多くなり、好みの番組を探すのが困難になっている。このような状況を鑑み、ユーザの番組視聴履歴からユーザの嗜好傾向を学習し、ユーザ好みの番組を推薦する番組推薦システムのニーズが高まっている。
【０００３】
番組情報は電子番組表（Electronic Program Guide: EPG）として電子化されており、そこに含まれるジャンル、出演者、番組内容などの文字情報を用いて番組を推薦するシステムが提案されている。ユーザが視聴した番組のＥＰＧに含まれる番組内容を形態素解析と呼ばれる技術を用いて単語単位に分割し、その単語をカウントしてユーザが好む単語を把握する方法が一般的に用いられている（例えば、特許文献１参照）。この際、視聴番組中の出現回数が多い単語ほどユーザの嗜好度が強い単語だと判断する。そして、ユーザの嗜好度が強い単語を多く含む番組を推薦する方法が取られる。
【０００４】
また、ユーザの嗜好と番組データを単語の重みを要素としたベクトルで表現するベクトル空間モデルに基づく方法も一般的に用いられている（例えば、特許文献２参照）。この際、単語の重みには、番組中の単語の出現回数などが用いられる。ベクトル空間モデルでは、ユーザの嗜好ベクトルと番組ベクトル間の類似度を内積やコサイン尺度などで定義し、ユーザの嗜好ベクトルと類似度が高い番組を推薦する方法が取られる。
【０００５】
上記のベクトル空間モデルでは、関連語や類義語を考慮できないという欠点があった。例えば、「手品」という単語が多く含まれる番組を視聴すると「手品」という単語の重みが強くなるが、関連語だと考えられる「マジック」や「マジシャンＡ（人名）」などの単語の重みは強くならない。
【０００６】
この問題を解決するため潜在的意味解析（Latent Semantic Analysis: LSA）あるいは潜在的意味インデキシング（Latent Semantic Indexing: LSI）と呼ばれる手法が提案されている（例えば、特許文献３、非特許文献１参照）。潜在的意味解析を用いるとＥＰＧデータから作成した索引語-番組行列から関連語を表した行列（以下、「関連語モデル」という。）を作成できる。関連語モデルを用いると同一番組内に頻繁に共起する単語を関連語と見なして同一次元（新しい単語）に縮約できる。関連語モデルを用いてベクトルを縮約することで関連語を考慮した嗜好ベクトルと番組間の類似度が計算できる。
【特許文献１】特許第３３５１０５８号公報
【特許文献２】特開２００７−２０２１８１号公報
【特許文献３】特開２００６−４８２８７号公報
【非特許文献１】S. Deerwester, S. T. Dumais, G.W. Furnas, T. K. Landauer and R. Harshman,Indexing by Latent Semantic Analysis, Journal of the American Society for Information Science,Vol.41, pp.391-407, 1990.
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記の技術においては、以下の問題点があった。
【０００８】
第１の問題点は、ユーザの視聴番組中に出現する単語をカウントして重みとする方法では、多くの番組に出現する一般語の頻度が大きくなりやすいため番組特定力が低い単語の重みが強くなることである。例えば、「ニュース」「情報」といった単語は、多くの番組に含まれているためユーザの視聴番組中に多く含まれている可能性が高い。そのため、「ニュース」「情報」の重みが高くなり、ユーザの嗜好度が強い単語とみなさる。推薦時には、「ニュース」や「情報」を含む番組を推薦することになるが、この単語は多くの番組に含まれているためどの番組を推薦すればよいか判断する手がかりになりにくい。「ニュース」や「情報」を含む番組を全て推薦することも考えられるが、推薦精度が大きく低下する原因になる。
【０００９】
第２の問題点は、従来の方法では単語の出現する文脈がまったく考慮されていないことである。例えば、韓国ドラマをよく視聴するユーザは、番組内容欄に「韓国」が含まれていることが多いため、「韓国」の単語重みが高くなる。そのため、推薦時に韓国ドラマは推薦され易くなるが、同時に韓国大統領選を扱うニュース番組も推薦されてしまうことになる。これは、同じ「韓国」という単語でもドラマなのかニュースなのかで番組内容が大きく異なるために生じる問題である。
【００１０】
別の例として英会話番組を頻繁に視聴するユーザを考えてみる。英会話番組は番組内容欄に「英語」が含まれていることが多いため、「英語」の単語重みが高くなる。そのため、推薦時に「英語」を含む番組が推薦され易くなる。しかし、一口に「英語」といっても、幼児向け、中高生向け、語学バラエティでは番組内容が大きく異なる。すなわち、テレビ番組では、同じ単語でもその使われる文脈によって番組内容は大きく変化し、単語をそのまま用いただけでは文脈を区別できないという問題が発生する。
【００１１】
第３の問題点は、上記の問題と関連するが、文脈を考慮せずに単語をそのまま用いる方法では、潜在的意味解析に用いる正確な関連語モデルが作成できないことである。例えば、次の２つの番組（ａ）・（ｂ）の内容から関連語モデルを作成することを考えてみる。（ａ）はアニメ番組、（ｂ）は旅バラエティ番組である。
【００１２】
（ａ）悪の大王に支配された王国を救うために、７つの宝石を探して旅する冒険ファンタジー。
【００１３】
（ｂ）冬の秋田を旅する。雪見の露天風呂に浸かったり、あったか鍋を満喫。ゆったりとした大人向けの宿もご紹介。
【００１４】
関連語モデルは、番組内容に出現する語の共起に基づいて作成されるので、多くの番組内で共起する単語同士は関連が強いと判断されるが、めったに共起しない単語同士は関連が弱いと判断される。上記の２つの番組から「旅」の関連語と判断される語は、「大王」「支配」「王国」「冒険」「ファンタジー」「冬」「秋田」「露天風呂」「宿」などが挙げられる。明らかにアニメにおける「旅」と旅バラエティにおける「旅」の関連語は異なっているが、単語をそのまま用いる方式ではそれらを区別できない。同様に、アニメにおける「旅」も旅バラエティにおける「旅」も同等に扱い、まとめて関連語を求めてしまうという問題があった。
【００１５】
そこで、本発明は、従来技術の問題に鑑み、ユーザの嗜好に適合する番組を推薦できる番組推薦装置および番組推薦方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明の番組推薦装置は、放送局から送信される電子番組表を受信する電子番組表受信部と、前記受信された電子番組表から番組のジャンル情報および番組内容を抽出すると共に、前記番組内容の形態素解析によって番組特定単語を抽出し、前記ジャンル情報および前記番組特定単語を組合せてジャンル付単語を生成するジャンル付単語生成部と、前記生成されたジャンル付単語に基づいて予め蓄積されているユーザの視聴履歴を解析し、前記ユーザの番組嗜好を表す嗜好ベクトルを生成する嗜好ベクトル生成部と、前記電子番組表に含まれる各番組の番組内容を前記ジャンル付単語に基づいて解析し、前記番組内容を表す放送番組ベクトルを生成する放送番組ベクトル生成部と、前記ジャンル付単語の関連語モデルを生成する関連語モデル生成部と、前記生成された関連語モデルに基づいて前記嗜好ベクトルと前記放送番組ベクトルの類似度を計算する番組類似度計算部と、前記計算された類似度が予め定められた条件を満たす番組を前記ユーザの嗜好に適合する推薦番組として出力する番組推薦部と、を有することを特徴とする。
【００１７】
本発明の番組推薦方法は、放送局から送信される電子番組表を受信する電子番組表受信ステップと、前記受信された電子番組表から番組のジャンル情報および番組内容を抽出すると共に、前記番組内容の形態素解析によって番組特定単語を抽出し、前記ジャンル情報および前記番組特定単語を組合せてジャンル付単語を生成するジャンル付単語生成ステップと、前記生成されたジャンル付単語に基づいて予め蓄積されているユーザの視聴履歴を解析し、前記ユーザの番組嗜好を表す嗜好ベクトルを生成する嗜好ベクトル生成ステップと、前記電子番組表に含まれる各番組の番組内容を前記ジャンル付単語に基づいて解析し、前記番組内容を表す放送番組ベクトルを生成する放送番組ベクトル生成ステップと、前記ジャンル付単語の関連語モデルを生成する関連語モデル生成ステップと、前記生成された関連語モデルに基づいて前記嗜好ベクトルと前記放送番組ベクトルの類似度を計算する番組類似度計算ステップと、前記計算された類似度が予め定められた条件を満たす番組を前記ユーザの嗜好に適合する推薦番組として出力する番組推薦ステップと、を有することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、ユーザの嗜好に適合する番組を推薦できる番組推薦装置および番組推薦方法が提供される。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施形態について図面を用いて説明する。図１は、本発明の一実施形態に係る番組推薦装置１の全体構成例を示すブロック図である。番組推薦装置１は、大きく４つのブロックに分けられる。第１のブロックは、ジャンル付単語の生成に関連した、電子番組表受信部１１、ジャンル付単語生成部１２、および電子番組表保存部１３である。第２のブロックは、単語間の関連度を表す関連語モデルの生成に関連した、関連語モデル生成部１４および関連語モデル保存部１５である。第３のブロックは、ユーザの嗜好を表す嗜好ベクトルの生成に関連した、視聴履歴取得部１６、視聴履歴保存部１７、嗜好ベクトル生成部１８、および嗜好ベクトル保存部１９である。第４のブロックは、番組の推薦に関連した、放送番組ベクトル生成部２０、番組類似度計算部２１、および番組推薦部２２である。
【００２０】
電子番組表受信部１１は、各テレビ局から文字情報として送信される電子番組表（ＥＰＧ）を受信する。
【００２１】
ジャンル付単語生成部１２は、電子番組表の各番組情報からジャンル部分を抽出するジャンル抽出部１２１、番組内容部分を抽出する番組内容抽出部１２２、番組内容を形態素解析と呼ばれる技術を用いて単語に分割する形態素解析部１２３、および形態素解析によって分割された各単語に対してジャンルを付与するジャンル付与部１２４から成り、番組内容に対してジャンル付単語が関連付けされた電子番組表を電子番組表保存部１３に保存する。このジャンル付単語生成部１２では、単語の出現する番組のジャンルと単語を組したジャンル付単語を生成し、もとの単語と置き換える。例えば、「韓国」という単語が、海外ドラマジャンルの番組内に出現したときは、「韓国」を「海外ドラマ-韓国」に置き換え、海外・国際ジャンルの番組内に出現したときは、「海外・国際-韓国」に置き換え、両者は異なる単語とみなす。
【００２２】
電子番組表のジャンルは、ＡＲＩＢ規格で定まっており、ニュース、スポーツ、情報／ワイドショー、ドラマ、ドキュメンタリー／教養といったメインジャンルの下に政治・国会、経済・市況、野球、サッカー、芸能・ワイドショー、健康・医療、国内ドラマ、海外ドラマ、歴史・紀行といったサブジャンルがある。本実施形態では、約１００種類に分類されたサブジャンルの使用を想定している。サブジャンルは、放送局が内容に基づいて付与したメタデータであり、分類は粗いものの番組内容にマッチしたジャンルが割り当てられている。
【００２３】
関連語モデル生成部１４は、ある一定期間の番組に含まれるジャンル付単語を潜在的意味解析おける索引語として用い、作成された索引語-番組行列の特異値分解および次元縮約によって関連語モデルを生成し、関連語モデル保存部１５に格納する。
【００２４】
潜在的意味解析は、情報検索の分野でよく用いられる手法であり、高次元の空間にある文書ベクトルを低次元の空間へと射影することにより、検索精度の改善を図る技術である。本発明では、この潜在的意味解析を後述する嗜好ベクトルおよび放送番組ベクトルに適用し、推薦精度の改善に用いる。
【００２５】
視聴履歴取得部１６は、視聴者の視聴履歴（ログ）を保存する視聴履歴保存部１７から所望の期間の視聴履歴を取得する。
【００２６】
嗜好ベクトル生成部１８は、ある一定期間におけるユーザの視聴番組に出現する単語をカウントし、単語の出現頻度を表すＶＴＦ（Viewed Term Frequency）を計算するＶＴＦ計算部１８１、各単語の特殊度を表すＩＤＦ（Inverse Document Frequency）を計算するＩＤＦ計算部１８２、およびＶＴＦとＩＤＦからＶＴＦ_ＩＤＦを計算するＶＴＦ_ＩＤＦ計算部１８３から成る。ＶＴＦ_ＩＤＦは、ユーザが視聴した番組中に多く含まれ、かつ、特定の番組に出現しやすい特殊な単語であるほどユーザの嗜好を表す重要な語と判断して大きな重みを付ける指標になっている。また、ＶＴＦ_ＩＤＦ計算部１８３は、ＶＴＦ_ＩＤＦに基づいてユーザの嗜好を表す嗜好ベクトルを生成し、これを嗜好ベクトル保存部１９に格納する。
【００２７】
放送番組ベクトル生成部２０は、番組推薦処理において判定対象となる放送予定の番組（以下、「放送番組」という。）の番組情報をそれぞれ読み込み、この番組情報に基づいて番組の内容を表す放送番組ベクトルを生成し、番組類似度計算部２１へ出力する。
【００２８】
番組類似度計算部２１は、嗜好ベクトル生成部１８において生成された嗜好ベクトルと放送番組ベクトル生成部２０において生成された放送番組ベクトルの類似度を計算する。
【００２９】
番組推薦部２２は、番組類似度計算部２１において計算された嗜好ベクトルと放送番組ベクトルの類似度が予めに定められた閾値以上か否かを判定し、類似度が閾値以上の番組を推薦番組として出力する。
【００３０】
図２は、番組推薦装置１全体の処理の具体例を示すフローチャートである。
【００３１】
工程Ｓ２０１において、ジャンル付単語生成部１２は、電子番組表の各番組内容を表すジャンル付単語を生成し、ジャンル付単語を含めた電子番組表を電子番組表保存部１３に格納する。
【００３２】
工程Ｓ２０２において、関連語モデル生成部１４は、電子番組表保存部１３のある一定期間の番組を用いて関連語モデルを生成し、関連語モデル保存部１５に格納する。
【００３３】
工程Ｓ２０３において、嗜好ベクトル生成部１８は、視聴履歴保存部１７の視聴履歴と電子番組表保存部１３の電子番組表の情報を用いてユーザの嗜好を表す嗜好ベクトルを生成し、嗜好ベクトル保存部１９に格納する。
【００３４】
工程Ｓ２０４において、放送番組ベクトル生成部２０は、電子番組表から放送番組の番組情報を読み込む。
【００３５】
工程Ｓ２０５において、放送番組ベクトル生成部２０は、読込まれた番組情報に基づいて放送番組ベクトルを生成する。具体的には、番組内容欄における各ジャンル付単語の出現回数をカウントして生成する。
【００３６】
工程Ｓ２０６において、番組類似度計算部２１は、ユーザの嗜好を表した嗜好ベクトルと判定対象となる放送番組ベクトルの類似度を計算する。
【００３７】
工程Ｓ２０７において、番組推薦部２２は、嗜好ベクトルと放送番組ベクトルの類似度が予めに定められた閾値以上か否かを判定する。ここで、閾値以上の場合は、放送番組がユーザの嗜好に適合する番組であると判定し、工程Ｓ２０８へ進む。これに対し、閾値未満の場合は、放送番組がユーザの嗜好に適合しない番組であると判定して、工程Ｓ２０９へ進む。
【００３８】
工程Ｓ２０８において、番組推薦部２２は、ユーザの嗜好に適合すると判定された番組を推薦番組リストに追加する。
【００３９】
工程Ｓ２０９において、放送番組ベクトル生成部２０は、判定対象となる他の放送番組の有無を判定する。ここで、他に放送番組が有ると判定された場合は、工程Ｓ２０４へ戻る。工程Ｓ２０４からＳ２０８の処理は放送番組が無くなるまで繰り返される。これに対し、他に放送番組が無いと判定された場合は、工程Ｓ２１０へ進む。
【００４０】
工程Ｓ２１０において、番組推薦部２２は、作成された推薦番組リストを表示装置（図示省略する）へ出力し、処理を終了する。
【００４１】
以下、図２におけるジャンル付単語生成（工程Ｓ２０１）、関連語モデル生成（工程Ｓ２０２）、嗜好ベクトル生成（工程Ｓ２０３）、類似度計算（工程Ｓ２０６）の処理方法を詳細に説明する。
【００４２】
図３は、ジャンル付単語生成部１２におけるジャンル付単語生成処理（工程Ｓ２０１）の具体例を示すフローチャートである。図４は、電子番組表に含まれる番組情報の具体例を示す図である。
【００４３】
工程Ｓ３０１においては、電子番組表受信部１１から電子番組表（ＥＰＧ）を取得し、この電子番組表から番組情報を読み込む。図４の番組情報には、放送日、放送局、開始時間、放送時間、ジャンル、タイトル、出演者、番組内容が含まれている。ジャンルは、メインジャンルとこのメインジャンルを更に細かく分類したサブジャンルから成る。本実施形態では、サブジャンルの使用を仮定している。
【００４４】
工程Ｓ３０２においては、読込まれた番組情報から番組のジャンルを抽出する。図４の番組情報では、番組のジャンルは「歴史・紀行」である。尚、番組に複数のジャンルが付与されている場合は、全て抽出してもよいし、第１ジャンルのみ抽出してもよい。
【００４５】
工程Ｓ３０３においては、読込まれた番組情報から番組内容を抽出する。
【００４６】
工程Ｓ３０４においては、抽出された番組内容を形態素解析する。形態素解析によって番組内容は単語に分割され、同時に単語の品詞も明らかになる。
【００４７】
工程Ｓ３０５においては、形態素解析によって分割された単語群の中から名詞のみを抽出する。これは、番組内容を特定する重要な単語（番組特定単語）は名詞であることが多いためである。この処理で抽出した名詞が単語欄の「世界」「遺産」「秘境」「古代」「文明」「歴史」「謎」である。尚、名詞の中でも「これ」「それ」のような指示代名詞や「こと」「もの」のように内容を持たない名詞は不要語リストなどを用いて除去できる。
【００４８】
工程Ｓ３０６においては、抽出した各単語に番組ジャンルを付与してジャンル付単語を作成する。尚、ジャンルは予めコード化しておくと好適である。図４の例では、「歴史・紀行」を「History」にコード化して、各単語に付与している。番組に複数のジャンルが付与されている場合は、全てのジャンルと単語の組合せたジャンル付単語を生成してもよいし、第１ジャンルのみ用いてもよい。以後、このジャンル付単語を単位に全ての処理が行われる。
【００４９】
工程Ｓ３０７においては、電子番組表（ＥＰＧ）に他の番組情報が含まれているか否かを判定する。ここで、他の番組情報が含まれていると判定された場合には、工程Ｓ３０１へ戻る。工程Ｓ３０１からＳ３０７の処理は全ての番組について処理が完了するまで繰り返される。これに対し、他に番組情報が無いと判定された場合は、工程Ｓ３０８へ進む。
【００５０】
工程Ｓ３０８においては、作成されたジャンル付単語を付加した電子番組表を電子番組表保存部１３へ保存し、処理を終了する。
【００５１】
上記のように、単なる単語ではなく、ジャンル付単語を用いることには幾つかの利点がある。第１に、単語の番組特定力が向上することで、ユーザの嗜好がより正確に得られ、推薦精度の向上が期待できる。ここで、「番組特定力」とは、その単語がユーザが嗜好する語であると分かったときに、その単語を用いることでどれだけ番組を特定できるかを表す。
【００５２】
例えば、ユーザの視聴番組中に「ニュース」という単語が多く含まれており、ユーザの嗜好を表す単語であると分かったとする。しかし、「ニュース」という単語は非常に多くの番組内に頻繁に現れる語であり、「ニュース」という単語だけではユーザが好む番組を絞り込むことができない。すなわち、番組特定力が低い。絞り切れないまま「ニュース」という単語を含む番組を全て推薦することも考えられるが、大部分はユーザの嗜好に適合しない番組であり、推薦の精度が大きく低下することになる。
【００５３】
一方、ジャンル付単語を用いると、「ニュース」という単語が、「政治・国会-ニュース」「経済・市況-ニュース」「野球-ニュース」「サッカー-ニュース」「競馬-ニュース」のように分割され、「ニュース」だけでは分からなかったユーザの詳細な嗜好を特定でき、番組の絞込みが容易となる。
【００５４】
第２に、上記の番組特定力とも関連するが、ジャンルを文脈情報として利用することで、単語の意味が特定し易くなる。例えば、先に挙げたように、韓国ドラマをよく視聴するユーザは、番組内容欄に「韓国」が含まれていることが多いため、「韓国」の単語重みが高くなる。そのため、推薦時に韓国ドラマは推薦され易くなるが、同時に韓国大統領選を扱うニュース番組も推薦されてしまうことになる。一方、ジャンル付単語を用いると、「韓国」という単語が、「海外・国際-韓国」「海外ドラマ-韓国」のように分割され、韓国のドラマが好きなのか、韓国関連のニュースに興味があるのかを明確に特定できる。
【００５５】
別の例として、英会話番組をよく視聴するユーザを考えてみる。英会話番組の番組内容欄には単語として「英語」が含まれていることが多いため、「英語」の単語重みが高くなる。そのため、推薦時に「英語」を含む番組が推薦され易くなる。しかし、一口に「英語」といっても、幼児向け、中高生向け、語学バラエティでは番組内容が大きく異なる。このような場合にも、ジャンル付単語を用いると、「英語」という単語が、「幼児・小学生-英語」「中学・高校生-英語」「会話・語学-英語」「トークバラエティ-英語」のように分解されるため、どのようなタイプの英語番組に興味があるのか特定し易くなる。
【００５６】
図５は、関連語モデル生成部１４における関連語モデル生成処理（工程Ｓ２０２）の具体例を示すフローチャートである。
【００５７】
工程Ｓ５０１においては、電子番組表保存部１３から電子番組表（ＥＰＧ）をを読み込む。
【００５８】
工程Ｓ５０２においては、潜在的意味解析を適用するために電子番組表から索引語-番組行列を生成する。図６は、電子番組表から生成された索引語-番組行列の具体例を示す図である。同図における索引語-番組行列は、行にジャンル付単語、列に番組が並んだ形式になっており、行列の値は番組がジャンル付単語を含む場合を１、含まない場合を０としている。実際は、０か１ではなく、ＴＦＩＤＦなどの単語重みの値を用いてもよい。例えば、番組１は、「History-歴史」、「History-文明」という単語を含む番組である。すなわち、番組１、番組２、番組３は、歴史・紀行（History）の番組であり、内容が類似していることを想定している。また、番組４、番組５、番組６は、バラエティ（Variety）の番組であり、内容が類似していることを想定している。番組７は、ドラマ（Drama）の番組である。ここでは、例題のため非常に小さな行列であるが、実際は、電子番組表に含まれる全番組から生成するので単語数は数万オーダー、番組数は数千オーダーの巨大な行列になる。
【００５９】
工程Ｓ５０３においては、索引語-番組行列の特異値分解を行う。潜在的意味解析においては、特異値分解によって高次元ベクトルの次元縮約を行うためである。m行n列の索引語-番組行列Ａは、特異値分解によって下記の数式（１）のように３つの行列U、Σ、VTに分解できる。
【数１】
2009213067.tif 000003
【００６０】
行列Σは、rank（A）=ｒとすると、対角線上にｒ個の要素σ１,σ２,…σｒ（σ１≧σ２≧…≧σｒ＞0）が並び、他は０であるような行列である。このσi(１≦ｉ≦ｒ)ことを特異値と呼ぶ。
【００６１】
工程Ｓ５０４においては、特異値に基づいて索引語-番組行列を次元縮約する。図７は、索引語-番組行列の特異値分解と次元縮約を具体的に説明する図である。ここでは、行列Σの特異値の大きい方からk個選択し、ｒ×ｒ行列をｋ×ｋ行列に縮約し、行列Σkとする。また、行列Σに合わせて行列Uと行列VTもｍ×ｋ行列、ｋ×ｎ行列にそれぞれ縮約し、それぞれ行列Uk、VkTとする。そして、縮約行列Akを下記の数式（２）により計算する（AとAkは同じサイズになる）。尚、行列Ukは関連語の情報を格納した行列であるため、ここでは関連語モデルと呼ぶ。
【数２】
2009213067.tif 000004
【００６２】
工程Ｓ５０５においては、次元縮約により求められた関連語モデルを関連語モデル保存部１５へ保存し、処理を終了する。
【００６３】
図８は、次元縮約後の索引語-番組行列の具体例を示す図である。ここでは、図６の行列をｋ＝３で縮約した行列が示されている。行列を縮約する利点として、番組ベクトル間の類似度の計算において関連語が考慮されることが挙げられる。例えば、元の行列Ａにおいて、番組１と番組２の類似度を内積を用いて計算すると両方の番組に共起する単語はないため０になる。一方、縮約行列Ａ3において、番組１と番組２の類似度を内積を用いて計算すると０．６３になり、類似番組と判定される。
【００６４】
この違いは、縮約行列Ａ3で関連語が考慮されたことによる。図６から分かるように、番組１から「History-歴史」と「History-文明」が共起し、番組３から「History-歴史」と「History-遺産」が共起することから「History-歴史」、「History-文明」、「History-遺産」は関連性が高い単語だと判定される。そのため、番組２は「History-遺産」しか含んでいないにもかかわらず、縮約行列A3では、「History-遺産」のほかに、「History-歴史」や「History-文明」にも比較的高い重みが与えられ、番組１や番組３との類似度が高くなる原因となっている。このように潜在的意味解析を行うと、番組内で共起する単語から自動的に関連語かどうか判断し、関連語を考慮した番組間類似度が求められるという利点がある。
【００６５】
例えば、次の２つの番組（ａ）・（ｂ）の内容から関連語モデルを生成することを考えてみる。（ａ）はアニメ番組、（ｂ）は旅バラエティ番組である。
【００６６】
（ａ）悪の大王に支配された王国を救うために、７つの宝石を探して旅する冒険ファンタジー。
【００６７】
（ｂ）冬の秋田を旅する。雪見の露天風呂に浸かったり、あったか鍋を満喫。ゆったりとした大人向けの宿もご紹介。
【００６８】
関連語モデルは、番組内容に出現する語の共起に基づいて生成される。多くの番組内で共起する単語同士は関連が強いと判断され、逆にめったに共起しない単語同士は関連が弱いと判断される。上記の２つの番組から「旅」の関連語と判断される語は、「大王」「支配」「王国」「冒険」「ファンタジー」「冬」「秋田」「露天風呂」「宿」などが挙げられる。
【００６９】
この場合、明らかにアニメにおける「旅」と旅バラエティにおける「旅」の関連語は異なっているが、単語をそのまま用いる方式ではそれらを区別できない。すなわち、アニメにおける「旅」も旅バラエティにおける「旅」も同等に扱いまとめて関連語を求めてしまう。
【００７０】
しかし、潜在的意味解析の索引語にジャンル付単語を用いることで正確な関連語モデルを生成できる。上記の場合、アニメ番組では、「Anime-旅」、旅バラエティ番組では、「Tour-旅」のようにジャンル付単語に置き換えられるため、同じ「旅」という単語でも区別できる。また、「Anime-旅」の関連語には、「Anime-冒険」「Anime-ファンタジー」などが挙げられ、「Tour-旅」の関連語には、「Tour-露天風呂」「Tour-宿」などが挙げられ、きちんと区別され、両者の混合は生じない。
【００７１】
図９は、嗜好ベクトル生成部１８における嗜好ベクトル生成処理（工程Ｓ２０３）の具体例を示すフローチャートである。図１０は、指標値と嗜好ベクトルの具体例を示す図である。
【００７２】
工程Ｓ９０１においては、ユーザの視聴履歴を読み込む。視聴履歴は、視聴した番組のＩＤや番組タイトルのリストである。
【００７３】
工程Ｓ９０２においては、ユーザが視聴した番組に含まれるジャンル付単語を電子番組表保存部１３から取得する。
【００７４】
工程Ｓ９０３においては、過去の一定期間ＴＡにおけるユーザの視聴履歴に基づいてジャンル付単語ｋの出現回数を表すＶＴＦを計算する。図１０に示されるＶＴＦは、ユーザが視聴した番組内に「History-歴史」が３回、「History-文明」が１回出現したことを意味している。この例のユーザは、歴史番組が好みであることが想定される。尚、期間ＴＡは、例えば過去１週間など任意の長さにとってよい。
【００７５】
工程Ｓ９０４においては、ある一定期間ＴＢの電子番組表に基づいてジャンル付単語ｋの特殊度（番組特定力）を表すＩＤＦを計算する。ここでは、ジャンル付単語ｋのＩＤＦを下記の数式（３）で計算する。
【数３】
2009213067.tif 000005
【００７６】
ここで、ｎ（ｋ）は期間ＴＢにおけるジャンル付単語ｋを含む番組数、ｎは期間ＴＢにおける全番組数である。期間ＴＢは、ＶＴＦを求めた期間ＴＡと同一期間として計算してもよいし、まったく別の期間のデータ、例えば、現在から１週間分のデータを用いて計算してもよい。また、ＩＤＦはユーザの視聴履歴とは関係なく計算されるため予め計算しておくことも可能である。
【００７７】
上記の数式（３）において、ＩＤＦ（ｋ）は、ジャンル付単語ｋが多くの番組に出現するとき低い値を取り、少ない番組にのみ出現するとき高い値を取る。すなわち、ジャンル付単語の番組特定力を表している。図１０の例では、「History-歴史」のＩＤＦは２．９、「History-文明」のＩＤＦは２．５としている。ＶＴＦが０の単語は、ＶＴＦ_ＩＤＦは必ず０となるため、ＩＤＦを計算する必要はなく０としている。
【００７８】
工程Ｓ９０５においては、ジャンル付単語ｋのＶＴＦおよびＩＤＦからＶＴＦ_ＩＤＦを計算する。ここでは、ＶＴＦ_ＩＤＦを下記の数式（４）で計算する。
【数４】
2009213067.tif 000006
【００７９】
尚、ＶＴＦの対数を取るのは、ＶＴＦの値をそのまま用いるとＶＴＦの影響が強すぎるためである。図１０においては、「History-歴史」のＶＴＦ_ＩＤＦは５．８、「History-文明」のＶＴＦ_ＩＤＦは２．５となることが示されている。
【００８０】
工程Ｓ９０６においては、嗜好ベクトルをＶＴＦ_ＩＤＦベクトルのノルムが１になるように正規化して生成する。図１０では、番組を特定する複数のジャンル付単語を行、ジャンル付単語に基づいて複数の番組内容を解析して求められた指標値（ＶＴＦ_ＩＤＦ）を列とする行列から嗜好ベクトルが求められることが示されている。
【００８１】
工程Ｓ９０７においては、生成した嗜好ベクトルを嗜好ベクトル保存部１９に格納し、処理を終了する。
【００８２】
図１１は、番組類似度計算部２１における類似度計算処理（工程Ｓ２０６）の具体例を示すフローチャートである。
【００８３】
工程Ｓ１１０１においては、嗜好ベクトル保存部１６からユーザの嗜好ベクトルを読み込む。
【００８４】
工程Ｓ１１０２においては、放送番組ベクトル生成部２０で生成した放送番組ベクトルを読み込む。図１２は、嗜好ベクトルと放送番組ベクトルの具体例を示す図である。同図において、放送番組ベクトルは、番組を特定する複数のジャンル付単語を行、電子番組表に含まれる各番組（番組ＩＤ）を列として表されている。尚、説明を簡潔にするため電子番組表に含まれる番組として関連語モデルの生成に用いた番組１から番組７を用いたが、実際は関連語モデルを生成した番組とは限らない。
【００８５】
工程Ｓ１１０３においては、関連語モデル保存部１５から関連語モデルを読み込む。
【００８６】
工程Ｓ１１０４においては、嗜好ベクトルを正規化したように放送番組ベクトルのノルムが１になるように正規化する。図１３は、図１２に示される嗜好ベクトルと放送番組ベクトルのノルムが１になるように正規化したベクトルを示す図である。
【００８７】
工程Ｓ１１０５および工程Ｓ１１０６においては、関連語モデルを用いて嗜好ベクトルおよび放送番組ベクトルの次元を下記の数式（５）および数式（６）を用いてそれぞれ縮約する。
【数５】
2009213067.tif 000007
【００８８】
ここで、dは嗜好ベクトル、ｄ′は放送番組ベクトル、UkTは関連語モデル、dkは縮約された嗜好ベクトル、dk′は縮約された放送番組ベクトルを表している。
【００８９】
工程Ｓ１１０７においては、嗜好ベクトルと放送番組ベクトル間の類似度を内積やコサイン尺度を用いて計算し、類似度計算処理を終了する。図１４は、ｋ＝３の関連語モデルＵ3を用いて縮約した嗜好ベクトルと放送番組ベクトルとの類似度を内積を用いて計算した例である。ここでは、関連性の高い３つのジャンル付単語「History-歴史」、「History-文明」、「History-遺産」に着目した関連語モデルＵ3を用いて、次元縮約された嗜好ベクトルと各番組の放送番組ベクトルの内積が番組の類似度として求められている。例えば、嗜好ベクトルと番組１の放送番組ベクトルとの内積は、０×０＋（−０．８１）×（−０．７６）＋０×０≒０．６１と計算されている。このように計算された類似度は、番組推薦部２２へ出力され、所定の閾値以上の番組が推薦される。例えば、閾値が０．４の場合には、番組１、番組２、番組３が推薦されることになる。
【００９０】
上記のように処理を行うことにより、図１３に示されるベクトルを用いて類似度を計算しても嗜好ベクトルと番組２の類似度は０となってしまうのに対し、関連語モデルを用いて次元を縮約した図１４に示されるベクトルを用いて類似度を計算すると嗜好ベクトルと番組２の類似度は０．４８となって推薦できるようになる。すなわち、関連語モデルを用いることによって関連語を考慮して類似度を計算できる。
【００９１】
尚、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【００９２】
【図１】本発明の一実施形態に係る番組推薦装置１の全体構成例を示すブロック図。
【図２】本発明の一実施形態に係る番組推薦装置１全体の処理の具体例を示すフローチャート。
【図３】本発明の一実施形態に係るジャンル付単語生成部１２におけるジャンル付単語生成処理の具体例を示すフローチャート。
【図４】本発明の一実施形態に係る電子番組表に含まれる番組情報の具体例を示す図。
【図５】本発明の一実施形態に係る関連語モデル生成部１４における関連語モデル生成処理の具体例を示すフローチャート。
【図６】電子番組表から生成された索引語-番組行列の具体例を示す図
【図７】索引語-番組行列の特異値分解と次元縮約を具体的に説明する図。
【図８】次元縮約後の索引語-番組行列の具体例を示す図。
【図９】本発明の一実施形態に係る嗜好ベクトル生成部１８における嗜好ベクトル生成処理の具体例を示すフローチャート。
【図１０】嗜好ベクトルの具体例を示す図。
【図１１】本発明の一実施形態に係る番組類似度計算部２１における類似度計算処理の具体例を示すフローチャート。
【図１２】嗜好ベクトルと放送番組ベクトルの具体例を示す図。
【図１３】図１２に示される嗜好ベクトルと放送番組ベクトルを正規化したベクトルを示す図。
【図１４】嗜好ベクトルと放送番組ベクトルとの類似度を内積を用いて計算した例を示す図。
【符号の説明】
【００９３】
１…番組推薦装置、
１１…電子番組表受信部、
１２…ジャンル付単語生成部、
１３…電子番組表保存部、
１４…関連語モデル生成部、
１５…関連語モデル保存部、
１６…視聴履歴取得部、
１７…視聴履歴保存部、
１８…嗜好ベクトル生成部、
１９…嗜好ベクトル保存部、
２０…放送番組ベクトル生成部、
２１…番組類似度計算部、
２２…番組推薦部、
１２１…ジャンル抽出部、
１２２…番組内容抽出部、
１２３…形態素解析部、
１２４…ジャンル付与部、
１８１…ＶＴＦ計算部、
１８２…ＩＤＦ計算部、
１８３…ＶＴＦ_ＩＤＦ計算部。
【図１】
2009213067.tif 000008
【図２】
2009213067.tif 000009
【図３】
2009213067.tif 000010
【図５】
2009213067.tif 000011
【図９】
2009213067.tif 000012
【図１１】
2009213067.tif 000013
【図１４】
2009213067.tif 000014
【図４】
2009213067.tif 000015
【図６】
2009213067.tif 000016
【図７】
2009213067.tif 000017
【図８】
2009213067.tif 000018
【図１０】
2009213067.tif 000019
【図１２】
2009213067.tif 000020
【図１３】
2009213067.tif 000021