SlideShare a Scribd company logo
1 of 31
Download to read offline
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

Similar to Machine learning vs big data od pomysłu do produkcji - Bartłomiej Twardowski Paweł Zawistowski

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
 
Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...
Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...
Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...Sotrender
 
Kupuj wartosc a nie transakcje
Kupuj wartosc a nie transakcjeKupuj wartosc a nie transakcje
Kupuj wartosc a nie transakcjeŁukasz Dziekan
 
Clv Kogo pozyskujesz klienta czy jego transakcje
Clv Kogo pozyskujesz klienta czy jego transakcjeClv Kogo pozyskujesz klienta czy jego transakcje
Clv Kogo pozyskujesz klienta czy jego transakcjeMichal Kreczmar
 
Wykorzystanie Google Data Studio w raportowaniu i wizualizacji danych - Mateu...
Wykorzystanie Google Data Studio w raportowaniu i wizualizacji danych - Mateu...Wykorzystanie Google Data Studio w raportowaniu i wizualizacji danych - Mateu...
Wykorzystanie Google Data Studio w raportowaniu i wizualizacji danych - Mateu...Mateusz Muryjas
 

Similar to Machine learning vs big data od pomysłu do produkcji - Bartłomiej Twardowski Paweł Zawistowski (20)

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
 
Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...
Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...
Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...
 
Kupuj wartosc a nie transakcje
Kupuj wartosc a nie transakcjeKupuj wartosc a nie transakcje
Kupuj wartosc a nie transakcje
 
Clv Kogo pozyskujesz klienta czy jego transakcje
Clv Kogo pozyskujesz klienta czy jego transakcjeClv Kogo pozyskujesz klienta czy jego transakcje
Clv Kogo pozyskujesz klienta czy jego transakcje
 
Wykorzystanie Google Data Studio w raportowaniu i wizualizacji danych - Mateu...
Wykorzystanie Google Data Studio w raportowaniu i wizualizacji danych - Mateu...Wykorzystanie Google Data Studio w raportowaniu i wizualizacji danych - Mateu...
Wykorzystanie Google Data Studio w raportowaniu i wizualizacji danych - Mateu...
 

More from Evention

The Factorization Machines algorithm for building recommendation system - Paw...
The Factorization Machines algorithm for building recommendation system - Paw...The Factorization Machines algorithm for building recommendation system - Paw...
The Factorization Machines algorithm for building recommendation system - Paw...Evention
 
A/B testing powered by Big data - Saurabh Goyal, Booking.com
A/B testing powered by Big data - Saurabh Goyal, Booking.comA/B testing powered by Big data - Saurabh Goyal, Booking.com
A/B testing powered by Big data - Saurabh Goyal, Booking.comEvention
 
Near Real-Time Fraud Detection in Telecommunication Industry - Burak Işıklı, ...
Near Real-Time Fraud Detection in Telecommunication Industry - Burak Işıklı, ...Near Real-Time Fraud Detection in Telecommunication Industry - Burak Işıklı, ...
Near Real-Time Fraud Detection in Telecommunication Industry - Burak Işıklı, ...Evention
 
Assisting millions of active users in real-time - Alexey Brodovshuk, Kcell; K...
Assisting millions of active users in real-time - Alexey Brodovshuk, Kcell; K...Assisting millions of active users in real-time - Alexey Brodovshuk, Kcell; K...
Assisting millions of active users in real-time - Alexey Brodovshuk, Kcell; K...Evention
 
Machine learning security - Pawel Zawistowski, Warsaw University of Technolog...
Machine learning security - Pawel Zawistowski, Warsaw University of Technolog...Machine learning security - Pawel Zawistowski, Warsaw University of Technolog...
Machine learning security - Pawel Zawistowski, Warsaw University of Technolog...Evention
 
Building a Modern Data Pipeline: Lessons Learned - Saulius Valatka, Adform
Building a Modern Data Pipeline: Lessons Learned - Saulius Valatka, AdformBuilding a Modern Data Pipeline: Lessons Learned - Saulius Valatka, Adform
Building a Modern Data Pipeline: Lessons Learned - Saulius Valatka, AdformEvention
 
Apache Flink: Better, Faster & Uncut - Piotr Nowojski, data Artisans
Apache Flink: Better, Faster & Uncut - Piotr Nowojski, data ArtisansApache Flink: Better, Faster & Uncut - Piotr Nowojski, data Artisans
Apache Flink: Better, Faster & Uncut - Piotr Nowojski, data ArtisansEvention
 
Privacy by Design - Lars Albertsson, Mapflat
Privacy by Design - Lars Albertsson, MapflatPrivacy by Design - Lars Albertsson, Mapflat
Privacy by Design - Lars Albertsson, MapflatEvention
 
Elephants in the cloud or how to become cloud ready - Krzysztof Adamski, GetI...
Elephants in the cloud or how to become cloud ready - Krzysztof Adamski, GetI...Elephants in the cloud or how to become cloud ready - Krzysztof Adamski, GetI...
Elephants in the cloud or how to become cloud ready - Krzysztof Adamski, GetI...Evention
 
