Katedra Podstaw Informatyki•WIT•Politechnika Wrocławska
Big Data
Wykład przeznaczony jest dla studentów stopnia studiów informatycznych na Wydziale Podstawowych Problemów Techniki. Odbywa się w czwartki w godz. - na platformie MIcrosoft Teams. Na stronie tej znajdziesz informacje o zasadach zaliczenia, realizowanym materiale, literaturze oraz listę zadań.
Zasady zaliczenia ćwiczeń ustalicie z prowadzącym ćwiczenia. Ocena z ćwiczeń będzie oceną bazową z kursu.
Jak ktoś będzie chciał podwyższyć tę ocenę, to będzie musiał ze mną odbyć indywidualny egzamin.
Literatura
Podstawowa
J. Leskovec, A. Rajaraman, J. D. Ullman, Mining of Massive Datasets, <a href='http://infolab.stanford.edu/~ullman/mmds/book.pdf'>book.pdf</a>, 2016
Mohammed Guller, Big Data Analytics with Spark, APress, 2016
MAPPER(L) {
split text L into words [w1, w2, ... wn]
emit (w1,1); emit (w2,1); ... ; emit (wn,1);
}
REDUCER(w,L) {
emit(w,L.length)
}
Przykład sesji w języku Scala (wy macie coś podobnego, ale znacznie lepszego, zrobić w języku Python):
val T = "ALA ma kota. ALA ma psa. Ala ma kota i kanarka"
val t = T.toLowerCase
var G = t.filterNot(x=>".;".contains(x)).split("\\s+").map(x=>(x,1))
val A = G.groupBy(x=>x._1).mapValues(x=>x.length)
var X = A.toSeq
X.sortWith((x,y)=>x._2>y._2)
Zadanie: załóżmy, że chcemy pomnożyć macierz $M$ przez wektor $X$, który nie mieści się w pamięci mapperów, ale mieści się po $\frac13$ części tego wektora.
Jak to możemy zrobić w paradygmecie Map-Reduce?
Projekcje w losowych kierunkach z płaszczyzny na podprzestrzeń jednowymiarową.
Pojęcie k-uniwersalnej rodziny haszującej
Tw. Jeśli $\mathcal{H}$ jest 2 uniwersalna o wartościach w $\{0,\ldots,n-1\}$, oraz $|X|=k$ i $L$ jest długością wyszukiwania w hasz-tablicy w ktorej umieściliśmy elementy $X$ to $E[L] \leq k/n$.
Liczbę $\alpha = k/n$ nazywamy wspołczynnikiem zapełnienia tablicy.
Przykład 2-uniwersalnej rodziny:
mamy ustaloną liczbę $n$ oraz liczbę pierwszą $p \gt n$; definiujemy
$\mathcal{H} = \{\phi_{a,b}: a \in \ZZ_{p}^{+} \land b \in \ZZ_p\}$, gdzie
$$
\phi_{a,b}(x) = (a x + b \mod p) \mod n
$$
Jest to 2-uniwersalna rodzina funkcji haszujących ze zbioru $\{0,\ldots,p-1\}$ do $\{0,\ldots,n-1\}$.
Uwaga: pewną trudność sprawiało nam to, że liczba pierwsza $p$ nie jest podzialna przez $n$.
Pojęcie silnie k-uniwersalnej rodziny haszującej
Zadanie: napisz w dowolnym języku programowania generator liczb losowych z rozkładu jednostajnego z odcinka $[0,\pi)$
Pytanie: dlaczego pojęcie funkcji 2-uniwersalnej nie ma sensu ?
Konstrukcja rodziny funkcji k-silnie niezależnej rodziny funkcji haszujących.
Przykład: konstrukcja ciała liczbowego o $2^8$ elementach.
Filtry Blooma
Wzór na "false positive":
$$\Pr[\mathrm{False Positive}] \approx \left(1-\left(1-\frac1m\right)^{kn}\right)^k ~,$$
gdzie: $m$ = rozmiar tablicy, $n$ = liczba wstawianych obiektów, $k$ = liczba funkcji haszujących
Tw. Dla ustalonych $m$ i $n$ liczba $k \approx \ln 2 \cdot \frac{m}{n}$ minimalizuje $\Pr[\mathrm{False Positive}]$
Zasada: jeśli używasz list lub zbiorów, a pamięć jest jest istotnym ograniczeniam oraz efekt fałszywych alarów nie jest istotnym problemem, to rozważ zastosowanie filtrów Blooma
Orginalny artykuł Burtona Bloom'a z roku 1970: Bloom.pdf
Fajny artykuł Andrei Brodera and Michaela Mitzenmachera z roku 2005: im2005b.pdf
02.12.2021: Podobieństwo Jaccarda.
Przypomnienie pojęcia przestrzeni metrycznej
Przekształcenia metryk:
Tw. Jeśli $d$ jest metryką, $f:[0,\infty)\to [0,\infty)$ jest funkcją wklęsłą , niemalejącą oraz $f(x)\gt 0$ dla $x\gt 0$, to funkcja $f\circ d$ jest również metryką.
Tw (Steinhaus). Jeśli $d$ jes metryką na zbiorze $X$, $a \in X$ oraz
$$
\rho(x,y) = \frac{2 d(x,y)}{d(x,a)+d(y,a)+d(x,y)} ~,
$$
to $\rho$ jest metryką na zbiorze $X\setminus\{a\}$.
Tw. Funkcja $d_J(A,B) = \frac{|A\triangle B|}{|A\cup B|}$ jest metryką na przestrzeni skończonych podzbiorów ustalonego $\Omega$