鄭云濤,葉家煒
(1.復旦大學 計算機科學技術學院 上海市智能信息處理重點實驗室,上海 200433;2.復旦大學 計算機科學技術學院 教育部網絡信息安全審計與監控工程研究中心,上海 200433)
近年來,由于數據的存儲與處理效率的提高,海量數據參與機器學習模型的訓練成為可能。利用不同來源的數據進行機器學習模型訓練并生成預測模型能夠獲得更多的特征信息,從而提高模型的預測準確率。然而,現實中大多數數據分散在不同的組織中,由于受到法律等的約束,無法通過集成來進行共同的機器學習模型訓練,如醫院的患者信息、銀行的用戶賬戶信息等數據并不能得到公開共享,這使得整合來自不同來源的數據比較困難。因此,數據的隱私保護技術成為大數據時代機器學習不可或缺的技術手段。
安全多方計算是一種能夠在保證計算參與方的數據不被泄露的情況下完成最終計算過程的隱私保護技術。目前,研究人員提出了多個實現安全多方計算的協議,包括利用同態加密來直接對數據進行加密的協議[1]、利用秘密共享實現數據不被泄露的Shamir 秘密共享方案[2]、茫然傳輸(Oblivious Transfer,OT)協議[3]等,以及相關的秘密分享協議框架,如SPDZ 協議[4]、ABY 協議[5]等。
聯邦學習利用安全多方計算技術來對機器學習模型中的數據進行保護,在不泄露用戶數據隱私的情況下共享數據并構建機器學習模型,使得訓練出的模型的預測準確率不會受到損失。目前聯邦學習的隱私保護機制的實現有基于模型聚類[6-8]、基于同態加密[9-11]、基于差分隱私[12]以及基于秘密分享[13]等相關研究。
FATE 聯邦學習是一個成熟的、已投入使用的基于同態加密的聯邦機器學習框架,文獻[14]提出的FATE 聯邦遷移學習框架,通過近似多項式的方法來擬合邏輯回歸函數,并用Paillier 同態加密[15]的方式,在保證參與聯邦學習雙方的數據隱私的情況下完成損失函數和梯度的計算,最終達到收斂完成模型的訓練。然而,由于在實際的模型訓練過程中需要對大量的數據進行加密處理和計算,模型訓練的效率較低。文獻[16]提出了通過批量加密的方法來提高同態加密的通信效率,但是本質上沒有解決同態加密乘法的計算開銷問題。
針對FATE 聯邦遷移學習(Federated Transfer Learning,FTL)中同態加密帶來的計算開銷的問題,本文提出一個基于OT 協議的隱私保護兩方矩陣運算方案,并拓展應用到FATE 聯邦遷移學習的設計中,在保證參與計算雙方的數據隱私的前提下完成邏輯回歸模型的損失函數和梯度計算。同時,針對OT 協議帶來的通信開銷問題,通過OT 擴展(OT extension)協議和批量傳輸進行優化,實現基于OT協議矩陣運算的FATE 聯邦遷移學習方案。
聯邦學習最早由谷歌在2016 年提出[17],目的是通過分布在不同設備上的數據集來協同構建機器學習模型,并防止各個設備的數據泄露。
假設有n個數據持有組織{p1,p2,…,pn},每個組織擁有自己的數據Di(1 ≤i≤n),通過中間數據的交互來共同訓練機器學習模型Mfed。一種常規的聯合機器學習方法是將所有組織的數據聚合在一起,共同訓練模型得到模型Msum。與普通的聯合機器學習不同,聯邦學習各個組織的數據Di不會泄露給其他組織。根據Vfed和Vsum聯邦學習與聯合學習的準確性,假如|Vfed-Vsum| <δ,則稱該聯邦學習算法有δ-acc級損失。
聯邦學習的分類有橫向聯邦學習、縱向聯邦學習與聯邦遷移學習。橫向聯邦學習適用于樣本不同的情況下參與方數據集的特征空間相同的情況;縱向聯邦學習適用于參與方樣本空間重合度高,但各自的特征空間不同的情況;如果參與方之間的數據的特征空間和樣本重合度都很低,則需要用到聯邦遷移學習,如圖1 所示。

圖1 聯邦遷移學習框架Fig.1 Framework of federated transfer learning
OT 協議是重要的密碼學原語之一,在實際應用中,往往需要許多簡單的協議來完成高級協議的設計,在執行k次的協議(記為kO)中,發送方S持有k對比特對(,mi1),其中,∈{0,1},而接收方R持有一個k比特的選擇向量b,通過執行k次協議后,R獲得了,但是無法得知其他的比特位信息,而S無法得知b的信息,從而保證了隱私性與保密性。目前研究人員提出許多高效的OT 協議方案,如在半誠實模型下通過公鑰機制來實現的Naor-Pinkas OT 協議[18]等。
OT extension 協議利用少數的Base OT 協議將原本大量的OT 協議數量大幅減少,能夠極大地降低計算量和通信量。IKNP OT extension 協議[19]通過選定安全參數k,能夠將m次協議降低到k次的Base OT 協議。發送方準備m對秘密消息作為協議的輸入,接收方準備{0,1}m比特對消息作為協議的輸入。在協議執行過程中,雙方在預處理階段執行k次的Base OT 協議,發送方作為Base OT 的接收者,接收方隨機產生k比特對消息作為Base OT 的發送者。執行完k次Base OT 協議后,雙方即可以在交互階段進行m次的協議的交互,而每次協議的執行只需要進行少數的異或運算。接收方最終會獲得自己選擇的m個消息。IKNP OT extension 不僅能夠減少OT 協議的通信量,也加快了計算效率。
在線性回歸模型中,模型訓練本質上是需要擬合出一條線,使得訓練樣本中的數據點盡可能多地靠近這條線,即y=W·x,其中:W是要訓練的模型參數,它通過隨機化一個初始值得到;x為參與訓練的樣本數據,它可以是一個向量,也可以稱為特征值;x與W的維度大小是相同的,y是一個單值,也可以稱為標簽。
為了能夠學習到模型的參數W,一般采用損失函數Loss 和隨機梯度下降的算法來更新每一輪的W。Loss 函數為均方誤差,計算公式如下:

無論是Loss 函數還是梯度計算,式(1)、式(2)都只涉及乘法和加法運算,因此可以使用多方安全計算來直接運用到線性回歸問題上,同態加密與秘密分享的方法都是可行的,然而對于邏輯回歸等模型的損失函數的計算,往往需要用多項式近似的方法來模擬損失函數[20-22]。文獻[11]利用二階泰勒展開的方式近似模擬損失函數并給出了精度損失的比較。對于損失函數:l1(y,φ)=loga(1+exp (-yφ)),其中,φ為訓練模型的預測值,其二階泰勒展開式為:

采用二階的泰勒展開作為邏輯回歸的損失函數擬合進行模型的訓練。
設計一種基于OT 協議的多方安全計算方案,并將其應用到矩陣乘法運算。
將OT 協議在比特位上的與運算擴展到簡單的整數乘法運算,假設需要計算a·b,其中,A 持有a,B持有b,則:

2)B 作為OT 協議中的秘密提供方,隨機化整數c,將c與c+b作為OT 協議的輸入。
3)A 作為OT 協議中的選擇方,輸入為ai,輸出結果為aib+c,即:當ai=0時,輸出為c;當ai=0時,輸出為c+b。
構造基于OT extension 協議的矩陣運算的多方安全計算方案。
對于矩陣A和B的運算,P1擁有矩陣A,P2擁有矩陣B,針對矩陣運算分別進行如下構造:
1)A+B
對于需要相加的所有原矩陣或秘密分享矩陣,P1和P2直接本地相加即可。
2)A×B(矩陣A與B的按位運算)
P1和P2對于矩陣中的每對元素乘法分別執行基于OT 協議的乘法運算,并對所有的協議通過OT extension 進行優化。
3)a*B(矩陣的數乘)
A×B的特殊形式,但是由于每次乘法的都是同一個數,相當于每次協議的選擇都一致,因此通過算法1來優化OT extension的輸入。P1通過調用Batch(C)與Batch(C+B)得到OTInput
算法1OT 協議批處理算法Batch

在上式中,m為矩陣數的比特長度,Eij定義如下:

P1構造長為M=n×l×m的選擇向量cchoice=∪ {aijk}作為OT extension 協議的輸入。
②P2根據矩陣整數的比特長度m與矩陣An×l的大小生成相應的隨機矩陣組Cr,1 ≤r≤m×n×l。
③P2將ssecret={(Cr,Cr+B)}作為OT extension 協議的輸入。由于對于每個矩陣內元素的協議選擇都是一致的,因此可以通過運行算法1,將矩陣中的元素進行合并得到OTInput
(2)交互階段
①雙方根據輸入運行OT extension 協議,得到各自的輸出。
②P1作為協議的輸入方,得到批處理的矩陣輸出OTOutput <Cr>,OTOutput <Cr+B>反向解碼回矩陣得到RReceived:

