http://www.7klian.com

基于Rosetta的隐私掩护多方金融连系AI建模场景

                xW, xb = sess.run([W, b])
cipher_X, cipher_Y = rtt.SecureDataSet(
file_label = “./train_label_data.csv”
            bY = cipher_Y[(i * BATCH_SIZE): (i + 1) * BATCH_SIZE]
首先这个实际场景对应着MPC技能下数据集被“垂直分别”的case,各方所需要做的第一步是对数据举办对齐,即要使同一个客户在A、B处的特征数据和label数据和其在C处的特征数据对应匹配起来。这一步调可以有多种的实现方案,这里我们假定这一步已经在线下预处理惩罚完成(顺便提一下,在8月Rosetta就将集成PSI(Private Set Intersection,隐私AI求交集)等利便高效的API来进一步帮助用户完成这一任务)。
                print(“I,E,B:{:0>4d},{:0>4d},{:0>4d} weight:{} nbias:{}”.format(
b = tf.Variable(tf.zeros([1], dtype=tf.float64))
    for e in range(EPOCHES):
init = tf.global_variables_initializer()
BATCHES = math.ceil(len(cipher_X) / BATCH_SIZE)
learning_rate = 0.0002
我们选择在一个UCI果真真实数据集上,对在直接明文状态与在Rosetta密文状态下的结果举办实际比拟,功效如图所示:

Y = tf.placeholder(tf.float64, [None, 1])
train = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss)
    # train
loss = tf.nn.sigmoid_cross_entropy_with_logits(labels=Y, logits=logits)
假设此刻有两个银行A、B和某知名电商互联网企业C别离拥有大量银行客户以往的信贷数据和用户线上消费行为数据,假如可以或许将他们的数据连系起来,那么就可以在更大的数据维度上连系利用呆板进修模子(这里为了利便,我们以简朴实用的Logistic Regression为例)来练习获得越发精确的信用评分卡模子。这对付银行A、银行B的后续客户信用评级都是有长处的,同时也有助于C从数据中获取经济代价(虽然实际中的贸易相助模式大概是多种多样的,好比A、B也可以再协助C练习一个更好的商品推荐系统)。
            j = e * BATCHES + i
        for i in range(BATCHES):

近期Rosetta开源框架激发人们遍及存眷,“一键”切换隐私计较模式,AI数据秒换隐身衣的神奇操纵,也让人们不禁问到:如此简朴便捷的操纵,Rosetta能真正与实际应用落地相团结吗?

            sess.run(train, feed_dict={X: bX, Y: bY})
在执行进程中,我们特地打印出一些中间的内容看一下:

别的,我们还可以通过设置文件设定在利用TF的save接口对获得的功效模子举办输出时,仅将明文功效生存到某一方。好比这里,我们在实际中可以通过设置SAVER_MODE=3来使得练习获得的模子功效仅给银行A和银行B利用,而不袒露给企业C。
os.makedirs(“./result/ckpt”, exist_ok=True)
print(“train Op:n”, train)
Rosetta在金融行业中的应用
np.random.seed(0)
EPOCHES = 10
import math
with tf.Session() as sess:
import csv
import latticex.rosetta as rtt
            if j % 50 == 0 or (j == EPOCHES * BATCHES – 1 and j % 50 != 0):
    label_owner=0, p2_owns_data=True).load_XY(file_feature, file_label, header=None)
            bX = cipher_X[(i * BATCH_SIZE): (i + 1) * BATCH_SIZE]
                    j, e, i, xW, xb))
    sess.run(init)
rtt.activate(“SecureNN”)
但从合规和掩护自身贸易数据资产的角度看,显然不可以或许直接地将本身的数据交给对方,并且也不行能找到一个所谓的可信第三方来拿到各方数据举办当地计较。这时就可以利用Rosetta框架以漫衍式隐私AI的方法快速地办理此问题。

DIM_NUM = real_X.shape[1]

由此可见,给AI数据披上 “隐身衣”之后练习获得的模子与AI数据直接练习获得的模子相差无几,完全可以应用在实际落地场景中。

# save

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读