(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-11
(45)【発行日】2024-03-19
(54)【発明の名称】変換プログラム、変換方法および情報処理装置
(51)【国際特許分類】
G06F 17/16 20060101AFI20240312BHJP
G06N 20/00 20190101ALI20240312BHJP
【FI】
G06F17/16 Z
G06N20/00
(21)【出願番号】P 2020090138
(22)【出願日】2020-05-22
【審査請求日】2023-02-09
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】成田 顕一郎
(72)【発明者】
【氏名】丸橋 弘治
【審査官】三坂 敏夫
(56)【参考文献】
【文献】特開2003-316764(JP,A)
【文献】江口 脩 他,エンタングルメント・エントロピーを用いた畳み込みニューラルネットワーク,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2017年11月02日,第117巻 第293号,第227頁-第233頁
【文献】丸橋 弘治,人やモノのつながりを表すグラフデータから新たな知見を導く新技術Deep Tensor,FUJITSU 2017年9月号 ,富士通株式会社,2017年09月01日,第68巻 第5号
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/00-17/18
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
テンソルデータを分解することで生成されたコアテンソルと因子行列に対して、因子行列に含まれる要素の値の大きさを小さくする回転変換行列を算出し、
前記コアテンソルと、前記回転変換行列の逆回転変換行列とに基づいて、前記コアテンソルを変換した変換後のコアテンソルを生成し、
前記変換後のコアテンソルを出力する
処理を実行させることを特徴とする変換プログラム。
【請求項2】
前記算出する処理は、前記回転変換行列に特異値分解を実行した結果と、前記因子行列とのエントロピーの最適化問題を解くことにより、前記エントロピーを最小化する前記回転変換行列を算出することを特徴とする請求項1に記載の変換プログラム。
【請求項3】
前記出力する処理は、前記テンソルデータの生成元であるグラフデータに基づき、前記変換後のコアテンソルからグラフデータを生成して出力することを特徴とする請求項1または2に記載の変換プログラム。
【請求項4】
学習データから前記テンソルデータを生成し、前記テンソルデータを分解することで生成されるコアテンソルを入力として機械学習を実行してモデルを生成する処理を前記コンピュータにさらに実行させ、
前記算出する処理は、前記機械学習による前記モデルの生成過程において前記コアテンソルを取得して、前記回転変換行列を算出し、
前記生成する処理は、前記変換後のコアテンソルを生成し、
前記出力する処理は、前記機械学習の学習状況を示す指標として、前記変換後のコアテンソル
または前記変換後のコアテンソルから生成されるグラフデータを出力することを特徴とする請求項1から3のいずれか一つに記載の変換プログラム。
【請求項5】
コンピュータが、
テンソルデータを分解することで生成されたコアテンソルと因子行列に対して、因子行列に含まれる要素の値の大きさを小さくする回転変換行列を算出し、
前記コアテンソルと、前記回転変換行列の逆回転変換行列とに基づいて、前記コアテンソルを変換した変換後のコアテンソルを生成し、
前記変換後のコアテンソルを出力する
処理を実行することを特徴とする変換方法。
【請求項6】
テンソルデータを分解することで生成されたコアテンソルと因子行列に対して、因子行列に含まれる要素の値の大きさを小さくする回転変換行列を算出する算出部と、
前記コアテンソルと、前記回転変換行列の逆回転変換行列とに基づいて、前記コアテンソルを変換した変換後のコアテンソルを生成する生成部と、
前記変換後のコアテンソルを出力する出力部と
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、変換プログラム、変換方法および情報処理装置に関する。
【背景技術】
【0002】
通信ログや化合物などのように、人やモノ(変数値)の間の関係が記録されたデータは、テンソルデータとして表現することができ、このようなテンソルデータの分析手法としてテンソル分解が利用されている。
【0003】
テンソルデータは、テンソル分解により、テンソルデータに近似する、コアテンソルと因子行列の積に分解される。ここで生成されるコアテンソルは、テンソルデータの特徴を反映しつつ、テンソルデータに比べてデータサイズ(要素数)が削減されたデータである。このように生成されたコアテンソルは、データ分析以外にも、強化学習に利用することもでき、学習モデルの訓練データやその学習モデルを用いた判定の入力データなどに利用される。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、要素数が削減されたコアテンソルをデータの説明性、あるいはデータを用いた学習や判定の説明性に役立てたいというニーズが考えられる。しかしながら、上記テンソル分解で生成されるコアテンソルは、コアテンソルと因子行列とを合わせてテンソルデータに近似されるが、コアテンソル単体からではテンソルデータの態様や特徴を類推できるとは限らない。
【0006】
一つの側面では、コアテンソルと元のテンソルデータとの対応関係を可視化することができる変換プログラム、変換方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
第1の案では、変換プログラムは、コンピュータに、テンソルデータを分解することで生成されたコアテンソルと因子行列に対して、因子行列に含まれる要素の値の大きさを小さくする回転変換行列を算出する処理を実行させる。変換プログラムは、コンピュータに、前記コアテンソルと、前記回転変換行列の逆回転変換行列とに基づいて、前記コアテンソルを変換した変換後のコアテンソルを生成し、前記変換後のコアテンソルを出力する処理を実行させる。
【発明の効果】
【0008】
一実施形態によれば、コアテンソルと元のテンソルデータとの対応関係を可視化することができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施例1にかかる情報処理装置を説明する図である。
【
図2】
図2は、一般的なテンソル分解を説明する図である。
【
図3】
図3は、一般的なテンソル分解の問題点を説明する図である。
【
図4】
図4は、実施例1にかかるコアテンソルの生成を説明する図である。
【
図5】
図5は、実施例1にかかる情報処理装置の機能構成を示す機能ブロック図である。
【
図6】
図6は、コアテンソルへ情報量を集中させる処理を説明する図である。
【
図7】
図7は、新コアテンソルの生成ロジックを説明する図である。
【
図8】
図8は、回転変換行列の算出を説明する図である。
【
図9】
図9は、新コアテンソルの生成を説明する図である。
【
図10】
図10は、回転変換によるグラフ表示例を説明する図である。
【
図13】
図13は、コアテンソルを用いた機械学習を説明する図である。
【発明を実施するための形態】
【0010】
以下に、本願の開示する変換プログラム、変換方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例1】
【0011】
[情報処理装置の説明]
図1は、実施例1にかかる情報処理装置10を説明する図である。
図1に示す情報処理装置10は、入力されたテンソルデータを、テンソル分解によりコアテンソルと因子行列の積に分解する。そして、情報処理装置10は、テンソル分解で得られる因子行列の情報量が最小になるような回転変換を実行することで、因子行列の要素の大きさをコントロールし、コアテンソルと元のテンソルデータとの要素間の関係を色濃く残すように制御する。このようにして、情報処理装置10は、元のテンソルデータの特徴がコアテンソル上でより明確に現れるように制御する。
【0012】
ここで、従来から実行されるテンソル分解の問題点について説明する。
図2は、一般的なテンソル分解を説明する図である。
図2に示すように、入力されたテンソルデータは、テンソル分解によりコアテンソルと因子行列の積に分解される。コアテンソルの構造は、元のテンソルデータの大雑把な構造が反映されているので、異常な構造や注目すべき構造を見出せる可能性がある。しかし、通常、コアテンソルは膨大な要素を含むので、コアテンソルの全ての要素を人間が把握することが困難である。
【0013】
例えば、サイズが10×10×10のコアテンソルでも要素数は1000個あり、人間が全ての要素を確認したり、俯瞰的に特徴を見出すことは難しい。また、元素数が100個、元素同士の繋がりが100×100個、元素の種類が100種類の化合物を4階次テンソルで表現した場合、最大100,000,000個の要素が存在することになる。また、この4階次テンソルから生成されるコアテンソルのサイズが50×50×50の場合、25,000個の要素数となり、人間が特徴を見出すことが困難である。
【0014】
ここで、テンソルデータをxy行列とした例で、テンソル分解の問題点について考える。
図3は、一般的なテンソル分解の問題点を説明する図である。
図3に示すように、行列の場合、因子行列を直交行列、コアテンソルに相当する行列を対角行列と仮定することが一般的に行われ(特異値分解)、対角行列の成分は特異値と呼ばれる。しかし、一般的には、元の行列の各要素は複数の特異値に対応するので、特異値から元の行列の構造を関連づけることが困難である。また、テンソル分解の場合も特異値分解に準じた計算方法が行われるため、同様の問題がある。
【0015】
このように、例えば、テンソルデータをグラフ化するなどで視覚的な表現とする場合、テンソルデータは、要素数が膨大なために煩雑なグラフとなってしまうことが多い。また、テンソル分解により要素数を削減したとしても、従来のコアテンソルでは、視覚的な表現をした場合にテンソルデータと類似点がみられるように特徴が残るとは限らない。
【0016】
そこで、実施例1にかかる情報処理装置10は、分解で得られる行列に対し、因子行列の絶対値の大きい要素が最も少なくなるような回転変換を行うことにより、コアテンソルと元の行列の要素間の対応を明確にする。つまり、情報処理装置10は、要素数を元々のテンソルデータより削減しつつ、視覚的な表現とした場合にも、元々のテンソルデータとある程度対応が取れるレベルで類似するように、特徴が残るコアテンソルの生成を実現する。
【0017】
図4は、実施例1にかかるコアテンソルの生成を説明する図である。
図4に示すように、情報処理装置10は、テンソルデータを分解することで生成されたコアテンソルと因子行列に対して、因子行列に含まれる要素の値の大きさを小さくする回転変換行列を算出する。そして、情報処理装置10は、コアテンソルと、回転変換行列の逆回転変換行列とに基づいて、コアテンソルを変換した変換後のコアテンソルを生成する。
【0018】
具体的には、情報処理装置10は、因子行列の要素のうち絶対値が大きい要素を最小化するような回転変換行列を算出する。そして、情報処理装置10は、因子行列と回転変換行列とを乗算して新たな因子行列を生成し、回転変換行列の逆向き(逆回転変換行列)とコアテンソルとを乗算して新たなコアテンソルを生成し、変換後のコアテンソル(新コアテンソル)を出力する。このようにすることで、情報処理装置10は、テンソル分解時の全体的な情報量を変更することなく、コアテンソルに情報量を集約することができるので、コアテンソルと元のテンソルデータとの対応関係を可視化することができる。
【0019】
[機能構成]
図5は、実施例1にかかる情報処理装置10の機能構成を示す機能ブロック図である。
図5に示すように、情報処理装置10は、通信部11、表示部12、記憶部13、制御部20を有する。
【0020】
通信部11は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースにより実現される。この通信部11は、管理者端末や学習器などからテンソルデータを受信する。
【0021】
表示部12は、各種情報を表示する処理部であり、例えばディスプレイやタッチパネルなどにより実現される。例えば、表示部12は、制御部20により生成された変換後のコアテンソル(新コアテンソル)や変換後のコアテンソルに基づくグラフなどを表示する。
【0022】
記憶部13は、各種データや制御部20が実行するプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどにより実現される。この記憶部13は、入力データ14と変換結果15を記憶する。
【0023】
入力データ14は、制御部20による処理対象となるデータであり、例えばテンソルデータなどである。なお、入力データ14は、テンソル分解後に得られるコアテンソルであってもよい。変換結果15は、入力データ14から生成された、情報量が多い変換後のコアテンソルである。なお、変換結果15は、変換前のコアテンソルと変換後のコアテンソルとの比較結果などを含んでいてもよい。
【0024】
制御部20は、情報処理装置10全体を司る処理部であり、例えばプロセッサなどにより実現される。この制御部20は、分解部21、生成部22、表示出力部23を有する。なお、分解部21、生成部22、表示出力部23は、プロセッサなどの電子回路やプロセッサが実行するプロセスなどにより実現される。
【0025】
分解部21は、テンソル分解を実行する処理部である。例えば、分解部21は、テンソルデータである入力データ14を記憶部13から読み出し、入力データ14に対してテンソル分解を実行して、コアテンソルと因子行列とに分解する。そして、分解部21は、テンソル分解で得られたコアテンソルと因子行列を、生成部22に出力したり、記憶部13に格納したりする。
【0026】
生成部22は、分解部21により生成されたコアテンソルを、元のテンソルデータと対応した形で可視化したコアテンソルに変換した変換後のコアテンソルを生成する処理部である。具体的には、生成部22は、テンソルデータを分解することで生成されたコアテンソルと因子行列に対して、因子行列に含まれる要素の値の大きさを小さくする回転変換行列を算出する。そして、生成部22は、コアテンソルと、回転変換行列の逆回転変換行列とに基づいて、コアテンソルを変換した変換後のコアテンソルを生成し、記憶部13に格納する。
【0027】
すなわち、生成部22は、テンソル分解により得られたコアテンソルと因子行列とを含む全体の情報量を変化させることなく、コアテンソルに情報量を集中させることで、新コアテンソルを生成する。
【0028】
(コアテンソルへの情報量集中)
ここで、
図6から
図9を用いて、新コアテンソルを生成する例を説明する。
図6は、コアテンソルへ情報量を集中させる処理を説明する図である。
図6の(1)に示すように、入力データとして、ログを識別する「ログID」、通信元のホストを示す「通信元ホスト」、通信先のホストを示す「通信先ホスト」、通信に利用されたポート番号を示す「ポート」を対応付けた通信ログを例にして説明する。
【0029】
まず、
図6の(2)に示すように、通信ログのグラフ化が実行される。例えば、ログID「R1」に対して、通信元ホスト「S1」と通信先ホスト「R1」とポート「P1」とがそれぞれ接続される。さらに、通信先ホスト「R1」に対してログID「R2」が接続され、ログID「R2」に対して通信元ホスト「S2」とポート「P2」が接続される。また、通信元ホスト「S1」に対してログID「R3」が接続され、ログID「R3」に対して通信先ホスト「R2」とポート「P2」が接続される。
【0030】
次に、
図6の(3)に示すように、グラフ化された通信ログがテンソル化(行列化)される。具体的には、RとSとPとを次元とする3次元の3×3×3テンソルデータが生成される。例えば、
図6の(3)の例では、3階次テンソルにおいて、「R1,P1,S1」がログID「R1」に該当するので色がついており、「R1,P2,S2」がログID「R2」に該当するので色がついている。
【0031】
そして、
図6の(4)に示すように、分解部21は、テンソル化で得られたテンソルデータに対してテンソル分解を実行して、コアテンソルと因子行列とに分解する。例えば、分解部21は、2行2列の4要素から構成されるコアテンソルと、3行1列の3要素から構成される2つの因子行列と、1行3列の3要素から構成される因子行列とを生成する。
【0032】
その後、
図6の(5)に示すように、生成部22は、回転変換行列を付与することにより、情報量をコアテンソルへ集中させて、新コアテンソルを生成する。
【0033】
(新コアテンソルの生成ロジック)
次に、回転変換行列を用いた新コアテンソルの生成処理を具体的に説明する。
図7は、新コアテンソルの生成ロジックを説明する図である。
図7に示すように、テンソル分解により、コアテンソルと因子行列とが生成される。ここで生成されるコアテンソルは、入力データの特徴を示すものであるが、情報量がそれほど多くないことから、人は、コアテンソルだけで、入力データの特徴を示す構造等を理解することが難しい。
【0034】
そこで、因子行列の情報量をコアテンソルに集中させる。説明を簡単にするために、一つの因子行列を用いて説明すると、テンソルデータは、「コアテンソル」と「因子行列」の積「コアテンソル×因子行列」で表すことができる。したがって、テンソルデータの情報量を変化させず、すなわち「コアテンソル×因子行列」の情報量を変化させない制約の下、因子行列の情報量を減らし、コアテンソルの情報量を増やすことで、コアテンソルの可視化を実行する。
【0035】
具体的には、因子行列に回転変換行列(x)を乗算し、「エントロピー(E)=因子行列×回転変換行列(x)」の最適化問題により、エントロピー(E)を最小化する回転変換行列(x)を算出する。このままでは、情報量を削減しただけであることから、情報量を変化させないために、回転変換行列(x)の逆数(逆回転変換行列(x-1)を生成し、これをさらに乗算する。つまり、「コアテンソル×因子行列」を「コアテンソル×逆回転変換行列(x-1)×回転変換行列(x)×因子行列」に変換する。そして、「コアテンソル×逆回転変換行列(x-1)」を新コアテンソル、「回転変換行列(x)×因子行列」を新たな因子行列とすることで、もともとの情報量を変化させることなく、情報量を集中させたコアテンソル(新コアテンソル)を生成することができる。なお、この処理は、各因子行列を用いて実行される。
【0036】
(回転変換行列の説明)
次に、回転変換行列の算出を説明する。
図8は、回転変換行列の算出を説明する図である。
図8では、2行2列のコアテンソル、3行1列の2つの因子行列A、B、1行3列の因子行列Cに分解された例で説明する。なお、コアテンソルは、4要素[[[0.2,0],[0,1.5]],[[1,0],[0.5,0.1]]]を有する。因子行列Aは、3要素[[1,10],[9,0],[1,0]]を有し、因子行列Bは、3要素[[1,0],[9,0],[1,5]]を有し、因子行列Cは、3要素[[1,0],[10,0],[1,8]]を有する。
【0037】
そして、生成部22は、因子行列Cの情報量を削減する回転変換行列を算出する。つまり、生成部22は、因子行列のエントロピーが最小化するように、勾配法を用いて、回転変換行列を算出する。ここで、生成部22は、テンソル分解に影響を及ぼさないように情報量を一致させるために、回転変換行列の逆回転変換行列を算出して、コアテンソルに乗算することで、コアテンソルを変換させた新コアテンソルを生成する。
【0038】
つまり、因子行列Cを例にして説明すると、3要素[[1,0],[10,0],[1,8]]を[[1,0],[1.0,0],[1,0.8]]に変換して情報量を削減し、削減された情報量をコアテンソルに集中させることで、コアテンソルの4要素[[[0.2,0],[0,1.5]],[[1,0],[0.5,0.1]]]を[[[15,0],[0,1.5]],[[1,0],[0.5,18]]]に変換する。この結果、相対的にコアテンソルのエントロピーが増え、情報量がコアテンソル(新コアテンソル)に集中する。なお、
図8で説明した処理は、各因子行列について実行される。
【0039】
(新コアテンソルの生成)
上述したコアテンソルの変換による新コアテンソルの生成を説明する。
図9は、新コアテンソルの生成を説明する図である。ここでは、
図9に示すように、生成部22は、因子行列Aに対して、回転変換行列[[1,0.4],[0.5,1]]を生成し、この回転変換行列の逆回転変換行列を算出する。同様に、生成部22は、因子行列Bに対して、回転変換行列[[0,0.7],[0.2,1]]を生成し、この回転変換行列の逆回転変換行列を算出する。また、生成部22は、因子行列Cに対して、回転変換行列[[1,0],[0.5,1]]を生成し、この回転変換行列の逆回転変換行列を算出する。
【0040】
この結果、生成部22は、コアテンソル[[[0.2,0],[0,1.5]],[[1,0],[0.5,0.1]]]に対して、各因子行列を用いて算出された各逆回転変換行列を乗算し、新コアテンソル[[[15,0],[0,1.5]],[[1,0],[0.5,18]]]を生成する。また、生成部22は、因子行列A[[1,10],[9,0],[1,0]]に、回転変換行列[[1,0.4],[0.5,1]]を乗算して、新因子行列A´を生成する。同様に、生成部22は、因子行列B[[1,0],[9,0],[1,5]]に、回転変換行列[[0,0.7],[0.2,1]]を乗算して、新因子行列B´[[1,0],[1.0,0],[1,0.8]]を生成し、因子行列C[[1,0],[10,0],[1,8]]に、回転変換行列[[1,0],[0.5,1]]を乗算して、新因子行列C´を生成する。
【0041】
このようにして、生成部22は、テンソル分解時の全体的な情報量を維持しつつ、情報量を集約させた新コアテンソルと、情報量を削減した新因子行列A´、新因子行列B´、新因子行列C´とを生成することができる。なお、生成部22は、ここで生成された各種情報を、変換結果15として記憶部13に格納する。
【0042】
図5に戻り、表示出力部23は、記憶部13から変換結果15を読み出して、表示部12に出力する処理部である。例えば、表示出力部23は、テンソル分解後のコアテンソルに基づき生成された新コアテンソルを表示部12に出力する。また、表示出力部23は、新コアテンソルからグラフデータを生成して出力することもできる。なお、グラフデータへの変換は、もともとのグラフデータのスケール情報などを用いた公知の技術、可視化ツール、描画ツールなどを用いることができる。
【0043】
図10は、回転変換によるグラフ表示例を説明する図である。
図10に示すように、元のデータに基づく特異値分解により生成されたコアテンソル(対角行列)をグラフ化した場合、大雑把な特徴が表現されるものの、人が簡単にその特徴を理解できるものではない。そして、表示出力部23は、このコアテンソルを用いた回転変換により変換された新コアテンソルをグラフ化して表示することで、元のデータの特徴量が比較的分かりやすくなったグラフをユーザに提示することができる。
【0044】
[処理の流れ]
図11は、処理の流れを示すフローチャートである。
図11に示すように、管理者等により処理開始が指示されると(S101:Yes)、分解部21は、入力データであるテンソルデータに対してテンソル分解を実行して、コアテンソルと因子行列とに分解する(S102)。
【0045】
続いて、生成部22は、因子行列の正則化を実行し(S103)、回転変換行列の初期化を実行し(S104)、因子行列の情報量を最小化する回転変換行列を算出する(S105)。
【0046】
例えば、生成部22は、因子行列を正則化した行列Vから算出したVTと、回転変換行列Wとの乗算結果(VT×W)から、Wの修正量を算出し、修正量に基づきWを更新する。続いて、生成部22は、回転変換行列Wを特異値分解し、コアテンソルに相当する対角行列(S)と因子行列に相当する直交行列(PとQ)を生成する。そして、生成部22は、W=P×Qとして、行列VとWとからエントロピーEを算出し、エントロピーが最小化するWを確率的勾配降下法により算出する。このとき、エントロピーの減少が一定値以下で最適化を終了する。なお、ここで説明したアルゴリズムは、あくまで一例であり、回転変換行列と因子行列とのエントロピーの最小化を実行する様々な最適化問題のアルゴリズム採用することができ、確率的勾配降下法以外の最適化法を採用することもできる。
【0047】
その後、生成部22は、回転変換行列の逆回転変換行列を算出する(S106)。そして、生成部22は、コアテンソル、因子行列、回転変換行列、逆回転変換行列を用いて、新コアテンソルと新因子行列を生成する(S107)。その後、表示出力部23は、新コアテンソルをグラフで表示する(S108)。
【0048】
[効果]
上述したように、情報処理装置10は、元のデータとコアテンソルの要素の対応関係の情報量を最小にすることにより、コアテンソルと元のテンソルデータとの対応関係を可視化することができる。また、実施例1で生成される新コアテンソル+新因子行列は、自2等で説明した一般的なコアテンソル+因子行列とは異なるものになるが、一般的なコアテンソル+因子行列を回転変換によって表現を変えたものであるので、元々のテンソルデータを近似するものであることに変わりはない。つまり、情報処理装置10は、変換の弊害を抑制しつつ、情報量を集約した新コアテンソルを生成することができる。
【0049】
また、情報処理装置10は、コアテンソルの要素と元のデータの要素の関係が明確になることから、元のデータを参照しながら全体の構造を把握することができ、異常や注目すべき構造の発見が容易になる。
【0050】
図12は、効果を説明する図である。
図12では、情報量を集約した新コアテンソルを用いて全体の構造を特定することの有用性について説明する。
図12では、企業の取引履歴を入力データとして説明する。企業の取引履歴をグラフ化した例が
図12の(1)でああり、丸印のノードが企業、四角印が取引した時期、線が取引実績を示す。
図12の(1)に示すように、多数の取引履歴データをグラフにした場合、複雑なグラフになり、人間では解析することができず、重要な観点や特徴などを特定できない。
【0051】
次に、取引履歴データのグラフから生成されたテンソルデータに対するテンソル分解時のコアテンソルに基づくグラフを
図12の(2)に示す。
図12の(2)に示すように、特徴量から注目箇所を特定しようとしても、まだまだ情報量が多いので、人間では俯瞰的な分析ができない。
【0052】
最後に、テンソル分解時のコアテンソルから生成された、情報量を集約した新コアテンソルに基づくグラフを
図12の(3)に示す。
図12の(3)に示すように、グラフの特徴を維持しつつ、
図12の(1)よりは情報量を削減したグラフを表示することができる。このため、人間にとっても、注目箇所を確認しやすく、解析が容易になるので、元のグラフからデフォルメされたグラフが抽出できれば、そこから特徴要素を検知できる。例えば、多数の取引履歴情報のうち、三角印が重要であると解析しやすくなる。
【実施例2】
【0053】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【0054】
[数値等]
上記実施例で用いた数値、行列、テンソルデータ、次元数、最適化方法、最適化アルゴリズム、具体例、適用対象等は、あくまで一例であり、任意に変更することができる。また、テンソル分解は、他の装置で実行することもでき、他の装置で生成されたコアテンソルを取得して新コアテンソルを生成することもできる。
【0055】
[適用例]
上述したコアテンソルから新コアテンソルへの変換は、コアテンソルを用いた機械学習に適用することもできる。
図13は、コアテンソルを用いた機械学習を説明する図である。
図13に示すように、学習装置は、教師ラベル(ラベルA)が付された学習データから入力テンソルを生成し、入力テンソルにテンソル分解を行って、初回にランダムに生成されたターゲットコアテンソルに類似するようにコアテンソルを生成する。そして、学習装置は、コアテンソルをニューラルネットワーク(NN:Neural Network)に入力して分類結果(ラベルA:70%、ラベルB:30%)を得る。その後、学習装置は、分類結果(ラベルA:70%、ラベルB:30%)と教師ラベル(ラベルA:100%、ラベルB:0%)との分類誤差を算出し、誤差逆伝搬法を拡張した拡張誤差伝搬法を用いて予測モデルの学習およびテンソル分解の方法の学習を実行する。
【0056】
例えば、学習装置は、NNが有する入力層、中間層、出力層に対して、分類誤差を下層に伝搬させる形で、分類誤差を小さくするようにNNの各種パラメータを修正する。さらに、学習装置は、分類誤差をターゲットコアテンソルまで伝搬させ、予測に寄与するグラフの部分構造の特徴を示す特徴パターンに近づくように、ターゲットコアテンソルを修正する。
【0057】
このような機械学習において、情報処理装置10は、学習装置からコアテンソルを取得して、実施例1で説明した処理を実行して新コアテンソルを生成することができる。例えば、情報処理装置10は、学習装置が学習過程でテンソル分解を行うたびに、コアテンソルおよび各因子行列を学習装置から取得し、新コアテンソルと新因子行列を生成して、学習装置に送信する。この結果、学習装置は、元々のグラフデータの特徴が表された新コアテンソルを用いて機械学習を実行することができる。
【0058】
また、情報処理装置10は、学習装置の学習過程における任意のタイミングで、コアテンソルおよび各因子行列を学習装置から取得して、新コアテンソルと新因子行列を生成し、新コアテンソルまたは新コアテンソルに基づくグラフデータを表示することができる。この結果、情報処理装置10は、学習状況や学習の進捗などの指標をユーザに提示することができる。ユーザは、新コアテンソルまたは新コアテンソルに基づくグラフデータにより、特徴の解析を実行することで、学習状況や学習の進捗などを把握することができる。したがって、学習の進捗が遅れている状況や期待する精度が得られていない状況を迅速に検出し、教師データの収集やアノテーションなどを実行することで、機械学習を効率的に実行することができる。なお、学習装置と情報処理装置10は、同じ装置で実現することもできる。また、学習済みモデルを用いた判定時にも同様に適用することができる。
【0059】
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。なお、生成部22は、算出部と生成部の一例であり、表示出力部23は、出力部の一例である。
【0060】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0061】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0062】
[ハードウェア]
次に、ハードウェア構成例を説明する。
図14は、ハードウェア構成例を説明する図である。
図14に示すように、情報処理装置10は、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、
図14に示した各部は、バス等で相互に接続される。
【0063】
通信装置10aは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。HDD10bは、
図5に示した機能を動作させるプログラムやDBを記憶する。
【0064】
プロセッサ10dは、
図5に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、
図5等で説明した各機能を実行するプロセスを動作させる。例えば、このプロセスは、情報処理装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、分解部21、生成部22、表示出力部23等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、分解部21、生成部22、表示出力部23等と同様の処理を実行するプロセスを実行する。
【0065】
このように、情報処理装置10は、プログラムを読み出して実行することで各種情報処理方法を実行する情報処理装置として動作する。また、情報処理装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、情報処理装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【0066】
10 情報処理装置
11 通信部
12 表示部
13 記憶部
14 入力データ
15 変換結果
20 制御部
21 分解部
22 生成部
23 表示出力部