VAD. Kultura osobista voicebota.

Porównując odkrycia technologiczne dostępne 12 lat temu, kiedy na poważnie zainteresowałem się sztuczną inteligencją, z dzisiejszymi, zauważa się ogromny postęp. W 2008 roku ilość narzędzi i gotowych modeli pozwalających na szybkie zaadaptowanie machine learning w docelowej aplikacji można było policzyć na palcach jednej ręki. Dziś nawet bym nie próbował ich wszystkich wymienić.

Nie będę ukrywał, że to bogactwo “gotowców” mnie bardzo cieszy. Sprawia to, że od pomysłu do realizacji i pierwszego MVP dzielą nas często tylko tygodnie. Co pozwala szybko przetestować i zwalidować koncept przed angażowaniem większych zasobów w projekt.

W projekcie EvoBot musieliśmy zmierzyć się z wieloma nowymi technologiami: telekomunikacja i protokół SIP, kodeki dźwięku, NLP, NLG, analiza tekstu (tokenizacja, lematyzacja). O ile bardzo sprawnie przeszliśmy fazę od pomysłu do wykonania pierwszego telefonu, gdzie nasz bot wypowiedział pierwszą sentencję (generowaną syntezatorem mowy). Wykorzystując istniejące modele. O tyle wychwycenie momentu, kiedy bot powinien skończyć słuchać, było już nie lada wyzwaniem. Albo bot zaczął odpowiadać za wcześnie (nie słysząc wszystkiego co wypowiedział rozmówca, tym samym tracąc część wypowiedzi rozmówcy), albo za późno (co sprawiało wrażenie jakby bot się zaciął).

Jak nauczyć bota przestrzegania norm społecznych?

Skupiając się na zamianie dźwięku na tekst i odwrotnie nie zdawaliśmy sobie sprawy z tego jak ważne i trudne zadanie nas czeka. Nasz bot był technicznie uzdolniony, ale był odbierany jako niekulturalny, wręcz nieużyteczny. Zaledwie po kilku dniach od wykonania pierwszej rozmowy przez EvoBota, naszym głównym celem było nauczenie go kultury. Wszak w realnym Świecie, normą społeczną jest to, że jak jedna strona mówi, to druga słucha. Nasz bot miał z tym problemy.

To czego potrzebowaliśmy to inteligentny VAD – Voice Activity Detection. Termin znaliśmy, ale VAD to nie tylko badanie amplitudy dźwięku. Cisza okazała się nie być ciszą. A głos okazał się być szumem, wiatrem lub tykającym w aucie kierunkowskazem.

Potrzebowaliśmy modelu, który będzie potrafił rozróżnić szum z tła od rzeczywistej wypowiedzi. Z pomocą przyszła nam, jak zawsze zresztą, nauka. Literatura w temacie VAD okazała się być wyczerpująca (Sohn et. al, sciencedirect). Potrzebowaliśmy tylko danych, w naszym przypadku nagrań. I tak zaczęliśmy zbierać dźwięki. Robiliśmy testy w samochodzie (przy różnej prędkości, z otwartymi szybami, w różnych samochodach), na dworcach, w warszawskim metrze. Używaliśmy różnych telefonów, słuchawki i zestawu głośnomówiącego, prowadziliśmy rozmowy przy niedzielnym obiedzie, w samotności i w barze. Dzwoniliśmy do znajomych pracujących w skupiskach ludzi czy na call center.

Wyposażeni w wiedzę teoretyczną oraz dane rozpoczęliśmy prace nad modelem VAD i jego ustawieniem. Generowanie i testowanie stało się naszym dniem powszednim ale i tym razem, sztuczna inteligencja kolejny raz przysłużyła się naszemu voicebotowi. Nauczyła go kultury.

Późniejsze testy, i wdrożenia pokazały, że problemy zniknęły. Nasz bot już wie kiedy ma mówić, a kiedy słuchać. Dodatkowo VAD sprawił, że bot zaczął szybciej odpowiadać. A rozmówcy i klienci twierdzą czasami, że wręcz ich pogania w rozmowie.

Voicebot musi wiedzieć kiedy ma słuchać a kiedy mówić

Ta lekcja pokazała nam, że inteligencję i skuteczność bota mierzy się nie tylko ilością rozpoznawanych intencji czy sposobem prowadzenia rozmowy. Często ułamek sekundy sprawia, że rozmówca myśli, że bot się zawiesił. Co w konsekwencji sprawia, że rozmówca się rozłącza. Dlatego inteligencja bota i User Experience zależy również od tego jak szybko bot reaguje, czy słucha w trakcie tego jak sam mówi.

