Podcast

Scoring, systemy rekomendacyjne po analizę listów Warren’a Buffet’a

Żyjemy w czasach, kiedy uczenie maszynowe ma coraz większy wpływ na nasze życie. Ostatnio czytałem dyskusję na quora, czy tak zwana sztuczna inteligencja może wkroczyć do sądów, gdzie zastąpi osobę sędziego. Akurat pierwsza odpowiedź, brzmiała, że “absolutnie nie”. Natomiast, jeśli zastanowimy się nad tym, to odpowiedź będzie brzmiała “raczej tak”. Już teraz są sytuacje, kiedy uczenie maszynowe wspiera prawników czy sędziów.

Istnieją różne publikacje na ten temat, np. w National Bureau of Economic Research przygotowano publikację, gdzie twierdzono, że model bazując na danych historycznych, takich jak protokół zatrzymania czy na innych aktach sądowych jest w stanie zrobić predykcję, czy ta osoba jest winna czy nie, na poziomie porównywalnym lub nawet lepszym od sędziego.

Brzmi to ciekawe. Po pierwsze, daje to nadzieję, że wszystkie sprawy znajdujące się w sądach potoczą się szybciej. Druga szansa, to fakt, że wreszcie sąd stanie się w 100% sprawiedliwy, ponieważ człowiek jednak nadal tylko człowiekiem (chociażby na poziomie podświadomości). Co do pierwszej możliwości, jak najbardziej ten problem może być rozwiązany. Uczenie maszynowe bardzo fajnie skaluje się (sprzęt staje się coraz tańszy). Natomiast druga ewentualność stanowi wyzwanie.

Jak na razie, uczenie maszynowe jest również subiektywne. To wynika, chociażby z tego, w jaki sposób uczy się model. Uczy się on na podstawie decyzji, które podejmowali ludzie. Dlatego to co może zrobić model to, w najlepszych przypadku, zebranie najlepszej kombinacji wygenerowanej przez ludzi, ale to nadal będzie subiektywne.  Do tego jeszcze należy dodać kolejny wymiar złożoności – a mianowicie – bardziej złożone modele są tak zwanymi “czarnymi pudłami”, tzn. działa on zwykle lepiej, ale nie wiadomo dlaczego tak jest.

Jeden z trendów, który można było dostrzec jeszcze w roku 2017 i na pewno będzie kontynuowany w roku 2018, to większa wartość zrozumienia na podstawie czego model podejmuje decyzje. Ponieważ, to że będziemy używać bardziej zaawansowanych modeli staje się coraz bardziej oczywiste (być może w niektórych obszarach, jak finanse czy bankowość, na skutek różnych regulacji, jeszcze trochę to potrwa, ale i tak nastąpi). Jak to zrobić? Skoro nie jesteśmy w stanie wprost zrozumieć jak działa model, trzeba zbudować model, któryy nam w tym pomoże.

Człowiek jest bardzo ograniczony, wbrew pozorom. Dlatego pojawiają się różne narzędzia, zaczynając od młotka, a na statkach kosmicznych kończąc. Dlatego to jest takie naturalne: stworzyć narzędzie, podobne do mikroskopu czy teleskopu, które pomoże zobaczyć “coś”, czego nie widać gołym okiem. Kolejny ciekawy aspekt – jak pomyślimy o ludziach, to też mało o nich wiemy. Nadal nie wiadomo jak działa mózg – osoby, które zajmują się tym zawodowo często twierdzą, że mózg (który posiada każdy człowiek) jest najbardziej złożonym elementem we wszechświecie.  

Dlatego, kontynuując dyskusję o tym, że nie wiadomo na podstawie czego podejmuje decyzję model, to przecież podobna sytuacja dotyczy ludźmi – również nie wiadomo dlaczego podejmują tą czy inną decyzję. Pomyśl przez chwilę, jak często podjąłeś decyzję, a potem sam nie rozumiałeś dlaczego akurat tak postąpiłeś? Zostawiam Cię z tym wątkiem 🙂

Jak już powiedziałem, w roku 2018 będą rozwijane narzędzia do rozumienia zaawansowanych modeli (dlaczego podejmują taką czy inną decyzję), ale również, co mnie bardzo cieszy, więcej uwagi będzie poświęconej na to, jak stworzyć model sprawiedliwym. Skoro Satya Nadella, CEO Microsoft, również dzieli się pomysłami jak można podejść do problemu, to raczej oznacza, że dotarł on na odpowiedni poziom. Zobaczymy jak to będzie.

Mateusz Grzyb
Mateusz Grzyb

Dzisiejszym gościem jest Mateusz Grzyb. Bardzo ciekawy człowiek, który ma kilka dość rzadkich, mało popularnych w naszych czasach cech. Jest odpowiedzialny, czasem wręcz za bardzo (wiem jak to jest, bo mam podobnie), ale bardzo przyjemnie współpracuje się z ludźmi – którzy obiecują coś i robią to bez jakichkolwiek przypomnień. Druga rzecz, która również jest mało popularna – dbałość o szczegóły, dla osób które pracują w analityce jest to bardzo ważne.

Poruszyliśmy z Mateuszem kilka wątków, zaczynając do scoringu dla instytucji finansowych, przez systemy rekomendacyjne i inne.

Mateusz był trochę przeziębiony, ale mam nadzieje, że mu to wybaczysz 🙂

Na końcu będzie kilka ogłoszeń, jak i prezent przygotowany przez Mateusza.

Zapraszam do czytania.


Cześć Mateusz! Przedstaw się słuchaczom – kim jesteś? Czym się zajmujesz? Gdzie mieszkasz?

Witam serdecznie. Nazywam się Mateusz Grzyb i pracuję jako Data Scientist w ITMagination, mieszkam w Warszawie. Na co dzień zajmuję się dostarczaniem wartości biznesowej w oparciu o dane.

Co ostatnio czytałeś?

Książką, którą ostatnio przeczytałem jest „7 nawyków skutecznego działania” – klasyka, nie będę tutaj oryginalny. Jest to książka, do której co jakiś czas staram się powracać, nazywam ją biblią – nie można jej przeczytać tylko raz i odłożyć na półkę. Staram się wdrażać techniki w niej opisane i później weryfikować, powracam do niej po raz kolejny.

To jest rzecz, której wydaje mi się często brakuje – osoby, które czytają nałogowo dużo wiedzą, ale mało wdrażają w praktykę. Drogi słuchaczu, jeśli też masz taki problem – dużo czytasz, a mało wdrażasz – może skorzystaj z porady Mateusza i co jakiś czas wracaj do lektury, która jest tego warta. Powiedziałeś, że pracujesz jako Data Scientist w ITMagination, czym dokładnie się tam zajmujesz?

Jeśli miałbym w jednym zdaniu opisać czym zajmuję się w ITMagination – jest to dostarczanie wartości biznesowej w oparciu o dane, które posiadają nasi klienci, mówiąc bardzo ogólnikowo. Jeśli miałbym opisać to bardziej szczegółowo, to musiałbym podzielić wszystkich klientów, z którymi współpracujemy na dwie grupy.

Pierwsza grupa – klienci bardziej świadomi, jeżeli chodzi o obszar danych  – głównie firmy z sektora finansowego. W tych firmach weryfikujemy pewnego rodzaju rozwiązania, nowe narzędzia, techniki. Sprawdzamy jak ich działanie wygląda w praktyce.

Druga grupa to klienci, którzy dopiero rozpoczynają swoją przygodę z danymi. Chcą zweryfikować jak Data Science, uczenia maszynowe, sztuczna inteligencja mogą poprawić działanie ich biznesu. Tutaj mamy do czynienia z różnego rodzaju problemami, może to być scoring klientów czy analiza logów zbieranych przez różne systemy, czy też predykcja zapotrzebowania na dane produkty, towary.

Poruszyłeś kilka kwestii, ale dopytam się o jedną, która jest dość ciekawa, zwłaszcza dla wielu firm finansowych – mam na myśli scoring. Wiem, że nie możesz zdradzić wielu szczegółów. Zapytam dość technicznie – jest tzw. problem black-box, kiedy próbujemy użyć czegoś bardziej zaawansowanego, zaczynając od boosting i kończąc na deep learning.

Ten model zwykle działa lepiej, ale tracimy na interpretowalności – nie jesteśmy w stanie w jednoznacznie wyjaśnić dlaczego ten model tak działa, chociaż wyniki są lepsze. Jak sobie z tym radzicie? Czy używacie bardziej zaawansowanych modeli? Czy używacie np. tylko modelu liniowego i tego problemu nie macie?

Jeśli chodzi o system scoringowy, nad którym obecnie pracujemy to zakłada on 100% interpretowalność danych. W zasadzie nie wchodzą w grę żadne modele, które nie są w pełni interpretowalne. Black-box odpada nam tutaj na starcie. W chwili obecnej nie mamy jeszcze wybranego końcowego algorytmu. Ciągle jesteśmy na etapie testowania ich pod kątem dokładności, przewidywania wyniku, oraz szalenie ważnej w uczeniu maszynowym, stabilności.

Mamy 3 podstawowe założenia. Pierwsze – 100% interpretowalność algorytmów, drugie – dokładność, trzecie – stabilność. Jeśli miałbym opisać algorytmy, które obecnie testujemy to pierwszym algorytmem, który testujemy jest drzewo decyzyjne – w zasadzie klasyka scoringu.

Ma on swoje zalety i wady. Niewątpliwym plusem jest naturalny sposób interpretacji jego wyników. Na wyjściu otrzymujemy zestaw reguł opisanych w strukturze drzewa. Idąc bezpośrednio od korzenia do liści, na jednym rysunku możemy zobaczyć jak algorytm podejmuje kolejno decyzje na poszczególnych węzłach. Algorytm ten ma również minusy – najbardziej znany to jego stabilność. Jest on dosyć wrażliwy na dane uczące.

Jeżeli klient w przyszłym roku, już po dostarczeniu przez nas produktu, będzie chciał douczyć swój model na nowych danych może się okazać, że ten zestaw reguł zostanie dość mocno zmodyfikowany – ucierpi na tym stabilność. Drugim minusem jest brak płynności algorytmu – czyli, na poszczególnych węzłach drzewa decyzyjnego decyzje, które są podejmowane w przypadku zmiennych ciągłych, zmiennych numerycznych – nazwijmy to, na sztywno. Jeżeli mamy zmienną ciągłą, którą jest na przykład saldo konta danego klienta, zostaje ona w pewnym momencie podzielona na dwie części. Oddzielamy klientów o saldzie np. poniżej i powyżej 10 000, co może być dosyć problematyczne.

Żeby opisać ten problem nieco dokładniej zaprezentuję przykład – mamy Jana Kowalewskiego, który stara się o kredyt inwestycyjny wysokiego ryzyka. Załóżmy, że jednym z ważniejszych czynników, który decyduje o przyznaniu kredytu jest właśnie saldo konta. Powiedzmy, że drzewo decyzyjne wybrało ten przedział na poziomie 10 000. Saldo Jana Kowalskiego na dzień pierwszy wynosi 4 900 złotych. Pierwszego dnia idzie on do banku stara się o kredyt, niestety jego wniosek zostaje odrzucony ze względu na to, że saldo było zdecydowanie za niskie.

Drugiego dnia, po otrzymaniu dużej faktury na kwotę 5 000 złotych od jednego z kontrahentów saldo konta Jana Kowalskiego wynosi już 9 900 złotych. Stara się on ponownie o kredyt inwestycyjny i wniosek ponownie zostaje odrzucony. Nie dziwi to, bo moment od którego kredyt zostanie przyznany to powiedzmy 10 000 zł.

Trzeciego dnia Jan Kowalski otrzymuje zapłatę za kolejną fakturę tym razem na kwotę 200 zł. Idzie do banku ponownie starając się o kredyt i wniosek zostaje zaakceptowany. Widzimy, że ta pierwsza zmiana salda konta, która była dużo większa niż druga w zasadzie nic nie zmieniła jeśli chodzi o zdolność kredytową. Natomiast, ta druga która była minimalna, zmieniła wszystko. Z osoby, który nie dostawała kredytu nagle Jan Kowalski go dostaje – to jest dosyć dużym minusem drzewa decyzyjnego.

Kolejnym algorytmem, który rozpatrujemy jest regresja logistyczna. Daje ona nieco gorsze wyniki, niż drzewo decyzyjne, ale nadrabia stabilnością, również ma swoje wady. Główny minus to wrażliwość na braki danych i na dane odstające. Jeżeli mamy obserwacje, które cechują się dosyć wysoką wartością danej zmiennej – posługując się tym przykładem Jana Kowalskiego – jeżeli saldo konta jest bardzo wysokie, to taka zmienna będzie wpływać na końcową predykcję.

Temat scoringu jest bardzo ciekawy, można o niego jeszcze dopytywać. Między innymi porozmawialiśmy troszkę offline jak te przepisy wyglądają i że jest to czasami dość śliskie – zostawmy teraz ten temat.

Zapytam o coś innego – jakiś czas temu pracowałeś nad systemem rekomendacyjnym. Wyjaśnij proszę, co to jest? Wydaje się, że dla wielu biznesów może być to bardzo przydatne. Druga rzecz, to postaraj się proszę na mniej oczywistym przykładzie, pokazać jaką korzyść taki system rekomendacyjny może wnieść dla biznesu?

System rekomendacyjny jest to specyficzny system ekspercki, którego działanie polega na rekomendowaniu produktu lub usługi dla klienta końcowego w oparciu o wybrane kryteria, w zależności na którą opcję decyduje się firma wdrażając system rekomendacyjny.

Do takich mniej oczywistych przykładów zastosowania systemów rekomendacyjnych można zaliczyć np. branżę e-commarce, gdzie mamy do czynienia z handlem internetowym, gdzie firmy prowadzą sprzedaż produktów bądź usług poprzez internet. Tutaj stricte dochodzimy do rekomendacji tych produktów lub usług klientowi końcowemu.

To na czym bazuje cały fenomen Amazonu – powołując się na dane sprzed kilku lat, 35% sprzedaży firmy bazowało na sprzedaży rekomendacji. To pokazuje olbrzymią siłę jaką mają rekomendacje, silniki rekomendacyjne. Kolejnym mniej oczywistym przykładem wykorzystania systemów rekomendacyjnych jest budowanie lojalności klienta. Wszędzie tam, gdzie spotykamy się ze sprzedażą możemy w oparciu o systemy rekomendacyjne budować lojalność klienta, np. wyznaczać produkty, które z dużym prawdopodobieństwem okażą się interesujące dla klienta i wysyłać je w różnych np. kampaniach mailingowych.  Dzięki temu będziemy budować jego lojalność, im bardziej trafne będą te rekomendacje tym większe jest prawdopodobieństwo zakupu danego produktu.

Brzmi ciekawie. Pamiętam, że kiedyś rozmawiałem z jednym ze słuchaczy BiznesMyśli, który pracuje w firmie z branży medycznej. Opowiadał on o implementacji związanej z diagnozami lekarskimi. Przychodzi pewna osoba, z różnymi diagnozami i pojawiają się rekomendacje do którego lekarza ma pójść. Na podstawie danych historycznych zrobili tego rodzaju rekomendację.

Na pierwszy rzut oka, wydaje się to dziwne, że rekomendacja wizyty lekarskiej jest czymś innym, ale z drugiej strony to jest dokładnie ten sam przypadek. Przejdźmy teraz troszkę poziom niżej, jeszcze niezbyt techniczny, ale tak żeby wyczuć jak za ten problem w ogóle można się zabrać, co jest potrzebne?

Jeżeli mówimy o tym co jest potrzebne do budowy systemu rekomendacyjnego, na pewno potrzebni są użytkownicy i dane ich dotyczące, decyzje jakie podejmują oraz dane dotyczące produktów, usług to z czego ci użytkownicy korzystają, co oglądają bądź co kupują. Dopiero mając te dane możemy iść o krok dalej i myśleć o podjęciu decyzji co do wyboru sposobu filtrowania w naszym systemie rekomendacyjnym.

