知識グラフ埋め込み(KGE、英: Knowledge graph embedding)は、知識表現学習(KRL)や多関係学習とも呼ばれ、知識グラフのエンティティと関係を、その意味を保持したまま低次元表現で学習する機械学習タスクである。記号的なグラフデータを密な数値ベクトルに変換することで、KGEは知識グラフをリンク予測、トリプル分類、エンティティ認識、クラスタリング、関係抽出などの様々なアプリケーションで利用可能にする。このアプローチは、より広い表現学習の分野に属し、現代のArtificial intelligenceシステムで用いられるMachine learning技術と密接に関連している。
知識グラフは、エンティティ、関係、事実の集合として形式的に定義され、各事実は2つのエンティティ間のリンクを示すトリプル(主語、述語、目的語)である。この構造は、Resource Description Framework(RDF)表記を用いて表現されることが多い。知識グラフは、ドメイン固有の知識を構造化された形で表現し、洗練後に新たな知識の推論を可能にする。しかし、実世界のアプリケーションでは、データの疎性と計算効率の低下という課題に直面する。KGEは、各エンティティと関係を選択された次元のベクトルに埋め込むことで、効率的な計算と一般化を可能にし、これらの課題に対処する。
知識グラフの埋め込みは、各エンティティと関係を所定の次元(埋め込み次元と呼ばれる)のベクトルに変換する関数である。エンティティと関係を異なる次元で埋め込むことも可能である。得られた埋め込みベクトルは、下流タスクに使用できる。知識グラフ埋め込みは、4つの側面で特徴付けられる。すなわち、表現空間(エンティティと関係の低次元空間)、スコアリング関数(トリプル埋め込みの良さを測る指標)、エンコーディングモデル(埋め込み表現がどのように相互作用するか)、追加情報(表現を豊かにする任意の追加グラフデータで、多くの場合、アドホックなスコアリング関数を通じて統合される)である。
埋め込み手順
知識グラフ埋め込みを作成するすべてのアルゴリズムは、共通のアプローチに従う。まず、埋め込みベクトルがランダムな値に初期化される。次に、トリプルのトレーニングセットを使用して、それらは反復的に最適化される。各反復では、トレーニングセットからトリプルのバッチがサンプリングされ、主語または目的語(またはその両方)を別のエンティティに置き換えることで破損トリプルが生成され、偽の事実が作成される。元のトリプルと破損トリプルがトレーニングバッチに追加され、スコアリング関数を最適化することで埋め込みが更新される。反復は、通常トレーニングセットの過学習に基づく停止条件に達したときに終了する。最後に、学習された埋め込みは、トレーニングトリプルから意味情報を抽出し、未見の真の事実を正しく予測できるはずである。
一般的な手順は、擬似コードで要約できる。トレーニングセット、エンティティセット、関係セット、および埋め込み次元が与えられると、アルゴリズムは埋め込みをランダムに初期化する。停止条件が満たされない間、トレーニングセットからバッチをサンプリングする。バッチ内の各トリプルについて、破損した事実をサンプリングし、元のトリプルと破損トリプルの両方をトレーニングバッチに追加する。次に、真のトリプルと破損したトリプルの妥当性を測定するスコアリング関数を最小化するように、埋め込みが更新される。
スコアリング関数とモデル
スコアリング関数はKGEの中心であり、トリプルの埋め込み表現の良さを評価する。異なるモデルは、異なるスコアリング関数とエンコーディングメカニズムを提案している。TransEなどの初期のモデルは、関係を埋め込み空間内の変換として表現し、主語ベクトルと関係ベクトルの合計が目的語ベクトルに近似する必要がある。DistMultやComplExなどの他のモデルは、双線形または複素数値のスコアリング関数を使用して、より豊かな相互作用を捉える。より最近のアプローチでは、Neural networkアーキテクチャ、Deep learningモデルを含む、非線形埋め込みを学習するものを取り入れている。これらのモデルは、表現空間がユークリッド空間から複素空間や双曲空間まで様々であり、異なる関係タイプを処理する能力も異なる。
エンコーディングモデルは、エンティティと関係の埋め込みがどのように相互作用するかを定義する。一部のモデルは加法的または乗法的な相互作用を使用し、他のモデルはテンソル分解やニューラルネットワーク層を採用する。スコアリング関数とエンコーディングモデルの選択は、埋め込みの表現力と計算効率に影響を与える。例えば、表現力が高いモデルは複雑な関係パターンを捉えることができるが、より多くのトレーニングデータと計算が必要になる場合がある。この分野では継続的な発展が見られ、より新しいモデルは、パフォーマンスを向上させるために、エンティティタイプ、テキスト記述、時間的制約などの追加情報を統合している。
アプリケーション
知識グラフ埋め込みは、幅広いアプリケーションを可能にする。リンク予測は主要なタスクであり、モデルがエンティティ間の欠落したリンクを予測し、不完全な知識グラフの補完に役立つ。トリプル分類は、特定のトリプルが真か偽かを判断し、事実の検証に役立つ。エンティティ認識とクラスタリングは、埋め込みを利用して類似したエンティティをグループ化したり、テキスト内のエンティティを識別したりする。関係抽出は、非構造化データ内のエンティティ間の関係を識別するために埋め込みを使用する。これらのアプリケーションは、知識グラフが構造化された事実情報を提供するLarge language modelトレーニングや、知識に対する推論を必要とするGenerative AIシステムなどの分野で重要である。
実際には、KGEは推薦システム、質問応答、創薬に応用されている。例えば、埋め込みはユーザーとアイテムの相互作用や分子構造を表現し、効率的な類似性検索を可能にする。低次元ベクトルは標準的なMachine learningパイプラインとも互換性があり、他のモデルとの統合を可能にする。2020年代前半の時点で、KGE技術はGoogle DeepMindやOpenAIなどの企業の産業システムに組み込まれており、推論の強化のためにTransformer (architecture)アーキテクチャと組み合わせられることが多い。
課題と今後の方向性
その成功にもかかわらず、KGEはいくつかの課題に直面している。実世界の知識グラフにおけるデータの疎性は、多くのエンティティと関係が観測されたトリプルをほとんど持たないため、学習された埋め込みの品質を制限する。スケーラビリティももう一つの問題であり、大規模なグラフでのトレーニングにはかなりの計算リソースが必要である。時間的または不確実な事実など、多関係で不均一なデータを扱うことは、依然として活発な研究領域である。さらに、埋め込みの評価は自明ではなく、標準的なベンチマークが意味保持のすべての側面を捉えられない場合がある。
今後の方向性としては、より解釈可能な埋め込みの開発、外部知識ソースの組み込み、ノイズの多いデータに対する堅牢性の向上が含まれる。研究では、Neural networkモデルや、Residual Network (ResNet)やU-NetアーキテクチャのようなモデルとのKGEの統合も探求されているが、これらは他の分野でより一般的である。Data Augmentation技術やCurriculum Learning戦略の使用は、疎性に対処するのに役立つ可能性がある。Artificial intelligenceシステムがより知識駆動型になるにつれて、KGEは機械が構造化情報を理解し推論することを可能にする上で、ますます重要な役割を果たす可能性が高い。