Семантический поиск

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Кросс-энкодеры, двухбашенные модели и позднее взаимодействие)
 
Строка 107: Строка 107:
Пусть задан запрос <tex>q</tex>, коллекция документов
Пусть задан запрос <tex>q</tex>, коллекция документов
-
:<tex>D=\{d_1,d_2,\ldots,d_N\}</tex>
+
<tex>D=\{d_1,d_2,\ldots,d_N\}</tex>
и, возможно, дополнительный контекст <tex>c</tex>. Поисковая система строит функцию релевантности
и, возможно, дополнительный контекст <tex>c</tex>. Поисковая система строит функцию релевантности
-
:<tex>s(q,d\mid c)\in\mathbb{R},</tex>
+
<tex>s(q,d\mid c)\in\mathbb{R},</tex>
после чего упорядочивает документы по убыванию оценки:
после чего упорядочивает документы по убыванию оценки:
-
:<tex>\pi_q=\operatorname{argsort}_{d\in D}\,s(q,d\mid c).</tex>
+
<tex>\pi_q=\operatorname{argsort}_{d\in D}\,s(q,d\mid c).</tex>
Первые <tex>k</tex> документов образуют результат поиска:
Первые <tex>k</tex> документов образуют результат поиска:
-
:<tex>\operatorname{TopK}(q,D)=\{d_{\pi_1},\ldots,d_{\pi_k}\}.</tex>
+
<tex>\operatorname{TopK}(q,D)=\{d_{\pi_1},\ldots,d_{\pi_k}\}.</tex>
Функция <tex>s</tex> может учитывать совпадение слов, статистическую важность терминов, семантическое сходство векторов, отношения между сущностями, категории онтологии, структуру графа, метаданные, качество и актуальность источника.
Функция <tex>s</tex> может учитывать совпадение слов, статистическую важность терминов, семантическое сходство векторов, отношения между сущностями, категории онтологии, структуру графа, метаданные, качество и актуальность источника.
Строка 202: Строка 202:
Одним из базовых представлений является [[TF-IDF]]. Широко используемая функция [[Okapi BM25|BM25]] имеет вид:
Одним из базовых представлений является [[TF-IDF]]. Широко используемая функция [[Okapi BM25|BM25]] имеет вид:
-
:<tex>
+
<tex>
\operatorname{BM25}(q,d)=
\operatorname{BM25}(q,d)=
\sum_{t\in q}
\sum_{t\in q}
Строка 230: Строка 230:
[[Граф знаний]] (англ. ''knowledge graph'') представляет объекты вершинами, а отношения — рёбрами. Поиск может выполняться сопоставлением шаблонов, обходом путей, распространением активации или ранжированием вершин. Упрощённая формула случайного блуждания имеет вид:
[[Граф знаний]] (англ. ''knowledge graph'') представляет объекты вершинами, а отношения — рёбрами. Поиск может выполняться сопоставлением шаблонов, обходом путей, распространением активации или ранжированием вершин. Упрощённая формула случайного блуждания имеет вид:
-
:<tex>
+
<tex>
r(v)=(1-\alpha)p(v)+
r(v)=(1-\alpha)p(v)+
\alpha\sum_{u\in N^-(v)}
\alpha\sum_{u\in N^-(v)}
Строка 251: Строка 251:
В латентно-семантическом анализе строится матрица «термин — документ»
В латентно-семантическом анализе строится матрица «термин — документ»
-
:<tex>X\in\mathbb{R}^{m\times n}</tex>
+
<tex>X\in\mathbb{R}^{m\times n}</tex>
и выполняется сингулярное разложение:
и выполняется сингулярное разложение:
-
:<tex>X=U\Sigma V^{\mathsf T},\qquad X\approx U_k\Sigma_kV_k^{\mathsf T}.</tex>
+
<tex>X=U\Sigma V^T,\qquad X\approx U_k\Sigma_kV_k^T.</tex>
В модели LDA для документа задаётся распределение тем
В модели LDA для документа задаётся распределение тем
-
:<tex>\theta_d\sim\operatorname{Dirichlet}(\alpha),</tex>
+
<tex>\theta_d\sim\operatorname{Dirichlet}(\alpha),</tex>
а для каждой позиции выбираются тема и слово:
а для каждой позиции выбираются тема и слово:
-
:<tex>z_{dn}\sim\operatorname{Categorical}(\theta_d),\qquad w_{dn}\sim\operatorname{Categorical}(\phi_{z_{dn}}).</tex>
+
<tex>z_{dn}\sim\operatorname{Categorical}(\theta_d),\qquad w_{dn}\sim\operatorname{Categorical}(\phi_{z_{dn}}).</tex>
Тематические модели полезны для навигации и кластеризации, но принадлежность к одной теме не гарантирует релевантности.
Тематические модели полезны для навигации и кластеризации, но принадлежность к одной теме не гарантирует релевантности.
Строка 271: Строка 271:
Модели [[Word2vec]], [[GloVe]] и [[FastText]] преобразуют слова в плотные векторы:
Модели [[Word2vec]], [[GloVe]] и [[FastText]] преобразуют слова в плотные векторы:
-
:<tex>w\mapsto\mathbf{v}_w\in\mathbb{R}^m.</tex>
+
<tex>w\mapsto\mathbf{v}_w\in\mathbb{R}^m.</tex>
Косинусное сходство определяется как
Косинусное сходство определяется как
Строка 409: Строка 409:
Пусть для запроса <tex>q</tex> известен релевантный документ <tex>d^+</tex> и набор отрицательных документов <tex>d_1^-,\ldots,d_m^-</tex>. Распространённая контрастная функция потерь имеет вид:
Пусть для запроса <tex>q</tex> известен релевантный документ <tex>d^+</tex> и набор отрицательных документов <tex>d_1^-,\ldots,d_m^-</tex>. Распространённая контрастная функция потерь имеет вид:
-
:<tex>
+
<tex>
\mathcal{L}=-\log
\mathcal{L}=-\log
\frac{\exp(s(q,d^+)/\tau)}
\frac{\exp(s(q,d^+)/\tau)}
Строка 423: Строка 423:
Попарная функция требует, чтобы релевантный документ оценивался выше нерелевантного:
Попарная функция требует, чтобы релевантный документ оценивался выше нерелевантного:
-
:<tex>
+
<tex>
\mathcal{L}_{\mathrm{pair}}=
\mathcal{L}_{\mathrm{pair}}=
\max\bigl(0,\gamma-s(q,d^+)+s(q,d^-)\bigr),
\max\bigl(0,\gamma-s(q,d^+)+s(q,d^-)\bigr),
Строка 444: Строка 444:
После нормализации оценок применяется взвешенная сумма:
После нормализации оценок применяется взвешенная сумма:
-
:<tex>
+
<tex>
s_{\mathrm{hybrid}}(q,d)=
s_{\mathrm{hybrid}}(q,d)=
\lambda s_{\mathrm{lex}}(q,d)+(1-\lambda)s_{\mathrm{sem}}(q,d),
\lambda s_{\mathrm{lex}}(q,d)+(1-\lambda)s_{\mathrm{sem}}(q,d),
Строка 455: Строка 455:
Метод [[Reciprocal Rank Fusion]] использует позиции документов:
Метод [[Reciprocal Rank Fusion]] использует позиции документов:
-
:<tex>
+
<tex>
\operatorname{RRF}(d)=
\operatorname{RRF}(d)=
\sum_{m=1}^{M}\frac{1}{k_0+\operatorname{rank}_m(d)}.
\sum_{m=1}^{M}\frac{1}{k_0+\operatorname{rank}_m(d)}.
Строка 523: Строка 523:
=== Precision и Recall ===
=== Precision и Recall ===
-
:<tex>
+
<tex>
\operatorname{Precision@}k=
\operatorname{Precision@}k=
\frac{\text{число релевантных документов в первых }k}{k},
\frac{\text{число релевантных документов в первых }k}{k},
</tex>
</tex>
-
:<tex>
+
<tex>
\operatorname{Recall@}k=
\operatorname{Recall@}k=
\frac{\text{число найденных релевантных документов}}
\frac{\text{число найденных релевантных документов}}
Строка 538: Строка 538:
=== Mean Reciprocal Rank ===
=== Mean Reciprocal Rank ===
-
:<tex>
+
<tex>
\operatorname{MRR}=
\operatorname{MRR}=
\frac{1}{|Q|}\sum_{q\in Q}\frac{1}{\operatorname{rank}_q}.
\frac{1}{|Q|}\sum_{q\in Q}\frac{1}{\operatorname{rank}_q}.
Строка 545: Строка 545:
=== nDCG ===
=== nDCG ===
-
:<tex>
+
<tex>
\operatorname{DCG@}k=
\operatorname{DCG@}k=
\sum_{i=1}^{k}\frac{2^{\operatorname{rel}_i}-1}{\log_2(i+1)},
\sum_{i=1}^{k}\frac{2^{\operatorname{rel}_i}-1}{\log_2(i+1)},
</tex>
</tex>
-
:<tex>
+
<tex>
\operatorname{nDCG@}k=
\operatorname{nDCG@}k=
\frac{\operatorname{DCG@}k}{\operatorname{IDCG@}k}.
\frac{\operatorname{DCG@}k}{\operatorname{IDCG@}k}.