Czym jest filtrowanie? Jest to dobór odpowiednich produktów, które mogą okazać się dla danego użytkownika interesujące. Powiedziałem o tym, że muszą być dane, jakieś produkty, konkretni użytkownicy, którzy podejmują jakieś decyzje. Jest jeszcze jeden, ostatni krok, jeżeli te dane mamy już w jakiś sposób przefiltrowane, czyli mamy wybrane produkty, które mogą się okazać interesujące to ostatnim krokiem jest wybór metody prezentacji wyników.

Tutaj mamy trzy najpopularniejsze: robimy listę top-n elementów, która zakłada, że sortujemy wszystkie produkty, usługi – to co chcemy sprzedać, zaoferować naszym klientom – sortujemy je według prawdopodobieństwa z jakim produkty te okażą się dla niego interesujące. Otrzymujemy na wyjściu posortowaną listę.

To podejście ma swoje wady i zalety. Minusem jak i plusem w zasadzie jest to, że produkty te są posortowane, im dalej idziemy w głąb listy te produkty są gorsze. W pewnym momencie może okazać się, że taka lista jest dla końcowego odbiorcy nużąca. Pierwszą alternatywą dla listy top-n elementów w silniku rekomendacyjnym jest metoda rowerowa – z angielskiego cycling recommendations – polega ona na usunięciu elementu po wyświetleniu, bądź po kilkukrotnym wyświetleniu. Dzięki temu użytkownicy nie widzą ciągle tych samych produktów, które mogłyby ich potencjalnie zainteresować.

Problem z tym związany miał swego czasu Filmweb, który prezentował w swoim silniku rekomendacji filmów na samej górze w zasadzie ciągle te same pozycje. Dodatkowo ciągle były to filmy, które mogły końcowego użytkownika potencjalnie najbardziej zainteresować. Po pewnym czasie użytkownik nie widział w ogóle sensu we wchodzeniu do tej listy rekomendacji i eksplorowania jej. Dzięki metodzie rowerowej – metodzie, w której te obserwacje po pewnym czasie znikają – częściowo mogliśmy tę listę odświeżać.

Drugim podejściem jest metoda serpentynowa – polega ona na rozłożeniu obserwacji, które w największym stopniu pasują do gustu danego użytkownika na kilku stronach. Przewijając daną listę z rekomendacjami użytkownik ten co kilka produktów widzi pozycje, które potencjalnie go dosyć mocno mogą interesować. Eliminuje to efekt znużenia i zachęca użytkownika końcowego do dalszej eksploracji serwisu. Dalsza eksploracja serwisu może się w tym przypadku przełożyć na większość sprzedaż, większe prawdopodobieństwo kupna większej ilości produktów.

Nieco podsumowując to co było powiedziane, chodzi o to, że mamy sporo produktów np. 1 000 lub 1 000 000 i chcemy polecić 3 – 10 z nich, a zadaniem algorytmu jest wybranie najlepszych. Tak jak Mateusz powiedział, najpierw algorytm pomaga nam przypisać jakąś wagę do tego produktu, ale musimy uważać, że gdzieś warto to w jakiś sposób przeciąć lub zastosować inne tricki, żeby lepiej zarządzać i nie podpowiadać jakiś bzdurnych dla użytkownika elementów. Jakie są główne, najbardziej znane podejścia jeżeli chodzi o system rekomendacyjny?

Jeśli chodzi o dwa główne podejścia do filtrowania w silnikach rekomendacyjnych wyróżniamy Content Based Filtering i Collaborative Filtering.

Na czym one polegają i jaka jest różnica? W pierwszym – Content Based, mamy filtrowanie w oparciu o atrybuty danego produktu. W przypadku gdy mamy np. silnik rekomendacji filmów, to takimi atrybutami mogą być: rok produkcji, reżyser, aktorzy biorący udział w nagrywaniu filmu i kraj produkcji. Jeżeli chodzi o to jak to jest parowane, to staramy się rekomendować użytkownikowi te filmy, produkty, które są możliwie najbardziej podobne do produktów najbardziej przez niego lubianych. Jeżeli kupuje te produkty, to rekomendujemy podobne. Jeżeli ocenia jakiś film na wysoką ocenę, to rekomendujemy filmy, które są możliwie jak najbardziej podobne do tego co lubi.

W drugim podejściu – Collaborative Filtering, założenie jest zgoła odmienne. Tutaj nie patrzymy na atrybuty poszczególnych filmów, tylko bazujemy na preferencjach użytkowników podobnych. Na przykład, dla Jana Kowalskiego szukamy drugiej osoby, która oceniła bądź kupiła podobne produkty do niego. Jeżeli wiemy, że Jan Kowalski kupił produkt A, a następnie kupił produkt B – szukamy użytkownika, który kupił te same produkty i patrzymy co on również kupił. Jeżeli kupił on produkt C, to istnieje duże prawdopodobieństwo, że ten produkt C również spodoba się Janowi Kowalskiemu.

Obie te metody mają swoje plusy i minusy. Jeśli chodzi o Content Based Filtering, to dużym minusem jest to, że łatwo można przeuczyć model. Bazujemy na określonym zbiorze danych, który jest dość duży i łatwo tutaj o zbytnie dopasowanie modelu to tych danych. Drugim minusem jest to, że wszystkie atrybuty, na których bazujemy – nawet jeżeli byłoby ich bardzo dużo – no to nie oddają one w pełni rzeczywistości.

