Este documento presenta una introducción a Neo4j, una base de datos basada en grafos. Explica brevemente qué es un grafo y cómo Neo4j modela datos como nodos y relaciones. Luego, discute algunos casos de uso comunes y no tan comunes para Neo4j, como detección de fraude, recomendaciones y análisis de redes. Finalmente, describe cómo usar Neo4j en un proyecto de ciencia de datos, incluyendo mejorar la interpretabilidad de los modelos, aprovechar el conocimiento de la estructura de la
2. Agenda
● Introducción a neo4j
● ¿Cuándo usar neo4j?
○ Casos de uso obvios y no tan obvios
● ¿Cómo usar neo4j en un proyecto de ciencia de datos?
○ Descripción del problema y modelo del grafo.
○ Algoritmos de grafos: Similitudes
○ Conclusiones
3. Introducción a neo4j
Red Comercial
Aquella que nos permite
intercambiar bienes y servicios
con otros participantes del
mercado.
Red de Comunicaciones
Elementos de telecomunicaciones
como celulares, modems, routers,
antenas, así como los medios por los
cuales interactúan entre sí.
Red Social
Suma de personas y lazos
profesionales, familiares y
de amistad.
Estamos acostumbrados a ver ciertas interacciones en el mundo como una red, ya sea de
personas u objetos y las relaciones entre ellos mismos...
4. Introducción a neo4j
… neo4j conquista el reto de imitar esas relaciones (por veces consistentes, por veces
erráticas) de una manera intuitiva. Es una base de datos basada en grafos que permite
entender y conocer el comportamiento en distintos escenarios.
Para generalizar este comportamiento de la realidad, se utiliza una
estructura matemática conocida como grafo.
Un grafo está compuesto por nodos y relaciones:
● Los nodos representan entidades, por ejemplo, cliente,
producto y proveedor.
● Las relaciones representan conexiones relacionales entre
nodos, por ejemplo, cliente y producto tienen una relación
compró.
La representación en pizarrón de un grafo es sumamente intuitiva
y amigable.
5. ● Graph Storage
Esta característica hace
referencia a que los datos
están almacenados con todo y
sus relaciones de manera
persistente, no se infieren cada
que un query se ejecuta.
● Graph Processing:
Index-Free adjacency o
procesamiento de grafos
nativo, por la forma en la que se
almacenan los datos permite
recorrer el grafo de manera
eficiente.
Un cambio de paradigma
SELECT
UniqueID,
FirstName,
LastName,
…
FROM Clients AS C
LEFT JOIN Products AS P
ON C.ClientID = P.ClientID
MATCH
(Client)-[:Has_BankAccount]->(BankAccount)
RETURN
Client, BankAccount
De RBDMS a neo4j De SQL a Cypher Almacenamiento y
Procesamiento
6. ● Los datos están desconectados y las
relaciones no importan.
● Los objetos y modelo de datos son fijos y
consistentes.
● Se necesita escanear información en
“bulk”.
● Key-value stores.
● Los datos están “bien conectados”.
● El modelo de datos necesita ser flexible.
● Es necesario encontrar caminos de
relaciones entre nodos.
● Es necesaria una tecnología escalable
horizontalmente, consistente y con alta
disponibilidad.
¿Cuándo usar neo4j?
Cuando sí Cuando no
La motivación principal para adquirir cualquier tecnología nueva, como neo4j, depende
siempre del caso de uso que quiera resolverse.
7. Casos de uso
● Detección de fraudes
● Monitoreo de redes y
operación IT
● Sistemas de recomendación
● Data Management
● Ciencia de datos
8. Casos de uso
● Detección de fraudes
● Monitoreo de redes y
operación IT
● Sistemas de recomendación
● Data Management
● Ciencia de datos
Detección de fraudes
● Comunidades fraudulentas - al verlo como un grafo lo
puedes identificar la red de relaciones y patrones de
comportamiento:
○ Ayuda en entender las relaciones entre distintas
entidades.
○ Ayuda en la identificación de Anillos de fraude
● Fraude E-Commerce: Ayuda en el monitoreo e
identificación de los usuarios que realizan
transacciones a través de internet.
9. Casos de uso
● Detección de fraudes
● Monitoreo de redes y
operación IT
● Sistemas de recomendación
● Data Management
● Ciencia de datos
● Ciberseguridad:Ayuda en el mapeo y análisis de
conexiones entrantes a algún sistema.
● Análisis de impacto:Ayuda en la medición del impacto
y de las dependencias de sistemas interconectados.
● Mapeo de calidad del servicio:Ayuda a mapear
procesos para encontrar puntos de falla dentro de la
arquitectura empresarial.
● Análisis causa Raíz:Ayuda a mapear los puntos de
falla e identificar los elementos que influyeron.
Monitoreo de redes y
operaciones IT
10. Casos de uso
● Detección de fraudes
● Monitoreo de redes y
operación IT
● Sistemas de recomendación
● Data Management
● Ciencia de datos
● Recomendación de contenido:Permite conocer como
un usuario interactúa con el contenido y generar
recomendaciones de acuerdo a las características de
su consumo.
● Recomendación de productos: Ayuda en la generación
de recomendaciones tipo cross sell, best fit al poder
identificar el tipo de productos que consume el cliente
● Recomendaciones sociales:Nos ayuda a identificar
estructuras sociale, por lo que se pueden generar
recomendaciones de tipo profesional (linkedIn) o de
tipo redes sociales(Facebook)
Sistemas de recomendación
11. ● Detección de fraudes
● Monitoreo de redes y
operación IT
● Sistemas de recomendación
● Data Management
● Ciencia de datos
Casos de uso
● Vista 360 Cliente:Nos permite conocer cómo
interactúa nuestro cliente y mapearlo dentro de un
ciclo de vida.
● Gobierno de datos:Se puede mapear los permisos de
los usuarios a ciertos campos de una forma más
natural.
● Jerarquías organizacionales:El mapeo de jerarquías
en una tabla de datos transaccional siempre resulta en
algo complejo, al nosotros almacenar relaciones
podemos consultar la jerarquía de mejor manera
● Cruce de referencias de negocios: Facilita el poder
identificar un usuario con las características de
acuerdo a las necesidades del área de negocio
Data Management
12. ¿Cómo usar neo4j en un proyecto de ciencia de datos?
● Mayor Interpretabilidad: Cuando Hablamos de un algoritmo de machine learning no es
fácil la interpretabilidad del resultado.
● No sacas los datos de Neo4j: Al no sacar los datos del cluster existe un mayor gobierno
y mejor desempeño
● Aprovechar el conocimiento de la estructura de la red: En la forma tradicional no
aprovechamos el conocimiento contenido en la RED
13. ¿Cual es nuestro problema?
● Eventos de crimen en Boston (2015-2018).
● Predecir qué tipo de evento es a partir del histórico.
● Tener una mayor interpretabilidad de los algoritmos de grafos.
● Generar conocimiento.
Graph technology is formed around the idea of building databases using mathematical graph theory to store data and the links between data as relationships. While the underlying math is quite complex, the crux is that graph databases emphasize the connections between data as much as the individual data points by explicitly storing those connections as relationships.
Why should you care about relationships?
Because much of the value residing in your data comes from unearthing information on the connections between data points. Think social media data; perhaps you want to know which of your followers on social media bought a certain product in your online store as a result of a certain campaign.
Other types of database systems such as relational databases infer data connections for these types of queries using JOIN tables. A large amount of JOIN tables ends up negatively impacting query performance in your database application for deeper queries, which run much faster in graph database systems.