溫亞蘭,陳美娟
(南京郵電大學(xué)通信與信息工程學(xué)院,南京 210003)
互聯(lián)網(wǎng)、大數(shù)據(jù)分析、移動(dòng)邊緣計(jì)算等技術(shù)的爆發(fā)式增長(zhǎng)推動(dòng)了“共享經(jīng)濟(jì)”的發(fā)展。隨著海量醫(yī)療數(shù)據(jù)的產(chǎn)生以及時(shí)代發(fā)展的需要,人們將共享經(jīng)濟(jì)的關(guān)注點(diǎn)轉(zhuǎn)向醫(yī)療行業(yè)。若能利用大數(shù)據(jù)分析技術(shù)將分散在各個(gè)醫(yī)療機(jī)構(gòu)的醫(yī)療數(shù)據(jù)應(yīng)用到不同行業(yè),將醫(yī)學(xué)專家的寶貴經(jīng)驗(yàn)轉(zhuǎn)化為標(biāo)準(zhǔn)化的知識(shí),形成數(shù)據(jù)驅(qū)動(dòng)服務(wù),那么將大幅提高整個(gè)公共醫(yī)療機(jī)構(gòu)服務(wù)效率問題,給整個(gè)社會(huì)帶來巨大的效益[1]。但由于醫(yī)療數(shù)據(jù)涉及了患者的隱私且獨(dú)立存儲(chǔ)于醫(yī)療機(jī)構(gòu)的數(shù)據(jù)庫中,因此,利用醫(yī)療數(shù)據(jù)需要考慮共享過程中的隱私保護(hù)與效率問題。針對(duì)隱私問題,文獻(xiàn)[2-4]利用云服務(wù)制定管理與訪問醫(yī)療數(shù)據(jù)的策略,以實(shí)現(xiàn)共享過程中的數(shù)據(jù)安全。文獻(xiàn)[5]在醫(yī)療數(shù)據(jù)共享的最初階段就嚴(yán)格設(shè)計(jì)了相關(guān)醫(yī)院、病人的訪問規(guī)則,并結(jié)合代理再加密技術(shù)和癥狀匹配機(jī)制實(shí)現(xiàn)了輕量級(jí)的醫(yī)療數(shù)據(jù)共享保護(hù)方案。文獻(xiàn)[6]和文獻(xiàn)[7]提出,由于云服務(wù)提供商面臨內(nèi)部和外部的安全威脅,如果不加強(qiáng)安全和隱私保護(hù),而繼續(xù)將敏感的健康數(shù)據(jù)外包給云,就可能會(huì)增加數(shù)據(jù)泄漏的風(fēng)險(xiǎn)。HAΟ 等[8]認(rèn)為簡(jiǎn)單地將醫(yī)療數(shù)據(jù)移動(dòng)到云端進(jìn)行存儲(chǔ)、管理和分析并不能完美解決共享過程中的隱私保護(hù)與效率問題。為提高數(shù)據(jù)共享的可搜索性和安全性,文獻(xiàn)[9-10]提出將分布式去中心化的區(qū)塊鏈技術(shù)結(jié)合不同的加密算法解決病人隱私泄露問題。但在實(shí)際應(yīng)用中,數(shù)據(jù)請(qǐng)求方從區(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ù)請(qǐng)求者不再需要收集大量數(shù)據(jù)就可以研究和挖掘數(shù)據(jù)中的潛在價(jià)值。SILVA 等[12]提出聯(lián)邦學(xué)習(xí)框架,在不需共享大量原始數(shù)據(jù)的情況下就可以安全地訪問和分析任何生物醫(yī)學(xué)數(shù)據(jù)。盡管聯(lián)邦學(xué)習(xí)允許參與者在不被披露的情況下貢獻(xiàn)他們的本地?cái)?shù)據(jù),但FL 并不驗(yàn)證系統(tǒng)中不同方的數(shù)據(jù)質(zhì)量以及準(zhǔn)確支付參與者高質(zhì)量數(shù)據(jù)貢獻(xiàn)方面的問題[13]。因此,具有較少公共實(shí)體的低質(zhì)量數(shù)據(jù)集可以與其他數(shù)據(jù)集共同訓(xùn)練,但這可能會(huì)導(dǎo)致大量計(jì)算資源的浪費(fèi)及作為聯(lián)邦成員的惡意客戶端對(duì)FL 模型的攻擊。針對(duì)此問題,文獻(xiàn)[14]提出將區(qū)塊鏈技術(shù)與聯(lián)邦學(xué)習(xí)結(jié)合并用于物聯(lián)網(wǎng)場(chǎng)景下的數(shù)據(jù)共享,通過區(qū)塊鏈技術(shù)對(duì)數(shù)據(jù)提供者進(jìn)行身份驗(yàn)證,并將聯(lián)邦學(xué)習(xí)訓(xùn)練的模型參數(shù)存儲(chǔ)于區(qū)塊鏈中以防止被篡改,保證數(shù)據(jù)的安全性。將聯(lián)邦學(xué)習(xí)與區(qū)塊鏈相結(jié)合[15-16]已成為數(shù)據(jù)共享領(lǐng)域中能夠同時(shí)解決隱私保護(hù)和數(shù)據(jù)安全性問題的重要方法。文獻(xiàn)[17-18]將聯(lián)邦學(xué)習(xí)與區(qū)塊鏈相結(jié)合并用于醫(yī)療數(shù)據(jù)的安全共享,但也指出從各種數(shù)據(jù)源收集數(shù)據(jù)并協(xié)同準(zhǔn)確高效的訓(xùn)練模型是人工智能技術(shù)的一個(gè)巨大挑戰(zhàn)。SHAYAN 等[19]指出移動(dòng)設(shè)備可能會(huì)在模型更新過程中對(duì)其進(jìn)行中毒攻擊,或者對(duì)目標(biāo)設(shè)備進(jìn)行信息泄漏攻擊,并利用抵御負(fù)面影響防御來刪除中毒模型更新。同時(shí),使用不同的隱私方案來保護(hù)隱私,并在區(qū)塊鏈平臺(tái)上進(jìn)行存儲(chǔ)和匯總。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è)計(jì)高級(jí)的聯(lián)合學(xué)習(xí)算法上,而使用其他手段篩選聯(lián)邦學(xué)習(xí)數(shù)據(jù)源來提高學(xué)習(xí)性能卻很少被探索。雖然NISHIΟ 等[21]考慮了資源限制和工人選擇問題,但參與聯(lián)邦訓(xùn)練設(shè)備的可靠性被忽略了。LIU 等[22]提出將聲譽(yù)機(jī)制運(yùn)用于挑選數(shù)據(jù)源以及KANG 等[23]提出將激勵(lì)機(jī)制和可靠聯(lián)邦學(xué)習(xí)工人(即移動(dòng)設(shè)備)相結(jié)合的方案來改進(jìn)聯(lián)邦學(xué)習(xí)算法,既保護(hù)了隱私也提高了算法效率。
為了將數(shù)據(jù)源的影響降至最低,保證醫(yī)療數(shù)據(jù)共享的安全和效率,本文提出一種區(qū)塊鏈與聯(lián)邦學(xué)習(xí)相結(jié)合的聲譽(yù)選擇候選醫(yī)院方案。通過在訓(xùn)練前篩選數(shù)據(jù)質(zhì)量高的成員,將數(shù)據(jù)共享過程轉(zhuǎn)化為模型參數(shù)共享過程,避免原始數(shù)據(jù)上傳至區(qū)塊鏈而造成患者隱私泄露。同時(shí),改進(jìn)聲譽(yù)方案,選擇數(shù)據(jù)質(zhì)量高和可靠的參與聯(lián)邦學(xué)習(xí)的候選醫(yī)院訓(xùn)練模型,并利用分布式的聯(lián)盟鏈存儲(chǔ)各醫(yī)院的聲譽(yù)值以及全局模型參數(shù),對(duì)積極參與高質(zhì)量數(shù)據(jù)貢獻(xiàn)的醫(yī)院進(jìn)行獎(jiǎng)勵(lì)。
本文設(shè)定了一種由N個(gè)參與數(shù)據(jù)共享的醫(yī)院和請(qǐng)求數(shù)據(jù)的相關(guān)機(jī)構(gòu)H組成的聯(lián)盟鏈聯(lián)邦學(xué)習(xí)系統(tǒng)來模擬現(xiàn)實(shí)中安全可靠的醫(yī)療共享場(chǎng)景,包括區(qū)塊鏈層和應(yīng)用層。
如圖1 所示,應(yīng)用層是由1 個(gè)數(shù)據(jù)請(qǐng)求者(例如某保險(xiǎn)機(jī)構(gòu)、政府機(jī)構(gòu))和一組醫(yī)院組成的通用移動(dòng)網(wǎng)絡(luò)。其中,廣泛部署在網(wǎng)絡(luò)邊緣的用于通信的基礎(chǔ)設(shè)施稱為邊緣節(jié)點(diǎn),聯(lián)邦學(xué)習(xí)任務(wù)的物理基礎(chǔ)設(shè)施包括醫(yī)院的移動(dòng)設(shè)備和邊緣節(jié)點(diǎn)。移動(dòng)設(shè)備利用本地?cái)?shù)據(jù)培訓(xùn)本地?cái)?shù)據(jù)模型。邊緣節(jié)點(diǎn)有2 種用途:1)在聯(lián)邦學(xué)習(xí)任務(wù)中作為中央聚合器聚合本地模型以形成全局模型并與參與培訓(xùn)的醫(yī)院相互傳輸模型;2)作為聯(lián)盟鏈上的節(jié)點(diǎn)與數(shù)據(jù)請(qǐng)求者進(jìn)行通信,為數(shù)據(jù)請(qǐng)求者提供候選醫(yī)院的聲譽(yù)值。醫(yī)院數(shù)據(jù)庫存儲(chǔ)和加密著病人的各種醫(yī)療數(shù)據(jù)。數(shù)據(jù)請(qǐng)求者是一個(gè)需要分析大量臨床醫(yī)療數(shù)據(jù)以進(jìn)行研究的第三方機(jī)構(gòu)。
在應(yīng)用層中,為了保護(hù)隱私,基于上述來自醫(yī)院共享的數(shù)據(jù)對(duì)多個(gè)具有聯(lián)邦學(xué)習(xí)任務(wù)的數(shù)據(jù)請(qǐng)求者進(jìn)行模型訓(xùn)練。每個(gè)數(shù)據(jù)請(qǐng)求者設(shè)計(jì)合約條款,以激勵(lì)作為工人的可靠移動(dòng)設(shè)備進(jìn)行模型培訓(xùn)(圖1中的步驟1)。接著,每個(gè)醫(yī)院根據(jù)其本地?cái)?shù)據(jù)迭代地訓(xùn)練一個(gè)共享的全局模型,并生成本地模型更新(圖1 中的步驟2~4)。然后,所有的醫(yī)院將他們的本地模型更新上傳到邊緣節(jié)點(diǎn)以更新全局模型(圖1中的步驟6)。最后,重復(fù)訓(xùn)練過程,直到全局模型的精度達(dá)到預(yù)定義的收斂值。廣泛分布的邊緣節(jié)點(diǎn)使醫(yī)院能及時(shí)與數(shù)據(jù)請(qǐng)求者通信。數(shù)據(jù)請(qǐng)求者會(huì)評(píng)估局部模型更新的質(zhì)量,并根據(jù)參與醫(yī)院的模型更新質(zhì)量,為參與醫(yī)院生成聲譽(yù)評(píng)價(jià)。更多的聲譽(yù)計(jì)算方案將在本文第2 節(jié)給出。聲譽(yù)意見將存儲(chǔ)在聯(lián)盟鏈上,具有不可篡改的特性,而數(shù)據(jù)請(qǐng)求者之間能公開透明地共享各醫(yī)院之間的聲譽(yù)值。
在區(qū)塊鏈層,因邊緣節(jié)點(diǎn)具有強(qiáng)大的計(jì)算能力、通信能力及存儲(chǔ)能力,可以作為聯(lián)盟鏈的礦工。聲譽(yù)意見通過共識(shí)算法被礦工驗(yàn)證后存儲(chǔ)到數(shù)據(jù)塊中。由于區(qū)塊鏈的去中心化和防篡改性質(zhì),即使發(fā)生糾紛和破壞[9],數(shù)據(jù)塊中的聲譽(yù)意見也是持久和透明的證據(jù)。對(duì)于參與共享的醫(yī)院,數(shù)據(jù)請(qǐng)求者會(huì)將自己的直接聲譽(yù)意見與其他數(shù)據(jù)請(qǐng)求者的間接聲譽(yù)意見集合并生成綜合聲譽(yù)值上傳到聯(lián)盟鏈上。在聯(lián)邦學(xué)習(xí)中,聲譽(yù)值是可靠醫(yī)院選擇的重要指標(biāo)。在此次任務(wù)結(jié)束后,通過區(qū)塊鏈的準(zhǔn)確支付機(jī)制對(duì)積極參與貢獻(xiàn)的醫(yī)院進(jìn)行獎(jiǎng)勵(lì)。
基于聲譽(yù)機(jī)制的候選醫(yī)院共享數(shù)據(jù)選擇方案如圖1 所示,本文提出以聲譽(yù)為基礎(chǔ)選擇醫(yī)院并進(jìn)行可靠的聯(lián)邦學(xué)習(xí),由聯(lián)盟鏈來管理醫(yī)院的聲譽(yù)值和模型參數(shù)的方案,由如下6 個(gè)步驟組成。

圖1 系統(tǒng)模型Fig.1 System model
步驟1制定合約條款并發(fā)布聯(lián)邦學(xué)習(xí)共享任務(wù)。數(shù)據(jù)請(qǐng)求者(如政府機(jī)構(gòu)、醫(yī)療研究所、醫(yī)療保健院等)根據(jù)需求發(fā)布聯(lián)邦學(xué)習(xí)任務(wù)以尋求滿足合約的候選人。在發(fā)布任務(wù)之前,任務(wù)發(fā)布者需要根據(jù)實(shí)際需求制定一項(xiàng)智能合約,合約里面的內(nèi)容包括需要的數(shù)據(jù)大小、數(shù)據(jù)類型、數(shù)據(jù)質(zhì)量、聲譽(yù)值及時(shí)間,CPU cycles 將合約傳遞給通信范圍內(nèi)的邊緣節(jié)點(diǎn),邊緣節(jié)點(diǎn)再將合約發(fā)送給一定范圍內(nèi)的醫(yī)院。滿足合約要求的醫(yī)院將作為此任務(wù)的候選人并將滿足的資源信息發(fā)送給邊緣節(jié)點(diǎn),邊緣節(jié)點(diǎn)再將其反饋給數(shù)據(jù)請(qǐng)求者。
步驟2核對(duì)候選醫(yī)院聲譽(yù)值并上傳核對(duì)結(jié)果。在接收到邊緣節(jié)點(diǎn)反饋的資源信息后,數(shù)據(jù)請(qǐng)求者需要估算相關(guān)候選人的聲譽(yù)值來選擇合適的醫(yī)院來共享數(shù)據(jù)。聲譽(yù)值由邊緣節(jié)點(diǎn)對(duì)候選人的直接意見和其他與候選人交互過的邊緣節(jié)點(diǎn)的聲譽(yù)意見決定,并通過一種雙重主觀邏輯模型來計(jì)算。數(shù)據(jù)請(qǐng)求者首先從邊緣節(jié)點(diǎn)反饋的資源信息中獲得最新的候選人間接聲譽(yù)值,再從存儲(chǔ)聲譽(yù)值的聯(lián)盟鏈上下載候選人的聲譽(yù)值并與之核對(duì)。每個(gè)候選人的聲譽(yù)值都會(huì)被存儲(chǔ)于聯(lián)盟鏈的分布式數(shù)據(jù)區(qū)塊中。若兩值相同,則該聲譽(yù)值將作為其他任務(wù)發(fā)布者對(duì)候選者的間接聲譽(yù)值。反之,數(shù)據(jù)請(qǐng)求者會(huì)將比對(duì)結(jié)果上傳至聲譽(yù)鏈上,經(jīng)過聲譽(yù)鏈上的節(jié)點(diǎn)核實(shí)后候選醫(yī)院的聲譽(yù)值將會(huì)降低。最后,邊緣節(jié)點(diǎn)根據(jù)與醫(yī)院交互的直接聲譽(yù)意見和間接聲譽(yù)意見來生成候選醫(yī)院綜合聲譽(yù)值,然后將綜合聲譽(yù)值上傳至聯(lián)盟鏈上,作為下一次其他數(shù)據(jù)請(qǐng)求者衡量醫(yī)院的間接聲譽(yù)意見。
步驟3根據(jù)聲譽(yù)值選擇候選醫(yī)院并參與聯(lián)邦學(xué)習(xí)任務(wù)。因?yàn)橛脩舻臄?shù)據(jù)集質(zhì)量直接影響訓(xùn)練出的局部數(shù)據(jù)模型[12][23],而局部數(shù)據(jù)模型的質(zhì)量又影響最終的數(shù)據(jù)模型質(zhì)量。所以,數(shù)據(jù)請(qǐng)求者在估算出候選人的聲譽(yù)值后并結(jié)合他們的資源選擇合適的醫(yī)院子集來執(zhí)行聯(lián)邦學(xué)習(xí)算法。
步驟4執(zhí)行聯(lián)邦學(xué)習(xí)算法和評(píng)估本地模型更新的質(zhì)量。被選擇的醫(yī)院首先會(huì)在附近的邊緣節(jié)點(diǎn)上下載最新的初始化模型,然后根據(jù)自己的資源使用不同的優(yōu)化算法[15](例如,隨機(jī)梯度下降算法SGD、小批量梯度下降算法Mini-batch gradient descent)進(jìn)行聯(lián)邦學(xué)習(xí)訓(xùn)練模型,在培訓(xùn)出局部模型后醫(yī)院會(huì)將模型參數(shù)以及梯度值傳至通信范圍內(nèi)的邊緣節(jié)點(diǎn),邊緣節(jié)點(diǎn)接收到各個(gè)醫(yī)院傳過來的局部模型參數(shù)后聚合模型并形成全局模型,即完成一次迭代過程。若全局模型質(zhì)量達(dá)不到要求,邊緣節(jié)點(diǎn)會(huì)將最新聚合形成的全局模型下發(fā)給各個(gè)醫(yī)院,醫(yī)院接收到更新后的全局模型后會(huì)再次進(jìn)行本地模型更新,完成多次迭代之后,當(dāng)全局模型達(dá)到一定的精度即滿足預(yù)定義的收斂條件時(shí),則迭代結(jié)束。
步驟5將更新交互后的聲譽(yù)意見上傳至區(qū)塊鏈。在每次上傳模型中,與不可靠的醫(yī)院或攻擊者的交互均被視為負(fù)面交互[21]。與可靠醫(yī)院的交互均被視為積極交互。邊緣節(jié)點(diǎn)會(huì)依據(jù)每一次交互歷史更新用戶的直接聲譽(yù)意見,迭代幾次聲譽(yù)意見就會(huì)被更新幾次。迭代結(jié)束后,邊緣節(jié)點(diǎn)會(huì)將直接聲譽(yù)意見和間接聲譽(yù)意見(間接聲譽(yù)意見由其他邊緣節(jié)點(diǎn)與醫(yī)院的交互活動(dòng)決定)綜合形成一個(gè)綜合值,該值會(huì)作為對(duì)下一次任務(wù)的候選醫(yī)院的間接聲譽(yù)值。邊緣節(jié)點(diǎn)會(huì)將上傳聲譽(yù)綜合值作為一筆交易上傳到區(qū)塊鏈上的區(qū)塊中,在經(jīng)過區(qū)塊驗(yàn)證和執(zhí)行共識(shí)過程后,該筆交易才會(huì)被寫入聯(lián)盟鏈中。因此,所有的數(shù)據(jù)請(qǐng)求者均可通過聲譽(yù)聯(lián)盟鏈來選擇擁有高質(zhì)量數(shù)據(jù)的醫(yī)院來執(zhí)行聯(lián)邦學(xué)習(xí)算法。
步驟6完成醫(yī)療數(shù)據(jù)共享。在應(yīng)用層完成上述步驟后,相關(guān)的數(shù)據(jù)請(qǐng)求者可以從聯(lián)盟鏈上下載由邊緣節(jié)點(diǎn)聚合的全局模型參數(shù),并在不獲取患者原始數(shù)據(jù)的情況下利用聯(lián)邦學(xué)習(xí)訓(xùn)練的模型參數(shù)挖掘研究?jī)r(jià)值。由于區(qū)塊鏈具有分散性、開放性、抗篡改性等安全特性,醫(yī)療數(shù)據(jù)模型可以被安全地訪問和分析。
本節(jié)將考慮多家醫(yī)院合作進(jìn)行聯(lián)邦學(xué)習(xí),為數(shù)據(jù)請(qǐng)求者提供數(shù)據(jù)模型。在真實(shí)的無線網(wǎng)絡(luò)中,模型的傳輸受到傳輸?shù)膸挕r(shí)間延遲的影響,因此只有當(dāng)一部分符合要求的醫(yī)院參與聯(lián)邦算法來共享數(shù)據(jù)時(shí)才能提高模型的質(zhì)量和共享效率。在下面環(huán)節(jié)中將闡述醫(yī)院的選擇對(duì)聯(lián)邦學(xué)習(xí)算法性能的影響。
在所提模型中,當(dāng)相關(guān)機(jī)構(gòu)H想要請(qǐng)求A和B或者C醫(yī)院病人的個(gè)人隱私數(shù)據(jù)并用于某項(xiàng)研究(例如請(qǐng)求病人的血檢報(bào)告用于研究病人患乳腺癌幾率),數(shù)據(jù)請(qǐng)求者H將任務(wù)發(fā)布在任務(wù)平臺(tái)上,附近的邊緣節(jié)點(diǎn)接收到該任務(wù)向A和B或者C醫(yī)院發(fā)送數(shù)據(jù)請(qǐng)求者制定的合約條款,等待醫(yī)院的資源信息反饋。任務(wù)發(fā)布者根據(jù)反饋信息選擇合適的醫(yī)院來參與培訓(xùn)模型。每個(gè)醫(yī)院都有一個(gè)本地?cái)?shù)據(jù)集Dn,i={xn,i∈Ti,yn,i∈Ti},xn,i是醫(yī)院n參與訓(xùn)練的輸入樣本矢量,yn,i是輸入樣本矢量的標(biāo)簽。參與訓(xùn)練的數(shù)據(jù)量 為D=其中:i∈I是輸入的第i個(gè) 樣本。n∈N是參與培訓(xùn)的醫(yī)院,N是參與共享數(shù)據(jù)的醫(yī)院的集合。定義一個(gè)權(quán)重參數(shù)wn來表示醫(yī)院n訓(xùn)練的局部模型參數(shù),整個(gè)訓(xùn)練過程的目標(biāo)是通過學(xué)習(xí)算法找到由Xn和Yn訓(xùn)練得到的參數(shù)來使模型收斂達(dá)到預(yù)測(cè)精度,并使損失函數(shù)最小化。Xn、Yn分別是輸入樣本矢量集合和輸入樣本矢量標(biāo)簽的集合。不同的優(yōu)化方法損失函數(shù)的表達(dá)式不同。本文使用邏輯回歸方法來描述聯(lián)邦學(xué)習(xí)問題,局部模型的損失函數(shù)可表示為式(1)所示:

局部模型損失函數(shù)最小化的目標(biāo)是:

每個(gè)醫(yī)院n在第e輪更新模型,表達(dá)式如式(3)所示:

其中:l是預(yù)定義的學(xué)習(xí)速率。將更新的模型參數(shù)傳給邊緣節(jié)點(diǎn),由邊緣節(jié)點(diǎn)訓(xùn)練出e輪全局模型參數(shù)如式(4)所示:

其中pn的表達(dá)式如式(5)所示:

其中:pn是每個(gè)醫(yī)院被選擇的概率。根據(jù)式(1)和式(2),具有高精度和可靠的本地訓(xùn)練數(shù)據(jù)的醫(yī)院可以更快地收斂局部損失函數(shù)fn(w)和全局模型參數(shù)f(w)。從式(4)中可以看出邊緣節(jié)點(diǎn)訓(xùn)練的全局模型參數(shù)取決于醫(yī)院傳送的局部模型參數(shù),以及訓(xùn)練的數(shù)據(jù)集質(zhì)量。反之,全局模型參數(shù)又決定局部模型的更新。因此,為了使局部和全局模型更新在更少的迭代次數(shù)內(nèi)達(dá)到收斂目的,必須選擇具有高精度和可靠的本地訓(xùn)練數(shù)據(jù)的醫(yī)院才可以顯著提高聯(lián)邦學(xué)習(xí)的學(xué)習(xí)效率[17-18]。
雖然各醫(yī)療機(jī)構(gòu)內(nèi)部均擁有病人數(shù)據(jù)庫,且對(duì)于某種疾病擁有相同的“基因組”,但是他們?nèi)匀豢梢蕴峁┎幌嚓P(guān)的信息,且提供數(shù)據(jù)的醫(yī)院可能會(huì)因?yàn)殡娔X病毒感染、自私目的而分享虛假信息[8]。如果醫(yī)院nj傳輸給通信范圍內(nèi)的邊緣節(jié)點(diǎn)ei的數(shù)據(jù)模型質(zhì)量被檢測(cè)為有用的,那么就認(rèn)為此次互動(dòng)為積極交互。反之,為消極交互。此外,以往的研究也表明,在數(shù)據(jù)共享中提供的數(shù)據(jù)越全面、質(zhì)量越好的用戶聲譽(yù)越高[16],所以基于聲譽(yù)選擇可靠的病人數(shù)據(jù)源提供者來提高聯(lián)邦學(xué)習(xí)算法的精確度是一種值得考慮的方法。本文設(shè)計(jì)一種基于醫(yī)院與數(shù)據(jù)請(qǐng)求者之間的互動(dòng)及聯(lián)合雙重主觀邏輯模型來量化醫(yī)院聲譽(yù)的機(jī)制。請(qǐng)求者接收到邊緣節(jié)點(diǎn)反饋的醫(yī)院候選人資源信息后獲取到他們的最新聲譽(yù)值,然后從區(qū)塊鏈上下載醫(yī)院候選人的聲譽(yù)值并與之比對(duì)。若兩值相同,則數(shù)據(jù)請(qǐng)求者同意候選醫(yī)院為之服務(wù);若不同,則數(shù)據(jù)請(qǐng)求者將收集到的證據(jù)以形式發(fā)送給邊緣節(jié)點(diǎn),邊緣節(jié)點(diǎn)更新其對(duì)候選醫(yī)院的聲譽(yù)意見。其中,H(·)函數(shù)是對(duì)證據(jù)做哈希運(yùn)算,sig 是數(shù)據(jù)請(qǐng)求者的簽名,time 是交易的時(shí)間戳。邊緣節(jié)點(diǎn)將選擇聲譽(yù)值高的醫(yī)院為數(shù)據(jù)請(qǐng)求者服務(wù),在交互過程中再利用雙重主觀邏輯模型計(jì)算候選醫(yī)院的聲譽(yù),最終將醫(yī)院的綜合聲譽(yù)值和訓(xùn)練的模型參數(shù)上傳至聯(lián)盟鏈上[21]。為了激勵(lì)高質(zhì)量的數(shù)據(jù)貢獻(xiàn)者積極參與聯(lián)邦學(xué)習(xí),利用區(qū)塊鏈技術(shù)準(zhǔn)確無誤地為高質(zhì)量的數(shù)據(jù)貢獻(xiàn)者支付獎(jiǎng)勵(lì)。由于激勵(lì)機(jī)制不是本文重點(diǎn),因此本文不對(duì)此展開詳細(xì)闡述。
2.1.1 直接聲譽(yù)值
邊緣節(jié)點(diǎn)在經(jīng)過幾次與候選醫(yī)院的交互后,根據(jù)如圖2 所示的流程圖更新對(duì)醫(yī)院的聲譽(yù)意見。

圖2 聲譽(yù)意見更新評(píng)估流程Fig.2 Procedure of the reputation opinion update evaluation

其中:α、β各自代表邊緣節(jié)點(diǎn)ei與醫(yī)院nj是該次任務(wù)中交互的積極事件和消極事件的次數(shù);為成功傳輸數(shù)據(jù)模型參數(shù)的概率,即在無線網(wǎng)絡(luò)中的通信質(zhì)量決定了邊緣節(jié)點(diǎn)對(duì)候選醫(yī)院的不確定度。結(jié)合主觀邏輯模型的矢量意見,可以得到直接聲譽(yù)值如式(8)所示:

其中:μ代表不確定度對(duì)聲譽(yù)值影響的相對(duì)系數(shù)。在實(shí)際情況中,影響邊緣節(jié)點(diǎn)對(duì)候選醫(yī)院的聲譽(yù)意見的因素有很多,本文模型考慮了雙方交互時(shí)效和正負(fù)交互因素的影響。為減少自私節(jié)點(diǎn)或惡意節(jié)點(diǎn)的攻擊,增加消極交互事件對(duì)聲譽(yù)意見影響的權(quán)重,即令θ<φ。其中:θ是參與聯(lián)邦學(xué)習(xí)的醫(yī)院正確傳輸模型參數(shù)后,與邊緣節(jié)點(diǎn)完成積極交互的權(quán)重系數(shù);φ是消極交互的權(quán)重系數(shù)。聲譽(yù)意見公式可以更新為式(9):

