Szemantikai keresés ismertetése
Tekintsük át a szemantikai keresés alapjait:
- Miben különbözik a hagyományos lexikális kereséstől?
- Mi az a vektoros beágyazás?
- Mit tesznek a vektoradatbázisok?
Mi az a szemantikai keresés?
A szabványos lexikális keresés vagy kulcsszókeresés egyező karakterek alapján lekérdezi a dokumentumokat. Például a "fény" lekérdezés megfelel az "erős fény" szövegnek, mert a karakter light megjelenik a dokumentumban.
A lexikális keresés tetszetős egyezéssel bővíthető; Például a "fények" lekérdezés továbbra is megfelelhet a "világos fény" szövegnek vagy a hibásan írt lihgts szövegnek, mivel egy karakter ki van kapcsolva (hiányzik s, vagy felcseréli az g és h) szöveget. Bár a homályos illesztés és más technikák, mint a stemming hasznosak, ennek a technikának egyeznie kell a szinonimákkal vagy a szemantikailag hasonló kifejezésekkel: különböző megfogalmazásokkal, szlenggel, technikai szókincsekkel, stb. Ahhoz, hogy lexikális kereséssel releváns keresési eredményeket biztosítsanak, a szerzőknek kulcsszavakat kell beágyazniuk a metaadatokba vagy magába a szövegbe (ami a felhasználói élményt kényelmetlenné teheti).
Írja be a szemantikai keresést. A szemantikai keresés nem használ karakter-hasonlóságot. Ehelyett a fogalmak numerikus ábrázolását használja szavakban és kifejezésekben. Ezeket a numerikus ábrázolásokat beágyazási vektoroknak vagy egyszerűen beágyazásoknak nevezzük.
Ha két beágyazás numerikusan hasonló, akkor szemantikailag is hasonlóak. Ez a hasonlóság általánosabb, mint a kulcsszófedés tesztelése, mivel kevésbé érzékeny a kulcsszavak pontos kiválasztására vagy kifejezésére.
Szemantikai keresés végrehajtásához először hozza létre a lekérdezés beágyazási vektorát. Ezután hasonlítsa össze ezt a vektort a vektorok adatbázisával. A lekérdezés beágyazásával legközelebb eső beágyazások azok a dokumentumok, amelyek a lekérdezéssel szemantikailag leginkább hasonlóak.
A legtöbb relációs adatbázis-használati eset nem foglalja magában az n-dimenziós vektorok tárolását és a közöttük lévő numerikus távolság kiszámítását. A hatékony szemantikai kereséshez vektoradatbázis-funkciókra van szükség.
Beágyazások
A beágyazás a szemantikák numerikus ábrázolása. A beágyazások n dimenziós vektorként vannak ábrázolva: n számok tömbjei. Az egyes dimenziók a beágyazási modell által meghatározott szemantikai minőséget képviselik.
Ha két beágyazási vektor hasonló irányba mutat, hasonló fogalmakat jelölnek, például a "fényes" és a "napos" fogalmakat. Ha távolodnak egymástól, ellentétes fogalmakat képviselnek, például a "szomorú" és a "boldog" fogalmakat. A beágyazási modell struktúrája és a betanítási adatok határozzák meg, hogy mi tekinthető hasonlónak és eltérőnek.
A beágyazások alkalmazhatók szövegre és bármilyen adatra, például képekre vagy hanganyagokra. A kritikus rész az adatok átalakítása n-dimenziós beágyazási vektorokká valamilyen modell vagy függvény alapján. A beágyazások numerikus hasonlósága a hozzájuk tartozó adatok szemantikai hasonlóságát tükrözi.
A két n dimenziós vektor numerikus hasonlóságát a v1 adja meg, írva v2. A pont szorzat kiszámításához szorozza össze az egyes dimenziók értékeit páronként, majd összegzi az eredményt:
dot_product(v1, v2) = SUM(
v1[0] * v2[0],
v1[1] * v2[1],
...,
v1[n-1] * v2[n-1],
v1[n] * v2[n]
)
Mivel a beágyazások egységvektorok (az első hossz vektorai), a pont szorzata megegyezik a vektorok koszinusz-hasonlóságával, a -1 (pontosan ellentétes irányok) és az 1 (pontosan azonos irány) közötti értékkel. A nulla koszinusz-hasonlóságú vektorok ortogonálisak: szemantikailag nem kapcsolódnak egymáshoz.
Az n dimenziós tereket úgy jelenítheti meg, hogy 3 dimenziós térbe vetíti őket főkomponens-elemzés (PCA) alkalmazásával. A PCA egy szabványos technika a vektorméretek csökkentésére. Az eredmény az n dimenziós tér egyszerűsített, de megjeleníthető vetítése. Ha így jeleníti meg a dokumentumbeágyazást, az azt mutatja, hogy a hasonló dokumentumok fürtökbe vannak csoportosítva, míg a különböző dokumentumok távolabb vannak.
Ezen definíciók alapján a lekérdezés szemantikai keresésének végrehajtása a dokumentumbeágyazások gyűjteményén egyszerű matematikailag:
- Hozza létre a lekérdezésbeágyazást egy nyelvi modellel.
- Végezze el a lekérdezési beágyazás skaláris szorzatát az egyes dokumentumok előre kiszámított beágyazásával szemben.
- Rendezze a pont termékeket, számokat -1 és 1 között.
- A legrelevánsabb (szemantikailag hasonló) dokumentumok rendelkeznek a legmagasabb pontszámmal, a legkevésbé releváns (szemantikailag eltérő) dokumentumok pedig a legalacsonyabb pontszámokkal.
Bár matematikailag egyszerű, ez nem egy egyszerű vagy végrehajtó lekérdezés egy relációs adatbázisban. Az ilyen típusú vektor-hasonlósági lekérdezés tárolásához és feldolgozásához használjon vektoradatbázist.
Vektoradatbázisok
A vektoradatbázis optimalizálja a többdimenziós vektorok, például a beágyazások tárolását és számítását. A vektoradatbázisok különösen gyors és pontos pont-termék számításokat biztosítanak a vektoros hasonlósági lekérdezések végrehajtásához.
A vektoros hasonlósági keresések több használati esetet is használnak:
- a lekérdezési rendszerkép beágyazásához hasonló képek keresése
- a lekérdezés szövegéhez szemantikailag hasonló dokumentumok keresése
- hasonló funkciókkal és minősítésekkel rendelkező termékek keresése egy javaslati rendszerhez
A szemantikai keresés a vektoradatbázist lekérdezi a lekérdezés beágyazásának és az egyes tárolt beágyazásoknak a hasonlósága alapján. Az alkalmazások ezután lekérhetik a beágyazásoknak megfelelő adatokat.
Számos natív vektoradatbázis és adatbázisbővítmény közül választhat. Az alábbi Azure-szolgáltatások segíthetnek a vektoradatbázis igényeinek kielégítésében: