垂直联邦学习进阶:加密实体对齐与特征工程

FreeGuideOnline 最新 2026-06-28

垂直联邦学习进阶:加密实体对齐与特征工程

1. 垂直联邦学习核心回顾

在进入进阶主题之前,我们先快速巩固垂直联邦学习(Vertical Federated Learning, VFL)的定义。

  • 参与方角色:多个机构持有相同用户群的不同特征,例如银行A有用户的收入、征信特征,电商B有用户的购买品类、活跃度特征。
  • 核心挑战:如何在不出各自特征的前提下,对齐共同用户(实体对齐)并协作训练模型。
  • 典型场景:金融风控、精准营销、医疗联合建模。
  • 关键流程:实体对齐 → 特征工程 → 联合建模。本教程聚焦前两个阶段的加密实现与工程技巧。

2. 加密实体对齐:原理与实现

传统的实体对齐需要双方直接交换用户ID(如手机号、身份证号),这会造成隐私泄露。加密实体对齐(Private Set Intersection, PSI)技术允许参与方在不暴露各自全量用户集的前提下,精确找到交集用户。垂直联邦中通常采用基于RSA盲签名或混淆布隆过滤的PSI协议。

2.1 基于RSA盲签名的PSI

这是一种经典的半诚实安全下载成协议,适用于一方拥有私钥(服务方),另一方发送盲化ID的场景。

工作原理:

  1. 服务方(如银行)生成RSA密钥对 (e, d, n),公钥 (e, n) 发送给客户端。
  2. 客户端(如电商)对每个用户ID x 执行:
    • 生成随机盲因子 r,满足 gcd(r, n) = 1
    • 计算盲化消息:blind(x) = x * r^e mod n,将全部盲化值发送给服务方。
  3. 服务方用自己的私钥签名:
    • 对每个接收到的 blind(x) 计算 sign(blind(x)) = (blind(x))^d mod n = x^d * r mod n
    • 将签名结果返回客户端。
  4. 客户端去盲化:
    • 计算 sign(x) = sign(blind(x)) * r^{-1} mod n = x^d mod n
  5. 求交:服务方也用相同方式计算自己所有ID的签名 H(ID)^d mod n(这里会先用哈希函数 H 映射到整数空间)。双方交换各自的签名集,取交集即得到共同用户,而不知道对方非交集用户。

安全前提r 随机,且 n 足够大,攻击者无法从签名反推出原ID。

2.2 实际部署的优化与注意事项

  • 哈希到曲线:为避免RSA数论复杂性,工业界常用基于椭圆曲线的PSI,如ECDH-PSI,通信量更小。
  • 避免ID直接交换:即使是哈希后的ID,也不建议明文传输,应使用分层安全模型。
  • 分批处理:当用户量为亿级时,采用分桶(bucketization)和布隆过滤器预筛选,减少交互轮次。
  • 双方角色:通常由特征方(guest)发起请求,标签方(host)持有私钥。在VFL中,拥有标签的一方(主动方)常作为服务方。
  • 示例代码伪逻辑
// 客户端
for id in my_ids:
    r = rand()
    blinded.append( id * r^e % n )
send_to_server(blinded)

// 服务端
receive blinded
for b in blinded:
    signed.append( b^d % n )
server_signed_self = [ H(id)^d % n for id in my_ids ]
send_to_client(signed)
intersection = set(signed) ∩ set(server_signed_self)

2.3 对齐后的样本同步

对齐完成后,各方按照交集用户的顺序重新排列特征矩阵,确保样本一一对应。通常由一方生成统一顺序的样本ID映射表,分发给其他参与方,映射表使用伪ID而非原始ID,进一步去标识化。

3. 垂直联邦特征工程

与横向联邦不同,垂直联邦的特征分布在多方,特征工程必须在加密或隔离环境中进行。特征分箱、IV值计算等需要设计为联邦安全计算协议。

3.1 联邦特征分箱(Binning)

分箱是将连续特征离散化,常用于评分卡模型。在VFL中,若特征在客方(guest),标签在服方(host),分箱需要双方合作完成。

等频分箱的安全实现:

  • 步骤一:客方对特征值进行排序,但不暴露具体值。利用安全排序算法(如基于混淆电路的排序网络)或基于同态加密的桶划分。
  • 步骤二:客方将每个样本的初始分桶编号(例如1~k)发送给服方。
  • 步骤三:服方统计每个桶内的正负样本数,计算IV和WOE,但服方无法知道桶对应的特征区间。
  • 步骤四:服方将统计结果加密(或使用同态加密)返回给客方,客方解密完成分箱细调。

