Représentation graphique Apprentissage Algorithme Apprentissage

apprentissage de la représentation graphique


Présentation des réseaux de neurones graphiques

difficulté:

  1. En termes de structure de données : le nombre de voisins des données de graphe n'est pas fixe, plutôt qu'une grille canonique similaire aux données de pixels, de sorte que le réseau de neurones convolutifs dans l'image ne peut pas être directement utilisé
  2. Les réseaux de neurones séquentiels traditionnels sont généralement adaptés aux données linéaires unidimensionnelles, de sorte que les modèles de séquence sont difficiles à utiliser directement sur les données graphiques
  3. En termes de distribution d'échantillons, l'apprentissage en profondeur suppose que les échantillons satisfont une distribution indépendante et identique.La généralisation et la définition d'opérateurs importants dans l'apprentissage en profondeur ont fait l'objet de recherches et de développements approfondis au cours des dernières années.

Échantillonnage : étant donné que les grands graphiques à l'échelle industrielle ne peuvent pas être directement chargés en mémoire, de nombreux algorithmes sont conçus pour l'échantillonnage par lots de graphiques, tels que l' échantillonnage de points et l'échantillonnage de couches.


Présentation de l'apprentissage de la représentation graphique :

  • Objectif : mapper des données de structure de graphe clairsemée de haute dimension sur des vecteurs denses, et capturer la topologie du réseau et les informations dans les nœuds du réseau en même temps

Selon la granularité de l'intégration, l'apprentissage de la représentation de graphes est divisé en deux catégories : l'intégration de sommets et l'apprentissage de la représentation de graphes entiers.

  • Vertex Embedding : Génère une représentation vectorielle de faible dimension pour chaque nœud. Granularité fine, généralement utilisée pour la prédiction au niveau du nœud, telle que la classification des nœuds

  • Apprentissage de l'image entière : générer un vecteur pour l'image entière, avec une granularité grossière, généralement utilisé pour la prédiction sur l'image entière

Divisé en trois catégories : basé sur la décomposition matricielle, basé sur la marche aléatoire, basé sur le deep learning

Les graphiques de stockage généraux sont représentés par des statistiques ou des sous-ensembles spécifiques, ou par des matrices d'adjacence (la consommation de mémoire est trop importante)

Par conséquent, il est nécessaire de mapper des données graphiques clairsemées de grande dimension dans des vecteurs denses de faible dimension, de capturer la topologie du réseau et d'accélérer le calcul des données graphiques.

Basé sur la factorisation matricielle

La représentation de la structure du graphe comprend généralement : une matrice d'adjacence et une matrice laplacienne

Obtenir principalement la séquence de vecteurs de nœuds dans le graphique par décomposition matricielle

Connaissant l'ensemble des sommets, comment créer des arêtes ?

Une des méthodes classiques : construire des arêtes en fonction des distances de voisinage

  • Si deux points se situent dans le rayon du point central, c'est-à-dire qu'il y a un bord, vous pouvez également attribuer des poids

La clé de la réduction de la dimensionnalité est de rendre l'espace d'origine aussi proche que possible.

Décomposition de la carte laplacienne

L'idée centrale de l'algorithme LE : on espère que les points connectés seront rapprochés le plus possible dans l'espace après réduction de dimension, afin de maintenir autant que possible les caractéristiques de la structure de données après réduction de dimension

Objectif principal : apprendre la relation de mappage entre l'espace de grande dimension et l'espace de faible dimension

Le problème est transformé en un problème d'optimisation :
W ij ∣ ∣ yi − yj ∣ ∣ 2 W_{ij}||y_i-y_j||^2Oje∣∣ yjeyje2
min 2 YTLY min 2Y^TLYmin 2 ansT LY
L rwvi = λ ivi L_{rw}v_i=\lambda_iv_iLr wvje=jejevje


struc2vec : apprentissage des représentations de nœuds à partir de l'identité structurelle

apprentissage des représentations latentes pour l'identité structurelle des nœuds. : apprentissage de la représentation potentielle des nœuds à partir des caractéristiques structurelles
représentation des nœuds : représentation des nœuds
identité structurelle : caractéristiques structurelles

struct2Vec est un nouveau cadre d'apprentissage flexible pour apprendre les fonctionnalités des nœuds à partir des identités structurelles. Mesurer la similarité des nœuds à différentes échelles à l'aide de hiérarchies et créer un graphique multicouche pour coder la similarité structurelle et générer un contexte structurel pour les nœuds

  • Il montre d'excellentes performances dans l'apprentissage de la capture des caractéristiques structurelles, de sorte que l'amélioration de l'algorithme dans les tâches de classification dépend principalement de l'apprentissage des caractéristiques structurelles.

