Un estudio preliminar sobre la red neuronal Graph - GNN


título: Graph Neural Network (GNN)
fecha:
etiquetas:

  • ensayo
  • Categorías de puntos de conocimiento
    :
  • [notas de estudio]

Un primer vistazo a las redes neuronales gráficas (GNN)

Fuente del artículo: https://distill.pub/2021/gnn-intro/

Prefacio: Dime por qué quieres escribir este artículo, porque recientemente he oído hablar de "Graph Neural Network", pero nunca he entendido qué es, así que esta vez tengo la oportunidad de tener una comprensión simple de Graph Neural Network. Comencemos Póngase manos a la obra.

El artículo completo no divide el contenido en capítulos, sino que solo lo explica de principio a fin, por lo que aquí completé las notas en orden según el orden del texto original.

El artículo primero dijo tal oración We are starting to see...... La introducción de esta oración muestra que la red neuronal gráfica actual aún se encuentra en una etapa emergente, por lo que todavía existe una cierta perspectiva de desarrollo, tanto un desafío como una oportunidad.

El autor explica y explica qué es una red neuronal gráfica a partir de los siguientes cuatro aspectos (también el punto principal de este artículo):

  1. Qué tipo de datos se pueden representar como un gráfico;
  2. ¿Cuál es la diferencia entre el gráfico y otros datos;
  3. Construir una GNN;
  4. Proporcionar un patio de recreo GNN ;

que es un grafo

Un gráfico representa la relación entre los nodos de entidad, como se muestra en la siguiente figura:

imagen-20211129201442254

Donde U representa el gráfico completo.

Para explicar mejor qué es un nodo, una relación y el grafo completo, podemos usar la siguiente forma de representar qué es un grafo (expresado en forma de vector):

imagen-20211129201925513

Además, los gráficos se pueden representar como gráficos no dirigidos y gráficos dirigidos:

imagen-20211129202136128

Los datos se representan como un gráfico.

Entonces, ¿cómo se pueden representar otros datos como un gráfico?

Imgae como gráficos

Consideramos el punto de píxel de los datos de la imagen como un nodo, por lo que se puede construir un gráfico:

imagen-20211129202820443

Texto como gráficos

Si se utiliza un gráfico para representar un fragmento de texto, se representa mediante un gráfico dirigido. Luego, en un párrafo, cada carácter, palabra, token, etc. se puede utilizar como un nodo del gráfico:

imagen-20211129203321360

Por supuesto, el artículo también explicaba que en la actualidad, si las imágenes y los textos se expresan en forma de imágenes, no es un método de codificación de uso común para ambos, porque si se expresan en forma de imágenes, se generarán representaciones redundantes. .

otras formas de representación de datos

  • Representación de un gráfico molecular:

    imagen-20211129204058449

  • Representación de redes sociales:

imagen-20211129204110758

  • Representación de la relación de competencia (Hable brevemente sobre este ejemplo: es la relación entre cada persona y los demás en una competencia de Taekwondo, ya sea para competir o no, se puede expresar en forma de gráfico):

imagen-20211129204826923

Problema resuelto o aplicación

Entonces, ¿qué problemas pueden resolver los gráficos?Se ​​puede considerar desde los siguientes tres aspectos:

  • nivel gráfico
  • Nivel de nodo (nivel de nodo)
  • nivel de borde

La primera es la tarea a nivel de gráfico, el artículo menciona que una tarea es verificar o comprobar si hay dos bucles en un gráfico molecular:

imagen-20211129205703476

Dichos problemas son similares a los problemas de clasificación en imágenes y similares a las tareas de análisis de sentimientos en texto.


La tarea a nivel de nodo, el ejemplo dado en el artículo es el problema de competencia de Taekwondo, suponiendo que el instructor Sr. Hi y el administrador John H tienen un desacuerdo durante la competencia, el nodo representa al personal que participa en la competencia y el edge representa la relación, entonces la tarea es— —Clasificar correctamente a los participantes como del lado del Sr. Hi o del lado de John H:

imagen-20211129210328340

Luego en la imagen, es similar a la tarea de segmentación de la imagen, y cada nodo representa un píxel;

En el texto, es similar a predecir la parte gramatical de las palabras en el etiquetado de frase-parte gramatical;


