JP2023068865A - 機械学習プログラム、機械学習方法及び機械学習装置 - Google Patents

機械学習プログラム、機械学習方法及び機械学習装置 Download PDF

Info

Publication number
JP2023068865A
JP2023068865A JP2021180266A JP2021180266A JP2023068865A JP 2023068865 A JP2023068865 A JP 2023068865A JP 2021180266 A JP2021180266 A JP 2021180266A JP 2021180266 A JP2021180266 A JP 2021180266A JP 2023068865 A JP2023068865 A JP 2023068865A
Authority
JP
Japan
Prior art keywords
tensor
machine learning
data
triple data
triple
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.)
Pending
Application number
JP2021180266A
Other languages
English (en)
Inventor
勝彦 村上
Katsuhiko Murakami
豊 光石
Yutaka Mitsuishi
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2021180266A priority Critical patent/JP2023068865A/ja
Priority to EP22184674.4A priority patent/EP4177773A1/en
Priority to US17/866,684 priority patent/US20230135468A1/en
Publication of JP2023068865A publication Critical patent/JP2023068865A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/042Knowledge-based neural networks; Logical representations of neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/0985Hyperparameter optimisation; Meta-learning; Learning-to-learn
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Machine Translation (AREA)

Abstract

【課題】機械学習の精度に対する信頼性の低下を抑制する機械学習プログラム、機械学習方法及び機械学習装置を提供する。【解決手段】複数のトリプルデータを表すテンソルを生成し、テンソルをコアテンソル及び因子行列にテンソル分解する際、複数のトリプルデータのうちの第1のトリプルデータに対応する前記因子行列の第1の要素の値と、コアテンソルの第2の要素の値とを固定した条件下で、テンソル分解を実行する処理をコンピュータに実行させる。【選択図】図4

Description

