Qtravel Search na tle klasycznych metod wyszukiwania

Na przestrzeni lat wyszukiwanie w internecie uległo ogromnym przeobrażeniom – od skomplikowanych formularzy wyszukiwania, poprzez wyszukiwanie oparte na wprowadzaniu słów kluczowych do wyszukiwarki aż do zaawansowanych interfejsów konwersacyjnych.

W niniejszym artykule porównamy różne metody wyszukiwania w danych turystycznych. W tym celu wykorzystamy wersję demonstracyjną Qtravel Search, w której skonfigurujemy trzy środowiska testowe:

  1. Wyszukiwarkę klasyczną opartą na tradycyjnych formularzach.
  2. Wyszukiwarkę pełnotekstową.
  3. Wyszukiwarkę w języku naturalnym wykorzystującą narzędzia sztucznej inteligencji (Qtravel Search). 

Wszystkie z nich zawierają ten sam zestaw danych, składający się z 197 ofert turystycznych. 

Zapraszamy do zapoznania się z naszym porównaniem oraz wynikami, jakie na końcu uzyskaliśmy!

Wyszukiwanie klasyczne oparte na formularzach

Wyszukiwanie klasyczne oparte na formularzach to najczęściej stosowany interfejs wyszukiwania w branży turystycznej. Większość serwisów oferujących loty, usługi noclegowe czy wycieczki zorganizowane wymaga podania w formularzu destynacji, do której się wybieramy, dat wyjazdu i powrotu oraz konfiguracji osób dorosłych i dzieci.

Rysunek 1: Przykład implementacji wyszukiwarki klasycznej na portalu turystycznym.

Na potrzeby naszego testu, przygotowaliśmy analogiczny interfejs wyszukiwania składający się z 3 pól: kierunku wyjazdu, terminu wyjazdu oraz konfiguracji osób dorosłych i dzieci.

Rysunek 2: Przykład wyszukiwarki klasycznej

Wyszukiwanie pełnotekstowe

Wyszukiwanie pełnotekstowe (ang. full-text search) to metoda wyszukiwania umożliwiająca wyszukiwanie tekstu (na przykład zapytań użytkowników wprowadzonych do wyszukiwarki) w dokumentach tekstowych, uwzględniająca odmianę wyrazów, a często także błędy ortograficzne czy synonimy. Wyszukiwanie tego typu często implementowane jest za pomocą silników wyszukiwania pełnotekstowego takich jak ElasticSearch, OpenSearch, Solr i innych, ale także może stanowić dodatkową funkcjonalność baz danych SQL. 

Jedną z najważniejszych cech wyszukiwania pełnotekstowego jest budowanie listy wyników wyszukiwania na podstawie trafności dokumentu. Jest to wartość liczbowa określająca jak bardzo dany dokument “pasuje” do zapytania użytkownika. W silnikach wyszukiwania trafność dokumentu obliczana jest za pomocą specjalnych algorytmów TF/IDF (Term frequency–inverse document frequency) czy BM25.  

W naszym środowisku testowym interfejs wyszukiwania pełnotekstowego jest identyczny z domyślnym interfejsem Qtravel Search. 

Wyszukiwanie w języku naturalnym w Qtravel Search

Główną różnicą między wyszukiwaniem zaimplementowanym w rozwiązaniu Qtravel Search a metodami wyszukiwania pełnotekstowego jest wykorzystanie narzędzi sztucznej inteligencji do zrozumienia kontekstu zapytania (o czym pisaliśmy w tym artykule).

Aby zrozumieć różnicę między tymi dwoma sposobami wyszukiwania, rozpatrzmy proste zapytanie użytkownika szukającego “wycieczki z Gdańska”.

W przypadku zastosowania wyszukiwania pełnotekstowego znajdziemy tylko te oferty, które w treści zawierają słowa “wycieczka”, “Gdańsk”. Wyszukiwarka nie zrozumie, że “z Gdańska” oznacza miejsce wyjazdu i nie zastosuje odpowiednich filtrów. W konsekwencji, w wynikach wyszukiwania mogą znaleźć się oferty, które nie odpowiadają intencji użytkownika – na przykład oferty do Gdańska, a nie z wyjazdem/wylotem z Gdańska.

W przypadku wyszukiwarki Qtravel Search nie będziemy mieć powyższych problemów, gdyż algorytmy rozumienia języka naturalnego zastosowane w wyszukiwarce wykrywają w treści zapytania wszystkie aspekty istotne z punktu widzenia oferty turystycznej (tj. miejsce wyjazdu, kierunek wyjazdu, daty, czas trwania wycieczki, wyżywienie, udogodnienia w hotelu i wiele innych) i zwracają odpowiednio dopasowane oferty.

Porównanie metod wyszukiwania

