Node embedding algorithms are usually first implemented by researchers trying to find new ways to represent graphs in a low-dimensional space. There are many people working on this topic using different languages. Hopefully, when it comes to using graph algorithms such as embedding with Python, we can find packages aimed at harmonizing these implementations under a consistent API. Among them, we can quote the following:
- scikit-networks: Within the scikit toolbox, this uses the exact same API as scikit-learn, with fit/transform methods for each algorithm. Graphs need to be represented as adjacency matrices, using either numpy or scipy sparse matrices.
- karateclub: This uses a similar API even if not strictly identical to scikit-learn, except that it is based on the networkx package and its graph representation.
Even if scikit-networks is closer to the scikit-learn API by construction, it contains only a few embedding algorithms so far; that's...