Un repaso al avance en analítica de grafos durante 2019
Como ya anunciamos en este artículo, el equipo de Graph Analytics de la Factoría de Inteligencia Artificial del BBVA facilita el uso de algoritmos de grafos en el banco a través de la creación de una biblioteca interna de software y la entrega de activos de datos de grafos.
Ahora, pasados los primeros días del 2020, este artículo pretende ser un resumen de aquello que vimos y del avance que hemos experimentado en analítica de grafos durante el último año. Consideramos las siguientes líneas como una colección de recursos y referencias que creemos relevantes en este ámbito. Esto incluye tanto repositorios de código libre como herramientas comerciales, publicaciones científicas, conferencias, talleres y otros tipos de publicaciones; fuentes y materiales que han inspirado nuestro trabajo reciente.
Seguimiento de la adopción de tecnologías de grafos en las empresas
La adopción de tecnologías relacionadas con grafos por parte de las empresas dibuja una curva de madurez que típicamente va desde la fase inicial de la utilización de grafos en un caso de uso, hasta una situación ideal en la que la empresa, de forma recurrente, explota los datos y las herramientas de grafos con éxito. En este proceso podríamos distinguir cuatro fases diferentes, que marcan el camino hacia la adopción de grafos:
En este sentido, algunos actores relevantes ya han presentado sus propuestas para las fases de adopción de grafos. Por ejemplo, esta charla de Neo4J en la Cumbre de la Spark, o este artículo en Forbes.
Algunos casos de uso y herramientas vistos en conferencias de ciencia de datos
A continuación describimos algunos avances en grafos y actualizaciones técnicas presentadas en las principales conferencias durante el último año.
Spark+AI Summit Europe 2019
Este año se presentaron algunos casos de uso en analítica de grafos en la conferencia Spark + AI Summit Europe 2019, celebrada en Amsterdam. Tiger Graphs mostró cómo trabajaron con China Mobile para detectar estafas telefónicas utilizando un grafo de llamadas de 600 millones de usuarios. Así, crean características que se usan en un modelo de machine learning que clasifica una llamada telefónica entre estafa o no estafa en tiempo real.
Otro ejemplo lo vemos en AstraZeneca. La compañía de biofarmacia explicó cómo utilizaron un grafo de conocimiento en el proceso de descubrimiento de los fármacos, donde la analítica de grafos tiene un gran potencial para reducir el alto coste y tiempo necesarios para llevarlo a cabo.
En la misma conferencia, tuvimos la oportunidad de conocer algunos cambios planeados en Spark 3. Un nuevo módulo basado en Spark SQL Dataframes se incorporará para representar grafos utilizando el modelo de datos Property Graph. Este modelo de datos permite representar grafos con diferentes tipos de nodos y bordes y definir propiedades sobre ellos, dando mucha flexibilidad a la hora de representarlos. Además, está previsto añadir el lenguaje de consulta Cypher, que permitirá una consulta de datos expresiva y eficiente en los grafos de propiedades.
Grafos en KDD 2019
En la última edición de la conferencia en Knowledge Discovery and Data mining, KDD 2019, Alibaba presentó su plataforma AliGraph -en el ámbito financiero, vimos este otro ejemplo de Capital One-. También vimos artículos que proponían grafos para modelar conjuntamente conceptos e instancias en una base de conocimientos, y muchos algoritmos de Deep Learning para grafos, incluyendo “OAG: Toward Linking Large-scale Heterogeneous Entity Graphs”, un algoritmo de Deep Learning para la vinculación de registros en grafos de entidades grandes, con el repositorio GitHub.
El “MIT-IBM Lab” publicó The Elliptic Dataset, un gran conjunto de datos de transacciones financieras (bitcoin), y presentó un documento sobre la lucha contra el blanqueo de dinero en el taller sobre la Detección de Anomalías en las Finanzas.
Graphs Workshops in the top ML conferences
- Taller sobre “Graph Representation Learning”, NeurIPS 2019.
- Taller sobre “Representation Learning on Graphs and Manifolds”. ICLR 2019
- Taller sobre “Learning and Reasoning with Graph-Structured Representations”. ICML 2019.
Graphs in Recommender Systems
Las relaciones entre nodos heterogéneos en grafos ha demostrado ser una importante fuente de información para sistemas de recomendación y representación de entidades. Algunos ejemplos recientes:
- Collaborative Similarity Embedding for Recommender Systems1. En The World Wide Web Conference (pp. 2637-2643). En este artículo científico, los autores presentan un entorno de trabajo unificado que explota las amplias relaciones de colaboración disponibles en un grafo bipartito de usuarios/ítems para el aprendizaje de la representación y la recomendación. Para determinar relaciones entre estos dos tipos de entidades, los autores utilizan relaciones de proximidad que capturan tanto las relaciones explícitas como las implícitas.
- N2VSCDNNR: A Local Recommender System Based on Node2vec and Rich Information Network2. IEEE Transactions on Computational Social Systems, 6(3), 456-466. En este artículo científico, los autores presentaron un novedoso sistema de recomendación de clusters basado en la tecnología node2vec y una rica red de información. Específicamente, su propósito es transformar grafos bipartitos en las correspondientes proyecciones monomodales (desde relaciones usuario-ítem hasta relaciones usuario-usuario e ítem-ítem), aprender representaciones de nodos utilizando node2vec, y enlazar clusters de usuarios e ítems con el fin de obtener recomendaciones personalizadas.
Other papers we found relevant
Un repaso de las últimas innovaciones en las que se proporciona una taxonomía que agrupa las redes neuronales de grafos en cuatro categorías:
- graph recurrent neural networks,
- graph convolutional neural networks
- graph autoencoders
- spatial-temporal graph neural networks
Esta otra revisión aborda los siguientes temas:
- Hyperbolic Graph Embeddings
- Logics & Knowledge Graph Embeddings
- Markov Logic Networks Strike Back
- Conversational AI & Graphs
- Pre-training and Understanding Graph Neural Nets
Graph Inference using conditional probabilities: Variational Spectral Graph Convolutional Networks. Los autores de este artículo científico proponen un enfoque Bayesiano de las redes convolucionales de grafos espectrales (GCN) en el que los parámetros de los grafos se consideran variables aleatorias. Desarrollamos un algoritmo de inferencia para estimar el posterior sobre estos parámetros y lo usamos para incorporar información previa que no es considerada de forma natural por las GCN estándar”.
Tutoriales y libros
- Ejemplos prácticos en Neo4j y Apache Spark.
- Vídeo divulgativo de Neo4J en Spark Summit.
- Tutorial en Knowledge Graphs.
Herramientas comerciales
- Amazon Neptune
- Tiger Graph: Native Parallel Graph Platform
- Graphext: una plataforma de análisis y visualización de datos con grafos (que no necesita un fuerte background técnico para utilizarla).
Repositorios de código libre:
- Upenn GNNs
- Tutorial de Knowledge Graphs en lingüística
- Notebooks de un taller en AMLD 2019 sobre Network Science, Spectral Graph Theory, Graph Signal Processing, and Machine Learning
- Simulador multi-agente para luchar contra el blanqueo de capitales
- Librería de código libre basada en TensorFlow para redecir enlaces entre conceptos en un grafo de conocimiento. Desarrollado por Accenture.
- Rendimiento de los algoritmos de grafos en comparación con GPUs
- Knowledge Graph open source tool: Blue Brain Nexus. Una iniciativa muy interesante y una oportunidad para ponerla en práctica en el taller “Applied Machine Learning Days 2019”.