feat(gnn): Integrate attention mechanisms into GNN layer #39
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR integrates the
ruvector-attentioncrate intoruvector-gnn, providing pluggable attention mechanisms for enhanced search and GNN operations.Closes #38
Key Changes
AttentionBackend Trait: Unified interface for all attention mechanisms
6 Attention Backends:
StandardAttention- Scaled dot-product attention (default)HyperbolicAttention- Poincaré ball distance for hierarchical dataDualSpaceAttention- Combined Euclidean + Hyperbolic geometryEdgeFeaturedAttention- GATv2-style graph attention with edge featuresFlashAttention- Memory-efficient tiled computationMoEAttention- Mixture of experts with routingEnhanced Search Functions:
differentiable_search_v2()- Attention-enhanced similarity searchhierarchical_forward_v2()- Attention-based hierarchical GNN navigationFeature Flags for modular compilation:
attention- Base attention supporthyperbolic- Hyperbolic geometry supportedge-featured- Edge-featured attention (GATv2)flash-attention- Flash attentionmoe- Mixture of expertsfull-attention- All attention featuresNAPI Bindings updated for Node.js with v2 search functions
Benefits
Usage Example (Rust)
Usage Example (Node.js)
Test Plan
--features full-attention🤖 Generated with Claude Code