AliGraph: an industrial graph neural network platform

なぜ GNN に注目するのか

ビッグデータの文脈において、高速コンピューターを使用してデータのパターンを発見することは、最も効果的な手段であるように思えます。機械の計算を目的のあるものにするためには、人間の知識を入力として活用する必要があります。これまでに、エキスパートシステム、古典的機械学習、深層学習の 3 つの段階を経てきました。入力される知識は具体的なものから抽象的なものへ、ルールから特徴、そしてモデルへと変化し、ますますマクロな方向に進んでいます。相対的に言えば、抽象度のレベルは高くなり、カバー率は広がりましたが、基盤となるレイヤーに対する知覚は弱まり、モデルの解釈可能性は低下しています。深層学習の応用により非常に大きな価値が確認されていますが、その背後にある解釈性の研究は遅々として進んでおらず、そのため、個人の安全や財産、法律に関わるセンシティブな問題に深層学習を適用する際、数値的な効果だけではこの技術の適用を裏付けるには不十分であり、結果の背後にある理由を知る必要があります。

グラフは知識の担い手であり、ノード間の物理的な接続は強い因果関係を示唆しています。重要なのは、これが直感的で人間にとって理解しやすい構造であることです。グラフを知識基盤として活用し、深層学習の汎化技術と組み合わせることは、実現可能な方向性であるように思えます。いくつかの問題においては、解釈可能性の目標に一歩近づいています。近年、深層学習関連の主要なカンファレンスにおける論文の分布を見ると、グラフニューラルネットワーク (GNN) は活発な状態が続いています。GNN は幅広いカバー率で問題を解決するアプローチを提供し、多くの検索およびレコメンデーションのアルゴリズムを GNN パラダイムに組み込むことができます。そのため、将来の技術的蓄積の観点からも、現在の応用拡大の観点からも、GNN は非常に投資価値の高い方向性です。

AliGraph のポジショニング
CNN や RNN といった成熟した技術と比較すると、GNN はまだ探求段階にあります。グラフと GNN の関係は、画像と CNN、自然言語と RNN の関係ほど自然なものではありません。グラフデータがあったとしても、GNN をどのように活用するかには確立されたパターンがなく、直接呼び出せる畳み込みのような定着したオペレーターも存在しません。GNN の有効性にはより多くのシナリオでの検証が必要であり、各シナリオにはグラフデータの処理とその上での深層学習モデルの構築に精通した開発者の深い理解が求められます。アプリケーションシナリオが多様に広がることで、共通の GNN 演算子やアルゴリズムを抽象化し、比較的成熟した機能をユーザーに提供できるようになり、GNN の真の普及が実現します。これらの考えに基づき、完成したアルゴリズムをユーザーに提供するのではなく、現在のプラットフォームは開発者に API を提供し、開発者が自身のシナリオに適した GNN を実装できる力を備えることに重点を置いています。

一方で、産業シナリオにおけるグラフデータは非常に複雑で、膨大なデータ量を有しています。プラットフォームは実際のシーンから切り離されては存在できず、ビジネス主導で進めることで初めて実用的な価値を持つプロダクトが生まれやすくなります。Alibaba の E コマースレコメンデーションシナリオを例に取ると、毎日生成されるグラフデータは数百 TB に達し、高度に異種性が高く (複数の頂点タイプ、複数のエッジタイプ)、頂点やエッジにはプロダクトの名前、カテゴリ、価格帯、さらには関連する画像や動画など豊富な属性が含まれていますが、これらの属性の多くはベクトル化された構造化情報ではなくプレーンテキストとして存在します。このようなデータを入力として、いかに効率的に GNN をトレーニングするかは非常に挑戦的な課題です。データの前処理や事前学習などの手段でグラフデータを構造化およびベクトル化しようとすると、大量の計算リソース、ストレージリソース、人的コストが消費されます。GNN 開発者にとって真に使いやすいプラットフォームはエンドツーエンドであるべきです。一組の IDE において、ユーザーは複雑なグラフデータを操作できるだけでなく、そのデータをディープニューラルネットワークと接続し、自由に上位層のモデルを記述できます。プラットフォームはシンプルかつ柔軟なインターフェイスを提供し、GNN の急速な発展に必要なスケーラビリティとエコシステムの互換性、そして複雑な分散環境に対応する大規模処理と安定性を備えています。

技術スタック
階層アーキテクチャ