Текущая версия

Содержание

Семантический поиск (англ. semantic search) — совокупность методов информационного поиска, предназначенных для сопоставления запросов и документов с учётом их значения, контекста, отношений между понятиями и предполагаемой информационной потребности пользователя. В отличие от поиска, основанного только на буквальном совпадении слов, семантический поиск может учитывать синонимию, многозначность, тематическую близость, связи между сущностями, структуру предметной области и контекст запроса.

Термин «семантический поиск» не обозначает один определённый алгоритм. К нему относят использование тезаурусов и онтологий, поиск по графам знаний, методы дистрибутивной семантики, тематические модели, нейросетевые модели представления текста, обучение ранжированию и гибридные системы, объединяющие лексические и семантические сигналы.

Семантический поиск не обязательно заменяет традиционный поиск по словам. Точные совпадения особенно важны для имён, кодов, цитат, чисел, названий организаций и специальных терминов. Поэтому современные поисковые системы обычно объединяют инвертированный индекс, векторный поиск, модели ранжирования, графы знаний и фильтры по метаданным.

Терминология

В широком смысле семантика поиска связана с вопросом о том, насколько содержание документа соответствует информационной потребности пользователя. При этом различают:

  • лексическое совпадение (англ. lexical matching) — наличие одинаковых или морфологически связанных слов в запросе и документе;
  • семантическое сходство (англ. semantic similarity) — близость значений двух текстов;
  • релевантность (англ. relevance) — практическая полезность документа для конкретного запроса;
  • намерение пользователя (англ. search intent) — задача, которую пользователь пытается решить;
  • контекст — сведения, влияющие на интерпретацию запроса: предыдущие реплики, предметная область, язык, время, местоположение и другие факторы;
  • поисковый кандидат (англ. retrieval candidate) — документ, выбранный быстрым первым этапом для последующей более точной оценки.

