Your SlideShare is downloading. ×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

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

1,140
views

Published on

Published in: Technology, Economy & Finance

1 Comment
5 Likes
Statistics
Notes
No Downloads
Views
Total Views
1,140
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
78
Comments
1
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. The 5 Graphs of Finance Philip Rathle Sr. Director of Products @prathle philip@neotechnology.com Neo Technology, Inc Confidential
  • 2. The “4 Giants” Neo Technology, Inc Confidential Ref: http://www.gartner.com/id=2081316
  • 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. 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. #1: Payment Graph Neo Technology, Inc Confidential
  • 6. Neo Technology, Inc Confidential
  • 7. #1: Payment Graph Example The Payment Graph Depends on the Customer Graph (#2) Neo Technology, Inc Confidential
  • 8. #1: Payment Graph Example Capturing B2B & B2C Transactions Neo Technology, Inc Confidential
  • 9. #1: Payment Graph Example Neo Technology, Inc Confidential
  • 10. #1: Payment Graph Example Streamlined Management of Chargebacks Neo Technology, Inc Confidential
  • 11. #2: Customer Graph Neo Technology, Inc Confidential
  • 12. Neo Technology, Inc Confidential
  • 13. #2: Customer Graph The Corporate Hierarchy is Really a Graph Neo Technology, Inc Confidential
  • 14. #2: Customer Graph Cleansing & Matching for 360 degree master view Neo Technology, Inc Confidential
  • 15. #2: Customer Graph Bank Fraud Example: Ring of False Identities Neo Technology, Inc Confidential
  • 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. #3: Entitlement Graph Neo Technology, Inc Confidential
  • 18. http://blogs.gartner.com/ian-glazer/2013/02/08/killing-iam-in-order-to-save-it/ Neo Technology, Inc Confidential
  • 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. #4: Asset Graph Neo Technology, Inc Confidential
  • 21. #4: Asset Graph Examples Portfolio Analytics IT Asset Management Risk Analysis Neo Technology, Inc Confidential
  • 22. #5: Master Data Graph Neo Technology, Inc Confidential
  • 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. IntercontinentalExchange Social network for brokers Neo Technology, Inc Confidential
  • 25. Technology for Managing Graphs Neo Technology, Inc Confidential
  • 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. 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. 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. 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. Who’s Using Graph Databases Today? Finance Finance Neo Technology, Inc Confidential Accenture
  • 31. Thanks! Stay Connected Neo Technology, Inc Confidential