Technical requirementsWhy do we need embedding?Why is embedding needed?One-hot encodingCreating features for words – the manual wayEmbedding specificationsThe graph embedding landscapeAdjacency-based embeddingThe adjacency matrix and graph LaplacianEigenvectors embeddingLocally linear embeddingSimilarity-based embeddingHigh-Order Proximity preserved Embedding (HOPE)Computing node embedding with PythonCreating a networkx graphThe Neo4j test graphExtracting the edge list data from Neo4jCreating a networkx graph matrix from pandasFitting a node embedding algorithmExtracting embeddings from artificial neural networksArtificial neural networks in a nutshellA reminder about neural network principlesNeurons, layers, and forward propagationDifferent types of neural networksSkip-graph modelFake taskInputWord representation before embeddingTargetHidden layerOutput layerDeepWalk node embeddingGenerating node context through random walksGenerating random walks from the GDSDeepWalk embedding with karateclubNode2vec, a DeepWalk alternativeNode2vec from the GDS (≥ 1.3)Getting the embedding results from PythonGraph neural networks Extending the principles of CNNs and RNNs to build GNNsMessage propagation and aggregationTaking into account node propertiesApplications of GNNsImage analysisVideo analysisZero-shot learningText analysisAnd there's more...Using GNNs in practiceGNNs from the GDS – GraphSAGEGoing further with graph algorithmsState-of-the-art graph algorithmsSummaryQuestionsFurther reading