Logotipo de Zephyrnet

Cómo empezar con Graph Machine Learning

Fecha:

aprendizaje automático de gráficos

Este blog es parte de mi "Actualización de aprendizaje profundo" serie y quiero abrirla con una pregunta: ¿Qué he aprendido sobre Graph ML en más de 2 meses?

¿Nada? Si ese fue su primer pensamiento, no se preocupe, probablemente sea cierto. 😅

Dejando a un lado las (malas) bromas, mi "conocimiento relativo" (el conocimiento que "poseo" frente al conocimiento del que soy consciente) se está acercando asintóticamente 0 mientras que mi “conocimiento absoluto” creció bastante durante los últimos 2 meses.

Pero nunca ves todas las cosas maravillosas que has aprendido, ves eso 0. Tienes esa extraña sensación de que 0 te está mirando. Al menos yo lo tengo, a veces.

Si este contenido educativo en profundidad es útil para usted, suscríbete a nuestra lista de correo de investigación de IA ser alertado cuando lancemos nuevo material.

Siempre es así. Te acercas a un nuevo campo y tienes esta sensación delirante de que solo necesitarás aprender A (por ejemplo, word2vec / node2vec), B (por ejemplo, GPT / GCN) y C (por ejemplo, BERT / GAT) y dominarás el campo. .

Es finito. Puedes completarlo. Es como un juego.

Pero, a medida que sigues aprendiendo y explorando, descubres un mundo completamente nuevo de ideas terminología, de personas y historia. Y ese sentimiento es hermoso y aterrador al mismo tiempo, y supongo que es la razón por la que mucha gente se rinde.

La investigación y el aprendizaje pueden resultar intimidantes porque te hacen sentir muy pequeño. El mejor consejo que puedo darte es: nunca te rindas. Lo digo en serio. Eliminaré tu cuenta de GitHub (¿o Fortnite?) Si lo haces. Lo juro.

Bien, después de darte una crisis microexistencial y luego sacarte a relucir ❤️, continuemos.

Si estaba siguiendo mi viaje, sabía que a continuación abordaré Graph ML. En mi ultimo actualización del blog sobre transformadoresHace 2 meses, mencioné que mi próximo campo de exploración es Graph ML, así que aquí estamos.

Pero primero, ¿Qué es Graph ML?

En pocas palabras, Graph ML es una rama del aprendizaje automático que se ocupa de los datos gráficos. Gráficos consiste en nodos, que pueden tener vectores de características asociados con ellos, y bordes, que nuevamente puede tener o no vectores de características adjuntos.

Los gráficos vienen en diferentes tipos, podemos tener no dirigido que dirigieron gráficos múltiples y hipergrafos, gráficos con o sin auto-bordes. Hay todo un campo de las matemáticas apropiadamente llamado Teoría de grafos que se ocupa de gráficos.

Y no necesita conocer todas las definiciones anteriores por ahora.

Los datos gráficos son abundantes a nuestro alrededor. ¡Tu dilo! Las redes sociales son obviamente gráficos, las moléculas se pueden representar como gráficos (los átomos son nodos y los enlaces son bordes), cualquier tipo de interacción en física se puede modelar como un gráfico, ¡y así sucesivamente!

So qué ¿Qué podemos hacer con las gráficas?

Las tareas comunes incluyen clasificación / regresión de gráficos y clasificación / regresión de nodos / bordes. Hablando de abstracción, ¿verdad? 😅

Permítanme hacer uno de estos menos abstracto. Tal vez los nodos en sus gráficos sean Los Tweets y quieres retroceder el probabilidades que cierto tweet es difundir noticias falsas. Su modelo asociaría un número entre 0 y 1 a ese nodo y ese sería un ejemplo de una tarea de regresión de nodo.

Pero cómo hacemos eso?

Por lo general, tenemos redes neuronales que se ocupan de gráficos y las llamamos Redes neuronales de gráficos (lo estoy simplificando un poco por ahora). Está bien no entender cómo funcionan exactamente estos por el momento, solo quédate conmigo.

Ahora déjeme decirle por qué debería aprender más sobre este campo. ❤️🌍

El asombroso mundo de Graph ML

Hay tantas aplicaciones interesantes. Lo digo en serio. ¡Nunca había visto un campo con tantas aplicaciones tan interesantes!

En toda la ciencia, encontrará GNN (Graph Neural Networks) que se implementan mientras hablamos. Cualquier cosa que puedas modelar como un gráfico (¡y eso es casi todo! 😅) y puedes lanzarle un GNN. 💻

Sistemas de recomendación a gran escala, física de partículas, farmacología / química / biología computacional, predicción de tráfico, detección de noticias falsas y la lista sigue y sigue.

¿Aún no me crees? Genial. No quiero que des mi palabra por sentada, eres un pensador crítico ¡Déjame demostrártelo!

Uber come usa GNN para recomendarte comida y restaurantes.

Descubrimiento de alimentos con Uber Eats: uso del aprendizaje gráfico para impulsar las recomendaciones

Pinterest implementado PinSage GNN hace al menos 2 años en su plataforma y ahora curando tu comida casera y te sugiere los pines más relevantes.

