SlideShare a Scribd company logo
1 of 31
Machine learning vs Big Data - od pomysłu do produkcji
Bartłomiej Twardowski, Paweł Zawistowski
Agenda + Trochę o nas
• B.Twardowski
• Big Data dla ML
• od surówki do modelu
• praktyczne rady
• P.Zawistowski
• Ruszamy na produkcję
• Co może pójść źle...
Big Data & Machine Learning w Allegro
Big Data:
• clickstream (web/mobile - Kafka)
• backend events (microservices - Hermes)
• dane archiwalne z wielu lat (DWH)
ML w Allegro:
• rankingowanie
• rekomendacje
• atrybucja wielokanałowa
• ocena jakości zdjęć
• ads (za chwilę)
Zaczynamy naszą przygodę...
...czyli: jak od surowych danych przejść do modelowania?
Ankieta KDNuggets CRISP-DM
Źródło: http://www.kdnuggets.com/2014/10/crisp-dm-top-methodology-analytics-data-mining-data-science-projects.html
Exploratory Data Analysis - lubimy duże dane
Pomocne narzędzia:
- HQL(Hive+Tez), SQL (Exadata)
- Hue (każdy ma dostęp z konta AD)
- R (sparkR+dplyr+ggplot2+shiny)
- Jupyter Notebooks (+Spark backend)
- Kibana (ElasticSearch)
- Tableau (Hive JDBC/Spark)
Przygotowanie danych
• Na koniec dnia potrzebujemy zbiory: train,
valid, test
• zadania: czyszczenie danych, agregacja,
próbkowanie, transformacja atrybutów, cechy
- wybór/tworzenie, redukcja wymiarów
• większość naszego czasu! (90%/10%)
• nie raz będziemy wracać i modyfikować ten proces
• GIGO
• if isOnHadoop(data): Spark+DataFrame
else: data.table/dplyr/pandas
Big Data? A może odpowiednia próbka?
• Próbkowanie
• odpowiedni dobór reprezentatywnych danych:
• random/stratified
• zachowanie charakterystyki danych (np. sezonowość w e-commerce)
• Niezbalansowane zbiory danych
• Przykłady:
• e-commerce: don’t buy/buy - 99%/1%, medical diagnosis (90% healty, 10% disease)...
• Predykcja większościowej klasy jest łatwa, ale bezużyteczna
• Balansujemy zbiór danych pod nasze potrzeby - np. dla metod pairwaise dla
każdej próbki pozytywnej losujemy z empirycznym rozkładem negatywną
Wybór algorytmu ML
- “kwintesencja” całego procesu
- wybieramy model na potrzeby naszego problemu np. predykcja
kliku, prawdopodobieństwo zakupu, ranking ofert
- mnóstwo dostępnych rozwiązań dla różnej klasy problemów
- dostępne implementacje, w większości open-source
- publikacje + reprodukowalne eksperymenty: arXive + Github =>
GitXive
- warto zachowywać wraz z wynikiem wytrenowane parametry i
wybrane hyper-parametry
Czego uczymy nasz model?
Predykcji wartości X czy zarabiania pieniędzy w walucie Y?
• odpowiedni dobór f. kosztu przy optymalizacji modelu
• ewaluacja model offline vs online - różne miary
• dobranie miary sukcesu dla swojego przedsięwzięcia
Przykład:
• optym. pod predykcje wartości (RMSE)
• właściwie pokazujemy jako listę posortowaną i jakość rankingu
(recall@N/nDCG@N)
• biznes patrzy na raport: CTR, GMV
Kiedy warto rozpraszać ML
- kiedy nie mamy innego
wyjścia
- mamy gotową
implementację naszego
algorytmu
Info na moim Twitter: @btwardow, bez montażu ;-)
Prosta implementacja w NumPy
Ta sama implementacja w Theano - CPU vs GPU
Factorization Machines implemented in Theano, left CPU (16xIntel) vs GPU (AWS g2.2xlarge)
Wybór technologi dev/prod - kompromis?
- mądry wybór narzędzi do zadania (dostępne
biblioteki/informacje/społeczność)
- wykorzystanie technologi która umożliwi eksperyment na produkcji
i szybką weryfikacje hipotezy (np. Spark+MLlib, python+Theano,
mxnet)
- mit “data scientist” - od surowych danych po działające rozwiązanie
na produkcji z wysokim SLA
Clean Code i TDD w programowaniu alg. ML
- jest trudne!
- przyzwyczajenie do Notebook
- póki nie robimy własnego pakietu (R/Julia/Python) często uważamy
za niepotrzebne
- dużo zależności od danych: czy do repo wrzucać próbki w CSV? a
może pisać specjalny generator?
Wdrażamy!
Wdrażamy!
...ale nie porzucajmy modeli na produkcji
Na produkcji…
f(x, )
Co może pójść nie tak?
Źródło: http://static.fjcdn.com/pictures/What+could+possibly+go+wrong+comp+1_f5df2e_5306624.jpg
CACE - Changing Anything,
Changes Everything
Źródło: D. Sculley et al.: „Machine Learning: The High-Interest Credit Card of Technical Debt”, Google,
Problemy z atrybutami wejściowymi
Źródło: https://upload.wikimedia.org/wikipedia/commons/thumb/9/92/CPT_Hardware-InputOutput.svg/1212px-CPT_Hardware-InputOutput.svg.png
Niestabilne atrybuty
● Modelowane zjawiska się zmieniają.
● Inne systemy bywają niestabilne i ewoluują
f(x, )
Źródło: http://tylervigen.com/spurious-correlations
Degradacja atrybutów: fałszywe korelacje
Degradacja atrybutów: mikrooptymalizacje
Źródło: http://pu.i.wp.pl/?k=MzE1Mzg5MjAsMTg1MzI5&f=wiejski_tuning_044.jpg
Problemy z atrybutami wyjściowymi
Źródło: https://upload.wikimedia.org/wikipedia/commons/thumb/9/92/CPT_Hardware-InputOutput.svg/1212px-CPT_Hardware-InputOutput.svg.png
Nieznani użytkownicy
• Z przygotowanego modelu korzystają inni - nie zawsze o
tym wiemy.
• Zmiana w modelu może mieć trudne do przewidzenia
skutki.
Nieznani użytkownicy - np. kaskady korekt
prognoza
pogody
kalendarz
liczba
(koszyków? osób?)
średnia
wartość
koszyka
obrót
sklepuA Bpromocje
dane
historyczne
A - przewiduje ruch w sklepie
B - przewiduje obrót sklepu
Źródło: http://www.seriouseats.com/images/2016/01/20160115-things-never-to-but-at-supermarket-.jpg
Ukryte sprzężenia zwrotne
Udostępniamy informacje
o:
• tym co robimy/co mamy
w danych,
• sukcesach/porażkach.
Dokumentacja:
• „czysta” implementacja,
• jawne założenia -
powtarzalność wyników.
#1 Komunikacja
Źródła: http://hortonworks.com/wp-content/uploads/2013/05/hive_logo.png, http://blog.cleancoder.com/assets/clean_code_72_color.png,
http://www.charbase.com/images/glyph/8634, http://www.clipartbest.com/cliparts/ecM/kRB/ecMkRBBei.png
https://cwiki.apache.org/confluence/download/attachments/31822298/FALCON?version=1&modificationDate=1422616967000&api=v2
Atrybutów wejściowych:
• brakujące dane, nieznane wartości,
• testy statystyczne,
• korelacje,
• …
Atrybutów wyjściowych:
• bias, wybrane wartości centyli,
• wykrywanie anomalii,
• poziom błędu modelu,
• …
#2 Monitorowanie
#3 Eksperymenty
(kiedy nie jesteśmy w stanie monitorować poziomu błędu)
Źródło: http://www.mrcbiology.com/practical2jpg.jpg
Machine learning vs Big Data - od pomysłu do produkcji
Bartłomiej Twardowski, Paweł Zawistowski

