(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-19
(45)【発行日】2023-06-27
(54)【発明の名称】機械学習プログラム、機械学習方法及び機械学習装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20230620BHJP
G06N 5/022 20230101ALI20230620BHJP
G06F 16/90 20190101ALI20230620BHJP
【FI】
G06N20/00
G06N5/022
G06F16/90 100
(21)【出願番号】P 2022504825
(86)(22)【出願日】2020-03-03
(86)【国際出願番号】 JP2020008992
(87)【国際公開番号】W WO2021176572
(87)【国際公開日】2021-09-10
【審査請求日】2022-04-21
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】村上 勝彦
【審査官】多賀 実
(56)【参考文献】
【文献】特開2019-164669(JP,A)
【文献】国際公開第2019/005606(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
複数のエンティティ間の関係を示すグラフ構造に含まれる前記複数のエンティティを分類し、
前記分類に応じて生成された第1のグループと第2のグループとの前記グラフ構造における接続部分に位置する第1のエンティティを特定し、
前記複数のエンティティ間の関係を示す複数の学習データのうち、前記第1のエンティティと他のエンティティとの関係を示す第1の学習データを他の学習データより優先して機械学習モデルに入力することによって、前記機械学習モデルの機械学習を実行する、
処理をコンピュータに実行させることを特徴とする機械学習プログラム。
【請求項2】
前記複数のエンティティ間の相関行列から前記グラフ構造を生成する処理を前記コンピュータにさらに実行させ、
前記分類する処理は、前記複数のエンティティ間の相関行列から生成された前記グラフ構造に含まれる前記複数のエンティティを分類する処理を含む、
ことを特徴とする請求項1に記載の機械学習プログラム。
【請求項3】
前記複数のエンティティ間の相関行列は、前記複数の学習データが示す前記複数のエンティティ間の関係に基づいて生成される、
ことを特徴とする請求項2に記載の機械学習プログラム。
【請求項4】
前記特定する処理は、前記第1のグループと前記第2のグループとを所定の上限値以内の連結数で接続するエッジの両端のノードに対応するエンティティを前記第1のエンティティとして特定する処理を含む、
ことを特徴とする請求項1に記載の機械学習プログラム。
【請求項5】
前記分類する処理は、前記複数のエンティティ間の複数種類の関係のうちいずれか1つの関係に基づいて実行される、
ことを特徴とする請求項1に記載の機械学習プログラム。
【請求項6】
前記分類する処理は、前記グラフ構造に含まれる前記複数のエンティティを関係の種類ごとに分類する処理を含み、
前記特定する処理は、前記関係の種類ごとに生成されたグループの分類結果のうちモジュール性が最高であるグループの分類結果に基づいて実行される、
ことを特徴とする請求項1に記載の機械学習プログラム。
【請求項7】
前記他の学習データは、前記第1のグループ内のエンティティ間の関係を示す第2の学習データと前記第2のグループ内のエンティティ間の関係を示す第3の学習データとを含み、
前記実行する処理は、前記第2の学習データと前記第3の学習データとを前記機械学習モデルに並列に入力することによって、前記機械学習モデルの機械学習を実行する処理を含む、
ことを特徴とする請求項1に記載の機械学習プログラム。
【請求項8】
複数のエンティティ間の関係を示すグラフ構造に含まれる前記複数のエンティティを分類し、
前記分類に応じて生成された第1のグループと第2のグループとの前記グラフ構造における接続部分に位置する第1のエンティティを特定し、
前記複数のエンティティ間の関係を示す複数の学習データのうち、前記第1のエンティティと他のエンティティとの関係を示す第1の学習データを他の学習データより優先して機械学習モデルに入力することによって、前記機械学習モデルの機械学習を実行する、
処理をコンピュータが実行することを特徴とする機械学習方法。
【請求項9】
複数のエンティティ間の関係を示すグラフ構造に含まれる前記複数のエンティティを分類し、
前記分類に応じて生成された第1のグループと第2のグループとの前記グラフ構造における接続部分に位置する第1のエンティティを特定し、
前記複数のエンティティ間の関係を示す複数の学習データのうち、前記第1のエンティティと他のエンティティとの関係を示す第1の学習データを他の学習データより優先して機械学習モデルに入力することによって、前記機械学習モデルの機械学習を実行する、
処理を実行する制御部を含む機械学習装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習技術に関する。
【背景技術】
【0002】
知識グラフの埋め込み技術が知られている。例えば、知識グラフでは、知識は、「s(主語)についてr(述語)の値(目的語)はoである」といった3つ組、いわゆるトリプルで表現される。sおよびoはエンティティ、rはリレーションと呼ばれることがある。これらのトリプル(s,r,o)の要素各々を特徴量空間上のベクトルとして埋め込む変換が機械学習を実行することにより獲得される。このように機械学習で生成されるモデルは、一例として、未知の関係を有するトリプルを予測するリンク予測等の推論に利用される。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2019-125364号公報
【文献】特表2016-532942号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記の知識グラフの埋め込み技術では、全てのエンティティの間でモデルのパラメータの収束に与える影響が同一でないにもかかわらず、機械学習の実行時に全てのエンティティが同列に扱われる。それ故、一部のエンティティが一因となってモデルのパラメータの収束が長引くので、機械学習の処理遅延の原因となる。
【0005】
1つの側面では、本発明は、グラフ埋め込みに関する機械学習の高速化を実現できる機械学習プログラム、機械学習方法及び機械学習装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
一態様では、機械学習プログラムは、複数のエンティティ間の関係を示すグラフ構造に含まれる前記複数のエンティティを分類し、前記分類に応じて生成された第1のグループと第2のグループとの前記グラフ構造における接続部分に位置する第1のエンティティを特定し、前記複数のエンティティ間の関係を示す複数の学習データのうち、前記第1のエンティティと他のエンティティとの関係を示す第1の学習データを他の学習データより優先して機械学習モデルに入力することによって、前記機械学習モデルの機械学習を実行する、処理をコンピュータに実行させる。
【発明の効果】
【0007】
グラフ埋め込みに関する機械学習の高速化を実現できる。
【図面の簡単な説明】
【0008】
【
図1】
図1は、実施例1に係るサーバ装置の機能的構成の一例を示すブロック図である。
【
図2】
図2は、エンティティの相関プロットの一例を示す図である。
【
図4】
図4は、モジュールの他の一例を示す図である。
【
図6】
図6は、実施例1に係る機械学習処理の手順を示すフローチャート(1)である。
【
図7】
図7は、実施例1に係る機械学習処理の手順を示すフローチャート(2)である。
【
図8】
図8は、コンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【0009】
以下に添付図面を参照して本願に係る機械学習プログラム、機械学習方法及び機械学習装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【0010】
図1は、実施例1に係るサーバ装置10の機能的構成の一例を示すブロック図である。
図1には、実施例1に係る機械学習サービスが適用されるシステムのあくまで一例として、クライアントサーバシステム1が例示されている。
図1に示すクライアントサーバシステム1は、1つの側面として、グラフ埋め込みに関する機械学習を実行する機械学習サービスを提供するものである。
【0011】
図1に示すように、クライアントサーバシステム1には、サーバ装置10と、クライアント端末30とが含まれ得る。これらサーバ装置10及びクライアント端末30は、ネットワークNWを介して通信可能に接続される。例えば、ネットワークNWは、有線または無線を問わず、インターネットやLAN(Local Area Network)などの任意の種類の通信網であってよい。
【0012】
サーバ装置10は、上記の機械学習サービスを提供するコンピュータの一例である。サーバ装置10は、機械学習装置の一例に対応し得る。一実施形態として、サーバ装置10は、上記の機械学習サービスに対応する機能を実現する機械学習プログラムを任意のコンピュータにインストールさせることによって実装できる。例えば、サーバ装置10は、上記の機械学習サービスをオンプレミスに提供するサーバとして実装することができる。この他、サーバ装置10は、SaaS(Software as a Service)型のアプリケーションとして実装することで、上記の機械学習サービスをクラウドサービスとして提供してもよい。
【0013】
クライアント端末30は、上記の機械学習サービスの提供を受けるコンピュータの一例である。例えば、クライアント端末30には、パーソナルコンピュータなどのデスクトップ型のコンピュータなどが対応する。これはあくまで一例に過ぎず、クライアント端末30は、ラップトップ型のコンピュータや携帯端末装置、ウェアラブル端末などの任意のコンピュータであってもよい。
【0014】
埋め込み対象とするグラフの一例として知識グラフを挙げる。例えば、知識グラフでは、知識は、「s(主語)についてr(述語)の値(目的語)はoである」といった3つ組、いわゆるトリプルで表現される。sおよびoはエンティティ、rはリレーションと呼ばれることがある。これらのトリプル(s,r,o)の要素各々を特徴量空間上のベクトルとして埋め込む変換が機械学習を実行することにより獲得される。このように機械学習で生成されるモデルは、一例として、未知の関係を有するトリプルを予測するリンク予測等の推論に利用できる。
【0015】
上記の背景技術の欄で説明した通り、上記の知識グラフの埋め込み技術では、全てのエンティティの間でモデルのパラメータの収束に与える影響が同一でないにもかかわらず、機械学習の実行時に全てのエンティティが同列に扱われる。それ故、一部のエンティティが一因となってモデルのパラメータの収束が長引くので、機械学習の高速化に限界がある。
【0016】
そこで、本実施例に係る機械学習サービスでは、1つの側面として、機械学習の実行時に扱うエンティティに優劣を付ける課題解決のアプローチを採用する。このようなアプローチは、エンティティ間の関係を示すグラフ構造のネットワークに現れるモジュール間の接続部分に位置するエンティティである否かにより、モデルのパラメータの収束に与える影響に違いが現れるという技術的視点があってはじめて採用し得る。
【0017】
すなわち、上記のネットワークは、下記に例示される通り、モジュール構造を有することが各種の研究結果として得られている。あくまで一例として、“Stack Overflow”で調査されたネットワークにおいて、モジュール性がしばしば見られる。ネットワークはいくつかのモジュールに分けられることがあり、特に、社会的なネットワークでは、モジュールはコミュニティと呼ばれることもある。他の一例として、下記の論文1からも明らかな通り、現実の代謝ネットワークにおいても、生化学的にまとまって分けて考えられる機能的モジュールが存在している。[論文1]Ravasz E, Somera AL, Mongru DA, Oltvai ZN, Barabasi AL.“Hierarchical organization of modularity in metabolic networks.” Science. 2002 Aug 30;297(5586):1551-5.
【0018】
さらに、ネットワークに現れるモジュールにおいて、モジュール性は、相関行列に現れる側面がある。下記の論文2の
図3では、因子(タンパク質=エンティティ)の発現相関がプロットされた例が示されている。[論文2]“Combined Metabolomic Analysis of Plasma and Urine Reveals AHBA, Tryptophan and Serotonin Metabolism as Potential Risk Factors in Gestational Diabetes Mellitus (GDM)”
【0019】
例えば、上記のネットワークは、エンティティ間の相関行列から生成することができる。ここでは、あくまで一例として、相関係数が所定の閾値、例えば0.7以上であるエンティティ間にリレーションがあるとみなし、エンティティがノードで表現されると共にリレーションがエッジで表現されたグラフ構造のネットワークを生成する例を挙げる。
【0020】
図2は、エンティティの相関プロットの一例を示す図である。
図2には、あくまで一例として、e
1~e
9の9個のエンティティの組合せごとにエンティティ間の相関係数がその値に応じて区別されたハッチングで示されている。例えば、
図2に示す例で言えば、e
1~e
9の各エンティティに対応するノードが生成される。さらに、白のハッチングで示されたエンティティの組に対応するノード間にエッジが生成される一方で、それ以外のハッチングで示されたエンティティの組に対応するノード間にはエッジが生成されない。これによって、グラフ構造を有するネットワーク(
図3参照)が生成される。
【0021】
このようなネットワークは、上述の通り、複数のモジュールに分類することができる。あくまで一例として、ネットワークに含まれるノードにスペクトラルクラスタリングを適用することにより、ノードをモジュールに対応するクラスタに分類することができる。
【0022】
図3は、モジュールの一例を示す図である。
図3には、
図2に示すエンティティの相関プロットから生成されたネットワークデータが示されている。さらに、
図3には、ネットワークデータに対するクラスタリングの結果として、2つのモジュール、すなわちmodule_1及びmodule_2が示されている。
図3に示すように、ネットワークデータに対するノードの分類結果として、e
1~e
6の6つのエンティティE
1を含むmodule_1と、e
7~e
9の3つのエンティティE
2を含むmodule_2とが得られる。これらmodule_1およびmodule_2は、独立、すなわちE
1∩E
2=空集合である。
Entity:e
i∈E
1(i=1,…,6)module_1
Entity:e
j∈E
2(j=7,8,9)module_2
【0023】
図3に示す例で言えば、2つの独立するmodule_1及びmodule_2間でグラフ構造の接続部分に位置するe
8、e
1及びe
2の3個のエンティティを「媒介的エンティティ」と識別する。一方で、媒介的エンティティ以外のe
3~e
7及びe
9のエンティティを「モジュール内エンティティ」と識別する。なお、媒介的エンティティは、第1のエンティティの一例に対応する。
【0024】
このような媒介的エンティティ及びモジュール内エンティティの識別がなされた状況の下、トリプル(s,r,o)で表現される複数の学習データ(訓練データ)のうちトリプルのsまたはoの要素に媒介的エンティティが含まれるか否かにより、学習データを区別する。
【0025】
例えば、トリプルのsまたはoの要素に媒介的エンティティが含まれる学習データを「第1の学習データ」と識別される一方で、トリプルのsまたはoの要素に媒介的エンティティが含まれない学習データを「他の学習データ」と識別される。
【0026】
このような第1の学習データの例として、t1(e8,r,e1)やt2(e8,r,e2)が挙げられる。これらt1やt2、つまりe8やe1、e2に基づいてモデルのパラメータが更新される際、その影響は、E1およびE2のほぼ全てのエンティティに及ぶ。また、e8やe1、e2などの媒介的エンティティは含まれないが、E1やE2のモジュール内エンティティが含まれる他の学習データに基づいてモデルのパラメータが修正されると、それに合わせてt1やt2に基づくモデルのパラメータの修正が改めて必要となる。
【0027】
これらのことから、module_1及びmodule_2内のエンティティに基づく学習(訓練)が収束してもなお、媒介的エンティティのトリプルt1及びt2のコストは下がらず、その学習の所要回数はモジュール内エンティティよりも多くなることが考えられる。
【0028】
より具体的には、モジュール内エンティティは、媒介的エンティティに比べて多数であることから、1エポックだけでも多数のトリプルでコストが計算されるので、それらのトリプルを同時に満たす埋め込みベクトルの学習が行われる。一方で、媒介的エンティティは、モジュール内エンティティに比べてトリプルが少数であるので、1エポックでコスト計算が行われる機会も少ない。これらのことから、媒介的エンティティを含むトリプルは、モデルのパラメータの収束に時間がかかるか、あるいはコストが大きいまま学習が終了される可能性が高い。
【0029】
以上のことから、本実施例に係る機械学習サービスは、媒介的エンティティをトリプルに含む第1の学習データの機械学習の実行順序またはモデルパラメータの変化率を媒介的エンティティをトリプルに含まない他の学習データよりも優先する。
【0030】
つまり、複数のモジュール間にまたがるグローバルな関係についての学習を先行させる。これによって、他のエンティティの埋め込みベクトルの表現に影響を与えるインフルエンサーの埋め込みベクトルの表現を先行して安定させる。その上で、1つのモジュールにクローズする局所的な関係についての学習を後続させる。インフルエンサー以外のエンティティ、例えばモジュール内エンティティは、独立性が高い。このため、他のモジュールのエンティティの埋め込みベクトルの表現の学習が行われても、モジュールのエンティティが受ける影響は小さい。それ故、インフルエンサーに対応する媒介的エンティティの埋め込みベクトルの表現が安定した状況下では、モジュールのエンティティの埋め込みベクトルの表現は微修正レベルの修正に抑えることが可能である。
【0031】
したがって、本実施例に係る機械学習サービスによれば、モデルのパラメータの収束を高速化できるので、グラフ埋め込みに関する機械学習の高速化を実現することが可能になる。
【0032】
次に、本実施例に係るサーバ装置10の機能的構成について説明する。
図1には、サーバ装置10が有する機能に対応するブロックが模式化されている。
図1に示すように、サーバ装置10は、通信インタフェイス部11と、記憶部13と、制御部15とを有する。なお、
図1には、上記の機械学習サービスに関連する機能部が抜粋して示されているに過ぎず、図示以外の機能部、例えば既存のコンピュータがデフォルトまたはオプションで装備する機能部がサーバ装置10に備わることを妨げない。
【0033】
通信インタフェイス部11は、他の装置、例えばクライアント端末30との間で通信制御を行う通信制御部の一例に対応する。
【0034】
あくまで一例として、通信インタフェイス部11は、LANカードなどのネットワークインターフェイスカードにより実現される。例えば、通信インタフェイス部11は、クライアント端末30から機械学習を実行するリクエストを受け付けたり、あるいは機械学習の結果として生成された機械学習モデルをクライアント端末30へ出力したりする。
【0035】
記憶部13は、制御部15で実行されるOS(Operating System)を始め、上記の機械学習プログラムなどの各種プログラムに用いられるデータを記憶する機能部である。
【0036】
一実施形態として、記憶部13は、サーバ装置10における補助記憶装置により実現される。例えば、HDD(Hard Disk Drive)や光ディスク、SSD(Solid State Drive)などが補助記憶装置に対応する。この他、EPROM(Erasable Programmable Read Only Memory)などのフラッシュメモリも補助記憶装置に対応し得る。
【0037】
記憶部13は、制御部15で実行されるプログラムに用いられるデータの一例として、相関データ13Aと、学習データ13Lと、モデルデータ13Mとを記憶する。これら相関データ13A、学習データ13L及びモデルデータ13M以外にも、記憶部13は、学習済みのモデルのテストに用いるテストデータの他、上記の機械学習サービスの提供を受けるユーザのアカウント情報などの各種のデータを記憶することができる。
【0038】
相関データ13Aは、エンティティの相関を示すデータである。あくまで一例として、相関データ13Aには、エンティティの組合せごとにエンティティ間の相関係数が対応付けられたデータなどを採用できる。
【0039】
学習データ13Lは、グラフ埋め込みに関する機械学習に用いるデータである。このような学習データ13Lの一例として、記憶部13には、トリプル(s,r,o)で表現される複数の学習データが記憶される。
【0040】
モデルデータ13Mは、機械学習モデルに関するデータである。例えば、機械学習モデルがニューラルネットワークである場合、モデルデータ13Mには、モデルを形成する入力層、隠れ層及び出力層の各層のニューロンやシナプスなどのモデルの層構造を始め、各層の重みやバイアスなどのモデルのパラメータが含まれ得る。なお、モデル学習が実行される前の段階では、モデルのパラメータの一例として、乱数により初期設定されたパラメータが記憶される一方で、モデル学習が実行された後の段階では、学習済みのパラメータが保存される。
【0041】
制御部15は、サーバ装置10の全体制御を行う処理部である。一実施形態として、制御部15は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などのハードウェアプロセッサにより実現される。ここでは、プロセッサの一例として、CPUやMPUを例示したが、汎用型および特化型を問わず、任意のプロセッサにより実装することができる。この他、制御部15は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによって実現されてもよい。
【0042】
制御部15は、図示しないメモリ、例えばRAM(Random Access Memory)のワークエリア上に、上記の機械学習プログラムを展開することにより、下記の処理部を仮想的に実現する。
図1に示すように、制御部15は、受付部15Aと、生成部15Bと、分類部15Cと、特定部15Dと、実行部15Fとを有する。
【0043】
受付部15Aは、上記の機械学習の実行リクエストを受け付ける処理部である。一実施形態として、受付部15Aは、上記の機械学習に用いるデータの一式、例えば相関データ13Aや学習データ13L、モデルデータ13Mの指定を受け付けることができる。このように機械学習に用いるデータセットの一部または全部は、必ずしも記憶部13に記憶されたデータでなくてもよい。例えば、受付部15Aは、クライアント端末30または図示しない外部装置、例えばファイルサーバ等に保存されたデータセットの一部または全部を受け付けることができる。そして、受付部15Aは、クライアント端末30から指定を受け付けたデータの一式、例えば相関データ13Aや学習データ13L、モデルデータ13Mを記憶部13から所定の記憶領域、例えば制御部15が参照可能なワークエリアへ読み出す。
【0044】
生成部15Bは、各エンティティ間の関係を示すグラフ構造を有するネットワークを生成する処理部である。一実施形態として、生成部15Bは、相関データ13Aに含まれるエンティティ間の相関行列から生成することができる。例えば、生成部15Bは、相関データ13Aに含まれるエンティティ間の相関行列のうち、相関係数が所定の閾値、例えば0.7以上であるエンティティ間にリレーションがあるとみなし、各エンティティをノードで示すと共にリレーションをエッジで示すグラフ構造のネットワークを生成する。
図2に示す例で言えば、生成部15Bは、e
1~e
9の各エンティティに対応するノードを生成する。さらに、生成部15Bは、白のハッチングで示されたエンティティの組に対応するノード間にエッジを生成する一方で、それ以外のハッチングで示されたエンティティの組に対応するノード間にはエッジを生成しない。これによって、
図3に示すように、グラフ構造を有するネットワークが生成される。
【0045】
分類部15Cは、ネットワークに含まれるノードを複数のモジュールに分類する処理部である。ここで言う「モジュール」は、グループの一例に対応する。一実施形態として、分類部15Cは、生成部15Bにより生成されたネットワークに含まれるノードにスペクトラルクラスタリングを適用することにより、ノードをモジュールに対応するクラスタに分類することができる。このようにスペクトラルクラスタリングを適用する場合、分類部15Cは、ネットワークに含まれる各エッジに付与する重みの設定にエッジの両端のノードに対応するエンティティ間の相関係数を類似度として用いることができる。例えば、
図3に示すネットワークに含まれるe
1~e
9の各エンティティに対応するノードがクラスタリングされた場合、e
1~e
6の6つのエンティティE
1を含むmodule_1と、e
7~e
9の3つのエンティティE
2を含むmodule_2とが得られる。これらmodule_1およびmodule_2は、独立、すなわちE
1∩E
2=空集合である。
【0046】
なお、ここでは、2つのモジュール間で各エンティティが独立である場合を例示したが、必ずしも各エンティティは完全に独立でなくてもよい。例えば、E1∩E2=ES、ただし|ES|≪|E1|かつ|ES|≪|E2|の条件を満たす場合、2つのモジュール間で重複するエンティティESの存在を認めてもよい。
【0047】
特定部15Dは、モジュール間でグラフ構造の接続部分に位置する第1のエンティティを特定する処理部である。ここで言う「モジュール」は、グループの一例に対応する。一実施形態として、特定部15Dは、生成部15Bにより生成されたネットワークから、分類部15Cによるクラスタリングの分類に応じて生成されたモジュール間を接続するエッジを検索する。このような検索でヒットするエッジの両端のノードに対応するエンティティが媒介的エンティティとして特定される。例えば、
図3に示す例で言えば、2つの独立するmodule_1及びmodule_2を接続するエッジ、すなわち図中の太線で示されたエッジが検索にヒットする。このように検索でヒットしたエッジの両端のノードに対応するe
8、e
1及びe
2の3個のエンティティが媒介的エンティティと識別される。
【0048】
ここで、複数のモジュール間は、必ずしも1つのエッジで接続されているとは限らない。
図4は、モジュールの他の一例を示す図である。
図4には、
図3の例と異なるネットワークデータと共に、当該ネットワークデータに対するクラスタリングの結果として、エンティティE
mを含むmodule_mと、エンティティE
m+1を含むmodule_m+1とが示されている。
図4に示す例で言えば、2つのmodule_m及びmodule_m+1は、1つのエッジでは接続されていないので、媒介的エンティティの抽出が困難となる。
【0049】
このような場合に備えて、エッジの検索時にモジュール間を接続するエッジの連結数の上限を検索条件として設定することができる。例えば、連結数の上限を「2」としたとき、2つのmodule_m及びmodule_m+1を2連結で接続するエッジ、すなわち
図4に太線で示された2つのエッジが検索にヒットする。この結果、エッジの両端のノードに対応するe
11、e
13及びe
15の3個のエンティティが媒介的エンティティと識別される。その一方で、2つのmodule_m及びmodule_m+1を3連結で接続するエッジは検索にヒットしない。
【0050】
なお、ここでは、モジュール間を接続するエッジの連結数に上限を設定する例を挙げたが、連結数の初期値を「0」とし、所定数の媒介的エンティティが得られるか、あるいは連結数の上限に達するまで連結数をインクリメントしてモジュール間を接続するエッジを検索することもできる。
【0051】
このように特定部15Dにより特定された媒介的エンティティが第1のエンティティ15Eとして実行部15Fが参照可能な記憶領域に保存される。
【0052】
実行部15Fは、機械学習を実行する処理部である。一実施形態として、実行部15Fは、媒介的エンティティをトリプルに含む第1の学習データの機械学習の実行順序またはモデルパラメータの変化率を、媒介的エンティティをトリプルに含まない他の学習データよりも優先する。
【0053】
以下、あくまで一例として、第1の学習データの機械学習の実行順序を優先する例を挙げる。この場合、実行部15Fは、学習データ13Lに含まれる学習データのうち、特定部15Dにより特定された媒介的エンティティを含む第1の学習データを抽出する。その上で、実行部15Fは、所定の終了条件を満たすまで、1エポックにつき、第1の学習データの数に対応する回数の分、下記の処理を繰り返す。すなわち、実行部15Fは、モデルデータ13Mにしたがって図示しないワークエリア上に展開されたモデルへ第1の学習データを入力する。これによって、モデルから第1の学習データのトリプルのスコアΦが出力される。
【0054】
ここで、グラフ埋め込みのモデルには、
図5に示す各種のモデルを用いることができる。
図5は、モデルの一例を示す図である。
図5に示すモデルの例はいずれも、「偽」であるトリプルに対するスコアリング関数Φの計算値よりも、「真」であるトリプルに対するスコアリング関数Φの計算値が高くなるように設計されている。上から2個のモデルでは、Φはあらゆる実数値を取り得る。その一方で、下から2個のモデルでは、Φが常に負であるので、「真」であるトリプルに対するスコアリング関数Φの計算値は「0」に近く、「偽」であるトリプルに対するスコアリング関数Φの計算値は「0」から大きく離れた負の値になることが想定されたモデルである。
図5示すモデルは、例えば、RESCALは論文3、DistMultは論文4、TransEは論文5、TransHは論文6に示されたものである。
[論文3]
Maximilian Nickel, Volker Tresp, and Hans-Peter Kriegel. 2011. A three-way model for collective learning on multi-relational data. In Proceedings of the 28th International Conference on Machine Learning. pages 809-816
[論文4]
Bishan Yang, Wen-tau Yih, Xiaodong He, Jianfeng Gao, and Li Deng. 2015. Embedding entities and relations for learning and inference in knowledge bases. The 3rd International Conference on Learning Representations.
[論文5]
Antoine Bordes, Nicolas Usunier, Alberto Garcia-Duran, Jason Weston, and Oksana Yakhnenko. 2013. Translating embeddings for modeling multi-relational data. In Advances in Neural Information Processing Systems. pages 2787-2795
[論文6]
Zhen Wang, Jianwen Zhang, Jianlin Feng, and Zheng Chen. 2014. Knowledge graph embedding by trans-lating on hyperplanes. In The Twenty-eighth AAAI Conference on Artificial Intelligence. pages 1112-1119.
【0055】
その後、第1の学習データごとにトリプルのスコアΦが得られた場合、実行部15Fは、モデルのパラメータを更新する。あくまで一例として、
図5に示すモデルのうち「TransE」が用いられる場合、全トリプルのスコアΦを合計することによりコストを算出することができる。このように算出されたコストに基づいて、実行部15Fは、対数尤度の最適化などのパラメータの計算を実行する。その上で、実行部15Fは、モデルデータ13Mに含まれるモデルのパラメータを計算により得られたパラメータに更新する。なお、モデルのパラメータの更新は、所定の終了条件を満たすまで繰り返される。例えば、上記の終了条件の一例として、規定のエポック数、例えば1000回を設定するができる。他の一例として、n回目およびn+1回目の間のパラメータの更新量の差と、n+1回目およびn+2回目の間のパラメータの更新量の差とから求まる変化率が所定の閾値ε未満になること、すなわちパラメータの収束を上記の終了条件に設定することもできる。
【0056】
このように第1の学習データの機械学習が終了した後、実行部15Fは、学習データ13Lに含まれる学習データのうち、特定部15Dにより特定された媒介的エンティティを含まない他の学習データを抽出する。その上で、実行部15Fは、所定の終了条件を満たすまで、1エポックにつき、他の学習データの数に対応する回数の分、下記の処理を繰り返す。すなわち、実行部15Fは、第1の学習データの機械学習の終了後のモデルデータ13Mにしたがって図示しないワークエリア上に展開されたモデルへ他の学習データを入力する。これによって、モデルから他の学習データのトリプルのスコアΦが出力される。
【0057】
その後、他の学習データごとにトリプルのスコアΦが得られた場合、実行部15Fは、モデルのパラメータを更新する。あくまで一例として、
図5に示すモデルのうち「TransE」が用いられる場合、全トリプルのスコアΦを合計することによりコストを算出することができる。このように算出されたコストに基づいて、実行部15Fは、対数尤度の最適化などのパラメータの計算を実行する。その上で、実行部15Fは、モデルデータ13Mに含まれるモデルのパラメータを計算により得られたパラメータに更新する。なお、モデルのパラメータの更新は、上記の終了条件を満たすまで繰り返される。
【0058】
図6及び
図7は、実施例1に係る機械学習処理の手順を示すフローチャート(1)及び(2)である。この処理は、あくまで一例として、クライアント端末30等から機械学習の実行リクエストを受け付けた場合に開始することができる。
【0059】
図6に示すように、受付部15Aは、上記の機械学習の実行リクエスト時に指定を受け付けたデータの一式、例えば相関データ13Aや学習データ13L、モデルデータ13Mを記憶部13から取得する(ステップS101)。
【0060】
続いて、生成部15Bは、相関データ13Aに含まれるエンティティ間の相関行列に基づいて各エンティティ間の関係を示すグラフ構造を有するネットワークを生成する(ステップS102)。
【0061】
そして、分類部15Cは、ステップS102で生成されたネットワークに含まれるノードにスペクトラルクラスタリングを適用することにより、ノードをモジュールに対応するクラスタに分類する(ステップS103)。
【0062】
続いて、特定部15Dは、ステップS102で生成されたネットワークから、ステップS103によるクラスタリングの分類に応じて生成されたモジュール間でグラフ構造の接続部分に位置する媒介的エンティティを特定する(ステップS104)。
【0063】
その後、実行部15Fは、学習データ13Lに含まれる学習データのうち、ステップS104で特定された媒介的エンティティを含む第1の学習データを抽出する(ステップS105)。その上で、実行部15Fは、所定の終了条件を満たすまで、下記のステップS106~下記のステップS108までの処理を繰り返す。さらに、実行部15Fは、1エポックにつき、第1の学習データの数に対応する回数の分、下記のステップS106の処理を繰り返す。
【0064】
すなわち、実行部15Fは、モデルデータ13Mにしたがって図示しないワークエリア上に展開されたモデルへ第1の学習データを入力する(ステップS106)。これによって、モデルから第1の学習データのトリプルのスコアΦが出力される。
【0065】
その後、第1の学習データごとにトリプルのスコアΦが得られた場合、実行部15Fは、全トリプルのスコアΦに基づいてコストを算出する(ステップS107)。このように算出されたコストに基づいて、実行部15Fは、対数尤度の最適化などのパラメータの計算を実行した上で、モデルデータ13Mに含まれるモデルのパラメータを計算により得られたパラメータに更新する(ステップS108)。
【0066】
そして、上記のステップS106~上記のステップS108が所定の終了条件を満たすまで実行されることにより第1の学習データの機械学習が終了した後、実行部15Fは、次のような処理を実行する。すなわち、実行部15Fは、
図7に示すように、学習データ13Lに含まれる学習データのうち、ステップS104で特定された媒介的エンティティを含まない他の学習データを抽出する(ステップS109)。
【0067】
その上で、実行部15Fは、所定の終了条件を満たすまで、下記のステップS110~下記のステップS112までの処理を繰り返す。さらに、実行部15Fは、1エポックにつき、他の学習データの数に対応する回数の分、下記のステップS110の処理を繰り返す。
【0068】
すなわち、実行部15Fは、第1の学習データの機械学習の終了後のモデルデータ13Mにしたがって図示しないワークエリア上に展開されたモデルへ他の学習データを入力する(ステップS110)。これによって、モデルから他の学習データのトリプルのスコアΦが出力される。
【0069】
そして、他の学習データごとにトリプルのスコアΦが得られた場合、実行部15Fは、全トリプルのスコアΦに基づいてコストを算出する(ステップS111)。このように算出されたコストに基づいて、実行部15Fは、対数尤度の最適化などのパラメータの計算を実行した上で、モデルデータ13Mに含まれるモデルのパラメータを計算により得られたパラメータに更新する(ステップS112)。
【0070】
その後、上記のステップS110~上記のステップS112が所定の終了条件を満たすまで繰り返して実行された後、他の学習データの機械学習を終了し、全体の処理も終了する。
【0071】
上述してきたように、本実施例に係る機械学習サービスは、エンティティ間の関係を示すグラフ構造のネットワークに現れるモジュール間の接続部分に位置する媒介的エンティティをトリプルに含む学習データの機械学習を他の学習データの機械学習よりも優先する。したがって、本実施例に係る機械学習サービスによれば、モデルのパラメータの収束を高速化できるので、グラフ埋め込みに関する機械学習の高速化を実現することが可能になる。
【0072】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【0073】
上記の実施例1では、あくまで一例として、第1の学習データの機械学習の実行順序を優先する例を挙げたが、これに限定されない。例えば、実行部15Fは、第1の学習データおよび他の学習データの機械学習をまとめて実行することもできる。この場合、実行部15Fは、媒介的エンティティをトリプルに含む第1の学習データを用いてパラメータを更新する際、媒介的エンティティをトリプルに含まない他の学習データを用いてパラメータを更新する場合よりもパラメータの変化率を大きく変化させることとすればよい。
【0074】
上記の実施例1では、あくまで一例として、学習データ13Lとは別に用意された相関データ13Aを用いてネットワークデータを生成する例を挙げたが、学習データ13Lから相関データを生成することもできる。例えば、学習データ13Lに含まれるエンティティの組合せごとに、当該組合せに対応するエンティティの組をs及びoに含むトリプルが学習データ13Lに存在する場合、すなわち当該組合せのリレーションが存在する場合に相関係数に「1」を設定する一方で、当該組合せに対応するエンティティの組をs及びoに含むトリプルが学習データ13Lに存在しない場合、すなわち当該組合せのリレーションが存在しない場合に相関係数に「0」を設定する。これによって、相関データを生成することができる。
【0075】
上記の実施例1では、ネットワークが有するグラフ構造の一例として、無向グラフを例示したが、有向グラフにも
図6及び
図7に示す機械学習処理を適用できる。例えば、トリプルデータに複数種類のリレーションが存在する場合、リレーションの種類ごとに生成されるネットワークの構造、ひいてはリレーションの種類ごとに分類されるモジュールの構造は各リレーションの間で一致しない。
【0076】
一例として、サーバ装置10は、エンティティの組合せごとに、全てのリレーションの種類のうち少なくともいずれか1つの種類のリレーションが存在する場合に当該組合せに対応するノード間にエッジを生成する一方で、全てのリレーションの種類のいずれにもリレーションが存在しない場合に当該組合せに対応するノード間にエッジを禁止する。このようにして生成されたネットワークに含まれるノードをクラスタリングすることにより得られたモジュールから媒介的エンティティを特定することができる。
【0077】
他の一例として、サーバ装置10は、リレーションの種類ごとにネットワークを生成し、ネットワークのクラスタリングをリレーションの種類ごとに実行する。その上で、サーバ装置10は、リレーションの種類ごとにクラスタリングが行われた結果のうち、モジュール性が最高であるリレーションのクラスタリング結果として得られたモジュールに基づいて媒介的エンティティを特定することもできる。この場合、サーバ装置10は、Newman Modularityなどにしたがって各リレーションのモジュール性の高低を評価することができる。
【0078】
上記の実施例1では、他の学習データの数の分、他の学習データの機械学習が順番に実行される例を挙げたが、これに限定されない。上述の通り、他の学習データには、モジュール内エンティティしか含まれず、モジュール内エンティティは異なるモジュール内のエンティティのベクトルの表現に与える影響は媒介的エンティティに比べて十分に少ない。例えば、他の学習データは、第1のグループ内のエンティティ間の関係を示す第2の学習データと第2のグループ内のエンティティ間の関係を示す第3の学習データとが含まれ得る。このことから、実行部15Fは、第2の学習データと第3の学習データとを機械学習モデルに並列に入力することによって、機械学習モデルの機械学習を実行する。例えば、
図3の例で言えば、module_1が第1のグループに対応すると共に、module_2が第2のグループに対応するとしたとき、第2の学習データには、e
8、e
1及びe
2の媒介的エンティティを除く、e
3~e
6のエンティティ間の関係を示すトリプルが該当する。また、第3の学習データには、e
8、e
1及びe
2の媒介的エンティティを除く、e
7及びe
9のエンティティ間の関係を示すトリプルが該当する。これら第2の学習データおよび第3の学習データが機械学習モデルに並列に入力される。これによって、グラフ埋め込みに関する機械学習をさらに高速化できる。
【0079】
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、受付部15A、生成部15B、分類部15C、特定部15Dまたは実行部15Fをサーバ装置10の外部装置としてネットワーク経由で接続するようにしてもよい。また、受付部15A、生成部15B、分類部15C、特定部15Dまたは実行部15Fを別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のサーバ装置10の機能を実現するようにしてもよい。
【0080】
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、
図8を用いて、上記の実施例1および本実施例と同様の機能を有する機械学習プログラムを実行するコンピュータの一例について説明する。
【0081】
図8は、コンピュータのハードウェア構成例を示す図である。
図8に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110~180の各部はバス140を介して接続される。
【0082】
HDD170には、
図8に示すように、上記の実施例1で示した受付部15A、生成部15B、分類部15C、特定部15D及び実行部15Fと同様の機能を発揮する機械学習プログラム170aが記憶される。この機械学習プログラム170aは、
図1に示した受付部15A、生成部15B、分類部15C、特定部15D及び実行部15Fの各構成要素と同様、統合又は分離してもよい。すなわち、HDD170には、必ずしも上記の実施例1で示した全てのデータが格納されずともよく、処理に用いるデータがHDD170に格納されればよい。
【0083】
このような環境の下、CPU150は、HDD170から機械学習プログラム170aを読み出した上でRAM180へ展開する。この結果、機械学習プログラム170aは、
図8に示すように、機械学習プロセス180aとして機能する。この機械学習プロセス180aは、RAM180が有する記憶領域のうち機械学習プロセス180aに割り当てられた領域にHDD170から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、機械学習プロセス180aが実行する処理の一例として、
図6~
図7に示す処理などが含まれる。なお、CPU150では、必ずしも上記の実施例1で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
【0084】
なお、上記の機械学習プログラム170aは、必ずしも最初からHDD170やROM160に記憶されてなくてもよい。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に機械学習プログラム170aを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から機械学習プログラム170aを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに機械学習プログラム170aを記憶させておき、コンピュータ100がこれらから機械学習プログラム170aを取得して実行するようにしてもよい。
【符号の説明】
【0085】
10 サーバ装置
11 通信インタフェイス部
13 記憶部
13A 相関データ
13L 学習データ
13M モデルデータ
15 制御部
15A 受付部
15B 生成部
15C 分類部
15D 特定部
15F 実行部
30 クライアント端末