Z Tomaszem Sobczakiem, Regional Sales Manager w Findwise, rozmawiamy o tym jakie cele stawia obecnie biznes przed technologią wyszukiwania; w jaki sposób stworzyć dobrą wyszukiwarkę internetową i co jest w tym procesie kluczowe; z czym związane są problemy dostępu do właściwej informacji, jak można im zaradzić; czy istnieje uniwersalny zbiór dobrych praktyk, jeśli chodzi o przechowywanie danych i budowanie dostępu do informacji; w jaki sposób algorytmy AI pomagają w analizie i zrozumieniu intencji użytkownika, a także jak z rozumieniem intencji radzą sobie chatboty.
Jakie cele stawia obecnie biznes przed technologią wyszukiwania?
Podstawowy cel jest od przeszło 25 lat mniej więcej taki sam – wyszukiwarka ma zwracać jak najlepszą odpowiedź na moje pytanie. Jest to jednak problem trudny do rozwiązania, ponieważ nie mamy do czynienia z jednym systemem, jednym silnikiem czy jedną technologią, tylko z kombinacją tych składowych. Jest to też problem mocno subiektywny – zależy bowiem od intencji użytkownika. Przeanalizowanie jej jest bardzo trudne i to właśnie jest głównym wyzwaniem. Sam silnik wyszukiwania jest stosunkowo prostym narzędziem, natomiast cała „zabawa” zaczyna się dopiero wtedy, kiedy – chcąc zrozumieć tę intencję – musimy też pojąć kontekst użytkownika i same zapytania.
Właśnie, wyszukiwarki w e-sklepach cechują się często sporą nieskutecznością, duża część wyszukiwań jest w nich nietrafionych. Dlaczego tak się dzieje? Z czym związane są problemy dostępu do właściwej informacji?
Powodów jest kilka. Zacząć trzeba od strukt ury danych, bo to nieodłączny element dobrego wyszukiwania. Jeśli katalog produktów jest nieuporządkowany i brakuje w nim metadanych – czy też mamy w nich bałagan – to wyszukiwarka nie będzie działała dobrze. Brakuje bowiem atrybutów opisujących dany produkt. Problem z pozoru banalny, ale bardzo istotny. Idąc dalej, informacje też mogą być nieuporządkowane, a wtedy trzeba je systematyzować. Mówimy więc o taksonomiach albo ontologiach, które porządkują nam kategorie, do których przypisane są produkty. Trzeba więc bezwzględnie w odpowiedni sposób klasyfikować dane.
Inne źródło problemów to interfejs użytkownika. Czasami silnik wyszukiwania wykona operację i zwróci lepszą czy gorszą listę wyników. Są jednak również sposoby, aby interfejs użytkownika był intuicyjny, aby tłumaczył – podając nam np. kilka podkreślonych kluczowych słów – dlaczego wynik wyszukiwania dopasował się do naszego zapytania. Jeśli brakuje takiej funkcjonalności użytkownik może czuć się zagubiony. Podobnie, jeśli zrobi drobną literówkę, a wyszukiwarka nic nie wskaże. System powinien więc być na tyle mądry, aby te literówki poprawiać. Wyzwaniem jest także poszukiwanie źródła synonimów. Wskazałbym również same algorytmy wyszukujące, które nie potrafią dopasować słów, jeśli znajdują się w nich np. spacje czy myślniki. Nie jest bowiem rolą użytkownika zastanawiać się jak napisać poprawnie dane słowo np. Wi-Fi. To system powinien wiedzieć, że ten myślnik należy zostawić.
Jak można temu zaradzić? I jak z rozwiązywaniem tych problemów radzi sobie technologia?
Z mojego punktu widzenia to właśnie nie technologia jest kluczowa. Jeśli chcemy osiągnąć naprawdę dobrą wyszukiwarkę liczy się proces Governance. Ale zacznijmy od początku. Mamy pięć, bardzo ważnych obszarów, które składają się na to czy wyszukiwarka będzie działała z sukcesem czy nie. Pierwszy z nich to cele biznesowe i na nich przede wszystkim należy się skupić. Jest mnóstwo intencji, nie ma natomiast takiej wyszukiwarki, która obsłuży 100% zapytań prawidłowo. Zagiąć da się nawet Google. Taka jest już bowiem specyfika obszaru Information Retrieval. Cały czas trzeba szukać w nim kompromisu pomiędzy precyzją wyszukiwania, a kompletnością wyników wyszukiwania.
Wspomniane cele biznesowe szczególnie ważne są w e-commerce, bo z jednej strony mamy użytkowników z określonymi preferencjami, do których chcemy się dopasować, a z drugiej to co chcę sprzedać, z czego mam największy przychód, marżę itd. Wyszukiwarka musi to odzwierciedlać niczym klasyczny sprzedawca. Należy więc precyzyjnie określić co tak naprawdę wyszukiwarka ma robić, jakie będą KPI, w jaki sposób ma dla nas zarobić bądź zaoszczędzić pieniądze. To bowiem dyktuje później rozwój całego systemu.
I jeszcze jedna ważna dygresja, wyszukiwarka nie jest etapem, który można rozpocząć i skończyć. W pewnym momencie przeradza się w usługę utrzymaniową, którą trzeba nieustannie rozwijać, monitorować, patrzeć na zapytania, procesy indeksujące itd. Zmieniają się bowiem nieustannie dokumenty czy zapytania użytkowników. I to jest właśnie ten wspomniany przeze mnie proces Governance.
W Machine Learning wykorzystuje się do budowania modeli np. dane takie, jak historyczne zapytania czy kliknięcia w e-sklepie. Na ich podstawie buduje się model uczenia maszynowego, który będzie przewidywał, które wyniki wyszukiwania są lepsze dla danego zapytania. Taki model nie ma jeszcze nic wspólnego z przetwarzaniem języka naturalnego i z intencją. W technologicznej nomenklaturze nazywamy go Learning to Rank. Firmy widzą w nim obecnie ogromny potencjał, ale to nie jest tak, że za jego pomocą możemy np. w trzy miesiące poprawić konwersję o kilkadziesiąt procent. To tak nie działa. Nad doborem danych czy metryk, na które chcemy zwracać uwagę, trzeba niestety nieustannie pracować.
Dobrze, mamy więc zbudowany już cel biznesowy. Co dalej?
Kolejna kwestia to architektura informacji, a więc jakość, struktura, cykl życia, taksonomie, źródła danych, wszystko co indeksujemy itd. Te kwestie są równie istotne, abyśmy mogli umieścić je w silniku wyszukiwania i modelować. Sam silnik bowiem nie jest żadnym superinteligentnym narzędziem. Tę inteligencję musimy dopiero włożyć do niego sami.
Jeśli jesteśmy już w jakimś stopniu pewni architektury informacji – a trzeba pamiętać, że ten proces też nigdy się nie kończy – kolejnym, trzecim priorytetem jest User Experience. To czy jest intuicyjny, przejrzysty, komunikuje co się wydarzyło, jest bardzo ważne. Sukces wyszukiwarki zależy też bowiem od dobrze zaprojektowanego interfejsu. Czwarty obszar to technologia, która spełnia nasze określone wcześniej wymagania, a więc konkretny silnik wyszukiwania, a jest ich na rynku kilka, zarówno open source, jak i komercyjnych. W Polsce pracuje się głównie na tych pierwszych, takich jak Elasticsearch czy Solr.
Należy jednak pamiętać, że sam silnik wyszukiwania nie jest wystarczający. Do niego trzeba przecież włożyć dane, a poza tym potrzebna jest aplikacja będąca warstwą pośrednią między aplikacją końcową, a silnikiem wyszukiwania. Niezbędne są więc takie elementy, jak indeksowanie czy możliwość budowy logiki wyszukiwania. I wreszcie piąty, ostatni obszar, czyli wspomniany już Governance. I właśnie w tym procesowym podejściu do synonimów, do zbierania danych, analizowania ich, upatruję największy klucz do sukcesu.
W jaki sposób AI pomaga w analizie i zrozumieniu intencji użytkownika? Jak sobie radzi z rozumieniem kontekstu zapytania czy z rozpoznawaniem wieloznaczności językowych?
Nie lubię określenia sztuczna inteligencja. Wolę mówić o przetwarzaniu języka naturalnego (NLP), które oczywiście zawiera w sobie elementy uczenia maszynowego (ML). W Machine Learning wykorzystuje się do budowania modeli np. dane takie, jak historyczne zapytania czy kliknięcia w e-sklepie. Na ich podstawie buduje się model uczenia maszynowego, który będzie przewidywał, które wyniki wyszukiwania są lepsze dla danego zapytania. Taki model nie ma jeszcze nic wspólnego z przetwarzaniem języka naturalnego i z intencją. W technologicznej nomenklaturze nazywamy go Learning to Rank. Firmy widzą w nim obecnie ogromny potencjał, ale to nie jest tak, że za jego pomocą możemy np. w trzy miesiące poprawić konwersję o kilkadziesiąt procent. To tak nie działa. Nad doborem danych czy metryk, na które chcemy zwracać uwagę, trzeba niestety nieustannie pracować. Sama budowa tego modelu jest też trudna. Jednocześnie warto dodać, że może on nas kierować także w kierunku personalizacji. Możemy bowiem stworzyć rodzaj modelu per użytkownik, który będzie zmieniał wyniki wyszukiwania tylko dla jego konkretnych sygnałów.
Z kolei NPL to jest właśnie analiza intencji użytkownika, w której też „pod spodem” może być ML. Ale w tym wypadku zadaniem tego szeregu narzędzi jest zrozumienie sensu słów. Dzięki temu możemy sprawniej dopasować dokumenty i zwrócić je na liście wyszukiwania. Możemy to nazwać semantycznym wyszukiwaniem i jest to główne zastosowanie NLP.
Stąd chyba blisko nam do chatbotów… Jak to wygląda w ich wypadku? Na jakim poziomie są w stanie zrozumieć język naturalny zapytania?
Chatboty, z którymi mamy do czynienia na stronach internetowych, w telekomach czy ubezpieczalniach, nie zawsze, ale często są banalnymi urządzeniami, które reagują na słowa kluczowe, przesyłają jakąś informację, a i tak wszystko kończy się na telefonie do call center. W tych bardziej zaawansowanych chatbotach – które próbują zrozumieć ludzką mowę – dialogi trzeba zamodelować w postaci różnych grafów i przejść, co jest często tytaniczną pracą do wykonania przez zespół inżynierów oraz ekspertów domenowych. Natomiast to, gdzie przydaje się NLP to zrozumienie intencji. Ale znów trzeba stworzyć model, który będzie miał zbiór trenujący na wejściu i tu po raz kolejny pracę wykonać musi człowiek. Jeśli go już przygotujemy i wytrenujemy to historia jest podobna do tej, o której mówiłem wcześniej, system – z określoną skutecznością – próbuje zaklasyfikować i rozpoznać intencje. Na tej podstawie chatbot – ponieważ ktoś wcześniej zamodelował mu przepływ konwersacji – wie co robić dalej i jaki zautomatyzowany proces biznesowy ma uruchomić. Takie zatem widzę podobieństwo i synergię między technologią wyszukiwania, a samym chatbotem.
Czyli to, ile intencji będzie potrafił rozpoznać chatbot, zależy jednak głównie od pracy wykonanej przez człowieka?
Zdecydowanie. Dlatego też osobiście preferuję mocno pragmatyczne podejście do chatbotów, aby nie obiecywać sobie po nich zbyt wiele.
Chciałbym jeszcze wrócić, do personalizacji. Mówi się obecnie, że jest to najskuteczniejsza broń w walce o klienta. Czy ten trend rzeczywiście jest dominujący? Jak skutecznie wykorzystać Machine Learning w tym obszarze?
Wszyscy o tym mówią. Wszyscy się tą personalizacją interesują, niektórzy nawet robią z nią poważne eksperymenty, ale jednocześnie nadal dostrzegam, że organizacje wciąż borykają się – jeśli chodzi o wyszukiwanie informacji – z fundamentalnymi problemami. A najgorsze co można zrobić to nie zadbać o te porządne fundamenty zawarte choćby w pięciu obszarach, o których rozmawialiśmy wcześniej, tylko wskoczyć od razu w eksperymentowanie z Machine Learning z nadzieją, że ono rozwiąże wszystkie nasze problemy. Jeśli mamy bałagan w danych, będzie on tylko narastał. Najpierw więc trzeba spłacić dług technologiczny i zbudować solidny fundament. Nie ma nic ważniejszego niż porządek w danych!
Ale w personalizacji również najważniejszy jest sam proces. Trudne jest bowiem dokładne zdefiniowanie na początku czym ona ma tak naprawdę dla nas być. W jaki sposób chcemy personalizować – per pojedynczy użytkownik czy może chcemy segmentować użytkowników na konkretne grupy? Jest całe spektrum problemów, które musimy rozstrzygnąć biorąc pod uwagę, co chcemy uzyskać i w jaki sposób zbierać dane. I taki system personalizujący to też proces wymagający nieustających nakładów pracy.