More Related Content

Viewers also liked

Nie bój się analizy danych! Fakty i mity o big data i Business Intelligence.
Nie bój się analizy danych! Fakty i mity o big data i Business Intelligence.Nie bój się analizy danych! Fakty i mity o big data i Business Intelligence.
Nie bój się analizy danych! Fakty i mity o big data i Business Intelligence.Mateusz Muryjas
 
Big Data - 25 Amazing Facts Everyone Should Know
Big Data - 25 Amazing Facts Everyone Should KnowBig Data - 25 Amazing Facts Everyone Should Know
Big Data - 25 Amazing Facts Everyone Should KnowBernard Marr
 
[WebMuses] Big data dla zdezorientowanych
[WebMuses] Big data dla zdezorientowanych[WebMuses] Big data dla zdezorientowanych
[WebMuses] Big data dla zdezorientowanychPrzemek Maciolek
 
Cz ii tt_tsne_21022017_public
Cz ii tt_tsne_21022017_public Cz ii tt_tsne_21022017_public
Cz ii tt_tsne_21022017_public Grzegorz Gwardys
 
Big Data - big problem or big chance? InternetBeta 2014
Big Data - big problem or big chance? InternetBeta 2014Big Data - big problem or big chance? InternetBeta 2014
Big Data - big problem or big chance? InternetBeta 2014Pawel Sala
 
