コンテンツに移動
データ分析

Google Enterprise Knowledge Graph を使用して Neo4j のナレッジグラフを拡充

2023年3月15日
https://storage.googleapis.com/gweb-cloudblog-publish/images/da_2022_tDyfibl.max-2500x2500.jpg
Google Cloud Japan Team

※この投稿は米国時間 2023 年 3 月 8 日に、Google Cloud blog に投稿されたものの抄訳です。

完全な知識というのはそう簡単に入手できるものではないため、ナレッジグラフは必然的に完全でない情報を用いて構築されることを余儀なくされます。Neo4j グラフ データベースに格納されているナレッジグラフは、Google Enterprise Knowledge Graph のデータを使用して拡充し、より詳細な情報を提供することが可能です。

この方法で拡充されたナレッジグラフにはより多くの情報が含まれているため、それらを使用するシステムはより多くの質問に答えることができます。また、それらのダウンストリーム システムは、より的確なビジネス上の意思決定を行い、優れたカスタマー エクスペリエンスを提供できます。

このブログ投稿では、Neo4j を Google Enterprise Knowledge Graph と組み合わせて使用して、ナレッジグラフを拡充する方法をご紹介します。

Neo4j

Neo4j Aura は、代表的なグラフ データベースであり、Google Cloud Marketplace で提供されています。また、Google Cloud コンソールに埋め込まれた唯一のグラフ データベースでもあります。Neo4j AuraDS(データ サイエンス)には、次の 3 つのコンポーネントが含まれています。

Google Enterprise Knowledge Graph

Google Enterprise Knowledge Graph は、次の 2 つのサービスで構成されています。

  • Entity Reconciliation API は、お客様が BigQuery に格納されたデータを使用して、独自の非公開ナレッジグラフを構築できるようにします。

  • Google Knowledge Graph Search API は、お客様が正式名称、種類、説明などのエンティティに関する情報を検索できるようにします。

アーキテクチャ

Neo4j Aura に格納されたナレッジグラフを Google Enterprise Knowledge Graph で拡充するための最も簡単な方法は、Vertex AI Workbench から Python API を介して両ツールにアクセスすることです。このようなシステムのアーキテクチャを以下に示します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_Neo4j-EKG-Blog-Image-1.max-1200x1200.jpg

プライベート エクイティ(未公開株式)データを使用した例

このアーキテクチャを説明するために、プライベート エクイティ市場情報のデータ プロバイダである ApeVue のデータを見てみましょう。ApeVue は、さまざまなプライベート エクイティ ブローカーから IPO 前の企業の価格データを集約し、その情報に基づいて市場コンセンサス価格とインデックスのベンチマークを配信しています。

この例では、ApeVue が提供するいくつかの CSV ファイルから、Neo4j Aura でナレッジグラフを構築します。これらのファイルは、ApeVue50 Benchmark Index とその構成企業を網羅しています。読み込みを実行する iPython ノートブックは、こちらで入手できます。ぜひ、ご自身で実行してみてください。

完了したら、グラフを調べ、インデックスとサブインデックスを確認できます。これをグラフで表示する方法の一つが Neo4j Browser であり、Neo4j Aura コンソールから開くことができます。

ここで、クエリを実行します。

MATCH (n:Sector) RETURN n

データセットに含まれるすべてのセクター(この場合は 14 セクター)が表示されます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_Neo4j-EKG-Blog-Image-2.max-2000x2000.jpg

これらのセクターのいずれかをクリックすると、そのセクターに属する会社も表示されます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/3_Neo4j-EKG-Blog-Image-3.max-1600x1600.jpg

同様に、ナレッジグラフ内で特定の項目を検索して、それに関連する情報を表示することもできます。たとえば、Cypher クエリを実行することで、Neo4j を検索できます。

MATCH (n:Company {name: 'Neo4j'}) return n

完了したら、Neo4j ノードの周辺を拡大してみてください。他の会社や投資家との興味深い関係性について確認できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/4_Neo4j-EKG-Blog-Image-4.max-2000x2000.jpg

この例では、Neo4j には多くの投資家(青いノード)がいることがわかります。そのうちの一つは、「GV Management Company, LLC」という名前で、以前は Google Ventures として知られていました。

Enterprise Knowledge Graph を使用してデータを拡充

Google のナレッジグラフは、それ自体非常に興味深い機能ではありますが、さらに充実させることができます。Enterprise Knowledge Graph の基になっているグラフを表示する方法はありませんが、そのグラフにクエリを実行して Neo4j で構築したナレッジグラフを拡充させるために使用できます。ここでは、会社名を API に渡して、その会社の説明を返します。そして、Neo4j データベースの各「Company」ノードに、「description」という新しいプロパティを追加します。

