溫亞蘭,陳美娟
(南京郵電大學(xué)通信與信息工程學(xué)院,南京 210003)
互聯(lián)網(wǎng)、大數(shù)據(jù)分析、移動邊緣計算等技術(shù)的爆發(fā)式增長推動了“共享經(jīng)濟”的發(fā)展。隨著海量醫(yī)療數(shù)據(jù)的產(chǎn)生以及時代發(fā)展的需要,人們將共享經(jīng)濟的關(guān)注點轉(zhuǎn)向醫(yī)療行業(yè)。若能利用大數(shù)據(jù)分析技術(shù)將分散在各個醫(yī)療機構(gòu)的醫(yī)療數(shù)據(jù)應(yīng)用到不同行業(yè),將醫(yī)學(xué)專家的寶貴經(jīng)驗轉(zhuǎn)化為標準化的知識,形成數(shù)據(jù)驅(qū)動服務(wù),那么將大幅提高整個公共醫(yī)療機構(gòu)服務(wù)效率問題,給整個社會帶來巨大的效益[1]。但由于醫(yī)療數(shù)據(jù)涉及了患者的隱私且獨立存儲于醫(yī)療機構(gòu)的數(shù)據(jù)庫中,因此,利用醫(yī)療數(shù)據(jù)需要考慮共享過程中的隱私保護與效率問題。針對隱私問題,文獻[2-4]利用云服務(wù)制定管理與訪問醫(yī)療數(shù)據(jù)的策略,以實現(xiàn)共享過程中的數(shù)據(jù)安全。文獻[5]在醫(yī)療數(shù)據(jù)共享的最初階段就嚴格設(shè)計了相關(guān)醫(yī)院、病人的訪問規(guī)則,并結(jié)合代理再加密技術(shù)和癥狀匹配機制實現(xiàn)了輕量級的醫(yī)療數(shù)據(jù)共享保護方案。文獻[6]和文獻[7]提出,由于云服務(wù)提供商面臨內(nèi)部和外部的安全威脅,如果不加強安全和隱私保護,而繼續(xù)將敏感的健康數(shù)據(jù)外包給云,就可能會增加數(shù)據(jù)泄漏的風(fēng)險。HAΟ 等[8]認為簡單地將醫(yī)療數(shù)據(jù)移動到云端進行存儲、管理和分析并不能完美解決共享過程中的隱私保護與效率問題。為提高數(shù)據(jù)共享的可搜索性和安全性,文獻[9-10]提出將分布式去中心化的區(qū)塊鏈技術(shù)結(jié)合不同的加密算法解決病人隱私泄露問題。但在實際應(yīng)用中,數(shù)據(jù)請求方從區(qū)塊鏈上下載密文并解密的過程增加了互操作性的難度[10]。
聯(lián)邦學(xué)習(xí)(Federated Learning,F(xiàn)L)技術(shù)[11]的發(fā)展為解決數(shù)據(jù)共享中的隱私問題帶來了新的曙光,其能夠在沒有數(shù)據(jù)共享或數(shù)據(jù)收集的情況下在多源分散數(shù)據(jù)庫中學(xué)習(xí),讓數(shù)據(jù)請求者不再需要收集大量數(shù)據(jù)就可以研究和挖掘數(shù)據(jù)中的潛在價值。SILVA 等[12]提出聯(lián)邦學(xué)習(xí)框架,在不需共享大量原始數(shù)據(jù)的情況下就可以安全地訪問和分析任何生物醫(yī)學(xué)數(shù)據(jù)。盡管聯(lián)邦學(xué)習(xí)允許參與者在不被披露的情況下貢獻他們的本地數(shù)據(jù),但FL 并不驗證系統(tǒng)中不同方的數(shù)據(jù)質(zhì)量以及準確支付參與者高質(zhì)量數(shù)據(jù)貢獻方面的問題[13]。因此,具有較少公共實體的低質(zhì)量數(shù)據(jù)集可以與其他數(shù)據(jù)集共同訓(xùn)練,但這可能會導(dǎo)致大量計算資源的浪費及作為聯(lián)邦成員的惡意客戶端對FL 模型的攻擊。針對此問題,文獻[14]提出將區(qū)塊鏈技術(shù)與聯(lián)邦學(xué)習(xí)結(jié)合并用于物聯(lián)網(wǎng)場景下的數(shù)據(jù)共享,通過區(qū)塊鏈技術(shù)對數(shù)據(jù)提供者進行身份驗證,并將聯(lián)邦學(xué)習(xí)訓(xùn)練的模型參數(shù)存儲于區(qū)塊鏈中以防止被篡改,保證數(shù)據(jù)的安全性。將聯(lián)邦學(xué)習(xí)與區(qū)塊鏈相結(jié)合[15-16]已成為數(shù)據(jù)共享領(lǐng)域中能夠同時解決隱私保護和數(shù)據(jù)安全性問題的重要方法。文獻[17-18]將聯(lián)邦學(xué)習(xí)與區(qū)塊鏈相結(jié)合并用于醫(yī)療數(shù)據(jù)的安全共享,但也指出從各種數(shù)據(jù)源收集數(shù)據(jù)并協(xié)同準確高效的訓(xùn)練模型是人工智能技術(shù)的一個巨大挑戰(zhàn)。SHAYAN 等[19]指出移動設(shè)備可能會在模型更新過程中對其進行中毒攻擊,或者對目標設(shè)備進行信息泄漏攻擊,并利用抵御負面影響防御來刪除中毒模型更新。同時,使用不同的隱私方案來保護隱私,并在區(qū)塊鏈平臺上進行存儲和匯總。LI等[20]提出聯(lián)邦近似的學(xué)習(xí)算法,在客戶端奔潰的情況下依然擁有較高的學(xué)習(xí)精度。為提高聯(lián)合學(xué)習(xí)的效率,NISHIΟ 等[21]考慮到具有異構(gòu)資源的客戶,提出一種基于貪婪算法的聯(lián)合學(xué)習(xí)客戶選擇方案。
現(xiàn)有的大部分研究工作為了獲得好的學(xué)習(xí)性能,主要集中在設(shè)計高級的聯(lián)合學(xué)習(xí)算法上,而使用其他手段篩選聯(lián)邦學(xué)習(xí)數(shù)據(jù)源來提高學(xué)習(xí)性能卻很少被探索。雖然NISHIΟ 等[21]考慮了資源限制和工人選擇問題,但參與聯(lián)邦訓(xùn)練設(shè)備的可靠性被忽略了。LIU 等[22]提出將聲譽機制運用于挑選數(shù)據(jù)源以及KANG 等[23]提出將激勵機制和可靠聯(lián)邦學(xué)習(xí)工人(即移動設(shè)備)相結(jié)合的方案來改進聯(lián)邦學(xué)習(xí)算法,既保護了隱私也提高了算法效率。
為了將數(shù)據(jù)源的影響降至最低,保證醫(yī)療數(shù)據(jù)共享的安全和效率,本文提出一種區(qū)塊鏈與聯(lián)邦學(xué)習(xí)相結(jié)合的聲譽選擇候選醫(yī)院方案。通過在訓(xùn)練前篩選數(shù)據(jù)質(zhì)量高的成員,將數(shù)據(jù)共享過程轉(zhuǎn)化為模型參數(shù)共享過程,避免原始數(shù)據(jù)上傳至區(qū)塊鏈而造成患者隱私泄露。同時,改進聲譽方案,選擇數(shù)據(jù)質(zhì)量高和可靠的參與聯(lián)邦學(xué)習(xí)的候選醫(yī)院訓(xùn)練模型,并利用分布式的聯(lián)盟鏈存儲各醫(yī)院的聲譽值以及全局模型參數(shù),對積極參與高質(zhì)量數(shù)據(jù)貢獻的醫(yī)院進行獎勵。
本文設(shè)定了一種由N個參與數(shù)據(jù)共享的醫(yī)院和請求數(shù)據(jù)的相關(guān)機構(gòu)H組成的聯(lián)盟鏈聯(lián)邦學(xué)習(xí)系統(tǒng)來模擬現(xiàn)實中安全可靠的醫(yī)療共享場景,包括區(qū)塊鏈層和應(yīng)用層。
如圖1 所示,應(yīng)用層是由1 個數(shù)據(jù)請求者(例如某保險機構(gòu)、政府機構(gòu))和一組醫(yī)院組成的通用移動網(wǎng)絡(luò)。其中,廣泛部署在網(wǎng)絡(luò)邊緣的用于通信的基礎(chǔ)設(shè)施稱為邊緣節(jié)點,聯(lián)邦學(xué)習(xí)任務(wù)的物理基礎(chǔ)設(shè)施包括醫(yī)院的移動設(shè)備和邊緣節(jié)點。移動設(shè)備利用本地數(shù)據(jù)培訓(xùn)本地數(shù)據(jù)模型。邊緣節(jié)點有2 種用途:1)在聯(lián)邦學(xué)習(xí)任務(wù)中作為中央聚合器聚合本地模型以形成全局模型并與參與培訓(xùn)的醫(yī)院相互傳輸模型;2)作為聯(lián)盟鏈上的節(jié)點與數(shù)據(jù)請求者進行通信,為數(shù)據(jù)請求者提供候選醫(yī)院的聲譽值。醫(yī)院數(shù)據(jù)庫存儲和加密著病人的各種醫(yī)療數(shù)據(jù)。數(shù)據(jù)請求者是一個需要分析大量臨床醫(yī)療數(shù)據(jù)以進行研究的第三方機構(gòu)。
在應(yīng)用層中,為了保護隱私,基于上述來自醫(yī)院共享的數(shù)據(jù)對多個具有聯(lián)邦學(xué)習(xí)任務(wù)的數(shù)據(jù)請求者進行模型訓(xùn)練。每個數(shù)據(jù)請求者設(shè)計合約條款,以激勵作為工人的可靠移動設(shè)備進行模型培訓(xùn)(圖1中的步驟1)。接著,每個醫(yī)院根據(jù)其本地數(shù)據(jù)迭代地訓(xùn)練一個共享的全局模型,并生成本地模型更新(圖1 中的步驟2~4)。然后,所有的醫(yī)院將他們的本地模型更新上傳到邊緣節(jié)點以更新全局模型(圖1中的步驟6)。最后,重復(fù)訓(xùn)練過程,直到全局模型的精度達到預(yù)定義的收斂值。廣泛分布的邊緣節(jié)點使醫(yī)院能及時與數(shù)據(jù)請求者通信。數(shù)據(jù)請求者會評估局部模型更新的質(zhì)量,并根據(jù)參與醫(yī)院的模型更新質(zhì)量,為參與醫(yī)院生成聲譽評價。更多的聲譽計算方案將在本文第2 節(jié)給出。聲譽意見將存儲在聯(lián)盟鏈上,具有不可篡改的特性,而數(shù)據(jù)請求者之間能公開透明地共享各醫(yī)院之間的聲譽值。
在區(qū)塊鏈層,因邊緣節(jié)點具有強大的計算能力、通信能力及存儲能力,可以作為聯(lián)盟鏈的礦工。聲譽意見通過共識算法被礦工驗證后存儲到數(shù)據(jù)塊中。由于區(qū)塊鏈的去中心化和防篡改性質(zhì),即使發(fā)生糾紛和破壞[9],數(shù)據(jù)塊中的聲譽意見也是持久和透明的證據(jù)。對于參與共享的醫(yī)院,數(shù)據(jù)請求者會將自己的直接聲譽意見與其他數(shù)據(jù)請求者的間接聲譽意見集合并生成綜合聲譽值上傳到聯(lián)盟鏈上。在聯(lián)邦學(xué)習(xí)中,聲譽值是可靠醫(yī)院選擇的重要指標。在此次任務(wù)結(jié)束后,通過區(qū)塊鏈的準確支付機制對積極參與貢獻的醫(yī)院進行獎勵。
基于聲譽機制的候選醫(yī)院共享數(shù)據(jù)選擇方案如圖1 所示,本文提出以聲譽為基礎(chǔ)選擇醫(yī)院并進行可靠的聯(lián)邦學(xué)習(xí),由聯(lián)盟鏈來管理醫(yī)院的聲譽值和模型參數(shù)的方案,由如下6 個步驟組成。
圖1 系統(tǒng)模型Fig.1 System model
步驟1制定合約條款并發(fā)布聯(lián)邦學(xué)習(xí)共享任務(wù)。數(shù)據(jù)請求者(如政府機構(gòu)、醫(yī)療研究所、醫(yī)療保健院等)根據(jù)需求發(fā)布聯(lián)邦學(xué)習(xí)任務(wù)以尋求滿足合約的候選人。在發(fā)布任務(wù)之前,任務(wù)發(fā)布者需要根據(jù)實際需求制定一項智能合約,合約里面的內(nèi)容包括需要的數(shù)據(jù)大小、數(shù)據(jù)類型、數(shù)據(jù)質(zhì)量、聲譽值及時間,CPU cycles 將合約傳遞給通信范圍內(nèi)的邊緣節(jié)點,邊緣節(jié)點再將合約發(fā)送給一定范圍內(nèi)的醫(yī)院。滿足合約要求的醫(yī)院將作為此任務(wù)的候選人并將滿足的資源信息發(fā)送給邊緣節(jié)點,邊緣節(jié)點再將其反饋給數(shù)據(jù)請求者。
步驟2核對候選醫(yī)院聲譽值并上傳核對結(jié)果。在接收到邊緣節(jié)點反饋的資源信息后,數(shù)據(jù)請求者需要估算相關(guān)候選人的聲譽值來選擇合適的醫(yī)院來共享數(shù)據(jù)。聲譽值由邊緣節(jié)點對候選人的直接意見和其他與候選人交互過的邊緣節(jié)點的聲譽意見決定,并通過一種雙重主觀邏輯模型來計算。數(shù)據(jù)請求者首先從邊緣節(jié)點反饋的資源信息中獲得最新的候選人間接聲譽值,再從存儲聲譽值的聯(lián)盟鏈上下載候選人的聲譽值并與之核對。每個候選人的聲譽值都會被存儲于聯(lián)盟鏈的分布式數(shù)據(jù)區(qū)塊中。若兩值相同,則該聲譽值將作為其他任務(wù)發(fā)布者對候選者的間接聲譽值。反之,數(shù)據(jù)請求者會將比對結(jié)果上傳至聲譽鏈上,經(jīng)過聲譽鏈上的節(jié)點核實后候選醫(yī)院的聲譽值將會降低。最后,邊緣節(jié)點根據(jù)與醫(yī)院交互的直接聲譽意見和間接聲譽意見來生成候選醫(yī)院綜合聲譽值,然后將綜合聲譽值上傳至聯(lián)盟鏈上,作為下一次其他數(shù)據(jù)請求者衡量醫(yī)院的間接聲譽意見。
步驟3根據(jù)聲譽值選擇候選醫(yī)院并參與聯(lián)邦學(xué)習(xí)任務(wù)。因為用戶的數(shù)據(jù)集質(zhì)量直接影響訓(xùn)練出的局部數(shù)據(jù)模型[12][23],而局部數(shù)據(jù)模型的質(zhì)量又影響最終的數(shù)據(jù)模型質(zhì)量。所以,數(shù)據(jù)請求者在估算出候選人的聲譽值后并結(jié)合他們的資源選擇合適的醫(yī)院子集來執(zhí)行聯(lián)邦學(xué)習(xí)算法。
步驟4執(zhí)行聯(lián)邦學(xué)習(xí)算法和評估本地模型更新的質(zhì)量。被選擇的醫(yī)院首先會在附近的邊緣節(jié)點上下載最新的初始化模型,然后根據(jù)自己的資源使用不同的優(yōu)化算法[15](例如,隨機梯度下降算法SGD、小批量梯度下降算法Mini-batch gradient descent)進行聯(lián)邦學(xué)習(xí)訓(xùn)練模型,在培訓(xùn)出局部模型后醫(yī)院會將模型參數(shù)以及梯度值傳至通信范圍內(nèi)的邊緣節(jié)點,邊緣節(jié)點接收到各個醫(yī)院傳過來的局部模型參數(shù)后聚合模型并形成全局模型,即完成一次迭代過程。若全局模型質(zhì)量達不到要求,邊緣節(jié)點會將最新聚合形成的全局模型下發(fā)給各個醫(yī)院,醫(yī)院接收到更新后的全局模型后會再次進行本地模型更新,完成多次迭代之后,當全局模型達到一定的精度即滿足預(yù)定義的收斂條件時,則迭代結(jié)束。
步驟5將更新交互后的聲譽意見上傳至區(qū)塊鏈。在每次上傳模型中,與不可靠的醫(yī)院或攻擊者的交互均被視為負面交互[21]。與可靠醫(yī)院的交互均被視為積極交互。邊緣節(jié)點會依據(jù)每一次交互歷史更新用戶的直接聲譽意見,迭代幾次聲譽意見就會被更新幾次。迭代結(jié)束后,邊緣節(jié)點會將直接聲譽意見和間接聲譽意見(間接聲譽意見由其他邊緣節(jié)點與醫(yī)院的交互活動決定)綜合形成一個綜合值,該值會作為對下一次任務(wù)的候選醫(yī)院的間接聲譽值。邊緣節(jié)點會將上傳聲譽綜合值作為一筆交易上傳到區(qū)塊鏈上的區(qū)塊中,在經(jīng)過區(qū)塊驗證和執(zhí)行共識過程后,該筆交易才會被寫入聯(lián)盟鏈中。因此,所有的數(shù)據(jù)請求者均可通過聲譽聯(lián)盟鏈來選擇擁有高質(zhì)量數(shù)據(jù)的醫(yī)院來執(zhí)行聯(lián)邦學(xué)習(xí)算法。
步驟6完成醫(yī)療數(shù)據(jù)共享。在應(yīng)用層完成上述步驟后,相關(guān)的數(shù)據(jù)請求者可以從聯(lián)盟鏈上下載由邊緣節(jié)點聚合的全局模型參數(shù),并在不獲取患者原始數(shù)據(jù)的情況下利用聯(lián)邦學(xué)習(xí)訓(xùn)練的模型參數(shù)挖掘研究價值。由于區(qū)塊鏈具有分散性、開放性、抗篡改性等安全特性,醫(yī)療數(shù)據(jù)模型可以被安全地訪問和分析。
本節(jié)將考慮多家醫(yī)院合作進行聯(lián)邦學(xué)習(xí),為數(shù)據(jù)請求者提供數(shù)據(jù)模型。在真實的無線網(wǎng)絡(luò)中,模型的傳輸受到傳輸?shù)膸?、時間延遲的影響,因此只有當一部分符合要求的醫(yī)院參與聯(lián)邦算法來共享數(shù)據(jù)時才能提高模型的質(zhì)量和共享效率。在下面環(huán)節(jié)中將闡述醫(yī)院的選擇對聯(lián)邦學(xué)習(xí)算法性能的影響。
在所提模型中,當相關(guān)機構(gòu)H想要請求A和B或者C醫(yī)院病人的個人隱私數(shù)據(jù)并用于某項研究(例如請求病人的血檢報告用于研究病人患乳腺癌幾率),數(shù)據(jù)請求者H將任務(wù)發(fā)布在任務(wù)平臺上,附近的邊緣節(jié)點接收到該任務(wù)向A和B或者C醫(yī)院發(fā)送數(shù)據(jù)請求者制定的合約條款,等待醫(yī)院的資源信息反饋。任務(wù)發(fā)布者根據(jù)反饋信息選擇合適的醫(yī)院來參與培訓(xùn)模型。每個醫(yī)院都有一個本地數(shù)據(jù)集Dn,i={xn,i∈Ti,yn,i∈Ti},xn,i是醫(yī)院n參與訓(xùn)練的輸入樣本矢量,yn,i是輸入樣本矢量的標簽。參與訓(xùn)練的數(shù)據(jù)量 為D=其中:i∈I是輸入的第i個 樣本。n∈N是參與培訓(xùn)的醫(yī)院,N是參與共享數(shù)據(jù)的醫(yī)院的集合。定義一個權(quán)重參數(shù)wn來表示醫(yī)院n訓(xùn)練的局部模型參數(shù),整個訓(xùn)練過程的目標是通過學(xué)習(xí)算法找到由Xn和Yn訓(xùn)練得到的參數(shù)來使模型收斂達到預(yù)測精度,并使損失函數(shù)最小化。Xn、Yn分別是輸入樣本矢量集合和輸入樣本矢量標簽的集合。不同的優(yōu)化方法損失函數(shù)的表達式不同。本文使用邏輯回歸方法來描述聯(lián)邦學(xué)習(xí)問題,局部模型的損失函數(shù)可表示為式(1)所示:
局部模型損失函數(shù)最小化的目標是:
每個醫(yī)院n在第e輪更新模型,表達式如式(3)所示:
其中:l是預(yù)定義的學(xué)習(xí)速率。將更新的模型參數(shù)傳給邊緣節(jié)點,由邊緣節(jié)點訓(xùn)練出e輪全局模型參數(shù)如式(4)所示:
其中pn的表達式如式(5)所示:
其中:pn是每個醫(yī)院被選擇的概率。根據(jù)式(1)和式(2),具有高精度和可靠的本地訓(xùn)練數(shù)據(jù)的醫(yī)院可以更快地收斂局部損失函數(shù)fn(w)和全局模型參數(shù)f(w)。從式(4)中可以看出邊緣節(jié)點訓(xùn)練的全局模型參數(shù)取決于醫(yī)院傳送的局部模型參數(shù),以及訓(xùn)練的數(shù)據(jù)集質(zhì)量。反之,全局模型參數(shù)又決定局部模型的更新。因此,為了使局部和全局模型更新在更少的迭代次數(shù)內(nèi)達到收斂目的,必須選擇具有高精度和可靠的本地訓(xùn)練數(shù)據(jù)的醫(yī)院才可以顯著提高聯(lián)邦學(xué)習(xí)的學(xué)習(xí)效率[17-18]。
雖然各醫(yī)療機構(gòu)內(nèi)部均擁有病人數(shù)據(jù)庫,且對于某種疾病擁有相同的“基因組”,但是他們?nèi)匀豢梢蕴峁┎幌嚓P(guān)的信息,且提供數(shù)據(jù)的醫(yī)院可能會因為電腦病毒感染、自私目的而分享虛假信息[8]。如果醫(yī)院nj傳輸給通信范圍內(nèi)的邊緣節(jié)點ei的數(shù)據(jù)模型質(zhì)量被檢測為有用的,那么就認為此次互動為積極交互。反之,為消極交互。此外,以往的研究也表明,在數(shù)據(jù)共享中提供的數(shù)據(jù)越全面、質(zhì)量越好的用戶聲譽越高[16],所以基于聲譽選擇可靠的病人數(shù)據(jù)源提供者來提高聯(lián)邦學(xué)習(xí)算法的精確度是一種值得考慮的方法。本文設(shè)計一種基于醫(yī)院與數(shù)據(jù)請求者之間的互動及聯(lián)合雙重主觀邏輯模型來量化醫(yī)院聲譽的機制。請求者接收到邊緣節(jié)點反饋的醫(yī)院候選人資源信息后獲取到他們的最新聲譽值,然后從區(qū)塊鏈上下載醫(yī)院候選人的聲譽值并與之比對。若兩值相同,則數(shù)據(jù)請求者同意候選醫(yī)院為之服務(wù);若不同,則數(shù)據(jù)請求者將收集到的證據(jù)以形式發(fā)送給邊緣節(jié)點,邊緣節(jié)點更新其對候選醫(yī)院的聲譽意見。其中,H(·)函數(shù)是對證據(jù)做哈希運算,sig 是數(shù)據(jù)請求者的簽名,time 是交易的時間戳。邊緣節(jié)點將選擇聲譽值高的醫(yī)院為數(shù)據(jù)請求者服務(wù),在交互過程中再利用雙重主觀邏輯模型計算候選醫(yī)院的聲譽,最終將醫(yī)院的綜合聲譽值和訓(xùn)練的模型參數(shù)上傳至聯(lián)盟鏈上[21]。為了激勵高質(zhì)量的數(shù)據(jù)貢獻者積極參與聯(lián)邦學(xué)習(xí),利用區(qū)塊鏈技術(shù)準確無誤地為高質(zhì)量的數(shù)據(jù)貢獻者支付獎勵。由于激勵機制不是本文重點,因此本文不對此展開詳細闡述。
2.1.1 直接聲譽值
邊緣節(jié)點在經(jīng)過幾次與候選醫(yī)院的交互后,根據(jù)如圖2 所示的流程圖更新對醫(yī)院的聲譽意見。
圖2 聲譽意見更新評估流程Fig.2 Procedure of the reputation opinion update evaluation
其中:α、β各自代表邊緣節(jié)點ei與醫(yī)院nj是該次任務(wù)中交互的積極事件和消極事件的次數(shù);為成功傳輸數(shù)據(jù)模型參數(shù)的概率,即在無線網(wǎng)絡(luò)中的通信質(zhì)量決定了邊緣節(jié)點對候選醫(yī)院的不確定度。結(jié)合主觀邏輯模型的矢量意見,可以得到直接聲譽值如式(8)所示:
其中:μ代表不確定度對聲譽值影響的相對系數(shù)。在實際情況中,影響邊緣節(jié)點對候選醫(yī)院的聲譽意見的因素有很多,本文模型考慮了雙方交互時效和正負交互因素的影響。為減少自私節(jié)點或惡意節(jié)點的攻擊,增加消極交互事件對聲譽意見影響的權(quán)重,即令θ<φ。其中:θ是參與聯(lián)邦學(xué)習(xí)的醫(yī)院正確傳輸模型參數(shù)后,與邊緣節(jié)點完成積極交互的權(quán)重系數(shù);φ是消極交互的權(quán)重系數(shù)。聲譽意見公式可以更新為式(9):
隨著時間的推移,參與數(shù)據(jù)共享的醫(yī)院不可能總是高度可信的。由于無線網(wǎng)絡(luò)和不確定性因素的存在,因此在模型中考慮了交互時效性影響因子。
定義時效衰落函數(shù)t(γ)=FZ-z來描述時間對聲譽的影響,其中:F∈(0,1)是交互新鮮度的衰退參數(shù):z∈(0,Z]是決定交互新鮮度的時隙。根據(jù)時效衰落函數(shù)可以將一段時間γ內(nèi)的聲譽意見公式更新為式(10):
在該時間段內(nèi)的直接聲譽值如式(11)所示:
在該時間段γ內(nèi)某一時隙的直接聲譽值如式(12)所示:
2.1.2 間接聲譽值
間接意見是由其他數(shù)據(jù)請求者對數(shù)據(jù)提供者提出的。在現(xiàn)實的無線移動網(wǎng)絡(luò)中,作為提供醫(yī)療數(shù)據(jù)的數(shù)據(jù)提供者不會只服務(wù)一個任務(wù)。所以,每一個任務(wù)均會有一個數(shù)據(jù)請求者對應(yīng)多個數(shù)據(jù)提供者。隨著時間的推移,當一個數(shù)據(jù)提供者完成了與多個數(shù)據(jù)請求者之間的交互,且有新的任務(wù)發(fā)布時,當前數(shù)據(jù)請求者就可以從其他數(shù)據(jù)請求者那里獲取他們對數(shù)據(jù)提供者的聲譽意見。每個數(shù)據(jù)請求者對數(shù)據(jù)提供者的聲譽意見都將使用2.1.1 節(jié)中的聲譽矢量來表示。為了衡量其他請求者提供的間接聲譽值重要性,利用式(13)來計算其他數(shù)據(jù)請求者的間接聲譽意見的權(quán)重因子:
其他數(shù)據(jù)請求者ey∈Ε,Ε是其他數(shù)據(jù)請求者的集合,其他邊緣節(jié)點對候選醫(yī)院的不確定度的表達式如式(14)所示:
式(14)為其他邊緣節(jié)點ey對醫(yī)院nj的熟悉度,意味著其他邊緣節(jié)點ey與醫(yī)院nj的交互越頻繁,則越大。在間接意見處考慮熟悉度參數(shù),可使邊緣節(jié)點ei獲得對醫(yī)院nj可靠性更高的聲譽計算結(jié)果。其他邊緣節(jié)點ey對醫(yī)院nj的間接聲譽意見通過矢量)表示。根據(jù)主觀邏輯模型,形成的間接聲譽意見如式(15)所示:
2.1.3 綜合聲譽值
為及時查詢及核對參與數(shù)據(jù)共享過程中節(jié)點的聲譽值,令每一個邊緣節(jié)點均有一個本地聲譽存儲池,根據(jù)交互歷史存儲對各個醫(yī)院或其他邊緣節(jié)點的直接聲譽值。為避免其他數(shù)據(jù)請求者[16]作弊,結(jié)合間接意見和直接聲譽意見形成對數(shù)據(jù)提供者最終的聲譽意見。最終的聲譽意見表示如式(16)所示:
邊緣節(jié)點ey更新對醫(yī)院nj的最終聲譽綜合值的表達式如式(17)所示:
根據(jù)上述公式得到聲譽后,若聲譽綜合值大于預(yù)先定義的閾值,則邊緣節(jié)點ei可以選擇具有高精度和可靠數(shù)據(jù)的高聲譽候選醫(yī)院nj作為聯(lián)邦學(xué)習(xí)任務(wù)的模型培訓(xùn)工人。每一個邊緣節(jié)點都有義務(wù)在更新其對各醫(yī)院的聲譽值后,將綜合聲譽值上傳到區(qū)塊鏈上以作為其他數(shù)據(jù)請求者的參考意見。這種方案能夠挑選可靠性高且具有高精度數(shù)據(jù)的候選醫(yī)院。
結(jié)合第1.3 節(jié)和第2.1.1~2.1.3 節(jié)的分析,單純的聯(lián)邦學(xué)習(xí)算法與區(qū)塊鏈結(jié)合不能同時滿足數(shù)據(jù)高質(zhì)量且安全地共享,引入聲譽機制的區(qū)塊鏈管理方案可以為聯(lián)邦學(xué)習(xí)算法挑選高質(zhì)量的數(shù)據(jù)提供者。將該方案應(yīng)用于醫(yī)療數(shù)據(jù)共享場景中既能保護患者隱私又能保證數(shù)據(jù)的高效利用。
算法1基于聲譽機制的聯(lián)邦學(xué)習(xí)算法
在復(fù)雜和充滿開放性的無線網(wǎng)絡(luò)機構(gòu)中,作為參與聯(lián)邦學(xué)習(xí)訓(xùn)練的工作者可能會執(zhí)行惡意和不可靠的模型更新。本節(jié)主要從所提方案能夠抵御中毒攻擊、抵御共謀欺騙方面進行安全性分析。
3.1.1 中毒攻擊的抵御
不可靠的模型更新可能是由惡意或篡改設(shè)備用欺騙性信息訓(xùn)練數(shù)據(jù)或不安全的通信渠道傳輸數(shù)據(jù)[12]這2 個故意原因?qū)е碌?。因此,惡意?shù)據(jù)所有者可能會故意發(fā)起嚴重攻擊,例如中毒攻擊[21]。中毒攻擊是指惡意設(shè)備故意將有毒數(shù)據(jù)點注入訓(xùn)練數(shù)據(jù)集或修改訓(xùn)練數(shù)據(jù)集,以降低訓(xùn)練數(shù)據(jù)的準確性,從而增加錯誤分類的概率并操縱他們在式(3)中的本地模型更新結(jié)果。在這種情況下,惡意設(shè)備若試圖使用偽造的樣本信息(如身份證),通過在公共通信頻道上竊聽其他參與者訓(xùn)練的有用信息,則必須獲得足夠準確和常見的IDs。在傳統(tǒng)的FL 中,通常采用同態(tài)加密[13]技術(shù)對本地模型參數(shù)和梯度更新進行加密,竊聽者無法獲取到任何信息。本文提出的聲譽篩選數(shù)據(jù)源的方案為了減少惡意節(jié)點的攻擊,增加了消極交互事件對聲譽意見影響的權(quán)重φ,即使在前幾次迭代交互的過程中惡意竊聽者偽裝成功,但經(jīng)過多次迭代之后,他們的聲譽值變低,抵押在區(qū)塊鏈上的資產(chǎn)被沒收,不當?shù)男袨楸挥谰糜涗浽阪溕希瑫r被取消學(xué)習(xí)訓(xùn)練的過程,這能夠在一定程度上抵御中毒攻擊。
3.1.2 共謀欺騙的抵御
本文方案中的聲譽模型可以用于任何節(jié)點相互協(xié)作的服務(wù)中,每個任務(wù)發(fā)布者隨機選擇一個鄰居。網(wǎng)絡(luò)中有2 種可能的節(jié)點類型:合作醫(yī)院節(jié)點和自私醫(yī)院節(jié)點。即使網(wǎng)絡(luò)中有新的FL 任務(wù)發(fā)布,惡意的授權(quán)醫(yī)院nj試圖與其他任務(wù)發(fā)布者串通,他們也無法參與此次的任務(wù)。附近的邊緣節(jié)點ei從本地存儲中檢索其直接聲譽意見同時ei向區(qū)塊鏈上請求其他任務(wù)發(fā)布者關(guān)于醫(yī)院nj的間接聲譽意見,并等待時間間隔t(t=0.5 s)。在該時間間隔之后,節(jié)點ei開始進行聲譽計算階段,以計算綜合聲譽值如果不滿足此次任務(wù)要求的醫(yī)院nj想要參與此次任務(wù)就必須與之前服務(wù)過的任務(wù)發(fā)布者進行串通并修改區(qū)塊鏈上的聲譽意見。但由于區(qū)塊鏈獨特的數(shù)據(jù)結(jié)構(gòu)特點,前一個區(qū)塊的hash 值包含在后一個區(qū)塊中,如果其中一個區(qū)塊被修改,則之后的所有區(qū)塊都將被重新計算,所以單個節(jié)點對數(shù)據(jù)庫的修改是無效的。因此,之前的任務(wù)發(fā)布者想要篡改已有的數(shù)據(jù)幾乎不可能,共謀欺騙也無法實現(xiàn)。同時,只有符合要求的數(shù)據(jù)模型參數(shù)和梯度更新被上傳到聯(lián)盟鏈上,而真實數(shù)據(jù)由每個數(shù)據(jù)提供者存儲在本地。數(shù)據(jù)所有者可以控制他們自己的數(shù)據(jù)權(quán)限。此外,聯(lián)盟鏈還使用了一系列的橢圓曲線數(shù)字簽名和非對稱等加密算法來保證數(shù)據(jù)的安全性。
對比方案是文獻[19]所提的典型聯(lián)邦學(xué)習(xí)方案、文獻[20]所提的現(xiàn)有性能較好的方案。文獻[19]中提出的Fedavg 算法利用經(jīng)典的加權(quán)聚合方法隨機選擇用戶參與聯(lián)邦學(xué)習(xí)。文獻[20]中所提性能較好的FedProx算法能夠妥善處理數(shù)據(jù)異構(gòu)問題。在仿真實驗中,利用著名的數(shù)字分類數(shù)據(jù)集MNIST 和廣泛使用的軟件環(huán)境TensorFlow1.10.0 執(zhí)行數(shù)字分類任務(wù)來評估所提出的基于聲譽機制的聯(lián)邦學(xué)習(xí)方案,仿真參數(shù)的設(shè)置如表1 所示。在MNIST 數(shù)據(jù)集中有60 000 個訓(xùn)練示例和10 000 個測試示例。
表1 聯(lián)邦學(xué)習(xí)的仿真參數(shù)Tabel 1 Simulation parameters of federated learning
圖3、圖4 所示為兩種聯(lián)邦學(xué)習(xí)方案學(xué)習(xí)精度的對比,在加入不同聲譽值的情況下比較兩種方案的學(xué)習(xí)精度和損失值。
圖3 不同經(jīng)典方案的訓(xùn)練精度對比Fig.3 Comparison of the training accuracy of different classic schemes
圖4 不同經(jīng)典方案的訓(xùn)練損失值對比Fig.4 Comparison of the training loss of different classic schemes
為模擬現(xiàn)實網(wǎng)絡(luò)中的設(shè)備異質(zhì)性和數(shù)據(jù)異質(zhì)性,在實驗中將數(shù)據(jù)分布在1 000 個設(shè)備中,每個設(shè)備的樣本數(shù)量遵循冪律,并且每個本地設(shè)備上的數(shù)據(jù)隨機分為80%的訓(xùn)練集和20%的測試集。首先,每臺設(shè)備被設(shè)定不同的聲譽值,聲譽值的取值范圍為[0,1]。然后,在系統(tǒng)中通過設(shè)置不同的聲譽閾值reputation_value_0.2/0.5/0.8 來模擬動態(tài)篩選設(shè)備參與訓(xùn)練的過程。在兩種算法中均將Epoch 固定為20,每個Epoch 有100 個Rounds,即模型訓(xùn)練過程中醫(yī)院使用batch_size為10的隨機抽樣樣本連續(xù)進行100 次迭代本地模型來研究數(shù)據(jù)源聲譽值差異對模型收斂的影響。如圖3 所示,不加入聲譽值的時候,兩種經(jīng)典方案的訓(xùn)練精度相差不大,但當引入了聲譽值后,隨著聲譽閾值越高,對應(yīng)的Fedavg 和FedProx 兩種典型方案的損失值不斷降低,學(xué)習(xí)精度不斷提高。特別地,reputation_value_0.8 的FedProx 聲譽值接近于1,可見其挑選出的醫(yī)院幾近完全可信且數(shù)據(jù)質(zhì)量好,訓(xùn)練出的模型精度接近于1。引入聲譽值之后,兩種方案中參與FL 訓(xùn)練的設(shè)備更加靈活,不滿足要求的設(shè)備容易掉出訓(xùn)練網(wǎng)絡(luò),因此系統(tǒng)異質(zhì)性和更大的數(shù)據(jù)異質(zhì)性(非同態(tài)分布)造成測試訓(xùn)練精度和損失值收斂較慢,同時收斂過程中震蕩幅度較大,尤其是經(jīng)典的Fedavg 方案。對于具有聲譽管理的方案,當聲譽值為0.2~0.5 時,本文的方案使聯(lián)邦學(xué)習(xí)算法的性能提升明顯。這是因為在聲譽方案的幫助下,醫(yī)院的聲譽意見被及時更新,相關(guān)機構(gòu)可以選擇具有高精度數(shù)據(jù)的醫(yī)院。因此,使用本文方案實現(xiàn)了高精度的聲譽計算,保證了不同醫(yī)療機構(gòu)之間的高質(zhì)量數(shù)據(jù)共享。
圖5 顯示了基于不同聲譽檢測機制方案的醫(yī)院聲譽值的變化,分別為本文改進的聲譽方案、基于提供服務(wù)節(jié)點不確定性的典型聲譽方案2[22]以及基于任務(wù)發(fā)布者間相似性的聲譽方案1[23]之間的對比。為了表征不同聲譽方案識別不可靠醫(yī)院的能力,假設(shè)前6 次交互任務(wù)中,不可靠醫(yī)院假裝表現(xiàn)良好以獲取高的聲譽值,此時所有的醫(yī)院聲譽平均值均急速增長,無法分辨好壞。設(shè)前6 次交互任務(wù)中,不可靠醫(yī)院假裝表現(xiàn)良好以獲取高聲譽值,此時所有的醫(yī)院聲譽平均值均急速增長,無法分辨好壞。之后,不可靠醫(yī)院以0.8 的概率做出不當行為,整體聲譽平均值開始下降,本文方案下降得更劇烈,幅度更大。而且,當不可靠醫(yī)院再次表現(xiàn)良好時,整體聲譽平均值也會增加。本文方案增加的幅度要比其他方案都要小,提供了更準確的衡量標準。值得注意的是,在6 次交互后,本文方案可以明確地展示在參與共享的醫(yī)院中一直存在不可靠醫(yī)院。然而,方案1、2 和無聲譽方案的整體聲譽平均值在0.5 以上,均無法完全檢測出不可靠的醫(yī)院。原因是不可靠的醫(yī)院在一些交互任務(wù)中可以通過良好的行為很好地偽裝自己,能夠在短時間內(nèi)不被發(fā)現(xiàn)。
圖5 基于不同聲譽檢測方案的聲譽值Fig.5 Reputation value based on different reputation detection schemes
圖6 顯示了在不同方案下當自私節(jié)點比例變化時孤立自私節(jié)點收斂時間的變化。由圖6 可知,當自私節(jié)點的比例低于50%時,收斂時間隨自私節(jié)點比例的增加而增加,這是因為隨著自私節(jié)點的增加,系統(tǒng)對節(jié)點的可信任信息越少,誠實節(jié)點需要花費更多的時間收集證據(jù)來發(fā)現(xiàn)自私節(jié)點。也可以看出本文方案與對比方案相比節(jié)省了約6%的交互時間,這是因為本文方案綜合考慮了經(jīng)驗、熟悉度、時效性等多個因素,可以通過更快收集節(jié)點的可信信息來判斷節(jié)點的行為,因此本文方案性能更好。
圖6 基于不同聲譽方案自私節(jié)點比例變化發(fā)現(xiàn)自私節(jié)點的收斂時間Fig.6 The convergence time of discovering selfish nodes when the proportion of selfish nodes changes based on different reputation schemes
區(qū)塊鏈在本文方案中的重要作用是存儲醫(yī)院聲譽值,由于聲譽值是動態(tài)變化的,入鏈存儲過程并不簡單。為了將聲譽值和參數(shù)上傳至鏈上,簡化入鏈存儲過程,這些計算均在鏈下進行,所以上傳至鏈上的是由參數(shù)和聲譽值打包好的交易,這符合區(qū)塊鏈的交易行為和數(shù)據(jù)結(jié)構(gòu)特性。該實驗部分通過在國產(chǎn)區(qū)塊鏈FISCΟ BCΟS 上建立可靠的交易服務(wù),并采用PBFT 作為運行在4 名預(yù)選礦工上的共識算法。同時,使用SHA-256 作為安全哈希算法,聲譽意見的數(shù)據(jù)大小在100~300 KB 之間,信譽意見的塊大小限制為1 MB。交易吞吐量是衡量分布式系統(tǒng)的一個重要的性能指標,TPS=trans_len/ΔT,系統(tǒng)的吞吐量通常由區(qū)塊中包含的交易數(shù)量(trans_len)和生成一個區(qū)塊的時間(ΔT)決定。使用它來測試在較短的間隔時間內(nèi)發(fā)送大量交易區(qū)塊鏈能否快速處理網(wǎng)絡(luò)中交易的動態(tài)入鏈存儲過程,實驗結(jié)果取20 次實驗的均值。
圖7為模擬交易的動態(tài)存儲過程,每間隔時間t=5 s時,分別向系統(tǒng)中發(fā)送500、1 000、2 000、3 000、4 000筆交易。當交易數(shù)量較少時,系統(tǒng)達到的TPS接近于系統(tǒng)中存在的交易。例如,當交易為1 000筆時,系統(tǒng)的平均TPS能達到995.29。但隨著交易數(shù)量的明顯增加,系統(tǒng)的TPS增長幅度卻在降低,當交易最大值為4 000筆時,系統(tǒng)的平均TPS只有3 079.35。這是因為一個完整的入鏈存儲的過程包括4個階段:發(fā)送交易、預(yù)備塊生成、塊的共識和正式的塊生成。當系統(tǒng)中的交易過多時,在預(yù)備塊生成和共識階段保持節(jié)點間的一致性所需的時間就越長,同時,節(jié)點與主節(jié)點的通信消耗就越高,共識過程所花費的時間就越多,系統(tǒng)吞吐量就越低。特別地,由于網(wǎng)絡(luò)抖動和CPU性能的影響,即使在時間相同的情況下發(fā)送不同筆交易到系統(tǒng)中,系統(tǒng)中達到的TPS也不穩(wěn)定。但從系統(tǒng)平均TPS可以看出,在區(qū)塊鏈網(wǎng)絡(luò)中同時并發(fā)大量將聲譽值和模型參數(shù)打包成的交易入鏈存儲過程是可以實現(xiàn)的,并且能滿足一定的性能需求。
圖7 不同交易數(shù)量達到的平均TPS 對比Fig.7 Comparison of average TPS of different transaction quantities
本文針對醫(yī)療數(shù)據(jù)共享場景中可靠數(shù)據(jù)源的選擇問題,提出一種以聲譽為基礎(chǔ)的方案。使用聯(lián)邦學(xué)習(xí)對數(shù)據(jù)建模,引入?yún)^(qū)塊鏈技術(shù)實現(xiàn)對聲譽的管理,利用雙重主觀邏輯模型改進聲譽方案,并對醫(yī)院聲譽進行較全面計算。實驗結(jié)果表明,改進的聲譽方案可以吸引更多聲譽高的醫(yī)院,提供高質(zhì)量的本地訓(xùn)練數(shù)據(jù)及提高聯(lián)邦學(xué)習(xí)算法的效率。下一步將把本文方案運用于其他場景的數(shù)據(jù)共享中,并針對聯(lián)盟鏈場景設(shè)計相應(yīng)的區(qū)塊鏈共識算法和激勵機制以提高共享效率,加強區(qū)塊鏈在數(shù)據(jù)共享中的作用。