Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Neo4j GraphTalk Florence - Tools for Business

Neo4j GraphTalk Florence
Fabio Lamanna & Alberto De Lazzari, Larus Business Automation

  • Login to see the comments

  • Be the first to like this

Neo4j GraphTalk Florence - Tools for Business

  1. 1. larus-ba.it/neo4j @AgileLARUS Lorenzo Speranzoni, Alberto De Lazzari, Andrea Santurbano, Fabio Lamanna GRAPH TALKS FLORENCE, 23 OCTOBER 2018 Neo4j Tools for Business
  2. 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. 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
  4. 4. LARUS Business Automation Srl Italy’s #1 Neo4j Partner Neo4j Tools for Business
  5. 5. LARUS Business Automation Srl Italy’s #1 Neo4j Partner Neo4j Tools for Business
  6. 6. LARUS Business Automation Srl Italy’s #1 Neo4j Partner Neo4j Tools for Business
  7. 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
  8. 8. larus-ba.it/neo4j @AgileLARUS Graph Algorithms for Business
  9. 9. Graph Algorithms Gli algoritmi sui grafi forniscono un modo per capire, modellare e predire il comportamento dei tuoi dati connessi
  10. 10. Graph Algorithms and Neo4j Analytics
  11. 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. 12. Centrality Un insieme di algoritmi e procedure che aiuta a determinare l’importanza e il ruolo di nodi distinti nella rete
  13. 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. 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. 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. 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. 17. Graph Algorithms in Transportation Community Detection Fallimenti in cascata nella rete aeroportuale
  18. 18. Graph Algorithms in Transportation Community Detection Fallimenti in cascata nella rete aeroportuale
  19. 19. Graph Algorithms in Transportation Community Detection Fallimenti in cascata nella rete aeroportuale
  20. 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. 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. 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. 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. 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. 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. 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
  27. 27. larus-ba.it/neo4j @AgileLARUS Case Studies and Applications
  28. 28. larus-ba.it/neo4j @AgileLARUS Analisi del mercato con i grafi
  29. 29. Segmentazione del mercato tradizionale Generalmente basati unicamente su attributi demografici, psicografici, geografici, ecc.
  30. 30. Segmentazione del mercato tradizionale Segmentazione del cliente basata su valori booleani, range, soglie e aggregazioni.
  31. 31. Segmentazione del mercato tradizionale La segmentazione a “grana grossa” non dà più un vantaggio competitivo.
  32. 32. Market Targeting Personalizzato Bisogna focalizzarsi più attentamente sul cliente! Servizi ed offerte devono essere personalizzate!
  33. 33. Market Seg. e Community Detection Il tuo mercato è una rete. Clienti, prodotti, e offerte sono collegati insieme.
  34. 34. Market Seg. e Community Detection Gli algoritmi di community detection forniscono una migliore comprensione dei dati connessi
  35. 35. Market Seg. e Community Detection Analizzare le relazioni “sociali” tra clienti e prodotti
  36. 36. Market Seg. e Community Detection La segmentazione del mercato è un problema di community detection su un grafo (rete)
  37. 37. Market Seg. e Community Detection Label propagation è un noto algoritmo di community detection Utilizzato per determinare la propagazione dell’influenza
  38. 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. 39. Influenza del prodotto Come un prodotto può influenzare la vendita di un altro prodotto Comunità di clienti che acquistano un insieme di prodotti
  40. 40. Influenza del prodotto Propagazione dell’influenza di un prodotto attraverso i clienti
  41. 41. Influenza del prodotto Prodotto Cliente Influencer
  42. 42. Influenza del prodotto Creare una nuova offerta per vendere più prodotti insieme.
  43. 43. Influenza della campagna di marketing Come una nuova campagna influenza la mia comunità di clienti.
  44. 44. Influenza del prodotto Qual è il prodotto più influente tra i miei clienti (o comunità di clienti)?
  45. 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. 46. Influenza del prodotto Analisi di impatto Se cambio qualcosa del mio prodotto influente potrei compromettere l’influenza sulla comunità (es. vendite)
  47. 47. larus-ba.it/neo4j @AgileLARUS Graphs in Retail
  48. 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. 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. 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. 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
  52. 52. COPYRIGHT 2018 - LARUS BUSINESS AUTOMATION SRL Neo4j in Retail
  53. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.
  67. 67. larus-ba.it/neo4j @AgileLARUS Customer Journey Analytics
  68. 68. LARUS Business Automation Srl Italy’s #1 Neo4j Partner Customer Journey Analytics
  69. 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”
  70. 70. LARUS Business Automation Srl Italy’s #1 Neo4j Partner Customer Journey Map
  71. 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
  72. 72. larus-ba.it/neo4j @AgileLARUS Bank Diary DEMO
  73. 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. 74. Modello Dati - Clienti Contratto Cliente LUOGO VENDITA Gestore VENDE SOTTOSCRIVE Prodotto VENDE Filiale IN FILIALE CRONOLOGIA RIFERITO A
  75. 75. Modello Dati - Clienti Prodotto Cliente Gestore ACQUISTA Canale Filiale IN FILIALE CRONOLOGIA ACCEDE VENDE ATTRAVERSO
  76. 76. Modello Dati - Catena Monetaria Evento NEXT Evento NEXT Evento Transazione NEXT NEXT Transazione Transazione OPERAZIONE OPERAZIONE OPERAZIONE Gestore ESEGUE ESEGUE ESEGUE
  77. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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!!
  87. 87. LARUS Business Automation Srl Italy’s #1 Neo4j Partner IDEAS Grab ideas from: https://docs.google.com/presentation/d/1lwNyVIfxxxnHsIf74LaLZSL1MJqt T00EDUOgUAAy_6c/edit#slide=id.g4215a7fd6b_0_546 https://docs.google.com/presentation/d/1UUwhSSMFyi6g0MxoxmXvbgH 4Bghzt-9GmgzTyRqAdpc/edit#slide=id.g3f678eb0b8_0_552
  88. 88. larus-ba.it/neo4j @AgileLARUS GRAZIE GRAPH TALKS FLORENCE, 23 OCTOBER 2018 Fabio Lamanna / @fblamanna Alberto De Lazzari / @albertodela80

×