Nigdy to nie będzie tak dobrze opisane, jak moglibyśmy opisać dany produkt w sposób słowno-muzyczny, czy też dany film. Bazujemy tutaj na suchych atrybutach, a nie ujmujemy tego co najbardziej ludzkie, czyli to co dostrzegają ludzie dodatkowo w filmie. Oba te minusy, w zasadzie niweluje Collaborative Filtering, czyli filtrowanie w oparciu o gusta użytkowników podobnych.

Ma ono natomiast duży minus, jakim jest problem zimnego startu. Jeżeli mamy na naszym portalu użytkownika, który jeszcze niczego nie kupił, niczego nie ocenił, to w zasadzie nie wiadomo co moglibyśmy mu zarekomendować. Różne firmy radzą sobie z tym problemem na różne sposoby.

Swego czasu Netflix dla użytkowników nowych, którzy jeszcze nie obejrzeli, nie ocenili żadnego filmu – stosował metodę Content Based do 8 filmów. Zanim użytkownik obejrzał 8 filmów była do niego stosowana ta metoda, natomiast powyżej 8 ocen zmieniał się silnik i był to Collaborative Filtering. To tak w dużym skrócie, bo zależności w silniku Netflixa, o których nie wiemy jest na pewno mnóstwo, tutaj nie mamy pełnych informacji. Natomiast, w dużym uproszczeniu, w pewnym okresie działalności Netflixa w ten sposób to działało.

Myślę, że Netflix jest wzorowym przykładem jeżeli chodzi o systemy rekomendacyjne. Nie pamiętam już dokładnie liczb, ale czytałem artykuł, w którym wspominano, że dzięki usprawnieniu systemów rekomendacyjnych udało im się zminimalizować ilość rezygnacji z subskrypcji. W ten sposób zaoszczędzili co najmniej miliard – o ile się nie mylę.

Zmienię teraz temat – masz blog mateuszgrzyb.pl. Jest tam wiele ciekawych artykułów, ale teraz chcę się skupić na jednym z nich, w którym opowiadasz o bokserze Muhammadzie Ali, który jest również Twoim bohaterem. Na pierwszy rzut oka jest to o czymś innym, niż może się wydawać. Powiedz proszę dokładnie o co chodzi w tym artykule i co dzięki tej analizie udało się osiągnąć?

Muhammad Ali
Muhammad Ali

Dziękuję Vladimir za miłe słowa. Jeśli chodzi o całą historię, która stoi za tym artykułem, to w zasadzie musiałbym wrócić do wczesnych lat dzieciństwa, gdzie jako mało chłopak wspólnie z rodzicami oglądałem walki bokserskie. U mnie w domu było dosyć nietypowo, gdyż obydwoje rodzice mocno pasjonują się boksem. Od najmłodszych lat dorastałem oglądając w sobotnie wieczory relacje z walk bokserskich.

Były to pierwsze walki Dariusza Michalczewskiego, Andrzeja Gołoty, które były transmitowane w polskiej telewizji. Siłą rzeczy boks stawał się moją pasją od dziecka. Mając jakąś pasję szukamy idola – osoby, która w danej dziedzinie jest najlepsza bądź jedną z najlepszych. W komentarzach Janusza Pindery często przewijało się nazwisko Muhammada Alego, jako uważanego za największą postać w zawodowym boksie.

Oczywiście, jestem za młody, żeby móc oglądać jego walki na żywo w telewizji. Natomiast, oglądając je później odtwarzane w internecie byłem pod ogromnym wrażeniem tego jak Ali się poruszał w ringu. Byłem w ogromnym szoku co stało się z nim po zakończeniu bokserskiej kariery. Choroba odbiła się dużym piętnem na tym jak później wyglądał i jak się zachowywał. Było to coś mocno szokującego widzieć kogoś, kto całkiem niedawno był tak sprawny, a nagle traci wszystkie swoje atuty i ma problemy z poruszaniem się.

Ali chorował na chorobę Parkinsona. Studiując to jak choroba ta postępuje i jaki ma wpływ na ciało człowieka doszukałem się, że szalenie istotne jest to by możliwie wcześnie ją wykryć. Wcześniejsze wykrycie choroby Parkinsona powoduje, że są większe szanse na złagodzenie jej skutków. Im wcześniej rozpoczniemy terapię manualną, farmakologiczną, tym większe są szanse, że dany pacjent chorujący na Parkinsona będzie mógł samodzielnie funkcjonować.

W eksperymencie, który opublikowałem na blogu staram się rozpoznać na podstawie danych dotyczących głosu pacjentów, czy dana osoba cierpi na chorobę Parkinsona czy też nie. Mamy tam ponad 20 zmiennych opisujących głos danej osoby i na tej podstawie starałem się zbudować model, który będzie w stanie wskazać czy dana osoba jest chora na tę chorobę czy też nie. Po kilku godzinach walki z tym problemem udało mi się wynik dokładności osiągnąć na poziomie blisko 90%. Dla obserwacji pacjentów, których do tej pory algorytm nie widział jesteśmy w stanie, z pomocą rozbudowanego modelu, rozpoznać czy dana osoba jest chora czy nie z dokładnością 90%.

