本發(fā)明涉及區(qū)塊鏈、聯(lián)邦學(xué)習(xí)和信用風(fēng)險評估,尤其涉及一種房屋交易中基于區(qū)塊鏈與聯(lián)邦學(xué)習(xí)的企業(yè)信用評估方法。
背景技術(shù):
1、近年來,房屋交易領(lǐng)域的失信問題日益嚴(yán)峻,企業(yè)失信違約行為頻發(fā)。對此,企業(yè)信用評估有重要的研究意義,可以輔助房屋交易方做出交易決策、減少糾紛,幫助銀行有效評估企業(yè)信用風(fēng)險、降低貸款風(fēng)險。而當(dāng)前的企業(yè)信用評估模式主要由評估機構(gòu)進行集中式的建模,依據(jù)收集的相關(guān)信息、數(shù)據(jù)對企業(yè)進行信用評估分析。這種評估方式有以下不足:(1)數(shù)據(jù)質(zhì)量差。由申請者提供的企業(yè)信用數(shù)據(jù)有較大的片面性,且數(shù)據(jù)真實性有待校驗。(2)有隱私泄露的風(fēng)險。為了保證評估的準(zhǔn)確度,要求用于評估的企業(yè)數(shù)據(jù)越全面越好,這就難免侵犯到部分?jǐn)?shù)據(jù)的隱私性。
2、對以上問題,一定程度上可以通過聯(lián)邦學(xué)習(xí)解決。各企業(yè)信用數(shù)據(jù)擁有方作為聯(lián)邦學(xué)習(xí)的客戶端以分布式方式利用信用數(shù)據(jù)訓(xùn)練并貢獻局部模型,最終通過中央服務(wù)器聚合為全局模型??蛻舳酥恍枰獙⒂?xùn)練參數(shù)共享給服務(wù)器,而不需要共享整個原始數(shù)據(jù)集,達到數(shù)據(jù)需求者對數(shù)據(jù)的可用不可見,從而避免了隱私數(shù)據(jù)泄露的風(fēng)險。然而,傳統(tǒng)的聯(lián)邦學(xué)習(xí)容易惡意客戶端和中央服務(wù)器的攻擊。
3、基于區(qū)塊鏈的聯(lián)邦學(xué)習(xí)成為了當(dāng)下可信共享的新范式,使用區(qū)塊鏈取代中央服務(wù)器來消除惡意服務(wù)器的影響,將訓(xùn)練中的模型和數(shù)據(jù)記錄在鏈上,利用其鏈?zhǔn)浇Y(jié)構(gòu)及共識機制保證了數(shù)據(jù)的不可篡改、可追溯,引入驗證機制抵抗惡意客戶端攻擊帶來的威脅。但目前區(qū)塊鏈與聯(lián)邦學(xué)習(xí)的結(jié)合在房屋交易領(lǐng)域中企業(yè)信用評估卻少有涉及。此外,目前已有的基于區(qū)塊鏈的聯(lián)邦學(xué)習(xí)方法實現(xiàn)了去中心化并提高了安全性,但仍然存在三個主要挑戰(zhàn):
4、(1)模型驗證缺乏可信引導(dǎo)。這些基于區(qū)塊鏈的聯(lián)邦學(xué)習(xí)惡意客戶端的解決方法都利用基準(zhǔn)模型做對比來識別惡意模型,然而,基準(zhǔn)模型不一定是完全可信的,缺乏干凈模型更新的可信源。
5、(2)共識的效率?,F(xiàn)有方法通常需要對模型進行多次交叉驗證,以增強全局模型的魯棒性。這些交叉驗證使用大量的網(wǎng)絡(luò)帶寬在節(jié)點之間達成共識,考慮到聯(lián)邦學(xué)習(xí)中大量的學(xué)習(xí)節(jié)點,廣播共識非常耗時,增加了系統(tǒng)的通信負(fù)擔(dān)和區(qū)塊生成延遲。迫切需要更有效的共識機制,在保證模型效用的同時提高共識效率。
6、(3)數(shù)據(jù)異質(zhì)性導(dǎo)致全局模型性能降低。在實際的信用評估場景中,參與模型訓(xùn)練的各客戶端所用的數(shù)據(jù)規(guī)模是不一樣的,而現(xiàn)有研究中所采用的聚合算法均是按照數(shù)據(jù)量來分配模型聚合權(quán)重,忽略了數(shù)據(jù)質(zhì)量的差異,數(shù)據(jù)規(guī)模小的若數(shù)據(jù)質(zhì)量好,那么對于全局模型的貢獻也會很大。隨著迭代進行,本地更新可能因為客戶端數(shù)據(jù)異質(zhì)性而發(fā)散過大,全局優(yōu)化與本地優(yōu)化目標(biāo)之間的差異不斷加劇,使得聚合的模型偏離全局最優(yōu),從而降低模型性能,需要更多通信輪次才能達到收斂。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的在于針對背景技術(shù)中所存在的挑戰(zhàn),提供了一種房屋交易中基于區(qū)塊鏈與聯(lián)邦學(xué)習(xí)的企業(yè)信用評估方法,以去中心化的方式構(gòu)建聯(lián)邦學(xué)習(xí)。利用信用評估任務(wù)發(fā)布者所收集的純凈數(shù)據(jù)集作為可信引導(dǎo),評估客戶端的誠實度,降低惡意客戶端的影響;提出了一種基于委員會的改進pbft共識機制,共識過程僅在委員會中進行,減少網(wǎng)絡(luò)規(guī)模帶來的影響,優(yōu)化了pbft協(xié)議流程,提高了共識效率。此外,委員會節(jié)點利用本地數(shù)據(jù)集對客戶端更新構(gòu)成交叉驗證,評估更新模型的性能;設(shè)計了一種自適應(yīng)權(quán)重聚合策略,基于模型的誠實度,準(zhǔn)確率,數(shù)據(jù)規(guī)模自適應(yīng)更新聚合權(quán)重,并依據(jù)權(quán)重進行加權(quán)聚合,解決了數(shù)據(jù)異質(zhì)性帶來的問題,進一步提高模型安全性的同時,保證模型的性能。
2、本發(fā)明提供的一種房屋交易中基于區(qū)塊鏈與聯(lián)邦學(xué)習(xí)的企業(yè)信用評估方法,所述方法包括以下步驟:
3、(1)任務(wù)初始化。任務(wù)發(fā)布方發(fā)布一個信用評估學(xué)習(xí)任務(wù),任務(wù)中需要包含任務(wù)發(fā)布方的身份、初始全局模型、優(yōu)化的目標(biāo)性能指標(biāo)、預(yù)期的處理時間、迭代輪數(shù)的預(yù)設(shè)數(shù)、總獎勵金額、數(shù)據(jù)和資源需求。將相關(guān)信息打包成創(chuàng)世區(qū)塊發(fā)布到區(qū)塊鏈上;
4、(2)注冊授權(quán)。各客戶端在執(zhí)行任務(wù)之前,需要在區(qū)塊鏈上進行注冊并進行身份驗證,只有被成功授權(quán)的節(jié)點才能加入到訓(xùn)練中。此外,每個節(jié)點生成一組非對稱密鑰(sk,pk),并廣播給網(wǎng)絡(luò)中的其他節(jié)點。公鑰pk用于識別節(jié)點并尋址,私鑰sk用于對網(wǎng)絡(luò)中的事務(wù)進行數(shù)字簽名和參與委員會選舉;
5、(3)本地訓(xùn)練。各客戶端從區(qū)塊鏈中獲取初始全局模型或前一輪的全局模型將其更新到本地模型中,利用本地企業(yè)信用數(shù)據(jù)di進行本地訓(xùn)練,計算公式為:
6、
7、其中,是第i個客戶端訓(xùn)練好的本地模型,是根據(jù)和di計算的模型梯度,η則是學(xué)習(xí)率,控制梯度對模型的影響;
8、完成后將本地模型更新梯度用私鑰簽名后發(fā)送給任務(wù)發(fā)布方;
9、(4)惡意客戶端識別。在客戶端進行本地訓(xùn)練時,任務(wù)發(fā)布方利用其所收集的純凈根數(shù)據(jù)集也維護一個基準(zhǔn)模型,在接收到客戶端的本地更新后,計算本地更新模型梯度與基準(zhǔn)模型梯度之間的余弦相似度,評估客戶端的誠實度,篩除惡意客戶端,剩余的客戶端構(gòu)成誠實客戶端集合;
10、(5)委員會成員選舉。利用委員會選舉機制從誠實客戶端集合中選擇少量誠實客戶端作為委員會節(jié)點及領(lǐng)導(dǎo)節(jié)點,其余客戶端構(gòu)成聚合客戶端集合用于本輪的全局模型聚合;
11、(6)模型驗證。聚合客戶端集合中各客戶端將訓(xùn)練的本地模型參數(shù)簽名后發(fā)送給委員會節(jié)點,委員會節(jié)點使用其公鑰驗證數(shù)字簽名后利用本地數(shù)據(jù)集進行驗證其準(zhǔn)確率,將驗證結(jié)果簽名后發(fā)送到領(lǐng)導(dǎo)節(jié)點;
12、(7)聚合全局模型。領(lǐng)導(dǎo)節(jié)點根據(jù)驗證結(jié)果利用自適應(yīng)權(quán)重聚合策略將聚合客戶端集合中各局部模型聚合成全局模型并生成區(qū)塊;
13、(8)共識上鏈。經(jīng)過基于委員會的改進pbft共識協(xié)議達成共識后將生成的區(qū)塊上傳至區(qū)塊鏈上;
14、(9)判斷是否達到任務(wù)要求中模型預(yù)設(shè)收斂條件,如果沒有則進行下一輪訓(xùn)練,如果到達則終止訓(xùn)練;
15、所述的方法中的惡意客戶端是系統(tǒng)中存在的企圖破壞聯(lián)邦學(xué)習(xí)過程的聯(lián)邦訓(xùn)練節(jié)點,它們的目的是阻止全局模型收斂和降低全局模型準(zhǔn)確率,惡意客戶端所上傳的偽造過的本地模型叫做惡意模型。惡意客戶端是“半全知”的:惡意客戶端之間能彼此串通,合作偽造本地模型,可以通過訪問區(qū)塊鏈獲得額外的背景知識,包括歷史全局模型更新、節(jié)點歷史模型更新,但是惡意客戶端無法得知誠實客戶端的本地數(shù)據(jù)集等信息?;诖耍梢园l(fā)動如下攻擊,包括標(biāo)簽翻轉(zhuǎn)攻擊、高斯噪聲攻擊、后門攻擊以及注入惡意數(shù)據(jù)。
16、所述的方法中涉及的角色包括:
17、任務(wù)發(fā)布方:企業(yè)信用評估任務(wù)發(fā)起者,純凈根數(shù)據(jù)集的擁有方,利用根數(shù)據(jù)集進行惡意節(jié)點識別,判斷全局模型是否符合任務(wù)要求;
18、客戶端:作為信用評估任務(wù)的企業(yè)數(shù)據(jù)所有者,利用所有數(shù)據(jù)參與模型訓(xùn)練。一般是擁有房屋交易領(lǐng)域企業(yè)相關(guān)信用數(shù)據(jù)的金融機構(gòu);
19、委員會節(jié)點:從誠實節(jié)點中選出的少量節(jié)點,負(fù)責(zé)利用本地測試數(shù)據(jù)驗證客戶端本地更新的性能,也是共識節(jié)點;
20、領(lǐng)導(dǎo)節(jié)點:根據(jù)驗證結(jié)果對梯度進行聚合,更新全局模型并生成區(qū)塊。同時也是共識主節(jié)點;
21、區(qū)塊鏈:利用其鏈?zhǔn)浇Y(jié)構(gòu)存儲各數(shù)據(jù)擁有者的信用數(shù)據(jù)和信用評估過程中的相關(guān)信息,保證其真實透明、可追溯;
22、所述的惡意客戶端識別步驟具體包括:
23、(1)在信用評估模型訓(xùn)練任務(wù)發(fā)布前,任務(wù)發(fā)布方根據(jù)訓(xùn)練任務(wù)的數(shù)據(jù)要求收集一個干凈的(沒有數(shù)據(jù)中毒)小的訓(xùn)練數(shù)據(jù)集d0(稱為根數(shù)據(jù)集);
24、(2)在訓(xùn)練開始后,任務(wù)發(fā)布方利用根數(shù)據(jù)集與客戶端一樣下載全局模型進行模型更新得到本輪次的基準(zhǔn)模型
25、(3)任務(wù)發(fā)布方接收到各客戶端的本地更新梯度后,計算其與基準(zhǔn)模型更新梯度之間的余弦相似度si,判斷本地模型更新的方向與基準(zhǔn)模型更新的方向相似程度,計算公式如下:
26、
27、基準(zhǔn)模型的梯度更新是由干凈數(shù)據(jù)集得到的,其更新方向?qū)τ谌帜P蛠碚f是可信的,而惡意節(jié)點為影響全局模型的性能則會發(fā)送惡意梯度將全局模型的更新重定位到錯誤的方向。因此,根據(jù)與基準(zhǔn)模型更新的方向相似性作為本地模型更新的誠實分?jǐn)?shù)(hs),誠實分?jǐn)?shù)由relu裁剪余弦相似度得到,計算公式如下:
28、hsi=relu(si)
29、
30、如果客戶端i的誠實分?jǐn)?shù)hsi為0,則證明該客戶端上傳的梯度是惡意的,客戶端i是惡意客戶端,將對聚合做出負(fù)貢獻。因此,在本次迭代時,選擇放棄客戶端i的梯度,并將惡意客戶端記錄下來,當(dāng)某客戶端的惡意記錄超過k次,則將其從網(wǎng)絡(luò)中剔除。其余誠實分?jǐn)?shù)大于零的是誠實客戶端,將其加入到誠實客戶端集合中;
31、(4)任務(wù)發(fā)布方在完成這些工作后,將結(jié)果進行廣播并上傳至區(qū)塊鏈上;
32、所述的委員會選舉機制步驟具體包括:
33、(1)每個客戶端i在計算本地更新的同時,基于可驗證隨機函數(shù),利用使用區(qū)塊鏈上最新區(qū)塊的哈希值作為輸入的隨機種子α,節(jié)點的私鑰ski作為輸入的私鑰,輸出哈希字符串h和相應(yīng)的證明π。計算完成后將消息(i,h,π)廣播給其他節(jié)點。計算公式如下:
34、
35、(2)網(wǎng)絡(luò)中其他節(jié)點接收到消息(i,h,π)后,利用vrf驗證函數(shù),使用該節(jié)點的公鑰pki和證明π作為輸入,可以驗證哈希輸出h確實是由公鑰pki的節(jié)點生成的,因此輸出不能被攻擊者偽造。當(dāng)輸入的隨機種子是一致的,則輸出結(jié)果僅由節(jié)點的私鑰ski決定,因此哈希輸出β對每個節(jié)點都是唯一的。驗證公式如下:
36、
37、(3)將經(jīng)惡意節(jié)點識別后劃分的誠實客戶端集合中的客戶端按照h大小進行排序,假設(shè)委員會成員數(shù)量為m+1,取前m+1個客戶端作為委員會成員。其余誠實客戶端則構(gòu)成聚合客戶端集合參與本輪的全局模型聚合;
38、(4)領(lǐng)導(dǎo)節(jié)點選舉:1)首輪選舉:選擇h最大的作為領(lǐng)導(dǎo)節(jié)點。2)非首輪選舉:取委員會成員中(上一輪中各委員會節(jié)點驗證客戶端i的模型得到的平均準(zhǔn)確率)最大的作為領(lǐng)導(dǎo)節(jié)點。剩下m個作為委員會節(jié)點;
39、所述的自適應(yīng)權(quán)重聚合策略,考慮了實際信用評估模型訓(xùn)練時出現(xiàn)各客戶端所擁有的信用存在數(shù)據(jù)異質(zhì)性的情況,將各客戶端的模型準(zhǔn)確度,誠實度、數(shù)據(jù)規(guī)模作為分配其參與模型聚合的權(quán)重的基礎(chǔ),使得權(quán)重依實際情況動態(tài)調(diào)節(jié),從而減少偏差,最終提高全局模型質(zhì)量,加快全局收斂。
40、(1)數(shù)據(jù)規(guī)模占比。若第t輪聚合客戶端集合中有k個客戶端,設(shè)ni為第i個聚合客戶端擁有的數(shù)據(jù)量,代表各客戶端擁有的數(shù)據(jù)總量。則第i個聚合客戶端的數(shù)據(jù)規(guī)模占比計算如下:
41、
42、該指標(biāo)與fedavg算法中權(quán)重定義一致,然而在實際的聯(lián)邦信用評估場景中,僅考慮數(shù)據(jù)規(guī)模作為權(quán)重?zé)o法解決惡意模型和數(shù)據(jù)異質(zhì)導(dǎo)致的低質(zhì)量模型所帶來的全局模型性能降低問題。因此,針對以上問題,引入兩個指標(biāo)來量化客戶端的可信度和模型質(zhì)量,賦予可信度和模型質(zhì)量高的模型較大的聚合權(quán)重占比是一個有效提高全局模型性能的方法。為此,將惡意客戶端識別中任務(wù)發(fā)布方對客戶端更新梯度評估的誠實分?jǐn)?shù)作為量化客戶端可信度的指標(biāo),選舉委員會節(jié)點利用其本地數(shù)據(jù)集對各客戶端模型參數(shù)進行驗證,將得到的準(zhǔn)確度作為衡量模型質(zhì)量的指標(biāo)。
43、(2)誠實度占比。hsi為第i個聚合客戶端的本地更新梯度得到的誠實分?jǐn)?shù),代表各聚合客戶端誠實度的總和。則第i個聚合客戶端的誠實度占比計算如下:
44、
45、(3)準(zhǔn)確度占比。為了避免客戶端提供錯誤的模型準(zhǔn)確度評估結(jié)果,需要選舉出誠實的委員會節(jié)點進行參數(shù)驗證。假設(shè)選舉出了m個委員會節(jié)點,代表第t輪第i個聚合客戶端的模型更新經(jīng)第j個委員會節(jié)點驗證后的模型準(zhǔn)確度,其中i∈(1,2···k),j∈(1,2···m)。第i個聚合客戶端的準(zhǔn)確度占比計算如下:
46、
47、
48、表示第i個聚合客戶端經(jīng)各委員會節(jié)點測試的模型準(zhǔn)確度的平均值。
49、(4)聚合權(quán)重。領(lǐng)導(dǎo)節(jié)點根據(jù)以上三個占比指標(biāo)計算各聚合客戶端的聚合權(quán)重,則第i個聚合客戶端在第t輪的聚合權(quán)重為:
50、
51、s.t.λ1+λ2+λ3=1
52、λ1,λ2,λ3為超參數(shù),用于調(diào)節(jié)數(shù)據(jù)規(guī)模、誠實度和模型準(zhǔn)確度影響因子大小,來反映三個因素的重要程度??梢罁?jù)具體的學(xué)習(xí)任務(wù)需求而改變該超參數(shù)。
53、由于每輪迭代的本地模型不同,選舉的委員會節(jié)點不同,聚合客戶端集合和驗證數(shù)據(jù)集也隨之不同,故每個聚合客戶端的模型在每輪的三個指標(biāo)占比是不一樣的,每輪模型聚合時所占的權(quán)重也是不同的,這種權(quán)重的動態(tài)變化真實的反映了各聚合客戶端在每一輪的更新中對全局模型的貢獻程度。
54、(5)動態(tài)聚合。第t輪迭代更新聚合得到的全局模型參數(shù)計算如下:
55、
56、所述的基于委員會的改進pbft共識協(xié)議,共識的達成僅在委員會之間,在進行共識階段,領(lǐng)導(dǎo)節(jié)點作為主節(jié)點,委員會節(jié)點作為從節(jié)點,執(zhí)行改進后的pbft共識協(xié)議將區(qū)塊上鏈。具體來說,改進后pbft共識協(xié)議流程將原本三階段通信劃分成pre-prepare、prepare、pre-broadcast、commit、commit-broadcast五個階段,減少每階段的通信次數(shù),提高了共識效率。
57、(1)在pre-prepare階段,領(lǐng)導(dǎo)節(jié)點將模型更新、驗證結(jié)果、聚合權(quán)重等信息打包成區(qū)塊block,向其他委員會節(jié)點發(fā)送pre-prepare消息view表示當(dāng)前視圖編號,d是block的哈希摘要,可以判斷信息是否被篡改,skp是領(lǐng)導(dǎo)節(jié)點的私鑰;
58、(2)委員會節(jié)點i在接收到領(lǐng)導(dǎo)節(jié)點的pre-prepare消息后,對消息的合法性以及消息簽名的正確性進行校驗。若通過校驗,進入prepare階段。驗證通過的節(jié)點會向領(lǐng)導(dǎo)節(jié)點發(fā)送prepare消息其中ski表示委員會節(jié)點i的私鑰。m是委員會節(jié)點驗證后是否通過校驗的決策。當(dāng)領(lǐng)導(dǎo)節(jié)點接收到大于條確認(rèn)通過的prepare消息后,表明進入pre-broadcast階段(m是委員會節(jié)點數(shù)量);
59、(3)pre-broadcast階段,領(lǐng)導(dǎo)節(jié)點會向所有委員會節(jié)點傳播pre-broadcast消息s是prepare階段各委員會節(jié)點的prepare消息集合。各委員會節(jié)點接收到該pre-broadcast消息后,除了正常的驗證之外,還要驗證s中所有的prepare消息,以確認(rèn)領(lǐng)導(dǎo)節(jié)點確實收到了大部分委員會節(jié)點的同意。若沒有pre-broadcast階段,委員會節(jié)點僅僅知道自己對pre-prepare消息的校驗結(jié)果,而無法得知其余委員會節(jié)點的響應(yīng)情況,此時領(lǐng)導(dǎo)節(jié)點可能實際并沒有取得大部分贊同,卻將錯誤的prepare消息放入s,以欺騙其余節(jié)點;
60、(4)委員會節(jié)點i接收到pre-broadcast消息后,確認(rèn)s中有超過個正確的prepare消息后,才會進入commit階段,發(fā)送commit消息給領(lǐng)導(dǎo)節(jié)點;
61、(5)領(lǐng)導(dǎo)節(jié)點在收到了個正確的commit消息后,發(fā)送commit-broadcast消息給各委員會節(jié)點,此步與前面的pre-broadcast階段相同;
62、(6)委員會節(jié)點在驗證commit-broadcast消息之后,將領(lǐng)導(dǎo)節(jié)點生成的區(qū)塊加入到本地賬本中,并廣播給區(qū)塊鏈網(wǎng)絡(luò)中的所有節(jié)點,共識結(jié)束;
63、本發(fā)明有如下的有益效果:
64、本發(fā)明將區(qū)塊鏈與聯(lián)邦學(xué)習(xí)技術(shù)應(yīng)用于房屋交易中企業(yè)信用評估場景,利用聯(lián)邦學(xué)習(xí)和多方企業(yè)信用數(shù)據(jù)構(gòu)建企業(yè)信用評估模型,充分利用多方數(shù)據(jù)的同時也保證了數(shù)據(jù)的隱私性。利用區(qū)塊鏈技術(shù)作為底層網(wǎng)絡(luò),將評估過程和信用數(shù)據(jù)進行存證,保證了數(shù)據(jù)的真實性,提供了有效的監(jiān)管追溯機制,消除了傳統(tǒng)聯(lián)邦學(xué)習(xí)的惡意服務(wù)器和單點故障的問題。利用信用評估任務(wù)發(fā)布者所收集的純凈數(shù)據(jù)集作為可信引導(dǎo),評估客戶端的誠實度,降低惡意客戶端的影響;提出了一種基于委員會的改進pbft共識機制,共識過程僅在委員會中進行,減少網(wǎng)絡(luò)規(guī)模帶來的影響,優(yōu)化了pbft協(xié)議流程,提高了共識效率。此外,委員成員利用本地數(shù)據(jù)集對客戶端更新構(gòu)成交叉驗證,評估更新模型的性能;設(shè)計了一種自適應(yīng)權(quán)重聚合策略,基于模型的誠實度,準(zhǔn)確率,數(shù)據(jù)規(guī)模自適應(yīng)更新聚合權(quán)重,并依據(jù)權(quán)重進行加權(quán)聚合,解決了數(shù)據(jù)異質(zhì)性帶來的問題,進一步提高模型安全性的同時,保證模型的性能。