本発明は、機械学習技術に関する。
統計的機械学習は、データから統計的方法に基づいて有効な知識を自動抽出する技術である。統計的機械学習は、多くの事例が当てはまるケースについては精度の良い学習を行うことができる。これに対して、ドメイン知識や例外的なデータは、統計的な学習が困難であり、統計的機械学習には不向きである。統計的機械学習を用いて、例えば、多様なバイオデータからの物質の関係の予測(推論)やデータに潜む関係の発見が期待されている。
一般的に、機械学習では、学習したデータを機械学習モデルへ入力した場合でも予測結果に間違いが発生する可能性が存在する。特に、有名なケースや特徴的なケースについて予測を誤った場合、利用者から機械学習の精度に対する信頼を失うおそれが高い。
統計的機械学習では、知識グラフ(KG:Knowledge Graph)の埋め込み(embedding)が用いられる場合がある。知識グラフとは、専門分野などの知識を体系的に表現するフレームワークである。知識グラフの埋め込み技術では、様々なモデルが研究されている。
知識グラフでは、知識の表現は、「s(主語)についてr(述語)の値(目的語)はoである」といったトリプルと呼ばれる形式で表現される。主語(s)と目的語(o)はエンティティと呼ばれ、述語(r)はリレーションと呼ばれる。トリプルは、記号的には[s,r,o]と表現され、トリプルの3つの要素は埋め込み空間での3つのベクトルでそれぞれ表現される。知識をトリプルデータとし、エンティティ及びリレーションをそれぞれベクトルで表現することが埋め込みにあたり、この埋め込みよって未知のトリプルの予測が可能となる。例えば、バイオデータを用いる場合、たんぱく質の様々な種類がエンティティとなり、反応結果や発生状態などがリレーションとなる。エンティティは100~数10万種類におよび、リレーションは10~100種類程度である。
知識グラフを用いて統計的機械学習を行うことで、関心のある事象を指定し、指定した事象に関連する他の事象を把握して、データの関連を解釈することが望まれる。特定の事象に関連する事象とは、その特定の事象のエンティティ又はリレーションが繋がり同時に成り立つ事象である。特定の事象に関連する事象は、例えば、「遺伝子#Aが変異#Xを持つ、遺伝子#Bが変異#Yを持つ、薬剤#Zがパスウェイ#Pに効くこと、は互いに関連している」という事象である。
知識モデルの埋め込みには、様々なモデルが存在する。例えば、知識モデルの埋め込みとして、RESCAL、DistMult、HolE、ComplEx、Analogy、SimplE及びBlockHolEなどが存在する。これらは、φ(s,r,o)と表されるスコアリング関数が1に近いと真となるように学習及び予測が行われる。他にも、知識モデルの埋め込みとして、TransE、TransH、TransR及びSTransRなどが存在する。これらは、スコアリング関数(φ)が0に近いと真となるように学習及び予測が行われる。知識グラフ埋め込みの学習時のコスト関数は、これらのスコアリング関数を全トリプルで合計したものが利用される。
ここで、知識を表現するトリプルデータである(s,r,o)が正例データである場合で考える。トリプルデータのスコアはφ(s,r,o)と表される。そして、正例データを書き換えることで負例データの集合が生成されてもよい。
また、コスト関数は、L=Σ(s,r,o)∈g,(s’,r,o’)∈g’[γ-φ(s,r,o)+φ(s’,r,o’)]と表される。ここで、[x]=max(0,x)であり、γはマージンハイパーパラメータであり、γ>0である。コスト関数の括弧内が負、すなわち正例スコアと負例スコアの差であるφ(s,r,o)-φ(s’,r,o’)がγ以上の場合、学習されない。
さらに、知識グラフの埋め込みのためにTucker分解を用いるTuckERと呼ばれる手法が存在する。Tucker分解は、テンソルを小さなテンソルであるコアテンソルと、各モードに対応した行列の組にばらす分解である。モードは、分解前のテンソルの各軸である。TuckERにより、スコア関数は、コアテンソルと各モードに対応した行列の組で表される。
一般的に、通常の知識グラフでは正しい事例しか収集されない。すなわち、訓練データとして正例データが収集される。機械学習に用いる訓練データを正例データに限定して学習した場合、エンティティを示すベクトル同士を分離することが困難になる場合がある。そこで、負例の生成が求められる。例えば、正例でないものを全て負例と仮定して学習する技術が提案されている。この技術では、可能性のある負例のうち一部を用いて学習を行う。そして、学習完了後の予測では、入力トリプルのスコアが閾値より大きい場合に真であると予測する。この技術では、次元が充分であれば、訓練データ通りの真偽値を完全に表現するベクトル値を与えることができる。また、この技術は、DistMultやComplExやSimplEといった他の従来モデルを一般化する。そして、この技術の予測精度は、ComplExなどのSOTAと比較してもよい精度が得られる。
ところで、一般的に機械学習を行う場合、全ての訓練データが等しく学習される。このような学習により未知のトリプルの真偽が予測可能であるが、そのような予測に至った理由や根拠の解釈が容易ではない。
なお、複数の商品を示すエンティティの属性を含むデータセットを収集して知識グラフを生成し、生成した知識グラフで学習を行い、ユーザのために推薦する商品を決定する技術が存在する。また、対応する2つの実態間の関連関係が予め決められたトレーニングサンプルを関係行列の積に変換し、変換した関係行列の積を用いてニューラルネットワークを生成する技術が存在する。また、知識グラフ及び数値属性の予測の損失を共同で最小化することで知識グラフの埋め込みを学習し、知識グラフの隣接行列とラベル付けされたノードの数値を使用して、数値属性伝播アルゴリズムにより数値属性の欠落しているノードを予測する技術が存在する。
特開2019-125364号公報 特開2020-149663号公報 米国特許出願公開第2020/0160215号明細書
しかしながら、従来の統計的機械学習を行った場合、学習したデータでも学習後の予測誤判定の可能性が残存する。そのため、TuckERを用いた技術であっても、訓練データの全てが真になる保証はない。したがって、有名なケースや特徴的なケースについて予測を誤るおそれがあり、機械学習の精度に対する信頼性が低くなるおそれがある。
開示の技術は、上記に鑑みてなされたものであって、機械学習の精度に対する信頼性の低下を抑制する機械学習プログラム、機械学習方法及び機械学習装置を提供することを目的とする。
本願の開示する機械学習プログラム、機械学習方法及び機械学習装置の一つの態様において、複数のトリプルデータを表すテンソルを生成し、前記テンソルをコアテンソル及び因子行列にテンソル分解する際、前記複数のトリプルデータのうちの第1のトリプルデータに対応する前記因子行列の第1の要素の値と、前記コアテンソルの第2の要素の値とを固定した条件下で、前記テンソル分解を実行する処理をコンピュータに実行させる。
1つの側面では、本発明は、学習の信頼性を維持し且つデータの関連性の解釈を可能とすることができる。
図1は、実施例に係る機械学習装置のブロック図である。 図2は、3階テンソルを説明するための図である。 図3は、テンソル分解を説明するための図である。 図4は、実施例に係る機械学習装置によるトリプルデータの学習処理のフローチャートである。 図5は、実施例に係る機械学習装置による予測処理のフローチャートである。 図6は、機械学習装置のハードウェア構成図である。
以下に、本願の開示する機械学習プログラム、機械学習方法及び機械学習装置の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する機械学習プログラム、機械学習方法及び機械学習装置が限定されるものではない。
図1は、実施例に係る機械学習装置のブロック図である。機械学習装置10は、図1に示すように、データ保持部11及び制御部12を有する。
データ保持部11は、記述が真であるトリプルデータを訓練データとして予め保持する。例えば、主語となるエンティティ(e)が「日本」であり、目的語となるエンティティ(e)が「東京」であり、述語であるリレーション(r)が「首都」である場合、このトリプルデータは(e,r,e)と表される。
データ保持部11が保持する全てのトリプルデータは、3階テンソルとしてまとめて表される。例えば、エンティティの数がneであり、リレーションの数がnrの場合、全てのトリプルデータを表すテンソルは、ne×nr×neの3階テンソルである。
図2は、3階テンソルを説明するための図である。ここで、3階テンソルは、3次元配列である。階数は、テンソルを表す配列の次元数にあたる。例えば、1階テンソルはベクトルであり、2階テンソルは行列である。そして、テンソルにおける各要素の位置は、添え字で表される。例えば、図2の3階テンソル101の各要素はA111~A333により表される。ここで、3階テンソル101の指標表現をAijkと表す。また、3階テンソル101のシンボリック表現をAと表す。
また、3階テンソルの各次元方向の数をnとし、階数をmとした場合、3階テンソルの要素の総数である成分数はnである。例えば、図2の3階テンソル101は、n=3及びm=3であるので、成分数は3=27である。
さらに、3階テンソルの配列における各次元にあたる配列の方向を示す軸は、モードと呼ばれる。例えば、図2の3階テンソル102に示すように、3次元を表す各軸は、モード1~3にあたる。すなわち、モードの数が階数にあたる。ここで、3階テンソル102のモード1の方向の要素の個数はIであり、モード2の方向の要素の個数はJであり、モード3の方向の要素の個数はKである。そして、モード1の方向の位置を表す添え字をiとし、モード2の方向の位置を表す添え字をjとし、モード3の方向の位置を表す添え字をkとする。この場合、要素位置は、3個の添え字(i,j,k)でインデックスとして用いて表すことができる。そして、3階テンソル102をAとして、(i,j,k)の位置にあたる要素をaijkと表すと、A=(aijk)(i=1,2,・・・,I;j=1,2,・・・,J;k=1,2,・・・,K)と表すことができる。そして、3階テンソル102の要素の総数である成分数はI×J×K個である。ここで、3階テンソル102の各要素を表すaijkは、(i,j,k)を(i,i,i)として、ai1,i2,i3とも書かれる。
制御部12は、学習用のトリプルデータをテンソルで表してテンソル分解を行い、テンソル分解の結果を用いて生成された機械学習モデルによって予測を行う。以下に制御部12の詳細について説明する。制御部12は、予約トリプル特定部121、負例生成部122、値設定部123、コアテンソル割当部125、因子行列割当部126、機械学習モデル生成部127及び予測部128を有する。
予約トリプル特定部121は、例えば、利用者により指定された学習後の予測において正解を予測することを保証したいトリプルデータの情報入力を外部装置(不図示)から受ける。学習後の予測において正解を保証したいトリプルデータは、例えば、特定のトリプルデータを学習に用いた場合に、学習により作成された機械学習モデルを用いてその特定のトリプルデータの真偽の予測を行った場合に、特定のトリプルデータの正解ラベルが示す通りに判定されることを保証したいトリプルデータである。実施例において、訓練済みの機械学習モデルによって教師データの正解レベルが示す通りに真偽が予測されることは「正解する」、または「正解を予測する」と表現される。訓練済みの機械学習モデルが正解するか否かはトリプルデータごとに起こる事象である。このようなトリプルデータは、利用者の興味対象であるトリプルと考えられる。そして、予約トリプル特定部121は、データ保持部11が保持するトリプルデータの中から、指定に応じて学習後の予測において正解することを保証したいトリプルデータを抽出する。この予約トリプル特定部121により抽出された学習後の予測において正解することを保証したいトリプルデータの集合が「予約トリプル」である。その後、予約トリプル特定部121は、予約トリプルの情報を値設定部123へ出力する。
負例生成部122は、データ保持部11が保持するトリプルデータに含まれる正例データをもとにして新たな負例データの生成を実行する。例えば、sを主語、oを目的語、sとoの関係を表す述語をrとして(s,r,o)で表されるトリプルデータが正例データである場合で説明する。トリプルのスコアは、φ(s,r,o)とする。ここで、エンティティの集合をε、正例データの集合をgとした場合、負例生成部122は、次の数式(1)又は(2)によりトリプルの負例データを生成する。
Figure 2023068865000002
Figure 2023068865000003
その後、負例生成部122は、生成した負例のトリプルデータの情報を値設定部123へ出力する。以下では負例のトリプルデータを単に負例データと呼ぶ。なお、負例が教師データ中に存在するとき、そのトリプルには「偽(false)」の正解ラベルが対応しており、機械学習モデルによって偽と予測されることが「正解」である。負例に「真(true)」の予測ラベルがつけられるときは、予測結果は「不正解」である。理想的な機械学習モデルは、負例に対して低スコアを出力し、正例には高スコアを出力する。本実施例では、「訓練済みの機械学習モデルが予約トリプルに対して正解を予測することを保証する」という制約を満たす機械学習を行えることが特徴である。
値設定部123は、データ保持部11が保持する全てのトリプルデータを取得する。また、値設定部123は、予約トリプルの情報の入力を予約トリプル特定部121から受ける。さらに、値設定部123は、負例生成部122で生成された負例データの情報の入力を負例生成部122から受ける。
値設定部123は、取得した全てのトリプルデータを表す3階テンソルを生成する。以下では、値設定部123により生成された3階テンソルは3階テンソルX又は単にXと表記される。また、3階テンソルXの各要素は、xijkと表される。
値設定部123は、異なるエンティティは異なるベクトルとなり、異なるリレーションは異なるベクトルとなるように各エンティティ及び各リレーションをベクトルで表す。そして、値設定部123は、各ベクトルを用いて、生成した3階テンソルXにおける各トリプルデータの位置を特定する。
例えば、エンティティの数が4であり且つリレーションの数が4の場合について説明する。値設定部123は、異なるエンティティであるe1~e4をそれぞれ、e1=(1,0,0,0)、e2=(0,1,0,0)、e3=(0,0,1,0)、e4=(0,0,0,1)と表す。また、値設定部123は、異なるリレーションであるr1~r4をそれぞれ、r1=(1,0,0,0)、r2=(0,1,0,0)、r3=(0,0,1,0)、r4=(0,0,0,1)と表す。この場合、(e1,r1,e2)のトリプルデータは、主語が1番目のエンティティであり、述語が1番目のリレーションであり、目的語が2番目のエンティティであるので、値設定部123は、3階テンソルXにおける(1,1,2)の位置の要素であると特定する。
値設定部123は、3階テンソルXの各要素のうち予約トリプルを特定する。また、値設定部123は、3階テンソルXの各要素のうち正例データであるデータ保持部11が保持していた全てのトリプルデータの位置を特定する。そして、値設定部123は、正例データの値として1をセットする。すなわち、正例データをxlmnとした場合、値設定部123は、xlmn=1とする。
また、値設定部123は、3階テンソルXの各要素のうち負例生成部122で生成された負例データの位置を特定する。そして、値設定部123は、負例データの値として0をセットする。すなわち、負例データをxopqとした場合、値設定部123は、xopq=0とする。
さらに、値設定部123は、正例データ及び負例データのいずれでもないトリプルデータである未定データについては、値設定部123は、mをセットする。すなわち、未定データをxrstとした場合、値設定部123は、xrst=mとする。mは、負例データの値である0と正例データの値である1との間の値である。例えば、値設定部123は、m=0.5とすることができる。
ここでは3階テンソルXをテンソル分解する基本方法について説明する。テンソル分解は教師データを学習することに相当する。この方法は、本実施例において参考として説明されているものである。後述のコアテンソル割当部125、因子行列割当部126及び機械学習モデル生成部127の処理ではこの方法が変更して用いられている。3階テンソルXについてTucker分解を行い、図3に示すように、コアテンソルであるGとA~Cの因子行列を求める。具体的には、テンソル分解部124は、コアテンソルであるGとA~Cの因子行列の積を用いた次の数式(3)及び(4)によりXを近似して表す。図3は、テンソル分解を説明するための図である。
Figure 2023068865000004
Figure 2023068865000005
ここで、数式(4)における因子行列を表すA、B、Cの前の添え字は、各行列が対応するモードを表す。この場合、個々のgpqrと、対応する(aip,bjq,ckr)を要素に持つ3ベクトルが3階テンソルXの各軸方向すなわち各モードの方向の変化の特徴をとらえていると期待できる。gpqrは相関を保持する潜在変数とみなすことができ、gpqrの絶対値は、3階テンソルXの異なる軸間の相互作用レベルの大きさを表す。コアテンソルであるGの大きさ(P,Q、R)は、3階テンソルXより小さく設定することが好ましい。すなわち、P<I、Q<J、R<Kである。これは、(G,A,B,C)で表される少ないパターンの組み合わせで、Xを解釈するためである。
3階テンソルXのテンソル分解により、コアテンソルG及び因子行列A~Cが決定される。基本的なテンソル分解の処理過程では、まずコアテンソルG及び因子行列A~Cは初期値がランダム値で適当に定められ、後述の数式(7)または(8)で定められた損失関数を減少させるように少しずつパラメータが繰り返し更新されて、繰り返しのストップ条件が満たされたとき、その時点のコアテンソルG及び因子行列A~Cの値をテンソル分解の解とするものである。
本実施例で利用されるTuckERの方法では、上記を変更して以下の変形したTuckER分解(学習)を行う。xijkは、教師データであり、トリプル(s,r,o)が真の場合は1の値をとり、偽の場合は0の値をとる。xijkは、数式(5)で表せられる。pijkは、このxijkを近似する機械学習モデルによる計算結果であり、機械学習モデルは式7、式8によって定式化され変形したTuckER分解により訓練される。σは、シグモイド関数である。(φijk)=σ(G×A×B×C)である。ここで、モード1及びモード3は、同じエンティティと仮定され、C=Aであるため、φijkは数式(6)で表せられる。一定回数の逐次更新が終われば、そのときのG、A、Bがテンソル分解された解であり、それをもちいて予測が可能となる。
Figure 2023068865000006
Figure 2023068865000007
コアテンソル割当部125は、予約トリプルの情報を予約トリプル特定部121から取得する。また。コアテンソル割当部125は、3階テンソルXの情報を値設定部123から受ける。
次に、コアテンソル割当部125は、予約トリプル情報を各要素にランダム値が設定された初期のコアテンソルGに割当てて反映させる。まず、コアテンソル割当部125は、予約トリプルをグループ数t にわける。もしグループ分けが不要ならグループは1(t=1)としてもよい。グループ分けは解釈性の向上を意図するものであり、必ずしも必要な処理ではない。そして、コアテンソル割当部125は、初期のコアテンソルに含まれる各要素のうち、グループ数t個の要素を予約トリプルの各グループに割り当てる。例えば、予約トリプルの特徴パターンのグループ数がt個の場合、コアテンソル割当部125は、初期のコアテンソルに含まれる要素の中からt個の要素を適当に選択する。そして、コアテンソル割当部125は、選択したt個の要素のそれぞれを予約トリプルの特徴パターンの各グループに割り当てる。例えば、コアテンソル割当部125は、図3におけるコアテンソルGの要素のうち、添字110で指定される要素1つを予約トリプルの特徴パターンの1つのグループに割り当てる。もしグループが複数あれば、その数だけ、コアテンソル割当部125は、コアテンソルGの1つの要素を予約トリプルの1つのグループに割り当てる。そして、コアテンソル割当部125は、コアテンソルGにおいて予約トリプルの特徴パターンの各グループに割り当てられた要素の情報を因子行列割当部126に通知する。以下では、予約トリプルのグループを、単に「グループ」と呼ぶ。
ここで、上述したように、コアテンソル割当部125において、予約トリプルは複数のグループに分けられる。ただし、コアテンソル割当部125は、グループ内のトリプルデータは関連することを仮定してグループ分けを行うことが好ましい。トリプルデータが関連するとは、例えば、割り当てられたコアテンソルGの要素であるgijkを介して連動して真や偽が予測されることが適当であるトリプルデータ間の関係を指す。もし、複数のトリプルデータが互いに関連するものでないと期待される場合、コアテンソル割当部125は、それぞれを異なるグループとしてコアテンソルGの異なる要素に割り当てることが好ましい。これにより、関連しないトリプルデータのそれぞれについて、コアテンソルGの絶対値が相対的に大きい要素が割り当てられる。その結果として、グループを分けたトリプルデータはそれぞれが訓練後においても正解を予測されることが保証される。もし予約トリプルのグループ分けが不要と考えられる場合には、グループは1つ(t=1)であってもよい。
これに対して、もし関連しないトリプルデータを同じグループとしてコアテンソルGの1つの要素であるgijkに割り当てた場合、一貫しないランダムな方向へ逐次学習した結果としてgijkの値がゼロに近くなるおそれがあり、その場合、そのグループのトリプルデータは教師データ通りに予測されることが保証されない。したがって、上述したように、コアテンソル割当部125は、グループ内のトリプルデータは関連することを仮定してグループ分けを行うことが好ましい。
コアテンソル割当部125は、初期のコアテンソルGにおける予約トリプルのグループに割り当てられた要素の値をq(q>>1)と設定する。例えば、qは10と設定されてもよい。因子行列割当部126により設定された要素の値は、学習時には値が固定されて更新されない。例えば、g127が予約トリプルのグループの1つに割り当てられた場合、コアテンソル割当部125は、g127=qとする。また、数式で表現しやすいように、割り当てられたコアテンソルGの要素を「固定コア要素(gijk)」と呼び、「固定したコア要素」の集合をΩ={(p,q,r)|gpqr=q}と定義する。
次に、因子行列割当部126は、予約トリプルのグループを割り当てたコアテンソルGにおける要素の位置と積を実行される因子行列A~Cの要素の一部について値を1または-1に固定する。ここで、モード1及びモード3は、同じエンティティセットを示すと仮定してもよい。その場合は因子行列C=Aとなる。上記の通りg127が予約トリプルのグループの1つに割り当てられた場合、数式(6)の計算を行った場合に、コアテンソルGにおける(1,2、7)の位置にある要素g127との積を実行される因子行列A~Bの要素は、ai1、bj2、ak7である。
因子行列割当部126は、ai1、bj2、ak7と表される要素のうち予約トリプルに影響する要素の値を1または-1に固定する。例えば、3階テンソルXにおいて予約トリプルが正例(3,1,4)及び負例(3,1,5)の2つである場合、因子行列割当部126は、a31=1、b12=1、a47=1及び、a31=1、b12=-1、a57=1とする。正例の予約トリプルでは、bjq=1とする。正例の予約トリプル(3,1,4)のテンソル積は、学習後もこれらの積、すなわち(g127×a31×b12×a47=q)の値に大きく影響されるため正の値となる。これに対して負例の予約トリプルでは、bjq=-1とする。これにより負例の予約トリプル(3,1,5)のテンソル積は、学習後もこれらの積、すなわち(g127×a31×b12×a57=-q)の値に大きく影響されるため負の値となる。
この場合、因子行列A及びBの要素のうち因子行列割当部126が値を固定した要素は、学習時には値が固定されて更新されない。反対に、因子行列割当部126により値が固定されていない要素は、学習時に更新される。例えば、因子行列割当部126がa31=1、b12=1、a47=1及び、a31=1、b12=-1、a57=1とした場合、ai1、bj2、ak7のうち、ai’1、bj’2、ak’7(i’≠i,j’≠j,k’≠k)は固定されずに、学習時に更新される。固定しなかった要素は予約トリプル以外のトリプル値に合うような適切な値が学習の結果として決定される。
ここで、因子行列割当部126は、予約トリプルのグループ数が複数の場合、別のグループとして扱うトリプルはコアテンソルGの別の要素に対応させる。言い換えれば、予約トリプルのグループ数が複数の場合、各グループ間で因子行列割当部126により固定される要素の添え字が一致しないように、各グループに割り当てるコアテンソルGの要素の位置を決定するものとする。
その後、因子行列割当部126は、コアテンソルG及び因子行列A~Cの要素のうち値を固定した要素の情報及び固定した値の情報とともに3階テンソルXを機械学習モデル生成部127へ出力する。
機械学習モデル生成部127は、コアテンソルG及び因子行列A~Cの要素のうち値を固定した要素の情報及び固定した値の情報とともに3階テンソルX及びコアテンソルG及び因子行列A~Cの情報の入力を因子行列割当部126から受ける。機械学習モデル生成部127は、データを学習することによって、未知トリプルに対して予測可能なモデルを構築する。まず、機械学習モデル生成部127は、固定された要素以外の自由に更新されるコアテンソルG及び因子行列A~Cの各要素については、絶対値が十分小さいランダムな初期値を設定する。
機械学習モデル生成部127で、データを学習した結果、テンソル分解の解が得られる。データの学習とテンソル分解は同じ処理である。上記、値設定部123,コアテンソル割当部125、因子行列割当部126にて、初期値がすべて設定されたあと、学習は逐次更新により実行される。ここで、エンティティの個数をneとして、エンティティであるi及びkをi,k=1,・・・,neと表し、リレーションの個数をnrとして、リレーションであるrをr=1,・・・,nrとした場合について説明する。この場合、全エンティティ及び全リレーションに対するコストは、次の数式(7)の損失関数で表される。ただし、数式(7)は、正解ラベルがないトリプルデータは除き、全ての正例データと負例データについての総和にあたる。
Figure 2023068865000008
本実施例では、コアテンソルGのサイズが埋め込みベクトルの次元と一致する。ここで、コアテンソルGのサイズとは、各軸方法に並ぶ要素の数である。例えば、コアテンソルGのサイズが小さすぎると、学習後の予測処理における誤差が大きくなる。逆に、コアテンソルGのサイズが大きすぎると関連するトリプルが異なるコアテンソルGの要素に割り当てられるため、データ同士の関係が不明瞭となるおそれがある。そこで、この問題を軽減するために一般化した損失関数を考える。なお、数式(7)の損失関数を用いてテンソル分解は実行されてもよい。コアテンソルGのサイズの設定はやや大きめにとり、コアテンソルGの0でない要素数が少なくなるような、すなわちスパースになるような「lノルム(エルワンノルム)」制約および「l2ノルム(エルツーノルム)」制約の正則化(regularization)を数式(7)の損失関数に加えた次の数式(8)を用いて、学習を行わせてもよい。ここで、ξ及びτは、ハイパーパラメータである。数式(8)の和は、固定コア要素の集合Ω以外のコア要素について行う。
Figure 2023068865000009
機械学習モデル生成部127は、ハイパーパラメータの仮の値が与えられた数式(7)に、正例データ及び負例データのトリプルデータを用いて学習を実行する。1組の固定されたハイパーパラメータで学習するとき、数式(7)を最小化するように各パラメータを更新する。例えば、機械学習モデル生成部127は、勾配降下法などを用いることができる。この際、機械学習モデル生成部127は、自由に更新される因子行列A~Cの要素については、十分に小さいランダムな値を初期値として設定して学習を開始する。学習するにつれて、自由に更新される因子行列A~Cの要素の絶対値が増加することで近似が良くなりコストが小さくなる。逐次更新を繰り返した結果、コストの改良が停留したところで、機械学習モデル生成部127は、学習を停止する。これにより、機械学習モデル生成部127は、与えられたトリプルデータを表す3階テンソルXを近似するコアテンソルG及び因子行列A~Cを得ることができる。ここで、実際には、C=Aであるがここでは因子行列A~Cと表記する。
機械学習モデル生成部127は、数式(8)の損失関数におけるハイパーパラメータを決定して最良の学習モデルを決定する。その方式は、交差検証(クロスバリデーション)を用いてハイパーパラメータを決定する。すなわち、テンソル分解部124では、損失関数の演算を正則化した数式(7)において分解をした。機械学習モデル生成部127ではあらかじめ適当に与えた様々なハイパーパラメータの組についてテンソル分解部124を実行する。パターン毎に学習を実行する。そして、機械学習モデル生成部127は、学習により得られた各モデルを用いて交差検証を行い、交差検証の結果、すなわちtestセット(正解がわかっているデータのうち、学習に用いていないデータ)に対して得られた損失関数(数式(8))の値が良い(低い)モデルを1つ選択して、様々なハイパーパラメータの組の中から最適なハイパーパラメータの組を1つ決定する。なお、数式(7)は、数式(8)においてξ及びτをゼロにした場合とみなせばよい。ここで、もしハイパーパラメータの組の異なるパターンの損失関数が同じ誤差を有する場合であれば、機械学習モデル生成部127は、pijkの絶対値が小さい方を選ぶ。このように、数式(7)のように「lノルム」制約および「l2ノルム」制約の正則化を用いることで、機械学習モデル生成部127は、絶対値の大きさもコストとして考慮することが可能となる。なお、コアテンソルGのサイズ(p、q,r)もハイパーパラメータであり、ここで様々な値を検証して決定される。このように、機械学習モデル生成部127は、コアテンソルGのサイズを結果的に最適化する効果がある。
その後、機械学習モデル生成部127は、得られたコアテンソルG及び因子行列A~Cを予測部128へ出力する。
予測部128は、与えられたトリプルデータを表す3階テンソルXを近似するコアテンソルG及び因子行列A~Cの情報を機械学習モデル生成部127から取得する。次に、予測部128は、取得したコアテンソルG及び因子行列A~Cを用いて、真偽が不明な未知トリプルの真偽を予測する。
ここで、エンティティを意味するモード1及びモード3の次元は、エンティティの数と同じである。すなわち、因子行列Aの行数であるIと、因子行列Cの行数であるKと、エンティティの数であるneとは全て等しく、I=K=neである。また、リレーションを意味するモード2の次元はリレーションの数と同じである。すなわち、因子行列Bの行数であるJと、リレーションの数であるnrとは全て等しく、J=nrである。
そこで、iに着目して、因子行列Aのi行目をエンティティeiの埋め込みベクトルとする。また、kに着目して、因子行列Aのk行目をエンティティekの埋め込みベクトルとする。また、jに着目して、因子行列Bのj行目をエンティティrjの埋め込みベクトルとする。この場合に、予測部128は、未知のトリプルデータである(ei,rj,ek)の真偽を予測する場合、p=σ(φijk)を計算する。p=σ(φijk)は、トリプルデータである(i,j,k)が真となる確率とみなすことができる。すなわち、予測部128は、pが予め決められた予測用閾値以上のときは、予測対象としたトリプルデータである(i,j,k)が真であると予測する。予測用閾値は、例えば、0.5とすることが可能である。
特に、予測部128は、学習時に予約トリプルとしたトリプルデータに関連する新たなトリプルを同定することができ、且つ、そのトリプルは真と判定することができる。以下に、予約トリプルとしたトリプルデータに関連する新たなトリプルの同定方法を説明する。前提として、予約トリプルは、利用者の興味関心が高い既知事実である。
学習時には、予約トリプルのグループに割り当てたコアテンソルGの要素に大きい値qが設定される。大きい値qは、例えば、10であってもよい。例えば、コアテンソルGの要素であるg127が予約トリプルのグループに割り当てられた場合、g127の値がqとして固定される。また、この場合、ai1、bj2、ak7のうちの予約トリプルとなる要素について値を固定した。そして、固定された要素以外のai’1、bj’2、ak’7(i’≠i,j’≠j,k’≠k)は固定されずに、十分小さい値を初期値として学習時に更新される。ここで、もし関連するトリプルデータが存在する場合、コスト関数に影響ある教師データと一致させるためにai’1、bj’2、ak’7の絶対値が大きくなると期待できる。
そこで、予測部128は、予約トリプルのグループに割り当てられたコアテンソルGの要素に対応する因子行列A及びBの要素のうち学習時に値が固定されていない要素の中から絶対値が同定用閾値以上の要素を探す。ここで、同定用閾値として、例えば0.2を用いることができる。例えば、予測部128は、絶対値が同定用閾値以上のai’1、bj’2、ak’7を探す。このようなトリプルデータであるi’、j’、k’が存在する場合、予測部128は、ei’、ej’、ek’が、g127及び予約トリプルに関連するエンティティ及びリレーションであると判定する。この、i’、j’、k’はそれぞれ2つ以上あり得る。そこで、予測部128は、このg127及び予約トリプルに関連するエンティティ及びリレーションについてのトリプルデータであるxi’mn、xlj’n、xlmk’が、g127及び予約トリプルに関連するトリプルデータであると判定する。そして、予測部128は、これらの予約トリプルに関連するトリプルデータのうち真のトリプルデータ、もしくは予測値が真のトリプルデータが興味深い検討対象として特定する。
この点、従来の学習技術では、正例データのトリプルデータであるにもかかわらず、学習後の予測値が偽となる可能性があった。そのため、従来の学習技術を用いた場合の学習後のモデルでは、訓練データと予測結果が必ずしも一致しないため、同様な解析は一貫性が無く矛盾する場合が発生するおそれがある。そのため、従来の学習技術を用いた場合、所定のトリプルデータに関連するトリプルデータを検出することは困難である。
これに対して、本実施例に係る学習方法の場合、予約トリプルに対応するパラメータを更新しないことで、予約トリプルに関連するトリプルデータを予測対象とした場合、φijkの絶対値は非常に大きな値になることが保証される。すなわち、予測対象のトリプルデータが、正例については真となる確率であるp=σ(φijk)が1に近くなり、負例についてはp=σ(φijk)が0に近くなることが保証される。また、添え字の異なるコアテンソル要素は互いに入れ替わった結果となっても、それぞれに対応する要素が交換された因子行列が生成されるため、φijkは不変となる。例えば、gpq5とgpq6とが入れ替わったとしても、ak5とak6とが交換された因子行列Aが生成されるため、φijkは不変である。したがって、予約トリプルのグループのそれぞれに割り当てられるコアテンソルGの要素の位置の順番は重要ではないといえる。さらに、コアテンソルGの各次元は近似対象とする3階テンソルXの各モードの分階数と考えられる。したがって、複雑なデータほど、コアテンソルGのサイズは大きい方が適切であるといえる。
その後、予測部128は、予測結果を利用者端末20へ送信するなどして、利用者に予測結果を通知する。例えば、予測部128は、データ保持部11に格納されたトリプルデータの中から予約トリプルに関連するトリプルデータを特定して利用者端末20に送信してもよい。また、予測部128は、利用者端末20から入力されたトリプルデータに対する予測結果として、真偽判定の結果及び予約トリプルに関連するトリプルデータであるか否かを利用者端末20へ送信してもよい。
図4は、実施例に係る機械学習装置によるトリプルデータの学習処理のフローチャートである。次に、図4を参照して、実施例に係る機械学習装置10によるトリプルデータの学習処理の流れについて説明する。
予約トリプル特定部121は、データ保持部11が保持するトリプルデータの中から、利用者から興味があるトリプルデータとして指定された予約トリプルを特定する(ステップS1)。上記予約トリプルには正例と負例が両方入って良い。その後、予約トリプル特定部121は、特定した予約トリプルの情報を値設定部123及びコアテンソル割当部125へ出力する。
また、負例生成部122は、データ保持部11が保持する正例データであるトリプルデータを取得して、数式(1)又は(2)などを用いて負例データを生成する(ステップS2)。その後、負例生成部122は、負例データの情報を値設定部123へ出力する。
値設定部123は、訓練データであるトリプルデータをデータ保持部11から取得する。また、値設定部123は、予約トリプルの情報の入力を予約トリプル特定部121から受ける。さらに、値設定部123は、負例データの情報の入力を負例生成部122から受ける。次に、値設定部123は、取得したトリプルデータの真偽を表す3階テンソルを生成する。そして、値設定部123は、正例データにあたる要素の値を1に設定する。また、値設定部123は、負例データにあたる要素の値を0に設定する。さらに、値設定部123は、正例データ及び負例データ以外の未知トリプルにあたる要素の値を1と0との間の値に設定する(ステップS3)。その後、値設定部123は、値を設定した3階テンソルをテンソル分解部124へ出力する。
その後、値設定部123は、学習対象の3階テンソル及びコアテンソル及び因子行列の情報をコアテンソル割当部125へ出力する。
コアテンソル割当部125は、学習対象の3階テンソル及びその3階テンソルの分解後のコアテンソル及び因子行列の情報の入力をテンソル分解部124から受ける。また、コアテンソル割当部125は、予約トリプルの情報の入力を予約トリプル特定部121から受ける。次に、コアテンソル割当部125は、予約トリプルの特徴パターンのグループを生成する。そして、コアテンソル割当部125は、予約トリプルのグループ毎に、コアテンソルの要素を割り当てる(ステップS4)。その後、コアテンソル割当部125は、予約トリプルの各グループがいずれかの要素の割り当てられたコアテンソル、因子行列及び3階テンソルの情報を因子行列割当部126へ出力する。
因子行列割当部126は、予約トリプルの各グループがいずれかの要素の割り当てられたコアテンソル、因子行列及び3階テンソルの情報の入力をコアテンソル割当部125から受ける。次に、因子行列割当部126は、予約トリプルの各グループが割り当てられたコアテンソルの要素の値を大きな実数に設定して固定する。さらに、因子行列割当部126は、予約トリプルの各グループが割り当てられたコアテンソルの要素に対応する各因子行列における要素の値を1に固定する(ステップS5)。その後、因子行列割当部126は、予約トリプルの各グループが割り当てられた要素の値が固定されたコアテンソル、予約トリプルの各グループが割り当てられた要素に対応する要素の値が固定された因子行列及び3階テンソルの情報を機械学習モデル生成部127へ出力する。
機械学習モデル生成部127は、取得した3階テンソルに対して数式(7)または数式(8)で表される(l-norm)制約の正則化を含む損失関数を用いて、学習(テンソル分解)を行う(ステップS6)。これにより、機械学習モデル生成部127は、Xijk≒pijk=σ(φijk)によりXを近似して表すように係数を求め、学習後のコアテンソル及び因子行列を得る。これはある1組のハイパーパラメータに対する学習に相当する。
機械学習モデル生成部127は、上記学習を所与の各ハイパーパラメータについて別々に行う。1組のハイパーパラメータに対して学習を行うと1つの学習モデルが生成される。機械学習モデル生成部127は、各モデルに対して交差検証を行い、正解率を出力する。機械学習モデル生成部127は、正解率の高いモデルを最適モデルとして選択して、ハイパーパラメータを決定する。次に、機械学習モデル生成部127は、得られた最適なモデルを予測部128へ出力する(ステップS7)。
図5は、実施例に係る機械学習装置による予測処理のフローチャートである。次に、図5を参照して、実施例に係る機械学習装置10による予測処理の流れを説明する。
予測部128は、機械学習モデル生成部127から取得した学習対象とした3階テンソルを近似するコアテンソル及び因子行列をモデルとして保持する。予測部128は、予測対象のトリプルデータを取得する(ステップS11)。
次に、予測部128は、学習済みのコアテンソル及び因子行列を用いて予測対象のトリプルデータの予測を実行する(ステップS12)。
次に、予測部128は、予測対象のトリプルデータが真となる確率を、p=σ(φijk)を用いて計算する(ステップS13)。
次に、予測部128は、Pが予測用閾値以上か否かを判定する(ステップS14)。Pが予測閾値以上の場合(ステップS14:肯定)、予測部128は、予測対象のトリプルデータは真のトリプルデータであると推定して、トリプルデータに「真」のタグをつける(ステップS15)。これに対して、Pが予測閾値未満の場合(ステップS14:否定)、予測部128は、予測対象のトリプルデータは偽のトリプルデータであると推定して、トリプルデータに「偽」のタグをつける(ステップS16)。
次に、予測部128は、予約トリプルのグループに割り当てられたコアテンソルGの要素に対応する因子行の要素のうち学習時に値が固定されていない要素の中から絶対値が同定用閾値以上の要素を探す。そして、予約トリプルに関連するトリプルデータを特定する。次に、予測部128は、予約トリプルに関連するエンティティ及びリレーションを特定する。そして、予測部128は、予約トリプルに関連するエンティティ及びリレーションを用いて、予約トリプルに関連するトリプルデータを特定する(ステップS17)。
次に、予測部128は、特定した予約トリプルに関連するトリプルデータに予測対象のトリプルデータが含まれているか否かを判定する(ステップS18)。
特定した予約トリプルに関連するトリプルデータに予測対象のトリプルデータが含まれている場合(ステップS18:肯定)、予測部128は、予測対象のトリプルデータは利用者の興味があるトリプルデータであると予測する(ステップS19)。
これに対して、特定した予約トリプルに関連するトリプルデータに予測対象のトリプルデータが含まれていない場合(ステップS18:否定)、予測部128は、予測対象のトリプルデータが利用者の興味から外れたトリプルデータであると予測する(ステップS20)。
以上に説明したように、本実施例に係る機械学習装置は、興味の対象となるトリプルデータを予約トリプルとして、訓練データコアテンソルにおけるその予約トリプルが割り当てられた要素の値を大きな実数とする。また、機械学習装置は、その要素に関連する因子行列の要素の値を1(あるいは-1)に固定する。そして、機械学習装置は、値を設定した3階層テンソル及び所定の要素の値を固定したコアテンソル及び因子行列を用いて学習を実行する。
ここで、通常のTucker分解では、解析するデータのテンソルを再現するように係数が求められる。これに対して、本実施例に係る機械学習装置のようなシグモイドを介したTuckERでは、φijkの値が大きければ1に収束する。そのため、真となることを保証するために値を大きくすることは下位の探索に影響を与えないため、本実施例に係る機械学習装置の処理を行っても適切なモデルを作成することができる。
また、訓練データを学習後のモデルに真偽判定を行わせた場合、予測結果が正解と一致することが望ましい。しかし、統計的学習モデルでは、どのアルゴリズムでも指定した個別のデータについて正解させることは汎化を犠牲しない限り通常は困難である。また、予約トリプルの予測を正解させるという目的であれば単純に予約トリプルと正解との関係を記憶させる方法が考えられる。しかし、その場合、記憶したケースと少しでもずれたトリプルデータを用いた場合、誤る可能性が高い。すなわち、は通常求められる汎化能力をその予測モデルでは獲得しきれていないといえる。これに対して、本実施例に係る機械学習装置は、予約トリプルについては学習後も正解ラベルと同等な真偽を判定して正解することが可能である。
コアテンソルを十分大きなサイズにすると従来方法でも教師ラベル通りに予測をするモデルが可能である。しかし、それでは事例を記憶するような過学習状態の予測モデルとなって、未知トリプルに正しい予測は期待できない。本発明で想定する次元数はそれより小さいサイズのコアテンソルであり、それが故に学習事例のうち似た事例の共通性を学習したモデルが期待され、その結果、未知トリプルについても正確に予測することを意図している。
さらに、機械学習モデルの中には、例えば、k-NN(Nearest Neighbor)法が存在する。k=1の場合のk-NNでは、予測の真偽判定が訓練データと一致する。また、訓練データに近いケースの予測も正解する確率が高い。ただし、k-NNは、扱うデータが表形式の1行もしくは1ケースといったように1つであるのに対して、全ての説明変数にあたる全属性の値を用いることになる。これに対して、本実施例に係る機械学習装置のように、知識グラフを用いた場合、1ケースあたり、全属性中の3つの変数セットであるトリプルデータが用いられる。つまり、本実施例に係る機械学習装置は、問題設定の条件が緩くても学習を行うことが可能であり、学習の汎用性を向上させることが可能となる。
また、従来の知識グラフの埋め込みの枠組みで、指定した訓練データをできるだけ誤判定しないように学習するには、指定した訓練データを用いて何度も学習する方法や指定した訓練データの重みを大きくする方法などが考えられる。しかし、いずれの方法も生成されたモデルで指定データを誤判定しない保証はない。これに対して、本実施例に係る機械学習装置は、予約トリプルとして指定されたデータに対する正しい予測を保証することが可能である。
このように、本実施例に係る機械学習装置は、特定データにおける学習効果が保証される。すなわち、利用者の興味対象として指定されたトリプルデータである予約トリプルは、同じコアテンソル要素に対応させるならば、学習の最中もそのスコアが高いままであり、学習後も真となることが保証される。したがって、学習の信頼性を維持することができる。また、本実施例に係る機械学習装置は、着目する事実と関連する事象を提示することが可能である。すなわち、本実施例に係る機械学習装置は、与えられた予約トリプルを用いて学習を行うことで、学習後にそれらに関連する他のトリプルを特定することが可能である。これにより、データの一部を解釈することが可能となる。
従来の統計的機械学習を行った場合、学習後のデータ同士の関連は不明である場合が多い。TuckERを用いた技術であっても、Link predictionの精度向上は期待できるが、分解結果からデータ関連性の解釈は困難である。これに対して、本実施例に係る機械学習装置によれば、データの関連性の解釈が可能になる。
(ハードウェア構成)
図6は、実施例に係る機械学習装置のハードウェア構成図である。次に、図6を参照して、本実施例に係る機械学習装置10のハードウェア構成の一例について説明する。
例えば、本実施例に係る機械学習装置10は、CPU(Central Processing Unit)91、メモリ92、ハードディスク93及びネットワークインタフェース94を有する。CPU91は、バスを介してメモリ92、ハードディスク93及びネットワークインタフェース94に接続される。
ネットワークインタフェース94は、機械学習装置10と外部装置との通信インタフェースである。例えば、ネットワークインタフェース94は、CPU91と利用者端末20との間の通信を中継する。
ハードディスク93は、補助記憶装置である。ハードディスク93は、図1に例示したデータ保持部11の機能を実現する。また、ハードディスク93は、図1に例示した制御部12の機能を実現するための情報処理プログラムを含む各種プログラムを格納する。
CPU91は、ハードディスク93から各種プログラムを読み出してメモリ92上に展開して実行することで、図1に例示した制御部12の機能を実現することが可能である。
10 機械学習装置
11 データ保持部
12 制御部
20 利用者端末
121 予約トリプル特定部
122 負例生成部
123 値設定部
125 コアテンソル割当部
126 因子行列割当部
127 機械学習モデル生成部
128 予測部

Claims (8)

  1. 複数のトリプルデータを表すテンソルを生成し、
    前記テンソルをコアテンソル及び因子行列にテンソル分解する際、前記複数のトリプルデータのうちの第1のトリプルデータに対応する前記因子行列の第1の要素の値と、前記コアテンソルの第2の要素の値とを固定した条件下で、前記テンソル分解を実行する、
    処理をコンピュータに実行させることを特徴とする機械学習プログラム。
  2. 前記第1の要素の値は1より大きい実数である、ことを特徴とする請求項1に記載の機械学習プログラム。
  3. 正例のトリプルデータに基づいて負例のトリプルデータを作成することによって前記複数のトリプルデータを取得する、
    処理を前記コンピュータに実行させることを特徴とする請求項1又は2に記載の機械学習プログラム。
  4. 前記第1の要素と前記第2の要素とは、前記コアテンソルと前記因子行列との積を計算する際に、掛け合わされる位置関係にある、
    ことを特徴とする請求項1~3のいずれか一つに記載の機械学習プログラム。
  5. 予測対象のトリプルデータの指定を受け付け、
    前記テンソル分解により得られた前記コアテンソル及び前記因子行列を用いて、前記予測対象のトリプルデータの真偽と、前記予測対象のトリプルデータと前記第1のトリプルデータとの関連性とのうち少なくとも一方を判定する、
    処理を前記コンピュータに実行させることを特徴とする請求項1~4のいずれか一つに記載の機械学習プログラム。
  6. 前記第1のトリプルデータを複数のグループに分解し、
    前記グループ毎に対応する前記コアテンソルの要素を割り当てる
    ことを特徴とする請求項1~5のいずれか一つに記載の機械学習プログラム。
  7. 複数のトリプルデータを表すテンソルを生成し、
    前記テンソルをコアテンソル及び因子行列にテンソル分解する際、前記複数のトリプルデータのうちの第1のトリプルデータに対応する前記因子行列の第1の要素の値と、前記コアテンソルの第2の要素の値とを固定した条件下で、前記テンソル分解を実行する、
    ことを特徴とする機械学習方法。
  8. 学習用の複数のトリプルデータを保持するデータ保持部と、
    複数のトリプルデータを表すテンソルを生成し、前記テンソルをコアテンソル及び因子行列にテンソル分解する際、前記複数のトリプルデータのうちの第1のトリプルデータに対応する前記因子行列の第1の要素の値と、前記コアテンソルの第2の要素の値とを固定した条件下で、前記テンソル分解を実行する制御部と
    を備えたことを特徴とする機械学習装置。