Deriving Actionable Insights from High Volume Media Streams - Jörn Kottmann, ...
Deriving Actionable Insights from High Volume Media Streams - Jörn Kottmann, ...Deriving Actionable Insights from High Volume Media Streams - Jörn Kottmann, ...
Deriving Actionable Insights from High Volume Media Streams - Jörn Kottmann, ...Evention
 
Enhancing Spark - increase streaming capabilities of your applications - Kami...
Enhancing Spark - increase streaming capabilities of your applications - Kami...Enhancing Spark - increase streaming capabilities of your applications - Kami...
Enhancing Spark - increase streaming capabilities of your applications - Kami...Evention
 
7 Days of Playing Minesweeper, or How to Shut Down Whistleblower Defense with...
7 Days of Playing Minesweeper, or How to Shut Down Whistleblower Defense with...7 Days of Playing Minesweeper, or How to Shut Down Whistleblower Defense with...
7 Days of Playing Minesweeper, or How to Shut Down Whistleblower Defense with...Evention
 
Big Data Journey at a Big Corp - Tomasz Burzyński, Maciej Czyżowicz, Orange P...
Big Data Journey at a Big Corp - Tomasz Burzyński, Maciej Czyżowicz, Orange P...Big Data Journey at a Big Corp - Tomasz Burzyński, Maciej Czyżowicz, Orange P...
Big Data Journey at a Big Corp - Tomasz Burzyński, Maciej Czyżowicz, Orange P...Evention
 
Stream processing with Apache Flink - Maximilian Michels Data Artisans
Stream processing with Apache Flink - Maximilian Michels Data ArtisansStream processing with Apache Flink - Maximilian Michels Data Artisans
Stream processing with Apache Flink - Maximilian Michels Data ArtisansEvention
 
Scaling Cassandra in all directions - Jimmy Mardell Spotify
Scaling Cassandra in all directions - Jimmy Mardell SpotifyScaling Cassandra in all directions - Jimmy Mardell Spotify
Scaling Cassandra in all directions - Jimmy Mardell SpotifyEvention
 
Big Data for unstructured data Dariusz Śliwa
Big Data for unstructured data Dariusz ŚliwaBig Data for unstructured data Dariusz Śliwa
Big Data for unstructured data Dariusz ŚliwaEvention
 
Elastic development. Implementing Big Data search Grzegorz Kołpuć
Elastic development. Implementing Big Data search Grzegorz KołpućElastic development. Implementing Big Data search Grzegorz Kołpuć
Elastic development. Implementing Big Data search Grzegorz KołpućEvention
 
H2 o deep water making deep learning accessible to everyone -jo-fai chow
H2 o deep water   making deep learning accessible to everyone -jo-fai chowH2 o deep water   making deep learning accessible to everyone -jo-fai chow
H2 o deep water making deep learning accessible to everyone -jo-fai chowEvention
 
That won’t fit into RAM - Michał Brzezicki
That won’t fit into RAM -  Michał  BrzezickiThat won’t fit into RAM -  Michał  Brzezicki
That won’t fit into RAM - Michał BrzezickiEvention
 
Stream Analytics with SQL on Apache Flink - Fabian Hueske
Stream Analytics with SQL on Apache Flink - Fabian HueskeStream Analytics with SQL on Apache Flink - Fabian Hueske
Stream Analytics with SQL on Apache Flink - Fabian HueskeEvention
 

More from Evention (20)

The Factorization Machines algorithm for building recommendation system - Paw...
The Factorization Machines algorithm for building recommendation system - Paw...The Factorization Machines algorithm for building recommendation system - Paw...
The Factorization Machines algorithm for building recommendation system - Paw...
 
A/B testing powered by Big data - Saurabh Goyal, Booking.com
A/B testing powered by Big data - Saurabh Goyal, Booking.comA/B testing powered by Big data - Saurabh Goyal, Booking.com
A/B testing powered by Big data - Saurabh Goyal, Booking.com
 
Near Real-Time Fraud Detection in Telecommunication Industry - Burak Işıklı, ...
Near Real-Time Fraud Detection in Telecommunication Industry - Burak Işıklı, ...Near Real-Time Fraud Detection in Telecommunication Industry - Burak Işıklı, ...
Near Real-Time Fraud Detection in Telecommunication Industry - Burak Işıklı, ...
 
Assisting millions of active users in real-time - Alexey Brodovshuk, Kcell; K...
Assisting millions of active users in real-time - Alexey Brodovshuk, Kcell; K...Assisting millions of active users in real-time - Alexey Brodovshuk, Kcell; K...
Assisting millions of active users in real-time - Alexey Brodovshuk, Kcell; K...
 
