[Red neuronal gráfica]Red neuronal gráfica (GNN)

I. Resumen

        1. Figura

Los gráficos se utilizan                 para representar relaciones entre entidades ( las entidades se representan como nodos y las relaciones se representan como bordes ) .

                Las relaciones se dividen en dirigidas y no dirigidas.

         2. Representación gráfica de datos

                Tomando un archivo de imagen como ejemplo, podemos usar una matriz de adyacencia para representar una imagen. Cada punto representa un punto de píxel. Si un punto de píxel tiene x píxeles adyacentes, se pueden usar x bordes para representar la relación entre este punto.

                 Tomando la secuencia de texto como ejemplo, también se puede usar una matriz de adyacencia para representar esta oración. Hay un borde dirigido que conecta dos palabras adyacentes .

                 En segundo lugar, las secuencias atómicas, las redes sociales, los gráficos de conocimiento, etc., pueden representarse como una matriz de adyacencia .

        3. Tipo de tarea

                Tareas a nivel de gráfico , tareas a nivel y tareas a nivel de borde . La base de la clasificación es que la tarea necesita aprender y predecir los atributos de este nivel (gráfico, punto, borde).

2. Grafos y Redes Neuronales

        1. La estructura de datos del gráfico

                Un gráfico contiene: atributos de vértices, atributos de bordes, información global y conectividad . Entre ellos, los atributos de los vértices, los atributos de los bordes y la información global se pueden expresar como vectores . Y la conectividad no se puede representar mediante una matriz general (debe ser independiente del orden de los atributos)

                La siguiente figura es un ejemplo, que se puede expresar de la siguiente manera

Nodes
[0,1,1,0,0,1,0,0]

                Representa los atributos de cada vértice (escalar/vector) 

Edges
[2,1,1,1,2,1,1]

                Representa los atributos de cada borde (escalar/vector) 

Adjacency List    #邻接列表
[[1,0],[2,0],[4,3],[6,2],[7,3],[7,4],[7,5]]

                 Longitud = número de aristas; el i-ésimo vector indica qué nodos están conectados por la i-ésima arista.

Global
0

                información global (escalar/vectorial)

        2. Red neuronal gráfica (GNN)

                GNN : un cambio optimizado en todos los atributos (vértices, aristas, global) en el gráfico (esta transformación puede mantener la información simétrica del gráfico <es decir, el resultado no cambiará después de que los vértices se ordenen con otro método>). La entrada y la salida a través de una red neuronal que pasa información es un gráfico (que cambia los atributos de los vértices y los bordes, pero no cambia la conectividad ).

                Después de generar el gráfico, de acuerdo con las diferentes tareas, construya un MLP (perceptrón multicapa) para el vector de vértice, el vector de borde y el vector global, respectivamente .