等距分箱的简化方案:

  • 客方公布每列特征的最大最小值(可加差分隐私保护,如加Laplace噪声)。
  • 双方在明文下确定分箱区间,客方给每个样本分配箱号,后续计算在密文下进行。

3.2 安全WOE与IV值计算

WOE(Weight of Evidence)和IV(Information Value)是评估特征预测能力的核心指标,计算需要结合标签。

标准公式:

  • 对于第i箱:
    • WOE_i = ln( (% of positive in bin i) / (% of negative in bin i) )
    • IV_i = ( %positive_i - %negative_i ) * WOE_i
  • 总IV = Σ IV_i

联邦计算流程(半诚实模型):

  1. 客方对样本进行分箱,得到每个样本的箱号 b
  2. 客方通过安全聚合(如用同态加密将箱号加密)发送给服方。
  3. 服方持有标签 y ∈ {0,1},对每个加密的箱号累加正负样本数,得到加密状态下的 pos_count_ineg_count_i 密文。
  4. 服方用同态加密计算
    • total_pos = Σ pos_count_i, total_neg = Σ neg_count_i
    • pct_pos_i = pos_count_i / total_pos, pct_neg_i = neg_count_i / total_neg
    • WOE_i = ln(pct_pos_i / pct_neg_i)
    • IV_i = (pct_pos_i - pct_neg_i) * WOE_i
  5. 服方将密文结果发送给客方,客方解密得到各箱WOE和IV。服方无法获知原始特征分布。

安全性增强:如果客方不想服方知道箱号分配,可使用混淆电路执行上述步骤,但效率较低。实用中通常接受服方知道加密箱号(不泄露特征值),且两方均为半诚实。

3.3 联邦特征筛选与衍生

  • 基于IV值的特征选择:各方完成IV计算后,可协商选择高IV特征。若标签在多方,需采用安全多方汇总IV。
  • 联邦特征交叉:例如“年龄”在A方,“收入”在B方,需生成年龄×收入交叉特征。可通过秘密共享加法乘法协议实现,但通信开销较大,建议仅在强业务需求时使用。
  • 缺失值处理:各方各自统计缺失率,若某方特征缺失率过高,可在联邦开始前剔除该特征或执行联邦缺失值填补(如用均值填补,均值计算使用安全聚合)。

4. 完整贯通案例:金融风控垂直联邦建模

场景描述

  • 银行(Host)拥有用户标签 y(是否逾期),以及部分特征:信用分、贷款金额。
  • 电商平台(Guest)拥有用户特征:近3个月购物金额、退货率。

协作步骤

  1. 加密实体对齐:基于手机号SM3哈希的RSA-PSI,找到500万共同用户。
  2. 特征标准化:各方各自进行缺失值填充、异常值处理(超出均值±3σ截尾),此过程不涉及对方数据。
  3. 联邦分箱与IV:电商平台将其两个连续特征进行等频5分箱,用同态加密传给银行。银行计算每个箱的WOE和IV,结果加密返回。电商解密发现购物金额IV=0.12(中等预测力),退货率IV=0.03(弱预测力),仅保留购物金额特征。
  4. 特征变换:银行根据解密得到的WOE值,将购物金额特征替换为WOE值,生成新的特征列。此时双方特征矩阵仍分离。
  5. 联合建模:使用拆分式逻辑回归或SecureBoost进行训练,各方仅交换梯度信息,完成模型构建。

5. 常见陷阱与最佳实践

  • 特征漂移监控:联邦环境下,各方数据分布可能缓慢变化。需定期重新计算各箱WOE并更新特征工程管线,避免离线模型失效。
  • 通信开销控制:加密实体对齐在千万级ID时可能消耗数小时。可采用预计算哈希、早停法(发现大量ID不匹配即终止对应分支)优化。
  • 合规性:某些地区法规要求用户明确同意跨机构数据对齐。务必在PSI前取得用户授权,并使用差分隐私保护交集大小。
  • 异质特征处理:若一方有文本特征,需先在本地完成NLP表征(如BERT embedding)后,将向量作为”特征“参与纵向联邦,但注意embedding可能泄露部分语义,需加噪声或使用联邦学习友好模型。

6. 总结

垂直联邦学习的实体对齐与特征工程是建模成功的基石。通过密码学PSI实现安全交集,借助同态加密或安全多方计算完成分箱与IV计算,能够在保护隐私的同时充分挖掘多方特征价值。随着联邦学习生态发展,越来越多的开源框架(如FATE、Fedlearner)已内置这些高阶功能,开发者可在此基础上快速构建合规、高效的跨机构模型。