(57)【要約】【課題】  E-commerceサービスにおいて、非常にユーザ数が多いインターネット上のサービスにおいてアイテムの推薦を可能にする。【解決手段】  本発明は、取得したE-Commerceサービスにおける各ユーザＩＤの購買情報を用いて算出した購買特徴量を用いて、各ユーザが代表ユーザであるかどうかを判定し、代表ユーザである場合、該ユーザのユーザＩＤと代表判定値を格納し、また代表ユーザでない場合、該ユーザと類似する代表ユーザを算出し、購買情報と、代表ユーザとを用いて、各代表ユーザへの各アイテムの推薦スコアを算出し、算出した推薦スコアに基づき各代表ユーザへの推薦リストを作成する。ユーザの識別子が与えられると、類似代表ユーザと、推薦リストを用いて、該ユーザの類似代表ユーザの推薦リスト中のアイテムの識別子を推薦商品として選択する。【選択図】  図２
2014074960.tif 000002
【特許請求の範囲】
【請求項１】
E-Commerce（電子商取引）サービスにおいて、ユーザの購買情報を利用して商品を推薦する商品推薦装置であって、
前記E-Commerceサービスにおける各ユーザＩＤの購買情報を取得し、購買情報記憶手段に格納する購買情報取得手段と、
前記購買情報記憶手段に格納された前記購買情報を用いて、各ユーザの購買の特徴量を算出し、購買特徴量記憶手段に格納する購買特徴量算出手段と、
前記購買特徴量記憶手段に格納された前記購買特徴量を用いて、各ユーザが代表ユーザであるかどうかを判定し、代表ユーザである場合、該ユーザのユーザＩＤと代表判定値を代表ユーザ記憶手段に格納し、また代表ユーザでない場合、該ユーザと類似する代表ユーザを算出し、該ユーザのユーザＩＤと、算出した前記類似代表ユーザのユーザＩＤとを類似代表ユーザ記憶手段に格納する代表ユーザ決定手段と、
前記購買情報記憶手段に格納されている前記購買情報と、前記代表ユーザ記憶手段に格納されている前記代表ユーザとを用いて、各代表ユーザへの各アイテムの推薦スコアを算出し、算出した前記推薦スコアに基づき各代表ユーザへの推薦リストを作成し、推薦リスト記憶手段に格納する推薦リスト作成手段と、
ユーザの識別子が与えられると、前記類似代表ユーザ記憶手段に格納されている前記類似代表ユーザと、前記推薦リスト記憶手段に格納されている前記推薦リストを用いて、該ユーザの類似代表ユーザの推薦リスト中のアイテムの識別子を推薦商品として選択する推薦処理手段と、
を有することを特徴とする商品推薦装置。
【請求項２】
前記購買特徴量算出手段は、
取得した購買情報を用いて、各ユーザの各購買をトピックに分類し、分類した前記トピックから各ユーザのトピック比率を算出し、算出した前記トピック比率を購買特徴量とする手段を含む
請求項１記載の商品推薦装置。
【請求項３】
前記代表ユーザ決定手段は、
前記購買特徴量から各ユーザのハッシュ値を算出し、算出した前記ハッシュ値を該ユーザの代表判定値とする手段を含む
請求項１記載の商品推薦装置。
【請求項４】
E-Commerce（電子商取引）サービスにおいて、ユーザの購買情報を利用して商品を推薦する商品推薦方法であって、
購買情報取得手段、購買情報記憶手段、購買特徴量記憶手段、購買特徴量算出手段、類似代表ユーザ記憶手段、代表ユーザ記憶手段、代表ユーザ決定手段、推薦リスト記憶手段、推薦リスト作成手段、推薦処理手段と、を有する装置において、
前記購買情報取得手段が、前記E-Commerceサービスにおける各ユーザＩＤの購買情報を取得し、前記購買情報記憶手段に格納する購買情報取得ステップと、
前記購買特徴量算出手段が、前記購買情報記憶手段に格納された前記購買情報を用いて、各ユーザの購買の特徴量を算出し、前記購買特徴量記憶手段に格納する購買特徴量算出ステップと、
前記代表ユーザ決定手段が、前記購買特徴量記憶手段に格納された前記購買特徴量を用いて、各ユーザが代表ユーザであるかどうかを判定し、代表ユーザである場合、該ユーザのユーザＩＤと代表判定値を前記代表ユーザ記憶手段に格納し、また代表ユーザでない場合、該ユーザと類似する代表ユーザを算出し、該ユーザのユーザＩＤと、算出した前記類似代表ユーザのユーザＩＤとを前記類似代表ユーザ記憶手段に格納する代表ユーザ決定ステップと、
前記推薦リスト作成手段が、前記購買情報記憶手段に格納されている前記購買情報と、前記代表ユーザ記憶手段に格納されている前記代表ユーザとを用いて、各代表ユーザへの各アイテムの推薦スコアを算出し、算出した前記推薦スコアに基づき各代表ユーザへの推薦リストを作成し、前記推薦リスト記憶手段に格納する推薦リスト作成ステップと、
前記推薦処理手段が、ユーザの識別子が与えられると、前記類似代表ユーザ記憶手段に格納されている前記類似代表ユーザと、前記推薦リスト記憶手段に格納されている前記推薦リストを用いて、該ユーザの類似代表ユーザの推薦リスト中のアイテムの識別子を推薦商品として選択する推薦処理ステップと、
を行うことを特徴とする商品推薦方法。
【請求項５】
前記購買特徴量算出ステップにおいて、
取得した購買情報を用いて、各ユーザの各購買をトピックに分類し、分類した前記トピックから各ユーザのトピック比率を算出し、算出した前記トピック比率を購買特徴量とする
請求項４記載の商品推薦方法。
【請求項６】
前記代表ユーザ決定ステップにおいて、
前記購買特徴量から各ユーザのハッシュ値を算出し、算出した前記ハッシュ値を該ユーザの代表判定値とする
請求項４記載の商品推薦方法。
【請求項７】
コンピュータを、
請求項1乃至３のいずれか1項に記載の商品推薦装置を構成する各手段として機能させるための商品推薦プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、商品推薦装置及び方法及びプログラムに係り、特に、E-Commerce(電子商取引）サービスで提供されるユーザの商品購買において商品を推薦するための、商品推薦装置及び方法及びプログラムに関する。
【背景技術】
【０００２】
商品推薦の手法はいくつも提案されているが、いずれの手法もユーザ数分異なる推薦リストが作成される可能性がある。
【０００３】
例えば、購買履歴（どのユーザがどの商品を購買したかの情報）を用いて各ユーザの各アイテムの購買確率を算出し、その値が高い順に各ユーザにアイテムのリストを提示する方法がある（例えば、非特許文献1参照）。この技術に基づく推薦システムでは、ユーザ一人一人で異なる推薦リストが記憶装置に保持されることになる。
【０００４】
また、利用者に興味を持つ部分のテキストを指定させ、そこに含まれる単語の出現頻度に基づいてユーザの興味を推定し、ユーザの興味を表す単語に基づいて商品を検索し、ユ−ザの興味のある商品を提示する技術がある（例えば、特許文献1参照）。この場合、ユーザ一人一人の興味キーワードが異なると、作成される推薦リストは異なる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−３３８８６９号公報
【非特許文献】
【０００６】
【非特許文献１】Resnick, P. et al., "GroupLens: An open architecture for collaborative filtering of netnews". CSCW '94: Proceedings of the 1994 ACM conference on Computer supported cooperative work, ACM Press New York, 1994.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来技術に基づく推薦システムの応答速度を高めるために、結果の推薦リストを記憶装置に格納してしまい、推薦を行う際はその記憶装置から推薦リストを呼び出すことだけを行うようにすることを考える。その場合、記憶装置にはユーザ数分の推薦リストを格納できるだけの容量が必要になる。また、図１に示すように、結果の推薦リストにテキストだけでなく画像等が含まれる場合、１つの推薦リストを格納するための記憶装置の容量は大きくなってしまう。一般に、記憶装置は大規模であればあるほど低速になる。そのため、推薦システムを導入するE-Commerceサービスの利用者が莫大な数（例えば100万人規模）になり、1つの推薦リストを保存するための容量が増大すると、小規模で高速な記憶装置は使えないため、推薦のリクエストがあって（例えばユーザがログインして）から推薦リストの結果を返すまでの応答速度が非常に遅くなる。
【０００８】
具体的には、上記の特許文献１の手法を用いて商品を推薦する場合、一意に異なる興味キーワードの数分の推薦リストを記憶装置に格納することになる。興味キーワードはユーザ一人一人で異なる可能性があるため、記憶装置に格納する推薦リストの数は最悪の場合ユーザ数に比例する。非特許文献１に記載の手法で商品を推薦する場合、記憶装置に推薦リストをユーザ数分保持することになる。
【０００９】
本発明は上記の点に鑑みなされたもので、全ユーザの推薦リストを作成するのではなく、予め選択しておいた代表ユーザの推薦リストを作成しておき、代表でないユーザには最も類似した代表ユーザの推薦リストを用いることで必要な記憶装置の容量を小規模化、高速で小規模な記憶装置を用いることによりユーザ数の多いE-Commerceサービスにおいて高速な推薦を実現することが可能な商品推薦装置及び方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、本発明（請求項１）は、E-Commerceサービスにおいて、ユーザの購買情報を利用して商品を推薦する商品推薦装置であって、
前記E-Commerceサービスにおける各ユーザＩＤの購買情報を取得し、購買情報記憶手段に格納する購買情報取得手段と、
前記購買情報記憶手段に格納された前記購買情報を用いて、各ユーザの購買の特徴量を算出し、購買特徴量記憶手段に格納する購買特徴量算出手段と、
前記購買特徴量記憶手段に格納された前記購買特徴量を用いて、各ユーザが代表ユーザであるかどうかを判定し、代表ユーザである場合、該ユーザのユーザＩＤと代表判定値を代表ユーザ記憶手段に格納し、また代表ユーザでない場合、該ユーザと類似する代表ユーザを算出し、該ユーザのユーザＩＤと、算出した前記類似代表ユーザのユーザＩＤとを類似代表ユーザ記憶手段に格納する代表ユーザ決定手段と、
前記購買情報記憶手段に格納されている前記購買情報と、前記代表ユーザ記憶手段に格納されている前記代表ユーザとを用いて、各代表ユーザへの各アイテムの推薦スコアを算出し、算出した前記推薦スコアに基づき各代表ユーザへの推薦リストを作成し、推薦リスト記憶手段に格納する推薦リスト作成手段と、
ユーザの識別子が与えられると、前記類似代表ユーザ記憶手段に格納されている前記類似代表ユーザと、前記推薦リスト記憶手段に格納されている前記推薦リストを用いて、該ユーザの類似代表ユーザの推薦リスト中のアイテムの識別子を推薦商品として選択する推薦処理手段と、を有する。
【００１１】
また、本発明（請求項２）は、前記購買特徴量算出手段において、
取得した購買情報を用いて、各ユーザの各購買をトピックに分類し、分類した前記トピックから各ユーザのトピック比率を算出し、算出した前記トピック比率を購買特徴量とする手段を含む。
【００１２】
また、本発明（請求項３）は、前記代表ユーザ決定手段において、
前記購買特徴量から各ユーザのハッシュ値を算出し、算出した前記ハッシュ値を該ユーザの代表判定値とする手段を含む。
【発明の効果】
【００１３】
本発明では、購買履歴あるいは推薦処理の中間結果を元に少数の代表ユーザを求めておいて、代表ユーザに向けた推薦リストだけ作成し、代表でないユーザには類似した代表ユーザの推薦リストを用いることにより、従来の技術では不可能であった、非常にユーザ数の多いインターネット上のサービス上でのアイテムの推薦が行えるようになる。これにより、インターネット上のサービスの多数のユーザの購買が促進されるため、大幅な収益増につながる。
【図面の簡単な説明】
【００１４】
【図１】推薦リストの例である。
【図２】本発明の一実施の形態における商品推薦装置の構成図である。
【図３】本発明の一実施の形態における購買情報テーブルの例である。
【図４】本発明の一実施の形態におけるトピック比率テーブルの例である。
【図５】本発明の一実施の形態におけるアイテム混合比テーブルの例である。
【図６】本発明の一実施の形態におけるトピックハッシュテーブルの例である。
【図７】本発明の一実施の形態におけるハッシュ乱数テーブルの例である。
【図８】本発明の一実施の形態におけるハッシュコードテーブルの例である。
【図９】本発明の一実施の形態における代表ユーザテーブルの例である。
【図１０】本発明の一実施の形態における類似代表ユーザテーブルの例である。
【図１１】本発明の一実施の形態における主記憶装置に保存される推薦リストの例である。
【図１２】本発明の一実施の形態における購買情報時の処理のフローチャートである。
【図１３】本発明の一実施の形態におけるトピック推定時の処理のフローチャートである。
【図１４】本発明の一実施の形態における図１３のステップ３３０の詳細な処理のフローチャートである。
【図１５】本発明の一実施の形態における図１４のステップ３３４の詳細な処理のフローチャートである。
【図１６】本発明の一実施の形態におけるハッシュ値生成時の処理のフローチャートである。
【図１７】本発明の一実施の形態における図１６のステップ３９０の詳細な処理のフローチャートである。
【図１８】本発明の一実施の形態における推薦リスト作成時の処理のフローチャートである。
【図１９】本発明の一実施の形態における推薦処理のフローチャートである。
【発明を実施するための形態】
【００１５】
本技術では、ユーザ数の多いE-Commerceサービスに対してリクエストに対して高速に結果を返すことが可能な推薦システムを実現することを目的とする。具体的には、購買履歴もしくは推薦処理の中間結果を元に数百から数千の代表ユーザを求めておいて、代表ユーザに向けた推薦リストだけ作成し、小規模で高速な記憶装置に格納しておく。
【００１６】
代表ユーザでないユーザに関する推薦のリクエストがあった場合には、購買履歴もしくは推薦処理の中間結果からLSH(Locality Sensitive Hashing)やKD(k-Dimensional)木等の高速な近似近傍検索法を用いて高速に類似した代表ユーザを発見し、その代表ユーザの推薦リストを用いる。
【００１７】
以下、図面と共に本発明の実施形態を説明する。
【００１８】
図２は、本発明の一実施の形態における商品推薦装置の構成を示す。
【００１９】
同図に示す商品推薦装置１は、購買情報処理部１０、トピック推定部２０、代表ユーザ決定部３０、推薦リスト作成部４０、推薦処理部５０、記憶部６０、主記憶装置７０、通信部８０、入出力部９０を有し、通信部８０はネットワーク３に接続されており、入出力部９０は、入力装置や表示装置等の外部装置４に接続されている。
【００２０】
記憶部６０は、購買情報テーブル６１、トピック比率テーブル６２、アイテム混合比テーブル６３、トピックハッシュテーブル６４、ハッシュコードテーブル６５、代表ユーザテーブル６６、類似代表ユーザテーブル６７を有する。以下に各テーブルについて説明する。
【００２１】
＜購買情報テーブル６１＞
購買情報テーブル６１には、図３に示すように、ユーザＩＤフィールド、アイテムＩＤフィールドが含まれる。
【００２２】
ユーザＩＤフィールドは、購買情報処理部１０により該購買に関するユーザを特定する識別子uが設定される。
【００２３】
アイテムＩＤフィールドは、購買情報処理部１０により、該購買がいずれのアイテムに関するものかを特定する識別子iが設定される。
【００２４】
＜トピック比率テーブル６２＞
トピック比率テーブル６２には、図４に示すように、ユーザＩＤフィールドと、トピックＩＤフィールドと、トピック比率フィールドとが含まれる。
【００２５】
トピック比率フィールドは、トピック推定部２０により、該ユーザuの購買で、該トピックzが選択される確率P(z|u)が設定される。
【００２６】
＜アイテム混合比テーブル６３＞
アイテム混合比テーブル６３には、図５に示すように、トピックＩＤフィールド(z)と、アイテムＩＤフィールド(i)と、アイテム混合比フィールドが含まれる。
【００２７】
アイテム混合比フィールドは、トピック推定部２０により、該トピックzが選択された場合に該アイテムiが購買される確率P(i|z)が設定される。
【００２８】
＜トピックハッシュテーブル６４＞
トピックハッシュテーブル６４には、図６に示すように、バケットＩＤフィールドと、コードＩＤフィールドと、トピックＩＤフィールドと、トピックハッシュフィールドが含まれる。
【００２９】
バケットＩＤフィールドは、代表ユーザ決定部３０により、代表ユーザ発見時に複数利用するハッシュテーブルのそれぞれを特定するＩＤ(t)が設定される。
【００３０】
コードＩＤフィールドは、代表ユーザ決定部３０により、ハッシュ値計算に利用する複数のハッシュコードのそれぞれを特定するＩＤ(c)が設定される。
【００３１】
トピックＩＤフィールドは、代表ユーザ決定部３０によりハッシュ値計算に利用するトピックを特定するＩＤ(z)が設定される。
【００３２】
トピックハッシュフィールドは、代表ユーザ決定部３０により、ハッシュ値計算に利用する次元がトピック数で各要素が乱数で初期化されたベクトルの要素値（atcz）が設定される。
【００３３】
＜ハッシュ乱数テーブル６５＞
ハッシュ乱数テーブル６５には、図７に示すように、バケットＩＤフィールド(t)と、コードＩＤフィールド(c)と、ハッシュ乱数フィールドが含まれる。
【００３４】
ハッシュ乱数フィールドは、代表ユーザ決定部３０により、該バケットの該コードに関するハッシュ乱数の値(btc)が設定される。
【００３５】
＜ハッシュコードテーブル６６＞
ハッシュコードテーブル６６には、図８に示すように、バケットＩＤフィールドと、コードＩＤフィールドと、ハッシュコードフィールドが含まれる。
【００３６】
ハッシュコードフィールドは、代表ユーザ決定部３０により、該バケットの該コード(c)に関するハッシュコードの値rtcが設定される。
【００３７】
＜代表ユーザテーブル６７＞
代表ユーザテーブル６７には、図９に示すように、代表ユーザＩＤフィールドと、バケットＩＤフィールドと、ハッシュ値フィールドが含まれる。
【００３８】
ハッシュ値フィールドは、代表ユーザ決定部３０により、代表ユーザ発見時に利用するハッシュテーブルの値(hut)が設定される。
【００３９】
＜類似代表ユーザテーブル６８＞
類似代表ユーザテーブル６８には、図１０に示すように、ユーザＩＤフィールドと、代表ユーザＩＤフィールドが含まれる。
【００４０】
各行は、そのユーザＩＤフィールド(u)で指定されるユーザの類似代表ユーザが代表ユーザＩＤフィールド(v)で指定される代表ユーザであることを示し、これらの値は代表ユーザ決定部３０により設定される。
【００４１】
主記憶装置７０には、推薦リスト７１が保持される。以下に保持される推薦リスト７１の情報について説明する。
【００４２】
＜推薦リスト７１＞
推薦リスト７１には、図１１に示すように、代表ユーザＩＤフィールドと、アイテムＩＤフィールドと、推薦スコアフィールドが含まれる。
【００４３】
推薦スコアフィールドは、推薦リスト作成部４０により、該ユーザへの該アイテムの推薦スコア(P(i|v))が設定される。
【００４４】
上記の構成における動作を説明する。
【００４５】
＜購買情報更新時の処理＞
はじめに、本発明の一実施の形態における購買情報更新時の処理を詳細に説明する。
【００４６】
図１２は、本発明の一実施の形態における購買情報更新時の処理のフローチャートである。購買情報更新のタイミングは、例えば、システム管理者が手動で管理できるようにしてもよいし、ユーザが何らかのアイテムを購買した場合に自動で発生するようにしてもよい。
【００４７】
ステップ１１０）購買情報処理部１０が、記憶部６０の購買情報テーブル６１に、購買された商品、購買したユーザに応じて商品(アイテム)ＩＤフィールド(i)、ユーザＩＤフィールド(u)の値を設定した行を挿入する。
【００４８】
＜トピック推定時の処理＞
図１３は、本発明の一実施の形態におけるトピック推定時の処理のフローチャートである。トピック推定のタイミングは、例えばシステム管理者が手動で管理することができるようにしてもよいし、定期的に自動で行ってもよい。なお、トピック推定部２０は、請求項の購買特徴量算出手段に対応する。
【００４９】
ステップ２１０）トピック推定部２０が、推薦のためのパラメータであるトピック数Z、トピック比率P(z|u)算出のための事前パラメータα、アイテム混合比P(i|z)算出のための事前パラメータηを設定する。これらパラメータは、予め与えておいた定数により設定される。
【００５０】
ステップ２２０）トピック推定部２０が、購買情報テーブル６１を参照し、購買情報、すなわち、各購買のユーザu={um}mと、商品(アイテム)i={im}mを取得する。
【００５１】
ステップ２３０）トピック推定部２０が、各購買のトピックz={zm}mを推定する。当該購買のトピックの推定方法については、図１４で説明する。
【００５２】
ステップ２４０）トピック推定部２０が、ステップ２１０にて設定したパラメータZ、αと、ステップ２３０にて推定した各購買のトピックzと 式（１）とを用いて、ユーザuの購買で、トピックzが選択される確率であるトピック比率P(z|u)を算出する。
【００５３】
【数１】
2014074960.tif 000003
ここでmは購買を特定する変数である。トピック推定部２０が、ユーザu、トピックz、トピック比率P(z|u)に応じて行を構成し、トピック比率テーブル６２に挿入する。
【００５４】
ステップ２５０）トピック推定部２０が、ステップ２１０にて設定したパラメータηと、ステップ２３０にて推定した各購買のトピックzと式（２）とを用いて、トピックzが選択された場合にアイテムiが購買される確率P(i|z)を算出する。
【００５５】
【数２】
2014074960.tif 000004
ここでNはユニークアイテム数である。トピック推定部２０が、トピックz、アイテムi、アイテム混合比P(i|z)に応じて行を構成し、アイテム混合比テーブル６３に挿入する。
【００５６】
次に、上記の図１３のステップ２３０の処理を詳細に説明する。
【００５７】
図１４は、本発明の一実施の形態における図１３のステップ２３０の詳細な処理のフローチャートである。
【００５８】
ステップ２３１）トピック推定部２０が、各購買のトピックzm (m=1,…，M)を最小値１、最大値の整数Kで初期化する。
【００５９】
ステップ２３２を、十分な回数（例えば５００回）繰り返す。繰り返しの回数については、予め設定した任意の数でも構わないし、各購買のトピックzが収束したらそこで打ち切るようにしてもよい。
【００６０】
ステップ２３２）トピック推定部２０が、各購買のトピックzm (m=1,…，M)を更新する。
【００６１】
次に、上記の図１４のステップ２３２の処理を詳細に説明する。
【００６２】
図１５は、本発明の一実施の形態における図１４のステップ２３２の詳細な処理のフローチャートである。当該処理は、非特許文献２（Blei, D.M et al., "Latent Dirichlet allocation）に記載の手法である。
【００６３】
全ての購買m=1,…，Mについて、ステップ２３２１とステップ２３２２を行う。
【００６４】
ステップ２３２１）トピック推定部２０が、該購買のトピックz mの各トピック候補k=1,…,Zへアサインされるサンプリング確率を式（３）により算出する。
【００６５】
【数３】
2014074960.tif 000005
ステップ２３２２）トピック推定部２０が、ステップ２３２１にて算出した該購買のトピックz mの各トピック候補k=1,…,Zへアサインされるサンプリング確率に基づき、乱数を発生させて、z mを更新する。具体的には、k=2,…,Zについて、式（４）に従ってサンプリング確率を更新する。
【００６６】
【数４】
2014074960.tif 000006
さらに、k=1,…,Zについて、サンプリングを式（５）のように更新する。
【００６７】
【数５】
2014074960.tif 000007
その後、最小値０、最大値１の小数の乱数を発生させてその値をサンプリング確率が上回る最小のkにアサインする。例を挙げて説明すると、今K=3として、式（３）に基づき算出されたサンプリング確率がそれぞれ
P(z m=1)=1.6
P(z m=2)=0.4
P(z m=3)=2.0
であったとする。つまり、それぞれのトピックに4:1:5の割合でサンプリングされるようにしたい。このとき、式（４）と式（５）を用いて、
P(z m=1)=0.4
P(z m=2)=0.5
P(z m=3)=1.0
とサンプリング確率を更新し、最小値０、最大値１の小数の乱数を発生させてその値をサンプリング確率が上回る最小のｋにアサインすればよい。
【００６８】
＜代表ユーザ決定処理＞
図１６は、本発明の一実施の形態における代表ユーザ決定時の処理のフローチャートである。代表ユーザ決定のタイミングは、例えばシステム管理者が手動で管理することができるようにしてもよいし、定期的に自動で行ってもよい。
【００６９】
ステップ３１０）代表ユーザ決定部３０が、トピックハッシュテーブル６４の全レコードを削除する。
【００７０】
ステップ３２０）代表ユーザ決定部３０が、ハッシュ乱数テーブル６５の全レコードを削除する。
【００７１】
ステップ３３０）代表ユーザ決定部３０が、ハッシュコードテーブル６６の全レコードを削除する。
【００７２】
ステップ３４０）代表ユーザ決定部３０が、代表ユーザテーブル６７の全レコードを削除する。
【００７３】
ステップ３５０）代表ユーザ決定部３０が、代表ユーザ決定に利用するハッシュテーブルの数であるバケット数Tと、ハッシュ値算出に利用するハッシュコードの数であるコード数C、ハッシュ乱数パラメータβ、コードパラメータρを設定する。これらパラメータは、予め与えておいた定数により設定される。
【００７４】
ステップ３６０）代表ユーザ決定部３０が、バケット、コード、トピックの各組合せ(t,c,z)について、最小0、分散1の正規分布から生成される乱数でトピックハッシュatczを決定し、該バケット、該コード、該トピックのトピックハッシュ値に応じて行を構成し、トピックハッシュテーブル６４に挿入する。
ステップ３７０）代表ユーザ決定部３０が、バケット、コードの各組合せ(t,c)について、最小0、最大βの小数乱数でハッシュ乱数ｂtcを決定し、該バケット、該コードのハッシュ乱数値に応じて行を構成しハッシュ乱数テーブル６５に挿入する。
【００７５】
ステップ３８０）代表ユーザ決定部３０が、バケット、コードの各組合せ(t,c)について、最小0、最大ρの乱数ｒtcでハッシュコードを決定し、該バケット、該コードのハッシュコード値に応じて行を構成し、ハッシュコードテーブル６６に挿入する。
【００７６】
ステップ３９０）代表ユーザ決定部３０が、生成したトピックハッシュ(atcz)と、ハッシュ乱数(btc)と、ハッシュコード(rtc)を用いて、購買情報テーブル６１、トピック比率テーブル６２を参照し、代表ユーザテーブル６６と類似代表ユーザテーブル６７を更新する。
【００７７】
次に、上記の図１６のステップ３９０の処理を詳細に説明する。
【００７８】
図１７は、本発明の一実施の形態における図１６のステップ３９０の詳細な処理のフローチャートである。以下に示す手法は、非特許文献３（Gionis， A． et al., "Similarity Search High Dimensions via Hashing"）に記載の手法である。
【００７９】
ステップ３９１）代表ユーザ決定部３０が、購買情報テーブル６１を参照し、そのユーザＩＤフィールドに出現する全ユーザ集合Uを取得する。
【００８０】
ステップ３９２）代表ユーザ決定部３０が、代表ユーザ集合を格納する一時変数Vを設定し、その値を空集合に設定する。
【００８１】
Uに出現する各ユーザuについて、ステップ３９３〜３９９を行う。
【００８２】
ステップ３９３）代表ユーザ決定部３０が、トピック比率テーブル６２を参照しユーザuの各トピックzに対するトピック比率P(z|u)を取得する。
【００８３】
ステップ３９４）代表ユーザ決定部３０が、ユーザuのバケットtに関するハッシュ値hutをユーザuのトピック比率P(z|u)、トピックハッシュatcz、ハッシュ乱数btc、ハッシュコードrtcを用いて式（６）のように算出する。
【００８４】
【数６】
2014074960.tif 000008
ここでfloor()は引数を越えない最大の整数を返す関数とする。
【００８５】
ステップ３９５）代表ユーザ決定部３０が、処理中の代表ユーザ集合V中の各代表ユーザvについて、ユーザuと各バケットtのハッシュ値、hvtとhutを比較し、一致するものがあればステップ３９６を行い、次のユーザの処理に移る。もしいずれの代表ユーザともすべてのバケットでハッシュ値が異なれば、ステップ３９７、ステップ３９８、ステップ３９９を行い、次のユーザの処理に移る。
【００８６】
ステップ３９６）代表ユーザ決定部３０が、ユーザＩＤフィールドの値がu、代表ユーザＩＤフィールドの値がvの行を構成し、類似代表ユーザテーブル６８に挿入する。
【００８７】
ステップ３９７）代表ユーザ決定部３０が、代表ユーザ集合Vにユーザuを追加する。
【００８８】
【数７】
2014074960.tif 000009
ステップ３９８）代表ユーザ決定部３０が、ユーザuの各バケットtに対するハッシュ値hutに応じて、代表ユーザＩＤフィールドをu、バケットＩＤフィールドt、ハッシュ値フィールドhutの行を構成し、代表ユーザテーブル６７に挿入する。
【００８９】
ステップ３９９）代表ユーザ決定部３０が、ユーザＩＤフィールドの値がu、代表ユーザＩＤフィールドの値がuの行を構成し、類似代表ユーザテーブル６８に挿入する。
【００９０】
＜推薦リスト作成処理＞
図１８は、本発明の一実施の形態における推薦リスト作成時の処理のフローチャートである。推薦リスト作成のタイミングは、例えばシステム管理者が手動で管理することができるようにしてもよいし、定期的に自動で行ってもよい。
【００９１】
ステップ４１０）推薦リスト作成部４０が、アイテム混合比テーブル６３を参照し、各トピックzにおける各アイテムiのアイテム混合比P(i|z)を取得する。
【００９２】
ステップ４２０）推薦リスト作成部４０が、代表ユーザテーブル６７を参照し、代表ユーザＩＤフィールドに出現する全ての代表ユーザ集合Vを取得する。
【００９３】
取得した代表ユーザ集合Vに出現する各代表ユーザuについて、ステップ４３０〜４５０を行う。
【００９４】
ステップ４３０）推薦リスト作成部４０が、トピック比率テーブル６２を参照し、ユーザＩＤフィールドの値がvである行から代表ユーザvの各トピックzに対するトピック比率P(z|v)を取得する。
【００９５】
ステップ４４０）推薦リスト作成部４０が、各アイテムiについて、取得したアイテム混合比とトピック比率からiのvに対する推薦スコアP(i|v)を式（８）のように算出する。
【００９６】
【数８】
2014074960.tif 000010
ステップ４５０）推薦リスト作成部が、vに対する推薦スコアからいずれのアイテムを推薦するかを決定し、ユーザＩＤフィールドの値がv、アイテムＩＤフィールドの値がi、推薦スコアフィールドの値がP(i|v)の行を推薦するアイテムの個数分構成し、主記憶７０中の推薦リスト７１に格納・保持する。ここでアイテムを推薦するかしないかの基準としては、推薦スコアの値が大きいものから順に予め設定した任意の件数を推薦すべき商品としてもよいし、推薦スコアに対し、何らかの閾値を設けて、 推薦スコアがその値を超えるものを推薦すべき商品としてもよい。
【００９７】
＜推薦処理時の処理＞
図１９は、本発明の一実施の形態における推薦処理時の処理のフローチャートである。推薦処理は、例えば通信部８０、ネットワーク３を通じて外部端末２から商品推薦装置１に推薦実行のリクエストが入力された場合に実行するようにすればよい。このときのリクエストの引数は推薦対象のユーザＩＤである。今、ユーザuに関する推薦のリクエストがあったとする。
【００９８】
ステップ５１０）推薦処理部５０が、類似代表ユーザテーブル６８を参照し、ユーザＩＤフィールドの値がuの行の代表ユーザＩＤフィールドの値vを取得する。
【００９９】
ステップ５２０）推薦処理部５０が、推薦リスト７１を参照し、ユーザvに対する推薦リストを取得し、リクエストを要求しているユーザuにその内容を推薦する。
【０１００】
なお、上記の商品推薦装置の各構成要素の処理をプログラムとして構築し、商品推薦装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【０１０１】
また、構築されたプログラムをハードディスクや、フレキシブルディスク、ＣＤ−ＲＯＭ等の可搬記憶媒体に格納し、コンピュータにインストールする、または、配布することが可能である。
【０１０２】
なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。
【符号の説明】
【０１０３】
１  商品推薦装置
２  外部端末
３  ネットワーク
４  外部装置
１０  購買情報処理部
２０  トピック推定部（購買特徴量算出手段）
３０  代表ユーザ決定部
４０  推薦リスト作成部
５０  推薦処理部
６０  記憶部
７０  主記憶装置
７１  推薦リスト
８０  通信部
９０  入出力部
【図１】
2014074960.tif 000011
【図２】
2014074960.tif 000012
【図３】
2014074960.tif 000013
【図４】
2014074960.tif 000014
【図５】
2014074960.tif 000015
【図６】
2014074960.tif 000016
【図７】
2014074960.tif 000017
【図８】
2014074960.tif 000018
【図９】
2014074960.tif 000019
【図１０】
2014074960.tif 000020
【図１１】
2014074960.tif 000021
【図１２】
2014074960.tif 000022
【図１３】
2014074960.tif 000023
【図１４】
2014074960.tif 000024
【図１５】
2014074960.tif 000025
【図１６】
2014074960.tif 000026
【図１７】
2014074960.tif 000027
【図１８】
2014074960.tif 000028
【図１９】
2014074960.tif 000029