3. 负采样入门
在图神经网络中,负采样(Negative Sampling)是指在训练时,从图中构造“不存在的边”作为负样本,与真实存在的正样本边一起参与模型优化。它的本质是把链接预测问题转化为二分类问题:模型需要学会区分“真实存在的连接”和“随机虚构的连接”。在金融图场景中,负采样质量直接决定了模型能否学到有判别力的节点表示。
核心定义:给定正样本集合 E⁺(真实边),负采样按某种分布 P 从候选节点对中抽取 E⁻(虚构边),使训练目标最大化正样本得分、最小化负样本得分。
一、为什么需要负采样
如果只用正样本训练,模型会退化为“把所有节点对都预测为存在边”,无法学到区分能力。负采样的作用体现在三个层面:
- 提供对比信号:模型通过“正样本得分应高于负样本”的排序损失获得梯度,形成有判别力的嵌入空间。
- 控制计算成本:全图节点对数量为 O(N²),对百万级金融账户图不可行;负采样把每轮训练规模压缩到可控范围。
- 缓解类别不平衡:金融图中正样本(如真实交易、担保关系)占比极低,负采样可主动调节正负比例。
二、随机负采样与全图负采样的区别
随机负采样从全图节点中均匀或按度分布抽取节点对,实现简单、开销低,但容易产生“简单负样本”——例如两个相距很远、行业完全无关的账户,模型很容易区分,梯度贡献小。全图负采样(也称全局负采样)则在每轮训练中考虑更大范围的候选集,甚至遍历全部节点对进行打分,能挖掘出更难的负样本,但计算代价高。
| 对比维度 | 随机负采样 | 全图负采样 |
|---|---|---|
| 候选范围 | 随机抽取少量节点对 | 全图或大规模候选集 |
| 计算开销 | 低,适合大规模图 | 高,需分布式或近似检索 |
| 负样本难度 | 偏简单,易被模型快速区分 | 可包含困难负样本 |
| 训练稳定性 | 高,但收敛可能较慢 | 梯度信号强,但易受噪声影响 |
| 金融适用性 | 适合冷启动、粗筛阶段 | 适合精排、风险区分阶段 |
三、金融场景下的采样约束
金融图与通用社交图的最大差异在于:负样本不能随意虚构。一条“不存在的边”在业务上可能只是“尚未观测到”,而非“真实不存在”。因此负采样必须引入业务约束。
- 时间约束:负样本的构造不能使用未来信息。例如用 2023 年数据训练时,不能把 2024 年才发生的交易关系当作负样本依据。
- 合规与隐私约束:负样本中不能引入受保护属性(如地域、性别)导致的歧视性关联,需做公平性审查。
- 业务可行性约束:两个账户之间若存在潜在但未记录的关系(如线下担保),不应简单标为负样本,否则会引入标签噪声。
- 度分布约束:金融图通常幂律分布明显,高度节点应避免被过度采样为负样本,否则模型会偏向“抑制热门节点”。
常见误区:直接把“未观测到的边”全部当作负样本。在金融风控中,未观测可能意味着数据缺失、渠道未覆盖或关系尚未发生,而非真实负例。这种“假负例”会显著降低模型召回。
四、方法流程与参数示例
一个可落地的金融图负采样流程通常包含:候选生成 → 业务过滤 → 难度评估 → 采样比例控制。以下是一个基于配置的采样参数示例:
negative_sampling:
strategy: "mixed" # random + hard
num_neg_per_pos: 5 # 每个正样本配5个负样本
hard_ratio: 0.4 # 40%为困难负样本
time_window_days: 30 # 仅使用窗口内可观测关系
exclude_same_community: true
max_degree_percentile: 95 # 高度节点不作为负样本源
seed: 42
执行日志示例:
[INFO] positive edges: 128,430
[INFO] candidate negatives generated: 642,150
[INFO] filtered by time constraint: 71,204 removed
[INFO] filtered by community rule: 38,915 removed
[INFO] final negatives: 532,031
[INFO] pos/neg ratio = 1 : 4.14
实践建议:在金融图项目中,先用随机负采样快速验证模型可行性,再逐步引入困难负样本和业务过滤规则。每增加一类约束,都应重新评估验证集上的 AUC 与 Recall@K,避免约束过强导致负样本分布偏离真实业务分布。
五、复盘:负采样不是“越多越好”
负样本数量并非越多越好。过多的简单负样本会稀释梯度,使模型对困难样本不敏感;过少的负样本则容易过拟合正样本。金融场景中,建议从 1:3 到 1:10 的正负比开始调参,并结合困难负样本挖掘(如基于嵌入相似度的近似最近邻检索)逐步提升判别边界。最终目标是让模型学到的嵌入空间,既能区分明显无关的账户,也能识别出“看似无关但风险关联”的隐蔽关系。