abstract: The creation of social ties is largely determined by the entangled effects of people's similarities in terms of individual characters and friends. However, feature and structural characters of people usually appear to be correlated, making it difficult to determine which has greater responsibility in the formation of the emergent network structure. We propose *AN2VEC*, a node embedding method which ultimately aims at disentangling the information shared by the structure of a network and the features of its nodes. Building on the recent developments of Graph Convolutional Networks (GCN), we develop a multitask GCN Variational Autoencoder where different dimensions of the generated embeddings can be dedicated to encoding feature information, network structure, and shared feature-network information. We explore the interaction between these disentangled characters by comparing the embedding reconstruction performance to a baseline case where no shared information is extracted. We use synthetic datasets with different levels of interdependency between feature and network characters and show (i) that shallow embeddings relying on shared information perform better than the corresponding reference with unshared information, (ii) that this performance gap increases with the correlation between network and feature structure, and (iii) that our embedding is able to capture joint information of structure and features. Our method can be relevant for the analysis and prediction of any featured network structure ranging from online social systems to network medicine.
author: Sébastien Lerique[^1]; Jacob Levy Abitbol; Márton Karsai
bibliography: an2vec.bib
title: Joint embedding of structure and features via graph convolutional networks

# Introduction

Although it is relatively easy to obtain the proxy social network and various individual features for users of online social platforms, the combined characterisation of these types of information is still challenging our methodology. While current approaches have been able to approximate the observed marginal distributions of node and network features separately, their combined consideration was usually done via summary network statistics merged with otherwise independently built feature sets of nodes. However, the entanglement between structural patterns and feature similarities appears to be fundamental to a deeper understanding of network formation and dynamics. The value of this joint information then calls for the development of statistical tools for the learning of combined representation of network and feature information and their dependencies.

The formation of ties and mesoscopic structures in online social networks is arguably determined by several competing factors. Considering only network information, neighbour similarities between people are thought to explain network communities, where triadic closure mechanisms  induce ties between peers with larger fractions of common friends . Meanwhile, random bridges  are built via focal closure mechanisms, optimising the structure for global connectedness and information dissemination. At the same time, people in the network can be characterised by various individual features such as their socio-demographic background , linguistic characters , or the distributions of their topics of interests , to mention just a few. Such features generate homophilic tie creation preferences , which induce links with higher probability between similar individuals, whom in turn form feature communities of shared interest, age, gender, or socio-economic status, and so on . Though these mechanisms are not independent and lead to correlations between feature and network communities, it is difficult to define the causal relationship between the two: first, because simultaneously characterising similarities between multiple features and a complex network structure is not an easy task; second, because it is difficult to determine, which of the two types of information, features or structure, is driving network formation to a greater extent. Indeed, we do not know what fraction of similar people initially get connected through homophilic tie creation, versus the fraction that first get connected due to structural similarities before influencing each other to become more similar .

Over the last decade popular methods have been developed to characterise structural and feature similarities and to identify these two notions of communities. The detection of network communities has been a major challenge in network science with various concepts proposed  to solve it as an unsupervised learning task . Commonly, these algorithms rely solely on network information, and their output is difficult to cross-examine without additional meta-data, which is usually disregarded in their description. On the other hand, methods grouping similar people into feature communities typically ignore network information, and exclusively rely on individual features to solve the problem as a data clustering challenge . Some semi-supervised learning tasks, such as link prediction, may take feature and structural information simultaneously into account, but only by enriching individual feature vectors with node-level network characteristics such as degree or local clustering . Methods that would take higher order network correlations and multivariate feature information into account at the same time are still to be defined. Their development would offer huge potential in understanding the relation between individuals' characters, their social relationships, the content they are engaged with, and the larger communities they belong to. This would not only provide us with deeper insight about social behaviour, it would give us predictive tools for the emergence of network structure, individual interests and behavioural patterns.

In this paper we propose a contribution to solve this problem by developing a joint feature-network embedding built on multitask Graph Convolutional Networks  and Variational Autoencoders (GCN-VAE) , which we call the Attributed Node to Vector method (AN2VEC). In our model, different dimensions of the generated embeddings can be dedicated to encode feature information, network structure, or shared feature-network information separately. Unlike previous embedding methods dealing with features , this interaction model  allows us to explore the dependencies between the disentangled network and feature information by comparing the embedding reconstruction performance to a baseline case where no shared information is extracted. Using this method, we can identify an optimal reduced embedding, which indicates whether combined information coming from the structure and features is important, or whether their non-interacting combination is sufficient for reconstructing the featured network.

In practice, as this method solves a reconstruction problem, it may give important insights about the combination of feature- and structure-driven mechanisms which determine the formation of a given network. As an embedding, it is useful to identify people sharing similar individual and structural characters. And finally, by measuring the optimal overlap between feature– and network-associated dimensions, it can be used to verify network community detection methods to see how well they identify communities explained by feature similarities.

In what follows, after summarising the relevant literature, we introduce our method and demonstrate its performance on synthetic featured networks, for which we control the structural and feature communities as well as the correlations between the two. As a result, we will show that our embeddings, when relying on shared information, outperform the corresponding reference without shared information, and that this performance gap increases with the correlation between network and feature structure since the method can capture the increased joint information. Next, we extensively explore the behaviour of our model on link prediction and node classification on standard benchmark datasets, comparing it to well-known embedding methods. Finally, we close our paper with a short summary and a discussion about potential future directions for our method.

# Related Work

The advent of increasing computational power coupled with the continuous release and ubiquity of large graph-structured datasets has triggered a surge of research in the field of network embeddings. The main motivation behind this trend is to be able to convert a graph into a low-dimensional space where its structural information and properties are maximally preserved . The aim is to extract unseen or hard to obtain properties of the network, either directly or by feeding the learned representations to a downstream inference pipeline.

## Graph embedding survey: from matrix factorisation to deep learning

In early work, low-dimensional node embeddings were learned for graphs constructed from non-relational data by relying on matrix factorisation techniques. By assuming that the input data lies on a low dimensional manifold, such methods sought to reduce the dimensionality of the data while preserving its structure, and did so by factorising graph Laplacian eigenmaps  or node proximity matrices .

More recent work has attempted to develop embedding architectures that can use deep learning techniques to compute node representations. DeepWalk , for instance, computes node co-occurrence statistics by sampling the input graph via truncated random walks, and adopts a SkipGram neural language model to maximise the probability of observing the neighbourhood of a node given its embedding. By doing so the learned embedding space preserves second order proximity in the original graph. However, this technique and the ones that followed  present generalisation caveats, as unobserved nodes during training cannot be meaningfully embedded in the representation space, and the embedding space itself cannot be generalised between graphs. Instead of relying on random walk-based sampling of graphs to feed deep learning architectures, other approaches have used the whole network as input to autoencoders in order to learn, at the bottleneck layer, an efficient representation able to recover proximity information . However, the techniques developed herein remained limited due to the fact that successful deep learning models such as convolutional neural networks require an underlying euclidean structure in order to be applicable.

## Geometric deep learning survey: defining convolutional layers on non-euclidean domains

This restriction has been gradually overcome by the development of graph convolutions or Graph Convolutional Networks (GCN). By relying on the definition of convolutions in the spectral domain, Bruna et al.  defined spectral convolution layers based on the spectrum of the graph Laplacian. Several modifications and additions followed and were progressively added to ensure the feasibility of learning on large networks, as well as the spatial localisation of the learned filters . A key step is made by  with the use of Chebychev polynomials of the Laplacian, in order to avoid having to work in the spectral domain. These polynomials, of order up to $r$, generate localised filters that behave as a diffusion operator limited to $r$ hops around each vertex. This construction is then further simplified by Kipf and Welling by assuming among others that $r\approx2$ .