Metody Deep Learning - Wykład 7
Metody Deep Learning - Wykład 7Metody Deep Learning - Wykład 7
Metody Deep Learning - Wykład 7Craftinity
 
Metody Deep Learning - Wykład 1
Metody Deep Learning - Wykład 1Metody Deep Learning - Wykład 1
Metody Deep Learning - Wykład 1Craftinity
 
Metody Deep Learning - Wykład 4
Metody Deep Learning - Wykład 4Metody Deep Learning - Wykład 4
Metody Deep Learning - Wykład 4Craftinity
 
Predicting the risk of suicide using clinical notes
Predicting the risk of suicide using clinical notesPredicting the risk of suicide using clinical notes
Predicting the risk of suicide using clinical notesŻaneta Michalak
 
(Azure) Machine Learning 2015
(Azure) Machine Learning 2015(Azure) Machine Learning 2015
(Azure) Machine Learning 2015Tomasz Kopacz
 
Metody Deep Learning - Wykład 6
Metody Deep Learning - Wykład 6Metody Deep Learning - Wykład 6
Metody Deep Learning - Wykład 6Craftinity
 
Metody Deep Learning - Wykład 3
Metody Deep Learning - Wykład 3Metody Deep Learning - Wykład 3
Metody Deep Learning - Wykład 3Craftinity
 
Metody Deep Learning - Wykład 5
Metody Deep Learning - Wykład 5Metody Deep Learning - Wykład 5
Metody Deep Learning - Wykład 5Craftinity
 
Metody Deep Learning - Wykład 2
Metody Deep Learning - Wykład 2Metody Deep Learning - Wykład 2
Metody Deep Learning - Wykład 2Craftinity
 
To co powinniście wiedzieć o Machine Learning
To co powinniście wiedzieć o Machine LearningTo co powinniście wiedzieć o Machine Learning
To co powinniście wiedzieć o Machine Learning3camp
 
Machine learning - hot or not?
Machine learning -  hot or not?Machine learning -  hot or not?
Machine learning - hot or not?mjaskowski
 
Machine learning and Big Data (lecture in Polish)
Machine learning and Big Data (lecture in Polish)Machine learning and Big Data (lecture in Polish)
Machine learning and Big Data (lecture in Polish)Michal Iwanowski
 
VII Targi eHandlu Prezentacje, Karolina Żmijewska, optivo GmbH
VII Targi eHandlu Prezentacje, Karolina Żmijewska, optivo GmbHVII Targi eHandlu Prezentacje, Karolina Żmijewska, optivo GmbH
VII Targi eHandlu Prezentacje, Karolina Żmijewska, optivo GmbHecommerce poland expo
 
