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