ナレッジグラフ: インテリジェントでコンテキスト アウェアな検索の実現

ナレッジグラフは、ユーザーコンテンツインタラクションという 3 つの主要な柱にわたってデータをリンクすることで、Gemini Enterprise を強化します。ナレッジグラフは、コーパス内のさまざまなインスタンスとエンティティの関係を理解し、コンテキストを認識したより深い検索を提供することで、検索の品質とエクスペリエンスを向上させます。

ナレッジグラフは、次の方法で検索機能を強化します。

  • 組織のコンテキスト(派生したレポートラインや他のエンティティとの関係など)で人物関連データを拡充します。
  • エンティティの認識、関係性、意図の理解を改善し、ユーザーのクエリからより多くの分析情報を検出します。
  • 正確なコンテキスト駆動型のデータで検索結果を改善し、ユーザーが関連する人物や組織情報を簡単に見つけられるようにします。

ナレッジグラフでサポートされているデータソース

ナレッジグラフは、次のデータソースがあるアプリで利用できます。

始める前に

ナレッジグラフの機能を使用するには、まず ユーザー コネクタを構成して、ユーザーデータをナレッジグラフに接続する必要があります。ユーザーデータを接続しないと、これらの機能は正常に動作しません。

人物データは、次のようなナレッジグラフの主な機能を支えています。

  • エンティティ解決
  • コンテキストの理解
  • パーソナライズ
  • 予測入力
  • 推奨事項

ユーザーデータのサポート対象ソース

各アプリに設定できるユーザー コネクタは 1 つのみです。ただし、アプリごとに異なるユーザー コネクタを設定することはできます。ID システムに基づいてデータソースを選択します。

Gemini Enterprise は、個人データをナレッジグラフに取り込むための次のオプションをサポートしています。

  • Workspace ソース

    Advanced Google Identity コネクタは、Google Workspace からユーザーデータを同期し、Vertex AI Search インデックスに直接コピーします。データをインデックスにコピーすることで、このコネクタは自然言語処理(NLP)などの Knowledge Graph のすべての機能を有効にします。Advanced Google Identity コネクタクラウド ネイティブであり、インデックスにデータを保持することで Advanced Drive コネクタと同様の動作をします。

    コネクタがアクティブな場合は、次の操作を行う必要があります。

    1. 既存のユーザー検索データストアが使用中の場合は、リンクを解除します。
    2. 新しいデータストアをエンジンに追加します。
  • ネイティブ ソース

    カスタム ユーザー コネクタを使用すると、Google 指定のスキーマを使用して BigQuery または Cloud Storage からユーザーデータをアップロードできます。これは、カスタムまたはハイブリッド ID ソースを使用する組織に最適です。

  • サードパーティのソース

    Gemini Enterprise は、ユーザーデータの取り込みに次のサードパーティ ID プロバイダをサポートしています。

ナレッジグラフを使用したクエリのアノテーションについて

ナレッジグラフによるクエリ アノテーションは、構造化データを検索語句に関連付けることで、検索クエリの理解を深めます。このプロセスでは、ナレッジグラフのコンテキストに基づく分析情報を活用して、検索結果の精度と関連性を高めます。

スタンドアロンの情報パネルとは異なり、クエリ アノテーションは、メタデータで検索クエリを拡充することで独立して機能し、より正確なエンティティ検出、エンティティ リンク、ユーザー コンテキストの理解を可能にします。検索語句を入力すると、ナレッジグラフは、人、組織、問題、その他のエンティティとの関係に基づいてクエリを分類し、解釈します。

クエリ アノテーションの主なコンポーネントは次のとおりです。

  • メンションの検出: 検索クエリ内のキーエンティティ(人物など)と関係(マネージャーなど)を識別し、構造化データに関連付けます。

  • ユーザー コンテキストの理解: ユーザーのコンテキストを分析し、関連するユーザー シグナル(上位の同僚など)を取得して、検索結果の関連性を高めます。

  • エンティティ リンク: 用語を最も関連性の高いエンティティにリンクすることで、曖昧さを解消します(たとえば、企業としての「Apple」と果物としての「Apple」を区別します)。