Семантическое сходство не тождественно релевантности. Например, документы «причины высокой температуры» и «как повысить температуру тела» могут содержать похожие слова и относиться к одной теме, но отвечают на разные информационные потребности. Полноценная поисковая система должна учитывать отрицания, направление отношений, временные ограничения и тип требуемого ответа.

Векторный поиск (англ. vector search) также не является полным синонимом семантического поиска. Это технический способ находить близкие объекты в векторном пространстве. Насколько найденная близость отражает смысл и релевантность, зависит от модели представления, данных обучения, функции сходства и способа индексирования.

История

Исследования автоматического поиска информации начались задолго до появления современных нейронных сетей. В 1950—1970-х годах развивались методы индексирования документов, статистической оценки важности терминов и представления текстов в виде числовых векторов. Одной из основных моделей стала векторная модель, в которой запрос и документ рассматриваются как точки в пространстве терминов, а их близость определяется, например, косинусной мерой.[1]

В 1980—1990-х годах появились методы выявления скрытой структуры коллекции документов. Латентно-семантический анализ использовал сингулярное разложение матрицы, чтобы перейти от отдельных терминов к латентным направлениям, приблизительно соответствующим темам или совместно встречающимся группам слов.[1] Позднее были предложены вероятностный латентно-семантический анализ и латентное размещение Дирихле.[1][1]

Параллельно развивались символические методы представления знаний. Лексические сети, такие как WordNet, описывали синонимические группы и отношения между значениями слов.[1] Исследования семантической паутины привели к распространению форматов RDF и OWL.[1][1]

В 2010-х годах широкое распространение получили распределённые векторные представления слов, включая Word2vec, GloVe и FastText. Следующий этап был связан с контекстуальными языковыми моделями, в частности BERT, в которых представление слова зависит от окружающего текста.[1]

В 2020-х годах основными направлениями стали плотный нейросетевой поиск (англ. dense retrieval), обучаемые разреженные представления (англ. learned sparse retrieval), позднее взаимодействие токенов (англ. late interaction), гибридное ранжирование и использование поиска в системах генерации, дополненной поиском.

Формальная постановка задачи

Пусть задан запрос q, коллекция документов

D=\{d_1,d_2,\ldots,d_N\}

и, возможно, дополнительный контекст c. Поисковая система строит функцию релевантности

s(q,d\mid c)\in\mathbb{R},

после чего упорядочивает документы по убыванию оценки:

\pi_q=\operatorname{argsort}_{d\in D}\,s(q,d\mid c).

Первые k документов образуют результат поиска:

\operatorname{TopK}(q,D)=\{d_{\pi_1},\ldots,d_{\pi_k}\}.

Функция s может учитывать совпадение слов, статистическую важность терминов, семантическое сходство векторов, отношения между сущностями, категории онтологии, структуру графа, метаданные, качество и актуальность источника.

Во многих системах различают два этапа:

  1. извлечение кандидатов (англ. candidate retrieval) — быстрый поиск сравнительно небольшого множества потенциально релевантных документов;
  2. переранжирование (англ. reranking) — более точная, но вычислительно дорогая оценка найденных кандидатов.

Общая архитектура

Обработка коллекции

Документы очищаются, разбиваются на фрагменты, снабжаются метаданными и преобразуются в индексируемое представление. Разбиение на фрагменты называется чанкингом (англ. chunking). Слишком короткие фрагменты теряют контекст, а слишком длинные могут содержать несколько тем.

На этом этапе выполняются токенизация, лемматизация, выделение именованных сущностей, связывание сущностей (англ. entity linking), тематическая классификация, вычисление эмбеддингов, построение графов и сохранение терминов в инвертированном индексе.

Анализ запроса

Система может определять язык, исправлять опечатки, выделять сущности, распознавать намерение пользователя и преобразовывать запрос в одно или несколько представлений. Например, запрос «ягуар скорость» может относиться к животному или автомобилю.

Извлечение кандидатов и переранжирование

Для первоначального поиска применяются инвертированный индекс, поиск по онтологии, обход графа знаний, поиск ближайших векторов, обучаемый разреженный поиск и объединение нескольких индексов. Найденные кандидаты затем оцениваются более сложной моделью, способной учитывать взаимное расположение слов, структуру текста, свежесть источника и другие признаки.

Постобработка

После ранжирования применяются фильтрация, устранение дубликатов, диверсификация результатов, проверка прав доступа, группировка по темам и формирование объяснений.

Основные подходы

Подход Основное представление Преимущества Ограничения
Лексический и вероятностный поиск Термины, частоты, инвертированный индекс Высокая скорость, интерпретируемость, точный поиск названий и редких терминов Ограниченный учёт синонимов и перефразировок
Онтологии и тезаурусы Понятия, классы, явно заданные отношения Объяснимость и логические ограничения Высокая стоимость разработки и сопровождения
Графы знаний Сущности и отношения Поддержка структурированных и многошаговых запросов Неполнота графа и ошибки связывания сущностей
Латентные и тематические модели Скрытые факторы или распределения по темам Выявление общей тематики, снижение размерности Ограниченный учёт порядка слов
Плотные нейросетевые представления Один вектор запроса и один вектор документа Работа с перефразировками, быстрый поиск после индексирования Потеря деталей и зависимость от обучающих данных
Позднее взаимодействие Векторы отдельных токенов Точное сопоставление частей запроса и документа Более крупный индекс
Обучаемый разреженный поиск Взвешенные термины расширенного словаря Совместимость с инвертированным индексом Рост индекса и стоимость обучения
Гибридный поиск Несколько представлений одновременно Устойчивость к разным типам запросов Необходимость настройки объединения

Лексические и вероятностные методы

Одним из базовых представлений является TF-IDF. Широко используемая функция BM25 имеет вид:


\operatorname{BM25}(q,d)=
\sum_{t\in q}
\operatorname{IDF}(t)
\frac{f(t,d)(k_1+1)}
{f(t,d)+k_1\left(1-b+b\frac{|d|}{\operatorname{avgdl}}\right)}.

Здесь f(t,d) — частота термина, |d| — длина документа, \operatorname{avgdl} — средняя длина документа, k_1 и b — параметры модели. BM25 остаётся сильным базовым методом при сравнении с нейросетевыми системами.[1]

Онтологии, тезаурусы и графы знаний

Онтология представляет предметную область через классы объектов, свойства, отношения и формальные ограничения. Поиск на её основе включает распознавание сущностей, связывание с понятиями, расширение запроса (англ. query expansion), применение логических правил и ранжирование.

В RDF знания задаются тройками «субъект — предикат — объект», например (Париж, столица государства, Франция). OWL позволяет описывать классы, эквивалентность, несовместимость и ограничения на свойства.

Граф знаний (англ. knowledge graph) представляет объекты вершинами, а отношения — рёбрами. Поиск может выполняться сопоставлением шаблонов, обходом путей, распространением активации или ранжированием вершин. Упрощённая формула случайного блуждания имеет вид:


r(v)=(1-\alpha)p(v)+
\alpha\sum_{u\in N^-(v)}
\frac{w_{uv}}{\sum_{z\in N^+(u)}w_{uz}}r(u).

Для связи текста с графом требуется связывание сущностей. Графы знаний часто используются совместно с обычным текстовым индексом.[1]

Латентные и тематические модели

В латентно-семантическом анализе строится матрица «термин — документ»

X\in\mathbb{R}^{m\times n}

и выполняется сингулярное разложение:

X=U\Sigma V^T,\qquad X\approx U_k\Sigma_kV_k^T.

В модели LDA для документа задаётся распределение тем

\theta_d\sim\operatorname{Dirichlet}(\alpha),

а для каждой позиции выбираются тема и слово:

z_{dn}\sim\operatorname{Categorical}(\theta_d),\qquad w_{dn}\sim\operatorname{Categorical}(\phi_{z_{dn}}).

Тематические модели полезны для навигации и кластеризации, но принадлежность к одной теме не гарантирует релевантности.

Дистрибутивные и контекстуальные представления

Модели Word2vec, GloVe и FastText преобразуют слова в плотные векторы:

w\mapsto\mathbf{v}_w\in\mathbb{R}^m.

Косинусное сходство определяется как


\cos(\mathbf{v}_a,\mathbf{v}_b)
=
\frac{\mathbf{v}_a^T\mathbf{v}_b}
{\|\mathbf{v}_a\|_2\|\mathbf{v}_b\|_2}

Word2vec обучает представления через предсказание слова по контексту или контекста по слову.[1] GloVe использует глобальную статистику совместной встречаемости слов.[1]

В контекстуальных моделях представление слова зависит от предложения. Sentence-BERT специально обучается для сравнения предложений по косинусному сходству.[1]

Кросс-энкодеры, двухбашенные модели и позднее взаимодействие

Кросс-энкодер (англ. cross-encoder) получает запрос и документ одновременно:


\mathbf{h}_{\mathrm{CLS}}
=
\operatorname{Encoder}_\theta
([\mathrm{CLS}],q,[\mathrm{SEP}],d,[\mathrm{SEP}]),
\qquad
s_{\mathrm{CE}}(q,d)
=
\mathbf{w}^{T}\mathbf{h}_{\mathrm{CLS}}+b

Он обеспечивает точное сопоставление, но требует отдельной обработки каждой пары и обычно используется для переранжирования.[1]

В двухбашенной архитектуре (англ. bi-encoder, dual encoder) запрос и документ кодируются независимо:


\mathbf{q}=f_\theta(q),
\qquad
\mathbf{d}=g_\phi(d)

Оценка соответствия задаётся скалярным произведением или косинусной близостью. Известным примером такой архитектуры является Dense Passage Retriever.[1]

В моделях позднего взаимодействия сохраняются векторные представления отдельных токенов. В модели ColBERT оценка соответствия вычисляется по формуле:


s_{\mathrm{ColBERT}}(q,d)
=
\sum_{i=1}^{|q|}
\max_{1\leq j\leq |d|}
\mathbf{q}_i^{T}\mathbf{d}_j

Для каждого токена запроса выбирается наиболее близкий токен документа, после чего полученные значения суммируются.[1]

Обучаемые разреженные представления

Разреженные нейросетевые модели формируют вектор размерности словаря, в котором большинство координат равны нулю. Они могут активировать не только слова документа, но и семантически связанные термины. К этому направлению относятся SPLADE и DeepImpact.[1][1]

Обучение моделей

Источники обучающих данных

Для обучения поисковых моделей используются экспертные оценки релевантности, пары «вопрос — ответ», переходы пользователей по результатам, время взаимодействия с документом, поисковые журналы, ссылки и цитирования, слабая разметка и автоматически сгенерированные запросы.

Поведение пользователей является удобным, но смещённым источником разметки: пользователь чаще нажимает на результаты, уже расположенные высоко, а отсутствие перехода не обязательно означает нерелевантность.

Контрастное обучение

Пусть для запроса q известен релевантный документ d^+ и набор отрицательных документов d_1^-,\ldots,d_m^-. Распространённая контрастная функция потерь имеет вид:


\mathcal{L}=-\log
\frac{\exp(s(q,d^+)/\tau)}
{\exp(s(q,d^+)/\tau)+\sum_{i=1}^{m}\exp(s(q,d_i^-)/\tau)},

где \tau — температура (англ. temperature).

Тематически близкие, но нерелевантные документы называются сложными отрицательными примерами (англ. hard negatives). Среди них могут оказаться неразмеченные релевантные документы — ложные отрицательные примеры (англ. false negatives).

Попарные и списочные функции потерь

