放課後のサイエンス

第2回:LLM×ナレッジグラフの境界を探る:ベクトル検索の落とし穴 ——「エンベディングの罠」とマルチエントリー化の軌跡

July 19, 2026 | 3 Minute Read


ARIA-FORGEイメージ図

1.はじめに:繋がったグラフと新たな期待

前回の記事では、22,396ノードに及ぶ巨大なマスターグラフに対し、SentenceTransformerを用いた動的セマンティック統合を適用した軌跡を紹介しました。論文ごとに同じ意味をあらわす用語であっても微妙に表記が異なるため、完全一致によるグラフ統合手法では、同一概念を束ねることができていませんでしたが、この動的統合を用いることで、論文ごとに分断されていた「孤島」のグラフに652のクロス論文クラスタ(1,287のクロス論文因果関係)という「橋」が架かり、高密度なネットワークが構築されました。

ようやく、土台となる知識グラフの品質が極限まで高まりました。いよいよ、ARIA推論エンジンの真価を問う舞台が整いました。本稿(第2回)では、この緻密に再構築されたマスターグラフを用いて実施した 「クロスドメイン推論」の基礎検証(Phase 3) の結果をお伝えします。そして、そこで直面した高次元ベクトル検索特有の致命的な落とし穴、更には、それを打破するための 「マルチエントリーポイント化(Phase 4)」 の実装プロセスについて詳述します。


2.Phase 3 基礎検証:16パターン中「成功わずか1件」の衝撃

構築したグラフネットワーク上で、ARIAエンジンが複数論文を跨いだ仮説生成(クロスドメイン推論)を正しく実行できるかを検証するため、基礎検証を実施した。 テストには、前シリーズでも検証に使った7つのクエリの中から4つのクエリ(q1: V2O5添加MgO焼結、q2_2: MgOの熱サイクル、q4: 複合材料の熱伝導率予測、q6: Al-Alハイブリッドボンディング)を用いました。これらに対し、類似度閾値(Threshold: 0.5 / 0.7)と最大ホップ数(MaxHops: 2 / None)を組み合わせた計16パターンの実験を実行しました。

事前の予想では、グラフの結合性が飛躍的に向上しているため、前回ブログシリーズの結果よりも更に高い成功率が得られるだろうと、楽観していました。しかし、結果は見事なまでに残酷でした。パスの発見に成功したのは、わずか「1件(q4_th0.5_hops2)」のみであり、残る15パターンはすべて推論失敗(パス発見失敗)に終わりました。「何か手続きに不備があるに違いない」と、いろいろ検証しましたが、グラフの読み込みノード数(10,735ノード)やエッジ数(7,249エッジ)は正常であり、システムの稼働自体に問題は見つかりませんでした。にもかかわらず、なぜエンジンはパスを見つけられなかったのでしょうか。

クエリ Threshold MaxHops 結果 備考
q1 (V2O5添加MgO焼結) 0.5 2 “V-doped”, “sintering” がノード名にマッチせず
  0.5 None  
  0.7 2  
  0.7 None  
q2_2 (MgO熱サイクル) 0.5 2 “thermal cycling” がノード名に存在せず
  0.5 None  
  0.7 2  
  0.7 None  
q4 (複合材料熱伝導率) 0.5 2 「MgO」「thermal conductivity」が偶然ヒット
  0.5 None LLM呼び出しのみ(パス未発見)
  0.7 2 類似度閾値の壁
  0.7 None  
q6 (Al-Alボンディング) 0.5 2 “Al-Al bonding”, “aluminum” がグラフに不在
  0.5 None  
  0.7 2  
  0.7 None  
表1:Phase 3 基礎検証の結果(成功率: 1/16 = 6.3%)。グラフの読み込み自体は正常(10,735ノード / 7,249エッジ)であったが、長文丸ごとベクトル検索によりほとんどのケースで適切な探索起点を発見できなかった。

3. 失敗の根本原因1:長文検索が陥る「エンベディングの罠」

失敗ケースのログや推論プロセスを詳細に分析した結果、原著ARIAエンジン(前シリーズで使用したオリジナルのARIAエンジン)が採用している検索方式そのものに、大きなボトルネックが潜んでいることが判明しました。原著のアルゴリズム最大の問題点は、ユーザーが入力した「長文のクエリ」をそのまま丸ごと1つのベクトル(Embedding)に変換し、全ノードとのコサイン類似度計算を使っていることでした。このアプローチは、LLMによるハルシネーションを心配することはなく、一見合理的です。しかし、実際には「Embedding Trap(エンベディングの罠)」と呼ばれる重大な欠陥を抱えています。

長文をそのままベクトル化すると、文章全体の「ドメインの雰囲気や記述スタイル」あるいは「質問者のくせ」がベクトルの向きに強く反映される傾向にあります。その結果、クエリの中に「V-doped」や「thermal cycling」といった極めて重要な専門キーワードが含まれていても、それらの特徴が長文のベクトルの中で「修飾語」などにより薄まってしまいます。結果として、検索システムは、クエリの「雰囲気」に近い特定の論文やノードばかりを検索起点として上位に引き当ててしまい、本当に探索起点とすべき重要なノードを見逃していたのである。このような現象のことを「コンテキスト・トンネリング」と呼びます。唯一成功したq4のケースは、「MgO」や「thermal conductivity」といったキーワードが偶然クエリ長文中に高い頻度で現れていたため、辛うじてヒットしたに過ぎなかったことが分かりました。

例えば、以下の q6 のクエリは約80語の長文です。

"Based on the insights gained from Cu-Cu direct bonding, propose a potential process for low-temperature Al-Al bonding. Specifically, discuss how to overcome the stable Al2O3 native oxide layer compared to Cu-oxides, and what role specific surface activations or intermediate layers might play based on analogous knowledge in the graph."

このクエリを丸ごとベクトル化すると、「bonding process」「surface activation」「analogous knowledge」といった文脈の「枠」を作る単語がベクトルの方向性を支配し、本来検索の核となるべき “Al-Al”“Al2O3” の情報が埋もれてしまいます。結果として、システムは “Al-Al” とは無関係な “Cu-Cu bonding” 関連のノードばかりを上位に引き当て、肝心の探索起点を見失っていたのです。これが「コンテキスト・トンネリング」の実態です。


4.失敗の根本原因2:文字列マッチをすり抜ける「正規化の罠」

さらに、予想外の結果が状況を悪化させていました。ベクトル検索を補完するはずの「キーワード部分一致探索」にも機能不全が生じていたのです。ARIAエンジンの内部には、文字列がノード名に含まれているかを確認するロジック(any(kw in str(n).lower() …))が存在します。しかし、私が構築したナレッジグラフ構築時のデータ前処理(正規化)において、空白や記号を削除しすぎたため(例:”thermal conductivity of MgO” が “thermalconductivityofmgo” へ変換されるなど)、純粋な英単語での部分一致検索が全くヒットしない状態、すなわち「正規化の罠(Normalization Trap)」に陥ってしまっていました。

この2つの罠により、推論エンジンはあたかも「視覚」と「聴覚」を奪われた状態で巨大なナレッジグラフの中を彷徨っていたことになります。グラフが高密度化されたことを喜んでいたのもつかの間、苦々しい思いが頭の中を駆け巡る時間帯が再び訪れました。しかし、原因は明確。やることも一つ。Vibe Codingをフル活用し、コードを改修するのみです。


5. 技術的ブレイクスルー:マルチエントリーポイント化による「複数の着火点」の創出

この致命的な検索ボトルネックを解消するため、Phase 4において検索アーキテクチャの抜本的な改修を実施しました。 まず、正規化の罠を解消するため、ノード名からスペースを除去せず、可読性と検索互換性を保つフォーマットへとパイプラインを改修しました。これまでの処理では『正規化は入れた方がいいよね』程度の考えで行っていたため、正直に言って検討が甘かったです。「神は細部に宿る」という大げさなレベルではありませんが、決して意味のない処理は存在しないということを改めて思い起こすことができた失敗でした。

次いで、最も重要なブレイクスルーは「マルチエントリーポイント検索」を実装したことです。これは、ユーザーの長文クエリをそのままベクトル化するのではなく、前処理としてクエリから「MgO」や「sintering」といった複数の重要なキーワード(エンティティ)を抽出し、ベクトル化する手法です。抽出されたキーワードごとに独立してベクトル類似検索を実行し、ヒットした複数のノードを「探索の起点(着火点)」として一斉にグラフネットワークへ投げ込み検索を行うアーキテクチャを採用しました。最初の間口を広くすることで取りこぼしを少なくする戦略です。

これまでは長文の雰囲気から 「ぼやっとしたベクトルを一つだけ算出」しており、かつ類似度が一致するグラフ中のエントリーポイントも「ほぼ1点」しか期待できませんでした。それが、材料名プロセス名特性名という個別の明確なエントリーポイントから同時に因果の鎖を紡ぎ出す(トラバースする)ことができる検索ロジックへ進化しました。


6. 成果と次なる壁:成功率の大幅改善と「Threshold Wall(閾値の壁)」への直面

マルチエントリーポイント化を実装した新エンジンで再テストを行った結果、推論の成功率は6%(1/16)から69%(11/16)へと劇的な飛躍を遂げました。特に、q1(V2O5添加MgO焼結)や q2_2(MgO熱サイクル)のクエリにおいては、すべての閾値パターンで100%の成功を収め、旧グラフと同等以上のパフォーマンスを叩き出すことができました。

クエリ 旧グラフ(Phase 3前) Phase 3(改修前) Phase 4(改修後)
q1 (V2O5添加MgO焼結) ✅ 100% ❌ 0% 100%
q2_2 (MgO熱サイクル) ✅ 100% ❌ 0% 100%
q4 (複合材料熱伝導率) ✅ 100% ✅ 6.3% (th0.5のみ) 50%
q6 (Al-Alボンディング) ❌(旧でも困難) ❌ 0% 25%
表2:各Phaseにおける4クエリの成功率推移。マルチエントリーポイント化により、Phase 3で完全失敗していたq1・q2_2が旧グラフ同等以上の性能を回復した。

検索エンジンに強化された「視覚」と「聴覚」が復活したことにより、ARIAは遂に広大なグラフの中から正しい知識を引き出せるレベルに達しました。文書で書くとさほど険しい山のように感じないかもしれませんが、個人的に感覚ではかなり苦しい道のりでした。

しかし、検証結果の詳細データは、私たちに「次なる巨大な壁」の存在を冷静に告げていました。 類似度閾値を「0.7」という高水準(高厳格モード)に設定した場合、依然としてパスが見つからないケースが多発する「Threshold Wall(閾値の壁)」問題です。思わず目を背けてしまいたい気分に駆られます。ここで折れては研究者の名折れ。まだまだ頑張ります。

この閾値0.7の壁は、単なる検索アルゴリズムの調整不足なのか、それとも「現在の知識グラフには該当する事実が存在しない」という科学的に正しい真陰性(True Negative)の表れなのか。 次回、第3回「事実(Fact)と類推(Analogy)の境界 —— 二段階ルーティングの実装」では、この閾値の壁を巡る解釈の大転換と、ARIAの真骨頂である「優雅な劣化(知識転移)」をシステムに自律的に判断させるための、推論エンジン独自拡張(Phase 5)の戦いへ突入します。