PinSage: una nueva red neuronal convolucional de gráficos para sistemas de recomendación a escala web

Usos de Twitter GNN a detectar (y con suerte filtrar) noticias falsas.

Los usuarios confiables están coloreados en azul y los no confiables (propensos a difundir noticias falsas) en rojo.

¡Esto es posible gracias al hecho de que las noticias falsas y reales se difunden de manera diferente en las redes sociales! De este modo, podemos aprovechar el patrón de propagación de noticias falsas a lo largo del tiempo como una señal valiosa.

En la imagen de arriba, puede notar un patrón interesante que las personas con mentalidad probable tienden a agruparse, no hay nada nuevo allí 😎. Cuando el gráfico tiene esa propiedad (los nodos conectados comparten una etiqueta similar) lo llamamos homofílico (del griego antiguo: "Homos" -mismo, "Philie"- Amistad de amor).

¡Continuemos con la ciencia fundamental!

ESTAMOS detectar partículas de neutrinos en el Polo Sur en el laboratorio de IceCube, y los estamos clasificando usando GNN!

Cubo de hielo es un observatorio de neutrinos de 1 km3 ubicado en el Polo Sur y su propósito principal es buscar neutrinos de alta energía (por encima de 100 gigaelectronvoltios (GeV)).

Básicamente consiste en una rejilla hexagonal de sensores sensibles a la luz que capturan la Luz Cherenkov emergiendo de las interacciones entre partículas cargadas con el hielo.

solicite modele muy bien esta estructura de sensor como un gráfico! Cada sensor de luz es un vértice y tiene asociado un vector de características de 6 dimensiones (3 coordenadas XYZ + algo de información de energía y hora de llegada).

Pero dejemos los detalles técnicos para un poco más tarde y continuemos con la Odisea. ❤️

Podemos usar GNN para ayudar a vencer el cáncer! Tomando los datos de interacción proteína / gen y fármaco y modelando el problema como un gráfico y arrojando algunos Armamento GNN en él podemos encontrar una lista de moléculas que ayudan a vencer / prevenir el cáncer.

HyperFoods: mapeo inteligente de máquinas de moléculas que superan el cáncer en los alimentos (cuanto más grande es el nodo, más diverso es el conjunto de CBM)

Una vez que tengamos las CBM (moléculas que eliminan el cáncer) más eficaces, podemos crear un mapa de los alimentos más ricos en estas CBM, también llamado hipercomidas.

Aquí hay un TL; DR: los hiperalimentos son: té, uva, zanahoria, cilantro, naranja dulce, eneldo, repollo y apio silvestre.

Pero, ¡no se sobredosis con estos, se lo ruego! 😂

Sé que comencé a beber té verde con regularidad después de leer este artículo. ¿Quién dice que leer artículos de investigación no es saludable? 🍎

En una nota al margen, me tomo muy en serio mi nutrición. Regularmente estoy empujando tanto mi cuerpo (levanto pesas, etc.) como mi mente al límite, por lo que es muy importante pensar en la recuperación y el descanso también. Sueño de alta calidad, omega-3, nueces, vitamina D, té verde son algunos de mis trucos.

Pero si no eres fanático de la nutrición (y la causalidad en general 😜), la siguiente investigación puede entusiasmarte aún más: predecir (polifarmacia) los efectos secundarios de los medicamentos usando GNN!

Modelado de los efectos secundarios de la polifarmacia con redes convolucionales gráficas

Los efectos secundarios de la polifarmacia (usar varios medicamentos al mismo tiempo) es algo que casi todo el mundo experimentará y sabemos que nuestros abuelos ya lo están experimentando.

Básicamente, no podemos decir con certeza qué le sucederá si toma más de 2 medicamentos al azar.

La detección experimental de cada combinación de medicamentos para detectar efectos secundarios es imposible debido a la naturaleza combinatoria del problema, ¡así que los métodos computacionales como los GNN al rescate!

Aparte del problema de los efectos secundarios de la polifarmacia, nos enfrentamos a una amenaza cada vez mayor de bacterias resistentes a los antibióticos que están evolucionando gracias a nuestro uso irresponsable de antibióticos.

A principios de 2020, se publicó una aplicación súper famosa de GNN en Cell: Un enfoque de aprendizaje profundo para el descubrimiento de antibióticos.

Nota: no hay pdf de acceso gratuito, desafortunadamente (afaik), lo que me entristece

Básicamente, al entrenar un GNN en un conjunto de datos de moléculas que se sabe que inhiben el crecimiento de Escherichia coli, y más tarde haciendo inferencias sobre un conjunto de datos de medicamentos bajo investigación, "descubrieron" la halicina, una molécula previamente probada por sus propiedades antidiabéticas ahora reutilizada para ser utilizada como un potente antibiótico.

He omitido muchas aplicaciones interesantes, como predecir propiedades cuánticas de las moléculaspredecir la propiedad química X de la molécula (por ejemplo, solubilidad), etc.

Es una lista infinita.

¡Ahora puede ver cuán aburridos y homogéneos son los campos de visión artificial y PNL! 😅