隨著時(shí)間的推移,參與數(shù)據(jù)共享的醫(yī)院不可能總是高度可信的。由于無線網(wǎng)絡(luò)和不確定性因素的存在,因此在模型中考慮了交互時(shí)效性影響因子。
定義時(shí)效衰落函數(shù)t(γ)=FZ-z來描述時(shí)間對(duì)聲譽(yù)的影響,其中:F∈(0,1)是交互新鮮度的衰退參數(shù):z∈(0,Z]是決定交互新鮮度的時(shí)隙。根據(jù)時(shí)效衰落函數(shù)可以將一段時(shí)間γ內(nèi)的聲譽(yù)意見公式更新為式(10):

在該時(shí)間段內(nèi)的直接聲譽(yù)值如式(11)所示:

在該時(shí)間段γ內(nèi)某一時(shí)隙的直接聲譽(yù)值如式(12)所示:

2.1.2 間接聲譽(yù)值
間接意見是由其他數(shù)據(jù)請(qǐng)求者對(duì)數(shù)據(jù)提供者提出的。在現(xiàn)實(shí)的無線移動(dòng)網(wǎng)絡(luò)中,作為提供醫(yī)療數(shù)據(jù)的數(shù)據(jù)提供者不會(huì)只服務(wù)一個(gè)任務(wù)。所以,每一個(gè)任務(wù)均會(huì)有一個(gè)數(shù)據(jù)請(qǐng)求者對(duì)應(yīng)多個(gè)數(shù)據(jù)提供者。隨著時(shí)間的推移,當(dāng)一個(gè)數(shù)據(jù)提供者完成了與多個(gè)數(shù)據(jù)請(qǐng)求者之間的交互,且有新的任務(wù)發(fā)布時(shí),當(dāng)前數(shù)據(jù)請(qǐng)求者就可以從其他數(shù)據(jù)請(qǐng)求者那里獲取他們對(duì)數(shù)據(jù)提供者的聲譽(yù)意見。每個(gè)數(shù)據(jù)請(qǐng)求者對(duì)數(shù)據(jù)提供者的聲譽(yù)意見都將使用2.1.1 節(jié)中的聲譽(yù)矢量來表示。為了衡量其他請(qǐng)求者提供的間接聲譽(yù)值重要性,利用式(13)來計(jì)算其他數(shù)據(jù)請(qǐng)求者的間接聲譽(yù)意見的權(quán)重因子:

其他數(shù)據(jù)請(qǐng)求者ey∈Ε,Ε是其他數(shù)據(jù)請(qǐng)求者的集合,其他邊緣節(jié)點(diǎn)對(duì)候選醫(yī)院的不確定度的表達(dá)式如式(14)所示:

式(14)為其他邊緣節(jié)點(diǎn)ey對(duì)醫(yī)院nj的熟悉度,意味著其他邊緣節(jié)點(diǎn)ey與醫(yī)院nj的交互越頻繁,則越大。在間接意見處考慮熟悉度參數(shù),可使邊緣節(jié)點(diǎn)ei獲得對(duì)醫(yī)院nj可靠性更高的聲譽(yù)計(jì)算結(jié)果。其他邊緣節(jié)點(diǎn)ey對(duì)醫(yī)院nj的間接聲譽(yù)意見通過矢量)表示。根據(jù)主觀邏輯模型,形成的間接聲譽(yù)意見如式(15)所示:

2.1.3 綜合聲譽(yù)值
為及時(shí)查詢及核對(duì)參與數(shù)據(jù)共享過程中節(jié)點(diǎn)的聲譽(yù)值,令每一個(gè)邊緣節(jié)點(diǎn)均有一個(gè)本地聲譽(yù)存儲(chǔ)池,根據(jù)交互歷史存儲(chǔ)對(duì)各個(gè)醫(yī)院或其他邊緣節(jié)點(diǎn)的直接聲譽(yù)值。為避免其他數(shù)據(jù)請(qǐng)求者[16]作弊,結(jié)合間接意見和直接聲譽(yù)意見形成對(duì)數(shù)據(jù)提供者最終的聲譽(yù)意見。最終的聲譽(yù)意見表示如式(16)所示:

邊緣節(jié)點(diǎn)ey更新對(duì)醫(yī)院nj的最終聲譽(yù)綜合值的表達(dá)式如式(17)所示:

根據(jù)上述公式得到聲譽(yù)后,若聲譽(yù)綜合值大于預(yù)先定義的閾值,則邊緣節(jié)點(diǎn)ei可以選擇具有高精度和可靠數(shù)據(jù)的高聲譽(yù)候選醫(yī)院nj作為聯(lián)邦學(xué)習(xí)任務(wù)的模型培訓(xùn)工人。每一個(gè)邊緣節(jié)點(diǎn)都有義務(wù)在更新其對(duì)各醫(yī)院的聲譽(yù)值后,將綜合聲譽(yù)值上傳到區(qū)塊鏈上以作為其他數(shù)據(jù)請(qǐng)求者的參考意見。這種方案能夠挑選可靠性高且具有高精度數(shù)據(jù)的候選醫(yī)院。
結(jié)合第1.3 節(jié)和第2.1.1~2.1.3 節(jié)的分析,單純的聯(lián)邦學(xué)習(xí)算法與區(qū)塊鏈結(jié)合不能同時(shí)滿足數(shù)據(jù)高質(zhì)量且安全地共享,引入聲譽(yù)機(jī)制的區(qū)塊鏈管理方案可以為聯(lián)邦學(xué)習(xí)算法挑選高質(zhì)量的數(shù)據(jù)提供者。將該方案應(yīng)用于醫(yī)療數(shù)據(jù)共享場(chǎng)景中既能保護(hù)患者隱私又能保證數(shù)據(jù)的高效利用。
算法1基于聲譽(yù)機(jī)制的聯(lián)邦學(xué)習(xí)算法

在復(fù)雜和充滿開放性的無線網(wǎng)絡(luò)機(jī)構(gòu)中,作為參與聯(lián)邦學(xué)習(xí)訓(xùn)練的工作者可能會(huì)執(zhí)行惡意和不可靠的模型更新。本節(jié)主要從所提方案能夠抵御中毒攻擊、抵御共謀欺騙方面進(jìn)行安全性分析。
3.1.1 中毒攻擊的抵御
不可靠的模型更新可能是由惡意或篡改設(shè)備用欺騙性信息訓(xùn)練數(shù)據(jù)或不安全的通信渠道傳輸數(shù)據(jù)[12]這2 個(gè)故意原因?qū)е碌摹R虼耍瑦阂鈹?shù)據(jù)所有者可能會(huì)故意發(fā)起嚴(yán)重攻擊,例如中毒攻擊[21]。中毒攻擊是指惡意設(shè)備故意將有毒數(shù)據(jù)點(diǎn)注入訓(xùn)練數(shù)據(jù)集或修改訓(xùn)練數(shù)據(jù)集,以降低訓(xùn)練數(shù)據(jù)的準(zhǔn)確性,從而增加錯(cuò)誤分類的概率并操縱他們?cè)谑剑?)中的本地模型更新結(jié)果。在這種情況下,惡意設(shè)備若試圖使用偽造的樣本信息(如身份證),通過在公共通信頻道上竊聽其他參與者訓(xùn)練的有用信息,則必須獲得足夠準(zhǔn)確和常見的IDs。在傳統(tǒng)的FL 中,通常采用同態(tài)加密[13]技術(shù)對(duì)本地模型參數(shù)和梯度更新進(jìn)行加密,竊聽者無法獲取到任何信息。本文提出的聲譽(yù)篩選數(shù)據(jù)源的方案為了減少惡意節(jié)點(diǎn)的攻擊,增加了消極交互事件對(duì)聲譽(yù)意見影響的權(quán)重φ,即使在前幾次迭代交互的過程中惡意竊聽者偽裝成功,但經(jīng)過多次迭代之后,他們的聲譽(yù)值變低,抵押在區(qū)塊鏈上的資產(chǎn)被沒收,不當(dāng)?shù)男袨楸挥谰糜涗浽阪溕希瑫r(shí)被取消學(xué)習(xí)訓(xùn)練的過程,這能夠在一定程度上抵御中毒攻擊。
3.1.2 共謀欺騙的抵御
本文方案中的聲譽(yù)模型可以用于任何節(jié)點(diǎn)相互協(xié)作的服務(wù)中,每個(gè)任務(wù)發(fā)布者隨機(jī)選擇一個(gè)鄰居。網(wǎng)絡(luò)中有2 種可能的節(jié)點(diǎn)類型:合作醫(yī)院節(jié)點(diǎn)和自私醫(yī)院節(jié)點(diǎn)。即使網(wǎng)絡(luò)中有新的FL 任務(wù)發(fā)布,惡意的授權(quán)醫(yī)院nj試圖與其他任務(wù)發(fā)布者串通,他們也無法參與此次的任務(wù)。附近的邊緣節(jié)點(diǎn)ei從本地存儲(chǔ)中檢索其直接聲譽(yù)意見同時(shí)ei向區(qū)塊鏈上請(qǐng)求其他任務(wù)發(fā)布者關(guān)于醫(yī)院nj的間接聲譽(yù)意見,并等待時(shí)間間隔t(t=0.5 s)。在該時(shí)間間隔之后,節(jié)點(diǎn)ei開始進(jìn)行聲譽(yù)計(jì)算階段,以計(jì)算綜合聲譽(yù)值如果不滿足此次任務(wù)要求的醫(yī)院nj想要參與此次任務(wù)就必須與之前服務(wù)過的任務(wù)發(fā)布者進(jìn)行串通并修改區(qū)塊鏈上的聲譽(yù)意見。但由于區(qū)塊鏈獨(dú)特的數(shù)據(jù)結(jié)構(gòu)特點(diǎn),前一個(gè)區(qū)塊的hash 值包含在后一個(gè)區(qū)塊中,如果其中一個(gè)區(qū)塊被修改,則之后的所有區(qū)塊都將被重新計(jì)算,所以單個(gè)節(jié)點(diǎn)對(duì)數(shù)據(jù)庫的修改是無效的。因此,之前的任務(wù)發(fā)布者想要篡改已有的數(shù)據(jù)幾乎不可能,共謀欺騙也無法實(shí)現(xiàn)。同時(shí),只有符合要求的數(shù)據(jù)模型參數(shù)和梯度更新被上傳到聯(lián)盟鏈上,而真實(shí)數(shù)據(jù)由每個(gè)數(shù)據(jù)提供者存儲(chǔ)在本地。數(shù)據(jù)所有者可以控制他們自己的數(shù)據(jù)權(quán)限。此外,聯(lián)盟鏈還使用了一系列的橢圓曲線數(shù)字簽名和非對(duì)稱等加密算法來保證數(shù)據(jù)的安全性。
對(duì)比方案是文獻(xiàn)[19]所提的典型聯(lián)邦學(xué)習(xí)方案、文獻(xiàn)[20]所提的現(xiàn)有性能較好的方案。文獻(xiàn)[19]中提出的Fedavg 算法利用經(jīng)典的加權(quán)聚合方法隨機(jī)選擇用戶參與聯(lián)邦學(xué)習(xí)。文獻(xiàn)[20]中所提性能較好的FedProx算法能夠妥善處理數(shù)據(jù)異構(gòu)問題。在仿真實(shí)驗(yàn)中,利用著名的數(shù)字分類數(shù)據(jù)集MNIST 和廣泛使用的軟件環(huán)境TensorFlow1.10.0 執(zhí)行數(shù)字分類任務(wù)來評(píng)估所提出的基于聲譽(yù)機(jī)制的聯(lián)邦學(xué)習(xí)方案,仿真參數(shù)的設(shè)置如表1 所示。在MNIST 數(shù)據(jù)集中有60 000 個(gè)訓(xùn)練示例和10 000 個(gè)測(cè)試示例。