これは、Vertex AI Workbench で実行されるいくつかの Python コードによって行われます。この例で示されているノートブックは、こちらで入手できます。ここで肝心なのは、Cloud Knowledge Graph API を呼び出す部分です。
https://storage.googleapis.com/gweb-cloudblog-publish/images/5_Neo4j-EKG-Blog-Image-5.max-1200x1200.jpg

ノートブックを実行したら、Neo4j で拡充されたデータセットを調べることが可能です。たとえば、ナレッジグラフで、「Neo4j」に再びクエリを実行すると、「description」というプロパティがあるのがわかります。

https://storage.googleapis.com/gweb-cloudblog-publish/images/6_Neo4j-EKG-Blog-Image-6.max-1000x1000.jpg

ここで私たちが行ったのは、両者の長所を活かすこということです。Google が誇る検索とナレッジ集約に関する専門知識に加え、データを保存し、クエリし、グラフとして視覚的に表現するという、Neo4j がもつ市場トップの能力を活用しました。その結果、カスタム ナレッジグラフを構築するための優れた方法が確立されました。

ナレッジグラフの探索

データを読み込んで拡充することができたところで、次はそのデータを探索してみましょう。これには、グラフに特化したビジネス インテリジェンス ツールである Neo4j Bloom を使用します。

まず、会社とグラフを見てみましょう。

https://storage.googleapis.com/gweb-cloudblog-publish/images/7_Neo4j-EKG-Blog-Image-7.max-2000x2000.jpg

ここには、オレンジ色の点で 14 個のセクターが示されています。1 つの会社しかないセクターもあれば、多数の会社がつながっているセクターもあります。投資家を含めて検索を再実行すると、もっと混み合った表示になります。

https://storage.googleapis.com/gweb-cloudblog-publish/images/8_Neo4j-EKG-Blog-Image-8.max-2000x2000.jpg

この図をより詳しく理解するために、Neo4j グラフデータ サイエンスのコンポーネントを使用できます。グラフの中間中心性を計算すると、このように表示されます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/9_Neo4j-EKG-Blog-Image-9.max-2000x2000.jpg

さらに、スコアに応じてノードのサイズを変えてみました。ここで驚いたのは、重要なのは投資家ではなく、会社とセクターがグラフの主な接続点となっていることです。

また、この視点にフィルタを追加することもできます。たとえば、先月、10% 以上のリターンを上げた会社をフィルタリングして確認できます。すると、このように表示されます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/10_Neo4j-EKG-Blog-Image-10.max-2000x2000.jpg

この表示を拡大すると、10% 以上のリターンを上げた会社のうち、4 社に投資した企業を特定できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/11_Neo4j-EKG-Blog-Image-11.max-1900x1900.jpg

これは、Bloom で実現できることのほんの一部です。ぜひ、ご自身でこのデータを探索してみてください。

まとめ

このブログ投稿では、ApeVue が提供するデータセットを Neo4j AuraDS に読み込みました。AuraDS は Neo4j のマネージド サービスで、Google Cloud Platform で実行できます。読み込まれたデータは、リターン、デプス、取組高のデータを含む、ApeVue50 インデックスで構成されています。データのクエリには、Neo4j Cypher と Neo4j Browser を使用しました。Google Enterprise Knowledge Graph にクエリを実行してデータセットを拡充しました。最後に、Neo4j Bloom を使用してデータセットを探索しました。

拡充されたナレッジグラフにより、プライベート エクイティのデータをより詳細に把握できます。このナレッジグラフを使用したダウンストリーム システムは、投資家やセクターの情報を返すだけでなく、会社の事業内容を自然言語で説明できるようになります。これを使用することで、会話エージェントを強化したり、データセットの全文検索にフィードしたりすることができます。

Neo4j と Google Enterprise Knowledge Graph を使用するシステムは、接続された情報に関して、他の方法よりも優れた分析情報と理解を提供できます。そのため、ダウンストリーム システムがより的確にビジネス上の意思決定を行い、より優れたカスタマー エクスペリエンスを提供できるようになります。

使用したノートブックは、GitHub のこちらから確認できます。

データセットの詳細については、ApeVue チームの Nick Fusco 氏(contact@apevue.com)までご連絡ください。Neo4j に関する詳細情報は、ecosystem@neo4j.com までお問い合わせください。


このコラボレーションに貢献してくださった多くの Google Cloud と Neo4j のチームメンバーに感謝します。


- Neo4j、グローバル クラウド チャネル アーキテクチャ担当ディレクター Ben Lackey 氏
Google Cloud、Enterprise Knowledge Graph およびデータ担当プロダクト マネージャー Lewis Liu
投稿先