Teniendo en cuenta el nivel de borde, este documento propone tal escenario, suponiendo que en un juego, los personajes están representados por nodos, luego los bordes se usan para representar la relación entre los nodos:

imagen-20211129210829481

Es decir, la tarea se convierte en predecir la relación entre nodos, lo cual es muy similar a la extracción de relaciones en el mapa de conocimiento:

imagen-20211129210943171

Problemas en el aprendizaje automático

El artículo trata principalmente los problemas existentes en la red neuronal, es decir, cómo representar el gráfico cuando se utiliza la red neuronal en el gráfico.

Hasta ahora, sabemos que los gráficos tienen cuatro propiedades que debemos considerar:

  • nodo;
  • lado;
  • Información completa de los atributos de la imagen;
  • conectividad

Los tres primeros también se pueden expresar —expresados ​​por vectores, y el más difícil de expresar es el último— la conectividad del grafo, es decir, ¿cómo expresar la conectividad de dos nodos?

Algunas personas dicen que la matriz de adyacencia se puede usar para realizar la representación de conectividad de almacenamiento, pero hay algunos problemas de esta manera:

  1. Bajo la premisa de una gran cantidad de datos, el gráfico no se puede almacenar;

  2. Si está representado por una matriz dispersa, la computación paralela no se puede realizar en la GPU (este también es un problema por resolver en la actualidad);

  3. Otra característica de la matriz de adyacencia es que la información de un gráfico se puede representar mediante diferentes matrices de adyacencia, entonces, ¿cómo debe manejar la red neuronal las diferentes entradas de datos? Es decir, cómo procesar datos para lograr una representación no secuencial.

    imagen-20211129213719468

El documento propone la siguiente representación:

imagen-20211129214841530

  • Para los nodos en el gráfico, use un escalar para representar (numerar los nodos en el gráfico), similar al método de representación One-hot;
  • Para el borde en el gráfico, también está representado por un escalar, y también está representado por un método similar a One-hot;
  • La conectividad aquí está representada por una lista de adyacencia, la longitud de la lista representa el número de aristas entrantes y los elementos de la lista son dos tuplas, que indican respectivamente qué dos nodos están conectados a ambos lados de la arista;

¿Qué es una red neuronal gráfica?

El artículo primero da un concepto de GNN:

Un GNN es una transformación optimizable en todos los atributos del gráfico (nodos, bordes, contexto global) que conserva las simetrías del gráfico (invarianzas de permutación).

La traducción es que la red neuronal de gráficos es un gráfico que puede transformar las propiedades del gráfico y puede mantener la información simétrica en el gráfico.

La información simétrica significa que después de reordenar las posiciones de los nodos, la estructura del gráfico permanece sin cambios.

El artículo dice que el marco se usa message passing neural networkpara construir GNN y, por supuesto, hay otras redes para la representación. En esta red, la entrada es una red gráfica y la salida sigue siendo una red gráfica.

El GNN más simple

Construyamos un ejemplo del GNN más simple, como se muestra en la figura a continuación, para el vector de vértice (es decir, el vector de nodo que mencionamos anteriormente), el vector de borde y el vector global, construimos un perceptrón de múltiples capas respectivamente.

imagen-20211130161320595

De esta forma, tres MLP constituyen una capa de GNN.

La función de esta capa es ingresar los vectores de vértice de entrada correspondientes, los vectores de borde y los vectores globales en el MLP, y luego ingresar los gráficos correspondientes. Solo se han cambiado los atributos de los gráficos, pero la conectividad o la estructura no ha cambiado.

como predecir

Entonces considere, ¿cómo predecir?

  • caso sencillo

Considere primero el problema de clasificación binaria más simple. Para los vértices, ya tenemos toda la información del vector de vértice. A través de esta información del vector de vértice, podemos agregar una capa completamente conectada con un tamaño de salida de 2 detrás de ella, y finalmente usar un softmax para hacer una lata de clasificación;

De manera similar, para un problema de clasificación múltiple, solo es necesario agregar una capa completamente conectada con un tamaño de salida de n después de la salida y, finalmente, agregar un softmax como predicción.

Para problemas de regresión lineal, solo se requiere una capa conectada con un tamaño de salida de 1.

