2. 图谱基础回顾:节点、边、属性图、异构图的基本概念与表示方法
在深入反欺诈图谱模型看板漂移检测之前,必须夯实图谱基础。欺诈图谱本质上是属性异构图,其节点、边、属性及类型信息是后续所有漂移统计与模型监控的原子单元。本节从最基础的图论概念出发,逐步过渡到反欺诈场景下的表示方法。
2.1 节点与边:图谱的原子单元
节点(Node / Vertex) 是图谱中的实体,在反欺诈场景中通常代表参与方或资源。例如:用户、设备、IP 地址、银行卡、订单、手机号。
边(Edge / Link) 是实体之间的交互或关联关系。例如:登录、交易、转账、同设备、同 IP、同收货地址。
下表总结了反欺诈图谱中最常见的节点与边类型:
| 节点类型 | 典型实例 | 边类型 | 典型实例 |
|---|---|---|---|
| 用户(User) | uid_001, uid_002 | 登录(Login) | 用户 → 设备 |
| 设备(Device) | device_id_abc, device_id_xyz | 交易(Transaction) | 用户 → 银行卡 |
| IP 地址(IP) | 192.168.1.1, 10.0.0.1 | 同设备(SameDevice) | 用户 ↔ 用户 |
| 银行卡(Card) | card_6222****1234 | 同 IP(SameIP) | 用户 ↔ 用户 |
| 手机号(Phone) | 138****0000 | 绑定(Bind) | 用户 → 手机号 |
2.2 属性图:为节点和边赋予特征
属性图(Property Graph) 允许节点和边携带键值对形式的属性。属性是漂移检测的核心数据来源,因为模型看板上的统计量(如平均度数、特征均值)都直接来自这些属性。
属性图的形式化定义:
G = (V, E, PV, PE)
- V:节点集合
- E:边集合
- PV:节点属性映射,每个节点可包含多个属性
- PE:边属性映射,每条边可包含多个属性
反欺诈场景下的典型属性示例:
- 用户节点属性:注册时间、注册渠道、历史交易次数、风险评分、设备指纹
- 交易边属性:交易金额、交易时间戳、交易类型、商户ID、是否成功
- 设备节点属性:操作系统版本、屏幕分辨率、是否模拟器、首次出现时间
2.3 异构图:多类型节点与边的统一建模
异构图(Heterogeneous Graph) 包含多种类型的节点和多种类型的边。反欺诈图谱几乎都是异构图,因为欺诈网络天然涉及不同实体(人、设备、账号、资金)之间的复杂交互。
异构图的形式化定义:
G = (V, E, TV, TE, φ, ψ)
- TV:节点类型集合,如 {User, Device, IP, Card, Phone}
- TE:边类型集合,如 {Login, Transaction, SameDevice, SameIP, Bind}
- φ: V → TV:节点类型映射函数
- ψ: E → TE:边类型映射函数
异构图的优势在于能够保留丰富的语义信息。例如,一条边是“登录”还是“交易”,其业务含义和风险权重完全不同,模型看板需要分别监控每种边类型的统计量。
2.4 图谱的表示方法:邻接矩阵与邻接表
图谱在计算机中的存储和计算需要具体的表示方法。反欺诈图谱通常规模较大(千万级节点、亿级边),因此表示方法的选择直接影响漂移检测的计算效率。
| 表示方法 | 描述 | 空间复杂度 | 反欺诈适用性 |
|---|---|---|---|
| 邻接矩阵 | 二维矩阵,A[i][j] 表示节点 i 与 j 是否有边 | O(|V|²) | 仅适用于小图(节点数 < 10⁴) |
| 邻接表 | 每个节点维护一个邻居列表 | O(|V| + |E|) | 适用于大规模稀疏图 |
| 边列表 | 三元组 (src, dst, type) 的集合 | O(|E|) | 适用于分布式存储和流式处理 |
| 压缩稀疏行(CSR) | 按行压缩的邻接矩阵变体 | O(|V| + |E|) | 适用于图神经网络训练 |
在反欺诈图谱模型看板中,最常用的是邻接表和边列表,因为它们支持高效的增量更新和按类型过滤——这对于实时漂移检测至关重要。
2.5 反欺诈异构属性图示例
下图展示了一个典型的反欺诈异构属性图结构,包含 5 种节点类型和 4 种边类型,节点和边上均携带属性:
上图展示了反欺诈图谱的核心特征:多类型节点(用户、设备、IP、银行卡、手机号)通过多类型边(登录、交易、使用、绑定、同设备)连接,每个节点和边都携带丰富的属性信息。这种结构为模型看板提供了多维度的监控维度。
2.6 图谱的数学表示与存储格式
在工程实现中,反欺诈图谱通常以三元组或属性表的形式存储。以下是两种常见的存储格式:
格式一:边列表(Edge List)
# src_node, dst_node, edge_type, timestamp, amount
uid_001, device_abc, login, 2024-01-01 10:00:00, NULL
uid_001, card_6222****1234, transaction, 2024-01-01 10:05:00, 500.00
device_abc, ip_192.168.1.1, use, 2024-01-01 10:00:00, NULL
uid_002, device_abc, login, 2024-01-01 10:10:00, NULL
uid_001, phone_138****0000, bind, 2023-12-01 08:00:00, NULL
格式二:属性表(Property Table)
# 节点表
node_id, node_type, properties
uid_001, user, {"register_time": "2023-01-01", "channel": "app", "risk_score": 0.2}
device_abc, device, {"os": "Android 13", "is_emulator": false, "first_seen": "2023-06-01"}
ip_192.168.1.1, ip, {"geo": "Beijing", "is_proxy": false}
# 边表
src_id, dst_id, edge_type, properties
uid_001, device_abc, login, {"timestamp": "2024-01-01 10:00:00", "success": true}
uid_001, card_6222****1234, transaction, {"timestamp": "2024-01-01 10:05:00", "amount": 500.00, "merchant": "M001"}
2.7 图谱基础概念与漂移检测的映射关系
下表总结了图谱基础概念与看板漂移检测之间的直接映射关系,帮助理解为什么需要回顾这些基础:
| 图谱概念 | 看板监控指标 | 漂移检测意义 |
|---|---|---|
| 节点类型分布 | 每日各类型节点新增/存量计数 | 检测实体类型比例是否突变(如设备节点暴增可能暗示机器注册) |
| 边类型分布 | 每日各类型边新增/存量计数 | 检测交互模式是否变化(如登录边减少、交易边增加可能暗示账户被盗用) |
| 节点属性分布 | 属性均值、方差、分位数、类别频次 | 检测实体特征是否漂移(如用户注册渠道从“app”变为“web”可能暗示攻击者转移) |
| 边属性分布 | 边属性均值、方差、分位数、类别频次 | 检测交互特征是否漂移(如交易金额均值从 200 元变为 5000 元可能暗示洗钱) |
| 图结构统计 | 平均度数、聚类系数、连通分量数 | 检测图谱整体结构是否漂移(如连通分量数骤降可能暗示图谱被大规模污染) |