(57)【要約】【課題】グラフについてより適切な情報を抽出できるようにする。【解決手段】各々特徴データを有する複数のノードとノード間の重み付けされた辺とを含むグラフをエンコードするエンコーダとグラフに関する所定の目的のためのデコーダとを有するシステムにおける上記エンコーダは、上記グラフについて、辺に対する重み付けに基づく１からＫ(Ｋは２以上の整数)ホップまでの各ホップについての畳み込み演算を含む処理を実行し、第１のデータセットを生成するステップと、第１のデータセットから、第１のデータセットに含まれる各データ要素の重要度を表すアテンションのデータを生成するステップと、アテンションのデータと第１のデータセットとに基づき、デコーダに対する入力データを生成するステップとを実行する。【選択図】図１
2020087127.tif 000002
【特許請求の範囲】
【請求項１】
各々特徴データを有する複数のノードとノード間の重み付けされた辺とを含むグラフをエンコードするエンコーダと前記グラフに関する所定の目的のためのデコーダとを有するシステムにおける前記エンコーダに、
前記グラフについて、前記辺に対する重み付けに基づく１からＫ(Ｋは２以上の整数)ホップまでの各ホップについての畳み込み演算を含む処理を実行し、第１のデータセットを生成するステップと、
前記第１のデータセットから、前記第１のデータセットに含まれる各データ要素の重要度を表すアテンションのデータを生成するステップと、
前記アテンションのデータと前記第１のデータセットとに基づき、前記デコーダに対する入力データを生成するステップと、
を実行させるためのプログラム。
【請求項２】
前記畳み込み演算が、
１ホップについて、前記グラフにおける自己ループ付きの正規化隣接行列と前記特徴データを表す行列と第１の学習済みニューラルネットワークのパラメータ行列との積である畳み込み演算と、
ｉ(ｉは２以上Ｋ以下の整数)ホップについて、前記グラフにおける自己ループ付きの正規化隣接行列と(ｉ−１)ホップについて畳み込み演算の結果と第ｉの学習済みニューラルネットワークのパラメータ行列との積である畳み込み演算と
を含む請求項１記載のプログラム。
【請求項３】
前記アテンションのデータを生成するステップが、
前記第１のデータセットに対して、学習済みのＬＳＴＭ(Long Short-term memory)又は学習済みのニューラルネットワークによる演算を行って、当該演算の結果を所定関数で処理するステップ
を含む請求項１記載のプログラム。
【請求項４】
前記所定関数が、前記演算の結果に対する学習済みの２層のニューラルネットワークによる演算を含む
請求項３記載のプログラム。
【請求項５】
各々特徴データを有する複数のノードとノード間の重み付けされた辺とを含むグラフをエンコードするエンコーダと前記グラフに関する所定の目的のためのデコーダとを有するシステムにおける前記エンコーダに、
前記グラフについて、前記辺に対する重み付けに基づく第１の畳み込み演算を含む処理を実行し、第１のデータセットを生成するステップと、
前記グラフについて、前記辺に対する重み付けとは異なるｌ(ｌは１以上の整数)通りの学習済みの重み付けに基づく第２の畳み込み演算を実行し、第２のデータセットを生成するステップと、
前記第１のデータセット及び前記第２のデータセットから、前記デコーダに対する入力データを生成するステップと、
を実行させるためのプログラム。
【請求項６】
前記辺に対する重み付けとは異なるｌ通りの重み付けの各々が、
前記特徴データを表す行列と、学習済みの行列と、前記グラフにおける自己ループ付き隣接行列に基づくマスク行列とから得られる第２の隣接行列でなされる
請求項５記載のプログラム。
【請求項７】
前記入力データを生成するステップが、
前記第１のデータセットと前記第２のデータセットを連結するステップ
を含む請求項５記載のプログラム。
【請求項８】
各々特徴データを有する複数のノードとノード間の重み付けされた辺とを含むグラフをエンコードするエンコーダと前記グラフに関する所定の目的のためのデコーダとを有するシステムにおける前記エンコーダに、
前記グラフについて、前記辺に対する重み付けに基づく１からＫ１(Ｋ１は２以上の整数)ホップまでの各ホップについての第１の畳み込み演算を含む処理を実行し、第１のデータセットを生成するステップと、
前記グラフについて、前記辺に対する重み付けとは異なるｌ(ｌは１以上の整数)通りの学習済みの重み付けに基づく１からＫ２(Ｋ２は２以上の整数)ホップまでの各ホップについての第２の畳み込み演算を実行し、第２のデータセットを生成するステップと、
前記第１のデータセット及び第２のデータセットから、前記第１のデータセット及び前記第２のデータセットに含まれる各データ要素の重要度を表すアテンションのデータを生成するステップと、
前記アテンションのデータと前記第１のデータセット及び前記第２のデータセットとに基づき、前記デコーダに対する入力データを生成するステップと、
を実行させるためのプログラム。
【請求項９】
前記第２の畳み込み演算は、ｌ通りの学習済みの重み付けを表す行列の各々について、
１ホップについて、前記特徴データを表す行列と当該学習済みの重み付けを表す行列と前記グラフにおける自己ループ付き隣接行列に基づくマスク行列とから得られる第２の隣接行列と、前記特徴データを表す行列と、第１の学習済みニューラルネットワークのパラメータ行列と、の積である畳み込み演算と、
ｉ(ｉは２以上Ｋ以下の整数ホップ)について、前記第２の隣接行列と(ｉ−１)ホップについて畳み込み演算の結果と第ｉの学習済みニューラルネットワークのパラメータ行列との積である畳み込み演算と、
を含む請求項８記載のプログラム。
【請求項１０】
前記アテンションのデータを生成するステップが、
前記第１のデータセット及び前記第２のデータセットに含まれる各データ要素の重要度を表す複数種類の行列を生成するステップと、
前記複数種類の行列の各々について、当該種類の行列について定義した所定のノルムを短縮化する処理を実行することで、複数種類のアテンションのデータを生成するステップと、
を含む請求項８記載のプログラム。
【請求項１１】
各々特徴データを有する複数のノードとノード間の重み付けされた辺とを含むグラフをエンコードするエンコーダと前記グラフに関する所定の目的のためのデコーダとを有するシステムにおける前記エンコーダが、
前記グラフについて、前記辺に対する重み付けに基づく１からＫ(Ｋは２以上の整数)ホップまでの各ホップについての畳み込み演算を含む処理を実行し、第１のデータセットを生成するステップと、
前記第１のデータセットから、前記第１のデータセットに含まれる各データ要素の重要度を表すアテンションのデータを生成するステップと、
前記アテンションのデータと前記第１のデータセットとに基づき、前記デコーダに対する入力データを生成するステップと、
を実行する情報処理方法。
【請求項１２】
各々特徴データを有する複数のノードとノード間の重み付けされた辺とを含むグラフをエンコードするエンコーダと前記グラフに関する所定の目的のためのデコーダとを有するシステムにおける前記エンコーダが、
前記グラフについて、前記辺に対する重み付けに基づく第１の畳み込み演算を含む処理を実行し、第１のデータセットを生成するステップと、
前記グラフについて、前記辺に対する重み付けとは異なるｌ(ｌは１以上の整数)通りの学習済みの重み付けに基づく第２の畳み込み演算を実行し、第２のデータセットを生成するステップと、
前記第１のデータセット及び前記第２のデータセットから、前記デコーダに対する入力データを生成するステップと、
を実行する情報処理方法。
【請求項１３】
各々特徴データを有する複数のノードとノード間の重み付けされた辺とを含むグラフをエンコードするエンコーダと前記グラフに関する所定の目的のためのデコーダとを有するシステムにおける前記エンコーダが、
前記グラフについて、前記辺に対する重み付けに基づく１からＫ１(Ｋ１は２以上の整数)ホップまでの各ホップについての第１の畳み込み演算を含む処理を実行し、第１のデータセットを生成するステップと、
前記グラフについて、前記辺に対する重み付けとは異なるｌ(ｌは１以上の整数)通りの学習済みの重み付けに基づく１からＫ２(Ｋ２は２以上の整数)ホップまでの各ホップについての第２の畳み込み演算を実行し、第２のデータセットを生成するステップと、
前記第１のデータセット及び第２のデータセットから、前記第１のデータセット及び前記第２のデータセットに含まれる各データ要素の重要度を表すアテンションのデータを生成するステップと、
前記アテンションのデータと前記第１のデータセット及び前記第２のデータセットとに基づき、前記デコーダに対する入力データを生成するステップと、
を実行する情報処理方法。
【請求項１４】
各々特徴データを有する複数のノードとノード間の重み付けされた辺とを含むグラフに関する所定の目的のためのデコーダに対して、前記グラフをエンコードする処理を行うエンコーダの情報処理システムであって、
前記グラフについて、前記辺に対する重み付けに基づく１からＫ(Ｋは２以上の整数)ホップまでの各ホップについての畳み込み演算を含む処理を実行し、第１のデータセットを生成する処理部と、
前記第１のデータセットから、前記第１のデータセットに含まれる各データ要素の重要度を表すアテンションのデータを生成する第１の生成部と、
前記アテンションのデータと前記第１のデータセットとに基づき、前記デコーダに対する入力データを生成する第２の生成部と、
を有する情報処理システム。
【請求項１５】
各々特徴データを有する複数のノードとノード間の重み付けされた辺とを含むグラフに関する所定の目的のためのデコーダに対して、前記グラフをエンコードする処理を行うエンコーダの情報処理システムであって、
前記グラフについて、前記辺に対する重み付けに基づく第１の畳み込み演算を含む処理を実行し、第１のデータセットを生成する処理部と、
前記グラフについて、前記辺に対する重み付けとは異なるｌ(ｌは１以上の整数)通りの学習済みの重み付けに基づく第２の畳み込み演算を実行し、第２のデータセットを生成する第１の生成部と、
前記第１のデータセット及び前記第２のデータセットから、前記デコーダに対する入力データを生成する第２の生成部と、
を有する情報処理システム。
【請求項１６】
各々特徴データを有する複数のノードとノード間の重み付けされた辺とを含むグラフに関する所定の目的のためのデコーダに対して、前記グラフをエンコードする処理を行うエンコーダの情報処理システムであって、
前記グラフについて、前記辺に対する重み付けに基づく１からＫ１(Ｋ１は２以上の整数)ホップまでの各ホップについての第１の畳み込み演算を含む処理を実行し、第１のデータセットを生成し、前記グラフについて、前記辺に対する重み付けとは異なるｌ(ｌは１以上の整数)通りの学習済みの重み付けに基づく１からＫ２(Ｋ２は２以上の整数)ホップまでの各ホップについての第２の畳み込み演算を実行し、第２のデータセットを生成する処理部と、
前記第１のデータセット及び第２のデータセットから、前記第１のデータセット及び前記第２のデータセットに含まれる各データ要素の重要度を表すアテンションのデータを生成する第１の生成部と、
前記アテンションのデータと前記第１のデータセット及び前記第２のデータセットとに基づき、前記デコーダに対する入力データを生成する第２の生成部と、
を有する情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフ構造を有するデータのエンコードに関する。
【背景技術】
【０００２】
グラフ構造を有するデータ(以下、単にグラフと呼ぶ)は、複数のノードとノード間を繋ぐ辺とからなり、各ノードは特徴データを有しており、辺には重みが付与されている場合もある。このようなグラフは、Ｗｅｂ、ソーシャルネットワーク、化合物の分子構造、電力供給網など、不規則なグリッド、より一般的には非ユークリッドドメインにある様々なものを表すことができる。
【０００３】
そのため、近年、このようなグラフに対する学習などのためのＧＣＮＮ(Graph Convolutional Neural Network：グラフ畳み込みニューラルネットワーク)に注目が集まっている。
【０００４】
ＧＣＮＮには、スペクトル領域に着目したものと、頂点領域に着目したものとがあるが、いずれにおいても、レセプティブフィールド(receptive field)が問題となる場合がある。レセプティブフィールドとは、特定のノードから、特定のホップ数Ｋで辿れる範囲を表す。図１に示すようなグラフにおいて、ｘiというノードに着目すると、Ｋ＝１では図１(ａ)に示すように直接辺でｘiと接続されているノード(黒丸)がレセプティブフィールドに含まれる。また、Ｋ＝２では図１(ｂ)に示すように、直接辺でｘiと接続されているノード(黒丸)と当該ノードに接続されているノード(黒丸)までがレセプティブフィールドに含まれる。
【０００５】
ＧＣＮＮについてのこれまでの従来技術のほとんどにおいて、レセプティブフィールドは固定されている。また、グラフの構造についても、所与のものとして処理する場合が多い。このような条件の下では、例えば、グラフノードの分類などのアプリケーションにおいて精度があまり高まらないという問題がある。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Xu, K.; Li, C.; Tian, Y.; Sonobe, T.; Kawarabayashi, K.; and Jegelka, S. 2018. Representation learning on graphs with jumping knowledge networks. In Proceedings of the 35th International Conference on Machine Learning, 1-10.
【非特許文献２】Monti, F.; Boscaini, D.; Masci, J.; Rodola, E.; Svoboda, J.; and Bronstein, M. M. 2017. Geometric deep learning on graphs and manifolds using mixture model cnns. In Proc. CVPR, volume 1.
【非特許文献３】Velickovic, P.; Cucurull, G.; Casanova, A.; Romero, A.; Lio,P.; and Bengio, Y. 2018. Graph attention networks. In Proceedings of the 6th International Conference on Learning Representations, 1-12.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従って、本発明の目的は、一側面として、グラフについてより適切な情報を抽出できるようにするための技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明の第１の側面に係る情報処理方法は、各々特徴データを有する複数のノードとノード間の重み付けされた辺とを含むグラフをエンコードするエンコーダとグラフに関する所定の目的のためのデコーダとを有するシステムにおける上記エンコーダが実行するものである。そして、本方法は、(Ａ)上記グラフについて、辺に対する重み付けに基づく１からＫ(Ｋは２以上の整数)ホップまでの各ホップについての畳み込み演算を含む処理を実行し、第１のデータセットを生成するステップと、(Ｂ)第１のデータセットから、第１のデータセットに含まれる各データ要素の重要度を表すアテンションのデータを生成するステップと、(Ｃ)アテンションのデータと第１のデータセットとに基づき、デコーダに対する入力データを生成するステップとを含む。
【０００９】
本発明の第２の側面に係る情報処理方法は、上記エンコーダが実行するものであり、(Ａ)上記グラフについて、辺に対する重み付けに基づく第１の畳み込み演算を含む処理を実行し、第１のデータセットを生成するステップと、(Ｂ)上記グラフについて、辺に対する重み付けとは異なるｌ(ｌは１以上の整数)通りの学習済みの重み付けに基づく第２の畳み込み演算を実行し、第２のデータセットを生成するステップと、(Ｃ)第１のデータセット及び第２のデータセットから、デコーダに対する入力データを生成するステップとを含む。
【００１０】
本発明の第３の側面に係る情報処理方法は、上記エンコーダが実行するものであり、(Ａ)上記グラフについて、辺に対する重み付けに基づく１からＫ１(Ｋ１は２以上の整数)ホップまでの各ホップについての第１の畳み込み演算を含む処理を実行し、第１のデータセットを生成するステップと、(Ｂ)上記グラフについて、辺に対する重み付けとは異なるｌ(ｌは１以上の整数)通りの学習済みの重み付けに基づく１からＫ２(Ｋ２は２以上の整数)ホップまでの各ホップについての第２の畳み込み演算を実行し、第２のデータセットを生成するステップと、(Ｃ)第１のデータセット及び第２のデータセットから、第１のデータセット及び第２のデータセットに含まれる各データ要素の重要度を表すアテンションのデータを生成するステップと、(Ｄ)アテンションのデータと第１のデータセット及び第２のデータセットとに基づき、デコーダに対する入力データを生成するステップとを含む。
【発明の効果】
【００１１】
一側面によれば、グラフについてより適切な情報を抽出できるようになる。
【図面の簡単な説明】
【００１２】
【図１】図１(ａ)及び(ｂ)は、レセプティブフィールドを説明するための図である。
【図２】図２は、Deeper GCNNを説明するための図である。
【図３】図３は、Deeper GCNNを説明するための図である。
【図４Ａ】図４Ａは、Deeper GCNN(ニューラルネットワークを使用した場合)のイントラアテンションの一例を示す図である。
【図４Ｂ】図４Ｂは、Deeper GCNN(ＬＳＴＭ(Long Short-Term Memory)を使用した場合)のイントラアテンションの一例を示す図である。
【図５】図５は、Wider GCNNを説明するための図である。
【図６Ａ】図６Ａは、レギュラライザ適用前のイントラアテンションの一例を示す図である。
【図６Ｂ】図６Ｂは、レギュラライザ適用前のイントラアテンションの一例を示す図である。
【図６Ｃ】図６Ｃは、レギュラライザ適用前のイントラアテンションの一例を示す図である。
【図６Ｄ】図６Ｄは、レギュラライザ適用前のイントラアテンションの一例を示す図である。
【図７Ａ】図７Ａは、ハードレギュラライザ適用後のイントラアテンションの一例を示す図である。
【図７Ｂ】図７Ｂは、ハードレギュラライザ適用後のイントラアテンションの一例を示す図である。
【図７Ｃ】図７Ｃは、ハードレギュラライザ適用後のイントラアテンションの一例を示す図である。
【図７Ｄ】図７Ｄは、ハードレギュラライザ適用後のイントラアテンションの一例を示す図である。
【図８Ａ】図８Ａは、ソフトレギュラライザ適用後のイントラアテンションの一例を示す図である。
【図８Ｂ】図８Ｂは、ソフトレギュラライザ適用後のイントラアテンションの一例を示す図である。
【図８Ｃ】図８Ｃは、ソフトレギュラライザ適用後のイントラアテンションの一例を示す図である。
【図８Ｄ】図８Ｄは、ソフトレギュラライザ適用後のイントラアテンションの一例を示す図である。
【図９】図９は、第１の実施の形態に係る情報処理装置の機能ブロック構成例を示す図である。
【図１０】図１０は、第１の実施の形態に係る畳み込み処理部の機能構成例を示す図である。
【図１１】図１１は、第１の実施の形態に係る畳み込み処理部の機能構成例を示す図である。
【図１２】図１２は、第１の実施の形態に係るアテンション生成部の機能構成例を示す図である。
【図１３】図１３は、第１の実施の形態に係る処理のフローを示す図である。
【図１４】図１４は、第２の実施の形態に係る情報処理装置の機能ブロック構成例を示す図である。
【図１５Ａ】図１５Ａは、第２の実施の形態に係る畳み込み処理部の機能構成例を示す図である。
【図１５Ｂ】図１５Ｂは、第２の実施の形態に係る畳み込み処理部の機能構成例を示す図である。
【図１６】図１６は、第２の実施の形態に係る処理のフローを示す図である。
【図１７】図１７は、第３の実施の形態に係る情報処理装置の機能ブロック構成例を示す図である。
【図１８】図１８は、第３の実施の形態に係る畳み込み処理部の機能構成例を示す図である。
【図１９】図１９は、第３の実施の形態に係るアテンション生成部の機能構成例を示す図である。
【図２０】図２０は、第３の実施の形態に係る処理のフローを示す図である。
【図２１】図２１は、コンピュータ装置のブロック構成図である。
【発明を実施するための形態】
【００１３】
［本発明の実施の形態における基本的な考え方］
本発明の実施の形態は、特定のタスク(例えばグラフノードの分類タスク)のためのエンコーダ−デコーダシステムのうちエンコーダに関するものである。特定のタスクについては様々なものが可能であり、グラフノードの分類タスクは一例に過ぎない。
【００１４】
本実施の形態に係るエンコーダは、３種類のＧＣＮＮ(Graph Convolutional Neural Network)を活用して、グラフのデータをエンコードする。
【００１５】
(Ａ)深層化ＧＣＮＮ(Deeper Graph Convolution Neural Network)を用いる場合
入力となるグラフに属するｎ個のノードを、χ＝｛ｘ1，ｘ2，．．，ｘn｝とし、そのグラフの隣接行列(辺の重み付けを表す行列)はＷ∈Ｒn×nであるものとする。そして、各ノードがｄ次元の特徴データを有するものとすると、ノードのセットχは、行列Ｘ∈Ｒn×dと表される。
【００１６】
従来では、レセプティブフィールドのホップ数Ｋは固定であって、Ｋに小さな値を採用すれば、グラフ内において互いに遠くにあるノード間の依存性をエンコードすることができないという問題があり、Ｋに大きな値を採用すれば、冗長な集約により近隣の依存性を捉えられなくなる恐れがあるという問題がある。図２は、あるグラフの特定のノードｘiについてＫ＝１ホップ離れたノードｘjのデータを畳み込むことを模式的に示したものであり、これではより離れたノードのデータを考慮できない。Ｋを大きくしても固定化している限りにおいて、上で述べた問題が生ずる。
【００１７】
そのため、本実施の形態では、より好ましいＫ、すなわち、より好ましいレセプティブフィールドの範囲を採用できるようにする。図３は、あるグラフの特定のノードｘiについて、Ｋ＝０(自己ループの分)からＫ＝３までの各レセプティブフィールドを点線で示しているが、本実施の形態では、図３のように、各レセプティブフィールドを個別に考慮して複数の畳み込み演算を行う。
【００１８】
具体的には、本実施の形態では、自己ループを含む隣接行列Ｗc＝Ｗ＋Ｉ、隣接行列Ｗの次数行列Ｄ、自己ループを含む隣接行列Ｗcの次数行列Ｄc＝diag(Σj≠iＷci,j)とすると、以下のような畳み込み演算を行う。
Ｚ(1)＝Ｄc-1/2ＷcＤc-1/2ＸＡ(1)    (１)
【００１９】
Ｄc-1/2ＷcＤc-1/2は、Ｗcの自己ループ付きの正規化隣接行列を表している。Ａ(1)∈Ｒd×eは、１ホップ先のノードの情報を、ターゲットとなるノードに集約させる全結合ニューラルネットワーク層の演算を表す。すなわち、Ａ(1)は学習(training)の対象である。
【００２０】
このような畳み込み演算を、再帰的にスタッキングすることで、Ｋホップ先まで畳み込み演算を行うことになる。より具体的には、以下のような演算を行う。なお、１≦ｉ≦Ｋ−１である。
Ｚ(i+1)＝Ｄc-1/2ＷcＤc-1/2Ｚ(i)Ａ(i+1)    (２)
なお、Ｚ(0)＝ＸＡであり、畳み込みは行われない。
【００２１】
そうすると、Ｚ(0)、Ｚ(1)、．．．、Ｚ(K)が得られる。Ｚ(i)において各ノードｊのｘj(i)についてのｚj(i)がｅ次元であるとすると、Ｚ(i)∈Ｒe×nとなる。Ａ∈Ｒd×e及びＡ(i+1)∈Ｒe×eは、学習対象である。
【００２２】
また、各ノードｘjについてのシーケンスνjは、以下のように表される。
νj＝［ｚj(0)，ｚj(1)，...，ｚj(K)］
【００２３】
このシーケンスνjは、アテンションにおけるKey-ValueペアにおけるValueに相当し、行列Ｖj∈Ｒ(1+K)×eで表される。
【００２４】
そして、シーケンスνjを、周知のＬＳＴＭ(Long Short-term memory)における隠れ状態(hidden state)のシーケンスκjに変換する。ＬＳＴＭにおけるパラメータ(すなわち、入力ゲート、忘却ゲート、セルゲート及び出力ゲートにおける各パラメータ)も学習の対象である。
κj＝ＬＳＴＭ(νj)＝［ｈj(0)，ｈj(1)，...，ｈj(K)］  (３)
【００２５】
なお、ＬＳＴＭに代わって全結合のニューラルネットワークを用いてもよい。この場合、∀ｚj(*)∈νj、ｈj(*)＝ｚj(*)Ｗn＋ｂとなる。このニューラルネットワークのパラメータも学習の対象である。
【００２６】
各隠れ状態がｕ次元であれば、シーケンスκjは、key-valueペアにおけるKeyであり、行列Ｋj∈Ｒ(1+K)×uで表される。
【００２７】
そうすると、各ノードｘjに対するイントラアテンション(intra-attention)ａjＲ1×(1+K)は、以下の演算にて計算される。
ａj＝softmax(Ｗ2σ(Ｗ1ＫjT＋ｂ1)＋ｂ2)      (４)
【００２８】
ここで、softmaxは、周知の関数であり、行列Ｆの各行ｆiについて以下のような演算である。
softmax(ｆi)＝exp(ｆi)／Σexp(fj)
【００２９】
σは任意の活性化関数である。また、Ｗ1∈Ｒu'×u、Ｗ2∈Ｒ1×u'、ｂ1∈Ｒu'×(K+1)、ｂ2∈Ｒ1×(K+1)は、２層のニューラルネットワークのパラメータである。これらも学習の対象である。但し、２層のニューラルネットワークのパラメータは、全ノードについて共用される。
【００３０】
このようにして得られたａjは、特定のタスク(例えばグラフノードの分類タスク)におけるノードｘjに対するｚj(*)の重要度を表すものである。
【００３１】
ノードｘjについてのエンコーダの出力ｚjは、以下のような演算にて得られる。
ｚj＝ａjＶj    (５)
【００３２】
以上では、わかりやすくするために、各ノードｘjについて記した部分があるが、グラフ全体の畳み込み演算の結果Ｚ(*)、シーケンスκ(*)、その行列Ｋ(*)、イントラアテンションの行列Ａtt(*)と表しても同様の演算を行えば得られる。
【００３３】
なお、学習対象となるパラメータは、特定のタスク(グラフノードの分類タスクなど)について、バックプロパゲーションを用いた周知の技術で学習されて、設定される。
【００３４】
図４Ａに、ＬＳＴＭの代わりにニューラルネットワークを用いた場合に得られるアテンションの例を示す。これは、あるデータセットで学習した後、２０のノード(ｘ＿０からｘ＿１９)を有するグラフについてアテンション(Ｋ＝０からＫ＝７)を算出したものを表している。色が濃いほど値が大きい。この例では、ノードｘ＿２及びｘ＿１５についてはＫ＝０が重要だが、それ以外のノードについてはおおむねＫ＝３が重要であることが分かる。
【００３５】
一方、図４Ｂに、ＬＳＴＭの場合に得られるアテンションの例を示す。この場合、ノードｘ＿２及びｘ＿１５についてＫ＝０が重要であることは同じであるが、その他のノードについては、Ｋ＝３より大きいＫの範囲に幅広く重要度が分散しているように見える。これは、ＬＳＴＭの方が遠いノード間の依存性についてエンコードできるためと考えられる。
【００３６】
このように、所定のホップ数までの各ホップ、すなわち各レセプティブフィールドについて重要度が算出されて、その重要度が反映された出力が、デコーダに入力されるようになる。これによって、特定のタスク(例えばグラフノードの分類タスク)の精度が向上する。
【００３７】
(Ｂ)拡張化ＧＣＮＮ(Wider GCNN)を用いる場合
深層化ＧＣＮＮでは、レセプティブフィールドの範囲に着目していたが、拡張化ＧＣＮＮでは、固定的な隣接行列Ｗcではなく、学習可能なパラメータとして以下のような行列Ｗpcを導入することで、各ノードの情報に、１ホップ先の隣接ノードの情報を動的な重みにより畳み込むようにする。
【００３８】
図５に模式的に示すように、あるグラフにおける特定のノードｘiから１ホップ以内の隣接ノードから、このノードｘiに対して、ここでは３種類の動的な重みの各々に基づいてデータを畳み込んでいる。このように動的な重みを複数の種類用意した上で、より適切な重みを採用して、最終的なタスクの精度を向上させるものである。
【００３９】
Ｗpc＝(ＸＭＸT)◎Ｗc(0,1)  (６)
Ｍ∈Ｒd×dは、学習可能なパラメータ行列である。◎はHadamard積(要素毎の積)を表すものとする。Ｗc(0,1)は、マスク行列であり、Ｗci,j＞０であればＷc(0,1)i,j＝１であり、それ以外の場合にはＷc(0,1)i,j＝０である。
【００４０】
Ｗpcは、自己ループ付きの隣接行列Ｗcと同様の形を有しており、ノード間の関係を表す行列である。そして、このＷpcに対して行毎にsoftmax関数を適用すれば、Ｗpcは行毎に正規化されるので、ノード間の重要度を表すアテンション(Inter-Attention)とも言える。なお、Softmax関数を適用しなくても、Ｗpcの各行における各要素値の相対的な大小関係は変わらないので、Ｗpcそれ自身であっても、ノード間の相対的な重要度を表す行列である。
【００４１】
なお、Ｍはｌ通り用意する。そのため、Ｗpcもｌ通り得られる。ｌ番目のＷpcをＷpclと表すものとする。
【００４２】
拡張化ＧＣＮＮでは、深層化ＧＣＮＮにおいて示したＺ(0)＝ＸＡと、(１)式から得られるＺ(1)をも用いる。
【００４３】
そして、深層化ＧＣＮＮのＷcの代わりに、ｌ個のＷpcを用いて以下のような畳み込み演算を行う。
Ｚ(1)l＝Ｄpc-1/2ＷpclＤpc-1/2ＸＡ*  (７)
Ｄpcは、Ｗpclの次数行列である。Ａ*は、学習対象であるが、全ｌについて共用される。
【００４４】
これによって、Ｚ(1)1，Ｚ(1)2，．．．，Ｚ(1)lが得られるようになる。Ｚ(0)も、Ｚ(1)も、Ｚ(1)1，Ｚ(1)2，．．．，Ｚ(1)lもｎ×ｅ次元の行列である。
【００４５】
拡張化ＧＣＮＮでは、Ｚ(0)、Ｚ(1)、及びＺ(1)1，Ｚ(1)2，．．．，Ｚ(1)lを連結することで、エンコーダの出力∈Ｒn×(l+2)eが得られる。
【００４６】
このような拡張化ＧＣＮＮを用いる場合には、隣接行列Ｗpcが各ノードの特徴データ及び自己ループを含む隣接行列を反映させた形で学習可能となっており、柔軟な形で隣接するノードの特徴データを反映させた形で、グラフをエンコードできるようになる。
【００４７】
(Ｃ)深層化及び拡張化ＧＣＮＮ(Deeper and Wider GCNN)を用いる場合
これは、深層化ＧＣＮＮ及び拡張化ＧＣＮＮを組み合わせたものである。単純な組み合わせではなく、拡張化ＧＣＮＮにおいても深層化を図る。
【００４８】
具体的には、Ｚ(0)＝ＸＡと、(１)式及び(２)式で得られるＺ(1)、．．．、Ｚ(K)とを計算する。
【００４９】
また、(６)式の演算を行うことで、Ｚ(1)1，Ｚ(1)2，．．．，Ｚ(1)lを計算する。
【００５０】
さらに、(６)式の演算を再帰的にスタッキングすることで、Ｋホップ先(Deeper GCNNおけるＫとは異なる場合もある)まで畳み込み演算を行うことになる。より具体的には、以下のような演算を行う。なお、１≦ｉ≦Ｋ−１である。
Ｚ(i+1)l＝Ｄpc-1/2ＷpclＤpc-1/2Ｚ(i)lＡ(i+1)    (８)
(８)式においてｌは、１から指定された値ｌまで変化する。
【００５１】
よって、Ｚ(2)1，Ｚ(2)2，．．．，Ｚ(2)l、．．．、Ｚ(K)1，Ｚ(K)2，．．．，Ｚ(K)lが、得られるようになり、これらはＺ∈Ｒn×(1+k+lk)×eという３次元テンソルとして表される。
【００５２】
そうすると、ノードｘjについてのシーケンスνjは、以下のように拡張される。
νj＝［ｚj(0)，ｚj(1)，...，ｚj(K)，Ｚ(1)j,1，Ｚ(2)j,1，．．．，Ｚ(K)j,1，Ｚ(1)j,2，Ｚ(2)j,2，．．．，Ｚ(K)j,2，．．．，Ｚ(1)j,l，Ｚ(2)j,l，．．．，Ｚ(K)j,l］
【００５３】
よって、シーケンスνjの行列Ｖiは、アテンションのkey-valueペアのvalueに相当し、(１＋Ｋ＋Ｋｌ)×ｅ次元の行列に拡張される。
【００５４】
そうすると、拡張されたシーケンスνjを、上で述べたのと同様にＬＳＴＭで隠れ状態のシーケンスκjに変換する。
κj＝ＬＳＴＭ(νj)＝［ｈj(0)，ｈj(1)，...，ｈj(K)，ｈj,1(0)，ｈj,1(1)，...，ｈj,1(K)，ｈj,2(0)，ｈj,2(1)，...，ｈj,2(K)，．．．，ｈj,l(0)，ｈj,l(1)，...，ｈj,l(K)］    (９)
【００５５】
シーケンスκjは、アテンションにおけるkey-valueペアのKeyであり、その行列Ｋjは、(１＋Ｋ＋Ｋｌ)×ｕ次元の行列である。
【００５６】
ここでも全結合のニューラルネットワークを用いてもよい。
【００５７】
さらに、ノードｘjのアテンション行列Ａttj∈Ｒt×(1+k+lk)は、以下のように表される。
Ａttj＝softmax(Ｗ2σ(Ｗ1ＫjT＋ｂ1)＋ｂ2)  (１０)
【００５８】
ここで、Ｗ1∈Ｒu'×u、Ｗ2∈Ｒt×u'、ｂ1∈Ｒu'×(1+K+Kl)、ｂ2∈Ｒt×(1+K+Kl)は、２層のニューラルネットワークのパラメータである。
【００５９】
このように、アテンション行列Ａttjは、シーケンスνjの各要素についてｔ種類のアテンションを含むものである。
【００６０】
そして、各ノードｘjについてのアテンション行列Ａttjとシーケンスνjの行列Ｖiとから、各ノードｘjについてのエンコーダの出力ｚj∈Ｒte×1が算出される。
ｚj＝ＡttjＶj    (１１)
【００６１】
このようにすれば、各ノードのシーケンスνjに含まれるデータの種類数が増加するが、それらについてはアテンションが設定されるので、アテンションによる重要度を反映させた形で、デコーダに出力がなされるようになる。
【００６２】
Ｄ)レギュラライザ
なお、Ａttj∈Ｒt×(1+k+lk)は、上でも述べたようにｔ種類のアテンションを含むが、学習方法によっては、ほとんど変わらないｔ種類のアテンションを含むようになってしまう場合がある。
【００６３】
ｔ種類のアテンションの差を強調するため、以下のような２つの方法のいずれかが用いられる場合がある。
【００６４】
ｄ１)ハードアテンションレギュラライザ
ここでは、ＡttjをＡttと簡略化し、Ａttのｉ列をＡttiと表し、ｊ列をＡttjと表すものとする。
【００６５】
そして以下で定義されるＬregを最小化する(具体的にはゼロにする)ことで、Ａttを直行行列化する。
Ｌreg＝||ＡttＡttT−Ｉ||2
ここでＩ∈Ｒt×tは単位行列を表し、||＊||2は、Forbeniusノルムを表す。
【００６６】
すなわち、ｉ≠ｊならばＡttiＡttjTは０になり、ｉ＝ｊならばＡttiＡttjTは１になる。各列の全要素の和は１になるので、Ａttiは１要素だけが１になるベクトルとなる。
【００６７】
ｄ２)ソフトアテンションレギュラライザ
Ｌregについて、以下のように定義することも可能である。
Ｌreg＝||ＡttＡttT◎(Ｊ−Ｉ)||2
ここでＪ∈Ｒt×tは、全ての要素が１である行列であり、◎はHadamard積を表す。
【００６８】
Ｌregを最小化しても、Ａttiの大きさについては無理に１にしないので、１要素だけが１になるベクトルとはならない。
【００６９】
例えば、ｔ＝４であって４種類のアテンションが得られた場合を想定する。ここでは、Ｋ＝４でｌ＝１であることを想定する。よって、各ノードｘjについて、
［ｚj(0)，ｚj(1)，ｚj(2)，ｚj(3)，ｚj(4)，Ｚ(1)j,1，Ｚ(2)j,1，Ｚ(3)j,1，Ｚ(4)j,1］
の各々について重要度が算出される。
【００７０】
レギュラライザを用いない場合、例えば、図６Ａ乃至図６Ｄの４種類のアテンションが得られたものとする。なお、チルダ付きのＫは、ｌ＝１の場合を表している。このように、４種類のアテンションがあまり変わらないものになってしまう場合がある。
【００７１】
これに対してハードアテンションレギュラライザを適用すると、図７Ａ乃至図７Ｄが得られるようになる。ハードアテンションレギュラライザを適用すると、あるＫ(又はチルダ付きＫ)に重要度が集約される傾向になる。
【００７２】
一方、ソフトアテンションレギュラライザを適用すると、図８Ａ乃至図８Ｄが得られるようになる。図８Ａのみではあるが、段階的な重要度の設定がなされている。
【００７３】
これらの例では、ソフトアテンションレギュラライザを適用する場合が最もグラフノード分類タスクの精度が高かったが、レギュラライザの適用可否、ソフトとハードの選択は、タスクごとに行う。
【００７４】
［本発明の実施の形態１］
深層化ＧＣＮＮを用いる場合における情報処理装置の構成例を図９に示す。
【００７５】
本実施の形態の情報処理装置１０００は、グラフデータ格納部１１００と、エンコーダ１２００と、デコーダ１３００と、学習部１４００とを有する。
【００７６】
グラフデータ格納部１１００は、処理の対象となるグラフのデータ(Ｘ及びＷcなど)を格納する。エンコーダ１２００は、グラフデータ格納部１１００に格納されたデータに対して所定のエンコード処理を実行する。これに対して、デコーダ１３００は、エンコーダ１２００の出力に基づき、所定の目的(例えばグラフノードの分類)のための処理を実行する。デコーダ１３００の構成は、目的に応じて変わり、本実施の形態の主要部ではないので、説明を省略する。学習部１４００は、上で述べた学習対象となるパラメータを決定するための処理を実行する。本実施の形態では、畳み込み処理部１２１０、アテンション生成部１２３０及びデコーダ１３００におけるパラメータを、予め解(例えばグラフノードの分類結果)が分かっているグラフのデータに基づき設定する。
【００７７】
エンコーダ１２００は、畳み込み処理部１２１０と、第１データ格納部１２２０と、アテンション生成部１２３０と、第２データ格納部１２４０と、出力生成部１２５０と、出力データ格納部１２６０とを有する。
【００７８】
畳み込み処理部１２１０は、上で述べた(１)式及び(２)式等の演算を実行し、演算の結果を第１データ格納部１２２０に格納する。アテンション生成部１２３０は、上で述べた(３)式及び(４)式の演算を実行し、演算の結果であるアテンションのデータを第２データ格納部１２４０に格納する。出力生成部１２５０は、(５)式の演算を実行し、演算結果を出力データ格納部１２６０に格納する。出力データ格納部１２６０に格納されたデータは、デコーダ１３００に出力される。
【００７９】
畳み込み処理部１２１０の機能構成例を、図１０及び図１１に示す。図１０に示すように、畳み込み処理部１２１０は、Ｚ(1)，...，Ｚ(K)を算出するために、(１)式に従ってＸとＷcとからＺ(1)を演算する演算部１２１１と、(２)式に従ってｚ(1)とＷcとからＺ(2)を演算する演算部１２１２と、(２)式に従ってＺ(2)とＷcとからＺ(3)を演算する演算部１２１２等を有する。図１１に示すように、畳み込み演算部１２１０は、さらに、Ｚ(0)＝ＸＡにより、ＸからＺ(0)を算出する演算部１２１５を有する。
【００８０】
アテンション生成部１２３０の機能構成例を図１２に示す。アテンション生成部１２３０は、キー生成部１２３１と、キー格納部１２３２と、変換部１２３３とを有する。キー生成部１２３１は、ＬＳＴＭや全結合のニューラルネットワークを含み、第１データ格納部１２２０に格納されたデータをバリュー(Value)として入力し、(３)式(又は(３)式の下に示した式)のような演算を実行し、キー(Key)の値をキー格納部１２３２に格納する。変換部１２３３は、キー格納部１２３２に格納されているキーの値を例えば(４)式で変換して、アテンションのデータを生成し、第２データ格納部１２４０に格納する。
【００８１】
このような情報処理装置１０００の機能は、１台のコンピュータではなくネットワークなどで接続された複数台のコンピュータにて実装される場合もある。
【００８２】
次に、本実施の形態に係る情報処理装置１０００の処理内容を図１３を用いて説明する。
【００８３】
まず、畳み込み処理部１２１０は、グラフデータ格納部１１００に格納されているグラフのデータに基づき、当該グラフに対して、１からＫホップまでの各々についての畳み込み演算を含む処理を実行して、処理結果を第１データ格納部１２２０に格納する(ステップＳ１)。畳み込み処理部１２１０の演算部１２１５は、畳み込み演算ではないＺ(0)＝ＸＡに従って演算を行う。畳み込み処理部１２１０の演算部１２１１は、(１)式に従って演算を行い、演算部１２１２及び１２１３等は、(２)式に従って演算を行う。
【００８４】
また、アテンション生成部１２３０のキー生成部１２３１は、第１データ格納部１２２０に格納されている畳み込み演算結果等から、キーを生成し、キー格納部１２３２に格納する(ステップＳ３)。キーの生成は、ＬＳＴＭを用いてもよいし、ニューラルネットワークを用いてもよい。なお、後に述べるが、さらに他の方法を採用することも可能である。
【００８５】
さらに、アテンション生成部１２３０の変換部１２３３は、キー格納部１２３２に格納されているキーを、例えば(４)式に従って、アテンションに変換し、第２データ格納部１２４０に格納する(ステップＳ５)。このようなアテンションの生成は、後にも述べるが他の方法を採用するようにしてもよい。
【００８６】
そして、出力生成部１２５０は、第１データ格納部１２２０に格納された畳み込み演算の結果等と第２データ格納部１２４０に格納されたアテンションのデータから、(５)式に従ってエンコーダの出力を生成して、出力データ格納部１２６０に格納する(ステップＳ７)。
【００８７】
以上のような処理を行うことで、各レセプティブフィールドについて重要度が算出されて、その重要度が反映された出力が、デコーダに入力されるようになる。
【００８８】
［実施の形態２］
拡張化ＧＣＮＮを用いる場合における情報処理装置の構成例を図１４に示す。
【００８９】
本実施の形態の情報処理装置１０００ｂは、グラフデータ格納部１１００と、エンコーダ１２００ｂと、デコーダ１３００ｂと、学習部１４００ｂとを有する。グラフデータ格納部１１００に格納されているグラフのデータについては第１の実施の形態と同じである。
【００９０】
本実施の形態に係るエンコーダ１２００ｂも、グラフデータ格納部１１００に格納されたデータに対して所定のエンコード処理を実行する。また、デコーダ１３００ｂも、エンコーダ１２００ｂの出力に基づき、所定の目的のための処理を実行する。学習部１４００ｂは、上で述べた学習対象となるパラメータを決定するための処理を実行する。本実施の形態では、畳み込み処理部１２１０ｂ及びデコーダ１３００ｂにおけるパラメータを、予め解(例えばグラフノードの分類結果)が分かっているグラフのデータに基づき設定する。
【００９１】
エンコーダ１２００ｂは、畳み込み処理部１２１０ｂと、第１データ格納部１２２０ｂと、出力生成部１２５０ｂと、出力データ格納部１２６０ｂとを有する。
【００９２】
畳み込み処理部１２１０ｂは、上で述べた(１)式及び(７)式等の演算を実行し、演算の結果を第１データ格納部１２２０ｂに格納する。出力生成部１２５０ｂは、第１データ格納部１２２０ｂに格納されている畳み込み演算の結果等を連結することで出力データを生成し、出力データ格納部１２６０ｂに格納する。出力データ格納部１２６０ｂに格納されたデータは、デコーダ１３００ｂに出力される。
【００９３】
畳み込み処理部１２１０ｂの構成例を図１５Ａ及び図１５Ｂに示す。図１５Ａに示すように、畳み込み処理部１２１０ｂは、第１の実施の形態でも示された演算部１２１１を有する。また、図１５Ｂに示すように、畳み込み処理部１２１０ｂは、さらに、各々(６)式を用いて得られるＷpc(1)乃至Ｗpc(l)のいずれかを用いて(７)式に従って演算を行うｌ個の演算部１２１６を有する。なお、畳み込み処理部１２１０ｂは、図１１に示した演算部１２１５をも有する。
【００９４】
このような情報処理装置１０００ｂの機能は、１台のコンピュータではなくネットワークなどで接続された複数台のコンピュータにて実装される場合もある。
【００９５】
次に、情報処理装置１０００ｂの処理内容について、図１６を用いて説明する。
【００９６】
まず、畳み込み処理部１２１０ｂは、グラフデータ格納部１１００に格納されているグラフのデータに基づき、当該グラフに対して、自己ループ付きの隣接行列を用いた畳み込み演算を含む処理を実行して、処理結果を第１データ格納部１２２０ｂに格納する(ステップＳ１１)。畳み込み処理部１２１０ｂの演算部１２１５は、畳み込み演算ではないＺ(0)＝ＸＡに従って演算を行う。畳み込み処理部１２１０ｂの演算部１２１１は、(１)式に従って演算を行う。
【００９７】
さらに、畳み込み処理部１２１０ｂは、グラフデータ格納部１１００に格納されているグラフのデータに基づき、当該グラフに対して、ｌ通りの学習済み隣接行列Ｗpc(1)乃至Ｗpc(l)を用いた畳み込み演算を実行し、演算結果を第１データ格納部１２２０ｂに格納する(ステップＳ１３)。畳み込み処理部１２１０ｂの演算部１２１６が、(７)式に従って演算を行う。
【００９８】
そして、出力生成部１２５０ｂは、第１データ格納部１２２０ｂに格納されている畳み込み演算の結果等を連結することで出力データを生成し、出力データ格納部１２６０ｂに格納する(ステップＳ１５)。
【００９９】
このような処理を行えば、学習後の適切な重みで隣接するノードの情報を畳み込むことができるようになる。
【０１００】
［実施の形態３］
深層化及び拡張化ＧＣＮＮを用いる場合における情報処理装置の構成例を図１７に示す。
【０１０１】
本実施の形態の情報処理装置１０００ｃは、グラフデータ格納部１１００と、エンコーダ１２００ｃと、デコーダ１３００ｃと、学習部１４００ｃとを有する。グラフデータ格納部１１００は、第１の実施の形態と同様である。
【０１０２】
本実施の形態においてもエンコーダ１２００ｃは、グラフデータ格納部１１００に格納されたデータに対して所定のエンコード処理を実行する。また、デコーダ１３００ｃは、エンコーダ１２００ｃの出力に基づき、所定の目的(例えばグラフノードの分類)のための処理を実行する。学習部１４００ｃは、上で述べた学習対象となるパラメータを決定するための処理を実行する。本実施の形態では、畳み込み処理部１２１０ｃ、アテンション生成部１２３０ｃ及びデコーダ１３００ｃにおけるパラメータを、予め解(例えばグラフノードの分類結果)が分かっているグラフのデータに基づき設定する。
【０１０３】
エンコーダ１２００ｃは、畳み込み処理部１２１０ｃと、第１データ格納部１２２０ｃと、アテンション生成部１２３０ｃと、第２データ格納部１２４０ｃと、出力生成部１２５０ｃと、出力データ格納部１２６０ｃとを有する。
【０１０４】
畳み込み処理部１２１０ｃは、上で述べた(１)式、(２)式、(７)式及び(８)式等の演算を実行し、演算の結果を第１データ格納部１２２０ｃに格納する。アテンション生成部１２３０ｃは、上で述べた(９)式及び(１０)式の演算を実行し、演算の結果であるアテンションのデータを第２データ格納部１２４０ｃに格納する。なお、アテンション生成部１２３０ｃは、場合によってはレギュラライザの適用も行う。出力生成部１２５０ｃは、(１１)式の演算を実行し、演算結果を出力データ格納部１２６０ｃに格納する。出力データ格納部１２６０ｃに格納されたデータは、デコーダ１３００ｃに出力される。
【０１０５】
畳み込み処理部１２１０ｃは、(１)式及び(２)式等の演算を実行するため、図１０及び図１１に示す構成を有する。さらに、畳み込み処理部１２１０ｃは、図１８に示す構成を有する。図１８に示すように、畳み込み処理部１２１０ｃは、Ｚ(1)1，Ｚ(2)1，．．．，Ｚ(K)1，Ｚ(1)2，Ｚ(2)2，．．．，Ｚ(K)2，．．．，Ｚ(1)l，Ｚ(2)l，．．．，Ｚ(K)lを算出するために、(７)式に従ってＸとＷpc1〜lとからＺ(1)1〜lを演算する演算部１２１６(図１５Ｂと同じ)と、(８)式に従ってＺ(1)1〜lとＷpc1〜lとからＺ(2)1〜lを演算する演算部１２１７と、(８)式に従ってＺ(2)1〜lとＷpc1〜lとからＺ(3)1〜lを演算する演算部１２１８等を有する。
【０１０６】
また、アテンション生成部１２３０ｃの機能構成例を図１９に示す。アテンション生成部１２３０ｃは、キー生成部１２３１ｃと、キー格納部１２３２ｃと、変換部１２３３ｃとを有する。キー生成部１２３１ｃは、ＬＳＴＭや全結合のニューラルネットワークを含み、第１データ格納部１２２０ｃに格納されたデータをバリュー(Value)として入力し、(９)式のような演算(又は全結合のニューラルネットワークで行われる演算)を実行し、キー(Key)の値をキー格納部１２３２ｃに格納する。変換部１２３３ｃは、キー格納部１２３２ｃに格納されているキーの値を例えば(１０)式で変換して、アテンションのデータを生成し、第２データ格納部１２４０ｃに格納する。なお、変換部１２３３ｃは、レギュラライザ１２３４を有している。レギュラライザ１２３４は、アテンションの種類が複数(すなわちｔが１よりも大きい)であって、ユーザなどによって指示された場合には、ハードアテンションレギュラライザ又はソフトアテンションレギュラライザについて述べた所定のノルムを短縮化する処理を実行し、処理結果を第２データ格納部１２４０ｃに格納する。
【０１０７】
このような情報処理装置１０００ｃの機能は、１台のコンピュータではなくネットワークなどで接続された複数台のコンピュータにて実装される場合もある。
【０１０８】
次に、本実施の形態に係る情報処理装置１０００ｃの処理内容を図２０を用いて説明する。
【０１０９】
まず、畳み込み処理部１２１０ｃは、グラフデータ格納部１１００に格納されているグラフのデータに基づき、当該グラフに対して、１からＫホップまでの各々についての畳み込み演算を含む処理を実行して、処理結果を第１データ格納部１２２０に格納する(ステップＳ３１)。畳み込み処理部１２１０ｃの演算部１２１５は、畳み込み演算ではないＺ(0)＝ＸＡに従って演算を行う。畳み込み処理部１２１０ｃの演算部１２１１は、(１)式に従って演算を行い、演算部１２１２及び１２１３等は、(２)式に従って演算を行う。
【０１１０】
また、畳み込み処理部１２１０ｃは、グラフデータ格納部１１００に格納されているグラフのデータに基づき、当該グラフに対して、１からＫホップまでの各々についてのｌ通りの学習済み隣接行列を用いた畳み込み演算を実行して、処理結果を第１データ格納部１２２０ｃに格納する(ステップＳ３３)。畳み込み処理部１２１０ｃの演算部１２１６は、(７)式に従って演算を行い、演算部１２１７及び１２１８等は、(８)式に従って演算を行う。
【０１１１】
また、アテンション生成部１２３０ｃのキー生成部１２３１ｃは、第１データ格納部１２２０ｃに格納されている畳み込み演算結果等から、(９)式などに従ってキーを生成し、キー格納部１２３２ｃに格納する(ステップＳ３５)。キーの生成は、ＬＳＴＭを用いてもよいし、ニューラルネットワークを用いてもよい。なお、後に述べるが、さらに他の方法を採用することも可能である。
【０１１２】
さらに、アテンション生成部１２３０ｃの変換部１２３３ｃは、キー格納部１２３２ｃに格納されているキーを、例えば(１０)式に従って、アテンションに変換し、第２データ格納部１２４０ｃに格納する(ステップＳ３７)。このようなアテンションの生成は、後にも述べるが他の方法を採用するようにしてもよい。
【０１１３】
ここで、アテンション生成部１２３０ｃの変換部１２３３ｃは、レギュラライザを適用すべきか否かを、例えば設定等から判断する(ステップＳ３９)。レギュラライザを適用しない場合には、処理はステップＳ４５に移行する。一方、レギュラライザを適用する場合には、レギュラライザ１２２４は、上で述べたハードアテンションレギュラライザ又はソフトアテンションレギュラライザを、ステップＳ３７で得られたアテンションのデータに適用して、処理結果を第２データ格納部１２４０ｃに格納する。いずれのレギュラライザを適用するかについては、設定等に基づく。
【０１１４】
そして、出力生成部１２５０ｃは、第１データ格納部１２２０ｃに格納された畳み込み演算の結果等と第２データ格納部１２４０ｃに格納されたアテンションのデータから、(１１)式に従ってエンコーダの出力を生成して、出力データ格納部１２６０ｃに格納する(ステップＳ４５)。
【０１１５】
グラフにおける接続関係に基づく隣接行列を用いた畳み込み演算を各レセプティブフィールドについて行って、さらに複数の学習済みの隣接行列を用いた畳み込み演算を各レセプティブフィールドについて行っているので、出力の種類数が増加している。しかし、併せて適切なアテンションを生成することで、重要度を反映させた形でデコーダに出力しているので、精度よく目的となるタスクを行うことができるようになる。
【０１１６】
以上、本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で述べた機能ブロック構成又はモジュール構成は一例であって、異なる構成を採用してもよい。具体的には、１つの機能ブロック又はモジュールを複数に分割したり、複数の機能ブロック又はモジュールを１つに統合したりしてもよい。
【０１１７】
また、処理フローについても、処理結果が変わらない限り、処理の順番を入れ替えたり、複数ステップを並列実行するようにしてもよい。
【０１１８】
例えば、イントラアテンションの生成方法は、上で述べた方法に限定されない。例えば、シーケンスνjからシーケンスκjを生成する際にＬＳＴＭ又は全結合のニューラルネットワークを用いる例を示したが、例えばシーケンスνjとシーケンスκjとを同じにするようにしてもよいし、例えばシーケンスνjを双方向ＬＳＴＭ(例えば、以下の論文を参照こと。Graves, Alex, and Juergen Schmidhuber. "Framewise phoneme classification with bidirectional LSTM and other neural network architectures."Neural Networks 18.5-6 (2005): 602-610.)に入力してキーを生成するようにしてもよい。また、Softmax関数等は、compatibility functionの一例であって、直接のベクトルの乗算(例えば、以下の論文を参照こと。Vaswani, Ashish, et al. "Attention is all you need."Advances in Neural Information Processing Systems. 2017.)のような演算にしてもよい。その他、これまでアテンションにおいて採用されてきた様々な手法の適用が考えられる。
【０１１９】
さらに、デコーダで行われるタスクについては、グラフノードの分類を例示していたが、グラフ自体の分類や、グラフにおける欠落リンクの予想等であってもよい。すなわち、グラフについての様々なタスクに適用できる。
【０１２０】
なお、上で述べた情報処理装置１０００、１０００ｂ及び１０００ｃは、コンピュータ装置であって、図２１に示すように、メモリ２５０１とＣＰＵ(Central Processing Unit)２５０３とハードディスク・ドライブ(ＨＤＤ：Hard Disk Drive)２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。なお、ＨＤＤはソリッドステート・ドライブ(ＳＳＤ：Solid State Drive)などの記憶装置でもよい。オペレーティング・システム(ＯＳ：Operating System)及び本発明の実施の形態における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１２１】
なお、上で述べたような処理を実行することで用いられるデータは、処理途中のものであるか、処理結果であるかを問わず、メモリ２５０１又はＨＤＤ２５０５等の記憶装置に格納される。
【０１２２】
以上述べた実施の形態をまとめると以下のようになる。
【０１２３】
本実施の形態の第１の態様に係る情報処理方法は、各々特徴データを有する複数のノードとノード間の重み付けされた辺とを含むグラフをエンコードするエンコーダとグラフに関する所定の目的のためのデコーダとを有するシステムにおける上記エンコーダが実行する方法である。そして、本方法は、(Ａ)上記グラフについて、辺に対する重み付けに基づく１からＫ(Ｋは２以上の整数)ホップまでの各ホップについての畳み込み演算を含む処理を実行し、第１のデータセットを生成するステップと、(Ｂ)第１のデータセットから、第１のデータセットに含まれる各データ要素の重要度を表すアテンションのデータを生成するステップと、(Ｃ)アテンションのデータと第１のデータセットとに基づき、デコーダに対する入力データを生成するステップとを含む。
【０１２４】
このように、辺に対する重み付けに基づく１からＫホップの各ホップについての畳み込み演算を実施した上で、それによって生成された各データ要素の重要度を表すアテンションのデータを生成するので、ノード毎にレセプティブフィールドのうち重要視すべき部分を採用してエンコーダの出力を生成できるようになる。デコーダと併せれば、所定のタスクの精度を高めることができるようになる。
【０１２５】
なお、上で述べた畳み込み演算が、(ａ１)１ホップについて、上記グラフにおける自己ループ付きの正規化隣接行列と特徴データを表す行列と第１の学習済みニューラルネットワークのパラメータ行列との積である畳み込み演算と、(ａ２)ｉ(ｉは２以上Ｋ以下の整数)ホップについて、上記グラフにおける自己ループ付きの正規化隣接行列と(ｉ−１)ホップについて畳み込み演算の結果と第ｉの学習済みニューラルネットワークのパラメータ行列との積である畳み込み演算とを含むようにしてもよい。このようにすれば、１からＫホップの各々について畳み込み演算を行うことができるようになる。
【０１２６】
また、上で述べたアテンションのデータを生成するステップが、(ｃ１)第１のデータセットに対して、学習済みのＬＳＴＭ(Long Short-term memory)又は学習済みのニューラルネットワークによる演算を行って、当該演算の結果を所定関数で処理するステップを含むようにしてもよい。これによって、所定のタスクの精度を高めることができるようになる。
【０１２７】
なお、上で述べた所定関数が、上記演算の結果に対する学習済みの２層のニューラルネットワークによる演算を含むようにしてもよい。
【０１２８】
本実施の形態の第２の態様に係る情報処理方法は、上で述べたようなエンコーダにより実行される方法であり、(Ａ)上記グラフについて、辺に対する重み付けに基づく第１の畳み込み演算を含む処理を実行し、第１のデータセットを生成するステップと、(Ｂ)上記グラフについて、辺に対する重み付けとは異なるｌ(ｌは１以上の整数)通りの学習済みの重み付けに基づく第２の畳み込み演算を実行し、第２のデータセットを生成するステップと、(Ｃ)第１のデータセット及び第２のデータセットから、デコーダに対する入力データを生成するステップとを含む。
【０１２９】
第２の態様に係る情報処理方法では、元々のグラフの辺の重み付けとは異なる学習済みの重み付けにより１ホップ先の隣接ノードの情報を畳み込むものである。この学習済みの重み付けは、ノード間のアテンションを意味するものである。これによって、適切な重み付けにて、各ノードに隣接ノードの特徴データが畳み込まれるので、デコーダと併せれば、所定のタスクの精度を高めることができるようになる。
【０１３０】
なお、上で述べた辺に対する重み付けとは異なるｌ通りの重み付けの各々が、(ａ１)特徴データを表す行列と、学習済みの行列と、上記グラフにおける自己ループ付き隣接行列に基づくマスク行列とから得られる第２の隣接行列でなされるようにしてもよい。元々のグラフのデータを適切な形で織り込みつつ、特定のタスクに適合した隣接行列が得られるようになる。
【０１３１】
上で述べた入力データを生成するステップが、(ｃ１)第１のデータセットと前記第２のデータセットを連結するステップを含むようにしてもよい。
【０１３２】
本実施の形態の第３の態様に係る情報処理方法は、上で述べたようなエンコーダにより実行される方法であって、(Ａ)上記グラフについて、辺に対する重み付けに基づく１からＫ１(Ｋ１は２以上の整数)ホップまでの各ホップについての第１の畳み込み演算を含む処理を実行し、第１のデータセットを生成するステップと、(Ｂ)上記グラフについて、辺に対する重み付けとは異なるｌ(ｌは１以上の整数)通りの学習済みの重み付けに基づく１からＫ２(Ｋ２は２以上の整数)ホップまでの各ホップについての第２の畳み込み演算を実行し、第２のデータセットを生成するステップと、(Ｃ)第１のデータセット及び第２のデータセットから、第１のデータセット及び第２のデータセットに含まれる各データ要素の重要度を表すアテンションのデータを生成するステップと、(Ｄ)アテンションのデータと第１のデータセット及び第２のデータセットとに基づき、デコーダに対する入力データを生成するステップとを含む。
【０１３３】
このように第１の態様と第２の態様とを組み合わせて拡張することで、デコーダと併せれば、特定のタスクの精度を向上させることができるようになる。
【０１３４】
なお、上で述べた第２の畳み込み演算は、ｌ通りの学習済みの重み付けを表す行列の各々について、(ｂ１)１ホップについて、特徴データを表す行列と当該学習済みの重み付けを表す行列と上記グラフにおける自己ループ付き隣接行列に基づくマスク行列とから得られる第２の隣接行列と、特徴データを表す行列と、第１の学習済みニューラルネットワークのパラメータ行列と、の積である畳み込み演算と、(ｂ２)ｉ(ｉは２以上Ｋ以下の整数ホップ)について、第２の隣接行列と(ｉ−１)ホップについて畳み込み演算の結果と第ｉの学習済みニューラルネットワークのパラメータ行列との積である畳み込み演算と、を含むようにしてもよい。
【０１３５】
このように第１の態様における畳み込み演算に従って、第２の畳み込み演算を定義することができる。また、第１の態様におけるアテンションのデータの生成と同様の処理を、第３の態様において行ってもよい。さらに、第３の態様における第１の畳み込み演算は、第１の態様における畳み込み演算と同様であってもよい。
【０１３６】
さらに、上で述べたアテンションのデータを生成するステップが、(ｃ１)第１のデータセット及び第２のデータセットに含まれる各データ要素の重要度を表す複数種類の行列を生成するステップと、(ｃ２)複数種類の行列の各々について、当該種類の行列について定義した所定のノルムを短縮化する処理を実行することで、複数種類のアテンションのデータを生成するステップとを含むようにしてもよい。これによって、重要視すべきデータ要素を強調することができるようになる。
【０１３７】
以上述べた情報処理方法をコンピュータに実行させるためのプログラムを作成することができて、そのプログラムは、様々な記憶媒体に記憶される。
【０１３８】
また、上で述べたような情報処理方法を実行する情報処理装置は、１台のコンピュータで実現される場合もあれば、複数台のコンピュータで実現される場合もあり、それらを合わせて情報処理システム又は単にシステムと呼ぶものとする。
【符号の説明】
【０１３９】
１０００  情報処理装置
１１００  グラフデータ格納部
１２００  エンコーダ
１２１０  畳み込み処理部
１２２０  第１データ格納部
１２３０  アテンション生成部
１２４０  第２データ格納部
１２５０  出力生成部
１２６０  出力データ格納部
１３００  エンコーダ
１４００  学習部
【図１】
2020087127.tif 000003
【図２】
2020087127.tif 000004
【図３】
2020087127.tif 000005
【図４Ａ】
2020087127.tif 000006
【図４Ｂ】
2020087127.tif 000007
【図５】
2020087127.tif 000008
【図６Ａ】
2020087127.tif 000009
【図６Ｂ】
2020087127.tif 000010
【図６Ｃ】
2020087127.tif 000011
【図６Ｄ】
2020087127.tif 000012
【図７Ａ】
2020087127.tif 000013
【図７Ｂ】
2020087127.tif 000014
【図７Ｃ】
2020087127.tif 000015
【図７Ｄ】
2020087127.tif 000016
【図８Ａ】
2020087127.tif 000017
【図８Ｂ】
2020087127.tif 000018
【図８Ｃ】
2020087127.tif 000019
【図８Ｄ】
2020087127.tif 000020
【図９】
2020087127.tif 000021
【図１０】
2020087127.tif 000022
【図１１】
2020087127.tif 000023
【図１２】
2020087127.tif 000024
【図１３】
2020087127.tif 000025
【図１４】
2020087127.tif 000026
【図１５Ａ】
2020087127.tif 000027
【図１５Ｂ】
2020087127.tif 000028
【図１６】
2020087127.tif 000029
【図１７】
2020087127.tif 000030
【図１８】
2020087127.tif 000031
【図１９】
2020087127.tif 000032
【図２０】
2020087127.tif 000033
【図２１】
2020087127.tif 000034