Machine Learningu we wdrożeniach chatbotów

W mediach dominują informacje dotyczące wykorzystania Machine Learningu we wspomaganiu wdrożeń wszelkich systemów informatycznych. Wydaje się, że Machine Learning okazał się dobrem na całe zło tradycyjnych wdrożeń i że dzięki niemu można znacznie przyspieszyć implementacje oraz zwiększyć ich efektywność bez konieczności zaangażowania dużych ilości wewnętrznych zasobów.

Tymczasem prawda jest nieco inna. W zależności od zastosowania Machine Learning sprawdza się lepiej lub gorzej. Są obszary do których Machine Learning nadaje się doskonale jak na przykład wykrywanie wzorców: powtarzające się zachowania klientów, rozpoznawanie zdjęć twarzy, rozpoznawanie odcisków palców, rozpoznawanie mowy, analizy często powtarzających się czynności wykonywanych przez pracowników itp.

W zapytaniach ofertowych dotyczących chatbotów często pojawiają się pytania dotyczące wykorzystania Machine Learningu w tworzeniu bazy wiedzy. Pomysł z grubsza jest taki, iż klient dostarcza zapisy rozmów (w formie tekstowej lub dźwiękowej) pomiędzy agentami Call Center a rozmówcami. W oparciu o te zapisy rozwiązanie „uczy się” jak reagować na poszczególne pytania ze strony klientów.

Machine Learning – wymagania i ograniczenia

Zacznijmy od wyjaśnienia tego co jest potrzebne aby Machine Learning działał dobrze. Po pierwsze konieczne jest przygotowanie odpowiednich zbiorów informacji:

  • zbioru informacji treningowych

  • zbioru informacji testowych

W oparciu o pierwszy zbiór nastąpi „nauka” systemu. Drugi będzie służył do weryfikacji poprawności oraz dodatkowego tuningu rozwiązania.

Co powinny zawierać takie zbiory? W przypadku tworzenia bazy wiedzy trzeba uwzględnić co najmniej trzy grupy informacji:

  • oczywiście wypowiedzi użytkowników i udzielone odpowiedzi przez agenta

  • czas

  • interakcje wykonywane przez agenta Call Center w zewnętrznych systemach informacyjnych

Zacznijmy od pierwszego – zbiór powinien być przygotowany w formie tekstowej. W przypadku nagrań na infolinii konieczne jest dostarczenie poza głosem transkrypcji z rozmów. To konieczne, jeżeli w żargonie branżowym używa się specyficznego nazewnictwa, zwrotów, nazw własnych. Kwestią sporną pozostają dane osobowe – to zarówno aspekt prawny jak i praktyczny – system „musi” wiedzieć co jest ontologią imienia i nazwiska, nazwy miejscowości czy danych adresowych. Brak odpowiedniego oznaczenia tych elementów może spowodować błędne efekty „nauki”.

Czas też jest istotny – pewne dane zmieniają się w czasie (ceny, prowizje, warunki świadczonych usług itd.). Brak uwzględnianiach tych zmieniających się czynników może spowodować błędne rezultaty. Przypuśćmy, iż w pliku treningowym 30 razy pojawia się informacja, iż prowizja od udzielenia kredytu hipotecznego wynosi 3%. A zaledwie 2 razy pojawia się informacja, że wynosi 2%. Bez uwzględnienia funkcji czasu, Machine Learning nauczy system, że prowizja wynosi 3 % (statystycznie częściej udzielane odpowiedzi z tą prowizją). Tymczasem prawidłowa odpowiedź to oczywiście 2 % (bo zmiana nastąpiła np. wczoraj i obowiązuje od dzisiaj).

I najważniejsze – co robi agent podczas obsługi klienta? W oparciu o przeprowadzonych przez nas analizy wynika że nawet 85% zapytań klientów wymaga interakcji agenta z zewnętrznymi systemami informatycznymi (systemy bilingowe, systemy bankowości elektronicznej, systemy typu ERP/CRM itp). W praktyce nikt nie gromadzi takich informacji (czyli co zrobił agent, jaki system odpytał, jakiej funkcji użył aby odpowiedzieć na pytanie klienta). Konieczne jest więc przygotowanie odpowiedniej matrycy:

wypowiedź użytkownika – odpowiedź agenta – czynności w systemach IT – czas.

Można do tego wykorzystać odpowiednie oprogramowanie śledzące czynności użytkownika (pytanie kto jednak pozwoli na jego zainstalowanie np. w banku?). Ręczne opisywanie setek tysięcy interakcji jest również bezcelowe, bo w tym samym czasie zbudujemy bazę wiedzy „od zera” zaś brak powyższych informacji spowoduje, że chatbot obsłuży prawidłowo co najwyżej 15% interakcji. Wydaje się więc bezcelowe tworzenie takiego rozwiązania, tym bardziej, iż trzeba będzie wyczyścić ręcznie pozostałe 85 % „automatycznie” powstałej bazy wiedzy.

