Векторно търсене (семантично търсене)
Бързо определение
Векторното търсене е метод за извличане, който връща елементите, чиито вграждания са най-близки до вграждането на запитването, така че резултатите да съвпадат по значение, а не по споделени ключови думи. То е обичайният двигател на семантичното търсене.
На тази страница
Как работи векторното търсене
Всеки документ, пасаж или продукт се превръща в вграждане и се съхранява в индекс. В момента на запитването въпросът се вгражда с същия модел, а индексът връща най-близките вектори, обикновено измерени по косинусна сходство. Клиент, който пита „нещо топло за ски“ може да намери яке, описано като „изолирано, водоустойчиво зимно покритие“, дори и да няма съвпадение на думи.
Сравняването на запитване с милиони вектори един по един би било бавно, така че индексите използват приближени алгоритми за най-близки съседи. HNSW, многослоен граф, описан от Мальков и Яшунін през 2016 г., е един от най-широко използваните; той жертва малка загуба на точност за много бързо търсене. Разширения с отворен код, като pgvector, донесоха тези индекси в PostgreSQL.
Семантично търсене срещу търсене по ключови думи
Търсенето по ключови думи (BM25, търсене на пълен текст, триграмно съвпадение) е прецизно за точни термини: референция на продукт, марка, код на грешка. То не успява с синоними и парафрази. Векторното търсене е обратното: силно по значение, слабо по точни низове и редки идентификатори.
Затова повечето производствени системи използват хибридно търсене: изпълняват и двете, след което обединяват или пренареждат резултатите. Изследванията за плътно извличане, като работата на Карпухин и колеги от 2020 г. по отговор на въпроси, показаха колко много семантичното извличане подобрява припомнянето, а практиците оттогава са научили колко много все още се възползва от партньор по ключови думи.
Капани
Векторното търсене винаги връща нещо, дори когато не съществува нищо релевантно, така че системата се нуждае от праг на релевантност или проверка преди да използва резултатите. То не разбира числа или ограничения: “под 50 евро, налично, размер M” се нуждае от реални филтри върху структурирани данни. А качеството зависи от начина, по който е разделено съдържанието: пасажи, които са твърде дълги, размазват значението, а пасажи, които са твърде кратки, губят контекста.
Векторно търсене в AI SmartTalk
AI SmartTalk съхранява вграждания в PostgreSQL с pgvector, с HNSW индекс върху продуктови документи, и комбинира векторна сходство с триграмно и пълнотекстово търсене. За продуктите, инструментът за търсене на асистента добавя структурирани филтри за цена, наличност, марка, категория и атрибути на варианта, така че семантичен въпрос и прецизен критерий да могат да бъдат отговорени заедно.
Често задавани въпроси
Семантичното търсене същото ли е като векторното търсене?
Семантичното търсене е целта — намиране на резултати по значение. Векторното търсене върху вграждания е най-често срещаният начин да се постигне това, често комбинирано с търсене по ключови думи.
Нуждая ли се от специализирана векторна база данни?
Не непременно. Разширения като pgvector добавят векторни индекси към PostgreSQL, което е достатъчно за много приложения и държи векторите до останалите данни.
Какво е хибридно търсене?
Търсене, което изпълнява векторно търсене и търсене по ключови думи заедно и обединява резултатите, така че да се справя както с парафразирани въпроси, така и с точни термини като референции на продукти.