基于隐私保护的样本id匹配
RSA+哈希机制的安全求交方案 所有的纵向算法都需要样本对齐
需求场景
联邦特征工程
问题
在保护双方隐私下 A侧(含X)和B侧(含X,Y)特征如何计算WOE和IV?
难点
1、A侧只有特征X没有Y 计算WOE和IV得同时依赖x,y(B侧特征WOE&IV可以本地计算) 2、A侧不能对B侧暴露X,B侧不能对A侧暴露Y 3、最终只能让B侧获得所有特征的WOE和IV
对特征列分组 每一组根据标签列Y的值(比如0,1)统计
纵向逻辑回归
1、传统的逻辑回归公式中的y值是0和1 这个逻辑公式中的y是+-1 2、W是每一枚特征的权重的一个向量 x是一个具体的值 3、逻辑回归 本质是一个线性模型 wx两个向量的内积 wa*xa + wb*xb 4、预测是根据两边的模型进行预测 单边模型没有任何价值
SecureBoost
无损的 安全的 只需要交换梯度直方图 不需要交换数据
联邦计算信息增益
1、树模型LightGBM或XGBoost计算每一个候选分裂点信息增益的时候都是计算梯度直方图 代价函数的 一阶导g 二阶导h的和 代入公式就可以计算出最大的增益 2、party1和party3没有业务表现y的 计算不了代价函数 3、party1和party3计算完直方图 首先要做encoding 然后再发送给party2 以保证数据安全
比如分裂特征是Bill Payment 域值是5500 对它进行编号即encoding 编号之后同时发送过去 g和h的和 给party2 party2解密之后 可以得到最大的信息增益 将最大的信息增益的合作方 比如party3 将这个结果(包含这个分裂点的编号)发送给party3 告诉party3 这次分裂点是属于你的
树的结构
每一方就看到一个值partyId即这个节点是属于谁的 另外是编号 编号只能在party2看到 其他节点无法看到 叶子节点只存在与party2的 谁提供标签 谁就完全拥有叶子节点
首先向party2发起一个预测查询 从根节点来看 该跟节点是属于party1的 party2会发送给party1 party1会查一下 特征是Bill Payment 阈值是5000 用户属性值是4000多 小于5500 走到了左边 左边的这个节点是属于party3的 再发给party3 party3再查的话 发现分裂值是800 小于5500 走到了w2 w2是属于party2的 因为它是叶子节点 只有party2是有标签的 将这个值直接拿出来就行了 结束了一次查询
boost是集成的算法 其实是很多颗树都要查询 每次查询 将这些权重乘以换算因子 再加起来就是预测的结果了 如果是二分类问题直接做一个segmod 多分类求个softmax 对于回归问题它就是一个具体的回归的值