Negative_Sampler(G)

Negative sample generator using alias method.

Parameters:
  • G (Graph) –

    Input graph for sampling

Notes

Features:

  • Degree-based sampling
  • Efficient alias tables
  • Graph construction
  • Memory efficient
construct_graph_origin(G)

Construct new graph from random walks.

Parameters:
  • G (Graph) –

    Input graph

Returns:
  • Graph

    Constructed graph from walks

Notes

Processing Steps:

  • Initialize new graph
  • Generate random walks
  • Add edges with weights
  • Update node degrees
sample()

Generate single negative sample.

Returns:
  • int

    Sampled node index

Notes

Processing Steps:

  • Random index selection
  • Alias table lookup
  • Probability comparison
  • Return sample
RandomWalker(G, p=1, q=1, use_rejection_sampling=0)

Random walk generator for graph sampling with node2vec strategy.

Parameters:
  • G (Graph) –

    Input graph for random walks

  • p (float, default: 1 ) –

    Return parameter controlling likelihood of revisiting nodes. Default: 1

  • q (float, default: 1 ) –

    In-out parameter for differentiating between inward and outward nodes. Default: 1

  • use_rejection_sampling (int, default: 0 ) –

    Whether to use rejection sampling strategy. Default: 0

Notes

Features:

  • Biased random walks
  • Flexible walk strategies
  • Efficient sampling
  • Parallel processing support

:param G: :param p: Return parameter,controls the likelihood of immediately revisiting a node in the walk. :param q: In-out parameter,allows the search to differentiate between "inward" and "outward" nodes :param use_rejection_sampling: Whether to use the rejection sampling strategy in node2vec.

get_alias_edge(t, v)

Compute transition probabilities between nodes.

Parameters:
  • t (int) –

    Previous node in walk

  • v (int) –

    Current node in walk

Returns:
  • tuple

    Alias table for edge transitions

Notes

Processing Steps:

  • Calculate unnormalized probabilities
  • Apply p,q parameters
  • Normalize probabilities
  • Create alias table
node2vec_walk(walk_length, start_node)

Generate node2vec walk using alias sampling.

Parameters:
  • walk_length (int) –

    Length of random walk

  • start_node (int) –

    Starting node for walk

Returns:
  • list

    Sequence of nodes in walk

Notes

Processing Steps:

  • Initialize walk from start node
  • Sample neighbors using alias tables
  • Handle transition probabilities
  • Build walk sequence
node2vec_walk2(walk_length, start_node)

Generate node2vec walk using rejection sampling.

Parameters:
  • walk_length (int) –

    Length of random walk

  • start_node (int) –

    Starting node for walk

Returns:
  • list

    Sequence of nodes in walk

Notes

Processing Steps:

  • Calculate rejection bounds
  • Sample transitions
  • Apply rejection criteria
  • Build walk sequence
preprocess_transition_probs()

Preprocessing of transition probabilities for guiding the random walks.

simulate_walks(num_walks, walk_length, workers=1, verbose=0)

Generate multiple random walks.

Parameters:
  • num_walks (int) –

    Number of walks per node

  • walk_length (int) –

    Length of each walk

  • workers (int, default: 1 ) –

    Number of parallel workers. Default: 1

  • verbose (int, default: 0 ) –

    Verbosity level. Default: 0

Returns:
  • list

    List of generated walks

Notes

Processing Steps:

  • Get list of nodes
  • Generate walks for each node
  • Handle parallel processing
  • Collect results
alias_sample(accept, alias)

Sample from alias table.

Parameters:
  • accept (list) –

    Accept probabilities

  • alias (list) –

    Alias indices

Returns:
  • int

    Sampled index

Notes

Processing Steps:

  • Generate random index
  • Compare with accept probability
  • Return sampled index
create_alias_table(area_ratio)

Create alias table for efficient sampling.

Parameters:
  • area_ratio (list) –

    Probability distribution (must sum to 1)

Returns:
  • tuple

    Accept probabilities and alias indices

Notes

Processing Steps:

  • Initialize tables
  • Split into small/large probabilities
  • Balance probabilities
  • Create lookup tables
partition_num(num, workers)

Partition number for parallel processing.

Parameters:
  • num (int) –

    Total number to partition

  • workers (int) –

    Number of workers

Returns:
  • list

    Partitioned numbers per worker

Notes

Processing Steps:

  • Calculate base partition
  • Handle remainder
  • Return distribution