Différents nœuds remplissent généralement des fonctions similaires dans le réseau, de sorte que les nœuds sont divisés dans la même catégorie par les fonctions qu'ils remplissent dans la structure du réseau

Méthode de mesure des caractéristiques structurelles des nœuds

  1. Distance
    La fonction de distance utilisant le voisinage des nœuds est utilisée pour mesurer la distance entre toutes les paires de nœuds, puis les nœuds sont placés dans des classes équivalentes par regroupement ou appariement
  2. Récursivité
    Construit une récursivité sur des nœuds adjacents, puis s'étend de manière itérative jusqu'à la convergence et utilise la valeur finale pour déterminer la classe d'équivalence

这两种方法各有优劣,所以我们提出了代替的方法

Basé sur l'apprentissage de caractéristiques de structure de nœuds non supervisés, il fonctionne bien dans les tâches de classification et de prédiction.
Dans le champ, le contexte du nœud est généralement codé, w est la taille du pas de la marche aléatoire ; les nœuds avec le même champ les nœuds
avec des ensembles de nœuds similaires dans le champ doivent avoir des représentations potentielles similaires

point clé:

  1. De nombreuses fonctionnalités de nœuds dans la plupart des réseaux réels présentent une forte homogénéité

Exemple : Deux blogueurs ayant les mêmes tendances politiques sont plus susceptibles d'être liés que de manière aléatoire

  1. Les voisins d'un nœud avec une caractéristique donnée sont plus susceptibles d'avoir la même caractéristique

Les nœuds proches dans le réseau et la représentation latente auront tendance à partager des caractéristiques, et de même , deux nœuds éloignés dans le réseau ont tendance à être séparés dans la représentation latente, indépendamment de leur structure locale.

  • L'équivalence structurelle ne sera pas correctement capturée dans la représentation sous-jacente

Cependant, si la classification des caractéristiques qui reposent davantage sur l'identité structurelle et moins sur l'homogénéité, ces méthodes récentes sont susceptibles d'être surpassées en capturant la représentation sous-jacente de l'identité structurelle.

Idée centrale de l'algorithme

  1. Évalue la similarité structurelle entre les nœuds indépendamment des nœuds et des bords et leur position dans le réseau.
    Considérera deux nœuds avec une structure locale similaire, indépendamment de l'emplacement du réseau et des étiquettes de nœud, et ne nécessite pas non plus de connexions réseau, et identifiera des nœuds structurellement similaires parmi des composants connectés différemment
  2. Une hiérarchie est établie pour mesurer la similarité structurelle, et la notion de similarité structurelle est de plus en plus stricte.
    Au bas de la hiérarchie, la similarité structurelle entre les nœuds ne dépend que de leur degré, tandis qu'au sommet de la hiérarchie, la similarité dépend de l'ensemble du réseau.
  3. Générez un contexte aléatoire pour les nœuds afin de diviser les nœuds avec des structures similaires observées par une marche aléatoire pondérée à travers des graphiques multicouches.
    Deux nœuds qui apparaissent dans des contextes similaires sont susceptibles d'avoir des structures similaires, et ce contexte peut apprendre la représentation potentielle des nœuds à travers des modèles de langage
  4. La distance entre les représentations potentielles des nœuds doit être étroitement liée à leur similarité structurelle. Les nœuds avec les mêmes caractéristiques structurelles mais avec des caractéristiques structurelles différentes doivent être éloignés
  5. L'identité structurelle d'un nœud doit être indépendante de sa "position" dans le réseau
  6. La représentation sous-jacente d'un nœud ne doit dépendre d'aucune propriété de nœud ou de bord, y compris les étiquettes de nœud
  7. Les mesures de similarité doivent être hiérarchiques et faire face à l'augmentation de la taille des quartiers, capturant des notions plus répétitives de similarité structurelle
  8. Deux nœuds de même degré sont structurellement similaires, mais ils sont encore plus structurellement similaires si leurs voisins ont également le même degré

Résumé : L'algorithme Struct2Vec ne nécessite aucune mesure de similarité structurelle ou cadre d'apprentissage de représentation spécifique

Exemple:

image

  • Les deux nœuds U et V ont des structures similaires, et le degré du graphique est également similaire, mais la distance entre eux est très éloignée

DeepWalk和node2vec不能捕捉到结构特征,在分类任务中节点标签更依赖于结构特征,struct2vec在分类任务中更优越

Algorithme DeepWalk

Mots clés : intégration de nœuds

基础知识补充:

Qu'est-ce que le contexte ?

Si deux mots différents ont un "contexte" très similaire (c'est-à-dire que les mots de la fenêtre sont similaires, tels que "Kitty a grimpé à l'arbre" et "Cat a grimpé à l'arbre"), alors grâce à notre modèle de formation, les intégrations de ces deux mots sera très similaire.
Alors, qu'est-ce que cela signifie exactement pour deux mots d'avoir un "contexte" similaire ? Par exemple, pour les synonymes "intelligent" et "smart", nous estimons que ces deux mots doivent avoir le même "contexte". Des mots apparentés tels que « moteur » et « transmission » peuvent également avoir des contextes similaires.

En fait, cette méthode peut également vous aider à rechercher des racines, par exemple, le réseau de neurones apprendra des vecteurs de mots similaires pour les mots "fourmi" et "fourmis".

Le stemming est le processus de suppression des affixes pour obtenir la racine d'un mot.

qu'est-ce que l'intégration

Le point d'entrée original de ce concept dans le domaine de l'apprentissage en profondeur est la soi-disant hypothèse multiple (hypothèse multiple). L'hypothèse de variété signifie que "les données d'origine naturelles sont une variété de faible dimension intégrée dans (intégrée dans) l'espace de grande dimension où se trouvent les données d'origine". Ensuite, la tâche de l'apprentissage en profondeur consiste à mapper des données brutes de haute dimension (images, phrases) sur des variétés de basse dimension, de sorte que les données brutes de haute dimension deviennent séparables après avoir été mappées sur des variétés de basse dimension, et cette cartographie est appelée intégration. (Incorporation). L'intégration est en fait un mappage, qui mappe les mots de l'espace d'origine vers un nouvel espace multidimensionnel, c'est-à-dire intègre l'espace de mots d'origine dans un nouvel espace. Par exemple, Word Embedding mappe une phrase composée de mots à un vecteur de représentation. Mais ensuite, je ne savais pas ce qui se passait, et j'ai commencé à appeler le vecteur de représentation de la variété de basse dimension Embedding, ce qui est en fait une mauvaise utilisation. . . Selon la compréhension commune dans la communauté de l'apprentissage en profondeur (en fait, cela s'écarte du sens original),
comprenons-le d'un point de vue intuitif. Le mot chat et chaton sont des mots sémantiquement similaires, tandis que chien et chaton ne sont pas si similaires. Le mot iphone Les sémantiques des mots et chaton sont encore plus éloignées. En apprenant cette représentation numérique des mots dans le vocabulaire (c'est-à-dire en convertissant les mots en vecteurs de mots), nous pouvons effectuer des opérations de vectorisation basées sur ces valeurs pour obtenir des conclusions intéressantes. Par exemple, si nous effectuons cette opération sur les vecteurs de mots chaton, chat et chien : chaton - chat + chien, le vecteur intégré résultant sera très similaire au vecteur de mots chiot.

  • Pour résumer : l'intégration est la caractéristique extraite des données d'origine, c'est-à-dire le vecteur de faible dimension après cartographie à travers le réseau de neurones.

Qu'est-ce que Word2Vec ?

Word2Vec est un modèle d'apprentissage de connaissances sémantiques de manière non supervisée à partir d'un grand corpus de texte, et il est largement utilisé dans le traitement du langage naturel (TAL). Alors, comment cela nous aide-t-il à faire du traitement du langage naturel ? Word2Vec représente en fait l'information sémantique des mots sous la forme de vecteurs de mots en apprenant le texte, c'est-à-dire qu'à travers un espace d'incorporation, les mots sémantiquement similaires sont très proches dans cet espace.

Modèle Skip-Gram

Lien de référence :

Dans le modèle Word2Vec, il existe principalement deux modèles, Skip-Gram et CBOW. D'une compréhension intuitive, Skip-Gram est un mot d'entrée donné pour prédire le contexte. Et CBOW reçoit le contexte pour prédire le mot d'entrée.

image
image