PNL: Manipulo texto. CV: Manipulo imágenes. Gráfico ML: ¡Sostenga mi cerveza! 🍺

Dejando a un lado las bromas, hay algunas buenas conexiones entre CV / NLP y Graph ML. Puede tratar a los transformadores como redes de atención de gráficos que operan en gráficos completamente conectados (pero más sobre eso más adelante) y puede tratar las imágenes / videos como gráficos regulares (también conocidos como cuadrículas).

Un ejemplo de una imagen de 4 × 4 píxeles: podemos tratar una imagen como un gráfico de cuadrícula. Cada nodo tiene asociado un escalar (escala de grises) o un vector 3D ((RGB) con él. Esa es la señal gráfica en este ejemplo.

A través de esta lente, todo es un gráfico. Ahora bien, si esta abstracción tiene un sentido real es específico del problema. Los modelos especializados, como las CNN, tienen algunos sesgos útiles arraigados en ellos y probablemente no querrá aplicar un GNN directamente a los píxeles de la imagen (aunque los GNN están ganando terreno en el mundo de las CV de una forma u otra).

¡Con suerte, te entusiasmé! Permítanme mostrarles algunos recursos que me han resultado útiles para aprender sobre Graph ML.

Nota: a menudo menciono GNN, pero son solo un subconjunto del campo Graph ML. Aparte de los GNN, existen métodos de incrustación de gráficos y muchos otros.

Nota 2 (sobre cómo debería (probablemente) leer el siguiente capítulo): primero léalo sin desviarme de los recursos que he vinculado y solo luego comience a usarlo como manual de referencia, porque eso es lo que es este blog, no es su blog one-shot, léelo y olvídalo, no.

GNN fantásticos y dónde encontrarlos

No pretendo brindarle una descripción general extensa de la literatura de Graph ML aquí, y no creo que eso sea útil en absoluto.

Descargar un montón de recursos (lo que a menudo veo que la gente hace en los repositorios de GitHub) no es tan útil, especialmente para los principiantes.

Lo que intentaré hacer es estructurar algunos de los recursos, que he encontrado útiles, de tal manera que Aleksa, 2 meses más joven, estaría muy agradecida. ❤️

¡Empecemos! Trataré de darte algunos consejos de investigación más generales a lo largo del camino.

Métodos de incrustación de gráficos

Si está tratando de sumergirse en un nuevo campo, es genial eficiente organizar sus recursos de aprendizaje cronológicamente (para nerds: la función de marca de tiempo del trabajo de investigación es muy valiosa, no la ignore).

Antes de que los GNN se convirtieran en la corriente principal, la gente usaba métodos análogos a Word2Vec, que gozaba de una gran popularidad en el mundo de la PNL.

La mayoría de estos se inspiraron directamente en el método Word2Vec y, para ser honesto, estoy feliz de haber construido mis antecedentes de PNL y CV antes de saltar a Graph ML. El campo se inspiró mucho en los campos de CV y ​​PNL, como verá pronto.

Aquí hay algunos documentos con los que te recomiendo que comiences tu viaje:

  • Caminata profunda - se reduce a Word2Vec si hace lo siguiente: muestra "oraciones" del gráfico haciendo aleatorio camina.
  • Nodo2Vec - literalmente la misma idea que DeepWalk con el control adicional de cómo tomará muestras de su gráfico (BFS/DFS). Si le da más peso a BFS, los nodos estrechamente acoplados tendrán incrustaciones similares.
  • Planetoide - un entorno semisupervisado. Aparte de las caminatas aleatorias (sin supervisión), también puede aprovechar las etiquetas (supervisadas). Además, se aseguraron de que su método se pueda utilizar en un entorno inductivo (consulte mi Cuaderno GAT Jupyter para la breve explicación de aprendizaje transductivo vs inductivo, simplemente Ctrl + F es ❤️).

Una breve aclaración sobre DeepWalk: si trata los nodos en el gráfico como palabras, si realiza una caminata aleatoria, básicamente está muestreando una oración aleatoria de su gráfico.

Una vez que tenga la oración, puede hacer la magia de Word2Vec y aprender las incrustaciones de sus nodos de modo que los nodos que tienden a estar cerca en sus oraciones tengan incrustaciones similares.

✅ Métodos de incrustación de gráficos

¡Está bien! ¡Ahora estás listo para un poco de magia GNN! 😍

Graficar redes neuronales

Históricamente, había 2 enfoques principales para desarrollar GNN:

  • Métodos espectrales
  • Métodos espaciales (paso de mensajes)

Ambos intentaron generalizar el concepto matemático de circunvolución (que funcionó tan bien en el mundo de CV) a gráficos.

Los métodos espectrales intentaron preservar la noción matemática estricta de convolución y tuvieron que recurrir al dominio de la frecuencia (base propia de Laplacia) para eso.

Por otro lado, los métodos espaciales no son convoluciones en el estricto sentido matemático de la palabra, pero aún así los llamamos informalmente convoluciones, ya que se inspiraron muy libremente en los métodos espectrales.

En resumen, los métodos espectrales "se extinguieron" porque son:

  • Costoso computacionalmente
  • Inherentemente transductivo

Habiendo dicho eso, definitivamente vale la pena investigarlos y deberías construir al menos algunos fundamentos básicos sobre los métodos espectrales, en mi humilde opinión.

Pero, antes de continuar con los artículos GNN espectrales / espaciales, le sugiero encarecidamente que se tome un tiempo para hacer una descripción general superficial y de alto nivel de lo que es Graph ML. Construye ese esqueleto de conocimiento primero antes de empezar a rellenar los espacios en blanco. El enfoque de arriba a abajo, soy un gran admirador de él.

Recomiendo ver esto visión general de alto nivel de GNN por la gente de Microsoft Research, así como este por Javier Bresson (uno de los grandes nombres en el campo Graph ML):

Además, aquí hay algunos blogs para exponerlo a nueva terminología e información, déjelos asimilar:

Niza!

✅ Una descripción general de alto nivel de Graph ML

Ahora está listo para sumergirse en el mundo de Graph Neural Networks. 🌍

Los métodos espectrales

La principal "herramienta" detrás de los métodos espectrales es algo llamado el gráfico laplaciano. Además, el servicio de suposición de gráfico no dirigido está hecho para que podamos tener un simétrico grafica laplaciana que tiene algunas propiedades matemáticas agradables, a saber, el hecho de que podemos encontrar una Eigenbasis laplaciana ortonormal *.

* es una generalización del Fourier eigenbasis con la que está familiarizado si tomó algún curso de procesamiento de señales, consulte Video de 3B1B para una introducción suave. En un caso especial donde el gráfico subyacente es una cuadrícula (como una imagen), obtenemos sinusoides, es decir, funciones propias de Fourier.

Ahora la idea principal es proyectar la señal del gráfico en esa base propia, filtre la señal del gráfico proyectada directamente en el dominio espectral haciendo un multiplicación por elementos con el filtro, y reproyectarlo de nuevo en el dominio espacial.

Está bien no entender todo esto aquí y ahora. Tendrás tu momento de epifanía tarde o temprano. Aquí están los principales artículos espectrales:

El papel de ChebNets hizo que solo barrios de k-hop puede afectar la representación de características de cualquier nodo en particular y también lo hizo computacionalmente eficiente para hacerlo, utilizando un Polinomia de ChebyshevEn el gráfico Laplaciano no es necesario calcular la base propia de Laplacia, que es una operación cara (~ O (n³)).

Nota: en los trabajos de métodos espectrales, verá algunas matemáticas "pesadas" que no son un requisito previo para comprender los métodos espaciales (y son mucho más populares, así que no se castigue si no obtiene esto la primera vez) ).

Aparte de los documentos, aquí hay otros recursos súper útiles que lo ayudarán a comprender mejor estos métodos espectrales:

Y, finalmente, este video me hizo hacer clic cuando se trata de comprender el método de agrupamiento espectral que aprovecha los vectores propios laplacianos para agrupar los nodos (cualquier intuición adicional que pueda recopilar será útil).

Eso es. He omitido algunos documentos menos importantes para evitar el desorden (y por cierto. Solo recomiendo los recursos que he leer encontrado útil).

✅ ¡Métodos espectrales!

Ahora continuemos con el ámbito de los métodos espaciales.

Métodos de paso de mensajes / espaciales

Aquí hay una explicación súper informal de alto nivel de los métodos de transmisión de mensajes.

El objetivo es actualizar la representación de todos y cada uno de los nodos. Tiene los vectores de características de su nodo y de sus vecinos a disposición. Luego haz lo siguiente:

  1. De alguna manera transforma los vectores de características (tal vez una proyección lineal)
  2. De alguna manera los agregas (tal vez poniéndolos con coeficientes de atención, voilà, obtenemos GAT (ves lo que hice alli))
  3. Actualiza el vector de características (de alguna manera) del nodo actual combinando su vector de características (transformado) con la representación de vecindad agregada.

Y eso es todo, puede incluir muchos GNN diferentes en este marco.

Exploremos ahora algunos de los métodos espaciales más famosos:

  • GCN (Graph Convolutional Network): simplificó el documento de ChebNets para operar en vecindarios de 1 salto e hizo que los GNN fueran mucho más eficientes y aplicables.

Cubrí el artículo de GCN en este video:

Mi descripción general de Graph Convolutional Network (GCN)
  • Red de atención de gráficos (GAT) - hizo GCN más expresivo al permitirle aprenden los coeficientes de agregación de vecindad (GCN usa constantes en lugar de pesos aprendibles).

Como verás más tarde Incluso he implementado GAT desde cero y el propio Petar Veličković (el primer autor) recomendó este video ¡así que supongo que debería ser lo suficientemente bueno! 😅

Mi descripción general del método GAT

Ahora, el problema con GAT y GCN es que originalmente no escalable que se necesita para muchos conjuntos de datos de gráficos de escala masiva del mundo real, como el gráfico de cualquier red social.

Los siguientes 2 artículos hicieron que los GNN fueran aplicables a gráficos enormes:

  • GráficoSAGE - SAmple y agregadoGatE, introdujo el concepto de muestreo de su vecindario y un par de trucos de optimización para restringir el presupuesto de computación / memoria. ¡Es un precursor directo de PinSage que se implementa en Pinterest como el sistema de recomendación!