Recently, these approaches have been extended into more flexible and scalable frameworks. For instance, Hamilton et al.  extended the original GCN framework by enabling the inductive embedding of individual nodes, training a set of functions that learn to aggregate feature information from a node's local neighborhood. In doing so, every node defines a computational graph whose parameters are shared for all the graphs nodes.

More broadly, the combination of GCN with autoencoder architectures has proved fertile for creating new embedding methods. The introduction of probabilistic node embeddings, for instance, has appeared naturally from the application of variational autoencoders to graph data , and has since led to explorations of the uncertainty of embeddings , of appropriate levels of disentanglement and overlap , and of better representation spaces for measuring pairwise embedding distances (see in particular recent applications of the Wasserstein distance between probabilistic embeddings ). Such models consistently outperform earlier techniques on different benchmarks and have opened several interesting lines of research in fields ranging from drug design  to particle physics . Most of the more recent approaches mentioned above can incorporate node features (either because they rely on them centrally, or as an add-on). However, with the exception of DANE , they mostly do so by assuming that node features are an additional source of information, which is congruent with the network structure (e.g. multi-task learning with shared weights , or fusing both information types together ). That assumption may not hold in many complex datasets, and it seems important to explore what type of embeddings can be constructed when we lift it, considering different levels of congruence between a network and the features of its nodes.

We therefore set out to make a change to the initial GCN-VAE in order to: (i) create embeddings that are explicitly trained to encode both node features and network structure; (ii) make it so that these embeddings can separate the information that is shared between network and features, from the (possibly non-congruent) information that is specific to either network or features; and (iii) be able to tune the importance that is given to each type of information in the embeddings.

# Methods

In this section we present the architecture of the neural network model we use to generate shared feature-structure node embeddings[^2]. We take a featured network as input, with structure represented as an adjacency matrix and node features represented as vectors (see below for a formal definition). Our starting point is a GCN-VAE, and our first goal is a multitask reconstruction of both node features and network adjacency matrix. Then, as a second goal, we tune the architecture to be able to scale the number of embedding dimensions dedicated to feature-only reconstruction, adjacency-only reconstruction, or shared feature-adjacency information, while keeping the number of trainable parameters in the model constant.

## Multitask graph convolutional autoencoder

We begin with the graph-convolutional variational autoencoder developed by , which stacks graph-convolutional (GC) layers in the encoder part of a variational autoencoder to obtain a lower dimensional embedding of the input structure. This embedding is then used for the reconstruction of the original graph (and in our case, also of the features) in the decoding part of the model. Similarly to , we use two GC layers in our encoder and generate Gaussian-distributed node embeddings at the bottleneck layer of the autoencoder. We now introduce each phase of our embedding method in formal terms.

### Encoder

We are given an undirected unweighted feautured graph $\mathcal{G} = (\mathcal{V}, \mathcal{E})$, with $N = |\mathcal{V}|$ nodes, each node having a $D$-dimensional feature vector. Loosely following the notations of , we note $\mathbf{A}$ the graph's $N \times N$ adjacency matrix (diagonal elements set to $0$), $\mathbf{X}$ the $N \times D$ matrix of node features, and $\mathbf{X}_i$ the D-dimensional feature vector of a node $i$.

The encoder part of our model is where $F$-dimensional node embeddings are generated. It computes $\bm{\mu}$ and $\bm{\sigma}$, two $N \times F$ matrices, which parametrise a stochastic embedding of each node: $$\bm{\mu} = \mathop{\mathrm{GCN}}_{\bm{\mu}}(\mathbf{X}, \mathbf{A})
\quad \text{and} \quad
\log\bm{\sigma} = \mathop{\mathrm{GCN}}_{\bm{\sigma}}(\mathbf{X}, \mathbf{A}).$$ Here we use two graph-convolutional layers for each parameter set, with shared weights at the first layer and parameter-specific weights at the second layer: $$\mathop{\mathrm{GCN}}_{\alpha} (\mathbf{X}, \mathbf{A}) = \hat{\mathbf{A}} \mathop{\mathrm{ReLU}}( \hat{\mathbf{A}} \mathbf{X} \mathbf{W}^{enc}_0 ) \mathbf{W}^{enc}_{1, \alpha}$$ In this equation, $W^{enc}_0$ and $W^{enc}_{1,\alpha}$ are the weight matrices for the linear transformations of each layer's input; $\mathop{\mathrm{ReLU}}$ refers to a rectified linear unit ; and following the formalism introduced in , $\hat{\mathbf{A}}$ is the standard normalised adjacency matrix with added self-connections, defined as: $$\begin{aligned}
\hat{\mathbf{A}} &{} = \tilde{\mathbf{D}}^{-\frac{1}{2}} \tilde{\mathbf{A}} \tilde{\mathbf{D}}^{-\frac{1}{2}} \\
\tilde{\mathbf{A}} &{} = \mathbf{A} + \mathbf{I}_N \\
\tilde{D}_{ii} &{} = \sum_j \tilde{A}_{ij}
\end{aligned}$$ where $\mathbf{I}_N$ is the $N \times N$ identity matrix.

### Embedding

The parameters $\bm{\mu}$ and $\bm{\sigma}$ produced by the encoder define the distribution of an $F$-dimensional stochastic embedding $\bm{\xi}_i$ for each node $i$, defined as: $$\bm{\xi}_i | \mathbf{A}, \mathbf{X} \sim \mathcal{N}(\bm{\mu}_i, \mathop{\mathrm{diag}}(\bm{\sigma}^2_i)).$$ Thus, for all the nodes we can write a probability density function over a given set of embeddings $\bm{\xi}$, in the form of an $N \times F$ matrix: $$q(\bm{\xi} | \mathbf{X}, \mathbf{A}) = \prod_{i=1}^N q(\bm{\xi}_i | \mathbf{A}, \mathbf{X}).$$

### Decoder

