4. 金融图负采样核心方法

在金融图学习中,负采样决定了模型“从哪些反例中学习边界”。金融场景的负样本并非随机噪声,而是带有业务语义的“近似反例”:同一实控人下的两家企业、同一设备登录的多个账户、资金链路中隔一跳的对手方,都可能是高价值困难负样本。本节围绕四类核心方法展开:基于随机游走的负采样、基于节点相似度的负采样、基于元路径的负采样、基于生成模型的负采样,并给出可落地的流程与参数建议。

核心判断:负采样方法的选择,取决于“我们希望模型学到什么边界”。随机游走强调结构可达性,相似度强调特征与邻域距离,元路径强调语义类型约束,生成模型强调分布拟合与多样性。

一、核心原理:四类方法的信号来源

金融图通常包含账户、企业、设备、IP、交易、担保、任职等多类节点与边。正样本来自真实存在的交易、担保或关联关系;负样本则需要构造“不存在的边”。四类方法分别从不同信号源构造负样本:

  • 基于随机游走:从目标节点出发做带重启或带偏置的游走,将游走路径中未直接相连但共现的节点作为负样本。它捕捉的是高阶结构可达性,适合交易网络、资金链路。
  • 基于节点相似度:计算节点在嵌入空间或属性空间的相似度,选取“相似但无真实边”的节点对作为负样本。它强调特征邻域距离,适合企业画像、客户分群。
  • 基于元路径:在异质图中按预定义语义路径(如“企业—任职—自然人—任职—企业”)采样,将满足路径模式但无直接边的节点对作为负样本。它强调语义类型约束,适合关联方识别、团伙挖掘。
  • 基于生成模型:用GAN、VAE或扩散模型学习负样本分布,生成“像正样本但非正样本”的困难负例。它强调分布拟合与多样性,适合正负样本极度不平衡的风控场景。
金融图负采样:四类方法的信号来源与适用对象 随机游走 信号:高阶结构可达性 对象:交易/资金链路 负例:共现但无边 节点相似度 信号:特征/嵌入距离 对象:企业画像/客户 负例:相似但无边 元路径 信号:语义类型约束 对象:关联方/团伙 负例:同模式无边 生成模型 信号:分布拟合 对象:极端不平衡风控 负例:生成困难负例 统一流程:候选生成 → 难度打分 → 采样过滤 → 训练反馈 候选负例池 游走/相似/路径/生成 难度打分 相似度/路径距离/判别器 采样与过滤 Top-K/温度/去噪 训练反馈 损失/梯度/迭代

二、方法流程与关键参数

四类方法在工程上可以统一为“候选生成—难度打分—采样过滤—训练反馈”的闭环。下面给出各方法的典型流程与参数配置。

1. 基于随机游走的负采样

常用带重启随机游走(RWR)或Node2Vec偏置游走。从目标节点出发,按转移概率游走若干步,收集未与目标节点直接相连的共现节点作为负样本。关键参数包括游走长度、重启概率、每节点游走次数、负样本数量。

# 随机游走负采样参数示例
walk_length = 20          # 游走长度
num_walks = 10            # 每节点游走次数
restart_prob = 0.15       # 重启概率
p = 1.0                   # 回退参数
q = 0.5                   # 前进参数,q<1 偏向DFS
neg_per_node = 5          # 每节点负样本数
window_size = 5           # 共现窗口

2. 基于节点相似度的负采样

先获得节点嵌入或属性向量,再计算余弦相似度或欧氏距离。选取相似度高于阈值但无真实边的节点对作为困难负样本。常用策略是“相似度分桶采样”,避免全部取最高相似度导致假阴性。

# 相似度负采样伪代码
sim = cosine_similarity(emb)
candidates = [(u,v) for u,v in pairs if sim[u,v] > tau and not has_edge(u,v)]
negatives = sample_by_bucket(candidates, buckets=5, top_k=3)

3. 基于元路径的负采样

在异质图中定义元路径,如“企业—任职—自然人—任职—企业”“企业—担保—企业—交易—企业”。沿元路径采样满足模式但无直接边的节点对。关键参数是元路径集合、路径长度、采样权重。

# 元路径配置示例
meta_paths = [
  "Enterprise-Employment-Person-Employment-Enterprise",
  "Enterprise-Guarantee-Enterprise-Transaction-Enterprise",
  "Account-Device-Account-IP-Account"
]
path_weight = {"EPEPE": 0.5, "EGETE": 0.3, "ADAI A": 0.2}
max_path_len = 5
neg_per_path = 2

4. 基于生成模型的负采样

用生成器学习正样本分布,生成候选负例,再由判别器或业务规则过滤。常见做法是GAN式对抗训练,或VAE重构误差筛选。关键参数包括生成器维度、判别器阈值、生成数量、多样性惩罚系数。

# 生成式负采样训练片段
for epoch in range(epochs):
    z = sample_noise(batch_size, latent_dim)
    fake_neg = generator(z)
    d_loss = discriminator_loss(real_pos, fake_neg)
    g_loss = generator_loss(fake_neg, diversity_penalty=0.1)
    update(generator, discriminator)
negatives = filter_by_business_rule(fake_neg, rule_set)

三、案例场景:反欺诈关联方识别

某银行在构建企业关联方识别模型时,正样本为已知的担保、任职、交易关系,负样本需要从海量未连接企业中构造。若随机采样,模型容易学到“行业不同即无关”的浅层规则;若全部采用高相似度负样本,又会引入大量假阴性。实践中采用混合策略:

方法 负样本来源 难度 适用阶段 风险
随机游走 资金链路共现但无边 中高 预训练 可能引入真实弱关系
节点相似度 同行业同规模但无关联 中 微调 假阴性偏高
元路径 同实控人路径但无直接边 高 精排 路径定义依赖专家
生成模型 生成器合成的困难负例 高 对抗训练 训练不稳定、需过滤
实战建议:先用随机游走和相似度方法快速构建基础负例池,再用元路径方法注入业务语义,最后用生成模型补充长尾困难负例。四类方法不是互斥关系,而是分层组合关系。

四、误区与复盘

在金融图负采样中,最常见的误区是把“负采样”等同于“随机采样”。随机负例在金融图中往往过于容易区分,模型学不到细粒度边界。另一个误区是过度追求困难负样本,导致假阴性被当作负例训练,反而损害召回。复盘时应重点关注以下问题:

  • 负例是否可被业务规则解释:无法解释的负例可能本身就是潜在正例,需要人工复核。
  • 难度分布是否合理:建议按相似度或路径距离分桶,保持易、中、难负例比例约为 3:5:2。
  • 是否引入时间泄漏:负采样必须基于训练时间窗口内的图结构,避免使用未来边。
  • 是否评估负例质量:可用判别器AUC、假阴性率、业务复核通过率三项指标监控。
特别注意:金融图存在大量“缺失边”,即真实存在但未记录的关系。负采样时若不加过滤,可能把缺失边当作负例,导致模型学到错误边界。建议在采样后增加业务规则过滤和人工抽检环节。

综上,四类负采样方法各有侧重:随机游走捕捉结构可达性,节点相似度捕捉特征距离,元路径捕捉语义约束,生成模型捕捉分布多样性。工程落地时,应根据业务阶段、图规模、标注成本和模型目标,选择单方法或组合策略,并持续监控负例质量与模型效果。