Esta es mi descripción general de GraphSage. Por cierto. Si se lo estaba preguntando, Graph ML es un campo bastante joven, por lo que no encontrará muchas descripciones generales de YT de estos artículos, por eso estoy vinculando los que creé. Solo deseo vincular el mejor contenido, si ese es a veces mi contenido, déjalo así. 😅 ¡De todos modos! El segundo artículo:

  • pinsabio - Una de las aplicaciones más famosas del mundo real de GNN: sistema de recomendación en Pinterest.

Y aqui esta mi video resumen:

Mi descripción general del método PinSage

Estos fueron algunos de los GNN espaciales más importantes. Yendo más allá, aquí hay un documento que generaliza todas las redes anteriores en un llamado Paso de mensajes marco de referencia:

  • MPNN (mensaje que pasa por la red neuronal): además de tener un significado teórico de unificar los GNN espaciales, también introdujo una aplicación asombrosa de los GNN: predecir las propiedades cuánticas de las moléculas, por ejemplo, vibraciones fundamentales, la energía necesaria para romper la molécula en ciertos estados, etc.

Otros dos artículos fundamentales que debe consultar son:

  • Gráfico cerrado NN - utilizó GRU para la agregación de vecindarios y aplicó el método para la verificación del programa a través de la lógica de separación. No es una lectura fácil, pero creo que vale la pena, jugó un papel importante en el inicio de la revolución del método espacial.
  • Aprendizaje de redes neuronales convolucionales para gráficos - dio una idea de cómo podríamos imponer un orden en la vecindad del gráfico (mediante el etiquetado) y aplicar una convolución que se parezca mucho más a las CNN. Supongo que podría considerarse como una tercera forma de introducir la convolución a los gráficos, pero este enfoque no obtuvo ninguna tracción seria.

Terminando con un artículo más asombroso que mostró que claramente no sabemos lo que estamos haciendo 😂:

Bromas aparte, lo que mostró es que para determinadas familias de gráficos Los GNN son totalmente innecesarios y una línea de base mucho más simple (que actúa como un simple paso bajo filter) puede hacer un trabajo aún mejor.

Es un GNN de una sola capa que primero hace la agregación sobre el vecindario de k-hop (la mayor parte del beneficio surge de esto) seguido de una proyección lineal simple y un softmax.

En estos primeros días de los métodos espaciales nos faltaban respuestas a algunas preguntas teóricas fundamentales como ¿Por qué los GNN son tan superficiales? (en comparación con sus primos extremadamente profundos de CNN), cuáles son sus limitaciones, etc.

Eso nos lleva a la siguiente sección.

✅ Papeles GNN espaciales seminales

¡Vamonos!

GNN expresividad

Los primeros métodos espaciales, como el famoso artículo de GCN, comenzaron a establecer algunos vínculos entre los GNN y los métodos antiguos de teoría de grafos, como el Algoritmo de Weisfeiler Lehman.

Weisfeiler Lehman (1-WL) también conocido como el refinamiento del color El algoritmo es una prueba de isomorfismo de gráfico simple: dados 2 gráficos, verifique que sean iguales aunque sus ID de nodo puedan estar permutados. WL puede decirte con certeza si tus 2 gráficas no son isomórficas y te puede decir, con alta probabilidad, si son isomorfos.

Check out este blog impresionante para obtener una gran explicación de cómo funciona WL.

Ahora bien, hay ciertas familias de gráficos que pueden "confundir" la prueba WL. Aquí hay un ejemplo de dónde el algoritmo WL genera los mismos histogramas de color (y por lo tanto "piensa" que estos 2 gráficos son isomórficos, pero no lo son):

Ok, ahora puedes pensar que todo esto está bien, Aleksa, estás mejorando nuestro conocimiento fundamental de la teoría de grafos, pero ¿qué diablos? Bien.

Este artículo fundamental mostró que las MPNN son, en el mejor de los casos, tan poderoso como 1-WL:

Introdujo ciertos requisitos necesarios para que el MPNN sea tan expresivo como 1-WL como usar suma como la función de agregación (sugiera que es inyectiva) en lugar de la popular max y personalizado agregadores.

Michael Bronstein tiene un bonita serie de 3 blogs sobre este tema, ¡échale un vistazo!

Después de GIN, muchos métodos intentaron dar rienda suelta a los GNN y darles aún más poder expresivo, por lo que se recomendaron varios métodos que eran tan poderosos como k-WL algoritmos.

Además, se recomendaron otras familias de métodos que rompieron con la jerarquía de WL como esta:

La idea principal es que, dado que algunas investigaciones anteriores mostraron que los GNN carecen de la capacidad de contar la estructura de subgrafos, podemos agregarlos explícitamente como características adicionales de nodo / borde.

contar triángulos y caminos y agregar esos números a las características del nodo

Y otro artículo reciente llamado Agregación del vecindario principal mejoró aún más GIN e hizo que su teoría fuera aplicable a casos de uso realistas (ya que el GIN original tenía algunas suposiciones simplificadoras, como usar solo vectores one-hot como vectores de características).

