JP7184155B2 - テンソル分解処理システム、方法およびプログラム - Google Patents

テンソル分解処理システム、方法およびプログラム Download PDF

Info

Publication number
JP7184155B2
JP7184155B2 JP2021501201A JP2021501201A JP7184155B2 JP 7184155 B2 JP7184155 B2 JP 7184155B2 JP 2021501201 A JP2021501201 A JP 2021501201A JP 2021501201 A JP2021501201 A JP 2021501201A JP 7184155 B2 JP7184155 B2 JP 7184155B2
Authority
JP
Japan
Prior art keywords
tensor
decomposition
factors
tensor decomposition
unit
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
JP2021501201A
Other languages
English (en)
Other versions
JPWO2020170358A1 (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2020170358A1 publication Critical patent/JPWO2020170358A1/ja
Application granted granted Critical
Publication of JP7184155B2 publication Critical patent/JP7184155B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering

Description

本発明は、与えられたテンソルに対してテンソル分解を実行するテンソル分解処理システム、テンソル分解処理方法、および、テンソル分解処理プログラムに関する。
特許文献1には、ネットワークを構成する複数の要素のコストを推定するためのモデルを、テンソル分解によって得ることが記載されている。
特開2018-112884号公報
テンソルに対してテンソル分解を実行することによって得られる因子に基づいてデータ分析を行うことが考えられる。ただし、1回のテンソル分解で、データ分析に適した因子が得られるとは限らない。
また、テンソル分解で用いられるパラメータである初期値を変更して、テンソル分解をやり直すことが考えられる。しかし、分析者にとっては、どのような初期値に変更すれば、データ分析に適した因子が得られるのかが分からない。
そこで、本発明は、与えられたテンソルに対するテンソル分解によって得られる因子を網羅的に求めることができるテンソル分解処理システム、テンソル分解処理方法、および、テンソル分解処理プログラムを提供することを目的とする。
本発明によるテンソル分解処理システムは、所定の終了条件が満たされるまで、与えられたテンソルに対して複数回のテンソル分解を実行する分解実行部と、所定の終了条件が満たされたか否かを判定する条件判定部とを備え、分解実行部が、テンソルに対してテンソル分解を実行するときに、当該テンソル分解よりも前に実行したテンソル分解によって得られた因子と異なる因子を得るという制約のもとで、当該テンソル分解を実行し、与えられたテンソルに対する複数回のテンソル分解によって得られた因子をクラスタリングするクラスタリング部を備えることを特徴とする。
本発明によるテンソル分解処理方法は、コンピュータが、所定の終了条件が満たされるまで、与えられたテンソルに対して複数回のテンソル分解を実行し、所定の終了条件が満たされたか否かを判定し、テンソルに対してテンソル分解を実行するときに、当該テンソル分解よりも前に実行したテンソル分解によって得られた因子と異なる因子を得るという制約のもとで、当該テンソル分解を実行し、与えられたテンソルに対する複数回のテンソル分解によって得られた因子をクラスタリングすることを特徴とする。
本発明によるテンソル分解処理プログラムは、コンピュータに、所定の終了条件が満たされるまで、与えられたテンソルに対して複数回のテンソル分解を実行する分解実行処理、および、所定の終了条件が満たされたか否かを判定する条件判定処理を実行させ、コンピュータに、分解実行処理で、テンソルに対してテンソル分解を実行させるときに、当該テンソル分解よりも前に実行したテンソル分解によって得られた因子と異なる因子を得るという制約のもとで、当該テンソル分解を実行させ、コンピュータに、与えられたテンソルに対する複数回のテンソル分解によって得られた因子をクラスタリングするクラスタリング処理を実行させることを特徴とする。
本発明によれば、与えられたテンソルに対するテンソル分解によって得られる因子を網羅的に求めることができる。
テンソルXの近似を示す式(1)を模式的に表した模式図である。 J個の因子から得られる各テンソルの和によるテンソルXの近似を示す模式図である。 本発明の第1の実施形態のテンソル分解処理システムの例を示すブロック図である。 本発明の第1の実施形態のテンソル分解処理システムの処理経過の例を示すフローチャートである。 因子に含まれる各列ベクトルに基づいて表示されるグラフの例を示す模式図である。 本発明の第2の実施形態のテンソル分解処理システムの例を示すブロック図である。 本発明の第2の実施形態のテンソル分解処理システムの処理経過の例を示すフローチャートである。 本発明の各実施形態のテンソル分解処理システムに係るコンピュータの構成例を示す概略ブロック図である。 本発明のテンソル分解処理システムの概要を示すブロック図である。
まず、テンソル分解について説明する。テンソル分解とは、テンソルを、よりランクの低いテンソルを表現するための因子の組み合わせで表すことである。
また、テンソル分解の一例として、CP(Canonical Polyadic)分解が挙げられる。以下では、CP分解を例にして、テンソル分解を説明する。
テンソル分解の対象となるテンソルは、2階以上のテンソルである。以下、テンソル分解の対象となるテンソルをXで表す。また、以下では、説明を簡単にするために、テンソルXが3階のテンソルである場合を例にして説明する。
テンソルXは、以下に示す式(1)のように近似することができる。
Figure 0007184155000001
式(1)において、A,B,Cはそれぞれ行列であり、Xが3階のテンソルであるならば、Xは、3つの行列A,B,Cを用いて近似される。XがN階のテンソルであるならば、Xは、N個の行列を用いて近似される。なお、式(1)において、行列A,B,Cの左下に付した値は、コアテンソルIに対して、行列をどの方向から乗算するのかを示している。この点は、後述の例においても同様である。
Iは、コアテンソルであり、コアテンソルIの要素は、以下に示すように表される。
Figure 0007184155000002
また、以下に示す式(2)が成立しているものとする。
Figure 0007184155000003
すなわち、Aは、I行J列の行列である。Bは、I行J列の行列である。Cは、I行J列の行列である。従って、テンソルの近似に用いられる各行列の列数は共通であり、ここでは、その列数をJとしている。ただし、行列や、行列に含まれる列ベクトルを図示する場合において、便宜的に、行列や列ベクトルを転置した状態で図示する場合がある。
式(1)を模式的に図示すると、図1に示すように表すことができる。図1において、行列B,Cを、便宜的に、転置した状態で図示している。
テンソルの近似に用いられる複数の行列における、対応する列の列ベクトルの組み合わせを因子と呼ぶ。例えば、Aの1列目の列ベクトル、Bの1列目の列ベクトル、および、Cの1列目の列ベクトルの組み合わせが1つの因子となる。同様に、Aの2列目の列ベクトル、Bの2列目の列ベクトル、および、Cの2列目の列ベクトルの組み合わせが1つの因子となる。また、AのJ列目の列ベクトル、BのJ列目の列ベクトル、および、CのJ列目の列ベクトルの組み合わせが1つの因子となる。ここでは、各行列の1列目、2列目およびJ列目を例にして説明したが、他の列に関しても、列毎に因子が定まる。行列A、B,Cは、1列目の列ベクトルからJ列目の列ベクトルまでのJ個の列ベクトルを含む。従って、J個の因子が得られる。
また、1つの因子に含まれる列ベクトルの外積計算によって、Xよりもランクが低いテンソルが得られる。例えば、Aの1列目の列ベクトルをA、Bの1列目の列ベクトルをB、および、Cの1列目の列ベクトルをCとすると、以下に示す外積計算によってテンソルが得られる。
Figure 0007184155000004
なお、外積計算を、以下に示す記号
Figure 0007184155000005
で表すこととする。
J個の因子から得られる各テンソルの和で、テンソル分解の対象となるテンソルXを近似することができる。このことを、模式的に図2に示す。
既に説明したように、テンソル分解とは、テンソルを、よりランクの低いテンソルを表現するための因子の組み合わせで表すことである。ただし、1つのテンソルXに対するテンソル分解によって得られるJ個の因子の組み合わせは1通りに限定されるわけではない。
なお、因子数Jは、予め定められた値である。
前述のように、本発明では、与えられたテンソルに対するテンソル分解によって得られる因子を網羅的に求めることができるようにすることを目的としている。
以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
図3は、本発明の第1の実施形態のテンソル分解処理システムの例を示すブロック図である。本発明のテンソル分解処理システム1は、入力部2と、分解実行部3と、分解結果記憶部4と、条件判定部5と、出力部6とを備える。
入力部2は、テンソル分解の対象となるテンソルXと、1回のテンソル分解によって求める因子の数Jと、重みλと、分解実行部3がテンソルXに対して繰り返し実行するテンソル分解の終了条件とが入力される入力デバイスである。例えば、入力部2は、データ記録媒体からテンソルXと、1回のテンソル分解によって求める因子の数Jと、重みλと、終了条件とを読み込むデータ読み込み装置(例えば、オプティカルディスクドライブ)等の入力デバイスであってもよい。
テンソル分解の対象となるテンソルXは、2階以上のテンソルである。
重みλは、分解実行部3がテンソルXに対するテンソル分解を実行する際の制約において用いられる。この制約については、後述する。
また、終了条件の具体例についても、後述する。
分解実行部3は、終了条件が満たされるまで、入力されたテンソルXに対して、複数回のテンソル分解を実行する。分解実行部3は、テンソル分解としてCP分解を実行してもよい。
このとき、分解実行部3は、テンソルXに対してテンソル分解を実行するときに、そのテンソル分解よりも前に実行したテンソルXのテンソル分解によって得られた因子とは異なる因子を得るという制約のもとで、テンソル分解を実行する。例えば、テンソルXに対して2回目のテンソル分解を実行する場合、分解実行部3は、テンソルXに対する1回目のテンソル分解で得られた因子とは異なる因子を得るという制約のもとで、2回目のテンソル分解を実行する。また、例えば、テンソルXに対して3回目のテンソル分解を実行する場合、分解実行部3は、テンソルXに対する1回目や2回目のテンソル分解で得られた因子とは異なる因子を得るという制約のもとで、3回目のテンソル分解を実行する。従って、分解実行部3は、テンソルXに対する各回のテンソル分解でそれぞれ異なる因子を得る。
以下、分解実行部3がテンソルXに対してテンソル分解を実行する際の制約を具体的に示す。以下に示す例では、前述の例と同様に、Xが3階のテンソルであり、J個の因子を規定する行列の数が3つであるものとする。そして、前述の例と同様に、この3つの行列を行列A,B,Cと記す。行列A,B,Cの列の数は、いずれもJである。
分解実行部3がテンソルXに対するT回目のテンソル分解を実行するときの制約は、以下に示す式(3)のように表すことができる。
Figure 0007184155000006
式(3)において、行列A,B,Cの右上に括弧付きで示した添え字は、Xに対する何回目のテンソル分解で得られた行列であるかを示している。例えば、A(t),B(t),C(t)は、Xに対するt回目のテンソル分解で得られた行列A,B,Cを意味している。
上記の式(3)に含まれている以下の式(4)は、テンソル分解によって得られる因子によって元のテンソルXがどの程度近似できるかを示している。
Figure 0007184155000007
式(4)の値が小さいほど、テンソル分解によって得られる因子によって元のテンソルXが近似できることを表わし、式(4)の値が大きい程、テンソル分解によって得られる因子によるテンソルXの近似の精度が低いことを表わしている。
上記の式(3)に含まれている以下の式(5)は、t回目のテンソル分解で得られる因子と、t-1回目以前の各回のテンソル分解で得られた因子とがどの程度異なっているかを示している。
Figure 0007184155000008
式(5)の値が小さいほど、t回目のテンソル分解で得られる因子と、t-1回目以前の各回のテンソル分解で得られた因子とが異なっていることを表わす。また、式(5)の値が大きいほど、t回目のテンソル分解で得られる因子と、t-1回目以前の各回のテンソル分解で得られた因子とが類似していることを表わす。
式(5)における演算Ω({A(τ),B(τ),C(τ)},{A(t),B(t),C(t)})(以下、単に演算Ωと記す。)は、t回目のテンソル分解で得られる因子と、t-1回目以前のテンソル分解で得られた因子とが異なるほど小さな値が得られ、類似しているほど大きな値が得られる演算である。
このような演算Ωの具体例として、以下に示す式(6)に示す演算が挙げられる。
Figure 0007184155000009
式(6)において、右下に添え字を付して表したAは、行列Aの列ベクトルを意味し、その右下の添え字は、行列Aにおける何列目の列ベクトルであるかを示している。例えば、式(6)に示した“A (t)”は、t回目のテンソル分解で得られた行列Aにおけるk列目の列ベクトルを表わしている。
右下に添え字を付して表したB,Cに関しても同様である。すなわち、右下に添え字を付して表したB,Cは、いずれも列ベクトルを表わす。
なお、既に説明したように、以下に示す記号
Figure 0007184155000010
は、外積計算を表わす。
式(3)は、式(4)と式(5)の和が最小となる行列A,B,Cを求めるという制約を表わしている。なお、行列A,B,Cを求めるということは、J個の因子を求めることと同義である。
式(3)で表される制約は、T回目のテンソル分解において、テンソルXを近似できる因子を求めること、および、以前のテンソル分解で得た因子とは異なる因子を求めることという制約を意味する。また、入力部2に入力された重みλは、前のテンソル分解で得た因子とは異なる因子を求めるという制約に関する重みである。
また、分解実行部3は、テンソルXに対するテンソル分解の回数に応じて、式(3)における“T”の値を設定することによって、テンソル分解の制約を更新する。例えば、分解実行部3は、次回のテンソル分解がS回目のテンソル分解であるならば、式(3)における“T”にSを代入することによって、制約を更新する。
また、分解実行部3は、テンソルXに対するテンソル分解を実行する毎に、テンソル分解の結果として得られる因子を分解結果記憶部4に記憶させる。
分解結果記憶部4は、テンソル分解の結果として得られる因子を記憶する記憶装置である。
条件判定部5は、分解実行部3がテンソルXに対して繰り返し実行するテンソル分解の終了条件が満たされたか否かを判定する。終了条件が満たされたと判定された後、分解実行部3はテンソルXに対するテンソル分解を行わない。
終了条件の例として、例えば、分解実行部3がテンソルXに対して実行したテンソル分解の回数が予め定められた回数に達したことが挙げられる。
また、終了条件の他の例として、テンソルXに対する直近のテンソル分解で、前述の式(4)の値が、閾値(αとする。)以下となるJ個の因子が得られなかったことが挙げられる。テンソルXに対する直近のテンソル分解で、式(4)の値が、閾値α以下となるJ個の因子が得られなかったということは、得られた因子によるテンソルXの近似の精度が許容できない程度まで低下したことを意味する。閾値αは、予め定めておけばよい。
また、終了条件の他の例として、テンソルXに対する直近のテンソル分解で、前述の式(5)の値が、閾値(βとする。)以下となるJ個の因子が得られなかったことが挙げられる。テンソルXに対する直近のテンソル分解で、式(5)の値が、閾値β以下となるJ個の因子が得られなかったということは、これまでに実行したテンソル分解で得られた因子と異なる因子が得られなくなったことを意味する。閾値βは、予め定めておけばよい。
終了条件は、上記のように例示した条件以外の条件であってもよい。
終了条件は、予め定められ、入力部2に入力される。
出力部6は、終了条件が満たされたと判定された後、分解結果記憶部4に記憶されている各因子(各回のテンソル分解で得られた各因子)を出力する。例えば、出力部6は、各因子を、テンソル分解処理システム1が備えるディスプレイ装置(図3において図示略)上に表示する。
分解実行部3、条件判定部5および出力部6は、例えば、テンソル分解処理プログラムに従って動作するコンピュータのCPU(Central Processing Unit )によって実現される。例えば、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体からテンソル分解処理プログラムを読み込み、そのテンソル分解処理プログラムに従って、分解実行部3、条件判定部5および出力部6として動作すればよい。また、分解結果記憶部4は、例えば、コンピュータが備える記憶装置によって実現される。
次に、処理経過について説明する。図4は、本発明の第1の実施形態のテンソル分解処理システムの処理経過の例を示すフローチャートである。
まず、入力部2に、テンソルXと、1回のテンソル分解によって求める因子の数Jと、重みλと、終了条件とが入力される(ステップS1)。
次に、分解実行部3が、テンソルXに対するテンソル分解を実行する(ステップS2)。1回目のテンソル分解(すなわち、1回目のステップS2)では、分解実行部3は、制約なしで、テンソルXに対するテンソル分解を実行してよい。
本例では、Xに対する1回のテンソル分解でJ個の因子が得られる。ステップS2の後、分解実行部3は、ステップS2でのテンソル分解によって得たJ個の因子を分解結果記憶部4に記憶させる(ステップS3)。
ステップS3の後、分解実行部3は、テンソルXに対する次回のテンソル分解の制約を定める(ステップS4)。分解実行部3は、テンソルXに対する次回のテンソル分解(ステップS2)がS回目のテンソル分解(ステップS2)であるならば、制約を表わす式(3)における“T”にSを代入することによって、次回のテンソル分解の制約を定める。例えば、次回のテンソル分解が2回目のテンソル分解であるならば、制約を表わす式(3)における“T”に2を代入することによって、次回のステップS2における制約を定める。
ステップS4の後、条件判定部5は、ステップS1で入力された終了条件が満たされたか否かを判定する(ステップS5)。
終了条件が満たされていない場合(ステップS5のNo)、分解実行部3は、ステップS2以降の処理を繰り返す。分解実行部3は、2回目以降のステップS2を実行するときには、直近のステップS4で定められた制約のもとで、テンソルXに対するテンソル分解を再度、実行する。すなわち、分解実行部3は、これまでのテンソル分解(換言すれば、これまでのステップS2)で得られた因子と異なる因子を得るという制約のもとで、テンソルXに対するテンソル分解を再度、実行する。
そして、ステップS5で終了条件が満たされたと判定されるまで、テンソル分解処理システム1は、ステップS2~S5の処理を繰り返す。
終了条件が満たされたと判定された場合(ステップS5のYes)、出力部6は、分解結果記憶部4に記憶されている各因子を出力する(ステップS6)。例えば、出力部6は、各因子を、テンソル分解処理システム1が備えるディスプレイ装置(図3において図示略)上に表示する。以下、出力部6が各因子をディスプレイ装置上に表示する場合を例にして説明する。
出力部6は、1つの因子を表示する際、1つの因子に含まれる各列ベクトルに基づいてグラフを表示してもよい。因子に含まれる各列ベクトルに基づいて表示されるグラフの例を図5に示す。図5では、1つの因子に3つの列ベクトルが含まれ、1つの因子に基づいて3つのグラフが表示される例を示している。
本実施形態によれば、テンソル分解処理システム1は、終了条件が満たされたと判定されるまでステップS2~S5の処理を繰り返す。そして、分解実行部3は、ステップS2で、これまでのテンソル分解で得られた因子と異なる因子を得るという制約のもとで、テンソルXに対するテンソル分解を実行する。従って、本実施形態によれば、与えられたテンソルXに対するテンソル分解によって得られる因子を網羅的に求めることができる。
その結果、分析者は、そのように網羅的に得られた個々の因子を確認して、データ分析に適切な因子を選択することができる。すなわち、分析者は、データ分析に適した因子を得ることができる。また、分析者は、個々の因子を確認するときに、図5に例示するように表示されたグラフを確認することよって、データ分析に適切な因子を判断してもよい。
実施形態2.
図6は、本発明の第2の実施形態のテンソル分解処理システムの例を示すブロック図である。第1の実施形態と同様の要素については、図3と同一の符号を付し、説明を省略する。
第2の実施形態のテンソル分解処理システム1は、入力部2と、分解実行部3と、分解結果記憶部4と、条件判定部5と、クラスタリング部7と、順序付け部8と、出力部6とを備える。入力部2、分解実行部3、分解結果記憶部4および条件判定部5は、第1の実施形態におけるそれらの要素と同様であり、説明を省略する。
クラスタリング部7は、終了条件が満たされたと判定されるまでに得られた因子に対してクラスタリングを行い、複数の因子をクラスタに分類する。テンソルXに対する1回のテンソル分解でJ個の因子が得られる。終了条件が満たされたと判定されるまでに、P回のテンソル分解が実行された場合、J×P個の因子が得られ、それらの因子は分解結果記憶部4に記憶されている。クラスタリング部7は、各因子を分解結果記憶部4から読み込み、因子を複数のクラスタに分類する。
クラスタリング部7は、類似する因子同士が同じクラスタに属するように、分解結果記憶部4から読み込んだ因子をクラスタリングする。類似する因子同士が同じクラスタに属するようにクラスタリングする方法の一例として、例えば、k-means法がある。クラスタリング部7は、分解結果記憶部4から読み込んだ因子(換言すれば、テンソルXに対する複数回のテンソル分解によって得られた複数の因子)を、k-means法によってクラスタリングしてもよい。
順序付け部8は、クラスタリング部7によって得られたクラスタ毎に、クラスタに属する因子の順序付けを行う。因子の順序付けの基準は、与えられたテンソルXの近似に寄与している度合いである。すなわち、順序付け部8は、与えられたテンソルXの近似に寄与している度合いが大きい順に、クラスタに属している因子の順序付けを行う。
与えられたテンソルXの近似に寄与している度合いについて説明する。着目している因子から得られるテンソルをYとする。Yは、因子に含まれている各列ベクトルの外積計算によって得られる。テンソルXの近似に寄与している度合いは、||X-Y||と表すことができる。||X-Y||が小さいほど、テンソルXの近似に寄与している度合いが大きく、||X-Y||が大きいほど、テンソルXの近似に寄与している度合いが小さい。従って、順序付け部8は、1つのクラスタにおいて、そのクラスタに属している因子毎に||X-Y||を算出し、||X-Y||が小さい順に、そのクラスタに属している因子を順序付けすればよい。そして、順序付け部8は、この処理をクラスタ毎に行えばよい。
出力部6は、第1の実施形態と同様に、分解結果記憶部4に記憶されている各因子をディスプレイ装置(図6において図示略)上に表示する。
さらに、出力部6は、クラスタ毎に、クラスタに属する因子をディスプレイ装置上に表示する。このとき、出力部6は、各クラスタにおいて、順序付け部8によって順序付けされた順に因子をディスプレイ装置上に表示する。
分解実行部3、条件判定部5、クラスタリング部7、順序付け部8および出力部6は、例えば、テンソル分解処理プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体からテンソル分解処理プログラムを読み込み、そのテンソル分解処理プログラムに従って、分解実行部3、条件判定部5、クラスタリング部7、順序付け部8および出力部6として動作すればよい。
図7は、本発明の第2の実施形態のテンソル分解処理システムの処理経過の例を示すフローチャートである。ステップS1~S5は、第1の実施形態のステップS1~S5と同様であり、説明を省略する。
ステップS5において終了条件が満たされたと判定された場合(ステップS5のYes)、クラスタリング部7は、テンソルXにする複数回のテンソル分解によって得られた因子をクラスタリングする(ステップS11)。具体的には、クラスタリング部7は、分解結果記憶部4に記憶されている因子を読み込み、その因子をクラスタリングする。クラスタリング部7は、例えば、k-means法によって、因子をクラスタリングすればよい。ステップS11の結果、複数のクラスタが得られる。そして、個々のクラスタには、類似する因子が属している。
次に、順序付け部8は、ステップS11で得られたクラスタ毎に、テンソルXの近似に寄与している度合いが大きい順に、クラスタに属している因子の順序付けを行う(ステップS12)。既に説明したように、着目している因子から得られるテンソルをYとした場合、順序付け部8は、1つのクラスタにおいて、そのクラスタに属している因子毎に||X-Y||を算出し、||X-Y||が小さい順に、そのクラスタに属している因子を順序付けすればよい。そして、順序付け部8は、この処理をクラスタ毎に行えばよい。
ステップS12の次に、出力部6は、分解結果記憶部4に記憶されている各因子をディスプレイ装置上に表示する。さらに、出力部6は、クラスタ毎に、クラスタに属する因子をディスプレイ装置上に表示する。このとき、出力部6は、各クラスタにおいて、順序付け部8によって順序付けされた順に因子をディスプレイ装置上に表示する(ステップS13)。
なお、ステップS13において、順序付けされた順に因子をディスプレイ装置上に表示する処理をクラスタ毎に行う場合、クラスタによらずに各因子をディスプレイ装置上に表示する処理を省略してもよい。
また、第1の実施形態で説明したように、出力部6は、1つの因子を表示する際、1つの因子に含まれる各列ベクトルに基づいてグラフを表示してもよい。
本実施形態によれば、第1の実施形態と同様の効果が得られる。さらに、第2の実施形態によれば、類似する因子が同じクラスタに分類されるので、因子の解釈容易性を向上させることができる。また、分析者がデータの全体像を理解しやすくなるという効果も得られる。
また、第2の実施形態では、順序付け部8が、クラスタ毎に、テンソルXの近似に寄与している度合いが大きい順に、クラスタに属している因子の順序付けを行う。従って、分析者に、どの因子が重要であるのかを示すことができる。
図8は、本発明の各実施形態のテンソル分解処理システム1に係るコンピュータの構成例を示す概略ブロック図である。コンピュータ1000は、CPU1001と、主記憶装置1002と、補助記憶装置1003と、インタフェース1004と、ディスプレイ装置1005と、入力デバイス1006とを備える。
本発明の各実施形態のテンソル分解処理システム1は、コンピュータ1000によって実現される。テンソル分解処理システム1の動作は、テンソル分解処理プログラムの形式で補助記憶装置1003に記憶されている。CPU1001は、そのテンソル分解処理プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開し、そのテンソル分解処理プログラムに従って上記の各実施形態で説明した処理を実行する。
補助記憶装置1003は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD-ROM(Compact Disk Read Only Memory )、DVD-ROM(Digital Versatile Disk Read Only Memory )、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ1000に配信される場合、配信を受けたコンピュータ1000がそのプログラムを主記憶装置1002に展開し、そのプログラムに従って上記の各実施形態で説明した処理を実行してもよい。
また、プログラムは、前述の処理の一部を実現するためのものであってもよい。さらに、プログラムは、補助記憶装置1003に既に記憶されている他のプログラムとの組み合わせで前述の処理を実現する差分プログラムであってもよい。
また、各構成要素の一部または全部は、汎用または専用の回路(circuitry )、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
次に、本発明の概要について説明する。図9は、本発明のテンソル分解処理システムの概要を示すブロック図である。本発明のテンソル分解処理システムは、分解実行部3と、条件判定部5とを備える。
分解実行部3は、所定の終了条件が満たされるまで、与えられたテンソルに対して複数回のテンソル分解を実行する。
条件判定部5は、所定の終了条件が満たされたか否かを判定する。
分解実行部3は、テンソルに対してテンソル分解を実行するときに、当該テンソル分解よりも前に実行したテンソル分解によって得られた因子と異なる因子を得るという制約のもとで、当該テンソル分解を実行する。
そのような構成によって、与えられたテンソルに対するテンソル分解によって得られる因子を網羅的に求めることができる。
また、与えられたテンソルに対する複数回のテンソル分解によって得られた因子をクラスタリングするクラスタリング部(例えば、クラスタリング部7)を備える構成であってもよい。
また、クラスタリング部が、因子をk-means法によってクラスタリングする構成であってもよい。
また、クラスタ毎に、クラスタに属している因子を、与えられたテンソルの近似に寄与する順に順序付けする順序付け部(例えば、順序付け部8)を備える構成であってもよい。
また、順序付け部が、与えられたテンソルをXとし、個々の因子をYとしたときに、クラスタ毎に、||X-Y||が小さい順に、クラスタに属している因子を順序付けする構成であってもよい。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
産業上の利用の可能性
本発明は、テンソル分解による因子の取得に好適に適用される。
1 テンソル分解処理システム
2 入力部
3 分解実行部
4 分解結果記憶部
5 条件判定部
6 出力部
7 クラスタリング部
8 順序付け部

Claims (6)

  1. 所定の終了条件が満たされるまで、与えられたテンソルに対して複数回のテンソル分解を実行する分解実行部と、
    前記所定の終了条件が満たされたか否かを判定する条件判定部とを備え、
    前記分解実行部は、
    前記テンソルに対してテンソル分解を実行するときに、当該テンソル分解よりも前に実行したテンソル分解によって得られた因子と異なる因子を得るという制約のもとで、当該テンソル分解を実行し、
    前記与えられたテンソルに対する複数回のテンソル分解によって得られた因子をクラスタリングするクラスタリング部を備える
    ことを特徴とするテンソル分解処理システム。
  2. クラスタリング部は、
    因子をk-means法によってクラスタリングする
    請求項1に記載のテンソル分解処理システム。
  3. クラスタ毎に、クラスタに属している因子を、与えられたテンソルの近似に寄与する順に順序付けする順序付け部を備える
    請求項1または請求項2に記載のテンソル分解処理システム。
  4. 順序付け部は、
    与えられたテンソルをXとし、個々の因子から得られるテンソルをYとしたときに、クラスタ毎に、||X-Y||が小さい順に、クラスタに属している因子を順序付けする
    請求項3に記載のテンソル分解処理システム。
  5. コンピュータが、
    所定の終了条件が満たされるまで、与えられたテンソルに対して複数回のテンソル分解を実行し、
    前記所定の終了条件が満たされたか否かを判定し、
    前記テンソルに対してテンソル分解を実行するときに、当該テンソル分解よりも前に実行したテンソル分解によって得られた因子と異なる因子を得るという制約のもとで、当該テンソル分解を実行し、
    前記与えられたテンソルに対する複数回のテンソル分解によって得られた因子をクラスタリングする
    ことを特徴とするテンソル分解処理方法。
  6. コンピュータに、
    所定の終了条件が満たされるまで、与えられたテンソルに対して複数回のテンソル分解を実行する分解実行処理、および、
    前記所定の終了条件が満たされたか否かを判定する条件判定処理を実行させ、
    前記コンピュータに、
    前記分解実行処理で、前記テンソルに対してテンソル分解を実行させるときに、当該テンソル分解よりも前に実行したテンソル分解によって得られた因子と異なる因子を得るという制約のもとで、当該テンソル分解を実行させ
    前記コンピュータに、
    前記与えられたテンソルに対する複数回のテンソル分解によって得られた因子をクラスタリングするクラスタリング処理を実行させる
    ためのテンソル分解処理プログラム。
JP2021501201A 2019-02-20 2019-02-20 テンソル分解処理システム、方法およびプログラム Active JP7184155B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/006301 WO2020170358A1 (ja) 2019-02-20 2019-02-20 テンソル分解処理システム、方法およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2020170358A1 JPWO2020170358A1 (ja) 2021-11-18
JP7184155B2 true JP7184155B2 (ja) 2022-12-06

Family

ID=72143428

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021501201A Active JP7184155B2 (ja) 2019-02-20 2019-02-20 テンソル分解処理システム、方法およびプログラム

Country Status (3)

Country Link
US (1) US11789731B2 (ja)
JP (1) JP7184155B2 (ja)
WO (1) WO2020170358A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016031639A (ja) 2014-07-29 2016-03-07 日本電信電話株式会社 クラスタ抽出装置、クラスタ抽出方法、及びクラスタ抽出プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8204988B2 (en) * 2009-09-02 2012-06-19 International Business Machines Corporation Content-based and time-evolving social network analysis
US20120221296A1 (en) * 2011-02-26 2012-08-30 Liang Fu Method for signal decomposition
EP2518656B1 (en) * 2011-04-30 2019-09-18 Tata Consultancy Services Limited Taxonomic classification system
AU2013205087B2 (en) * 2012-07-13 2016-03-03 Gen-Probe Incorporated Method for detecting a minority genotype
US10531806B2 (en) * 2013-12-17 2020-01-14 University Of Florida Research Foundation, Inc. Brain state advisory system using calibrated metrics and optimal time-series decomposition
JP6038987B2 (ja) 2015-03-18 2016-12-07 日本電信電話株式会社 テンソル因子分解処理装置、テンソル因子分解処理方法及びテンソル因子分解処理プログラム
JP2018112884A (ja) 2017-01-11 2018-07-19 日本電気株式会社 推定装置、推定方法、及びプログラム
US20180260381A1 (en) * 2017-03-09 2018-09-13 Xerox Corporation Prepositional phrase attachment over word embedding products

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016031639A (ja) 2014-07-29 2016-03-07 日本電信電話株式会社 クラスタ抽出装置、クラスタ抽出方法、及びクラスタ抽出プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
小西 葉月,非負値行列因子分解を利用した文書クラスタリング手法の提案,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会 ,2015年02月26日,第114巻,第500号,pp.25-30

Also Published As

Publication number Publication date
US20220129263A1 (en) 2022-04-28
US11789731B2 (en) 2023-10-17
WO2020170358A1 (ja) 2020-08-27
JPWO2020170358A1 (ja) 2021-11-18

Similar Documents

Publication Publication Date Title
WO2019119301A1 (zh) 在卷积神经网络模型中确定特征图像的方法和装置
JP6338036B1 (ja) テーブル意味推定システム、方法およびプログラム
EP3282407A1 (en) Assembly line balancing apparatus, method and program
JPWO2018150798A1 (ja) モデル推定システム、方法およびプログラム
JP7006296B2 (ja) 学習プログラム、学習方法および学習装置
JP6567381B2 (ja) 演算装置、方法及びプログラム
CN112906865A (zh) 神经网络架构搜索方法、装置、电子设备及存储介质
WO2018025707A1 (ja) テーブル意味推定システム、方法およびプログラム
JP2017111658A (ja) 設計支援装置
EP3940603A1 (en) Processing apparatus for performing pointwise convolutions and depthwise convolutions
JP7184155B2 (ja) テンソル分解処理システム、方法およびプログラム
JP2018163396A (ja) 区分線形近似関数生成装置および方法
WO2022091408A1 (ja) 求解方法選択装置および方法
JP6366031B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JPWO2018088277A1 (ja) 予測モデル生成システム、方法およびプログラム
US20130007019A1 (en) Logic operation system
CN111260056A (zh) 一种网络模型蒸馏方法及装置
KR102504319B1 (ko) 영상 객체 속성 분류 장치 및 방법
Gebert et al. Identifying genes of gene regulatory networks using formal concept analysis
JP6984729B2 (ja) 意味推定システム、方法およびプログラム
WO2020040007A1 (ja) 学習装置、学習方法及び学習プログラム
CN114730385A (zh) 一种量子玻尔兹曼机的训练方法及混合计算机
WO2018088276A1 (ja) 予測モデル生成システム、方法およびプログラム
JP7468655B2 (ja) 不整合判定装置、方法、および、プログラム
JP2019113962A (ja) 解析装置、解析方法及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210712

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221011

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: 20221025

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221107

R151 Written notification of patent or utility model registration

Ref document number: 7184155

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151