本發(fā)明屬于數(shù)據(jù)挖掘和隱私保護(hù)技術(shù)領(lǐng)域,更為具體地講,涉及一種基于位置隱私保護(hù)的個(gè)性化推薦方法。
背景技術(shù):
自2003年以來(lái),就有研究者開(kāi)始對(duì)移動(dòng)用戶位置的隱私保護(hù)進(jìn)行相關(guān)工作,提出了一些經(jīng)典的算法,對(duì)這些算法進(jìn)行分類,主要有假軌跡數(shù)據(jù)法、抑制法和數(shù)據(jù)泛化法。
通常假軌跡數(shù)據(jù)法實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單,數(shù)據(jù)存儲(chǔ)量大以及數(shù)據(jù)可用性相對(duì)比較差。抑制法對(duì)軌跡隱私保護(hù)是通過(guò)限制敏感信息的發(fā)布,這種方法實(shí)現(xiàn)簡(jiǎn)單計(jì)算量小,但是數(shù)據(jù)容易失真。數(shù)據(jù)泛化法即基于泛化的軌跡隱私保護(hù)算法,保證了數(shù)據(jù)不會(huì)失真,但是計(jì)算量比較大。
目前位置隱私保護(hù)技術(shù)通常采用文獻(xiàn)[gedik,bu&#,liul.protectinglocationprivacywithpersonalizedk-anonymity:architectureandalgorithms[j].ieeetransactionsonmobilecomputing,2008,7(1):1-18.]k-anonymity即位置k匿名算法,這是目前位置隱私保護(hù)的主流方法。位置k匿名算法是一種普遍用于位置隱私保護(hù)方法,該方法就是把查詢用戶在一定區(qū)域范圍內(nèi)與其他k-1個(gè)用戶一起發(fā)送給位置服務(wù)器,這樣就難以判斷出真實(shí)的查詢用戶,位置k匿名算法對(duì)查詢用戶的單個(gè)位置的隱私保護(hù)效果不錯(cuò),但是不適合連續(xù)查詢,攻擊者可以通過(guò)對(duì)用戶位置連續(xù)時(shí)刻查詢求交集,從而算出查詢用戶的真實(shí)位置信息。
文獻(xiàn)[theodoridis,state-of-the-artinprivacypreservingdatamining[c]//acmsigmodrecord.2004.]把主流隱私保護(hù)數(shù)據(jù)挖掘方法分為五類:①、數(shù)據(jù)的分布的一些方式;②、以數(shù)據(jù)或規(guī)則的隱藏方式,分為基于數(shù)據(jù)失真、數(shù)據(jù)匿名、數(shù)據(jù)加密等;③、在數(shù)據(jù)挖掘技術(shù)層面,有聚類挖掘、關(guān)聯(lián)規(guī)則挖掘、分類挖掘等;④、以隱藏的對(duì)象來(lái)說(shuō),分為原始數(shù)據(jù)隱藏、規(guī)則或模式隱藏等;⑤、以隱私保護(hù)技術(shù)層面,分為基于啟發(fā)式、基于密碼學(xué)以及基于重構(gòu)技術(shù)的方法。
隱私保護(hù)和數(shù)據(jù)挖掘是一對(duì)矛盾體。知識(shí)挖掘、機(jī)器學(xué)習(xí)、人工智能等技術(shù)的研究和應(yīng)用使得大數(shù)據(jù)分析的力量越來(lái)越強(qiáng)大,同時(shí)也為對(duì)個(gè)人隱私的保護(hù)帶來(lái)了更加嚴(yán)峻的挑戰(zhàn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提出一種基于位置隱私保護(hù)的個(gè)性化推薦方法,以有效抵御背景知識(shí)攻擊、用戶行為模式攻擊等隱私攻擊,并在有效抵御攻擊的同時(shí),為用戶提供優(yōu)質(zhì)的推薦服務(wù)。
為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明基于位置隱私保護(hù)的個(gè)性化推薦方法,其特征在于,包括以下步驟:
(1)、根據(jù)查詢用戶位置生成隱匿區(qū)域
1.1)、位置服務(wù)器接收查詢用戶發(fā)送位置服務(wù)請(qǐng)求q={p0(x,y),c,query},其中,p0(x,y)為查詢用戶真實(shí)位置,(x,y)為其坐標(biāo),c為用戶設(shè)置的隱私保護(hù)程度,c>1,query為用戶發(fā)送的服務(wù)請(qǐng)求信息;
1.2)、以查詢用戶真實(shí)位置p0(x,y)為圓心,半徑為dmax生成隱匿區(qū)域z0,其中,半徑dmax=r×c,r為保護(hù)系數(shù);
1.3)、判定隱匿區(qū)域z0域內(nèi)用戶真實(shí)位置p0(x,y)的近鄰位置點(diǎn)個(gè)數(shù)n是否滿足n>k,若不滿足則需要隨機(jī)插入k-n個(gè)位置點(diǎn),其中,k為隱匿區(qū)域所需位置點(diǎn)數(shù),根據(jù)具體實(shí)施情況確定;
(2)、根據(jù)查詢用戶真實(shí)位置p0(x,y)近鄰位置點(diǎn)重新計(jì)算隱匿區(qū)域
2.1)、位置服務(wù)器隨機(jī)選定隱匿區(qū)域z0的k個(gè)近鄰位置點(diǎn);
2.2)、得到k個(gè)近鄰位置點(diǎn)的坐標(biāo),并計(jì)算坐標(biāo)均值,通過(guò)公式
得到均值坐標(biāo)位置點(diǎn)
2.3)、位置服務(wù)器以均值坐標(biāo)位置點(diǎn)
(3)、推薦用戶附近商家
3.1)、應(yīng)用服務(wù)器將隱匿區(qū)域z′0半徑至dmax,生成推薦區(qū)域z1;
3.2)、應(yīng)用服務(wù)器根據(jù)用戶發(fā)送的服務(wù)請(qǐng)求信息query,結(jié)合用戶歷史購(gòu)買商家記錄,對(duì)推薦區(qū)域z1內(nèi)商家排序即獲得個(gè)性化推薦列表并返回給查詢用戶。
本發(fā)明的目的是這樣實(shí)現(xiàn)的。
本發(fā)明基于位置隱私保護(hù)的個(gè)性化推薦方法,取用戶真實(shí)位置坐標(biāo),以用戶真實(shí)位置p0為圓心,dmax為半徑生成隱匿區(qū)域z0,并通過(guò)真實(shí)位置近鄰位置點(diǎn)坐標(biāo)計(jì)算均值,再以均值坐標(biāo)位置點(diǎn)
附圖說(shuō)明
圖1是本發(fā)明應(yīng)用的個(gè)性化推薦系統(tǒng)的結(jié)構(gòu)示意圖;
圖2是本發(fā)明基于位置隱私保護(hù)的個(gè)性化推薦方法一種具體實(shí)施方式流程圖;
圖3是形成隱匿區(qū)域的示意圖;
圖4是隱匿區(qū)域與推薦區(qū)域關(guān)系圖;
圖5是本發(fā)明中均值坐標(biāo)位置點(diǎn)
圖6是連續(xù)查詢時(shí)位置攻擊示意圖;
圖7是最大速度攻擊示意圖;
圖8是第三方所能接收到的查詢用戶位置軌跡圖;
圖9是無(wú)背景知識(shí)情況下與位置k匿名算法保護(hù)度對(duì)比圖;
圖10是有背景知識(shí)情況下與隨機(jī)k-匿名隱私保護(hù)度對(duì)比圖;
圖11是位置隱匿對(duì)推薦準(zhǔn)確率影響圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行描述,以便本領(lǐng)域的技術(shù)人員更好地理解本發(fā)明。需要特別提醒注意的是,在以下的描述中,當(dāng)已知功能和設(shè)計(jì)的詳細(xì)描述也許會(huì)淡化本發(fā)明的主要內(nèi)容時(shí),這些描述在這里將被忽略。
圖1是本發(fā)明應(yīng)用的個(gè)性化推薦系統(tǒng)的結(jié)構(gòu)示意圖。
在本實(shí)施例中,個(gè)性化推薦系統(tǒng)的工作過(guò)程如下:
①、查詢用戶向位置服務(wù)器發(fā)出位置服務(wù)請(qǐng)求,將自己的位置服務(wù)請(qǐng)求經(jīng)過(guò)加密處理后發(fā)送給位置服務(wù)器。其中查詢用戶的私鑰信息只有自己知道,查詢用戶與位置服務(wù)器之間是經(jīng)過(guò)加密處理的可靠通信。
②、位置服務(wù)器對(duì)接收到的位置信息、服務(wù)信息進(jìn)行解密,并根據(jù)的真實(shí)位置信息和隱私保護(hù)程度生成隱匿區(qū)域。
③、位置服務(wù)器將求得的隱匿區(qū)域、服務(wù)請(qǐng)求信息一起打包發(fā)送給應(yīng)用服務(wù)器。
④、應(yīng)用服務(wù)器將接收到的服務(wù)請(qǐng)求信息query,結(jié)合用戶歷史購(gòu)買商家記錄,對(duì)推薦區(qū)域z1內(nèi)商家排序即獲得個(gè)性化推薦列表,并發(fā)送給查詢用戶。
圖2是本發(fā)明基于位置隱私保護(hù)的個(gè)性化推薦方法一種具體實(shí)施方式流程圖。
在本實(shí)施例中,如圖1所示,本發(fā)明基于位置隱私保護(hù)的個(gè)性化推薦方法,其特征在于,包括以下步驟:
步驟s1:根據(jù)查詢用戶位置生成隱匿區(qū)域
步驟s1.1:位置服務(wù)器接收查詢用戶發(fā)送位置服務(wù)請(qǐng)求q={p0(x,y),c,query},其中,p0(x,y)為查詢用戶真實(shí)位置,(x,y)為其坐標(biāo),c為用戶設(shè)置的隱私保護(hù)程度,c>1,query為用戶發(fā)送的服務(wù)請(qǐng)求信息。
在本實(shí)施例中,x,y是用于坐標(biāo)的經(jīng)緯度。查詢用戶位置為成都市成華區(qū)牛王廟,其經(jīng)緯度為(104.099962,30.651244),發(fā)送位置服務(wù)請(qǐng)求到位置服務(wù)器,位置服務(wù)器根據(jù)查詢用戶位置生成隱匿區(qū)域z0,具體為:
位置服務(wù)器(locationbasedservice,簡(jiǎn)稱lbs)接收查詢用戶發(fā)送的位置服務(wù)請(qǐng)求,接收信息是q={p0(x,y),c,query},其中,p0(104.099962,30.651244)是查詢用戶真實(shí)位置,c為用戶設(shè)置的隱私保護(hù)程度,c>1,query為用戶發(fā)送的服務(wù)請(qǐng)求信息,在本實(shí)施例中,query是用戶發(fā)送的請(qǐng)求附近飯店信息。
步驟s1.2:以查詢用戶真實(shí)位置p0(x,y)為圓心,半徑為dmax生成隱匿區(qū)域z0,其中,半徑dmax=r×c,r為位置服務(wù)器設(shè)置的保護(hù)系數(shù)。
位置服務(wù)器接收到位置服務(wù)請(qǐng)求后開(kāi)始對(duì)查詢用戶真實(shí)位置進(jìn)行隱匿運(yùn)算,以p0(104.099962,30.651244)為圓心,半徑為dmax生成隱匿區(qū)域z0,其中dmax=r×c,在本實(shí)施例中,設(shè)置保護(hù)系數(shù)r=0.5km,隱私保護(hù)程度c=2,位置服務(wù)器將生成一公里半徑范圍內(nèi)的隱匿區(qū)域z0。
步驟s1.3:判定隱匿區(qū)域z0域內(nèi)用戶真實(shí)位置p0(x,y)的近鄰位置點(diǎn)個(gè)數(shù)n是否滿足n>k,若不滿足則需要隨機(jī)插入k-n個(gè)位置點(diǎn),其中,k為隱匿區(qū)域所需位置點(diǎn)數(shù),根據(jù)具體實(shí)施情況確定。在本實(shí)施例中,k確定為10。
步驟s2:以根據(jù)用戶真實(shí)位置p0(x,y)近鄰位置點(diǎn)重新計(jì)算隱匿區(qū)域
步驟s2.1:位置服務(wù)器隨機(jī)選定隱匿區(qū)域z0的k=10個(gè)近鄰位置點(diǎn);
步驟s2.2:得到k=10個(gè)近鄰位置點(diǎn)的坐標(biāo),并計(jì)算坐標(biāo)均值,通過(guò)公式
得到均值坐標(biāo)位置點(diǎn)
步驟s2.3:位置服務(wù)器以均值坐標(biāo)位置點(diǎn)
步驟s3:推薦用戶附近商家
步驟s3.1:應(yīng)用服務(wù)器將隱匿區(qū)域z′0半徑至dmax,生成推薦區(qū)域z1;
步驟s3.2:應(yīng)用服務(wù)器根據(jù)查詢用戶發(fā)送的服務(wù)請(qǐng)求信息query,結(jié)合查詢用戶歷史購(gòu)買商家記錄,對(duì)推薦區(qū)域z1內(nèi)商家排序即獲得個(gè)性化推薦列表。
在本實(shí)施例中,應(yīng)用服務(wù)器在對(duì)商家進(jìn)行排序前,需要對(duì)商家的特征和權(quán)重進(jìn)行訓(xùn)練得到。抽取應(yīng)用服務(wù)器數(shù)據(jù)庫(kù)中購(gòu)買人數(shù)較多的1000個(gè)商家,分為正負(fù)例樣本(購(gòu)買的為正例樣本、瀏覽沒(méi)購(gòu)買的為負(fù)例樣本),抽取商家特征,特征包括是否停車、面積、價(jià)格、用戶評(píng)分……等,然后利用邏輯回歸算法的隨機(jī)梯度下降法對(duì)正負(fù)例樣本進(jìn)行訓(xùn)練,得到商家的特征和權(quán)重。
在本實(shí)施例中,如圖3所示,左側(cè)圓形區(qū)域是以查詢用戶真實(shí)位置p0為圓心一公里半徑范圍內(nèi)的隱匿區(qū)域z0,隨機(jī)選定隱匿區(qū)域z0的k=10個(gè)近鄰位置點(diǎn)(用x表示),形成右側(cè)圓形區(qū)域是以均值坐標(biāo)位置點(diǎn)
在本實(shí)施例中,將隱匿區(qū)域z′0半徑至dmax=3km,生成推薦區(qū)域。推薦區(qū)域與隱匿區(qū)域的關(guān)系如圖4所示,圖4中內(nèi)圓形區(qū)域是隱匿區(qū)域,半徑為dmax,包括隱匿區(qū)域在內(nèi)的半徑為dmax的整個(gè)圓形區(qū)域?yàn)橥扑]區(qū)域。推薦區(qū)域可以描述為用戶均值坐標(biāo)位置點(diǎn)
在本實(shí)施例中,將應(yīng)用服務(wù)器把用戶均值坐標(biāo)位置點(diǎn)
圖5展示了在三個(gè)不同時(shí)刻,當(dāng)查詢用戶發(fā)送位置服務(wù)請(qǐng)求,隱匿區(qū)域z0與基于均值坐標(biāo)位置點(diǎn)
位置k匿名算法是一種普遍采用的位置隱私和查詢隱私保護(hù)方法,該方法就是把查詢用戶在一定區(qū)域范圍內(nèi)與其他k-1個(gè)用戶一起發(fā)送給位置服務(wù)器,這樣就難以判斷出真實(shí)的查詢用戶。位置k匿名算法對(duì)單個(gè)查詢用戶位置的隱私保護(hù)效果不錯(cuò),但是不適合連續(xù)查詢。圖6是連續(xù)查詢攻擊:當(dāng)攻擊者截獲查詢用戶不同時(shí)刻位置查詢信息,通過(guò)觀察不同時(shí)刻申請(qǐng)查詢中包含的不同位置,對(duì)查詢用戶位置連續(xù)時(shí)刻查詢求交集,從而算出查詢用戶的真實(shí)位置信息。
如圖6所示:攻擊者通過(guò)對(duì)位置信息四個(gè)時(shí)刻發(fā)起連續(xù)查詢,t1時(shí)刻查詢匿名位置信息得到的是(a,b,d,e,f),t2(a,b,g,c,d),t3(a,b,c,e,g),t4(a,c,e,g,f)。在這些位置點(diǎn)中要找出a,雖然每次查詢只能得到一個(gè)匿名集,不能分辨出到底是誰(shuí)發(fā)起的位置請(qǐng)求,但是通過(guò)對(duì)這四個(gè)時(shí)刻查詢的位置集合求交集就能辨認(rèn)出a。
圖7是最大速度攻擊示意圖,它是背景知識(shí)攻擊的一種,在t1時(shí)刻用戶c發(fā)起位置查詢,隨后便生成兩個(gè)假位置點(diǎn)a、b,并生成匿名區(qū)域s1;在t2時(shí)刻用戶c再次發(fā)起位置查詢,同樣生成匿名區(qū)域s2。如果這時(shí)候攻擊者獲取到用戶的交通方式,從而可以大致推斷出用戶的速度為v,根據(jù)速度可以求得用戶在t1帶t2時(shí)刻能夠到達(dá)的最大范圍p,從而可以推理出p與s2的交集便是用戶能夠去到的真實(shí)區(qū)域,進(jìn)一步得到真實(shí)位置點(diǎn)c。通過(guò)本發(fā)明對(duì)位置坐標(biāo)隱匿處理,可以很好的防御連續(xù)查詢攻擊和最大速度攻擊。
圖8展示的是經(jīng)過(guò)本發(fā)明處理后,第三方接收到的查詢用戶的位置軌跡信息,由于本發(fā)明對(duì)用戶位置進(jìn)行泛化處理,第三方只能接收到查詢用戶的位置信息為圓形的隱匿區(qū)域,其圓心位置是均值坐標(biāo)位置點(diǎn)
通過(guò)發(fā)明提出的基于位置坐標(biāo)均值算法對(duì)查詢用戶真實(shí)位置p0隱匿處理,采用基于shannon熵理論來(lái)衡量算法的匿名程度,首先給出香農(nóng)熵的定義:
設(shè)隨機(jī)變量x是有限集合x中的取值,那么隨機(jī)變量x的熵的定義為:
p(x)為當(dāng)變量值為x時(shí)的概率。攻擊者對(duì)隱私信息發(fā)起攻擊,成功攻破隱私信息為一個(gè)事件集x,攻擊者成功識(shí)破某個(gè)用戶的隱私信息是事件集中的某一個(gè)事件x,那么隱私保護(hù)程度就可以通過(guò)攻擊者成功攻擊用戶的信息熵來(lái)度量。位置k匿名算法在傳統(tǒng)的位置隱私保護(hù)中是應(yīng)用最為廣泛的算法,實(shí)驗(yàn)將本發(fā)明和位置k匿名算法在隱私保護(hù)度上來(lái)度量。
當(dāng)無(wú)背景知識(shí)時(shí),攻擊者能夠成功獲得用戶位置信息的概率:
如果設(shè)置q為攻擊者擁有的單條軌跡的背景知識(shí)的權(quán)重值,1≤q≤n。攻擊者可能掌握區(qū)域內(nèi)某些位置點(diǎn)的背景知識(shí),那么掌握背景知識(shí)的節(jié)點(diǎn)位置隱私被攻擊者成功獲取的概率為q/n+1或q/k+1,設(shè)m為一次查詢中在匿名區(qū)域內(nèi)攻擊者掌握的背景知識(shí)的節(jié)點(diǎn)個(gè)數(shù),攻擊者不通過(guò)背景知識(shí)能夠獲得用戶位置信息的概率為:
式中qi表示攻擊者根據(jù)第i個(gè)用戶掌握的,當(dāng)權(quán)值qi=1時(shí),表示攻擊者沒(méi)有掌握任何有用的背景知識(shí),qi=n表示攻擊者已經(jīng)掌握足夠的背景知識(shí)完全能夠確定用戶的位置信息。通過(guò)計(jì)算概率,根據(jù)信息熵來(lái)度量隱私保護(hù)程度,熵值越大表示隱私保護(hù)程度越好。
圖9為攻擊者在沒(méi)有掌握背景知識(shí)情況下,本發(fā)明與位置k匿名算法的隱私保護(hù)度對(duì)比,這里的隱私保護(hù)度是依靠上文提到的信息熵來(lái)表示,橫坐標(biāo)k表示位置k匿名算法中k個(gè)近鄰節(jié)點(diǎn),縱坐標(biāo)h/bit表示信息熵的值。當(dāng)攻擊者掌握一定的背景知識(shí)時(shí),本發(fā)明與位置k匿名算法的隱私保護(hù)度對(duì)比圖如圖10所示。從圖10中可以看出,在攻擊者無(wú)背景知識(shí)情況下,本發(fā)明的隱私保護(hù)度是強(qiáng)于位置k匿名算法。
推薦準(zhǔn)確率可以定義為:提取出的正確的信息條數(shù)除以提取的信息條數(shù),由于本發(fā)明是分類算法實(shí)現(xiàn)的推薦系統(tǒng),準(zhǔn)確率可以定義為:提取出的正類樣本個(gè)數(shù)除以提取的總個(gè)數(shù)。為了衡量位置隱匿處理后對(duì)推薦系統(tǒng)的影響,所以將沒(méi)有隱匿處理和通過(guò)隱匿處理后的推薦準(zhǔn)確度進(jìn)行對(duì)比,如圖11所示:圖11中為五次發(fā)起推薦請(qǐng)求,將有位置隱匿情況下推薦的準(zhǔn)確率和無(wú)隱匿情況下進(jìn)行對(duì)比,從圖中可以看出,隱匿處理后的數(shù)據(jù)對(duì)推薦準(zhǔn)確率的影響并不大,推薦準(zhǔn)確率始終可以保持在90%以上。
盡管上面對(duì)本發(fā)明說(shuō)明性的具體實(shí)施方式進(jìn)行了描述,以便于本技術(shù)領(lǐng)域的技術(shù)人員理解本發(fā)明,但應(yīng)該清楚,本發(fā)明不限于具體實(shí)施方式的范圍,對(duì)本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)講,只要各種變化在所附的權(quán)利要求限定和確定的本發(fā)明的精神和范圍內(nèi),這些變化是顯而易見(jiàn)的,一切利用本發(fā)明構(gòu)思的發(fā)明創(chuàng)造均在保護(hù)之列。