3. 异构图入门
在反欺诈场景中,我们面对的数据天然就是“关系型”的:一个用户可能使用多台设备,一台设备可能被多个商户共享,一个商户又可能关联多个收款账号。把这些对象和它们之间的关联抽象成图,才能让模型“看见”团伙作案、设备农场、羊毛党等隐蔽模式。本节从图的基本概念出发,讲清同构图与异构图的本质区别,并落到节点类型与边类型的工程定义上。
一、图的基本概念:从三元组说起
图由节点(Node/Vertex)和边(Edge)构成。最朴素的表达是三元组:(头节点, 关系, 尾节点)。例如 (用户U1001, 使用, 设备D2001) 表示用户 U1001 使用过设备 D2001。大量这样的三元组堆叠起来,就形成了图结构。
在工程实现中,图通常有两种存储方式:
- 邻接表:每个节点维护一个邻居列表,适合稀疏图,是图神经网络(GNN)采样时的主流结构。
- 邻接矩阵:用 N×N 矩阵表示连接关系,适合稠密图或需要矩阵运算的场景,但反欺诈图往往上亿节点,矩阵会爆炸。
此外还需理解几个关键属性:有向/无向(用户“使用”设备是有向的,设备“同属一个家庭”可能是无向的)、带权/无权(转账金额可作为边权)、同质/异质(节点和边是否只有一种类型)。这些属性直接决定了后续建模方式。
二、同构图与异构图的本质区别
同构图(Homogeneous Graph)要求所有节点属于同一类型、所有边属于同一关系类型。典型例子是社交网络中的“用户-关注-用户”图,节点全是用户,边全是关注关系。同构图的好处是结构统一,传统 GNN(如 GCN、GraphSAGE)可以直接套用,邻居聚合时不需要区分类型。
异构图(Heterogeneous Graph)则允许节点和边拥有多种类型。反欺诈场景几乎全是异构图:节点有用户、设备、商户、IP、银行卡、手机号;边有“使用”“登录”“收款”“绑定”“同设备”等。不同类型节点携带的特征维度、语义完全不同,不能简单混在一起聚合。
下面用表格对比两者在反欺诈工程中的差异:
| 对比维度 | 同构图 | 异构图 |
|---|---|---|
| 节点类型 | 单一(如仅用户) | 多种(用户/设备/商户/IP) |
| 边类型 | 单一(如关注) | 多种(使用/登录/收款/绑定) |
| 特征空间 | 共享同一特征维度 | 各类型独立特征空间 |
| 典型模型 | GCN、GraphSAGE | HAN、HGT、RGCN、Metapath2vec |
| 反欺诈适用性 | 仅能刻画单一关系 | 可刻画多实体多关系团伙 |
三、节点类型与边类型的工程定义
在真实项目中,定义节点和边类型不是拍脑袋,而是从业务实体和业务动作中抽取。以“用户-设备-商户”反欺诈为例,常见的类型体系如下:
- 节点类型:用户(User)、设备(Device)、商户(Merchant)、IP 地址、银行卡、手机号、收货地址。
- 边类型:使用(User→Device)、登录(User→IP)、收款(Merchant→BankCard)、绑定(User→Phone)、同设备(User↔User)、同 IP(User↔User)。
工程上通常用 schema 显式声明类型,便于后续采样和模型构建。例如用配置描述:
node_types:
- user: {feature_dim: 64}
- device: {feature_dim: 32}
- merchant: {feature_dim: 48}
edge_types:
- (user, uses, device)
- (user, logs_in, ip)
- (merchant, receives, bankcard)
- (user, shares_device, user)
有了 schema,采样时就能按“元路径(Metapath)”组织邻居。例如元路径 User → Device → User 可以找到“共用设备的其他用户”,这正是识别设备农场的关键路径;User → Merchant → User 则能发现“同一商户下的异常用户群”。
四、案例与常见误区复盘
假设某平台发现一批新注册用户在下单后迅速退款。若只看单点特征,这些用户可能都“正常”。但构建异构图后,沿 User → Device → User 路径聚合,发现这 200 个用户只集中在 3 台设备上;再沿 User → Merchant → User 聚合,发现他们都指向同 2 个商户。团伙特征立刻暴露。
实际落地中,初学者常犯以下错误:
- 把异构图当同构图处理:直接把所有节点特征拼接后送入 GCN,导致语义混淆,模型学不到类型差异。
- 边类型定义过粗:把“登录”和“使用”合并成“关联”,丢失了行为强度信息,召回率下降。
- 忽视方向性:用户使用设备与设备被用户使用语义不同,反向边应单独定义或明确忽略。
- 元路径设计脱离业务:盲目堆叠长路径,引入大量噪声邻居,反而稀释了欺诈信号。
理解图的基本概念、分清同构与异构、明确节点与边类型,是后续构建异构图反欺诈模型的地基。只有类型体系设计得清晰、贴合业务,元路径和模型才能真正发挥异构图的表达优势。