In the previous two chapters, we saw how to apply a traditional machine learning pipeline to graphs, using either nodes or edges as observations. We have discussed how to create the features to represent nodes and edges based on some node properties and graph structure (communities, node importance, neighborhood).
A graph contains two different types of objects, nodes and edges, and both can be the entity of interest for a given analysis and be represented as vectors. In Chapter 8, Using Graph-Based Features in Machine Learning, we were interested in nodes and studied how to perform some node classification. Similar to text, we can create N×N matrix representations of graphs, where N is the number of nodes, using an adjacency matrix. However, being able to find a lower dimensional vector of node representation while preserving the structure of the graph would be very useful.
In Chapter 9, Predicting Relationships, our observations were edges. Modeling...