2. LARUS Business Automation Srl Italy’s #1 Neo4j Partner
WHO’S LARUS
LARUS BUSINESS AUTOMATION
● Fondata nel 2004
● Quartier Generale a Venezia, ITALY
● Fornisce servizi in tutto il mondo
● Missione: “Bridging the gap between Business and IT”
OUR SPECIALITIES
● Consulenza e sviluppo di soluzioni con le Ultime Tecnologie Open-Source
● Training and Coaching su Metodologie Agile & Lean
● Disegno e Sviluppo di software custom
● Strong focus on Architetture Lightweight e Tecnologie NoSql
VENICE
[:BASED_IN]
3. LARUS Business Automation Srl Italy’s #1 Neo4j Partner
Neo4j Tools for Business
Perché un grafo?
Sono il modo naturale di rappresentare i tuoi dati
Sono la soluzione naturale per le esigenze di
business
7. LARUS Business Automation Srl Italy’s #1 Neo4j Partner
Neo4j Tools for Business
Accedere ai dati da diversi punti di vista senza
perdita di performance
11. Path Finding
Un insieme di algoritmi e procedure
che aiutano a trovare il percorso ottimale or valutare la disponibilità e qualità del
percorso
12. Centrality
Un insieme di algoritmi e procedure
che aiuta a determinare l’importanza e il ruolo di nodi distinti nella rete
13. Community Detection
Un insieme di algoritmi e procedure
che aiutano nel valutare come un grafo è clusterizzato o partizionato e le dinamiche
di comunicazione tra i clusters
14. Graph Algorithms in Finance
Nell’analisi delle frodi aiuta a valutare se un gruppo ha
pochi comportamenti malevoli o sta agendo come un
“anello di frode” che può essere indicato da un’alta
densità delle relazioni rispetto alla media
Louvain Algorithm
Cliques
La correlazione tra investimenti e la sincronizzazione
degli asset durante differenti finestre temporali durante
l’anno
find subgroups of stocks
in which every pair of stocks
is connected
15. Graph Algorithms in Finance
Estimate systemic risk and its accuracy through
the network of contracts among institutions
Topologia e
Struttura della rete
Un modello computazionale basato su
grafo del rischio sistemico rende più
facile studiare gli effetti in una rete
complessa come il contagio finanziario
16. Graph Algorithms in Finance
Centralità e Reti Pesate
Interdipendenze dei fallimenti a cascata in
Europa:
Le larghezze delle frecce sono proporzionali alle
dimensioni delle proprietà incrociate; l’area
dell’ovale per ciascuna nazione è proporzionale
ai valori degli asset sottostanti.
Failure Threshold
17. Graph Algorithms in Transportation
Community Detection Fallimenti in cascata nella rete aeroportuale
18. Graph Algorithms in Transportation
Community Detection Fallimenti in cascata nella rete aeroportuale
19. Graph Algorithms in Transportation
Community Detection Fallimenti in cascata nella rete aeroportuale
20. Graph Algorithms in Telco
Betweenness Centrality
Research the network flow in a
telecommunications network
Definizione di una rete nell’instradamento logico
o fisico come ad esempio la posa delle cablature
Minimum Weight
Spanning Tree
Find the root causes of anomalies in
architectures; in the event of an anomaly,
PageRank provides a ranked order list of possible
root causes for monitoring teams to investigate
PageRank
21. Graph Algorithms in Telco
Analisi di gruppi di persone completamente
connessi che hanno comportamenti simili - anche
in relazione con sottografi (es.. SMS graph, CALL
graph)
Strongly Connected
Components
Fondamentale nell’instradamento logico per offrire percorsi
multipli e alternative di instradamento in caso di fallimentiAll Pairs Shortest Paths
22. Graph Algorithms in Retail
Per diffondere un messaggio pubblicitario su un
social media possiamo usare un algoritmo per
trovare l’influencer chiave che ci può aiutare a
raggiungere lo scopo
Identificare gruppi con forti affinità che sono poi
utilizzate per suggerire oggetti comunemente
preferiti alle persone all’interno di un gruppo che
non hanno ancora comprato uno di questi oggetti
Strongly Connected
Components
Harmonic Centrality
Comprendere il comportamento di acquisto di un
clienti e fornire loro i coupon appropriati
attraverso dei cluster di prodotti da
raccomandare
Louvain Algorithm
23. Graph Algorithms in Retail
Analisi di mobilità umana e congestione nel supermercati. Come i clienti
comprano e navigano all’interno del supermercato? Qual è il miglior
layout per ridurre la congestione? Dove negli store dovrebbero essere
posizionati i prodotti promozionali?
Flusso nelle Reti
24. Graph Algorithms in Retail
Resilienza della supply chain in caso di fallimenti: caso
di una supply network di una fabbrica di macchinariShortest Paths
25. Graph Algorithms in Insurance
PageRank
Parte di un’anomalia or di un sistema di fraud detection
nell’health care e nelle assicurazioni. Aiuta a trovare un dottore
che si comporta in un modo inusuale e poi alimenta lo score in
un algoritmo di machine learning.
26. Graph Algorithms in Insurance
Aiuta a separare i truffatori dalle persone legittime di
un’asta online. La centralità pesata dei truffatori è
significativamente maggiore perché tendono a
colludere con gli altri per incrementare artificialmente
il prezzo dei prodotti.
Per trovare gruppi organizzati di fraudolenti
nell’assicurazione automobilistica e relazionare la
probabilità di essere fraudolenti
Cycles in Networks
Degree Centrality
33. Market Seg. e Community Detection
Il tuo mercato è una rete.
Clienti, prodotti, e offerte sono
collegati insieme.
34. Market Seg. e Community Detection
Gli algoritmi di community detection
forniscono una migliore comprensione dei
dati connessi
35. Market Seg. e Community Detection
Analizzare le relazioni “sociali” tra clienti e
prodotti
36. Market Seg. e Community Detection
La segmentazione del mercato è un
problema di community detection su un
grafo (rete)
37. Market Seg. e Community Detection
Label propagation è un noto algoritmo di
community detection
Utilizzato per determinare la
propagazione dell’influenza
38. Market Seg. e Community Detection
Influenza di cosa?
Prodotti → come un prodotto influenza il
comportamento di un cliente?
Campagne commerciali → come una
campagna commerciale influenza i clienti
39. Influenza del prodotto
Come un prodotto può influenzare la
vendita di un altro prodotto
Comunità di clienti che acquistano un
insieme di prodotti
45. Influenza del prodotto
Il prodotto più influente non è
necessariamente il prodotto più venduto!
Il prodotto che influenza i clienti
nell’acquisto di altri prodotti
46. Influenza del prodotto
Analisi di impatto
Se cambio qualcosa del mio prodotto
influente potrei compromettere l’influenza
sulla comunità (es. vendite)
48. COPYRIGHT 2018 - LARUS BUSINESS AUTOMATION SRL
Neo4j in Retail
Perchè Neo4j?
● Quando si parla di retail, si pensa all’ultimo anello di una complessa catena di produzione,
distribuzione ed approvvigionamento
● La catena, essendo una serie di informazioni/processi strettamente legati e dipendenti uno
dall’altro, può essere naturalmente modellizzata come grafo
● Neo4j è un database a grafo e la gestione delle informazioni e connessioni è estremamente
performante
49. COPYRIGHT 2018 - LARUS BUSINESS AUTOMATION SRL
Neo4j in Retail
Logistica e Distribuzione
● Neo4j può essere applicato alla gestione della logistica, consentendo il tracciamento di tutto
il ciclo di produzione e distribuzione
50. COPYRIGHT 2018 - LARUS BUSINESS AUTOMATION SRL
Neo4j in Retail
Logistica e Distribuzione
● La flessibilità del modello di tracciamento dei dati consente anche di focalizzarsi sul singolo
prodotto, tracciandone proprietà e spostamenti all’interno della filiera produttiva e
distributiva
51. COPYRIGHT 2018 - LARUS BUSINESS AUTOMATION SRL
Neo4j in Retail
Customer Analytics
● Neo4j ha, nella sua architettura a grafo, la nativa predisposizione a facili analisi statistiche sui
consumatori
● Tracciare serie storiche sui clienti diventa una “semplice” ricerca di un percorso già costruito
nel nostro modello Retail nel grafo
● Neo4j consente l’analisi di dati ed analitiche sul grafo attraverso procedure interne alla
tecnologia
53. COPYRIGHT 2018 - LARUS BUSINESS AUTOMATION SRL
Neo4j in Retail
Pricing & Revenue Management
● L’architettura di Neo4j si configura perfettamente per un’analisi dinamica delle politiche di
prezzi
● L’interdipendenza tra numerose variabili impegnate nel calcolo dei prezzi può essere
rappresentata da un grafo, che facilita e calcola efficientemente le variazioni economiche
dei prodotti/servizi anche quando le relazioni variano velocemente
● Numerose aziende hanno adottato Neo4j nell’analisi della politica dei prezzi
con successo
54. COPYRIGHT 2018 - LARUS BUSINESS AUTOMATION SRL
Neo4j in Retail
● La giusta tecnologia dove analizzare i dati per una facile esplorazione nativa delle
informazioni
Neo4j in Retail
55. COPYRIGHT 2018 - LARUS BUSINESS AUTOMATION SRL
Caso di Studio
Neo4j Fundamentals
Neo4j Fundamentals
Neo4j Data Import
Neo4j Data Modelling
Neo4j Data Modelling
Analysing Your Data
Hands-on
Hands-on
Hands-on
Identificazione di anomalie negli acquisti tramite lettore ottico e fidelity card
Supporto all’identificazione di utenti con comportamento “sospetto” sui quali generare un controllo,
in funzione di:
A. Tracciamento spazio-temporale degli acquisti
B. Analisi della CATENA di acquisti per la ricerca di anomalie e generazione di alert
56. COPYRIGHT 2018 - LARUS BUSINESS AUTOMATION SRL
Caso di Studio
Neo4j Fundamentals
Neo4j Fundamentals
Neo4j Data Import
Neo4j Data Modelling
Neo4j Data Modelling
Analysing Your Data
Hands-on
Hands-on
Hands-on
A - Tracciamento spazio-temporale degli acquisti
● Generazione di una CATENA DI ACQUISTI, dove il prodotto scannerizzato ha una propria
collocazione spaziale all’interno dello store
57. COPYRIGHT 2018 - LARUS BUSINESS AUTOMATION SRL
Caso di Studio
Neo4j Fundamentals
Neo4j Fundamentals
Neo4j Data Import
Neo4j Data Modelling
Neo4j Data Modelling
Analysing Your Data
Hands-on
Hands-on
Hands-on
A - Tracciamento spazio-temporale degli acquisti
● La catena di acquisti può essere COERENTE o NON-COERENTE con la disposizione fisica dei
prodotti nello store, nel caso di passaggi ripetuti in scaffali già visitati
58. COPYRIGHT 2018 - LARUS BUSINESS AUTOMATION SRL
Caso di Studio
Neo4j Fundamentals
Neo4j Fundamentals
Neo4j Data Import
Neo4j Data Modelling
Neo4j Data Modelling
Analysing Your Data
Hands-on
Hands-on
Hands-on
A - Tracciamento spazio-temporale degli acquisti
● Ogni singolo prodotto è quindi tracciato:
○ Temporalmente (sequenza di acquisti)
○ Spazialmente (posizione negli scaffali)
59. COPYRIGHT 2018 - LARUS BUSINESS AUTOMATION SRL
Caso di Studio
Neo4j Fundamentals
Neo4j Fundamentals
Neo4j Data Import
Neo4j Data Modelling
Neo4j Data Modelling
Analysing Your Data
Hands-on
Hands-on
Hands-on
A - Tracciamento spazio-temporale degli acquisti
● Ogni singolo prodotto è identificabile all’interno della catena di acquisto ed è associato a:
○ Utente soggetto dell’operazione
○ Prezzo
○ Categoria (prodotti SIMILI)
○ Posizione
○ Data di acquisto
60. COPYRIGHT 2018 - LARUS BUSINESS AUTOMATION SRL
Caso di Studio
Neo4j Fundamentals
Neo4j Fundamentals
Neo4j Data Import
Neo4j Data Modelling
Neo4j Data Modelling
Analysing Your Data
Hands-on
Hands-on
Hands-on
A - Tracciamento spazio-temporale degli acquisti
● La catena di acquisto è completamente esplorabile e tiene traccia di tutti i movimenti
dell’utente sul prodotto quali:
○ INSERIMENTO prodotto
○ CANCELLAZIONE prodotto
○ Sequenza temporale di acquisto
○ Tempo di spesa
61. COPYRIGHT 2018 - LARUS BUSINESS AUTOMATION SRL
Caso di Studio
Neo4j Fundamentals
Neo4j Fundamentals
Neo4j Data Import
Neo4j Data Modelling
Neo4j Data Modelling
Analysing Your Data
Hands-on
Hands-on
Hands-on
B - Analisi della CATENA di acquisti
● Ricostruzione storico UTENTE relativo a:
1. Percorsi nello store
2. Sequenza di acquisto (inserimento/cancellazione prodotti)
3. Variazioni di prezzo totale e/o per categoria sullo storico della spesa
62. COPYRIGHT 2018 - LARUS BUSINESS AUTOMATION SRL
Caso di Studio
Neo4j Fundamentals
Neo4j Fundamentals
Neo4j Data Import
Neo4j Data Modelling
Neo4j Data Modelling
Analysing Your Data
Hands-on
Hands-on
Hands-on
B - Analisi della CATENA di acquisti
● Generazione di distribuzioni di prezzo dei prodotti per UTENTE
in funzione dello storico di spesa, totale e per categoria merceologica
63. COPYRIGHT 2018 - LARUS BUSINESS AUTOMATION SRL
Caso di Studio
Neo4j Fundamentals
Neo4j Fundamentals
Neo4j Data Import
Neo4j Data Modelling
Neo4j Data Modelling
Analysing Your Data
Hands-on
Hands-on
Hands-on
B1 - Percorsi nello store
● Variazioni spaziali relative al percorso “Standard” effettuato dall’utente associate a variazioni di
spesa
● Il percorso tipico dell’utente nello store viene quindi pesato in funzione di anomalie in fase di
scostamenti di prezzo significativi
64. COPYRIGHT 2018 - LARUS BUSINESS AUTOMATION SRL
Caso di Studio
Neo4j Fundamentals
Neo4j Fundamentals
Neo4j Data Import
Neo4j Data Modelling
Neo4j Data Modelling
Analysing Your Data
Hands-on
Hands-on
Hands-on
B1 - Percorsi nello store
65. COPYRIGHT 2018 - LARUS BUSINESS AUTOMATION SRL
Caso di Studio
Neo4j Fundamentals
Neo4j Fundamentals
Neo4j Data Import
Neo4j Data Modelling
Neo4j Data Modelling
Analysing Your Data
Hands-on
Hands-on
Hands-on
B1 - Percorsi nello store e prezzi - esempio di generazione di alert
Identificazione di un percorso che differisce dallo standard dell’utente per un certo coefficiente,
associato all’inserimento di un articolo SIMILE ad uno frequentemente acquistato, ma il cui prezzo
differisce in difetto dallo standard della categoria merceologica
66. COPYRIGHT 2018 - LARUS BUSINESS AUTOMATION SRL
Caso di Studio
Neo4j Fundamentals
Neo4j Fundamentals
Neo4j Data Import
Neo4j Data Modelling
Neo4j Data Modelling
Analysing Your Data
Hands-on
Hands-on
Hands-on
La CATENA di acquisto e la ricerca di pattern sospetti
Grazie al modello a grafo, la ricerca di cammini lungo la rete ed il calcolo della distanza da un
determinato standard è molto veloce e semplice. Partendo da un singolo nodo-prodotto che può
generare un sospetto di anomalia di acquisto, è possibile ricostruire immediatamente la CATENA DI
ACQUISTO del singolo utente per rafforzare oppure escludere un processo di frode.
69. LARUS Business Automation Srl Italy’s #1 Neo4j Partner
Customer Journey Analytics
Tracciamento dei punti di contatto
Fornire pieno supporto alla customer experience
Influenzare il “customer journey”
71. LARUS Business Automation Srl Italy’s #1 Neo4j Partner
Customer Journey Analytics
Mappare l’insieme complesso delle interazioni
del cliente nel tempo da diverse sorgenti con un
grafo
73. Introduzione
Bank Diary
● Gestione completa della cronologia delle operazioni bancarie e transazioni
● Struttura di gestione delle catene di transazioni ed operazioni dei clienti anche
attraverso i diversi canali: home banking, mobile banking, filiale, ecc
● Gestione della “Catena Monetaria”, come cronologia di interazione delle
informazioni del cliente e della banca
74. Modello Dati - Clienti
Contratto
Cliente
LUOGO
VENDITA
Gestore
VENDE
SOTTOSCRIVE
Prodotto
VENDE
Filiale
IN FILIALE
CRONOLOGIA
RIFERITO A
75. Modello Dati - Clienti
Prodotto
Cliente
Gestore
ACQUISTA
Canale
Filiale
IN FILIALE
CRONOLOGIA
ACCEDE
VENDE
ATTRAVERSO
76. Modello Dati - Catena Monetaria
Evento
NEXT
Evento
NEXT
Evento
Transazione
NEXT NEXT
Transazione Transazione
OPERAZIONE OPERAZIONE OPERAZIONE
Gestore
ESEGUE
ESEGUE
ESEGUE
77. Analisi
Similarità su Catene Monetarie
● Ogni utente possiede una propria “storia” di transazioni
● E’ possibile valutare quanto “vicine” siano le storie di operazioni bancarie effettuate
da clienti diversi
● Possibilità di calcolare la similarità su più dimensioni, su diverse proprietà della
transazione (tempo, ammontare, ecc)
Tipologie di transazioni e codificazione
● d - Deposito
● p - Prelievo
● b - Bonifico
● r - Ricarica Telefonica
● i - RID
78. Analisi
Distanza tra clienti
● Grazie alla catena monetaria ed al grafo, è immediato applicare una misura di
similarità tra serie di operazioni
● La distanza di Levenshtein misura il numero minimo di modifiche elementari che
consentono di trasformare una sequenza in un’altra
● Esempio
○ storia cliente 1: ‘RID’, ‘Bonifico’, ‘Bonifico’
○ storia cliente 2: ‘RID’, ‘Bonifico’, ‘Ricarica Telefonica’
○ distanza tra clienti = 1
79. Demo
Visualizzazione e gestione della Catena Monetaria
MATCH p=(st:StartClientEvent)-[:NEXT*]->(e:Event)
WHERE NOT (e)-[:NEXT]->()
WITH p, nodes(p) as events
UNWIND events as ev
MATCH (ev)-[:OPERAZIONE]->(op)
RETURN p, op LIMIT 10
80. Demo
Clienti simili per storia di transazioni
Valutazione di gruppi di clienti con storia simile al meno di una transazione diversa
(distanza < = 1)
MATCH (c1:Cliente)
WITH c1
MATCH (c2:Cliente)
WITH c1, c2, apoc.text.distance(c1.history,c2.history) AS distanza
WHERE distanza <= 1 AND c1 <> c2
RETURN c1.id AS cliente1, c2.id AS cliente2, c1.history as storia_cliente1,
c2.history as storia_cliente2, distanza
81. Clienti simili per storia di transazioni
Valutazione di gruppi di clienti con storia simile a meno di una transazione diversa
(distanza < = 1)
Demo
82. Demo
Strutture di gestori di contratti per clienti simili
Un gestore vende un prodotto ad un cliente: trovo tutti i clienti simili per storia delle
transazioni che potrebbero essere un target da investigare (es: hanno una serie di
ricariche telefoniche e bonifici).
MATCH (g:Gestore)-[:VENDE]->(c:Contract)
WITH g, c
MATCH (cl2:Cliente)<-[r:DISTANZA]-(cl1:Cliente)-[:SOTTOSCRIVE]->(c)
WHERE r.dist <= 1
RETURN cl1.history as storia_cliente1, cl2.history as storia_cliente2, g.id
AS gestore limit 10
83. Demo
Strutture di gestori di contratti per clienti simili
Un gestore vende un prodotto ad un cliente: trovo tutti i clienti simili per storia delle
transazioni che potrebbero essere un target da investigare (es: hanno una serie di
ricariche telefoniche e bonifici).
84. Demo
Strutture di gestori di contratti per clienti
Un gestore è interessato a clienti che effettuano un determinato pattern di
operazioni: trovo tutti i clienti simili per storia delle transazioni che potrebbero
essere un target da contattare/investigare.
MATCH p1=(g:Gestore)-[:VENDE]->(c:Contract)
WITH p1, c
MATCH p2=(cl2:Cliente)<-[r:DISTANZA]-(cl1:Cliente)-[:SOTTOSCRIVE]->(c)
WHERE r.dist <= 1 AND cl1.history contains "bbr"
RETURN p1, p2 limit 5
85. LARUS Business Automation Srl Italy’s #1 Neo4j Partner
IDEAS
No need to use different systems/components to cope with transactional
and analytical workload → we can horizontally scale up both for writes
and reads
86. LARUS Business Automation Srl Italy’s #1 Neo4j Partner
IDEAS
Use deepwalk (and other techniques) for automatic feature extractions
from the graph in order to feed a ML process and cluster our graph (or
any other useful processing) → for example customer segmentation!!
Community detection → customers are communities
Find usable datasets with real data to work with!!