The decoder part of our model aims to reconstruct both the input node features and the input adjacency matrix by producing parameters of a generative model for each of the inputs. On one hand, the adjacency matrix $\mathbf{A}$ is modelled as a set of independent Bernoulli random variables, whose parameters come from a bi-linear form applied to the output of a single dense layer: $$\begin{aligned}
A_{ij} | \bm{\xi}_i, \bm{\xi}_j &{} \sim \mathop{\mathrm{Ber}}(\mathop{\mathrm{MLB}}(\bm{\xi})_{ij}) \\
\mathop{\mathrm{MLB}}(\bm{\xi}) &{} = \mathop{\mathrm{sigmoid}}(\bm{\gamma}^T \mathbf{W}^{dec}_{\mathbf{A}, 1} \bm{\gamma}) \\
\bm{\gamma} &{} = \mathop{\mathrm{ReLU}}(\bm{\xi} \mathbf{W}^{dec}_{\mathbf{A}, 0}).`
\end{aligned}$$ Similarly to above, $W^{dec}_{\mathbf{A},0}$ is the weight matrix for the first adjacency matrix decoder layer, and $W^{dec}_{\mathbf{A},1}$ is the weight matrix for the bilinear form which follows.

On the other hand, features can be modelled in a variety of ways, depending on whether they are binary or continuous, and if their norm is constrained or not. Features in our experiments are one-hot encodings, so we model the reconstruction of the feature matrix $\mathbf{X}$ by using $N$ single-draw $D$-categories multinomial random variables. The parameters of those multinomial variables are computed from the embeddings with a two-layer perceptron:[^3] $$\begin{aligned}
\mathbf{X}_i | \bm{\xi}_i &{} \sim \mathop{\mathrm{Multinomial}}(1, \mathop{\mathrm{MLP}}(\bm{\xi})_i) \\
\mathop{\mathrm{MLP}}(\bm{\xi}) &{} = \mathop{\mathrm{softmax}}(\mathop{\mathrm{ReLU}}(\bm{\xi} \mathbf{W}^{dec}_{\mathbf{X}, 0}) \mathbf{W}^{dec}_{\mathbf{X}, 1})
\end{aligned}$$ In the above equations, $\mathop{\mathrm{sigmoid}}(z) = \frac{1}{1 + e^{-z}}$ refers to the logistic function applied element-wise on vectors or matrices, and $\mathop{\mathrm{softmax}}(\mathbf{z})_i = \frac{e^{z_i}}{\sum_j e^{z_j}}$ refers to the normalised exponential function, also applied element-wise, with $j$ running along the rows of matrices (and along the indices of vectors).

Thus we can write the probability density for a given reconstruction as: $$\begin{aligned}
p(\mathbf{X}, \mathbf{A} | \bm{\xi}) &{} = p(\mathbf{A} | \bm{\xi}) p(\mathbf{X} | \bm{\xi}) \\
p(\mathbf{A} | \bm{\xi}) &{} = \prod_{i, j = 1}^N \mathop{\mathrm{MLB}}(\bm{\xi})_{ij}^{A_{ij}} (1 - \mathop{\mathrm{MLB}}(\bm{\xi})_{ij})^{1 - A_{ij}} \\
p(\mathbf{X} | \bm{\xi}) &{} = \prod_{i=1}^N \prod_{j=1}^D \mathop{\mathrm{MLP}}(\bm{\xi})_{ij}^{X_{ij}}
\end{aligned}$$

### Learning

The variational autoencoder is trained by minimising an upper bound to the marginal likelihood-based loss  defined as: $$\begin{aligned}
- \log p(\mathbf{A}, \mathbf{X}) &{} \leq \mathcal{L}(\mathbf{A}, \mathbf{X}) \\
&{} = D_{KL}(q(\bm{\xi} | \mathbf{A}, \mathbf{X}) || \mathcal{N}(0, \mathbf{I}_F)) \\
&{} \quad - \mathds{E}_{q(\bm{\xi} | \mathbf{A}, \mathbf{X})}[\log (p(\mathbf{A}, \mathbf{X} | \bm{\xi}, \bm{\theta}) p(\bm{\theta})) ] \\
&{} = \mathcal{L}_{KL} + \mathcal{L}_{\mathbf{A}} + \mathcal{L}_{\mathbf{X}} + \mathcal{L}_{\bm{\theta}}
\end{aligned}$$ Here $\mathcal{L}_{KL}$ is the Kullback-Leibler divergence between the distribution of the embeddings and a Gaussian Prior, and $\bm{\theta}$ is the vector of decoder parameters whose associated loss $\mathcal{L}_{\bm{\theta}}$ acts as a regulariser for the decoder layers.[^4] Computing the adjacency and feature reconstruction losses by using their exact formulas is computationally not tractable, and the standard practice is instead to estimate those losses by using an empirical mean. We generate $K$ samples of the embeddings by using the distribution $q(\bm{\xi} | \mathbf{A}, \mathbf{X})$ given by the encoder, and average the losses of each of those samples[^5] : $$\begin{aligned}
\mathcal{L}_{\mathbf{A}} &{} = - \mathds{E}_{q(\bm{\xi} | \mathbf{A}, \mathbf{X})}[\log p(\mathbf{A} | \bm{\xi}, \bm{\theta}) ] \\
&{} \simeq - \frac{1}{K} \sum_{k=1}^K \sum_{i, j = 1}^N \left[ A_{ij} \log( \mathop{\mathrm{MLB}}(\bm{\xi}^{(k)})_{ij}) \right. \\
&{} \qquad \qquad + \left. (1 - A_{ij}) \log(1 - \mathop{\mathrm{MLB}}(\bm{\xi}^{(k)})_{ij}) \right] \\
\mathcal{L}_{\mathbf{X}} &{} = - \mathds{E}_{q(\bm{\xi} | \mathbf{A}, \mathbf{X})}[\log p(\mathbf{X} | \bm{\xi}, \bm{\theta}) ] \\
&{} \simeq - \frac{1}{K} \sum_{k=1}^K \sum_{i=1}^N \sum_{j=1}^D X_{ij} \log(\mathop{\mathrm{MLP}}(\bm{\xi^{(k)}})_{ij})
\end{aligned}$$

Finally, for diagonal Gaussian embeddings such as the ones we use, $\mathcal{L}_{KL}$ can be expressed directly : $$\mathcal{L}_{KL} = \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^F \mu_{ij}^2 + \sigma_{ij}^2 - 2 \log \sigma_{ij} - 1$$

### Loss adjustments

In practice, to obtain useful results a few adjustments are necessary to this loss function. First, given the high sparsity of real-world graphs, the $A_{ij}$ and $1 - A_{ij}$ terms in the adjacency loss must be scaled respectively up and down in order to avoid globally near-zero link reconstruction probabilities. Instead of penalising reconstruction proportionally to the overall number of errors in edge prediction, we want false negatives ($A_{ij}$ terms) and false positives ($1 - A_{ij}$ terms) to contribute equally to the reconstruction loss, independent of graph sparsity. Formally, let $d = \frac{\sum_{ij} A_{ij}}{N^2}$ denote the density of the graph's adjacency matrix ($d = \frac{N-1}{N} \times \mathop{\mathrm{density}}(\mathcal{G})$); then we replace $\mathcal{L}_{\mathbf{A}}$ by the following re-scaled estimated loss (the so-called "balanced cross-entropy"): $$\begin{aligned}
\tilde{\mathcal{L}}_{\mathbf{A}} &{} = - \frac{1}{K} \sum_{k=1}^K \sum_{i, j = 1}^N \frac{1}{2} \left[ \frac{A_{ij}}{d} \log( \mathop{\mathrm{MLB}}(\bm{\xi}^{(k)})_{ij}) \right. \\
&{} \qquad + \left. \frac{1 - A_{ij}}{1 - d} \log(1 - \mathop{\mathrm{MLB}}(\bm{\xi}^{(k)})_{ij}) \right]
\end{aligned}$$

Second, we correct each component loss for its change of scale when the shapes of the inputs and the model parameters change: $\mathcal{L}_{KL}$ is linear in $N$ and $F$, $\tilde{\mathcal{L}}_{\mathbf{A}}$ is quadratic in $N$, and $\mathcal{L}_{\mathbf{X}}$ is linear in $N$ (but not in $F$, remember that $\sum_{j} X_{ij} = 1$ since each $\mathbf{X}_i$ is a single-draw multinomial).

Beyond dimension scaling, we also wish to keep the values of $\tilde{\mathcal{L}}_{\mathbf{A}}$ and $\mathcal{L}_{\mathbf{X}}$ comparable and, doing so, maintain a certain balance between the difficulty of each task. As a first approximation to the solution, and in order to avoid more elaborate schemes which would increase the complexity of our architecture (such as ), we divide both loss components by their values at maximum uncertainty[^6], respectively $\log 2$ and $\log D$.

Finally, we make sure that the regulariser terms in the loss do not overpower the actual learning terms (which are now down-scaled close to 1) by adjusting $\kappa_{\bm{\theta}}$ and an additional factor, $\kappa_{KL}$, which scales the Kullback-Leibler term.[^7] These adjustments lead us to the final total loss the model is trained for: $$\begin{aligned}
\mathcal{L} = \frac{ \tilde{\mathcal{L}}_{\mathbf{A}}}{N^2 \log 2} + \frac{\mathcal{L}_{\mathbf{X}}}{N \log D}  + \frac{\mathcal{L}_{KL}}{N F \kappa_{KL}}  + \frac{||\bm{\theta}||_2^2}{2 \kappa_{\bm{\theta}}}
\label{eq:base-loss}
\end{aligned}$$ where we have removed constant terms with respect to trainable model parameters.

## Scaling shared information allocation

The model we just presented uses all dimensions of the embeddings indiscriminately to reconstruct the adjacency matrix and the node features. While this can be useful in some cases, it cannot adapt to different interdependencies between graph structure and node features; in cases where the two are not strongly correlated, the embeddings would lose information by conflating features and graph structure. Therefore our second aim is to adjust the dimensions of the embeddings used exclusively for feature reconstruction, or for adjacency reconstruction, or used for both.

In a first step, we restrict which part of a node's embedding is used for each task. Let $F_{\mathbf{A}}$ be the number of embedding dimensions we will allocate to adjacency matrix reconstruction only, $F_{\mathbf{X}}$ the number of dimensions allocated to feature reconstruction only, and $F_{\mathbf{AX}}$ the number of dimensions allocated to both. We have $F_{\mathbf{A}} + F_{\mathbf{AX}} + F_{\mathbf{X}} = F$. We further introduce the following notation for the restriction of the embedding of node $i$ to a set of dedicated dimensions $\{a, \dots, b\}$[^8]: $$\begin{aligned}
\bm{\xi}_{i, a:b} &= (\xi_{ij})_{j \in \{a, \dots, b\}}
\end{aligned}$$ This extends to the full matrix of embeddings similarly: $$\begin{aligned}
\bm{\xi}_{a:b} &= (\xi_{ij})_{i \in \{1, \dots, N\}, j \in \{a, \dots, b\}}
\end{aligned}$$ Using these notations we adapt the decoder to reconstruct adjacency and features as follows: $$\begin{aligned}
&{}A_{ij} | \bm{\xi}_{i, 1:F_\mathbf{A}+F_\mathbf{AX}}, \bm{\xi}_{j, 1:F_\mathbf{A}+F_\mathbf{AX}} \sim \mathop{\mathrm{Ber}}(\mathop{\mathrm{MLB}}(\bm{\xi}_{1:F_\mathbf{A}+F_\mathbf{AX}})_{ij})&\\
&{} \mathbf{X}_i | \bm{\xi}_{i, F_\mathbf{A}+1:F}  \sim \mathop{\mathrm{Multinomial}}(1, \mathop{\mathrm{MLP}}(\bm{\xi}_{F_\mathbf{A}+1:F})_i)&
\end{aligned}$$ In other words, adjacency matrix reconstruction relies on $F_{\mathbf{A}} + F_{\mathbf{AX}}$ embedding dimensions, feature reconstruction relies on $F_{\mathbf{X}} + F_{\mathbf{AX}}$ dimensions, and $F_{\mathbf{AX}}$ overlapping dimensions are shared between the two. Our reasoning is that for datasets where the dependency between features and network structure is strong, shallow models with higher overlap value will perform better than models with the same total embedding dimensions $F$ and less overlap, or will perform on par with models that have more total embedding dimensions and less overlap. Indeed, the overlapping model should be able to extract the information shared between features and network structure and store it in the overlapping dimensions, while keeping the feature-specific and structure-specific information in their respective embedding dimensions. This is to compare to the non-overlapping case, where shared network-feature information is stored redundantly, both in feature- and structure-specific embeddings, at the expense of a larger number of distinct dimensions.

Therefore, to evaluate the performance gains of this architecture, one of our measures is to compare the final loss for different hyperparameter sets, keeping $F_{\mathbf{A}} + F_{\mathbf{AX}}$ and $F_{\mathbf{X}} + F_{\mathbf{AX}}$ fixed and varying the overlap size $F_{\mathbf{AX}}$. Now, to make sure the training losses for different hyperparameter sets are comparable, we must maintain the overall number of trainable parameters in the model fixed. The decoder already has a constant number of trainable parameters, since it only depends on the number of dimensions used for decoding features ($F_{\mathbf{X}} + F_{\mathbf{AX}}$) and adjacency matrix ($F_{\mathbf{A}} + F_{\mathbf{AX}}$), which are themselves fixed.

On the other hand, the encoder requires an additional change. We maintain the dimensions of the encoder-generated $\bm{\mu}$ and $\bm{\sigma}$ parameters fixed at $F_{\mathbf{A}} + 2 F_{\mathbf{AX}} + F_{\mathbf{X}}$ (independently from $F_{\mathbf{AX}}$, given the constraints above), and reduce those outputs to $F_{\mathbf{A}} + F_{\mathbf{AX}} + F_{\mathbf{X}}$ dimensions by averaging dimensions $\{F_{\mathbf{A}} + 1, \dots, F_{\mathbf{A}} + F_{\mathbf{AX}}\}$ and $\{F_{\mathbf{A}} + F_{\mathbf{AX}} + 1, \dots, F_{\mathbf{A}} + 2 F_{\mathbf{AX}}\}$ together.[^9] In turn, this model maintains a constant number of trainable parameters, while allowing us to adjust the number of dimensions $F_{\mathbf{AX}}$ shared by feature and adjacency reconstruction (keeping $F_{\mathbf{A}} + F_{\mathbf{AX}}$ and $F_{\mathbf{X}} + F_{\mathbf{AX}}$ constant). Figure  schematically represents this architecture.

# Results

We are interested in measuring two main effects: first, the variation in model performance as we increase the overlap in the embeddings, and second, the capacity of the embeddings with overlap (versus no overlap) to capture and benefit from dependencies between graph structure and node features. To that end, we train overlapping and non-overlapping models on synthetic data with different degrees of correlation between network structure and node features.

## Synthetic featured networks

We use a Stochastic Block Model  to generate synthetic featured networks, each with $M$ communities of $n=10$ nodes, with intra-cluster connection probabilities of $0.25$, and with inter-cluster connection probabilities of $0.01$. Each node is initially assigned a colour which encodes its feature community; we shuffle the colours of a fraction $1 - \alpha$ of the nodes, randomly sampled. This procedure maintains constant the overall count of each colour, and lets us control the correlation between the graph structure and node features by moving $\alpha$ from 0 (no correlation) to 1 (full correlation).

Node features are represented by a one-hot encoding of their colour (therefore, in all our scenarios, the node features have dimension $M = N / n$). However, since in this case all the nodes inside a community have exactly the same feature value, the model can have difficulties differentiating nodes from one another. We therefore add a small Gaussian noise ($\sigma = .1$) to make sure that nodes in the same community can be distinguished from one another.

Note that the feature matrix has less degrees of freedom than the adjacency matrix in this setup, a fact that will be reflected in the plots below. However, opting for this minimal generative model lets us avoid the parameter exploration of more complex schemes for feature generation, while still demonstrating the effectiveness of our model.

## Comparison setup

To evaluate the efficiency of our model in terms of capturing meaningful correlations between network and features, we compare overlapping and non-overlapping models as follows. For a given maximum number of embedding dimensions $F_{max}$, the overlapping models keep constant the number of dimensions used for adjacency matrix reconstruction and the number of dimensions used for feature reconstruction, with the same amount allocated to each task: $F^{ov}_{\mathbf{A}} + F^{ov}_{\mathbf{AX}} = F^{ov}_{\mathbf{X}} + F^{ov}_{\mathbf{AX}} = \frac{1}{2} F_{max}$. However they vary the overlap $F^{ov}_{\mathbf{AX}}$ from 0 to $\frac{1}{2} F_{max}$ by steps of 2. Thus the total number of embedding dimensions $F$ varies from $F_{max}$ to $\frac{1}{2} F_{max}$, and as $F$ decreases, $F^{ov}_{\mathbf{AX}}$ increases. We call one such model $\mathcal{M}^{ov}_F$.

Now for a given overlapping model $\mathcal{M}^{ov}_F$, we define a reference model $\mathcal{M}^{ref}_F$, which has the same total number of embedding dimensions, but without overlap: $F^{ref}_{\mathbf{AX}} = 0$, and $F^{ref}_{\mathbf{A}} = F^{ref}_{\mathbf{X}} = \frac{1}{2} F$ (explaining why we vary $F$ with steps of 2). Note that while the reference model has the same information bottleneck as the overlapping model, it has less trainable parameters in the decoder, since $F^{ref}_{\mathbf{A}} + F^{ref}_{\mathbf{AX}} = F^{ref}_{\mathbf{X}} + F^{ref}_{\mathbf{AX}} = \frac{1}{2} F$ will decrease as $F$ decreases. Nevertheless, this will not be a problem for our measures, since we will be mainly looking at the behaviour of a given model for different values of $\alpha$ (i.e. the feature-network correlation parameter).

For our calculations (if not noted otherwise) we use synthetic networks of $N = 1000$ nodes (i.e. 100 clusters), and set the maximum embedding dimensions $F_{max}$ to 20. For all models, we set the intermediate layer in the encoder and the two intermediate layers in the decoder to an output dimension of $50$, and the internal number of samples for loss estimation at $K = 5$. We train our models for 1000 epochs using the Adam optimiser with a learning rate of $0.01$ (following ), after initialising weights following . For each combination of $F$ and $\alpha$, the training of the overlapping and reference models is repeated $20$ times on independent featured networks.

Since the size of our synthetic data is constant, and we average training results over independently sampled data sets, we can meaningfully compare the averaged training losses of models with different parameters. We therefore take the average best training loss of a model to be our main measure, indicating the capacity to reconstruct an input data set for a given information bottleneck and embedding overlap.

## Advantages of overlap

### Absolute loss values

Figure shows the variation of the best training loss (total loss, adjacency reconstruction loss, and feature reconstruction loss) for both overlapping and reference models, with $\alpha$ ranging from 0 to 1 and $F$ decreasing from 20 to 10 by steps of 2. One curve in these plots represents the variation in losses of a model with fixed $F$ for data sets with increasing correlation between network and features; each point aggregates 20 independent trainings, used to bootstrap 95% confidence intervals.

We first see that all losses, whether for overlapping model or reference, decrease as we move from the uncorrelated scenario to the correlated scenario. This is true despite the fact that the total loss is dominated by the adjacency reconstruction loss, as feature reconstruction is an easier task overall. Second, recall that the decoder in a reference model has less parameters than its corresponding overlapping model of the same $F$ dimensions (except for zero overlap), such that the reference is less powerful and produces higher training losses. The absolute values of the losses for overlap and reference models are therefore not directly comparable. However, the changes in slopes are meaningful. Indeed, we note that the curve slopes are steeper for models with higher overlap (lower $F$) than for lower overlap (higher $F$), whereas they seem relatively independent for the reference models of different $F$. In other words, as we increase the overlap, our models seem to benefit more from an increase in network-feature correlation than what a reference model benefits.

### Relative loss disadvantage

In order to assess this trend more reliably, we examine losses relative to the maximum embedding models. Figure plots the loss disadvantage that overlap and reference models have compared to their corresponding model with $F = F_{max}$, that is, $\frac{\mathcal{L}_{\mathcal{M}_{F}} - \mathcal{L}_{\mathcal{M}_{F_{max}}}}{\mathcal{L}_{\mathcal{M}_{F_{max}}}}$. We call this the *relative loss disadvantage* of a model. In this plot, the height of a curve thus represents the magnitude of the decrease in performance of a model $\mathcal{M}^{ov|ref}_F$ relative to the model with maximum embedding size, $\mathcal{M}^{ov|ref}_{F_{max}}$. Note that for both the overlap model and the reference model, moving along one of the curves does not change the number of trainable parameters in the model.

As the correlation between network and features increases, we see that the relative loss disadvantage decreases in overlap models, and that the effect is stronger for higher overlaps. In other words, when the network and features are correlated, the overlap captures this joint information and compensates for the lower total number of dimensions (compared to $\mathcal{M}^{ov|ref}_{F_{max}}$): the model achieves a better performance than when network and features are more independent. Strikingly, for the reference model these curves are flat, thus indicating no variation in relative loss disadvantage with varying network-feature correlations in these cases. This confirms that the new measure successfully controls for the baseline decrease of absolute loss values when the network-features correlation increases, as observed in Figure . Our architecture is therefore capable of capturing and taking advantage of some of the correlation by leveraging the overlap dimensions of the embeddings.

Finally note that for high overlaps, the feature reconstruction loss value actually increases a little when $\alpha$ grows. The behaviour is consistent with the fact that the total loss is dominated by the adjacency matrix loss (the hardest task). In this case it seems that the total loss is improved more by exploiting the gain of optimising for adjacency matrix reconstruction, and paying the small cost of a lesser feature reconstruction, than decreasing both adjacency matrix and feature losses together. If wanted, this strategy could be controlled using a gradient normalisation scheme such as .

## Standard benchmarks

Finally we compare the performance of our architecture to other well-known embedding methods, namely spectral clustering (SC) , DeepWalk (DW) , the vanilla non-variational and variational Graph Auto-Encoders (GAE and VGAE) , and GraphSAGE which we look at in more detail. We do so on two tasks: (i) the link prediction task introduced by and (ii) a node classification task, both on the Cora, CiteSeer and PubMed datasets, which are regularly used as citation network benchmarks in the literature . Note that neither SC nor DW support feature information as an input.

The Cora and CiteSeer datasets are citation networks made of respectively 2708 and 3312 machine learning articles, each assigned to a small number of document classes (7 for Cora, 6 for CiteSeer), with a bag-of-words feature vector for each article (respectively 1433 and 3703 words). The PubMed network is made of 19717 diabetes-related articles from the PubMed database, each assigned to one of three classes, with article feature vectors containing *term frequency-inverse document frequency* (TF/IDF) scores for 500 words.

### Link prediction

The link prediction task consists in training a model on a version of the datasets where part of the edges has been removed, while node features are left intact. A test set is formed by randomly sampling 15% of the edges combined with the same number of random disconnected pairs (non-edges). Subsequently the model is trained on the remaining dataset where 15% of the real edges are missing.

```latex
\begin{table*}[h!]\centering
\resizebox{1.0\textwidth}{!}{%
\begin{tabular}{lcccccc}
\hline
\multirow{2}{*}{\textbf{Method}} & \multicolumn{2}{c}{\textbf{Cora}} & \multicolumn{2}{c}{\textbf{CiteSeer}} & \multicolumn{2}{c}{\textbf{PubMed}}\\
& AUC & AP & AUC & AP & AUC & AP \\
\hline
SC & 84.6 $\pm$ 0.01 & 88.5 $\pm$ 0.00 & 80.5 $\pm$ 0.01 & 85.0 $\pm$ 0.01 & 84.2 $\pm$ 0.02 & 87.8 $\pm$ 0.01 \\
DW & 83.1 $\pm$ 0.01 & 85.0 $\pm$ 0.00 & 80.5 $\pm$ 0.02 & 83.6 $\pm$ 0.01 & 84.4 $\pm$ 0.00 &  84.1 $\pm$ 0.00 \\
GAE                     & 91.0 $\pm$ 0.02 & 92.0 $\pm$ 0.03 & 89.5 $\pm$ 0.04 & 89.9 $\pm$ 0.05 & \textbf{96.4} $\pm$ 0.00 & \textbf{96.5} $\pm$ 0.00 \\
VGAE                    & 91.4 $\pm$ 0.01 & 92.6 $\pm$ 0.01 & 90.8 $\pm$ 0.02 & 92.0 $\pm$ 0.02 & 94.4 $\pm$ 0.02 & 94.7 $\pm$ 0.02 \\
\hline
AN2VEC-0    & 89.5 $\pm$ 0.01 & 90.6 $\pm$ 0.01 & 91.2 $\pm$ 0.01 & 91.5 $\pm$ 0.02 & 91.8 $\pm$ 0.01 & 93.2 $\pm$ 0.01 \\
AN2VEC-16   & 89.4 $\pm$ 0.01 & 90.2 $\pm$ 0.01 & 91.1 $\pm$ 0.01 & 91.3 $\pm$ 0.02 & 92.1 $\pm$ 0.01 & 92.8 $\pm$ 0.01 \\
AN2VEC-S-0  & 92.9 $\pm$ 0.01 & 93.4 $\pm$ 0.01 & 94.3 $\pm$ 0.01 & 94.8 $\pm$ 0.01 & 95.1 $\pm$ 0.01 & 95.4 $\pm$ 0.01 \\
AN2VEC-S-16 & \textbf{93.0} $\pm$ 0.01 & \textbf{93.5} $\pm$ 0.00 & \textbf{94.9} $\pm$ 0.00 & \textbf{95.1} $\pm$ 0.00 & 93.1 $\pm$ 0.01 & 93.1 $\pm$ 0.01 \\
\hline
\end{tabular}
}
\caption{Link prediction task in citation networks. SC, DW, GAE and VGAE values are from \cite{kipf_variational_2016}. Error values indicate the sample standard deviation.}
\label{tbl:edges-many-embs}
\end{table*}
```

We pick hyperparameters such that the restriction of our model to VGAE would match the hyperparameters used by . That is a 32-dimensions intermediate layer in the encoder and the two intermediate layers in the decoder, and 16 embedding dimensions for each reconstruction task ($F_{\mathbf{A}} + F_{\mathbf{AX}} = F_{\mathbf{X}} + F_{\mathbf{AX}} = 16$). We call the zero-overlap and the full-overlap versions of this model AN2VEC-0 and AN2VEC-16 respectively. In addition, we test a variant of these models with a shallow adjacency matrix decoder, consisting of a direct inner product between node embeddings, while keeping the two dense layers for feature decoding. Formally: $A_{ij} | \bm{\xi}_i, \bm{\xi}_j \sim \mathop{\mathrm{Ber}}(\bm{\xi}^T_i \bm{\xi}_j)$. This modified overlapping architecture can be seen as simply adding the feature decoding and embedding overlap mechanics to the vanilla VGAE. Consistently, we call the zero-overlap and full-overlap versions AN2VEC-S-0 and AN2VEC-S-16.

We follow the test procedure laid out by : we train for $200$ epochs using the Adam optimiser with a learning rate of $.01$, initialise weights following , and repeat each condition $10$ times. The $\bm{\mu}$ parameter of each node's embedding is then used for link prediction (i.e. the parameter is put through the decoder directly without sampling), for which we report *area under the ROC curve* and *average precision* scores in Table .[^10]

We argue that AN2VEC-0 and AN2VEC-16 should have somewhat poorer performance than VGAE. These models are required to reconstruct an additional output, which is not directly used to the link prediction task at hand. First results confirmed our intuition. However, we found that the shallow decoder models AN2VEC-S-0 and AN2VEC-S-16 perform consistently better than the vanilla VGAE for Cora and CiteSeer while their deep counterparts (AN2VEC-0 and AN2VEC-16) outperforms VGAE for all datasets. As neither AN2VEC-0 nor AN2VEC-16 exhibited over-fitting, this behaviour is surprising and calls for further explorations which are beyond the scope of this paper (in particular, this may be specific to the link prediction task). Nonetheless, the higher performance of AN2VEC-S-0 and AN2VEC-S-16 over the vanilla VGAE on Cora and CiteSeer confirms that including feature reconstruction in the constraints of node embeddings is capable of increasing link prediction performance when feature and structure are not independent (consistent with ). An illustration of the embeddings produced by AN2VEC-S-16 on Cora is shown in Figure .

On the other hand, performance of AN2VEC-S-0 on PubMed is comparable with GAE and VGAE, while AN2VEC-S-16 has slightly lower performance. The fact that lower overlap models perform better on this dataset indicates that features and structure are less congruent here than in Cora or CiteSeer (again consistent with the comparisons found in ). Despite this, an advantage of the embeddings produced by the AN2VEC-S-16 model is that they encode *both* the network structure and the node features, and can therefore be used for downstream tasks involving both types of information.

We further explore the behaviour of the model for different sizes of the training set, ranging from 10% to 90% of the edges in each dataset (reducing the training set accordingly), and compare the behaviour of AN2VEC to GraphSAGE. To make the comparison meaningful we train two variants of the two-layer GraphSAGE model with mean aggregators and no bias vectors: one with an intermediate layer of 32 dimensions and an embedding layer of 16 dimensions (roughly equivalent in dimensions to the full overlap AN2VEC models), the second with an intermediate layer of 64 dimensions and an embedding layer of 32 dimensions (roughly equivalent to no overlap in AN2VEC). Both layers use neighbourhood sampling, 10 neighbours for the first layer and 5 for the second. Similarly to the shallow AN2VEC decoder, each pair of node embeddings is reduced by inner product and a sigmoid activation, yielding a scalar prediction between 0 and 1 for each possible edge. The model is trained on minibatches of 50 edges and non-edges (edges generated with random walks of length 5), learning rate 0.001, and 4 total epochs. Note that on Cora, one epoch represents about 542 minibatches,[^11] such that 4 epochs represent about 2166 gradient updates; thus with a learning rate of 0.001, we remain comparable to the 200 full batches with learning rate 0.01 used to train AN2VEC.

Figure  plots the AUC produced by AN2VEC and GraphSAGE for different training set sizes and different embedding sizes (and overlaps, for AN2VEC), for each dataset. As expected, the performance of both models decreases as the size of the test set increases, though less so for AN2VEC. For Cora and CiteSeer, similarly to Table , higher overlaps and a shallow decoder in AN2VEC give better performance. Notably, the shallow decoder version of AN2VEC with full overlap is still around .75 for a test size of 90%, whereas both GraphSAGE variants are well below .65. For PubMed, as in Table , the behaviour is different to the first two datasets, as overlaps 0 and 16 yield the best results. As for Cora and CiteSeer, the approach taken by AN2VEC gives good results: with a test size of 90%, all AN2VEC deep decoder variants are still above .75 (and shallow decoders above .70), whereas both GraphSAGE variants are below .50.

### Node classification

Since the embeddings produced also to encode feature information, we then evaluate the model's performance on a node classification task. Here the models are trained on a version of the dataset where a portion of the nodes (randomly selected) have been removed; next, a logistic classifier[^12] is trained on the embeddings to classify training nodes into their classes; finally, embeddings are produced for the removed nodes, for which we show the F1 scores of the classifier.

Figure  shows the results for AN2VEC and GraphSAGE on all datasets. The scale of the reduction in performance as the test size increases is similar for both models (and similar to the behaviour for link prediction), though overlap and shallow versus deep decoding seem to have less effect. Still, the deep decoder is less affected by the change in test size than the shallow decoder; and contrary to the link prediction case, the 0 overlap models perform best (on all datasets). Overall, the performance levels of GraphSAGE and AN2VEC on this task are quite similar, with slightly better results of AN2VEC on Cora, slightly stronger performance for GraphSAGE on CiteSeer, and mixed behaviour on PubMed (AN2VEC is better for small test sizes and worse for large test sizes).

### Variable embedding size

We also explore the behaviour of AN2VEC for different embedding sizes. We train models with $F_{\mathbf{A}} = F_{\mathbf{X}} \in \{8, 16, 24, 32\}$ and overlaps 0, 8, 16, 24, 32 (whenever there are enough dimensions to do so), with variable test size. Figure  shows the AUC scores for link prediction, and Figure  shows the F1-micro scores for node classification, both on CiteSeer (the behaviour is similar on Cora, though less salient). For link prediction, beyond confirming trends already observed previously, we see that models with less total embedding dimensions perform slightly better than models with more total dimensions. More interestingly, all models seem to reach a plateau at overlap 8, and then exhibit a slightly fluctuating behaviour as overlap continues to increase (in models that have enough dimensions to do so). This is valid for all test sizes, and suggests (i) that at most 8 dimensions are necessary to capture the commonalities between network and features in CiteSeer, and (ii) that having more dimensions to capture either shared or non-shared information is not necessarily useful. In other words, 8 overlapping dimensions seem to capture most of what can be captured by AN2VEC on the CiteSeer dataset, and further increase in dimensions (either overlapping or not) would capture redundant information.

Node classification, on the other hand, does not exhibit any consistent behaviour beyond the reduction in performance as the test size increases. Models with less total dimensions seems to perform slightly better at 0 overlap (though this behaviour is reversed on Cora), but neither the ordering of models by total dimensions nor the effect of increasing overlap are consistent across all conditions. This suggests, similarly to Figure , that overlap is less relevant to this particular node classification scheme than it is to link prediction.

### Memory usage and time complexity

Finally, we evaluate the resources used by our implementation of the method in terms of training time and memory usage. We use AN2VEC with 100-dimensions intermediate layers in the encoder and the (deep) decoder with 16 embedding dimensions for each reconstruction task ($F_{\mathbf{A}} + F_{\mathbf{AX}} = F_{\mathbf{X}} + F_{\mathbf{AX}} = 16$), and overlap $F_{\mathbf{AX}} \in \{0, 8, 16\}$. We train that model on synthetic networks generated as in section *Synthetic featured networks* (setting $\alpha = 0.8$, and without adding any other noise on the features), with $M \in \{50, 100, 200, 500, 1000, 2000, 5000\}$ communities of size $n = 10$ nodes.

Only CPUs were used for the computations, running on a 4 $\times$ Intel Xeon CPU E7-8890 v4 server with 1.5 TB of memory. Using 8 parallel threads for training,[^13] we record the peak memory usage,[^14] training time, and full job time[^15] for each network size, averaged over the three overlap levels. Results are shown in Figure . Note that in a production setting, multiplying the number of threads by $n$ will divide compute times by nearly $n$, since the process is aggressively parallelised. A further reduced memory footprint can also be achieved by using sparse encoding for all matrices.

# Conclusions

In this work, we proposed an attributed network embedding method based on the combination of Graph Convolutional Networks and Variational Autoencoders. Beyond the novelty of this architecture, it is able to consider jointly network information and node attributes for the embedding of nodes. We further introduced a control parameter able to regulate the amount of information allocated to the reconstruction of the network, the features, or both. In doing so, we showed how shallow versions of the proposed model outperform the corresponding non-interacting reference embeddings on given benchmarks, and demonstrated how this overlap parameter consistently captures joint network-feature information when they are correlated.

Our method opens several new lines of research and applications in fields where attributed networks are relevant. As an example one can take a social network with the task of predicting future social ties, or reconstruct existing but invisible social ties. Solutions to this problem can rely on network similarities in terms of overlapping sets of common friends, or on feature similarities in terms of common interest, professional or cultural background, and so on. While considering these types of information separately would provide us with a clear performance gain in the prediction, these similarities are not independent. For example, common friends may belong to the same community. By exploiting these dependencies our method can provide us with an edge in terms of predictive performance and could indicate which similarities, structural, feature-related, or both, better explain why a social tie exists at all. Another setting where we believe our framework might yield noteworthy insights is when applied to the prediction of side effects of drug pairs (polypharmacy). This problem has recently been approached by Zitnik et al.  by extending GraphSAGE for multirelational link prediction in multimodal networks. In doing so, the authors were able to generate multiple novel candidates of drug pairs susceptible to induce side effects when taken together. Beyond using drug feature vectors to generate polypharmacy edge probabilities, our overlapping encoder units would enable a detailed view on how these side effects occur due to confounding effects of particular drug attributes. It would pinpoint the feature pairs that interacting drugs might share (or not), further informing the drug design process. Furthermore, we expect that our method will help yield a deeper understanding between node features and structure, to better predict network evolution and ongoing dynamical phenomena. In particular, it should help to identify nodes with special roles in the network by clarifying whether their importance has structural or feature origin.

In this paper our aim was to ground our method and demonstrate its usefulness on small but controllable featured networks. Its evaluation on more complex synthetic datasets, in particular with richer generation schemes, as well as its application to larger real datasets, are therefore our immediate goals in the future.

# List of abbreviations

# Availability of data and material

The synthetic datasets generated for this work are stochastically created by our implementation, available at [github.com/ixxi-dante/an2vec](https://github.com/ixxi-dante/an2vec).

The datasets used for standard benchmarking (Cora, CiteSeer, and PubMed) are available at [linqs.soe.ucsc.edu/data](https://linqs.soe.ucsc.edu/data).

Our implementation of AN2VEC is made using the Julia programming language, and particularly making heavy use of Flux . Parallel computations were run using GNU Parallel . Finally, we used StellarGraph  for the GraphSAGE implementation.

# Competing interests

The authors declare that they have no competing interests.

# Funding

This project was supported by the LIAISON Inria-PRE project, the SoSweet ANR project (ANR-15-CE38-0011), and the ACADEMICS project financed by IDEX LYON.

# Author's contributions

MK, JLA and SL participated equally in designing and developing the project, and in writing the paper. SL implemented the model and experiments. SL and JLA developed and implemented the analysis of the results.

# Acknowledgements

We thank E. Fleury, J-Ph. Magué, D. Seddah, and E. De La Clergerie for constructive discussions and for their advice on data management and analysis. Some computations for this work were made using the experimental GPU platform at the Centre Blaise Pascal of ENS Lyon, relying on the SIDUS infrastructure provided by E. Quemener.

[^1]: Corresponding author: `email@example.com`.

[^2]: The implementation of our model is available online at [github.com/ixxi-dante/an2vec](https://github.com/ixxi-dante/an2vec).

[^3]: Other types of node features are modelled according to their constraints and domain. Binary features are modelled as independent Bernoulli random variables. Continuous-range features are modelled as Gaussian random variables in a similar way to the embeddings themselves.

[^4]: Indeed, following we assume $\bm{\theta} \sim \mathcal{N}(0, \kappa_{\bm{\theta}} \mathbf{I})$, such that $\mathcal{L}_{\bm{\theta}} = - \log p(\bm{\theta}) = \frac{1}{2} \dim(\bm{\theta}) \log(2 \pi \kappa_{\bm{\theta}}) + \frac{1}{2 \kappa_{\bm{\theta}}} ||\bm{\theta}||_2^2$.

[^5]: In practice, $K = 1$ is often enough.

[^6]: That is, $p(A_{ij} | \bm{\xi}, \bm{\theta}) = \frac{1}{2} \quad \forall i, j$, and $p(X_{ij} | \bm{\xi}, \bm{\theta}) = \frac{1}{D} \quad \forall i, j$.

[^7]: We use $\kappa_{KL} = 2\kappa_{\bm{\theta}} = 10^3$.

[^8]: Note that the order of the indices does not change the training results, as the model has no notion of ordering inside its layers. What follows is valid for any permutation of the dimensions, and the actual indices only matter to downstream interpretation of the embeddings after training.

[^9]: Formally: $$\begin{aligned}
    \tilde{\bm{\mu}} = \bm{\mu}_{1:F_{\mathbf{A}}}   &{} \mathop{\mathrm{\scalebox{1}[1.5]{$\parallel$}}}\frac{1}{2} (\bm{\mu}_{F_{\mathbf{A}}+1:F_{\mathbf{A}} + F_{\mathbf{AX}}} + \bm{\mu}_{F_{\mathbf{A}} + F_{\mathbf{AX}}+1:F_{\mathbf{A}} + 2F_{\mathbf{AX}}}) \\
    &{} \mathop{\mathrm{\scalebox{1}[1.5]{$\parallel$}}}\bm{\mu}_{F_{\mathbf{A}} + 2F_{\mathbf{AX}} + 1:F_{\mathbf{A}} + 2F_{\mathbf{AX}} + F_{\mathbf{X}}} \\
    \log\tilde{\bm{\sigma}} = \log\bm{\sigma}_{1:F_{\mathbf{A}}} &{} \mathop{\mathrm{\scalebox{1}[1.5]{$\parallel$}}}\frac{1}{2} (\log\bm{\sigma}_{F_{\mathbf{A}}+1:F_{\mathbf{A}} + F_{\mathbf{AX}}} + \log\bm{\sigma}_{F_{\mathbf{A}} + F_{\mathbf{AX}}+1:F_{\mathbf{A}} + 2F_{\mathbf{AX}}}) \\
    &{} \mathop{\mathrm{\scalebox{1}[1.5]{$\parallel$}}}\log\bm{\sigma}_{F_{\mathbf{A}} + 2F_{\mathbf{AX}} + 1:F_{\mathbf{A}} + 2F_{\mathbf{AX}} + F_{\mathbf{X}}}
    \end{aligned}$$ where $\mathop{\mathrm{\scalebox{1}[1.5]{$\parallel$}}}$ denotes concatenation along the columns of the matrices.

[^10]: Note that in , the training set is also 85% of the full dataset, and test and validation sets are formed with the remaining edges, respectively 10% and 5% (and the same amount of non-edges). Here, since we use the same hyperparameters as we do not need a validation set. We therefore chose to use the full 15% remaining edges (with added non-edges) as a test set, as explained above.

[^11]: One epoch is 2708 nodes $\times$ 5 edges per node $\times$ 2 (for non-edges) = 27080 training edges or non-edges; divided by 50, this makes 541.6 minibatches per epoch.

[^12]: Using Scikit-learn's  interface to the liblinear library, with one-vs-rest classes.

[^13]: There are actually two levels of threading: the number of threads used in our code for computing losses, and the number of threads used by the BLAS routines for matrix multiplication. We set both to 8, and since both computations alternate this leads to an effective 8 compute threads, with some fluctuations at times.

[^14]: Using the `top` utility program.

[^15]: As reported by our scripts and by GNU Parallel.


abstract: This template is provided to demonstrate options for using REVTeX4-1 in preparing manuscripts for submission to JOSA A, JOSA B, *Optics Letters*, and *Applied Optics*. REVTeX4-1 support for OSA journals was added September 2012 as a BETA and updated in April 2013. Users should obtain the REVTeX4-1 package (<https://authors.aps.org/revtex4/>) and the OSA REVTeX4-1 style files (on the Author page of any OSA journal site). Authors in need of a length estimate because of page charge concerns can use the OSA REVTeX4-1 template. The template will not yield an exact estimate but should provide a good approximation of the length of the page proof. Figures, large tables, and complex display math may still affect the estimate. Note that the two-column format is acceptable for submission and will meet the needs of OSA peer review and production.
author: Joe Richardson; Chris Videll; Jennifer Mayfield
title: Preparing a REVTeX4-1 manuscript for the OSA journals
  JOSA A, JOSA B, *Optics Letters*, and *Applied Optics*

# Introduction

The OSA REVTeX4-1 template is designed to assist authors with creating a two-column manuscript that can be submitted to JOSA A, JOSA B, *Optics Letters*, and *Applied Optics* (separate templates are available for other OSA journals, which have not yet migrated to REVTeX).

-   See the "REVTeX 4.1 Author's Guide" for an overview of REVTeX4-1's features .

-   See the "OSA Author Style Guide" for points on OSA journal style , such as use of OCIS codes.

# Preparing a REVTeX Manuscript for Submission to an OSA Journal

1.  ***Optics Letters*** **authors**: Be aware of two major changes for OL papers. Authors now have a firm **four**-page limit for their papers, and submitted papers must contain a **fifth** informational page, with complete references.

2.  **Preamble** Use the following preamble to invoke REVTeX4.1 for OSA journals. Use the "10 pt" option for JOSA A, JOSA B, and OL; use the "11 pt" option for *Applied Optics*:

        \documentclass[osajnl,twocolumn,showpacs,
        superscriptaddress,10pt]{revtex4-1}

3.  **Citations** in REVTeX use the `natbib` package. The `osajnl4-1.rtx` package will enforce appropriate style for citations callouts: "$\ldots$ in this study \[1,2\]." Use the `\cite{}` command for all callouts.

4.  **BibTeX** may be used to create a file containing the references, whose contents (i.e., contents of .bbl file) can then be pasted into the bibliography section of the .tex file. References must be contained within the .tex file, not a separate BibTeX file.

5.  **Compress** your .tex manuscript file and all figures (which should be in EPS format, or PDF format if you are using PDFLaTeX) in a ZIP, TAR or TAR-GZIP package. PRISM will process in LaTeX mode by default but will use PDF LaTeX if PDF figure files are detected. Note: TAR or TAR-GZIP is no longer required. All files must be referenced at the root level (e.g., file figure-1.eps, not /myfigs/figure-1.eps).

6.  **Figures and Tables** It is *not* necessary to place figures and tables at the back of the manuscript. Figures and tables should be sized for display as you wish them to appear in the final article. Do not include a separate listing figure captions and table titles.

# Sample Equation, Figure, and Table

## Equation

Sample equation. When a two-column equation is needed, use the `\begin{widetext}\end{widetext}` environment. See the "REVTeX 4.1 Author's Guide" .

$$\Delta x \Delta p \approx h.$$

## Figure

Sample figure environment. Use the `graphicsx` package. For two-column figures, use an asterisk in the figure environment: `\begin{figure*}\end{figure*}`.

## Table

Sample table environment. For long tables, see the "REVTeX 4.1 Author's Guide" .

|  A  |  B  |  C  |  D  |  E  |  F  |  G  |  H  |  I  |
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |
| 10  | 11  | 12  | 13  | 14  | 15  | 16  | 17  | 18  |
| 19  | 20  | 21  | 22  | 23  | 24  | 25  | 26  | 27  |

A simple table