Machine Learning w implementacjach chatbotów
W mediach aż roi się od informacji na temat wykorzystania Machine Learning we wspomaganiu wdrożeń wszelkich systemów informatycznych. Wydawałoby się, że Machine Learning okazało się rozwiązaniem wszystkich problemów tradycyjnych wdrożeń i że może znacząco przyspieszyć wdrożenia i zwiększyć ich efektywność bez angażowania dużych zasobów wewnętrznych.
Tymczasem prawda jest nieco inna. W zależności od zastosowania, Machine Learning działa lepiej lub gorzej. Są obszary, w których Machine Learning sprawdza się doskonale, jak np. wykrywanie wzorców: powtarzających się zachowań klientów, rozpoznawanie obrazu twarzy, rozpoznawanie linii papilarnych, rozpoznawanie mowy, analiza często powtarzających się czynności wykonywanych przez pracowników itp.
W zapytaniach o Chatbota często pada pytanie o wykorzystanie Machine Learning do tworzenia bazy wiedzy. Z grubsza chodzi o to, że klient dostarcza zapisy rozmów (w formie tekstowej lub audio) pomiędzy agentami call center a rozmówcami. Na podstawie tych zapisów rozwiązanie „uczy się” jak odpowiadać na poszczególne pytania klientów.
Spis treści
Uczenie maszynowe – wymagania i ograniczenia
Zacznijmy od wyjaśnienia, co jest potrzebne, aby Machine Learning dobrze działało. Po pierwsze, konieczne jest przygotowanie odpowiednich zestawów informacji:
- zestaw informacji treningowych
- zestaw informacji testowych
Na podstawie pierwszego zestawu system będzie „uczony”. Drugi posłuży do weryfikacji poprawności i dodatkowego dostrojenia rozwiązania.
Co powinny zawierać takie zestawy? Tworząc bazę wiedzy, należy uwzględnić co najmniej trzy grupy informacji:
- oczywiście wypowiedzi użytkowników i odpowiedzi udzielane 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ń z infolinii konieczne jest dostarczenie, oprócz głosu, transkrypcji rozmów. Jest to konieczne, jeśli w żargonie branżowym używane jest specyficzne nazewnictwo, zwroty, nazwy własne. Dyskusyjną kwestią pozostają dane osobowe – jest to zarówno aspekt prawny, jak i praktyczny – system „musi” wiedzieć, jaka jest ontologia imienia, nazwiska, nazwy miejscowości czy danych adresowych. Brak właściwego oznaczenia tych elementów może spowodować nieprawidłowe efekty „uczenia się”.
Istotny jest również czas – niektóre dane zmieniają się w czasie (ceny, prowizje, warunki świadczonych usług itp.). Nieuwzględnienie tych zmieniających się czynników może spowodować błędne wyniki. Załóżmy, że w pliku treningowym 30 razy pojawia się informacja, że prowizja od udzielenia kredytu hipotecznego wynosi 3%. Natomiast informacja, że wynosi ona 2% pojawia się tylko 2 razy. Bez uwzględnienia funkcji czasu, Machine Learning nauczy system, że prowizja wynosi 3% (statystycznie częstsze odpowiedzi z tą prowizją). Tymczasem prawidłowa odpowiedź to oczywiście 2% (bo zmiana nastąpiła np. wczoraj, a obowiązuje dziś).
I najważniejsze – co robi agent podczas obsługi klienta? Z naszych analiz wynika, że nawet 85% zapytań klientów wymaga interakcji agenta z zewnętrznymi systemami informatycznymi (systemy bilingowe, systemy bankowości elektronicznej, systemy ERP/CRM itp.) W praktyce nikt nie zbiera takich informacji (tj. co robił agent, do jakiego systemu kierował zapytanie, jakiej funkcji użył do odpowiedzi na pytanie klienta). Konieczne jest więc przygotowanie odpowiedniej matrycy: wypowiedź użytkownika – odpowiedź agenta – czynności w systemach informatycznych – czas.
Możliwe jest zastosowanie odpowiedniego oprogramowania śledzącego działania użytkownika (pytanie jednak, kto pozwoli na jego zainstalowanie np. w banku?). Ręczne opisywanie setek tysięcy interakcji również nie ma sensu, ponieważ w tym samym czasie będziemy budować bazę wiedzy „od zera”, a brak powyższych informacji spowoduje, że chatbot obsłuży poprawnie co najwyżej 15% interakcji. Tworzenie takiego rozwiązania wydaje się więc bezcelowe, zwłaszcza że trzeba będzie ręcznie wyczyścić pozostałe 85% „automatycznie” tworzonej bazy wiedzy.
Doświadczenie pokazuje, że proces czyszczenia bazy wiedzy stworzonej na bazie Machine Learning jest równie czasochłonny (a często nawet bardziej), jak przygotowanie bazy wiedzy od podstaw w oparciu o reguły. Dodatkowo, taka baza wiedzy (oparta na regułach) jest w pełni deterministyczna i daje 100% pewności – jaka odpowiedź zostanie udzielona po spełnieniu danej reguły biznesowej. Należy również pamiętać, że rozwiązania oparte na Machine Learning nigdy nie dają 100% pewności co do udzielanych odpowiedzi. Ich działanie jest w pewnym stopniu 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 odpowiedzi będą nieco chaotyczne jak udzielane przez niewyszkolonego agenta.
Czy zatem uczenie maszynowe może się dobrze nadawać do implementacji i tworzenia bazy wiedzy? Naszym zdaniem podejście oparte na regułach jest znacznie bardziej efektywne (pod względem czasowym i jakościowym).
Uczenie maszynowe – zastosowanie
Do czego można wykorzystać Machine Learning, jeśli chodzi o technologię chatbotów?
Rozpoznawanie mowy
Pierwszym obszarem jest oczywiście rozpoznawanie mowy. Tutaj stworzenie dobrego systemu rozpoznawania mowy bez Machine Learning jest praktycznie niemożliwe. Nawet w istniejących systemach rozpoznawania mowy zawsze są obszary, które można poprawić:
- dostosowanie systemu do specyfiki branży
- dostosowanie systemu do specyficznej dla branży nomenklatury, w szczególności używanych nazw własnych
- dostosowanie do języka rozmówców (np. wprowadzenie wyrażeń w dialektach)
W powyższych przypadkach przydatne jest wykorzystanie nagrań z Call Center. Oczywiście samo nagranie nie wystarczy, co więcej, należy je przepisać na tekst, aby system mógł „nauczyć się” nowego słownictwa. Taka transkrypcja może być wykonana częściowo automatycznie, ale musi być zweryfikowana przez człowieka.
Testowanie chatbotów
Machine Learning dobrze nadaje się do automatycznego testowania bazy wiedzy. Edycja i konfiguracja bazy wiedzy to proces polegający na takiej parametryzacji systemu, aby był on w stanie odpowiedzieć na dowolnie sformułowane pytanie z uwzględnieniem kontekstu. Użytkownik zapytany o koszt kredytu hipotecznego może równie dobrze zapytać „ile będzie mnie kosztował kredyt hipoteczny”, jak i zapytać o „APR dla kredytu mieszkaniowego”. Rozbudowa i aktualizacja bazy wiedzy naraża nas na błędy konfiguracyjne i konflikty w bazie wiedzy. Ręczne wyszukiwanie błędów w bazie z tysiącami faktów i dziesiątkami tysięcy reguł jest prawie niemożliwe. Dlatego idealnym rozwiązaniem jest uruchomienie automatycznego testera, który na podstawie odpowiedniego zestawu testów zweryfikuje poprawność działania rozwiązania i wskaże miejsca, w których należy wprowadzić poprawki.
W przypadku wykorzystania Machine Learning do testowania systemów automatycznych, przygotowywane pliki ograniczają się do zestawów testowych i mogą mieć prostszą strukturę (tylko przykładowe pytania i poprawna odpowiedź plus ewentualnie kontekst).
Wykrywanie trendów
Kolejnym obszarem, w którym można wykorzystać Machine Learning są statystyki i raporty. Doskonale sprawdzają się tutaj rozwiązania przewidujące trendy i wykrywające odchylenia od normy. Przykładowo – dysponujemy odpowiednią rozbudowaną bazą wiedzy, która jest podzielona na odpowiednie kategorie (np. produkty, obsługa, reklamacje, online itp.). Machine Learning może „odkryć” trendy (a co ważniejsze odchylenia od nich) dotyczące liczby zapytań od użytkowników o konkretne kategorie. Wyobraźmy sobie, że jesteśmy dostawcą pewnych produktów. Jedną z kategorii w stworzonej przez nas bazie wiedzy są reklamacje. Załóżmy, że system „odkrył”, że w każdy weekend otrzymuje 10 reklamacji związanych z naszymi produktami. Jednak pewnej soboty liczba skarg przekracza liczbę 100 jest znacznie większa niż trend, ponieważ trend mówi o 10 w weekend. W tym przypadku Machine Learning potrafi wykryć odchylenie od normy i zaalarmować odpowiednie służby, że dzieje się coś złego. Jeszcze ciekawsze są analizy, gdy połączymy wyniki rozmów prowadzonych przez system automatyczny z innymi systemami przedsiębiorstwa.
Podsumowanie
Machine Learning jest przydatny, ale wymaga też pracy włożonej w przygotowanie plików wsadowych do pracy. Trzeba dobrze rozważyć, czy wysiłek związany z przygotowaniem zestawów treningowych i testowych przekroczy czas potrzebny na ręczne skonfigurowanie rozwiązania. W przypadku chatbotów wydaje się, że największe korzyści leżą w obszarach:
poprawa rozpoznawania mowy
automatyzacja procesów testowania baz wiedzy