(57)【特許請求の範囲】
【請求項１】
個々を識別可能な第１の個体群に含まれる個体ｉ（１≦ｉ≦Ｉ，Ｉは１以上の整数）とオブジェクトｊ（１≦ｊ≦Ｊ，Ｊは１以上の整数）との関連度を表した要素ｘｉｊを持つＩ×Ｊの個体オブジェクト行列Ｘ、及び個々を識別不能な第２の個体群についての、個体の属性ｋ（１≦ｋ≦Ｋ，Ｋは１以上の整数）と前記オブジェクトｊとの関連度を表した要素ｙｋｊを持つＫ×Ｊの属性オブジェクト行列Ｙを、
前記個体ｉが、クラスタｒ（１≦ｒ≦Ｒ，Ｒは１以上の整数）に所属することを表す非負値の要素ａｉｒを持つＩ×Ｒの第１の特徴行列Ａと、前記オブジェクトｊが、前記クラスタｒに所属することを表す非負値の要素ｂｊｒを持つＪ×Ｒの第２の特徴行列Ｂと、前記属性ｋが、前記クラスタｒに所属することを表す非負値の要素ｃｋｒを持つＫ×Ｒの第３の特徴行列Ｃと、に分解するデータ解析装置であって、
前記第１の個体群に含まれる前記個体ｉと前記属性ｋとの関連度を表した要素ｖｉｋを持つＩ×Ｋの個体属性行列Ｖと、前記第２の個体群についての前記属性ｋを有する個体数を表す要素ｗｋを持つＫ次元の属性ベクトルＷとに基づいて、前記第２の個体群についての前記属性ｋを有する個体の数と前記第１の個体群についての前記属性ｋを有する個体の数との比率を表す要素ｐｋｋを持つ属性比率行列Ｐを計算する属性比率情報計算部と、
前記個体オブジェクト行列Ｘ、前記属性オブジェクト行列Ｙ、前記第１の特徴行列Ａ、前記第２の特徴行列Ｂ、及び前記第３の特徴行列Ｃに基づいて、前記第３の特徴行列Ｃが、前記属性比率行列Ｐと前記個体属性行列Ｖと前記第１の特徴行列Ａとで表わされる線形制約の下で、前記第１の特徴行列Ａ、前記第２の特徴行列Ｂ、及び前記第３の特徴行列Ｃを推定する特徴行列推定部と、
予め定められた反復終了条件を満足するまで、前記特徴行列推定部による推定を繰り返す反復判定部と、
を含むデータ解析装置。
【請求項２】
前記個体オブジェクト行列Ｘの要素ｘｉｊは非負値であり、前記属性オブジェクト行列Ｙの要素ｙｋｊは非負値であり、前記第１の特徴行列Ａの要素ａｉｒは非負値であり、前記第２の特徴行列Ｂの要素ｂｊｒは非負値であり、前記第３の特徴行列Ｃの要素ｃｋｒは非負値であり、
前記特徴行列推定部は、非負値分解により、前記第１の特徴行列Ａ、前記第２の特徴行列Ｂ、及び前記第３の特徴行列Ｃを推定する請求項１記載のデータ解析装置。
【請求項３】
個々を識別可能な第１のユーザ群に含まれるユーザｉ（１≦ｉ≦Ｉ，Ｉは１以上の整数）による商品ｊ（１≦ｊ≦Ｊ，Ｊは１以上の整数）の購買数を表した要素ｘｉｊを持つＩ×Ｊのユーザ商品行列Ｘ、及び個々を識別不能な第２のユーザ群についての、ユーザの属性ｋ（１≦ｋ≦Ｋ，Ｋは１以上の整数）を有するユーザによる前記商品ｊの購買数を表した要素Ｙｋｊを持つＫ×Ｊの属性商品行列Ｙを、
前記ユーザｉが、クラスタｒ（１≦ｒ≦Ｒ，Ｒは１以上の整数）に所属することを表す非負値の要素ａｉｒを持つＩ×Ｒのユーザ特徴行列Ａと、前記商品ｊが、前記クラスタｒに所属することを表す非負値の要素ｂｊｒを持つＪ×Ｒの商品特徴行列Ｂと、前記属性ｋが、前記クラスタｒに所属することを表す非負値の要素ｃｋｒを持つＫ×Ｒの属性特徴行列Ｃと、に分解するデータ解析装置であって、
前記第１のユーザ群に含まれる前記ユーザｉと前記属性ｋとの関連度を表した要素ｖｉｋを持つＩ×Ｋのユーザ属性行列Ｖと、前記第２のユーザ群についての前記属性ｋを有するユーザ数を表す要素ｗｋを持つＫ次元の属性人数ベクトルＷとに基づいて、前記第２のユーザ群についての前記属性ｋを有するユーザ数と前記第１のユーザ群についての前記属性ｋを有するユーザ数との比率を表す要素ｐｋｋを持つ属性比率行列Ｐを計算する属性比率情報計算部と、
前記ユーザ商品行列Ｘ、前記属性商品行列Ｙ、前記ユーザ特徴行列Ａ、前記商品特徴行列Ｂ、及び前記属性特徴行列Ｃに基づいて、前記属性特徴行列Ｃが、前記属性比率行列Ｐと前記ユーザ属性行列Ｖと前記ユーザ特徴行列Ａとで表わされる線形制約の下で、前記ユーザ特徴行列Ａ、前記商品特徴行列Ｂ、及び前記属性特徴行列Ｃを推定する特徴行列推定部と、
予め定められた反復終了条件を満足するまで、前記特徴行列推定部による推定を繰り返す反復判定部と、
を含むデータ解析装置。
【請求項４】
個々を識別可能な第１の個体群に含まれる個体ｉ（１≦ｉ≦Ｉ，Ｉは１以上の整数）とオブジェクトｊ（１≦ｊ≦Ｊ，Ｊは１以上の整数）との関連度を表した要素ｘｉｊを持つＩ×Ｊの個体オブジェクト行列Ｘ、及び個々を識別不能な第２の個体群についての、個体の属性ｋ（１≦ｋ≦Ｋ，Ｋは１以上の整数）と前記オブジェクトｊとの関連度を表した要素Ｙｋｊを持つＫ×Ｊの属性オブジェクト行列Ｙを、
前記個体ｉが、クラスタｒ（１≦ｒ≦Ｒ，Ｒは１以上の整数）に所属することを表す非負値の要素ａｉｒを持つＩ×Ｒの第１の特徴行列Ａと、前記オブジェクトｊが、前記クラスタｒに所属することを表す非負値の要素ｂｊｒを持つＪ×Ｒの第２の特徴行列Ｂと、前記属性ｋが、前記クラスタｒに所属することを表す非負値の要素ｃｋｒを持つＫ×Ｒの第３の特徴行列Ｃと、に分解するデータ解析装置におけるデータ解析方法であって、
属性比率情報計算部が、前記第１の個体群に含まれる前記個体ｉと前記属性ｋとの関連度を表した要素ｖｉｋを持つＩ×Ｋの個体属性行列Ｖと、前記第２の個体群についての前記属性ｋを有する個体数を表す要素ｗｋを持つＫ次元の属性ベクトルＷとに基づいて、前記第２の個体群についての前記属性ｋを有する個体の数と前記第１の個体群についての前記属性ｋを有する個体の数との比率を表す要素ｐｋｋを持つ属性比率行列Ｐを計算するステップと、
特徴行列推定部が、前記個体オブジェクト行列Ｘ、前記属性オブジェクト行列Ｙ、前記第１の特徴行列Ａ、前記第２の特徴行列Ｂ、及び前記第３の特徴行列Ｃに基づいて、前記第３の特徴行列Ｃが、前記属性比率行列Ｐと前記個体属性行列Ｖと前記第１の特徴行列Ａとで表わされる線形制約の下で、前記第１の特徴行列Ａ、前記第２の特徴行列Ｂ、及び前記第３の特徴行列Ｃを推定するステップと、
反復判定部が、予め定められた反復終了条件を満足するまで、前記特徴行列推定部による推定を繰り返すステップと、
を含むデータ解析方法。
【請求項５】
コンピュータを、請求項１〜請求項３のいずれか１項に記載のデータ解析装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ解析装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
ＰＯＳ（Point of Sales）データに代表される購買履歴などの構造化されたデータのみならず、テキストデータや画像データなどの構造化されていないデータの多くは前処理によって行列形式により表現できることが知られている。これら行列表現されたデータ中に存在するクラスタを発見するための手法として、非負値行列分解（Non-negative Matrix Factorization, NMF）と呼ばれる手法の有用性がこれまで示されている(例えば非特許文献１を参照)。
【０００３】
ＮＭＦの適用により入力となる行列データはそれより低次のランクの行列の積に分解される。この各低次行列がそれぞれ各行、各列に対応する事物のクラスタへの寄与度を表しており、クラスタ発見が可能となる。したがって例えば購買履歴データに対し適用することで抽出されたクラスタをもとにユーザへのおすすめ商品リストを作成したり、ニュース記事文書集合に対する適用結果から記事の自動分類が可能となる。
【０００４】
ＮＭＦの購買データへの適用例を図１５に示す。購買データを表すユーザ商品行列Ｘ＝{ｘｉｊ}は行列中の第ｉ行目に対応するユーザが第ｊ列目に対応する商品の購入数がｘｉｊの値となるｉ行ｊ列の行列である。
【０００５】
このユーザ商品行列にＮＭＦを適用することで、
【０００６】
【数１】
0006278918.tif 000002
【０００７】
となるＩ行Ｒ列のユーザ特徴行列Ａ＝｛ａｉｒ｝とＪ行Ｒ列の商品特徴行列Ｂ＝｛ｂｊｒ｝が求まる。
【０００８】
ただし、記号
【０００９】
【数２】
0006278918.tif 000003
【００１０】
は、両者が類似していること、記号の上付きの記号Ｔは行列の転置を表す。また、ａｉｒの値がユーザｉのクラスタｒへの寄与度（所属度合い）、ｂｊｒの値が商品ｊのクラスタｒへの寄与度を表す。
【００１１】
図１５のユーザ特徴行列Ａのクラスタ１に対応する列に着目すると、ユーザ１、ユーザ２、及びユーザ３に対応する１行目、２行目、及び３行目の値が０より大きい値となっていることが分かる。これはユーザ１、ユーザ２、及びユーザ３がクラスタ１に所属することを示している。また、商品特徴行列Ｂのクラスタ１に対応する行に着目すると、１列目のビール１、２列目のビール２、及び３列目のビール３という商品に該当する列の値が０より大きい値となっていることが分かる。これはビール１、ビール２、及びビール３という３つの単語が同じユーザに購入されやすいというクラスタ１のもつ特徴を表しているといえる。したがって、このビール１、ビール２、及びビール３という商品をまとめてクラスタ１の商品特徴と呼ぶ。同様に、クラスタ１に所属するユーザのことをクラスタ１のユーザ特徴と呼ぶ。クラスタ１の商品特徴とユーザ特徴をまとめてクラスタ１の特徴と呼ぶこととする。このようにＮＭＦの適用によって得られたユーザ特徴行列Ａと商品特徴行列Ｂをもとに図１６のようなクラスタ抽出が可能となる。なお、クラスタの総数に相当する商品特徴行列のランク数は、解析する前に予め決定しておくものとする。
【先行技術文献】
【非特許文献】
【００１２】
【非特許文献１】澤田宏, “非負値行列因子分解NMFの基礎とデータ／信号解析への応用”, 電子情報通信学会誌, Vol. 95, No. 9, pp. 829-833, 2012.
【非特許文献２】K. Takeuchi, K. Ishiguro, A. Kimura, and H. Sawada, Non-negative Multiple Matrix Factorization, Proceedings of 23rd International Joint Conference on Artificial Intelligence (IJCAI2013), pp. 1713-1720, 2013
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、上記の非特許文献１の技術が入力として利用する購買データは、“誰が”どの商品を購入したかを表す、ユーザＩＤに紐付けられた購買履歴のみを扱うことを想定しており、ユーザＩＤに紐付けられない購買履歴を合わせた解析を行うことは想定されてはいない。
【００１４】
近年のデータ解析においては、 ユーザＩＤに紐付くデータ及び紐付かないデータの両方が存在する状況が多数存在している。以下に２つの例を挙げる。
【００１５】
１つ目の例は、個人を特定できる形式でのデータ利用期間に制限が存在するという状況である。これは個人情報保護等の観点から、不必要に長い期間個人が特定できるデータが存在することを避けるための制限である。 図１７にデータの例を示す。ここで挙げている例は、2013.4.1〜2013.9.30までのデータに関しては、利用期間が過ぎたことで個人を特定するユーザＩＤが除去され利用できず、ユーザＩＤに紐付かないデータとなっており、2013.10.1以降のデータに関しては、個人を特定するユーザＩＤを含めた全カラムが利用できる、ユーザＩＤに紐付くデータとなっている。したがって、例えば2013.4.1〜2013.9.30の期間に関しては、男性又は女性ユーザ全体での各商品の購入数といった属性毎の統計情報のみが利用できることになる。
【００１６】
２つ目の例は、企業間でデータを匿名化させたうえでデータ共有を行うという例である。図１８にデータの例を示す。自社とデータホルダ１、及びデータホルダ２は各自がもつユーザＩＤが紐付くデータを共通データ基盤上にデータを格納している。自社は共通データ基盤から、データホルダ１、及びデータホルダ２のデータそのものを取りだすことはできないが、全社のデータを使って計算される、ユーザＩＤとは紐付かないデータ、例えば世代別の統計情報を利用することができる。従って自社の利用可能なデータは、自分自身が当初から持つユーザＩＤに紐付くデータと、共通データ基盤から取り出せるユーザＩＤとは紐付かない統計情報ということになる。
【００１７】
このようなユーザＩＤに紐付くデータ及び紐付かない購買データの両方が存在している場合であっても、非特許文献１の方法はユーザＩＤに紐付かない購買データを合わせた解析を行うことができないために、これを利用せず解析を行うことになる。
【００１８】
しかし、上記のアプローチは、ユーザＩＤに紐付くデータの割合がデータの総数に対して小さくなる時に問題がある。なぜなら、例えば両方のデータを用いた時にもっとも購買数の多い商品と、ユーザＩＤに紐付くデータのみを用いた時にもっとも購買数の多い商品が異なる等の状況があった場合に、データ全体の傾向をつかむことができなくなるためである。
【００１９】
本発明は、上記問題点を解決するために成されたものであり、個々を識別不能な個体群の特徴を含めて、全体の個体群の特徴を解析できるデータ解析装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
上記目的を達成するために、第１の発明に係るデータ解析装置は、個々を識別可能な第１の個体群に含まれる個体ｉ（１≦ｉ≦Ｉ，Ｉは１以上の整数）とオブジェクトｊ（１≦ｊ≦Ｊ，Ｊは１以上の整数）との関連度を表した要素ｘｉｊを持つＩ×Ｊの個体オブジェクト行列Ｘ、及び個々を識別不能な第２の個体群についての、個体の属性ｋ（１≦ｋ≦Ｋ，Ｋは１以上の整数）と前記オブジェクトｊとの関連度を表した要素ｙｋｊを持つＫ×Ｊの属性オブジェクト行列Ｙを、前記個体ｉが、クラスタｒ（１≦ｒ≦Ｒ，Ｒは１以上の整数）に所属することを表す非負値の要素ａｉｒを持つＩ×Ｒの第１の特徴行列Ａと、前記オブジェクトｊが、前記クラスタｒに所属することを表す非負値の要素ｂｊｒを持つＪ×Ｒの第２の特徴行列Ｂと、前記属性ｋが、前記クラスタｒに所属することを表す非負値の要素ｃｋｒを持つＫ×Ｒの第３の特徴行列Ｃと、に分解するデータ解析装置であって、前記第１の個体群に含まれる前記個体ｉと前記属性ｋとの関連度を表した要素ｖｉｋを持つＩ×Ｋの個体属性行列Ｖと、前記第２の個体群についての前記属性ｋを有する個体数を表す要素ｗｋを持つＫ次元の属性ベクトルＷとに基づいて、前記第２の個体群についての前記属性ｋを有する個体の数と前記第１の個体群についての前記属性ｋを有する個体の数との比率を表す要素ｐｋｋを持つ属性比率行列Ｐを計算する属性比率情報計算部と、前記個体オブジェクト行列Ｘ、前記属性オブジェクト行列Ｙ、前記第１の特徴行列Ａ、前記第２の特徴行列Ｂ、及び前記第３の特徴行列Ｃに基づいて、前記第３の特徴行列Ｃが、前記属性比率行列Ｐと前記個体属性行列Ｖと前記第１の特徴行列Ａとで表わされる線形制約の下で、前記第１の特徴行列Ａ、前記第２の特徴行列Ｂ、及び前記第３の特徴行列Ｃを推定する特徴行列推定部と、予め定められた反復終了条件を満足するまで、前記特徴行列推定部による推定を繰り返す反復判定部と、を含んで構成されている。
【００２１】
また、第１の発明に係るデータ解析装置において、前記個体オブジェクト行列Ｘの要素ｘｉｊは非負値であり、前記属性オブジェクト行列Ｙの要素ｙｋｊは非負値であり、前記第１の特徴行列Ａの要素ａｉｒは非負値であり、前記第２の特徴行列Ｂの要素ｂｊｒは非負値であり、前記第３の特徴行列Ｃの要素ｃｋｒは非負値であり、前記特徴行列推定部は、非負値分解により、前記第１の特徴行列Ａ、前記第２の特徴行列Ｂ、及び前記第３の特徴行列Ｃを推定するようにしてもよい。
【００２２】
第２の発明に係るデータ解析装置は、個々を識別可能な第１のユーザ群に含まれるユーザｉ（１≦ｉ≦Ｉ，Ｉは１以上の整数）による商品ｊ（１≦ｊ≦Ｊ，Ｊは１以上の整数）の購買数を表した要素ｘｉｊを持つＩ×Ｊのユーザ商品行列Ｘ、及び個々を識別不能な第２のユーザ群についての、ユーザの属性ｋ（１≦ｋ≦Ｋ，Ｋは１以上の整数）を有するユーザによる前記商品ｊの購買数を表した要素Ｙｋｊを持つＫ×Ｊの属性商品行列Ｙを、前記ユーザｉが、クラスタｒ（１≦ｒ≦Ｒ，Ｒは１以上の整数）に所属することを表す非負値の要素ａｉｒを持つＩ×Ｒのユーザ特徴行列Ａと、前記商品ｊが、前記クラスタｒに所属することを表す非負値の要素ｂｊｒを持つＪ×Ｒの商品特徴行列Ｂと、前記属性ｋが、前記クラスタｒに所属することを表す非負値の要素ｃｋｒを持つＫ×Ｒの属性特徴行列Ｃと、に分解するデータ解析装置であって、前記第１のユーザ群に含まれる前記ユーザｉと前記属性ｋとの関連度を表した要素ｖｉｋを持つＩ×Ｋのユーザ属性行列Ｖと、前記第２のユーザ群についての前記属性ｋを有するユーザ数を表す要素ｗｋを持つＫ次元の属性人数ベクトルＷとに基づいて、前記第２のユーザ群についての前記属性ｋを有するユーザ数と前記第１のユーザ群についての前記属性ｋを有するユーザ数との比率を表す要素ｐｋｋを持つ属性比率行列Ｐを計算する属性比率情報計算部と、前記ユーザ商品行列Ｘ、前記属性商品行列Ｙ、前記ユーザ特徴行列Ａ、前記商品特徴行列Ｂ、及び前記属性特徴行列Ｃに基づいて、前記属性特徴行列Ｃが、前記属性比率行列Ｐと前記ユーザ属性行列Ｖと前記ユーザ特徴行列Ａとで表わされる線形制約の下で、前記ユーザ特徴行列Ａ、前記商品特徴行列Ｂ、及び前記属性特徴行列Ｃを推定する特徴行列推定部と、予め定められた反復終了条件を満足するまで、前記特徴行列推定部による推定を繰り返す反復判定部と、を含んで構成されている。
【００２３】
第３の発明に係るデータ解析方法は、個々を識別可能な第１の個体群に含まれる個体ｉ（１≦ｉ≦Ｉ，Ｉは１以上の整数）とオブジェクトｊ（１≦ｊ≦Ｊ，Ｊは１以上の整数）との関連度を表した要素ｘｉｊを持つＩ×Ｊの個体オブジェクト行列Ｘ、及び個々を識別不能な第２の個体群についての、個体の属性ｋ（１≦ｋ≦Ｋ，Ｋは１以上の整数）と前記オブジェクトｊとの関連度を表した要素Ｙｋｊを持つＫ×Ｊの属性オブジェクト行列Ｙを、前記個体ｉが、クラスタｒ（１≦ｒ≦Ｒ，Ｒは１以上の整数）に所属することを表す非負値の要素ａｉｒを持つＩ×Ｒの第１の特徴行列Ａと、前記オブジェクトｊが、前記クラスタｒに所属することを表す非負値の要素ｂｊｒを持つＪ×Ｒの第２の特徴行列Ｂと、前記属性ｋが、前記クラスタｒに所属することを表す非負値の要素ｃｋｒを持つＫ×Ｒの第３の特徴行列Ｃと、に分解するデータ解析装置におけるデータ解析方法であって、属性比率情報計算部が、前記第１の個体群に含まれる前記個体ｉと前記属性ｋとの関連度を表した要素ｖｉｋを持つＩ×Ｋの個体属性行列Ｖと、前記第２の個体群についての前記属性ｋを有する個体数を表す要素ｗｋを持つＫ次元の属性ベクトルＷとに基づいて、前記第２の個体群についての前記属性ｋを有する個体の数と前記第１の個体群についての前記属性ｋを有する個体の数との比率を表す要素ｐｋｋを持つ属性比率行列Ｐを計算するステップと、特徴行列推定部が、前記個体オブジェクト行列Ｘ、前記属性オブジェクト行列Ｙ、前記第１の特徴行列Ａ、前記第２の特徴行列Ｂ、及び前記第３の特徴行列Ｃに基づいて、前記第３の特徴行列Ｃが、前記属性比率行列Ｐと前記個体属性行列Ｖと前記第１の特徴行列Ａとで表わされる線形制約の下で、前記第１の特徴行列Ａ、前記第２の特徴行列Ｂ、及び前記第３の特徴行列Ｃを推定するステップと、反復判定部が、予め定められた反復終了条件を満足するまで、前記特徴行列推定部による推定を繰り返すステップと、を含んで実行することを特徴とする。
【００２４】
第４の発明に係るプログラムは、コンピュータを、上記に記載のデータ解析装置の各部として機能させるためのプログラムである。
【００２５】
第１の発明及び第３の発明によれば、個体属性行列Ｖと、属性ベクトルＷとに基づいて、比率を表す要素ｐｋｋを持つ属性比率行列Ｐを計算し、個体オブジェクト行列Ｘ、属性オブジェクト行列Ｙ、第１の特徴行列Ａ、第２の特徴行列Ｂ、及び第３の特徴行列Ｃに基づいて、第３の特徴行列Ｃが、属性比率行列Ｐと個体属性行列Ｖと第１の特徴行列Ａとで表わされる線形制約の下で、第１の特徴行列Ａ、第２の特徴行列Ｂ、及び第３の特徴行列Ｃを推定することにより、個々を識別不能な個体群の特徴を含めて、全体の個体群の特徴を解析できる。
【００２６】
第２の発明によれば、ユーザ属性行列Ｖと、属性人数ベクトルＷとに基づいて、比率を表す要素ｐｋｋを持つ属性比率行列Ｐを計算し、ユーザ商品行列Ｘ、属性商品行列Ｙ、ユーザ特徴行列Ａ、商品特徴行列Ｂ、及び属性特徴行列Ｃに基づいて、属性特徴行列Ｃが、属性比率行列Ｐとユーザ属性行列Ｖとユーザ特徴行列Ａとで表わされる線形制約の下で、ユーザ特徴行列Ａ、商品特徴行列Ｂ、及び属性特徴行列Ｃを推定することにより、個々を識別不能なユーザ群の特徴を含めて、全体のユーザ群の特徴を解析できる。
【発明の効果】
【００２７】
本発明のデータ解析装置、方法、及びプログラムによれば、個々を識別不能な個体群の特徴を含めて、全体の個体群の特徴を解析できる、という効果が得られる。
【図面の簡単な説明】
【００２８】
【図１】自社のデータと他社のデータとから利用できるデータ及びデータから得られる行列の一例を示す概念図である。
【図２】ユーザ商品行列Ｘを利用した解析の一例を示す概念図である。
【図３】ユーザ商品行列Ｘと属性商品行列Ｙに成り立つ関係性を考慮した行列分解の一例を示す概念図である。
【図４】ユーザ商品行列Ｘ及び属性商品行列Ｙと、ユーザ特徴行列Ａ、商品特徴行列Ｂ、及び属性特徴行列Ｃとの関係性の一例を示す概念図である。
【図５】本発明の実施の形態に係るデータ解析装置の構成を示すブロック図である。
【図６】記憶部２に格納されたユーザ商品情報テーブルの一例を示す概念図である。
【図７】記憶部２に格納された属性商品情報テーブルの一例を示す概念図である。
【図８】記憶部２に格納されたユーザ属性情報テーブルの一例を示す概念図である。
【図９】記憶部２に格納された属性人数情報テーブルの一例を示す概念図である。
【図１０】記憶部２に格納された属性比率情報テーブルの一例を示す概念図である。
【図１１】記憶部２に格納されたユーザ特徴テーブルの一例を示す概念図である。
【図１２】記憶部２に格納された商品特徴テーブルの一例を示す概念図である。
【図１３】記憶部２に格納された属性特徴テーブルの一例を示す概念図である。
【図１４】本発明の実施の形態に係るデータ解析装置における特徴行列推定処理ルーチンを示すフローチャートである。
【図１５】ユーザ商品行列、ユーザ特徴行列、及び商品特徴行列の一例を示す概念図である。
【図１６】クラスタ抽出の一例を示す概念図となる。
【図１７】一定期間以降はユーザ毎の統計情報は利用できず、属性毎の統計情報が利用可能である一例を示す概念図である
【図１８】企業間のデータ共有の一例を示す概念図である。
【発明を実施するための形態】
【００２９】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００３０】
＜本発明の実施の形態に係る概要＞
【００３１】
まず、本発明の実施の形態における概要を説明する。
【００３２】
本発明の実施の形態では、ユーザＩＤに紐付く購買履歴から作成されるＩ×Ｊのユーザ商品行列Ｘ、ユーザＩＤに紐付かない購買履歴を用いて作成されるＫ×Ｊの属性商品行列Ｙ＝｛ｙｋｊ｝、この属性商品行列Ｙ中に存在する属性毎のユーザ数を表すＫ次元属性人数ベクトルＷ＝｛ｗｋ｝、Ｘ中に存在するユーザとその属性の対応関係を表すＩ×Ｋのユーザ属性行列Ｖ＝｛ｖｉｋ｝、という３つの行列と１つのベクトルからクラスタ抽出を行う技術を用いる。ここで、ユーザ商品行列Ｘは、ユーザＩＤを付与された個々の識別可能な第１のユーザ群に含まれるユーザｉ（１≦ｉ≦Ｉ，Ｉは１以上の整数）による商品ｊ（１≦ｊ≦Ｊ，Ｊは１以上の整数）との購買数を表した要素ｘｉｊを持つＩ×Ｊの行列である。また、属性商品行列Ｙは、個々を識別不能な第２のユーザ群についての、ユーザの属性ｋ（１≦ｋ≦Ｋ，Ｋは１以上の整数）を有するユーザによる商品ｊとの購買数を表した要素ｙｋｊを持つＫ×Ｊの行列である。また、ユーザ属性行列Ｖは、第１のユーザ群に含まれるユーザｉと属性ｋとの関連度を表した要素ｖｉｋを持つＩ×Ｋの行列である。なお、属性商品行列Ｙは要素ｙｋｊが属性ｋ（例えば男性３０代全体）の商品ｊの総購入数を表す行列である。ユーザ属性行列Ｖの要素ｖｉｋはユーザｉが属性ｋに属する時１、そうでなければ０をとる行列である。また、ｖｉｋの値は０または１に限られず、０又は正の整数値であればよい。ただし、負の数は用いない。
【００３３】
上記のデータの作成の例を図１に示す。前述したように、上記非特許文献１の方法ではユーザＩＤに紐付かない購買データを合わせた解析を行うことができないため、図２に示すようにユーザ商品行列Ｘだけを利用した解析を行うことになる。
【００３４】
これに対して本発明の実施の形態では上記の全ての利用可能なデータを用いて、図３に示すような、ユーザ商品行列Ｘと属性商品行列Ｙに成り立つ関係性を考慮した行列分解手法である。図３では、まずユーザ商品行列Ｘ中に存在する各属性毎のユーザ数と属性商品行列Ｙ中の属性毎のユーザ数の比率行列を属性比率行列Ｐ＝｛ｐｋｋ｝ｋ＝１Ｋで定義する。行列Ｐの値は図中に示すようにユーザ属性行列Ｖと属性人数ベクトルＷの値を用いて計算され、対角成分以外の値は０の値となる行列である。また、ユーザ商品行列Ｘとユーザ属性行列Ｖから計算される男性、又は女性といった属性別の統計値を部分統計値、行列Ｙが示す属性別の統計値を全体統計値と呼ぶ。以後、説明する本実施の形態で考える行列分解モデルでは、部分統計値と全体統計値の間はその比例定数が属性比率行列Ｐとなる“おおよそ”の比例関係にあるとしたモデル化を行う。ここで述べた“おおよそ”の意味については後述する。
【００３５】
本発明の実施の形態では、ユーザ商品行列Ｘと属性商品行列Ｙの
【００３６】
【数３】
0006278918.tif 000004
【００３７】
という行列分解形を考える。ＣをＫ行Ｒ列の属性特徴行列Ｃ＝｛ｃｋｒ｝と呼び、ｃｋｒの値が属性ｋのクラスタｒへの寄与度を表す。本発明の実施の形態では、行列ＡとＣの間にＰＶＴＡ＝Ｃが成立するという線形制約を導入する。属性比率行列Ｐを用いて線形制約を定義している点に本発明の実施の形態における特徴がある。この線形制約の導入により、前述した部分統計と全体統計が“おおよそ”比例する、という仮定を考慮した出力として、特徴行列Ａ、Ｂ、及びＣが得られる。比例定数は属性比率行列Ｐの各要素の値に対応しているため、比例定数自体の推定はユーザ商品行列Ｘと属性商品行列Ｙの行列分解と独立に行えるという利点がある。図４に本発明の実施の形態の適用例を示す。ユーザ特徴行列Ａがユーザとクラスタの関係、商品特徴行列Ｂが商品とクラスタの関係、属性特徴行列Ｃが属性とクラスタの関係を表していることから、これらを利用して例えば図４中のヒストグラムを表示させることができる。このヒストグラムから各クラスタに特徴的なユーザ、商品、及び属性を特定することができるようになる。
【００３８】
ここで、記号
【００３９】
【数４】
0006278918.tif 000005
【００４０】
で表現した類似の尺度と、前述した“おおよそ”の比例関係、の意味するものについて説明する。上記非特許文献１にも記述されているように、行列の類似の尺度には、ユークリッド距離に基づくものや一般化カルバックライブラーダイバージェンス（ＫＬ距離）により定義される距離尺度が用いられ、値が小さいほど両者が類似していることを表す。
【００４１】
どの距離を利用するかは、データが持つ性質を考慮して決定される。例えば、非特許文献２にも記述されているように、距離尺度にＫＬ距離を用いる際には、ユーザ商品行列Ｘの各要素ｘｉｊがパラメタΣｒａｉｒｂｊｒのポアソン分布に従って得られているとした確率モデルを考えていることに相当する。したがってポアソン分布の性質よりｘｉｊのとる値の期待値はΣｒａｉｒｂｊｒとなるが、実際のデータ中のｘｉｊの値は平均からずれた値をとることも想定されたモデル化をされている。これを踏まえて、“おおよそ”の比例関係という言葉をきちんと定義すると、本発明の実施の形態においては、各属性ｋに関して部分統計の期待値と全体統計の期待値に比例関係（比例定数ｐｋｋ）を想定したモデリングを行っていることになる。したがって、この期待値のもとでの比例関係が保たれるように制限したうえで特徴行列Ａ、Ｂ、及びＣを算出することで、全体統計の値も考慮された解析が可能になる。
【００４２】
本発明の実施の形態の概要動作は、以下に示すとおりである。
【００４３】
ステップ１）  ユーザ商品行列、属性商品行列、ユーザ属性行列、及び属性人数ベクトルを入力する
【００４４】
ステップ２）  属性比率行列を計算する
【００４５】
ステップ３）  各特徴行列を推定する
【００４６】
ステップ４）  各特徴行列を出力する
【００４７】
＜本発明の実施の形態に係るデータ解析装置の構成＞
【００４８】
次に、本発明の実施の形態に係るデータ解析装置の構成について説明する。図５に示すように、本発明の実施の形態に係るデータ解析装置１００は、ＣＰＵと、ＲＡＭと、後述するデータ解析処理ルーチンを実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することが出来る。このデータ解析装置１００は、機能的には図５に示すように入力部１と、記憶部２と、演算部３と、出力部４とを備えている。
【００４９】
入力部２は、外部装置２００から出力された、個々を識別可能な第１のユーザ群に含まれるユーザｉ（１≦ｉ≦Ｉ，Ｉは１以上の整数）による商品ｊ（１≦ｊ≦Ｊ，Ｊは１以上の整数）の購買数を表した要素ｘｉｊを持つＩ×Ｊのユーザ商品行列Ｘ、個々を識別不能な第２のユーザ群についての、ユーザの属性ｋ（１≦ｋ≦Ｋ，Ｋは１以上の整数）を有するユーザによる前記商品ｊの購買数を表した要素Ｙｋｊを持つＫ×Ｊの属性商品行列Ｙ、及び個々を識別可能な第１のユーザ群に含まれるユーザｉと属性ｋとの関連度を表した要素ｖｉｋを持つＩ×Ｋのユーザ属性行列Ｖを受け付ける。
【００５０】
記憶部２には、入力部１によって受け付けたユーザ商品行列Ｘ、属性商品行列Ｙ、及びユーザ属性行列Ｖに基づいて後述する各部で作成される、ユーザ商品情報テーブル８１と、属性商品情報テーブル８２と、ユーザ属性情報テーブル８３と、属性人数情報テーブル８４と、属性比率情報テーブル８５と、ユーザ特徴テーブル８６と、商品特徴テーブル８７と、属性特徴テーブル８８とが格納される。なお、テーブル形式のデータは行列形式にて表現できることから、以下の説明では、各テーブルと各特徴行列を同一視し、区別せずに用いる。
【００５１】
＜ユーザ商品情報テーブル８１＞
ユーザ商品情報テーブル８１は、図６に示すように、ユーザＩＤフィールド、商品ＩＤフィールド、及び購買数フィールドを有する。ユーザＩＤフィールドは、ユーザ商品情報処理部３０により追加されたユーザを特定する識別子が設定される。商品ＩＤフィールドは、後述するユーザ商品情報処理部３０により追加されたユーザの購入した商品を特定する識別子が設定される。購買数フィールドは、ユーザ商品情報処理部３０により１、又は当該商品の当該ユーザの購入数が設定される。なお、購買数の値には０または正の整数値を設定できるが、負の数を設定することはできない。
【００５２】
＜属性商品情報テーブル８２＞
属性商品情報テーブル８２は、図７に示すように、属性ＩＤフィールド、商品ＩＤフィールド、及び購買数フィールドを有する。属性ＩＤフィールドは、後述する属性商品情報処理部３２により追加された属性を特定する識別子が設定される。商品ＩＤフィールドは、属性商品情報処理部３２により追加された商品を特定する識別子が設定される。購買数フィールドは、属性商品情報処理部３２により１、または当該商品の当該属性の購入数が設定される。なお、購買数の値には０又は正の整数値を設定できるが、負の数を設定することはできない。
【００５３】
＜ユーザ属性情報テーブル８３＞
ユーザ属性情報テーブル８３は、図８に示すように、ユーザＩＤフィールド、属性ＩＤフィールド、及び所属値フィールドを有する。ユーザＩＤフィールドは、後述するユーザ属性情報処理部３４によりユーザを特定する識別子が設定される。属性ＩＤフィールドは、ユーザ属性情報処理部３４により属性を特定する識別子が設定される。所属値フィールドには、ユーザ属性情報処理部３４によって当該ユーザが当該属性に所属する場合には１、そうでなければ０が設定される。
【００５４】
＜属性人数情報テーブル８４＞
属性人数情報テーブル８４は、図９に示すように、属性ＩＤフィールド、及び人数値フィールドを有する。属性ＩＤフィールドは、後述する属性人数情報処理部３６により属性を特定する識別子が設定される。人数値フィールドには、属性人数情報処理部３６によって当該属性に所属するユーザ数が設定される。
【００５５】
＜属性比率情報テーブル８５＞
属性比率情報テーブル８５は、図１０に示すように、属性ＩＤフィールド、及び比率値フィールドを有する。属性ＩＤフィールドは、後述する属性比率情報計算部３８により属性を特定する識別子が設定される。比率値フィールドには、属性比率情報計算部３８によって算出された値が設定される。
【００５６】
＜ユーザ特徴テーブル８６＞
ユーザ特徴テーブル８６は、図１１に示すように、ユーザＩＤフィールドと、クラスタＩＤフィールドと、ユーザ特徴値フィールドとを有する。ユーザＩＤフィールドには、後述する特徴行列推定部４０によりユーザを特定する識別子が設定される。クラスタＩＤフィールドには、特徴行列推定部４０によりクラスタを特定する識別子が設定される。ユーザ特徴値フィールドには、特徴行列推定部４０により算出された当該ユーザの当該クラスタに対する特徴値が設定される。
【００５７】
＜商品特徴テーブル８７＞
商品特徴テーブル８７は、図１２に示すように、商品ＩＤフィールドと、クラスタＩＤフィールドと、商品特徴値フィールドとを有する。商品ＩＤフィールドには、特徴行列推定部４０により商品を特定する識別子が設定される。クラスタＩＤフィールドには、特徴行列推定部４０によりクラスタを特定する識別子が設定される。商品特徴値フィールドには、特徴行列推定部４０により算出された当該商品の当該クラスタに対する特徴値が設定される。
【００５８】
＜属性特徴テーブル８８＞
属性特徴テーブル８８は、図１３に示すように、属性ＩＤフィールドと、クラスタＩＤフィールドと、属性特徴値フィールドとを有する。属性ＩＤフィールドには、特徴行列推定部４０により属性を特定する識別子が設定される。クラスタＩＤフィールドには、特徴行列推定部４０によりクラスタを特定する識別子が設定される。属性特徴値フィールドには、特徴行列推定部４０により算出された当該属性の当該クラスタに対する特徴値が設定される。
【００５９】
演算部３は、ユーザ商品情報処理部３０と、属性商品情報処理部３２と、ユーザ属性情報処理部３４と、属性人数情報処理部３６と、属性比率情報計算部３８と、特徴行列推定部４０と、反復判定部４２と、特徴行列処理部４４とを含んで構成されている。
【００６０】
＜ユーザ商品情報処理部３０＞
ユーザ商品情報処理部３０は、入力部１によって受け付けたユーザ商品行列Ｘに基づいて、ユーザＩＤ毎及び商品ＩＤ毎の購買数を、記憶部２のユーザ商品情報テーブル８１に格納する。また、ユーザ商品情報テーブル８１を更新するときにユーザ商品情報処理部３０は、記憶部２に格納されたユーザ商品情報テーブル８１に、追加されたユーザ、商品、購入数に応じて、ユーザＩＤフィールド、商品ＩＤフィールド、及び購入数フィールドの値を設定した行を挿入する。なお、ユーザ商品情報処理部３０による更新のタイミングは、例えば、システム管理者が外部装置２００から供給されるデータをもとに手動で管理できるようにしてもよいし、新たな購買が発生した場合に外部装置２００が自動的に処理を起動するようにしてもよい。
【００６１】
＜属性商品情報処理部３２＞
属性商品情報処理部３２は、入力部１によって受け付けた属性商品行列Ｙに基づいて、属性ＩＤ毎及び商品ＩＤ毎の購買数を、記憶部２の属性商品情報テーブル８２に格納する。また、属性商品情報テーブル８２を更新するときに、属性商品情報処理部３２は、記憶部２に格納された属性商品情報テーブル８２に、追加された属性、商品、購入数に応じて、属性ＩＤフィールド、商品ＩＤフィールド、購買数フィールドの値を設定した行を挿入する。なお、属性商品情報処理部３２による属性商品情報更新のタイミングは、例えば、外部装置２００から供給されるＰＯＳデータをもとにシステム管理者が手動で管理できるようにしてもよいし、新たな購買が発生した場合に外部装置２００から自動的に処理を起動するようにしてもよい。
【００６２】
＜ユーザ属性情報処理部３４＞
ユーザ属性情報処理部３４は、入力部１によって受け付けたユーザ属性行列Ｖに基づいて、ユーザＩＤ毎及び属性ＩＤ毎の所属値を、記憶部２のユーザ属性情報テーブル８３に格納する。
【００６３】
＜属性人数情報処理部３６＞
属性人数情報処理部３６は、個々を識別不能な第２のユーザ群についての属性ｋを有するユーザ数を表す要素ｗｋを持つＫ次元の属性人数ベクトルＷに基づいて、属性ＩＤ毎の人数値を、記憶部２の属性人数情報テーブル８４に格納する。また、属性人数情報テーブル８４を更新するときに、属性人数情報処理部３６は、記憶部２に格納された属性人数情報テーブル８４に、追加された属性とその人数に応じて、属性ＩＤフィールド、及び人数値フィールドの値を設定した行を挿入する。なお、属性人数情報処理部３６によるユーザ属性情報更新のタイミングは、例えば外部装置２００から供給されるＰＯＳデータをもとにシステム管理者が手動で管理できるようにしてもよいし、新たな商品が出現した場合に外部装置２００から自動的に処理を起動するようにしてもよい。
【００６４】
＜属性比率情報計算部３８＞
属性比率情報計算部３８は、ユーザ属性行列Ｖと、属性人数ベクトルＷとに基づいて、第２のユーザ群についての属性ｋを有するユーザ数と第１のユーザ群についての属性ｋを有するユーザ数との比率を表す要素ｐｋｋを持つ属性比率行列Ｐを計算する。
【００６５】
ここで、記憶部２に格納されたユーザ属性情報テーブル８３に存在する全データから、Ｉ×Ｋのユーザ属性行列Ｖ＝｛｛ｖｉｋ｝｝ｉ，ｋ＝１Ｉ，Ｋ、が得られる。また、記憶部２に格納された属性人数情報テーブル８４に存在する全データから、属性人数ベクトルＷ＝｛ｗｋ｝ｋ＝１Ｋ、が得られる。
【００６６】
属性比率情報計算部３８は、具体的には、属性比率行列をＰ＝｛ｐｋｋ｝ｋ＝１Ｋとし、要素ｐｋｋを以下（１）式で計算し、属性ＩＤ毎の比率値を、記憶部２の属性比率情報テーブル８５に格納する。
【００６７】
【数５】
0006278918.tif 000006
【００６８】
例えば、属性比率情報計算部３８は、上記（１）式に従って、属性比率行列Ｐの各要素を計算し、属性比率行列Ｐの属性とその要素の値に応じて、記憶部２に格納された属性比率情報テーブル８５に、属性ＩＤフィールド、及び比率値フィールドの値を設定した行を挿入する。なお、属性比率情報計算部３８によるユーザ属性情報更新のタイミングは、例えば外部装置２００から供給されるＰＯＳデータをもとにシステム管理者が手動で管理できるようにしてもよいし、新たな商品が出現した場合に外部装置２００から自動的に処理を起動するようにしてもよい。
【００６９】
＜特徴行列推定部４０、反復判定部４２＞
特徴行列推定部４０は、以下に説明するように、ユーザ商品行列Ｘ、属性商品行列Ｙ、ユーザ属性行列Ｖ、属性比率行列Ｐ、ユーザ特徴テーブル８６に格納されたユーザ特徴行列Ａ、商品特徴テーブル８７に格納された商品特徴行列Ｂ、及び属性特徴テーブル８８に格納された属性特徴行列Ｃに基づいて、属性特徴行列Ｃが、属性比率行列Ｐとユーザ属性行列Ｖとユーザ特徴行列Ａとで表される、ＰＶＴＡ＝Ｃの線形制約の下で、ユーザ特徴行列Ａ、商品特徴行列Ｂ、及び属性特徴行列Ｃを推定する。なお、特徴行列推定部４０の処理は、例えば、外部装置２００から特徴出力のリクエストが入力されたときや、予め定めた定期処理などにより、任意のタイミングで実行すればよい。
【００７０】
ここで、記憶部２に格納されたユーザ商品情報テーブル８１に存在する全データからＩ×Ｊのユーザ商品行列Ｘ＝｛ｘｉｊ｝ｉ，ｊ＝１Ｉ，Ｊが得られる。また、記憶部２に格納された属性商品情報テーブル８２に存在する全データからＫ×Ｊの属性商品行列Ｙ＝｛ｙｋｊ｝ｋ，ｊ＝１Ｋ，Ｊが得られる。また、記憶部２に格納されたユーザ属性情報テーブル８３に存在する全データからＩ×Ｋのユーザ属性行列Ｖ＝｛ｖｉｋ｝ｉ，ｋ＝１Ｉ，Ｋが得られる。また、記憶部２に格納された属性比率情報テーブル８５に存在する全データからＫ×Ｋの属性比率行列Ｐ＝｛ｐｋｋ｝ｋ＝１Ｋが得られる。そして、ユーザ特徴行列Ａ、商品特徴行列Ｂ、及び属性特徴行列ＣをそれぞれＡ＝｛ａｉｒ｝ｉ＝１，ｒ＝１Ｉ，Ｒ，Ｂ＝｛ｂｊｒ｝ｊ＝１，ｒ＝１Ｊ，Ｒ，Ｃ＝｛ｃｋｒ｝ｋ＝１，ｒ＝１Ｋ，Ｒとする。ユーザ特徴行列Ａがユーザとクラスタの関係、商品特徴行列Ｂが商品とクラスタの関係、属性特徴行列Ｃが属性とクラスタの関係を表す。また、Ｉは全ユーザ数、Ｊは全商品数、Ｋは全属性数を表す。また、ｉがユーザを特定する識別子、ｊが商品を特定する識別子、ｋが属性を特定する識別子、ｒがクラスタを特定する識別子に対応する。
【００７１】
特徴行列推定部４０は、具体的には以下の第１〜第３の処理を行う。
【００７２】
まず、特徴行列推定部４０は、第１の処理として、ユーザ商品行列Ｘ、属性商品行列Ｙ、ユーザ属性行列Ｖ、属性比率行列Ｐ、ユーザ特徴行列Ａ、商品特徴行列Ｂ、及び属性特徴行列Ｃに基づいて、以下（２）式に従って、ユーザ特徴行列Ａの要素ａｉｒを更新する。
【００７３】
【数６】
0006278918.tif 000007
【００７４】
ただし、
【００７５】
【数７】
0006278918.tif 000008
とする。ここで＾ｘｉｊはユーザ特徴行列Ａ、及び商品特徴行列Ｂによるｘｉｊの推定値であり、＾ｙｋｊは属性特徴行列Ｃ、及び商品特徴行列Ｂによるｙｋｊの推定値であると見なせる。
【００７６】
そして、特徴行列推定部４０は、上記（２）式で更新したユーザ特徴行列Ａの要素ａｉｒの値を、ユーザ特徴テーブル８６に格納する。
【００７７】
次に、特徴行列推定部４０は、第２の処理として、ユーザ商品行列Ｘ、属性商品行列Ｙ、ユーザ特徴行列Ａ、商品特徴行列Ｂ、及び属性特徴行列Ｃに基づいて、以下（３）式に従って、商品特徴行列Ｂの各々の要素ｂｊｒを更新する。
【００７８】
【数８】
0006278918.tif 000009
【００７９】
そして、特徴行列推定部４０は、上記（３）式で更新した商品特徴行列Ｂの要素ｂｊｒの値を、商品特徴テーブル８７に格納する。
【００８０】
次に、特徴行列推定部４０は、第３の処理として、ユーザ属性行列Ｖ、属性比率行列Ｐ、及びユーザ特徴行列Ａに基づいて、以下（４）式に従って、属性特徴行列Ｃの各々の要素ｃｋｒを更新する。
【００８１】
【数９】
0006278918.tif 000010
【００８２】
そして、特徴行列推定部４０は、上記（４）式で更新した属性特徴行列Ｃの要素ｃｋｒの値を、属性特徴テーブル８８に格納する。
【００８３】
反復判定部４２は、反復終了条件を満足するまで、特徴行列推定部４０による推定を繰り返す。具体的には、更新前の各要素の値と、更新後の各要素の値との差の絶対値の最大値が、値更新の最大変化幅を示す変数δより大きければ、δに当該最大値を代入する。なお、一連の各行列の更新処理毎に、値更新の最大変化幅を示す変数δは初期化される。また、繰り返し条件の閾値ε、最大繰り返し回数Ｎが予め設定される。
【００８４】
より詳細には、反復判定部４２は、ユーザ特徴テーブル８６に格納されていた更新前のユーザ特徴行列Ａの要素の値ａｉｒｏｌｄと、上記式（２）に従って特徴行列推定部４０によって更新された更新後のユーザ特徴行列Ａの要素の値ａｉｒｎｅｗの差の絶対値の最大値ｍａｘｉｒ｜ａｉｒｏｌｄ−ａｉｒｎｅｗ｜がδより大きければ、δ←｜ａｉｒｏｌｄ−ａｉｒｎｅｗ｜と更新する。なお、記号「←」は右辺の計算結果を左辺の変数に代入する処理を意味する。また、代入処理前のユーザ特徴行列Ａの要素の値をａｉｒｏｌｄ、代入処理後の値をａｉｒｎｅｗとして記述した。
【００８５】
そして、反復判定部４２は、商品特徴テーブル８７に格納されていた更新前の商品特徴行列Ｂの要素の値と更新後の商品特徴行列Ｂの当該要素の値の差の絶対値の最大値ｍａｘｊｒ｜ｂｊｒｏｌｄ−ｂｊｒｎｅｗ｜がδより大きければ、δ←ｍａｘｊｒ｜ｂｊｒｏｌｄ−ｂｊｒｎｅｗ｜と更新する。なお、代入処理前の商品特徴行列Ｂの要素の値をｂｊｒｏｌｄ、代入処理後の値をｂｊｒｎｅｗとして記述した。
【００８６】
そして、反復判定部４２は、属性特徴テーブル８８に格納されていた更新前の属性特徴行列Ｃの要素の値と更新後の属性特徴行列Ｃの要素の値の差の絶対値の最大値ｍａｘｋｒ｜ｃｋｒｏｌｄ−ｃｋｒｎｅｗ｜がδより大きければ、δ←ｍａｘｋｒ｜ｃｋｒｏｌｄ−ｃｋｒｎｅｗ｜と更新する。代入処理前の属性特徴行列Ｃの要素の値をｃｋｒｏｌｄ、代入処理後の値をｃｋｒｎｅｗとして記述した。
【００８７】
反復判定部４２は、繰り返し回数ｎが、予め定めた最大繰り返し数Ｎを超えるか、特徴行列推定部４０による更新による最大変化幅を表すδが予め定めた閾値εより小さければ特徴行列推定部４０による更新処理を終了する。
【００８８】
上記（２）〜（４）式の各更新式は、全てのユーザｉ、商品ｊ、及び属性ｋについて＾ｘｉｊ＝ｘｉｊ、＾ｙｋｊ＝ｙｋｊが成立する時、左辺と右辺が一致し、更新の最大変化幅を示す変数δの値が閾値ε以下となるため、更新が停止することが分かる。また、あるユーザｉについて、全てのｊ、ｋについて＾ｘｉｊ＜ｘｉｊ、＾ｙｋｊ＜ｙｋｊである時に上記（２）式の更新を行うと、右辺の分子が右辺の分母より大きくなるために、ａｉｒを現在の値よりも大きくなるように更新することとなり、＾ｘｉｊと＾ｙｋｊの値が大きくなるように特徴となる要素ａｉｒを更新することになる。
【００８９】
図１４に、特徴行列推定部４０、及び反復判定部４２における特徴行列推定処理のフローチャートを示す。
【００９０】
まず、ステップＳ１００で、ユーザ特徴テーブル８６に格納されているユーザ特徴行列Ａ、商品特徴テーブル８７に格納されている商品特徴行列Ｂ、及び属性特徴テーブル８８に格納されている属性特徴行列Ｃをそれぞれ初期化する。同様に終了条件の閾値ε、及び最大繰り返し回数を設定する。
【００９１】
次に、ステップＳ１０２で、終了条件の判定に用いる、更新の最大変化幅を示す変数δを初期化する。
【００９２】
ステップＳ１０４では、ユーザ商品情報テーブル８１に格納されているユーザ商品行列Ｘ、属性商品情報テーブル８２に格納されている属性商品行列Ｙ、ユーザ属性情報テーブル８３に格納されているユーザ属性行列Ｖ、属性比率情報テーブル８５に格納されている属性比率行列Ｐ、ユーザ特徴テーブル８６に格納されているユーザ特徴行列Ａ、商品特徴テーブル８７に格納されている商品特徴行列Ｂ、及び属性特徴テーブル８８に格納されている属性特徴行列Ｃに基づいて、上記（２）式に従って、ユーザ特徴行列Ａを更新し、ユーザ特徴テーブル８６に格納する。そして、ユーザ特徴テーブル８６に格納されていた更新前のユーザ特徴行列Ａの要素の値ａｉｒｏｌｄと、上記式（２）に従って特徴行列推定部４０によって更新された更新後のユーザ特徴行列Ａの要素の値ａｉｒｎｅｗの差の絶対値の最大値ｍａｘｉｒ｜ａｉｒｏｌｄ−ａｉｒｎｅｗ｜がδより大きければ、δ←｜ａｉｒｏｌｄ−ａｉｒｎｅｗ｜と更新する。
【００９３】
ステップＳ１０６では、ユーザ商品行列Ｘ、属性商品行列Ｙ、ユーザ特徴行列Ａ、商品特徴行列Ｂ、及び属性特徴行列Ｃに基づいて、上記（３）式に従って、商品特徴行列Ｂを更新し、商品特徴テーブル８７に格納する。そして、商品特徴テーブル８７に格納されていた更新前の商品特徴行列Ｂの要素の値と更新後の商品特徴行列Ｂの当該要素の値の差の絶対値の最大値ｍａｘｊｒ｜ｂｊｒｏｌｄ−ｂｊｒｎｅｗ｜がδより大きければ、δ←ｍａｘｊｒ｜ｂｊｒｏｌｄ−ｂｊｒｎｅｗ｜と更新する。
【００９４】
ステップＳ１０８では、ユーザ属性行列Ｖ、属性比率行列Ｐ、及びユーザ特徴行列Ａに基づいて、上記（４）式に従って、属性特徴行列Ｃを更新し、属性特徴テーブル８８に格納する。そして、属性特徴テーブル８８に格納されていた更新前の属性特徴行列Ｃの要素の値と更新後の属性特徴行列Ｃの要素の値の差の絶対値の最大値ｍａｘｋｒ｜ｃｋｒｏｌｄ−ｃｋｒｎｅｗ｜がδより大きければ、δ←ｍａｘｋｒ｜ｃｋｒｏｌｄ−ｃｋｒｎｅｗ｜と更新する。
【００９５】
ステップＳ１１０では、計算繰り返し回数を更新する。
【００９６】
ステップＳ１１２では、計算繰り返し回数がステップＳ１００で定めた最大繰り返し回数を超えるか、更新による最大変化幅を表す変数δがステップＳ１００で定めた閾値εより小さければ処理を終了する。
【００９７】
＜特徴行列処理部４４＞
特徴行列処理部４４は、特徴行列推定部４０の更新処理が終了した場合に、記憶部２に格納された更新済みの各テーブルの値を出力する。例えば、外部装置２００から特徴出力のリクエストが入力された場合に実行すればよい。出力は全特徴を出力する場合には、ユーザ特徴テーブル８６、商品特徴テーブル８７、及び属性特徴テーブル８８の全ての行を出力すればよい。また、クラスタの商品特徴のみを利用する場合には、例えばリクエストの引数をクラスタＩＤとして、商品特徴テーブル８７から、当該クラスタＩＤを持つ行の商品ＩＤフィールド、商品特徴値フィールドを出力した後、商品特徴値フィールドの値の大きい順に商品ＩＤ１０件を表示することで当該クラスタを特徴づける商品を求めることができる。
【００９８】
出力部４は、特徴行列処理部４４によって出力された各特徴を、外部装置２００へ出力する。
【００９９】
以上説明したように、本発明の実施の形態に係るデータ解析装置によれば、ユーザ属性行列Ｖと、属性人数ベクトルＷとに基づいて、比率を表す要素ｐｋｋを持つ属性比率行列Ｐを計算し、ユーザ商品行列Ｘ、属性商品行列Ｙ、ユーザ特徴行列Ａ、商品特徴行列Ｂ、及び属性特徴行列Ｃに基づいて、属性特徴行列Ｃが、属性比率行列Ｐとユーザ属性行列Ｖとユーザ特徴行列Ａとで表わされる線形制約の下で、ユーザ特徴行列Ａ、商品特徴行列Ｂ、及び属性特徴行列Ｃを推定することにより、個々を識別不能なユーザ群の特徴を含めて、全体のユーザ群の特徴を解析できる、という効果が得られる。
【０１００】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０１０１】
例えば、上述した実施の形態では、ユーザ商品行列と属性商品行列からクラスタを抽出する例を示しているが、この例に限定されるものではない。
【０１０２】
例えば、個々を識別可能な第１の個体群を第１のユーザ群以外のものとし、個々を識別不能な第２の個体群を第２のユーザ群以外のものとし、オブジェクトを商品以外のものとし、個々を識別可能な第１の個体群に含まれる個体ｉ（１≦ｉ≦Ｉ，Ｉは１以上の整数）とオブジェクトｊ（１≦ｊ≦Ｊ，Ｊは１以上の整数）との関連度を表した要素ｘｉｊを持つＩ×Ｊの個体オブジェクト行列Ｘ、及び個々を識別不能な第２の個体群についての、個体の属性ｋ（１≦ｋ≦Ｋ，Ｋは１以上の整数）と前記オブジェクトｊとの関連度を表した要素ｙｋｊを持つＫ×Ｊの属性オブジェクト行列Ｙを、前記個体ｉが、クラスタｒ（１≦ｒ≦Ｒ，Ｒは１以上の整数）に所属することを表す非負値の要素ａｉｒを持つＩ×Ｒの第１の特徴行列Ａと、前記オブジェクトｊが、前記クラスタｒに所属することを表す非負値の要素ｂｊｒを持つＪ×Ｒの第２の特徴行列Ｂと、前記属性ｋが、前記クラスタｒに所属することを表す非負値の要素ｃｋｒを持つＫ×Ｒの第３の特徴行列Ｃと、に分解するようにしてもよい。
【０１０３】
例えば、ユーザとユーザの訪問地の訪問数を表現する行列、訪問地における属性毎の訪問数を表現する行列の組など、訪問地、ユーザ、カテゴリのように１つ１つにＩＤ番号を付与して識別可能であり行列形式としてデータを表現することが可能な事物であり、ユーザと当該ユーザが所属する属性のように対応関係性が存在するものならば、あらゆるものがデータ解析装置によってクラスタ抽出が可能である。
【０１０４】
また、出現数や購入回数のように整数である必要もなく、一般に０以上の実数であればよい。入力となる行列が３つ以上存在する場合にも、本発明の実施の形態に係る方法は適用可能である。
【０１０５】
また、上述した実施の形態の図５に示すデータ解析装置の各構成要素の動作をプログラムとして構築し、データ解析装置として利用されるコンピュータにインストールして実行させる、又は、ネットワークを介して流通させることが可能である。
【符号の説明】
【０１０６】
１     入力部
２     記憶部
３     演算部
４     出力部
３０   ユーザ商品情報処理部
３２   属性商品情報処理部
３４   ユーザ属性情報処理部
３６   属性人数情報処理部
３８   属性比率情報計算部
４０   特徴行列推定部
４２   反復判定部
４４   特徴行列処理部
８１   ユーザ商品情報テーブル
８２   属性商品情報テーブル
８３   ユーザ属性情報テーブル
８４   属性人数情報テーブル
８５   属性比率情報テーブル
８６   ユーザ特徴テーブル
８７   商品特徴テーブル
８８   属性特徴テーブル
１００ データ解析装置
２００ 外部装置
【図１】
0006278918.tif 000011
【図２】
0006278918.tif 000012
【図３】
0006278918.tif 000013
【図４】
0006278918.tif 000014
【図５】
0006278918.tif 000015
【図６】
0006278918.tif 000016
【図７】
0006278918.tif 000017
【図８】
0006278918.tif 000018
【図９】
0006278918.tif 000019
【図１０】
0006278918.tif 000020
【図１１】
0006278918.tif 000021
【図１２】
0006278918.tif 000022
【図１３】
0006278918.tif 000023
【図１４】
0006278918.tif 000024
【図１５】
0006278918.tif 000025
【図１６】
0006278918.tif 000026
【図１７】
0006278918.tif 000027
【図１８】
0006278918.tif 000028