本發(fā)明涉及數(shù)據(jù)隱私,尤其是涉及一種基于秘密分享隱私保護(hù)的dbscan分類方法、裝置、設(shè)備及介質(zhì)。
背景技術(shù):
1、在機(jī)器學(xué)習(xí)的領(lǐng)域中,聚類作為一種無監(jiān)督學(xué)習(xí)方法,核心目標(biāo)在于將復(fù)雜的數(shù)據(jù)集中的各個(gè)數(shù)據(jù)點(diǎn),依據(jù)其內(nèi)在的特征相似度,劃分成若干個(gè)不同的組別。dbscan便是其中一種,已在多個(gè)領(lǐng)域中得到了廣泛的應(yīng)用。
2、在風(fēng)控建模的場(chǎng)景下,不同的社群有截然不同的消費(fèi)和還款行為,對(duì)人群進(jìn)行分類是十分重要的環(huán)節(jié)。當(dāng)前各政府單位持有的公共數(shù)據(jù)記錄了眾多維度的高質(zhì)量畫像數(shù)據(jù)。基于這些數(shù)據(jù)將人群分為多個(gè)子人群,并在每一個(gè)人群上做獨(dú)立的模型。
3、目前,聚類計(jì)算的實(shí)施過程通常需要獲取涉及兩方的具體個(gè)人數(shù)據(jù),存在暴露隱私的風(fēng)險(xiǎn)。目前考慮隱私保護(hù)下的聚類方法主流的解決方案聚焦于橫向聯(lián)邦學(xué)習(xí)或者由單個(gè)機(jī)構(gòu)發(fā)起的dbscan隱私計(jì)算。
4、其中,面向橫向聯(lián)邦學(xué)習(xí)的如《基于dbscan聚類的客戶端選擇聯(lián)邦學(xué)習(xí)方法》(申請(qǐng)?zhí)?02210378145),提出了基于橫向dbscan算法選擇相似的一群客戶端進(jìn)行訓(xùn)練并更新全局模型的策略,側(cè)重于通過dbscan降低數(shù)據(jù)非獨(dú)立分布對(duì)聯(lián)邦學(xué)習(xí)帶來的影響,而并非針對(duì)dbscan算法本身進(jìn)行隱私計(jì)算。另一篇《基于橫向聯(lián)邦的dbscan聚類方法、及其相關(guān)設(shè)備》(申請(qǐng)?zhí)?02011388364.3),提出一種橫向聯(lián)邦的dbscan聚類方法,通過計(jì)算聯(lián)邦均方誤差實(shí)現(xiàn)特征篩選與待聚類數(shù)據(jù)集劃分,之后再聯(lián)邦歐式距離對(duì)數(shù)據(jù)集進(jìn)行聚類。該方法部分流程的傳輸過程中涉及信息明文,無法滿足各機(jī)構(gòu)保護(hù)敏感數(shù)據(jù)的強(qiáng)安全需求。
5、《dbscan算法的隱私保護(hù)方法、終端及存儲(chǔ)介質(zhì)》(申請(qǐng)?zhí)?02310080172.3),通過引入兩個(gè)計(jì)算方協(xié)助單個(gè)客戶端進(jìn)行加密后的dbscan隱私計(jì)算。在該場(chǎng)景下,單一的數(shù)據(jù)方缺少進(jìn)行dbscan所需的計(jì)算資源,故而委托兩個(gè)代理服務(wù)方通過隱私計(jì)算的方法完成dbscan聚類。該方案同時(shí)引入了dh協(xié)議與不經(jīng)意傳輸,產(chǎn)生了交互成本高的問題,在實(shí)際應(yīng)用中算法效率低下。對(duì)于數(shù)據(jù)方來說,dh協(xié)議、拆分、加密所需要的計(jì)算資源反而超過了dbscan的運(yùn)算本身,難以在實(shí)際生產(chǎn)場(chǎng)景下落地。此外,在該方案中,數(shù)據(jù)全部存儲(chǔ)在單一的本地服務(wù)方,無法直接沿用至多數(shù)據(jù)方場(chǎng)景下的縱向聯(lián)邦學(xué)習(xí)。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的是為了提供一種基于秘密分享隱私保護(hù)的dbscan分類方法、裝置、設(shè)備及介質(zhì),解決各方對(duì)于自身數(shù)據(jù)敏感的數(shù)據(jù)安全場(chǎng)景下的分類問題,并提高分類效率。
2、本發(fā)明的目的可以通過以下技術(shù)方案來實(shí)現(xiàn):
3、根據(jù)本發(fā)明的第一方面,提供一種基于秘密分享隱私保護(hù)的dbscan分類方法,涉及服務(wù)方、請(qǐng)求方和三個(gè)獨(dú)立的、互不串謀的代理計(jì)算方,其中,服務(wù)方和請(qǐng)求方分別擁有相同樣本的不同特征,該方法包括以下步驟:
4、s1,服務(wù)方和請(qǐng)求方對(duì)各自擁有的樣本特征進(jìn)行秘密分享加密后發(fā)送給代理計(jì)算方;
5、s2,代理計(jì)算方計(jì)算可到達(dá)矩陣,并將計(jì)算得到的可到達(dá)矩陣發(fā)送給請(qǐng)求方;
6、s3,請(qǐng)求方基于可到達(dá)矩陣執(zhí)行dbscan算法,實(shí)現(xiàn)數(shù)據(jù)分類。
7、所述步驟s1具體為:
8、請(qǐng)求方c擁有第一樣本集,其中的每一個(gè)樣本包含m個(gè)特征,服務(wù)方擁有第二樣本集,其中的每一個(gè)樣本包含k個(gè)特征,第一樣本集和第二樣本集的樣本數(shù)均為n;
9、請(qǐng)求方c計(jì)算第一樣本集中的各個(gè)樣本點(diǎn)之間在特征維度上的距離平方和:其中,aij為第一樣本集x1中的第i個(gè)樣本點(diǎn)x1i和第j個(gè)樣本點(diǎn)x1j之間的特征距離平方和,i,j=1,2,...n且i<j;
10、請(qǐng)求方c對(duì)第一樣本集的距離平方和數(shù)據(jù)進(jìn)行秘密分享加密,生成一個(gè)隨機(jī)數(shù)a1ij,并將a1ij發(fā)送給第一代理計(jì)算方;計(jì)算a2ij=aij-a1ij,將a2ij發(fā)送給第二代理計(jì)算方,分別被發(fā)送給不同代理計(jì)算方的a1ij和a2ij構(gòu)成秘密分享加密后的數(shù)據(jù)<aij>,其中,<*>表示秘密分享加密數(shù)據(jù);
11、服務(wù)方s計(jì)算第二樣本集中的各個(gè)樣本點(diǎn)之間在特征維度上的距離平方和:其中,bij為第一樣本集x2中的第i個(gè)樣本點(diǎn)x2i和第j個(gè)樣本點(diǎn)x2j之間的特征距離平方和;
12、服務(wù)方s對(duì)第二樣本集的距離平方和數(shù)據(jù)進(jìn)行秘密分享加密,生成一個(gè)隨機(jī)數(shù)b1ij,并將b1ij發(fā)送給第一代理計(jì)算方;計(jì)算b2ij=bij-b1ij,將b2ij發(fā)送給第二代理計(jì)算方,分別被發(fā)送給不同代理計(jì)算方的b1ij和b2ij構(gòu)成秘密分享加密后的數(shù)據(jù)<bij>;
13、請(qǐng)求方c生成隨機(jī)數(shù)r1,基于預(yù)設(shè)的半徑r計(jì)算r2=r2-r1,并將r1發(fā)送給第一代理計(jì)算方,將r2發(fā)送給第二代理計(jì)算方,分別被發(fā)送給不同代理計(jì)算方的r1和r2構(gòu)成秘密分享加密后的半徑數(shù)據(jù)<r2>。
14、所述步驟s2包括以下步驟:
15、s21,第一代理計(jì)算方和第二代理計(jì)算方分別對(duì)各自收到的特征距離平方和數(shù)據(jù)進(jìn)行安全加法操作:<zij>=secure_add(<aij>,<bij>),分別得到z1ij和z2ij,其中,secure_add表示安全加法操作,z1ij=a1ij+b1ij,z2ij=a2ij+b2ij;
16、s22,第一代理計(jì)算方和第二代理計(jì)算方基于秘密分享加密后的半徑<r2>分別進(jìn)行安全減法操作:<diffij>=secure_sub(<zij>,<r2>),分別得到diff1ij和diff2ij,其中,secure_sub表示安全減法操作,diff1ij=z1ij-r1,diff2ij=z2ij-r2;
17、s23,請(qǐng)求方c生成隨機(jī)大正整數(shù)t與三元組(a,b,c),進(jìn)行秘密分享加密并分發(fā)給第一代理計(jì)算方和第二代理計(jì)算方,得到<t>,(<a>,<b>,<c>),進(jìn)行安全乘法操作:<diff′ij>=secure_multiply(<diffij>,<t>),其中,secure_multiply表示安全乘法操作;
18、s24,第一代理計(jì)算方和第二代理計(jì)算方分別將對(duì)應(yīng)的<diff′ij>結(jié)果發(fā)送給請(qǐng)求方c,請(qǐng)求方c計(jì)算diff′ij并基于diff′ij判斷各個(gè)樣本點(diǎn)間的歐式距離與預(yù)設(shè)半徑r之間的大小關(guān)系,構(gòu)建可到達(dá)矩陣β,其中,當(dāng)diff′ij>0時(shí),表示樣本點(diǎn)間的歐式距離大于預(yù)設(shè)半徑r,兩個(gè)樣本點(diǎn)間可到達(dá),βij=1;當(dāng)diff′ij<0時(shí),表示樣本點(diǎn)間的歐式距離小于預(yù)設(shè)半徑r,兩個(gè)樣本點(diǎn)間不可到達(dá),βij=0。
19、所述步驟s3包括以下步驟:
20、s31,基于可到達(dá)矩陣,對(duì)每個(gè)樣本點(diǎn)i計(jì)算其可到達(dá)點(diǎn)總數(shù)將可到達(dá)點(diǎn)總數(shù)a大于最小分簇點(diǎn)數(shù)的所有樣本點(diǎn)標(biāo)記為核心點(diǎn);
21、s32,隨機(jī)選擇一個(gè)未分簇的核心點(diǎn),標(biāo)記為已分簇,生成一個(gè)新簇類,并遍歷剩余未分簇的點(diǎn),若所述核心點(diǎn)與遍歷到的未分簇的點(diǎn)之間的可到達(dá)矩陣對(duì)應(yīng)的元素βij=1,則將該未分簇的點(diǎn)歸類到新簇類并標(biāo)記為已分簇;
22、s33,循環(huán)步驟s32,直至所有核心點(diǎn)都已標(biāo)記,完成分類,并將剩余未分簇的點(diǎn)歸類為噪聲集合。
23、所述安全加法具體為:
24、輸入:第一代理計(jì)算方和第二代理計(jì)算方持有兩個(gè)secret<x>和<y>,x=x1+x2,y=y(tǒng)1+y2,其中,第一代理計(jì)算方有x1和y1,第二代理計(jì)算方有x2和y2;
25、輸出:第一代理計(jì)算方和第二代理計(jì)算方計(jì)算得到一個(gè)新的加密數(shù)據(jù)<z>,滿足z=x+y;
26、處理過程:第一代理計(jì)算方計(jì)算z1=x1+y1,第二代理計(jì)算方計(jì)算z2=x2+y2,第一代理計(jì)算方和第二代理計(jì)算方分別持有z1和z2即得到新的加密數(shù)據(jù)<z>。
27、所述安全減法具體為:
28、輸入:第一代理計(jì)算方和第二代理計(jì)算方持有兩個(gè)加密數(shù)據(jù):<x>和<y>,x=x1+x2,y=y(tǒng)1+y2,其中,第一代理計(jì)算方有x1和y1,第二代理計(jì)算方有x2和y2;
29、輸出:第一代理計(jì)算方和第二代理計(jì)算方計(jì)算得到一個(gè)新的加密數(shù)據(jù):<z>,滿足z=x-y;
30、處理過程:第一代理計(jì)算方計(jì)算z1=x1-y1,第二代理計(jì)算方計(jì)算z2=x2-y2,第一代理計(jì)算方和第二代理計(jì)算方分別持有z1和z2即得到新的加密數(shù)據(jù)<z>。
31、所述安全乘法具體為:
32、輸入:第一代理計(jì)算方和第二代理計(jì)算方持有加密數(shù)據(jù):<x>,x=x1+x2,其中,第一代理計(jì)算方有x1,第二代理計(jì)算方有x2;
33、輸出:第一代理計(jì)算方和第二代理計(jì)算方隨機(jī)生成一個(gè)大正整數(shù)t,并計(jì)算得到一個(gè)新的加密數(shù)據(jù)<z>,滿足z=x×t;
34、處理過程:
35、步驟1)第三代理計(jì)算方生成隨機(jī)數(shù)a、b和t,并計(jì)算c=a*b,將a,b,c,t通過秘密分享加密轉(zhuǎn)換為secret<a>、<b>、<c>、<t>,a=a1+a2,b=b1+b2,c=c1+c2,t=t1+t2,并發(fā)送給第一代理計(jì)算方和第二代理計(jì)算方,其中,第一代理計(jì)算方持有x1,t1,a1,b1,c1,第二代理計(jì)算方持有x2,t2,a2,b2,c2;
36、步驟2)第一代理計(jì)算方計(jì)算:e1=x1-a1,f1=t1-b1;
37、步驟3)第二代理計(jì)算方計(jì)算:e2=x2-a2,f2=t2-b2;
38、步驟4)第一代理計(jì)算方把e1和f1發(fā)送給第二代理計(jì)算方,同時(shí)第二代理計(jì)算方把e2和f2發(fā)送給第一代理計(jì)算方;即,第一代理計(jì)算方和第二代理計(jì)算方都持有e1、e2、f1和f2;
39、步驟5)第一代理計(jì)算方計(jì)算z1=x1×(f1+f2)+t1×(e1+e2)+c1,第二代理計(jì)算方計(jì)算z2=x2×(f1+f2)+t2×(e1+e2)+c2-(e1+e2)×(f1+f2),第一代理計(jì)算方和第二代理計(jì)算方分別持有z1和z2即得到新的加密數(shù)據(jù)<z>,滿足z=x×t。
40、根據(jù)本發(fā)明的第二方面,提供了一種基于秘密分享隱私保護(hù)的dbscan分類裝置,涉及服務(wù)方、請(qǐng)求方和三個(gè)獨(dú)立的、互不串謀的代理計(jì)算方,其中,服務(wù)方和請(qǐng)求方分別擁有相同樣本的不同特征,該裝置包括:
41、秘密分享加密模塊:服務(wù)方和請(qǐng)求方對(duì)各自擁有的樣本特征進(jìn)行秘密分享加密后發(fā)送給代理計(jì)算方;
42、可到達(dá)矩陣計(jì)算模塊:代理計(jì)算方計(jì)算可到達(dá)矩陣,并將計(jì)算得到的可到達(dá)矩陣發(fā)送給請(qǐng)求方;
43、分類模塊:請(qǐng)求方基于可到達(dá)矩陣執(zhí)行dbscan算法,實(shí)現(xiàn)數(shù)據(jù)分類。
44、根據(jù)本發(fā)明的第三方面,提供了一種電子設(shè)備,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器上存儲(chǔ)有計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)所述的方法。
45、根據(jù)本發(fā)明的第四方面,提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)所述的方法。
46、與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:
47、(1)本發(fā)明使用秘密分享保護(hù)了數(shù)據(jù)隱私,能夠在不暴露雙方原始數(shù)據(jù)的情況下進(jìn)行計(jì)算,避免了雙方數(shù)據(jù)的泄露,并且秘密分享的計(jì)算效率遠(yuǎn)優(yōu)于同態(tài)加密。
48、(2)本發(fā)明在多方之間一共只需進(jìn)行九次數(shù)據(jù)傳輸即可實(shí)現(xiàn)分類,其中每次比較只進(jìn)行一次交互,能夠大大減少通信的開銷,提高分類效率。