ナレッジグラフ パネル

ナレッジグラフを有効にすると、検索エンジンは拡充されたパネルを検索結果に統合し、より正確でコンテキストに基づく情報を提供して、ユーザーが関連性の高い人物、役割、組織をすばやく見つけられるようにします。検索を実行すると、search API は、検索クエリに関連する追加のコンテキストと分析情報を提供する詳細パネルを返します。

検索結果ページには、関連性の高いエンティティを特定しやすくするための次のパネルの種類が表示されます。

  • ユーザー パネル: このパネルには、ユーザーの役職、部門、他のユーザーとの関係(管理チェーン、直属の部下、チームメイトなど)などの情報が表示されます。組織内の関連するユーザーとその役割をすばやく見つけることができます。[ユーザー] パネルがナレッジグラフで強化され、ユーザーがロングフォーム カードとして表示されるようになり、組織内でのユーザーの役割と関係を包括的に把握できるようになりました。ナレッジグラフ検索 API のレスポンスには、拡充されたデータパネルが統合された 1 ボックスの検索形式で含まれます。[ユーザー] パネルには、役職、部門、関連するユーザー情報(管理チェーン、直属の部下、同じマネージャーのチームメンバーなど)が表示されます。ナレッジグラフから派生したフィールドは、人物パネルの結果の derived_struct_data で返されます。

  • 組織パネル: このパネルには、組織の名前、説明、ウェブサイト情報など、組織に関する重要な詳細情報が表示されます。ナレッジグラフ検索 API のレスポンスには、拡充されたデータパネルが統合された 1 ボックスの検索形式で含まれます。[組織] パネルには、組織の名前、説明、ウェブサイトの情報が表示されます。組織の結果は、[組織] パネルの結果の knowledge_graph_results フィールドで返されます。

ナレッジグラフの構成

ナレッジグラフは、内外のデータソースから取得したコンテキストに基づく正確な情報と、拡充されたパネルを統合することで、検索結果を向上させています。

ナレッジグラフの種類

ナレッジグラフには次の 2 種類があります。

  • Google Cloud ナレッジグラフ: 外部データソースを組み込んで検索結果を拡張します。これにより、検索結果の範囲が広がり、追加の分析情報で関連性が向上します。 Google Cloud ナレッジグラフは、場所が [グローバル] に設定されているアプリでのみ使用できます。

  • プライベート ナレッジグラフ: 組織の内部データを利用して、強化された検索結果を生成します。関係、役割、役職などの独自の知識を取り込むことで関連性が向上し、コンテキスト的に正確なクエリ アノテーションが提供されます。

ナレッジグラフの構成を変更する

ナレッジグラフの構成は、すべての Gemini Enterprise アプリで有効になっています。変更を行う前に、検索結果への影響を次のように確認できます。

構成 有効 無効
Google Cloud ナレッジグラフ 外部データで検索を拡張します。 検索対象を内部データに限定します。
非公開ナレッジグラフ 社内データで検索を強化します。 内部の派生データを削除します。

ナレッジグラフの構成を変更するには、ナレッジグラフの構成を管理するをご覧ください。

非公開ナレッジグラフの構造とマッピング

非公開ナレッジグラフでは、プロパティ グラフのデータモデルが使用されます。これは、エンタープライズ ユースケース向けに設計されており、特定のタイプのエンティティとリレーションシップをサポートしています。サポートされているコネクタを使用してインポートしたドキュメントからデータを取得できます。非公開ナレッジグラフは、内部ルールを使用して次の処理を行います。

  1. 元のデータストア スキーマのデータをエンティティ プロパティにマッピングします。
  2. 識別子をリンクしてエンティティ間のリレーションを作成します。

ナレッジグラフ エンジンは、サポートされているコネクタのすべてのドキュメントにこれらの内部ルールを適用してグラフを構築します。

ナレッジグラフのエンティティ タイプと関係

