亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于E2LSH的軌跡KNN查詢算法

        2020-04-09 06:36:40吳志兵

        邱 磊,吳志兵

        (江南計算技術(shù)研究所,江蘇 無錫 214083)

        0 引 言

        隨著傳感器技術(shù)和定位技術(shù)的發(fā)展,基于位置的服務(wù)應(yīng)用越來越廣泛。人類活動通過智能手機(jī)APP應(yīng)用軟件進(jìn)行位置分享、簽到等;車輛安裝GPS或北斗定位系統(tǒng),周期性地上報位置信息;動物學(xué)家記錄動物的遷徙路徑等等。在這些活動中產(chǎn)生了一系列軌跡數(shù)據(jù),隨著時間的推移,數(shù)據(jù)規(guī)模愈加龐大。

        對于海量軌跡數(shù)據(jù)的挖掘,可以獲得大量有價值信息。例如,對車輛軌跡數(shù)據(jù)分析研究獲取駕駛行為與交通路網(wǎng)之間的相關(guān)性[1];對智能手機(jī)定位軌跡數(shù)據(jù)分析得到用戶的移動特點和生活規(guī)律[2];對旅行軌跡數(shù)據(jù)分析向用戶推薦滿足不同需求的路徑[3]。軌跡數(shù)據(jù)挖掘常常依賴于大量的軌跡查詢行為。軌跡查詢分為KNN(k-nearest neighbor)查詢和范圍查詢,而KNN查詢又分為軌跡點查詢和整條軌跡的查詢。查詢的第一步是定義兩條軌跡的距離,也就是軌跡之間的相似度[4]。

        傳統(tǒng)的海量軌跡數(shù)據(jù)查詢基于樹結(jié)構(gòu)進(jìn)行索引,當(dāng)軌跡較短,即維度較少時性能良好,但是隨著維度的增加(比如20維以上),檢索效率會急劇下降,在性能上甚至還不如對整個數(shù)據(jù)集合進(jìn)行順序檢索,這就是高維空間數(shù)據(jù)處理都會遇到的“維數(shù)災(zāi)難”[5]問題,從而導(dǎo)致難以實現(xiàn)軌跡的快速查詢。局部敏感哈希技術(shù)[6](locality sensitive hashing,LSH)是解決高維數(shù)據(jù)近鄰查詢的有效方法。傳統(tǒng)的LSH采用漢明距離來實現(xiàn)近鄰數(shù)據(jù)的快速查詢,所以在實際應(yīng)用中需要首先將數(shù)據(jù)嵌入到漢明空間,大大增加了計算的復(fù)雜度。目前在大規(guī)模數(shù)據(jù)高維近鄰索引中,一般采用LSH在歐氏空間中的一種隨機(jī)化方法,被稱為精確局部敏感哈希(exact Euclidean locality sensitive hashing,E2LSH)[7]。LSH技術(shù)在很多領(lǐng)域獲得了成功應(yīng)用,例如大規(guī)模網(wǎng)頁的去重、海量圖片搜索以及相似音視頻的檢索等等。

        綜上,文中提出了一種支持海量軌跡數(shù)據(jù)的KNN查詢算法(trajectory E2LSH-based KNN query,TRA-EKNN)。首先研究軌跡大數(shù)據(jù)的向量空間建模問題,并結(jié)合特定領(lǐng)域的興趣點(point of interest,POI)進(jìn)行了初步降維,進(jìn)而采用E2LSH算法實現(xiàn)軌跡數(shù)據(jù)的索引構(gòu)建,并在合成數(shù)據(jù)以及實際數(shù)據(jù)集上進(jìn)行KNN查詢,最后對實驗結(jié)果進(jìn)行了分析和總結(jié),并展望了后續(xù)工作。

        1 相關(guān)工作

        對于軌跡數(shù)據(jù)的KNN查詢算法,根據(jù)查詢結(jié)果的可靠性,可以分為兩類:基于時空數(shù)據(jù)庫索引的窮舉算法和基于哈希的近似算法。

        目前,對于軌跡數(shù)據(jù)的查詢研究多基于窮舉算法。時空數(shù)據(jù)庫[8](spatio-temporal databases,STDB)將時間和空間有機(jī)結(jié)合,實現(xiàn)對時空對象的有效管理。由于R樹以及改進(jìn)樹[9]在空間索引的巨大優(yōu)勢,被大多時空索引結(jié)構(gòu)所采用。近似算法在允許一定誤差的前提下,可以大大提高檢索性能。在海量數(shù)據(jù)日益增多的情況下,近似算法受到研究者的廣泛關(guān)注。在近似算法中,應(yīng)用最為廣泛的是基于哈希的檢索技術(shù)。Athitsos等[10]定義并實現(xiàn)了一種全新的基于距離的哈希算法(distance-based hashing,DBH)。Sanchez等[11]提出了一種基于LSH算法的軌跡聚類算法。這兩種算法都將軌跡視為連續(xù)的軌跡點,即一條曲線,因此計算過程中均沒有考慮時間因素,不適應(yīng)于嚴(yán)格定義的軌跡數(shù)據(jù)。

        國內(nèi)學(xué)者對LSH技術(shù)在軌跡數(shù)據(jù)分析中的應(yīng)用也做了大量相關(guān)研究。趙家石等[12]采用局部敏感哈希技術(shù)尋找在一定時間內(nèi)都相似的移動對象,從而避免傳統(tǒng)方法的交集運(yùn)算過程,實現(xiàn)軌跡相似度的快速估計。廖律超等[13]利用譜哈希實現(xiàn)對交通路網(wǎng)的快速聚類,挖掘出交通軌跡大數(shù)據(jù)的潛在特性,為交通規(guī)劃提供了科學(xué)依據(jù)。印桂生等[14]將文本相似領(lǐng)域比較廣泛應(yīng)用的相似哈希(simhash)[15]技術(shù)應(yīng)用到用戶軌跡的相似性比較中,取得了較好效果。

        2 TRA-EKNN算法

        2.1 相關(guān)定義

        文中所研究的問題是在海量的軌跡大數(shù)據(jù)中,根據(jù)一條軌跡數(shù)據(jù)查詢找出距離最近,也就是最相似的k條軌跡。

        定義1:軌跡是由移動對象在增量時間的一系列軌跡點組成,記為:

        TR={P1,P2,…,Pn}

        其中Pi是移動對象在t時刻的位置(用經(jīng)緯度表示),即pi=(lat,lng,t)。

        定義2:網(wǎng)格空間是指對參與計算的地理空間進(jìn)行劃分編碼形成的網(wǎng)格集合,記為:

        G={gid1,gid2,…,gidm}

        其中g(shù)idi表示編號為i的網(wǎng)格。地理空間可以是一個國家、一個城市,也可以是結(jié)合特定領(lǐng)域知識和含義進(jìn)行篩選之后區(qū)域范圍。

        定義3:網(wǎng)格序列[16-17]是指一條軌跡將經(jīng)過的網(wǎng)格順序排列之后的集合,記為:

        GS={g1,g2,…,gm}

        其中g(shù)i=(gid,t),即在網(wǎng)格gid停留時間為t。

        2.2 算法思想

        TRA-EKNN算法主要包括網(wǎng)格索引建立、軌跡向量建模和KNN查詢實現(xiàn)等過程,具體流程如圖1所示。

        2.2.1 網(wǎng)格建立

        網(wǎng)格索引建立是針對特定領(lǐng)域的POI集合計算每個地理位置的網(wǎng)格編號,然后合并形成一個網(wǎng)格空間G。

        文中采用GeoHash技術(shù)實現(xiàn)網(wǎng)格的編碼。GeoHash通過使用一個字符串同時表示經(jīng)度和緯度兩個坐標(biāo),是一種通用的地址編碼方案,具有如下特點:將二維空間的經(jīng)緯度編碼成一個字符串,在傳統(tǒng)的數(shù)據(jù)庫中做到一維的高效索引;每一個GeoHash表示的不是一個點,而是一個矩形的區(qū)域;GeoHash編碼的前綴可以用來表示更大范圍的區(qū)域。

        GeoHash的計算方法主要分為三步:

        (1)經(jīng)緯度轉(zhuǎn)換為二進(jìn)制。首先將全部的緯度范圍(-90,90)平均分為區(qū)間(-90,0)和(0,90),如果目標(biāo)維度位于第一個區(qū)間,則編碼為0,否則為1,例如39.923 24屬于(0,90),取編碼為1。然后再將(0,90)分為區(qū)間(0,45)和(45,90),而39.923 24位于(0,45),編碼為0。以此類推,直到精度符合要求為止,最終得到緯度的編碼1011 1000 1100 0111 1001。經(jīng)度也采用同樣算法得到編碼。

        圖1 TRA-EKNN算法框架

        (2)按照經(jīng)緯度的二進(jìn)制合并。按照緯度在奇數(shù)位,經(jīng)度在偶數(shù)位的規(guī)則進(jìn)行合并。

        (3)進(jìn)行Base32編碼。編碼字符使用0-9和b-z(其中去掉a,i,l,o四個字母)。

        由以上的GeoHash計算過程,可以知道精度取決于編碼長度,根據(jù)實際需求采用不同長度的編碼,二者的對應(yīng)關(guān)系如表1所示。

        表1 GeoHash編碼長度與精度

        通過將地理位置編碼,實現(xiàn)了對地理空間的網(wǎng)格索引。在此過程中,根據(jù)不同的應(yīng)用場景采用不同的編碼長度,實現(xiàn)效率與精度的統(tǒng)一。將所有特定領(lǐng)域的POI數(shù)據(jù)經(jīng)過GeoHash編碼,可以得到網(wǎng)格空間G,相比于直接將所有的空間都進(jìn)行編碼,此方法利用了數(shù)據(jù)融合的思想,從而大大減少了網(wǎng)格數(shù)量,實現(xiàn)初步降維,在后續(xù)的計算過程中也更具實際意義。

        2.2.2 軌跡向量建模

        借鑒文本分類中向量空間模型(VSM)[18]的思想,將網(wǎng)格空間G視為n維向量的維度,本小節(jié)基于此,將軌跡向量化,然后再進(jìn)行軌跡的距離計算。

        軌跡網(wǎng)格序列化算法是向量建模的關(guān)鍵。將原始軌跡數(shù)據(jù)轉(zhuǎn)換為網(wǎng)格序列,可以在保證一定精度的前提下,簡化軌跡的處理過程。

        算法1:軌跡網(wǎng)格化。

        輸入:軌跡TR={P1,P2,…,Pn}

        網(wǎng)格空間G={gid1,gid2,…,gidm}

        輸出:網(wǎng)格序列GS={g1,g2,…,gm}

        其中g(shù)i=(gid,t)

        詳細(xì)過程:

        1.foreachPiin TR

        2.if(i==1)

        3.last_time=Pi.t

        4.last_geo=geohash(pi.lat,pi.lng)

        5.continue

        6.g.gid=geohash(Pi.lat,Pi.lng)

        7.t_interval=Pi.t-last_time //時間差

        8.if(g.gid inG)//只處理位于網(wǎng)格空間的數(shù)據(jù)

        9.if(g.gid==last_geo)

        10.t_stay=t_stay+t_interval

        11.else//進(jìn)入另一網(wǎng)格

        12.if(g.gid in GS)

        13.Break// 截斷處理

        14.g.t=t_stay+t_interval/2

        15.GS.append(g) //當(dāng)前點加入序列

        16.t_stay=t_interval/2

        17.OUTPUT(GS)

        算法1描述了軌跡轉(zhuǎn)換為網(wǎng)格序列的全過程。最終的輸出包含軌跡所經(jīng)過的網(wǎng)格編碼和相應(yīng)的停留時間。由于采樣時間的差異,導(dǎo)致在同一個區(qū)域可能出現(xiàn)多個軌跡點。停留時間的計算需要考慮兩種情況:(1)兩個軌跡點位于同一個網(wǎng)格時,間隔時間直接累加;(2)前后兩個軌跡點位于不同網(wǎng)格,則停留時間按時間間隔的一半累加。從后續(xù)工作中可以看到,軌跡的向量化意味著軌跡網(wǎng)格不允許出現(xiàn)重復(fù),所以算法1進(jìn)行了簡單處理即軌跡截斷,另外一種方法是將后續(xù)軌跡點當(dāng)作另一條軌跡繼續(xù)處理。

        經(jīng)過算法1的處理,軌跡轉(zhuǎn)換為在選定領(lǐng)域(網(wǎng)格空間)的網(wǎng)格序列?;诖?,可以構(gòu)建軌跡的向量矩陣[13],其中矩陣的行對應(yīng)于全部的網(wǎng)格空間,列對應(yīng)于每條軌跡。假設(shè)軌跡數(shù)據(jù)經(jīng)過算法1的計算,提取出了r條軌跡,相應(yīng)的網(wǎng)格空間大小為n,則構(gòu)成一個n×r的“網(wǎng)格-軌跡”矩陣T,每個元素的值定義為軌跡點在對應(yīng)網(wǎng)格停留時間。

        將軌跡進(jìn)行以上處理之后,可以據(jù)此定義兩條軌跡向量的距離:

        (1)

        軌跡的網(wǎng)格空間可以理解為針對特定領(lǐng)域所關(guān)心的所有位置,也就是在軌跡的距離(相似)公式中參與計算的位置,其他非必要的位置不參與計算。相比于通過聚類方法提取POI(興趣點)的方法,大大降低了數(shù)據(jù)預(yù)處理過程的難度和時間消耗。

        2.2.3 E2LSH算法索引構(gòu)建

        E2LSH是LSH在歐氏空間的一種隨機(jī)化實現(xiàn)方案。基本的思路是:采用基于p穩(wěn)定分布的局部敏感函數(shù)對原始的高維數(shù)據(jù)進(jìn)行降維映射??梢钥闯?,E2LSH繼承了LSH的特點,即在原始空間相鄰的數(shù)據(jù),經(jīng)過哈希之后,在新的空間上存在很大的概率也相近,具體哈希函數(shù)如下:

        (2)

        其中,a是獨(dú)立隨機(jī)選擇的d維向量,b為范圍[0,w]的一個隨機(jī)數(shù)。函數(shù)h將一個d維向量映射到一個整數(shù)集,然后以w為寬度進(jìn)行等距離劃分。E2LSH將k個哈希函數(shù)聯(lián)合使用,稱之為函數(shù)族:

        (3)

        函數(shù)族g對應(yīng)于L個哈希表,隨機(jī)獨(dú)立選取的k個h函數(shù)又構(gòu)成了每個g函數(shù),函數(shù)的值對應(yīng)具體的哈希桶。

        從算法思想的本質(zhì)上看,LSH是不確定的,概率性的,可以歸結(jié)為近似算法。隨著數(shù)據(jù)規(guī)模越來越大,數(shù)據(jù)處理的時效性要求面臨很大挑戰(zhàn),這時通過犧牲一定精度以獲得更快的處理速度,在一些領(lǐng)域是可行而有效的。本節(jié)將此算法應(yīng)用于軌跡數(shù)據(jù)索引的構(gòu)建,具體過程如下:

        (1)對于數(shù)據(jù)庫中的軌跡,經(jīng)過算法1得到一條包含停留時間的網(wǎng)格序列;

        (2)對于每條網(wǎng)格序列,由式(3)得到長度為k的哈希桶,計算L次,組成L個哈希表;

        (3)對哈希表中的每個桶生成一個索引文件。

        2.2.4 KNN查詢實現(xiàn)

        KNN查詢的目標(biāo)是在軌跡數(shù)據(jù)中找到與查詢軌跡TR距離最近的k條軌跡。傳統(tǒng)的線性算法通過計算待查詢TR與所有的軌跡的距離,然后從中選出最近的k條軌跡,顯然在這過程中計算量十分的巨大。雖然可以采用R-Tree、KD-Tree等樹結(jié)構(gòu)進(jìn)行優(yōu)化,但是“維數(shù)災(zāi)難”的問題,使得軌跡點數(shù)較多時,存在著大量的回溯計算,導(dǎo)致樹結(jié)構(gòu)不能發(fā)揮作用,這時退化成線性運(yùn)算。

        本算法在上一節(jié)構(gòu)建好軌跡數(shù)據(jù)的E2LSH索引的基礎(chǔ)上進(jìn)行查詢,具體流程如下:

        (1)運(yùn)用算法1得到所要查詢的軌跡對應(yīng)的網(wǎng)格序列;

        (2)計算待查詢網(wǎng)格序列的L個哈希表索引;

        (3)遍歷哈希表,找到對應(yīng)的哈希桶,對桶內(nèi)的軌跡,利用式(1)計算對應(yīng)的距離,返回最近的k條軌跡。

        本算法使用E2LSH技術(shù),首先將所有的軌跡數(shù)據(jù)按照距離劃分到不同的哈希桶,同一個哈希桶的軌跡距離較近,所以KNN查詢只需要根據(jù)不同哈希值比較同一個或者相近桶內(nèi)的軌跡,從而極大地減少了需要計算比較的軌跡數(shù)量,使得海量軌跡的KNN查詢效率得到有效提升。

        3 實驗結(jié)果與分析

        實驗采用兩個數(shù)據(jù)集:合成數(shù)據(jù)用來檢測算法的時間效率,并與傳統(tǒng)查詢算法進(jìn)行對比;上海出租車軌跡數(shù)據(jù)用來證明算法在實際應(yīng)用中的有效性。實驗環(huán)境為單機(jī),處理器為Intel(R) Core(TM) i3 M 380 @ 2.53 GHz,內(nèi)存6 G,操作系統(tǒng)為Windows7 64位 SP1,采用python語言編程實現(xiàn)。

        3.1 合成數(shù)據(jù)實驗

        本實驗的合成軌跡數(shù)據(jù),根據(jù)網(wǎng)格數(shù)量和軌跡停留時間隨機(jī)生成。假設(shè)網(wǎng)格數(shù)量為m,軌跡數(shù)量為n,根據(jù)m和n的不同取值,查詢某條軌跡的最近10條軌跡,消耗時間如圖2所示。

        其中10 000*10 000表示10 000條軌跡對應(yīng)于10 000個網(wǎng)格空間??梢钥闯鰰r間消耗與二者的乘積大致是一個線性關(guān)系,隨著網(wǎng)格空間的增大和軌跡數(shù)量的增多,計算所消耗的時間成線性增長。

        圖2 窮舉消耗時間對比

        采用TRA-EKNN算法對上述數(shù)據(jù)進(jìn)行KNN查詢,根據(jù)文獻(xiàn)[6]中的建議值,算法中w取值為4,k取80,L取10,此時獲得的準(zhǔn)確率大于95%,時間消耗如圖3所示。

        圖3 TRA-EKNN消耗時間對比

        從圖3可知,TRA-EKNN算法中,時間消耗主要分索引建立和軌跡查詢兩部分,而且索引的建立時間遠(yuǎn)大于查詢時間,而且當(dāng)網(wǎng)格空間固定即軌跡的維度相同時,軌跡的數(shù)量只影響索引的建立時間,而查詢時間基本相同。

        在實際的應(yīng)用中,一般要先將海量的軌跡建立索引,圖1所示的查詢算法框架也體現(xiàn)了這一點。在后續(xù)的KNN查詢時間一般指的就是圖3中的查詢時間,也就是說在進(jìn)行軌跡查詢之前索引已經(jīng)建立完畢,查詢過程中無需關(guān)心E2LSH索引的建立時間。對比圖2可以看出,本算法的查詢時間消耗明顯小于窮舉算法。

        3.2 上海出租車軌跡數(shù)據(jù)實驗

        上海市出租車數(shù)據(jù)集,采集了2007年2月20日當(dāng)天4 316臺出租車的GPS記錄信息,包括出租車標(biāo)識、時間戳、經(jīng)緯度、瞬時速度、順時針角度以及載客情況等。本實驗只取標(biāo)識、時間戳和經(jīng)緯度三個信息。

        根據(jù)采集到的上海市交通相關(guān)的POI數(shù)據(jù)共計242 556條,考慮到實驗數(shù)據(jù)是出租車GPS軌跡結(jié)合表1的GeoHash長度與精度關(guān)系,哈希長度設(shè)定為7,誤差約為76米,將POI數(shù)據(jù)中的經(jīng)緯度計算GeoHash,去重后,共計有71 495個網(wǎng)格。上海面積約為6 340平方公里,如果全部進(jìn)行7位的GeoHash編碼,大約一百萬個網(wǎng)格(由于行政區(qū)劃的不規(guī)則,數(shù)據(jù)不準(zhǔn)確,在此僅進(jìn)行估算)。可以看出由于結(jié)合了交通領(lǐng)域的POI數(shù)據(jù),使得網(wǎng)格空間大幅壓縮。

        對出租車軌跡采用算法1進(jìn)行處理,共提取有效軌跡對應(yīng)的網(wǎng)格序列1 896條,由于出租車行駛過程中會出現(xiàn)司機(jī)休息和等待乘客等情況,停留時間會比較長,為了體現(xiàn)軌跡比較的實際意義,將停留時間大于二十分鐘的軌跡截斷,然后將其余軌跡的停留時間作歸一化處理。

        采用TRA-EKNN算法,對所有的軌跡數(shù)據(jù)建立E2LSH索引,經(jīng)過多次試驗,此算法可以在較短的時間內(nèi)查詢出KNN結(jié)果,并有較高的準(zhǔn)確率。

        3.3 算法分析

        正如前文所述,時空軌跡數(shù)據(jù)的KNN算法主要是基于傳統(tǒng)的窮舉算法,即采用一一匹配的暴力搜索的方式進(jìn)行,此時時間復(fù)雜度是線性的,即○(N)。隨著數(shù)據(jù)規(guī)模越來越大,這種方式會消耗大量的時間。

        文中提出的TRA-EKNN算法,首先建立了LSH索引,雖然帶來了空間消耗增加的問題,但檢索的時間復(fù)雜度降為了○(logN),這對于一些時效性要求較高的場景是完全適用的。

        4 結(jié)束語

        將在海量文本、音頻、視頻數(shù)據(jù)處理廣泛應(yīng)用的E2LSH算法引入到軌跡數(shù)據(jù)的KNN查詢中。首先針對不同的應(yīng)用場景,結(jié)合特定領(lǐng)域POI數(shù)據(jù)建立網(wǎng)格空間;然后對軌跡數(shù)據(jù)進(jìn)行預(yù)處理,構(gòu)造出軌跡的網(wǎng)格向量,利用E2LSH算法實現(xiàn)索引。從圖1算法的實現(xiàn)框架來看,對于增量的軌跡只需要計算哈希值,然后插入索引即可,計算簡單。實驗結(jié)果表明,在保證一定的準(zhǔn)確率的情況下,該算法有效降低了軌跡KNN查詢時間。下一步將繼續(xù)對軌跡的特征提取方法進(jìn)行探索,找出更適合軌跡數(shù)據(jù)處理的向量空間構(gòu)建方案,使此方法能夠在海量的軌跡數(shù)據(jù)挖掘中得到更廣泛的應(yīng)用。

        连续高潮喷水无码| 风流老太婆大bbwbbwhd视频| 免费国产黄网站在线观看可以下载 | 精品无码AⅤ片| 亚洲精品视频免费在线| 久久精品蜜桃亚洲av高清| 特级精品毛片免费观看| 中国精学生妹品射精久久| 国产精品亚洲综合天堂夜夜| av中文字幕性女高清在线| 亚洲av综合色区无码专区桃色| 搡老熟女中国老太| 国产精品1区2区| 在线久草视频免费播放| 在线精品亚洲一区二区动态图| 国产va免费精品高清在线| 日本专区一区二区三区| 在线看亚洲一区二区三区| 最美女人体内射精一区二区| 亚洲av电影天堂男人的天堂| 国产精品一区2区三区| 久久婷婷综合激情亚洲狠狠 | 人妻熟女一区二区三区app下载| 中文字幕在线免费 | 97成人精品| 亚洲中国美女精品久久久| 精品一二三四区中文字幕| 国产精品三级在线观看无码| 国产日产欧洲系列| 久久久精品久久波多野结衣av | 久久精品中文闷骚内射| 欧美色aⅴ欧美综合色| 91国产自拍视频在线| 久久99热国产精品综合| av潮喷大喷水系列无码| 国产96在线 | 免费| 男女激情视频网站在线| 国产亚洲日本精品无码| 国产成+人+综合+亚洲专| 亚洲无人区乱码中文字幕动画 | 91网红福利精品区一区二|