AliGraph は元のグラフデータから GNN アプリケーションまでの全体的なリンクをカバーし、GNN アルゴリズムの探索コストを従来の深層学習アルゴリズムと同等のレベルまで引き下げています。プラットフォームはデータ層、エンジン層、アプリケーション層のレイヤー構造で捉えることができます。
2.jpg
データ層は大規模な同型グラフ、異種グラフ、属性グラフをサポートします。データの事前構築は不要で、プラットフォームが提供する API によりデータ分析とグラフ構築のプロセスを簡素化できます。データ層のインターフェイスは拡張が容易で、さまざまな形式やメディアのグラフデータを簡単に接続できます。

エンジン層は Graph Engine と Tensor Engine で構成されます。Graph Engine は論理オブジェクト層とオペレーター層に分けることができます。論理オブジェクト層は、元のデータをシステムにロードした後に表示される形式を記述します。各オブジェクトエンティティは関連するセマンティックインターフェイスを提供します。たとえば、Graph オブジェクトの場合、グラフのトポロジー情報、異種性の度合い、頂点とエッジの数を取得できます。ユーザーは実際の使用において、論理オブジェクトを宣言し、そのデータソースを指定するだけで済みます。

オペレーター層は、論理オブジェクト上で実行できる計算操作です。たとえば、Graph オブジェクトに対して、さまざまな Sampler オペレーターをサポートし、上位層の GNN アルゴリズムに入力を提供します。オペレーター層は高い拡張性を持ち、多様なシナリオのオペレータータイプのニーズに応えます。現在、組み込みでサポートされているオペレーターは GNN アルゴリズムとエコシステムを中心に、グラフクエリ、グラフサンプリング、ネガティブサンプリング、KNN などを含んでいます。

Tensor Engine は TensorFlow、PyTorch、その他の Python インターフェイスをサポートする深層学習エンジンを指します。Graph Engine の出力はフォーマット整合された NumPy オブジェクトであり、深層学習エンジンとシームレスに接続できます。GNN 開発者は Graph 上で自由に NN ロジックを記述でき、ビジネス要件と組み合わせてエンドツーエンドでトレーニング可能なディープネットワークモデルを形成できます。

アプリケーション層は Graph Embedding の結果を分離して使用するのではなく、ビジネスとのエンドツーエンドの統合を重視しています。シーンで磨かれた成熟アルゴリズムもアプリケーション層に集約され、アルゴリズムコンポーネントとしてユーザーに提供されます。

統合
GCN フレームワークを拡張した典型的な GNN プログラミングパラダイムは以下のように要約でき、システムはこのパラダイムを効率的にサポートするよう設計されています。

このうち、ベクトル化と集約操作は深層学習エンジンの表現力を活用できます。そのため、上記の計算モードを実現するには、主にグラフ関連の操作と、これらの操作を深層学習エンジンとどのように接続するかが課題となります。技術スタックを詳細化すると下図のようになり、Storage、Sampler、Operator がシステムが解決すべき主要な問題です。情報は層間を下から上へ前方伝播し、勾配は上から下へ各層のパラメータを更新します。GNN アプリケーション全体はディープネットワークで記述されます。Storage 層の Graph オブジェクトは論理ストレージであり、その下にはさまざまなデータソースに適応できる抽象ファイルインターフェイスがあり、これがシステムの移植性の前提条件です。Sampler は豊富なオペレーターを提供し、独立して拡張可能でシステムフレームワークに依存せず、多様なニーズに対応します。Operator はグラフのセマンティック操作をカプセル化し、パフォーマンスの最適化とデータ接続をシンプルなインターフェイスの裏に隠蔽しています。

効率的なグラフエンジン
より具体的には、グラフエンジンはグラフデータと深層学習フレームワークを接続するブリッジであり、データ転送の効率と安定性を確保します。ここでのグラフ操作は GNN を対象としており、汎用のグラフ計算とは大きく異なります。Graph Engine は高性能で高可用性を持つ分散型サービスです。数千億のエッジを持つ異種グラフを 2 分以内に構築でき、ミリ秒単位のマルチホップクロスマシンサンプリングをサポートし、フェールオーバー時のステートレス復旧をサポートします。Graph Engine は内部的に RPC プロセスを最適化してデータのゼロコピーを実現し、サーバー間の接続はスレッドレベルです。帯域幅使用率を最大化しながら、各スレッドがロックなしで独立してリクエストを処理でき、これがシステムのパフォーマンスが優れている主な理由です。さらに、効果的なキャッシュや分散化などの手段を通じてサンプリングとネガティブサンプリングを高速化し、パフォーマンスが大幅に向上しています。

