(57)【要約】  【課題】  計算量を減らして処理時間を短縮することのできる協調フィルタ装置を提供する。  【解決手段】  履歴データ蓄積部２１は、ユーザ識別データおよびアイテム識別データを含むログを履歴データとして蓄積しており、履歴データが協調フィルタ部２３により処理される。処理対象データ抽出部２９は、履歴データ蓄積部に蓄積された多数のログから、協調フィルタ部で処理されるべきログを抽出する。処理対象データ抽出部２９において、基礎データ記憶部は、ログ数と協調フィルタリングの処理時間との関係の基礎データを記憶しており、処理時間計算部は、入力された目標ログ数に対応する予測処理時間を基礎データから算出する。また、処理対象データ抽出部２９のログ抽出部は、入力された目標ログ数のログを、履歴データ蓄積部２１に蓄積されたログから抽出する。【選択図】  図１
2006302097.tif 000002
【特許請求の範囲】
【請求項１】
多数のユーザによりアイテムが取得されるたびに発生するユーザ識別データおよびアイテム識別データを含むログを履歴データとして蓄積した履歴データ蓄積部と、
前記履歴データ蓄積部に蓄積された前記履歴データを用いた協調フィルタリング処理によって推薦対象ユーザへの推薦アイテムを求める協調フィルタ部と、
前記協調フィルタ部による処理結果を出力する出力部と、
前記履歴データ蓄積部に蓄積された多数のログから、前記協調フィルタ部で処理されるべきログを抽出する処理対象データ抽出部とを備え、
前記処理対象データ抽出部は、
ログ数と協調フィルタリングの処理時間との関係の基礎データを記憶した基礎データ記憶部と、
協調フィルタリングで処理されるべき目標ログ数を入力する目標ログ数入力部と、
前記基礎データ記憶部から前記基礎データを読み出して、前記ログ数入力部により入力された前記目標ログ数に対応する予測処理時間を前記基礎データから求める処理時間算出部と、
前記処理時間算出部により算出された前記予測処理時間を出力する処理時間出力部と、
前記ログ数入力部により入力された前記目標ログ数に基づき、前記履歴データ蓄積部に蓄積されたログから前記目標ログ数のログを抽出するログ抽出部と、
を備えたことを特徴とする協調フィルタ装置。
【請求項２】
前記ログ抽出部は、推薦対象ユーザの個人ログ数、比較対象ユーザの個人ログ数および両ユーザの共通取得アイテムのログ数から定まる類似度理論値に基づいて、前記推薦対象ユーザの個人ログ数に応じて前記比較対象ユーザの個人ログ数を限定し、限定された前記個人ログ数に対応する前記比較対象ユーザのログを前記履歴データベースから抽出することを特徴とする請求項１に記載の協調フィルタ装置。
【請求項３】
前記ログ抽出部は、
前記類似度理論値の類似度しきい値を設定する手段と、
前記類似度しきい値以上の類似度理論値に対応する比較対象ユーザの個人ログ数であるしきい値基準個人ログ数を設定する手段と、
前記履歴データ蓄積部のログから、前記しきい値基準個人ログ数に対応する比較対象ユーザのログの数のカウント値を取得するカウント取得手段と、
を有し、前記カウント取得手段により得られるカウント値が前記目標ログ数を達成する範囲で前記類似度しきい値を最大に設定したときの前記しきい値基準個人ログ数へと、ログ抽出元の比較対象ユーザの個人ログ数を限定することを特徴とする請求項２に記載の協調フィルタ装置。
【請求項４】
前記基礎データ記憶部は、推薦対象ユーザを複数に分割したときのログ数と協調フィルタリング処理時間の関係の基礎データを記憶しており、
前記処理時間算出部は、推薦対象ユーザを分割したときの前記基礎データを用いて予測処理時間を計算することを特徴とする請求項１ないし３のいずれかに記載の協調フィルタ装置。
【請求項５】
前記基礎データ記憶部は、ログを複数に分割したときのログ数と協調フィルタリング処理時間の関係の基礎データを記憶しており、
前記処理時間算出部は、ログを分割したときの前記基礎データを用いて予測処理時間を計算することを特徴とする請求項１ないし３のいずれかに記載の協調フィルタ装置。
【請求項６】
前記基礎データ記憶部は、推薦対象ユーザおよびログをそれぞれ複数に分割したときのログ数と協調フィルタリング処理時間の関係の基礎データを記憶しており、
前記処理時間算出部は、前薦対象ユーザおよびログを分割したときの前記基礎データを用いて予測処理時間を計算することを特徴とする請求項１ないし３のいずれかに記載の協調フィルタ装置。
【請求項７】
前記処理対象データ抽出部は、さらに、協調フィルタリングの設定処理時間を入力する設定処理時間入力部と、前記基礎データ記憶部から前記基礎データを読み出して、前記処理時間入力部により入力された前記設定処理時間に対応する目標ログ数を前記基礎データから求める目標ログ数算出部とを備え、
前記ログ抽出部は、前記設定処理時間が入力されたときは、前記目標ログ数算出部により求められた前記目標ログ数のログを前記履歴データ蓄積部に蓄積されたログから抽出することを特徴とする請求項１ないし６のいずれかに記載の協調フィルタ装置。
【請求項８】
前記処理対象データ抽出部は、推薦対象ユーザの個人ログ数、比較対象ユーザの個人ログ数および両ユーザの共通取得アイテムのログ数から定まる類似度理論値の設定類似度しきい値を入力する類似度しきい値入力部と、前記設定類似度しきい値に対応する目標ログ数を求める目標ログ数取得部と、前記目標ログ数に対応する予測処理時間を算出する処理時間算出部とを有し、
前記設定類似度しきい値が入力されたとき、前記目標ログ数取得部は、前記履歴データ蓄積部のログから、前記類似度しきい値以上の類似度理論値に対応する個人ログ数の比較対象ユーザのログの数のカウント値を前記目標ログ数として求め、前記処理時間算出部は、前記基礎データ記憶部から前記基礎データを読み出して、前記目標ログ数取得部により取得された前記目標ログ数に対応する予測処理時間を前記基礎データから求めることを特徴とする請求項１ないし７のいずれかに記載の協調フィルタ装置。
【請求項９】
多数のユーザによりアイテムが取得されるたびに発生するユーザ識別データおよびアイテム識別データを含むログを履歴データとして蓄積した履歴データ蓄積部と、前記履歴データ蓄積部に蓄積された前記履歴データを用いた協調フィルタリング処理によって推薦対象ユーザへの推薦アイテムを求める協調フィルタ部とを備えた協調フィルタ装置のために、前記履歴データ蓄積部に蓄積された多数のログから、前記協調フィルタ部で処理されるべきログを抽出する協調フィルタ支援装置であって、
ログ数と協調フィルタリングの処理時間との関係の基礎データを記憶した基礎データ記憶部と、
協調フィルタリングで処理されるべき目標ログ数を入力する目標ログ数入力部と、
前記基礎データ記憶部から前記基礎データを読み出して、前記ログ数入力部により入力された前記目標ログ数に対応する予測処理時間を前記基礎データから求める処理時間算出部と、
前記処理時間算出部により算出された前記予測処理時間を出力する処理時間出力部と、
前記ログ数入力部により入力された前記目標ログ数に基づき、前記履歴データ蓄積部に蓄積されたログから前記目標ログ数のログを抽出するログ抽出部と、
を備えたことを特徴とする協調フィルタ支援装置。
【請求項１０】
多数のユーザによりアイテムが取得されるたびに発生するユーザ識別データおよびアイテム識別データを含むログを履歴データとして蓄積した履歴データ蓄積部と、前記履歴データ蓄積部に蓄積された前記履歴データを用いた協調フィルタリング処理によって推薦対象ユーザへの推薦アイテムを求める協調フィルタ部とを備えた協調フィルタ装置のために、前記履歴データ蓄積部に蓄積された多数のログから、前記協調フィルタ部で処理されるべきログをコンピュータの処理によって抽出する協調フィルタ支援処理方法であって、
協調フィルタリングで処理されるべき目標ログ数を目標ログ数入力部から入力し、ログ数と協調フィルタリングの処理時間との関係の基礎データを記憶した基礎データ記憶部から基礎データを読み出し、前記基礎データ記憶部から読み出した前記基礎データから前記ログ数入力部により入力された前記目標ログ数に対応する予測処理時間を求め、算出された前記予測処理時間を処理時間出力部から出力し、前記ログ数入力部により入力された前記目標ログ数に基づき、前記履歴データ蓄積部に蓄積されたログから前記目標ログ数のログを抽出することを特徴とする協調フィルタ支援処理方法。
【請求項１１】
多数のユーザによりアイテムが取得されるたびに発生するユーザ識別データおよびアイテム識別データを含むログを履歴データとして蓄積した履歴データ蓄積部と、前記履歴データ蓄積部に蓄積された前記履歴データを用いた協調フィルタリング処理によって推薦対象ユーザへの推薦アイテムを求める協調フィルタ部とを備えた協調フィルタ装置のために、前記履歴データ蓄積部に蓄積された多数のログから、前記協調フィルタ部で処理されるべきログを抽出する処理をコンピュータに実行させる協調フィルタ支援処理プログラムであって、
協調フィルタリングで処理されるべき目標ログ数を目標ログ数入力部から入力し、ログ数と協調フィルタリングの処理時間との関係の基礎データを記憶した基礎データ記憶部から基礎データを読み出し、前記基礎データ記憶部から読み出した前記基礎データから前記ログ数入力部により入力された前記目標ログ数に対応する予測処理時間を求め、算出された前記予測処理時間を処理時間出力部から出力し、前記ログ数入力部により入力された前記目標ログ数に基づき、前記履歴データ蓄積部に蓄積されたログから前記目標ログ数のログを抽出する処理をコンピュータに実行させることを特徴とする協調フィルタ支援処理プログラム。
【請求項１２】
多数のユーザによりアイテムが取得されるたびに発生するユーザ識別データおよびアイテム識別データを含むログを履歴データとして蓄積した履歴データ蓄積部と、前記履歴データ蓄積部に蓄積された前記履歴データを用いた協調フィルタリング処理によって推薦対象ユーザへの推薦アイテムを求める協調フィルタ部とを備えた協調フィルタ装置のために、前記履歴データ蓄積部に蓄積された多数のログから、前記協調フィルタ部で処理されるべきログを抽出する協調フィルタ支援装置であって、
ログ数と協調フィルタリングの処理時間との関係の基礎データを記憶した基礎データ記憶部と、
協調フィルタリングの設定処理時間を入力する設定処理時間入力部と、
前記基礎データ記憶部から前記基礎データを読み出して、前記設定処理時間入力部により入力された前記設定処理時間に対応する目標ログ数を前記基礎データから求める目標ログ数算出部と、
前記目標ログ数算出部により算出された前記目標ログ数を出力する目標ログ数出力部と、
前記目標ログ数算出部により算出された前記目標ログ数に基づき、前記履歴データ蓄積部に蓄積されたログから前記目標ログ数のログを抽出するログ抽出部と、
を備えたことを特徴とする協調フィルタ支援装置。
【請求項１３】
多数のユーザによりアイテムが取得されるたびに発生するユーザ識別データおよびアイテム識別データを含むログを履歴データとして蓄積した履歴データ蓄積部と、前記履歴データ蓄積部に蓄積された前記履歴データを用いた協調フィルタリング処理によって推薦対象ユーザへの推薦アイテムを求める協調フィルタ部とを備えた協調フィルタ装置のために、前記履歴データ蓄積部に蓄積された多数のログから、前記協調フィルタ部で処理されるべきログを抽出する処理をコンピュータに実行させる協調フィルタ支援処理プログラムであって、
協調フィルタリングの設定処理時間を設定処理時間入力部から入力し、ログ数と協調フィルタリングの処理時間との関係の基礎データを記憶した基礎データ記憶部から基礎データを読み出し、前記基礎データ記憶部から読み出した前記基礎データから前記設定処理時間入力部により入力された前記設定処理時間に対応する目標ログ数を求め、算出された前記目標ログ数を目標ログ数出力部から出力し、前記目標ログ数算出部により算出された前記目標ログ数に基づき、前記履歴データ蓄積部に蓄積されたログから前記目標ログ数のログを抽出する処理をコンピュータに実行させることを特徴とする協調フィルタ支援処理プログラム。
【請求項１４】
多数のユーザによりアイテムが取得されるたびに発生するユーザ識別データおよびアイテム識別データを含むログを履歴データとして蓄積した履歴データ蓄積部と、前記履歴データ蓄積部に蓄積された前記履歴データを用いた協調フィルタリング処理によって推薦対象ユーザへの推薦アイテムを求める協調フィルタ部とを備えた協調フィルタ装置のために、前記履歴データ蓄積部に蓄積された多数のログから、前記協調フィルタ部で処理されるべきログを抽出する協調フィルタ支援装置であって、
推薦対象ユーザの個人ログ数、比較対象ユーザの個人ログ数および両ユーザの共通取得アイテムのログ数から定まる類似度理論値の類似度しきい値を入力する手段と、
前記類似度しきい値以上の類似度理論値に対応する比較対象ユーザの個人ログ数であるしきい値基準個人ログ数を設定する手段と、
前記しきい値基準個人ログ数の比較対象ユーザのログを前記履歴データ蓄積部から抽出する手段と、
を備えたことを特徴とする協調フィルタ支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザに推薦すべき商品等のアイテムを計算処理で求める協調フィルタ装置に関し、特に、計算量を削減して処理時間を短縮することができる協調フィルタ装置に関する。
【背景技術】
【０００２】
従来、協調フィルタ装置は、コンテンツ等の商品の推薦情報を提供するために用いられる代表的な技術として知られている。協調フィルタリングは、ユーザの嗜好を過去の行動というかたちで記録したデータを用いて、推薦対象ユーザと似たような行動をとっているユーザの嗜好情報を基に推薦対象ユーザの嗜好を推測するシステムである。
【０００３】
協調フィルタ装置は、複数のユーザによる商品購入履歴のデータベースを備えている。協調フィルタリングでは、商品購入履歴からユーザ間の類似度が定義される。類似度としては、例えばジャッカード係数および余弦が知られている。購入履歴データから、推薦対象ユーザと比較対象ユーザの類似度が算出される。類似度から、推薦対象ユーザがまだ購入していない商品の推薦値が算出される。そして、推薦値が高い商品の情報が推薦対象ユーザへと提供される。
【０００４】
協調フィルタ装置では、ユーザ数が多いほど、また、購入履歴データが多いほど、フィルタリングの精度が向上する。そこで、協調フィルタ装置は、多数のユーザによる大量の購入履歴データのデータベースを備え、このデータベースの履歴データに対して上述の協調フィルタリングの処理を行うように構成されることが望まれる。
協調フィルタリング技術は、例えば、特許文献１に開示されている。
【特許文献１】特開２００４−３２６２２７号公報（第５−８ページ、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の協調フィルタ装置においては、大量の購入履歴データを処理すると、計算量が膨大になって、処理時間が長くなりすぎるという問題があった。すなわち、従来は、処理時間がどれくらいであるかを前もって知る術がなく、いざ協調フィルタリングの実行を開始すると、いつまでたっても処理が終わらず、途中で処理を中止することになる、という事態が発生しやすかった。特に、協調フィルタ装置はメモリ、ＨＤＤといった有限なハードウエア資源の範囲内で動作するので、コンピュータのメモリが一杯になり、ＨＤＤ装置へのスワップが発生した場合などには処理時間が大幅に長くなるという問題があり、さらに、ＨＤＤ装置が一杯になると処理が不可能な事態に陥るという問題があった。
【０００６】
本発明は、従来の問題を解決するためになされたもので、計算量を減らして処理時間を短縮することのできる協調フィルタ装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の協調フィルタ装置は、多数のユーザによりアイテムが取得されるたびに発生するユーザ識別データおよびアイテム識別データを含むログを履歴データとして蓄積した履歴データ蓄積部と、前記履歴データ蓄積部に蓄積された前記履歴データを用いた協調フィルタリング処理によって推薦対象ユーザへの推薦アイテムを求める協調フィルタ部と、前記協調フィルタ部による処理結果を出力する出力部と、前記履歴データ蓄積部に蓄積された多数のログから、前記協調フィルタ部で処理されるべきログを抽出する処理対象データ抽出部とを備え、前記処理対象データ抽出部は、ログ数と協調フィルタリングの処理時間との関係の基礎データを記憶した基礎データ記憶部と、協調フィルタリングで処理されるべき目標ログ数を入力する目標ログ数入力部と、前記基礎データ記憶部から前記基礎データを読み出して、前記ログ数入力部により入力された前記目標ログ数に対応する予測処理時間を前記基礎データから求める処理時間算出部と、前記処理時間算出部により算出された前記予測処理時間を出力する処理時間出力部と、前記ログ数入力部により入力された前記目標ログ数に基づき、前記履歴データ蓄積部に蓄積されたログから前記目標ログ数のログを抽出するログ抽出部とを備えている。ここで、「ログ」は、アイテム取得の履歴データであり、ユーザ識別データおよびアイテム識別データを含むデータである。アイテムは、例えば、コンテンツ等の商品である。
【０００８】
この構成により、ログ数と協調フィルタリング処理時間との関係の基礎データを記憶した基礎データ記憶部が設けられ、入力された目標ログ数に対応する予測処理時間が計算され、また、入力された目標ログ数のログが履歴データ蓄積部から抽出される。予測処理時間が予めわかるので、予測処理時間が妥当になるようにログ数を設定できる。また、設定したログ数のログを履歴データから抽出することにより、算出した予測処理時間を達成するように計算量を削減できる。このようにして、計算量を減らして処理時間を短縮することができる。
【０００９】
また、本発明の協調フィルタ装置において、前記ログ抽出部は、推薦対象ユーザの個人ログ数、比較対象ユーザの個人ログ数および両ユーザの共通取得アイテムのログ数から定まる類似度理論値に基づいて、前記推薦対象ユーザの個人ログ数に応じて前記比較対象ユーザの個人ログ数を限定し、限定された前記個人ログ数に対応する前記比較対象ユーザのログを前記履歴データベースから抽出するように構成されている。
【００１０】
この構成により、類似度理論値に基づいて履歴データからログを抽出することで、推薦対象ユーザと取得アイテム数が近いユーザのログを残すことができ、フィルタリング精度をより高く保ったままログ数を削減できる。
【００１１】
また、本発明の協調フィルタ装置において、前記ログ抽出部は、前記類似度理論値の類似度しきい値を設定する手段と、前記類似度しきい値以上の類似度理論値に対応する比較対象ユーザの個人ログ数であるしきい値基準個人ログ数を設定する手段と、前記履歴データ蓄積部のログから、前記しきい値基準個人ログ数に対応する比較対象ユーザのログの数のカウント値を取得するカウント取得手段と、を有し、前記カウント取得手段により得られるカウント値が前記目標ログ数を達成する範囲で前記類似度しきい値を最大に設定したときの前記しきい値基準個人ログ数へと、ログ抽出元の比較対象ユーザの個人ログ数を限定するように構成されている。
【００１２】
この構成により、類似度理論値の類似度しきい値を設定し、この類似度しきい値を使って履歴データからログを抽出することで、推薦対象ユーザと取得アイテム数が近いユーザのログを残すことができ、フィルタリング精度をより高く保ったままログ数を削減できる。
【００１３】
また、本発明の協調フィルタ装置において、前記基礎データ記憶部は、推薦対象ユーザを複数に分割したときのログ数と協調フィルタリング処理時間の関係の基礎データを記憶しており、前記処理時間算出部は、推薦対象ユーザを分割したときの前記基礎データを用いて予測処理時間を計算する。この構成により計算量を減らして処理時間を短縮できる。
【００１４】
また、本発明の協調フィルタ装置において、前記基礎データ記憶部は、ログを複数に分割したときのログ数と協調フィルタリング処理時間の関係の基礎データを記憶しており、前記処理時間算出部は、ログを分割したときの前記基礎データを用いて予測処理時間を計算する。この構成により計算量を減らして処理時間を短縮できる。
【００１５】
また、本発明の協調フィルタ装置において、前記基礎データ記憶部は、推薦対象ユーザおよびログをそれぞれ複数に分割したときのログ数と協調フィルタリング処理時間の関係の基礎データを記憶しており、前記処理時間算出部は、前薦対象ユーザおよびログを分割したときの前記基礎データを用いて予測処理時間を計算する。この構成により計算量を減らして処理時間を短縮できる。
【００１６】
また、本発明の協調フィルタ装置において、前記処理対象データ抽出部は、さらに、協調フィルタリングの設定処理時間を入力する設定処理時間入力部と、前記基礎データ記憶部から前記基礎データを読み出して、前記処理時間入力部により入力された前記設定処理時間に対応する目標ログ数を前記基礎データから求める目標ログ数算出部とを備え、前記ログ抽出部は、前記設定処理時間が入力されたときは、前記目標ログ数算出部により求められた前記目標ログ数のログを前記履歴データ蓄積部に蓄積されたログから抽出する。
【００１７】
この構成により、設定処理時間の入力に応じて、入力された設定処理時間に対応する目標ログ数が計算され、算出された目標ログ数のログが履歴データ蓄積部から抽出される。したがって、この構成でも、計算量を減らして処理時間を短縮するといったことを好適に行える。
【００１８】
また、本発明の協調フィルタ装置において、前記処理対象データ抽出部は、推薦対象ユーザの個人ログ数、比較対象ユーザの個人ログ数および両ユーザの共通取得アイテムのログ数から定まる類似度理論値の設定類似度しきい値を入力する類似度しきい値入力部と、前記設定類似度しきい値に対応する目標ログ数を求める目標ログ数取得部と、前記目標ログ数に対応する予測処理時間を算出する処理時間算出部とを有し、前記設定類似度しきい値が入力されたとき、前記目標ログ数取得部は、前記履歴データ蓄積部のログから、前記類似度しきい値以上の類似度理論値に対応する個人ログ数の比較対象ユーザのログの数のカウント値を前記目標ログ数として求め、前記処理時間算出部は、前記基礎データ記憶部から前記基礎データを読み出して、前記目標ログ数取得部により取得された前記目標ログ数に対応する予測処理時間を前記基礎データから求める。
【００１９】
この構成により、入力された設定類似度しきい値から目標ログ数が算出され、目標ログ数から処理時間の予測値が算出される。したがって、設定類似度しきい値を調整して、処理時間が適切になるようにログを削減できる。類似度理論値の類似度しきい値を用いることで、高いフィルタリング精度を保ちながら計算量を削減でき、処理時間を短縮できる。
【００２０】
また、本発明の別の態様は、多数のユーザによりアイテムが取得されるたびに発生するユーザ識別データおよびアイテム識別データを含むログを履歴データとして蓄積した履歴データ蓄積部と、前記履歴データ蓄積部に蓄積された前記履歴データを用いた協調フィルタリング処理によって推薦対象ユーザへの推薦アイテムを求める協調フィルタ部とを備えた協調フィルタ装置のために、前記履歴データ蓄積部に蓄積された多数のログから、前記協調フィルタ部で処理されるべきログを抽出する協調フィルタ支援装置である。この協調フィルタ支援装置は、ログ数と協調フィルタリングの処理時間との関係の基礎データを記憶した基礎データ記憶部と、協調フィルタリングで処理されるべき目標ログ数を入力する目標ログ数入力部と、前記基礎データ記憶部から前記基礎データを読み出して、前記ログ数入力部により入力された前記目標ログ数に対応する予測処理時間を前記基礎データから求める処理時間算出部と、前記処理時間算出部により算出された前記予測処理時間を出力する処理時間出力部と、前記ログ数入力部により入力された前記目標ログ数に基づき、前記履歴データ蓄積部に蓄積されたログから前記目標ログ数のログを抽出するログ抽出部とを備えている。この構成によっても、上述の本発明の利点が得られる。
【００２１】
また、本発明の別の態様は、多数のユーザによりアイテムが取得されるたびに発生するユーザ識別データおよびアイテム識別データを含むログを履歴データとして蓄積した履歴データ蓄積部と、前記履歴データ蓄積部に蓄積された前記履歴データを用いた協調フィルタリング処理によって推薦対象ユーザへの推薦アイテムを求める協調フィルタ部とを備えた協調フィルタ装置のために、前記履歴データ蓄積部に蓄積された多数のログから、前記協調フィルタ部で処理されるべきログをコンピュータの処理によって抽出する協調フィルタ支援処理方法である。この協調フィルタ支援処理方法は、協調フィルタリングで処理されるべき目標ログ数を目標ログ数入力部から入力し、ログ数と協調フィルタリングの処理時間との関係の基礎データを記憶した基礎データ記憶部から基礎データを読み出し、前記基礎データ記憶部から読み出した前記基礎データから前記ログ数入力部により入力された前記目標ログ数に対応する予測処理時間を求め、算出された前記予測処理時間を処理時間出力部から出力し、前記ログ数入力部により入力された前記目標ログ数に基づき、前記履歴データ蓄積部に蓄積されたログから前記目標ログ数のログを抽出する。この方法によっても、上述の本発明の利点が得られる。
【００２２】
また、本発明の別の態様は、多数のユーザによりアイテムが取得されるたびに発生するユーザ識別データおよびアイテム識別データを含むログを履歴データとして蓄積した履歴データ蓄積部と、前記履歴データ蓄積部に蓄積された前記履歴データを用いた協調フィルタリング処理によって推薦対象ユーザへの推薦アイテムを求める協調フィルタ部とを備えた協調フィルタ装置のために、前記履歴データ蓄積部に蓄積された多数のログから、前記協調フィルタ部で処理されるべきログを抽出する処理をコンピュータに実行させる協調フィルタ支援処理プログラムである。この協調フィルタ支援処理プログラムは、協調フィルタリングで処理されるべき目標ログ数を目標ログ数入力部から入力し、ログ数と協調フィルタリングの処理時間との関係の基礎データを記憶した基礎データ記憶部から基礎データを読み出し、前記基礎データ記憶部から読み出した前記基礎データから前記ログ数入力部により入力された前記目標ログ数に対応する予測処理時間を求め、算出された前記予測処理時間を処理時間出力部から出力し、前記ログ数入力部により入力された前記目標ログ数に基づき、前記履歴データ蓄積部に蓄積されたログから前記目標ログ数のログを抽出する処理をコンピュータに実行させる。この構成によっても、上述の本発明の利点が得られる。
【００２３】
また、本発明の別の態様は、多数のユーザによりアイテムが取得されるたびに発生するユーザ識別データおよびアイテム識別データを含むログを履歴データとして蓄積した履歴データ蓄積部と、前記履歴データ蓄積部に蓄積された前記履歴データを用いた協調フィルタリング処理によって推薦対象ユーザへの推薦アイテムを求める協調フィルタ部とを備えた協調フィルタ装置のために、前記履歴データ蓄積部に蓄積された多数のログから、前記協調フィルタ部で処理されるべきログを抽出する協調フィルタ支援装置である。この協調フィルタ支援装置は、ログ数と協調フィルタリングの処理時間との関係の基礎データを記憶した基礎データ記憶部と、協調フィルタリングの設定処理時間を入力する設定処理時間入力部と、前記基礎データ記憶部から前記基礎データを読み出して、前記設定処理時間入力部により入力された前記設定処理時間に対応する目標ログ数を前記基礎データから求める目標ログ数算出部と、前記目標ログ数算出部により算出された前記目標ログ数を出力する目標ログ数出力部と、前記目標ログ数算出部により算出された前記目標ログ数に基づき、前記履歴データ蓄積部に蓄積されたログから前記目標ログ数のログを抽出するログ抽出部とを備えている。この構成により、設定処理時間の入力に応じて、入力された設定処理時間に対応する目標ログ数が計算され、算出された目標ログ数のログが履歴データ蓄積部から抽出される。したがって、この構成でも、計算量を減らして処理時間を短縮するといったことを好適に行える。
【００２４】
また、本発明の別の態様は、多数のユーザによりアイテムが取得されるたびに発生するユーザ識別データおよびアイテム識別データを含むログを履歴データとして蓄積した履歴データ蓄積部と、前記履歴データ蓄積部に蓄積された前記履歴データを用いた協調フィルタリング処理によって推薦対象ユーザへの推薦アイテムを求める協調フィルタ部とを備えた協調フィルタ装置のために、前記履歴データ蓄積部に蓄積された多数のログから、前記協調フィルタ部で処理されるべきログを抽出する処理をコンピュータに実行させる協調フィルタ支援処理プログラムである。この協調フィルタ支援処理プログラムは、協調フィルタリングの設定処理時間を設定処理時間入力部から入力し、ログ数と協調フィルタリングの処理時間との関係の基礎データを記憶した基礎データ記憶部から基礎データを読み出し、前記基礎データ記憶部から読み出した前記基礎データから前記設定処理時間入力部により入力された前記設定処理時間に対応する目標ログ数を求め、算出された前記目標ログ数を目標ログ数出力部から出力し、前記目標ログ数算出部により算出された前記目標ログ数に基づき、前記履歴データ蓄積部に蓄積されたログから前記目標ログ数のログを抽出する処理をコンピュータに実行させる。この構成によっても、上述の本発明の利点が得られる。
【００２５】
また、本発明の別の態様は、多数のユーザによりアイテムが取得されるたびに発生するユーザ識別データおよびアイテム識別データを含むログを履歴データとして蓄積した履歴データ蓄積部と、前記履歴データ蓄積部に蓄積された前記履歴データを用いた協調フィルタリング処理によって推薦対象ユーザへの推薦アイテムを求める協調フィルタ部とを備えた協調フィルタ装置のために、前記履歴データ蓄積部に蓄積された多数のログから、前記協調フィルタ部で処理されるべきログを抽出する協調フィルタ支援装置である。この協調フィルタ支援装置は、推薦対象ユーザの個人ログ数、比較対象ユーザの個人ログ数および両ユーザの共通取得アイテムのログ数から定まる類似度理論値の類似度しきい値を入力する手段と、前記類似度しきい値以上の類似度理論値に対応する比較対象ユーザの個人ログ数であるしきい値基準個人ログ数を設定する手段と、前記しきい値基準個人ログ数の比較対象ユーザのログを前記履歴データ蓄積部から抽出する手段とを備えている。この構成により、類似度理論値の類似度しきい値を設定し、この類似度しきい値を使って履歴データからログを抽出することで、推薦対象ユーザと取得アイテム数が近いユーザのログを残すことができ、フィルタリング精度をより高く保ったままログ数を削減でき、計算量を減らして処理時間を短縮できる。
【発明の効果】
【００２６】
本発明は、ログ数と協調フィルタリング処理時間との関係の基礎データを記憶した基礎データ記憶部を設け、目標ログ数に対応する予測処理時間を計算し、目標ログ数のログを履歴データ蓄積部から抽出しており、これにより、計算量を減らして処理時間を短縮できるという効果を有する協調フィルタ装置を提供することができる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の実施の形態の協調フィルタ装置について、図面を用いて説明する。
【００２８】
本発明の実施の形態に係る協調フィルタ装置を図１に示す。図１において、協調フィルタ装置１は、商品購入システム３と共に示されている。本実施の形態では、商品がコンテンツである。商品購入システム３は、購入処理部５とコンテンツデータベース７を備えている。購入処理部５は、ＷＷＷサーバを含む情報配信装置で構成されており、インターネット９を介してユーザ端末装置１１と通信する機能を備えている。コンテンツデータベース７は、ユーザに販売されるべき多数のコンテンツデータを記憶している。ユーザ端末装置１１はパーソナルコンピュータおよび携帯端末等である。購入処理部５は、コンテンツデータベース７からコンテンツデータを読み出し、インターネット９を介してユーザ端末装置１１へと提供する。購入処理部５は、コンテンツデータをユーザ端末装置１１へ提供するたびに、履歴データを生成し、協調フィルタ装置１に提供し、協調フィルタ装置１で履歴データが蓄積される。
【００２９】
図２は、図１に示される全体構成の動作のフローチャートであり、コンテンツ購入と履歴データ蓄積の流れを示している。ユーザ端末装置１１により購入処理部５がアクセスされて、コンテンツが検索され（Ｓ１）、検索されたコンテンツのダウンロードが要求されると（Ｓ３、Ｙｅｓ）、コンテンツがダウンロードされ（Ｓ５）、そして、ダウンロードの履歴データが生成されて、蓄積される（Ｓ７）。購入動作が終了していなければ（ステップＳ９、Ｎｏ）、ステップＳ１に戻る。
【００３０】
協調フィルタ装置１は、履歴データ蓄積部２１と、協調フィルタ部２３と、推薦情報配信部２５と、商品情報記憶部２７と、処理対象データ抽出部２９とで構成される。
【００３１】
協調フィルタ装置１は購入処理部５との通信機能を備え、この通信機能が履歴データ入力部として機能し、購入処理部５から提供される履歴データを入力し、そして、履歴データが履歴データ蓄積部２１に蓄積される。本実施の形態では、一回の商品購入の履歴データをログという。
【００３２】
ログは、ユーザ識別データと商品識別データを含む。ユーザ識別データは、商品を購入したユーザを識別するデータであり、商品識別データは、購入された商品を特定するデータである。図３はデータの例を示しており、図３ではユーザ識別データがユーザＩＤであり、商品識別データがコンテンツＩＤである。なお、商品であるコンテンツは、本発明でユーザに推薦されるべきアイテムの一例である。また、履歴データすなわちログは、上記のユーザ識別データおよび商品識別データの他に、購入日時等のデータを含んでよい。
【００３３】
協調フィルタ部２３は、履歴データ蓄積部２１に蓄積された履歴データを用いた協調フィルタリング処理によって推薦対象ユーザへの推薦アイテムを求める構成である。協調フィルタ部２３は、協調フィルタリング処理のプログラムをコンピュータが実行することによって実現される。協調フィルタ部２３は、類似度算出部３１と推薦部３３とで構成されている。
【００３４】
推薦情報配信部２５は、ＷＷＷサーバを含む情報配信装置で構成されており、協調フィルタ部２３による処理結果を出力する出力部に相当する。商品情報記憶部２７は、多数の商品についての商品情報を記憶している。推薦情報配信部２５は、協調フィルタ部２３から、推薦対象ユーザに推薦されるべき推薦商品を特定するデータの供給を受ける。そして、推薦情報配信部２５は、推薦商品の商品情報を商品情報記憶部２７から読み出して、推薦対象ユーザのユーザ端末装置１１へとインターネット９を介して提供する。商品情報（推薦情報）は電子メールに組み込まれてもよいし、別の例では、紙に印刷して郵便にて送付してもよい。
【００３５】
処理対象データ抽出部２９は、履歴データ蓄積部２１に蓄積された多数のログから、協調フィルタ部２３で処理されるべきログを抽出する構成である。協調フィルタ部２３の内部構成自体は従来技術と同様でよいが、協調フィルタ部２３は、処理対象データ抽出部２９で抽出されたログを処理対象（入力データ）としている。すなわち、本実施の形態は、通常の協調フィルタ部２３に加えて処理対象データ抽出部２９が備えられている点で従来技術と異なる。
【００３６】
処理対象データ抽出部２９は、協調フィルタ部２３と一体化されており、協調フィルタ装置２３と同じコンピュータによって実現される。すなわち、処理対象データ抽出部２９を実現するプログラムが、協調フィルタ部２３のコンピュータにより実行される。処理対象データ抽出部２９は、協調フィルタ部での処理の前に処理対象データを調整する機能を有しており、この点で、協調フィルタ支援装置と呼ぶこともできる。この観点では、協調フィルタ支援装置が協調フィルタ装置に一体化され、組み込まれている。なお、処理対象データ抽出部２９は協調フィルタ装置２３と同じコンピュータによって実現すると説明したが、別のコンピュータで実現してもよい。
【００３７】
以上に、本実施の形態に係る協調フィルタ装置１の全体概要を説明した。次に、協調フィルタ部２３による協調フィルタリング処理について説明し、その後で、本実施の形態に特徴的な処理対象データ抽出部２９について説明する。
【００３８】
「協調フィルタリング処理」
図４は、購入履歴の具体例を、ジャッカード係数の類似度と共に示している。図４は、ユーザＡ、Ｂ、Ｃの購入履歴データと類似度である。ユーザＡは、コンテンツＵ１、Ｕ２、Ｕ３を購入し、ユーザＢはコンテンツＵ２、Ｕ３、Ｕ４、Ｕ５を購入し、ユーザＣは、コンテンツＵ２、Ｕ３、Ｕ５、Ｕ６、Ｕ７を購入している。
【００３９】
ジャッカード（Ｊａｃｃａｒｄ）係数を用いる場合、ユーザ間の類似度は下記のように定義される。
ユーザＡ、Ｂの類似度：Ｓｉｍ（Ａ，Ｂ）＝（Ａ∩Ｂ）／（Ａ∪Ｂ）
（Ａ∩Ｂ）は、共通購入商品の数である。また、（Ａ∪Ｂ）は、ユーザＡ、Ｂの購入商品数の合計から共通購入商品の数を引いた値である（ユーザＡ、Ｂにより購入された商品の種類の数）。したがって、図４の場合、類似度の計算値は下記の通りである。
ユーザＡ，Ｂの類似度：Ｓｉｍ（Ａ，Ｂ）＝２／５＝０．４
ユーザＡ，Ｃの類似度：Ｓｉｍ（Ａ，Ｃ）＝２／６＝０．３３
ユーザＢ，Ｃの類似度：Ｓｉｍ（Ｂ，Ｃ）＝３／６＝０．５
【００４０】
図５（ａ）、図５（ｂ）は、類似度から求められる推薦値のリストを示している。例えば、ユーザＡは、コンテンツＵ４をまだ購入していない。そして、コンテンツＵ４はユーザＢによって購入されている。したがって、ユーザＡに対するコンテンツＵ４の推薦値は、Ｓｉｍ（Ａ，Ｂ）＝０．４である。
【００４１】
また、ユーザＡは、コンテンツＵ５をまだ購入していない。そして、コンテンツＵ５はユーザＢ、Ｃによって購入されている。したがって、ユーザＡに対するコンテンツＵ５の推薦値は、Ｓｉｍ（Ａ，Ｂ）とＳｉｍ（Ａ，Ｃ）の合計で求められる。
【００４２】
こうして、図５（ａ）に示されるように、各ユーザの未購入商品の推薦値が、同商品を購入したユーザの類似度の加算によって得られる。図５（ｂ）では、推薦値が高い順にコンテンツが並べられている。図５の推薦値から、推薦コンテンツを決定することができる。すなわち、推薦値が大きいコンテンツが、推薦コンテンツとして求められる。このとき、推薦値が最大のコンテンツが選択されてもよい。また、推薦値が大きい所定個数のコンテンツが選択されてもよい。また、推薦値が所定値以上のコンテンツが選択されてもよい。
【００４３】
図１の協調フィルタ部２３では、類似度算出部３１が、図４に示される処理を行い、ユーザ間の類似度を算出する。そして、推薦部３３が、図５に示される処理を行い、推薦値を計算し、推薦値から推薦コンテンツを決定する。推薦コンテンツのコンテンツＩＤが、推薦対象ユーザのユーザ識別データと共に推薦情報配信部２５に提供される。推薦情報配信部２５が、コンテンツＩＤに関連づけられた商品情報を商品情報記憶部２７から読み出し、推薦対象のユーザに送信する。
【００４４】
図６は、協調フィルタ部２３の動作を示すフローチャートである。ユーザ間の類似度が、類似度算出部３１により算出され（Ｓ１１）、推薦コンテンツの推薦度（推薦値）が推薦部３３により算出され（Ｓ１３）、さらに推薦リストが推薦部３３により生成される（Ｓ１５）。
【００４５】
以上は、ジャッカード係数を利用する場合の協調フィルタリングである。次に、余弦を利用する場合の協調フィルタリングについて説明する。
【００４６】
図７は、評価値を含んだ購入履歴データの具体例例を、余弦の類似度と共に示している。購入履歴データは、各ユーザの各コンテンツに対する評価（１〜５）を含んでいる。例えば、ユーザＡがコンテンツＵ１を購入しており、ユーザＡによるコンテンツＵ１の評価値は、３である。評価値は、図１のユーザ端末装置１１から購入処理部５に送られ、購入処理部５が履歴データに評価値を組み込む。
【００４７】
余弦の類似度は、図示のように、各ユーザのベクトルの余弦で表される。図の例では、ユーザ間の類似度が下記の通りになる。
ユーザＡ，Ｂの類似度：Ｓｉｍ（Ａ，Ｂ）＝０．６４８
ユーザＡ，Ｃの類似度：Ｓｉｍ（Ａ，Ｃ）＝０．５３１
ユーザＢ，Ｃの類似度：Ｓｉｍ（Ｂ，Ｃ）＝０．５８９
【００４８】
図８（ａ）、図８（ｂ）は、図７の購入履歴データと類似度から求められる推薦値のリストを示している。この場合、類似度に評価値がかけ算されて、推薦値が計算される。例えば、ユーザＡは、コンテンツＵ４をまだ購入していない。そして、コンテンツＵ４はユーザＢによって購入されている。コンテンツＵ４に対するユーザＢの評価値は、３である。したがって、ユーザＡに対するコンテンツＵ４の推薦値は、Ｓｉｍ（Ａ，Ｂ）×（Ｂの評価値）＝０．６４８×３＝２．５９である。
【００４９】
また、ユーザＡは、コンテンツＵ５をまだ購入していない。そして、コンテンツＵ５はユーザＢ、Ｃによって購入されている。コンテンツＵ５に対するユーザＢ、Ｃの評価は、それぞれ、４、３である。これらを使って、ユーザＡに対するコンテンツＵ５の推薦値は、「Ｓｉｍ（Ａ，Ｂ）×（Ｂの評価値）」と「Ｓｉｍ（Ａ，Ｃ）×（Ｃの評価値）」の合計で求められる。図８（ａ）では、Ｂ、Ｃの評価値が、単に、Ｂ、Ｃと表記されている。
【００５０】
こうして、図８（ａ）に示されるように、各ユーザの未購入商品の推薦値が、同商品を購入したユーザの「類似度と評価値の積」の加算によって得られる。図８（ｂ）では、推薦値が高い順にコンテンツが並べられている。図８の推薦値から、図５で説明したようにして、推薦コンテンツを決定することができる。
【００５１】
図９は、図７、図８の処理の変形例である。図７の購入履歴データでは、評価値が１〜５であった。図９の例では、評価値が−２〜２である。この場合、図９(ａ）に示すように、類似度は下記の通りになる。
ユーザＡ，Ｂの類似度：Ｓｉｍ（Ａ，Ｂ）＝０．８９
ユーザＡ，Ｃの類似度：Ｓｉｍ（Ａ，Ｃ）＝０．７１
ユーザＢ，Ｃの類似度：Ｓｉｍ（Ｂ，Ｃ）＝０．６３
【００５２】
そして、推薦リストは、図９（ｂ）、図９（ｃ）に示す通りになる。図９（ｃ）では、推薦値が正（プラス）のコンテンツのみでリストが作られている。
【００５３】
ちなみに、類似度の算出に関して、ジャッカード係数、余弦を利用した協調フィルタリング処理を説明したが、上記以外の処理を利用した協調フィルタリング処理を用いてもよい。
【００５４】
「処理対象データ抽出部」
次に、本実施の形態に特徴的な処理対象データ抽出部２９について詳細に説明する。処理対象データ抽出部２９は、以下のように、協調フィルタリングの処理時間等を予測するシミュレーション機能と、シミュレーション結果に基づいて、協調フィルタリングで処理されるべきデータ量を削減する機能を実現する。
【００５５】
図１０は、処理対象データ抽出部２９の構成を示している。処理対象データ抽出部２９は、ログ数と協調フィルタリング処理時間との関係の基礎データを記憶した基礎データ記憶部４１と、協調フィルタリングの処理対象の目標ログ数を入力する目標ログ数入力部４３と、基礎データ記憶部４１から基礎データを読み出して、ログ数入力部により入力された目標ログ数に対応する予測処理時間を基礎データから求める処理時間算出部４５と、処理時間算出部４５により算出された予測処理時間を出力する処理時間出力部４７と、処理時間出力部４７により出力された予測処理時間に対する許可判定を受け付ける許可判定受付部４９と、目標ログ数入力部４３により入力された目標ログ数に基づき、履歴データ蓄積部２１に蓄積されたログから目標ログ数のログを抽出するログ抽出部５１とを備えている。
【００５６】
基礎データ記憶部４１の基礎データは、基礎データ取得実験処理部５３によって生成される。基礎データは、下記のようなデータである。
【００５７】
図１１（ａ）および図１１（ｂ）は、推薦対象ユーザ数を固定したときのログ数と処理時間の関係である。推薦対象ユーザの数は、例えば、１，０００，０００人である。理想的には、図１１（ａ）に示されるように、ログ数と処理時間が比例し、両者の関係は一本の直線で表される。
【００５８】
しかし、現実のグラフは、図１１（ｂ）に示されるように、一本の直線にはならない。協調フィルタリングを実行するコンピュータでは、メモリおよびＨＤＤの容量が有限である。ログ数が増えると、メモリが足りなくなり、図１１（ｂ）のＡ点でＳＷＡＰが生じ、処理時間のラインの傾きが急に大きくなる。さらに、図１１（ｂ）のＢ点では、ＨＤＤの容量が限界点に達し、処理が不可能となる。
【００５９】
基礎データ取得実験処理部５３は、実際にコンピュータに協調フィルタ処理を実行させて処理時間を計測する基礎実験処理によって、図１１（ｂ）のデータを計測する処理を行う。
【００６０】
図１２は、基礎データ取得実験処理部５３の処理を示している。基礎実験では、推薦対象ユーザ数ｘが固定され、ログ数ｙが一定間隔で増加され、そして、各ｙの値での処理時間ｔが計測される。ここでは、協調フィルタ部２３によるサンプルログの処理に実際に要する時間が計測される。サンプルログは、履歴データ蓄積部２１に記憶された実際のログでよい。すなわち、基礎データ取得実験処理部５３は、履歴データ蓄積部２１の履歴データを読み出して基礎実験を行う。
【００６１】
図１２に示すように、各ログ数ｙ１、ｙ２、、に対応する処理時間ｔ１、ｔ２が求められ、点ｐ１、ｐ２、、、がプロットされる。点ｐ２が求められると、線ｐ１−ｐ２の傾きが求められる。次に、点ｐ３が求められると、線ｐ２−ｐ３の傾きが求められる。この処理が繰り返される。
【００６２】
図１２の例では、線ｐ２−ｐ３の傾きが急に大きくなる。傾きが大きくなると、線の中間の点が取られる。図の例では、線ｐ２−ｐ３の傾きが大きくなったので、ｙ２とｙ３の間にｙ４が設定され、ｙ４に対する処理時間ｔ４が計測される。こうして、変曲点ｐ４が得られ、図１２のグラフが得られる。
【００６３】
図１２は、説明を分かりやすくするために、模式化され、簡略化されている。実際には、より多くのログ数ｙに対する処理時間ｔの計測が繰り返されてよい。そして、上述したような２分法による計算処理が行われて、傾きの変曲点が求められてよい。また、２分法の代わりにＮｅｗｔｏｎ法が適用されてもよい。また、最急降下法によって図１２のグラフが求められてもよい。
【００６４】
図１２のグラフが得られると、変曲点ログ数Ｙが求められる。変曲点ログ数Ｙは、グラフの変曲点（＝図１１（ｂ）のＡ点）に対応するログ数である。変曲点ログ数Ｙは、コンピュータ資源を最大限に使用する最適なログ数ということもできる。変曲点ログ数Ｙを適用すると、メモリ容量を限界以下で使用し、処理時間を極端に増大させることなくログ数を極力増やして、より高いフィルタリング精度が得られる。
【００６５】
また、図１２のグラフから、推薦対象ユーザ数を固定したときのログ数と処理時間の関係が得られる。ｔ＝ａｙ＋ｂ（０＜ｙ＜Ｙ）、ｔ＝ｃｙ＋ｄ（Ｙ＜ｙ）（ａ、ｂ、ｃ、ｄは係数）。この式に対応するデータが、基礎データとして基礎データ記憶部４１に格納される。
【００６６】
以上に基礎データ取得実験処理部５３の機能を説明した。なお、ここでは説明を分かりやすくするためにグラフを用いた。実際の計算処理は、グラフへのプロットと同等の処理を行えばよく、グラフが実際に使われなくてよいことはもちろんである。
【００６７】
図１０に戻ると、目標ログ数入力部４３、処理時間出力部４７および許可判定受付部４９は、キーボード、ディスプレイ等の入出力装置で構成されている。オペレータにより入力装置が操作されて、所望の最小のログ数が入力される。このログ最小値は、必要な精度を確保するために必要と考えられる最低限のログ数である。このログ最小値が、目標ログ数として目標ログ数入力部４３に入力されて、処理時間算出部４５に取得される。
【００６８】
処理時間算出部４５は、目標ログ数から予測処理時間を算出する。基礎データ記憶部４１から基礎データが読み出され、基礎データに目標ログ数が当てはめられて、予測処理時間が算出される。基礎データは、上述のようにログ数ｙと処理時間ｔの関係の式の形をとっている。この式に目標ログ数が代入されればよい。処理時間出力部４７は、算出された予測処理時間を出力する。予測処理時間はディスプレイに表示される。処理時間が適当であれば、オペレータは許可操作を入力装置に対して行い、許可判定受付部４９が許可判定（納得判定）を受け付ける。そして、許可判定は、許可判定受付部４９からログ抽出部５１に伝えられる。ログ抽出部５１は、目標ログ数入力部４３に入力された目標ログ数も取得している。ログ抽出部５１は、許可判定を取得すると、履歴データ蓄積部２１に蓄積されたログから目標ログ数のログを抽出する。ログ抽出処理は任意であり、例えば、ログ抽出処理では、ログがランダムに抽出されて、ログの数が目標ログ数まで減らされてもよい。しかし、本実施の形態では、後述する類似度理論値と類似度しきい値を用いることが好適であり、これによりフィルタリングの精度を高くできる。この特徴的な抽出処理の詳細は、後述に項を改めて述べる。
【００６９】
図１３は、処理対象データ抽出部２９の動作を示すフローチャートである。全推薦対象ユーザ数ｘが入力され（Ｓ２１）、基礎データ取得実験処理部５３により基礎データ取得実験が行われ（Ｓ２３）、基礎データである処理終了予測グラフデータが生成される（Ｓ２５）。そして、ログ最小値が入力されて（Ｓ２７）、予測処理時間が基礎データから求められ、表示される（Ｓ２９）。許可判定の受付の有無が判定され（Ｓ３１）、許可判定が受け付けられなければ（Ｓ３１、Ｎｏ）、ステップＳ２７に戻って別のログ最小値が入力される。許可判定が受け付けられると（Ｓ３１、Ｙｅｓ）、履歴データ蓄積部２１の全ログ数が目標ログ数と比較され、全ログ数が目標ログ数より大きいか否かが判定される（Ｓ３３）。全ログ数が目標ログ数以下であれば（Ｓ３３、Ｎｏ）、処理が終了する。処理対象データ抽出部２９は、履歴データ蓄積部２１のすべてのログを協調フィルタ部２３に処理させる。ステップＳ３３で全ログ数が目標ログ数より多ければ（Ｓ３３、Ｙｅｓ）、全ログから処理対象のログが抽出され、ログ数が目標ログ数まで削減される（Ｓ３５）。抽出されたログが、処理対象データ抽出部２９から協調フィルタ部２３に伝えられ、協調フィルタ部２３でフィルタ処理が行われる。
【００７０】
図１４は、処理対象データ抽出部２９の動作に対応する画面表示を示している。図１４の画面は、コンピュータのディスプレイに表示される。図１４に示すように、まず、基礎データ実験のためのｘ（推薦対象ユーザ数）の入力要求画面が表示される。推薦対象ユーザ数が入力されると、基礎実験中であることを示す画面が表示される。基礎実験が終わると、ログ最小値（目標ログ数）の入力要求画面が表示される。ログ最小値が入力されると、予測処理時間が表示されて、「処理実行」ボタンと「キャンセル」ボタンが表示される。「キャンセル」ボタンが表示されると、図１３のステップＳ３１がＮｏになり、再度、ログ最小値の入力要求画面が表示される。「処理実行」ボタンが押されると、ステップＳ３１がＹｅｓになり、ログ抽出が行われる。なお、基礎実験で得られるログ数と処理時間の関係を保管しておくことにより、基礎実験を繰り返さなくてもよくなり、この場合には図１３および図１４で基礎実験の処理が省略されてよい。
【００７１】
次に、図１０のログ抽出部５１について詳細に説明する。本実施の形態では、ログ抽出部５１は、下記のように、類似度理論値を用いて、フィルタリング処理の精度を高く保ちながら、全ログの一部を抽出することができる。
【００７２】
ここでは、まず、図１５の２つの具体例におけるジャッカード係数による類似度を考える。図１５（ａ）では、推薦対象ユーザＡの購入個数が１０個であり、比較対象ユーザ（類似ユーザ）Ｂの購入個数が１０個であり、共通購入商品の数が５である。この場合、類似度は０．３３である。一方、図１５（ｂ）では、推薦対象ユーザＡの購入個数が１０個であり、比較対象ユーザ（類似ユーザ）Ｃの購入個数が１００個であり、共通商品の数が５である。この場合、類似度は０．０４である。したがって、購入個数が遠いユーザＣの購入商品ｃよりも、購入個数が近いユーザＢの購入商品ｂの方が、信頼性の高いお薦め商品である。
【００７３】
このように、共通購入商品が同じであっても、ベースになる購入個数といった嗜好情報が近いユーザの類似度が大きくなる。このことは、類似度を考慮して購入個数が近いユーザのログを抽出することによって信頼性つまり精度を極力落とさずにログ数を削減できることを意味している。
【００７４】
本実施の形態は、このような見地に基づいてログ抽出処理を行う。特に、本実施の形態は、下記のように、類似度理論値に基づいた処理の工夫により、極力類似度が大きくなるような購入数を客観的なデータ処理によって特定し、この特定された購入数の比較対象ユーザのログを残す抽出処理を実現する。
【００７５】
図１６は、本実施の形態で使用する類似度理論値のテーブルの例である。この例では、推薦対象ユーザの購入個数は１０に固定されている。そして、各比較対象ユーザの購入個数と、各共通購入個数とから、類似度理論値としてジャッカード係数が計算される。図１６は、比較対象ユーザ購入個数と共通購入個数の各種の組合せにおける類似度理論値のテーブルである。
【００７６】
図１６において、三角形のゾーンＡは、類似度理論値が０．３３以上のゾーンである。一方、ゾーンＢは、類似度理論値が０．３３未満のゾーンである。なお、ゾーンＣは不要ゾーンである（購入個数≦共通個数のゾーン、購入個数＝共通個数の場合、推薦商品が存在しない）。
【００７７】
このように、類似度理論値の最低値を設定すると、図示のゾーンＡができる。この値を、本発明では類似度しきい値と呼ぶ。すなわち、図の例では、類似度しきい値が０．３３である。
【００７８】
そして、類似度しきい値が決まると、ゾーンＡが決まり、ゾーンＡでの比較対象ユーザの購入個数の最小値（５）と最大値（３０）が決まる。そして、この最小値から最大値までの購入個数に該当する比較対象ユーザの購入履歴データを抽出することができる。
【００７９】
ここで、図１５の具体例で説明した考え方に基づいて考えると、類似度しきい値を大きくすると、推薦対象ユーザとの購入個数が近い比較対象ユーザが絞り込まれることになる。しかも、極力、類似度が高くなるように、すなわち、推薦精度が高くなるように、比較対象ユーザが絞り込まれる。ただし、類似度しきい値を大きくすると、比較対象ユーザが絞り込まれるので（ゾーンＡが狭まる）、履歴データの数が少なくなる。
【００８０】
そこで、本実施の形態は、抽出目標の履歴データの量を達成できる範囲で、類似度しきい値を最大にする。これにより、精度を極力高く保ちながら必要な量の履歴データを抽出できる。
【００８１】
なお、図１６の例にて、類似度しきい値が０．３３のときのゾーンＡでは、購入個数の最大値が３０、最小値が５である。本実施の形態は、この購入個数範囲の全比較対象ユーザの履歴データを抽出する。したがって、ゾーンＡ以外の履歴データ（ゾーンＡの左側にあるゾーンＢの履歴データ）も混じることになる。厳密にはゾーンＡのみから履歴データを抽出した方が精度が向上する（ただし、処理時間が長くなる）。
【００８２】
次に、図１７を参照し、本実施の形態のログ抽出処理をより具体的に説明する。図１７も図１６と同様に類似度理論値のテーブルである。ただし、図１６は、購入個数を使った一般的な説明の図であった。一方、図１７は、本実施の形態で実際に処理される履歴データであるログを用いて表現されたテーブルである。
【００８３】
すなわち、図１７では、購入個数がログに置き換えられる。一人のユーザのログ数は、全体のログ数との区別を明確にするために、個人ログ数ということにする。したがって、図１７では、推薦対象ユーザの個人ログ数が１０に固定されている。そして、図１７は、比較対象ユーザの個人ログ数と共通取得アイテムのログ数との組合せに対応する類似度理論値のテーブルである。
【００８４】
図１７の例でも、類似度しきい値が０．３３である。類似度しきい値が設定されると、「しきい値基準個人ログ数」が決まる。「しきい値基準個人ログ数」は、類似度しきい値以上の類似度理論値に対応する比較対象ユーザの個人ログ数である。そして、「しきい値基準個人ログ数」は、類似度しきい値以上の類似度理論値に対応するゾーンＡの最大個人ログ数（３０）から最小個人ログ数（５）までの個人ログ数である。
【００８５】
「しきい値基準個人ログ数」が決まると、「しきい値基準個人ログ数」に対応する比較対象ユーザのログの数が、履歴データの全ログからカウントされて、カウント値が求められる。図１７の例では、個人ログ数が５〜３０の全部の比較対象ユーザの全ログの数が求められる。本明細書で、このカウント値は、履歴データのログのうちで、与えられた条件に該当するログの実際の数の求められた値を意味する。カウントの処理は、このような与えられた条件に該当するログの実際の数を得られる処理であり、任意の処理でよく、検索等が含まれてよい。与えられる条件は、ここでは、類似度しきい値またはそこから定まるしきい値基準個人ログ数である。カウントのとき、各ログ数の該当人数が求められ、各ログ数と該当人数の積が求められ、積の総和が計算されてもよい。そして、本実施の形態では、カウント値に基づき、目標ログ数以上のログが残る範囲で最大の類似度しきい値が求められる。この最大の類似度しきい値を設定して、ログが履歴データから抽出される。
【００８６】
図１８は、上記の処理を実現するログ抽出部５１の構成を示すブロック図である。ログ抽出部５１は、類似度理論値テーブル記憶部６１、類似度しきい値設定部６３、しきい値基準個人ログ数設定部６５、カウント値取得部６７、カウント値判定部６９、適用しきい値決定部７１および抽出実行部７３を有している。
【００８７】
類似度理論値テーブル記憶部６１は、図１７の類似度理論値のテーブルを記憶している。類似度しきい値設定部６３は、類似度しきい値を設定する。しきい値基準個人ログ数設定部６５は、類似度理論値テーブルを参照し、類似度しきい値に対応する「しきい値基準個人ログ数」を設定する。「しきい値基準個人ログ数」は、類似度しきい値以上の類似度理論値に対応するゾーンＡの最大個人ログ数から最小個人ログ数までの個人ログ数である。
【００８８】
カウント値取得部６７は、履歴データ蓄積部２１のログを検索する。そして、カウント値取得部６７は、しきい値基準個人ログ数に対応する比較対象ユーザのログの数をカウントしてカウント値を取得する。カウント値判定部６９は、カウント取得部６７により得られたログ数のカウント値を判定する。カウント値判定部６９には目標ログ数が入力される。カウント値判定部６９は、目標ログ数とカウント値とを比較し、目標ログ数よりカウント値が多いか否かを判定する。
【００８９】
適用しきい値決定部７１は、カウント値判定部６９の判定結果に基づいて、適用しきい値を決定する。適用しきい値は、カウント値取得部６７により得られるログの数が目標ログ数以上になる範囲で最大の類似度しきい値である。適用しきい値決定部７１は、後述する処理により、類似度しきい値設定部６３が類似度しきい値を変化させていったときのカウント値の判定結果から、適用しきい値を決定する。抽出実行部７３は、適用しきい値決定部７１で決定された適用しきい値を用いてログを履歴データ蓄積部２１から抽出する。抽出実行部７３は、適用しきい値に対応する個人ログ数（しきい値基準個人ログ数）に対応する比較対象ユーザのログを抽出する。抽出実行部７３は、抽出したログを協調フィルタ部２３に渡す。
【００９０】
図１９は、上記のログ抽出部５１の動作例を示すフローチャートである。この例では、目標ログ数がログ抽出部５１に入力され（Ｓ４１）、類似度しきい値の初期値が設定される（Ｓ４３）。類似度しきい値の初期値は、所定の最大値（例えば１）に設定される。そして、類似度しきい値に対応するしきい値基準個人ログ数が設定され（Ｓ４５）、このしきい値基準個人ログ数に対応する比較対象ユーザのログ数がカウントされる（Ｓ４７）。この処理では、各ログ数の該当人数が検索等で求められ、各ログ数と該当人数の積の総和が計算され、これによりカウント値が取得されてもよい（以下同様）。そして、ログ数のカウント値が目標ログ数と比較されて、カウント値が目標ログ数以上か否かが判定される（Ｓ４９）。カウント値が目標ログ数より少なければ、（Ｓ４９、Ｎｏ）、類似度しきい値設定部６５が類似度しきい値を再設定する（Ｓ５１）。このとき、類似度しきい値が所定の幅だけ減らされる。しきい値変更の後、ステップＳ４５に戻る。
【００９１】
ステップＳ４９の判定がＹｅｓであれば（カウント値≧目標ログ数）、適用しきい値決定部７１が、ステップＳ５１またはＳ４３で設定された類似度しきい値を適用しきい値に決定し、適用しきい値に対応するしきい値基準個人ログ数を求める（Ｓ５３）。そして、抽出実行部７３が、しきい値基準個人ログ数に従って履歴データ蓄積部２１からログを抽出する（Ｓ５５）。
【００９２】
このようにして、図１９の処理では、類似度しきい値を小さくして（減らして）ログ数を判定する動作が繰り返され、ログ数のカウント値が目標ログ数以上になると類似度しきい値が確定し、ログ抽出が実行される。
【００９３】
図２０は、ログ抽出処理の他の例を示すフローチャートである。図１９では、類似度しきい値が最大値から減らされたが、図２０では、類似度しきい値が逆に増大される。すなわち、図２０では、ステップＳ４３ａにて、類似度しきい値の初期値が、所定の最小値に設定される。そして、ステップ４９ａでは、カウント値判定部６９が、ログ数のカウント値が目標ログ数より小さいか否かを判定する。ステップＳ４９ａの判定がＮｏであれば、ステップＳ５１ａで類似度しきい値が増やされる。ステップＳ４９ａの判定がＹｅｓであれば、適用しきい値決定部７１が、ステップＳ５１ａまたはＳ４３ａで前回のループで設定された類似度しきい値を適用しきい値に決定する（Ｓ５３ａ）。その他の処理は、図１９と同様である。
【００９４】
このようにして、図２０の処理では、類似度しきい値を大きくして（増やして）ログ数を判定する動作が繰り返される。ログ数のカウント値が目標ログ数を下回ると、類似度しきい値が確定し（類似度しきい値は、１つ前のループの値になる）、ログ抽出が実行される。
【００９５】
類似度しきい値に関するループ処理は、図１９、図２０に限定されない。しきい値変更の幅が一定でなくてもよい。そして、収束計算が行われてもよい。例えば、最初は、しきい値が増大され、そして、ログ数が減りすぎると今度はしきい値が減らされる。このような動作が繰り返され、しきい値の変化幅が徐々に小さく変更される。
【００９６】
また、本実施の形態では、類似度しきい値を基準にしているので、抽出されるログ数は、目標ログ数より少し大きくなる。そこで、ログ数をさらに調整して、最終的なログ数を目標ログ数に揃えてもよい。この場合、ログがランダムに削減されてよい。
【００９７】
以上に、類似度理論値と類似度しきい値を使った本実施の形態の好適なログ抽出処理を説明した。本実施の形態によれば、類似度理論値に基づいて履歴データからログを抽出することで、推薦対象ユーザと取得アイテム数が近いユーザのログを残すことができ、フィルタリング精度をより高く保ったままログ数を削減できる。
【００９８】
より詳細には、類似度理論値の類似度しきい値を設定し、この類似度しきい値を使って履歴データからログを抽出することで、推薦対象ユーザと取得アイテム数が近いユーザのログを残すことができ、フィルタリング精度をより高く保ったままログ数を削減できる。
【００９９】
「処理対象データ抽出部」
（設定処理時間を入力するパターン）
図２１は、処理対象データ抽出部２９の別の構成例を示している。前述の図１０の構成では、目標ログ数が入力され、予測処理時間が目標ログ数から計算された。一方、図２１の構成では、設定処理時間が入力され、目標ログ数が設定処理時間から算出される。
【０１００】
図２１の処理対象データ抽出部２９は、ログ数と協調フィルタリング処理時間との関係の基礎データを記憶した基礎データ記憶部８１と、協調フィルタリングの設定処理時間を入力する設定処理時間入力部８３と、基礎データ記憶部８１から基礎データを読み出して、処理時間入力部８３により入力された設定処理時間に対応する目標ログ数を基礎データから求める目標ログ数算出部８５と、目標ログ数算出部８５により算出された目標ログ数を出力する目標ログ数出力部８７と、目標ログ数出力部８７により出力された目標ログ数に対する許可判定を受け付ける許可判定受付部８９と、目標ログ数算出部８５により算出された目標ログ数に基づき、履歴データ蓄積部２１に蓄積されたログから目標ログ数のログを抽出するログ抽出部９１と、基礎データ取得実験処理部９３とを備えている。基礎データ記憶部８１および基礎データ取得実験処理部９３は、図１０の対応する構成と同様でよい。
【０１０１】
設定処理時間入力部８３、目標ログ数出力部８７および許可判定受付部８９は、キーボード、ディスプレイ等の入出力装置で構成されている。オペレータにより入力装置が操作されて、所望の処理時間の最大値が入力される。この最大処理時間が、設定処理時間として設定処理時間入力部８３に入力されて、目標ログ数算出部８５に取得される。
【０１０２】
目標ログ数算出部８５は、設定処理時間から目標ログ数を算出する。基礎データ記憶部４１から基礎データが読み出され、基礎データに設定処理時間が当てはめられて、目標ログ数が算出される。基礎データは、ログ数ｙと処理時間ｔの関係の式の形をとっている。この式に設定処理時間が代入されればよい。目標ログ数出力部８７は、算出された目標ログ数を出力する。目標ログ数はディスプレイに表示される。目標ログ数が適当であれば、オペレータは許可操作を入力装置に対して行い、許可判定受付部８９が許可判定（納得判定）を受け付ける。そして、許可判定は、許可判定受付部８９からログ抽出部９１に伝えられる。ログ抽出部９１は、目標ログ数算出部８５により算出された目標ログ数も取得している。ログ抽出部９１は、許可判定を取得すると、履歴データ蓄積部２１に蓄積されたログから目標ログ数のログを抽出する。
【０１０３】
図２２は、処理対象データ抽出部２９の動作を示すフローチャートである。全推薦対象ユーザ数ｘが入力され（Ｓ６１）、基礎データ取得実験処理部により基礎データ取得実験が行われ（Ｓ６３）、基礎データである処理終了予測グラフデータが生成される（Ｓ２５）。そして、処理時間最大値が入力されて（Ｓ６７）、目標ログ数が基礎データから求められ、表示される（Ｓ６９）。許可判定の受付の有無が判定され（Ｓ７１）、許可判定が受け付けられなければ（Ｓ７１、Ｎｏ）、ステップＳ６７に戻って別の設定時間最大値が入力される。許可判定が受け付けられると（Ｓ７１、Ｙｅｓ）、履歴データ蓄積部２１の全ログ数が目標ログ数と比較され、全ログ数が目標ログ数より大きいか否かが判定される（Ｓ７３）。全ログ数が目標ログ数以下であれば（Ｓ７３、Ｎｏ）、処理が終了する。処理対象データ抽出部２９は、履歴データ蓄積部２１のすべてのログを協調フィルタ部２３に処理させる。ステップＳ７３で全ログ数が目標ログ数より多ければ（Ｓ７３、Ｙｅｓ）、全ログから処理対象のログが抽出され、ログ数が目標ログ数まで削減される（Ｓ７５）。抽出されたログが、処理対象データ抽出部２９から協調フィルタ部２３に伝えられ、協調フィルタ部２３でフィルタ処理が行われる。
【０１０４】
ログ抽出部９１の構成および動作は、概ね、図１０のログ抽出部５１と同様である（図１８、図１９、図２０参照）。ただし、ログ抽出部５１では、抽出ログ数が、目標ログ数以上であった。これに対して、本実施の形態のログ抽出部９１では、抽出ログ数が、目標ログ数以下である。このような相違に関連して、ログ抽出部９１の構成および動作も若干異なっており、具体的には、適用しきい値の決定処理が異なり、ログ数のカウント値が目標ログ数以下になる範囲で最大の類似度しきい値になるように適用しきい値が決定される。
【０１０５】
すなわち、図１９の処理が変形されて、ステップＳ４９では、カウント値が目標ログ数を越えると、判定がＹｅｓになる。ステップＳ５３では、適用しきい値決定部７１が、「前回のループ」のステップＳ５１またはＳ４３で設定された類似度しきい値を適用しきい値に決定する。つまり、類似度しきい値を小さくして（減らして）ログ数を判定する動作が繰り返され、ログ数のカウント値が目標ログ数を越えると、類似度しきい値が確定し（類似度しきい値は、１つ前のループの値になる）、ログ抽出が実行される。
【０１０６】
また、図２０の処理も変形される。ステップＳ４９では、ログ数のカウント値が目標ログ数以下になると、判定がＹｅｓになる。そして、ステップＳ５３ａでは、適用しきい値決定部７１が、ステップＳ５１ａまたはＳ４３ａで設定された類似度しきい値を適用しきい値に決定する。つまり、類似度しきい値を大きくして（増やして）ログ数を判定する動作が繰り返され、ログ数のカウント値が目標ログ数以下になると類似度しきい値が確定し、ログ抽出が実行される。
【０１０７】
図２３は、処理対象データ抽出部２９の動作に対応する画面表示を示している。図２３の画面は、処理対象データ抽出部２９のコンピュータのディスプレイに表示される。図２３に示すように、まず、基礎データ実験のためのｘ（推薦対象ユーザ数）の入力要求画面が表示される。推薦対象ユーザ数が入力されると、基礎実験中であることを示す画面が表示される。基礎実験が終わると、処理時間の最大値（設定処理時間）の入力要求画面が表示される。処理時間の最大値が入力されると、目標ログ数が表示されて、「処理実行」ボタンと「キャンセル」ボタンが表示される。「キャンセル」ボタンが表示されると、図２２のステップＳ７１がＮｏになり、再度、設定時間最大値の入力要求画面が表示される。「処理実行」ボタンが押されると、ステップＳ７１がＹｅｓになり、ログ抽出が行われる。
【０１０８】
以上に、図２１〜図２３を参照し、設定処理時間を入力するパターンの構成を説明した。なお、図１０の構成と図２１の構成（目標ログ数を入力するパターンの構成と設定処理時間を入力するパターンの構成）が、両方とも備えられてもよいことはもちろんである。
【０１０９】
図２４は、処理対象データ抽出部２９の別の構成例を示している。前述の図１０の構成では、目標ログ数が入力され、予測処理時間が目標ログ数から計算された。一方、図２１の構成では、類似度しきい値が入力され、類似度しきい値から目標ログ数と予測処理時間が算出される。
【０１１０】
図２４において、基礎データ記憶部１０１と基礎データ取得実験処理部１１５は、図１０の対応する構成と同様である。類似度しきい値入力部１０３は、図１６を用いて説明された類似度しきい値を入力する。ここでは、入力される類似度しきい値を設定類似度しきい値と呼ぶ。目標ログ数取得部１０５は、設定類似度しきい値に対応する目標ログ数を求める。処理時間算出部１０７は、目標ログ数に対応する予測処理時間を算出する。計算結果出力部１０９は、目標ログ数取得部１０５により求められた目標ログ数と、処理時間算出部１０７により算出された予測処理時間を出力する。許可判定受付部１１１は、出力された目標ログ数および予測処理時間に対する許可判定を受け付ける。ログ抽出部１１３は、設定類似度しきい値を用いて、履歴データ蓄積部２１に蓄積されたログから目標ログ数のログを抽出する。
【０１１１】
類似度しきい値入力部１０３、計算結果出力部１０９および許可判定受付部１１１は、キーボード、ディスプレイ等の入出力装置で構成されている。オペレータにより入力装置が操作されて、所望の類似度しきい値が入力される。この類似度しきい値が、設定類似度しきい値として類似度しきい値入力部１０３に入力されて、目標ログ数取得部１０５に取得される。
【０１１２】
目標ログ数取得部１０５は、図１６を用いて説明した類似度しきい値を使う処理の原理に従い、類似度しきい値から目標ログ数を求める。すなわち、目標ログ数取得部１０５は、類似度理論値テーブル記憶部１１７から類似度理論値テーブルを読み出して、類似度理論値テーブルを参照して、類似度しきい値に対応する「しきい値基準個人ログ数」を求める。さらに、目標ログ数取得部１０５は、前出のカウント値取得部に相当する機能を持ち、履歴データ蓄積部２１のログデータから、「しきい値基準個人ログ数」に対応する比較対象ユーザのログをカウントしてカウント値を取得する。カウントされたログの数が、目標ログ数になる。
【０１１３】
処理時間算出部１０７の処理は、図１０の同構成と同様である。基礎データ記憶部１０１から基礎データが読み出され、基礎データに目標ログ数が当てはめられて、予測処理時間が算出される。
【０１１４】
計算結果出力部１０９は、目標ログ数および予測処理時間をディスプレイ等に表示する。目標ログ数と予測処理時間が適当であれば、オペレータは許可操作を入力装置に対して行い、許可判定受付部１１１が許可判定（納得判定）を受け付ける。
【０１１５】
許可判定は、許可判定受付部１１１からログ抽出部１１３に伝えられる。また、ログ抽出部１１３は、類似度しきい値入力部１０３から入力された設定類似度しきい値を取得する。そして、ログ抽出部１１３は、設定類似度しきい値を用いてログを抽出する。すなわち、ログ抽出部１１３は、「しきい値基準個人ログ数」に対応する比較対象ユーザのログを、履歴データ蓄積部２１から抽出する。
【０１１６】
ログ抽出部１１３の内部構成は、図１８とは異なっていてよい。図１８の構成では、類似度しきい値が順次変更されて、適用しきい値が決定された。しかし、ここでは、適用すべきしきい値が既に決まっている。そこで、ログ抽出部１１３は、取得した設定類似度しきい値をそのまま使って、ログを抽出する。
【０１１７】
図２５は、処理対象データ抽出部２９の動作を示すフローチャートである。全推薦対象ユーザ数ｘが入力され（Ｓ８１）、基礎データ取得実験処理部により基礎データ取得実験が行われ（Ｓ８３）、基礎データである処理終了予測グラフデータが生成される（Ｓ８５）。そして、設定類似度しきい値が入力されて（Ｓ８７）、目標ログ数が求められ（Ｓ８９）、予測処理時間が算出され（Ｓ９１）、それらが表示される（Ｓ９３）。許可判定の受付の有無が判定され（Ｓ９５）、許可判定が受け付けられなければ（Ｓ９５、Ｎｏ）、ステップＳ８７に戻って別の設定類似度しきい値が入力される。許可判定が受け付けられると（Ｓ９５、Ｙｅｓ）、設定類似度しきい値を用いてログが抽出される（Ｓ９７）。
【０１１８】
図２６は、処理対象データ抽出部２９の動作に対応する画面表示を示している。図２６の画面は、処理対象データ抽出部２９のコンピュータのディスプレイに表示される。図２６に示すように、まず、基礎データ実験のためのｘ（推薦対象ユーザ数）の入力要求画面が表示される。推薦対象ユーザ数が入力されると、基礎実験中であることを示す画面が表示される。基礎実験が終わると、類似度しきい値の入力要求画面が表示される。類似度しきい値が入力されると、目標ログ数と予測処理時間が表示されて、「処理実行」ボタンと「キャンセル」ボタンが表示される。「キャンセル」ボタンが表示されると、図２５のステップＳ９５がＮｏになり、再度、類似度しきい値の入力要求画面が表示される。「処理実行」ボタンが押されると、ステップＳ９５がＹｅｓになり、ログ抽出が行われる。
【０１１９】
以上に、図２４〜図２６を参照し、類似度しきい値を入力するパターンの構成を説明した。なお、図２４の構成が、図１０および図２１の少なくとも一方の構成と共に備えられてよいことはもちろんである。
【０１２０】
「分割」
（推薦対象ユーザの分割／ログの分割）
次に、本実施の形態のもう一つの特徴である分割処理について説明する。フィルタ装置のＨＤＤ装置、メモリといった資源は有限であるため、推薦対象ユーザが膨大であれば、処理に時間がかかる。また、ログが膨大であっても、処理に時間がかかる。この点は、図１１を参照して説明した通りである。
【０１２１】
そこで、本実施の形態では、さらに、推薦対象ユーザを分割することにより処理時間が短縮される。また、ログを分割することにより処理時間が短縮される。本実施の形態は、このような分割とそれによる処理時間の短縮を、前述した目標ログ数や処理時間のシミュレーションを利用して行うことを可能にする。
【０１２２】
推薦対象ユーザについては、分割によって複数のセット（グループ）が作られることになり、セット毎にフィルタリング処理が行われる。セットの処理時間の合計が、分割をしない場合の処理時間よりも短ければ、分割が有効である。
【０１２３】
ログについては、比較対象ユーザ（類似ユーザ）が複数のセットに分割されて、これによりログが分割される。すなわち、類似ユーザ単位で分かれるように履歴データのログが分割される。
【０１２４】
図２７は、推薦対象ユーザを複数のセット（グループ）に分割したときの処理時間の変化を示している。ここでは、推薦対象ユーザが均等に分割され、各セットの人数が同じであるとする。図２７において、横軸は、推薦分割人数ｒ（１セットの人数ｒ＝全ユーザ数／分割数）である。縦軸は処理時間ｔである。ログ数ｙは固定されている。図示のように、推薦分割人数ｒが小さくなるほど、処理時間ｔが短くなる。しかし、推薦分割人数ｒが小さくなりすぎると、処理時間ｔが逆に長くなる。最適な推薦分割人数Ｒでは、処理時間ｔが極小になる。
【０１２５】
図２７のデータは、既に説明した基礎実験を実行することによって得られる。基礎実験では、前述のように、サンプルログを用いてフィルタ装置が実際に動作する。ログ数は図２７に示すように固定される。そして、推薦対象ユーザの分割セットを用いて処理時間が計測される。
【０１２６】
図２８は、分割を適用したときの基礎実験処理の幾つかの例を示している。図２８（ａ）は、分割を行わないパターンである。
【０１２７】
図２８（ｂ）では、まず、図２７を用いて説明されたように、推薦対象ユーザの推薦分割人数ｒに応じた処理時間ｔの変化が基礎実験によって求められ、処理時間ｔの極小値に対応する推薦分割人数ａが求められる。そして、推薦対象ユーザを推薦分割人数ａの複数セットに分割したときの、ログ数ｙと処理時間ｔの関係が計測される。この計測結果が、基礎データとして取得される。
【０１２８】
図２８（ｃ）では、まず、分割をしない状態で基礎実験が行われる。推薦対象ユーザ数ｘが固定され、ログ数ｙを変えたときの処理時間ｔが計測され、図２８（ａ）と同じ結果が得られる。測定結果から、変曲点に対応するログ数ｂが求められる。１セットのログ数がｂ個になるようにログが分割される。ログ数がｂに固定されて、推薦対象ユーザの推薦分割人数ｒに応じた処理時間ｔの変化が計測され、処理時間ｔの極小値に対応する推薦分割人数ｃが求められる。そして、推薦対象ユーザを推薦分割人数ｃのセットに分割したときの、ログ数ｙと処理時間ｔの関係が計測される。この計測結果が、基礎データとして取得される。図２８（ｃ）では、結局、ログと推薦対象ユーザの両方を分割したときの基礎データが得られる。
【０１２９】
さて、上述した分割処理は、以下のようにして協調フィルタ装置へ適用される。すなわち、図１０に示す処理対象データ抽出部２９において、基礎データ取得実験処理部５３により、下記のように分割パターン（分割形態）が異なる複数種類の基礎データが取得され、これら複数種類の基礎データが、基礎データ記憶部４１に格納される。
（１）推薦対象ユーザ、ログとも分割しない場合
（２）推薦対象ユーザを分割する場合
（３）ログを分割する場合
（４）推薦対象ユーザとログを分割する場合
（２）〜（４）の各々について、複数の分割パターンの各々から基礎データが取得され、格納されてよい。つまり、推薦対象ユーザの分割数を変えたり、ログの分割数を変えたときの基礎データが格納されてよい。
【０１３０】
図１０において、処理時間算出部４５は、基礎データ記憶部４１の複数種類の基礎データの各々から、予測処理時間を算出する。すなわち、各基礎データに目標ログ数が当てはめられる。そして、処理時間算出部４５は、最も短い予測処理時間を求める。処理時間出力部４７は、最短の予測処理時間と共に、その予測処理時間が得られた基礎データの分割パターンを表示する。例えば、「推薦対象ユーザｘは、Ｒ人ずつ分割されます。」というメッセージがディスプレイに表示される。
【０１３１】
ログ抽出部５１は、予測処理時間に対応する分割パターンの情報（より詳細には、予測処理時間が最短になるときの分割パターンの情報）を、処理時間算出部４５から取得する。そして、ログ抽出部５１は、取得した分割パターンに基づいてログ抽出処理を行う。すなわち、履歴データ蓄積部２１のログが分割される場合に、分割されたログから目標ログ数のログが抽出される。ここでも、前述の類似度しきい値を使った処理が同様に行われる。
【０１３２】
上記の分割パターンのデータは、さらに、処理対象データ抽出部２９から協調フィルタ部２３へも伝えられる。協調フィルタ部２３は、取得した分割パターンのデータに従って協調フィルタ動作を行う。分割パターンで推薦対象ユーザが分割されていれば、分割パターンに従って推薦対象を分割してフィルタリング処理が行われる。また、分割パターンでログが分割されていれば、ログ抽出部５１より提供される分割ログからのログ抽出データを使ってフィルタリング処理が行われる。
【０１３３】
上記の分割パターンとは、推薦対象ユーザがどのように分割されるか、および、ログがどのように分割されるかのデータである。具体的には、例えば、推薦対象ユーザの分割における１セットの人数とセット数であり、また、ログ分割における１セットのログ数である。
【０１３４】
図２１に示される処理対象データ抽出部２９にも、上記の分割処理が同様に適用されてよい。図２１の構成は、設定処理時間を入力して目標ログ数を算出する構成である。この場合も、複数の分割パターンに対応する複数種類の基礎データが、基礎データ取得実験処理部９３により取得され、基礎データ記憶部８１に格納される。
【０１３５】
目標ログ数算出部８５は、基礎データ記憶部８１の複数種類の基礎データの各々から、目標ログ数を算出する。そして、目標ログ数算出部８５は、最も大きい目標ログ数を求める。目標ログ数出力部８７は、目標ログ数と共に、その目標ログ数が得られた基礎データの分割パターンを表示する。ログ抽出部８１は、目標ログ数が最大になる基礎データの分割パターンの情報を、目標ログ数算出部８５から取得する。そして、ログ抽出部８１は、取得した分割パターンに基づいてログ抽出処理を行う。協調フィルタ部２３も、分割パターンを取得して、そのパターンでの協調フィルタリングを行う。
【０１３６】
さらに、図２４に示される処理対象データ抽出部２９にも、上記の分割処理が適用されてよい。図２４の構成は、設定類似度しきい値を入力して目標ログ数と予測処理時間を算出する構成である。この場合も、上記の複数種類の基礎データが、基礎データ取得実験処理部１１５により取得され、基礎データ記憶部１０１に格納される。
【０１３７】
目標ログ数取得部１０５は、図２４で説明した通りに、設定類似度しきい値に対応するログ数を求める。この後、処理時間算出部１０７が、基礎データ記憶部１０１の複数種類の基礎データの各々から、予測処理時間を算出する。そして、処理時間算出部１０７は、最も短い予測処理時間を求める。計算結果出力部１０９は、予測処理時間と共に、その予測処理時間が得られた基礎データの分割パターンを表示する。ログ抽出部１１３は、最も予測処理時間が短くなるときの分割パターンの情報を、処理時間算出部１０７から取得する。そして、ログ抽出部１１３は、取得した分割パターンに基づいてログ抽出処理を行う。協調フィルタ部２３も、分割パターンを取得して、そのパターンでの協調フィルタリングを行う。
【０１３８】
以上に分割処理について説明した。上記の説明では、基礎データ記憶部は、（１）非分割時の基礎データと、（２）推薦対象ユーザを分割したときの基礎データと、（３）ログを分割したときの基礎データと、（４）両者を分割したときの基礎データを記憶している。しかし、これらのすべての基礎データが記憶されていなくてよい。一つのみが記憶されていてよい。例えば、推薦対象データを分割した基礎データのみが記憶されていてもよい（ただし、分割人数を変えた複数の基礎データが記憶されていてよい）。
【０１３９】
また、上記の例では、推薦対象ユーザがランダムに分割され、各セットの人数が同じであった。推薦対象ユーザの分割のパターンはこれに限定されない。例えば、各推薦対象ユーザのログ数（個人ログ数）が調べられる。そして、前述のジャッカード係数の理論値に基づいて、理論値を固定してユーザが分割される。具体的には、個人ログ数が近いユーザが同じセットに属するように、推薦対象ユーザが分割される。個人ログ数ごとにユーザが分割されてよい。
【０１４０】
以上に、本発明の実施の形態に係る協調フィルタ装置１について説明した。本実施の形態によれば、ログ数と協調フィルタリング処理時間との関係の基礎データを記憶した基礎データ記憶部４１が設けられ、入力された目標ログ数に対応する予測処理時間が計算され、また、入力された目標ログ数のログが履歴データ蓄積部２１から抽出される。予測処理時間が予めわかるので、予測処理時間が妥当になるようにログ数を設定できる。また、設定したログ数のログを履歴データから抽出することにより、算出した予測処理時間を達成するように計算量を削減できる。このようにして、計算量を減らして処理時間を短縮することができる。
【０１４１】
また、本実施の形態によれば、類似度理論値に基づいて、推薦対象ユーザのログ数に応じて比較対象ユーザのログ数を限定して、履歴データからログを抽出することで、推薦対象ユーザと取得アイテム数が近いユーザのログを残すことができ、フィルタリング精度をより高く保ったままログ数を削減できる。
【０１４２】
また、本実施の形態によれば、類似度理論値の類似度しきい値を設定し、この類似度しきい値を使って履歴データからログを抽出することで、推薦対象ユーザと取得アイテム数が近いユーザのログを残すことができ、フィルタリング精度をより高く保ったままログ数を削減できる。
【０１４３】
また、本実施の形態によれば、推薦対象ユーザを複数に分割することにより、計算量を減らして処理時間を短縮できる。このときも、処理時間とログ数を適切に設定した上で処理を実行できる。
【０１４４】
また、本実施の形態によれば、ログを複数に分割することにより、計算量を減らして処理時間を短縮できる。このときも、処理時間とログ数を適切に設定した上で処理を実行できる。
【０１４５】
また、本実施の形態によれば、推薦対象ユーザを複数に分割し、ログを複数に分割することにより、計算量を減らして処理時間を短縮できる。このときも、処理時間とログ数を適切に設定した上で処理を実行できる。
【０１４６】
また、本実施の形態によれば、設定処理時間の入力に応じて、入力された設定処理時間に対応する目標ログ数が計算され、算出された目標ログ数のログが履歴データ蓄積部から抽出される。したがって、この点でも、計算量を減らして処理時間を短縮するといったことを好適に行える。
【０１４７】
また、本実施の形態によれば、入力された設定類似度しきい値から目標ログ数が算出され、目標ログ数から処理時間の予測値が算出される。したがって、設定類似度しきい値を調整して、処理時間が適切になるようにログを削減できる。類似度理論値の類似度しきい値を用いることで、フィルタリング精度をより高く保ちながら計算量を削減でき、処理時間を短縮できる。
【０１４８】
なお、本実施の形態では、商品がコンテンツであるとして説明を行ったが、商品を説明する情報をコンテンツとしてコンテンツデータベースを構成してもよい。また、コンテンツは電子データでなくてもよい。
また、コンテンツ購入をダウンロードすると説明したが、履歴データはユーザと商品の購入を関連付けるものでればいずれの手段から得られてもよい。例えば、インターネットを利用しない、ファクシミリや電話での受注であってもよい。
【０１４９】
以上に本発明の好適な実施の形態を説明した。しかし、本発明は上述の実施の形態に限定されず、当業者が本発明の範囲内で上述の実施の形態を変形可能なことはもちろんである。
【産業上の利用可能性】
【０１５０】
以上のように、本発明にかかる協調フィルタ装置は、計算量を減らして処理時間を短縮することのできるという効果を有し、コンテンツ配信の推薦システム等として有用である。
【図面の簡単な説明】
【０１５１】
【図１】本発明の実施の形態に係る協調フィルタ装置の構成を示すブロック図
【図２】コンテンツ購入および履歴データ蓄積の全体的な動作のフローチャート
【図３】履歴データであるログの例を示す図
【図４】ジャッカード係数を利用する協調フィルタリング処理を示す図
【図５】ジャッカード係数を利用する協調フィルタリング処理を示す図
【図６】協調フィルタリング処理を示すフローチャート
【図７】余弦の類似度を利用する協調フィルタリング処理を示す図
【図８】余弦の類似度を利用する協調フィルタリング処理を示す図
【図９】余弦の類似度を利用する協調フィルタリング処理を示す図
【図１０】処理対象データ抽出部の構成を示す図
【図１１】（ａ）ログ数と処理時間の理想的な関係を示す図  （ｂ）ログ数と処理時間の現実の関係を示す図
【図１２】基礎データ取得実験処理部の処理を示す図
【図１３】処理対象データ抽出部の動作を示すフローチャート
【図１４】処理対象データ抽出部の動作に対応する画面表示を示す図
【図１５】（ａ）購入履歴の例を示す図  （ｂ）購入履歴の別の例を示す図
【図１６】類似度理論値のテーブルを示す図
【図１７】類似度理論値のテーブルを示す図
【図１８】ログ抽出部の構成を示すブロック図
【図１９】ログ抽出部の動作を示すフローチャート
【図２０】ログ抽出部の動作を示すフローチャート
【図２１】処理対象データ抽出部の別の構成例を示す図
【図２２】処理対象データ抽出部の動作を示すフローチャート
【図２３】処理対象データ抽出部の動作に対応する画面表示を示す図
【図２４】処理対象データ抽出部の別の構成例を示す図
【図２５】処理対象データ抽出部の動作を示すフローチャート
【図２６】処理対象データ抽出部の動作に対応する画面表示を示す図
【図２７】推薦対象ユーザを複数のセットに分割したときの処理時間の変化を示す図
【図２８】（ａ）分割を行わないパターンの基礎データを示す図  （ｂ）分割を行うパターンの基礎データを示す図  （ｃ）分割を行うパターンの基礎データを示す図
【符号の説明】
【０１５２】
１  協調フィルタ装置
２１  履歴データ蓄積部
２３  協調フィルタ部
２５  推薦情報配信部
２７  商品情報記憶部
２９  処理対象データ抽出部
４１  基礎データ記憶部
４３  目標ログ数入力部
４５  処理時間算出部
４７  処理時間出力部
４９  許可判定受付部
５１  ログ抽出部
５３  基礎データ取得実験処理部
【図１】
2006302097.tif 000003
【図２】
2006302097.tif 000004
【図３】
2006302097.tif 000005
【図４】
2006302097.tif 000006
【図５】
2006302097.tif 000007
【図６】
2006302097.tif 000008
【図７】
2006302097.tif 000009
【図８】
2006302097.tif 000010
【図９】
2006302097.tif 000011
【図１０】
2006302097.tif 000012
【図１１】
2006302097.tif 000013
【図１２】
2006302097.tif 000014
【図１３】
2006302097.tif 000015
【図１４】
2006302097.tif 000016
【図１５】
2006302097.tif 000017
【図１６】
2006302097.tif 000018
【図１７】
2006302097.tif 000019
【図１８】
2006302097.tif 000020
【図１９】
2006302097.tif 000021
【図２０】
2006302097.tif 000022
【図２１】
2006302097.tif 000023
【図２２】
2006302097.tif 000024
【図２３】
2006302097.tif 000025
【図２４】
2006302097.tif 000026
【図２５】
2006302097.tif 000027
【図２６】
2006302097.tif 000028
【図２７】
2006302097.tif 000029
【図２８】
2006302097.tif 000030