Piense en sus datos de manera diferente

En los últimos años, el aprendizaje profundo (DL) se ha convertido en un habilitador principal para aplicaciones en muchos dominios, como visión, NLP, audio, datos de flujo de clics, etc. Recientemente, los investigadores comenzaron a aplicar con éxito métodos de aprendizaje profundo para graficar conjuntos de datos en dominios como social redes, sistemas de recomendación y biología, donde los datos están inherentemente estructurados de forma gráfica.

Entonces, ¿cómo funcionan las redes neuronales gráficas? ¿Por qué los necesitamos?

En las tareas de aprendizaje automático que involucran datos gráficos, generalmente queremos describir cada nodo en el gráfico de una manera que nos permita introducirlo en algún algoritmo de aprendizaje automático. Sin DL, habría que extraer funciones manualmente, como la cantidad de vecinos que tiene un nodo. Pero este es un trabajo laborioso.

Aquí es donde brilla DL. Explota automáticamente la estructura del gráfico para extraer características de cada nodo. Estas características se denominan incrustaciones.

Lo interesante es que, incluso si no tiene absolutamente ninguna información sobre los nodos, aún puede usar DL para extraer incrustaciones. La estructura del gráfico, es decir, los patrones de conectividad, contienen información viable.

Entonces, ¿cómo podemos usar la estructura para extraer información? ¿Puede realmente ayudarnos el contexto de cada nodo dentro del gráfico?

Un algoritmo bien conocido que extrae información sobre entidades usando solo el contexto es
palabra2vec. La entrada a word2vec es un conjunto de oraciones y la salida es una incrustación para cada palabra. De manera similar a como el texto describe el contexto de cada palabra a través de las palabras que lo rodean, los gráficos describen el contexto de cada nodo a través de los nodos vecinos.

Mientras que en el texto las palabras aparecen en orden lineal, en los gráficos no es así. No hay orden natural entre los nodos vecinos. Así que no podemos usar word2vec… ¿O sí?

Podemos aplicar la reducción de la estructura gráfica de nuestros datos a una estructura lineal de modo que la información codificada en la estructura gráfica no se pierda. Al hacerlo, podremos usar el viejo word2vec.

El punto clave es realizar caminatas aleatorias en el gráfico. Cada caminata comienza en un nodo aleatorio y realiza una serie de pasos, donde cada paso va a un vecino aleatorio. Cada recorrido aleatorio forma una oración que se puede introducir en word2vec. Este algoritmo se llama nodo2vec. Hay más detalles en el proceso, sobre los cuales puede leer en el papel original.


El sistema de recomendación de contenido de Taboola recopila muchos datos, algunos de los cuales se pueden representar de manera gráfica. Inspeccionemos un tipo de datos como caso de estudio para usar node2vec.

Taboola recomienda artículos en un widget que se muestra en los sitios web de los editores:

Piense en sus datos de manera diferente

Cada artículo tiene entidades nombradas, las entidades descritas por el título. Por ejemplo, el elemento “los perros más lindos del planeta” contiene las entidades “perro” y “planeta”. Cada entidad nombrada puede aparecer en muchos elementos diferentes.

Podemos describir esta relación usando un gráfico de la siguiente manera: cada nodo será una entidad con nombre, y habrá un borde entre dos nodos si las dos entidades con nombre aparecen en el mismo elemento:

1680126704 364 Piense en sus datos de manera diferente

Ahora que podemos describir nuestros datos de manera gráfica, ejecutemos node2vec para ver qué información podemos obtener de los datos. Puedes encontrar el código de trabajo aquí.

Después de aprender las incrustaciones de nodos, podemos usarlas como características para una tarea posterior, por ejemplo, predicción de CTR (tasa de clics). Aunque podría beneficiar al modelo, será difícil comprender las cualidades aprendidas por node2vec.

Otra opción sería agrupar incrustaciones similares usando
K-mediasy colorea los nodos según su clúster asociado:

1680126704 122 Piense en sus datos de manera diferente

¡Fresco! Los clústeres capturados por node2vec parecen ser homogéneos. En otras palabras, los nodos que están cerca entre sí en el gráfico también lo están en el espacio de incrustación. Tomemos, por ejemplo, el grupo naranja: todas sus entidades nombradas están relacionadas con el baloncesto.

Quizás se pregunte cuál es el beneficio de usar node2vec sobre los algoritmos gráficos clásicos, como los algoritmos de detección de la comunidad (por ejemplo, el Algoritmo de Girvan-Newman). La captura de la comunidad a la que pertenece cada nodo definitivamente se puede hacer usando dichos algoritmos, no hay nada de malo en ello. En realidad, eso es exactamente ingeniería de características. Y ya sabemos que DL puede ahorrarle el tiempo de diseñar cuidadosamente estas funciones. Entonces, ¿por qué no disfrutar de este beneficio? También debemos tener en cuenta que node2vec aprende incrustaciones de alta dimensión. Estas incorporaciones son mucho más ricas que la mera pertenencia comunitaria.

Usar node2vec en este caso de uso podría no ser la primera idea que se le ocurra. Uno podría sugerir simplemente usar word2vec, donde cada oración es la secuencia de entidades nombradas dentro de un solo elemento. En este enfoque, no tratamos los datos como si tuvieran una estructura gráfica. Entonces, ¿cuál es la diferencia entre este enfoque, que es válido, y node2vec?

Si lo pensamos bien, cada oración que generamos en el enfoque word2vec es un paseo por el gráfico que hemos definido anteriormente. node2vec también define caminatas en el mismo gráfico. Entonces son iguales no? Echemos un vistazo a los grupos que obtenemos con el enfoque word2vec:

1680126705 925 Piense en sus datos de manera diferente

Ahora el grupo de “baloncesto” es menos homogéneo: contiene nodos naranjas y azules. La entidad nombrada “Baloncesto”, por ejemplo, era de color naranja, mientras que los jugadores de baloncesto “Lebron James” y “Kobe Bryant” eran de color azul.

1680126705 124 Piense en sus datos de manera diferente

Pero ¿por qué sucedió esto?

En este enfoque, cada paseo en el gráfico se compone solo de entidades nombradas que aparecen juntas en un solo elemento. Significa que estamos limitados a caminatas que no van más allá de la distancia 1 desde el nodo de inicio. En node2vec, no tenemos ese límite.
Dado que cada enfoque utiliza un tipo diferente de paseos, las incrustaciones aprendidas capturan un tipo diferente de información.

Para hacerlo más concreto, considere el siguiente ejemplo: digamos que tenemos dos elementos, uno con las entidades nombradas A, B, C y otro con D, B, E. Estos elementos inducen el siguiente gráfico:

1680126705 392 Piense en sus datos de manera diferente

En el enfoque simple de word2vec, generaremos las siguientes oraciones: [A, B,
C] y [D, B, E]. En el enfoque node2vec también podríamos obtener oraciones como [A,
B, E]. Si buscamos este último en el proceso de entrenamiento, aprenderemos que E y C son intercambiables: el prefijo [A, B] podrá predecir tanto C como E. Por lo tanto, C y E obtendrán incrustaciones similares y se agruparán juntos.


Es importante utilizar la estructura de datos correcta para representar sus datos. Cada estructura de datos implica un algoritmo de aprendizaje diferente o, en otras palabras, introduce un sesgo inductivo diferente.

Identificar sus datos tiene una cierta estructura, por lo que puede usar la herramienta adecuada para el trabajo, puede ser un desafío.

Dado que tantos conjuntos de datos del mundo real se representan naturalmente como gráficos, creemos que Graph Neural Networks es imprescindible en nuestra caja de herramientas como científicos de datos.


Publicado originalmente en
ingeniería.taboola.com
por mi y Zohar Komarovsky.

Fuente del artículo

Deja un comentario