Wyklad inauguracyjny

46
Inżyniera danych - Big Data. Chwilowe zauroczenie czy trwały trend? Przykłady praktycznego zastosowania przetwarzania dużych wolumenów danych w bankowości i analizie ruchu w Internecie 11. października 2014 1

description

Wykład inauguracyjny. Inżyniera danych - Big data.

Transcript of Wyklad inauguracyjny

Page 1: Wyklad inauguracyjny

Inżyniera danych - Big Data. Chwilowe zauroczenie czy

trwały trend? Przykłady praktycznego zastosowania przetwarzania dużych wolumenów danych w bankowości i analizie

ruchu w Internecie

11. października 2014

1

Page 2: Wyklad inauguracyjny

Powitanie

„Każdy początek ma w sobie coś magicznego”

Bear Grylls

2

Page 3: Wyklad inauguracyjny

Czemu stoję przed Państwem?

• Przez przeszło 12 lat odpowiadałem za systemy raportujące w portalu Onet.pl. Onet to przeszło 3 mld odsłon i 70 mln unikalnych cookies w skali miesiąca. Odpowiadałem za wybór narzędzi do analizy danych. W tym za przejście z rozwiązań komercyjnych na rozwiązania open source.

• Brałem czynny udział w jednym z najciekawszych projektów Big Data w Alior Bank.

• Obecnie odpowiadam za budowę systemu rekomendacji treści w TVN.

• Czynnie zajmuję się analizą dużych zbiorów danych i doborem narzędzi analitycznych.

3

Page 4: Wyklad inauguracyjny

O co chodzi w tym całym Big Data?

Możliwość stworzenia spójnego obrazu potrzeb klientów.

Na podstawie wielu źródłem danych.

Nadającego się do praktycznego wykorzystania.

W rozsądnym czasie.

Przy rozsądnych kosztach.

Po co?

Lepsze adresowanie usług.

Ograniczenie kosztów.

Zapobieganie niekorzystnym zdarzeniom.

4

Page 5: Wyklad inauguracyjny

A tak konkretniej

Chcemy połączyć dane o zachowaniu naszych klientów:

• Systemy transakcyjne

• Co robią na naszych stronach

• Co piszą w mediach społecznych

• Jakich treści szukają w Internecie

• W jakiej sprawie dzwonili do call center

• Czy zainteresował ich mailling

• Jak korzystają z telefonu komórkowego

• …

Definicja Big Data (Gartner, 2001): Volume, Velocity, Variety

5

Page 6: Wyklad inauguracyjny

Jeszcze konkretniej

Musimy przejść z danych typu:

do danych o postaci:

identyfikator klienta

data zdarzenia opis zdarzenia wartość

1 2009-01-01opłata rachunku za gaz 315 zł

1 2009-01-01

zakup w sklepie internetowym artykuły sportowe 124 zł

… … … …

identyfikator klienta data zdarzenia url useragent

23456781 2009-01-01 www.wp.plMozilla/5.0 (Windows NT 5.1; rv:26.0)

Gecko/20100101 Firefox/26.0

… … … …

identyfikator klienta

wartość rachunku za gaz M-6

wartość rachunku za gaz M-5

rachunek za gaz ile dni przed/po terminie M-6

wartość bilety lotnicze M-6

Kwota wydana na benzynęM-5

Kwota wydana na zakupy żywnościowe w sklepach wyższej półki M-5

Czas spędzony na serwisach o

tematyce biznesowej M-6

Wydatki na edukację dziecka

M-5

Klasaposiadanego

telefonu …

1 315 zł 320 zł 10 0 zł 300 zł 20 zł 3:42 140 zł Wysoka …

2 420 zł 350 zł 5 800 zł 500 zł 550 zł 2:15 0 zł średnia …

… … … … … … … … …

6

Page 7: Wyklad inauguracyjny

Co mnie pociąga w Big Data?

1. Prawdziwy obraz zjawiska:

• nie ma podstawie deklaracji,

• nie na podstawie próbki danych,

• nie na podstawie sztucznego eksperymentu.

2. Możliwość przekładu problemów biznesowych na język danych.

3. Konieczność rozwiązywania łamigłówek.

7

Page 8: Wyklad inauguracyjny

Praktyczny problem

Dysponujemy danymi.

8

Identyfikator klienta Data logowania

1 2000-01-01

1 2000-01-02

1 2000-03-01

… …

2 2000-01-01

2 2000-06-01

2 2000-06-02

… …

Problem: jaki jest churn?

Page 9: Wyklad inauguracyjny

Praktyczny problem

Dysponujemy danymi.

9

Identyfikator klienta Data logowania

1 2000-01-01

1 2000-01-02

1 2000-03-01

… …

2 2000-01-01

2 2000-06-01

2 2000-06-02

… …

Problem: jaki jest churn?

Czego nie wiemy?

Page 10: Wyklad inauguracyjny

Praktyczny problem

Dysponujemy danymi.

10

Identyfikator klienta Data logowania

1 2000-01-01

1 2000-01-02

1 2000-03-01

… …

2 2000-01-01

2 2000-06-01

2 2000-06-02

… …

Problem: jaki jest churn?

Co to znaczy, że klient zrezygnował?

Page 11: Wyklad inauguracyjny

Praktyczny problem

Dodajemy kolumnę

11

Identyfikator klienta

Datalogowania

Ilość dni bez logowania

1 2000-01-01 Null

1 2000-01-02 1

1 2000-03-01 59

… …

2 2000-01-01 Null

2 2000-06-01 152

2 2000-06-02 1

… …

Identyfikator klienta

Maksymalny czas bez logowania, po którym zalogował się powtórnie

1 63

2 160

3 1

4 1

5 2

6 215

… …

Tworzymy nową tabelę

Page 12: Wyklad inauguracyjny

Praktyczny problem

Na podstawie nowej tabeli tworzymy wykres

12

0

20

40

60

80

100

120

1401

dzi

5 d

ni

9 d

ni

13 d

ni

17 d

ni

21 d

ni

25 d

ni

29 d

ni

33 d

ni

37 d

ni

41 d

ni

45 d

ni

49 d

ni

53 d

ni

57 d

ni

61 d

ni

65 d

ni

69 d

ni

73 d

ni

77 d

ni

81 d

ni

85 d

ni

89 d

ni

93 d

ni

97 d

ni

101

dn

i

105

dn

i

109

dn

i

113

dn

i

ilość klientów

ilość klientów

Page 13: Wyklad inauguracyjny

Czemu warto – last but not least

13

Page 14: Wyklad inauguracyjny

Czemu warto – last but not least

14

Page 15: Wyklad inauguracyjny

Wyzwania

1. Zgromadzenie dużych ilości danych w sposób umożliwiający korzystanie z nich w rozsądnym czasie.

2. Zapewnienie spójnej identyfikacji klienta w danych pochodzących z różnych źródeł.

3. Przetłumaczenie danych technicznych na zdarzenia mające znaczenie z punktu widzenia biznesu.

4. Przygotowanie analiz statystycznych.

15

Page 16: Wyklad inauguracyjny

Gromadzenie danych

Dlaczego zapisywanie danych jest tak wydajne?

Tabela z faktami

Słownik 2

Słownik 4

Tabela z faktami

Słownik 1

Słownik 3

Podejście relacyjne – utrzymywanie postaci normalnych zapewnia nam optymalne wykorzystanie przestrzeni dyskowej.

Nie musimy się przejmować przestrzenią dyskową.

16

Wiele serwerów:jednostka centralna + dysk

Jeden centralny proces

Page 17: Wyklad inauguracyjny

Gromadzenie danych

Dlaczego dostęp do danych jest tak wydajny?

Główny problemPodproblem 2

Podproblem 1

Podproblem n

W dużym zbiorze danych chcemy znaleźć wpisy spełniające pewne kryterium, np.: wśród danych o wyświetleniach materiałów wideo chcemy znaleźć wpisy dotyczące serialu X.

Scalenie rozwiązań

podproblemów

Dzielimy zbiór na kilkanaście mniejszych i w każdym z nich równolegle w tym samym czasie wyszukujemy interesujące nas wpisy.

Łączymy wyniki wyszukiwania.

17

Faza map Faza reduce

Page 18: Wyklad inauguracyjny

Apache Hive

18

Środowisko umożliwiające zadawanie pytań w języku zbliżonym do SQL.