Hacking Internet of Things
Hacking Internet of ThingsHacking Internet of Things
Hacking Internet of ThingsSecuRing
 

Viewers also liked (20)

Nie bój się analizy danych! Fakty i mity o big data i Business Intelligence.
Nie bój się analizy danych! Fakty i mity o big data i Business Intelligence.Nie bój się analizy danych! Fakty i mity o big data i Business Intelligence.
Nie bój się analizy danych! Fakty i mity o big data i Business Intelligence.
 
Big Data - 25 Amazing Facts Everyone Should Know
Big Data - 25 Amazing Facts Everyone Should KnowBig Data - 25 Amazing Facts Everyone Should Know
Big Data - 25 Amazing Facts Everyone Should Know
 
[WebMuses] Big data dla zdezorientowanych
[WebMuses] Big data dla zdezorientowanych[WebMuses] Big data dla zdezorientowanych
[WebMuses] Big data dla zdezorientowanych
 
Cz ii tt_tsne_21022017_public
Cz ii tt_tsne_21022017_public Cz ii tt_tsne_21022017_public
Cz ii tt_tsne_21022017_public
 
Big Data - big problem or big chance? InternetBeta 2014
Big Data - big problem or big chance? InternetBeta 2014Big Data - big problem or big chance? InternetBeta 2014
Big Data - big problem or big chance? InternetBeta 2014
 
Metody Deep Learning - Wykład 7
Metody Deep Learning - Wykład 7Metody Deep Learning - Wykład 7
Metody Deep Learning - Wykład 7
 
Metody Deep Learning - Wykład 1
Metody Deep Learning - Wykład 1Metody Deep Learning - Wykład 1
Metody Deep Learning - Wykład 1
 
Metody Deep Learning - Wykład 4
Metody Deep Learning - Wykład 4Metody Deep Learning - Wykład 4
Metody Deep Learning - Wykład 4
 
Predicting the risk of suicide using clinical notes
Predicting the risk of suicide using clinical notesPredicting the risk of suicide using clinical notes
Predicting the risk of suicide using clinical notes
 
(Azure) Machine Learning 2015
(Azure) Machine Learning 2015(Azure) Machine Learning 2015
(Azure) Machine Learning 2015
 
Metody Deep Learning - Wykład 6
Metody Deep Learning - Wykład 6Metody Deep Learning - Wykład 6
Metody Deep Learning - Wykład 6
 
Metody Deep Learning - Wykład 3
Metody Deep Learning - Wykład 3Metody Deep Learning - Wykład 3
Metody Deep Learning - Wykład 3
 
Metody Deep Learning - Wykład 5
Metody Deep Learning - Wykład 5Metody Deep Learning - Wykład 5
Metody Deep Learning - Wykład 5
 
Metody Deep Learning - Wykład 2
Metody Deep Learning - Wykład 2Metody Deep Learning - Wykład 2
Metody Deep Learning - Wykład 2
 
To co powinniście wiedzieć o Machine Learning
To co powinniście wiedzieć o Machine LearningTo co powinniście wiedzieć o Machine Learning
To co powinniście wiedzieć o Machine Learning
 
Machine learning - hot or not?
Machine learning -  hot or not?Machine learning -  hot or not?
Machine learning - hot or not?
 
Machine learning and Big Data (lecture in Polish)
Machine learning and Big Data (lecture in Polish)Machine learning and Big Data (lecture in Polish)
Machine learning and Big Data (lecture in Polish)
 
VII Targi eHandlu Prezentacje, Karolina Żmijewska, optivo GmbH
VII Targi eHandlu Prezentacje, Karolina Żmijewska, optivo GmbHVII Targi eHandlu Prezentacje, Karolina Żmijewska, optivo GmbH
VII Targi eHandlu Prezentacje, Karolina Żmijewska, optivo GmbH
 
DDD, Rails and persistence
DDD, Rails and persistenceDDD, Rails and persistence
DDD, Rails and persistence
 
Hacking Internet of Things
Hacking Internet of ThingsHacking Internet of Things
Hacking Internet of Things
 

