一種基于度特征替換策略的流式圖抽樣方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于流式圖數(shù)據(jù)抽樣技術(shù)領(lǐng)域,更具體地,涉及一種基于度特征替換策略 的流式圖抽樣方法。
【背景技術(shù)】
[0002] 圖作為一種能夠表達(dá)豐富的數(shù)據(jù)和關(guān)系的數(shù)據(jù)結(jié)構(gòu),被廣泛地應(yīng)用在各種領(lǐng)域的 分析當(dāng)中。當(dāng)圖數(shù)據(jù)規(guī)模達(dá)到很高的數(shù)量級,執(zhí)行全圖分析和操作開銷非常巨大。而且在 實際的場景中,點和邊的信息會隨著時間的推移動態(tài)改變,即動態(tài)圖,就這種情況而言,全 圖分析很難實現(xiàn)。此時一般可以選取圖中的部分點或邊,得到抽樣子圖,然后進(jìn)行處理,以 期獲取足夠準(zhǔn)確的結(jié)果,就會緩解或消除圖規(guī)模和動態(tài)圖的帶來的處理難度。
[0003] 流式圖抽樣方法不需要訪問全圖結(jié)構(gòu),只需要對流式到達(dá)的每條邊進(jìn)行抽 樣處理?,F(xiàn)有的部分推導(dǎo)邊抽樣PIES(Partially_InducedEdgeSampling,見論文: "Space-efficientsamplingfromsocialactivitystreams")算法,實現(xiàn)了在流式圖中 抽樣出具有代表性的子圖。流式圖Stream= {etl,et2, . . .,etn}是以邊eti (1彡i彡n)為流 式元素的集合,下標(biāo)表示流式到達(dá)的次序,給定抽樣目標(biāo)點數(shù)目n,經(jīng)過抽樣算法對Stream 的一次單向處理后,得到子圖Gs =(Vs,Es),Vs為子圖的點集合,E3為子圖的邊集合,其中點 集中點的個數(shù)|VS| =n。PIES算法在邊選擇上采用蓄水池抽樣的思想,先將元素流中前面 的m個元素直接加入抽樣池;后面對每個流式到達(dá)的元素按照當(dāng)前流式處理的進(jìn)度進(jìn)行分 配抽取概率,后面被抽取到的元素會按相同概率隨機替換掉當(dāng)前抽樣池中的一個元素。在 替換發(fā)生時,如何從1中選擇出一個將要被替換的點r是替換策略的關(guān)鍵。PIES算法按 照等概率從Vs中隨機選擇一個點作為被替換的點。這種方法對每個點都很公平,但對邊并 不公平,這里的點關(guān)聯(lián)到很多邊,在替換點的同時會相應(yīng)地刪除掉與該點相關(guān)聯(lián)的邊。沒有 考慮度特征,頻繁刪除有較高存在價值的高度點,會造成子圖結(jié)構(gòu)的頻繁抖動。后續(xù)提出的 PIES改進(jìn)方法PIES-MIN,考慮度特征,替換度最小的點(大部分情況下是度為1的點)。過 于忽視最小度的點,導(dǎo)致高度點集聚,使得到子圖的邊較密集,與原圖特性相似度不高。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明目的在于提供一種基于度特征替換策略的部分推導(dǎo)邊抽樣的流式圖抽樣 算法,目的在于減少頻繁刪除度高的點造成的子圖抖動,緩解過于忽視度最小度的點而導(dǎo) 致高度點集聚、子圖邊過于密集的問題,得到的抽樣子圖與原圖的特性相似度高。
[0005] 為了實現(xiàn)上述目的,本發(fā)明提供了一種基于度特征替換策略的流式圖抽樣方法, 包括如下步驟:
[0006] S1.流式邊e= (u,v)到達(dá),判斷是否會產(chǎn)生點替換,如果會發(fā)生點替換,則執(zhí)行 S2,否則執(zhí)行S7 ;
[0007] S2.根據(jù)抽樣子圖Gs中點的度特性,確定點替換概率函數(shù)f(dJ,山GD ;根據(jù)概率 函數(shù)計算點 '被替換的概率烏=/(<),得到子圖中點替換概率集合>(八,八,…^ n. 其中 是點Vi的度,且zA. = 1。抽樣子圖為Gs= (Vs,Es),VS={vv2,. . .,vn}為子圖的 .巧' l 點集合,Vi(l彡i彡n)為抽樣子圖中的點,且點集大小|VS| =n;ES={ee2, . . .,em}為子 圖的邊集合,e](l彡j彡m)為抽樣子圖中的邊;D= {山,d2,. . .,dj為點集合中點的度分 布;
[0008] S3.采用遺傳算法中的選擇算法select(P),其中P為S2中計算得到的點替換概 率集合,選取待替換的點r;
[0009] S4.根據(jù)替換原則,判斷S3選擇的點r是否符合要求,若符合則轉(zhuǎn)至S5 ;否則轉(zhuǎn)至 S3 ;
[0010] S5.從1中刪除r,從刪除與r相關(guān)聯(lián)的邊;
[0011] S6.從1中刪除獨立點;
[0012] S7.把新增點和邊e加入子圖Gs中。
[0013] 本發(fā)明的一個實施例中,所述步驟S1中判斷是否會產(chǎn)生點替換的依據(jù)如下:
[0014] a)若uGVs,vGVs,不會引起1添加新點,不發(fā)生替換;
[0015] b)若uGVs,vgR,如果現(xiàn)有點的個數(shù)|VS| <n,則不發(fā)生替換;否貝1J,點v需要 添加到Vs*并且替換掉一個現(xiàn)有的點;
[0016] c)若如果現(xiàn)有點的個數(shù)|VS| <n_l,則不發(fā)生替換;否則,u,v都需 要添加到Vs中并發(fā)生一次或兩次替換。
[0017] 本發(fā)明的一個實施例中,所述步驟S2中確定點替換概率函數(shù)以山)的原則為:
[0018] 為度較高的點分配較小的替換概率,即函數(shù)在作用域[1,d_]內(nèi)單調(diào)遞減, 其中(1_為度分布集合中最高的度數(shù)。
[0019] 本發(fā)明的一個實施例中,所述以山)是反比例函數(shù),或者是遞減的指數(shù)函數(shù)。
[0020] 本發(fā)明的一個實施例中,所述步驟S3中選擇算法select(P)的原則是:使得替換 概率高的點被選擇的概率大。
[0021] 本發(fā)明的一個實施例中,所述選擇算法select(P)是遺傳算法中的輪盤賭選擇算 法,或者是比例選擇算法。
[0022] 本發(fā)明的一個實施例中,所述步驟S4中的替換原則如下:
[0023] a)上述S1的b)情況下,在選擇替換點時,不能選擇新增邊中的點,并且在后續(xù)的 孤立點刪除時也不能刪除新增邊中的點;
[0024] b)上述S1的c)情況下,假設(shè)先添加u,再添加v;在添加u時,1中沒有與其相關(guān) 聯(lián)的點,所以發(fā)生的替換并沒有限制;后面在添加v時,由于Vs中存在與其相連的點u,所 以替換出的點不能為u;在這種情況下,第一個新增點在替換時沒有限制,第二新增點在替 換時不能替換剛新增的第一個點,并且在后續(xù)的孤立點刪除時也不能刪除剛新增的第一個 點。
[0025] 以上的基于度特征替換策略的圖抽樣算法,簡稱為PIES-INV,有別于現(xiàn)有技術(shù)方 案PIES算法和PIES-MIN算法,總體而言,本發(fā)明方法與現(xiàn)有技術(shù)方案相比有如下優(yōu)勢:
[0026] 1、與PIES算法中隨機選擇替換點相比,考慮高度點的重要性,為高度點分配低替 換概率的方法,降低高度點的替換概率,從而減少了頻繁刪除度高的點造成的子圖抖動;
[0027] 2、與PIES-MIN算法只選擇最小度的點為替換點相比,采用遺傳算法中的選擇算 法,避免了過于忽視度最小度的點而導(dǎo)致高度點集聚、子圖邊過于密集的問題。對低度點多 或者集聚系數(shù)小的圖,得到的抽樣子圖與原圖的特性相似度高。
【附圖說明】
[0028] 圖1為本發(fā)明提出的替換策略算法流程;
[0029] 圖2為本發(fā)明實施例提供的流式到達(dá)的邊示意圖;
[0030] 圖3為本發(fā)明實施例提供的抽樣過程中暫存子圖的點、邊集合示意圖;
[0031] 圖4為本發(fā)明實施例提供的輪盤賭概率分布示意圖。
【具體實施方式】
[0032] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對 本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個實施方式中所涉及到的技術(shù)特征只要 彼此之間未構(gòu)成沖突就可以相互組合。
[0033] 本發(fā)明通過以下技術(shù)手段實現(xiàn):
[0034] 設(shè)抽樣子圖為Gs=(Vs,Es),Vs={vi,v2, . . .,vn}為子圖的點集合,其中, Vl(l彡i彡n)為抽樣子圖中的點,且點集大小|VS| =n。Es= {ei,e2,...,eni}為子圖的邊 集合,e_j(l彡j彡m)為抽樣子圖中的邊。點集合中點的度分布為D= {山,d2, . ? .,dk};每 個度對應(yīng)的點數(shù)目為C= {c^,c2, . . .,ck}。
[0035] 如圖1所示,本發(fā)明提供了一種基于度特征替換策略的圖抽樣算法,包括以下步 驟:
[0036] S1.流式邊e= (u,v)到達(dá),先判斷是否會產(chǎn)生點替換,如果會發(fā)生點替換,則執(zhí)行 S2,否則執(zhí)行S7。
[0037] 判斷是否會產(chǎn)生點替換的依據(jù)如下:
[0038] a)若uGVs,vGVs,不會引起加新點,不發(fā)生替