Do porównania w sposób obiektywny i weryfikowalny jakości metod wyszukiwania wykorzystamy specjalnie przygotowany zbiór testowy składający się z par:

  • zapytania użytkownika (ang. query), które potencjalnie mogłoby zostać wpisane przez użytkownika, np. “tydzień wakacji w Grecji”;
  • oczekiwanych ofert turystycznych (ang. expected offers)  – listy ofert z naszego zestawu 197 ofert turystycznych, które pasują do zapytania i posiadają terminy wyjazdu odpowiadające zapytaniu.

Poniżej przedstawiamy fragment zestawu użytego w naszym teście. Cały zestaw składa się z 447 par przygotowanych w sposób opisany powyżej. Dodatkowo, został on podzielony na kategorie zapytań, na przykład zapytania uwzględniające różne formy zapisu dat czy cen. Dzięki temu odzwierciedla on przekrój zapytań, które użytkownicy mogą wprowadzać do wyszukiwarki turystycznej. 

Przykłady par (zapytanie, oczekiwane odpowiedzi) ze zbioru testowego.
Przykłady par (zapytanie, oczekiwane odpowiedzi) ze zbioru testowego.

Precision, Recall, F1 – podstawowe metryki skuteczności wyszukiwania

W dziedzinie wyszukiwania informacji, a taką niewątpliwie jest wyszukiwanie tekstowe (pełnotekstowe lub oparte na narzędziach sztucznej inteligencji), istnieje kilka wskaźników określających jakość wyszukiwania. Bez nich nie bylibyśmy w stanie określić, jak skuteczne są nasze algorytmy wyszukiwania.

W ramach naszego testu zbadamy wartości 3 metryk.

Precision

Precision (precyzja) to stosunek prawidłowo wyszukanych ofert (czyli takich, które zostały znalezione przez wyszukiwarkę oraz znajdują się w kolumnie oczekiwanych ofert dla danego zapytania) do wszystkich ofert zwróconych przez wyszukiwarkę

W idealnym scenariuszu wartość wskaźnika powinna wynosić 1, co odpowiadałoby sytuacji, kiedy wszystkie wyniki wyszukiwania zwrócone przez wyszukiwarkę są relewantne do zapytania. 

W rzeczywistości, ze względu na specyfikę języka naturalnego, nie jest to zawsze możliwe. Zapytanie “wycieczka z Łodzi”  do wyszukiwarki pełnotekstowej oznacza zwrócenie wszystkich wyników wyszukiwania zawierających słowa “wycieczka” i “łódź”. Jeśli w treści oferty znajduje się słowo “łódź” (np.: “rejs łodzią”), to zostanie ona znaleziona i zaprezentowana na liście wynikowej. Nie będzie jednak ona relewantna do zapytania, które dotyczy wycieczek z miejscem wyjazdu z Łodzi. W związku z tym, Precision dla tego zapytania będzie mniejsze niż 1.  

Jak obliczamy Precision?

Dla zapytania “tydzień wakacji w Grecji” wyszukiwarka znalazła 3 oferty A, B, C  a spodziewaliśmy się ofert B, C, D, E. Precyzja wynosi w tym przypadku 2/3, ponieważ tylko dwie z trzech (B oraz C) zwróconych ofert są relewantne w stosunku do zapytania.

Recall

Recall, inaczej pokrycie, to  stosunek prawidłowo wyszukanych ofert do wszystkich poprawnych ofert (czyli takich, które znajdują się w kolumnie oczekiwanych ofert dla danego zapytania). 

Analogicznie, tak jak w przypadku Precision, w idealnej sytuacji wartość tej metryki powinna wynosić 1. Oznaczałoby to sytuację, w której wszystkie oferty pasujące do zapytania (a znajdujące się w naszej bazie ofert – oczekiwane oferty ze zbioru testowego) zostaną zwrócone w wynikach wyszukiwania. Jednak nie zawsze tak się dzieje. 

Załóżmy sytuację, w której klienta interesują “hotele na Ibizie” (domyślnie na wyspie Ibiza) i taką frazę wpisuje do wyszukiwarki. W opisach ofert natomiast mamy podane tylko nazwy miejscowości, w których znajdują się hotele: Ibiza (miasto), Sant Antoni de Portmany, Sant Carles de Peralta. W przypadku wyszukiwarki pełnotekstowej, zostaną znalezione hotele tylko dla miejscowości Ibiza ze względu na tekstowe dopasowanie. Oferty do pozostałych miejscowości nie zostaną zwrócone, co oznacza, że nasza wyszukiwarka nie znalazła wszystkich poprawnych ofert, a tym samym Recall dla tego zapytania jest mniejsze od 1.

Z takim problemem może poradzić sobie wyszukiwarka, która potrafi powiązać miejscowość z obszarem geograficznym (w tym przypadku z wyspą Ibiza czy nawet archipelagiem Baleary).    

Jak obliczamy Recall?

Dla zapytania “tydzień wakacji w Grecji” wyszukiwarka znalazła 3 oferty A, B, C  a spodziewaliśmy się ofert B, C, D i E. Recall wynosi w tym przypadku 2/4, ponieważ tylko dwie z czterech (B oraz C) oczekiwanych ofert zostały znalezione przez wyszukiwarkę.

F1-score

Metryka F1, podobnie jak metryka accuracy (trafność), wskazuje dokładność wyników zwracanych przez dany system. Różnica jest jednak taka, że metrykę trafności oblicza się oceniając, ile razy w całym zbiorze danych model dokonał prawidłowej prognozy. Trafność zatem może być wiarygodną metryką tylko wtedy, gdy zestaw testowy jest zrównoważony, a wyszukiwarka zwraca nam zawsze tyle wyników, ile oczekujemy. Z pomocą przychodzi metryka F1, która łączy w sobie metryki precision i recall. Dzięki temu, maksymalizując wynik F1, dążymy również do osiągnięcia maksimum wartości dla precyzji oraz pokrycia. Z tego też względu metryka ta jest bardzo często używana do oceny dokładności narzędzi opartych na uczeniu maszynowym.

Jak obliczamy F1-score?

F1 score obliczamy jako średnią harmoniczną z wartości Precision oraz Recall.

Wyniki

W ramach testu, dla każdego zapytania ze zbioru testowego wykonaliśmy zapytanie do wyszukiwarki pełnotekstowej i Qtravel Search. Otrzymaną listę ofert porównaliśmy z oczekiwanymi (prawidłowymi ofertami) ze zbioru testowego. Następnie obliczyliśmy metryki Precision, Recall, F1 zgodnie z zasadami omówionymi powyżej.

Poniższa tabela przedstawia średnią ze wszystkich wartości metryk Precision, Recall, F1 dla poszczególnych kategorii zapytań.

Tabela 1: Średnia ze wszystkich wartości metryk Precision, Recall, F1 dla poszczególnych kategorii zapytań.

Jak widzimy, wyszukiwarka Qtravel Search zwraca oferty ze znacznie większą precyzją (kolumny Precision) – oferty są bardziej relewantne (dopasowane) do tekstu wpisanego przez użytkownika. Ponadto, wyniki wyszukiwarki Qtravel Search pokrywają większy procent oczekiwanych ofert (kolumna Recall). 

W przypadku poszczególnych kategorii zapytań, porównanie metryk Precision, Recall, F1 wygląda następująco:

Tabela 2: Wyniki Precision, Recall, F1 dla poszczególnych kategorii zapytań.

Jak można zauważyć, w prawie wszystkich kategoriach zapytań wyszukiwarka Qtravel Search znajduje w bazie bardziej relewantne oferty do zapytań użytkownika. Metoda wyszukiwania pełnotekstowego szczególnie źle radzi sobie z zapytaniami o oferty podróży w konkretnym terminie (wskaźniki wynoszą 0), w określonej cenie lub z zapytaniami zawierającymi zwroty semantyczne, takie jak na przykład “hotel przy plaży” czy też “kraje egzotyczne”

Przewaga wyszukiwarki Qtravel Search wynika m.in. z faktu, że posiada narzędzia dedykowane do ekstrakcji danych.  Na przykład, potrafi wykryć w zapytaniu użytkownika wyrażenia, które odpowiadają datom (np.: “lipiec”, “wiosna”, “Boże Narodzenie”),  przedziałom czasowym (np: “7 dni”, “tydzień”, “2 tygodnie”), kategoriom hotelu (np.: “hotel 4*”, “hotel pięciogwiazdkowy”), dzięki czemu jesteśmy w stanie dopasować terminy ofert turystycznych do wskazanych przez użytkownika kryteriów.

Jedynym wyjątkiem kategorii zapytań, dla których metoda wyszukiwania pełnotekstowego okazuje się skuteczniejsza są proste zapytania składające się tylko z nazwy hotelu, np. “Hotel Praia Dourada”. Dzieje się tak, ponieważ algorytm zaimplementowany w “full-text search”  bazuje na częstotliwości występowania fraz w danym dokumencie, co w przypadku krótkich zapytań opartych na słowach-kluczach może dawać dobre rezultaty.

W teście nie uwzględniliśmy wyszukiwania klasycznego opartego na formularzach, ponieważ nie ma możliwości dokładnego odwzorowania użytych zapytań testowych na wyszukiwarkę z polami wyboru. Wynika to z konieczności wypełnienia początkowego formularza wyszukiwania z takimi polami jak:

  • lokalizacja wycieczki – wybór elementów znajdujących się na rozwijanej liście,
  • przedział czasowy wycieczki – dwie dokładne daty wybrane za pomocą kontrolek,
  • liczba osób uczestniczących,
  • daty urodzenia ewentualnych osób niepełnoletnich.

MRR – metryka jakości rankingu 

Mean Reciprocal Rank (MRR) to metryka wykorzystywana w celu oceny jakości rankingowania wyników systemów wyszukiwania informacji. 

Jak obliczamy MRR?

Do obliczenia metryki MRR potrzebujemy zbioru testowego, gdzie do każdego zapytania przypisujemy relewantne oferty. Po otrzymaniu wyników sprawdzamy, na jakiej pozycji (zaczynając od 1) wyświetla się pierwsza relewantna oferta, a  jej odwrotność stanowi reciprocal rank dla danego zapytania. Następnie liczymy średnią z wszystkich wartości i otrzymujemy mean reciprocal rank.

Wyniki

W naszym teście oceniamy kolejność wyświetlania się ofert turystycznych po wprowadzeniu zapytania tekstowego (Qtravel Search oraz wyszukiwarka pełnotekstowa) lub uzupełnieniu formularza (Classic Search). 

Wyszukiwanie klasyczne podzieliliśmy na dwa przypadki:

  1. Przypadek, kiedy użytkownik uzupełnia podstawowy formularz (czyli wybiera destynację wyjazdu, termin oraz liczbę osób), a następnie przystępuje do przeglądania wyników. W tym scenariuszu wyniki będą pokrywały szeroki zakres ofert, ponieważ nie zawężono go dodatkowymi preferencjami, takimi jak na przykład rodzaj wyżywienia czy cena wyjazdu.
  2. Przypadek, kiedy po uzupełnieniu podstawowego formularza użytkownik zaznacza także wybrane filtry zawężające zakres wyświetlanych ofert, a potem przystępuje do przeglądania wyników.

Do testów wykorzystaliśmy zbiór testowy składający się z 50 zapytań i relewantnych ofert, po 5 dla każdej kategorii:

Przykłady par (zapytanie, oczekiwane odpowiedzi) ze zbioru testowego.
Tabela 3: Wyniki MRR dla poszczególnych kategorii zapytań.

Jak widać na powyższej tabeli, wyszukiwarka Qtravel Search najlepiej radzi sobie z rankingowaniem ofert. Przewaga ta wynika z naszych mechanizmów boostowania, które “wypychają do góry” oferty bardziej atrakcyjne dla danego użytkownika oraz, co ważniejsze, nasze narzędzia przetwarzające tekst naturalny potrafią wyhaczyć ważne informacje znajdujące się w obszernych opisach wycieczek, z czym nie radzą sobie pozostałe wyszukiwarki.

Szybkość wyszukiwania 

Oprócz skuteczności wyszukiwania warto zwrócić uwagę na inny ważny aspekt wyszukiwania: szybkość wyszukiwania rozumiana jako czas potrzebny na znalezienie oferty odpowiadającej potrzebom użytkownika. Szczególne znaczenie ma to w przypadku bardziej zaawansowanych czy sprecyzowanych potrzeb użytkownika, na przykład: “interesuje mnie wyjazd do Dominikany w grudniu do hotelu z jacuzzi, golfem kitesurfingiem i wyżywieniem all inclusive z Warszawy”. 

Wyszukiwarka pełnokontekstowa

 

Wyszukiwarka klasyczna

 

Qtravel Search

 

Podsumowanie

Wyszukiwarka Qtravel Search przewyższa inne wyszukiwarki na wielu płaszczyznach – od jakości poprzez łatwość i wygodę użycia. Prezentuje ona najlepsze wyniki w obu testach, potwierdzając możliwość obsłużenia bardzo różnorodnych zapytań wprowadzanych przez użytkowników. W porównaniu do wyszukiwarki pełnotekstowej, wyszukiwarka Qtravel Search jest bieglejsza jeśli chodzi o ekstrakcję informacji z tekstu napisanym językiem naturalnym, co daje wyższą skuteczność w znajdowaniu relewantnych ofert turystycznych. W porównaniu zaś do wyszukiwarki klasycznej, możemy powiedzieć, że jej główną zaletą jest dowolność wprowadzanych preferencji (brak ograniczenia tylko widocznymi na stronie filtrami), co z kolei przyczynia się do lepszych dopasowań ofert, kolejności ich wyświetlania oraz większej przyjemności z korzystania z wyszukiwarki.

Jeśli chcesz samodzielnie sprawdzić działanie naszej wyszukiwarki – zapraszamy do przetestowania jej wersji demonstracyjnej opartej na danych testowych.

Najnowsze posty