Le modèle Skip-Gram est en fait divisé en deux parties, la première partie consiste à construire le modèle et la deuxième partie consiste à obtenir le vecteur de mots intégré à travers le modèle. L'ensemble du processus de modélisation de Skip-Gram est en fait très similaire à l'idée d'un auto-encodeur, c'est-à-dire de construire d'abord un réseau de neurones basé sur les données d'apprentissage. Lorsque le modèle est formé, nous n'utiliserons pas ce formé Le modèle gère de nouvelles tâches. Ce dont nous avons vraiment besoin, ce sont les paramètres appris par le modèle à travers les données d'apprentissage, comme la matrice de poids de la couche cachée - nous verrons plus tard que ces poids sont en fait ce que nous essayons d'apprendre dans Skip - Gram Les "vecteurs de mots". Sur la base du processus de modélisation des données de formation, nous lui donnons un nom "Fake Task", ce qui signifie que la modélisation n'est pas notre objectif ultime.

La méthode évoquée ci-dessus se verra effectivement en apprentissage non supervisé des fonctionnalités (unsupervised feature learning), la plus courante étant l'auto-encoder (auto-encodeur) : en encodant et en compressant l'entrée dans la couche cachée, puis dans la sortie La couche décode les données et restaure l'état initial Une fois la formation terminée, nous allons "couper" la couche de sortie et ne conserver que la couche cachée.

La fausse tâche

Nous avons mentionné ci-dessus que le véritable objectif de la formation du modèle est d'obtenir les poids de couche cachée appris par le modèle sur la base des données de formation. Afin d'obtenir ces poids, nous devons d'abord construire un réseau de neurones complet en tant que notre "Fake Task", puis revenir pour voir comment nous obtenons indirectement ces vecteurs de mots via "Fake Task".

  • Exemple : Voyons ensuite comment entraîner notre réseau de neurones. Supposons que nous ayons une phrase "Le chien a aboyé sur le facteur".

image

  • Nous entraînerons le réseau de neurones à effectuer les calculs de probabilité ci-dessus en l'alimentant par paires de mots dans le texte. Quelques exemples de nos échantillons de formation sont donnés dans la figure ci-dessous. Nous sélectionnons la phrase "Le renard brun rapide saute par-dessus le chien paresseux", et définissons la taille de notre fenêtre sur 2, window_size=2, c'est-à-dire que nous ne sélectionnons que deux mots avant et après le mot d'entrée à combiner avec le mot d'entrée. Dans la figure ci-dessous, la couleur bleue représente le mot saisi et la case représente les mots dans la fenêtre

image

  • Représentation du modèle : Tout d'abord, nous savons tous que les réseaux de neurones ne peuvent accepter que des entrées numériques, nous ne pouvons pas prendre une chaîne de mots en entrée, nous devons donc trouver un moyen de représenter ces mots. Le moyen le plus courant consiste à construire notre propre vocabulaire sur la base des documents de formation, puis à encoder les mots à chaud.

Structure du réseau neuronal :

image

  • La couche cachée n'utilise aucune fonction d'activation, mais la couche de sortie utilise sotfmax.

Nous entraînons le réseau de neurones sur la base de paires de mots. Les échantillons d'apprentissage sont (mot d'entrée, mot de sortie) de telles paires de mots. Le mot d'entrée et le mot de sortie sont des vecteurs codés à chaud. La sortie du modèle final est une distribution de probabilité

  • couche cachée