表1 聯(lián)邦學(xué)習(xí)的仿真參數(shù)Tabel 1 Simulation parameters of federated learning
圖3、圖4 所示為兩種聯(lián)邦學(xué)習(xí)方案學(xué)習(xí)精度的對(duì)比,在加入不同聲譽(yù)值的情況下比較兩種方案的學(xué)習(xí)精度和損失值。

圖3 不同經(jīng)典方案的訓(xùn)練精度對(duì)比Fig.3 Comparison of the training accuracy of different classic schemes

圖4 不同經(jīng)典方案的訓(xùn)練損失值對(duì)比Fig.4 Comparison of the training loss of different classic schemes
為模擬現(xiàn)實(shí)網(wǎng)絡(luò)中的設(shè)備異質(zhì)性和數(shù)據(jù)異質(zhì)性,在實(shí)驗(yàn)中將數(shù)據(jù)分布在1 000 個(gè)設(shè)備中,每個(gè)設(shè)備的樣本數(shù)量遵循冪律,并且每個(gè)本地設(shè)備上的數(shù)據(jù)隨機(jī)分為80%的訓(xùn)練集和20%的測(cè)試集。首先,每臺(tái)設(shè)備被設(shè)定不同的聲譽(yù)值,聲譽(yù)值的取值范圍為[0,1]。然后,在系統(tǒng)中通過設(shè)置不同的聲譽(yù)閾值reputation_value_0.2/0.5/0.8 來模擬動(dòng)態(tài)篩選設(shè)備參與訓(xùn)練的過程。在兩種算法中均將Epoch 固定為20,每個(gè)Epoch 有100 個(gè)Rounds,即模型訓(xùn)練過程中醫(yī)院使用batch_size為10的隨機(jī)抽樣樣本連續(xù)進(jìn)行100 次迭代本地模型來研究數(shù)據(jù)源聲譽(yù)值差異對(duì)模型收斂的影響。如圖3 所示,不加入聲譽(yù)值的時(shí)候,兩種經(jīng)典方案的訓(xùn)練精度相差不大,但當(dāng)引入了聲譽(yù)值后,隨著聲譽(yù)閾值越高,對(duì)應(yīng)的Fedavg 和FedProx 兩種典型方案的損失值不斷降低,學(xué)習(xí)精度不斷提高。特別地,reputation_value_0.8 的FedProx 聲譽(yù)值接近于1,可見其挑選出的醫(yī)院幾近完全可信且數(shù)據(jù)質(zhì)量好,訓(xùn)練出的模型精度接近于1。引入聲譽(yù)值之后,兩種方案中參與FL 訓(xùn)練的設(shè)備更加靈活,不滿足要求的設(shè)備容易掉出訓(xùn)練網(wǎng)絡(luò),因此系統(tǒng)異質(zhì)性和更大的數(shù)據(jù)異質(zhì)性(非同態(tài)分布)造成測(cè)試訓(xùn)練精度和損失值收斂較慢,同時(shí)收斂過程中震蕩幅度較大,尤其是經(jīng)典的Fedavg 方案。對(duì)于具有聲譽(yù)管理的方案,當(dāng)聲譽(yù)值為0.2~0.5 時(shí),本文的方案使聯(lián)邦學(xué)習(xí)算法的性能提升明顯。這是因?yàn)樵诼曌u(yù)方案的幫助下,醫(yī)院的聲譽(yù)意見被及時(shí)更新,相關(guān)機(jī)構(gòu)可以選擇具有高精度數(shù)據(jù)的醫(yī)院。因此,使用本文方案實(shí)現(xiàn)了高精度的聲譽(yù)計(jì)算,保證了不同醫(yī)療機(jī)構(gòu)之間的高質(zhì)量數(shù)據(jù)共享。
圖5 顯示了基于不同聲譽(yù)檢測(cè)機(jī)制方案的醫(yī)院聲譽(yù)值的變化,分別為本文改進(jìn)的聲譽(yù)方案、基于提供服務(wù)節(jié)點(diǎn)不確定性的典型聲譽(yù)方案2[22]以及基于任務(wù)發(fā)布者間相似性的聲譽(yù)方案1[23]之間的對(duì)比。為了表征不同聲譽(yù)方案識(shí)別不可靠醫(yī)院的能力,假設(shè)前6 次交互任務(wù)中,不可靠醫(yī)院假裝表現(xiàn)良好以獲取高的聲譽(yù)值,此時(shí)所有的醫(yī)院聲譽(yù)平均值均急速增長(zhǎng),無法分辨好壞。設(shè)前6 次交互任務(wù)中,不可靠醫(yī)院假裝表現(xiàn)良好以獲取高聲譽(yù)值,此時(shí)所有的醫(yī)院聲譽(yù)平均值均急速增長(zhǎng),無法分辨好壞。之后,不可靠醫(yī)院以0.8 的概率做出不當(dāng)行為,整體聲譽(yù)平均值開始下降,本文方案下降得更劇烈,幅度更大。而且,當(dāng)不可靠醫(yī)院再次表現(xiàn)良好時(shí),整體聲譽(yù)平均值也會(huì)增加。本文方案增加的幅度要比其他方案都要小,提供了更準(zhǔn)確的衡量標(biāo)準(zhǔn)。值得注意的是,在6 次交互后,本文方案可以明確地展示在參與共享的醫(yī)院中一直存在不可靠醫(yī)院。然而,方案1、2 和無聲譽(yù)方案的整體聲譽(yù)平均值在0.5 以上,均無法完全檢測(cè)出不可靠的醫(yī)院。原因是不可靠的醫(yī)院在一些交互任務(wù)中可以通過良好的行為很好地偽裝自己,能夠在短時(shí)間內(nèi)不被發(fā)現(xiàn)。

