Open llms.txtCopy tools
CartoBoost Node2Vec Graph Models
Use Node2Vec when graph topology is the signal: which nodes connect, how directed flow moves through the graph, and which source-target pairs appear in similar neighborhoods. Node attributes are optional; the model learns from the edge structure itself.
When To Use
- Flow or co-occurrence patterns matter more than node-level attributes.
- Rows are attached to a source node, or to a directed source-target pair.
- You need a graph regressor or link predictor that can be saved and loaded.
- The validation split can distinguish train-side topology from held-out labels or held-out edges.
Interactive Example
Node2Vec graph browser model
Runs node2vec in the browser with the bundled CartoBoost Wasm model.
Ready to run in this page.
Python Example
Regressor
import numpy as np
from cartoboost.graph import Node2VecStandaloneRegressor
edges = [(0, 1), (1, 2), (2, 3), (3, 0), (0, 2)]
source = np.array([0, 1, 2, 3], dtype=np.uint64)
target = np.array([1, 2, 3, 0], dtype=np.uint64)
dense = np.array([[4.2, 8], [2.0, 9], [7.1, 17], [3.5, 22]], dtype=float)
y = np.array([2.1, 1.6, 2.8, 1.9])
model = Node2VecStandaloneRegressor(dim=8, epochs=2, n_estimators=40, seed=11)
model.fit(
node_count=4,
edges=edges,
row_nodes=source,
row_targets=target,
dense=dense,
y=y,
)
pred = model.predict(source, row_targets=target, dense=dense)
model.save("node2vec-regressor.json")
Link Predictor
from cartoboost.graph import Node2VecLinkPredictor
predictor = Node2VecLinkPredictor(dim=8, walk_length=8, walks_per_node=4, epochs=2)
predictor.fit(node_count=4, edges=edges)
candidate_pairs = [(0, 1), (0, 3), (3, 2)]
scores = predictor.predict_scores(candidate_pairs)
report = predictor.report(candidate_pairs, labels=[1, 1, 0], query_ids=[0, 0, 3], k=2)
Use When
| Need | Better first choice |
|---|---|
| Graph topology is the main signal. | Node2VecStandaloneRegressor or Node2VecLinkPredictor |
| Node attributes should drive representation learning. | GraphSAGE |
| Relation ids matter. | HeteroGraphSAGE |
| Node types and relation triples matter. | HinSAGE |
Validation
If the browser or Python workflow builds embeddings from validation edges, call that transductive scoring. For deployment-style evidence, build the graph from train-side edges, then score held-out labels or candidate pairs separately.
Limitations
- Node2Vec uses topology, not node attributes or calibrated uncertainty.
- Unseen nodes have no learned walk embedding.
- Results depend on graph construction, direction, weights, walk settings, and seed.