Ten eksperyment jest takim początkiem, widzę tutaj jego potencjalne rozwinięcie. Bazowałem tylko na próbce, w której mieliśmy pacjentów, z których część była chora, a część nie. Potencjalnym rozwinięciem tego eksperymentu mogłoby być bazowanie na próbie osób, których głos był nagrany przed zachorowaniem na Parkinsona, przed zdiagnozowaniem choroby i bezpośrednio po postawieniu diagnozy. Mielibyśmy cały zbiór podzielony na obserwację przed i po. Wtedy moglibyśmy wytrenować model, który potencjalnie na podstawie głosu byłby w stanie powiedzieć z jakim prawdopodobieństwem ta osoba zachoruje na chorobę Parkinsona.

Oczywiście szukałem czy ktoś już próbował robić coś takiego i wiem, że gdzieś takie eksperymenty zostały podjęte. Natomiast, ogromną tutaj przeszkodą jest zebranie odpowiedniej ilości danych do uczenia tego modelu.

W pierwszym kroku, musielibyśmy nagrywać głos losowych osób, który byłby zapisywany za pomocą kilku do kilkudziesięciu atrybutów. W drugim kroku, po kilku latach musielibyśmy sprawdzać ile z tych osób naprawdę zachorowało na chorobę Parkinsona.

Tylko na podstawie takich danych bylibyśmy w stanie zbudować model, którzy rzeczywiście by tę chorobę przewidywał. Nie odpowiadałby tylko czy ta osoba jest na dzień dzisiejszy chora, czyli to co robił mój model, tylko byłby w stanie przewidywać przyszłość co byłoby czymś rewolucyjnym – tak to śmiało można nazwać.

Pamiętam, że jak czytałem ten wpis na blogu to poczułem, że jest bardzo inspirujący i to z kilku powodów. Po pierwsze, Ali jest bardzo ciekawą osobą. Jako ludzie dość często narzekamy jak jest nam źle, bo coś w pracy nie gra itd. Ale często nie zdajemy sobie sprawy, że nasza sytuacja mogłaby być dużo gorsza i nie doceniamy tego co mamy.

Drugim wymiarem było to, że uczenie maszynowe naprawdę może być korzystane w wielu życiowych aspektach. Jak powiedziałeś, nie mamy lekarstwa na konkretną chorobę, ale możemy przynajmniej zrobić coś, żeby ułatwić, zminimalizować ból i problemy, które powstają. Wydaje mi się, że fajnie by było gdyby uczenie maszynowe coraz częściej było pomocne dla ludzi, a nie tylko rozwiązywało techniczne problemy.

Myślę, że fajnie, że to zaznaczyłeś. Uważam, że to jest szalenie istotne, że uczenie maszynowe jest używane nie tylko do rozwiązywania problemów stricte komercyjnych, ale również do problemów, które górnolotnie mówiąc zmieniają świat. W tym przypadku choroby, na które jeszcze nie ma lekarstw, bylibyśmy w stanie je wcześnie wykrywać. Byłoby to czymś fenomenalnym.

Tak jest. Kolejny ciekawy artykuł, który pojawił się na Twoim blogu, jest też aktualnie najnowszym. Dotyczy on analizy związanej z inwestycją, a dokładnie hipoteza brzmiała jak wypowiedzi Warren’a Buffet’a wpływają na rynek. Temat powiązania uczenia maszynowego z inwestycjami teraz jest dość gorący, czasem nawet wydaje mi się zbyt gorący – jest o tym bardzo dużo materiałów.

Z tego co obserwuję osobiście, jest bardzo dużo szumu. Zdradzę, że razem ze wspólnikiem zaczęliśmy pracować nad platformą związaną z inwestycjami – na razie nie będę o tym dużo mówić, ale mam nadzieję, że za jakiś czas uda mi się pokazać pewne wyniki, które osiągniemy. Jestem na tym rynku sporo niesprawiedliwości. Wracając do Twojego artykułu, powiedz proszę co dokładnie chciałeś osiągnąć i jakie są wyniki?

W tym artykule chciałem zweryfikować cztery hipotezy. Całość bazuje na listach skierowanych do akcjonariuszy Berkshire Hathaway, które co roku publikuje na stronie swojej firmy Warren Buffet. Cyklicznie jest prezentowany list, w którym Buffet podsumowuje ubiegł rok i przedstawia jak widzi on szanse rozwoju w kolejnych latach. W swoim projekcie chciałem zbadać kilka hipotez, dwie z nich dotyczyły przeszłości.

Chciałem zbadać jak sentyment listu jest powiązany z wynikami jakie osiągała amerykańska giełda w roku poprzednim. W jakim stopniu sentyment listu wynikał z sytuacji, która była na giełdzie. Drugą hipotezą było to, w jaki sposób sentyment danego listu jest uzależniony od wyników jakie osiągał Berkshire Hathaway w roku ubiegłym.

Druga część to było zbadanie hipotez dotyczących przyszłości, czyli zależności pomiędzy sentymentem danego listu a wynikami jakie osiągała zarówno amerykańska giełda jak i Berkshire Hathaway w roku po publikacji tego listu. Moglibyśmy tutaj powiedzieć, w jaki sposób Warren Buffet przewidywał to co się wydarzy na giełdzie. Oczywiście w dużym uproszczeniu, bo musielibyśmy tutaj założyć, że Warren Buffet dzieli się w swoich listach wszystkim co tylko wie.

Nie to jest to oczywiście prawdą, jest to bardzo duże założenie i uproszczenie. W swoim projekcie postawiłem na zastosowanie analizy Bing, której głównym założeniem jest zliczanie słów pozytywnych i negatywnych. Wyrażane jest to we współczynniku, który jest zobrazowany wzorem przedstawiającym różnicę w liczbie słów pozytywnych i negatywnych opisujących dany tekst i dzielonej przez liczbę wszystkich słów.

