Expand description
Node2Vec: Scalable Feature Learning for Networks
Reference: Grover & Leskovec (KDD 2016) — https://arxiv.org/abs/1607.00653
§Algorithm Overview
Node2Vec generates node embeddings via biased second-order random walks. Two hyperparameters control the walk bias:
- p (return parameter) – probability of returning to the previous node. High p → DFS-like walk (explores further from source).
- q (in-out parameter) – probability of moving away from the previous node. Low q → BFS-like walk (stays near source).
The algorithm:
- Pre-compute per-edge alias tables for O(1) biased sampling.
- Simulate
num_walkssecond-order random walks of lengthwalk_lengthfrom every node. - Train a simplified skip-gram model on the walk corpus to produce
embedding_dim-dimensional embeddings.
§Implementation Notes
- No external ML or linear-algebra crates are required.
- Random number generation uses
scirs2_core::randomper project policy. - All unsafe code is avoided; heavy loops use Rust iterators.
Structs§
- Node2
VecConfig - Full Node2Vec configuration (walks + skip-gram training).
- Node2
VecEmbedder - Node2Vec graph embedding generator.
- Node2
VecEmbeddings - Computed Node2Vec embeddings.
- Node2
VecWalk Config - Configuration for the random-walk phase of Node2Vec.