ナレッジグラフ エンティティ タイプ ナレッジグラフの関係タイプ サポートされているコネクタ
人物 マネージャー Workspace ソース → ユーザー検索
別系統の部下 カスタム コネクタを使用しているユーザー

データソース スキーマからエンティティ プロパティへのマッピング

ソース ドキュメントのフィールド メモ
name.familyNamename.givenNamename.displayName givenNamefamilyName の連結。空の場合は、displayName を使用します。
personId 個人を一意に識別するために使用されます。
employeeId -
employmentStatus -
organizations[0].jobTitle 組織(配列)の最初の要素の役職。
websites[0].value ウェブサイトの最初の値(配列)。
topCoworkers -

ナレッジグラフのライフサイクル

エンジンのナレッジグラフは、有効化、更新、管理の過程で複数の状態を経ます。次の状態を理解すると、何が予想され、どのようなアクションが利用可能になるかを把握できます。

  • unspecified

    ナレッジグラフがエンジンで有効になっていないか、初期化が保留中です。有効にするには、knowledge_graph_config.enable_private_knowledge_graph 設定を true に構成する必要があります。

  • initialization

    初期のナレッジグラフの構築が実行されています。この状態の間、ナレッジグラフは処理に使用できません。

    initialization 状態の場合:

    • ナレッジグラフを有効または無効にすることはできません。
    • エンジンを削除することはできません。
    • ナレッジグラフでサポートされているデータストアのリンクまたはリンク解除による変更は、グラフにすぐに反映されません。詳細については、ナレッジグラフでサポートされているデータソースをご覧ください。
  • active

    ナレッジグラフは信頼性が高く、アクティブに提供されています。これは、機能するナレッジグラフの選択された状態です。

  • batch_update

    ナレッジグラフは、ソースデータの最近の変更を反映するために更新されています。ナレッジグラフでサポートされているデータソースの変更、またはナレッジグラフとサポートされているデータソース間の定期的な同期により、このアクションがトリガーされます。ナレッジグラフはアクティブなままですが、更新がまだ進行中のため、変更されたソースデータと同期していない可能性があります。

    batch_update 状態の場合:

    • ナレッジグラフを有効または無効にすることはできません。
    • エンジンを削除することはできません。
    • ナレッジグラフでサポートされているデータストアのリンクまたはリンク解除による変更は、グラフへの反映が遅れることがあります。詳細については、ナレッジグラフでサポートされているデータソースをご覧ください。
  • deleting

    エンジンでナレッジグラフが無効になり、削除されています。ナレッジグラフは処理に使用できません。

    deleting 状態の場合:

    • ナレッジグラフを有効または無効にすることはできません。
    • エンジンを削除することはできません。

ナレッジグラフの構成を管理する

構成は、コンソールまたは API を使用して管理できます。

開始する前に、次のことを行います。

  1. Gemini Enterprise アプリを作成している必要があります。
  2. ナレッジグラフの構成の変更を確認して、構成の変更が既存のアプリに与える影響を確認します。

コンソールでナレッジグラフの構成を更新する手順は次のとおりです。

コンソール

Google Cloud コンソールを使用してナレッジグラフの構成を管理する手順は次のとおりです。

  1. Google Cloud コンソールで、[Gemini Enterprise] ページに移動します。

    Gemini Enterprise

  2. [アプリ] ページで、ナレッジグラフの構成を更新するアプリをクリックします。

  3. [構成] > [ナレッジグラフ] タブに移動します。

  4. 必要に応じて、[Google Cloud ナレッジグラフ] または [非公開ナレッジグラフ] を切り替えます。

  5. プロンプトや警告を確認したら、[保存] ボタンをクリックします。

