流式圖分割

承接自上文。本文大部分材料來自SIGMOD 19年Tamer Ozsu老師的一篇論文1

圖分割算法的特性羅列如下(截圖自原文):
在這裏插入圖片描述

流式圖分割 (SGP: Streaming Algorithms for Graph Partitioning)

流式圖分割在2012年KDD的一篇文章中給出了定義2。有別於傳統的圖分割,流式圖分割一次處理部分圖數據,並對於拿到的部分圖數據分配到各個節點當中,之後不再遷移已經分配好的數據。所以流式圖分割有幾個優點:1)可以處理很大的圖,理論上只要集羣可以容納,那麼就可以處理多大的圖。2)一般只加載一次圖。3)相比於基於哈希的分配方式,可以有效的保留部分圖的性質,進而提升算法性能。

圖分割類型

圖的分割按點邊不同可以分成點分割(vertex-cut)和邊分割(edge-cut)兩種。直觀就是從點切開還是從邊切開,從點切開那麼就是同一個點可能在多個節點當中存在多份鏡像/拷貝。從邊切開,那麼一條邊就有可能存在兩個分區當中。

\rightarrow 點分割(侵刪):
在這裏插入圖片描述
\rightarrow 邊分割(侵刪):

在這裏插入圖片描述

  1. 對於點分割來說,目標函數一般是要複製因子儘可能的小,就是不同節點中拷貝的點儘可能的少。

C(Pt)=uVA(u)V C(P^t) = \frac{\sum\limits_{u\in V}|A(u)|}{|V|}

a. A(u)A(u)表示點uu出現在的分區集合。A(u)|A(u)|表示uu總共出現在幾個分區中。
b. PtP^t表示tt時刻的分區狀態。
c. C(Pt)C(P^t)表示PtP^t當前的複製因子。

  1. 對於邊分割來說,目標函數一般是要割(cut)儘可能的小,因爲cut越小,那麼一般來說通訊的代價也相應會比較小。遺憾的是Minimum k-cut的複雜度是NPC的,當圖分割成k份,k是作爲輸入時。(注:有O(Vk2)O(|V|^{k^2})複雜度的算法。wiki: Minimum k-cut)。

C(Pt)=(u,v)EPt(u)Pt(v)E C(P^t) = \sum\limits_{(u,v)\in E}\frac{|P^t(u)\neq P^t(v)|}{|E|}

a. Pt(u)/Pt(v)P^t(u)/P^t(v) 表示tt時刻uu/vv所在的分區。(u,vu,v不在同一個分區內,那麼(u,v)(u,v)這條邊就屬於割集)
b. PtP^t表示tt時刻的分區狀態
c. C(Pt)C(P^t)表示PtP^t當前的割。

流式邊分割
  1. KDD 2012的paper中2,對於點uu,作者將uu分配到當前鄰居最多的節點當中,如以下等式所示。如果uu在節點一中有3個鄰居,在節點二中有5個鄰居,那麼uu會被分配到節點二當中。CC表示每個節點最大容量。當某個分區達到容量以後,強制停止分配到當前節點(後半部分因子爲0)。

argmini{1,,k}(PitN(u)(1PitC)),C=βVk \arg\min\limits_{i\in\{1,\ldots,k\}}(|P_i^t\cap N(u)| * (1 - \frac{|P^t_i|}{C})), C=\beta \frac{|V|}{k}

  1. WSDM 2014的paper中3,基於上述的基礎,引入了不平衡因子,使得分區的大小可以在一定的範圍內(不需要完全的balance)。
流式點分割
  1. DBH4是改進自哈希分割。改進的地方是對於每一條邊,對於度較小的頂點哈希。這樣的好處是可以增強分區的局部性。

  2. HDRF5是CIKM2015的一篇論文。這篇文章的score function由兩部分組成,複製因子和平衡因子。

C(e,Pi)=CREP(e,Pi)+λCBAL(Pi),e=(u,v) C(e,P_i) = C_{REP}(e,P_i) + \lambda C_{BAL}(P_i), e=(u,v)

這篇文章有一個比較有意思的點是提出的score function儘可能的對度比較高的點去做鏡像。

CREP(e,Pi)=g(u,v,Pi)+g(v,u,Pi) C_{REP}(e,P_i) = g(u,v,P_i) + g(v,u,P_i)

g(v,u,Pi)=1+deg(u)deg(v)+deg(u) g(v, u, P_i) = 1 + \frac{deg(u)}{deg(v) + deg(u)}

vPiv \in P_i時,反之爲0。對於uu vv在同個分區當中,這個好理解我們就不提了。當uuvv分屬於不同分區時不妨設爲P1P_1P2P_2,那麼我們肯定是把這條邊放在這兩個分區中的一個。這意味着要對uuP2P_2中做一個鏡像並把ee放在P2P_2當中,或者要對uuP1P_1中做一個鏡像並把ee放在P1P_1當中。由於上述提到的,我們希望對於度比較高的點做鏡像。Balance的score function可以參考原文,原因是如果沒有平衡因子,根據原來的score function,以及streaming的順序,所有的點都有可能在同一個分區內。

如下圖所示(侵刪)

在這裏插入圖片描述

在這裏插入圖片描述
3. POWERGRAPH6 算是上文的一個特例,將HDRF的所有degree設置爲1(即不考慮點的度的影響),最終就是6當中貪心算法。


  1. Anil Pacaci and M. Tamer Özsu. 2019. Experimental Analysis of Streaming Algorithms for Graph Partitioning. In Proceedings of the 2019 International Conference on Management of Data (SIGMOD '19). ACM, New York, NY, USA, 1375-1392 ↩︎

  2. Stanton I, Kliot G. Streaming graph partitioning for large distributed graphs[C]//Proceedings of the 18th ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2012: 1222-1230. ↩︎ ↩︎

  3. Charalampos Tsourakakis, Christos Gkantsidis, Bozidar Radunovic, and Milan Vojnovic. 2014. FENNEL: Streaming Graph Partitioning for Massive Scale Graphs. In Proc. 7th ACMInt. Conf. Web Search and Data Mining. 333–342. ↩︎

  4. Cong Xie, Ling Yan, Wu-Jun Li, and Zhihua Zhang. 2014. Distributed power-law graph computing: Theoretical and empirical analysis. In Advances in Neural Information Proc. Systems 27, Proc. 28th Annual Conf. on Neural Information Proc. Systems. 1673–1681 ↩︎

  5. F. Petroni, L. Querzoni, K. Daudjee, S. Kamali, and G. Iacoboni. HDRF: Stream-based partitioning for power-law graphs. In CIKM, 2015. ↩︎

  6. J. E. Gonzalez, Y. Low, H. Gu, D. Bickson, and C. Guestrin. PowerGraph: Distributed graph-parallel computation on natural graphs. In OSDI, pages 17–30, 2012. ↩︎ ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章