Jeśli chodzi o podejście do analizy Bing, zakłada ono zliczanie jedynie unikatowych słów, ja to nieco zmieniłem. Uznałem, że również istotne jest to jak często słowo pozytywne lub negatywne występuje, zliczałem wszystkie wystąpienia a nie tylko te unikatowe.

Jakie wystąpiły wnioski? Jak można ten wynik, ze strony biznesowej, zinterpretować?

Jeśli chodzi o wyniki jakie udało mi się osiągnąć, to potwierdziłem, że sentyment listów Warren’a Buffet’a jest w dużym stopniu skorelowany z wynikami jakie osiągał indeks S&P i Berkshire Hathaway w poprzednim roku. Im wyższe były wyniki osiągane przez amerykańską giełdę i jej indeks, tym bardziej pozytywny był wydźwięk listów Warren’a Buffet’a.

Im gorsza była sytuacja na rynku, tym niższy sentyment miały list. Była widoczna ewidentna zależność pomiędzy wahaniami kursów, a sentymentem poszczególnych listów. Jeśli chodzi o przyszłość to niestety, ale nie udało mi się potwierdzić żadnej hipotezy. Jeśli chodzi o podejście stricte statystyczne to żadna z hipotez dotyczących przyszłość nie jest istotna.

To wynika z kilku rzeczy. Po pierwsze, dysponowałem relatywnie niewielką próbą, badałem tym listy z ostatnich 40 lat, które są opublikowane na stronie Berkshire Hathaway. Druga jest taka, że nawet jeżeli występują odniesienia do przyszłości to nie jest ich dużo. W tych listach raczej dominuje mówienie o przeszłości, bardzo dużo jest tam porównań do wyników osiąganych przez Berkshire Hathaway i S&P. Warren Buffet lubi szczycić się tym, że w zasadzie bije rynek w każdym roku.

Jakby było inaczej, tak naprawdę każdy mógłby zostać teraz inwestorem. Wystarczyłoby poczytać listy, żeby wiedzieć co zrobić – życie byłoby zbyt proste. Zadam jeszcze kilka praktycznych pytań związanych bardziej z wejściem do tematu uczenia maszynowego.

Teraz jest bardzo dużo materiału jeśli o to chodzi: książki, prezentacje, kursy, konferencje. Z drugiej strony, nadal istnieje głód na specjalistów, którzy potrafią używać uczenia maszynowego w praktyce. Na podstawie Twoich obserwacji, co jest ważne,? Jak zdobyć doświadczenie, żeby stać się specjalistą od uczenia maszynowego?

To pewnie zależy, jeżeli ktoś chciałby zostać osobą, która nosi tytuł Data Scientist to musi posiadać różne umiejętności. Sama umiejętność programowania i rozumienia algorytmów uczenia maszynowego, tego czym jest sztuczna inteligencja i jak to zastosować w praktyce – to w zasadzie nie wystarcza. Duża część mojej pracy to są rozmowy z klientem, rozumienie go i jego biznesu, a także jak uczenie maszynowe wpisuje się w to na czym ta osoba zarabia.

Robienie sztuki dla sztuki w zasadzie nie wchodzi w grę. Musimy rozwiązywać realne problemy, które przynoszą realną wartość biznesową. Samo uczenie się tylko technicznych umiejętności to zdecydowanie za mało. W mojej ocenie, umiejętności miękkie są szalenie istotne. Aczkolwiek z drugiej strony widzę, że nie można zupełnie odpuścić umiejętności mocno technicznych.

Spotykam się na różnych znanych stronach, blogach z podejściem, że w zasadzie matematyka i statystyka niskopoziomowa, nie jest do końca potrzebna. Dzisiaj mamy takie narzędzia, które na dość wysokim poziomie mogą zaimplementować dany algorytm i uzyskać bardzo dobre wyniki. W zasadzie jest to prawdą, natomiast schody zaczynają się nieco później, gdy trzeba ten algorytm np. dostosować do potrzeb klienta. Gdzie rzeczywiście musisz go zrozumieć, żeby zoptymalizować jego parametry.

Jeżeli nie wiesz jak on działa, jakie są parametry danego algorytmu i co one oznaczają, do czego się odnoszą, to bardzo ciężko będzie wnieść jakiekolwiek poprawki, które znacząco będą ten wynik poprawiać. Dlatego uważam, że podejście nieco bardziej matematyczno-statystyczne jest szalenie istotne i tego absolutnie nie można odpuszczać. Wręcz widzę przewagę wśród osób, które rzeczywiście rozumieją te tematy od podszewki.

A jeżeli chodzi o wyzwania w uczeniu maszynowym? Jakie są w Twojej opinii największe wyzwania?

Jeśli miałbym wybrać jedno, to takim największym wyzwaniem jest przygotowanie danych. Idźmy nawet krok wcześniej, zebranie odpowiedniej ilości danych o odpowiedniej jakości. Wiele firm nie inwestuje odpowiednio dużo pieniędzy w dane. Bądź nie zbierają na tym etapie danych, które w przyszłości być może okażą się dla nich przydatne – co uważam oczywiście za kluczowe.