Z posiadanych doświadczeń, wynika, iż proces czyszczenia bazy wiedzy powstałej w oparciu o Machine Learning jest równie czasochłonny (a częściej nawet bardziej) jak przygotowanie bazy wiedzy od zera opartej o reguły. Poza tym taka baza wiedzy (oparta o regułowe działanie) jest w pełni deterministyczna i daje 100% pewności – jaka odpowiedź zostanie udzielona po spełnieniu reguły biznesowej. Trzeba też pamiętać, że rozwiązania oparte o Machine Learning nigdy nie dają 100 % pewnoście co do udzielonych odpowiedzi. Ich działanie jest nieco nieprzewidywalne. Oczywiście po dłuższym czasie rozwiązanie działa dobrze nawet w 99% przypadków jednak do tego czasu i odpowiedniego wytrenowania rozwiązania udzielane odpowiedzi będą nieco chaotyczne jak udzielane przez niewyszkolonego agenta.

Czy więc Machine learning może się dobrze nadawać do realizacji i tworzenia bazy wiedzy? Naszym zdaniem podejście regułowe jest znacznie efektywniejsze (czasowo i jakościowo).

Machine Learning – zastosowania

Do czego więc można wykorzystać Machine Learning w przypadku technologii chatbotów?

Rozpoznawanie mowy

Pierwszym obszarem jest oczywiście rozpoznawanie mowy. Tutaj bez Machine Learningu praktycznie nie da się zrobić dobrego systemu rozpoznawania mowy. Mało tego nawet w istniejących systemach rozpoznawania mowy istnieją zawsze obszary, które można udoskonalić:

  • dostosowanie systemu do specyfiki branżowej

  • dostosowanie systemu do nazewnictwa branżowego a zwłaszcza stosowanych nazw własnych

  • dostosowanie do języka wypowiedzi rozmówców (np. wprowadzenie wyrażeń w dialektach)

W powyższych przypadkach warto skorzystać z nagrań z Call Center. Oczywiście samo nagranie nie wystarczy potrzebna jest jeszcze transkrypcja na tekst, tak aby system mógł się „nauczyć” nowego słownictwa. Taka transkrypcja może zostać wykonana częściowo automatycznie, ale koniecznie musi być zweryfikowana przez człowieka.

Testowanie chatbotów

Machine Learning doskonale nadaje się do automatycznego testowania bazy wiedzy. Redakcja i konfiguracja bazy wiedzy jest procesem polegającym na takiej parametryzacji systemu aby był w stanie zareagować na dowolnie sformułowane pytanie z uwzględnieniem kontekstu. Użytkownik na pytanie o koszty kredytu hipotecznego może równie dobrze zapytać „ile będzie mnie kosztował kredyt hipoteczny” jak i zapytać o „RRSO dla kredytu na dom”. Rozbudowując i aktualizując bazę wiedzy narażamy się na błędy w konfiguracji oraz powstawanie konfliktów w bazie wiedzy. Ręczne wyszukiwania błędów w bazie liczącej tysiące faktów i dziesiątki tysięcy reguł jest niemal niewykonalne. Idealnym rozwiązaniem jest więc uruchomienie automatycznego testera, który w oparciu o odpowiedni zbiór testowy zweryfikuje poprawność działania rozwiązania i wskaże miejsca w którym należy dokonać poprawek.

W przypadku wykorzystania Machine Learning do testowania systemów automatycznych pliki do przygotowania ograniczają się do zbiorów testowych i mogą być prostsze w strukturze (wystarczy przykładowe pytania i prawidłowa odpowiedź plus ewentualnie kontekst).

Wykrywanie trendów

kolejnym obszarem w którym można wykorzystać Machine Learning są statystyki i raporty. Doskonale nadaje się tutaj rozwiązania, które przewidują trendy i wykrywają odstępstwa od normy. Przykładowo – mamy odpowiednią rozbudowaną bazę wiedzy, która jest podzielona na odpowiednie kategorie (np. produkty, obsługa, reklamacje, online itd.). Machine Learning może „odkryć” trendy (a co najważniejsze odstępstwa od nich) dotyczące ilości zapytań ze strony użytkowników o określone kategorie. Wyobraźmy sobie że jesteśmy dostawcą pewnych produktów. Jedną z kategorii w bazie wiedzy, którą stworzyliśmy są reklamacje. Przypuśćmy, że system „odkrył”, iż weekendy do systemu trafia 10 reklamacji związanych z naszymi produktami. Pewnej jednak soboty liczba reklamacji przekracza liczbę 100 to znacznie więcej niż trend, bo trend mówi o 10 w weekend. W takim przypadku Machine Learning może wykryć odstępstwo od normy i zaalarmować odpowiednie służby, o tym że dzieje się coś złego. Jeszcze ciekawsze są analizy kiedy połączymy wyniki rozmów przeprowadzonych przez system automatyczny z innymi systemami przedsiębiorstwa.

Podsumowanie

Machine Learning jest przydatny ale wymaga też pracy w przygotowaniu plików wsadowych do pracy. Trzeba dobrze rozważyć, czy nakład pracy na przygotowanie zbiorów treningowych i testowych nie przekroczy czasu potrzebnego na ręczną konfigurację rozwiązania. W przypadku chatbotów wydaje się, że największe korzyści leżą w obszarach:

  • doskonalenia rozpoznawania mowy

  • automatyzacji procesów testowania bazy wiedzy

Sprawdź https://glivia.com/