【文献】
幸島 匡宏,外3名,“複数行列の行列分解に関する一考察”,電子情報通信学会技術研究報告,一般社団法人電子情報通信学会,2013年11月 5日,第113巻,第286号,pp.107−114
(58)【調査した分野】(Int.Cl.,DB名)
複数の特徴を含む第1の特徴量と紐付けが可能な複数の個体のうち、個体ごとの識別情報に紐付く第1の個体ごとに、当該第1の個体に関して生じた事象に関する情報を記憶する第1の記憶部と、
前記第1の個体群と、前記複数の個体のうち前記識別情報に紐付かない第2の個体群とを、前記第1の特徴量の部分集合である第2の特徴量に基づいて分類することにより形成される第3の個体ごとに、当該第3の個体に関して生じた事象に関する情報を記憶する第2の記憶部と、
前記第1の記憶部又は前記第2の記憶部が記憶する情報が示す事象であって、前記第1の個体群及び前記第3の個体群のそれぞれに生じた事象の傾向を因子分解する第1のパラメータを繰り返し更新し、該更新ごとに、前記各第3の個体と前記第1の個体群との関係関数に関する第2のパラメータを前記第1のパラメータの更新結果に基づいて更新し、該更新の回数が所定回数に達した場合、又は前記第1のパラメータ若しくは前記第2のパラメータの更新前後の変化量が所定値以下である場合に、該更新を停止して、前記第1の個体群及び前記第3の個体群のそれぞれに生じる事象の傾向を因子分解した結果を得る分解部と、
を有することを特徴とする分析装置。
複数の特徴を含む第1の特徴量と紐付けが可能な複数の購買者のうち、購買者ごとの識別情報に紐付く第1の購買者ごとに、当該第1の購買者による商品の購買に関する情報を記憶する第1の記憶部と、
前記第1の購買者群と、前記複数の購買者のうち前記識別情報に紐付かない第2の購買者群とを、前記第1の特徴量の部分集合である第2の特徴量に基づいて分類することにより形成されるグループごとに、当該グループによる商品の購買に関する情報を記憶する第2の記憶部と、
前記第1の記憶部又は前記第2の記憶部が記憶する情報が示す購買であって、前記第1の購買者群及び前記グループ群のそれぞれによる購買の傾向を因子分解する第1のパラメータを繰り返し更新し、該更新ごとに、前記各グループと前記第1の購買者群との関係関数に関する第2のパラメータを前記第1のパラメータの更新結果に基づいて更新し、該更新の回数が所定回数に達した場合、又は前記第1のパラメータ若しくは前記第2のパラメータの更新前後の変化量が所定値以下である場合に、該更新を停止して、前記第1の購買者群及び前記グループ群のそれぞれによる購買の傾向を因子分解した結果を得る分解部と、
を有することを特徴とする分析装置。
【背景技術】
【0002】
POS(Point of Sales)データに代表される購買履歴等の構造化されたデータや、テキストデータ又は画像データ等の構造化されていないデータの多くは、行列形式により表現できることが知られている。行列形式によって表現されたデータ中に存在するクラスタを発見するための手法として、非負値行列分解(Non-negative Matrix Factorization、NMF)と呼ばれる手法の有用性が、これまでに示されている(例えば、非特許文献1参照)。NMFの適用により、入力となる行列データは、それより低次のランクの行列の積に分解される。この各低次行列が、それぞれ入力となる行列データの各行又は各列に対応する事物のクラスタへの寄与度を表しており、クラスタの発見が可能となる。したがって、例えば、購買データに対してNMFを適用することで抽出されたクラスタに基づいて、ユーザへのお薦め商品リストを作成したり、ニュース記事の集合に対するNMFの適用結果に基づいて、記事を自動的に分類したりすることが可能となる。
【0003】
図1は、購買データへの非負値行列分解(NMF)の適用例を示す図である。
図1において、ユーザ購買行列Xは、購買データを表す。すなわち、ユーザ購買行列X={x
ij}は、第i行目に対応するユーザによる、第j列目に対応する商品の購買数が、x
ijの値となるI行J列の行列である。ユーザ購買行列XにNMFを適用することで、
【0004】
【数1】
となるI行R列のユーザ特徴行列A={a
ir}と、J行R列の商品特徴行列B={b
jr}とが求まる。但し、数1の左辺と右辺との間の記号(以下「類似記号」という。)は、右辺と左辺とが類似していることを示す。また、商品特徴行列Bの上付きの記号Tは行列の転置を示す。a
irの値が、ユーザiのクラスタrへの寄与度(所属度合い)、b
jrの値が、商品jのクラスタrへの寄与度を表す。
【0005】
ユーザ特徴行列Aのクラスタ1に対応する列に着目すると、ユーザ1、ユーザ2、ユーザ3のそれぞれに対応する1行目、2行目、3行目の値が、0より大きい値となっている。これは、ユーザ1、ユーザ2、及びユーザ3が、クラスタ1に所属することを示している。また、商品特徴行列Bのクラスタ1に対応する行に着目すると、1列目のビール1、2列目のビール2、3列目のビール3に該当する列の値が、0より大きい値となっている。このことから、ビール1、ビール2、及びビール3という3つの単語が、同じユーザに購入されやすいというクラスタ1のもつ特徴を表しているといえる。そこで、ビール1、ビール2、及びビール3という商品をまとめてクラスタ1の商品特徴と呼ぶ。同様に、クラスタ1に所属するユーザを、クラスタ1のユーザ特徴と呼ぶ。クラスタ1の商品特徴とクラスタ1のユーザ特徴とをまとめてクラスタ1の特徴と呼ぶこととする。このように、NMFの適用によって得られたユーザ特徴行列Aと商品特徴行列Bとに基づいて、
図2のようなクラスタ抽出(クラスタリング)が可能となる。
【0006】
図2は、非負値行列分解(NMF)を適用して得られるクラスタリング結果の一例を示す図である。
図2には、列方向にクラスタ1及び2が配列され、行方向にユーザ特徴及び商品特徴が配列されている。クラスタ1の列には、クラスタ1に属するユーザ及び商品が示されている。クラスタ2の列には、クラスタ2に属するユーザ及び商品が示されている。
【0007】
なお、クラスタの総数に相当する商品特徴行列のランク数は、解析する前に予め決定しておくものとする。
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、非特許文献1に記載された技術が入力として利用する購買データは、"誰が"どの商品を購入したかを表す、ユーザIDに紐付けられた購買履歴のみを扱うことを想定しており、非特許文献1では、ユーザIDに紐付けられない購買履歴を合わせた解析を行うことは想定されていない。
【0010】
近年のデータ解析においては、ユーザIDに紐付くデータ及びユーザIDに紐付かないデータの双方が存在する状況が多数存在している。以下に3つの例を示す。
【0011】
1つ目の例は、個人を特定できる形式でのデータの利用期間に制限が存在するという状況において管理されているデータである。これは個人情報保護等の観点から、不必要に長い期間個人を特定可能なデータが存在することを避けるための制限である。
【0012】
図3は、個人を特定できる形式でのデータの利用期間に制限が存在する状況におけるデータの一例を示す図である。
図3には、2014年4月1日において、2013年4月1日〜2013年9月30日までのデータに関しては、個人を特定するユーザIDが除去される例が示されている。すなわち、
図3において、日付の値が当該期間に含まれるデータのユーザIDは、「xxxxxxx」によって表現されている。「xxxxxxx」は、便宜上、その値が除去されていることを示す。その結果、当該データは、ユーザIDに紐付かないデータとなっている。一方、日付が当該期間より後のデータに関しては、個人を特定するユーザIDを含めた全カラムが利用でき、ユーザIDに紐付くデータとなっている。したがって、例えば、日付の値が2013年4月1日〜2013年9月30日の期間に含まれるデータに関しては、男性別若しくは女性別、又はユーザ全体での各商品の購買数といった属性毎の統計情報のみに関して利用できることになる。
【0013】
2つ目の例は、企業間でデータを匿名化させたうえでデータ共有を行うという状況において利用されるデータである。
【0014】
図4は、企業間でデータを匿名化させたうえでデータ共有を行う状況におけるデータの一例を示す図である。
図4には、企業Aのデータ、データフォルダ1のデータ、及びデータフォルダ2のデータが、共通データ基盤に格納されている例が示されている。ここで、データフォルダ1のデータ及びデータフォルダ2のデータは、企業Aから見て他社のデータである。
【0015】
企業Aは、データフォルダ1、データフォルダ2のデータそのものを共通データ基盤から取り出すことはできないが、全社のデータを使って計算される、ユーザIDとは紐付かない統計情報(例えば、世代別の統計情報)を、共通データ基盤から抽出することはできる。したがって、企業Aの利用可能なデータは、企業Aが当初から有するユーザIDに紐付くデータと、共通データ基盤から取り出せるユーザIDには紐付かない統計情報ということになる。
【0016】
3つ目の例は、インターネット上のオンライン店舗での購買データではなく、コンビニエンスストア等のいわゆるオフラインな店舗での購買データである。インターネット上のオンライン店舗での買い物では、ユーザがサイト上でログインした後に注文が行われるというシステムが一般的であるため、収集される購買データは、全てがユーザIDに紐付くことになる。一方、オフラインな店舗では、ログインといった操作は行われない。したがって、オフラインな店舗に関する購買データには、ユーザIDに紐付くデータとユーザIDに紐付かないデータとが混在しうる。
【0017】
図5は、オフラインな店舗での購買データの一例を示す図である。例えば、
図5のユーザ1ように、会計時にポイントカードを提示したユーザの購買データは、ユーザID(ポイントカード番号)に紐付く。一方、ユーザ2のように、ポイントカードを提示しなかったユーザに関してはユーザIDに紐付かず、レジ店員がその場で入力する性別や年代といった情報のみと紐付くことになる。
【0018】
上記の3つの例のように、ユーザIDに紐付くデータとユーザIDに紐付かないデータとの双方が存在している場合であっても、非特許文献1に記載された技術では、ユーザIDに紐付かないデータを合わせた解析を行うことができないために、ユーザIDに紐付かないデータを利用せずに解析を行うことになる。
【0019】
図6は、ユーザIDに紐付かないデータを除く非負値行列分解(NMF)の適用例を示す図である。
図6では、ユーザIDが不明な購買データは利用せずに、ユーザIDに紐付く購買データのみを抽出して、
図1に示されるようなユーザ購買行列Xが生成され、ユーザ購買行列Xに対してNMFが適用されて、ユーザ特徴行列A及び商品特徴行列Bが求められ、ユーザ特徴行列A及び商品特徴行列Bに基づいて、クラスタリング結果が得られる例が示されている。
【0020】
このような、ユーザIDに紐付かないデータを除くといったアプローチは、ユーザIDに紐付くデータの割合が、データの総数に対して小さくなる場合に特に問題が有る。例えば、双方のデータを用いた場合に最も購買数の多い商品と、ユーザIDに紐付くデータのみを用いた場合に最も購買数の多い商品が異なりうるように、ユーザIDに紐付くデータのみでは、データ全体の傾向を把握するのは困難であるからである。
【0021】
本発明は、上記の点に鑑みてなされたものであって、非負値行列分解において、個体ごとの識別情報に紐付くデータと紐付かないデータとの双方を利用したクラスタ抽出を可能とすることを目的とする。
【課題を解決するための手段】
【0022】
そこで上記課題を解決するため、分析装置は、複数の特徴を含む第1の特徴量と紐付けが可能な複数の個体のうち、個体ごとの識別情報に紐付く第1の個体ごとに、当該第1の個体に関して生じた事象に関する情報を記憶する第1の記憶部と、前記第1の個体群と、前記複数の個体のうち前記識別情報に紐付かない第2の個体群とを、前記第1の特徴量の部分集合である第2の特徴量に基づいて分類することにより形成される第3の個体ごとに、当該第3の個体に関して生じた事象に関する情報を記憶する第2の記憶部と、前記第1の記憶部又は前記第2の記憶部が記憶する情報が示す事象であって、前記第1の個体群及び前記第3の個体群のそれぞれに生じた事象の傾向を因子分解する第1のパラメータを繰り返し更新し、該更新ごとに、前記各第3の個体と前記第1の個体群との関係関数に関する第2のパラメータを前記第1のパラメータの更新結果に基づいて更新し、該更新の回数が所定回数に達した場合、又は前記第1のパラメータ若しくは前記第2のパラメータの更新前後の変化量が所定値以下である場合に、該更新を停止して、前記第1の個体群及び前記第3の個体群のそれぞれに生じる事象の傾向を因子分解した結果を得る分解部と、を有する。
【発明の効果】
【0023】
個体ごとの識別情報に紐付くデータと紐付かないデータとの双方を利用したクラスタ抽出を可能とすることができる。
【発明を実施するための形態】
【0025】
以下、図面に基づいて本発明の実施の形態を説明する。本実施の形態では、ユーザIDに紐付く購買履歴から生成されるI行×J列のユーザ購買行列X={x
ij}、ユーザIDに紐付く購買履歴とユーザIDに紐付かない購買履歴の双方を用いて生成されるK行×J列のグループ購買行列Y={y
kj}、ユーザと当該ユーザが所属するグループとの対応関係を表すI行×K列のユーザグループ対応行列V={v
ik}という3つの行列からクラスタ抽出が行われる。なお、グループとは、例えば、
図6における男性30代、男性40代のように、ユーザが有する複数の属性(特徴)の部分集合である属性(特徴)の値(特徴量)の共通性に基づいてユーザを分類することにより形成されるユーザの集合に対応する概念である。したがって、グループ購買行列Yは、成分y
kjが、グループk(例えば、男性30代全体)による商品jの総購買数を表す行列である。また、ユーザグループ対応行列Vの成分v
ikは、ユーザiがグループkに属する場合に1であり、ユーザiがグループkに属さない場合に0である行列である。なお、v
ikの値は、0又は1に限られず、0又は正の整数値であればよい。したがって、v
ikの値に負の値は用いられない。
【0026】
図7は、本発明の実施の形態における各行列の生成例を示す図である。
図7では、購買データのうち、ユーザIDに紐付くデータについて、ユーザ購買行列X及びユーザグループ対応行列Vが生成され、ユーザIDに対応付くデータ及びユーザIDに対応付かないデータについて、グループ購買行列Yが生成されることが示されている。
【0027】
本実施の形態では、ユーザ購買行列Xとグループ購買行列Yとの間に成立する関係性を考慮した行列分解手法が開示される。
【0028】
図8は、本発明の実施の形態における行列分解手法を説明するための図である。
図8では、ユーザ購買行列Xとユーザグループ対応行列Vとから計算される男性、女性といった属性別の統計値が部分統計値として扱われ、グループ購買行列Yが示す属性別の統計値が全体統計値として扱われることが示されている。本実施の形態における行列分解モデルでは、部分統計値と全体統計値とは"おおよそ"の比例関係にあるとしたモデル化が行われる。ここで述べた"おおよそ"の意味については後述する。
【0029】
本実施の形態は、非特許文献2に記載された方法と同様に、ユーザ購買行列Xとグループ購買行列Yとについて、それぞれ、
【0031】
【数3】
という行列分解形を考える。CをK行R列のグループ特徴行列C={c
kr}と呼び、c
krの値は、グループkのクラスタrへの寄与度を表す。本実施の形態では、行列Aと行列Cとの間に、DV
TA=Cが成立するという線形の制約条件を導入する。当該制約条件の導入に、本実施の形態の特長の一つが有る。すなわち、当該制約条件の導入により、前述した部分統計と全体統計とが"おおよそ"比例する、という仮定が考慮されて、A、B、C、及びDが得られる。なお、行列D={d
kk'}は、対角行列、すなわち、対角成分にのみ0以外の値を有する正方行列(K行K列)である。本実施の形態では、行列Dを、「係数特徴行列」と呼ぶ。対角成分d
kkの値は、グループkの部分統計とグループkの全体統計との比例定数を表す。
【0032】
図9は、本発明の実施の形態の概要を説明するための図である。
図9には、ユーザ購買行列Xに対するNMFの適用結果と、グループ購買行列Yに対するNMFの適用結果とが、商品特徴行列Bを共通因子として有すること、及びそれぞれの適用結果におけるユーザ特徴行列Aとグループ特徴行列Cとの間には、上述した線形関数に基づく制約条件が成立することが示されている。
【0033】
ユーザ特徴行列Aが、ユーザとクラスタとの関係を表し、商品特徴行列Bが、商品とクラスタとの関係表し、グループ特徴行列Cが、グループとクラスタとの関係表し、係数特徴行列Dが、グループの部分統計と全体統計間との比例定数を表していることから、これらを利用して、例えば、
図9の下方のヒストグラムを得ることができる。このヒストグラムから、各クラスタに特徴的なユーザ、商品、グループを特定したり、部分統計と全体統計との間の関係を調べたりすることができる。
【0034】
ここで、類似記号で表現した類似の尺度と、前述した"おおよそ"の比例関係とが意味することについて説明する。非特許文献1にも記載されているように、行列の類似の尺度には、ユークリッド距離に基づくものや一般化カルバックライブラーダイバージェンス(KL距離)により定義される距離尺度が用いられ、値が小さいほど両者が類似していることを表す。距離尺度にいずれの距離を利用するかは、データが有する性質を考慮して決定される。例えば、非特許文献2にも記述されているように、距離尺度にKL距離を用いることは、ユーザ購買行列Xの各成分x
ijが、パラメータΣ
ra
irb
jrのポアソン分布に従って得られているとした確率モデルを考えていることに相当する。したがって、ポアソン分布の性質から、x
ijのとる値の期待値は、Σ
ra
irb
jrとなるが、実際のデータ中のx
ijの値は、平均からずれた値をとることも想定されたモデル化がされている。これを踏まえて、"おおよそ"の比例関係という言葉を厳密に定義すると、本実施の形態においては、部分統計の期待値と全体統計の期待値との間に比例関係を想定したモデリングを行っていることになる。したがって、この期待値のもとでの比例関係が保たれるように制限した上で、行列A、B、C、Dを算出することで、全体統計の値も考慮された解析が可能になる。
【0035】
次に、上記したクラスタ抽出を実行するクラスタ抽出装置10の一例について説明する。
図10は、本発明の実施の形態におけるクラスタ抽出装置のハードウェア構成例を示す図である。
図10のクラスタ抽出装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、インタフェース装置105、表示装置106、及び入力装置107等を有する。
【0036】
クラスタ抽出装置10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0037】
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従ってクラスタ抽出装置10に係る機能を実現する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。表示装置106はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置107はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
【0038】
図11は、本発明の実施の形態におけるクラスタ抽出装置の機能構成例を示す図である。
図11において、クラスタ抽出装置10は、ユーザ購買情報処理部11、グループ購買情報処理部12、ユーザグループ対応情報処理部13、特徴行列推定部14、特徴行列出力部15、及び入出力制御部16等を有する。これら各部は、クラスタ抽出装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。クラスタ抽出装置10は、また、ユーザ購買情報テーブル51、グループ購買情報テーブル52、ユーザグループ対応情報テーブル53、ユーザ特徴テーブル54、商品特徴テーブル55、グループ特徴テーブル56、及び係数特徴テーブル57等を利用する。これら各テーブルは、補助記憶装置102、メモリ装置103、又はクラスタ抽出装置10にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【0039】
ユーザ購買情報処理部11は、ユーザ購買行列Xを示す情報(以下、「ユーザ購買情報」という。)の入力を受け付け、当該ユーザ購買情報を、ユーザ購買情報テーブル51に記憶する。グループ購買情報処理部12は、グループ購買行列Yを示す情報(以下、「グループ購買情報」という。)の入力を受け付け、当該グループ購買情報を、グループ購買情報テーブル52に記憶する。ユーザグループ対応情報処理部13は、ユーザグループ対応行列Vを示す情報(以下、「ユーザグループ対応情報」という。)の入力を受け付け、当該ユーザグループ対応情報を、ユーザグループ対応情報テーブル53に記憶する。
【0040】
特徴行列推定部14は、ユーザ購買情報テーブル51、グループ購買情報テーブル52、又はユーザグループ対応情報テーブル53が記憶する情報に基づいて、ユーザ特徴行列A、商品特徴行列B、グループ特徴行列C、及び係数特徴行列Dの推定値を算出し、それぞれの算出結果を、ユーザ特徴テーブル54、商品特徴テーブル55、グループ特徴テーブル56、及び係数特徴テーブル57に記憶する。特徴行列出力部15は、ユーザ特徴テーブル54、商品特徴テーブル55、グループ特徴テーブル56、及び係数特徴テーブル57の内容を出力する。入出力制御部16は、指示入力や情報の出力に関する処理を制御する。
【0041】
以下、クラスタ抽出装置10が実行する処理手順について説明する。
図12は、クラスタ抽出装置が実行する処理手順の一例を説明するためのフローチャートである。
【0042】
ステップS100において、ユーザ購買情報処理部11は、ユーザID、商品ID、及び購買数を一組とするユーザ購買情報の入力を受け付ける。ユーザ購買情報処理部11は、入力されたユーザ購買情報を、ユーザ購買情報テーブル51に記憶する。
【0043】
図13は、ユーザ購買情報テーブルの構成例を示す図である。
図13において、ユーザ購買情報テーブル51は、ユーザIDフィールド、商品IDフィールド、及び購買数フィールドを有する。
【0044】
ユーザIDフィールドには、ユーザIDが記憶される。ユーザIDは、商品を購買したユーザ(購買者)ごとの識別子である。商品IDフィールドには、商品IDが記憶される。商品IDは、ユーザが購買した商品の識別子である。購買数フィールドには、1、又はユーザIDに係るユーザによる商品IDに係る商品の購買数が記憶される。なお、購買数の値には0又は正の整数値を設定できるが、負の値を設定することはできない。
【0045】
ユーザ購買情報処理部11は、入力されたユーザID、商品ID、及び購買数の組数分の行を、ユーザ購買情報テーブル51に追加し、各行の各フィールドに対して値を記憶する。ユーザ購買情報は、例えば、システム管理者等によって、入力装置107等を利用して手動で入力されてもよいし、POS(Point Of Sales system)システムから自動的に入力されてもよい。ユーザ購買情報が自動的に入力される場合、商品の購買が発生するたびに、ユーザ購買情報の入力が行われてもよい。
【0046】
なお、ユーザ購買情報テーブル51の各フィールドに付与されているi、j、x
ijは、ユーザ購買行列Xにおける行、列、及び成分のそれぞれの識別子である。すなわち、ユーザ購買情報テーブル51は、ユーザ購買行列Xと等価である。
【0047】
ステップS200において、グループ購買情報処理部12は、グループID、商品ID、及び購買数を一組とするグループ購買情報の入力を受け付ける。グループ購買情報処理部12は、入力されたグループ購買情報を、グループ購買情報テーブル52に記憶する。
【0048】
図14は、グループ購買情報テーブルの構成例を示す図である。
図14において、グループ購買情報テーブル52は、グループIDフィールド、商品IDフィールド、及び購買数フィールドを有する。
【0049】
グループIDフィールドには、グループIDが記憶される。グループIDは、グループごとの識別子である。商品IDフィールドには、グループIDフィールドに係るグループに属するユーザ(購買者)によって購入された商品の商品IDが記憶される。購買数フィールドには、1、又はグループIDに係るグループに属するユーザによる商品IDに係る商品の購買数が記憶される。なお、購買数の値には0又は正の整数値を設定できるが、負の値を設定することはできない。
【0050】
グループ購買情報処理部12は、入力されたグループID、商品ID、及び購買数の組数分の行を、グループ購買情報テーブル52に追加し、各行の各フィールドに対して値を記憶する。グループ購買情報は、例えば、システム管理者等によって、入力装置107等を利用して手動で入力されてもよいし、POS(Point Of Sales system)システムから自動的に入力されてもよい。グループ購買情報が自動的に入力される場合、商品の購買が発生するたびに、グループ購買情報の入力が行われてもよい。
【0051】
なお、グループ購買情報テーブル52の各フィールドに付与されているk、j、y
kjは、グループ購買行列Yにおける行、列、及び成分のそれぞれの識別子である。すなわち、グループ購買情報テーブル52は、グループ購買行列Yと等価である。
【0052】
ステップS300において、ユーザグループ対応情報処理部13は、ユーザID、グループID、及び所属値を一組とするユーザグループ対応情報の入力を受け付ける。ユーザグループ対応情報処理部13は、入力されたユーザグループ対応情報を、ユーザグループ対応情報テーブル53に記憶する。
【0053】
図15は、ユーザグループ対応情報テーブルの構成例を示す図である。
図15において、ユーザIDフィールド、グループIDフィールド、及び所属値フィールドを有する。
【0054】
ユーザIDフィールドには、ユーザIDが記憶される。グループIDフィールドには、グループIDが記憶される。所属値フィールドには、ユーザIDに係るユーザが、グループIDに係るグループに所属するか否かを示す値(所属値)が記憶される。1は、グループに所属することを示し、0は、グループに所属しないことを示す。
【0055】
ユーザグループ対応情報処理部13は、入力されたユーザID、グループID、及び所属値の組数分の行を、ユーザグループ対応情報テーブル53に追加し、各行の各フィールドに対して値を記憶する。ユーザグループ対応情報は、例えば、システム管理者等によって、入力装置107等を利用して手動で入力されてもよいし、POS(Point Of Sales system)システムから自動的に入力される情報に基づいて、新たなユーザ又はグループが検出された際に、自動的に入力されてもよい。
【0056】
なお、ユーザグループ対応情報テーブル53の各フィールドに付与されているi、k、v
ikは、ユーザグループ対応行列Vにおける行、列、及び成分のそれぞれの識別子である。すなわち、ユーザグループ対応情報テーブル53は、ユーザグループ対応行列Vと等価である。
【0057】
なお、ステップS100〜S300の前後関係は、特定のものに限定されない。例えば、ステップS100〜S300は、相互に非同期に実行されてもよい。
【0058】
ステップS400において、特徴行列推定部14は、ユーザ購買情報テーブル51、グループ購買情報テーブル52、及びユーザグループ対応情報テーブル53等に基づいて、ユーザ特徴行列A、商品特徴行列B、グループ特徴行列C、及び係数特徴行列Dを推定し、推定結果を、ユーザ特徴テーブル54、商品特徴テーブル55、グループ特徴テーブル56、又は係数特徴テーブル57に記憶する。
【0059】
図16は、ユーザ特徴テーブルの構成例を示す図である。
図16において、ユーザ特徴テーブル54は、ユーザIDフィールド、クラスタIDフィールド、及びユーザ特徴値フィールドを有する。
【0060】
ユーザIDフィールドには、ユーザIDが記憶される。クラスタIDフィールドには、クラスタIDが記憶される。クラスタIDは、クラスタごとの識別子である。ユーザ特徴値フィールドには、ユーザ特徴値が記憶される。ユーザ特徴値は、当該ユーザIDに係るユーザの、当該クラスタIDに係るクラスタに対する特徴値(寄与度)である。なお、ユーザ特徴テーブル54の各フィールドに付与されているi、r、a
irは、ユーザ特徴行列Aにおける行、列、成分のそれぞれの識別子である。すなわち、ユーザ特徴テーブル54は、ユーザ特徴行列と等価である。
【0061】
図17は、商品特徴テーブルの構成例を示す図である。
図17において、商品特徴テーブル55は、商品IDフィールド、クラスタIDフィールド、及び商品特徴値フィールドを有する。
【0062】
商品IDフィールドには、商品IDが記憶される。クラスタIDフィールドには、クラスタIDが記憶される。商品特徴値フィールドには、当該商品IDに係る商品の、当該クラスタIDに係るクラスタに対する特徴値(寄与度)が記憶される。なお、商品特徴テーブル55の各フィールドに付与されているj、r、b
jrは、商品特徴行列Bにおける行、列、成分のそれぞれの識別子である。すなわち、商品特徴テーブル55は、商品特徴行列Bと等価である。
【0063】
図18は、グループ特徴テーブルの構成例を示す図である。
図18において、グループ特徴テーブル56は、グループIDフィールド、クラスタIDフィールド、及びグループ特徴値フィールドを有する。
【0064】
グループIDフィールドには、グループIDが記憶される。クラスタIDフィールドには、クラスタIDが記憶される。グループ特徴値フィールドには、グループ特徴値が記憶される。グループ特徴値は、当該グループIDに係るグループ(カテゴリ)の、当該クラスタIDに係るクラスタに対する特徴値(寄与度)である。なお、グループ特徴テーブル56の各フィールドに付与されているk、r、c
krは、グループ特徴行列Cにおける行、列、成分のそれぞれの識別子である。すなわち、グループ特徴テーブル56は、グループ特徴行列Cと等価である。
【0065】
図19は、係数特徴テーブルの構成例を示す図である。
図19において、係数特徴テーブル57は、グループIDフィールド及び係数値フィールドを有する。
【0066】
グループIDフィールドにはグループIDが記憶される。係数値フィールドにはグループIDに係るグループの係数値が記憶される。なお、係数特徴テーブル57の各フィールドに付与されているk、d
kkは、係数特徴行列Dにおける行及び列(k)、対角成分(d
kk)のそれぞれの識別子である。すなわち、係数特徴テーブル57は、係数特徴行列Dと等価である。
【0067】
続いて、特徴行列出力部15は、ユーザ特徴テーブル54、商品特徴テーブル55、グループ特徴テーブル56、及び係数特徴テーブル57の内容を出力する(S500)。ステップS500は、上記の各ステップと同期的に実行されてもよいし、上記の各ステップとは非同期に実行されてもよい。例えば、入力装置107等を介して、システム管理者等によって出力指示が入力された際に、ステップS500が実行されてもよい。出力形態は、表示装置106への表示であってもよいし、プリンタへの出力(印刷)であってもよい。又は、ネットワークを介して、所定の装置へ転送することであってもよい。
【0068】
出力対象は、ユーザ特徴テーブル54、商品特徴テーブル55、グループ特徴テーブル56、係数特徴テーブル57の全ての行であってもよいし、出力指示において指定された範囲に限定されてもよい。例えば、出力対象を示す情報として、「商品特徴」及びクラスタIDが指定された場合は、商品特徴テーブル55において当該クラスタIDを含む行の商品IDフィールドの値、商品特徴値フィールドの値が出力されてもよい。更に、商品特徴値フィールドの値の降順にN件(例えば、10件)の商品IDが特定されることで、クラスタを特徴付ける商品が分かりやすく出力されてもよい。
【0069】
続いて、
図12のステップS400の詳細について説明する。
図20は、特徴行列の推定処理の処理手順の一例を説明するためのフローチャートである。以下の説明において、Iは、全ユーザ数、Jは、全商品数、Kは、全グループ数を表す。また、iは、ユーザを特定する識別子(ユーザID)、jは、商品を特定する識別子(商品ID)、kは、グループを特定する識別子(グループID)、rは、クラスタを特定する識別子(クラスタID)に対応する。
【0070】
また、ユーザ購買情報テーブル51中に存在する全データ、グループ購買情報テーブル52中に存在する全データ、ユーザグループ対応情報テーブル53に存在する全データのそれぞれを、順番に、以下の数4、数5、数6として記す。
【0073】
【数6】
更に、ユーザ特徴行列A、商品特徴行列B、グループ特徴行列C、係数特徴行列Dのそれぞれを、順番に、以下の数7、数8、数9、数10として記す。
【0077】
【数10】
ユーザ特徴行列Aが、ユーザとクラスタとの関係を表し、商品特徴行列Bが、商品とクラスタとの関係を表し、グループ特徴行列Cが、グループとクラスタとの関係を表し、係数特徴行列Dが、グループの部分統計と全体統計間との比例定数を表す。数10に示される係数特徴行列Dは、対角成分以外は0となるK行K列の行列であるためにK個の要素だけを用いて表現することができる。
【0078】
ステップS410において、特徴行列推定部14は、ユーザ特徴行列A、商品特徴行列B、グループ特徴行列C、及び係数特徴行列Dのそれぞれの成分の値(ユーザ特徴値、商品特徴値、グループ特徴値、係数値)を初期化する。これらの値は、例えば、乱数を用いてランダムに生成されてもよい。但し、各値は、0以上である。特徴行列推定部14は、また、終了条件の閾値ε及び最大繰り返し回数を設定する。閾値εには、例えば、0.01が設定されてもよいし、他の値が設定されてもよい。最大繰り返し回数には、例えば、50又は100等が設定されてもよいし、他の値が設定されてもよい。
【0079】
続いて、特徴行列推定部14は、終了条件に用いる変数として、特徴更新の最大変化幅を示す変数δを、0に初期化する(S420)。
【0080】
続いて、特徴行列推定部14は、以下の数11に示される更新式に基づいて、ユーザ特徴行列Aを更新する(S430)。
【0081】
【数11】
また、特徴行列推定部14は、ユーザ特徴行列Aの各成分について、更新前の値と更新後の値との差の絶対値を算出し、算出された絶対値の中の最大値がδより大きければ、当該最大値によってδを更新する。なお、当該最大値は、以下の数12によって示される。また、当該最大値によるδの更新は、以下の数13によって示される。
【0083】
【数13】
数13において、記号「←」は、右辺の計算結果を左辺の変数に代入する処理を意味する。
【0084】
続いて、特徴行列推定部14は、以下の数14に示される更新式に基づいて、商品特徴行列Bを更新する(S440)。
【0085】
【数14】
また、特徴行列推定部14は、商品特徴行列Bの各成分について、更新前の値と更新後の値との差の絶対値を算出し、算出された絶対値の中の最大値がδより大きければ、当該最大値によってδを更新する。なお、当該最大値は、以下の数15によって示される。また、当該最大値によるδの更新は、以下の数16によって示される。
【0087】
【数16】
続いて、特徴行列推定部14は、以下の数17に示される更新式に基づいて、グループ特徴行列Cを更新する(S450)。
【0088】
【数17】
また、特徴行列推定部14は、グループ特徴行列Cの各成分について、更新前の値と更新後の値との差の絶対値を算出し、算出された絶対値の中の最大値がδより大きければ、当該最大値によってδを更新する。なお、当該最大値は、以下の数18によって示される。また、当該最大値によるδの更新は、以下の数19によって示される。
【0090】
【数19】
続いて、特徴行列推定部14は、以下の数20に示される更新式に基づいて、係数特徴行列Dを更新する(S460)。
【0091】
【数20】
また、特徴行列推定部14は、係数特徴行列Dの各成分について、更新前の値と更新後の値との差の絶対値を算出し、算出された絶対値の中の最大値がδより大きければ、当該最大値によってδを更新する。なお、当該最大値は、以下の数21によって示される。また、当該最大値によるδの更新は、以下の数22によって示される。
【0093】
【数22】
続いて、特徴行列推定部14は、ステップS420〜S460に関する繰り返し回数に1を加算する(S470)。繰り返し回数の初期値は、0である。したがって、ステップS420〜S460が初めて実行された場合、繰り返し回数は1に更新される。
【0094】
続いて、特徴行列推定部14は、繰り返し回数が最大繰り返し回数を超えるか否か、又は変数δの値が閾値ε未満であるか否かを判定する(S480)。繰り返し回数が最大繰り返し回数以下であり、かつ、変数δの値が、閾値ε以上である場合(S480でNo)、特徴行列推定部14は、ステップS420以降を繰り返す。繰り返し回数が最大繰り返し回数を超える場合、又は変数δの値が閾値ε未満である場合(S480でYes)、
図20の処理は終了する。
【0095】
なお、数11、数14、数17、及び数20より明らかなように、ユーザ特徴値、商品特徴値、グループ特徴値、及び係数特徴値は、相互に依存関係を有する。すなわち、いずれかの特徴値が変化すると、他の特徴値も変化する。そこで、
図20では、各特徴値を繰り返し更新しながら、各特徴値の近似値が探索される。
【0096】
また、数11、数14、数17、及び数20は、全てのユーザi、全ての商品j、全てのグループ(カテゴリ)kについて、
【0097】
【数23】
が成立する時に、左辺と右辺とが一致し、更新の最大変化幅を示す変数δの値が閾値ε以下となるため、各特徴行列の更新が停止する。また、あるユーザiに関して、全てのj、及び全てのkについて、
【0098】
【数24】
である時に、数11の更新式に基づいてユーザ特徴行列Aの更新が行われると、
右辺の分子が右辺の分母より大きくなるため、a
irが更新前の値よりも大きくなるように更新されることになる。すなわち、
【0099】
【数25】
の値が大きくなるように、a
irが更新されることになる。
【0100】
上述したように、本実施の形態によれば、ユーザIDに紐付くデータ及びユーザIDに紐付かないデータの双方を利用して、データ全体の傾向(部分統計と全体統計の関係性)を考慮したクラスタ抽出を行うことができる。
【0101】
なお、本実施の形態では、ユーザ購買行列Xとグループ購買行列Yとからクラスタが抽出される例が示されているが、本実施の形態を適用可能な範囲は、この例に限定されない。例えば、ユーザとユーザによる訪問地の訪問数とを表現する行列と、訪問地におけるグループ毎の訪問数を表現する行列との組等、訪問地、ユーザ、及びグループ(カテゴリ)のように1つ1つにID番号(識別情報)を付与して識別可能であり、行列形式としてデータを表現することが可能な事物であり、かつ、ユーザとその所属グループのように対応関係性が存在するものならば、他の事物に関して本実施の形態が適用されてもよい。
【0102】
また、識別情報に紐付くデータ又は識別情報に紐付かないデータは、出現数や購入回数のように整数である必要もなく、基本的に0以上の実数であればよい。入力となる行列が3つ以上存在する場合にも、本実施の形態は適用可能である。
【0103】
なお、本実施の形態において、クラスタ抽出装置10は、分析装置の一例である。ユーザIDに紐付くユーザ(購買者)は、第1の個体の一例である。ユーザIDに紐付かないユーザ(購買者)は、第2の個体の一例である。グループは、第3の個体の一例である。ユーザ購買情報テーブル51は、第1の記憶部の一例である。グループ購買情報テーブル52は、第2の記憶部の一例である。特徴行列推定部14は、分解部の一例である。商品の購買は、事象の一例である。性別、年代等は、複数の特徴の一例である。非負値行列分解は、因子分解及び非負値分解の一例である。ユーザ特徴行列A及び商品特徴行列Bは、第1のパラメータの一例である。グループ特徴行列C及び係数特徴行列Dは、第2のパラメータの一例である。
【0104】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。