999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

大數據下圖三角計算的研究進展

2016-06-28 13:19:17金宏橋董一鴻
電信科學 2016年6期
關鍵詞:方法

金宏橋,董一鴻

(寧波大學信息科學與工程學院,浙江 寧波 315211)

綜述

大數據下圖三角計算的研究進展

金宏橋,董一鴻

(寧波大學信息科學與工程學院,浙江 寧波 315211)

圖三角數量的計算是計算網絡聚集系數和傳遞性的重要步驟,廣泛應用于重要角色識別、垃圾郵件檢測、社區發現、生物檢測等。 在大數據背景下,計算圖中三角形算法主要面臨時空消耗和計算準確性兩大難題。介紹了代表性的大圖中計算三角形的算法,主要存在準確計算和近似計算兩大類。 準確計算算法又分為內存算法、外存算法和分布式算法,時空消耗或 I/O 消耗很大。 近似計算算法中,有輔助算法、非流式算法和流式算法之分。最后對計算三角形算法進行了歸納總結。

準確計算;近似計算;三角形;圖

1 引言

隨著網絡技術和社會網絡服務的發展,網絡中的數據量和信息量越來越大。在這種大數據的環境下,對數據的分析和挖掘顯得尤為重要。近年來,對有大規模數據的網絡的分析得到越來越多的關注。計算機學科的數據結構圖可以作為很多種網絡的模型,如萬維網、P2P 網絡和社交網絡等都可以用含有特定信息的圖作為它們的模型。對網絡的分析逐漸轉化為對保存網絡重要信息的圖的分析。由于網絡中的關系和個體數量非常多,所以作為其模型的圖的規模也很大。

社會網絡的同質性和傳遞性產生了對圖中三角形的研究。圖中的三角形是復雜網絡分析的重要角色,不論是來自社會交互、計算機交流、金融交易、蛋白質還是生態學網絡,其中三角形的數量都是巨大的,它在這些領域中有著非常廣泛的應用。通過三角形的分布可以區分哪些是垃圾郵件的主人。角色行為識別中,通過使用者參與的三角形的數量可以判斷這個使用者的地位。生物信息學中的主題檢測需要計算三元組的頻率。三角形巨大的數量可以與蛋白質交互網絡的拓撲結構和功能性相聯系。三角形各點度數之間的關系也可以作為基礎圖的描述符,在數據庫中,三角形也有具體的應用。

目 前 圖 中 三 角 形 的 計 算 主 要 分 為 準 確 計 算 (exact counting)和 近 似 計 算 (approximate counting)兩 種 類 型 。準確計算可以準確地計算圖中三角形的數量,對于大圖來說,規模很大,所以計算的時空消耗很大,外存算法的I/O 消耗也 會很大 。研 究人員 的重點就是 在保持準確計算的情況下,減少時空消耗和 I/O 次數。近年來,分 布式框架 MapReduce 的出現,也使很多研究人員研究此框架下的計算三角形算法。相較而言,近似計算比準確計算的實際應用更廣泛,同時空間消耗較少。在保持一定準確度的情況下,研究人員對近似計算三角形數量更感興趣。對于近似計算,大部分的研究者將重點放在采樣上,通過一定的采樣方法證實,采樣得到的三角形數量與實際數量的差值很小,同時將時間空間的復雜度降低。目前,采樣方法很多,各有所長。準確計算三角形算法的部分關鍵點也可以用在近似計算算法上。如上文所述,隨著互聯網的快速發展,大規模的圖不斷涌現,在圖流中使用限制的內存來估算三角形的數量,這個問題的研究意義越來越顯著,同時難度也越來越大。

2 圖三角的基本概念

定 義 1 (三 角 形 )給 定 一 個 圖 G=(V,E),它 包 含 了 一個 頂 點 集 合 V、一個邊的 集 合 E,|V|和|E|分 別 表 示 頂 點 和邊 的 個 數 。如 果 頂 點 u、υ、w∈V ,邊{u,υ}、{υ,w}、{w,u}∈E,那 么 3 個 頂 點 和 3 條 邊 組 成 一 個 三 角 形 ,稱為 ?uυw。

定義 2 (三角形的實際數量、準確數量和估算數量)用 T 表示圖 G 中三角形的實際數量,用 t表示通過準確算法得出的圖 G 中三角形的數量,用 T'表示通過估計算法得出的圖G中三角形的數量。

定 義 3 (度 和 鄰 域 )頂 點 υ的 鄰 域 Γ(υ)表 示 所 有 與頂 點 υ相 鄰 的 點 ,滿 足 Γ(υ)={u∈V:(u,υ)∈E}。頂 點 υ的 度 d(υ)是頂點 υ連 接 的 所 有 邊 的 個 數或 者 是 它 的 鄰 域 ,滿 足d(υ)=|Γ(υ)|。圖 G 最 大 的 度 dmax(G)是指圖中頂點最大的度,即 dmax(G)=max{d(υ):υ∈V}。 m、n 分 別 表 示 圖 中 邊 、點 的 個數,頂點的度和圖中的邊數滿足。入度和出度是對于有向圖來說的,一個頂點的入度等于被所有箭頭所指的數量,一個頂點的出度等于被所有箭尾所指的數量。

定 義 4 ((1+ε)-approximation) 返 回 q 的 以 ε為 因 子的估計值 q',當 q 滿足(1-ε)q≤q'≤(1+ε)q,其中,ε<0。

定義 5 ((ε,δ)-approximation)返 回 q 的 以 ε、δ為 因 子的估計值 q',當 q 至少以 1-δ的可能性滿足,(1-ε)q≤q'≤(1+ε)q,其中,ε<0,δ<1。

定義 6 (圖流)圖中的邊是以一串流的形式加入的。

3 圖三角的準確計算

圖三角的計算有準確計算和近似計算兩種類型。準確計算圖三角算法目前有內存算法、外存算法、分布式算法 3 類。內存算法指當內存能容納整個圖,可以在內存中將圖中的三角形計算出來的算法;外存算法是指當圖的規模很大,不能全部存入內存進行計算時,通過一定的策略將圖分為幾個部分存入內存進行計算,這種算法會產生一定數量的 I/O 操作;分布式算法是指用分布式框架來計算圖中三角形數量,目前主要采用 MapReduce 框架。內存算法中除了具有代表性的Node-iterator[1]和 Edge-iterator算法,還有 Matrix-multiplication[2]算法。基于點邊迭代和矩陣相乘也出現了一系列改進的算法 ,有 AYZ[3]、Node-iterator-core[4]、Forward[5]、Forward-hashed[6]、Compact-forward[7]。 時 隔 多 年 又 出 現 了 結 合 點 邊 迭 代 的Combined Iterator[8]算 法 。本 文 將 介 紹 兩 個 外 存 算 法 :Chu 和Cheng[9]提 出 的 基 于 圖 劃 分 的 算 法 和 Hu[10]提 出 的 有 效 I/O的算法。近些年來,隨著分布式框架的應用,出現了基于MapReduce 框 架 的 GP[11]、TTP[12]以 及 CTTP[13]算 法 。目 前 出現的準確計算圖三角算法都應用在靜態圖上。以下將一一介紹。

3.1 內存算法

內存算法最初適用于規模比較小的圖,小圖完全可以存入計算機內存中,并進行計算。內存算法最先找到了如何使用計算機解決三角形計算問題的方法,并且不斷地在算法細節中得到突破,以減少運行時空成本。其中,基本迭代算法簡單,但成本高,不適合規模大的圖。Fast Common Neighbor Iteration 算 法 通 過 混 合 線 性 掃 描 二 分 法 和 分 段 索引法,在時間上進行了很大優化,同時增加了空間的開銷。隨著圖規模的增長,內存算法需要更大內存的計算機。

3.1.1 迭代算法

Node-iterator(點 迭 代 )算 法 檢 測 每 一 個 頂 點 的 每 一 對鄰點之間是否有一條邊,如果有,那么就得到一個三角形,反之得不到。為了使每一個三角形只被計算一次,需要安排 每 個 頂 點 的 順 序 。Edge-iterator(邊 迭 代 )算 法 迭 代 所 有邊,比較每條 邊 兩個頂點 的 領域,對于一條 邊{u,w},僅當 υ同時出現在 Γ(u)和 Γ(w)中,3 點{u,υ,w}才組成一個三角形。

Alon、Yuster 和 Zwick 將 點 迭 代 和 矩 陣 相 乘 結 合 在 一起,得到 AYZ 算法。算法將點集分為度數低的頂點集合Vlow={υ∈V:d(υ)≤β}和 度 數 高 的 頂 點 集 合 Vhigh=V/Vlow,其 中 ,β=mγ-1/γ+1,γ 是 矩 陣 乘 法 指 數 。低 度 數 的 點 集 采 用 標 準 點 迭代方法,高 度 數 點 集 采 用 快 速 矩 陣 乘 法 。Node-iterator-core算法是在點迭代的基礎上,在每次選擇頂點迭代時選擇當前度數最小的頂點,當此頂點所在的三角形全部被計算后,將此頂點刪除。Forward 算法是邊迭代算法的改進。在邊迭代算法中,需要將邊兩個頂點的所有鄰接頂點都比較一下,在 Forward 算法中只需要比較邊迭代中所有鄰接頂點的子集 A。在這個算法中,由于所有的點都是有順序的,所以 可以將圖 視 為有向圖 ,方 便 理 解算法過 程 。A(υ)的 數據結構的大小是不大于點 υ的入度。Latapy M 提 出 了 一 個對 Forward 改 進 的 算 法 Compact-forward。Compact-forward使用迭代器迭代鄰接點的子集,迭代方法和邊迭代方法相同。鄰接點是排序過的,比較語句也在一個可達的確定指數前停止。雖然時間上界和 Forward 算法相同,但是它不需要額外的數組,因此節省了時間和空間。

Oracle Labs 的 Sevenich M 提 出 了 FCNI (fast common neighbor iteration)算 法 。該算法的基準算法是結合點迭代、邊迭代兩種迭代算法的 Combined Iterator算 法 ,該 基 準 與前面 提 到 的 Forward 算法類 似 ,多了鄰點 選擇 時 的 排 序。FCNI 算 法 指 出 Combined Iterator 算 法 的 主 要 部 分 是 重 復求出不同頂點對的共同鄰點,所以想要快速計算三角形的個數,就需要快速求出頂點對的共同鄰點。面臨的問題是:求一個度很高的頂點和其他頂點的共同鄰點需要很長的時間。于是他們提出了兩個方法來解決這個問題:混合線性掃描二分法和分段索引法。每個頂點的鄰點存儲在有序的鄰接數組中,問題轉化為求兩個有序數組的共有元素。當兩個數組長度差距過大時,采用二分法,算法從選擇長數組的中間元素和用二分查找短數組開始。當兩個數組度都較小時,采用線性掃描。算法又將度數高的頂點構建了索引,對他們的鄰點數組構造了分段索引。這兩個方法的應用使該算法的運行時間大大減少,在當前內存算法中運行時間最少。

3.1.2 矩陣相乘算法

在 矩 陣 相 乘 (matrix-multiplication)算 法 中 ,假 設 A 是圖 G 的鄰接矩陣,A3對角線上的數字分別代表對應頂點所在三角形個數的兩倍。A3對角線上的數字之和代表圖 G中三角形個數的 6 倍,因為三角形由 3 個頂點組成,一個三角形會被重復計算 3×2 次。這會導致算法運行時間達到O(n3)。通過快速矩陣相乘的方法可以使運行時間下降。

3.2 外存算法

當圖的規模過大或者計算機的內存不足以裝下整個圖時,采用外存算法是基本策略。外存算法需要解決的問 題是保證計算 的三角形個數的 準 確性,同時減 少 I/O 操作。Chu、Cheng 算法和 MGT 算法都是將圖的信息分段載入內存進行計算。 不同的是,分別用不同的方法保證圖中三角形不被拆開。前者劃分子圖時保留了所有頂點的鄰點,后者在有向化圖之后載入子圖和頂點的鄰接表。表 1 是在 I/O 操 作 和 運 行 時 間 方 面 ,對 Chu、Cheng 算 法 DGP、RGP 和算法 MGT 在內存使用率為 25%時,各算法在不同數 據 集 上 的 效 果 比 較 ,其 中 ,使 用 的 機 器 是 3 GHz CPU 和8 GB 的 內 存 。MGT 算 法 在 I/O 操 作 數 和 運 行 時 間 上 都 優于 Chu、Cheng 算法。

表1 DGP、RGP 和 MGT 的比較

3.2.1 基于圖劃分的算法

Chu 和 Cheng 提 出 了 基 于 圖 劃 分 的 外 存 圖 三 角 計 算算法,該算法首先將整個圖劃分成幾個子圖后,存在外存,子圖的規模小,就可以放入內存。 然后依次將每個子圖調入內存,計算當前子圖中的三角形數量。為了保證圖劃分后不會將三角形拆開,每個子圖實際上也保留了當前部分中所有頂點的鄰點,如圖 1、圖 2 所示。 根據劃分圖的方法 ,Chu 和 Cheng 有 兩 種 方 法 :DGP (deterministic graph partition)和 RGP(randomized graph partitioning)。 前 者 采 用確定方法劃分子圖,后者采用隨機方法劃分子圖。 劃分子圖是一個難題,如果某部分子圖的鄰點很多,會使算法的時空效率變高。

圖1 基于圖劃分算法的原圖

3.2.2 有效 I/O 算法

Hu X C 和 Tao Y F 設 計 了 一 種 有 效 I/O 算 法 ,計 算 三角 形 算 法 MGT(massive graph triangulation),這 是 針 對 靜 態的圖。這個算法與 Chu 的算法有明確的不同。他們將無向圖以有向圖的形式表現出來,如圖 3所示。有向圖的有向邊是根據無向圖頂點的度和編號設置指向的。例如,當頂點 a的度小于 b的度或者 a的度等于 b的度但 a的編號小于 b 的 編號,定義 a<b,此時 無 向邊{a,b}在 有 向 化后 是 a 指 向 b。無 向 三 角 形 ?uυw變 為 有 向 三 角 形,當 u<υ< w,其 中 ,頂 點 u 被 稱 為 (cone vertex 錐 頂 點 ),邊 {υ,w}被 稱為(pivot edge 中樞邊),如圖 4 所示。 算 法 的 準 備 工 作 是 將無向圖根據規則進行有向化,并以鄰接表的形式存儲,每一個頂點的鄰接表只存它的出—鄰居(即它指向的頂點)。MGT算法是逐步將有向圖中的邊載入內存,根據需要從外存載入關聯的頂點,計算出三角形的數量。具體過程是:

·將有向圖中的一部分邊載入內存;

·得出當前內存中的邊所在的頂點;

· 對于每一個頂點 υ,從外存中得到它的鄰接表(出—鄰接表),將其出—鄰居與內存中的頂點做交集。 將頂點υ到交集得到的頂點所成的邊與當前載入內存中的有向圖的邊做并集,找出其中以 u為錐頂點的三角形個數,并釋放相應的空間。

MGT 算法可以正確地找出所有的三角形,因為第一步保證了每一條有向圖的邊都可以在一個獨特的迭代中載入內存。同時第二步保證了可以找出以當前載入內存的邊為中樞邊的三角形。MGT 算法在 I/O 和 CPU 上都非常高效。

圖2 基于圖劃分算法劃分后的圖

圖3 無向圖變為有向圖

圖4 有向三角形

3.3 分布式算法

由于分布式算法的普及,一些研究使用 MapReduce算法計算圖三角。目前使用 MapReduce 框架的算法是基于圖劃分來分析問題的。在某些方面加快了計算算法,但同時也出現了一些問題。接下來介紹 3種基于MapReduce 框架的算法。這 3 個算法有一個共同的基礎,是圖的分割。圖的分割算法是先將頂點均分為p個部分(partition),V=V1∪V2∪ … ∪Vp,其 中 ,當 i≠j 時 ,Vi∩Vj=Φ 。 同 時 定 義 Vijk=Vi∪ Vj∪ Vk,Eijk= {(u,w )∈ E :u,w ∈Vijk},Gijk= (Vijk,Eijk)。Gijk叫 做 3-partition ,Gij是 2-partition ,Gi是 1-partition ,Gijk和 Gij的 含 義 如 圖 5 、圖 6 、圖 7 所 示 。GP算法是 三 角 形 計 算 在 MapReduce 上 的 初 次 應 用 ,GP 算法有很多冗余計算。TTP 算法發現 GP 算法有很多冗余計算,原因是在 map 階段輸出了重復的邊。為了避免GP 算法冗余計算的產生,TTP 算法定義了 3 個 類型的三 角 形 。CTTP (colored triangle type partition )算 法 是 針 對GP 算 法 的 “curse of the last reducer”而 被 提 出 的 ,避 免了 不 均 衡 。表 2 是 在 時 間 和 每 輪 MapReduce 中 數 據 shuffle大 小 上 ,對 GP、TTP、CTTP 算 法 的 比 較 。運 行 平 臺 是Hadoop,集群由 40 臺機器組成 ,每臺機器的內存為 4 GB。由表 2 可見,CTTP 算法在時間和空間上都優于GP、TTP算法。

圖5 頂 點 平 均 分 為 p 個 部 分 (p=4 )

圖6 3-partition Gijk

圖7 2-partition Gij

表2 GP、TTP、CTTP 算法的比較

3.3.1 GP 算法

Suri 和 Vassilvitskii 使 用 MapReduce 框 架 提 出 了 GP(graph partition)算 法 。算法的第一步是將圖中的頂點劃分為 p 個 部 分 ,Gi=(Vi,Ei),其 中 ,0<i≤p,所 以 每 個 部 分 含 有 幾乎相同數目的頂點。GP算法使用內存算法計算每一個3-partition Gijk中 三 角 形 的 數 目 ,其 中 ,0<i<j<k≤p。最 后 根據三角形的頂點是否被分到同一個部分,將結果整合起來,得出最終的結果。如果三角形的 3個頂點都出現在同一 個 部 分 中 ,那 么 對 于 3-partition Gijk,此 三 角 形 便 被 計 算了3次。

3.3.2 TTP 算法

Park 和 Chung 針 對 GP 算 法 的 不 足 提 出 了 TTP(triangle type partition)算 法 。Park 和 Chung 認 為 GP 算 法有很多冗余計算,比如上面提到一個三角形可能被計算多次。他們發現三角形被計算多次的原因是,在 map 階段輸出了重復的邊。為了避免這個情況的產生,TTP 算法定義了3種類型的三角形。第1類三角形是三角形的3個點在同一個部分中;第2類三角形任意兩個頂點在同一個部分中,另一個在其他部分中;第 3 類三角形是指 3 個頂點都在不同的部分中。GP 算法就是重復計算了第 1類和第2 類三角形。TTP 算法為了避免過多的重復計算,定義了 inner-edge:邊 的 兩 個 頂 點 在 一 個 部分中 ,相 反 的 即 是outer-edge。圖 8 表 示 不 含 inner-edge 的 3'-partition。TTP算 法 在 2-partition 中 計 算 第 1 類 、 第 2 類 三 角 形 ,在3 '-partition 中 計 算 第 3 類 三 角 形 ,因 此 減 少 了 冗 余 計 算 ,減少了時間復雜度。

3.3.3 CTTP 算法

Park 和 Silvestri針對 GP 算法的 “curseofthelast reducer”,提 出 了 CTTP(colored triangle type partition)算 法 ,是 第 一 個保 證 了 每 個 reducer 的 最 大 輸 入 的 算 法 。該 算 法 是 在MapReduce 的 計 算 模 型 MR(m,M)中 提 出 來 的 ,其 中 ,m 是每個 mapper或者 reducer需要的空間,M 是整個計算中需要的空間。本算法進行 R 次 MapReduce 過程。CTTP 算法從 4-wise 獨 立 族 函 數 中 隨 機 選 擇 一 個 顏 色 函 數 h(·),進 行頂點劃分。CTTP 算法在 TTP 算法基礎上,將問題分解為子 問 題 。 子 問 題 分 為 兩 類 : 一 類 是 (i, j,k)子 問 題 ,用 來 計 算 第 3 類 三 角 形 ;另 一 類 是(i,j)子 問 題 ,用來計算第 1 類和第 2 類三角形。CTTP 通過均勻地將 K個 子 問 題 分 配 給 R=pE/M round 的 方 法 ,解 決 一 個 子 問 題只需要一個 reducer的問題。如果 R 不是 2 或者 3,那么每一 個 round 解 決 K/R 個 子 問 題 。這 個 算 法 保 證 了 每 一 個mapper發出同樣數量的數據對。因此這個算法避免了被一些慢的 mapper延遲了計算。

4 近似計算圖三角

由于準確計算圖三角的時空復雜度很大,同時很多應用只需要近似得到圖三角的數量,所以近年來近似算法得到了很多關注。本文將近似計算圖三角算法分為輔助算法、非流式算法和流式算法 3個類別進行介紹。

圖8 3'-partitionGijk'

4.1 輔助算法

輔助算法是指這類算法經常被其他計算圖三角算法引用,常常作為其他算法的一部分。

4.1.1 DOULIN 算法

Tsourakakis C E ,Kang U,Miller G L 和 Faloutsos C發 明 了 DOULIN[14]算 法 。DOULIN 算 法 不 是 處 于 其 他 計 算三角形算法的對立面,而是處于所有算法的友好面。不論圖能裝進內存還是裝不進,它都非常的實用。DOULIN 對每一個邊都投擲一枚硬幣,此邊被保留的可能性是 p,被刪除的可能性是 1-p。在最后剩下的圖中找到的三角形的個數乘以 1/p3就是對原圖三角形個數的估計。

4.1.2 Colorful Function 算法

Colorful Funtion(顏 色 函 數 )[15]算 法 為 圖 中 每 個 頂 點 分配一種顏色 ,總的顏 色數是 N=1/p,其中,p 是一個小于 1的參數。當一個邊的兩個頂點被分配同一種顏色時,這個邊稱作是單色的。然后從所有的單色邊中采樣,計算采樣到的單色邊組成的三角形的個數,最后將計算的個數 除以 p2,得 出近似估計的三角形個數。這個算法的關鍵點是關聯采樣的邊。

4.2 靜態算法

靜態算法是基于靜態圖的,適用于離線計算。目前近似計算的靜態算法只在單機上。在此方向上的研究較少,突破也很少,以下介紹的兩種方法是有特點的算法。基于度的頂點劃分的算法實現了時間空間更低的復雜度。隨機矩陣跡算法采用了蒙特卡洛模擬方法。這兩種方法均與其他方法有明顯的區別。

4.2.1 基于度的頂點劃分算法

Kolountzakis M N[16]等 人 研 究 發 現 ,基 于 度 對 頂 點 進行劃分,能得出在計算三角形時更小的運行時間上界。因為每個三角形都對應一個三元組,于是他們構造了一個三元組集合 U,這個三元組集合包括了所有的三角形。在這個集合里,均勻地選出一些三元組,標記為 1 到 s。當第 i個三元組被采樣時,如果它是一個三角形,那么 Xi為 1;如果不是,則賦值為 0。由于是均勻地選取,并且一共得出 t'個 三 角 形 ,那 么 E(Xi)=t'/|U|。因 為 每 個 Xi都 是 獨 立 的 ,所 以通過切諾夫界可以得到:

由于|U|≤n3,所 以 運 行 時 間 是 O(n3lgn/(te2))。根 據 度 劃分 頂 點 得 出 了|U|更小的上界。理由是:對 于 一 個 包 含 u 的三 元 組 (u,υ,w),如 果 {u,υ}、{u,w}∈E,這 些 三 元 組 中 含 有 u的 個 數 最 多 是 d(u)2。 如 果{υ,w}∈E,那 么 三 元 組 中 含 有 u的個數最多是 m。當 d(u)2>m 時,后者的界限更緊。所以,當頂 點 的 度 小 于 m1/2時 ,那 么 它 屬 于 低 度 頂 點 ,三 元 組 中 含有 低 度 頂 點 的 三 角 形 的 個 數 最 多 是 m3/2。當 所 有 頂 點 度 之和是 2m 時,三元組中含有高度頂點的三角形的個數最多是 2m3/2。 結 合 起 來 ,|U|的 上 界 是 3m3/2,所 以 得 到 |U|≤O(m3/2),時 間 上 界 是

4.2.2 隨機矩陣跡算法

Avron H[17]采 用 隨 機 矩 陣 跡 的 方 法 去 估 計 大 圖 中 三角形的個數。該方法依據的是準確計算三角形算法里的矩 陣 相 乘 算 法 ,采 用 Monte-Carlo 模 擬 來 估 算 三 角 形 個數 。每 一 個 樣 本 需 要 O(E)的 時 間 ,需 要 O(e-2lg(1/δ)ρ(G)2)個 樣 本 才 能 保 證 (ε,δ)-approximation,其 中 ,ρ(G)是 對 圖 G稀 疏 的 一 種 測 量。這個算法很高效,只需要 O(V)的空間和O(lg2|V|)個 樣 本 就 能 達 到 一 個 很 好 的 估 算 。一 個 維 數 高 的矩陣的立方計算量很大,所以這個算法生成一個隨機向量x=(xk), 其 中 ,xi~N(0,1)( 正 態 分 布 )。 將 y 賦 值 為 Ax,Ti=(yTAy)/6,循 環 M=|γln2n|次 ,最 后 三 角 形 的 個 數 估 計 為

4.3 流式算法

流式算法基于動態圖流,與靜態算法相比,適用于在線計算。圖流有不同形式,主要分為任意流(arbitrary streams)和事件流(incidence streams)兩類。在任意流中,邊在流中是不重復的,且是以任意順序出現的;在事件流中,邊是按照每個頂點的鄰邊出現的,例如,首先頂點 υ1的所有鄰點出現,接著 υ2的所有鄰點出現。υ1,υ2,…,υn的順序是由輸入方確定的。根據算法通過流的次數,可以將算法又分為 one-pass算法和 multiple-passes 算法。

下 面 介 紹 一 個 multiple-passes 采 樣 三 角 形 的 算 法 ,這里 的 流 是 任 意 流 ,算 法 是 Buriol L S[18]提 出 的 3-passes 算法 :將流中所有邊的數目計算出來,為|E|;從 流 中 均 勻 選 擇一條邊 e={a,b},也均勻選擇出一個頂點 υ,這個頂點屬于 V\{a,b};如果{a,υ}和{b,υ}都屬于 E,計數 β=1,否 則 計 數 β=0。最后 返 回 β值 。這 個 算 法 中 有 一 定 數 目 的 估計器(estimator),每個估計器得到一個 β值,求出期望 E[β]后 ,三 角形的個數 T '就 估 算 為 E [β]·|E|·(|V|-2)/3 。

multiple-passes 算 法 可 以 合 成 為 one-pass 算 法 ,Buriol L S 將 3-passes 算 法 合 成 的 1-pass 算 法 是 :隨 機 取一個頂點 υ,并在流中采樣一條邊{a,b},如果能在接下來的流 中 檢 測 到 邊 {a,υ}和 {b,υ},則 三 角 形 計 數 ,否 則 不 計 數 。multiple-passes 算 法 的 消 耗 多 于 one-pass 算 法[30]。

下面介紹 3 種 one-pass算法:基于鄰居采樣(Neighborhood sampling)算 法 、基 于 2-path 和 圖 稀 疏 的 算 法 和 TRIEST 算法,都與采樣有關。但由于采樣方法各不相同,3 種算法的時空消耗顯而易見。基于 2-path 和圖稀疏的算法需要存儲多個稀疏圖,所以空間消耗很大,TRIEST 算法對每條邊的到來都進行一次鄰點交集計算,所以時間消耗很大。3種算法的準確率也有差異。表 3是 3個算法準確度的比較。對于幾種不同的數據集,并沒有完全優勢的算法。可見對于含有不同數據意義的應用,需要采用不同的算法。

表3 3種流式算法的準確度比較

4.3.1 基于鄰居采樣算法

Pavany A 和 Tangwongsan K[19]等 人 設 計 了 一 個 時 間 空間效率都挺高的圖流算法。這個算法是基于鄰居采樣的one-pass算法:首先從流中隨機采樣一條邊,然后采樣和該邊有共同頂點的邊。N(e)表示在流中與邊 e 相鄰,但是在 e邊 后 面 到 來 的 邊 。其中,c=c(e)=|N(e)|。 數據以塊的形式到達,塊的大小是 w。對于每一個邊的到來,設置 r個估計器,以 m/(w+m)的概率保留這條邊。然后采樣邊的鄰邊,以 c+(e)/(c-(e)+ c+(e))的 概 率 從 N(e)∩B 采樣一條邊。最后判斷這兩條邊能否與后來的邊組成一個三角形。這個算法的時間空間復雜度都是 O(r+w)。

4.3.2 基于 2-path 和圖稀疏的算法

Bulteau L 和 Froese V[20]等 人 設 計 了 一 個 基 于 2-path采樣和圖稀疏的方法,來估計動態增刪圖流中三角形的數量,采用的是 one-pass。相對基礎圖流采樣對刪除邊后采樣的子圖是否仍存在的未知,圖稀疏能處理邊的刪除。 該算法 最 大 的 挑 戰 是 顯示 了 稀 疏 圖 中 的 2-path 采樣 幾 乎 等 同于 原 圖 的 2-path 采 樣 。 隨 機 選 擇 了 大 量 的 2-path,與 用 其中能組成三角形的 2-path 數量去估計傳遞系數。對于圖流中 每 一 個 增 刪 邊 的 到 來 會 更 新 SME (second moment estimator),圖流完全通過將返回整體 2-path 值 。與此同時,用 顏 色 散 列 (coloring hash)函 數 族 去 稀 疏 圖 流 ,得 到 數 個稀疏圖。對于 每一個稀 疏 圖 ,隨 機采樣一 定 數目的 2-path判斷是否組成三角形,并計數。最后用稀疏圖中采樣的2-path 中 能 組 成 三 角 形 的 數 量 與 采 樣 的 2-path 數 量 的 比值 ,與 整體 2-path 數 量 比 較 ,去 估 計 整 個圖 流 中 三角 形 的數量。該算法得到了圖流中計算三角形復雜度的下界。

4.3.3 TRIEST 算法

由于基于采樣的流算法,事先都要確定邊采樣的概率p,所以會造成一些問題。如在存儲空間有限的情況下,需要知道流的規模;采樣留下的邊的規模會增長,如果 p 較大,會溢出存儲空間,如果 p 較小,得到的結果是次優的;即使設定了特定的 p,使在流結束時恰好裝滿存儲空間,得到的結果也不是最好的。TRIEST 算法針對這些問題提出了解決方法。

TRIEST[21]算 法 是 在 one-pass 下 的 ,相 對 于 只 有 增 加 邊的 流 算 法 MSCOT[22],它 還 有 刪 除 邊 的 流 ,時 刻 計 算 三 角 形的數量,并且存儲空間是固定的。該算法采用水庫采樣(reservoir sampling)和 隨 機 配 對 (random pairing)兩 種 采 樣方案使得存儲空間盡可能多地被利用。由于是時刻計算三角形的數量,圖采用了時間標記 Gt,每到來一條邊,時間增長一個單位。該算法默認對一條邊的刪除一定是在對這條邊增加之后。如果設定的內存大小是 M,對于當前流入的插 入 邊 e={a,b},如 果 之 前 圖 的 大 小 Gt-1不 大 于 M,當 前 邊被保留。如果之前的圖的大小已經達到過 M,這時以 M/t的概率決定直接舍棄當前邊,或者選擇刪除之前圖中的一條邊,且插入當前邊,這是標準水庫采樣的應用。若插入了當前邊,便計算當前邊是否組成三角形。對于當前流入的邊是刪除邊,計算當前邊是否在之前流入的圖中組成三角形,如果組成,便減去相應的數量。為保證存儲空間在增加邊和刪除邊的時 候都能 充分利用設 定的內 存,TRIEST 基于隨機配對做了補償策略,刪除邊需要被未來的插入邊補償 。設 置 了 兩 個 計 數 器 din和 dout。如 果 之 前 流 入 圖 的 大 小Gt-1已經達到內存大小 M,當 前 邊 是 一 條 刪 除 邊 ,如 果 此 刪除 邊 仍 在 Gt-1中 ,din加 一 ;如 果 此 刪 除 邊 之 前 被 替 換 出 去 ,不 在 Gt-1中 ,dout加 一 。 之 后 到 來 的 增 加 邊 會 根 據 din和 dout的 值 被 保 留 或 不 被 保 留 。如 果 din、dout之 和 等 于 零 ,增 加 邊采 用 標 準 的 水 庫 采 樣 方 案 。如 果 不 等 于 零 ,便 以 din/(din+dout)的 概 率 保 留 增 加 邊 ,如 果 保 留 ,din-1,否 則 dout-1。TRIEST算法在完全動態的圖流中做到了無偏、低方差、高質量的估計。并且在有數十億條邊的大圖中有更小的平均估計誤差。

5 性能比較

綜上所述,在計算圖三角的算法中,準確計算圖三角與近似計算圖三角算法有區別也有聯系。準確計算中,點邊迭代算法和矩陣相乘算法是最基礎的算法。但是對于數據量越來越大的圖來說,在普通計算機上運行這些算法的時間空間復雜度非常高,并不適用。基于它們的改進算法FCNI提供了快速實現求共同鄰點的方法,也使在大規模圖中計算三角形的運行時間大大提高,但是實驗機器成本很高。外存計算算法很好地解決了圖規模過大,普通機器內存不夠用的問題。Chu 和 Cheng 提出的基于圖劃分的算法,一定程度上避免了內存小的問題,但是對于不均勻的圖來說,劃分是一個難 題。Hu 提出的 有 效 I/O 的算 法 ,巧妙避免了重復計算,時空復雜度為目前最好,且可以移植到不同平臺上進行計算。GP、TTP 和 GTTP 采用分布式框架為圖三角算法提供了新的平臺,提供了更多的內存,又可以并行,使時空復雜度減少。TTP、GTTP 分別針對 GP 的重復計算和冗余等待時間做了改進,在 MapReduce 框架下取得了好的效果。近似計算中,DOULION 算法和顏色函數對采樣很有幫助,被很多其他算法運用。靜態圖的計算圖三角算法中,基于度分割和隨機矩陣跡是有特點的方法,但是空間消耗都較大、效率不高。部分算法是基于動態圖流 的 ,multiple-passes 算 法 時 空 消 耗 大 ,更 多 算 法 采 用 的 是one-pass。近似算法大部分采 用采樣 方法,各有 優缺點 。 Pavany A 提出的鄰居采樣算法的空間效率很高,但是參數過多。Laurent提出的基 于 2-path 和圖稀疏 的 算法效果 一般,但首次達到了每邊的固定處理時間。TRIEST 算法是目前準確率最高的,且可以在固定內存中時刻計算圖流中三角形數量。近似計算應用范圍很廣,并且較準確計算來說需要的時空復雜度明顯降低,但準確度是一個關鍵問題。大部分近似算法是在準確計算的基礎上進行改進的,如矩陣跡算法是在矩陣相乘算法上加入了蒙特卡洛方法。上文幾種采樣算法是在點邊迭代算法的基礎上加入了采樣策略。

本文將近幾年的計算圖三角算法按準確計算和近似計算進行了比較,見表 4、表 5。

表4 準確計算三角形算法比較

表5 近似計算三角形算法比較

6 結束語

面對社會網絡的快速發展,圖的規模越來越大,關于圖的問題也越來越多樣化。選擇合適圖存儲模型和計算模型對圖的計算很重要。根據不同的問題需要選擇不同的解決方案,面對新的應用也要研究出新的方法。近年來出現的高效的分布式系統為圖三角算法提供了新的平臺。基于分布式的三角形計算算法的可行性越來越大,這將會成為三角形計算的下一個研究重點。

[1] THOMAS S.Algorithmic aspects of triangle-based network analysis[J].Phd in Computer Science,2007:26-29.

[2] COPPERSMITH D ,WINOGRAD S.Matrix multiplication viaarithmetic progressions [J].Journal of Symbolic Computation,1990,9(3):251-280.

[3] ALON N,YUSTER R,ZWICK U.Finding and counting given length cycles[J].Algorithmica,1997,17(3):209-223.

[4] THOMAS S,WAGNER D.Finding,counting and listing all triangles in large graphs,an experimental study [C]//The 4th International Workshop,May 10-13,2005,Santorini Island,Greece.New York:Springer,2005.

[5] CHIBA N,NISHIZEKI T.Arboricity and subgraph listing algorithms[J].Siam Journal on Computing,1985,14(1):210-223.

[6] KUMAR R,RAGHAVAN P,RAJAGOPALAN S,et al.The web as a graph:measurements,models,and methods [C]//The 5th Annual International Conference,July 26-28,1999,Tokyo,Japan.New York:ACM Press,2000:1-17.

[7] LATAP M.Theory and practice of triangle problems in very large (sparse (power-law)) graphs[EB/OL]. [2006-09-20].http://arxiv.org/pdf/cs/0609116.pdf.

[8] SEVENICH M,HONG S,WELC A,et al.Fast in-memory triangle listing for large real-world graphs[C]//The 8th Workshop on Social Network Mining and Analysis SNAKDD,August 24-27,2008,Las Vegas,NV,USA.New York:ACM Press,2014.

[9] CHU S,CHENG J.Triangle listing in massive networks and its applications [C]//The 17th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, August 21-24,2011,San Diego,CA,USA.New York:ACM Press,2011:672-680.

[10]HU X C ,TAO Y F.I/O efficient algorithms on triangle listing and counting [J].ACM Transactions on Database System,2014,39(4):1-30.

[11]SURI S,VASSILVITSKII S.Counting triangles and the curse of the last reducer [C]//The 20th International Conference on World Wide Web,March 28-April 1,2011,Hyderabad,India.New York:ACM Press,2011:607-614.

[12]PARK H M,CHUNG C W.An efficient MapReduce algorithm for counting triangles in avery large graph [C]//ACM Conference of Information and Knowledge Management, October 27-November 1,2013,San Francisco,CA,USA.New York:ACM Press,2013:539-548.

[13]PARK H M,SILVESTRI F,KANG U,et al.MapReduce triangle enumeration with guarantees[C]//ACM Conference of Information and Knowledge Management,November 3-7,2014,Shanghai,China.New York:ACM Press,2014.

[14]TSOURAKAKIS C E,KANG U,MILLER G L,et al.DOULIN:counting triangles in massive graphs with acoin [C]//The 15th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining,June 28-July 1,2009,Paris,France.New York:ACM Press,2009:837-846.

[15]PAGH R,TSOURAKAKIS C E.Colorful triangle counting and Mapreduce implementation [J].Information Processing Letters,2011,112(7):277-281.

[16]KOLOUNTZAKIS M N,MILLER G L,PENG R,et al.Efficient triangle counting in large graphsvia degree-based vertex partitioning[J].Internet Mathematics,2010,8(1-2):15-24.

[17]AVRON H.Counting triangles in large graphs using randomized matrix trace estimation [J].In Large-Scale Data Mining:Theory and Applications (KDD Workshop),2010.

[18]BURIOL L S,FRAHLING G,LEONARDI S,et al.Counting triangles in data streams [C]//The 25th ACM SIGMOD-SIGACTSIGART Symposium on Principles of Database Systems,June 26-28,2006,Chicago,Illinois,USA.New York:ACM Press,2006:253-262.

[19]PAVANY A,TANGWONGSAN K,TIRTHAPURAZ S,et al. Counting and sampling triangles from a graph stream [J]. Proceedings of the Vldb Endowment,2013,6(14):1870-1881.

[20]BULTEAU L,FROESE V,KUTZKOV K,et al.Triangle counting in dynamic graph streams [EB/OL]. [2015-07-14].http://itu.dk/people/konk/papers/dtc_full.pdf.

[21]STEFANI L D,EPASTO A,RIONDATO M,et al.TRIEST:counting local and global triangles in fully-dynamic streams with fixed memory size[EB/OL].[2016-02-24].http://arxiv.org/abs/1602.07424.

[22]LIM Y,KANG U.MASCOT:memory-efficient and accurate sampling for counting local triangles in graph streams [C]//The 21th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining KDD,August 10-13,2015,Hilton,Sydney.New York:ACM Press,2015:685-694.

Research progress of triangle counting in big data

JIN Hongqiao,DONG Yihong
Faculty of Electrical Engineering and Computer Science,Ningbo University,Ningbo 315211,China

Counting triangles in a graph is an important step to calculate the clustering coefficient and the transitivity ratio of the network,which is widely used in important role identification,spam detection,community discovery,biological detection etc.Counting triangles algorithm is mainly faced with two major problems of space-time consumption and accuracy.The representative algorithm of the counting triangles in the big graph was introduced.There existed two kinds of algorithms,which were exact counting algorithm and approximate counting algorithm.Exact counting algorithms were divided into internal memory algorithm,external memory algorithm and distributed algorithm.The space-time consumption or I/O consumption of exact counting algorithm was very large. Approximate counting algorithms were divided into auxiliary algorithm,static algorithm and streaming algorithm.In the end,the counting triangles algorithms were summarized.

exact counting,approximate counting,triangle,graph

TP391

:A

10.11959/j.issn.1000-0801.2016169

金宏橋(1993-),女,寧波大學信息科學與工程學院碩士生,主要研究方向為大數據、數據挖掘。

董一鴻(1969-),男,博士,寧波大學教授,主要研究方向為大數據、數據挖掘和人工智能。

2016-04-05;

:2016-06-12

猜你喜歡
方法
中醫特有的急救方法
中老年保健(2021年9期)2021-08-24 03:52:04
高中數學教學改革的方法
河北畫報(2021年2期)2021-05-25 02:07:46
化學反應多變幻 “虛擬”方法幫大忙
變快的方法
兒童繪本(2020年5期)2020-04-07 17:46:30
學習方法
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
最有效的簡單方法
山東青年(2016年1期)2016-02-28 14:25:23
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 人与鲁专区| 精品久久高清| 欧美高清国产| 欧美成人一级| 久久成人18免费| 中美日韩在线网免费毛片视频 | 亚洲第一黄色网| 一本大道无码日韩精品影视| 久久a毛片| 国产手机在线观看| 在线精品亚洲一区二区古装| 国产呦精品一区二区三区下载 | 亚洲AⅤ综合在线欧美一区| 久久久亚洲色| 男女猛烈无遮挡午夜视频| 人人妻人人澡人人爽欧美一区| 精品午夜国产福利观看| 丰满人妻中出白浆| 在线观看热码亚洲av每日更新| 欧美黄网在线| 国产一级小视频| 高清视频一区| 欧美亚洲国产精品久久蜜芽| 制服丝袜 91视频| 91精品伊人久久大香线蕉| 亚洲婷婷丁香| 国产精品综合久久久| 久久青草热| 国产麻豆aⅴ精品无码| 性色一区| 蜜臀AVWWW国产天堂| 在线观看国产小视频| 亚洲精品免费网站| 亚洲h视频在线| 狠狠做深爱婷婷综合一区| 97无码免费人妻超级碰碰碰| 久久精品国产精品国产一区| 99久久成人国产精品免费| 国精品91人妻无码一区二区三区| 亚洲视频一区| 亚洲一区波多野结衣二区三区| a级毛片免费播放| 亚洲国产亚洲综合在线尤物| 久久天天躁狠狠躁夜夜2020一| 午夜无码一区二区三区| 亚洲精品片911| 国产人成网线在线播放va| 中文字幕在线观看日本| 精品无码国产自产野外拍在线| 色天天综合| AV熟女乱| 免费国产高清精品一区在线| 日韩a在线观看免费观看| 超薄丝袜足j国产在线视频| 高清久久精品亚洲日韩Av| 天堂va亚洲va欧美va国产| 波多野结衣视频一区二区 | 午夜a视频| 日本欧美一二三区色视频| 欧美区一区二区三| 久久综合色天堂av| 亚洲不卡无码av中文字幕| 四虎在线高清无码| 亚洲日韩精品欧美中文字幕| 色噜噜狠狠色综合网图区| 无码国内精品人妻少妇蜜桃视频| 99久久精品国产综合婷婷| 国产国产人免费视频成18| av无码久久精品| 九九热这里只有国产精品| 色综合五月婷婷| 成年人福利视频| 手机在线免费不卡一区二| 伊人91视频| 欧美日韩国产综合视频在线观看 | 婷婷色一二三区波多野衣| 一级在线毛片| 欧美日韩北条麻妃一区二区| 国产精品亚洲专区一区| 波多野结衣在线一区二区| 乱人伦中文视频在线观看免费| 久久国产黑丝袜视频|