Welcome to the Node Vector Distance documentation!

Node Vector Distance (or NVD) is a Python module to calculate efficiently several node attribute measures.

The library currently provides unique methods to:

  1. Calculate Euclidean distances [generalized-euclidean] and correlations [network-pearson] between pairs of node attributes over the graph, or the variance [graph-variance] of a node attribute.

  2. Generate efficiently useful graph matrix representations such as the pseudoinverse of the Laplacian and the effective resistance matrix.

  3. Integrate with torch and torch-geometric which can lead to perform the above tasks on the GPU, orders of magnitude faster than using standard CPU solutions.

Installing NVD

pip install node_vector_distance

Note, however, that in order to use the GPU capabilities of the library you will need to have a valid installation of torch and torch-geometric. It might be worht having these libraries installed even without GPU integration, as they can sometimes provide faster options even when running on the CPU. As long as those two packages are properly installed, you don’t have to have them run on the GPU to use NVD.

Getting started

You should read first the quick start guide

Reporting bugs / Proposing features

If you encounter a problem, or have a suggestion for a possible improvement, open an issue in the git repository.

References

[generalized-euclidean]

Coscia, Michele. “Generalized Euclidean measure to estimate network distances.” In Proceedings of the international AAAI conference on web and social media, vol. 14, pp. 119-129. 2020. :doi:10.1609/icwsm.v14i1.7284

[network-pearson]

Coscia, Michele. “Pearson correlations on complex networks.” Journal of Complex Networks 9, no. 6 (2021): cnab036. :doi:10.1093/comnet/cnab036

[graph-variance]

Devriendt, Karel, Samuel Martin-Gutierrez, and Renaud Lambiotte. “Variance and covariance of distributions on graphs.” SIAM Review 64, no. 2 (2022): 343-359. :doi:10.1137/20M1361328

Contents: