Natural Language Processing,  Podcast

Przypadki użycia NLP w biznesie

Poprzedni odcinek nagrałem o przetwarzaniu języka naturalnego. Przygotowałem więcej materiału niż na jeden odcinek, a więc dzisiaj będzie kontynuacja tego tematu. 

Zacznijmy od ogłoszenia. Ostatni dzwonek – 28 września odbędzie się konferencja z uczenia maszynowego w Warszawie. Poświęciliśmy dużo energii, żeby to spotkanie było bardzo wartościowe i wyróżniające się na tle innych. 

Zrezygnowaliśmy w 100% z prezentacji będących wynikiem umów ze sponsorami, ponieważ naszym zdaniem to bardzo obniża poziom merytoryczny spotkania. Prezentacje będą trwały 30 min i skupiają się tylko na treści merytorycznej. Ponadto odbędzie się efektywny networking, w tym celu wymyśliliśmy tak zwany Game Networking.

Stworzyliśmy przestrzeń na dyskusje, gdzie np. będzie poruszony temat “Jak zbudować efektywny zespół specjalistów od uczenia maszynowego?” oraz “Jakich błędów unikać na produkcji, czyli development kontra produkcja w projektach z uczeniem maszynowym w roli głównej?”. Będzie także strefa sztuki, łączymy uczenie maszynowe ze sztuką na konferencji w takim wydaniu jako pierwsi w Polsce. Bo obecnie sztuka także “challenguje” technologię!

Dostarczymy także wartość w formacie pisanym – publikację pokonferencyjna, którą dostaną wszyscy uczestnicy. Jaki problem to rozwiązuje? Jeśli w ciągu prelekcji prelegenci zaczynają dodawać wzory matematyczne lub rozdrabniać się na szczegóły, to wtedy uczestnik konferencji czuje się przeładowany informacjami. Znacznie efektywniej będzie w trakcie 30 minutowej prezentacji skupić się na koncepcyjnym rozwiązaniu.

Następnie dodatkowo udostępnić w formie pisemnej szczegółowe informacje. W naszym przypadku to będzie plik pdf. Każdy prelegent dostał wytyczne, aby  przygotować 2-5 stron gdzie umieści wszystkie szczegółowe informacje (takie jak wzory matematyczne, linki na biblioteki, wykresy, publikacje, które go zainspirowały czy kod na githubie).

To wszystko odbędzie się 28 września! 

Ale czy to wszystko? Nie bylibyśmy sobą, gdybyśmy nie dorzucili jeszcze czegoś 😉  W pełnej gotowości do dzielenia się wiedzą jesteśmy już dzień wcześniej. Zaczniemy od praktycznej rozgrzewki już w piątek, 27 września. Tego dnia odbędą się dwa wydarzenia. Pierwsze to  zlot absolwentów. Przez cały dzień moi Absolwenci będą opowiadać o tym, co wydarzyło się w ich życiu po kursie online “praktyczne uczenie maszynowe od podstaw”. Wszyscy w  jakimś stopniu zajmują się zawodowo uczeniem maszynowym. Bardzo mnie to cieszy, że kurs w tym przypadku był ziarenkiem, które trafiło na właściwy grunt i pomogło w jakiś sposób trafić na tę ścieżkę (oczywiście to był jeden z wielu czynników), z tego jest dumny. Jako prelegenci na Alumni Day pojawią się także goście specjalni, którzy zawodowo zajmują się uczeniem maszynowym od kilku lat i podzielą się inną perspektywą i wskazówkami, jak efektywnie zacząć działać w tym temacie. 

To spotkanie jest eksperymentem i traktuję je jako jako kolejny akcelerator w osiąganiu celu przez moich absolwentów. Swoją drogą kurs “praktyczne uczenie maszynowe od podstaw” jest czymś więcej niż tylko kursem… Mówię tak, ponieważ po kursie nadal wiele się dzieje. Traktuję absolwentów wyjątkowo, na przykład każdy absolwent dostaje zniżkę 50% na konferencje i dodatkowo jako prezent wstęp na całodzienne spotkanie absolwentów dzień wcześniej.  Przy tych wszystkich kosztach konferencji, to oznacza że muszę dopłacać, aby tak się stało, ale robię to świadomie, bo ufam, że w tym jest wartość dla absolwentów. O ile zdążysz kupić kurs przed konferencją, to możesz dołączyć do tego grona na podobnych warunkach.

