(57)【特許請求の範囲】
【請求項１】
ユーザごとに、アイテムごとの当該アイテムにおける各特性と、該特性をまとめるグループ情報とを有するアイテム特性行列のうち、少なくとも一つのグループ情報を用いて縮約したアイテム特性行列に前記ユーザが選択したアイテムの履歴情報を掛けあわせて前記アイテムの各特性に対するユーザの嗜好を示すベクトルを求め、当該ベクトルに前記ユーザのプロファイルを付与してユーザ嗜好特性ベクトルを作成する作成処理と、
前記ユーザごとに作成されたユーザ嗜好特性ベクトルに基づいてユーザをクラスタリングするクラスタリング処理と、
クラスタごとに、当該クラスタに属するユーザの履歴情報を集計して選択頻度の高いアイテムを推薦するアイテムとして抽出する抽出処理と、
をコンピュータに実行させることを特徴とするアイテム推薦プログラム。
【請求項２】
前記クラスタリング処理は、前記ユーザ嗜好特性ベクトルに含まれる各特性を所定のグループごとにまとめて縮約し、縮約後の前記ユーザ嗜好特性ベクトルに基づいてユーザをクラスタリングする第１のクラスタリングと、当該第１のクラスタリング後の各クラスタにおいて、縮約前の前記ユーザ嗜好特性ベクトルに基づいてユーザをクラスタリングする第２のクラスタリングとを行う
ことを特徴とする請求項１に記載のアイテム推薦プログラム。
【請求項３】
前記クラスタリング処理は、前記ユーザ嗜好特性ベクトルに含まれる各特性を所定のグループを除外して縮約し、縮約後の前記ユーザ嗜好特性ベクトルに基づいてユーザをクラスタリングする第１のクラスタリングと、当該第１のクラスタリング後の各クラスタにおいて、縮約前の前記ユーザ嗜好特性ベクトルに基づいてユーザをクラスタリングする第２のクラスタリングとを行う
ことを特徴とする請求項１に記載のアイテム推薦プログラム。
【請求項４】
前記クラスタリング処理は、前記第１のクラスタリングにおいて縮約するグループごとに重み付けを設定する
ことを特徴とする請求項２または３に記載のアイテム推薦プログラム。
【請求項５】
前記作成処理は、前記ユーザ嗜好特性ベクトルに含まれる、前記アイテムの各特性に対するユーザの嗜好および前記ユーザのプロファイルを示す各要素を規格化する
ことを特徴とする請求項１乃至４のいずれか一項に記載のアイテム推薦プログラム。
【請求項６】
前記ユーザが属するクラスタより抽出された推薦するアイテムの中から、前記履歴情報に基づいて前記ユーザが未選択のアイテムを出力する処理をさらにコンピュータに実行させる
ことを特徴とする請求項１乃至５のいずれか一項に記載のアイテム推薦プログラム。
【請求項７】
ユーザごとに、アイテムごとの当該アイテムにおける各特性と、該特性をまとめるグループ情報とを有するアイテム特性行列のうち、少なくとも一つのグループ情報を用いて縮約したアイテム特性行列に前記ユーザが選択したアイテムの履歴情報を掛けあわせて前記アイテムの各特性に対するユーザの嗜好を示すベクトルを求め、当該ベクトルに前記ユーザのプロファイルを付与してユーザ嗜好特性ベクトルを作成し、
前記ユーザごとに作成されたユーザ嗜好特性ベクトルに基づいてユーザをクラスタリングし、
クラスタごとに、当該クラスタに属するユーザの履歴情報を集計して選択頻度の高いアイテムを推薦するアイテムとして抽出する
処理をコンピュータが実行することを特徴とするアイテム推薦方法。
【請求項８】
ユーザごとに、アイテムごとの当該アイテムにおける各特性と、該特性をまとめるグループ情報とを有するアイテム特性行列のうち、少なくとも一つのグループ情報を用いて縮約したアイテム特性行列に前記ユーザが選択したアイテムの履歴情報を掛けあわせて前記アイテムの各特性に対するユーザの嗜好を示すベクトルを求め、当該ベクトルに前記ユーザのプロファイルを付与してユーザ嗜好特性ベクトルを作成する分析部と、
前記ユーザごとに作成されたユーザ嗜好特性ベクトルに基づいてユーザをクラスタリングし、クラスタごとに、当該クラスタに属するユーザの履歴情報を集計して選択頻度の高いアイテムを推薦するアイテムとして抽出するクラスタリング部と
を有することを特徴とするアイテム推薦装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、アイテム推薦プログラム、アイテム推薦方法およびアイテム推薦装置に関する。
【背景技術】
【０００２】
従来、番組などの多数のアイテムの中からユーザに適したアイテムを検索して推薦するアイテム推薦装置がある。推薦するアイテムの検索には、ユーザベースによるもの、アイテムベースによるものおよびユーザベースとアイテムベースとを組み合わせたハイブリッドベースによるものがある。
【０００３】
ユーザベースによるアイテム検索は、ユーザの行動履歴から関心が類似するユーザを抽出し、抽出されたユーザがアクセスしたアイテムを推薦する。アイテムベースによるアイテム検索は、ユーザが過去にアクセスしたアイテムや、選択されたアイテムと類似するアイテムを推薦する。ハイブリッドベースによるアイテム検索は、ユーザのプロファイル、アイテムの内容およびユーザの行動履歴を組み合わせた類似度によりアイテムを推薦する。ユーザベースでは行動履歴の少ない新規ユーザへのアイテム推薦が困難な場合がある。また、アイテムベースでは自分と類似するユーザの情報がアイテム推薦に反映されない。これに対し、ハイブリッドベースでは、行動履歴の少ない新規ユーザへのアイテム推薦や、自分と類似するユーザの情報を反映したアイテム推薦を実現できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−３６９０９０号公報
【特許文献２】特開２０００−１３７０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ハイブリッドベースによるアイテム推薦では、各ユーザのプロファイル、アイテムの内容およびユーザの行動履歴の要素による多次元行列（高階テンソル、多次元配列）のデータ量が膨大なものとなり、アイテム推薦にかかる計算負荷が大きいという問題がある。このように、アイテム推薦にかかる計算負荷が大きい場合には、計算時間が長くなり、実用時間内に処理を終えることが困難なものとなる。
【０００６】
１つの側面では、アイテム推薦にかかる計算負荷を小さくすることができるアイテム推薦プログラム、アイテム推薦方法およびアイテム推薦装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
第１の案では、アイテム推薦プログラムは、作成処理と、クラスタリング処理と、抽出処理とをコンピュータに実行させる。作成処理は、ユーザごとに、アイテムごとの当該アイテムにおける各特性と、特性をまとめるグループ情報とを有するアイテム特性行列のうち、少なくとも一つのグループ情報を用いて縮約したアイテム特性行列に前記ユーザが選択したアイテムの履歴情報を掛けあわせて前記アイテムの各特性に対するユーザの嗜好を示すベクトルを求め、当該ベクトルに前記ユーザのプロファイルを付与してユーザ嗜好特性ベクトルを作成する。クラスタリング処理は、ユーザごとに作成されたユーザ嗜好特性ベクトルに基づいてユーザをクラスタリングする。抽出処理は、クラスタごとに、当該クラスタに属するユーザの履歴情報を集計して選択頻度の高いアイテムを推薦するアイテムとして抽出する。
【発明の効果】
【０００８】
本発明の１実施態様によれば、アイテム推薦にかかる計算負荷を小さくすることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態にかかるアイテム推薦装置の機能構成を例示するブロック図である。
【図２】図２は、実施形態にかかるアイテム推薦装置の動作例を示すフローチャートである。
【図３】図３は、ユーザ嗜好特性ベクトルの作成を説明する説明図である。
【図４】図４は、ユーザ行動分析テーブルを説明する説明図である。
【図５−１】図５−１は、クラスタ数とＳＤ（Ｋ）の関係を示すグラフである。
【図５−２】図５−２は、クラスタ数とＳＳＷ（Ｋ）の関係を示すグラフである。
【図６】図６は、クラスタリング処理の一例を示すフローチャートである。
【図７】図７は、基本推薦リストテーブルの作成を説明する説明図である。
【図８】図８は、ユーザ推薦リストテーブルの作成を説明する説明図である。
【図９】図９は、実施形態にかかるアイテム推薦装置のハードウエア構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、実施形態にかかるアイテム推薦プログラム、アイテム推薦方法およびアイテム推薦装置を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明するアイテム推薦プログラム、アイテム推薦方法およびアイテム推薦装置は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
【００１１】
図１は、実施形態にかかるアイテム推薦装置の機能構成を例示するブロック図である。図１に示すように、アイテム推薦装置１は、分析部１０、クラスタリング部２０および出力部３０を有し、アイテムＤＢ１１における多数のアイテム（番組など）の中からユーザに適したアイテムを検索してユーザ推薦リストテーブル１７を出力する装置である。
【００１２】
なお、本実施形態では、ユーザに推薦するアイテムとして、ビデオ・オン・デマンド（ＶＯＤ）で提供する映像番組（コンテンツ）を例示する。ユーザに推薦するアイテムの種別は、映像番組に限定するものではなく、例えば通販サイトにおいて取り扱う商品などであってもよい。
【００１３】
分析部１０には、アイテムＤＢ１１よりアイテム（映像番組）の内容（特性）を抽出した映像番組ごとのアイテムキーワードテーブル１２、ユーザが過去に選択（視聴）した番組の履歴を示すユーザごとの視聴履歴データ１３およびユーザプロファイルＤＢ１８よりロードしたユーザごとのユーザプロファイル１４が入力される。
【００１４】
アイテムキーワードテーブル１２における映像番組ごとの内容（特性）としては、映像番組のジャンル、出演者、説明文に含まれるキーワード、登場地域などがある。なお、映像番組における各特性については、上記の種類に限定するものではなく、映像番組の特徴を示すものであればいずれであってもよい。
【００１５】
ユーザプロファイル１４におけるユーザのプロファイルとしては、ユーザの性別、年齢、所在地などがある。なお、ユーザのプロファイルについては、上記の種類に限定するものではなく、ユーザの特性（特徴）を示すのであればいずれであってもよい。
【００１６】
分析部１０は、ユーザプロファイル１４を用いたユーザの嗜好の類似性、アイテムキーワードテーブル１２を用いた映像番組の内容の類似性および視聴履歴データ１３を用いた視聴履歴の類似性をハイブリッドベースで分析する。分析部１０は、この分析結果をユーザ行動分析テーブル１５として出力する。
【００１７】
クラスタリング部２０は、ユーザ行動分析テーブル１５をもとに類似するユーザのクラスタを作成する。そして、クラスタリング部２０は、クラスタごとに、クラスタに属するユーザの視聴履歴を集計して選択頻度の高い映像番組を推薦する映像番組として抽出する。クラスタリング部２０は、クラスタごとに抽出した映像番組を選択頻度の高い順に並べて基本推薦リストテーブル１６を出力する。
【００１８】
出力部３０は、基本推薦リストテーブル１６をもとに、ユーザが属するクラスタより抽出された映像番組のユーザ推薦リストテーブル１７を出力する。具体的には、出力部３０は、ユーザの視聴履歴データ１３を参照し、ユーザが属するクラスタより抽出された映像番組のリストからユーザが既に視聴済み（選択済み）である映像番組を除外する。そして、出力部３０は、ユーザが未視聴（未選択）の映像番組のリストをユーザ推薦リストテーブル１７として出力する。これにより、アイテム推薦装置１は、ユーザが未視聴の映像番組を推薦することができる。
【００１９】
ハイブリッドベースでのアイテム推薦では、多次元行列における要素数が増えると計算負荷が大きくなる。例えば、ユーザ数が１０００万いるビデオ・オン・デマンドサービスにおいて約５万の番組の中からユーザに番組を推薦する場合を想定する。この場合、ユーザごとに視聴履歴を保持する２次元行列（配列）の要素数は、（アイテム、ユーザ）→５・１０＾４×１・１０＾７＝５・１０＾１１と巨大な数となる（「＾」記号はべき乗を表す。以下同様）。これに、ユーザのプロファイルとして性別（男女の２階層）、年齢（５才毎に層別化して２０階層）などの情報を加えた多次元行列（高階テンソル、多次元配列）の要素数は次のとおりに１０テラオーダとなる。
（アイテム、ユーザ、性別）→５・１０＾１１×２＝１・１０＾１２
（アイテム、ユーザ、性別、年齢）→１・１０＾１２×２０＝２・１０＾１３
【００２０】
さらに、アイテムの内容を追加していくと、多次元行列のデータ量はペタオーダーを超えるものとなる。このような多次元行列を利用してユーザ同士の類似度を算出する場合には、行列の特異値分解をテンソルに拡張したテンソル特異値分解を用いる。この特異値分解の計算量は要素数の２乗に比例するので、データ量がペタオーダー（１０＾１２）の場合には、特異値分解にかかる計算量は（１０＾１２）＾４＝１０＾４８となり、計算負荷が大きなものとなる。
【００２１】
そこで、アイテム推薦装置１の分析部１０は、映像番組（アイテム）ごとの各特性を有するアイテムキーワードテーブル１２（アイテム特性行列）にユーザの視聴履歴データ１３を掛けあわせて、映像番組の各特性に対するユーザの嗜好を示すベクトルを求め、ユーザプロファイル１４を付与してユーザ嗜好特性ベクトルを作成する。すなわち、分析部１０は、アイテムキーワードテーブル１２、視聴履歴データ１３およびユーザプロファイル１４における多次元行列（テンソル）の縮約を行う。
【００２２】
分析部１０は、ユーザ嗜好特性ベクトルをユーザ毎に求め、ユーザ行動分析テーブル１５として出力する。クラスタリング部２０は、ユーザ行動分析テーブル１５を参照し、ユーザごとのプロファイル・嗜好を有するユーザ嗜好特性ベクトルをもとに、ユーザをクラスタリングする。このように、アイテム推薦装置１では、アイテムキーワードテーブル１２、視聴履歴データ１３およびユーザプロファイル１４における多次元行列（テンソル）の縮約を行うことで、計算にかかるデータ量を削減し、計算負荷を小さくすることができる。
【００２３】
ここで、アイテム推薦装置１の動作の詳細を説明する。なお、以下の説明で使用する記号を次のように定義する。
Ｉ：アイテム（映像番組）数
Ｊ：ユーザ数
Ｋ：アイテム特性のグループ数／ユーザのクラスタ数
Ｌ［ｋ］：ｋ番目のアイテム特性のグループの項目数
Ｍ：ユーザプロファイルの項目数
Ｎ：アイテムにおける全特性の項目数
【００２４】
図２は、実施形態にかかるアイテム推薦装置１の動作例を示すフローチャートである。図２に示すように、処理が開始されると、分析部１０は、アイテムキーワードテーブル１２、視聴履歴データ１３およびユーザプロファイル１４の入力を受け付ける。次いで、分析部１０は、視聴履歴データ１３をもとに、全ユーザについて、映像番組ごとの視聴時間比率を要素とする視聴時間比率ベクトルを作成する（Ｓ１）。
【００２５】
具体的には、分析部１０は、各ユーザの視聴履歴データ１３をもとに、全ユーザの視聴時間比率行列Ｒを作成する。この視聴時間比率行列Ｒは、列インデックスで各ユーザを、行インデックスで各アイテム（映像番組）を識別し、次のとおりに表記する。
視聴時間比率行列：Ｒ［ｉ，ｊ］＝ｖｔｉｍｅ［ｉ，ｊ］／ｐｔｉｍｅ［ｉ］
ユーザインデックス：ｊ＝１，２，…，Ｊ
アイテムインデックス：ｉ＝１，２，…，Ｉ
【００２６】
ここで、ｖｔｉｍｅ［ｉ，ｊ］は、ユーザ（ｊ）がアイテム（ｉ）を視聴した時間である。また、ｐｔｉｍｅ［ｉ］は、アイテム（ｉ）の再生時間である。視聴時間比率行列Ｒ［ｉ，ｊ］の算出に用いる視聴履歴データ１３は、現在から過去に一定期間（例えば１年間）遡った履歴を用いる。この履歴を用いる期間は、１ヶ月、３ヶ月、半年などのように任意に設定できるものとする。また、分析部１０は、視聴時間比率行列Ｒ［ｉ，ｊ］を一定期間（例えば３ヶ月）ごとに再計算する。この再計算の期間についても、１ヶ月、２週間などのように任意に設定できるものとする。
【００２７】
なお、本実施形態ではアイテムの履歴情報（映像番組の視聴履歴）をもとに、映像番組の視聴時間を算出しているが、アイテムが商品の場合には、ユーザ（ｊ）がアイテム（ｉ）を購入した数を要素値として求めてもよい。
【００２８】
次いで、分析部１０は、アイテムキーワードテーブル１２をもとに、全アイテムの内容（特性）を行列で表現するアイテム特性行列Ｘ［ｉ，ｇ［ｋ，ｌ］］を作成する（Ｓ２）。なお、アイテム特性行列Ｘ［ｉ，ｇ［ｋ，ｌ］］では、アイテム（ｉ）がアイテム内容項目Ｇ［ｋ，ｌ］を含んでいれば「１」、含んでいなければ「０」の値を持つものとし、次のとおりに定義する。
アイテム特性行列：Ｘ［ｉ，ｇ［ｋ，ｌ］］＝０  ｏｒ  １
アイテム特性項目行列：Ｇ［ｋ，ｌ］
アイテム特性通し番号インデックス：ｇ［ｋ，ｌ］
アイテム特性グループインデックス：ｋ＝１，２，…，Ｋ
グループ内インデックス：ｌ＝１，２，…，Ｌ［ｋ］
【００２９】
Ｌ［ｋ］はグループごとに異なる値を持つ。グループとは、ジャンル（ｋ＝１）、出演者（ｋ＝２）、監督（ｋ＝３）、説明文のキーワード（ｋ＝４）、登場地域（ｋ＝５）、公開年（ｋ＝６）…などのように、アイテム（映像番組）を分類するために使用される特性である。なお、本実施例では、説明のために、出演者、監督といった非常に多くのフラグを含む大きなグループに簡略化して表現しているが、それぞれのグループはクラスタリングした場合にユーザ特性が現れる程度に細分化したグループを用意してもよい。
【００３０】
アイテム内容項目は、ジャンルならばＧ［１，］＝［ＳＦ、スポーツ、時代劇、ドキュメント、音楽、…］、出演者ならばＧ［２，］＝［○○○○、××××、…］、ジャンル（ｋ）ならばＧ［ｋ，］＝［ＡＡＡＡ、ＢＢＢＢ、…］などのように、アイテムを特徴づける具体的な項目である。また、キーワードは、アイテムの説明文に含まれている名詞、形容詞、動詞などである。
【００３１】
アイテムのキーワードについては、次の（１）〜（４）を実行することで収集する。
（１）アイテム内容を記述した説明文（テレビ番組の場合はＥＰＧ（電子番組ガイド）、オンデマンドビデオ番組の場合は内容紹介テキスト）からテキストマイニングにより、固有名詞、一般名詞、動詞、形容詞を収集する。
（２）アイテムに関するＳＮＳ（ソーシャル・ネットワーキング・サービス）上のレビュー文章を検索してテキストマイニングを行うことで、（１）で収集できていない新たなキーワードを収集する。
（３）アイテムの提供者側が追加したほうが良いと判断して登録されているキーワードを付加する。
（４）アイテムについて視聴者がコメントした意見よりテキストマイニングして得られたキーワードを付加する。
【００３２】
アイテム特性通し番号インデックスは、あるアイテム内容項目が全グループを通して見た時に、何番目の項目かを表すインデックスである。たとえば、ジャンルが１００項目、出演者が１０００項目、監督が１００項目ある場合、ｇ「１，１００」＝１００、ｇ［２，１］＝１００＋１＝１０１、ｇ［２，２］＝１００＋２＝１０２、ｇ［３，１］＝１００＋１０００＋１＝１１０１などとなる。
【００３３】
なお、分析部１０は、上述した手法でアイテムキーワードテーブル１２よりアイテム特性行列Ｘ［ｉ，ｇ［ｋ，ｌ］］を作成する際に、内容項目数を制限してもよい。具体的には、分析部１０は、全アイテムに対する特性を表すキーワードの和集合を作成して、共通内容キーワードとすることで、項目数を減らすことができる。
【００３４】
なお、共通内容キーワードの要素数は膨大な数になる可能性があることから、分析部１０は、取捨選択のルールを予め設けておき、要素数が爆発することを防止する。一例として、例えば古いレビューは捨てる、和集合を作成する時に出現頻度の小さいキーワードは捨てる、視聴回数の少ないアイテムに関するキーワードは捨てるなどのルールを適用してもよい。また、特性項目の要素数は、ユーザ嗜好特性ベクトルのクラスタリングが実用的な計算時間内で終了するようにすることからも、制限が生じる場合がある。
【００３５】
次いで、分析部１０は、Ｓ２で作成したアイテム特性行列Ｘ［ｉ，ｇ［ｋ，ｌ］］と、視聴時間比率行列：Ｒ［ｉ，ｊ］とを掛けあわせて嗜好特性行列Ｖ０［ｊ，ｇ［ｋ，ｌ］］（行列の各行が各ユーザの嗜好を示すベクトル）を作成する（Ｓ３）。
【００３６】
具体的には、分析部１０は、嗜好特性行列Ｖ０［ｊ，ｇ［ｋ，ｌ］］は次の式（１）で作成する。
【００３７】
【数１】
0006668892.tif 000002
【００３８】
次いで、分析部１０は、ユーザごとに、ユーザ特性（ユーザプロファイル１４）を付加してユーザ嗜好特性ベクトルに拡張する（Ｓ４）。具体的には、分析部１０は、嗜好特性行列Ｖ０［ｊ，ｇ［ｋ，ｌ］］に、ユーザプロファイル１４に基づくユーザプロファイル特性行列を付加した嗜好特性行列Ｖ［ｊ，ｎ］を作成する。なお、ユーザプロファイル特性行列は、列インデックスで各ユーザを、行インデックスで各プロファイルを識別する行列であり、次のとおりである。
ユーザプロファイル特性行列：Ｐ［ｊ，ｍ］
ユーザインデックス：ｊ＝１，２，…，Ｊ
プロファイルインデックス：ｍ＝１，２，…，Ｍ
【００３９】
ユーザプロファイル特性行列の各要素で示されるユーザのプロファイルについては、男女や都道府県名などの非数値の場合もあるが、クラスタリングにおける距離計算が可能となるように数値化する。例えば、男女の場合は男＝１、女＝０のように数値化する。また、都道府県名の場合は、北海道から沖縄までを北海道＝１、青森＝２…のように、通し番号を振って数値化する。また、年齢や年収金額などのように、数値化番号が大きくなる要素は、適当に階層に分割して番号を振り分けるものとする。例えば、年齢の場合は１０歳ごと、年収金額の場合は１００万円ごとに数値化する。なお、これらの数値化にかかる規則は任意に設定できるものとする。
【００４０】
なお、嗜好特性行列Ｖ［ｊ，ｎ］については、例えばアイテム内容要素（嗜好特性行列Ｖ０［ｊ，ｇ［ｋ，ｌ］］）の前にユーザプロファイル要素（ユーザプロファイル特性行列Ｐ［ｊ，ｍ］）を付加して作成する。すなわち、嗜好特性行列Ｖ［ｊ，ｎ］については、次のとおりとなる。
（Ｐ［ｊ，１］，Ｐ［ｊ，２］，…，Ｐ［ｊ，Ｍ］，
Ｖ０［ｊ，［１，１］］，Ｖ０［ｊ，［１，２］］，…，Ｖ０［ｊ，［１，Ｌ１］］，Ｖ０［ｊ，［２，１］］，Ｖ０［ｊ，［２，２］］，…，Ｖ０［ｊ，［２，Ｌ２］］，…，
Ｖ０［ｊ，［Ｋ，１］］，Ｖ０［ｊ，［Ｋ，２］］，…，Ｖ０［ｊ，［Ｋ，ＬＫ］］）
【００４１】
ここで、ユーザプロファルの特性数はＭ、アイテム内容特性のアイテムグループ数はＫ、各グループの項目数はＬ１，Ｌ２，…ＬＫであるものとしている。このユーザごとの嗜好特性ベクトルを行要素にもつ行列が、嗜好特性行列Ｖ［ｊ，ｎ］（ｊ＝１，…，Ｊ，，ｎ＝１，…，Ｎ＝Ｍ＋Ｌ１＋…＋ＬＫ）である。分析部１０は、作成した嗜好特性行列Ｖ［ｊ，ｎ］をユーザ行動分析テーブル１５として出力する。
【００４２】
図３は、ユーザ嗜好特性ベクトルの作成を説明する説明図である。図３に示すデータテーブルＴ１０は、各アイテム（Ｉｔｅｍ１，Ｉｔｅｍ２…ＩｔｅｍＩ）のアイテム特性行列に、１ユーザについての視聴時間比率ベクトルを掛けあわせたものである。図３に示すように、分析部１０は、アイテム特性行列にユーザの視聴時間比率ベクトルを掛けあわせ、列ごとに集計してユーザの嗜好を示すベクトル（最下段）を求める。
【００４３】
図４は、ユーザ行動分析テーブル１５を説明する説明図である。図４に示すように、ユーザ行動分析テーブル１５は、ユーザごとに求めた、ユーザの嗜好を示すベクトル（図３の最下段）にユーザプロファイル（特性１〜特性Ｍ）を付加したものである。なお、ユーザプロファイルについては、実際には数値化されているものとする。
【００４４】
なお、Ｓ４においてユーザ特性を付加したユーザ嗜好特性ベクトルについては、ユーザプロファイルとアイテムに対するユーザの嗜好との要素における数値の大きさが異なり、不揃いとなる。このようなユーザ嗜好特性ベクトルをもとにクラスタリングを行うと、数値の大きい特性でクラスタが決まってしまう場合がある。したがって、分析部１０は、Ｓ４においてユーザ嗜好特性ベクトルを規格化した上で、ユーザ行動分析テーブル１５として出力する。
【００４５】
具体的には、分析部１０は、規格化されたユーザ嗜好特性行列をＮＶ［ｊ，ｎ］（ｊ＝１，…，Ｊ，，ｎ＝１，…，Ｎ＝Ｍ＋Ｌ１＋…＋ＬＫ）とすると、以下の式（２）を用いて規格化する。
【００４６】
【数２】
0006668892.tif 000003
【００４７】
また、推薦するアイテムのリストを作成するにあたり、ユーザのクラスタリング時にどの特性グループを重視するか、人為的に調整する場合がある。このような調整を行うために、特性のグループごとに重み係数ベクトルを導入してもよい。
【００４８】
具体的には、ユーザプロファイルまたはアイテム内容について次の重み係数ベクトルを導入する。例えば、ｗｃ［ｋ＝４］＝０であれば、４番めの特性グループを考慮しないでクラスタリングを行うこととなる。
ユーザプロファイル重み係数：ｗｕ［ｍ］，ｍ＝１，…，Ｍ，（０≦ｗｕ［ｍ］≦１）
アイテム内容グループ重み係数：ｗｃ［ｋ］，ｋ＝１，…，Ｋ，（０≦ｗｃ［ｋ］≦１）
【００４９】
次いで、クラスタリング部２０は、Ｓ４までの処理により分析部１０により作成されたユーザ行動分析テーブル１５を参照し、ユーザをユーザグループ（クラスタ）に分割するクラスタリングの処理を行う（Ｓ５）。
【００５０】
具体的には、クラスタリング部２０は、ユーザのクラスタリングにおいて、ユーザ行動分析テーブル１５におけるユーザ嗜好特性行列ＮＶ［ｊ，ｎ］を構成する行ベクトルのクラスタリングを行う。クラスタリングを行うため、まず、上述した重み係数を乗じたユーザ嗜好特性行列ＷＶ［ｊ，ｎ］を算出する。なお、重み付きのユーザ嗜好特性行列ＷＶ［ｊ，ｎ］の各行の要素値は次のように算出される。
ユーザプロファイル部分：
ＷＶ［ｊ，ｎ］＝ｗｕ［ｎ］×ＮＶ［ｊ，ｎ］，ｎ＝１，…，Ｍ
アイテム内容部分：
グループ１：ＷＶ［ｊ，ｎ］＝ｗｃ［１］×ＮＶ［ｊ，ｎ］，ｎ＝Ｍ＋１，…，Ｍ＋Ｌ１
グループ２：ＷＶ［ｊ，ｎ］＝ｗｃ［２］×ＮＶ［ｊ，ｎ］，ｎ＝Ｍ＋Ｌ１＋１，…，Ｍ＋Ｌ１＋Ｌ２
：
グループＫ：ＷＶ［ｊ，ｎ］＝ｗｃ［Ｋ］×ＮＶ［ｊ，ｎ］，ｎ＝Ｎ−ＬＫ，…，Ｎ
【００５１】
すなわち、行ベクトル要素は次のようになる。
（ｗｕ［１］ＮＶ［ｊ，１］，ｗｕ［２］ＮＶ［ｊ，２］，…，ｗｕ［Ｍ］ＮＶ［ｊ，Ｍ］，
ｗｃ［１］ＮＶ［ｊ，Ｍ＋１］，ｗｃ［１］ＮＶ［ｊ，Ｍ＋２］，…，ｗｃ［１］ＮＶ［ｊ，Ｍ＋Ｌ１］，
ｗｃ［２］ＮＶ［ｊ，Ｍ＋Ｌ１＋１］，ｗｃ［２］ＮＶ［ｊ，Ｍ＋Ｌ１＋２］，…，ｗｃ［２］ＮＶ［ｊ，Ｍ＋Ｌ１＋Ｌ２］，
：
ｗｃ［Ｋ］ＮＶ［ｊ，Ｎ−ＬＫ］，ｗｃ［Ｋ］ＮＶ［ｊ，Ｎ−ＬＫ＋１］，…，ｗｃ［Ｋ］ＮＶ［ｊ，Ｎ］）
【００５２】
クラスタリング部２０は、重み付きのユーザ嗜好特性行列ＷＶ［ｊ，ｎ］を使用してクラスタリングを行う。クラスタリング手法には多くのモデルがある。本実施形態では、ユーザ数（ｊ）が１００万以上で場合によっては１０００万オーダーに達することも考えられるので、計算量がＯ（ｊ＾２）以上になる階層的クラスタリング手法は現実的ではない。よって、Ｏ（クラスタ数×ユーザ数（ｊ））以下の計算量でクラスタリングが行える非階層的な分割最適化クラスタリング手法を採用する。
【００５３】
クラスタリング計算においては、類似度の指標となる多次元ベクトルの距離を用いるので、まず距離の計算方法を定義しておく。重み付きのユーザ嗜好特性行列ＷＶ［ｊ，ｎ］の行要素から構成されるｊ行目の行ベクトルをｗｖｊと書くと次の式（３）のように表すことができる。
【００５４】
【数３】
0006668892.tif 000004
【００５５】
行ベクトルｗｖｊと行ベクトルｗｖｉの距離をｄｊｉ（ｗｖｊ，ｗｖｉ）と書くと２乗ユークリッド距離とマンハッタン距離は以下の式（４）のように定義される。なお、２乗ユークリッド距離またはマンハッタン距離のどちらの距離を採用するかは、クラスタリング結果の良し悪しを見てユーザが決定してもよい。
【００５６】
【数４】
0006668892.tif 000005
【００５７】
分割最適化クラスタリング手法としては、例えばｋ−ｍｅａｎｓ法を採用する。ｋ−ｍｅａｎｓ法は以下の式（５）の目的関数を最小化する。
【００５８】
【数５】
0006668892.tif 000006
【００５９】
ただし、ｗｖｊ∈ｃｋの意味はｋ番目のクラスタに属するユーザについての和をとることを意味する。また、クラスタ数はＫであり、ｃｋがｋ番目のクラスタ中心座標ベクトルであることを仮定している。
【００６０】
実際のクラスタ分割処理は以下の（１）〜（４）のとおりとなる。
（１）Ｋ個の中心座標ｃｋをランダムに生成する。
（２）初回計算時でない場合は中心座標を以下の式（６）で計算する。
【００６１】
【数６】
0006668892.tif 000007
【００６２】
（３）ユーザベクトルｗｖｊをｍｉｎｋｄｊｋ（ｗｖｊ，ｃｋ）となるクラスタｋに割り当てる。
（４）前回算出したクラスタメンバーから変化が無ければ計算を終了する。変化がある場合は（２）へ処理を戻す。
【００６３】
ｋ−ｍｅａｎｓ法は、ランダムに初期中心点を決定しているので、大域的な最小値が得られることを保障しない。よって、実際は何セットかの初期中心点を使ってクラスタリングを行い、そのうちの目的関数が最小のクラスタ分割を採用する。
【００６４】
また、計算時間が実用上問題となる場合は、１０％程度のユーザをランダムにサンプルしてｋ−ｍｅａｎｓ法を行い、中心点ｃｋを固定してから全ユーザのクラスタリングを行うものとする。この場合、全ユーザに対するクラスタリングでは、クラスタの割り当て処理が１回で済むので、計算時間を短縮することができる。
【００６５】
これまでの説明では、クラスタ数（Ｋ）は、アイテムのリストを作成する作成者が予め与えることを暗に仮定している。しかしながら、実際はクラスタ数を予め与えることは困難な場合がある。ただし、ビデオ・オン・デマンドなどの分野における知見に基づき設定できる場合は、クラスタ数を設定してもよい。例えば、映画やビデオ番組などのジャンルは大分類と中分類の組み合わせが百数十あるので、その程度の値を設定する。一方、知見よりクラスタ数を決定できない分野においては、最適クラスタ数を推定するいくつかの手法を利用して決定する。
【００６６】
クラスタ数の推定手法には、「石岡恒憲（２００６）：  ｘ−ｍｅａｎｓ  法改良の一提案−ｋ−ｍｅａｎｓ法の逐次繰り返しとクラスターの再併合−，  『計算機統計学』，  １８（１），ｐ．３−１３」のように、多くのモデルがある。ここでは、Ｉｎｔｅｇｒａｔｅｄ  ｃｌａｓｓｉｆｉｃａｔｉｏｎ  ｌｉｋｅｌｉｈｏｏｄ（ＩＣＬ）基準法、ｅｌｂｏｗ−ｐｏｉｎｔ法を使用するが、他の手法の使用に制限はない。例えば、ＩＣＬ基準法については、「Ｂｉｅｒｎａｃｋｉ，  Ｃ．，  ｅｔ．ａｌ（１９９８）：  Ａｓｓｅｓｓｉｎｇ  ａ  Ｍｉｘｔｕｒｅ  Ｍｏｄｅｌ  ｆｏｒ  Ｃｌｕｓｔｅｒｉｎｇ  ｗｉｔｈ  ｔｈｅ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｌａｓｓｉｆｆｃａｔｉｏｎ  Ｌｉｋｅｌｉｈｏｏｄ，  Ｒａｐｐｏｒｔ  ｄｅ  Ｒｅｃｈｅｒｃｈｅ  ３５２１，  ＩＮＲＩＡ．」が知られている。また、ｅｌｂｏｗ−ｐｏｉｎｔ法については、「Ｓａｌｖａｄｏｒ，  Ｓ．  ａｎｄ  Ｃｈａｎ，  Ｐ．（２００４）：  Ｄｅｔｅｒｍｉｎｉｎｇ  ｔｈｅ  Ｎｕｍｂｅｒ  ｏｆ  Ｃｌｕｓｔｅｒｓ／Ｓｅｇｍｅｎｔｓ  ｉｎ  Ｈｉｅｒａｒｃｈｉｃａｌ  Ｃｌｕｓｔｅｒｉｎｇ／Ｓｅｇｍｅｎｔａｔｉｏｎ  Ａｌｇｏｒｉｔｈｍｓ，  Ｐｒｏｃ．  ｏｆ    １６ｔｈ  ＩＥＥＥ  Ｉｎｔ．  Ｃｏｎｆ．  ｏｎ  Ｔｏｏｌｓ  ｗｉｔｈ  Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ，  ｐｐ．５７６  −  ５８４」が知られている。
【００６７】
ＩＣＬ基準法では、ＩＣＬ値が最大となるクラスタ数を最適クラスタ数に採用する。ＩＣＬ値の算出は次の近似式（７）を用いる。ここで、Ｋはクラスタ数、Ｊはユーザ数、ＪＫはクラスタＫに属するユーザ数、Ｎはユーザ嗜好特性ベクトルの次元である。
【００６８】
【数７】
0006668892.tif 000008
【００６９】
ｅｌｂｏｗ−ｐｏｉｎｔ法は、ｋｎｅｅ−ｐｏｉｎｔ法ともＬ字法とも呼ばれるように、クラスタ内距離の総和ＳＳＷ（Ｋ）をクラスタ数の関数としたとき、急速に減る領域からほとんど減らなくなる領域への変化点クラスタ数をもって、最適クラスタ数とする手法である。ＳＳＷ（Ｋ）はクラスタ数の連続関数ではないので、２次微分係数を差分近似で求め、その値が負の最大となるクラスタ数をもって最適クラスタ数とする。すなわち次の式（８）を最小とするＫを求める。ここで、ＳＤの相対的な大きさしか見ないので、差分近似式の共通因子である除数２は落としている。
【００７０】
【数８】
0006668892.tif 000009
【００７１】
図５−１は、クラスタ数とＳＤ（Ｋ）の関係を示すグラフである。図５−１の例では、最小となるｋ＝６を最適クラスタ数とする。ただし、クラスタ数とＳＳＷ（Ｋ）の関係を確認し、最適クラスタ数として正しいかどうかをユーザが判断して決めてもよい。
【００７２】
図５−２は、クラスタ数とＳＳＷ（Ｋ）の関係を示すグラフである。図５−２に示すように、クラスタ数とＳＳＷ（Ｋ）の関係を示すグラフをモニタ１０３（図９参照）などに表示し、ユーザが目視で確認してもよい。クラスタ数とＳＳＷ（Ｋ）の関係を示すグラフから正しくないと判断した場合、ユーザは、入力装置１０２（図９参照）より最適変化点を入力する。
【００７３】
また、クラスタリング部２０は、高次元データのクラスタリングにおいて生じる、いわゆる「次元の呪い」の発生を抑止するため、クラスタリングにおいて次元縮約法を用いてもよい。
【００７４】
例えば、クラスタリング部２０は、次元縮約法として次のｉ〜ｉｉｉの３つの手法のいずれかを用いる。
ｉ．１つ目の手法は、ユーザ嗜好ベクトルに含まれる各特性を、特性の種別などに着目した所定のグループごとにまとめ、予め設定されたクラスタリングで有効でないグループを除去して縮約したユーザ嗜好特性ベクトルを求める方法である。
ｉｉ．２つ目の手法は、ユーザ嗜好ベクトルに含まれる各特性を、特性の種別などに着目した所定のグループごとにまとめて縮約した上でクラスタリングし、各クラスタにおいて、縮約前のユーザ嗜好特性ベクトルに基づいてユーザをクラスタリングする方法である（詳細は後述する）。この手法では、全グループ特性を利用したクラスタリングであるが、アイテムの内容特性の細かな違いは反映できないため、２段階クラスタリングを実行している。
ｉｉｉ．３つ目の手法は、アイテム特性行列Ｘ［ｉ，ｇ［ｋ，ｌ］］で各列の和をとったベクトルｓｕｍＸ［ｇ［ｋ，ｌ］］（各要素値は各特性項目の出現回数となる）を作成して、各グループ内で出現数が相対的に小さい項目を除外する方法である。
【００７５】
ここで、上述した２つ目の手法（ｉｉ）について詳細に説明する。２つ目の手法（ｉｉ）では、クラスタリング部２０は、ユーザ嗜好特性ベクトルに含まれる各特性を、特性の種別などに着目した所定のグループごとにまとめて縮約する。次いで、クラスタリング部２０は、縮約後のユーザ嗜好特性ベクトルに基づいてユーザをクラスタリングする（第１のクラスタリング）。次いで、クラスタリング部２０は、第１のクラスタリング後の各クラスタにおいて、縮約前のユーザ嗜好特性ベクトルに基づいてユーザをクラスタリングする（第２のクラスタリング）。このように多段階の階層ごとのクラスタリングを行うことで、アイテム推薦装置１は、高次元データのクラスタリングにおいて生じる、いわゆる「次元の呪い」の発生を抑止することができる。
【００７６】
図６は、クラスタリング処理の一例を示すフローチャートである。図６に示すように、処理が開始されると、クラスタリング部２０は、ユーザ嗜好特性ベクトルｗｖｊの要素を特性グループごとにまとめる（Ｓ１０）。
【００７７】
ここで、ユーザ嗜好特性ベクトルｗｖｊについて、特性グループごとにまとめたベクトル要素の算出方法を説明する。この算出方法は、ユーザ嗜好特性ベクトルｗｖｊの特性グループごとの要素値の和をとって、以下の式（９）に示す次元縮約ベクトルｒｖｊに変換することである。
【００７８】
【数９】
0006668892.tif 000010
【００７９】
なお、ユーザプロファイル特性部分の（ＮＶ［ｊ，１］，Ｐ［ｊ，２］，…，ＮＶ［ｊ，Ｍ］）は、１グループ１特性なので、要素の和をとらなくてもよい。また、グループごとに特性項目数は異なるので、規格化のために（Ｌ１，Ｌ２，…，ＬＫ）で各グループ要素値を除している。
【００８０】
ただし、この次元縮約ベクトルｒｖｊをこのまま単純につかってクラスタリングを行うと、問題が生じる場合がある。例えば、監督グループでは１アイテムに１監督なので、特性グループごとにまとめたベクトル要素がクラスタリングに有効なものとはならない。また、出演者グループの場合は出演者が多いか否かでクラスタリングが行われる場合がある。また、アイテムが映像番組ではなく商品の場合も同様である。例えば、加工食品の原材料をグループとして、各原料を特性項目にしているものとする。ここで、グループ内の和を取ることは、ある加工食品がどの程度の数の原料を使っているかを意味することになり、購入者がどの材料が好きかを反映したものではなくなる。このように、次元縮約によりユーザの嗜好などについての情報が失われる場合がある。
【００８１】
そこで、本実施形態では、各グループに対するユーザの評価重みを導入してクラスタリングを行う。この評価重みは、ユーザがどのグループの特性を重視してアイテム（映像番組）を選択する傾向があるかを反映するものである。具体的には、クラスタリング部２０は、入力装置１０２（図９参照）からのユーザ設定をもとに、特性グループごとの重み設定を行う（Ｓ１１）。この重み設定により、次元縮約する場合であっても、似たような選択基準を持つユーザに分類することができる。
【００８２】
クラスタリング部２０は、ユーザ設定をもとに、各グループに対するユーザの評価重みｗｇ［ｋ］，ｋ＝１，…，Ｋ，（０≦ｗｇ［ｋ］≦１）を導入する。さらに、クラスタリング部２０は、混合比率をδ（０≦δ≦１）とし、以下の式（１０）に示すベクトルを作成してクラスタリング（第１段階）を行う（Ｓ１２）。なお、混合比率δはＳ１１においてユーザが設定するものとする。
【００８３】
【数１０】
0006668892.tif 000011
【００８４】
次いで、クラスタリング部２０は、第１段階のクラスタリングで求めた各クラスタ内のユーザに対して、縮約前のユーザ全ての特性項目（ユーザ嗜好特性ベクトルｗｖｊ）を使ってクラスタリング（第２段階）する（Ｓ１３）。
【００８５】
図２に戻り、クラスタリング部２０は、クラスタごとに、クラスタに属するユーザの視聴履歴を集計して選択頻度の高い映像番組を推薦する映像番組として抽出する。クラスタリング部２０は、クラスタごとに抽出した映像番組を選択頻度の高い順に並べて基本推薦リストテーブル１６を作成する（Ｓ６）。
【００８６】
図７は、基本推薦リストテーブル１６の作成を説明する説明図である。図７に示すように、クラスタリング部２０は、クラスタリングにより、ユーザごとに、ユーザが属するクラスタを示すデータテーブルＴ１１を生成する。次いで、クラスタリング部２０は、データテーブルＴ１１をもとに、クラスタごとに、クラスタに属するユーザの視聴履歴を集計して選択頻度の高い映像番組を抽出する。例えば、図示例では、「１」のクラスタについては、「ｕｓｅｒ５、ｕｓｅｒ７」の視聴履歴を集計して選択頻度の高い映像番組「１１、２５、９８、４、６２」が抽出され、選択頻度の高い順に推薦順位が付与される。このようにして、クラスタリング部２０は、全クラスタについての推薦順位のリストを求め、基本推薦リストテーブル１６として出力する。
【００８７】
次いで、出力部３０は、基本推薦リストテーブル１６と、視聴履歴データ１３とをもとに、各ユーザについてのユーザ推薦リストテーブル１７を出力する（Ｓ７）。図８は、ユーザ推薦リストテーブル１７の作成を説明する説明図である。
【００８８】
図８に示すように、出力部３０は、ユーザの視聴履歴データ１３を参照し、ユーザが属するクラスタより抽出された基本推薦リストテーブル１６からユーザが既に視聴済み（選択済み）である映像番組を除外する。そして、出力部３０は、ユーザが未視聴（未選択）の映像番組のリストをユーザ推薦リストテーブル１７として出力する。
【００８９】
例えば、図８の例では、「１」のユーザは、「４」のクラスタに属しており、「６、１２、２５、６２、９９」の番組を視聴済みである。また、「４」のクラスタについては、「６、８８、６２、１３、７８」が推薦リストとして集計されている。したがって、「１」のユーザについては、集計された推薦リストの中で未視聴の「８８、１３、７８」が出力されることとなる。これにより、アイテム推薦装置１は、ユーザが未視聴の映像番組を推薦することができる。
【００９０】
また、出力部３０は、ユーザ推薦リストテーブル１７におけるユーザごとに推薦するアイテムについての評価値を算出して出力してもよい。具体的には、出力部３０は、推薦するアイテムの評価値として、ｐｒｅｃｉｓｉｏｎ、ｒｅｃａｌｌ、Ｆ−ｍｅａｓｕｒｅを算出する。それぞれの定義は以下の式（１１）のとおりである。
【００９１】
【数１１】
0006668892.tif 000012
【００９２】
たとえば、上記の評価値の算出は、ユーザのユーザ推薦リストテーブル１７のトップＮのアイテムを使用して、全ユーザおよびクラスタごとのユーザに対して行う。トップＮの「Ｎ」の値は、ユーザが任意に設定可能なものであってよく、暗黙値として例えば「１０」を設定しておく。
【００９３】
評価値の算出に使用する視聴履歴データ１３は、ユーザ推薦リストテーブル１７の作成の前と後とで異なる。ユーザ推薦リストテーブル１７の作成前は、視聴履歴データ１３を適当な評価期間に分割して評価すればよい。ただし、この分割割合はユーザが任意に設定するものとする。ユーザ推薦リストテーブル１７の作成後は、新規の視聴履歴データ１３が獲得できるので、ある期間分の視聴履歴データ１３が蓄積できたところで評価を行う。ただし、この蓄積に要する期間はユーザが任意に設定するものとする。
【００９４】
ユーザは、出力された評価値を確認することで、入力装置１０２（図９参照）より諸設定を更新して処理の改善を試みることができる。たとえば、ユーザは、評価値が小さく、推薦の効果が悪いと判断した場合は、グループ特性重みの調整や新たな特性の項目を追加する設定を入力装置１０２（図９参照）より行うなどして改善を試みることができる。
【００９５】
また、アイテム推薦装置１で行われる各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行されるプログラム上、またはワイヤードロジックによるハードウエア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。また、アイテム推薦装置１で行われる各種処理機能は、クラウドコンピューティングにより、複数のコンピュータが協働して実行してもよい。
【００９６】
ところで、上記の実施形態で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施形態と同様の機能を有するプログラムを実行するコンピュータ（ハードウエア）の一例を説明する。図９は、実施形態にかかるアイテム推薦装置１のハードウエア構成の一例を示すブロック図である。
【００９７】
図９に示すように、アイテム推薦装置１は、各種演算処理を実行するＣＰＵ１０１と、データ入力を受け付ける入力装置１０２と、モニタ１０３と、スピーカ１０４とを有する。また、アイテム推薦装置１は、記憶媒体からプログラム等を読み取る媒体読取装置１０５と、各種装置と接続するためのインタフェース装置１０６と、有線または無線により外部機器と通信接続するための通信装置１０７とを有する。また、アイテム推薦装置１は、各種情報を一時記憶するＲＡＭ１０８と、ハードディスク装置１０９とを有する。また、アイテム推薦装置１内の各部（１０１〜１０９）は、バス１１０に接続される。
【００９８】
ハードディスク装置１０９には、上記の実施形態で説明した分析部１０、クラスタリング部２０および出力部３０における各種の処理を実行するためのプログラム１１１が記憶される。また、ハードディスク装置１０９には、プログラム１１１が参照する各種データ１１２（アイテムキーワードテーブル１２、視聴履歴データ１３など）が記憶される。入力装置１０２は、例えば、アイテム推薦装置１の操作者から操作情報の入力を受け付ける。モニタ１０３は、例えば、操作者が操作する各種画面を表示する。インタフェース装置１０６は、例えば印刷装置等が接続される。通信装置１０７は、ＬＡＮ（Local  Area  Network）等の通信ネットワークと接続され、通信ネットワークを介した外部機器との間で各種情報をやりとりする。
【００９９】
ＣＰＵ１０１は、ハードディスク装置１０９に記憶されたプログラム１１１を読み出して、ＲＡＭ１０８に展開して実行することで、各種の処理を行う。なお、プログラム１１１は、ハードディスク装置１０９に記憶されていなくてもよい。例えば、アイテム推薦装置１が読み取り可能な記憶媒体に記憶されたプログラム１１１を読み出して実行するようにしてもよい。アイテム推薦装置１が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこのプログラム１１１を記憶させておき、アイテム推薦装置１がこれらからプログラム１１１を読み出して実行するようにしてもよい。
【符号の説明】
【０１００】
１…アイテム推薦装置
１０…分析部
１１…アイテムＤＢ
１２…アイテムキーワードテーブル
１３…視聴履歴データ
１４、１８…ユーザプロファイル
１５…ユーザ行動分析テーブル
１６…基本推薦リストテーブル
１７…ユーザ推薦リストテーブル
２０…クラスタリング部
３０…出力部
１０１…ＣＰＵ
１０２…入力装置
１０３…モニタ
１０４…スピーカ
１０５…媒体読取装置
１０６…インタフェース装置
１０７…通信装置
１０８…ＲＡＭ
１０９…ハードディスク装置
１１０…バス
１１１…プログラム
１１２…各種データ
Ｔ１０、Ｔ１１…データテーブル
【図１】
0006668892.tif 000013
【図２】
0006668892.tif 000014
【図３】
0006668892.tif 000015
【図４】
0006668892.tif 000016
【図５−１】
0006668892.tif 000017
【図５−２】
0006668892.tif 000018
【図６】
0006668892.tif 000019
【図７】
0006668892.tif 000020
【図８】
0006668892.tif 000021
【図９】
0006668892.tif 000022