You are on page 1of 27

如何将图算法应用于金融生产数据

林选磊
Sep 25, 2021

1
生产数据是长什么样的?

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM


2
您可以觉得生产数据长这样的

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 3


也可能觉得生产数据应该长这样的

Name Age Gender Country

Alex 28 Male China

Anna 39 Female USA

Lucas 41 Male UK

Michael 35 Male China

James 25 Male India

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 4


最多不过长这样的罢了

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 5


实际上,生产数据很可能是长这样的

动图来源:https://towardsdatascience.com/designing-a-3d-healthcare-network-graph-291e4f75e9a5

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 6


3S难题

Small-world Scale-free Supernode

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 7


图建模是基础

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM


8
图建模
一个好的图模型设计可以减少系统资源消耗,并为查询性能提供保障。
图Schema的设计需要基于输入数据格式以及查询用例。

输入数据格式
地理位置
购买记录
事件

客户画像
图的Schema
浏览记录

订单

查询用例

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 9


同构图与异构图

同构图:顶点只有一种类型,边也只 异构图:顶点可能有多种类型,边也
有一种类型(如社交网络) 有多种类型(如知识图谱)

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 10


同构图与异构图 - 账户交易图
4 4

1 1

S S
2 2
5 1 5
3 2 1 3 2
9 9

图例 1
1
1 1

账户
8 6 8 6
交易
7 7

异构图:保留明细数据,但查询速度慢 同构图:查询速度快,但细节信息缺失

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 11


有向边与无向边

无向边

A B A可以到达B,同样B也可以到达A

有向边 ● 无向边 v.s. 有向边 + 反向


边 有何区别?
A B A可以到达B,但是B不可以到达A
● 如何选择边的类型?

有向边+反向边
e1
A B A可以通过e1到达B,B可以通过e2到达A
e2 注:e2是在创建e1的时候自动创建的,
并且拥有和e1一模一样的属性。

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 12


无向边 v.s. 有向边+反向边 - 场景一
目标:找出与输入用户(User)张三有相同邮箱地址(Email)的用户(User)

采用无向边方案 采用有向边+反向边方案
has_email
has_email
User Email User Email

rev_has_email

Nodes = {input}; Start = {input};


WHILE TRUE LIMIT 2 DO Emails =
Nodes = SELECT t
SELECT t FROM Start:s -(has_email:e)-:t
FROM Nodes:s -(has_email:e)-:t ;
; Users =
END; SELECT t
FROM Emails:s -(rev_has_email:e)-:t
这种情况采用无向边方案更简洁 ;

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 13


无向边 v.s. 有向边+反向边 - 场景二
目标:已知一张公司控股关系图,找出给定公司J的最终控股公司(母公司)

采用无向边方案 采用有向边+反向边方案

A A

B C B C

D E F D E F

G H I J G H I J

在这个案例中,通过无向边的方案 通过有向边+反向边的方案可以轻
很难解答用户的问题,因为无向边 易解决这个问题。如果要查询母公
并不提供方向信息,即不知道哪个 司,可以使用虚线的边;如果要查询
是母公司,哪个是子公司。 子公司,则可以使用实线的边。

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 14


更多话题

● 经验法则:哪些可以作为点?哪 ● 如何对层级结构进行建模?
些可以作为边? ● 两个实体间存在多个事件/交易的
● 边类型的颗粒度 情况
● 属性还是顶点? ● 衍生边
● 如何在图中对时间进行建模? ● 根据使用场景设计schema

详参https://www.tigergraph.com.cn/activities/webinar/

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 15


图算法选择与优化

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM


16
常见图算法

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 17


图分析任务(上)
?
?

顶点级的任务举例: ?
● 已经知道部分顶点的标签(如正常电
话、欺诈电话、广告电话) ?
● 预测未标记的顶点的标签
? ?

预测A和B之间是否
A
有关联关系?

边级的任务举例:
● 已经知道部分顶点之间的连接关系
● 预测任意一对顶点之间是否有连接关
系?

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 18


图分析任务(下)

子图级的任务举例:
● 识别密集连接的节点社群
● 描述每个社群的特点

全图级的任务举例:
● 已经知道一些分子的结构及特性
● 根据需要的特性,自动生成新分子

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 19


常见图算法

算法库:https://docs.tigergraph.com/tigergraph-platform-overview/graph-algorithm-library

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 20


如何将业务逻辑与算法相结合

● 如果算法中要嵌入业务逻辑,使用通用的算法不够用怎么
办?
● 举例
○ 官网的环形检测算法
○ 嵌入业务逻辑的环形检测

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 21


如何根据数据特点优化算法

● 如果数据具有small-world和scale-free的特点,能否根据
这些特点优化算法?
● 举例
○ 通用的弱连通分量算法和强连通分量算法在具有小世
界的特点的数据集上性能一般,可否进一步提升?
○ 针对小世界特点的弱连通分量算法

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 22


针对小世界特点的WCC/SCC算法

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 23


如何将图算法嵌入解决方案中

无环担保链 有环担保链

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 24


使用SCC算法解决担保圈问题

© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 25


想了解更多

扫/码/关/注
© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 26
© 2021. ALL RIGHTS RESERVED. | TIGERGRAPH.COM 27

You might also like