Drugie wydarzenie, które także odbędzie się 27 września (w piątek), dzień przed głównym wydarzeniem to warsztat, który poprowadzi Łukasz Prokulski. Celem tego warsztatu jest pokazać, jak podejmować trafne decyzje w e-commerce. W trakcie warsztatu dowiesz się, jak analizować dane, robić wykresy, następnie użyć zdobytej wiedzy w uczeniu maszynowym do prognozowania wartości klienta w czasie. Warsztat będzie opierał się na prawdziwych danych (w tym przypadku z Google Analytics).

Jeśli zajmujesz się e-commerce i/lub tematy związane z marketingiem oraz sprzedażą są Ci bliskie, to warto pojawić się na tym warsztacie i zdobyć konkretne umiejętności. 

Jeśli jednak 27 lub 28 września ciężko wybrać Ci się do Warszawy, bo masz inne plany. To wtedy warto rozważyć udział w konferencji online. Znów podkreślę, że to więcej niż tylko transmisja online. Będzie możliwość zobaczenia wszystkich prelekcji online oczywiście, ale również dostaniesz wszystkie nagrania po konferencji (będą dostępne co najmniej przez rok), udostępnione będą także prezentacje prelegentów oraz pisemne podsumowania (o których wspominałem wcześniej). Dobra wiadomość dla Ciebie jest taka, że wciąż dostępna jest zniżka 50%: BM_CONF_ONLINE50).

Przygotowanie całości zajęło nam ponad pół roku intensywnej pracy. W tej chwili jeszcze nie wiem, czy będzie trzecia edycja, bo organizacja takiego wydarzenia pochłania dużo energii.  Podchodzimy do tego tematu nieco inaczej niż zwykle się podchodzi, taką przynajmniej mam obserwację. Na kilku konferencjach byłem 😉 Trzymam kciuki, żeby udało się dostarczyć Ci tak dużo wartości, aby  inspiracja na kontynuowanie tej przygody przyszła sama.

Zapraszam i do zobaczenia.


Sentiment Analysis

Analiza sentymentu jest zadaniem, które skupia się na emocjach. Klasyczny przykład zastosowań to analiza tego, co mówią klienci o danej marce. Sprawdzenie, czy kontekst wypowiedzi jest negatywny czy pozytywny? Dodatkowo przydaje się do lokalnego monitorowania. np. pojawia się nowy produkt, możesz sprawdzić, jak jest odebrany. Inny przykład to wykrywanie anomalii. Jeśli nagle pojawiło się dużo negatywnych opinii, to warto zainteresować się tym. Zwykle oznacza to, że coś się zepsuło i warto to szybko naprawić.

Z technicznego punktu widzenia analiza sentymentu jest zwykłą klasyfikacją, czyli wynikiem jest odpowiedź na pytanie: “treść jest negatywna czy pozytywna?”. Czasem dodaje się więcej kategorii, treść może być np. neutralna itd.

Definicja czym jest pozytywna odpowiedź może być różna. Już podaję Ci przykład. Byłem w zespole, w którym tworzyło się analizę sentymentów w innym kontekście. Rozwiązanie było dedykowane zespołowi sprzedaży, który wysyła dziennie dużo ofert i dostaje również dużo odpowiedzi. Przejrzenie wszystkich odpowiedzi zajmuje sporo czasu, natomiast część z nich wymaga szybkiej reakcji. Potrzebny był filtr, który pomoże reagować na takie słowa, które potrzebują jak najszybszej reakcji. Przykład: jeśli klient już wysłał fakturę i podziękował, można odpowiedzieć mu trochę później. Natomiast w sytuacji, kiedy klient rozważa konkurencyjne rozwiązanie, waha się lub po prostu potrzebuje natychmiastowej pomocy  w podjęciu decyzji, należy odezwać się do niego jak najszybciej.

Spelling Corrector

To zadanie polega na zaznaczaniu błędów w tekście pisanym. Jest słynny serwis o nazwie grammarly. Bardzo dużo wydają na reklamę, więc pewnie kojarzysz. Swoją drogą ten produkt jest rozwijany na Ukrainie. Chociaż founderzy (i cała sprzedaż) jest oczywiście zlokalizowana w San Francisco. Mówię to dlatego, że podobnie jak Polska, tak i Ukraina staje się kopalnią talentów do pracy w AI. W tych miejscach jest sporo ludzi, którzy mają dobre predyspozycje do nauk ścisłych, ale rynek zbytu zwykle jest w Stanach.

Powiem Ci ciekawostkę, o której być może nie wiesz. W Polsce zrodził się pomysł realizacji podobnego projektu, tylko dla języka polskiego. Nazywa się to GoodWrite. Liderem tego projektu jest Krzysztof Sopyła, który w zeszłym roku był prelegentem na konferencji DWCC. W tym roku też będzie na konferencji, więc będzie można go dopytać o postępy, bo już wyglądają całkiem ciekawie. Wiem,  że mają ambicje osiągnąć poziom porównywalny z jakością do grammarly, więc poprzeczka stoi dość wysoko. Trzymam kciuki, żeby udało się 🙂

Entity (Person, Place, Brand etc ) Recognition

W świecie prawników pojawia się dużo tekstów o skomplikowanej treści, którą należy uważnie analizować i regularnie czytać, aby być na bieżąco. Często problem w tej sytuacji polega na tym, aby wziąć konkretny dokument, np. umowę handlową. W tej umowie należy znaleźć z kim jest zawarta, kiedy, na jakich warunkach itd. To wszystko oznacza, że z całej treści należy wychwycić konkretne kawałki tekstu i stwierdzić kto jest kim, co jest czym. np. Jan Kowalski czy Adam Nowak to człowiek, natomiast “Allegro” to firma, a “31 grudnia 2019” to data.

To co opisałem wyżej w języku angielskim nazywa się entity recognition (ER). ER między innymi są bardzo potrzebne w obszarach prawno-sądowniczych, ale ostatnio też jest duży popyt na ER przy tworzeniu botów. W szczególności to dotyczy obszaru Natural Language Understanding (NLU), czyli obszaru odpowiedzialnego za zrozumieniu tekstu. 

Text Summarization

Automatyczna sumaryzacja to zadanie, które polega na streszczaniu. Przydaje się wtedy, kiedy bierzesz raport, który składa się ze 100 lub więcej stron i chcesz wiedzieć, o co tam chodzi, tak zwane executive summary. Robienie tego w sposób automatyczny potrafi bardzo zaoszczędzić czas. 

Są dwa rodzaje algorytmów, które to umożliwiają. Pierwszy i łatwiejszy polega na tym, że znajduje się zdania, które są najważniejsze. Drugie podejście (trudniejsze) polega na tym, żeby zrozumieć, o co w tym dokumencie chodzi, aby następnie wygenerować streszczenie. Ta treść jest generowana, nie kopiowana wprost z tekstu.  Są pewne postępy w tym obszarze np. można przeczytać opracowanie od SalesForce. To nawet zaczyna działać, co prawda póki co dla języka angielskiego.

Jest jeszcze wiele innych zastosowań NLP, np. text similarity (czyli wykrywanie podobnych kawałków tekstu), dokument ranking (bardzo pomocne dla wyszukiwarek) lub fake news detection (czyli wykrywanie fake newsów, których jest coraz więcej). W każdym z wymienionych zadań bardzo dobrze sprawdza się rozwiązania oparte na pomyśle word2vec.

Podam Ci jeszcze kilka przykładów związanych z NLP mniej standardowych. Omówię je bardziej szczegółowo. 

W lipcu 2019 roku byłem na konferencji w Berlinie poświęconej NLP. Opowiem Ci o jednym z przypadków użycia, który raczej jest dość mniej oczywisty, ale może okazać się pomocny.

Zapraszam też do obejrzenia wystąpienia Patricka, który pracuje w S&P Global – technologiczna firma, która udostępnia dane finansowe. Firma działa w bardzo świadomy sposób inwestując duże zasoby na przygotowanie danych w odpowiedni sposób. Te dane są używane przez różne instytucji finansowe, urzędy i inne. Wszyscy mają wspólny cel – potrzebują dostępu do właściwych danych po to, aby podjąć właściwe decyzje.

