Omówienie wyszukiwania semantycznego
Przejdźmy do podstaw wyszukiwania semantycznego:
- Czym różni się od standardowego wyszukiwania leksyktycznego.
- Co to jest osadzanie wektorów?
- Co robią bazy danych wektorów?
Co to jest wyszukiwanie semantyczne?
Standardowe wyszukiwanie leksykalne lub wyszukiwanie słów kluczowych przeszukuje dokumenty poprzez dopasowanie znaków. Na przykład zapytanie "light" pasuje do tekstu "jasne światło", ponieważ znak light pojawia się w dokumencie.
Wyszukiwanie leksykalne można rozszerzyć za pomocą dopasowywania rozmytego; na przykład zapytanie "lights" może nadal odpowiadać tekstowi "jasne światło" lub błędnie napisanym lihgts z powodu wyłączenia jednego znaku (brakującego s, lub zamienionego elementu g i h). Chociaż dopasowywanie rozmyte i inne techniki, takie jak stemming, są przydatne, ta technika musi odpowiadać synonimom lub semantycznie podobnym wyrażeniom: różnym frazom, slangowi, słownictwu technicznemu itd. Aby zapewnić najbardziej odpowiednie wyniki wyszukiwania leksykalnego, autorzy muszą osadzić słowa kluczowe w metadanych lub w samym tekście (co może być niewygodne dla użytkownika).
Wprowadź wyszukiwanie semantyczne. Wyszukiwanie semantyczne nie używa podobieństwa znaków. Zamiast tego używa ona liczbowych reprezentacji pojęć w słowach i frazach. Te reprezentacje liczbowe są nazywane wektorami osadzania lub po prostu osadzaniem.
Jeśli dwa osadzania są liczbowo podobne, są one również semantycznie podobne. Podobieństwo to jest bardziej ogólne niż testowanie nakładania się słów kluczowych, ponieważ jest mało wrażliwe na precyzyjną selekcję lub formułowanie słów kluczowych.
Aby przeprowadzić wyszukiwanie semantyczne, najpierw wygeneruj wektor osadzania zapytania. Następnie porównaj ten wektor z bazą danych wektorów. Osadzanie znajdujące się najbliżej osadzania zapytania są dokumentami najbardziej semantycznie podobnymi do zapytania.
Większość przypadków użycia relacyjnej bazy danych nie obejmuje przechowywania wektorów nwymiarowych i obliczania odległości liczbowej między nimi. Wydajne wyszukiwanie semantyczne wymaga funkcji wektorowej bazy danych .
Osadzanie
Osadzenie to liczbowa reprezentacja semantyki. Osadzanie jest reprezentowane jako wektory n-wymiarowe: tablice n liczb. Każdy wymiar reprezentuje pewną jakość semantyczną określaną przez model osadzania.
Jeśli dwa wektory osadzania wskazują w podobnych kierunkach, reprezentują podobne pojęcia, takie jak "jasne" i "słoneczne". Jeśli wskazują w przeciwnych kierunkach, reprezentują przeciwne pojęcia, takie jak "smutne" i "szczęśliwe". Struktura modelu osadzania i dane szkoleniowe określają, co jest uznawane za podobne i różne.
Osadzanie można stosować do tekstu i dowolnego rodzaju danych, takich jak obrazy lub dźwięk. Krytyczna część polega na przekształcaniu danych w nwymiarowe wektory osadzania na podstawie modelu lub funkcji. Numeryczne podobieństwo osadzeń odwzorowuje semantyczne podobieństwo odpowiadających im danych.
Numeryczne podobieństwo dwóch nwymiarowych wektorów v1 i v2 jest podane przez ich produkt kropkowy, napisany v1·v2. Aby obliczyć produkt kropkowy, pomnóż wartości poszczególnych wymiarów w parze, a następnie zsumuj wynik:
dot_product(v1, v2) = SUM(
v1[0] * v2[0],
v1[1] * v2[1],
...,
v1[n-1] * v2[n-1],
v1[n] * v2[n]
)
Ponieważ osadzanie to wektory jednostkowe (wektory długości jednej), produkt kropki jest równy podobieństwu cosinus wektorów, wartości między -1 (dokładnie przeciwległymi kierunkami) i 1 (dokładnie w tym samym kierunku). Wektory o zerowym podobieństwie cosinusowym są ortogonalne: semantycznie niepowiązane.
Przestrzenie nwymiarowe można wizualizować, projektując je na 3-wymiarową przestrzeń przy użyciu analizy głównych składników (PCA). PCA to standardowa technika zmniejszania wymiarów wektorów. Wynik jest uproszczoną, ale wizualizowalną projekcją n-wymiarowej przestrzeni. Renderowanie reprezentacji dokumentów w ten sposób pokaże, że bardziej podobne dokumenty są pogrupowane w klastrach, podczas gdy dokumenty bardziej różniące się są dalej.
Biorąc pod uwagę te definicje, wykonywanie semantycznego wyszukiwania zapytania względem kolekcji osadzania dokumentów jest proste matematycznie:
- Wygeneruj osadzanie zapytania przy użyciu modelu językowego.
- Oblicz iloczyn skalarny osadzenia zapytania dla wstępnie obliczonego osadzenia każdego dokumentu.
- Sortuj produkty kropkowe, liczby z -1 do 1.
- Najbardziej istotne (semantycznie podobne) dokumenty mają najwyższe wyniki, a najmniej istotne (semantycznie różne) dokumenty mają najniższe wyniki.
Chociaż proste matematycznie, nie jest to proste lub wydajne zapytanie w relacyjnej bazie danych. Aby przechowywać i przetwarzać tego rodzaju zapytanie podobieństwa wektorów, użyj wektorowej bazy danych.
Wektorowe bazy danych
Baza danych wektorów optymalizuje magazyn i obliczanie wektorów wielowymiarowych, takich jak osadzanie. W szczególności bazy danych wektorów zapewniają szybkie i dokładne obliczenia dot-product w celu wykonania zapytania o podobieństwo wektorów.
Wyszukiwania podobieństwa wektorów mają kilka przypadków użycia:
- wyszukiwanie obrazów podobnych do osadzonego obrazu zapytania
- znajdowanie dokumentów semantycznie podobnych do tekstu zapytania
- znajdowanie produktów z podobnymi funkcjami i ocenami dla systemu rekomendacji
Wyszukiwanie semantyczne przeszukuje wektorową bazę danych pod kątem podobieństwa wektora zapytania do każdego przechowywanego wektora. Aplikacje mogą następnie pobierać dane odpowiadające tym osadzeniom.
Istnieje wiele natywnych baz danych wektorów i rozszerzeń bazy danych do wyboru. Następujące usługi platformy Azure mogą pomóc w spełnieniu potrzeb wektorowej bazy danych: