Metody analýzy dat II Vzorkování (Sampling) MAD2 2018/19 1
Literatura http://tuvalu.santafe.edu/~aaronc/courses/53 52/csci5352 2017 L9.pdf https://cs.stanford.edu/~jure/pubs/samplingkdd06.pdf https://www.cs.purdue.edu/homes/neville/co urses/networksampling-kdd13-final.pdf MAD2 2018/19 2
Sampling Marketing - propagace, nabízení a distribuce vzorků nějakého produktu. Zpracování signálů - proces diskretizace signálu v časové oblasti. Analýza dat - proces, při kterém se analyzuje jen část dat (vzorek, sample) s cílem získat relevantní informace o větším souboru dat. MAD2 2018/19 3
Proč sampling? (1) Nemáme přístup k celé datové kolekci, zpracování dat je časově i prostorově náročné. Máme celou síť, ale data se nevejdou do paměti. Jak analyzovat síť v rozumném čase? Máme celou síť, data se vejdou do paměti, ale chceme spustit např. časově náročný algoritmus Je náročné nebo nemožné získat celou síť (Facebook, WWW, Twitter atd.), např. díky crawlingu máme přístup jen k podsítím a přesto chceme získat představu o vlastnostech sítě celé. 4
Proč sampling? (2) MAD2 2018/19 5
Proč sampling? (3) Vizualizace originální síť je příliš velká k vizualizaci a zobrazení všech hran (vrcholů) vede k nepřehlednosti. Tím se ztrácí informace, která by mohla být vizualizací sítě poskytnuta. Pokud je vzorek kvalitní, lze například vykreslit komunity sítě, které odpovídají i původnímu grafu. Nedostatečný přístup k datům například v sociální síti Facebook nelze za účelem získání sítě procházet kvůli limitům API všechny osoby. Proto se náhodně vybere osoba a od této osoby se přechází po hranách k dalším osobám. Dochází tak k vzorkování vrcholů pomocí metody založené na náhodné procházce. Je důležité dobře odhadnout, kolik vrcholů se musí navštívit tak, aby se ze vzorku získala relevantní informace. Průzkum skryté populace používá se v sociologických průzkumech, kdy je nutné získat informace o skryté skupině osob, například skupina drogové závislých lidí. Přímý přístup k těmto skupinám je většinou nemožný. Začíná se s malým počtem osob, od kterých se získávají informace o dalších členech skupiny. Typickou metodou je Snow Ball Sampling, ve kterém se na vrcholy postupně nabalují další vrcholy podle vazeb mezi předchozími vrcholy. Sparsifikace grafu Mnoho sítí je příliš velkých a manipulace s nimi je obtížná. Řešením je aproximovat husté sítě řidšími sítěmi. To zahrnuje jak redukci hran, tak i redukci vrcholů. Často jsou na výsledný graf procesu sparsifikace kladeny přísné požadavky. Například, že všechny vrcholové řezy původního grafu musí být zachovány. MAD2 2018/19 6
Proč sampling (4) Obecně pokud je velikost grafu měřena počtem vrcholů, musíme nějak zjistit, při jaké velikosti je ještě vzorek podobný původnímu grafu. Scaledown sampling: Pro originální síť (graf) G s n vrcholů chceme vytvořit vzorek S s n vrcholů, kde n << n. Cílem je, aby vzorek S měl vlastnosti co nejvíce podobné vlastnostem původního grafu G (např. degree distribution, clustering coefficient, community structure, Pagerank). Back-in-time sampling: Cílem je vrátit se zpět v čase a napodobit minulé verze G, z nichž pouze pozorujeme konečný, statický snapshot. Nechť G n označuje graf G v určitém okamžiku, kdy měl n uzlů. Nyní chceme najít vzorek S na n uzlech, který je nejvíce podobný grafu G n, tj. když měl graf G stejnou velikost jako S. Local substructures: Můžeme vzorkovat lokální substruktury s cílem odhadnou četnost jejich výskytů apod. takové substruktury jsou trojúhelník, motivy nebo graphlets. MAD2 2018/19 7
Graphlets MAD2 2018/19 8
Vzorkování vzhledem k dostupnosti sítě Plný přístup ke grafu celá rozsáhlá síť je viditelná a uložená v paměti. Je možný náhodný výběr vrcholu nebo hrany z celé sítě. Pro graf s plným přístupem je možné použít metody založené na náhodném výběru vrcholů nebo náhodném výběru hran, případně kombinací obou metod. Omezený přístup ke grafu síť je skryta, nicméně umožňuje procházení vrchol po vrcholu a prozkoumávání sousedů aktuálního vrcholu. Předpokladem je, že síť je propojená do jedné komponenty. Tento způsob je vhodný v případě velmi rozsáhlé sítě, která se nevejde do hlavní paměti. Metody vhodné pro tento způsob jsou založeny na procházení grafu. Během procházení grafu jsou navštívené vrcholy ukládány jako vzorek původního grafu. Stream dat se používá tam, kde je omezena hlavní paměť a data se rychle přesouvají. Tento způsob je vhodný pro dynamické sítě. Hrany přicházejí ke zpracování buď v určeném pořadí, nebo hrany incidentní s jedním vrcholem přicházejí spolu. Stream hran je tak masivní, že není možné všechna data uložit do hlavní paměti. U tohoto způsobu je důležité efektivní zpracování v reálném čase. Většina algoritmů pro vzorkování streamovaných sítí je založena na náhodném ukládání do paměti pevné velikosti. Každá přicházející hrana je s určitou pravděpodobností vybrána a uložena do kontejneru pevné velikosti. Pokud je kontejner plný, nová hrana nahradí již dříve uloženou starší hranu. MAD2 2018/19 9
Vzorkovací metody Jakou použít metodu pro vzorkování? Jak nastavit její parametry? Jak velký vzorek vytvořit? Správný výběr záleží také na typu původního grafu (aplikační doména, souvislost, temporální graf, ). Lze použít metody založené na: výběru vrcholů nebo hran (pravděpodobnostní metody) Node Selection (Random Node Sampling, Degree based Sampling, PageRank based Sampling, ), Edge Selection (Random Edge Sampling, Random Node Edge Sampling, ) prohledávání grafu - Sampling by Exploration Snowball Sampling, Random Walk, Random Walk with Restart, Random Jump, Forest Fire, MHRW, MAD2 2018/19 10
Probabilistic sampling Pravděpodobnostní vzorkování (Probabilistic sampling) předpokl., že máme k dispozici celou síť Random Node Sampling: vyber (zahrň) každý vrchol i (a jeho sousedy) s pravděpodobností p Random Edge Sampling: vyber každou hranu (i, j) s pravděpodobností p Degree based Sampling: vyber každý vrchol i (a jeho sousedy) s pravděpodobností p / d i, kde d i je stupeň Attribute-proportional: vyber každý vrchol i (a jeho sousedy) s pravděpodobností p / x i, kde x i je atribut MAD2 2018/19 11
Sampling by Exploration Sampling by Exploration (Seed-based sampling) Snowball sampling - pro každý počáteční vrchol i, a vzdálenost l, zahrň všechny vrcholy (a tedy i jejich sousedy) ve vzdálenosti l nalezené BFS s počátkem v i BFS edge sampling: pro každý počáteční vrchol i, a vzdálenost l, zahrň všechny hrany ve vzdálenosti l nalezené BFS s počátkem v i. Random Walk Sampling a varianty MAD2 2018/19 12
Typické vzory Obecně sampling generuje 3 typické vzory: Řídké grafy - ty produkuje pravděpodobnostní vzorkování - důvod: pst, že dvě množiny sousedů vrcholů i a j vybraných s pstí p se budou překrývat, je velmi malá. Relativně kompaktní graf, který však je ovlivněn tím, že přednostně vybíráme vrcholy (hrany) blízko sebe (co do vzdálenosti l). Takové grafy jsou výsledkem seed-based samplingu. Grafy se spoustou vrcholů s malým stupněm (často d = 1), což je způsobeno tím, že po zařazení sousedů nějakého vrcholu do grafu už do něj nezařadíme sousedy těchto sousedů. MAD2 2018/19 13
Random Node Sampling Random Node Sampling (Uniform Node Sampling) Vyber (zahrň) do vzorku S vrchol i (a jeho sousedy) s pstí p. Jestliže je velikost vzorku S stanovena například na 15% původní sítě, bude každý vrchol vybrán s pravděpodobností p = 0.15. Následně do vzorku přidej hrany E S = {(u, v) E u V S, v V S } (tedy z původního grafu jsou ponechány pouze hrany mezi vrcholy V S ze vzorku). Předpokladem pro RN algoritmus je plně přístupná síť. Nevýhodou je, že vzorek získaný touto metodou moc dobře nerespektuje distribuce stupňů původní sítě. MAD2 2018/19 15
Random Node Sampling Jinak - jak vybrat pst p tak, abychom dosáhli vzorku o velikosti n vrcholů? Všechny vrcholy mají stejnou pst vybrání do vzorku. Pokaždé, když náhodně s pstí p vybereme nějaký vrchol, se celkový počet vrcholů ve vzorku zvýší o 1+<d> vrcholů, kde d je stupeň vrcholu i a <d> je průměrný stupeň. Pokud každý vrchol vybíráme s pstí MAD2 2018/19 16
Random Edge Sampling Metoda Random Edge Sampling (RE, taky Uniform Edge Sampling) provádí výběr hran s uniformní pravděpodobností p a přidává je do vzorku E S E tak dlouho, dokud vzorek není dostatečně velký. Na rozdíl od RN, metoda RE nemění relativní četnost hran, protože výběr hrany připojené k vrcholu i je závislý na jeho stupni d i. Vrchol se stupněm d v původním grafu bude mít stupeň p*d ve vzorku, kde p je pravděpodobnost výběru jedné hrany. To má za následek stejnou distribuci stupňů jako v původním grafu. Nevýhody: Je-li počet hran původního grafu m= E, bude ve vzorku p*m hran rozloženo mezi n vrcholů, což má za následek nízký průměrný stupeň vrcholu. Jestliže průměrný stupeň klesne pod hodnotu 1, vzorek bude postrádat jednu hlavní velkou komponentu a bude obsahovat mnoho malých komponent. Redukovaný graf bude velmi řídce propojen a nebude zachována např. komunitní struktura. MAD2 2018/19 17
Snowball sampling Pro každý počáteční vrchol (seed) i a vzdálenost l, zahrň všechny vrcholy (a tedy i jejich sousedy) ve vzdálenosti l nalezené BFS s počátkem v i Snowball sampling vede k rozdělení vrcholů do tří typů Vrchol i a vrcholy, které jsou ve vzdálenosti <= l od vrcholu i vrcholy, které jsou ve vzdálenosti = l+1 od vrcholu i vrcholy, které jsou ve vzdálenosti > l+1 od vrcholu i a nejsou tak součástí vzorku MAD2 2018/19 18
Snowball sampling Výsledný graf dobře popisuje strukturu okolí vrcholu i, ale vrcholy stupně =1 v prstenci halo na předchozím obr. mohou komplikovat jakoukoliv další analýzu (ale můžeme je zahodit, pokud nás např. zajímá jen bezprostřední okolí seedu). Obdržené vzorky však jsou ovlivněny stupněm vrcholu čím větší má vrchol stupeň, tím větší má šanci být ve vzdálenosti <= l+1 od vrcholu i a být zařazen do vzorku. 19
Random Walk https://en.wikipedia.org/wiki/random walk Náhodná procházka je algoritmus, ve kterém volíme následující krok zcela náhodně. Jedná se o základní model pro simulaci náhodného procesu v mnoha aplikačních doménách. Obecně lze říci, že náhodná procházka je proces, kde daná konkrétní pozice závisí pouze na předchozí pozici a pravděpodobnostní funkci, která určuje následující směr. MAD2 2018/19 20
Random Walk Nechť G = (V, E) je graf na n vrcholech s m hranami. Náhodná procházka je proces, který začíná ve vrcholu v 0 a po k-tém kroku se dostane do vrcholu v k. Každý ze sousedů v k má pravděpodobnost 1/d(v k ), že bude vybrán, kde d(v k ) je stupeň vrcholu v k Počáteční vrchol v 0 může být buď fixní, nebo vybrán z počátečního rozložení pravděpodobnosti vrcholů P 0. P 0 je vektor, který každému vrcholu přiřazuje pravděpodobnost s jakou v něm bude náhodná procházka začínat. P k je potom vektor rozložení pravděpodobnosti, s jakou se bude náhodná procházka nacházet v daných vrcholech s počátečním rozložením P 0 po k krocích. MAD2 2018/19 21
Random Walk Sampling V prvním kroku RW se vybere s uniformní pstí počáteční vrchol v 0, po k-tém kroku skončí ve vrcholu v k. Následující navštívený vrchol je volen zcela náhodně z množiny sousedních vrcholů aktuálního vrcholu v každém kroku k se vybere jeden vrchol u z množiny sousedů vrcholu v k 1. v každém kroku k je pravděpodobnost p přechodu z vrcholu v k do sousedního vrcholu dána p = 1/d vk, d vk je stupeň vrcholu v k Nechť je další vrchol v k u a do vzorku se uloží hrana (v k 1, v k ). V každém kroku se s pravděpodobností c algoritmus vrátí do v 0 a začne novou cestu. Obvykle c = 0.15 Kroky se opakují, dokud nemá vzorek požadovanou velikost. MAD2 2018/19 22
Random Walk Sampling Výsledný vzorek je tvořen jen z jedné souvislé komponenty - jestliže počáteční vrchol v 0 leží v malé izolované komponentě, nemusí vzorek dosáhnout požadované velikosti. Je tedy dobré kontrolovat velikost vzorku v každém kroku a pokud po dostatečném počtu kroků (např. 100 *n, n je počet vrcholů) nemá vzorek požadovanou velikost, algoritmus se restartuje a vybere se jiný počáteční vrchol. Vzorek vytvořený zachovává tvar distribuce vstupních stupňů. Pravděpodobnost, že vrchol u bude ve vzorku, je dána vztahem p d = d u / 2m, kde d u je stupeň vrcholu u a m je počet hran grafu. Vrcholy s vyšším stupněm mají tedy vyšší šanci na výběr. MAD2 2018/19 23
Varianty RWS Random Jump pracuje podobně jako RW. Jediným rozdílem je, že s pravděpodobností c se algoritmus nevrátí na počáteční místo, ale náhodně vybere jakýkoliv jiný vrchol v V, ze kterého pokračuje v procházení. Tato metoda nemá problémy s uváznutím v malé izolované komponentě. Random Jump metoda upřednostňuje vrcholy s vysokým stupněm a distribuce stupňů tak není zachována. MAD2 2018/19 24
Varianty RWS Forest Fire - je kombinací Showball samplingu a Random Walku. Metropolis-Hastings Random Walk MAD2 2018/19 25
Forest Fire Sampling Je kombinací Showball samplingu a Random Walku. Začíná výběrem náhodného vrcholu v 0 a přidáním vrcholu v 0 do nově vytvořeného vzorku. Následně se začne zapalovat část hran vrcholu v 0 a vrcholy s nimi incidentní (sousední). Proces se rekurzivně opakuje pro každý zapálený vrchol. Počet spálených sousedů k je náhodné číslo generované z geometrického rozdělení k Geom(p) s průměrem x, kde x je x = p/(1-p) Autoři modelu doporučují hodnotu p = 0, 7, což znamená, že každý vrchol spálí v průměru 2,33 sousedů. MAD2 2018/19 26
Forest Fire Sampling Proces se opakuje tak dlouho, dokud nebylo spáleno dostatečné množství vrcholů a vzorek tak nemá požadovanou velikost. Na Forest Fire metodu lze nahlížet jako na pravděpodobností verzi Breadth-first search metody, kdy každý soused aktuálního vrcholu je navštíven s pravděpodobností p. Pro Breadth-first search algoritmus je pravděpodobnost p = 1. Proto je u Forest Fire metody šance, že algoritmus skončí dřív, než se vybere dostatečný počet vrcholů. Tato metoda dobře zachovává tvar distribuce vstupních stupňů. MAD2 2018/19 27
Vyhodnocení, výběr metod Jak určit metody, které nejlépe zachovávají vlastnosti původní sítě? Jak změřit kvalitu vzorku a jak určit nejlepší vzorkovací metodu? Můžeme porovnávat distribuce vlastností. Každá distribuce vlastnosti vzorku S je porovnávána s distribucí vlastnosti původního grafu G pomocí dvouvýběrového Kolmogorovova-Smirnovova testu. MAD2 2018/19 28
Kolmogorovův-Smirnovův test Kolmogorovův-Smirnovův test je statistická metoda, která umožňuje testovat, zda dvě náhodné proměnné pocházejí ze stejného rozdělení pravděpodobnosti, případně zda náhodná proměnná má předpokládané teoretické rozdělení. Použijeme dvouvýběrový test - srovnává rozdělení dvou náhodných veličin, je to neparametrická metoda porovnávání dvou výběrů. Srovnává se rozdíl kumulativních nebo relativních kumulativních četností dvou výběrů. Nulová hypotéza říká, že dva výběry odpovídají stejnému rozdělení. MAD2 2018/19 29
Kolmogorovův-Smirnovův test Počítáme D-value, která slouží jako kritérium pro zamítnutí nulové hypotézy. D-hodnota je definována D(P,Q) = max{ P(x)-Q(x) }, x S kde P a Q jsou dvě kumulativní distribuční funkce a hodnota x je z množiny S, která představuje x-ové hodnoty distribuce nějaké vlastnosti vzorku. D-hodnota zachycuje největší odchylku na ose y mezi kumulativními distribučními funkcemi P a Q. Může nabývat hodnot 0 D(P,Q) 1 a platí, že čím menší je D-hodnota pro danou distribuci, tím jsou si grafy v dané vlastnosti podobnější. D(P,Q) = 0 značí totožné distribuce, tj. P = Q. MAD2 2018/19 30
Normalizace Porovnávané distribuce nemají stejné měřítko, maximální hodnoty na ose x pro vzorek jsou mnohem menší než maximální hodnoty na ose x původního grafu. D-hodnota porovnává spíše tvar distribucí než jejich hodnoty. Proto je nutné data distribucí znormalizovat. Nejprve se obě porovnávané distribuce převedou na kumulativní distribuce. Následně je osa x převedena na logaritmické měřítko a hodnoty se znormalizují do intervalu 0 x 1 vydělením všech hodnot největší hodnotou v dané ose. MAD2 2018/19 31
Kumulativní distribuční funkce Rozložení pravděpodobnosti náhodné proměnné udává, jaká je pravděpodobnost, že náhodná proměnná bude mít danou hodnotu. Součet pravděpodobností všech možných hodnot diskrétní náhodné proměnné je roven 1, Kumulativní distribuční funkce (kumulativní pravděpodobnost nebo distribuční funkce (Cumulative Distribution Function, CDF)) udává pravděpodobnost, že hodnota náhodné proměnné je menší než zadaná hodnota (nerovnost může být i neostrá) 32
MAD2 2018/19 33
Vizuální porovnání distribucí Ukázka pro citační síť MAD2 2018/19 34
BA model MAD2 2018/19 35