Capítulo 1. Las conexiones lo son todo
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
En una visión extrema, el mundo puede verse sólo como conexiones, nada más. Pensamos en un diccionario como el depositario del significado, pero sólo define las palabras en función de otras palabras. Me gustó la idea de que una información se define realmente sólo por aquello con lo que está relacionada y cómo está relacionada. Realmente hay poco más en el significado. La estructura lo es todo.
Tim Berners-Lee, Tejiendo la Web: El diseño original y el destino final de la World Wide Web (1999), p. 14
El siglo XX demostró lo mucho que podíamos conseguir con las hojas de cálculo y las bases de datos relacionales. Los datos tabulares dominaban. El siglo XXI ya nos ha demostrado que eso no basta. Las tablas aplanan nuestra perspectiva, mostrando conexiones en sólo dos dimensiones. En el mundo real, las cosas están relacionadas y conectadas con una miríada de otras cosas, y esas relaciones dan forma a lo que es y a lo que ocurrirá. Para comprenderlo todo, necesitamos modelar esas conexiones.
Los ordenadores personales se introdujeron en los años 70, pero no despegaron hasta que encontraron sus primeras aplicaciones asesinas: las hojas de cálculo financieras. VisiCalc en el Apple II y luego Lotus 1-2-3 en el IBM PC1 automatizaron los cálculos laboriosos y propensos a errores que los contables llevaban haciendo a mano desde la invención de la escritura y la aritmética: sumar filas y columnas de cifras, y luego quizá realizar cálculos estadísticos aún más complejos.
En 1970, E. F. Codd publicó su artículo fundamental sobre el modelo de base de datos relacional. En esos primeros días de las bases de datos, había algunos modelos dando tumbos, incluido el modelo de base de datos de red. El modelo relacional de Codd se basaba en algo con lo que todo el mundo podía identificarse y que era fácil de programar: la tabla.
Además, el álgebra matricial y muchos métodos estadísticos también están preparados para trabajar con tablas. Tanto los físicos como los analistas empresariales utilizaron matrices para definir y encontrar las soluciones óptimas para todo, desde el diseño de reactores nucleares hasta la gestión de la cadena de suministro. Las tablas se prestan al procesamiento paralelo; basta con dividir la carga de trabajo vertical u horizontalmente. Hojas de cálculo, bases de datos relacionales y álgebra matricial: el enfoque tabular parecía ser la solución para todo.
Entonces apareció la World Wide Web y todo cambió.
Las conexiones lo cambian todo
La web es más que Internet. Internet comenzó a principios de los años 70 como una red de conexión de datos entre instituciones de investigación estadounidenses seleccionadas. La World Wide Web, inventada por el investigador del CERN Tim Berners-Lee en 1989, es un conjunto de tecnologías que se ejecutan sobre internet y que facilitan enormemente la publicación, el acceso y la conexión de datos en un formato fácil de consumir e interactuar para el ser humano. Los navegadores, los hipervínculos y las direcciones web son también señas de identidad de la web. Al mismo tiempo que se desarrollaba la web, los gobiernos relajaban sus controles sobre Internet y permitían que las empresas privadas la ampliaran. Ahora tenemos miles de millones de páginas web interconectadas, que conectan personas, multimedia, hechos y opiniones a una escala verdaderamente global. Tener datos no es suficiente. Lo que importa es cómo están estructurados los datos .
¿Qué es un gráfico?
Cuando la palabra "web" de empezó a adquirir nuevas connotaciones, también lo hizo la palabra "gráfico". Para la mayoría de la gente, "gráfico" era sinónimo de un gráfico lineal que podía mostrar algo como el precio de una acción a lo largo del tiempo. Sin embargo, los matemáticos tenían otro significado para la palabra, y cuando las redes y las conexiones empezaron a ser importantes para el mundo empresarial, el significado matemático empezó a pasar a primer plano.
Un grafo es una estructura abstracta de datos formada por vértices (o nodos) y conexiones entre vértices denominadas perímetros. Eso es todo. Un grafo es la idea de una red, construida a partir de estos dos tipos de elementos. Esta abstracción nos permite estudiar las redes (o grafos) en general, descubrir propiedades e idear algoritmos para resolver tareas generales. La teoría de grafos y el análisis de grafos proporcionaron a las organizaciones las herramientas que necesitaban para aprovechar la repentina abundancia de datos conectados.
En la Figura 1-1, podemos ver la red de relaciones entre los actores y directores de La guerra de las galaxias (1977) y El imperio contraataca (1980). Esto es fácilmente modelable como un grafo con distintos tipos de perímetros que conectan los distintos tipos de vértices. Los actores y las películas pueden tener un vértice acted_in
que los conecte, las películas y otras películas pueden estar conectadas por un vértice is_sequel_of
, y las películas y los directores pueden tener una conexión de aristas directed_by
.
Por qué son importantes los gráficos
La web nos mostró que a veces conseguimos más teniendo datos variados que están enlazados entre sí que intentando fusionarlos todos en unas cuantas tablas rígidas. También nos mostró que las propias conexiones son una forma de información. Tenemos un número ilimitado de tipos de relaciones: padre-hijo, comprador-producto, amigo-amigo, etc. Como observó Berners-Lee, obtenemos significado de las conexiones. Cuando sabemos que alguien es padre, podemos deducir que ha tenido ciertas experiencias vitales y que tiene ciertas preocupaciones. También podemos hacer conjeturas informadas sobre cómo interactuarán el padre y el hijo entre sí.
La web, sin embargo, sólo puso de relieve lo que siempre ha sido cierto: las relaciones entre los datos importan a la hora de representarlos y de analizarlos. Los gráficos pueden plasmar el contenido informatiooonal de las relaciones mejor que las tablas. Este formato de datos enriquecido representa mejor la información compleja y, cuando se trata de análisis, produce resultados más perspicaces. Los analistas de datos orientados a la empresa aprecian el aspecto intuitivo de ver las relaciones visualizadas como un gráfico, y los científicos de datos descubren que el contenido más rico produce modelos de aprendizaje automático más precisos. Como ventaja adicional, las bases de datos de grafos suelen ser más rápidas que las bases de datos relacionales cuando se trabaja en tareas que implican la búsqueda en varios niveles de conexiones (o varios saltos).
La estructura importa
Los fundadores de Google reconocieron que la web se haría demasiado grande para que cualquiera pudiera abarcarla. Necesitaríamos herramientas que nos ayudaran a buscar y recomendar páginas. Un componente clave del éxito inicial de Google fue PageRank, un algoritmo que modela Internet como un conjunto de páginas interconectadas y decide cuáles son las páginas más influyentes o con más autoridad basándose únicamente en su patrón de interconexión.
A lo largo de los años, los motores de búsqueda se han vuelto cada vez mejores a la hora de deducir de nuestras consultas lo que realmente nos gustaría saber y nos resultaría útil. Una de las herramientas de Google para ello es su Gráfico de Conocimientos , un conjunto interconectado de hechos y conceptos categorizados y etiquetados, recogidos de la web en general. Tras analizar la consulta del usuario para comprender no sólo las palabras superficiales, sino las categorías y objetivos implícitos, Google busca en su Gráfico de Conocimientos los hechos que mejor coinciden y los presenta en una barra lateral bien formateada. Sólo un gráfico tiene la flexibilidad y expresividad necesarias para dar sentido a este universo de hechos .
Las comunidades importan
Facebook comenzó en como una aplicación de red social para estudiantes universitarios; ha crecido hasta convertirse en la mayor red social en línea del mundo. Es evidente que a Facebook le importan las redes y los gráficos. Desde la perspectiva de cada usuario, está uno mismo y su conjunto de amigos. Aunque actuamos individualmente, las personas tienden de forma natural a reunirse en comunidades que evolucionan y tienen influencia como si fueran entidades vivas en sí mismas. Las comunidades influyen poderosamente en la información que recibimos y en cómo nos formamos las opiniones. Las empresas aprovechan el comportamiento de las comunidades para promocionar sus productos. Las personas también utilizan las redes sociales para promover agendas políticas. Detectar estas comunidades es esencial para comprender la dinámica social, pero no verás las comunidades en una vista tabular.
Los patrones de conexiones importan
La misma información de puede presentarse en forma de tabla o de gráfico, pero la forma de gráfico nos muestra cosas que la tabla oscurece. Piensa en un árbol genealógico. Podríamos enumerar todas las relaciones padre-hijo en una tabla, pero la tabla pasaría por alto patrones importantes que abarcan múltiples relaciones: familia, nietos, primos.
Un ejemplo menos obvio es un gráfico de transacciones financieras. Las instituciones financieras y los vendedores buscan patrones particulares de transacciones que sugieran una posible actividad fraudulenta o de blanqueo de dinero. Un patrón es una gran cantidad de dinero que se transfiere de una parte a otra, con un alto porcentaje del dinero que vuelve al origen: un bucle cerrado. La Figura 1-2 muestra bucles de este tipo, extraídos de una base de datos gráfica que contiene millones de transacciones, de nuestro ejemplo de fraude financiero del Capítulo 5. Otros patrones pueden ser lineales o en forma de Y; todo es posible. El patrón depende de la naturaleza de los datos y de la cuestión de interés.
Los patrones pueden depender no sólo de la forma, sino del tipo de vértice y del tipo de perímetro. La Figura 1-2 tiene dos tipos de vértices: Cuentas y Operaciones (sí, las Operaciones son vértices, no perímetros). Si quisiéramos, podríamos separar Persona y Cuenta en entidades distintas. Una persona puede estar asociada a varias cuentas. Dividirlo así nos permite analizar el comportamiento de una Persona, no sólo de una Cuenta. Modelar conceptos importantes como tipos de vértices permite una capacidad analítica de búsqueda más rica, como veremos en en capítulos posteriores.
Los perímetros superan a las uniones de tablas
Es cierto que puedes representar los vértices como tablas y los perímetros como tablas. ¿Qué tiene de diferente un grafo, y por qué afirmamos que es más rápido para las operaciones multisalto? En primer lugar, el grafo no es sólo la visualización. Visualizamos los datos por comodidad humana, pero el ordenador no necesita en absoluto este aspecto visual.
La ventaja de rendimiento de los gráficos se reduce a la mecánica de cómo se produce realmente la búsqueda y utilización de conexiones en una base de datos relacional frente a una base de datos gráfica. En una base de datos relacional, no existe ningún vínculo entre tablas hasta que ejecutas una consulta. Sí, si has declarado y aplicado una clave ajena en una tabla para hacer referencia a otra tabla, entonces sabes que el valor de la columna de clave ajena se corresponderá con un valor de clave primaria en su tabla relacionada. Eso sólo significa que dos tablas diferentes almacenan datos duplicados, pero aún tienes que buscar esos registros coincidentes.
Considera una base de datos sencilla que realiza el seguimiento de las compras de los clientes. Tenemos tres tablas: Persona, Artículo y Compras, mostradas en la Figura 1-3. Supongamos que queremos conocer todas las compras que ha realizado la Persona B. La tabla Compras está organizada por fecha, no por Persona, por lo que parece que tenemos que escanear toda la tabla para encontrar las compras de la Persona B. Para bases de datos grandes, esto es muy poco eficaz.
Éste es un problema habitual, por lo que las bases de datos relacionales han creado una solución: los índices secundarios. Al igual que el índice de un libro de consulta puede indicarte los números de página donde aparecen determinados temas clave, el índice de una tabla te indica la dirección de la fila donde aparecen determinados valores de columna. La Figura 1-4 esboza la idea de índices para las columnas PID (ID de persona) e IID (ID de artículo) de la tabla Compras. Genial, ahora sabemos que las compras de la Persona B aparecen en las filas 4, 6, 8 y 10 de la tabla. Sin embargo, sigue habiendo algunos inconvenientes. Lleva tiempo y espacio de almacenamiento crear un índice y luego mantenerlo a medida que evoluciona la base de datos, y sigue siendo un paso extra ir al índice en lugar de ir directamente a las filas de datos que tienen lo que quieres. El índice en sí es una tabla. ¿Con qué rapidez podemos encontrar a la Persona B entre todas las personas?
Sin índice:
-
Leer cada fila de la tabla Compras (lento y no escalable).
Con índice:
-
Ve a un índice secundario de la tabla Compras.
-
Encuentra la fila de interés (puede ser rápido).
-
Utiliza el índice.
Una base de datos de grafos o una plataforma de análisis de grafos elimina el problema de buscar en tablas y crear índices para encontrar conexiones: las conexiones ya están ahí.
En un grafo, un perímetro apunta directamente a sus vértices extremos. No hay necesidad de leer a través de una tabla, ni de construir una estructura de indexación adicional. Aunque la diferencia de velocidad puede ser modesta para una conexión, un grafo puede ser cientos de veces más rápido cuando quieres repetir esto en una cadena de conexiones y cuando necesitas unir muchos registros de datos, como tablas enteras. Por ejemplo, supongamos que queremos responder a esta pregunta "Encuentra los artículos que fueron comprados por personas que también compraron el artículo que acabas de comprar". La Figura 1-5 muestra exactamente esto, donde "tú" eres la Persona A:
-
La Persona A compró el Artículo 1.
-
Las personas B, C y D también compraron el artículo 1.
-
Las personas B, C y D también compraron los artículos 2, 3, 4 y 5.
Se trata de una consulta de tres saltos, bastante sencilla para un grafo. Recorremos un total de 9 vértices y 11 perímetros para responder a esta pregunta.
En un sistema basado en tablas, esto requeriría tres uniones de tablas. Una buena optimización de la consulta y la indexación reducirán la cantidad de trabajo para que se acerque al modelo de grafo, que es muy eficiente, pero a costa de ir y venir entre las tablas de datos y los índices y realizar las búsquedas en los índices. El grafo no necesita índices para esta consulta porque las conexiones ya están incorporadas y optimizadas.
Una nota de precaución: sólo se obtienen todas las ventajas de rendimiento en los grafos "nativos", que están diseñados desde el principio para ser grafos. Es posible construir un sistema de grafos sobre una base de datos tabular. Esa combinación funcionará como un grafo, pero no funcionará como tal.
Análisis de Gráficos y Aprendizaje Automático
Quizás la mayor ventaja de los datos estructurados en grafos es cómo pueden mejorar los resultados y el rendimiento de los análisis. Recopilamos y almacenamos datos por muchas razones. A veces, lo único que queremos es recordar un dato concreto exactamente como se registró antes. Por ejemplo, una empresa de tarjetas de crédito registra cada una de tus transacciones. Cada mes, te envía un extracto que enumera cada una de tus transacciones y pagos. Las tablas de datos son suficientes para esta simple enumeración y suma.
Hoy en día, las empresas necesitan hacer algo más con los datos que estas tareas básicas. Necesitan encontrar y captar más oportunidades de ingresos, recortar las pérdidas por fraude y despilfarro, y reducir el riesgo. Ver patrones en sus datos puede ayudar con todas estas necesidades. Por ejemplo, ¿cuál es tu patrón de gasto con la tarjeta de crédito a lo largo del tiempo? ¿Pueden clasificarte con otras personas con patrones similares? ¿Cómo puede la empresa utilizar las relaciones de las redes sociales para servir a sus intereses, como promover el negocio mediante recomendaciones o predecir el comportamiento basándose en las conexiones familiares? La empresa dispone de información sobre los clientes procedente de múltiples fuentes. Las diferencias en los datos, como errores tipográficos, diferencias en los caracteres permitidos, cambios de nombre o dirección, y el uso intencionado por parte de los clientes de diferentes personalidades en línea, pueden hacer que parezcan varias personas distintas. ¿Puede la empresa utilizar la analítica para detectar e integrar estos registros? ¿Estás cometiendo un fraude con tarjeta, o alguien ha robado tu número de tarjeta?
El análisis consiste en ver patrones. Los patrones son conjuntos de relaciones estructuradas de una determinada manera, que es exactamente lo que son los gráficos. Un patrón puede tener aspectos estructurales y cuantitativos, como "el hogar medio tiene 1,4 mascotas". La parte estructural (las relaciones de vivienda que definen un hogar, y la relación entre determinados animales y hogares) puede codificarse como una consulta de patrones de grafos. Las bases de datos de grafos y las plataformas de análisis de grafos también pueden hacer análisis cuantitativos, por supuesto. La Parte 2 de este libro te ayudará a comprender y aplicar la analítica de grafos.
Aprendizaje automático mejorado con grafos
Aprendizaje automático es utilizar datos pasados para detectar un patrón que pueda ayudarnos a predecir la actividad futura. Puesto que los gráficos son la forma natural de representar, almacenar y analizar patrones, es lógico que los gráficos nos ayuden a hacer mejores predicciones.
El aprendizaje automático supervisado convencional hace algunas suposiciones sobre los datos que simplifican ese análisis y que funcionan bien con datos tabulares. En primer lugar, suponemos que cada punto de datos existe de forma aislada: cada registro de nuestro conjunto de datos es estadísticamente independiente de cualquier otro registro. En segundo lugar, suponemos que los puntos de datos están idénticamente distribuidos cuando creamos modelos supervisados de aprendizaje automático. Por tanto, creemos que cada muestra procede de la misma distribución. La noción de estos dos supuestos se conoce como independientes e idénticamente distribuidos (i.i.d.). Sin embargo, los hechos de la vida real no siempre se ajustan al fenómeno de i.i.d.
Para obtener los modelos de aprendizaje automático más precisos, debemos tener en cuenta las relaciones entre los puntos de datos. Por ejemplo, cuando modelamos una red social con personas que interactúan entre sí, es más probable que las personas que comparten los mismos amigos entren en contacto entre sí que con otras que no tienen amigos comunes. Los grafos nos permiten aprovechar explícitamente las relaciones entre los puntos de datos entre amigos comunes, porque modelamos las relaciones y no sólo los nodos de forma independiente.
Hay varias formas en que los datos de grafos pueden mejorar el aprendizaje automático. Una forma es utilizar algoritmos de grafos seleccionados u otras consultas de grafos para evaluar las características relacionales de los puntos de datos (vértices). Por ejemplo, las puntuaciones PageRank de las partes en un gráfico transaccional han ayudado a predecir a los defraudadores. Puedes utilizar estas características basadas en grafos que incorporan las relaciones entre puntos de datos para enriquecer tus conjuntos de características existentes, conservando tus métodos actuales de entrenamiento de modelos.
En lugar de seguir este enfoque tradicional de aprendizaje automático, en el que las características se diseñan y seleccionan a mano durante la fase de ingeniería de características, puedes generar características a partir del grafo automáticamente aprendiendo la estructura del grafo. El llamado aprendizaje de la representación gráfica alivia la necesidad de la ingeniería de características. Depende menos de los conocimientos del analista para diseñar características significativas, ya que sigue un enfoque basado en los datos. Hay dos tipos de aprendizaje de representación de grafos: incrustación y redes de grafos neutros. Las técnicas de incrustación producen vectores asociados a cada punto de datos. Podemos pasar estos vectores de incrustación a cualquier algoritmo de aprendizaje automático posterior para incluirlos en nuestra tarea de predicción. Las redes neuronales de grafos (GNN) son análogas a las redes neuronales convencionales , salvo que tienen en cuenta las conexiones del grafo durante el proceso de entrenamiento. Sólo es una ligera exageración decir que las GNN hacen lo mismo que las demás redes neuronales, con la posibilidad de obtener mejores resultados. La Parte 3 de este libro está dedicada al aprendizaje automático mejorado por grafos .
Resumen del capítulo
En este capítulo hemos aprendido que un grafo es una estructura de datos abstracta formada por vértices y conexiones entre esos vértices llamadas perímetros. Los grafos nos permiten conectar datos, descubrir patrones y comunidades mejor que las bases de datos relacionales. Las aristas funcionan mejor que las uniones de tablas porque las aristas conectan directamente los vértices con su punto final, lo que hace innecesario leer una tabla y construir una estructura de indexación adicional.
La analítica de gráficos es potente porque explora e identifica eficazmente patrones en los datos. El análisis de gráficos puede mejorar el rendimiento de los análisis y descubrir cosas que no se descubren con otros métodos.
Por último, hemos visto que los datos estructurados en grafos nos ayudan a hacer mejores predicciones con los modelos de aprendizaje automático. El grafo nos permite aprovechar las relaciones entre los puntos de datos de forma explícita, haciendo que nuestro modelo se acerque más al fenómeno natural que estamos investigando. Modelar las relaciones de este modo nos permitirá aprender representaciones gráficas que generen automáticamente características a partir del gráfico, en lugar de seleccionarlas a mano durante la fase de ingeniería de características.
En el próximo capítulo, ampliaremos tu comprensión de los conceptos y la terminología de los grafos y te pondremos en camino para que veas el mundo a través de lentes con forma de grafo.
1 "Aplicación asesina", Wikipedia, última actualización : 14 de mayo de 2023, https://en.wikipedia.org/wiki/Killer_application.
Get Análisis basados en gráficos y aprendizaje automático con TigerGraph now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.