オペレーターの拡張可能性
GNN の急速な発展をサポートするため、システムはオペレーターの自由な拡張を可能にしています。システムフレームワークはユーザーインターフェイス、分散ランタイム、分散ストレージの 3 つで構成されます。ユーザーインターフェイスを通じてオペレーターを呼び出し、オペレーターはデータを読み取り、分散コンピューティングを完了します。分散ランタイムとストレージインターフェイスを精緻化し、プログラミングインターフェイスを安全な範囲内に制御しています。ユーザーはこれらのインターフェイスに基づいてカスタムオペレーターを開発できます。カスタムオペレーターは新しいユーザー API を追加することなく、ユーザーインターフェイスに統一登録できます。具体的には、各タイプの Operator は分散型オペレーターであり、計算に必要なデータはサービスの各サーバーに分散配置されます。Map() と Reduce() のセマンティクスを抽象化しており、Map() は計算リクエストを分割して対応するサーバーに転送し、データと計算のコロケーションを確保してデータ再配置のコストを回避します。Reduce() は各サーバーの結果を統合します。オペレーターはローカル計算用の Process() を実装する必要がありますが、データのシリアル化や分散通信を気にする必要はありません。

実績
システム

データタイプ:同型グラフ、異種グラフ、属性グラフ、有向グラフ、無向グラフをサポートし、任意の分散ファイルシステムに簡単に接続できます。

データスケール:数千億のエッジと数十億の頂点を持つ超大規模グラフをサポート (TB レベルの生ストレージ)。

オペレータータイプ:深層学習と組み合わせ可能な数十種類のグラフクエリおよびサンプリングオペレーターをサポートし、ベクトル検索をサポートし、オンデマンドでのオペレーターのカスタマイズをサポートします。

パフォーマンス指標:分単位の超大規模グラフ構築、ミリ秒単位のマルチホップ異種グラフサンプリング、ミリ秒単位の大規模ベクトル検索をサポート。

ユーザーインターフェイス:純粋な Python インターフェイスで、TensorFlow と統合された IDE を形成し、開発コストは一般的な TF モデルと変わりません。

アルゴリズム

業界で主流の GraphEmbedding アルゴリズムをサポートしています。DeepWalk、Node2Vec、GraphSAGE、GATNE などを含みます。自社開発アルゴリズムも順次公開予定で、関連論文は以下に引用しています。

ビジネス
Alibaba Group 内で、Taobao レコメンデーション、Taobao 検索、ニューリテール、ネットワークセキュリティ (テロ対策、スパムまたは異常検知、不正対策)、オンライン決済、Youku、Ali Health などの関連ビジネスをカバーしています。代表的なシーンの効果は以下の通りです。

モバイル版 Taobao ホームページの「あなたにおすすめ」、クラウドテーマレコメンデーション (1 日あたり 5,500 万 PV)

他のシステムで実装された GE モデルと比較して、AliGraph の実装では単一タスクあたり 300 TB のストレージと 10,000 CPU 時間の計算能力を節約でき、トレーニング時間を 3 分の 2 に短縮、CTR を 12% 向上させました。

セキュリティ関連、テロ対策、スパム検知、異常識別などの 5 つのシナリオ

30 億エッジと 1 億頂点を持つ異種グラフを半日で処理し、トレーニング時間を 2 分の 1 に短縮、モデルカバー率の精度を 6% から 41% 向上させました。

さらに、AliGraph は Alibaba Cloud パブリッククラウドプラットフォームで公開されており、今後も継続的にアップデートしていきます。GNN がより多くのシナリオで優れたソリューションをもたらすことを期待しており、より多くの研究者がこの方向性に投資することを願っています。

おわりに

この記事では AliGraph プラットフォームの概要を説明しました。その背後にある考え方をお伝えするとともに、GNN 分野のより多くの研究者に利便性をもたらすことを願っています。また、GNN の影響力をともに高め、実用的なアプリケーションへの実装に取り組んでいただける方の参加をお待ちしています。

Related Articles

Explore More Special Offers

  1. Short Message Service(SMS) & Mail Service

    50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00

phone お問い合わせ
Hi, I'm Alibaba Cloud AI Assistant!
I can help with questions and solutions.