Skąd biorą się dane? Z wielu różnych zewnętrznych źródeł, są to także dane publiczne dostępne powszechnie  np. regularne raporty firm publicznych.

Jakie jest wyzwanie? Jest ich sporo. Dane, które są zbierane dość często mają niejednolitą strukturę, jakość, sposób i częstotliwość udostępnienia. Często wyzwaniem jest także odnaleźć interesujące kawałki informacji. W dokumentach, w których jest narzucona prawnie jakaś struktura, wymogi dotyczące zawartości treści np. raporty spółek akcyjnych itp. łatwiej da się przeprocesować tekst i ostatecznie ustrukturyzować. Trudniej jest wtedy, kiedy pojawiają się dane ESG (skrót od E -Environment, S – Social, G- governance). To są bardzo zróżnicowane informacje, zaczynając od globalnego ocieplenia klimatu, bezpieczeństwa i wielu innych.

Tego typu dane nie mają wyraźnej struktury, w praktyce wygląda to tak, że ktoś z jednej firmy to umieści w tabelce na początku, inna firma zdecyduje się to opisać słowami w różnych częściach pliku jako tekst, a trzecia firma po prostu może dodać grafikę. 

W skrócie omawiane rozwiązanie działa tak: bierze się dokument np. plik pdf, następnie “wyciąga” się z niego zdania i potem już operuje się na poziomie zdań, kolejnym krokiem jest multi-label klasyfikacja. W praktyce oznacza to, że bierze się konkretne zdanie i stawia pytanie, czy w tym zadaniu jest zawarta poszukiwana informacja. Multi-label wybieramy dlatego, ponieważ jedno zdanie może świadczyć więcej niż tylko o jednym parametrze.

Ciekawostką jest to, że  S&P Global bardzo dba o jakość danych. Patrick w swojej prelekcji powiedział tak: “jeśli znajdziesz przypadek, gdzie są braki w danych lub dane są nieprawidłowe, to S&P Global zapłaci za to 50 dolarów”. Tutaj są dwie opcje: otworzyła się furtka na biznes i już możesz dalej nie słuchać albo poczekaj chwilę i wtedy przychodzi myśl “a co jeśli faktycznie to robią dobrze”.

Oszustwa w medycynie

Teraz będzie historia z życia wzięta,  sprawa dotyczy firmy ubezpieczeniowej Allianz. W tym przypadku chodziło o oddział w Rosji. Skala jest następująca: ok. 6 mln usług oraz 3,5 tys. szpitali w całej Rosji. 

Problem który tu występuje jest taki, że szpitale mają tendencję do nadużywania i wpisywania usług, które pokrywa firma ubezpieczeniowa chociaż zgodnie z umową  nie powinna tego robić. Firma ubezpieczeniowa szacuje, że takie nadużycie generują nawet ok. 10-15% wszystkich kosztów. To jest zdecydowanie za dużo, żeby ignorować taki problem.

Jak wygląda przykład nadużycia?

  • Nadmierna ilość usług np. 10 seansów masaży w przeciągu 2 miesięcy
  • Dublowanie tych samych usług
  • Usługi, które nie powinny być wykonane dla danej choroby
  • Droższe analizy (których firma ubezpieczeniowa zgodnie z umową nie pokrywa)

Postaram się to wyjaśnić jeszcze dokładniej.

Przychodzi człowiek z bólem pleców.  Problem jest na tyle prosty, że wystarczy nieskomplikowana terapia i po problemie. Można też podejść do sprawy inaczej, skomplikować ją jak tylko się da  i odesłać pacjenta do kilku specjalistów. W wyniku tego generuje się spore koszty, które firma ubezpieczeniowa ma pokryć…

Tutaj warto zatrzymać się na chwilę i popatrzeć na to zadanie z drugiej strony. Firma ubezpieczeniowa w tym przypadku zrobi wszystko, żeby zminimalizować liczbę usług. Wtedy mniej zapłaci, ale to wcale nie oznacza, że to jest na korzyść klienta. To jest osobny wątek. Teraz skupiamy się jednak na przypadkach oszustwa, kiedy zakładamy, że firma ubezpieczeniowa jest uczciwa (przynajmniej w teorii), a szpitale nadużywają tego.

