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

Preview:

Citation preview

Neo Technology, Inc Confidential

The 5 Graphs of Finance

Philip RathleSr. Director of Products

@prathle philip@neotechnology.com

Neo Technology, Inc Confidential

The “4 Giants”

Ref: http://www.gartner.com/id=2081316

Neo Technology, Inc Confidential

Consumer Web Giants Depends on Five GraphsGartner’s “5 Graphs”

Social Graph

Ref: http://www.gartner.com/id=2081316

Interest Graph

Payment Graph

Intent Graph

Mobile Graph

Neo Technology, Inc Confidential

• Payment Graph(e.g. Fraud Detection, Credit Risk Analysis, Chargebacks...)

• Customer Graph(org drillthru, product recommendations, mobile payments, etc.)

• Entitlement Graph(identity & access management, authorization)

• Asset Graph(portfolio analytics, risk management, market & sentiment analysis, compliance)

• Master Data Graph(enterprise collaboration, corporate hierarchy, data governance)

5 Graphs of Finance

Finance

Neo Technology, Inc Confidential

#1: Payment Graph

Neo Technology, Inc Confidential

Neo Technology, Inc Confidential

The Payment Graph Depends on the Customer Graph (#2)#1: Payment Graph Example

Neo Technology, Inc Confidential

Capturing B2B & B2C Transactions#1: Payment Graph Example

Neo Technology, Inc Confidential

#1: Payment Graph Example

Neo Technology, Inc Confidential

Streamlined Management of Chargebacks#1: Payment Graph Example

Neo Technology, Inc Confidential

#2: Customer Graph

Neo Technology, Inc Confidential

Neo Technology, Inc Confidential

The Corporate Hierarchy is Really a Graph#2: Customer Graph

Neo Technology, Inc Confidential

Cleansing & Matching for 360 degree master view#2: Customer Graph

Neo Technology, Inc Confidential

Bank Fraud Example: Ring of False Identities#2: Customer Graph

Neo Technology, Inc Confidential

Bank Fraud Example: Combinatorial Multiplying of False Persona#2: Customer Graph

3 phony addresses + 3 phony phone #s = 9 phony customers.... and so on

Neo Technology, Inc Confidential

#3: Entitlement Graph

Neo Technology, Inc Confidential

http://blogs.gartner.com/ian-glazer/2013/02/08/killing-iam-in-order-to-save-it/

Neo Technology, Inc Confidential

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• When a new investment manager was onboarded,

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.

Solution & Benefits• Organizational model, groups, and entitlements stored

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

Industry: Financial ServicesUse case: Entitlements/IAMLondon

Large Investment

Bank

Neo Technology, Inc Confidential

#4: Asset Graph

Neo Technology, Inc Confidential

IT Asset ManagementPortfolio Analytics

Risk Analysis

#4: Asset Graph Examples

Neo Technology, Inc Confidential

#5: Master Data Graph

Neo Technology, Inc Confidential

Background

Business problem Solution & Benefits

• German mid-size Insurance company

• Founded in 1858, over 500 employees

• Field sales unit needed easy access to policies and 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

• Enable field sales unit to flexibly search for 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

Industry: InsuranceUse case: Master Data Management

Neo Technology, Inc Confidential

IntercontinentalExchange

Social network for brokers

Neo Technology, Inc Confidential

Technology for Managing Graphs

Neo Technology, Inc Confidential

Use SQL to Find all Dependencies(up to 3 levels down)

(SELECT T.directReportees AS directReportees, sum(T.count) AS countFROM (SELECT manager.pid AS directReportees, 0 AS count FROM person_reportee manager WHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")UNION SELECT manager.pid AS directReportees, count(manager.directly_manages) AS countFROM person_reportee managerWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")GROUP BY directReporteesUNIONSELECT manager.pid AS directReportees, count(reportee.directly_manages) AS countFROM person_reportee managerJOIN person_reportee reporteeON manager.directly_manages = reportee.pidWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")GROUP BY directReporteesUNIONSELECT manager.pid AS directReportees, count(L2Reportees.directly_manages) AS countFROM person_reportee managerJOIN person_reportee L1ReporteesON manager.directly_manages = L1Reportees.pidJOIN person_reportee L2ReporteesON L1Reportees.directly_manages = L2Reportees.pidWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")GROUP BY directReportees) AS TGROUP BY directReportees)UNION(SELECT T.directReportees AS directReportees, sum(T.count) AS countFROM (SELECT manager.directly_manages AS directReportees, 0 AS countFROM person_reportee managerWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")UNIONSELECT reportee.pid AS directReportees, count(reportee.directly_manages) AS countFROM person_reportee managerJOIN person_reportee reporteeON manager.directly_manages = reportee.pidWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")GROUP BY directReporteesUNION

(continued from previous page...)SELECT depth1Reportees.pid AS directReportees,count(depth2Reportees.directly_manages) AS countFROM person_reportee managerJOIN person_reportee L1ReporteesON manager.directly_manages = L1Reportees.pidJOIN person_reportee L2ReporteesON L1Reportees.directly_manages = L2Reportees.pidWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")GROUP BY directReportees) AS TGROUP BY directReportees)UNION(SELECT T.directReportees AS directReportees, sum(T.count) AS count FROM( SELECT reportee.directly_manages AS directReportees, 0 AS countFROM person_reportee managerJOIN person_reportee reporteeON manager.directly_manages = reportee.pidWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")GROUP BY directReporteesUNIONSELECT L2Reportees.pid AS directReportees, count(L2Reportees.directly_manages) AScountFROM person_reportee managerJOIN person_reportee L1ReporteesON manager.directly_manages = L1Reportees.pidJOIN person_reportee L2ReporteesON L1Reportees.directly_manages = L2Reportees.pidWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")GROUP BY directReportees) AS TGROUP BY directReportees)UNION(SELECT L2Reportees.directly_manages AS directReportees, 0 AS countFROM person_reportee managerJOIN person_reportee L1ReporteesON manager.directly_manages = L1Reportees.pidJOIN person_reportee L2ReporteesON L1Reportees.directly_manages = L2Reportees.pidWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName"))

Neo Technology, Inc Confidential

Using CypherMATCH  (fund)-­‐[:INCLUDES*0..n]-­‐>(sub),            (sub)-­‐[:INCLUDES*1..n]-­‐>(asset)WHERE  fund.ticker  =  “TRLGX”RETURN  sub.ticker  AS  Asset_Group,  count(asset)  AS  TotalORDER  BY  Total  DESC

Use Cypher to Find all Dependencies(up to n levels down)

For a given fund, returns all assets thatare made up of other assets,

ordered by the total # of included assets

Neo Technology, Inc Confidential

RDBMS vs. Native Graph Database

Connected Data & Query Performance

Connectedness of Data Set

Resp

onse

Tim

e

RDBMSDegree: < 3Size: Thousands

# Hops: < 3Neo4j

Degree: Thousands+Size: Billions+

# Hops: Tens to Hundreds

1000x faster

Neo Technology, Inc Confidential

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

Who’s Using Graph Databases Today?

Finance

Finance

Accenture

Neo Technology, Inc Confidential

Thanks!

Stay Connected

Recommended