COLUMNS コラム

【MIブログ】真の自律型推論AIエージェントへの飛躍第2回:LLM×KGの境界を探る:ベクトル検索の落とし穴 ——「エンベディングの罠」とマルチエントリー化の軌跡

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

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

ようやく、土台となるKnowledge Graph (ナレッジグラフ/KG)の品質が極限まで高まりました。いよいよ、 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() …))が存在します。しかし、私が構築したKG構築時のデータ前処理(正規化)において、空白や記号を削除しすぎたため(例:”thermal conductivity of MgO” が “thermalconductivityofmgo” へ変換されるなど)、純粋な英単語での部分一致検索が全くヒットしない状態、すなわち「正規化の罠(Normalization Trap)」に陥ってしまっていました。

この2つの罠により、推論エンジンはあたかも「視覚」と「聴覚」を奪われた状態で巨大なKGの中を彷徨っていたことになります。グラフが高密度化されたことを喜んでいたのもつかの間、苦々しい思いが頭の中を駆け巡る時間帯が再び訪れました。しかし、原因は明確。やることも一つ。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)の戦いへ突入します。

※本記事に記載されている会社名・製品名・サービス名は、 各社の商標または登録商標です。

 


Profile

EAGLYS株式会社 シニアMIスペシャリスト

今井真一郎/Imai Shinichiro

三菱ケミカル株式会社に新卒で入社。以後約20年以上に渡り、同社で研究開発に従事する。得意分野はリチウムイオン電池の材料開発など。グループ内のシンクタンクで、早期から社内のMI普及に努め、国の研究機関と企業のMIコラボレーションにも参画。2024年よりEAGLYSに移り、ALCHEMISTAの発展に携わっている。

 

一覧に戻る