Wraz ze zwiększeniem się dostępności oraz elastyczności skalowania mocy obliczeniowych, osiągalnych przede wszystkim dzięki rozwiązaniom chmurowym, rozwinęły się również algorytmy uczenia maszynowego (Machine Learning – ML). Przy dzisiejszych zasobach sprzętowych, złożoność algorytmów nie stanowi już problemu. Zauważamy, że stale powstają coraz to nowsze i bardziej zaawansowane wersje, zdolne odkrywać i odtwarzać w danych bardzo skomplikowane wzorce. Dostępność takiego wachlarza metod powoduje, że często odruchowo sięgamy po te bardziej zaawansowane propozycje, intuicyjnie czując, że będą one skuteczniejsze od ich prostszych alternatyw. Ponadto, zastosowanie bardziej zaawansowanej metody niesie równie silny wydźwięk marketingowy. Czy warto więc inwestować w zaawansowane algorytmy ML?
Nasze doświadczenia pokazują, że szczególnie w przypadku zastosowań biznesowych wybór algorytmu jest tak naprawdę kwestią wtórną. Często ta decyzja nie ma większego znaczenia, jeżeli nie zadbamy o inne kluczowe kwestie, bez których nie może się obejść żaden realizowany poprawnie projekt Data Science. Poniżej przytaczamy najważniejsze z nich, bez których prowadzenie dyskusji o doborze algorytmu modelowania nie ma większego sensu.
Początek leży gdzie indziej
Podstawą działania wszelkich algorytmów ML były – i zawsze będą – dane. Wokół samych danych mamy do zapewnienia wiele aspektów, takich jak ich dostępność, jakość czy długość historii do analizy. Jeżeli np. zabieramy się do analizy i prognozowania trendów sprzedażowych, absolutnym minimum dla Data Scientistów będzie dwuletnia historia, pozwalająca na wychwycenie i wykluczenie chociażby efektów sezonowych. Tak naprawdę, aby móc wykonać to ćwiczenie dostatecznie precyzyjnie, powinniśmy dysponować historią z 3–5 lat. Wówczas, oprócz zjawisk cyklicznych jesteśmy w stanie wychwycić również różnego rodzaju anomalie, jak chociażby efekt ostatniej pandemii, która niewątpliwie miała kluczowy wpływ na sprzedaż w wielu branżach. Jeszcze bardziej ekstremalne wymagania posiada sama teoria, u podłoża której budowane są algorytmy ML – mówi się o próbkach danych, liczących przynajmniej tysiąc obserwacji.
Równie ważnym, a często bagatelizowanym aspektem jest dostępność historycznych obserwacji dla zmiennej objaśnianej, w przypadku tzw. modelowania pod nadzorem. Typowym przykładem jest modelowanie ryzyka wystąpienia nadużycia (Fraud Detection). Aby móc nauczyć model dobrze rozpoznawać podejrzane przypadki, musimy dysponować istotną liczbą przykładów wykrytych nadużyć z przeszłości, a to zazwyczaj do momentu wdrożenia modelu jest wykonywane ręcznie, więc skala wykrywalności jest niewielka. Istnieją oczywiście metody statystyczne radzenia sobie z tym problemem, ale przy zbyt dużej dysproporcji wartości zmiennej objaśnianej lub przy zwyczajnie zbyt małej liczbie obserwacji w próbie uczącej, żaden model nie będzie w stanie osiągnąć rozsądnej skuteczności.
Warto wspomnieć też o często zaniedbywanym problemie, który potrafi spędzać sen z powiek Data Scientistom – wykorzystywanie danych niewystandaryzowanych. Klasycznym przykładem są tutaj dane adresowe, które zazwyczaj są zbierane jako deklaratywne, a potrafią przybierać przeróżne formy oraz zawierać błędy i literówki. Jeszcze do niedawna doprowadzenie do porządku takiej bazy adresowej pochłaniało sporo czasu i zasobów projektowych. W ostatnim czasie powstało jednak sporo rozwiązań, oferujących tzw. funkcjonalność „geokodowania”, czyli przetłumaczenia podanego adresu na współrzędne geograficzne, do których w łatwy sposób można dołączyć szereg zmiennych charakteryzujących potencjał danej lokalizacji. Usługi te są również często wyposażone w algorytmy AI, które w automatyczny sposób poprawiają literówki, czy nawet potrafią uwzględnić ostatnie administracyjne zmiany nazw ulic. Są one jednocześnie dość kosztowne, ale pozwalają zaoszczędzić sporo cennego projektowego czasu, a wartość płynąca z dołączenia zewnętrznych danych o potencjale lokalizacji ma zazwyczaj bardzo istotny wpływ na jakość budowanego modelu.
Wszystkie powyższe aspekty mają kluczowe znaczenie dla procesu budowania modeli ML, a zaniedbanie któregokolwiek z nich sprawi, że nawet najbardziej zaawansowany algorytm nie przyniesie zbyt wiele pożytku. Jeżeli jednak czujemy, że kwestie te zostały prawidłowo zaadresowane, możemy faktycznie pokusić się o dalsze rozważania wokół wyboru odpowiedniego algorytmu.
Czas jednak coś wybrać
„Nie należy lekceważyć prostych metod” – te słowa, wypowiedziane przez jednego z profesorów specjalizującego się w zagadnieniach ML, przyświecają mi przez całą moją karierę Data Scientista. Rzeczywiście, dość zaskakujące jest to, jak dużo z zamierzonego celu można osiągnąć, wykorzystując algorytmy uważane powszechnie za bardziej „tradycyjne”, jak np. modele regresji czy drzewa decyzyjne. Znajdują one zastosowanie przy rozwiązywaniu wielu popularnych problemów biznesowych, przynosząc takie korzyści, jak szybkość estymacji, czy przejrzystość i łatwość interpretacji, która często jest niemniej ważna niż jakość prognostyczna modelu. Jeżeli zresztą rozważa się przetestowanie bardziej złożonych algorytmów, warto zacząć od tych „podstawowych”, gdyż pozwalają one na wstępne rozeznanie, jakie zależności istnieją w dostępnych danych i na co przede wszystkim warto zwrócić uwagę, sięgając po modele bardziej złożone. Doświadczenie pokazuje również, że nawet w sytuacjach modelowania bardziej złożonych przypadków, np. silniki rekomendacyjne czy automatyzacje decyzji (Intelligent Automation), w pełni zadowalającą skuteczność modelu można otrzymać ze złożenia ze sobą kilku prostszych modeli składowych, bez konieczności angażowania bardzo skomplikowanych sieci neuronowych, nad którymi zwykle trudniej jest zapanować.
Oczywiście istnieje też spora grupa zagadnień biznesowych, które trudno rozgryźć bez angażowania algorytmów złożonych. Są to wszelkiego rodzaju problemy, gdzie modelowane zjawisko jest skomplikowane lub zależy od bardzo dużej liczby zmiennych objaśniających, między którymi pojawiają się nieliniowe interakcje. Przykładami mogą być wszelkiego rodzaju problemy kognitywistyczne, czyli rozpoznawanie obrazu, mowy, analiza tekstu (Natural Language Processing), czy też złożone systemy rekomendacyjne, rozpatrujące upodobania klientów na podstawie dziesiątek tysięcy cech produktów. W tego typu przypadkach, kluczowy jest efekt działania modelu, czyli jego prognoza/rekomendacja, a sam sposób jej wyliczenia możemy w pełni powierzyć algorytmowi, przyzwalając mu przy tym na znaczną rozbudowę struktury matematycznej modelu. Sięganie więc po narzędzia typu sieci neuronowe, XGBoost czy Elastic Net jest jak najbardziej uzasadnione. Często popełnianym błędem jest natomiast stosowanie tego typu algorytmów do zbyt prostych problemów, ponieważ w najlepszym przypadku doprowadzą one do bardzo podobnych rezultatów, przy jednoczesnym dużym ryzyku wyciągnięcia wniosków zupełnie błędnych, z powodu chociażby przeuczenia modelu. Przykładem takiego zjawiska może być jeden z projektów, który dotyczył dostarczenia silnika rekomendacyjnego dla branży e-commerce. Z powodu spodziewanej złożoności problemu, pierwszym pomysłem było zastosowanie modelu grafowego, który tworzyłby połączenia klient-produkt, polecając produkty innym klientom. Okazało się jednak, że taki model nie dostarczał wcale dobrych predykcji, wręcz przeciwnie, wygranym okazał się o wiele prostszy model dekompozycji macierzy, który lepiej rozpoznawał wcale nie tak bardzo skomplikowane zależności w danych. Warto dodać, że jest to przykład projektu, w którym bez dobrego przygotowania danych ani rusz.
Każde zagadnienie Data Science niesie wiele wyzwań, których odpowiednie zaadresowanie jest warunkiem koniecznym powodzenia całego przedsięwzięcia. Jeżeli prawidłowo przygotujemy bogaty zakres danych, a proces modelowania odbywać się będzie ze wsparciem osób kontrolujących jego sens biznesowy, mamy duże szanse na odniesienie biznesowego sukcesu, o który przecież chodzi. Sam dobór algorytmu ML ma znaczenie, ale z perspektywy osiągnięcia sukcesu nie jest on najważniejszy. W przypadku zastosowań biznesowych warto więc pamiętać, że sława nowoczesnych i złożonych algorytmów ML nie zapewni nam sukcesu, jeżeli wcześniej skrupulatnie nie postaramy się o dopełnienie wszelkich „przyziemnych”, ale kluczowych wymagań.