Agregue una capa completamente conectada y una función de activación                 después de MLP para obtener el valor previsto (todos los atributos comparten una capa completamente conectada)

                 Combinación : si es necesario predecir un vértice pero no hay un vector de vértice, el vector de todos los bordes conectados al vértice y el vector global se pueden superponer para representar el vector del punto.

                        De manera similar, la falta de vectores de borde o vectores globales se puede reemplazar reuniendo otros vectores.

                 La estructura GNN más simple es la siguiente:

                         El gráfico se ingresa en la unidad GNN, y el vector de vértice, el vector de borde y el vector global se transforman respectivamente para obtener un gráfico, y el resultado de predicción se obtiene a través de la capa completamente conectada y la función de activación; si faltan algunos atributos, pueden ser reemplazados por la agregación de otros atributos.

        3. El papel de la convergencia en GNN

                En el GNN más simple, el módulo GNN no cambia la conectividad del gráfico para aprovechar al máximo la conectividad del gráfico . Podemos usar el paso de información para mejorar GNN.

                El método específico es sumar los vectores de un cierto vértice y sus dos vértices vecinos para formar un vector convergente , luego enviar este vector convergente al MLP y finalmente actualizarlo a la siguiente capa.

                La operación de convergencia es similar a la convolución en una imagen . La mayor diferencia con respecto a la convolución es que los elementos en el campo receptivo del kernel de convolución se ponderan y suman (peso del kernel de convolución x valor de píxel), mientras que la suma convergente es una suma no ponderada . y .

                La agrupación también puede tomar el valor máximo y el valor promedio , similar a MaxPooling y MeanPooking en CNN.

                 La operación de agregación no es unidireccional En el apilamiento real, podemos pasar información de los vértices a los bordes o al revés, e ingresar el MLP después de que todo esté completo. Un orden diferente de pase afectará el resultado final (se puede alternar).

                 Si las imágenes no se combinan lo suficientemente bien, la información de un nodo debe transmitirse lejos para llegar al nodo de destino. Podemos establecer un Nodo Maestro (nodo virtual, que está configurado para conectarse a todos los puntos del gráfico, marcado como Naciones Unidas), y cuando sea necesario agregar la información de los vértices a los bordes, Naciones Unidasla información de los vértices puede ser agregado.

                 ! ! ! Después del procesamiento anterior, GNN puede usar el vector del vértice mismo para la predicción, o usar toda la información relacionada con el vértice para la predicción. Llamadas " Redes neuronales de gráficos basadas en el paso de mensajes "

3. Muestreo y procesamiento por lotes de gráficos

        Cuando el número de capas de red es grande, el gráfico debe muestrearse al pasar el gradiente hacia adelante (de lo contrario, ocupará demasiada memoria)

        Los métodos comunes de muestreo son los siguientes:

                ①Muestreo aleatorio : seleccione aleatoriamente algunos puntos y obtenga sus vecinos más cercanos; se puede especificar el número de puntos de muestreo 

                ② Paseo aleatorio : a partir de un cierto vértice, camine aleatoriamente a lo largo del gráfico; se puede especificar el número de pasos a caminar

                ③ Muestreo aleatorio + recorrido aleatorio

                ④ Recorrido de ancho : tome un punto y realice un recorrido de ancho de k pasos en sus vecinos 1, 2 y 3

 4. Supuestos

        Para CNN, la suposición es la invariancia de la transformación del espacio ; para RNN, la suposición es la continuidad del tiempo ; y para GNN, la suposición es la simetría del gráfico (el orden de intercambio del gráfico no cambia la naturaleza del gráfico). )

Ninguna, tecnologías relacionadas con GNN

        ①Red GCN

                GCN (redes convolucionales gráficas)-->Red neuronal convolucional gráfica, es decir, una red neuronal gráfica con operaciones de agregación

                Suponiendo que GCN tiene k capas, y cada capa utiliza un recorrido de ancho para recuperar 3 vecinos del punto de destino, se puede aproximar como una red neuronal convolucional 3x3 de k-capa, y el subgráfico se puede aproximar como un mapa de características.

                 La convolución de GCN en el gráfico es equivalente a sacar la matriz para la multiplicación de matrices .

        ②Red GAN

               GAN (redes de atención de gráficos): red de atención de gráficos, la operación de agregación de GNN es la suma sin peso y, a veces, también podemos ponderar la suma para satisfacer las necesidades de cálculo . A diferencia de la suma ponderada de CNN (el peso de CNN está relacionado con la posición), porque para satisfacer la característica de invariancia de la conexión, se debe garantizar que la suma ponderada de GNN sea insensible a la posición ; en términos generales, se puede usar el mecanismo de atención: el peso depende de la relación entre vectores entre dos vértices . Después de Atención, hacemos la multiplicación de puntos de los pesos obtenidos con los vértices y luego los sumamos.

Supongo que te gusta

Origin blog.csdn.net/weixin_37878740/article/details/129263853
Recomendado
Clasificación