Similar to Prezentacja z Big Data Tech 2016: Machine Learning vs Big Data

Tajniki współpracy z (trudnym) klientem
Tajniki współpracy z (trudnym) klientemTajniki współpracy z (trudnym) klientem
Tajniki współpracy z (trudnym) klientemKatarzyna Mrowca
 
Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31
Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31
Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31kraqa
 
Kariera w eHandlu - Część I - Startup e-commerce
Kariera w eHandlu - Część I - Startup e-commerceKariera w eHandlu - Część I - Startup e-commerce
Kariera w eHandlu - Część I - Startup e-commerceecommerce poland expo
 
Elitmind @ SQLDay2018: Stream Analytics i Machine Learning – czy to dobrze do...
Elitmind @ SQLDay2018: Stream Analytics i Machine Learning – czy to dobrze do...Elitmind @ SQLDay2018: Stream Analytics i Machine Learning – czy to dobrze do...
Elitmind @ SQLDay2018: Stream Analytics i Machine Learning – czy to dobrze do...Elitmind
 
Modele wdrażania i zarządzania projektami erp
Modele wdrażania i zarządzania projektami erpModele wdrażania i zarządzania projektami erp
Modele wdrażania i zarządzania projektami erpJaroslaw Zelinski
 
SEO i raportowanie - wykorzystanie Google Data Studio
SEO i raportowanie - wykorzystanie Google Data StudioSEO i raportowanie - wykorzystanie Google Data Studio
SEO i raportowanie - wykorzystanie Google Data StudioMateusz Muryjas
 
