Graficar redes neuronales (GraphSAGE)

Jan 02 2023
Hay una cita famosa del orador motivacional Jim Rohn: “Eres el promedio de las cinco personas con las que pasas más tiempo”. Aquí hay otra: “Muéstrame a tus amigos y te mostraré tu futuro.

Hay una cita famosa del orador motivacional Jim Rohn,

“Eres el promedio de las cinco personas con las que pasas más tiempo”.

[Fuente]

Aquí hay otro: “ Muéstrame a tus amigos y te mostraré tu futuro ”. Es posible que en algún momento te hayas encontrado con estas citas, pero ¿alguna vez te has preguntado sobre su existencia más allá de la filosofía? Bueno, averigüémoslo estudiando un desarrollo reciente en el área de Machine Learning (ML): Graph Neural Networks (GNN).

Como sugiere el nombre, las GNN representan una familia extendida de redes neuronales especialmente diseñadas para aprender de estructuras de datos de gráficos como redes sociales de amigos, estructuras moleculares, etc. ¿Qué son las redes neuronales? Para empezar, se pueden considerar como aproximadores de funciones, es decir, intentan aprender la función oculta subyacente al observar sus datos. Un gráfico es una estructura de datos que representa entidades del mundo real conocidas como nodos y sus interacciones a través de los bordes. También puede contener información adicional, como atributos de nodos y bordes.

En este artículo, veremos un algoritmo GNN popular: GraphSAGE [1]. El objetivo es calcular una representación sucinta de nodos que capture no solo su propia información sino también la de su entorno. Es un algoritmo iterativo donde los nodos adyacentes intercambian información entre sí en cada ronda a través de mensajes que contienen información como atributos de nodo/borde. Posteriormente, cada nodo combina los mensajes de sus vecinos y su propia información para obtener una representación actualizada.

Figura 1: (Izquierda) Descripción general del algoritmo GraphSAGE donde el gráfico consta de 6 nodos que contienen a Bob y Alice y los bordes representan una relación de amigos. (Derecha) Uso de representaciones de salida de GraphSAGE para recomendación de amigos en redes sociales.

La Figura 1 describe una descripción general de GraphSAGE para la comprensión visual, y la Figura 2 muestra el algoritmo cuya entrada consiste en lo siguiente:
(1) Gráfico (, ℰ): esta es la mayor parte de la entrada, que consiste en un conjunto de nodos ( vértices) y aristas ℰ, que representa una red de la vida real. Considere un ejemplo de una red social de usuarios como nodos y bordes que simbolizan la amistad, es decir, un borde (, ) representa que y son amigos.
(2) Características de entrada (_ ∀ ∈ ): Se refiere a los atributos o información previa inicial que tenemos sobre cada nodo en el gráfico. Considere esta representación como un vector o una lista de preferencias de usuario a lo largo de varias dimensiones (ver 'atributos de nodo' en la Figura 1).
(3) Profundidad : representa el número de capas de unidades GNN apiladas unas sobre otras o, intuitivamente, qué tan lejos desea buscar el vecindario de un nodo (alrededores) para recopilar/enviar información.
(4) Pesos ^: los parámetros internos de la -ésima capa del modelo y se aprenden a través de otras técnicas de optimización.
(5) Función de agregador Agregado _: una estrategia para combinar la información recopilada después de recibir los mensajes en un nodo. Esto puede ser diferente para cada capa; por lo tanto, el subíndice . Por ejemplo, sumar toda la información o sacar un promedio.
(6) Vecindario : Esta función define el entorno de un nodo mientras recolecta/envía la información. Para simplificar, estos podrían ser sus nodos adyacentes.

Figura 2: Algoritmo para GraphSAGE [1].

La salida del algoritmo GNN es una representación condensada de cada nodo que captura tanto la información previa de sus atributos con la que comenzamos como la de su entorno en la estructura de la red. Esta última información (también denominada contexto local) es lo que las GNN buscan capturar. ¿Dónde se puede usar esta información?, podría preguntarse. Estas representaciones son indicadores poderosos para una variedad de tareas, como la recomendación de un amigo. Digamos que Bob y Alice aún no se conocen, pero tienen muchos amigos en común. Un modelo de recomendación ahora puede identificar fácilmente una conexión potencial entre los dos, ya que su entorno local (contextos) tiene una superposición sustancial en las nuevas representaciones obtenidas mediante GNN.

El algoritmo comienza con iteraciones de paso de mensajes donde cada nodo envía (recopila) información a (de) sus vecinos. Inicializamos una nueva variable _ para cada nodo con la información inicial que tenemos sobre él y la actualizamos con cada iteración que sigue. Dentro de cada capa, recorremos cada nodo y procesamos la información recopilada. Aquí es precisamente donde creo que encaja acertadamente el dicho de Jim Rohn. La línea 4 recopila y agrega ( promedia ) la información de sus vecinos _ ( personas con las que pasa más tiempo)o, aquí, amigos con) en función de la estrategia dada. La línea 5 combina (concatenación de vectores) la información agregada _() con la información previa del propio nodo _ usando transformaciones de matriz (multiplicación con ^) para obtener una información actualizada del mismo tamaño vectorial que codifica toda la información. La línea 7 normaliza las representaciones en una escala unitaria y las pasa a la siguiente ronda. Finalmente, las representaciones de la última ronda se devuelven y se pueden usar para otras tareas posteriores como se describió anteriormente.

Espero que esto haya dado una comprensión intuitiva del concepto de GNN y haya generado algunas ideas interesantes en este dominio. Ha habido nuevos desarrollos en los campos ajustando fragmentos y partes de esta idea básica y utilizando funciones más sofisticadas. Los poderes de las GNN son increíbles y creo firmemente que serán un pilar importante en el futuro de ML e IA.

Referencias:

[1] Hamilton, Will, Zhitao Ying y Jure Leskovec. "Aprendizaje de representación inductiva en gráficos grandes". Avances en los sistemas de procesamiento de información neuronal 30 (2017).