Proszę sobie wyobrazić, że bot ma do wypowiedzenia długą sentencję i nie słucha, że ktoś chce mu przerwać. Porzucenie rozmowy murowane.

Chcesz porozmawiać z naszym botem? Wypróbuj demo voicebota wyborczego.


Przywitanie z AI (w tle)

Sztuczna inteligencja jest w mojej ocenie jedną z najbardziej interesujących i nieodkrytych dziedzin informatyki. Wszak algorytmy, podstawy teoretyczne w postaci modeli matematycznych są znane od wielu lat. Mimo tego, zastosowanie AI wciąż rozpala emocje i wyobraźnię. Specjaliści od AI zafascynowani kolejnym wdrożeniem zastanawiający się nad tym w jakim obszarze mogą wykorzystać swój produkt. Z drugiej strony biznes wyprzedzający się w generowaniu pomysłów związanych z wykorzystaniem AI w procesach automatyzujących pracę, generujących oszczędności i jednocześnie zwiększając zyski.

AI == Future?

Mimo niesamowitego postępu technologi AI, rosnącej ilości materiałów, kursów (popularne MIT AI czy Oxford AI Course), gotowych narzędzi wykorzystujących AI (Tensorflow, nltk,  Pytorch) jest to wciąż obszar na którym jest wiele do zrobienia. A właściwie, obszar, z którego można wiele pożyczyć aby wnieść nową wartość do istniejących modeli biznesowych, produktów, usług, procesów. Wg danych z portalu Statista, zyski branży IT związane ze świadczeniem usług AI osiągną tym roku (2020)  ponad 22 miliardów dolarów aby za niespełna 5 lat osiągnąć przychody na poziomie 126 miliardów dolarów. Takich prognoz (pod względem przyrostów % year to year) nie ma przed sobą żadna z branż IT. Niewątpliwie, w najbliższych latach czeka nas wiele nowości w świecie AI.

Evoqai również w swojej strategii rozwoju obrał AI jako jeden z 3 kierunków mających stanowić podstawę źródła przychodów. Ale zanim o tym to trochę historii...

Pierwsze spotkanie z AI

Moja pierwsza przygoda ze sztuczną inteligencją miała miejsce w 2003 roku. Dokładnie 17 lat od momentu pisania tego posta, na studiach. Na początku wydawało mi się to wszystko totalną abstrakcją. Niemożliwym do nauczenia zlepkiem niezrozumiałych koncepcji i teorii, których nie będę w stanie pojąć.

Mój cel na początku był prosty: jakoś przez to przebrnąć i zaliczyć. I tak się stało. Z tym, że owa droga okazała się być fascynującą przygodą, która zakończyła się (trochę też za sprawą przypadku) zwolnieniem z egzaminu i zrodzeniem pasji do wszelkiego rodzaju automatyzacji. Do dziś wspominam symulację obiegu ściągawek na klasówce - tak brzmiał nasz pierwszy poważny projekt na SI. Potem kolejne zetknięcie z tematem, i kolejne zwolnienie z egzaminu.

Nasze drogi (moja i Sztucznej Inteligencji) rozeszły się na jakiś czas. Wszak jako wchodzący w dorosłe życie, musiałem się skupić na czymś, na czym się znałem i co pozwoli mi opłacić rachunki. W tamtym czasie było to programowanie aplikacji internetowych. I tak to trwało prawie dwa lata. Aż postanowiłem wszystko rzucić i spróbować swoich sił w świecie nauki. Dostałem się na studia doktoranckie. Ażeby było trudniej, to w Anglii, we wspólnym projekcie (PRiMMA) realizowanym przez The Open University, The Imperial College London oraz University of Bath. Do dziś nie wiem jak to się stało, ale się dostałem. A jeden z moich promotorów, Bashar Nuseibeh, po latach powiedział wprost: "I spot the potential". Całe szczęście dla mnie, ponieważ dzięki temu już niedługo później mogłem robić coś, co zawładnęło mną na ponad 3 lata: "doing academic research".

