垂直联邦学习进阶:加密实体对齐与特征工程
垂直联邦学习进阶:加密实体对齐与特征工程
1. 垂直联邦学习核心回顾
在进入进阶主题之前,我们先快速巩固垂直联邦学习(Vertical Federated Learning, VFL)的定义。
- 参与方角色:多个机构持有相同用户群的不同特征,例如银行A有用户的收入、征信特征,电商B有用户的购买品类、活跃度特征。
- 核心挑战:如何在不出各自特征的前提下,对齐共同用户(实体对齐)并协作训练模型。
- 典型场景:金融风控、精准营销、医疗联合建模。
- 关键流程:实体对齐 → 特征工程 → 联合建模。本教程聚焦前两个阶段的加密实现与工程技巧。
2. 加密实体对齐:原理与实现
传统的实体对齐需要双方直接交换用户ID(如手机号、身份证号),这会造成隐私泄露。加密实体对齐(Private Set Intersection, PSI)技术允许参与方在不暴露各自全量用户集的前提下,精确找到交集用户。垂直联邦中通常采用基于RSA盲签名或混淆布隆过滤的PSI协议。
2.1 基于RSA盲签名的PSI
这是一种经典的半诚实安全下载成协议,适用于一方拥有私钥(服务方),另一方发送盲化ID的场景。
工作原理:
- 服务方(如银行)生成RSA密钥对
(e, d, n),公钥(e, n)发送给客户端。 - 客户端(如电商)对每个用户ID
x执行:- 生成随机盲因子
r,满足gcd(r, n) = 1。 - 计算盲化消息:
blind(x) = x * r^e mod n,将全部盲化值发送给服务方。
- 生成随机盲因子
- 服务方用自己的私钥签名:
- 对每个接收到的
blind(x)计算sign(blind(x)) = (blind(x))^d mod n = x^d * r mod n。 - 将签名结果返回客户端。
- 对每个接收到的
- 客户端去盲化:
- 计算
sign(x) = sign(blind(x)) * r^{-1} mod n = x^d mod n。
- 计算
- 求交:服务方也用相同方式计算自己所有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
联邦计算流程(半诚实模型):
- 客方对样本进行分箱,得到每个样本的箱号
b。 - 客方通过安全聚合(如用同态加密将箱号加密)发送给服方。
- 服方持有标签
y ∈ {0,1},对每个加密的箱号累加正负样本数,得到加密状态下的pos_count_i和neg_count_i密文。 - 服方用同态加密计算
total_pos = Σ pos_count_i,total_neg = Σ neg_count_ipct_pos_i = pos_count_i / total_pos,pct_neg_i = neg_count_i / total_negWOE_i = ln(pct_pos_i / pct_neg_i)IV_i = (pct_pos_i - pct_neg_i) * WOE_i
- 服方将密文结果发送给客方,客方解密得到各箱WOE和IV。服方无法获知原始特征分布。
安全性增强:如果客方不想服方知道箱号分配,可使用混淆电路执行上述步骤,但效率较低。实用中通常接受服方知道加密箱号(不泄露特征值),且两方均为半诚实。
3.3 联邦特征筛选与衍生
- 基于IV值的特征选择:各方完成IV计算后,可协商选择高IV特征。若标签在多方,需采用安全多方汇总IV。
- 联邦特征交叉:例如“年龄”在A方,“收入”在B方,需生成年龄×收入交叉特征。可通过秘密共享加法乘法协议实现,但通信开销较大,建议仅在强业务需求时使用。
- 缺失值处理:各方各自统计缺失率,若某方特征缺失率过高,可在联邦开始前剔除该特征或执行联邦缺失值填补(如用均值填补,均值计算使用安全聚合)。
4. 完整贯通案例:金融风控垂直联邦建模
场景描述:
- 银行(Host)拥有用户标签
y(是否逾期),以及部分特征:信用分、贷款金额。 - 电商平台(Guest)拥有用户特征:近3个月购物金额、退货率。
协作步骤:
- 加密实体对齐:基于手机号SM3哈希的RSA-PSI,找到500万共同用户。
- 特征标准化:各方各自进行缺失值填充、异常值处理(超出均值±3σ截尾),此过程不涉及对方数据。
- 联邦分箱与IV:电商平台将其两个连续特征进行等频5分箱,用同态加密传给银行。银行计算每个箱的WOE和IV,结果加密返回。电商解密发现购物金额IV=0.12(中等预测力),退货率IV=0.03(弱预测力),仅保留购物金额特征。
- 特征变换:银行根据解密得到的WOE值,将购物金额特征替换为WOE值,生成新的特征列。此时双方特征矩阵仍分离。
- 联合建模:使用拆分式逻辑回归或SecureBoost进行训练,各方仅交换梯度信息,完成模型构建。
5. 常见陷阱与最佳实践
- 特征漂移监控:联邦环境下,各方数据分布可能缓慢变化。需定期重新计算各箱WOE并更新特征工程管线,避免离线模型失效。
- 通信开销控制:加密实体对齐在千万级ID时可能消耗数小时。可采用预计算哈希、早停法(发现大量ID不匹配即终止对应分支)优化。
- 合规性:某些地区法规要求用户明确同意跨机构数据对齐。务必在PSI前取得用户授权,并使用差分隐私保护交集大小。
- 异质特征处理:若一方有文本特征,需先在本地完成NLP表征(如BERT embedding)后,将向量作为”特征“参与纵向联邦,但注意embedding可能泄露部分语义,需加噪声或使用联邦学习友好模型。
6. 总结
垂直联邦学习的实体对齐与特征工程是建模成功的基石。通过密码学PSI实现安全交集,借助同态加密或安全多方计算完成分箱与IV计算,能够在保护隐私的同时充分挖掘多方特征价值。随着联邦学习生态发展,越来越多的开源框架(如FATE、Fedlearner)已内置这些高阶功能,开发者可在此基础上快速构建合规、高效的跨机构模型。