Hiper-personalizacija: Od podataka do izuzetnog korisničkog iskustva
Kako se očekivanja potrošača stalno razvijaju, vaši napori za personalizaciju takođe moraju da evoluiraju. Hiperpersonalizacija stupa na scenu — trend…
Read more16. 04. 2020.
Nakon učešća na sastanku krajem marta, na temu „Nauka o podacima – šta je to?“, mnogo ljudi me kontaktiralo da im pošaljem neke uvodne materijale koji će im pomoći da počnu sa učenjem.
Trebalo mi je dosta vremena da sednem i počnem da pravim listu, jer ima mnogo izvora, a duboko sam siguran da ću završiti sa ovom rečenicom – najbolje je da počnem sa nekim realnim primerom koji vam je od interesa jer ćete najbolje naučiti kroz vežbu. Pored toga, ne postoji zlatno pravilo kako bi ovaj put učenja trebalo da izgleda, pa je veoma nezahvalno praviti spisak materijala i smernica i voditi računa da to ne uđe u „pristrasnost“, ili drugim rečima – prokletstvo ovog „determinističkog“ pokreta, jer sam tako pristupio nauci o podacima, pa se to može uraditi samo na ovaj način.
Pored toga, ja sam neko ko se isključivo bavi primenom napredne analitike u poslovanju, gde je glavni fokus merenje učinka pomoću neke mere uspeha kao što je profit ili trošak. A napredna analitika se može koristiti u različitim naučnim i istraživačkim oblastima i možda nije povezana sa poslovnim svetom. Ipak, došao sam na sjajnu ideju da šta god da sam ovde napisao omogući mojim kolegama na terenu da prošire ovu listu, ili da podele svoje iskustvo, pa ih pozivam da daju svoj mali doprinos i tako postanu pokretači velikih stvari. ?
Često postavljana pitanja su neizbežan deo ovog teksta i doći ćemo do njih, ali pre toga bih želeo da pogledam neke osnove koje moram da pomenem kako bih pozvao na razmišljanje, a možda i inspirisao one koji žele da uđu u vode nauke o podacima.
Ogromno odricanje od odgovornosti na samom početku – ako očekujete da će vam ovaj tekst biti kristalno jasan u smisli toga kako da se ponašate idete sutra i šta prvo da naučite – imajte na umu da je to praktično nemoguće. Pored činjenice da sadržaj, složenost i sfera nauke o podacima kojom ćete se baviti zavise prvenstveno od vašeg interesovanja i iskustva, nauka o podacima je toliko široka oblast da biste morali da prođete kroz ceo program osnovnih akademskih studija kako biste mogli da kažete da imašte neku osnovu. Ono što želim da uradim je da vam pomognem da razvijete pristup učenju, da u svakom trenutku budete svesni činjenica koje su ovde navedene, a zatim da sami tražite materijale i kurseve. ? Međutim, neki od proverenih kurseva ne dolaze u obzir, pa ćemo ih priložiti ovom tekstu.
Koliko god da je privlačna, nauka o podacima nije za svakoga. Kao i svaka druga profesija, ona zahteva posvećenost. Ono što je osnovni preduslov za uspeh na ovom polju jeste da ga treba voleti. Dakle, zaista morate da budete zainteresovani za analitiku, da volite da „kopate“ podatke danonoćno da biste izvukli maksimum iz toga.
Zlatni Pareto se takođe primenjuje u nauci o podacima. Na prljav posao otpada 80%, u smislu pripreme podataka i inženjeringa, dok ovaj „fensi“ deo, uključujući i same modele, često čini samo oko 20%. Modeli postoje, i ako koristite R ili Python biblioteke, oni se uglavnom svode na samo nekoliko linija koda. Ono što je veći problem je izvlačenje maksimalne snage informacija iz podataka, i naravno pronalaženje optimalne konfiguracije modela. Na kraju, model je nemoćan osim ukoliko su podaci dobri – „smeće unutra, smeće napolje“.
Ono što se u nauci o podacima često zanemaruje je važnost istraživačke analize. Dešava se da se preskaču koraci, usled želje da se što pre krene sa atraktivnim i sofisticiranim modelima mašinskog učenja. Međutim, dobra istraživačka analiza je ponekad više od polovine obavljenog posla. To uključuje rad sa podacima, otkrivanje njihove prirode, sticanje razumevanja osnove na kojoj su moć predviđanja i ograničenja koja postoje u skupu podataka jasni.
Ako vam se ne sviđa ovo takozvano rudarenje podataka i zanemarite istraživačku analizu, malo je verovatno da ćete tako brzo napredovati u karijeri. Ili jednostavno rečeno – ovo nije za vas. I to je u redu, naći ćete nešto drugo što vam više odgovara. U ovom tekstu možete pronaći još detaljnija objašnjenja i argumente u vezi sa počecima nauke o podacima, previsokim očekivanjima i realnošću koja im ne odgovara.
To je nešto o čemu sam takođe govorio na vebinaru, pa neću da se ponavljam, ali važno je da razumete distinkciju da ova tri pojma nisu ista stvar, i da postoji veza između njih, i da sve dok mislite da su ista stvar, lutaćete. Možda će vam ovaj tekst pomoći da donekle razumete razliku. Ako ne, postoji mnogo varijacija na temu, izaberite svoju. Nećete mnogo pogrešiti. ?
Kao što se najčešće tvrdi, nauka o podacima je fuzija različitih oblasti – biznis/domen, IT i matematika/statistika. U zavisnosti od vaših sposobnosti i znanja, kada počnete u oblasti nauke o podacima, vaše veštine su jače u jednoj od ovih oblasti i slabije u drugoj. I to je sasvim u redu. Važno je da prepoznate šta su vaši aduti, jer je to ono što vas razlikuje od drugih. Kada znate šta su vaši aduti i koje veštine vam nedostaju – znate šta treba da naučite da biste išli napred.
Ako dolazite iz oblasti društvenih nauka, odlično poznajete specifičnosti oblasti kojom se bavite, ali vam nedostaje poznavanje informatike i eventualno statistike. To znači da ako jednog dana želite da se bavite kompjuterskim vidom, na primer, prvi kurs koji treba da prođete mora biti vezan za programiranje. I ovde se ne radi o savladavanju biblioteka (ovo dolazi kasnije), već o elementarnom programiranju, konceptima datog programskog jezika, paradigmi, kontroli toka, strukturama podataka, a zatim o početku rada sa matematićkim sadržajima i algoritmima.
Ako dolazite iz sveta informacionih tehnologija, već bi trebalo da imate dobro poznavanje programiranja i matematike, ali vam nedostaje malo detaljnije poznavanje statistike, pa bi vam kurs statističke analize mogao dobro doći. Domen, ili posao – je nešto što se savladava iskustvom. Ne postoji savršen kurs koji vas može pripremiti za ovo, ali naravno uvek možete da pročitate knjigu koja će vam približiti domen u kome biste želeli da radite. Na kraju, možda ste apsolutni početnik, a mislite da vam nedostaje elementarno znanje iz svih ovih oblasti. Počnite sa jednim, kada savladate osnove, pređite na drugo, i tako sve dok ne budete dovoljno spremni da budete u mogućnosti (ili prisiljeni) da žonglirate i naučite više u pokretu.
Kada je reč o različitim profilima naučnika podataka, u zavisnosti od toga čime se bave u svom svakodnevnom radu, zahteva koje rešavaju i veština koje treba da razviju – postoji nekoliko tipova naučnika podataka. Uobičajeno je da svi vole nauku o podacima i mašinsko učenje, ali njihov fokus je drugačiji.
Analitičari su više fokusirani na istraživanje, identifikaciju obrazaca i objašnjenje specifičnog ponašanja i uzročno-posledičnih veza. Dakle, oni su po prirodi više statističari nego programeri. I oni imaju izvesnih poteškoća da se nose sa generisanjem rešenja i posluživanjem modela.
Inženjeri više vole da rade sa problemima dubokog učenja, gde postoji mnogo složenih matematičkih formulacija i gde mogu da isprobaju različite mrežne arhitekture i igraju se sa različitim konfiguracijama.
Programeri su uglavnom fokusirani na isporuku modela, kako će model biti implementiran u proizvodnju, da li će biti skalabilan i prilagodljiv, kako zadržati kod čistim i lako nadogradivim, kako će se obaviti preobuka za neke ML modele itd.
Najvažnija stvar za pripovedače je kako prodati rešenje firmi. Koje su glavne koristi, kako će preduzeće profitirati od toga i zašto je bilo toliko važno da se bavimo određenim problemom.
Profil dosta zavisi od interesovanja kao i od polazne tačke (predznanja). Nauci o podacima nećete pristupiti na isti način ako dolazite iz poslovnog domena i ako dolazite iz IT sveta. Međutim, odgovornosti i potrebne veštine takođe zavise od same kompanije. Pre svega, zavisi od toga da li kompanija ima mogućnost da zaposli više različitih profila kao što su naučnik podataka, inženjer za podatke, inženjer mašinskog učenja, programer i DevOps. Ako je tako – onda će se posao naučnika podataka u ovoj kompaniji sigurno razlikovati od posla kompanije koja ne može da priušti sve te profile – i naučnik za podatke će morati da pokrije više sfera odjednom.
Jedna od najjednostavnijih metodologija za razvoj projekata napredne analitike je CRISP-DM metodologija. A svi ostali su uglavnom varijacije na tu temu, ako ste dobro upoznati sa ovom, imaćete već stabilnu osnovu da uradite svoj prvi mini projekat za vežbu. Metodologije razvoja su važne jer određuju način na koji se pristupa problemu, kako se razvija rešenje, obezbeđujući održavanje fokusa kao i rezultate.
Kada je reč o projektima nauke o podacima, generalno postoje dve vrste projekata: rešenja i proizvodi. Više o ovome možete pronaći ovde.
Rešenja su projekti koji su specijalizovani za rešavanje određenog problema, pa se razvijaju za potrebe domena, na osnovu definisanog problema, specifične prirode, i retko se mogu 1/1 primeniti na isti način za više različitih klijenata, ili u različitim poslovnim domenima. Rešenje može biti npr. neki izveštaj, datoteka sa rezultatima ili neka instrument tabla. Ako projekat podrazumeva razvoj modela predviđanja vremenske serije, npr. prodaja u maloprodajnom lancu koja je posebno prilagođena modeliranju ponašanja tog trgovinskog lanca, u smislu sezonske prirode, trendova, posebnih akcija i tako dalje – to je rešenje razvijeno posebno za potrebe tog trgovinskog lanca i ne može se primeniti u oblasti telekomunikacija, npr. gde se pojam sezonske prirode i trenda drugačije doživljava i opisuje.
Proizvodi su projekti koji integrišu naprednu analitiku i alate za mašinsko učenje kako bi iskoristili poslovanje u ulozi sistema za podršku odlučivanju. Proizvodi su dizajnirani da budu lako skalabilni, i mogu se koristiti u različitim sistemima i različitim domenima poslovanja, jer mogu da reše mnogo različitih problema, a samim tim i lakše se prilagođavaju potrebama klijenata. Proizvodi zahtevaju veoma detaljno planiranje, temeljno razvijenu arhitekturu i mnogo tehničkih funkcionalnosti kako bi zadovoljili različite potrebe kupaca. Ako napravimo analogiju sa primerom rešenja, proizvod bi podrazumevao tehnički sistem koji omogućava prognozu vremenske serije, bez obzira da li je u okviru maloprodajnog lanca, telekomunikacija, logistike i tako dalje.
Već bi trebalo polako da stvarate nacrte da svaki od ova dva tipa projekata podrazumeva (mada ne nužno) drugačiji skup veština, iskustva i znanja. Rešenja mogu da variraju po složenosti, dok su proizvodi izuzetno tehnički zahtevni, a potrebno je veliko iskustvo u smislu razvoja da bi se razvio proizvod koji je prilagodljiv, skalabilan i pouzdan. Naravno, i jedno i drugo zahteva poznavanje naprednih analitičkih metoda i alata.
Dakle, u vezi sa tim šta vam je interesantnije, ili šta je glavni fokus razvoja vašeg potencijalnog poslodavca, postoji potreba da razvijete tehničke veštine koje će vam pomoći da budete kompetentni za određene pozicije na kojima želite da se prijavite za.
Ovo je zaista (skoro) nebitno. Kada sam počeo da učim, razvio sam rekurentnu mrežu u Javi. I od tada nisam ni prišao Javi (osim kada Spark izbaci izuzetak :D). Ono što je zaista važno je da shvatite koncepte. Lako ćete proguglati ono što vam treba. Koncepti okvira podataka, grupisanja i agregiranja postoje u R, Python-u i Spark-u i prvenstveno su inspirisani manipulacijama koje se mogu uraditi u SQL-u, tako da možete da vidite o čemu govorim. Kada su u pitanju modeli mašinskog učenja, postoje neke varijacije u vezi sa implementacijom u različitim programskim jezicima, međutim, najvažnije je razumeti kako algoritam funkcioniše, a implementaciju možete savladati kroz dokumentaciju ili Stackoverflow.
R je fantastičan jezik, koji ima sjajnu zajednicu, obilje biblioteka i funkcija, fantastične mogućnosti vizuelizacije. A ako mislite da ne razvijate ozbiljne tehničke sisteme (za koje vam je i dalje potreban programski jezik za ovu svrhu), R je dobar izbor.
Kažu da je Python drugi najbolji jezik za sve. Ako vam ovo nešto znači – idite ovim putem. ? U osnovi, to je jezik opšte namene, možete pokrenuti ML, možete pokrenuti duboko učenje, možete kreirati vizualizacije i interaktivne instrument table, kao i API-je, bukvalno – šta god vam padne na pamet. Uz to, ne mogu da tvrdim da sve u R postoji i u Python-u. Što ne znači da se to neće uskoro promeniti.
Sve je više ljudi koji za potrebe naučnog programiranja, a odnedavno i za naprednu analitiku, koriste Julia-ju. Međutim, mislim da je Julia još uvek daleko od nivoa popularnosti, podrške i zajednice koju imaju R i Python.
Spark je takođe dobra opcija, ali Spark nije uvek neophodna opcija. U suštini, ako vam ne treba ključna prednost Spark-a – a to je sposobnost paralelizacije složenih procesa na velikom broju podataka – po mom mišljenju, to ne bi trebalo da bude vaš prvi izbor. Opet, ako ikada budete morali da pređete na Spark, ne bojte se, sve se može savladati
Postoje i razni alati za razvoj ML modela – Orange, RapidMiner, SPSS, SAS – gde sve funkcioniše na principu prevlačenja i ispuštanja, ali opet je važno razumeti razvojnu metodologiju i modele koje koristite da bi sistem funkcionisao. Ako ne volite programiranje, ovo može biti dobar izbor.
Doktorat je najveća zabluda na koju sam naišao tokom godina čitajući razne tekstove i često postavljana pitanja o tome kako da počnete sa naukom o podacima. Postoji jedna stvar koju treba da shvatite – doktorat je važan ako se bavite naučnim istraživanjem, gde je vaš glavni fokus razvoj novih algoritama za mašinsko učenje, dakle, ne kao naslov, već u smislu znanja i iskustva neophodnih za razvoj novih algoritama. Ovo implicira da imate opsežno znanje o linearnoj algebri, numeričkoj analizi, kombinatorici i mnogim drugim stvarima (što zaista zahteva godine posvećenosti).
S druge strane, doktorat iz određenog domena može biti korisna referenca, jer u tom slučaju poznajete specifičnosti domena gde biste mogli da primenite naprednu analitiku. Međutim, to takođe može biti problematično sa lošim praktičnim iskustvom. Da li će vam naslov pomoći da se brže upišete ili da uopšte dobijete posao iz oblasti nauke o podacima? Ne obavezno. Istina je negde na sredini.
Što se tiče čitanja naučnih radova – to je obavezno. Nauka o podacima podrazumeva svakodnevno pregledanje, čitanje i upoređivanje naučnih radova, jer akademska zajednica (zajedno sa industrijom) pomera granice. Kada radite na problemu nauke o podacima, najvažnije je biti svestan ograničenja, što je sve što se može učiniti. Granice se definišu time koliko je akademija stigla sa istraživačkim radom i šta je primenjivo u industriji. Kada budete svesni ovih opcija – moći ćete da rešite svaki problem na koji naiđete.
Pored knjiga, istraživačkih radova, kurseva i blogova, postoji još jedan „trenutni“ način za dobijanje relevantnih informacija i uvida, odnosno – putem društvenih mreža. LinkedIn, Reddit i Twitter su mi do sada favoriti, mada naravno ima i drugih. Na taj način možete pratiti lidere u ovoj oblasti, biti uvek u toku, povezati se sa ljudima sličnih interesovanja i razmeniti iskustva i saznanja, a zauzvrat steći znanja. O tome sam već govorio u svom tekstu, a ono što mogu da kažem posle godinu dana je da – i dalje verujem. ?
PluralSight (besplatan u aprilu, ne smete propustiti ovu priliku)
Podkasti
Knjige
Blogovi
Duboko učenje
Zajednice
Uključite se u zajednicu – prisustvujte svim mogućim sastancima, konferencijama i predavanjima, na takvim događajima uvek možete dobiti dobre savete, ideje, steći nova znanja itd.
Uživite se u teorijske osnove napredne analitike (metodologije razvoja, istraživanje podataka, statistički testovi, algoritmi mašinskog učenja,…)
Pronađite primer koji vam je zanimljiv, kroz koji biste mogli da primenite to što učite i proširite svoje znanje (UCI repozitorijum mašinskog učenja i Google repozitorijum za pretragu skupova podataka imaju milione otvorenih skupova podataka, sigurno ćete pronaći nešto što vas interesuje)
Naučite kako da guglate
Projekat na kojem radite treba da bude postavljen na vaš GitHub profil, to je obavezan i suštinski element u vašem CV-ju
Napravite izveštaj u kome ćete objasniti šta ste radili na projektu, koji problem je rešen, koji su bili koraci, koji su bili najveći izazovi, koji su zaključci izvučeni i na osnovu čega, koje su mogućnosti za poboljšanja itd…
Pitajte nekoga iz zajednice ko se bavi oblastima koje vas zanimaju za savet kako da počnete u toj određenoj oblasti (nauka o podacima je širok pojam).
Prijavite se za praksu/posao, gde ćete najbolje učiti i razvijati se kroz mentorstvo. Ako postoji tehnički test u fazi selekcije – to je savršena prilika da se nešto nauči. Koristite ga!
Zahvaljujem se svima koji su pomogli u realizaciji ovog dokumenta, a posebno mojim kolegama iz TS tima (hvala Angela, Jasmina, Tijana, Marija, Strahinja, Marko, Bogdane!). A posebno hvala mojim kolegama Bojani Soro iz Content Insights-a i Srđanu Šantiću iz Logikke. Zajedno smo sastavili listu početnih materijala i formulisali ovaj dokument. HVALA VAM SVIMA! Nadam se da će ovaj dokument biti od pomoći početnicima, i da ćemo ga kroz zajednicu unaprediti i obogatiti. Hvala vam!
Kako se očekivanja potrošača stalno razvijaju, vaši napori za personalizaciju takođe moraju da evoluiraju. Hiperpersonalizacija stupa na scenu — trend…
Read moreKao što verovatno već znate, prodajni levak igra ključnu ulogu u vođenju potencijalnih kupaca od početne svesti do konačne konverzije.…
Read moreU prošlosti smo dobijali preporuke od ljudi koje poznajemo, poput naših prijatelja ili članova porodice. Ponekad čak i od prodavaca.…
Read more