Попарная функция требует, чтобы релевантный документ оценивался выше нерелевантного:


\mathcal{L}_{\mathrm{pair}}=
\max\bigl(0,\gamma-s(q,d^+)+s(q,d^-)\bigr),

где \gamma — требуемый отступ.

В списочном обучении (англ. listwise learning) рассматривается сразу множество документов. Модель может оптимизировать вероятность правильного порядка или приближение поисковой метрики, например nDCG.

Дистилляция знаний

При дистилляции знаний сложная модель-учитель, например кросс-энкодер, создаёт оценки для большого числа пар. Более быстрая модель-ученик обучается воспроизводить эти оценки.

Гибридный поиск

Лексические и нейросетевые методы совершают разные ошибки. Плотная модель хорошо находит перефразировки, но может пропустить редкий код или фамилию. BM25 сохраняет точные совпадения, но может не найти синонимичную формулировку.

Линейное объединение

После нормализации оценок применяется взвешенная сумма:


s_{\mathrm{hybrid}}(q,d)=
\lambda s_{\mathrm{lex}}(q,d)+(1-\lambda)s_{\mathrm{sem}}(q,d),

где \lambda\in[0,1] регулирует вклад лексического поиска.

Reciprocal Rank Fusion

Метод Reciprocal Rank Fusion использует позиции документов:


\operatorname{RRF}(d)=
\sum_{m=1}^{M}\frac{1}{k_0+\operatorname{rank}_m(d)}.

[1]

Многоэтапное ранжирование

Распространённая схема включает:

  1. BM25, разреженный ретривер или плотную модель для поиска кандидатов;
  2. объединение кандидатов из нескольких источников;
  3. кросс-энкодер для переранжирования;
  4. модель, учитывающую качество и свежесть;
  5. фильтрацию, устранение дубликатов и диверсификацию.

Индексирование и масштабирование

Инвертированный индекс

В инвертированном индексе для каждого термина хранится список документов, в которых он встречается. Дополнительно могут храниться позиции слов, частоты, поля документа и предварительно вычисленные веса.

Приближённый поиск ближайших соседей

Для плотных представлений применяются методы приближённого поиска ближайших соседей (англ. approximate nearest-neighbor search, ANN): графы HNSW, инвертированные файловые индексы, кластеризация, квантование и локально-чувствительное хеширование.

HNSW строит многоуровневый граф, по которому поиск постепенно приближается к области ближайших векторов.[1]

Библиотека Faiss предоставляет методы поиска и кластеризации плотных векторов, включая реализации для графических процессоров.[1]

Приближённый индекс вводит компромисс между скоростью, памятью и полнотой поиска.

Оценка качества

Для оценки поисковой системы создаётся набор запросов и суждений о релевантности документов — qrels (англ. query relevance judgments).

Precision и Recall


\operatorname{Precision@}k=
\frac{\text{число релевантных документов в первых }k}{k},


\operatorname{Recall@}k=
\frac{\text{число найденных релевантных документов}}
{\text{общее число релевантных документов}}.

Для извлечения кандидатов особенно важна полнота: документ, не найденный на первом этапе, не может быть восстановлен переранжированием.

Mean Reciprocal Rank


\operatorname{MRR}=
\frac{1}{|Q|}\sum_{q\in Q}\frac{1}{\operatorname{rank}_q}.

nDCG


\operatorname{DCG@}k=
\sum_{i=1}^{k}\frac{2^{\operatorname{rel}_i}-1}{\log_2(i+1)},


\operatorname{nDCG@}k=
\frac{\operatorname{DCG@}k}{\operatorname{IDCG@}k}.

[1]

Бенчмарки

BEIR содержит разнородные наборы данных для проверки переноса поисковых моделей между предметными областями.[1]

MTEB оценивает текстовые эмбеддинги в поиске, классификации, кластеризации, семантическом сходстве и других задачах.[1]

Для русского языка предложен бенчмарк ruMTEB, включающий задачи семантического сходства, классификации, переранжирования и поиска.[1]

Онлайн-оценка

В работающих системах измеряются частота переходов, доля успешных поисковых сессий, число переформулировок, время до нахождения ответа, пользовательская оценка, задержка ответа и вычислительная стоимость. Поведенческие метрики могут быть смещены и не всегда отражают истинную полезность.

Качество рекомендуется проверять отдельно на коротких и длинных запросах, редких сущностях, числах и датах, отрицаниях, перефразировках, опечатках, новых документах, разных языках и неоднозначных формулировках.

Применение

Веб-поиск

Семантические методы используются для распознавания сущностей, исправления и расширения запросов, формирования информационных панелей и ранжирования веб-страниц.

Корпоративный поиск

Семантический поиск применяется к внутренним инструкциям, отчётам, договорам, базам знаний и переписке. Важны соблюдение прав доступа, работа с отраслевой терминологией и указание источника.

Электронная коммерция

Запрос «лёгкая непромокаемая куртка для осени» должен быть связан с атрибутами товаров, даже если описание использует слова «водоотталкивающая» или «демисезонная».

Медицинский и научный поиск

В научных системах используются термины, онтологии, цитирования, авторские связи и семантические представления аннотаций. В медицине особенно важны точность терминов и происхождение данных.

Поиск программного кода

Запрос может описывать требуемое поведение естественным языком, а система — находить функции или фрагменты программы с похожей функциональностью. Синтаксическое сходство и сходство поведения не всегда совпадают.

Диалоговые системы и RAG

В системах генерации, дополненной поиском (англ. retrieval-augmented generation, RAG), сначала находятся документы, а затем языковая модель формирует ответ на их основе.[1]

Нерелевантный, устаревший или намеренно вредоносный фрагмент может повлиять на сгенерированный ответ. Поэтому необходимы проверка источников, фильтрация, цитирование и оценка соответствия ответа найденным материалам.

Ограничения и проблемы

Неоднозначность и семантический дрейф

Короткий запрос может иметь несколько интерпретаций. Семантический дрейф (англ. semantic drift) возникает, когда расширение запроса или поиск близких векторов уводит систему к связанной, но другой теме.

Отрицания, числа и точные значения

Модели могут переоценивать сходство предложений, различающихся отрицанием. Небольшое изменение числа, даты, дозировки, артикула или версии программы может полностью менять ответ, но слабо влиять на общий вектор текста.

Длинные документы

Один вектор может недостаточно точно представлять документ с несколькими темами. Чанкинг решает часть проблемы, но требует выбора размера фрагмента, перекрытия и способа сохранения контекста.

Доменный сдвиг и многоязычность

Доменный сдвиг (англ. domain shift) возникает, когда рабочие данные отличаются от обучающих. Модель, обученная на веб-страницах, может хуже работать с юридическими или медицинскими текстами. Качество разных языков в одной модели также может различаться.

Неполнота графов и объяснимость

Отсутствие факта в графе не означает его ложность. Для плотного нейросетевого поиска объяснить близость двух векторов сложнее, чем показать совпавшие слова в лексическом поиске.

Смещения, конфиденциальность и безопасность

Модели наследуют статистические смещения обучающих данных. Индексы и эмбеддинги могут содержать конфиденциальную информацию. В корпоративных системах права доступа должны проверяться до передачи фрагментов языковой модели. Системы RAG уязвимы к намеренно добавленным документам с ложной информацией или инструкциями для модели.

Вычислительная стоимость

На практике приходится искать компромисс между качеством, задержкой, объёмом памяти и стоимостью вычислений.

Современные направления исследований

Универсальные и инструктивные эмбеддинги

Модели семейства E5 обучаются на разнородных парах текстов с использованием слабой разметки и контрастной функции потерь.[1]

Большие языковые модели используются для создания синтетических обучающих данных для эмбеддингов.[1]

BGE-M3 объединяет плотный, разреженный и многовекторный режимы поиска и поддерживает многоязычные тексты и длинные входные последовательности.[1]

Генеративное расширение запроса

В методе HyDE языковая модель создаёт гипотетический документ, который мог бы отвечать на запрос. Вектор этого документа используется для поиска реальных материалов.[1]

Графово-усиленный поиск

KG²RAG получает семантически близкие исходные фрагменты, затем расширяет и упорядочивает их с помощью графа знаний.[1]

GNN-Ret строит граф фрагментов по структурным и лексическим связям и применяет графовую нейронную сеть для ранжирования.[1]

Русскоязычные эмбеддинги

В 2025 году была представлена модель GigaEmbeddings, обученная с использованием контрастного предварительного обучения, сложных отрицательных примеров и многозадачной настройки; модель оценивалась на ruMTEB.[1]

Мультимодальный, временной и объяснимый поиск

Мультимодальные модели помещают текст, изображения, звук и видео в совместное пространство. Временной поиск учитывает изменение коллекции и значения терминов. Объяснимый поиск выделяет совпавшие фрагменты, пути в графе знаний и активированные термины разреженной модели.

Отличие от преимущественно лексического поиска