Machine learning security - Pawel Zawistowski, Warsaw University of Technolog...
Machine learning security - Pawel Zawistowski, Warsaw University of Technolog...Machine learning security - Pawel Zawistowski, Warsaw University of Technolog...
Machine learning security - Pawel Zawistowski, Warsaw University of Technolog...
 
Building a Modern Data Pipeline: Lessons Learned - Saulius Valatka, Adform
Building a Modern Data Pipeline: Lessons Learned - Saulius Valatka, AdformBuilding a Modern Data Pipeline: Lessons Learned - Saulius Valatka, Adform
Building a Modern Data Pipeline: Lessons Learned - Saulius Valatka, Adform
 
Apache Flink: Better, Faster & Uncut - Piotr Nowojski, data Artisans
Apache Flink: Better, Faster & Uncut - Piotr Nowojski, data ArtisansApache Flink: Better, Faster & Uncut - Piotr Nowojski, data Artisans
Apache Flink: Better, Faster & Uncut - Piotr Nowojski, data Artisans
 
Privacy by Design - Lars Albertsson, Mapflat
Privacy by Design - Lars Albertsson, MapflatPrivacy by Design - Lars Albertsson, Mapflat
Privacy by Design - Lars Albertsson, Mapflat
 
Elephants in the cloud or how to become cloud ready - Krzysztof Adamski, GetI...
Elephants in the cloud or how to become cloud ready - Krzysztof Adamski, GetI...Elephants in the cloud or how to become cloud ready - Krzysztof Adamski, GetI...
Elephants in the cloud or how to become cloud ready - Krzysztof Adamski, GetI...
 
Deriving Actionable Insights from High Volume Media Streams - Jörn Kottmann, ...
Deriving Actionable Insights from High Volume Media Streams - Jörn Kottmann, ...Deriving Actionable Insights from High Volume Media Streams - Jörn Kottmann, ...
Deriving Actionable Insights from High Volume Media Streams - Jörn Kottmann, ...
 
Enhancing Spark - increase streaming capabilities of your applications - Kami...
Enhancing Spark - increase streaming capabilities of your applications - Kami...Enhancing Spark - increase streaming capabilities of your applications - Kami...
Enhancing Spark - increase streaming capabilities of your applications - Kami...
 
7 Days of Playing Minesweeper, or How to Shut Down Whistleblower Defense with...
7 Days of Playing Minesweeper, or How to Shut Down Whistleblower Defense with...7 Days of Playing Minesweeper, or How to Shut Down Whistleblower Defense with...
7 Days of Playing Minesweeper, or How to Shut Down Whistleblower Defense with...
 
Big Data Journey at a Big Corp - Tomasz Burzyński, Maciej Czyżowicz, Orange P...
Big Data Journey at a Big Corp - Tomasz Burzyński, Maciej Czyżowicz, Orange P...Big Data Journey at a Big Corp - Tomasz Burzyński, Maciej Czyżowicz, Orange P...
Big Data Journey at a Big Corp - Tomasz Burzyński, Maciej Czyżowicz, Orange P...
 
Stream processing with Apache Flink - Maximilian Michels Data Artisans
Stream processing with Apache Flink - Maximilian Michels Data ArtisansStream processing with Apache Flink - Maximilian Michels Data Artisans
Stream processing with Apache Flink - Maximilian Michels Data Artisans
 
Scaling Cassandra in all directions - Jimmy Mardell Spotify
Scaling Cassandra in all directions - Jimmy Mardell SpotifyScaling Cassandra in all directions - Jimmy Mardell Spotify
Scaling Cassandra in all directions - Jimmy Mardell Spotify
 
Big Data for unstructured data Dariusz Śliwa
Big Data for unstructured data Dariusz ŚliwaBig Data for unstructured data Dariusz Śliwa
Big Data for unstructured data Dariusz Śliwa
 
Elastic development. Implementing Big Data search Grzegorz Kołpuć
Elastic development. Implementing Big Data search Grzegorz KołpućElastic development. Implementing Big Data search Grzegorz Kołpuć
Elastic development. Implementing Big Data search Grzegorz Kołpuć
 
H2 o deep water making deep learning accessible to everyone -jo-fai chow
H2 o deep water   making deep learning accessible to everyone -jo-fai chowH2 o deep water   making deep learning accessible to everyone -jo-fai chow
H2 o deep water making deep learning accessible to everyone -jo-fai chow
 
That won’t fit into RAM - Michał Brzezicki
That won’t fit into RAM -  Michał  BrzezickiThat won’t fit into RAM -  Michał  Brzezicki
That won’t fit into RAM - Michał Brzezicki
 
Stream Analytics with SQL on Apache Flink - Fabian Hueske
Stream Analytics with SQL on Apache Flink - Fabian HueskeStream Analytics with SQL on Apache Flink - Fabian Hueske
Stream Analytics with SQL on Apache Flink - Fabian Hueske
 

Machine learning vs big data od pomysłu do produkcji - Bartłomiej Twardowski Paweł Zawistowski

  • 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