ナレッジグラフを有効または無効にすると、次のような影響があります。

  1. Google Cloud ナレッジグラフ:

    • Google Cloud ナレッジグラフを有効にすると、外部ソースから拡充されたデータにアクセスできるようになり、検索コンテキストが広がります。
    • 無効にすると、検索結果が内部データに限定され、外部コンテキストへのアクセスが削除されます。
  2. 非公開ナレッジグラフ:

    • プライベート ナレッジグラフを有効にすると、内部の派生データが再生成され、クエリ アノテーションは最大 1 日後に返されます。
    • 無効にすると、内部の派生データが削除され、クエリ アノテーションが削除されるため、検索の精度とリッチさが低下します。

API

API を使用して Knowledge Graph の設定を変更できます。

  {
    "engine": {
      "name": "projects/<project_id>/locations/<location>/collections/<collection_id>/engines/<engine_id>",
      "knowledge_graph_config": {
        "enable_cloud_knowledge_graph": true,
        "enable_private_knowledge_graph": true
      }
    },
    "update_mask": {
      "paths": "knowledge_graph_config"
    }
  }

検索結果に表示されたナレッジパネル

ナレッジグラフで強化された検索結果が検索アプリケーションにどのように表示されるかを確認できます。パネルベースの検索インターフェースの場合、ナレッジグラフ パネルは、通常の検索結果とともに拡充された情報ボックスとして表示されます。名前、説明、画像、関係などの関連するエンティティの詳細を統合し、より有益でコンテキストに関連性の高い検索エクスペリエンスを提供します。これらの上位表示された結果は、クエリに関連する重要な分析情報をすばやく見つけるのに役立ちます。