Bez odpowiedniej ilości danych, objętości tego zbioru i jakości w zasadzie najlepsi specjaliści o największej wiedzy niewiele będą w stanie z tymi danymi zrobić. Drugim wyzwaniem w uczeniu maszynowym i szeroko pojętym Data Science jest przygotowanie tych danych. Z mojego doświadczenia wynika, że zajmuje to jakieś 70-80% trwania projektu. Mówiąc odpowiednie przygotowanie danych mam na myśli pobranie ich z różnych źródeł, zintegrowanie, próbkowanie tych danych – kompleksowe przygotowanie do tego co wiele osób rozumie jako uczenie maszynowe, czyli użycie konkretnego algorytmu.

Ostatnie pytanie na dziś – jak osoby, które chciałby się z Tobą skontaktować mogą odnaleźć Cię w sieci?

W sieci można mnie znaleźć na moim blogu, czyli mateuszgrzyb.pl i w zasadzie to chyba tyle. Na mediach społecznościowych jestem raczej nieaktywny, na Facebooku jestem bardzo rzadko, najprostszą metodą komunikacji ze mną jest mój blog i zakładka kontakt.

Dziękuję Ci bardzo Mateuszu za Twój czas, Twoją energię i za chęć podzielenia się wiedzą. Dzięki!

Dzięki!


Mam dla Ciebie dobrą wiadomość. Mateusz przygotował prezent “10 kroków do lepszego rozumienia danych”. Jak go dostać? Wystarczy zapisać się na newsletter:

Jeśli już tam jesteś, to prezent znajduje się już na twojej skrzynce pocztowej. Aha, wysyłam wiadomości wtedy, jak mam coś ciekawego do powiedzenia 🙂

10 kroków do lepszego rozumienia danych
10 kroków do lepszego rozumienia danych

Jeszcze chcę wspomnieć o trzech wydarzeniach.

Pierwszego marca będę w Białymstoku, gdzie pojawiła się świeżo upieczona filia grupy “AI meetup”. Będę miał okazję zrobić wprowadzenie do tematu sztucznej inteligencji – jeśli będziesz w tym czasie w Białymstoku to serdecznie Cię zapraszam.

Druga konferencja to VI edycja Polish Business Analytics Summit, które odbędzie się 21 marca w Warszawie. Zostaną tam poruszone tematy, takie jak Data Science, uczenie maszynowe, zaawansowana analityka biznesowa itd. Również będę miał tam swoją prezentację, gdzie postaram się odpowiedzieć na pytanie “Deep Learning w biznesie, czy to działa?”. Swoją drogą, zapytałem o zniżkę dla Ciebie i jest możliwość otrzymania – 10%. Skontaktuj się ze mną, to połączę Cię z organizatorami.

Trzeci warsztat zorganizowany wspólnie z j-labsMachine Learning & AI Świat zmienia się szybciej niż myślisz. To będzie całodniowy warsztat, gdzie od 9:00 do 16:00 będę dzielić się swoimi przemyśleniami w obszarze sztucznej inteligencji w biznesie.

Na początek poruszę tematy wizjonerskie (co już się dzieje i czego możemy spodziewać się w najbliższym czasie). Następnie przez godzinę będę opowiadał o zastosowaniach w biznesie (i to dość różnych przypadkach).

Kolejna godzina, to czas na zrozumienie jak wygląda proces uczenia maszynowego (myślę, że warto uwzględnić również techniczne aspekty, bo to bardziej uświadamia o co w tym chodzi, oczywiście będzie to wyjaśnione prostym językiem). Następnie, poruszę temat Deep Learning i postaram się odpowiedzieć na pytanie: czy to działa? Jeśli tak, to w których obszarach?

Spotkanie odbędzie się 22 marca w Warszawie. Szczególnie zapraszam osoby decyzyjne, które chcą lepiej wyczuć temat uczenia maszynowego i zobaczyć więcej przykładów. Dobra wiadomość, j-labs wzięli na siebie wszystkie koszty organizacyjne i to dlatego wejście jest bezpłatne, ale obawiam się, że chętnych będzie więcej niż wolnych miejsc. Zapisy ruszają dzisiaj (26 lutego), dlatego warto się pospieszyć. Natomiast, jeśli już nie będzie wolnych miejsc, a bardzo chcesz tam być, to skontaktuj się ze mną, na ile to możliwe postaram się pomóc.

Również dzisiaj, 26 lutego rusza kurs – “Praktyczne uczenie maszynowe dla programistów”. To już druga edycja. Jeśli nadal chcesz dołączyć, postaraj się zrobić to dzisiaj, później już będzie ciężko. Zapisało się sporo osób i trzymam kciuki, żeby udało się osiągnąć cel… i tak jak poprzednio, postaram się podzielić się doświadczeniem jak poszło.

W następnym odcinku będzie o dość aktualnym temacie – autonomiczne samochody. Dowiesz się więcej, jak wygląda ich rozwój? Oraz czy Twoje dzieci będą musiały mieć prawo jazdy? Na razie zdradzę tylko tyle.

Tyle na dzisiaj, dziękuję Ci bardzo za to, że jesteś i czytasz. Za Twój czas, Twoją energię i uwagę. Życzę Cię wszystkiego dobrego.

Od 2013 roku zacząłem pracować z uczeniem maszynowym (od strony praktycznej). W 2015 założyłem inicjatywę DataWorkshop. Pomagać ludziom zaczać stosować uczenie maszynow w praktyce. W 2017 zacząłem nagrywać podcast BiznesMyśli. Jestem perfekcjonistą w sercu i pragmatykiem z nawyku. Lubię podróżować.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *