The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

2,593 views

Published on

Published in: Technology, Economy & Finance

The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

  1. 1. The 5 Graphs of Finance Philip Rathle Sr. Director of Products @prathle philip@neotechnology.com Neo Technology, Inc Confidential
  2. 2. The “4 Giants” Neo Technology, Inc Confidential Ref: http://www.gartner.com/id=2081316
  3. 3. Gartner’s “5 Graphs” Consumer Web Giants Depends on Five Graphs Interest Graph Intent Graph Social Graph Payment Graph Mobile Graph Neo Technology, Inc Confidential Ref: http://www.gartner.com/id=2081316
  4. 4. 5 Graphs of Finance • Payment Graph (e.g. Fraud Detection, Credit Risk Analysis, Chargebacks...) • Customer Graph (org drillthru, product recommendations, mobile payments, etc.) • Entitlement Graph Finance (identity & access management, authorization) • Asset Graph (portfolio analytics, risk management, market & sentiment analysis, compliance) • Master Data Graph (enterprise collaboration, corporate hierarchy, data governance) Neo Technology, Inc Confidential
  5. 5. #1: Payment Graph Neo Technology, Inc Confidential
  6. 6. Neo Technology, Inc Confidential
  7. 7. #1: Payment Graph Example The Payment Graph Depends on the Customer Graph (#2) Neo Technology, Inc Confidential
  8. 8. #1: Payment Graph Example Capturing B2B & B2C Transactions Neo Technology, Inc Confidential
  9. 9. #1: Payment Graph Example Neo Technology, Inc Confidential
  10. 10. #1: Payment Graph Example Streamlined Management of Chargebacks Neo Technology, Inc Confidential
  11. 11. #2: Customer Graph Neo Technology, Inc Confidential
  12. 12. Neo Technology, Inc Confidential
  13. 13. #2: Customer Graph The Corporate Hierarchy is Really a Graph Neo Technology, Inc Confidential
  14. 14. #2: Customer Graph Cleansing & Matching for 360 degree master view Neo Technology, Inc Confidential
  15. 15. #2: Customer Graph Bank Fraud Example: Ring of False Identities Neo Technology, Inc Confidential
  16. 16. #2: Customer Graph Bank Fraud Example: Combinatorial Multiplying of False Persona 3 phony addresses + 3 phony phone #s = 9 phony customers.... and so on Neo Technology, Inc Confidential
  17. 17. #3: Entitlement Graph Neo Technology, Inc Confidential
  18. 18. http://blogs.gartner.com/ian-glazer/2013/02/08/killing-iam-in-order-to-save-it/ Neo Technology, Inc Confidential
  19. 19. Large Investment Bank Industry: Financial Services Use case: Entitlements/IAM London Background • Top investment bank: over $1T in total assets • Using a relational database coupled with Gemfire for managing employee permissions to research resources (documents and application services) Business problem Solution & Benefits • When a new investment manager was onboarded, • Organizational model, groups, and entitlements stored permissions were manually provisioned via a complex manual process. Traders lost an average of 5 days of trading, waiting for the permissions to be granted • Competitor had implemented a project to accelerate the onboarding process. Needed to respond quickly. • High stakes: Regulations leave no room for error. • High complexity: Granular permissions mean each trader needed access to hundreds of resources. in Neo4j • Very happy with the performance of the solution, and the productivity advantage of a domain fit • Graph visualization makes it easier for the business to provision permissions themselves • Moving to Neo4j meant “fewer compromises” than a relational data store Neo Technology, Inc Confidential
  20. 20. #4: Asset Graph Neo Technology, Inc Confidential
  21. 21. #4: Asset Graph Examples Portfolio Analytics IT Asset Management Risk Analysis Neo Technology, Inc Confidential
  22. 22. #5: Master Data Graph Neo Technology, Inc Confidential
  23. 23. Industry: Insurance Use case: Master Data Management Background • German mid-size Insurance company • Founded in 1858, over 500 employees Business problem Solution & Benefits • Field sales unit needed easy access to policies and • Enable field sales unit to flexibly search for customer data, in an increasing variety of ways • Needed to support a growing business • Existing IBM DB2 system not able to meet performance requirements as the system scaled • 24/7 available system for sales unit outside the company needed insurance policies and associated personal data • Raising the bar with respect to insurance industry practices • Suppor the business as it scales, with a high level of performance • Easy port of existing metadata into Neo4j Neo Technology, Inc Confidential
  24. 24. IntercontinentalExchange Social network for brokers Neo Technology, Inc Confidential
  25. 25. Technology for Managing Graphs Neo Technology, Inc Confidential
  26. 26. Use SQL to Find all Dependencies (up to 3 levels down) (continued from previous page...) (SELECT T.directReportees AS directReportees, sum(T.count) AS count SELECT depth1Reportees.pid AS directReportees, FROM ( count(depth2Reportees.directly_manages) AS count SELECT manager.pid AS directReportees, 0 AS count FROM person_reportee manager FROM person_reportee manager JOIN person_reportee L1Reportees WHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName") ON manager.directly_manages = L1Reportees.pid UNION JOIN person_reportee L2Reportees SELECT manager.pid AS directReportees, count(manager.directly_manages) AS count ON L1Reportees.directly_manages = L2Reportees.pid FROM person_reportee manager WHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName") WHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName") GROUP BY directReportees GROUP BY directReportees ) AS T UNION GROUP BY directReportees) SELECT manager.pid AS directReportees, count(reportee.directly_manages) AS count UNION FROM person_reportee manager (SELECT T.directReportees AS directReportees, sum(T.count) AS count JOIN person_reportee reportee FROM( ON manager.directly_manages = reportee.pid SELECT reportee.directly_manages AS directReportees, 0 AS count WHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName") FROM person_reportee manager GROUP BY directReportees JOIN person_reportee reportee UNION ON manager.directly_manages = reportee.pid SELECT manager.pid AS directReportees, count(L2Reportees.directly_manages) AS count WHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName") FROM person_reportee manager GROUP BY directReportees JOIN person_reportee L1Reportees UNION ON manager.directly_manages = L1Reportees.pid SELECT L2Reportees.pid AS directReportees, JOIN person_reportee L2Reportees count(L2Reportees.directly_manages) AS ON L1Reportees.directly_manages = L2Reportees.pid count WHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName") FROM person_reportee manager GROUP BY directReportees JOIN person_reportee L1Reportees ) AS T ON manager.directly_manages = L1Reportees.pid GROUP BY directReportees) JOIN person_reportee L2Reportees UNION ON L1Reportees.directly_manages = L2Reportees.pid (SELECT T.directReportees AS directReportees, sum(T.count) AS count WHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName") FROM ( GROUP BY directReportees SELECT manager.directly_manages AS directReportees, 0 AS count ) AS T FROM person_reportee manager GROUP BY directReportees) WHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName") UNION UNION (SELECT L2Reportees.directly_manages AS directReportees, 0 AS count SELECT reportee.pid AS directReportees, count(reportee.directly_manages) AS count FROM person_reportee manager FROM person_reportee manager JOIN person_reportee L1Reportees JOIN person_reportee reportee ON manager.directly_manages = L1Reportees.pid ON manager.directly_manages = reportee.pid JOIN person_reportee L2Reportees WHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName") ON L1Reportees.directly_manages = L2Reportees.pid GROUP BY directReportees WHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName") UNION Neo Technology, Inc Confidential )
  27. 27. Use Cypher to Find all Dependencies (up to n levels down) Using Cypher MATCH  (fund)-­‐[:INCLUDES*0..n]-­‐>(sub),            (sub)-­‐[:INCLUDES*1..n]-­‐>(asset) WHERE  fund.ticker  =  “TRLGX” RETURN  sub.ticker  AS  Asset_Group,  count(asset)  AS  Total ORDER  BY  Total  DESC For a given fund, returns all assets that are made up of other assets, ordered by the total # of included assets Neo Technology, Inc Confidential
  28. 28. Connected Data & Query Performance RDBMS vs. Native Graph Database Response Time 1000x faster Degree: Thousands+ Size: Billions+ # Hops: Tens to Hundreds RDBMS Degree: < 3 Size: Thousands # Hops: < 3 Neo4j Connectedness of Data Set Neo Technology, Inc Confidential
  29. 29. Top Reasons for Choosing Neo4j 1. Problems with JOIN performance 2. Domain fit for graph 3. Open-ended business requirements necessitating fast, iterative development 4. Evolving and/or non-uniform data, avoiding sparse tables and frequent schema chances Neo Technology, Inc Confidential
  30. 30. Who’s Using Graph Databases Today? Finance Finance Neo Technology, Inc Confidential Accenture
  31. 31. Thanks! Stay Connected Neo Technology, Inc Confidential

×