[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...
[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...
[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...Future Processing
 
Projekty internetowe: książka kucharska czyli... szczypta teorii i kocioł p...
Projekty internetowe: książka kucharska czyli... szczypta teorii i kocioł p...Projekty internetowe: książka kucharska czyli... szczypta teorii i kocioł p...
Projekty internetowe: książka kucharska czyli... szczypta teorii i kocioł p...Michal Bukowski, MBA, P2P
 
Doktorat, a własny startup ? Jak zacząć budować startup na uczelni w ujęciu l...
Doktorat, a własny startup ? Jak zacząć budować startup na uczelni w ujęciu l...Doktorat, a własny startup ? Jak zacząć budować startup na uczelni w ujęciu l...
Doktorat, a własny startup ? Jak zacząć budować startup na uczelni w ujęciu l...Łukasz Miądowicz
 
Jak budujemy inteligentnego asystenta biznesowego
Jak budujemy inteligentnego asystenta biznesowegoJak budujemy inteligentnego asystenta biznesowego
Jak budujemy inteligentnego asystenta biznesowego2040.io
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowychTomasz Borowski
 
Mity, które blokują Twoją karierę
Mity, które blokują Twoją karieręMity, które blokują Twoją karierę
Mity, które blokują Twoją karieręPiotr Horzycki
 
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPJak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPPiotr Horzycki
 
Systemy rekomendacji, Algorytmy rankingu Top-N rekomendacji bazujące na nieja...
Systemy rekomendacji, Algorytmy rankingu Top-N rekomendacji bazujące na nieja...Systemy rekomendacji, Algorytmy rankingu Top-N rekomendacji bazujące na nieja...
Systemy rekomendacji, Algorytmy rankingu Top-N rekomendacji bazujące na nieja...Bartlomiej Twardowski
 
Piękno danych - jak wizualizować i raportować dane z wykorzystaniem Google Da...
Piękno danych - jak wizualizować i raportować dane z wykorzystaniem Google Da...Piękno danych - jak wizualizować i raportować dane z wykorzystaniem Google Da...
Piękno danych - jak wizualizować i raportować dane z wykorzystaniem Google Da...Mateusz Muryjas
 
Jak przygotować dane do uczenia maszynowego? | Ermlab Software
Jak przygotować dane do uczenia maszynowego? | Ermlab SoftwareJak przygotować dane do uczenia maszynowego? | Ermlab Software
Jak przygotować dane do uczenia maszynowego? | Ermlab SoftwareErmlab Software
 

Similar to Prezentacja z Big Data Tech 2016: Machine Learning vs Big Data (20)

Tajniki współpracy z (trudnym) klientem
Tajniki współpracy z (trudnym) klientemTajniki współpracy z (trudnym) klientem
Tajniki współpracy z (trudnym) klientem
 
Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31
Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31
Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31
 
Kariera w eHandlu - Część I - Startup e-commerce
Kariera w eHandlu - Część I - Startup e-commerceKariera w eHandlu - Część I - Startup e-commerce
Kariera w eHandlu - Część I - Startup e-commerce
 
Elitmind @ SQLDay2018: Stream Analytics i Machine Learning – czy to dobrze do...
Elitmind @ SQLDay2018: Stream Analytics i Machine Learning – czy to dobrze do...Elitmind @ SQLDay2018: Stream Analytics i Machine Learning – czy to dobrze do...
Elitmind @ SQLDay2018: Stream Analytics i Machine Learning – czy to dobrze do...
 
Modele wdrażania i zarządzania projektami erp
Modele wdrażania i zarządzania projektami erpModele wdrażania i zarządzania projektami erp
Modele wdrażania i zarządzania projektami erp
 
SEO i raportowanie - wykorzystanie Google Data Studio
SEO i raportowanie - wykorzystanie Google Data StudioSEO i raportowanie - wykorzystanie Google Data Studio
SEO i raportowanie - wykorzystanie Google Data Studio
 
8 jaromir dzialo
8 jaromir dzialo8 jaromir dzialo
8 jaromir dzialo
 
Od Big Data do Analityki 3.0
Od Big Data do Analityki 3.0Od Big Data do Analityki 3.0
Od Big Data do Analityki 3.0
 
Od Big Data do Analityki 3.0
Od Big Data do Analityki 3.0Od Big Data do Analityki 3.0
Od Big Data do Analityki 3.0
 
[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...
[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...
[Quality Meetup #9] TestOps, QAOps - czy ktoś taki istnieje? - Aleksandra Kor...
 
Projekty internetowe: książka kucharska czyli... szczypta teorii i kocioł p...
Projekty internetowe: książka kucharska czyli... szczypta teorii i kocioł p...Projekty internetowe: książka kucharska czyli... szczypta teorii i kocioł p...
Projekty internetowe: książka kucharska czyli... szczypta teorii i kocioł p...
 
Doktorat, a własny startup ? Jak zacząć budować startup na uczelni w ujęciu l...
Doktorat, a własny startup ? Jak zacząć budować startup na uczelni w ujęciu l...Doktorat, a własny startup ? Jak zacząć budować startup na uczelni w ujęciu l...
Doktorat, a własny startup ? Jak zacząć budować startup na uczelni w ujęciu l...
 
Jak budujemy inteligentnego asystenta biznesowego
Jak budujemy inteligentnego asystenta biznesowegoJak budujemy inteligentnego asystenta biznesowego
Jak budujemy inteligentnego asystenta biznesowego
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
 
Mity, które blokują Twoją karierę
Mity, które blokują Twoją karieręMity, które blokują Twoją karierę
Mity, które blokują Twoją karierę
 
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPJak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
 
Systemy rekomendacji, Algorytmy rankingu Top-N rekomendacji bazujące na nieja...
Systemy rekomendacji, Algorytmy rankingu Top-N rekomendacji bazujące na nieja...Systemy rekomendacji, Algorytmy rankingu Top-N rekomendacji bazujące na nieja...
Systemy rekomendacji, Algorytmy rankingu Top-N rekomendacji bazujące na nieja...
 
university day 1
university day 1university day 1
university day 1
 
Piękno danych - jak wizualizować i raportować dane z wykorzystaniem Google Da...
Piękno danych - jak wizualizować i raportować dane z wykorzystaniem Google Da...Piękno danych - jak wizualizować i raportować dane z wykorzystaniem Google Da...
Piękno danych - jak wizualizować i raportować dane z wykorzystaniem Google Da...
 
Jak przygotować dane do uczenia maszynowego? | Ermlab Software
Jak przygotować dane do uczenia maszynowego? | Ermlab SoftwareJak przygotować dane do uczenia maszynowego? | Ermlab Software
Jak przygotować dane do uczenia maszynowego? | Ermlab Software
 

Prezentacja z Big Data Tech 2016: Machine Learning vs Big Data

  • 1. Machine learning vs Big Data - od pomysłu do produkcji Bartłomiej Twardowski, Paweł Zawistowski
  • 2. Agenda + Trochę o nas • B.Twardowski • Big Data dla ML • od surówki do modelu • praktyczne rady • P.Zawistowski • Ruszamy na produkcję • Co może pójść źle...
  • 3. Big Data & Machine Learning w Allegro Big Data: • clickstream (web/mobile - Kafka) • backend events (microservices - Hermes) • dane archiwalne z wielu lat (DWH) ML w Allegro: • rankingowanie • rekomendacje • atrybucja wielokanałowa • ocena jakości zdjęć • ads (za chwilę)
  • 4. Zaczynamy naszą przygodę... ...czyli: jak od surowych danych przejść do modelowania? Ankieta KDNuggets CRISP-DM Źródło: http://www.kdnuggets.com/2014/10/crisp-dm-top-methodology-analytics-data-mining-data-science-projects.html
  • 5. Exploratory Data Analysis - lubimy duże dane Pomocne narzędzia: - HQL(Hive+Tez), SQL (Exadata) - Hue (każdy ma dostęp z konta AD) - R (sparkR+dplyr+ggplot2+shiny) - Jupyter Notebooks (+Spark backend) - Kibana (ElasticSearch) - Tableau (Hive JDBC/Spark)
  • 6. Przygotowanie danych • Na koniec dnia potrzebujemy zbiory: train, valid, test • zadania: czyszczenie danych, agregacja, próbkowanie, transformacja atrybutów, cechy - wybór/tworzenie, redukcja wymiarów • większość naszego czasu! (90%/10%) • nie raz będziemy wracać i modyfikować ten proces • GIGO • if isOnHadoop(data): Spark+DataFrame else: data.table/dplyr/pandas
  • 7. Big Data? A może odpowiednia próbka? • Próbkowanie • odpowiedni dobór reprezentatywnych danych: • random/stratified • zachowanie charakterystyki danych (np. sezonowość w e-commerce) • Niezbalansowane zbiory danych • Przykłady: • e-commerce: don’t buy/buy - 99%/1%, medical diagnosis (90% healty, 10% disease)... • Predykcja większościowej klasy jest łatwa, ale bezużyteczna • Balansujemy zbiór danych pod nasze potrzeby - np. dla metod pairwaise dla każdej próbki pozytywnej losujemy z empirycznym rozkładem negatywną
  • 8. Wybór algorytmu ML - “kwintesencja” całego procesu - wybieramy model na potrzeby naszego problemu np. predykcja kliku, prawdopodobieństwo zakupu, ranking ofert - mnóstwo dostępnych rozwiązań dla różnej klasy problemów - dostępne implementacje, w większości open-source - publikacje + reprodukowalne eksperymenty: arXive + Github => GitXive - warto zachowywać wraz z wynikiem wytrenowane parametry i wybrane hyper-parametry
  • 9. Czego uczymy nasz model? Predykcji wartości X czy zarabiania pieniędzy w walucie Y? • odpowiedni dobór f. kosztu przy optymalizacji modelu • ewaluacja model offline vs online - różne miary • dobranie miary sukcesu dla swojego przedsięwzięcia Przykład: • optym. pod predykcje wartości (RMSE) • właściwie pokazujemy jako listę posortowaną i jakość rankingu (recall@N/nDCG@N) • biznes patrzy na raport: CTR, GMV
  • 10. Kiedy warto rozpraszać ML - kiedy nie mamy innego wyjścia - mamy gotową implementację naszego algorytmu Info na moim Twitter: @btwardow, bez montażu ;-)
  • 12. Ta sama implementacja w Theano - CPU vs GPU Factorization Machines implemented in Theano, left CPU (16xIntel) vs GPU (AWS g2.2xlarge)
  • 13. Wybór technologi dev/prod - kompromis? - mądry wybór narzędzi do zadania (dostępne biblioteki/informacje/społeczność) - wykorzystanie technologi która umożliwi eksperyment na produkcji i szybką weryfikacje hipotezy (np. Spark+MLlib, python+Theano, mxnet) - mit “data scientist” - od surowych danych po działające rozwiązanie na produkcji z wysokim SLA
  • 14. Clean Code i TDD w programowaniu alg. ML - jest trudne! - przyzwyczajenie do Notebook - póki nie robimy własnego pakietu (R/Julia/Python) często uważamy za niepotrzebne - dużo zależności od danych: czy do repo wrzucać próbki w CSV? a może pisać specjalny generator?
  • 16. Wdrażamy! ...ale nie porzucajmy modeli na produkcji
  • 18. Co może pójść nie tak? Źródło: http://static.fjcdn.com/pictures/What+could+possibly+go+wrong+comp+1_f5df2e_5306624.jpg
  • 19. CACE - Changing Anything, Changes Everything Źródło: D. Sculley et al.: „Machine Learning: The High-Interest Credit Card of Technical Debt”, Google,
  • 20. Problemy z atrybutami wejściowymi Źródło: https://upload.wikimedia.org/wikipedia/commons/thumb/9/92/CPT_Hardware-InputOutput.svg/1212px-CPT_Hardware-InputOutput.svg.png
  • 21. Niestabilne atrybuty ● Modelowane zjawiska się zmieniają. ● Inne systemy bywają niestabilne i ewoluują f(x, )
  • 23. Degradacja atrybutów: mikrooptymalizacje Źródło: http://pu.i.wp.pl/?k=MzE1Mzg5MjAsMTg1MzI5&f=wiejski_tuning_044.jpg
  • 24. Problemy z atrybutami wyjściowymi Źródło: https://upload.wikimedia.org/wikipedia/commons/thumb/9/92/CPT_Hardware-InputOutput.svg/1212px-CPT_Hardware-InputOutput.svg.png
  • 25. Nieznani użytkownicy • Z przygotowanego modelu korzystają inni - nie zawsze o tym wiemy. • Zmiana w modelu może mieć trudne do przewidzenia skutki.
  • 26. Nieznani użytkownicy - np. kaskady korekt prognoza pogody kalendarz liczba (koszyków? osób?) średnia wartość koszyka obrót sklepuA Bpromocje dane historyczne A - przewiduje ruch w sklepie B - przewiduje obrót sklepu Źródło: http://www.seriouseats.com/images/2016/01/20160115-things-never-to-but-at-supermarket-.jpg
  • 28. Udostępniamy informacje o: • tym co robimy/co mamy w danych, • sukcesach/porażkach. Dokumentacja: • „czysta” implementacja, • jawne założenia - powtarzalność wyników. #1 Komunikacja Źródła: http://hortonworks.com/wp-content/uploads/2013/05/hive_logo.png, http://blog.cleancoder.com/assets/clean_code_72_color.png, http://www.charbase.com/images/glyph/8634, http://www.clipartbest.com/cliparts/ecM/kRB/ecMkRBBei.png https://cwiki.apache.org/confluence/download/attachments/31822298/FALCON?version=1&modificationDate=1422616967000&api=v2
  • 29. Atrybutów wejściowych: • brakujące dane, nieznane wartości, • testy statystyczne, • korelacje, • … Atrybutów wyjściowych: • bias, wybrane wartości centyli, • wykrywanie anomalii, • poziom błędu modelu, • … #2 Monitorowanie
  • 30. #3 Eksperymenty (kiedy nie jesteśmy w stanie monitorować poziomu błędu) Źródło: http://www.mrcbiology.com/practical2jpg.jpg
  • 31. Machine learning vs Big Data - od pomysłu do produkcji Bartłomiej Twardowski, Paweł Zawistowski