Wdrażanie rozwiązania wykrywania oszustw składało się z  kilku etapów i zajęło kilka lat.

  1. Wykrywa się anomalie (np. na podstawie wartości średnich).  Następnie już ekspert analizuje dokumentację i wykrywa oszustwa. Problem z tym podejściem jest taki, że przekręty występują regularnie. Wystarczy, że codziennie pojawi się kilka nadwyżkowych usług, wtedy średnia zachowuje się stabilnie i nie wychwytuje żadnych anomalii. 
  2. Kolejne podejście to implementacje bardzo zaawansowanego programu, przygotowanego przez ekspertów, którzy próbują przewidzieć wszystkie możliwe przypadki. Na przykład jeśli jest usługa A, to może być usługa B, ale nie powinno być usługi C. Problem w tym podejściu jest taki, że ilość kombinacji jest zbyt duża, żeby uwzględnić nawet większość. Warto zaznaczyć, że oprócz tego, że tworzenie takich reguł jest bardzo czasochłonne i wymaga zaangażowania ekspertów (czyli osób, których godzina pracy dużo kosztuje), oprócz tego w tym podejściu zawsze jest punkt X, kiedy program staje się tak skomplikowany, że dalszy jego rozwój staje się nierealny.
  3. Kolejne podejście to przejście do uczenia maszynowego. Tutaj od razu pojawia się szereg wartości dodanych. Można analizować wszystkie rachunki, brać pod uwagę wiele czynników na raz, w szczególności jeśli chodzi o zależności nieliniowe. Kolejnym plusem jest szybkie działanie. Można przeprowadzać szereg eksperymentów.  Pojawiają się też kolejne wyzwania. Jakość danych z różnych źródeł często jest bardzo zła, jest dużo historycznych decyzji i wiele innych trudności. Dodatkowym wyzwaniem z punktu widzenia firmy są potrzebne nowe kompetencje w zespole, czyli specjaliści od uczenia maszynowego.

Czy opłaciło się zaimplementować uczenie maszynowe? W tym przypadku to jest tak, że nie ma niczego lepszego. Mimo tego, że nadal jest dużo wyzwań, a samo rozwiązanie ML także generuje koszty, to jednak ostatecznie to narzędzie umożliwia firmie działać efektywniej. Dodam, że eksperci nadal są potrzebni do analizy przypadków, ale bardziej jako ludzie, a nie jako maszyny. Innymi słowy  maszyna jest w pewnym sensie filtrem i wyszukuje najbardziej podejrzliwe przypadki, dzięki czemu minimalizuje ich ilość i wtedy ekspert na spokojnie może dokładnie sprawdzić je wszystkie i stwierdzić, gdzie były problemy.

To co zaobserwowałem w trakcie mego doświadczenia i po rozmowach z ludźmi, którzy wdrażają uczenie maszynowe, to są to często podobne rozwiązania, które również zmieniają proces biznesu. Podam Ci przykład. Wcześniej firma ubezpieczeniowa analizowała dane post-factum, to było dość uciążliwe, bo sprawy już wydarzyły się. Teraz może analizować na bieżąco i przed uregulowaniem kosztów, podaje konkretne przypadku usług, za które zgodnie z umową nie będzie płacić. Od razu zmieniają się reguły gry, bo ktoś musi za to zapłacić… Szpitalowi już nie opłaca się kombinować w ten sposób.

Podsumujmy.

  1. Przetwarzanie języka naturalnego (NLP) może być bardzo pomocnym narzędziem między innymi w biznesie. 
  2. NLP już działa całkiem dobrze, w szczególności dla języka angielskiego. Z językiem polskim są pewne trudności.
  3. Następuje zmiana paradygmatu. Istnieją dobre open-source biblioteki, które umożliwiają pracę  z NLP, czyli nie musisz kupować drogiego oprogramowania. Nawet open-source dość często jest lepszy, bo szybko adaptuje się pod nowe osiągnięcia, których ostatnio jest dość dużo.

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 *