2021 年 7 月に O'REILLY から出版された、"Knowledge Graphs: Data in Context for Responsive Businesses" について紹介します。
本書は、Knowledge graphs の概要、手法、および実ビジネスへの適用方法について紹介された書籍です。ページ数は薄く、80 ページ程度です。
内容としては、技術書というよりビジネス書に近く、数式やコードはほとんど出てきません。プロジェクトや次の起業のアイデアとして、または単純な好奇心から Knowledge graphs を知りたい全ての業種の人に対する導入書としての立ち位置でしょう。
逆に言うと、実際に Knowledge graphs をアプリケーションとして設計・実装していくためには、グラフデータベースなどの個別のテクノロジーについてはもちろん、そこで必要とされるグラフアルゴリズムやデータパイプラインの構築手法などについては、他の書籍などで学ぶ必要が有ります。
Neo4j の Director of Sales Engineering である Dr. Jesus Barrasa、および Director for Graph Analytics and AI Programs の Amy E. Hodler、そして Neo4j の Chief Scientist である Dr. Jim Webber らによって執筆されています。
Knowledge graphs / organizing principles / taxonomies / ontologies / context AI / digital twin
導入の章では、グラフ構造のデータを扱ったことの無い読者のために、グラフ理論の歴史やグラフ構造のデータに関する基本的な説明を行っています。
グラフ理論の礎となった、Euler のケーニヒスベルクの7つの橋の問題に触れながら、ノードとリレーション、プロパティグラフといった用語の紹介を行っています。
本書における重要な点としては、Knowledge graphs の定義をしている点です。
Knowledge graphs are a specific type of graph with a emphasis on contextual understanding.
Knowledge graphs are interlinked sets of facts that describe real-world entities, events, or things and their interrelations in a human- and machine-understandable format.
Knowledge graphs では、organizing principle と呼ばれる組織固有の原則を組み入れることによって、適切なコンテキスト(意味)を付与します。単なるデータの集まりから、価値のあるデータとして活用するためには、このドメインに沿った適切なメタデータを組み入れることが重要です。
物流には物流の、セキュリティにはセキュリティの、金融には金融のドメイン知識があります。また、NASA には NASA の、Google には Google の、GE には GE のドメイン知識があるでしょう。
Knowledge graphs は、熟練の司書という比喩でも描かれています。
図書館(データの山)のどこかには、研究者であるあなたが求めている価値のある「知識」があることは明白でしょう。ですが、適切なインデックスが無いと、本当に求めている情報にありつくことはできません。
熟練の司書の頭の中には、単に本棚の配置だけではなく、あなたがどのような研究をしているか、その働いている図書館が得意な領域はなにか、現在どのような話題が盛り上がっているかと言ったコンテキストを理解し、最適な「知識」を得るための「本(データ)」を推薦することができます。
本章では、シンプルにモデリングされた顧客と製品カタログのグラフ構造からスタートして、organizing principle を徐々に適用しながら Knowledge graphs へと変貌を遂げていく様子を、具体例を交えながら紹介しています。
初期段階では、顧客と製品カタログはシンプルなリレーションで関連付けられているに過ぎません。そこにコンテキストを付与していくと、どうグラフは進化していくのでしょうか。
第一段階では、プロパティグラフの特徴を活かして、ノードにラベルとプロパティを付与することによってメタデータを付与します。例えば、単なる「製品(Product)」としてではなく、「オーディオ」かつ「ワイヤレス」かつ「イヤフォン」という「製品」であることをラベルで表現します。単なる「顧客(Customer)」ではなく、「Sophie」という名前の「顧客」であることをプロパティで表現します。
しかし、ここで重要なのは、この段階ではまだ Knowledge Graphs としては不十分 であるということです。何が足りないのでしょうか?
答えは、ラベルごとの関連性が不足 しています。ビジネスに本当に価値のあるグラフデータを作るのであれば、「イヤフォンはオーディオの一製品である」という事実や、「イヤフォンにはワイヤレスと有線タイプがある」というコンテキストを付与してあげる必要が有ります。
言い換えると、ラベルやプロパティの分類です。これを、Taxonomy と呼びます。
以下で示したように、実際の製品と顧客のデータだけでなく、製品のカテゴリーの階層構造を「知識」としてグラフに組み込みます。これが、organizational principle の適用です。
また、Taxonomy とは他の手法として Ontology についても紹介されています。Taxonomy と Ontology の違いは以下です。
methodology | relationthips | exploration direction |
---|---|---|
Taxonomy | subcategory_of | vertically (= hierarchically) |
Ontology | part_of, compatible_with, depends_on | vertically and horizontally |
具体的には、「iPhone は iOS というカテゴリーの一部である(part_of)」といった、階層構造に限定されない関係性を定義することができます。
ここで、非常に興味深い着眼点として、Knowledge graphs はレイヤー構造を成す、という点が述べられています。Taxonomy と Ontology、そして組織固有のカスタマイズされた Ontology は、以下の図のようにレイヤー構造を成すことで、知識の深みを増すのです。
Knowledge graphs の活用事例の一つとして、Actionable Knowledge について述べられています。
グラフ構造にある価値のある知識から、次の施策のアクションを決定するものとして利用するパターンのことです。
よくあるユースケースとして、以下について紹介されています。
Knowledge graphs の別の活用事例として、Decisioning Knowledge graphs について述べられています。
その名の通り、重要な意思決定をするために用いられるパターンのことです。人・モノ・場所・コト(POLE,, Persons/Objects/Locations and Events)といったあらゆるエンティティに対しての分析を可能とします。また、グラフアルゴリズムや ML を適用することで、より精度の高い分析結果を出すこともこのトピックに含まれます。
よくあるユースケースとして、以下について紹介されています。
AI を利用したシステムを作成する場合、問題となってくるのは「以下に AI にコンテキストを理解させるか」という点です。人間の脳は、単純に入ってきた電気信号を情報として処理するだけではなく、話し相手の感情や状況、将来予測や感情と言ったさまざまなコンテキストを組み込んだ上で判断をしています。
AI の予測精度を向上させるために、以下に知識、コンテキストを組み込むかというのは現在の AI 開発の課題です。それは、現在 Contextual AI という文脈で議論・実装・研究されています。
Contextual Artificial Intelligence: The building blocks of a successful relationship between humans and AI
by Oliver Brdiczka, Adobe
ここまでの章で述べてきたように、Knowledge graph を利用することで、AI システムのデータ処理パイプラインの中にコンテキストを入力するパーツを組み込みやすくなります。
AI の下した判断に、意味付け・根拠付けを行い、適切なビジネス判断を行っていくために、重要なプロセスです。
本章では、Digital twin の可能性と、その実現に向けたロードマップにおけるグラフデータベースの適合性について論じた章です。
Digital twin とは、人やモノ、場所、コトなどの現実をデジタル世界に可能な限り複製させたもの。ホワイトボードでスケッチしたまま(Whiteboard-friendly)の姿としてデータモデリングできるグラフデータベースの強みを活かすと、より現実世界のエンティティや関連性を組み入れたモデルが作りやすいはずです。
よくあるユースケースとして、以下について紹介されています。
締めの章なので、ほとんど内容はありません。この本の次に読むべき文献や Web サイトへのリンクがあるので、それを参考にすると良いでしょう。
以上、"Knowledge Graphs: Data in Context for Responsive Businesses" について紹介しました。
Knowledge Graphs の概要や現場への導入を検討されているプロダクトマネージャーやデータエンジニアの方は、ぜひ一読してみてはいかがでしょうか。