Ale nie tylko. Również:• Rozbudowane możliwości operowania na napisach• Możliwość wywoływania metod Java• Operowanie na JSON• Sporo wbudowanych funkcji statystycznych

umożlwiających szybkie poznanie rozkładu wartości czy sprawdzenie korelacji między zmiennymi

Page 19: Wyklad inauguracyjny

Pig Latine

19

Pig Latin - język, w którym definiujemy sposób przetwarzania danych.

Warto pamiętać:• Rozbudowane możliwości operowania na napisach • Możliwość używania wyrażeń regularnych• Rozbudowane możliwości operowania na datach• Możliwość definiowania własnych funkcji (Java, Python,

JavaScript, Ruby, Groovy)

Page 20: Wyklad inauguracyjny

Mahout

20

Biblioteka procedur statystycznych, umożliwiających korzystanie z paradygmatu MapReduce.

Dostępne procedury:• Regresja – tylko na pojedynczej maszynie• Perceptrony wielowarstwowe – tylko na pojedynczej

maszynie• Lasy drzew – MapReduce/pojedyncza maszyna• Algorytm centroidów – MapReduce/pojedyncza maszyna• Klasyfikatory bayesowskie - MapReduce

Page 21: Wyklad inauguracyjny

Hadoop – szybki start

21

Dwu głównych dostawców:

Cloudera

Cloudera Express

Hortonworks

Hortonworks Sandbox

Page 22: Wyklad inauguracyjny

Gromadzenie danych pułapki

• Szybkie zapisywanie danych, to jedno, a agregacja na potrzeby analiz to drugie.

• W Hadoop łatwo zapisać dane, trudniej wycofać raz zapisane – rzetelny ETL.

• Analizowanie danych czy uzyskiwanie odpowiedzi w czasie rzeczywistym.

• To wbrew pierwszemu wrażeniu całkiem skomplikowane środowisko, wymagające uruchomienia i utrzymania wielu usług.

• Hadoop działa na klastrze – to naturalne środowisko dla niektórych firm, ale zupełna nowość dla innych.

• Trzeba go zintegrować z zewnętrznymi źródłami danych i systemami do prezentacji raportów.

22

Page 23: Wyklad inauguracyjny

Jeszcze kilka pytań – jeśli chodzi o gromadzenie danych

• Lokalnie czy na zewnątrz?

• Jaka przestrzeń dyskowa?

• Jaka pamięć operacyjna?

• Może CUDA?

• Skalowalność.

23

Page 24: Wyklad inauguracyjny

Czy zawsze Hadoop?

• Potrzeba analizowania danych w czasie rzeczywistym: Storm(http://storm.incubator.apache.org/)

• Szybkie analizy w pamięci operacyjnej: Spark(http://spark.incubator.apache.org/) Apache Top-Level Project od lutego 2014

• Riak

• Cassandra

• Całkowita elastyczność jeśli chodzi o strukturę danych: mongoDB (https://www.mongodb.org/)

• mySQL, PostreSQL, …

24

Page 25: Wyklad inauguracyjny

Czy zawsze Hadoop?

• Niewielki wolumen danych.

• Niewielkie zróżnicowanie danych.

• Dane o wyraźnej strukturze.

• Dane niewymagające łączenia – jednolite źródło.

• Nikłe zasoby po stronie IT (zasilanie danymi, zarządzanie dostępami, utrzymanie systemu).

• Niewielki zespół analityczny.

• Czasem podejście relacyjne jest lepsze.

25

Page 26: Wyklad inauguracyjny

Spójna identyfikacja klienta

• Ograniczenia prawne.• Pozyskanie danych ze źródeł zewnętrznych łączy się

z kosztami - przemyślany model biznesowy.• Identyfikacja użytkownika w różnych systemach ma

różny czas ważności.• Różne systemy posługują się różnymi walutami:

numer konta bankowego, identyfikator przeglądarki internetowej, adres IP, numer telefonu, login do Facebook, adres poczty e-mail, …

26

Page 27: Wyklad inauguracyjny

Zanim zajmiemy się analizą

• zgromadzenie danych w składnicy danych/hurtowni danych

• kontrola poprawności danych (braki danych, wartości wprowadzane jako domyślne)

• zaprojektowanie struktury danych, które mają być poddane analizie

• wygenerowanie zbioru danych

• kontrola poszczególnych zmiennych (braki danych, częstotliwość występowania poszczególnych wartości, korelacja pomiędzy poszczególnymi zmiennymi, wartości odstające)

• właściwa analiza

Przygotowanie danych zajmuje 80% czasu

27

Page 28: Wyklad inauguracyjny

W jakim środowisku będziemy prowadzić analizę?

• Dobra integracja ze zbiorami danych poddawanych analizie.

• Czy będziemy generować kod scoringowy? Jak często? Ewentualna potrzeba integracji z systemami produkcyjnymi.

• Jakich technik statystycznych chcemy używać?

• Czy widzimy biznesową przydatność analiz? (syndrom góry, która rodzi mysz)

28

Page 29: Wyklad inauguracyjny

R vs Python

• Praktycznie standard.• Duże i prężne środowisko

użytkowników: mnóstwo modułów, praktycznie każda nowa technika statystyczna.

• Łatwość w dostępie do ludzi znających R i rozumiejących zagadnienia statystyczne.

• Jednak: oddzielny język programowania.

• Znakomite środowisko do obliczeń statystycznych SciPy

• Język programowania, w którym można napisać MapReduce.

• Nie ma zbyt wiele osób na rynku łączących umiejętności programistyczne, znajomość technik statystycznych i zorientowanych na rozwiązywanie zagadnień biznesowych.

29

Page 30: Wyklad inauguracyjny

R vs Python

• sqldf (SQL)• plyr (agregacja danych)• stringr (operacje na tekście)• lubridate (operacje na datach)• reshape2 (zmiana struktury danych)

• ggplot2 (wizualizacja danych)

• forecast (szeregi czasowe)• rpart (drzewa decyzyjne)• randomForest (lasy drzew)• nnet (sztuczne sieci neuronowe)• class (k-najbliższych sąsiadów)

• IPython – interaktywna praca z danymi, łatwe zrównoleglanie obliczeń

• pandas – szybkie przygotowanie danych do analizy statystycznej

• Matplotlib – łatwa i wydajna wizualizacja danych

30

pakiety

Page 31: Wyklad inauguracyjny

Problem uniwersalny - ludzie

Szukamy ludzi o niebanalnym zestawie umiejętności:

• administrator – zarządzanie klastrem

• programiści - równoległe przetwarzanie danych, ETL z różnych środowisk

• analityk (data scientist) – trochę programista (map reduce), trochę statystyk, dobrze rozumiejący potrzeby biznesowe i specyfikę danych

31

Page 32: Wyklad inauguracyjny

Świat portali

Mnóstwo danych technicznych: • Rodzaj przeglądarki

• Rodzaj urządzenia mobilnego

• Typ systemu operacyjnego

• Czy akceptuje java script

• Wielkość ekranu

• Położenie geograficzne

• O której godzinie zwykł czytać wiadomości

• W której sekundzie przestał oglądać dany film

• Jakie treści szukał zanim znalazł się na naszych stronach

• Jakie strony odwiedził

• W jakie reklamy kliknął

• Z kim koresponduje/jak często

32

Page 33: Wyklad inauguracyjny

Świat portali

Ale: • Ile ma lat?

• Jakiej jest płci?

• W jakiej miejscowości mieszka na stałe?

• Czy nie porzuci nas za chwilę?

33

Page 34: Wyklad inauguracyjny

Świat portali – wyzwanie nr 1

Odtworzenie cech demograficznych

• Znamy cechy części użytkowników (podają je w momencie rejestracji)

• Korzyści:

• wiemy dla kogo produkujemy treści,

• bardzo przydatna informacja przy różnicowaniu treści

34

Page 35: Wyklad inauguracyjny

Świat portali – wyzwanie nr 2

Wyższa klikalność reklam/mailingów

• Potrafimy odnaleźć grupy zainteresowane określonym typem treści

• Korzyści:

• Prezentujemy użytkownikom reklamy, które są dla nich bardziej interesujące – przez to reklamy są odbierane jako mniej irytujące

• Podnosi się CTR – klienci zlecający kampanie reklamowe są zadowoleni

35

Page 36: Wyklad inauguracyjny

Świat portali – wyzwanie nr 3

Personalizacja treści stron

• Redakcje produkują/otrzymują setki wiadomości dziennie dziennie.

• Nasze strony mają bardzo ograniczoną pojemność.

• Użytkownicy wchodzą na strony z różną częstotliwością.

• Często muszą przewinąć stronę, żeby odnaleźć interesującą informację.

• Korzyści:

• Użytkownicy odbierają serwis jako lepiej dostosowany do swoich potrzeb.

• Potrafimy zmieścić więcej informacji – redakcja jest zadowolona.

• Lepszy kontekst dla reklam.

36

Page 37: Wyklad inauguracyjny

Świat portali – wyzwanie nr 4

Rekomendacja treści

• Niewiele punktów wejścia

• Stosunkowo płytka penetracja

• Korzyści:

• Efektywniej wykorzystujemy wizytę użytkownika.

• Większa ilość odwiedzonych serwisów/usług.

• Dłuższy czas spędzony z nami – więcej okazji do wyświetlenia reklam.

37

Page 38: Wyklad inauguracyjny

Świat banków

Mnóstwo danych o operacjach bankowych: • Jak korzysta z karty debetowej

• Czy ma kredyt

• Jak korzysta z karty kredytowej

• Od kogo otrzymuje przelewy

• Na jakie konta przelewa pieniądze

38

Page 39: Wyklad inauguracyjny

Świat banków

Ale: • Scroring kredytowy tylko jeśli ma u nas kredyt, lub starał się o taki

• Słaby opis transakcji bankowych

• Brak znajomości potrzeb klientów

• Nie wiemy o ważnych wydarzeniach (zmiana pracy, narodziny dziecka, przejście dziecka na kolejny etap edukacji, planowana przeprowadzka)

• Niewielu klientów przelewa wynagrodzenie

39

Page 40: Wyklad inauguracyjny

Świat banków – wyzwanie nr 1

Kategoryzacja operacji bankowych

• Niewiele ma jawnie wpisany tytuł przelewu – ale można się oprzeć na numerze konta bankowego

• Kategoryzacja płatności kartami: położenie geograficzne, kategoria wydatków (kody MCC), kategoryzacja miejsc

• Korzyści:

• podstawa do dalszych analiz

40

Page 41: Wyklad inauguracyjny

Świat banków – wyzwanie nr 2

Użytkownicy bez historii kredytowej

• Młodzi ludzie ubiegający się o pierwszy kredyt lub pierwszy poważny kredyt.

• Bezcenne możliwość sięgnięcia do danych pochodzących spoza banku (firmy telekomunikacyjne, portale internetowe, media społeczne) ale również do danych bankowych

• Korzyści:

• Święty Graal – scoring w oparciu o dane poza bankowe

41

Page 42: Wyklad inauguracyjny

Świat banków – wyzwanie nr 3

Zwiększenie wartości klienta

• Ludzie słabo znają ofertę banku.

• Niewiele okazji do interakcji z klientem.

• Wiedza o szykujących się zmianach w życiu klienta (przeprowadzka, narodziny dziecka, zmiana samochodu)

• Korzyści:

• Oferujemy usługi, które mogą być interesujące dla klienta

• Oferujemy je we właściwym momencie

• Wykorzystujemy do maksimum krótkie momenty kontaktu

42

Page 43: Wyklad inauguracyjny

Świat banków – wyzwanie nr 4

Zapobieganie odejściom

• Szybsza spłata kredytu.

• Likwidacja karty kredytowej.

• Likwidacja lokaty.

• Korzyści:

• Utrzymujemy klienta przy sobie.

• Klient wie, że jest dla nas ważny.

• Reagujemy w sytuacji rzeczywistego zagrożenia odejściem.

43

Page 44: Wyklad inauguracyjny

Inne światy

1. Towarzystwa ubezpieczeniowe

2. Sprzedaż towarów i usług

3. Opieka medyczna

44

Page 45: Wyklad inauguracyjny

Big Data

To nie jest coś co się dopiero może wydarzy.

Dla wielu firm, to codzienność od wielu lat.

Dla innych firm, to bardzo pociągająca przyszłość. Coś co musi się wydarzyć.

Tam, gdzie pojawia się Big Data, zmieniają warunki gry.

45

Page 46: Wyklad inauguracyjny

Dziękuję za uwagę

Radosław Kita

[email protected]

46