JP6175036B2 - クラスタ抽出装置、クラスタ抽出方法、及びクラスタ抽出プログラム - Google Patents

クラスタ抽出装置、クラスタ抽出方法、及びクラスタ抽出プログラム Download PDF

Info

Publication number
JP6175036B2
JP6175036B2 JP2014153647A JP2014153647A JP6175036B2 JP 6175036 B2 JP6175036 B2 JP 6175036B2 JP 2014153647 A JP2014153647 A JP 2014153647A JP 2014153647 A JP2014153647 A JP 2014153647A JP 6175036 B2 JP6175036 B2 JP 6175036B2
Authority
JP
Japan
Prior art keywords
change
purchase
feature
time
tensor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014153647A
Other languages
English (en)
Other versions
JP2016031639A (ja
Inventor
匡宏 幸島
匡宏 幸島
達史 松林
達史 松林
澤田 宏
宏 澤田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2014153647A priority Critical patent/JP6175036B2/ja
Publication of JP2016031639A publication Critical patent/JP2016031639A/ja
Application granted granted Critical
Publication of JP6175036B2 publication Critical patent/JP6175036B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、クラスタ抽出装置、クラスタ抽出方法、及びクラスタ抽出プログラムに関する。
負でない値を要素とする2次元の行列形式で表現可能なデータは、非負値行列分解(Non-negative Matrix Factorization:NMF)と呼ばれる手法を用いて、その特徴(トピック)を抽出することができる(例えば、非特許文献1)。このようなデータの一例として、例えば、商品の購買履歴(いつ、何を購買したか)を示すデータが挙げられる。したがって、NMFについては、商品の購買履歴の分析等への展開が期待できる(例えば、非特許文献2)。しかし、2次元の範囲で取り扱えるデータには限界があり、データの次元数を増やした高度な分析を行うためには、分析手法の拡張が必要とされる。
ところで、商品の購買履歴等の構造化されたデータや、テキストデータ又は画像データ等の構造化されていないデータの多くは、テンソル形式により表現できることが知られている。テンソルとは行列の拡張であり、例えば、行、列、及び奥行きという3つの軸を有するデータのことをいう。4つ以上の軸を有するデータも、テンソルと呼ばれる。
テンソル形式のデータ中に存在するクラスタを発見するために、非負値テンソル分解(Non-negative Tensor Factorization:NTF)と呼ばれる手法の有用性が認められている(例えば、非特許文献1及び非特許文献3)。クラスタとは、例えば、似たような特徴を有するグループをいう。或るテンソルデータに対してNTFが適用にされると、当該テンソルデータは、より低次のランクの行列(以下、「低次行列」という。)の積に分解される。各低次行列は、それぞれ、テンソル形式のデータ中に存在する各行、各列、及び各奥行きに対応する事物のクラスタへの寄与度を示す。その結果、テンソル形式のデータ中に存在するクラスタの発見が可能となる。したがって、例えば、購買履歴データに対してNTFを適用することで抽出されたクラスタに基づいて、お薦め商品のリストを作成したり、ニュース記事の集合に対してNTFを適用することで抽出されたクラスタに基づいて、ニュース記事の自動分類等を行ったりすることが可能となる。
図1は、非負値テンソル分解(NTF)の購買データへの適用例を示す図である。図1において、購買データを示す購買テンソルX={xijk}は、i番目の奥行きに対応するユーザが、j行目に対応する商品を、k列目に対応する時刻に購買していれば、xijk=1となり、そうでなければ、xijk=0の値となる、大きさがI×J×Kのテンソルである。Iは、奥行きの数を示し、Jは、行数を示し、Kは、列数を示す。すなわち、購買テンソルXの各奥行き、各行、各列は、特定のユーザ、特定の商品、特定の時刻に対応している。購買テンソルXに、NTFを適用することで、以下の数1を満たすI行R列のユーザ特徴行列A={air}、J行R列の商品特徴行列B={bjr}、及びK行R列の時刻特徴行列C={ckr}が求まる。なお、図1において、時刻特徴行列Cについては、便宜上、時刻に関する配列方向を購買テンソルXに合わせるため、時刻特徴行列Cの転置行列Cが示されているが、時刻特徴行列Cにおいて、行方向は時刻に対応し、列方向はクラスタに対応する。
Figure 0006175036
なお、数1の左辺と右辺との間の記号は、右辺と左辺とが類似していることを示す。また、クラスタの総数に相当する各特徴行列のランク数は、解析する前に予め決定される。
図1において、ユーザ特徴行列Aのクラスタ1に対応する列に着目すると、ユーザ1に対応する行の値が0より大きい値となっている。これは、ユーザ1が、クラスタ1に所属することを示す。また、商品特徴行列Bのクラスタ1に対応する列に着目すると、商品1に対応する行の値が0より大きい値となっている。これは、商品1が、クラスタ1に所属することを示す。更に、時刻特徴行列Cのクラスタ1に対応する列に着目すると、時刻1の行と時刻2の行との値が、0より大きい値となっている。これは、時刻1及び時刻2において購買されやすいというクラスタ1が有する特徴を表しているといえる。そこで、時刻1と時刻2とをまとめて、「クラスタ1の時刻特徴」と呼ぶこととする。同様に、クラスタ1に所属するユーザを、「クラスタ1のユーザ特徴」と呼び、クラスタ1に所属する商品を、「クラスタ1の商品特徴」と呼ぶこととする。また、クラスタ1のユーザ特徴、クラスタ1の商品特徴、クラスタ1の時刻特徴をまとめて、「クラスタ1の特徴」と呼ぶこととする。NTFの適用によって得られるユーザ特徴行列A、商品特徴行列B、及び時刻特徴行列Cに基づいて、図2に示されるようなクラスタ抽出(クラスタリング)が可能となる。
図2は、非負値テンソル分解(NTF)を適用して得られるクラスタ抽出の結果の一例を示す図である。図2には、列方向にクラスタ1〜3が配列され、行方向にユーザ特徴、商品特徴、及び時刻特徴が配列されている。クラスタ1の列には、クラスタ1に属するユーザ、商品、及び時刻が示されている。クラスタ2の列には、クラスタ2に属するユーザ、商品、及び時刻が示されている。クラスタ3の列には、クラスタ3に属するユーザ、商品、及び時刻が示されている。
澤田宏, "非負値行列因子分解NMFの基礎とデータ/信号解析への応用", 電子情報通信学会誌, Vol. 95, No. 9, pp. 829-833, 2012. 幸島匡宏,江崎健司,高屋典子,澤田宏,"複数行列の行列分解に関する一考察",電子情報通信学会技術研究報告, Vol. 113, No. 286, IBISML2013-50, pp. 107-114, 2013年11月. A. Cichocki, R. Zdunek, A. H. Phan, and S. I. Amari. Nonnegative matrix and tensor factorizations: applications to exploratory multi-way data analysis and blind source separation, John Wiley & Sons, 2009.
しかしながら、図1で示したNTFの適用方法では、ユーザの購買の発生の傾向を捉えることはできるものの、ユーザの購買の変化の傾向を捉えることは困難である。
図3は、購買テンソルに対する非負値テンソル分解(NTF)の適用では購買の変化の傾向を捉えることが困難であることを説明するための図である。図3において、(1)に示される購買テンソルXと、(2)に示されるクラスタ抽出の結果とは、図1又は図2に示したものと同じである。但し、図3において、購買テンソルXの各商品は、ビール関連の商品に対応し、各時刻は、2014年4月のような、年と月のとの組み合わせに対応する。
図3の購買テンソルXからは、ユーザ1による購買対象が、時刻1(2014/4)及び時刻2(2014/5)において、商品1(ビール1)であり、時刻3(2014/6)及び時刻4(2014/7)において、商品2(ビール2)及び商品3(ビール3)に変化し、時刻5(2014/8)及び時刻6(2014/9)において、再び商品1(ビール1)に戻る、という購買行動の変化を読み取ることができる。ユーザ2に関しても、同様に、購買テンソルXから購買行動の変化を読み取ることができる。
しかし、このような購買行動の変化の傾向を、(2)に示されるクラスタ抽出の結果から読み取るのは容易ではない。何故なら、時刻3(2014/6)及び時刻4(2014/7)において商品2(ビール2)及び商品3(ビール3)がユーザ1によって購買されるという傾向は、クラスタ2に含まれる一方で、時刻5(2014/8)及び時刻6(2014/9)において商品1(ビール1)がユーザ1によって購買されるという傾向は、クラスタ3に含まれるからである。すなわち、同一ユーザの購買行動が、複数のクラスタに跨ってしまうからである。
図3の例では、便宜上、クラスタ数が少数であるが、クラスタ数が50や100のように多数に設定される場合には、購買行動の変化前後に対応するクラスタを特定することは更に困難となる。
本発明は、上記の点に鑑みなされたもので、複数の事象に関して時間の経過に応じた特徴量の変化の傾向を抽出可能とすることを目的とする。
一態様によれば、クラスタ抽出装置は、複数の事象に関して時間の経過に応じた特徴量を示す情報に基づいて、前記事象ごとに、単位期間ごとの前記特徴量の変化の継続時間に応じた非負値を含む配列を生成する生成部と、前記生成部によって生成された配列に対して因子分解を適用して、前記特徴量の変化の傾向をクラスタ抽出する抽出部と、を有する。
一態様によれば、複数の事象に関して時間の経過に応じた特徴量の変化の傾向を抽出可能とすることができる。
非負値テンソル分解(NTF)の購買データへの適用例を示す図である。 非負値テンソル分解(NTF)を適用して得られるクラスタ抽出の結果の一例を示す図である。 購買テンソルに対する非負値テンソル分解(NTF)の適用では購買の変化の傾向を捉えることが困難であることを説明するための図である。 購買テンソル及びスイッチテンソルの一例を示す図である。 購買テンソルの各要素の値とスイッチテンソルの各要素の値との一例を示す図である。 スイッチテンソルの一つの要素の値の算出方法の一例を説明するための図である。 スイッチテンソルに対する非負値テンソル分解(NTF)の適用結果の一例を示す図である。 スイッチテンソルに非負値テンソル分解(NTF)を適用して得られるクラスタ抽出の結果の一例を示す図である。 本発明の実施の形態におけるクラスタ抽出装置のハードウェア構成例を示す図である。 本発明の実施の形態におけるクラスタ抽出装置の機能構成例を示す図である。 クラスタ抽出装置が実行する処理手順の一例を説明するためのフローチャートである。 購買情報テーブルの構成例を示す図である。 スイッチ購買情報テーブルの構成例を示す図である。 ユーザ特徴テーブルの構成例を示す図である。 商品変化特徴テーブルの構成例を示す図である。 時区間特徴テーブルの構成例を示す図である。 特徴行列の推定処理の処理手順の一例を説明するためのフローチャートである。
以下、図面に基づいて本発明の実施の形態を説明する。本実施の形態では、例えば、図1に示される購買テンソルX={xijk}を、スイッチテンソルY={yijk}に変換し、スイッチテンソルYに対して、非負値テンソル分解(Non-negative Tensor Factorization:NTF)を適用することで、購買の変化の傾向を特徴として有するクラスタの抽出を可能とする。クラスタとは、例えば、似たような特徴を有するグループをいう。スイッチテンソルYは、例えば、以下の(1)〜(3)の条件を満たすように生成される。
(1)時刻の区間(以下、「時区間」という。)が、一つの列に対応するように列kを生成する。
(2)(1)において生成された、(或る一つの列に対応する)時区間kにおける、商品の購買の変化の仕方が、一つの行に対応するように、行jを生成する。
(3)ユーザiに関して、(1)において生成された、(或る一つの列に対応する)時区間kにおいて、(2)において生成された、(或る一つの行に対応する)商品の購買の変化の仕方jが、購買テンソルXにおいて発生しているか否かと、購買の変化の継続性又はインパクトの大きさとが反映されるように、スイッチテンソルYの各要素の値を設定する。なお、本実施の形態において、商品の購買者を、便宜上、「ユーザ」という。
図4は、購買テンソル及びスイッチテンソルの一例を示す図である。図4において、スイッチテンソルY={yijk}における列kは、時刻1及び時刻2、時刻2及び時刻3のように、隣り合った時刻を組み合わせた時区間(期間)に対応しており、(1)の条件を満たす。また、スイッチテンソルYの行jは、列kに対応する時区間における商品の購買の変化の仕方に対応しており、(2)の条件を満たす。なお、「0→1」は、非購買から購買への変化を示し、「1→0」は、購買から非購買への変化を示す。
更に、(3)の条件を説明するため、購買テンソルXの各要素の値と、スイッチテンソルYの各要素の値との一例を図5に示す。
図5は、購買テンソルの各要素の値とスイッチテンソルの各要素の値との一例を示す図である。図5において、購買テンソルX={xijk}は、i番目の奥行きに対応するユーザが、j行目に対応する商品を、k列目に対応する時刻に購買していれば、xijk=1となり、そうでなければ、xijk=0の値となる、大きさがI×J×Kのテンソルである。一方、スイッチテンソルYのサイズは、I×2J×(K−1)である。
図5において、スイッチテンソルYの各要素の値は、当該要素の列の時区間において、当該要素の行に対応する商品の購買の変化の仕方が、購買テンソルXにおいて発生していれば、非ゼロであり、当該変化の仕方が発生していなければ0である。ここで、非ゼロの値としては、例えば、前後における購買の継続期間が採用される。例えば、0(非購買)から1(購買)に変化する時区間であれば、当該時区間において、0から1に変化してから1が継続(連続)した時刻の数である。したがって、スイッチテンソルYの各要素の値は、購買の変化後の状態が継続した時刻に比例した値となる。スイッチテンソルYの要素の値を数式によって表現すると、以下の数2又は数3のようになる。なお、スイッチテンソルYの行j'が奇数行の場合、行j'は、0(非購買)から1(購買)への変化に対応し、行j'が、偶数行の場合、行j'は、1(購買)から0(非購買)への変化に対応することとする。
j'=2j−1の場合(奇数行の場合)
Figure 0006175036
j'=2jの時(偶数行の場合)
Figure 0006175036
図5に示されるスイッチテンソルYの各要素の値は、数2又は数3によって算出された値である。例えば、y132の値は、図6に示されるように算出される。
図6は、スイッチテンソルの一つの要素の値の算出方法の一例を説明するための図である。y132は、時刻2から時刻3までの時区間における、ユーザ1による商品2の購買について、非購買から購買への変化の仕方をその値とする。したがって、y132の値を求めるためには、購買テンソルXにおいて、ユーザ1に関する商品2の行が参照される。当該行において、時刻2に対応する列(x122)の値は0であり、時刻3に対応する列(X123の値)は1である。したがって、y132の値は、0ではない。
また、y132は、スイッチテンソルYにおいて奇数行に対応する。したがって、y132の値の算出には、数2が利用される。ここで、k=2である。したがって、X12k'=0、及びk'>2+1を満たす最小のk'は、5である。すなわち、k''は、5である。よって、数2より、y132=x123+x124+x125=2となる。
なお、スイッチテンソルYの生成には、上記以外の方法が用いられてもよい。例えば、スイッチテンソルYの列kを、例えば(時刻1、時刻2、及び時刻3)という3つの連続した時区間に対応させ、スイッチテンソルYの行jの生成の際に、考えられる変化の仕方として、0→1→0、0→1→1、1→1→0、及び1→0→1の4通りの組み合わせが利用されてもよい。更に、スイッチテンソルYの各要素yijkの算出は、単純な線形和でなく、重み付き和が利用されてもよい。
本実施の形態では、例えば、図5に示したスイッチテンソルYに対して非負値テンソル分解を適用し、以下の数4を満たすI行R列のユーザ特徴行列A={air}、2J行R列の商品変化特徴行列B={bjr}、及び(K−1)行R列の時区間特徴行列C={ckr}が算出される。
Figure 0006175036
図7は、スイッチテンソルに対する非負値テンソル分解(NTF)の適用結果の一例を示す図である。図7には、NTFが適用されたスイッチテンソルYと、NTFの適用結果である、ユーザ特徴行列A、商品変化特徴行列B、及び時区間特徴行列Cが示されている。なお、図7において、時区間特徴行列Cについては、便宜上、時区間に関する配列方向をスイッチテンソル&に合わせるため、時区間特徴行列Cの転置行列Cが示されているが、時区間特徴行列Cにおいて、行方向は時区間に対応し、列方向はクラスタに対応する。
また、図8は、スイッチテンソルに非負値テンソル分解(NTF)を適用して得られるクラスタ抽出の結果の一例を示す図である。図8には、列方向にクラスタ1〜3が配列され、行方向にユーザ特徴、商品変化特徴、時区間特徴が配列されている。
図8において、例えば、クラスタ3に着目すると、ユーザ特徴として、ユーザ1及びユーザ2、商品変化特徴として、商品1[0→1]、商品2[1→0]、及び商品3[1→0]、時区間特徴として、時刻4−5が含まれている。すなわち、クラスタ3から、ユーザ1及びユーザ2が、時刻4〜時刻5の時区間において、商品2及び商品3から商品1へ、購買対を変更したことが読み取れる。これは、購買行動(購買傾向)の変化を特徴として有するクラスタが抽出できていることを示す。すなわち、本実施の形態によれば、購買行動(購買傾向)の変化の傾向を示すクラスタが抽出可能であることが分かる。
次に、上記したクラスタ抽出を実行するクラスタ抽出装置10の一例について説明する。図9は、本発明の実施の形態におけるクラスタ抽出装置のハードウェア構成例を示す図である。図9のクラスタ抽出装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、インタフェース装置105、表示装置106、及び入力装置107等を有する。
クラスタ抽出装置10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従ってクラスタ抽出装置10に係る機能を実現する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。表示装置106はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置107はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
図10は、本発明の実施の形態におけるクラスタ抽出装置の機能構成例を示す図である。図10において、クラスタ抽出装置10は、購買情報入力部11、変換処理部12、特徴行列推定部13、特徴行列出力部14、及び入出力制御部15等を有する。これら各部は、クラスタ抽出装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。クラスタ抽出装置10は、また、購買情報テーブル51、スイッチ購買情報テーブル52、ユーザ特徴テーブル53、商品変化特徴テーブル54、及び時区間特徴テーブル55等を利用する。これら各テーブルは、補助記憶装置102、メモリ装置103、又はクラスタ抽出装置10にネットワークを介して接続される記憶装置等を用いて実現可能である。
購買情報入力部11は、購買テンソルを示す情報(以下、「購買情報」という。)の入力を受け付け、当該購買情報を、購買情報テーブル51に記録する。変換処理部12は、購買情報が示す購買テンソルをスイッチテンソルに変換し、変換結果をスイッチ購買情報テーブル52に記録する。特徴行列推定部13は、スイッチ購買情報テーブル52が示すスイッチテンソルに対して非負値テンソル分解(NTF)を適用して、ユーザ特徴行列、商品変化特徴行列、及び時区間特徴行列の推定値を算出し、それぞれの算出結果を、ユーザ特徴テーブル53、商品変化特徴テーブル54、又は時区間特徴テーブル55に記録する。特徴行列出力部14は、ユーザ特徴テーブル53、商品変化特徴テーブル54、及び時区間特徴テーブル55の内容を出力する。入出力制御部15は、指示入力や情報の出力に関する処理を制御する。
以下、クラスタ抽出装置10が実行する処理手順について説明する。図11は、クラスタ抽出装置が実行する処理手順の一例を説明するためのフローチャートである。
ステップS100において、購買情報入力部11は、購買情報の入力を受け付ける。購買情報入力部11は、入力された購買情報を、購買情報テーブル51に記録する。
図12は、購買情報テーブルの構成例を示す図である。図12において、購買情報テーブル51は、ユーザIDフィールド、商品IDフィールド、及び購買判定フィールドを有する。
ユーザIDフィールドには、ユーザIDが記録される。ユーザIDは、ユーザごとの識別子である。商品IDフィールドには、商品IDが記録される。商品IDは、ユーザが購買した商品の識別子である。時刻IDフィールドには、時刻IDが記録される。時刻IDは、ユーザが商品を購買した時刻(本実施の形態では、年月日)の識別子である。図12において、時刻IDは、数値によって示されているが、時刻を示す文字列であってもよい。購買判定フィールドには、購買判定値が記録される。購買判定値は、ユーザがその時刻に商品を購買したか否かを示す値である。1は、購買したことを示し、0は、購買していないことを示す。又は、購買判定値は、ユーザがその時刻に購買した当該商品の数が予め設定された閾値を超えていれば1、そうでなければ0であってもよい。購買判定値は購買の変化に対するインパクトの一例である。
ステップS100において、購買情報入力部11は、入力されたユーザID、商品ID、時刻ID、及び購買判定値の組数分の行を、購買情報テーブル51に追加し、各行の各フィールに対して値を記録する。購買情報は、例えば、システム管理者等によって、入力装置107等を利用して手動で入力されてもよいし、POS(Point Of Sales system)システムから自動的に入力されてもよい。購買情報が自動的に入力される場合、商品の購買が発生するたびに、購買情報の入力が行われてもよい。この場合、同じ年月日における商品の購入に関する購買情報の時刻IDは、同じ値となる。なお、各時刻IDに対応する各時刻の間隔は、一定であるのが望ましい。したがって、仮に、或る日において、或る商品が購買されなかった場合、当該商品の商品ID及び当該日の年月日に対応する時刻IDを含み、購買判定値を0とする購買情報が、各ユーザIDに関して購買情報テーブル51に登録されてもよい。但し、各時刻IDに対応する各時刻の間隔は一定間隔でなくてもよい。また、時刻IDは、年月日ではなく日時等、他の時間単位に対応してもよい。
なお、購買情報テーブル51の各フィールドに付与されているi、j、k、xijkは、購買テンソルにおける奥行き、行、列、及び要素のそれぞれの識別子である。すなわち、購買情報テーブル51は、購買テンソルと等価である。
続いて、変換処理部12は、購買情報テーブル51が示す購買テンソルを、スイッチテンソルに変換する(S200)。変換処理部12は、変換結果を、スイッチ購買情報テーブル52に記録する。
図13は、スイッチ購買情報テーブルの構成例を示す図である。図13において、スイッチ購買情報テーブル52は、ユーザIDフィールド、商品変化IDフィールド、時区間IDフィールド、及び変化度フィールドを有する。ユーザIDフィールドには、ユーザIDが記録される。商品変化IDフィールドには、商品変化IDが記録される。商品変化IDは、商品及び商品の購買の変化の仕方の組み合わせ(以下、「商品変化」という。)に対する識別子である。時区間IDフィールドには、時区間IDが記録される。時区間IDは、時区間に対する識別子である。変化度フィールドには、変化度が記録される。変化度は、購買の変化の有無、及び変化が有る場合は、当該時区間において変化後の状態(購買又は非購買)が継続した時刻の数である。したがって、変化度は、0以上の実数値となる。
ステップS200において、変換処理部12は、購買情報テーブル51に記録された各レコードに基づいて導出される値を、ユーザIDフィールド、商品変化IDフィールド、時区間IDフィールド、及び変化度フィールドに記録する。ステップS200は、ステップS100と同期的に実行されてもよい。又は、ステップS200は、ステップS100とは非同期に、システム管理者等による手動による指示に応じて実行されてもよいし、自動的に実行されてもよい。
なお、スイッチ購買情報テーブル52の各フィールドに付与されているi、j、k、yijkは、スイッチテンソルにおける奥行き、行、列、要素のそれぞれの識別子である。すなわち、スイッチ購買情報テーブル52は、スイッチテンソルと等価である。スイッチ購買情報テーブル52は、表形式によって表現されているが、メモリ装置103内においては、3次元以上の配列データに、スイッチ購買情報テーブル52の内容が格納されてもよい。
ステップS200について更に詳しく説明する。
ここで、購買情報テーブル51中に存在する全データを、以下の数5のように表す。
Figure 0006175036
また、スイッチ購買情報テーブル52に記録される全データを、以下の数6のように表す。
Figure 0006175036
iは、ユーザを特定する識別子(ユーザID)に対応する。jは、商品を特定する識別子(商品ID)に対応する。kは、時刻を特定する識別子(時刻ID)に対応する。j'は、商品変化を特定する識別子(商品変化ID)に対応する。k'は、時区間を特定する識別子(時区間ID)に対応する。また、Iは、ユーザIDの総数を示す。Jは、商品IDの総数を示す。Kは、時刻IDの総数を示す。J'は、商品変化IDの総数を示す。K'は、時区間IDの総数を示す。
本実施の形態では、J'=2J、及びK'=K−1が成り立つように、スイッチテンソルが生成される例を示す。K'=K−1であるのは、(時刻k,時刻k+1)のように任意の隣り合う時刻の組を時区間k'として扱うため、時区間IDの総数は、時刻IDの総数よりも1小さくなるからである。J'がJの2倍になるのは、時区間(時刻k,時刻k+1)における商品の購買の変化の仕方として、購買テンソルの要素の値が、xijk=0、xijk+1=1のように、0から1に変化する場合と、xijk=1、xijk+1=0のように、1から0に変化する場合とのそれぞれに関して、別個に商品変化IDが設けられるからである。すなわち、一つの商品IDに関して二つの商品変化IDが設けられるからである。
ステップS200において、j'=2j−1である場合、すなわち、スイッチテンソルの奇数行に関しては、変換処理部12は、上述した数2に基づいて各要素の値を算出する。一方、j'=2jである場合、すなわち、スイッチテンソルの偶数行に関しては、変換処理部12は、上述した数3に基づいて各要素の値を算出する。
続いて、特徴行列推定部13は、スイッチ購買情報テーブル52が示すスイッチテンソルに対して非負値テンソル分解(NTF)を適用して、ユーザ特徴行列、商品変化特徴行列、及び時区間特徴行列の推定値を算出し、それぞれの算出結果を、ユーザ特徴テーブル53、商品変化特徴テーブル54、又は時区間特徴テーブル55に記録する(S300)。
図14は、ユーザ特徴テーブルの構成例を示す図である。図14において、ユーザ特徴テーブル53は、ユーザIDフィールド、クラスタIDフィールド、及びユーザ特徴値フィールドを有する。
ユーザIDフィールドには、ユーザIDが記録される。クラスタIDフィールドには、クラスタIDが記録される。クラスタIDは、クラスタごとの識別子である。ユーザ特徴値フィールドには、ユーザ特徴値が記録される。ユーザ特徴値は、当該ユーザIDに係るユーザの、当該クラスタIDに係るクラスタに対する特徴値(寄与度)である。なお、ユーザ特徴テーブル53の各フィールドに付与されているi、r、airは、ユーザ特徴行列における行、列、要素のそれぞれの識別子である。すなわち、ユーザ特徴テーブル53は、ユーザ特徴行列と等価である。
図15は、商品変化特徴テーブルの構成例を示す図である。図15において、商品変化特徴テーブル54は、商品変化IDフィールド、クラスタIDフィールド、及び商品変化特徴値フィールドを有する。
商品変化IDフィールドには、商品変化IDが記録される。クラスタIDフィールドには、クラスタIDが記録される。商品変化特徴値フィールドには、当該商品変化IDに係る商品変化の、当該クラスタIDに係るクラスタに対する特徴値(寄与度)が記録される。なお、商品変化特徴テーブル54の各フィールドに付与されているj、r、bjrは、商品変化特徴行列における行、列、要素のそれぞれの識別子である。すなわち、商品変化特徴テーブル54は、商品変化特徴行列と等価である。
図16は、時区間特徴テーブルの構成例を示す図である。図16において、時区間特徴テーブル55は、時区間IDフィールド、クラスタIDフィールド、及び時区間特徴値フィールドを有する。
時区間IDフィールドには、時区間IDが記録される。クラスタIDフィールドには、クラスタIDが記録される。時区間特徴値フィールドには、当該時区間IDに係る時区間の、当該クラスタIDに係るクラスタに対する特徴値(寄与度)が記録される。なお、時区間特徴テーブル55の各フィールドに付与されているk、r、ckrは、時区間特徴行列における行、列、要素のそれぞれの識別子である。すなわち、時区間特徴テーブル55は、時区間特徴行列と等価である。
続いて、特徴行列出力部14は、ユーザ特徴テーブル53、商品変化特徴テーブル54、及び時区間特徴テーブル55の内容を出力する(S400)。ステップS400は、上記の各ステップと同期的に実行されてもよいし、上記の各ステップとは非同期に実行されてもよい。例えば、入力装置107等を介して、システム管理者等によって出力指示が入力された際に、ステップS400が実行されてもよい。出力形態は、表示装置106への表示であってもよいし、プリンタへの出力(印刷)であってもよい。又は、ネットワークを介して、所定の装置への転送であってもよい。
出力対象は、ユーザ特徴テーブル53、商品変化特徴テーブル54、及び時区間特徴テーブル55の全ての行であってもよいし、出力指示において指定された範囲に限定されてもよい。例えば、出力対象を示す情報として、「商品変化特徴」及びクラスタIDが指定された場合は、商品変化特徴テーブル54において当該クラスタIDを含む行の商品IDフィールドの値、商品特徴値フィールドの値が出力されてもよい。更に、商品特徴値フィールドの値の降順にN件(例えば、10件)の商品IDが特定されることで、クラスタの商品変化特徴が分かりやすく出力されてもよい。
続いて、図11のステップS300の詳細について説明する。図17は、特徴行列の推定処理の処理手順の一例を説明するためのフローチャートである。図17の説明に関して、スイッチ購買情報テーブル52に記録されている全データは、数6に示した通りである。ユーザ特徴テーブル53に対応するユーザ特徴行列A、商品変化特徴テーブル54に対応する商品変化特徴行列B、時区間特徴テーブル55に対応する時区間特徴テーブル55Cを、それぞれ順番に、以下の数7、数8、数9として記す。
なお、以降の説明では、Iは、ユーザIDの総数、Jは、商品変化IDの総数、Kは、時区間IDの総数、Rは、クラスタIDの総数を示すこととする。また、iは、ユーザを特定する識別子(ユーザID)に対応し、jは、商品変化を特定する識別子(商品変化ID)に対応することとする。kは、時区間を特定する識別子(時区間ID)に対応する。rは、クラスタを特定する識別子(クラスタID)に対応することとする。
Figure 0006175036
Figure 0006175036
Figure 0006175036
ステップS310において、特徴行列推定部13は、ユーザ特徴行列A、商品変化特徴行列B、及び時区間特徴行列Cのそれぞれの要素の値(ユーザ特徴値、商品変化特徴値、及び時区間特徴値)を初期化する。これらの値は、例えば、乱数を用いてランダムによって生成されてもよい。但し、各値は、0以上である。特徴行列推定部13は、また、終了条件の閾値ε及び最大繰り返し回数を設定する。閾値εには、例えば、0.01が設定されてもよいし、他の値が設定されてもよい。最大繰り返し回数には、例えば、50又は100が設定されてもよいし、他の値が設定されてもよい。
続いて、特徴行列推定部13は、終了条件に用いる変数として、特徴更新の最大変化幅を示す変数δを、0に初期化する(S320)。
続いて、特徴行列推定部13は、以下の数10に示される更新式に基づいて、ユーザ特徴行列Aを更新する(S330)。
Figure 0006175036
特徴行列推定部13は、また、ユーザ特徴行列Aの各要素について、更新前の値と更新後の値との差の絶対値を算出し、算出された絶対値の中の最大値がδより大きければ、当該最大値によってδを更新する。なお、当該最大値は、以下の数11によって示される。また、当該最大値によるδの更新は、以下の数12によって示される。
Figure 0006175036
Figure 0006175036
数12において、記号「←」は、右辺の計算結果を左辺の変数に代入する処理を意味する。
続いて、特徴行列推定部13は、以下の数13に示される更新式に基づいて、商品変化特徴行列Bを更新する(S340)。
Figure 0006175036
特徴行列推定部13は、また、商品変化特徴行列Bの各要素について、更新前の値と更新後の値との差の絶対値を算出し、算出された絶対値の中の最大値がδより大きければ、当該最大値によってδを更新する。なお、当該最大値は、以下の数14によって示される。また、当該最大値によるδの更新は、以下の数15によって示される。
Figure 0006175036
Figure 0006175036
続いて、特徴行列推定部13は、以下の数16に示される更新式に基づいて、時区間特徴行列Cを更新する(S350)。
Figure 0006175036
特徴行列推定部13は、また、時区間特徴行列Cの各要素について、更新前の値と更新後の値との差の絶対値を算出し、算出された絶対値の中の最大値がδより大きければ、当該最大値によってδを更新する。なお、当該最大値は、以下の数17によって示される。また、当該最大値によるδの更新は、数18によって示される。
Figure 0006175036
Figure 0006175036
続いて、特徴行列推定部13は、ステップS320〜S350に関する繰り返し回数に1を加算する(S360)。繰り返し回数の初期値は、0である。したがって、ステップS320〜S350が初めて実行された場合、繰り返し回数は1に更新される。
続いて、特徴行列推定部13は、繰り返し回数が最大繰り返し回数を超えるか否か、又は変数δの値が閾値ε未満であるか否かを判定する(S370)。繰り返し回数が最大繰り返し回数以下であり、かつ、変数δの値が、閾値ε以上である場合(S370でNo)、特徴行列推定部13は、ステップS320以降を繰り返す。繰り返し回数が最大繰り返し回数を超える場合、又は変数δの値が閾値ε未満である場合(S370でYes)、図17の処理は終了する。
なお、数10、数13、及び数16より明らかなように、ユーザ特徴値、商品変化特徴値、及び時区間特徴値は、相互に依存関係を有する。すなわち、いずれかの特徴値が変化すると、他の特徴値も変化する。そこで、図17では、各特徴値を繰り返し更新しながら、数4を満たすような各特徴値の近似値が探索される。
なお、数10、数13、及び数16の各更新式は、全てのユーザi、全ての商品j、及び全ての時区間kについて、
Figure 0006175036
が成立する時に、左辺と右辺が一致し、更新の最大変化幅を示す変数δの値が閾値ε未満となるため、各特徴行列の更新が停止する。また、或るユーザiについて、全てのj及び全てのkについて、
Figure 0006175036
である時に、数10の更新式に基づいてユーザ特徴行列Aの更新が行われると、右辺の分子が右辺の分母より大きくなるため、airが更新前の値よりも大きくなるように更新されることになる。すなわち、
Figure 0006175036
の値が大きくなるように(数19の状態に近付くように)、airが更新されることになる。
上述したように、本実施の形態によれば、複数のユーザに関して、時間の経過に応じた商品の購買傾向又は購買行動の変化の傾向を抽出可能とすることができる。
なお、本実施の形態では、ユーザごとの各時刻における商品の購買行動を示す購買テンソルに対するスイッチテンソルが生成され、当該スイッチテンソルからクラスタ抽出が行われる例を説明したが、本実施の形態は、ユーザごとの各時刻における商品の購買以外の情報に関して適用されてもよい。例えば、各ユーザが、いずれの店舗をいずれの時刻に訪問したのかを示すテンソル等、商品、ユーザ、時刻のように、それぞれに識別子を付与して識別可能であり、テンソル形式によって表現可能な情報であれば、各種の情報に関して本実施の形態が適用されてもよい。すなわち、本実施の形態は、複数の事象に関して、時間の経過に応じて変化する特徴量を含む情報に関して適用することができる。そして、当該情報は、3次元以上の情報であってもよい。したがって、本実施の形態によれば、複数の事象に関して時間の経過に応じた特徴量の変化の傾向を抽出可能とすることができる。
なお、本実施の形態において、複数のユーザ(による商品の購買)は、複数の事象の一例である。商品の購買傾向は、特徴量の一例である。購買テンソルは、複数の事象に関して時間の経過に応じた特徴量を示す情報の一例である。時区間は、単位期間の一例である。スイッチテンソルは、単位期間ごとの特徴量の変化の継続時間に応じた非負値を含む配列の一例である。変換処理部12は、生成部の一例である。非負値テンソル分解は、因子分解の一例である。特徴行列推定部13は、抽出部の一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
10 クラスタ抽出装置
11 購買情報入力部
12 変換処理部
13 特徴行列推定部
14 特徴行列出力部
15 入出力制御部
51 購買情報テーブル
52 スイッチ購買情報テーブル
53 ユーザ特徴テーブル
54 商品変化特徴テーブル
55 時区間特徴テーブル
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
106 表示装置
107 入力装置
B バス

Claims (5)

  1. 複数の事象に関して時間の経過に応じた特徴量を示す情報に基づいて、前記事象ごとに、単位期間ごとの前記特徴量の変化の継続時間に応じた非負値を含む配列を生成する生成部と、
    前記生成部によって生成された配列に対して因子分解を適用して、前記特徴量の変化の傾向をクラスタ抽出する抽出部と、
    を有することを特徴とするクラスタ抽出装置。
  2. 前記抽出部は、前記生成部によって生成された配列に対して非負値テンソル分解を適用して、前記特徴量の変化の傾向をクラスタ抽出する、
    ことを特徴とする請求項1記載のクラスタ抽出装置。
  3. 前記生成部は、複数の購買者に関して時間の経過に応じた各商品の購買傾向を示す情報に基づいて、前記購買者ごとに、前記単位期間ごとの各商品の購買傾向の変化の継続時間に応じた非負値を含む配列を生成する、
    ことを特徴とする請求項1又は2記載のクラスタ抽出装置。
  4. コンピュータが、
    複数の事象に関して時間の経過に応じた特徴量を示す情報に基づいて、前記事象ごとに、単位期間ごとの前記特徴量の変化の継続時間に応じた非負値を含む配列を生成する生成手順と、
    前記生成手順において生成された配列に対して因子分解を適用して、前記特徴量の変化の傾向をクラスタ抽出する抽出手順と、
    を実行することを特徴とするクラスタ抽出方法。
  5. コンピュータに、
    複数の事象に関して時間の経過に応じた特徴量を示す情報に基づいて、前記事象ごとに、単位期間ごとの前記特徴量の変化の継続時間に応じた非負値を含む配列を生成する生成手順と、
    前記生成手順において生成された配列に対して因子分解を適用して、前記特徴量の変化の傾向をクラスタ抽出する抽出手順と、
    を実行させるクラスタ抽出プログラム。
JP2014153647A 2014-07-29 2014-07-29 クラスタ抽出装置、クラスタ抽出方法、及びクラスタ抽出プログラム Active JP6175036B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014153647A JP6175036B2 (ja) 2014-07-29 2014-07-29 クラスタ抽出装置、クラスタ抽出方法、及びクラスタ抽出プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014153647A JP6175036B2 (ja) 2014-07-29 2014-07-29 クラスタ抽出装置、クラスタ抽出方法、及びクラスタ抽出プログラム

Publications (2)

Publication Number Publication Date
JP2016031639A JP2016031639A (ja) 2016-03-07
JP6175036B2 true JP6175036B2 (ja) 2017-08-02

Family

ID=55441983

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014153647A Active JP6175036B2 (ja) 2014-07-29 2014-07-29 クラスタ抽出装置、クラスタ抽出方法、及びクラスタ抽出プログラム

Country Status (1)

Country Link
JP (1) JP6175036B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6635418B2 (ja) * 2016-06-07 2020-01-22 日本電信電話株式会社 流量予測装置、パターン推定装置、流量予測方法、パターン推定方法、及びプログラム
US11789731B2 (en) 2019-02-20 2023-10-17 Nec Corporation Tensor decomposition processing system, method and program
JP7294421B2 (ja) * 2019-06-26 2023-06-20 日本電信電話株式会社 学習装置、予測装置、学習方法、予測方法、学習プログラム、及び予測プログラム
JP2021096511A (ja) * 2019-12-13 2021-06-24 富士通株式会社 学習データ生成方法、学習データ生成プログラムおよび情報処理装置
JP7363724B2 (ja) * 2020-09-10 2023-10-18 日本電信電話株式会社 分析装置、分析方法、及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3119082B2 (ja) * 1994-08-23 2000-12-18 松下電器産業株式会社 在室予測装置及びそれを用いた応用機器
US7475027B2 (en) * 2003-02-06 2009-01-06 Mitsubishi Electric Research Laboratories, Inc. On-line recommender system
JP4993339B2 (ja) * 2006-03-30 2012-08-08 Kddi株式会社 潜在クラス抽出方法および装置ならびに潜在クラス抽出プログラムおよびその記録媒体

Also Published As

Publication number Publication date
JP2016031639A (ja) 2016-03-07

Similar Documents

Publication Publication Date Title
JP6175036B2 (ja) クラスタ抽出装置、クラスタ抽出方法、及びクラスタ抽出プログラム
Ray On Haar wavelet operational matrix of general order and its application for the numerical solution of fractional Bagley Torvik equation
Bajari et al. Machine learning methods for demand estimation
WO2019114413A1 (zh) 模型训练
Golyandina et al. The “Caterpillar”-SSA method for analysis of time series with missing values
Agarwal et al. Improvement heuristic for the flow-shop scheduling problem: An adaptive-learning approach
JP4847916B2 (ja) 購買順序を考慮したリコメンド装置、リコメンド方法、リコメンドプログラムおよびそのプログラムを記録した記録媒体
US10102479B2 (en) Method for projecting out irreducible representations from a quantum state of n particles with d colors
JP6715469B2 (ja) 評価装置及び評価方法
JP4751242B2 (ja) リコメンド装置、リコメンド方法、リコメンドプログラムおよびそのプログラムを記録した記録媒体
JP2015230570A (ja) 学習モデル作成装置、判定システムおよび学習モデル作成方法
CN108874529B (zh) 分布式计算系统、方法及存储介质
JP6101620B2 (ja) 購買予測装置、方法、及びプログラム
WO2021049365A1 (ja) 情報処理装置、情報処理方法、及びプログラム
Jowaheer et al. A BINAR (1) time-series model with cross-correlated COM–Poisson innovations
CN110288444B (zh) 实现用户相关推荐的方法和系统
JP7448857B2 (ja) 情報処理装置、情報処理方法、および、プログラム
JP2013101608A (ja) 非線形構造解析計算装置、非線形構造解析計算方法及び非線形構造解析計算プログラム
JP2015187773A (ja) データ解析装置、データ解析プログラム及びデータ解析方法
JP5835802B2 (ja) 購買予測装置、方法、及びプログラム
Montoro-Cazorla et al. A warmstandby system under shocks and repair governed by MAPs
JP7310827B2 (ja) 学習装置、学習方法、及びプログラム
JP2016031678A (ja) クラスタ抽出装置及び方法及びプログラム
JP6300572B2 (ja) データ分析プログラム、及びデータ分析装置
WO2015163322A1 (ja) データ分析装置、データ分析方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170626

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170704

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170707

R150 Certificate of patent or registration of utility model

Ref document number: 6175036

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150