24
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények: gráfproblémák „Big Data” elemzési módszerek Kocsis Imre [email protected] 2015. 10. 28.

További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

További MapReduce szemelvények: gráfproblémák

„Big Data” elemzési módszerek

Kocsis Imre [email protected]

2015. 10. 28.

Page 2: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

MapReduce: a teljes kép

Forrás: [1], p 30

Page 3: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

Partíciók és Kombinálás

Legegszerűbb part.: hash(kulcs) mod #reducer

o f: kulcs reducer

Kombinálás: lokális aggregálás

o „mini-reducer”

o Hálózati kommunikáció redukálása

o Általánosságban nem „csereszabatos” a reducer-rel

o Word countnál?

Page 4: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

PageRank

Page 5: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

PageRank

Keresés a weben: találatok sorrendezése?

o „spam farm”, „term spam”, „spider traps”, …

„random surfer” modell

o látogatás valószínűsége

o d csillapító paraméter

Egy oldal PageRank-je magas, ha

o sok oldal linkeli vagy

o magas PageRank-ű oldalak linkelik

Page 6: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

PageRank

𝐴 oldalt linkeljék 𝑇1, 𝑇2, … , 𝑇𝑛 oldalak.

0 < 𝑑 < 1.

o Eredeti, publikált default: 0.85

𝐶(𝐴): kimenő fokszám

Definíció:

𝑃𝑅 𝐴 = 1 − 𝑑 + 𝑑𝑃𝑅 𝑇1𝐶 𝑇1

+⋯+𝑃𝑅 𝑇𝑛𝐶 𝑇𝑛

~ random látogató helyének val. eloszlása

Page 7: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

Tranzíciós mátrix

Page 8: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

PageRank számítása

𝒗𝟎 kezdeti eloszlás

Egy lépés után: 𝑀𝒗𝟎

Két lépés után: 𝑀 𝑀𝒗𝟎 = 𝑀2𝒗𝟎

De ez egy Markov folyamat!

o Van 𝒗 stacionárius eloszlása,

o Ha a gráf erősen összefüggő és nyelőmentes

Page 9: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

PageRank számítása

Gyakorlatban: iterálás

o de max. a normál lebegőpontos aritmetika határáig (50-75 iteráció a webre)

Ez is négyzetes minden lépésben…

… de 𝑀 ritka volta kihasználható

Page 10: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

„teleportálás”: „spider traps” és „dead ends”

Page 11: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

MapReduce? 𝑡 db mátrix-vektor szorzás

N.B. a külső ciklus lehet probléma

o Job indítási overhead! o Mátrix újra felolvasása minden iterációban o …

𝑀 legyen 𝑛 × 𝑛-es mátrix

𝑥𝑖 = 𝑚𝑖𝑗𝑣𝑗

𝑛

𝑗=1

𝑛 = 100 nem Big Data…

Mapper, ha a vektor befér a memóriába: (𝑖,𝑚𝑖𝑗𝑣𝑗)

Page 12: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

MapReduce mátrix-vektor szorzás

Ha a vektor nem fér el a memóriában: „csíkozás” (striping)

Page 13: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

PageRank k2 mapperrel

Page 14: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

Általánosítás: a GIM-V primitív

„Generalized Iterative Matrix-Vector multiplication”

A szokásos feladat:

𝑀 × 𝑣 = 𝑣′, ahol 𝑣𝑖′ = 𝑚𝑖𝑗𝑣𝑗

𝑛𝑗=1

Valójában három operátor:

o combine2: a szorzás

o combineAll: a szumma

o assign: vektorelemek frissítése

Page 15: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

Általánosítás: a GIM-V primitív

„Generalized Iterative Matrix-Vector multiplication”

A szokásos feladat:

𝑀 × 𝑣 = 𝑣′, ahol 𝑣𝑖′ = 𝑚𝑖𝑗𝑣𝑗

𝑛𝑗=1

Valójában három operátor:

o combine2: a szorzás

o combineAll: n szorzás-eredmény szummája i-re

o assign: vektorelemek frissítése

Page 16: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

GIM-V

𝑣′ = 𝑀 ×𝐺 𝑣

𝑣𝑖′ = 𝑎𝑠𝑠𝑖𝑔𝑛(𝑣𝑖 , 𝑐𝑜𝑚𝑏𝑖𝑛𝑒𝐴𝑙𝑙𝑖({𝑥𝑗|𝑗 = 1…𝑛, 𝑥𝑗= 𝑐𝑜𝑚𝑏𝑖𝑛𝑒2(𝑚𝑖𝑗 , 𝑣𝑗)}))

Iteratív: ×𝐺-t konvergenciakritériumig alkalmazzuk

BTW feltételezve egy E(sid, did, val) és V(id,val)

táblát ×𝐺 SQL-ben:

Page 17: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

GIM-V: PageRank

M: oszlopnormalizált szomszédossági mátrix

combine2: 𝑐 × 𝑚𝑖𝑗 × 𝑣𝑗

combineAll: 1−𝑐

𝑛+ 𝑥𝑗𝑛𝑗=1

assign: 𝑣𝑛𝑒𝑤

Page 18: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

GIM-V: Random Walk with Restart

Csomópontok közelségének mérése

A k-adik csomópontból induló vektor egyenlete (M ua):

𝑟𝑘 = 𝑐𝑀𝑟𝑘 + 1 − 𝑐 𝑒𝑘

Ahol 𝑒𝑘 nullvektor a k-adik, 1 értékű pozíciótól eltekintve

combine2: 𝑐 × 𝑚𝑖𝑗 × 𝑣𝑗

combineAll: 1 − 𝑐 𝐼 𝑖 ≠ 𝑘 + 𝑥𝑗𝑛𝑗=1

assign: 𝑣𝑛𝑒𝑤

Page 19: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

GIM-V: összefüggő komponensek

Minden 𝑣𝑖-hez „komponens ID” 𝑐𝑖ℎ:

Minimum csomópont-ID ℎ hopon belül M: szomszédossági mátrix

Minden iterációban:

o Minden csomópont „elküldi” szomszédjainak 𝑐𝑖ℎ-ját

o Iteráció: minden csomópontban minimumképzés

combine2: 𝑚𝑖𝑗 × 𝑣𝑗

combineAll:𝑀𝐼𝑁{𝑥𝑗|𝑗 = 1…𝑛}

assign: 𝑀𝐼𝑁(𝑣𝑖 , 𝑣𝑛𝑒𝑤)

Page 20: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

GIM-V: összefüggő komponensek

Megállás: nem változik a vektor

Tétel: legfeljebb gráfátmérő számú lépés kell

o Diameter: pontpárok közötti legrövidebb utak hosszának maximuma

Page 21: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

GIM-V: BASE algoritmus

Page 22: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

GIM-V: BASE algoritmus

Page 23: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

GIM-V: algoritmusok

Naive multiplication, block multiplication, clustered edges, diagonal block iteration, …

Blokk szorzás: vektorokat és mátrixot is blokkosítva tárolunk (és csak ha nem nulla)

Page 24: További MapReduce szemelvények gráfproblémák · Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék További MapReduce szemelvények:

Hivatkozások [1] Lin, J., & Dyer, C. (2010). Data-Intensive Text Processing with MapReduce.

Synthesis Lectures on Human Language Technologies, 3(1), 1–177. doi:10.2200/S00274ED1V01Y201006HLT007

[2] http://www.slideshare.net/jeffreybreen/big-data-stepbystep-using-r-hadoop-with-rhadoops-rmr-package

[3] http://www.cloudera.com/content/support/en/downloads.html [4] http://hortonworks.com/products/hortonworks-sandbox/ [5] http://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html [6] http://home.mit.bme.hu/~ikocsis/notes/2013/10/23/(r)hadoop-sandbox-

howto/ [7] http://home.mit.bme.hu/~ikocsis/notes/2013/10/28/rhadoop-sandbox-with-

the-cloudera-quickstart-vm/ [8] Iványi, A. "Informatikai algoritmusok." ELTE Eötvös Kiadó, Budapest (2004). [9] Chu, C. T., Kim, S. K., Lin, Y. A., Yu, Y., Bradski, G. R., Ng, A. Y., & Olukotun, K.

(2006). Map-reduce for machine learning on multicore. In B. Schölkopf, J. Platt, & T. Hofmann (Eds.), Advances in Neural Information Processing Systems 19: Proceedings of the 2006 Conference (pp. 281–288). MIT Press.