ИИ и машинное обучение
Что такое семантический поиск?
Семантический поиск (semantic search) — это поиск по смыслу запроса, а не по совпадению слов. Запрос и документы превращают в эмбеддинги, а потом система находит записи, чьи векторы ближе всего к вектору запроса.
Обычный полнотекстовый поиск ищет одинаковые слова, поэтому не справляется с синонимами, опечатками и перефразированием. Семантический поиск найдёт статью «условия возврата товара» по запросу «как вернуть покупку», потому что сравнивает смысл.
Лучше всего на практике работает гибридный подход: результаты полнотекстового и семантического поиска объединяют. Поиск по словам точнее для артикулов, названий и номеров, а семантический — для вопросов обычным языком.
Где применяется
Семантический поиск используют там, где люди формулируют запрос своими словами: база знаний поддержки, внутренний портал с регламентами, каталог товаров, архив статей. Он находит нужное, даже если в документе использованы совсем другие термины.
Отдельно его используют редко. Лучший результат даёт гибридная схема: обычный поиск по словам находит точные совпадения — артикулы, названия, номера, — а векторный добавляет документы, близкие по смыслу. Потом результаты двух списков объединяют и упорядочивают.
Пример
Сотрудник ищет «что делать, если клиент передумал». В регламенте эта ситуация называется «отмена заказа до отгрузки» — ни одного общего слова. Поиск по ключевым словам ничего не найдёт, а семантический вернёт нужный пункт.
Частые вопросы
Чем семантический поиск отличается от поиска по ключевым словам?
Поиск по словам сравнивает символы и находит точные совпадения. Семантический сравнивает векторы смысла, поэтому справляется с синонимами, перефразированием и опечатками. Зато он хуже работает с точными идентификаторами — артикулами, кодами, номерами документов.
Что такое гибридный поиск?
Это сочетание двух подходов: результаты обычного поиска по словам и векторного поиска объединяют и ранжируют вместе. Так система не теряет ни точных совпадений, ни документов, близких по смыслу. Это стандартное решение для большинства рабочих систем.
Нужна ли языковая модель для семантического поиска?
Для самого поиска — нет, хватает модели эмбеддингов, которая значительно меньше и дешевле. Языковая модель нужна дальше, если на основе найденных фрагментов нужно сформулировать связный ответ, а не просто показать список документов.
Как оценить качество семантического поиска?
Собирают набор реальных запросов с заранее известными правильными документами и проверяют, попадает ли нужный результат в первые несколько позиций. Без такой проверки улучшения остаются субъективными, а смена модели может незаметно ухудшить результаты.
Обучение программированию в OWU
Освойте профессию в IT на практических курсах с менторами и реальными проектами.
Выбрать курс