Плотный поиск
Плотный поиск (англ. dense retrieval) — это подход к информационному поиску, при котором документы и запросы представляются в виде плотных векторных представлений (эмбеддингов) в непрерывном векторном пространстве, а релевантность определяется на основе меры близости между этими векторами. В отличие от традиционного лексического поиска (например, на основе модели TF-IDF или BM25), который опирается на точное совпадение ключевых слов, плотный поиск использует нейронные сети для семантического сопоставления, что позволяет находить релевантные документы даже при отсутствии общих терминов в запросе и тексте.
История
Идея использования векторных представлений для поиска возникла в начале 2010-х годов с развитием методов дистрибутивной семантики, таких как Word2Vec и GloVe. Однако эти модели представляли отдельные слова, а не целые документы. Первые подходы к плотному поиску на уровне документов (например, DSSM, 2013 год) использовали нейронные сети для отображения запросов и документов в общее векторное пространство, но их эффективность уступала лексическим методам.
Прорыв произошёл в 2019 году с появлением модели BERT (Bidirectional Encoder Representations from Transformers). Использование предобученных трансформеров позволило создавать контекстно-зависимые эмбеддинги, значительно улучшив качество семантического поиска. В 2020 году была предложена архитектура DPR (Dense Passage Retrieval), которая стала эталонной для задач поиска ответов на вопросы. С тех пор плотный поиск активно развивается, интегрируясь в поисковые системы, рекомендательные сервисы и диалоговые агенты.
Принцип работы
Плотный поиск состоит из двух основных этапов: индексация и поиск.
Индексация
На этапе индексации каждый документ из коллекции преобразуется в плотный вектор фиксированной размерности (обычно от 128 до 768). Для этого используется нейронная сеть-энкодер (например, BERT, Contriever, GTR). Полученные векторы сохраняются в специализированной базе данных — векторном индексе (например, FAISS, Annoy, ScaNN), который поддерживает быстрый поиск по ближайшим соседям.
Поиск
При поступлении запроса он также преобразуется в вектор с помощью того же энкодера. Затем вычисляется мера близости (чаще всего — косинусное сходство или скалярное произведение) между вектором запроса и всеми векторами документов. Документы с наибольшим значением сходства считаются наиболее релевантными. Для ускорения поиска используются алгоритмы приближённого поиска ближайших соседей (ANN), которые жертвуют незначительной точностью ради высокой скорости.
Классификация
Методы плотного поиска можно классифицировать по нескольким признакам.
По типу обучения
- С учителем (supervised): модели обучаются на парах (запрос, релевантный документ) с использованием контрастивных функций потерь (например, triplet loss, InfoNCE). Примеры: DPR, ColBERT, ANCE.
- Без учителя (unsupervised): эмбеддинги получаются из предобученных языковых моделей без дополнительной настройки на поисковые данные. Примеры: использование эмбеддингов из BERT без дообучения, Sentence-BERT (в некоторых конфигурациях).
- С самоконтролем (self-supervised): модель обучается на синтетически созданных парах, например, с помощью обратного перевода или маскирования частей текста. Пример: Contriever.
По архитектуре
- Одноэнкодерные (bi-encoder): запрос и документ обрабатываются независимо двумя одинаковыми (или раздельными) энкодерами, порождая два вектора. Это наиболее распространённый тип, обеспечивающий высокую скорость индексации.
- Кросс-энкодерные (cross-encoder): запрос и документ подаются в модель вместе, и она выдаёт оценку релевантности. Этот подход точнее, но требует пересчёта для каждой пары на этапе поиска, поэтому обычно используется для ранжирования (re-ranking) небольшого набора кандидатов, полученных bi-encoder’ом.
- Многоэнкодерные (late interaction): компромиссный вариант, при котором эмбеддинги токенов запроса и документа сохраняются отдельно, а релевантность вычисляется на основе их попарного сравнения. Пример: ColBERT.
По области применения
- Поиск по тексту (ad-hoc retrieval): классический поиск документов по текстовому запросу.
- Поиск ответов на вопросы (open-domain QA): поиск коротких фрагментов текста, содержащих ответ на вопрос.
- Поиск по мультимодальным данным: плотный поиск может применяться к изображениям, аудио и видео, если для них построены соответствующие эмбеддинги.
Преимущества и недостатки
Преимущества
- Семантическое понимание: плотный поиск способен находить документы, семантически близкие к запросу, даже если в них нет общих слов. Например, на запрос «автомобиль» может быть найден документ про «машину».
- Устойчивость к синонимии и парафразам: модель обобщает значения, что повышает полноту поиска.
- Поддержка многозначности: благодаря контекстным эмбеддингам одно и то же слово в разных контекстах может иметь разные векторы.
Недостатки
- Высокие вычислительные затраты: обучение и индексация требуют значительных ресурсов (GPU, память). Для больших коллекций (миллиарды документов) индексация может быть дорогой.
- Зависимость от качества обучения: точность плотного поиска сильно зависит от наличия размеченных данных или качества синтетических пар.
- Проблема редких терминов: плотный поиск может хуже справляться с редкими или специфическими терминами, которые редко встречаются в обучающих данных.
- Необходимость обновления: при добавлении новых документов требуется переиндексация, что может быть проблематично в динамических коллекциях.
Применение
Плотный поиск широко используется в различных областях:
- Поисковые системы: многие современные поисковики (например, Google, Bing) используют гибридные подходы, сочетающие лексический и плотный поиск.
- Чат-боты и виртуальные ассистенты: для поиска релевантных ответов в базе знаний.
- Рекомендательные системы: для поиска похожих товаров, фильмов, статей на основе семантики.
- Научные исследования: для поиска релевантных публикаций и патентов.
- Юриспруденция: для поиска судебных решений и нормативных актов по смыслу, а не по точным формулировкам.
Примеры реализаций
- DPR (Dense Passage Retrieval): открытая модель от Facebook (продукт Meta, признанной экстремистской и запрещённой в РФ) AI (Meta — организация признана экстремистской и запрещена в РФ), ставшая стандартом для задач вопросно-ответного поиска.
- Contriever: модель от Meta (организация признана экстремистской и запрещена в РФ), обученная без учителя на больших корпусах текстов.
- ColBERT: модель с поздним взаимодействием, обеспечивающая высокую точность при умеренных вычислительных затратах.
- SPLADE: гибридный подход, сочетающий плотные и разреженные представления.
- GTR (Generalizable T5-based dense Retrievers): модель от Google, основанная на архитектуре T5.
Современные тенденции
Современные исследования в области плотного поиска сосредоточены на нескольких направлениях:
- Гибридный поиск: комбинация плотного и лексического поиска для достижения наилучшего баланса между полнотой и точностью.
- Масштабирование: разработка методов, позволяющих индексировать и искать в коллекциях с миллиардами документов.
- Адаптация к конкретным доменам: дообучение моделей на специализированных корпусах (медицина, юриспруденция, техника).
- Интеграция с большими языковыми моделями (LLM): использование плотного поиска как внешнего источника знаний для генерации ответов (Retrieval-Augmented Generation, RAG).
Источники
- Karpukhin, V., et al. (2020). Dense Passage Retrieval for Open-Domain Question Answering.
- Xiong, L., et al. (2020). Approximate Nearest Neighbor Negative Contrastive Learning for Dense Text Retrieval.
- Khattab, O., & Zaharia, M. (2020). ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT.
- Izacard, G., et al. (2021). Unsupervised Dense Information Retrieval with Contrastive Learning.
- Formal, T., et al. (2021). SPLADE v2: Sparse Lexical and Expansion Model for Information Retrieval.
- Ni, J., et al. (2022). Large Dual Encoders Are Generalizable Retrievers.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →