一、图论入门:从关系说起
说实话,我第一次接触图论时,觉得这东西离金融风控挺远的。直到后来做反欺诈项目,发现传统特征工程根本搞不定团伙作案,才意识到——图,才是描述「关系」最自然的语言。
图论说白了就是研究「节点」和「边」的数学。节点代表实体,边代表关系。你想想看,在金融场景里,用户、设备、银行卡、手机号……这些实体天然就是节点,它们之间的转账、登录、绑定关系就是边。
核心定义:图 G = (V, E),其中 V 是节点集合,E 是边集合。
我在项目中遇到过一个问题:刚开始做图建模时,总想把所有关系都塞进去,结果图变得又大又乱。后来我学乖了——先明确你要解决什么问题,再决定哪些节点和边有用。
二、图的基本表示
2.1 邻接矩阵
这是最直观的表示方式。假设有 N 个节点,邻接矩阵 A 就是 N×N 的矩阵。如果节点 i 和节点 j 之间有边,A[i][j] = 1,否则为 0。
# 一个简单的邻接矩阵示例
# 3个节点,1-2相连,2-3相连
A = [
[0, 1, 0],
[1, 0, 1],
[0, 1, 0]
]
我的习惯:在金融风控中,邻接矩阵通常很稀疏。比如 100 万用户,平均每人只有几十条关系,矩阵里 99.9% 都是 0。所以实际开发中,我几乎不用稠密矩阵,而是用稀疏矩阵格式(比如 COO、CSR)。
2.2 邻接表
邻接表更节省空间。每个节点只存储它的邻居列表。对于大规模图,这是更实用的方式。
# 邻接表表示
graph = {
0: [1],
1: [0, 2],
2: [1]
}
2.3 度矩阵
度矩阵 D 是对角矩阵,D[i][i] 表示节点 i 的度数(即有多少条边连到它)。
避坑指南:我曾经在计算图卷积时,忘了考虑孤立节点(度数为 0 的节点)。结果归一化时除以 0,模型直接崩了。嗯,后来我养成了习惯——先检查度矩阵,对孤立节点做特殊处理。
三、图的类型
3.1 有向图 vs 无向图
有向图的边有方向,比如 A→B 表示 A 转账给 B。无向图的边没有方向,比如 A 和 B 是好友关系。
| 类型 | 特点 | 金融风控场景 |
|---|---|---|
| 有向图 | 边有方向 | 转账、交易、授权 |
| 无向图 | 边无方向 | 共用设备、同 IP、同地址 |
你想想看,在反洗钱场景中,资金流向是有方向的。A 转给 B 和 B 转给 A,含义完全不同。所以有向图更适合这类场景。
3.2 异构图
异构图是重点。它包含多种类型的节点和边。在金融风控中,几乎所有的图都是异构图。
举个例子:用户、设备、银行卡、手机号是不同类型的节点。用户登录设备、用户绑定银行卡、用户使用手机号——这些是不同类型的边。
为什么异构重要?因为同构图只能描述「同类实体之间的关系」,而金融风控需要跨实体推理。比如一个欺诈团伙,可能通过不同设备、不同银行卡、不同手机号来伪装,但异构图能把这些线索串起来。
我记得有一次做团伙检测,用同构图只能找到直接关联的用户,漏掉了大量通过「共用设备」间接关联的欺诈分子。换成异构图后,召回率提升了 30%。
四、图在金融风控中的应用场景
4.1 反欺诈
这是最经典的应用。欺诈团伙通常有「聚集性」——他们共用设备、共用 IP、共用地址。图结构能天然捕捉这种聚集模式。
- 团伙检测:通过社区发现算法,找到紧密连接的子图
- 异常检测:识别孤立节点或异常边(比如短时间内大量转账)
- 风险传播:已知欺诈节点,通过图传播找到关联风险节点
4.2 信用评估
传统信用评估只看个人特征,但图能引入「关系特征」。比如一个人的朋友如果普遍违约,他本人的违约概率也会更高。
我的经验:在信用评估中,我常用「图嵌入」来提取关系特征。把每个用户映射成一个向量,这个向量包含了他在图中的位置信息。然后把这个向量拼接到传统特征里,效果往往有提升。
4.3 反洗钱
洗钱行为通常涉及多层转账、资金归集、拆分。图结构能清晰展示资金流向,帮助识别可疑模式。
- 资金流分析:追踪资金从源头到终点的路径
- 循环交易检测:识别 A→B→C→A 这种异常循环
- 分层交易检测:发现资金经过多层中转后集中到少数账户
4.4 关系推理
有些风险是隐式的。比如用户 A 和用户 B 没有直接关系,但他们都和同一个欺诈设备有关联。图神经网络能通过消息传递机制,捕捉这种「二阶关系」甚至「多阶关系」。
避坑指南:我曾经在关系推理中,把图做得太深(比如 10 层 GNN),结果所有节点的表示都趋于相同——这就是过平滑问题。后来我控制在 2-3 层,效果反而更好。
五、本章知识体系
下面这张图总结了本章的核心内容,我建议你保存下来,后面学 GNN 时会反复用到这些概念。
这张图把本章的知识点串起来了。从图论入门开始,到图的表示方法,再到不同类型的图,最后落到金融风控的具体场景。后面的章节,我们会一步步深入 GNN 的核心算法。
最后说一句:图神经网络不是银弹。我见过很多团队一上来就上 GNN,结果数据质量不行、图结构不合理,效果还不如 LR。我的建议是——先把图论基础打牢,把数据清洗好,再考虑模型。地基稳了,楼才能盖得高。
公众号:蓝海资料掘金营,微信deep3321