The Metapath2Vec class implements the Metapath2Vec algorithm to generate node embeddings from graph structures using metapath-based random walks.
Workflow:
- Walker Generation: It uses
MetaPathWalker to generate metapath walks. If a file matching the specified parameters already exists in args.input_path, it loads it; otherwise, it generates new walks and saves them. - Data Loading: It uses
DataReader to process the walks based on args.min_count and args.care_type. - Training: It initializes a
SkipGramModel (or SkipGramModelAux if args.CSP_train is enabled) and trains it using a DataLoader. - Output: The resulting embeddings are saved as a
.pickle file.
Modes:
- Normal SkipGram: Standard embedding training.
- SkipGram with CSP: If
args.CSP_train is set to True, it uses SkipGramModelAux which includes an auxiliary loss component controlled by args.CSP_coef.
from graph2vec import Metapath2Vec
# Assuming 'args' is a configured Namespace object containing:
# input_path, idx_metapath, which_metapath, num_walks, len_metapath,
# min_count, care_type, window_size, batch_size, num_workers, dim,
# iterations, initial_lr, CSP_train, CSP_coef, CSP_save, output_path, idx_embed
model = Metapath2Vec(args, graph)
model.train()