lbourdois/en-fr-nyu-dl-course-corpus huggingface dataset:
English: Let’s consider a social network. The social network is best captured by a graph representation since pair-wise connection between two users do not form a grid. Nodes of the graph represents users, whereas the edges between two nodes represent connection between two nodes (users). Each user has a three-dimensional feature matrix containing such as messages, images, and videos.
French: Envisageons un réseau social. Le réseau social est mieux capturé par une représentation sous forme de graphe car la connexion par paire entre deux utilisateurs ne forme pas une grille. Les nœuds du graphe représentent les utilisateurs, tandis que les arêtes entre deux nœuds représentent la connexion entre deux utilisateurs. Chaque utilisateur dispose d’une matrice de caractéristiques tridimensionnelles contenant des messages, des images et des vidéos.
English: The connection between the structure and function of the brain to predict neural genetic diseases offers a motivational example to consider. As can be seen below, the brain is composed of several Region of Interest(s) (ROI). These ROIs is only locally connected to some surrounding regions of interests. Adjacency matrix represents the degree of strengths between different regions of interest.
French: Le lien entre la structure et la fonction du cerveau pour prédire les maladies génétiques neurales offre un exemple de motivation à prendre en considération. Comme on peut le voir ci-dessous, le cerveau est composé de plusieurs régions d’intérêt (ROIs pour Regions of Interest). Ces ROIs ne sont connectées que localement à certaines régions d’intérêt environnantes. La matrice d’adjacence représente le degré de force entre les différentes régions d’intérêt.
English: Quantum Chemistry also offers an interesting representation of graphical domain. Each atom is represented by a node in graph and is connected to other atoms through bonds using edges. Each of these molecules/atoms have different features, such as the associated charge, bond type etc.
French: La chimie quantique offre également une représentation intéressante du domaine graphique. Chaque atome est représenté par un nœud dans le graphe et est relié aux autres atomes par des liaisons utilisant des arêtes. Chacun de ces molécules/atomes présente des caractéristiques différentes, telles que la charge associée, le type de liaison, etc.
English: hℓ+l=wℓ∗hℓ, where hℓ+1 is n1​×n2​×d-dimensional, wℓ is 3×3×d-dimensional, and hℓ is n1​×n2​×d-dimensional. For example, n1​ and n2​ could be the number of pixels in the x and y directions of an image, respectively, and d is the dimensionality of each pixel (e.g., 3 for a colored image). So, hℓ+1 is a feature at the (ℓ+1)-th hidden layer obtained by applying the convolution wℓ to a feature at the ℓ-th layer. Usually the kernel is small to represent a local reception field – 3×3 in this case, or 5×5, for example. Note: we use padding to ensure the dimensions of hℓ+1 are the same as those of hℓ.
French: hℓ+l=wℓ∗hℓ, où hℓ+1 est n1​×n2​×d-dimensionnel, wℓ est 3×3×d-dimensionnel, et hℓ est n1×n2×d-dimensionnel. Par exemple, n1 et n2​ pourraient être le nombre de pixels dans les directions x et y d’une image, respectivement, et d la dimensionnalité de chaque pixel (par exemple, 3 pour une image en couleur). Ainsi, hℓ+1 est une caractéristique au niveau de la (ℓ+1)-ème couche cachée obtenue en appliquant la convolution wℓ à une caractéristique au niveau de la ℓ-ème couche. Habituellement, le noyau est petit pour représenter un champ de réception local (3×3 ou 5×5 par exemple). Note : nous utilisons un rembourrage pour nous assurer que les dimensions de hℓ+1 sont les mêmes que celles de hℓ.
English: The kernel is very small, so instead of summing over the whole image Ω, as in the second line, we actually just sum over the neighborhood of cell i, Ni​, as denoted in the third line.
French: Le noyau est très petit donc au lieu d’additionner sur toute l’image Ω, comme dans la deuxième ligne, nous additionnons juste sur le voisinage de la cellule i, Ni​, comme indiqué dans la troisième ligne.
English: The complexity is thus n⋅3⋅3⋅d, which is O(n); and moreover the computational can be done in parallel with GPUs at each of the N pixels.
French: La complexité est donc de n⋅3⋅3⋅d, ce qui correspond à O(n). De plus le calcul peut être effectué en parallèle avec les GPUs pour chacun des N pixels.
English: If the graph you are convolving over is a grid, as in standard convolution over images in computer vision, then the nodes are ordered as in the above image. Therefore, j3​ will always be in the top right corner of the pattern.
French: Si le graphe sur lequel nous effectuons la convolution est une grille, comme dans la convolution standard sur les images en vision par ordinateur, alors les nœuds sont ordonnés comme dans l’image ci-dessus. Par conséquent, j3​ se trouvera toujours dans le coin supérieur droit du graphe.
English: So for all nodes i in the image below, such as i and i’, the node ordering of the kernel is always the same. For example, you always compare j3​ at the top right corner of the pattern with the top right corner of the image patch (what we convolve over for pixel i), as shown below. Mathematically speaking:
French: Ainsi, pour tous les nœuds i dans l’image ci-dessous, comme i et i’, l’ordre des nœuds du noyau est toujours le même. Par exemple, nous comparons toujours j3​ dans le coin supérieur droit du motif avec le coin supérieur droit du patch de l’image (ce sur quoi nous effectuons une convolution pour le pixel i), comme indiqué ci-dessous. Mathématiquement parlant :
English: So in the template shown below in the image, node j3​ has no specific position, but just an (arbitrary) index. So, when we try to match against nodes i and i’ in the graph below, we do not know if j3​ is matching against the same nodes in both convolutions. This is because there is no notion of the top right corner of the graph. There is no notion of up, down, left right. Thus, the template matchings actually have no meaning and we cannot use the definition of template matching directly, as above.
French: Ainsi, dans l’image, le nœud j3​ n’a pas de position spécifique, mais juste un index (arbitraire). Donc lorsque nous essayons de faire correspondre les nœuds i et i’ dans le graphe ci-dessous, nous ne savons pas si j3​ correspond aux mêmes nœuds dans les deux convolutions. Ceci est dû au fait qu’il n’y a pas de notion de coin supérieur droit dans le graphe. Il n’y a pas de notion de haut, bas, gauche droite. Ainsi, l’appariement de patrons n’a en fait aucune signification et nous ne pouvons pas l’utiliser directement comme ci-dessus.
English: We are going to use these two design for graph neural networks: Template matching will be for spacial graph ConvNets and the Convolution theorem will be used for the spectral ConvNets.
French: Nous allons utiliser ces deux modèles pour les réseaux de neurones pour graphes. L’appariement de patrons sera utilisé pour les GCNs (ConvNets pour graphe) spatiaux et le théorème de convolution sera utilisé pour les GCNs spectraux.
English: Note Matrix a is the adjacency matrix, and the Δ is the Laplacian, which equals to the identity minus the adjacency matrix normalized by Matrix D. D is a diagonal matrix, and each element on the diagonal is the degree of the node. This is called the normalized Laplacian, or Laplacian by default in this context.
French: A est la matrice d’adjacence et le Δ est le Laplacien, qui est égal à l’identité moins la matrice d’adjacence normalisée par la matrice D. D est une matrice diagonale et chaque élément de la diagonale est le degré du nœud. C’est ce qu’on appelle le Laplacien normalisé ou simplement Laplacien par défaut dans ce contexte.
English: The Laplacian is interpreted as the measurement of smoothness of graph, in other words, the difference between the local value hi​ and its neighborhood average value of hj​’s. di​ on the formula below is the degree of node i, and Ni​ is the all the neighbors of node i.
French: Le Laplacien est interprété comme la mesure de la finesse du graphe, en d’autres termes, la différence entre la valeur locale hi​ et sa valeur moyenne de voisinage de hj​’s. di​ sur la formule ci-dessous est le degré du nœud i, et Ni​ est l’ensemble des voisins du nœud i.
English: The formula above is to apply Laplacian to a function h on the node i, which is the value of hi​ minus the mean value over its neighboring nodes hj​’s. Basically, if the signal is very smooth, the Laplacian value is small, and vice versa.
French: La formule ci-dessus consiste à appliquer le Laplacien à une fonction h sur le nœud i, qui est la valeur de hi​ moins la valeur moyenne sur ses nœuds voisins hj​. Fondamentalement, si le signal est très lisse, la valeur de Laplacien est faible et vice versa.
English: Φ is defined below, it contains column vectors, or Lap eigenvectors ϕ1​ to ϕn​, each of size n×1, and those are also called Fourier functions. And Fourier functions form an orthonormal basis.
French: Φ est défini ci-dessous, il contient des vecteurs colonnes, ou vecteurs propres de Lap ϕ1​ à ϕn​, chacun de taille n×1, et ceux-ci sont aussi appelés fonctions de Fourier. Et les fonctions de Fourier forment une base orthonormée.
English: Λ is a diagonal matrix with Laplacian eigenvalues, and on the diagonal are λ1​ to λn​. And from the normalized applications, these values are typically among the range from 0 to 2. Those are also known as the Spectrum of a graph. See the formula below.
French: Λ est une matrice diagonale avec des valeurs propres Laplaciennes, et sur la diagonale se trouvent λ1​ à λn​. Et d’après les applications normalisées, ces valeurs sont généralement comprises entre 0 et 2. Ces valeurs sont également connues sous le nom de « spectre du graphe ». Voir la formule ci-dessous.
English: Below is an example of checking the eigenvalue decomposition. The Laplacian matrix Λ is multiplied by an eigenvector ϕk​, the shape of the result is n×1, and the result is λk​ϕk​.
French: Ci-dessous un exemple de vérification de la décomposition de la valeur propre. La matrice Laplacienne Λ est multipliée par un vecteur propre ϕk​, la forme du résultat est n×1 et le résultat est λk​ϕk​.
English: For graph domain, from the left to right, is the first, second, third, .. Fourier functions of a graph. For example, ϕ1​ has oscillations of positive (red) and negative (blue) values, same for ϕ2, ϕ3. Those oscillations depend on the topology of a graph, which related to the geometry of graphs such as communities, hubs, etc, and it’s helpful for graph clustering. See below.
French: Pour le domaine des graphes, de gauche à droite, se trouvent les première, deuxième, troisième, …, fonctions de Fourier d’un graphe. Par exemple, ϕ1​ a des oscillations de valeurs positives (rouge) et négatives (bleu), de même pour ϕ2, ϕ3. Ces oscillations dépendent de la topologie d’un graphe, qui est liée à la géométrie des graphes tels que les communautés, les hubs, etc, et c’est utile pour le regroupement des graphes. Voir ci-dessous.
English: Take the function h and projected on each Fourier function ϕk​, resulting in the coefficient of Fourier series of k, a scaler, and then multiplied by the function ϕk​.
French: Prendre la fonction h et la projeter sur chaque fonction de Fourier ϕk​, ce qui donne le coefficient de la série de Fourier de k, une échelle, puis le multiplier par la fonction ϕk​.
English: The example above is the convolution of w and h, both of shape n×1, it equals the inverse of Fourier transform of pointwise product between Fourier transform of w and of h. The formula above shows that it also equals to the matrix multiplication of w^(Δ) and h.
French: L’exemple ci-dessus est la convolution de w et h, tous deux de forme n×1, elle est égale à l’inverse de la transformée de Fourier du produit élément par élément entre la transformée de Fourier de w et de h. La formule ci-dessus montre qu’elle est également égale à la multiplication matricielle de w^(Δ) et de h.
English: The convolution of two functions on the graph h and w is to take the spectrum function of w and apply it to Laplacian and multiply it by h, and this is the definition of spectrum convolution. However, the computation complexity is O(n2), while N is the number of nodes in the graph.
French: La convolution de deux fonctions sur les graphes h et w consiste à prendre la fonction de spectre de w, à l’appliquer au Laplacien et à la multiplier par h. C’est la définition de la convolution du spectre. Cependant, la complexité du calcul est de O(n2), alors que N est le nombre de nœuds du graphe.
English: The spectral convolution against the graph domain is not shifting invariance, which means that if shifted, the shape of the function might also be changed, while in grid/euclidean domain does not.
French: La convolution spectrale par rapport au domaine du graphe n’est pas une invariance au décalage, ce qui signifie que si elle est décalée, la forme de la fonction peut également être modifiée. Alors que dans le domaine de la grille/euclidienne, elle ne l’est pas.
English: In the previous section we discussed Graph Spectral Theory, one of the two ways to define convolution for graphs, which we can now use to define Spectral GCNs.
French: Dans la partie du cours précédente, nous avons discuté de la théorie spectrale des graphes et de l’une des deux façons de définir la convolution des graphes que nous pouvons maintenant utiliser pour définir les GCNs spectraux.
English: where η represents a nonlinear activation and wl is a spatial filter. The RHS of the equation is equivalent to η(w^l(Δ)hl) where w^lw^l represents a spectral filter and Δ is the Laplacian. We can further decompose the RHS of the equation into η(ϕw^l(Λ)ϕ⊤hl), where ϕ is the Fourier matrix and Λ  is the eigenvalues. This yields the final activation equation as below.
French: où η représente une activation non linéaire et wl est un filtre spatial. Le côté droit de l’équation est équivalent à η(w^l(Δ)hl) où w^l représente un filtre spectral et Δ est le Laplacien. Nous pouvons ensuite décomposer le côté droit de l’équation en η(ϕw^l(Λ)ϕ⊤hl), où ϕ est la matrice de Fourier et Λ  sont les valeurs propres. On obtient ainsi l’équation d’activation finale suivante :
English: SplineGCNs involve computing smooth spectral filters to get localized spatial filters. The connection between smoothness in frequency domain and localization in space is based on Parseval’s Identity (also Heisenberg uncertainty principle): smaller derivative of spectral filter (smoother function) ⇔ smaller variance of spatial filter (localization).
French: Les SplineGCNs impliquent le calcul de filtres spectraux lisses pour obtenir des filtres spatiaux localisés. Le lien entre le lissage dans le domaine fréquentiel et la localisation dans l’espace est basé sur l’égalité de Parseval : plus petite dérivée du filtre spectral (fonction de lissage) ⇔ plus petite variance du filtre spatial (localisation).
English: How do we get a smooth spectral filter? We decompose the spectral filter to be a linear combination of K smooth kernels B (splines) so that w^l(Λ)=diag(Bwl). The activation equation the is as the following.
French: Comment obtenir un filtre spectral plus lisse ? Nous décomposons le filtre spectral pour obtenir une combinaison linéaire de K noyaux lisses B (splines) de sorte que w^l(Λ)=diag(Bwl). L’équation d’activation est la suivante :
English: Now, we only have O(1) parameters (constant K) per layer to be learned through backpropagation. However, the learning complexity is still O(n2).
French: Maintenant, nous n’avons que des paramètres O(1) (K constants) par couche à apprendre par rétropropagation. Cependant, la complexité de l’apprentissage est toujours de O(n2).
English: How do we learn in linear time O(n) (w.r.t. graph size nn)? The O(n2) complexity is a direct result of using Laplacian eigenvectors. We need to avoid eigen-decomposition, which can be achieved by directly learning a function of the Laplacian. The spectral function will be a monomial of the Laplacian as shown here.
French: Comment apprenons-nous en temps linéaire O(n) (taille du graphe par rapport à n) ? La complexité O(n2) est le résultat direct de l’utilisation de vecteurs propres laplaciens. Nous devons éviter la décomposition propre, qui peut être réalisée en apprenant directement une fonction du Laplacien. La fonction spectrale est un monôme du Laplacien comme montré ici :
English: Complexity is now O(E.K)=O(n) for sparse (real-world) graphs. We can reshape Xk​ into Xˉ to form a linear operation. We now have the following activation equation.
French: La complexité est maintenant de O(E.K)=O(n) pour les graphes épars (du monde réel). Nous pouvons remodeler Xk​ en Xˉ pour former une opération linéaire. Nous avons maintenant l’équation d’activation suivante :
English: Note: Since no Laplacian eigen-decomposition is used, all operations are in the spatial (not spectral) domain, so calling them Spectral GCNs may be misguided. Further, another drawback of LapGCNs is that convolutional layers involve sparse linear operations, which GPU’s are not fully optimized for.
French: Note : comme aucune décomposition propre laplacienne n’est utilisée, toutes les opérations se situent dans le domaine spatial (et non spectral). Il peut donc être erroné de les appeler GCNs spectraux. En outre, un autre inconvénient des LapGCNs est que les couches convolutionnelles impliquent des opérations linéaires éparses pour lesquelles les GPUs ne sont pas totalement optimisés.
English: We now have resolved the 3 limitations of Vanilla GCNs through localized filters (in K-hop support), O(1) parameters per layer and O(n) learning complexity. However, the limitation of LapGCNs is that monomial basis (Δ0,Δ1,…) used is unstable for optimization because it is not orthogonal (changing one coefficient changes the function approximation).
French: Nous avons maintenant résolu les 3 limitations des GCNs standards grâce à des filtres localisés (en support K-hop), O(1) paramètres par couche et O(n) complexité d’apprentissage. Cependant, la limitation des GCNs standards est que la base monomiale (Δ0,Δ1,…) utilisée est instable pour l’optimisation car elle n’est pas orthogonale (la modification d’un coefficient modifie l’approximation de la fonction).
English: To resolve the issue of unstable basis we can use any orthonormal basis, but it must have a recursive equation to ensure linear complexity. For ChebNets we use Chebyshev polynomials, and as in a LapGCN we represent the expression Tk(Δ)h (Chebyshev function applied to h) by Xk​, a recursive equation defined as,
French: Pour résoudre la question de la base instable, nous pouvons utiliser n’importe quelle base orthonormée, mais elle doit avoir une équation récursive pour assurer une complexité linéaire. Pour les ChebNets, nous utilisons des polynômes de Tchebyshev, et comme dans un LapGCN, nous représentons l’expression Tk​(Δ)h (fonction de Tchebyshev appliquée à h) par Xk​, une équation récursive définie comme :
English: ChebNets are GCNs that can be used for any arbitrary graph domain, but the limitation is that they are isotropic. Standard ConvNets produce anisotropic filters because Euclidean grids have direction, while Spectral GCNs compute isotropic filters since graphs have no notion of direction (up, down, left, right).
French: Les ChebNets sont des GCNs qui peuvent être utilisés pour n’importe quel domaine de graphe arbitraire, mais la limitation est qu’ils sont isotropes. Les ConvNets standards produisent des filtres anisotropes car les grilles euclidiennes ont une direction, tandis que les GCNs spectraux calculent des filtres isotropes car les graphes n’ont pas de notion de direction (haut, bas, gauche, droite).
English: We can extend ChebNets to multiple graphs using a 2D spectral filter. This may be useful, for example, in recommender systems where we have movie graphs and user graphs. Multi-graph ChebNets have the activation equation as below.
French: Nous pouvons étendre les ChebNets à plusieurs graphes en utilisant un filtre spectral 2D. Cela peut être utile, par exemple, dans les systèmes de recommandation où nous avons des graphes de films et des graphes d’utilisateurs. Les ChebNets multi-graphes ont l’équation d’activation suivante :
English: ChebNets are unstable to produce filters (localize) with frequency bands of interest (graph communities). In CayleyNets, we instead use as our orthonormal basis Cayley rationals.
French: Les ChebNets sont instables pour produire des filtres (localiser) avec des bandes de fréquences d’intérêt (communautés de graphes). Dans les CayleyNets, nous utilisons plutôt comme base orthonormée les rationnels de Cayley :
English: CayleyNets have the same properties as ChebNets (are isotropic), but they are localized in frequency (with spectral zoom) and provide a richer class of filters (for the same order K).
French: Les CayleyNets ont les mêmes propriétés que les ChebNets (sont isotropes), mais ils sont localisés en fréquence (avec un zoom spectral) et fournissent une classe de filtres plus riche (pour le même ordre de grandeur K).
English: The main issue when we perform Template Matching for graphs is the lack of node ordering or positioning for the template. All we have are the indices of nodes, which isn’t enough to match information between them. How do we design template matching to be invariant to node re-parametrisation? That is, if we have a graph and one of the nodes had an arbitrary index, say 6, this index could’ve been 122 as well. So it’s essential to be able to perform template matching independent to the index of the node.
French: Le problème principal lorsque nous effectuons l’appariement de patrons pour les graphes est l’absence d’ordre ou de positionnement des nœuds pour le modèle. Tout ce que nous avons, ce sont les indices des nœuds, ce qui ne suffit pas pour faire correspondre les informations entre eux. Comment pouvons-nous concevoir l’appariement de patrons de manière à ce qu’il soit invariant pour le reparamétrage des nœuds ? C’est-à-dire pas de modification si nous avons un graphe et changeons l’indice arbitraire de l’un des nœuds de, disons 6, à 122. Il est donc essentiel de pouvoir effectuer l’appariement de patrons indépendamment de l’index du nœud.
English: The simplest way to do this is by having only one template vector wl, instead of having wj1​,wj2, wj3​ or so on. So we match this vector wl with all other features on our graph. Most Graph Neural Networks today use this property.
French: La façon la plus simple de le faire est d’avoir un seul vecteur de patron wl, au lieu d’avoir wj1​, wj2​, wj3​ ou ainsi de suite. Nous faisons donc correspondre ce vecteur wl avec toutes les autres caractéristiques de notre graphe. La plupart des GNNs utilisent aujourd’hui cette propriété.
English: where, wl is the template vector at layer l of dimensions d×1 and hijl​ is the vector at node j with d×1 which will result in a scalar quantity hil+1​ at node i.
French: où wl est le vecteur de patron au niveau de la couche ll de dimensions d×1 et hijl​ est le vecteur au niveau du nœud j avec d×1 ce qui donnera une quantité d’échelle hil+1​ au nœud i.
English: The vectorial representation is responsible for handling the absence of node ordering, which is invariant of node re-parametrisation. That is, adding on the previous example, if the node has an in 6 and is changed to 122, this won’t change anything in the computation of the activation function of the next layer hl+1.
French: La représentation vectorielle est responsable de la gestion de l’absence d’ordonnancement des nœuds, qui est invariante de la reparamétrisation des nœuds. C’est-à-dire, en ajoutant à l’exemple précédent, si le nœud en 6 et est changé en 122, cela ne changera rien dans le calcul de la fonction d’activation de la couche suivante hl+1.
English: We can also deal with neighbourhood of different sizes. That is we can have a neighbourhood of 4 nodes or 10 nodes, it wouldn’t change anything.
French: Nous pouvons également traiter des voisinages de tailles différentes. C’est-à-dire que nous pouvons avoir un voisinage de 4 nœuds ou de 10 nœuds, cela ne changera rien.