由于聯邦學習中涉及大量矩陣運算,本文提出的基于OT 協議的矩陣算法不僅能夠大幅減少OT 協議執行的數目,而且通過OT extension 將所要處理的OT 協議數目進一步減少,從而提高了數據的運行效率。
如圖2 所示,模型包括兩個參與方A 與B,共同進行機器學習的模型訓練,每個參與方的樣本數量為n。主要由以下3 個部分組成:

圖2 基于OT 協議聯邦遷移學習框架Fig.2 Framework of federated transfer learning based on OT protocol
1)參與方A 擁有一定數量n的樣本,每個樣本只有對應的特征值Xai=(xai1,xai2,…,xail) 和標簽Yai,(Xai,Yai)∈DA。參與方B 擁有一定數量m的樣本,每個樣本只有對應的特征值Xbi=(xbi1,xbi2,…,xbil),Xbi∈DB。DA與DB有少量的重合樣本DC。假設A、B事先知道重合的樣本ID,否則可以用RSA 加密機制對樣本ID 進行盲化,然后進行樣本對齊[6]。
2)A 和B 各自擁有的機器學習模型訓練服務器S1、S2,這兩個服務器各自受控于A 與B,不能進行共謀攻擊。該服務器只負責機器學習模型相關的計算,如特征值計算、梯度計算、損失函數計算等。
3)OT 協議矩陣運算框架負責對計算出來的特征值進行信息的批量處理,并進行矩陣的安全計算。
假設參與方之間的通信存在安全通信信道,且雙方的消息具有可驗證性,圖2 中的步驟標識對應流程如下:
1)A 與B 作為機器學習模型的參與方,在每一輪迭代中初始化各自模型的參數WA、WB。
2)A 與B 將本地的樣本數據和初始化參數傳輸到機器模型訓練服務器S1 與S2。
3)S1 與S2 通過RSA 加密機制盲化樣本ID,進行樣本對齊(可選)。
4)A 與B 用各自計算模型的特征值uA、uB,輸入OT 協議框架準備進行安全矩陣運算。

10)返回步驟4),直到模型收斂。
定義1(安全性假設)當A、B 參與方都是半誠實模型時,任何惡意敵手可能且僅可能控制其中一方,則對M 有(OA,OB)=M(IA,IB),其中,IB、OB是B的輸入和輸出結果,IA、OA是A 的輸入和輸出結果。假設A 是被惡意方控制的,如果對于任意數量的(,),都有對應 的(OA,O′B)=M(IA,),即惡意敵手無法分辨輸出結果與隨機結果,則該方案是安全的。
假設OT extension 的安全參數為κ。
Setup(WA,WB,κ)→(∪r,∪s,∪K)
1)服務器S1、S2 根據輸入的模型參數確定矩陣運算的維數,確定OT extension 需要進行的協議數量:m←(WA,WB)。
2)服務器S2 作為OT extension 協議的接收方,對于每個待計算矩陣,產生m維向量r=(r1,r2,…,rm),rj∈{0,1},1 ≤j≤m,作為自己的選擇,初始化向量r的集合∪r。
3)選擇Base OT 的數目κ作為安全參數。
4)發送方產生κ個隨機數作為Base OT 的選擇消息,s=(s1,s2,…,sκ),si∈{0,1},1 ≤i≤κ,初始化向量s的集合∪s。
5)接收方產生κ對隨機數作為Base OT 的發送消息:,初始化向量K的集合∪K。
Train1(WA,WB,DA,DB,DC)→L:


1)假設損失函數L 值并沒有收斂,則需要計算對應的梯度值,根據式(4)得到:

計算得到梯度相關的分享值:3.2 節步驟2,重新計算損失函數。
定理1在半誠實模型假設下,兩方的OT 矩陣運算方案是安全的。
證明在半誠實模型的條件下,參與矩陣運算的雙方P1、P2是遵守協議規則的,但嘗試去獲取更多相關的信息。假設存在某敵手Adversary,每次最多只能控制P1、P2其中的一個。不失一般性地,假設對于矩陣的乘法B·A:當Adversary 控制A持有者作為OT 協議的接收方時,發送方每次執行OT 協議都會根據矩陣整數的比特長度m與矩陣An×l的大小生成相應的隨機矩陣組Cr,1 ≤r≤m×n×l,以Cr+B與Cr作為輸入,敵手或另一方服務器看來都是隨機值的矩陣對,不會暴露任何有效信息;當Adversary 控制B持有者作為OT 協議的發送方時,選擇方的選擇隱私性依賴于OT 協議的安全性,在半誠實模型下是安全的,不會暴露自己的任何比特位信息。矩陣的按位乘法和數乘都將轉化為基于OT 的乘法運算。同理,發送方每次執行OT 協議都會對應地產生隨機數c,以c和c+b作為輸入,在攻擊者看來都是無法分辨的隨機數。因此,對于任意一個矩陣運算,對于誠實方的任意Input,另一方接收到的Output 都是與隨機值不可區分的,因此基于OT 協議的兩方矩陣運算是安全的。
定理2在半誠實模型安全性假設下,基于OT協議的聯邦遷移學習方案不會暴露任何參與方的隱私信息。
證明在半誠實模型假設下,由于關于損失函數與梯度的計算都是基于OT 協議的矩陣運算構造方案,在矩陣運算的過程中不會暴露任何參與運算的數據的信息,因此可以推出:首先,對于惡意敵手Adversary,其在所有矩陣相關的運算中無法獲得原始矩陣的任何信息;其次,對于最終傳輸的結果都是經過運算后的中間結果,并不會對A 與B 的數據特征信息uA與uB造成泄露;最后,這些中間結果都是由不同矩陣乘法或加法得到的累加值,在外部看來只是1 個隨機的值,而不是某2 個矩陣直接相加或相乘得到的結果,即使在A 或B 重建恢復出這些中間結果之后,也不能反推出相應的模型參數值或數據特征信息。
在半誠實模型下的每一輪迭代中,A 或B 只能學習得到自己對應的梯度值或損失函數值,以此更新自己的參數,即對于任意數量的誠實方的輸入,Adversary 無法得到與誠實方的輸入相關的任何信息。
FATE 聯邦遷移學習方案在效率優化和應用上都有很好的擴展性。
首先,在矩陣運算效率的提升方面,構造了線上的基于OT 協議矩陣乘法運算,可以對應地在線下構造大量的乘法三元組來進行優化[23-24],構造乘法三元組的過程可以作為預處理輸入,從而增加線上的效率,具有很高的實際應用意義。
其次,對于應用上的擴展,構造了邏輯回歸機器學習模型的訓練方案,而簡單神經網絡的每一層的激活函數與邏輯回歸類似,在二分類的問題上,可以拓展應用到神經網絡的擬合中,從而實現更高精確度的機器模型訓練方案[13,25]。
在局域網環境下基于FATE 聯邦遷移學習框架代碼進行了實現,運行機器是Intel 5220R 2.2 GHz 的CPU 處理器,為24 核48 線程以及128 GB RECC DDR4 內存,環境為64 位的Ubuntu20.04。實驗使用C++語言編寫IKNP OT extension 庫并通過批量處理優化效率,通過extern C 關鍵字由C 語言編譯成動態庫libOTE.so 供機器模型訓練代碼使用。同時,邏輯回歸模型訓練采用Python 語言以及numpy 庫進行編寫。

表1 本文方案與FATE 聯邦遷移學習方案性能對比 Table 1 Performance comparison between proposed scheme and FATE federated transfer learning scheme
圖3 所示為本文方案在不同特征維度下的收斂時間變化與同態加密方案的聯邦遷移學習方案的比較,實驗模擬方案的樣本數量為500個,樣本重合數量為50個。可以看出:在特征維度增加的條件下,本文方案的時間開銷呈線性穩定增長,依然擁有較好的性能穩定性,且平均效率比基于同態加密的FATE 聯邦遷移學習方案高25%左右。可見本文方案在較為復雜的樣本類型中仍然具備較好的性能,具有一定的實際應用意義。

圖3 不同特征維度下的聯邦遷移學習收斂時間Fig.3 Convergence time of federated transfer learning under different feature dimensions
本文提出一種基于茫然傳輸協議的安全矩陣計算方案。通過實現矩陣的加法、乘法與數乘的安全運算,完成邏輯回歸模型的損失函數與梯度更新的計算,并將其嵌入到FATE 聯邦遷移學習的框架中。同時,通過OT extension 技術和通信批處理計算,減少矩陣運算所需的OT 協議的通信開銷。實驗結果表明,與同態加密的方案相比,本文方案能夠有效提高FATE 聯邦遷移學習框架中模型的收斂效率。下一步將研究拓展本文方案在多方機器學習模型上的訓練,以及通過乘法三元組結構來進行線下的預處理,從而提高線上的效率。