Свойство Преимущественно лексический поиск Семантический поиск
Основной сигнал Совпадение терминов Значение, контекст, понятия и отношения
Перефразировки Могут быть пропущены Часто распознаются лучше
Редкие имена и коды Обычно обрабатываются хорошо Могут быть потеряны в общем векторе
Объяснимость Относительно высокая Зависит от метода
Требования к обучению Могут быть минимальными Часто нужны корпуса, разметка или внешняя база знаний
Вычислительная стоимость Обычно ниже Может быть значительно выше
Типичная ошибка Не найден документ с другой формулировкой Найден близкий по теме, но нерелевантный документ

Противопоставление условно: современные семантические системы почти всегда сохраняют лексические компоненты.

См. также

Примечания

Литература

  • Salton G., Wong A., Yang C. S. A Vector Space Model for Automatic Indexing // Communications of the ACM. — 1975. — Т. 18. — № 11. — С. 613—620.
  • Deerwester S., Dumais S. T., Furnas G. W., Landauer T. K., Harshman R. Indexing by Latent Semantic Analysis // Journal of the American Society for Information Science. — 1990. — Т. 41. — № 6. — С. 391—407.
  • Robertson S., Zaragoza H. The Probabilistic Relevance Framework: BM25 and Beyond // Foundations and Trends in Information Retrieval. — 2009. — Т. 3. — № 4. — С. 333—389.
  • Manning C. D., Raghavan P., Schütze H. Introduction to Information Retrieval. — Cambridge: Cambridge University Press, 2008. — ISBN 978-0-521-86571-5
  • Reinanda R., Meij E., de Rijke M. Knowledge Graphs: An Information Retrieval Perspective. — Boston: Now Publishers, 2020. — (Foundations and Trends in Information Retrieval).
  • Devlin J., Chang M.-W., Lee K., Toutanova K. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding // Proceedings of NAACL-HLT. — 2019. — С. 4171—4186.
  • Reimers N., Gurevych I. Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks // Proceedings of EMNLP-IJCNLP. — 2019. — С. 3982—3992.
  • Karpukhin V. et al. Dense Passage Retrieval for Open-Domain Question Answering // Proceedings of EMNLP. — 2020. — С. 6769—6781.
  • Khattab O., Zaharia M. ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT // Proceedings of SIGIR. — 2020. — С. 39—48.
  • Formal T., Piwowarski B., Clinchant S. SPLADE: Sparse Lexical and Expansion Model for First Stage Ranking // Proceedings of SIGIR. — 2021. — С. 2288—2292.
  • Thakur N., Reimers N., Rücklé A., Srivastava A., Gurevych I. BEIR: A Heterogeneous Benchmark for Zero-shot Evaluation of Information Retrieval Models // NeurIPS Datasets and Benchmarks. — 2021.
  • Muennighoff N. et al. MTEB: Massive Text Embedding Benchmark // Proceedings of EACL. — 2023. — С. 2014—2037.
  • Gao L., Ma X., Lin J., Callan J. Precise Zero-Shot Dense Retrieval without Relevance Labels // Proceedings of ACL. — 2023. — С. 1762—1777.
  • Wang L., Yang N., Huang X., Yang L., Majumder R., Wei F. Improving Text Embeddings with Large Language Models // Proceedings of the 62nd Annual Meeting of the Association for Computational Linguistics. — 2024. — С. 11897—11916.
  • Chen J., Xiao S., Zhang P., Luo K., Lian D., Liu Z. BGE M3-Embedding: Multi-Lingual, Multi-Functionality, Multi-Granularity Text Embeddings Through Self-Knowledge Distillation // arXiv. — 2024. — № 2402.03216.
  • Snegirev A., Tikhonova M., Maksimova A., Fenogenova A., Abramov A. The Russian-focused embedders’ exploration: ruMTEB benchmark and Russian embedding model design // Proceedings of NAACL. — 2025. — С. 236—254.
  • Zhu X., Xie Y., Liu Y., Li Y., Hu W. Knowledge Graph-Guided Retrieval Augmented Generation // Proceedings of NAACL. — 2025. — С. 8912—8924.
  • Li Z., Guo Q., Shao J., Song L., Bian J., Zhang J., Wang R. Graph Neural Network Enhanced Retrieval for Question Answering of Large Language Models // Proceedings of NAACL. — 2025. — С. 6612—6633.
  • Kolodin E., Ianina A. GigaEmbeddings — Efficient Russian Language Embedding Model // Proceedings of the 10th Workshop on Slavic Natural Language Processing. — 2025. — С. 17—24.
  • RDF 1.1 Concepts and Abstract Syntax // World Wide Web Consortium. 2026-07-26.
  • OWL 2 Web Ontology Language: Structural Specification and Functional-Style Syntax // World Wide Web Consortium. 2026-07-26.
Личные инструменты