embedding-fusion-strategy について
知識グラフの埋め込み戦略を設計するスキルです。下流タスクに応じた粒度、意味・構造の手法、融合方法を選び、仕様書にまとめます。
主な機能
- 01グラフデータとタスク要件の整理
- 02ノードからコミュニティまでの粒度選択
- 03意味・構造手法の選定
- 045種類の融合方法の比較
- 05戦略仕様書の作成
活用シーン
- 01エンティティ検索用埋め込みの計画
- 02グラフのリンク予測表現の設計
- 03検索向けのテキストとトポロジーの融合
- 04埋め込み、インデックス、更新方法の仕様化
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ lyndonkl/ claude --skill embedding-fusion-strategyインストール後、Claude Code で/embedding-fusion-strategyを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
resources/embedding-catalog.mdmethodology.mdresources/evaluators/rubric_embedding_strategy.json詳細
目次
埋め込み融合戦略
ワークフロー
このチェックリストをコピーし、各ステップに沿って進めてください。
Embedding Fusion Strategy Progress:
- [ ] Step 1: Identify available features and data sources
- [ ] Step 2: Determine task requirements and success criteria
- [ ] Step 3: Select granularity level(s)
- [ ] Step 4: Choose semantic embedding approach
- [ ] Step 5: Choose structural embedding approach
- [ ] Step 6: Design fusion strategy
- [ ] Step 7: Produce embedding strategy specification
ステップ 1:利用可能な特徴とデータソースを特定する
ナレッジグラフにどのようなシグナルが存在するかを調査します。ノードのテキスト属性(名前、説明、型)、エッジのラベルとプロパティ、グラフのトポロジー(密度、直径、異質性)、利用可能な外部テキストコーパスや事前学習済みモデルなどです。元となるデータを把握することで、実現可能な埋め込みが決まります。埋め込みタイプの全分類については、resources/methodology.mdを参照してください。
ステップ 2:タスク要件と成功基準を決定する
下流タスクを明確にします。エンティティ検索、リンク予測、質問応答、ノード分類、レコメンデーション、サブグラフ照合などです。タスクごとに適した粒度や融合アプローチは異なります。評価指標(MRR、Hits@K、F1、レイテンシの予算)を設定してください。タスクとアプローチの対応付け、および選択基準については、resources/methodology.mdを参照してください。
ステップ 3:粒度レベルを選択する
粒度の選択ガイドを使って、埋め込むグラフのレベルを選択します。複数の粒度を組み合わせる戦略もよく用いられます(例:検索にはノード埋め込みを使い、再ランキングにはサブグラフ埋め込みを使う)。各レベルの具体的な手法については、resources/embedding-catalog.mdを参照してください。
ステップ 4:セマンティック埋め込みアプローチを選択する
テキストベースの意味を捉える方法を選択します。豊かな文脈埋め込みにはLLMエンコーダー、効率的な文レベルの類似度にはSentence-BERT、文脈を考慮したセマンティクスには近傍のテキスト説明を使用できます。計算予算と鮮度の要件に合わせてアプローチを選んでください。セマンティックアプローチの詳細とトレードオフについては、resources/methodology.mdを参照してください。
ステップ 5:構造的埋め込みアプローチを選択する
グラフのトポロジーを捉える方法を選択します。柔軟な近傍サンプリングにはNode2Vec、一様なランダムウォークにはDeepWalk、未知のノードに対する帰納的学習にはGraphSAGE、グラフ内の役割を捉えるには位置エンコーディングを使用できます。グラフの密度と更新頻度に合わせてアプローチを選んでください。構造的手法の全カタログについては、resources/embedding-catalog.mdを参照してください。
ステップ 6:融合戦略を設計する
融合アプローチのいずれかを使って、セマンティック埋め込みと構造的埋め込みを組み合わせます。主な検討事項は、早期融合と後期融合のどちらにするか、アライメント学習、次元管理、エンティティごとに複数のベクトルを保持するかどうかです。動的方式と静的方式のトレードオフやストレージに関する考慮事項を含む、融合設計の詳しい方法論については、resources/methodology.mdを参照してください。
ステップ 7:埋め込み戦略の仕様を作成する
出力テンプレートを使って、設計全体を文書化します。埋め込みの次元数、学習手順、インデックス戦略、更新の仕組みを記載してください。resources/evaluators/rubric_embedding_strategy.jsonを使って自己評価します。最低基準は、平均スコアが3.0以上であることです。
粒度の選択ガイド
| 粒度 | 説明 | ユースケース |
|---|---|---|
| ノード | テキスト属性と局所的な構造コンテキストを組み合わせて、個々のエンティティを埋め込みます | エンティティ検索、ノード分類、エンティティリンキング、レコメンデーション |
| エッジ | 関係タイプ、端点のコンテキスト、エッジのプロパティを含む関係を埋め込みます | リンク予測、関係分類、トリプル検証 |
| パス | マルチホップパターンとメタパスの意味を捉えるノードとエッジのシーケンスを埋め込みます | マルチホップ推論、経路の発見、説明可能な検索 |
| サブグラフ | コミュニティ構造を捉える局所的な近傍(エゴネットワーク、モチーフ)を埋め込みます | サブグラフマッチング、異常検知、コミュニティを考慮した検索 |
| コミュニティ | 高レベルのグラフ領域を要約するクラスターまたは分割を埋め込みます | トピックモデリング、粗粒度検索、階層ナビゲーション |
融合アプローチ
連結
意味ベクトルと構造ベクトルを連結して組み合わせます:v_fused = [v_semantic; v_structural]。シンプルで情報をすべて保持できますが、次元数が2倍になり、両方のシグナルを独立したものとして扱います。
使用する場面:ベースラインのアプローチ、迅速なプロトタイピング、下流モデルに重み付けを学習させられる場合。
アテンションベースの融合
意味的要素と構造的要素の重み付けを学習します:v_fused = alpha * v_semantic + (1 - alpha) * v_structural。ここで、alpha はエンティティごと、またはクエリごとに学習されます。モデルは最も有益なシグナルを強調できます。
使用する場面:意味情報と構造情報の相対的な重要度が、エンティティやクエリによって異なる場合。
対照的アライメント
対照損失(InfoNCE など)を使用して、同じエンティティの意味埋め込みと構造埋め込みが一致するように学習します。両方のビューが一致する共有埋め込み空間を生成し、クロスモーダル検索を可能にします。
使用する場面:統一された単一の空間が必要な場合、クロスモーダル検索を行う場合、またはアライメント用のトレーニングデータが利用できる場合。
レイトフュージョン/再ランキング
バイエンコーダー(意味情報と構造情報を別々に検索)を使用し、その後、両方のシグナルをまとめて考慮するクロスエンコーダーで再ランキングします。高速な候補生成と精密なスコアリングを分離できます。
使用する場面:クエリ時の完全な融合のコストが高すぎる大規模検索や、2段階パイプラインを実行できるレイテンシ予算がある場合。
マルチベクトル表現
エンティティごとに複数の埋め込み(意味的な側面、構造的な役割、コンテキストごとのバリエーション)を保持します。max-sim またはアテンションプーリングを使い、最も関連性の高い側面とクエリを照合します。
使用する場面:複数の役割や意味を持つエンティティ、ファセット検索、単一のベクトルでは情報が失われすぎる場合。
出力テンプレート
EMBEDDING STRATEGY SPECIFICATION
=================================
Domain: [Knowledge graph domain and scale]
Task: [Primary downstream task(s)]
Success Metrics: [MRR, Hits@K, latency, etc.]
Granularity Level(s): [Node / Edge / Path / Subgraph / Community]
Semantic Approach:
- Method: [LLM encoder / Sentence-BERT / Description-based / etc.]
- Input: [What text is embedded]
- Dimension: [embedding size]
- Model: [specific model name/version]
- Update frequency: [static / periodic / real-time]
Structural Approach:
- Method: [Node2Vec / DeepWalk / GraphSAGE / Positional / etc.]
- Parameters: [walk length, dimensions, neighborhood size, etc.]
- Dimension: [embedding size]
- Update frequency: [static / periodic / incremental]
Fusion Strategy:
- Method: [Concatenation / Attention / Contrastive / Late Fusion / Multi-Vector]
- Final dimension: [fused embedding size]
- Alignment training: [loss function, training procedure if applicable]
- Rationale: [why this fusion approach for this task]
Indexing & Storage:
- Index type: [HNSW / IVF / flat / etc.]
- Vector database: [if applicable]
- Approximate nearest neighbor parameters: [ef, nprobe, etc.]
- Storage estimate: [total size]
Update & Maintenance:
- Recomputation strategy: [full retrain / incremental / streaming]
- Staleness tolerance: [how old before recompute]
- Incremental update mechanism: [if applicable]
NEXT STEPS:
- Implement embedding pipeline
- Train fusion/alignment if applicable
- Build ANN index and benchmark retrieval quality
- Validate end-to-end on downstream task
- Monitor embedding drift in production