次の JSON の例は、API レスポンスで人物パネルがどのように表示されるかを示しています。


      one_box_results: [
        {
          one_box_type: PEOPLE
          search_results: [
            {
              document: {
                name: "projects/<pii data>/locations/global/collections/default_collection/dataStores/people-v17-df-sprint_1731449540556/branches/0/documents/<name>"
                derived_struct_data: {
                  fields: [
                    {
                      key: "management_chain"
                      value: {
                        list_value: {
                          values: [
                            {
                              struct_value: {
                                fields: [
                                  {
                                    key: "person_id"
                                    value: {

                                      string_value: "<persons name>"
                                    }
                                  },
                                  {
                                    key: "job_title"
                                    value: {
                                      string_value: "Account Executive"
                                    }
                                  },
                                  {
                                    key: "name"
                                    value: {
                                      string_value: "<persons name>"
                                    }
                                  }
                                ]
                              }
                            },
                            {
                              struct_value: {
                                fields: [
                                  {
                                    key: "name"
                                    value: {
                                      string_value: "<persons name>"
                                    }
                                  },
                                  {
                                    key: "job_title"
                                    value: {

                                      string_value: "Account Executive"
                                    }
                                  },
                                  {
                                    key: "person_id"
                                    value: {

                                      string_value: "<persons name>"
                                    }
                                  }
                                ]
                              }
                            }

                          ]
                        }
                      }
                    },
                    {

                      key: "teammates_with_same_manager"
                      value: {

                        list_value: {

                          values: [
                            {

                              struct_value: {

                                fields: [
                                  {

                                    key: "person_id"
                                    value: {

                                      string_value: "<persons name>"
                                    }
                                  },
                                  {

                                    key: "job_title"
                                    value: {

                                      string_value: "Account Executive"
                                    }
                                  },
                                  {

                                    key: "name"
                                    value: {

                                      string_value: "<persons name>"
                                    }
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    },
                    {
                      key: "direct_reports"
                      value: {
                        list_value: {
                          values: [
                            {
                              struct_value: {
                                fields: [
                                  {
                                    key: "job_title"
                                    value: {
                                      string_value: "Account Strategist, Lead Generation"
                                    }
                                  },
                                  {
                                    key: "name"
                                    value: {
                                      string_value: "<persons name>"
                                    }
                                  },
                                  {
                                    key: "person_id"
                                    value: {
                                      string_value: "<persons name>"
                                    }
                                  }
                                ]
                              }
                            },
                            {
                              struct_value: {
                                fields: [
                                  {
                                    key: "person_id"
                                    value: {
                                      string_value: "<persons name>"
                                    }
                                  },
                                  {
                                    key: "name"
                                    value: {
                                      string_value: "<persons name>"
                                    }
                                  },
                                  {
                                    key: "job_title"
                                    value: {

                                      string_value: "Account Strategist, Mid-Market Sales, Google Customer Solutions"
                                    }
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          ]
        }
      ]

次の JSON の例は、API レスポンスで組織パネルがどのように表示されるかを示しています。

      {
        one_box_type: ORGANIZATION
        knowledge_graph_results: [
          {
            knowledge_graph_source_type: CLOUD_KG
            context: {
              struct_value: {
                fields: [
                  {
                    key: "@vocab"
                    value: {
                      string_value: "http://schema.org/"
                    }
                  }
                ]
              }
            }
            type: {
              string_value: "ItemList"
            }
            item_list_element: {
              values: [
                {
                  struct_value: {
                    fields: [
                      {
                        key: "result"
                        value: {
                          struct_value: {
                            fields: [
                              {
                                key: "@id"
                                value: {
                                  string_value: "c-025prnpgp"
                                }
                              },
                              {
                                key: "identifier"
                                value: {
                                  list_value: {
                                    values: [
                                      {
                                        struct_value: {
                                          fields: [
                                            {
                                              key: "name"
                                              value: {
                                                string_value: "googleKgMID"
                                              }
                                            },
                                            {
                                              key: "value"
                                              value: {
                                                string_value: "/m/0k8z"
                                              }
                                            },
                                            {
                                              key: "@type"
                                              value: {
                                                string_value: "PropertyValue"
                                              }
                                            }
                                          ]
                                        }
                                      },
                                      {
                                        struct_value: {
                                          fields: [
                                            {
                                              key: "value"
                                              value: {

                                                string_value: "Q312"
                                              }
                                            },
                                            {
                                              key: "@type"
                                              value: {
                                                string_value: "PropertyValue"
                                              }
                                            },
                                            {
                                              key: "name"
                                              value: {

                                                string_value: "wikidataQID"
                                              }
                                            }
                                          ]
                                        }
                                      }
                                    ]
                                  }
                                }
                              },
                              {
                                key: "@type"
                                value: {
                                  list_value: {
                                    values: [
                                      {
                                        string_value: "Corporation"
                                      },
                                      {
                                        string_value: "Thing"
                                      },
                                      {
                                        string_value: "Organization"
                                      }
                                    ]
                                  }
                                }
                              },
                              {
                                key: "name"
                                value: {
                                  string_value: "Apple"
                                }
                              },
                              {
                                key: "detailedDescription"
                                value: {
                                  struct_value: {
                                    fields: [
                                      {
                                        key: "url"
                                        value: {
                                          string_value: "https://en.wikipedia.org/wiki/Apple_Inc."
                                        }
                                      },
                                      {
                                        key: "articleBody"
                                        value: {
                                          string_value: "Apple Inc. is an American multinational corporation and technology company headquartered and incorporated in Cupertino, California, in Silicon Valley. It is best known for its consumer electronics, software, and services. "
                                        }
                                      },
                                      {
                                        key: "license"
                                        value: {

                                          string_value: "https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License"
                                        }
                                      }
                                    ]
                                  }
                                }
                              },
                              {
                                key: "description"
                                value: {
                                  string_value: "Technology company"
                                }
                              },
                              {
                                key: "image"
                                value: {
                                  struct_value: {
                                    fields: [
                                      {
                                        key: "contentUrl"
                                        value: {
                                          string_value: "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcTMHrvLPmr_8yVjoTYsyxhRGtPMcA90bcJl9_RehtJU0tr64KNR"
                                        }
                                      },
                                      {
                                        key: "url"
                                        value: {

                                          string_value: "https://commons.wikimedia.org/wiki/File:Apple_logo_black.svg"
                                        }
                                      }
                                    ]
                                  }
                                }
                              },
                              {
                                key: "url"
                                value: {

                                  string_value: "http://www.apple.com/"
                                }
                              }
                            ]
                          }
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      }

次のステップ

カスタム エンベディングを使用する