Náš kolega z Big Data týmu, data scientista Oleg Masajlo, se podělil o nejběžnější chyby, které především juniorní datoví vědci dělají. Kromě toho nabídl praktická doporučení, jak se jim vyvarovat. Jaké to jsou?
Data science dnes patří k velmi lákavým oborům v oblasti IT. Přitahuje studenty různých studijních programů věnujících se datům, statistice či Machine Learningu (ML). Mnoho začínajících data scientistů vidí datovou vědu ale trochu zkresleně. Představují si, že v praxi dostanou zadání úkolu a stačí ho vyřešit.
Tedy, že naskočí do stejných kolejí jako když řeší studentské projekty — vezmou potřebná data, na ta aplikují sadu pokročilých algoritmů, vyberou ten nejlepší a úkol je splněn. Tak tomu ale není.
Každá z těchto oblasti obsahuje skryté nástrahy. Vypořádat se nimi pomůže především praxe, ale někdy se hodí i dobrá rada, která může zavčas korigovat mylná očekávání a představy.
Znalost byznysu představuje především základní míru porozumění oblasti, ve které zákazník působí. Samozřejmě to neznamená, že budete chápat problematiku a procesy do detailu. Jde spíše o to, aby si byl data scientista schopný vyjasnit zadání, na němž bude v rámci projektu pracovat, pochopit, jaký problém potřebuje zákazník vyřešit a jak mu v tom může data science pomoci.
S tím úzce souvisí i umění komunikace. Především jde o schopnost najít „společnou řeč“ a pochopit se navzájem. Ať už se zadavatelem projektu, tak se všemi spolupracovníky na straně zákazníka. Rozhodně není potřeba, aby měl data scientista schopnost brilantně prezentovat před stovkami lidi.
Spíše je důležité, aby se nebál klást otázky a pečlivě naslouchal odpovědím. Pokud společnou řeč najdete, nebudete mít potíže s definici zadání, se specifikací cíle, zajištěním rolí v nově tvořeném týmu nebo s adekvátním obsahem prezentace závěrů vaší práce.
Jakkoliv se důležitost této měkké dovednosti v literatuře a metodice vyzdvihuje, v praxi se často opomíjí. Méně zkušený data scientista se příliš soustředí na samotný problém, než na komunikaci a spolupráci.
Přitom míst, kde se může špatná komunikace projevit, je opravdu hodně. Může se například snadno stát, že odejdete ze schůzky a nejste si jistí, co přesně máte dělat. Řeknete si, že přeci nebudu za blbce, který se ptá dvakrát. Raději se na základě svého úsudku pustíte rovnou do práce. Na dalším statusu, po týdnu práce, zjistíte, že jste nepostupovali správně. Na specifika oboru je důležité se vždy vyptat. Žádná otázka není nadbytečná.
Problém se může objevit nejenom při komunikaci směrem ven, ale i dovnitř, do týmu. Například se na začátku projektu nestanoví jasně role a zodpovědnosti. Tento nedostatek komunikace se pak může projevit v tak triviální záležitosti, jako je třeba odpověď na e-mail zákazníka. Způsob reakce můžeme připodobnit k volejbalu, kdy každý kouká na letící míč, ale nehraje, čeká, myslí si, že to vybere ten druhý. S e-mailem je to stejné, když na něj nikdo neodpoví, může způsobit zbytečné komplikace — od naštvání klienta až po zpoždění projektu.
Nástrahy komunikace čekají i na konci projektu, kdy potřebujete ukázat výsledky své práce. Pokud je nepodáte způsobem, který je klientovi blízký, zákazník je vůbec nemusí přijmout. Forma a použitý slovník hrají velkou roli. Profesionální manažer není data scientista, a tak mu musíte výstupy zprostředkovat v jeho řeči, často formou obrázků a konkrétních závěrů a dalších doporučených postupů. Jinak se snadno může stát, že vaší práci a výsledkům zkrátka neporozumí.
V rámci jednoho projektu jsme pro klienta měli vyvinout aplikaci, která sleduje, zda zadaná objednávka skutečně dorazila v termínu. Kromě dalších požadavků, zde byl jeden, který zněl přesně jako úkol pro data science. Požadovaná aplikace měla umět předpovídat možná zpoždění dodávek.
To už je poměrně komplikovaná predikční úloha zahrnující celé spektrum proměnných, včetně informací o dopravě na trase nebo počasí. Celý týden jsme věnovali čas vyhledávání možných zdrojů dat, které by pomohly vyřešit daný požadavek. Bohužel jsme pak zjistili, že jsme podcenili úvodní vyjasnění a nestačilo pouze formální potvrzení zadání s klientem. Původní požadavky totiž již nebyly v okamžiku začátku projektu aktuální a klientovi už stačil pouze reportingový výstup bez predikce. Čas věnovaný datové exploraci by tak mohl být využit pro užitečnější práci.
POUČENÍ: Pokud nevím, nerozumím, nejsem si jist, ptám se a komunikuji všemi směry. Proto je skvělé, že práce na projektech je týmovou záležitostí — nikdy na ni nejste sami!
Řada juniorů si představuje, že stěžejním bodem analytických projektů je tvorba matematického modelu, který zpracuje data a vrátí požadovaný výsledek. Model samotný by měl být co nejvíc pokročilý, třeba nějaká neuronová síť.
Částečně to pravda je, protože bez algoritmu se k výsledku nedostanete. V praxi je ale příprava samotného algoritmu často záležitostí pár řádků kódu, které ale předchází mnoho práce — především s daty.
Na začátku trávíte hodiny tím, že se snažíte proniknout do problému, který budete řešit. Pak sháníte data, protože zřídka kdy je dostanete pěkně pohromadě na jednom místě.
Když už je seženete, následuje další fáze, a to porozumění datům a následně jejich přípravě pro modelování. Tato fáze vyžaduje ve skutečnosti největší časovou dotaci, neboť data klientů bývají mnohdy v různých formátech nebo nejsou kompletní.
Stejně tak potřebujete data upravit do jiné podoby, než jsou. Buďto aby odpovídala byznysovým aspektům nebo aby byla ve vhodném formátu pro zpracování algoritmem.
Poté přichází fáze samotného modelování, které je často takovou pomyslnou třešničkou na dortu. Konečně je zde prostor vyzkoušet ty super algoritmy, které znáte ze školy, práce nebo jen z doslechu. Pravdou ale je, že na mnoha projektech stačí i „obyčejné“ a desítkami let prověřené algoritmy statistiky a strojového učení, které se učí již na škole.
Poslední fází je vyhodnocení, kde dáváte dohromady výsledky svého tvoření a kdy se ukáže, jestli projekt splnil požadovaný cil.
Kromě všeho výše zmíněného, je zde ještě jedna projektová oblast, která je důležitá, avšak často opomíjená, a tou je administrativa.
Během celého projektu vzniká hromada dokumentů, na které by se nemělo zapomínat — zápisy ze schůzek, výkazy práce, hlídáni čerpání budgetu, pravidelné hlášení pokroku, samotná dokumentace k datovým zdrojům, k modelu atd.
O hodně z těchto dodávek by se sice měl postarat projektový manažer, ale bohužel ne každý projekt má projektového manažera. Pak toto administrativní břímě spadne na vás.
Právě posledně zmíněný bod, administrativa, nám způsobil velké komplikace během dodávky jednoho našeho projektu. Pro reklamační proces jsme realizovali model, který vyhodnocuje oprávněnost reklamace zákazníka. Řešení doručovalo očekávané predikce, bylo technicky i matematicky v pořádku, byznysový odběratel byl spokojen. Ale podcenili jsme náročnost administrativy, která souvisela s nasazením do produkce.
Odbor IT si od nás vyžádal 15 různých dokumentů, od projektového plánu, přes vyhodnocení rizik až po ověření licenčních požadavků na použitý software. Dokumenty bylo potřeba nejenom připravit, ale zároveň musely být i schválené příslušnými útvary. Díky tomu se nám původně bezproblémový projekt protáhl o týdny. Nadměrná administrativa přispěla k tomu, že projekt byl nakonec akceptován s takřka měsíčním zpožděním.
POUČENÍ: Nikdy nepodceňujte přípravu. Ověřte si předpoklady. Práci si tím výrazně usnadníte, projekt dodáte včas, a hlavně ke spokojenosti zákazníka.
Nejobtížnější složkou celé práce data scientisty je často deployment, tedy proces, kdy se váš program, aplikace či model stává funkční součástí infrastruktury zákazníka. Důležité je tu slovo „funkční“.
Nezřídka se stává, že zapálený data scientista odvede při tvorbě modelu perfektní práci. Problém ale je, že tu prací odvedl v uzavřené bublině, která není zasazena do reálného prostředí, ve kterém se klient pohybuje.
Pro začínající data scientisty je to obzvlášť těžký oříšek, protože se mohou objevovat překážky, se kterými se běžně během přípravy školních projektů nesetkávají. Formát dat se najednou změní, bezpečnostní útvar zamítne použitý software, změna priority odsune využití vaší práce na neurčito a mnoho dalšího.
Bez praxe si lze jenom těžko představit, jaké všechny možné chyby se mohou při přechodu do reálného provozu vyskytnout. Tomu opět pomůže včasná komunikace s dalšími členy týmu i klientem.
Jako příklad můžeme uvést projekt z oblasti marketingu. Měli jsme vyvinout tzv. propensity-to-buy model neboli model na bázi strojového učení, který odhadne pravděpodobnost, jak moc je klient vhodný pro oslovení nabídkou na konkrétní typ produktu.
Výběr klientů do kampaně ovlivňuje nejen vypočítaná pravděpodobnost, ale i celá řada dalších parametrů (souhlas s oslovením, kontaktní politika, doba od posledního oslovení apod.), se kterými jsme při hodnocení úspěšnosti modelu nepočítali. Model se tak původně jevil jako dobrý, avšak realizovaná kampaň nedosáhla očekávaného úspěchu.
Všechny příklady vycházejí z naší skutečné praxe a demonstrují, že data science není jen o datech, modelech a programování. Bereme je jako cenná poučení, ze kterých čerpáme na dalších projektech a která formují naše best practices a naše know-how.
A co z toho celého vyplývá pro vás, pro ty, jež kariéru v data science zvažujete, nebo už začínáte?
I když umíte perfektně programovat a máte doktorát ze statistiky, samo o sobě vám to negarantuje, že dokážete úspěšně dotáhnout do konce data science projekt. Mějte vždy na paměti, že data science je široká a komplexní disciplína, a je jenom na vás, jak s ní zadaný úkol vyřešíte.
Do starých kanceláří už se nevešli, ty nové proti nim...
O práci v Big Datech jsem si povídala s Vítkem...