Skip to main content

Module node2vec

Module node2vec 

Source
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:

  1. Pre-compute per-edge alias tables for O(1) biased sampling.
  2. Simulate num_walks second-order random walks of length walk_length from every node.
  3. 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::random per project policy.
  • All unsafe code is avoided; heavy loops use Rust iterators.

Structs§

Node2VecConfig
Full Node2Vec configuration (walks + skip-gram training).
Node2VecEmbedder
Node2Vec graph embedding generator.
Node2VecEmbeddings
Computed Node2Vec embeddings.
Node2VecWalkConfig
Configuration for the random-walk phase of Node2Vec.