Après avoir parlé de l'encodage des mots et de la sélection des échantillons d'apprentissage, regardons notre couche cachée. Si nous voulons maintenant utiliser 300 caractéristiques pour représenter un mot (c'est-à-dire que chaque mot peut être représenté comme un vecteur à 300 dimensions). Ensuite, la matrice de poids de la couche cachée doit être de 10 000 lignes et 300 colonnes (la couche cachée a 300 nœuds)

image

Génération de vecteurs d'incorporation denses pour des données rares dans le domaine du traitement du langage naturel

  • Les matrices sont très rares ! Examinons l'opération matricielle dans la figure ci-dessus. Le côté gauche est une matrice de 1 x 5 et 5 x 3. Le résultat devrait être une matrice de 1 x 3. Selon les règles de la multiplication matricielle, la première ligne et la première colonne du résultat sont, De même, les deux autres éléments peuvent être obtenus comme 12 et 19. Il est très inefficace d'utiliser une telle méthode de calcul pour une matrice de 10 000 dimensions.

  • Afin d'effectuer des calculs efficacement, les calculs de multiplication matricielle ne seront pas effectués dans cet état clairsemé. Vous pouvez voir que le résultat des calculs matriciels est en fait un indice avec une valeur de 1 dans le vecteur correspondant à la matrice. Dans l'exemple ci-dessus, la valeur dans le vecteur de gauche est La dimension correspondante de 1 est 3 (l'indice commence à 0), alors le résultat du calcul est la troisième ligne de la matrice (l'indice commence à 0) - [10, 12, 19], donc la matrice de poids de la couche cachée dans le modèle est Cela devient une "table de correspondance".Lorsque vous effectuez des calculs matriciels, vérifiez directement les valeurs de poids correspondant à la dimension avec une valeur de 1 dans le vecteur d'entrée. La sortie de la couche cachée est le "mot incorporé" pour chaque mot d'entrée.

  • Sortie : après le calcul de la couche cachée du réseau de neurones, le mot fourmis passera d'un vecteur de 1 x 10 000 à un vecteur de 1 x 300, puis sera entré dans la couche de sortie. La couche de sortie est un classificateur de régression softmax, et chaque nœud de celui-ci produira une valeur (probabilité) entre 0 et 1, et la somme des probabilités de tous les nœuds neuronaux de la couche de sortie est 1.

image

Algorithme node2vec

optimiser la cible

Il s'agit d'une fonction de mappage qui mappe les sommets aux vecteurs d'intégration. Pour chaque sommet du graphe, l'ensemble des sommets voisins des sommets échantillonnés par la stratégie d'échantillonnage.

Le but de l'optimisation node2vec est de maximiser la probabilité d'occurrence de ses sommets voisins (comment définir les sommets voisins est très important) dans les conditions données de chaque sommet

Deux hypothèses : 1. Hypothèse d'indépendance conditionnelle 2. Hypothèse de symétrie de l'espace des caractéristiques

Stratégie d'échantillonnage de séquence de vertex

Node2vec utilise toujours la marche aléatoire pour obtenir la séquence voisine de sommets, la différence est que node2vec utilise une marche aléatoire biaisée.

image

  • Le paramètre p contrôle la probabilité de visiter de manière répétée un sommet qui vient d'être visité
  • q contrôle si la marche est vers l'extérieur ou vers l'intérieur. Si q>1, la marche aléatoire tend à visiter et à s'approcher des sommets (biais vers BFS). Si q<1, tendance à visiter des sommets éloignés (biais vers DFS

Étapes de l'algorithme

Étape 1 : Évaluer la similarité structurelle

Nous devons définir une définition de similarité indépendante des nœuds et des arêtes. De plus, cette mesure de similarité doit être hiérarchique et traiter des tailles de voisinage croissantes pour capturer davantage de similarités structurelles. Intuitivement, deux nœuds avec le même degré sont structurellement similaires, mais si leurs voisins ont également le même degré, alors leurs structures sont plus similaires.En prenant un graphe non pondéré comme exemple, si le degré de deux nœuds est 5, alors sa structure est complètement similaire

Lien d'apprentissage du code : https://blog.csdn.net/u012151283/article/details/87255951

Étape 3 : Générer un contexte pour les nœuds

La structure graphique multicouche (capturant la similarité structurelle entre deux paires sans aucune information sur les nœuds) générera un contexte pour chaque nœud

  1. Sturct2vec génère une séquence de nœuds par une marche aléatoire (connexion d'état de la chaîne de Markov), mais dans ce cas par une marche aléatoire qui est biaisée, selon le poids de la matrice du graphe
  2. Avant chaque étape de la marche aléatoire, cela dépend s'il faut changer le niveau (si la probabilité est supérieure à 0, elle ne sera pas utilisée)

La marche aléatoire préfère les nœuds à forte similarité et évite les nœuds à faible similarité

  • Si vous restez au niveau actuel (p>0) :
    la probabilité du nœud u à v est définie comme :

    image

Z est le facteur de normalisation du vecteur de mots u dans la
définition de niveau k :
image

- Si la probabilité est 1-q, vous devez changer le niveau, passer au nœud concerné et au niveau +1 ou -1, puis définir le poids de l'arête
image

Notez que chaque fois qu'une marche aléatoire est effectuée dans une couche, elle prend le sommet actuel dans son contexte, indépendamment de la couche
所以,词向量u不仅在k层有上下文,而且在k+1层也有上下文,因为结构相似度不能随着层级上升而增加

核心:这是一个跨层的层次化上下文的概念

L'ensemble du processus : démarrez d'abord une marche aléatoire entre les nœuds associés dans la première couche ; la marche aléatoire aura une
longueur fixe et relativement courte (nombre d'étapes), puis le processus sera répété un certain nombre de fois résultant en plusieurs promenade indépendante

modèle d'apprentissage de la langue

关键词:词向量映射,节点序列
L'algorithme SKip-Gram générera une séquence de nœuds au lieu d'une séquence de mots, maximisant la possibilité du contexte dans la séquence ; tandis que struct2vec utilise une marche aléatoire d'un graphe multicouche et utilise un mappage Softmax hiérarchique (décrit par un modèle d'arbre à deux catégories, correspondance nœud et niveau)
image

Les nœuds sont intégrés ici, non seulement SKip-Gram peut être utilisé, mais d'autres technologies peuvent également être utilisées

Complexité et optimisation

Considérez la complexité de calcul. Dans chaque couche, nous devons calculer la distance structurelle entre chaque paire de nœuds et utiliser la distance DTW pour calculer la distance entre deux séquences. La complexité est O(n2), et chaque couche a 2n paires de nœuds , le degré maximum dans le réseau est k, et la complexité temporelle totale est O(k*n3)

Idée d'optimisation 1 : réduire la longueur de la séquence de degrés

Parce qu'il est trop coûteux de calculer chaque degré dans la séquence, et que de nombreux nœuds ont le même degré dans le réseau, nous devons proposer une séquence de degrés compressée (tuple avec degré et nombre d'occurrences d'événements) pour réduire la quantité de calcul

Remplacer la distance DTW :
image

  • Notez que l'utilisation d'une séquence de degrés ordonnée compressée pour calculer la séquence d'origine peut produire le même degré et que la distance DTW est également similaire ; mais la séquence elle-même a été réduite et la distance DTW changera également, de sorte qu'elle n'affectera pas
Idée d'optimisation 2 : réduire les calculs de similarité par paires

Le cadre original évalue la similitude entre chaque paire de nœuds à chaque couche k, ce qui semble évidemment inutile, considérant que deux nœuds s'ils ont des degrés très différents ont une distance structurelle même à la couche inférieure (k = 0) Les couches seront très différent, par conséquent, le poids du bord entre eux sera petit, ce qui conduit au fait que ** la marche aléatoire est peu susceptible de traverser ce bord lors de la génération du contexte pour ces nœuds. Par conséquent, l'absence de cette arête dans M a un effet négligeable ; nous limitons le nombre de calculs de similarité deux à deux à chaque nœud : **

Soit Ju l'ensemble des nœuds voisins du nœud u dans M dans la structure hiérarchique du graphe. C'est la même chose pour chaque couche. Ju devrait avoir des nœuds qui sont structurellement les plus similaires au nœud u. Pour déterminer Ju, nous prenons u Les nœuds avec le degré le plus similaire peuvent être calculés en effectuant une dichotomie sur la séquence de degrés ordonnée (pour le degré du nœud u) de tous les nœuds du réseau, et en prenant Log(n) nœuds consécutifs dans chaque direction, ce qui est en fait Le calcul points sont réduits. A l'origine, n nœuds similaires devaient être calculés, mais désormais logn nœuds similaires sont calculés, la complexité spatiale de l'arête sauvegardée est également passée de O(n2) à O(logn);

Réduire le nombre de couches k

Le diamètre k∗ du réseau détermine le nombre de couches dans le graphe hiérarchique M. Cependant, pour de nombreux réseaux, le diamètre peut être beaucoup plus grand que la distance moyenne (exemple extrême, deux nœuds du graphe sont distants de 1000 sauts, tandis que d'autres nœuds ne sont qu'à 1 saut de l'un d'eux). De plus, l'importance d'évaluer la similitude structurelle entre deux nœuds diminue à mesure que k augmente, car à mesure que k se rapproche de k, c'est-à-dire lorsqu'il tend vers le haut de la structure hiérarchique M, la séquence de degrés La longueur de devient relativement plus courte (la plus le nombre de couches est élevé, moins il y a de nœuds à k saut d'un nœud), plus la différence entre fk(u,v) et fk-1(y,v) est petite, donc en fait, il n'est pas nécessaire d'en construire autant couches de graphes, il suffit de prendre un k<k pour le construire**, par exemple, le définir comme hyperparamètre et le définir manuellement.

Je suppose que tu aimes

Origine blog.csdn.net/RandyHan/article/details/130285447
conseillé
Classement