JP2021180266A 2021-11-04 2021-11-04 機械学習プログラム、機械学習方法及び機械学習装置 Pending JP2023068865A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2021180266A JP2023068865A (ja) 2021-11-04 2021-11-04 機械学習プログラム、機械学習方法及び機械学習装置
EP22184674.4A EP4177773A1 (en) 2021-11-04 2022-07-13 Machine learning program, machine learning method, and machine learning apparatus
US17/866,684 US20230135468A1 (en) 2021-11-04 2022-07-18 Non-transitory computer-readable storage medium for storing machine learning program, machine learning method, and machine learning apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021180266A JP2023068865A (ja) 2021-11-04 2021-11-04 機械学習プログラム、機械学習方法及び機械学習装置

Publications (1)

Publication Number Publication Date
JP2023068865A true JP2023068865A (ja) 2023-05-18

Family

ID=82595047

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021180266A Pending JP2023068865A (ja) 2021-11-04 2021-11-04 機械学習プログラム、機械学習方法及び機械学習装置

Country Status (3)

Country Link
US (1) US20230135468A1 (ja)
EP (1) EP4177773A1 (ja)
JP (1) JP2023068865A (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11042922B2 (en) 2018-01-03 2021-06-22 Nec Corporation Method and system for multimodal recommendations
US20200160215A1 (en) 2018-11-16 2020-05-21 NEC Laboratories Europe GmbH Method and system for learning numerical attributes on knowledge graphs
CN109902186B (zh) 2019-03-12 2021-05-11 北京百度网讯科技有限公司 用于生成神经网络的方法和装置
CN113421614A (zh) * 2021-07-08 2021-09-21 湖南大学 一种基于张量分解的lncRNA-疾病关联预测方法

Also Published As

Publication number Publication date
US20230135468A1 (en) 2023-05-04
EP4177773A1 (en) 2023-05-10

Similar Documents

Publication Publication Date Title
Zhang et al. A cross-domain recommender system with kernel-induced knowledge transfer for overlapping entities
US10068186B2 (en) Model vector generation for machine learning algorithms
Drton et al. Multiple testing and error control in Gaussian graphical model selection
Trittenbach et al. An overview and a benchmark of active learning for outlier detection with one-class classifiers
Hernández-Lobato et al. Empirical analysis and evaluation of approximate techniques for pruning regression bagging ensembles
Galke et al. Lifelong learning of graph neural networks for open-world node classification
Auliac et al. Evolutionary approaches for the reverse-engineering of gene regulatory networks: A study on a biologically realistic dataset
Akman et al. k-best feature selection and ranking via stochastic approximation
US11593680B2 (en) Predictive models having decomposable hierarchical layers configured to generate interpretable results
Villacorta et al. Sensitivity analysis in the scenario method: A multi-objective approach
Gao et al. Multi-objective pointer network for combinatorial optimization
Fortier et al. Parameter estimation in Bayesian networks using overlapping swarm intelligence
JP2023068865A (ja) 機械学習プログラム、機械学習方法及び機械学習装置
Leporati et al. Inferring P systems from their computing steps: An evolutionary approach
Bu et al. Active learning in recommendation systems with multi-level user preferences
Sood Iterative solver selection techniques for sparse linear systems
Zulaika et al. Influence functions for interpretable link prediction in knowledge graphs for intelligent environments
Dhaou et al. An evidential method for correcting noisy information in social network
Štolfa et al. Value estimation of the use case parameters using SOM and fuzzy rules
CN115658926B (zh) 知识图谱的要素推测方法、装置、电子设备和存储介质
Guo et al. Advantage Actor-Critic with Reasoner: Explaining the Agent's Behavior from an Exploratory Perspective
Mohammad-Taheri et al. Optimal adjustment sets for causal query estimation in partially observed biomolecular networks
US20240120024A1 (en) Machine learning pipeline for genome-wide association studies
Duran-Dominguez et al. Improving the accuracy of prediction applications by efficient tuning of gradient descent using genetic algorithms
Duran-Dominguez et al. Selecting latent factors when predicting student performance in online campus by using recommender systems