El significado de la figura a continuación es que, dada la salida de la última capa (un gráfico), luego ingrese los vértices en la capa completamente conectada y finalmente obtenga la salida prevista.

Cabe señalar que todos los nodos comparten los parámetros de la misma capa completamente conectada; de manera similar, todos los bordes también comparten los parámetros de la misma capa completamente conectada.

imagen-20211130163028677

  • situación compleja

Si no hay información de vértice, pero la situación del vértice aún debe predecirse, ¿cómo lidiar con eso?

Un método mencionado en el artículo es - Pooling, que se divide en dos pasos:

  1. Para los elementos que deben agruparse (los elementos aquí se refieren a los bordes adyacentes a la información sin vértice), recopile sus representaciones vectoriales;
  2. Agregue y sume todos los vectores recolectados para obtener un nuevo vector.En este momento, este vector es el vector de vértice que queremos;
  3. (También es necesario agregar un vector global, pero no se menciona en el texto, pero qué es esto se explicará en el intercambio de información global )
imagen-20211130165121454

Expresado por el método de la fórmula, se representa por la siguiente figura:

imagen-20211130170143142

La figura anterior muestra que no hay puntos sino solo aristas, por lo que para el caso de solo información de puntos y sin aristas, se puede utilizar el siguiente método para expresar:

imagen-20211130170350855

Por lo tanto, para el método anterior, podemos ver que no importa qué tipo de datos falten, podemos obtener los datos faltantes de acuerdo con el método de grupo.

Entonces, para resumir un GNN simple, use la siguiente figura para representarlo. Primero, ingrese una imagen y luego obtenga el resultado final a través de MLP. Si faltan datos, puede usar la capa de agrupación para procesarlos y luego pasar por la capa de clasificación para obtener el resultado de la predicción final. .

imagen-20211130171021377

Transferencia de información

El método anterior tiene una gran limitación de que no puede usar la información estructural del gráfico para predecir.Se puede ver que el método anterior solo modifica los atributos de puntos, bordes e información global de forma independiente, sin usar la relación de conexión. Pasar puede resolver este problema muy bien.

De hecho, el proceso de paso de mensajes es muy similar al proceso de agrupación.El proceso se puede representar mediante la siguiente figura (resumida por la información de los nodos adyacentes):

imagen-20211130172512604

Expresado en forma formulaica como sigue:

imagen-20211130173447125

La agrupación mencionada anteriormente se realiza después de la capa de salida final, entonces, ¿es posible completar 提前los atributos de acuerdo con este método?

La respuesta es sí.

Lo siguiente se basa en este método, y la información en el gráfico se puede compartir y distribuir, que es esencialmente la suma de vectores (solo se pueden agregar los lados adyacentes, en otras palabras, solo se pueden agregar los lados adyacentes conectados al punto V) Para sumar el vector del punto V al lado, se suma el mismo razonamiento al punto.)

imagen-20211130174210484

Sin embargo, aún no se ha determinado si es mejor agregar desde el conjunto de puntos al conjunto de bordes primero, o agregar desde el conjunto de bordes al conjunto de puntos primero (los dos métodos producirán resultados diferentes). Además, en el artículo también se proporcionan otros métodos, como grupos convergentes alternativos, que no se tratarán aquí.

intercambio de información mundial

En los casos que hemos discutido hasta ahora, existe el problema de que la información sobre vértices o aristas que no son directamente adyacentes no se puede compartir.

Es por esto que introducimos la información o concepto de variables globales.

El método que se propone en este artículo es introducir un grafo U—denominado master nodeo context vector. Esta U conecta todas las aristas y puntos del grafo, de manera que pueda ser utilizado como puente para la transmisión de información, en concreto, se puede representar mediante el siguiente grafo:

imagen-20211130214542140

Construir un GNN

Esta parte es que hay un gráfico interactivo en el texto, que muestra que GNN es muy sensible al ajuste de hiperparámetros.Aunque no está claro lo que significa el gráfico, no daré más detalles aquí.

Hay mucha discusión al final del artículo, así que lo agregaré cuando tenga tiempo.

Supongo que te gusta

Origin blog.csdn.net/c___c18/article/details/131154270
Recomendado
Clasificación