Zaczęło się od czytania i poszukiwania problemu. Aż w końcu (po ponad pół roku) go znalazłem i mogłem zacząć go doprecyzowywać i rozwiązywać. A to znaczyło, że znowu mogłem ubrudzić ręce w technologii: statystyka, data science, machine learning i moje ulubione user studies. Była to niesamowita lekcja, która zmieniła moje postrzeganie Świata i podejście do rozwiązywania problemów. Cóż to była za przygoda - stworzyć system wykorzystujący uczenie maszynowe oraz wiedzę na temat psychologii oraz HCI (Human Computer Interaction) aby dowieść, że można w ten sposób dołożyć cegiełkę do rozwiązania problemu prywatności. Problemu głęboko zakorzenionego w psychologii środowiskowej, o którym wtedy jeszcze niewielu sobie zdawało sprawę. A jednak udało się. PhD completed. A ja mogłem iść dalej.

Po doktoracie, moja przygoda z AI urwała się na prawie 8 lat. Nie licząc jakiś pomniejszych eksperymentów i zabaw z data science w R, Weka czy tensor flow. Aż w trakcie spotkań z jednym z klientów padło z jego ust pytanie, "czy mógłbyś zrobić system, który sprawi, że .... ?" No właśnie, to co było po że sprawiło, że rozwiązaniem tego problemu była sztuczna inteligencja właśnie. 6 tygodni zabawy z pythonem, nltk i podobnymi bibliotekami i tak się zrodził nasz pierwszy produkt wykorzystujący elementy AI: EvoScanner - system potrafiący rozpoznawać dane z faktur i dowolnych dokumentów. Co ciekawe, w 6 tygodni udało nam się zrobić model, który na próbce testowej działał o kilka procent lepiej niż inne produkty komercyjne dostępne na rynku. A dziś, stworzenie dedykowane modelu do klasyfikowania dowolnych dokumentów na podstawie treści to dla nas zadanie powszednie.

EvoqAI

W/w projekt to EvoScanner, a jego mały sukces sprawił, że postanowiliśmy zmierzyć się z czymś co wg mnie jest jednym z głównych obszarów rozwoju i przyszłej dominacji AI w biznesie - conversational AI. Czyli systemami wykorzystującymi sztuczną inteligencję do prowadzenia dialogu z człowiekiem. W Evoqai najwięcej uwagi poświęcamy voicebotom, czyli botom głosowym potrafiącym mówić, słuchać, rozumiejącym co się do nich mówi. Mówię tu o systemach, które wykorzystują najlepszy, najprostszy i najbardziej naturalny interfejs jaki wykształcił człowiek: ludzką mowę. Czy może być coś prostszego niż powiedzenie co się chce, ile i w jakim kolorze? Bez konieczności odrywania rąk od kierownicy albo bez konieczności patrzenia w ekran?

Ilość zastosowań jest ogromna: sprzedaż ubezpieczeń, sprzedaż kredytów, ocieplanie leadów, windykacja (przykład evobota), sprzedaż suplementów na odchudzanie, doradztwo, infolinie (weźmy ostatni przykład z branży: infolinia nt. koronawirusa), rezerwacje wizyt u lekarza, fryzjera, kosmetyczki. Do tego wszelkiego rodzaju ankiety, badanie satysfakcji klientów czy w końcu głosowanie (przykład voicebota wyborczego).

To tylko krótka lista zastosowań voicebotów, która tak naprawdę jest nieograniczona.

W 2008 roku natrafiłem na to video: Apple Knowledge Navigator, Jak to pierwszy raz oglądałem nie wierzyłem w to, że będę potrafił takie coś zrobić. Brzmiało to jak abstrakcja: człowiek prowadzi swobodny dialog z robotem. Do tego ten bot rozumie kontekst wypowiedzi, korzysta z systemów zewnętrznych aby wzbogacić rozmowę. Sprawia wrażenie myślącego. WOW. Potem Apple przedstawiło nam Siri, następnie Google i Amazon swoich asystentów a ludzie się zachwycali i dalej zachwycają botami i ich możliwościami. Pamiętam jak po zobaczeniu po raz pierwszy Knowledge Navigatora wpadłem na pomysł żeby zrobić bota, który będzie mi rekrutował uczestników do badania na temat prywatności z twittera. Co prawda mój bot ze sztuczną inteligencją nie miał wiele wspólnego - nie można przecież nazwać AI bota, który bazuje na prostym modelu i wyrażeniach regularnych. Ale bot robotę zrobił: moi rozmówcy z nim rozmawiali i byłem w stanie (tzn. bot był w stanie) ich nakłonić do wzięcia udziału w moim badaniu. Mój pierwszy twitter bot (https://twitter.com/entish) zrekrutował mi do ankiety badawczej ponad 3 tysiące osób z całego Świata w kilka dni. Ponad 200 wypełniło ankietę do końca. To był mega wynik jak na automat, który powstał w 2 godziny po obejrzeniu wspomnianego video. Czyż nie prawda, że boty można wykorzystać wszędzie?

Voiceboty? - to przecież takie proste...

W mojej opinii tworzenie botów głosowych jest jedną z trudniejszych technicznie dziedzin IT. Na naszym rynku działa wiele firm zajmujących się tematem, jak choćby Voicetel, Intelliwise czy Stanusch Technology. Jednocześnie wykorzystanie voicebotów jest wciąż niewielkie. Dziś zrobienie asystenta głosowego jest o wiele prostsze niż dawniej. Prostsze niż choćby 11 lat temu, kiedy nie było jeszcze narzędzi AI od Amazona, Google czy Microsoft. Wielu programistów powie, że wykorzystując dzisiejszą technologię można prostego bota złożyć z gotowych wręcz klocków: głos weźmiemy od Amazona, przetwarzanie tekstu z Dialog Flow. Kilka dni i gotowe. Ale doświadczenie pokazuje, że to jednak nie jest takie proste. Gdyby tak było, firm oferujących voiceboty byłoby tyle co firm produkujących strony internetowe. A każdy z nas na słowo voicebot by wiedział o czym mówimy. Tak jednak nie jest.

Trzeba pamiętać, że rozpoznanie tekstu czy synteza mowy to jedno. Ale jak sprawić żeby bot miał duszę, osobowość? Jak sprawić żeby był kulturalny, żeby słuchał kiedy powinien, i mówił kiedy jego kolej? Jak sprawić aby normy społeczne, oczekiwania drugiej strony dialogu były przez bota respektowane? Jak sprawić żeby bot rozumiał czy rozmawia z kobietą czy mężczyzną?

Jest element w tej całej botowej układance, który widzę jako jeden z kluczowych czynników decydujących o szerokiej akceptacji technologii głosowych. Jest to voicebot usability. W moim przekonaniu Historia o voicebotach to nie jest wyłącznie historia o technologii, o zamianie dźwięku na tekst czy generowaniu mowy. Niewątpliwie są to elementy technologiczne, bez których nie da się zrobić voicebota. Ale nie można w tym wszystkim zapominać o tym, że bot to jednak interfejs użytkownika. Głos to nasza klawiatura, myszka lub tablet, a bot to tylko interpreter i feedback. A skuteczny interfejs użytkownika to taki, którego nie trzeba się uczyć, który jest naturalny i tani w użytkowaniu. Jest takie pojęcie w HCI jak Interaction Cost. Pozwolę sobie przytoczyć definicję autorstwa Raluci Badiu (konsultant z NN Group): the interaction cost is the sum of efforts — mental and physical — that the users must deploy in interacting with a site in order to reach their goals. Co prawda koszt, o którym mowa odnosi się do stron www, lecz jak odniesiemy to do interfejsów (w tym głosowych) to każda osoba, która miała przyjemność robić boty wyciągnie z niej wnioski dla siebie. My doszliśmy do nich bardzo szybko (literatura nt Usability Goals obowiązkowa).

Nasze badania pokazują, że sposób reagowania, szybkość odpowiedzi, umiejętność przerywania własnej wypowiedzi przez bota czy zapamiętywanie kontekstu rozmowy są równie ważne co kompetencje. Nikt nie lubi jak mu się przerywa w trakcie wypowiedzi, każda milisekunda w oczekiwaniu na odpowiedź bota zwiększa ryzyko zakończenia rozmowy przez drugą stronę. Brak umiejętności reakcji na obiekcje nie wpływa dobrze na Customer Experience, a pytanie kilka razy o to samo w tej samej rozmowie ... to już nie te czasy.

Voicebot usability - co to takiego?

Teraz powinienem rozwinąć dalej wątek. Zrobię to w kolejnym poście. Póki co pozostawię więcej pytań niż odpowiedzi, ale wszystko wskazuje na to, że całą branżę Voicebot czeka ciekawa droga. A na koniec zawsze się wspomina wrażenia z drogi. My swoimi będziemy dzielili się na bieżąco.