PNA demostró que necesitamos usar múltiples agregadores, utilizaron n-ésimo momentos estadísticos, como la media, la desviación estándar y más, para obtener el garantías teóricas de poder discriminar entre conjuntos múltiples continuos como sugiere el teorema del artículo:

Para discriminar entre conjuntos múltiples de tamaño n cuyo conjunto subyacente es R, se necesitan al menos n agregadores.

Donde los conjuntos múltiples son conjuntos donde los elementos pueden aparecer más de una vez (los vectores de características de un nodo son conjuntos múltiples en nuestro caso específico).

Nota sobre la expresividad: si un modelo es más expresivo, eso significa que produciría diferentes incrustaciones para 2 gráficos que no son isomorfos con mayor probabilidad que algún modelo menos expresivo (como vimos, algunos gráficos confunden la prueba 1-WL (y por lo tanto MPNN) y así, en esos casos, obtendríamos las mismas incrustaciones a pesar de que los 2 gráficos no son isomórficos.)

Como puede ver, podría estar haciendo solo este subcampo de la investigación de Graph ML, ya que es bastante complejo y todavía hay muchas preguntas abiertas.

✅ Expresividad GNN

Demos un paso atrás de la teoría del núcleo duro e investiguemos algunos artículos interesantes sobre aplicaciones, algunos de los cuales mencioné en el capítulo anterior.

Artículos sobre interesantes aplicaciones GNN

Ya he mencionado algunos de estos:

Aparte de todo esto y las cosas que mencioné en el capítulo anterior, también sugiero estos 2 blogs para aplicaciones más increíbles:

Además de este documento para obtener una descripción general holística de los diferentes métodos utilizados en el campo Graph ML:

✅ Emocionantes aplicaciones de GNN

Nos estamos acercando al final. 💪 Ve a tomar un té verde y vuelve. 🍵❤️

Manejo de gráficos dinámicos

Hasta ahora, todos los artículos que vinculé tratan sobre el llamado gráficos estáticos es decir, gráficos que no evolucionas con el tiempo. Pero la verdad es que muchos gráficos de interés cambian con el tiempo. Toma Twitter / Facebook / gráfico como ejemplo.

Aquí hay 2 artículos interesantes que tratan con gráficos dinámicos de pasos en tiempo continuo:

Y nuevamente aquí está mi descripción general del papel TGN (Rossi lo respalda ✅❤️):

Explicación de las redes de gráficos temporales

Esto fue solo para estimular tu imaginación. Puede imaginar dedicar un par de años de investigación solo a este subtema de Graph ML. Todavía quedan muchas preguntas abiertas y problemas de ingeniería.

Los 2 trucos "principales" son:

  • Encuentre una forma de representar el tiempo e inclúyalo como una característica importante
  • Definir un vecindario temporal sobre el cual agregar

✅ Gráficos dinámicos

Finalmente, permítanme dejarles algunos papeles totalmente opcionales.

Nota: prácticamente todas las subsecciones, incluida esta sobre gráficos dinámicos, son ortogonales a otras subsecciones. Solo digo.

Conviértete en un joven ML humano sin supervisión

Si te apasiona el aprendizaje no supervisado, encontrarás estos 2 interesantes:

Aparte del aprendizaje no supervisado, es posible que desee colocar su pie en el Geometric-DLandia (Geometric DL se ocupa principalmente de colectores, aunque hay muchas conexiones con el campo Graph ML):

CNN geodésicas en la variedad Riemanniana (GCNN): este me rompió la mente 😂, trabajar en múltiples implica tantos detalles nuevos que no he visto en ningún otro lugar en todos los diferentes campos de aprendizaje profundo que he explorado hasta ahora.

Aprendizaje profundo geométrico: más allá de los datos euclidianos - nuevamente, muy pesado en matemáticas e incluye una encuesta compleja sobre variedades, geometría diferencial, gráficos, diferentes métodos y diferentes aplicaciones.

Monets - DL geométrica en gráficos / colectores utilizando modelos de mezcla. Generaliza algunos de los métodos anteriores como el GCNN mencionado anteriormente.

Nuevamente, tenga en cuenta que hay algunas matemáticas pesadas, nuevas jergas y terminología involucradas con Geometric DL: ¡prometa que no se sentirá abrumado!

No es necesario que los comprenda para comprender Graph ML.

✅ Varios

Terminemos con este volcado de cerebros. 🧠⚡

Kit de herramientas de visualización de gráficos, conjuntos de datos, ¿hacia dónde seguir?

Aquí enumeraré algunas de las otras cosas que deberían preocuparle. No se trata solo de papeles. Las herramientas son muy importantes. Podría decirse que los datos son incluso más importantes que los algoritmos. ¡Aquí vamos!

Este blog contiene una buena descripción general de diferentes paquetes de dibujo de gráficos:

Terminé usando igrafo ya que parecía la herramienta de dibujo de gráficos más poderosa que podía usar directamente desde Python.

Aquí hay un bonito introducción para principiantes a igraph y aquí está el tutorial oficial (es bastante bueno lo he usado)

Y de nuevo, ¡el dibujo de gráficos es un subcampo en sí mismo! Puede dedicar algunos de sus años de investigación a investigar solo este tema. De manera similar a cómo la tokenización en los transformadores es un subcampo en sí mismo, aunque usualmente usamos estas "herramientas" como una caja negra.

Mientras hablamos de visualizaciones, creo que debería mencionar los conjuntos de datos de gráficos.

Primero que nada, estarás viendo CoraCiteseeerPPIPubmed en todas partes esos son los puntos de referencia clásicos (como MNIST en CV). El problema con estos es, como la gente descubrió más tarde, que son traicionero - No podemos discriminar exactamente entre métodos más expresivos y menos expresivos.

Entonces, la gente comenzó a recomendar nuevos puntos de referencia de gráficos, y todos deberíamos ser conscientes de lo importante que es esto. Si vienes del fondo de CV, como yo, sabes lo que ImagenNet hizo para el mundo CV.

¡Incluso se convirtió en una metáfora! La gente dice que la PNL obtuvo su "Momento de ImageNet" con la llegada de big data, transferencia de aprendizaje y representaciones contextualizadas profundas. ¡Así que los datos son una gran cosa! (juego de palabras probablemente intencionado)

Entonces, ¿qué está pasando con ImageNet en Graph ML?

Benchmark de Open Graph La iniciativa parece muy prometedora, ¡el tiempo lo dirá!

Me gustaría terminar este blog alucinante, que tenía un   Intente cubrir la literatura de Graph ML, con 2 recursos adicionales que debe tener en cuenta.

Si yo fuera tú, leería todos los blogs de Michael (como lo hice):

Y debería seguir el boletín de Sergey. Sebastian Ruder demostró que este formato funciona de maravilla para el mundo de la PNL, ¡así que veamos si Sergey hace lo mismo para el mundo Graph ML! 👑

¡Hemos terminado con la teoría! Ponte tu sombrero relajado y déjame guiarte a través de mi proyecto GAT. 😎

Proyecto Graph Attention Network (GAT)

Como siempre, creo firmemente que leer la teoría no es suficiente. También debe poner a prueba su comprensión, porque, ¿de qué otra manera sabría que no solo está sobreajustando el conjunto de datos de entrenamiento? 😅

¿Y qué mejor manera de hacerlo que diseñarlo desde cero?

Si no puedes construirlo, no lo entiendes - alguien, en algún lugar, en algún momento

Con esa mentalidad, decidí implementar Graph Attention Network. Simplemente se sintió como un paso natural ya que son un generalización de transformadores y he implementado previamente El transformador de Vaswani.

Quiero decir: Whatsapp GNN = ❤️, ¿verdad?

Además, tengo la suerte de poder charlar con Petar Veličković (el primer autor del documento GAT) de forma regular, por lo que me resultó más fácil averiguar por qué se tomaron ciertas decisiones de diseño.

Entonces, después de ~ 3 semanas de mi tiempo libre (incluidos los fines de semana y, aparte de mi trabajo diario en Microsoft, estoy loco, lo sé), lo saqué:

Realmente he aprendido mucho.

Nunca antes había jugado con gráficos (aparte de implementación algunos algoritmos clásicos de gráficos CS en C ++ en los días), así que esto me emocionó mucho.

Entender los datos de los gráficos y visualizarlos me dio mucha satisfacción. He ampliado mi kit de herramientas con nuevos paquetes como igrafo RedXy creé hermosas visualizaciones como esta:

Visualización de la red de citas de Cora

He usado el Kamada Kawai diseño para dibujar esteObviamenteTengo experiencia en análisis de redes y dibujo de gráficos.

Y, por supuesto, he aprendido a implementar GAT de muchas formas diferentes (¡finalmente terminé con 3 implementaciones!). El principal compromiso fue entre la facilidad de comprensión y la eficiencia, como suele ocurrir.

Después de entrenar el modelo, decidí agregar tantas visualizaciones como fuera posible para poder comprender mejor lo que está sucediendo. Las 3 visualizaciones principales que hice fueron:

  • Incrustación de visualización a través de t-SNE
  • Barrio visualización de atención a través del grosor del borde
  • Visualización del patrón de atención a través de histogramas de entropía

Una vez que entrena el GAT en el conjunto de datos de Cora, así es como se ve un solo vecindario (aquí elegí un nodo de alto grado):

Lo primero que nota es que los bordes son del mismo grosor, lo que significa que GAT recibe atención constante en Cora.

Para obtener más detalles, puede consultar el README y el acompañante Cuaderno Jupyter! (este cubre Cora el otro cubre PPI)

Si necesita ayuda adicional para comprender el proyecto, creé un video tutorial del proyecto:

Tutorial del proyecto GAT (readme, jupyter notebook, Cora e implementación n. ° 3)

He puesto énfasis en explicar la implementación más difícil de entender (implementación n. ° 3 como la llamé), así que espero que, además de Jupyter Notebook, esto le ayude a obtener una comprensión profunda de cómo funciona GAT.

También creé este video de actualización del proyecto, mientras trabajaba en GAT, que puede resultarle interesante si está interesado en mi viaje:

Actualización del proyecto GAT + mis otros proyectos de aprendizaje profundo

Aparte de mi implementación de GAT, quiero mencionar que tienes a tu disposición un marco increíble llamado PyTorch Geométrico que debe usar si no necesariamente desea profundizar en los detalles esenciales, pero solo desea probar rápidamente algunos GNN listos para usar.

PyTorch Geometric es graficar el campo ML lo que HuggingFace es para la PNL. 👑

Otra biblioteca que vale la pena mencionar es DGL cuyo conjunto de datos PPI termino usando.

Mis próximos pasos

Uf. Si lo hiciste hasta el final, ¡felicidades! ❤ ️

Espero que este blog lo inspire a comenzar a explorar Graph ML por su cuenta. O aprendizaje profundo / aprendizaje automático en general para el caso.

Una cosa que nota cuando comienza a explorar Graph ML es cuántos campos relacionados (pero con un conjunto completamente nuevo de terminología, ecuaciones y teoría) hay.

Ejemplos serían:

  • Aprendizaje profundo geométrico (aprendizaje en variedades), que está estrechamente relacionado con Graph ML, ya que ambos están relacionados con el aprendizaje en dominios no euclidianos (gráficos / variedades).
  • Aprendizaje profundo de equivalencia (explotando simetrías para hacer que sus modelos sean estadísticamente eficientes, es decir, use menos datos para lograr el mismo rendimiento) - relacionado con CNN y campos de aprendizaje profundo geométrico (principalmente lo he visto en este contexto: CNN grupalesCNN esféricasCNN de calibre (funcionan en múltiples)) pero también es mucho más aplicable en general (transformadores equivariantes, Etc).
  • Campo KG (gráficos de conocimiento), que se encuentra en algún lugar entre el gráfico ML y NLP.

Hice algunas "digresiones" en estos campos y les digo que puede resultar abrumador. No es que sea difícil, es solo que hay mucha información nueva y lleva tiempo.

Especialmente interesantes son GDL y Equivariance DL, donde comenzará a ver la teoría de la física perturbando sus tentáculos e inyectando ideas de física cuántica / de partículas / clásica en el aprendizaje profundo.

Te encuentras haciendo preguntas como cómo terminó aquí la teoría general de la relatividad, pero ahí lo tienes.

Cuando se trata de mis próximos pasos, nada ha cambiado desde mi último actualización de la publicación del blog. ¡En un par de días, comenzaré a explorar el campo (profundo) de RL!

Estoy muy emocionado porque algunos de los avances en IA más famosos ocurrieron exactamente en RL como la línea de investigación AlphaGo / AlphaZero / MuZero / AlphaStar proveniente de DeepMind.

Asegúrese de cubrir ampliamente todos estos en mi canal de YouTube y, nuevamente, probablemente implemente uno de estos desde cero, aunque todavía no soy consciente de lo complejo que es implementar algo similar, así que ' Me mantendré flexible aquí. 😅

Gratitud

También quiero decir que estoy muy agradecido y humilde por todas las cosas hermosas que han estado sucediendo durante los últimos meses de mi vida.

Me enviaron muchas oportunidades, como que me ofrecieran realizar varias investigaciones de Graph ML con personas de CERN y muchas industrias diferentes. Me ofrecieron realizar presentaciones, seminarios web, podcasts e incluso una reunión en Londres (¡esa probablemente ocurrirá, así que estad atentos!).

La gente me pide que los guíe, Sergey Ivanov vinculó mi serie de videos en su boletín, Michael Bronstein, Thomas Kipf y muchas otras personas influyentes de IA compartían mi trabajo.

Voy a tener que di no a muchas oportunidades, ya que simplemente no tengo tiempo para administrarlas todas (¡aunque me encantaría!). Trabajo a tiempo completo en Microsoft y sigo este camino también prácticamente a tiempo completo.

También recibo toneladas de mensajes directos y correos electrónicos y solo quiero decir aquí que me disculpo por adelantado si mis respuestas se retrasan (y en algún momento en un futuro no muy lejano simplemente no podré manejar todo por mí mismo).

Recibí muchos mensajes hermosos de apoyo y amor de muchos de ustedes y realmente lo agradezco. ❤️ Me mantiene trabajando aún más duro.

No dudes en enviarme un mensaje o:

  1. Conéctate y contáctame en Etiqueta LinkedInTwitter
  2. Suscríbete a mi Canal de Youtube para contenido relacionado con la IA ❤️
  3. Sígueme en MedioGitHub

Y si encuentra útil el contenido que creo ¡Considere convertirse en Patreon!

Mucho amor ❤️

Este artículo se publicó originalmente el Medio y re-publicado a TOPBOTS con permiso del autor.

¿Disfrutas este artículo? Regístrese para recibir más actualizaciones de IA.

Te avisaremos cuando publiquemos más educación técnica.

Coinsmart. Mejor Bitcoin-Börse en Europa
Fuente: https://www.topbots.com/get-started-with-graph-machine-learning/

punto_img

Información más reciente

punto_img