Machine learning we wdrożeniach chatbotów i voicebotów: w czym może nam pomóc?

W mediach pojawia się coraz więcej informacji dotyczących wykorzystania machine learning we wspomaganiu wdrożeń systemów informatycznych. Wydaje się, że machine learning jest lekiem 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.

Nie ma rozwiązań czy technologii pasujących do realizacji każdego celu. Tak samo jest w przypadku ML. Są jednak obszary, do których machine learning nadaje się doskonale. Przykładem jest 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. Ten obszar skrywa jednak więcej niuansów niż się pozornie wydaje.

Nie tak oczywisty proces, czyli: jak uczy się bot?

Wielokrotnie zdarzało się, iż w zapytaniach ofertowych, które spływają do Stanusch Technologies dotyczących chatbotów lub voicebotów, otrzymywaliśmy pytania dotyczące wykorzystania machine learning w tworzeniu  bazy wiedzy. Założenie klienta jest takie, iż dostarcza nam zapisy rozmów (w formie tekstowej lub dźwiękowej) pomiędzy agentami call center a  rozmówcami i w oparciu o te zapisy algorytmy „uczą się”, jak reagować na poszczególne pytania ze strony użytkowników. Przedstawiona sytuacja brzmi ciekawie, nie tak jednak wygląda proces wdrożenia voicebota czy chatbota w organizacji.

Machine learning: podstawowe wymagania

Jak każda technologia, także machine learning ma swoje mocne strony, wyzwania i ograniczenia. Zacznę, od wyjaśnienia, 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ępuje „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:

  • wypowiedzi użytkowników i odpowiedzi udzielone przez agenta,
  • czas,
  • interakcje wykonywane przez agenta call center w zewnętrznych systemach informacyjnych.

Machine learning: czy tym sposobem można przygotować bazę wiedzy?

Wiemy już, co jest nam potrzebne do przygotowania bazy wiedzy. Zacznijmy od pierwszego elementu, czyli wypowiedzi udzielonych użytkowników i odpowiedzi przez agenta. Taki 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ędniania tych zmieniających się czynników może spowodować błędne rezultaty. Przykład? 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 dzisiaj).

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

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

Jak przygotować matrycę do treningu? Jednym z rozwiązań jest wykorzystanie odpowiedniego oprogramowanie śledzącego czynności użytkownika (pytanie  jednak – kto pozwoli na jego zainstalowanie np. w banku?). Ręczne opisywanie setek tysięcy interakcji jest również bezcelowe, bo spowoduje, że chatbot czy voicebot 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. W tym samym czasie zbudujemy bazę wiedzy „od zera”.

Alternatywa: baza wiedzy oparta o reguły

Z naszych doświadczeń z ponad 130 wdrożeń, 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ści, co do udzielonych odpowiedzi. Na początkowym etapie ich działanie jest nieco nieprzewidywalne. Oczywiście, po odpowiednim 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 – optymalne zastosowania

Skoro nie budowanie bazy danych, to do czego można wykorzystać machine learning w przypadku technologii chatbotów i voicebotów? Możliwości jest co najmniej kilka i wszystkie są godne polecenia.

1.     Rozpoznawanie mowy

Rozpoznanie mowy w machine learning

Pierwszym obszarem jest oczywiście rozpoznawanie mowy. Bez machine learning praktycznie nie da się stworzyć 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.

2.     Testowanie chatbotów i voicebotów

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).

3.     Wykrywanie trendów

Wykrywanie trendów

Kolejnym obszarem, w którym można wykorzystać machine learning są statystyki i raporty. Doskonale nadają 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 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 w określonych kategoriach. 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 soboty jednak liczba reklamacji przekracza 100. To znacznie więcej niż trend, bo trend mówi o 10 na każdy 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 (nietypowego). Jeszcze ciekawsze okazują się analizy, gdy połączymy wyniki rozmów przeprowadzonych przez system automatyczny z innymi systemami przedsiębiorstwa.

Podsumowanie: najlepsze obszary dla machine learning

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 voicebotów i chatbotów wydaje się, że największe korzyści leżą w obszarach: doskonalenia rozpoznawania mowy, automatyzacji procesów testowania bazy wiedzy. Nie zapominajmy też o obszarze, który może wzbogacić organizację o unikatową wiedzę, czyli wykrywanie trendów.

 

Maciej Stanusch
Facebook
Twitter
LinkedIn
WhatsApp