Dariusz Brzeziński Instytut Informatyki, Politechnika Poznańska
Big data Strumienie danych Założenia i ograniczenia Praktyczne problemy Przykłady algorytmów strumieniowych Narzędzia do przetwarzania dużych zbiorów danych i strumieni J. Gantz, D. Reinsel, Extracting Value from Chaos, IDC, 2011.
Termin bardziej marketingowy niż naukowy Do dziś brak konsensusu co do definicji Większość naukowców zgadza się na od 3 do 5 V : Volume (setki terabajtów) Velocity (wciąż napływają nowe dane) Variety (dane pochodzą z różnych źródeł i są w większości nieustrukturyzowane) Varacity (dane są niepewne lub zmienne w czasie) Value (korelacje, statystyki, zdarzenia)
Data Mining Big Data Mining Big Data Science
Big data mining is not about data mining per se Jimmy Lin (Univ. Maryland, Twitter) Big data is data that doesn t fit in a servers memory Hadley Wickham (Rice University) To sterta małych uciążliwych zadań Dużo atrybutów i przykładów (large-p, large-n) Próba zrozumienia i czyszczenia danych Lepsza dobra integracja niż wymyślne algorytmy Lepsza skalowalność niż własny algorytm
Analityka gry 4,6 miliardów godzin 6,5 tryliona strzałów 227 miliardów granatów 386 miliardów killów 30 milionów graczy Równoważenie map i broni Wykrywanie i automatyczne uczenie się Boostingu Feature engineering i skalowanie procesu Zastosowali w końcu Gradient Boosting Machines Machine Learning and Data Mining in Call of Duty, Arthur von Eschen, ECML 2014. (Nie ma niestety slajdów, podsumowanie można znaleźć tutaj: http://inside-bigdata.com/2014/05/30/data-science-activision/)
Monitorowanie sieci komputerowych, telekomunikacyjnych i transakcji bankowych Systemy rekomendacyjne Zastosowania biomedyczne Systemy nawigacyjne w sztucznej inteligencji Monitorowanie ruchu drogowego Badanie opinii w czasie rzeczywistym Inne wymagania niż wobec tradycyjnych metod eksploracji danych!
Strumień danych sekwencja elementów, które napływają w sposób ciągły w zmiennych interwałach czasu Wymagania wobec przetwarzania strumieni: ograniczony czas ograniczona pamięć reakcja na zmiany Concept drift zmiany definicji klas przewidywanych przez model w czasie
S {( P( K ), p( x K1)),...,( P( K ), p( x K 1 l l ))} Zmiany w prawdopodobieństwach wystąpień klas P K ),..., P( K ) ( 1 l Zmiany w rozkładzie przykładów p( x Ki ), i 1,..., l Zmiany prawdopodobieństw warunkowych klas p( Ki x), i 1,..., l
Przetwarzanie blokowe Przetwarzanie przyrostowe
Okna przesuwne Detektory dryftu Klasyfikatory złożone Klasyfikatory pojedyncze: DDM, EDDM, CVFDT, OVFDT, FISH, FLORA, ADWIN, ECCD Klasyfikatory złożone: SEA, AWE, AUE, DWM, ACE, HOT, Bag, Lev, OAUE, Learn ++
Metoda pozwalająca przystosować dowolny algorytm do przetwarzania strumieniowego Prosty mechanizm zapominania Typy okien o określonej liczbie przykładów/interwałowe o stałej/zmiennej długości o stałej wadze/wygaszające starsze przykłady Przykładowe algorytmy: EWMA, ADWIN, FISH, FLORA
Mining High-Speed Data Streams, P. Domingos, G. Hulten; KDD 2000 Główna idea: Mała próbka danych często może wystarczyć do określenia optymalnego atrybutu podziału drzewa decyzyjnego Zebranie odpowiednich statystyk z próbki strumienia Estymacja wartości funkcji oceny podziału dla każdego atrybutu Wykorzystanie granicy Hoeffdinga* do zagwarantowania optymalnego wyboru atrybutu podziału
R 2 ln(1/ ) 2n R zakres wartości estymowanej funkcji δ dopuszczalny błąd estymacji n rozmiar próbki 1-δ prawd. że x jest w zakresie ε od Granica Hoeffdinga jest prawdziwa dla dowolnego rozkładu danych
Właściwości algorytmu: Każdy przykład przetwarzany tylko raz Klasyfikator budowany przyrostowo - może klasyfikować w dowolnej chwili Zbieżność trafności VFDT do drzewa decyzyjnego zbudowanego na wszystkich przykładach Możliwość dodania mechanizmów zapominania i obsługi atrybutów numerycznych W pierwotnej propozycji źle zastosowano granicę Hoeffdinga, dopiero niedawno zaczęto nagłaśniać ten problem i sugerować nierówność McDiarmida
Mining concept-drifting data streams using ensemble classifiers, H. Wang et al.; KDD 2003 Główna idea: Nadawać wagi klasyfikatorom bazowym zgodnie z aktualnym rozkładem danych Formalny dowód, że tak ważone klasyfikatory są równie lub bardziej trafne od pojedynczego klasyfikatora zbudowanego na wszystkich przykładach Klasyfikator przetwarzający strumień blokami Estymacja rozkładu danych na ostatnim bloku Klasyfikator bazowy Klasyfika tor bazowy Klasyfikator bazowy Predykcja
Z każdym blokiem danych tworzony jest nowy klasyfikator Wcześniej utworzone klasyfikatory są oceniane na najnowszym bloku: w ij MSE r MSE ij, MSE Ocena krzyżowa dla najnowszego klasyfikatora ij Tylko najlepsze klasyfikatory ze wszystkich utworzonych Uzyskiwane wyniki mocno uzależnione od rozmiaru bloku Podobne algorytmy: SEA, AUE, Learn++.NSE 1 B i { x, y} B (1 i f j y ( x)) 2, MSE r y p( y)(1 p( y)) 2
Online Ensemble Learning, N. C. Oza; AAAI 2000 Główna idea: Stworzyć klasyfikator złożony z algorytmów przyrostowych i podawać przykłady zgodnie z rozkładem Poissona Klasyfikator przetwarzający strumień przykład po przykładzie Zamiast losować przykłady prezentowane każdemu klasyfikatorowi składowemu, każdy przykład jest prezentowany zgodnie z rozkładem Poissona Istnieje szereg modyfikacji oraz podobne rozwią- zania dla boostingu Klasyfikator bazowy Klasyfikato r bazowy Klasyfikator bazowy Predykcja
Learning with Drift Detection Joao Gama et al., Proc. SBIA, 2004. Główna idea: Śledzić błąd klasyfikatora i porównywać z oczekiwaną wartością odchylenia standardowego, reagować na niepokojące poziomy błędu Porównanie z rozkładem normalnym Zbieranie przykładów po osiągnięciu stanu ostrzegawczego Odrzucenie dotychczasowego klasyfikatora i budowanie nowego w momencie osiągnięcia stanu alarmowego p t t p min 2 min p t t p min 3 min
Analiza najlepszego miejsca podziału Jeśli da się podzielić okno przesuwne na dwa wystarczająco duże i wystarczająco różne podokna, nastąpiła zmiana Porównanie dwóch okien przesuwnych: krótkoterminowego i długoterminowego Jeśli wybrane statystyki dla tych dwóch okien mocno się od siebie różnią, nastąpiła zmiana Przegląd istniejących metod: A Survey on Concept Drift Adaptation, Gama et al.; ACM Computing Surveys, 2014, 46(4): 44:1--44:37.
Locality Sensitive Hashing i minhashing Podobne obiekty dostają taki sam hash => skupienie Działa w stałym czasie Fast knn Graph Construction with Locality Sensitive Hashing, Yan-Ming Zhang, Kaizhu Huang, Guanggang Geng, and Cheng-Lin Liu Follow the leader Algorytm tworzy skupienia zgodnie z trendem danych Skupienia pojawiają się i znikają W połączeniu z LSH i minhashing grupuje online Implementacje na platformę Storm Zastosowanie w śledzeniu wiadomości na twitterze High-Throughput Continuous Clustering of Message Streams, Oisin Boydell, Marek Landowski, Guangyu Wu and Padraig Cunningham
Wszystkie miary Macierz pomyłek Dodatkowe informacje (niepewność, macierz kosztów) Alternate Information Klasyfikatory deterministyczne Klasyfikatory rangujące Regresory i klasyfikatory z odpowiedzią ciągłą Wiele klas Jedna klasa Narzędzia graficzne Statystyki Miary odleglości/błędu Miary z teorii informacji Bez poprawki na losowość Accuracy Error Rate Poprawka na losowość Cohen s Kappa Fleiss Kappa Roc Curves PR Curves DET Curves Lift Charts Cost Curves AUC H Measure Area under ROCcost curve RMSE KL divergence K&B IR BIR TP/FP Rate Precision/Recall Sens./Spec. F-measure Geom. Mean Dice Miary atrakcyjności
Holdout [e.g., Kirkby 2007] Test-then-train [e.g., Kirkby 2007] Block-based evaluation [e.g., Brzezinski & Stefanowski 2010] Prequential [e.g., Gama et al. 2013] Windowing Fading factors
Skąd wziąć etykiety do wszystkich przykładów? Jak uczyć się gdy nie ma etykiet? Czy istnieje sposób na jawne potwierdzenie zmiany definicji klas? Jak oceniać algorytmy strumieniowe? Jak radzić sobie z niezrównoważeniem danych? Jak wybrać algorytm? Jak czyścić dane? Staging a środowisko produkcyjne?
Eksploracja danych Rozproszona Lokalna Wsadowa Strumieniowa Wsadowa Strumieniowa Hadoop Storm, S4, Samza Mahout, Spark Samoa, Spark streaming, Flink R, Scikit-learn, Rapid miner, Orange, Weka, KNIME MOA, Streams framework
Środowisko do implementowania i testowania algorytmów do eksploracji strumienie danych Integruje się z Weką, potrafi czytać pliki ARFF Zawiera sporo algorytmów strumieniowych oraz pozwala na łatwe implementowanie nowych Integracja ze środowiskiem ADAMS
Rozproszone implementacje algorytmów eksploracji danych: Klasyfikacja Grupowanie Systemy rekomendacyjne Hadoop Map-reduce Projekt Apache
Środowisko do rozproszonego przetwarzania danych Acykliczne grafy przetwarzania Efektywne wykorzystanie pamięci daje przewagę nad implementacji bezpośrednio na Hadoop Można pisać aplikacje w językach: Java, Scala, Python, R Dobrze współpracuje z innymi projektami Apache jak: Storm, Kafka, Cassandra, Hadoop czy HBase Spark streaming potrafi przetwarzać dane strumieniowo ale tylko blokami (micro-batching)
Rozproszona MOA Działa w środowiskach: Storm S4 Samza Lokalnie Zawiera nie tylko algorytmy, ale również łatwe API i narzędzia do testowania/porównywania algorytmów Brak interfejsu graficznego
Apache Flink następca Sparka przetwarzanie strumieniowe (online) integracja np. z Kafką, Flume czy Twitterem HeteroSpark Spark na komputery zwykłe i karty graficzne Amazon Kinesis PaaS to przetwarzania danych
Druid ultra-szybka hurtownia danych przystosowana do współpracy z systemami strumieniowymi SAP HANA komercyjne rozwiązanie od SAPa oprogramowanie + sprzęt + baza danych + raporty TensorFlow graf obliczeń wsparcie dla kart graficznych Wykorzystywany do tworzenia głębokich sieci neuronowych