圖5 基于不同聲譽(yù)檢測(cè)方案的聲譽(yù)值Fig.5 Reputation value based on different reputation detection schemes
圖6 顯示了在不同方案下當(dāng)自私節(jié)點(diǎn)比例變化時(shí)孤立自私節(jié)點(diǎn)收斂時(shí)間的變化。由圖6 可知,當(dāng)自私節(jié)點(diǎn)的比例低于50%時(shí),收斂時(shí)間隨自私節(jié)點(diǎn)比例的增加而增加,這是因?yàn)殡S著自私節(jié)點(diǎn)的增加,系統(tǒng)對(duì)節(jié)點(diǎn)的可信任信息越少,誠實(shí)節(jié)點(diǎn)需要花費(fèi)更多的時(shí)間收集證據(jù)來發(fā)現(xiàn)自私節(jié)點(diǎn)。也可以看出本文方案與對(duì)比方案相比節(jié)省了約6%的交互時(shí)間,這是因?yàn)楸疚姆桨妇C合考慮了經(jīng)驗(yàn)、熟悉度、時(shí)效性等多個(gè)因素,可以通過更快收集節(jié)點(diǎn)的可信信息來判斷節(jié)點(diǎn)的行為,因此本文方案性能更好。

圖6 基于不同聲譽(yù)方案自私節(jié)點(diǎn)比例變化發(fā)現(xiàn)自私節(jié)點(diǎn)的收斂時(shí)間Fig.6 The convergence time of discovering selfish nodes when the proportion of selfish nodes changes based on different reputation schemes
區(qū)塊鏈在本文方案中的重要作用是存儲(chǔ)醫(yī)院聲譽(yù)值,由于聲譽(yù)值是動(dòng)態(tài)變化的,入鏈存儲(chǔ)過程并不簡(jiǎn)單。為了將聲譽(yù)值和參數(shù)上傳至鏈上,簡(jiǎn)化入鏈存儲(chǔ)過程,這些計(jì)算均在鏈下進(jìn)行,所以上傳至鏈上的是由參數(shù)和聲譽(yù)值打包好的交易,這符合區(qū)塊鏈的交易行為和數(shù)據(jù)結(jié)構(gòu)特性。該實(shí)驗(yàn)部分通過在國產(chǎn)區(qū)塊鏈FISCΟ BCΟS 上建立可靠的交易服務(wù),并采用PBFT 作為運(yùn)行在4 名預(yù)選礦工上的共識(shí)算法。同時(shí),使用SHA-256 作為安全哈希算法,聲譽(yù)意見的數(shù)據(jù)大小在100~300 KB 之間,信譽(yù)意見的塊大小限制為1 MB。交易吞吐量是衡量分布式系統(tǒng)的一個(gè)重要的性能指標(biāo),TPS=trans_len/ΔT,系統(tǒng)的吞吐量通常由區(qū)塊中包含的交易數(shù)量(trans_len)和生成一個(gè)區(qū)塊的時(shí)間(ΔT)決定。使用它來測(cè)試在較短的間隔時(shí)間內(nèi)發(fā)送大量交易區(qū)塊鏈能否快速處理網(wǎng)絡(luò)中交易的動(dòng)態(tài)入鏈存儲(chǔ)過程,實(shí)驗(yàn)結(jié)果取20 次實(shí)驗(yàn)的均值。
圖7為模擬交易的動(dòng)態(tài)存儲(chǔ)過程,每間隔時(shí)間t=5 s時(shí),分別向系統(tǒng)中發(fā)送500、1 000、2 000、3 000、4 000筆交易。當(dāng)交易數(shù)量較少時(shí),系統(tǒng)達(dá)到的TPS接近于系統(tǒng)中存在的交易。例如,當(dāng)交易為1 000筆時(shí),系統(tǒng)的平均TPS能達(dá)到995.29。但隨著交易數(shù)量的明顯增加,系統(tǒng)的TPS增長(zhǎng)幅度卻在降低,當(dāng)交易最大值為4 000筆時(shí),系統(tǒng)的平均TPS只有3 079.35。這是因?yàn)橐粋€(gè)完整的入鏈存儲(chǔ)的過程包括4個(gè)階段:發(fā)送交易、預(yù)備塊生成、塊的共識(shí)和正式的塊生成。當(dāng)系統(tǒng)中的交易過多時(shí),在預(yù)備塊生成和共識(shí)階段保持節(jié)點(diǎn)間的一致性所需的時(shí)間就越長(zhǎng),同時(shí),節(jié)點(diǎn)與主節(jié)點(diǎn)的通信消耗就越高,共識(shí)過程所花費(fèi)的時(shí)間就越多,系統(tǒng)吞吐量就越低。特別地,由于網(wǎng)絡(luò)抖動(dòng)和CPU性能的影響,即使在時(shí)間相同的情況下發(fā)送不同筆交易到系統(tǒng)中,系統(tǒng)中達(dá)到的TPS也不穩(wěn)定。但從系統(tǒng)平均TPS可以看出,在區(qū)塊鏈網(wǎng)絡(luò)中同時(shí)并發(fā)大量將聲譽(yù)值和模型參數(shù)打包成的交易入鏈存儲(chǔ)過程是可以實(shí)現(xiàn)的,并且能滿足一定的性能需求。

圖7 不同交易數(shù)量達(dá)到的平均TPS 對(duì)比Fig.7 Comparison of average TPS of different transaction quantities
本文針對(duì)醫(yī)療數(shù)據(jù)共享場(chǎng)景中可靠數(shù)據(jù)源的選擇問題,提出一種以聲譽(yù)為基礎(chǔ)的方案。使用聯(lián)邦學(xué)習(xí)對(duì)數(shù)據(jù)建模,引入?yún)^(qū)塊鏈技術(shù)實(shí)現(xiàn)對(duì)聲譽(yù)的管理,利用雙重主觀邏輯模型改進(jìn)聲譽(yù)方案,并對(duì)醫(yī)院聲譽(yù)進(jìn)行較全面計(jì)算。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的聲譽(yù)方案可以吸引更多聲譽(yù)高的醫(yī)院,提供高質(zhì)量的本地訓(xùn)練數(shù)據(jù)及提高聯(lián)邦學(xué)習(xí)算法的效率。下一步將把本文方案運(yùn)用于其他場(chǎng)景的數(shù)據(jù)共享中,并針對(duì)聯(lián)盟鏈場(chǎng)景設(shè)計(jì)相應(yīng)的區(qū)塊鏈共識(shí)算法和激勵(lì)機(jī)制以提高共享效率,加強(qiáng)區(qū)塊鏈在數(shù)據(jù)共享中的作用。