Quick Start =========== Here is a quick-start example that illustrate the pipeline in GraphVite. If ``pytorch`` is not installed, we can simply add ``--no-eval`` to skip the evaluation stage. .. code-block:: bash graphvite baseline quick start The example will automatically download a social network dataset called BlogCatalog, where nodes correspond to blog users. For each node, we learn an embedding vector that preserves its neighborhood structure, which is done by minimizing a reconstruction loss. GraphVite will display the progress and the loss during training. Once the training is done, the learned embeddings are evaluated on link prediction and node classification tasks. For link prediction, we try to predict unseen edges with the embeddings. For node classification, we use the embeddings as inputs for multi-label classification of nodes. Typically, this example takes no more than 1 minute. We will obtain some output like .. code-block:: none Batch id: 6000 loss = 0.371041 ------------- link prediction -------------- AUC: 0.899933 ----------- node classification ------------ macro-F1@20%: 0.242114 micro-F1@20%: 0.391342 Note that the F1 scores may vary across different trials, as only one random split is evaluated for quick demonstration here. The learned embeddings are saved into a pickle dump. We can load them for further use. >>> import pickle >>> with open("line_blogcatalog.pkl", "rb") as fin: >>> model = pickle.load(fin) >>> names = model.graph.id2name >>> embeddings = model.solver.vertex_embeddings >>> print(names[1024], embeddings[1024]) Another interesting example is a synthetic math dataset of arithmetic operations. By treating the operations as relations of a knowledge graph, we can learn embeddings that generalize to unseen triplets (i.e. computation formulas). Check out this example with .. code-block:: bash graphvite baseline math For a more in-depth tutorial about GraphVite, take a look at - :doc:`user/command_line` - :doc:`user/configuration` - :doc:`user/python` - :doc:`user/auto`