Семантический поиск
Материал из MachineLearning.
| (5 промежуточных версий не показаны.) | |||
| Строка 1: | Строка 1: | ||
| - | |||
| - | |||
| - | |||
{{TOCright}} | {{TOCright}} | ||
| - | '''Семантический поиск''' — | + | |
| + | '''Семантический поиск''' (англ. ''semantic search'') — совокупность методов [[Информационный поиск|информационного поиска]], предназначенных для сопоставления запросов и документов с учётом их значения, контекста, отношений между понятиями и предполагаемой [[Информационная потребность|информационной потребности]] пользователя. В отличие от поиска, основанного только на буквальном совпадении слов, семантический поиск может учитывать [[Синонимия|синонимию]], многозначность, тематическую близость, связи между сущностями, структуру предметной области и контекст запроса. | ||
| + | |||
| + | Термин «семантический поиск» не обозначает один определённый алгоритм. К нему относят использование [[Тезаурус|тезаурусов]] и [[Онтология (информатика)|онтологий]], поиск по [[Граф знаний|графам знаний]], методы [[Дистрибутивная семантика|дистрибутивной семантики]], тематические модели, нейросетевые модели представления текста, [[Обучение ранжированию|обучение ранжированию]] и гибридные системы, объединяющие лексические и семантические сигналы. | ||
| + | |||
| + | Семантический поиск не обязательно заменяет традиционный поиск по словам. Точные совпадения особенно важны для имён, кодов, цитат, чисел, названий организаций и специальных терминов. Поэтому современные поисковые системы обычно объединяют инвертированный индекс, векторный поиск, модели ранжирования, графы знаний и фильтры по метаданным. | ||
| + | |||
| + | == Терминология == | ||
| + | |||
| + | В широком смысле семантика поиска связана с вопросом о том, насколько содержание документа соответствует информационной потребности пользователя. При этом различают: | ||
| + | |||
| + | * '''лексическое совпадение''' (англ. ''lexical matching'') — наличие одинаковых или морфологически связанных слов в запросе и документе; | ||
| + | * '''семантическое сходство''' (англ. ''semantic similarity'') — близость значений двух текстов; | ||
| + | * '''релевантность''' (англ. ''relevance'') — практическая полезность документа для конкретного запроса; | ||
| + | * '''намерение пользователя''' (англ. ''search intent'') — задача, которую пользователь пытается решить; | ||
| + | * '''контекст''' — сведения, влияющие на интерпретацию запроса: предыдущие реплики, предметная область, язык, время, местоположение и другие факторы; | ||
| + | * '''поисковый кандидат''' (англ. ''retrieval candidate'') — документ, выбранный быстрым первым этапом для последующей более точной оценки. | ||
| + | |||
| + | Семантическое сходство не тождественно релевантности. Например, документы «причины высокой температуры» и «как повысить температуру тела» могут содержать похожие слова и относиться к одной теме, но отвечают на разные информационные потребности. Полноценная поисковая система должна учитывать отрицания, направление отношений, временные ограничения и тип требуемого ответа. | ||
| + | |||
| + | '''Векторный поиск''' (англ. ''vector search'') также не является полным синонимом семантического поиска. Это технический способ находить близкие объекты в векторном пространстве. Насколько найденная близость отражает смысл и релевантность, зависит от модели представления, данных обучения, функции сходства и способа индексирования. | ||
== История == | == История == | ||
| - | + | Исследования автоматического поиска информации начались задолго до появления современных нейронных сетей. В 1950—1970-х годах развивались методы индексирования документов, статистической оценки важности терминов и представления текстов в виде числовых векторов. Одной из основных моделей стала [[Векторная модель|векторная модель]], в которой запрос и документ рассматриваются как точки в пространстве терминов, а их близость определяется, например, косинусной мерой.<ref name="salton1975">{{статья | |
| + | |автор=Salton G., Wong A., Yang C. S. | ||
| + | |заглавие=A Vector Space Model for Automatic Indexing | ||
| + | |издание=Communications of the ACM | ||
| + | |год=1975 | ||
| + | |том=18 | ||
| + | |номер=11 | ||
| + | |страницы=613—620 | ||
| + | |doi=10.1145/361219.361220 | ||
| + | |ссылка=https://dl.acm.org/doi/10.1145/361219.361220 | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| - | == | + | В 1980—1990-х годах появились методы выявления скрытой структуры коллекции документов. [[Латентно-семантический анализ]] использовал [[Сингулярное разложение|сингулярное разложение матрицы]], чтобы перейти от отдельных терминов к латентным направлениям, приблизительно соответствующим темам или совместно встречающимся группам слов.<ref name="lsa">{{статья |
| + | |автор=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 | ||
| + | |doi=10.1002/(SICI)1097-4571(199009)41:6<391::AID-ASI1>3.0.CO;2-9 | ||
| + | |язык=en | ||
| + | }}</ref> Позднее были предложены вероятностный латентно-семантический анализ и [[Латентное размещение Дирихле|латентное размещение Дирихле]].<ref name="plsi">{{статья | ||
| + | |автор=Hofmann T. | ||
| + | |заглавие=Probabilistic Latent Semantic Indexing | ||
| + | |издание=Proceedings of the 22nd Annual International ACM SIGIR Conference | ||
| + | |год=1999 | ||
| + | |страницы=50—57 | ||
| + | |doi=10.1145/312624.312649 | ||
| + | |язык=en | ||
| + | }}</ref><ref name="lda">{{статья | ||
| + | |автор=Blei D. M., Ng A. Y., Jordan M. I. | ||
| + | |заглавие=Latent Dirichlet Allocation | ||
| + | |издание=Journal of Machine Learning Research | ||
| + | |год=2003 | ||
| + | |том=3 | ||
| + | |страницы=993—1022 | ||
| + | |ссылка=https://www.jmlr.org/papers/v3/blei03a.html | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| - | + | Параллельно развивались символические методы представления знаний. Лексические сети, такие как [[WordNet]], описывали синонимические группы и отношения между значениями слов.<ref name="wordnet">{{статья | |
| + | |автор=Miller G. A. | ||
| + | |заглавие=WordNet: A Lexical Database for English | ||
| + | |издание=Communications of the ACM | ||
| + | |год=1995 | ||
| + | |том=38 | ||
| + | |номер=11 | ||
| + | |страницы=39—41 | ||
| + | |doi=10.1145/219717.219748 | ||
| + | |язык=en | ||
| + | }}</ref> Исследования [[Семантическая паутина|семантической паутины]] привели к распространению форматов [[Resource Description Framework|RDF]] и [[Web Ontology Language|OWL]].<ref name="rdf">{{cite web | ||
| + | |url=https://www.w3.org/TR/rdf11-concepts/ | ||
| + | |title=RDF 1.1 Concepts and Abstract Syntax | ||
| + | |publisher=World Wide Web Consortium | ||
| + | |lang=en | ||
| + | |accessdate=2026-07-26 | ||
| + | }}</ref><ref name="owl">{{cite web | ||
| + | |url=https://www.w3.org/TR/owl2-syntax/ | ||
| + | |title=OWL 2 Web Ontology Language: Structural Specification and Functional-Style Syntax | ||
| + | |publisher=World Wide Web Consortium | ||
| + | |lang=en | ||
| + | |accessdate=2026-07-26 | ||
| + | }}</ref> | ||
| - | + | В 2010-х годах широкое распространение получили распределённые векторные представления слов, включая [[Word2vec]], [[GloVe]] и [[FastText]]. Следующий этап был связан с контекстуальными языковыми моделями, в частности [[BERT]], в которых представление слова зависит от окружающего текста.<ref name="bert">{{статья | |
| - | + | |автор=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 | |
| - | + | |doi=10.18653/v1/N19-1423 | |
| - | + | |ссылка=https://aclanthology.org/N19-1423/ | |
| - | + | |язык=en | |
| - | + | }}</ref> | |
| - | + | ||
| - | + | В 2020-х годах основными направлениями стали плотный нейросетевой поиск (англ. ''dense retrieval''), обучаемые разреженные представления (англ. ''learned sparse retrieval''), позднее взаимодействие токенов (англ. ''late interaction''), гибридное ранжирование и использование поиска в системах [[Генерация, дополненная поиском|генерации, дополненной поиском]]. | |
| - | + | == Формальная постановка задачи == | |
| - | Пусть | + | Пусть задан запрос <tex>q</tex>, коллекция документов |
| - | = | + | <tex>D=\{d_1,d_2,\ldots,d_N\}</tex> |
| - | + | и, возможно, дополнительный контекст <tex>c</tex>. Поисковая система строит функцию релевантности | |
| - | + | ||
| - | + | ||
| - | + | <tex>s(q,d\mid c)\in\mathbb{R},</tex> | |
| - | <tex>s(q, d) | + | |
| - | + | после чего упорядочивает документы по убыванию оценки: | |
| - | + | <tex>\pi_q=\operatorname{argsort}_{d\in D}\,s(q,d\mid c).</tex> | |
| - | + | Первые <tex>k</tex> документов образуют результат поиска: | |
| - | <tex> | + | |
| - | + | ||
| - | + | <tex>\operatorname{TopK}(q,D)=\{d_{\pi_1},\ldots,d_{\pi_k}\}.</tex> | |
| - | <tex>\ | + | |
| - | + | Функция <tex>s</tex> может учитывать совпадение слов, статистическую важность терминов, семантическое сходство векторов, отношения между сущностями, категории онтологии, структуру графа, метаданные, качество и актуальность источника. | |
| - | + | Во многих системах различают два этапа: | |
| - | + | # '''извлечение кандидатов''' (англ. ''candidate retrieval'') — быстрый поиск сравнительно небольшого множества потенциально релевантных документов; | |
| + | # '''переранжирование''' (англ. ''reranking'') — более точная, но вычислительно дорогая оценка найденных кандидатов. | ||
| - | + | == Общая архитектура == | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | === Обработка коллекции === | |
| - | + | Документы очищаются, разбиваются на фрагменты, снабжаются метаданными и преобразуются в индексируемое представление. Разбиение на фрагменты называется '''чанкингом''' (англ. ''chunking''). Слишком короткие фрагменты теряют контекст, а слишком длинные могут содержать несколько тем. | |
| - | + | На этом этапе выполняются [[Токенизация|токенизация]], [[Лемматизация|лемматизация]], выделение именованных сущностей, связывание сущностей (англ. ''entity linking''), тематическая классификация, вычисление [[Эмбеддинг|эмбеддингов]], построение графов и сохранение терминов в инвертированном индексе. | |
| - | == | + | === Анализ запроса === |
| + | |||
| + | Система может определять язык, исправлять опечатки, выделять сущности, распознавать намерение пользователя и преобразовывать запрос в одно или несколько представлений. Например, запрос «ягуар скорость» может относиться к животному или автомобилю. | ||
| + | |||
| + | === Извлечение кандидатов и переранжирование === | ||
| + | |||
| + | Для первоначального поиска применяются инвертированный индекс, поиск по онтологии, обход графа знаний, поиск ближайших векторов, обучаемый разреженный поиск и объединение нескольких индексов. Найденные кандидаты затем оцениваются более сложной моделью, способной учитывать взаимное расположение слов, структуру текста, свежесть источника и другие признаки. | ||
| + | |||
| + | === Постобработка === | ||
| + | |||
| + | После ранжирования применяются фильтрация, устранение дубликатов, диверсификация результатов, проверка прав доступа, группировка по темам и формирование объяснений. | ||
| + | |||
| + | == Основные подходы == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
| - | ! | + | ! Подход |
| + | ! Основное представление | ||
| + | ! Преимущества | ||
| + | ! Ограничения | ||
|- | |- | ||
| - | | | + | | Лексический и вероятностный поиск |
| + | | Термины, частоты, инвертированный индекс | ||
| + | | Высокая скорость, интерпретируемость, точный поиск названий и редких терминов | ||
| + | | Ограниченный учёт синонимов и перефразировок | ||
|- | |- | ||
| - | | | + | | Онтологии и тезаурусы |
| + | | Понятия, классы, явно заданные отношения | ||
| + | | Объяснимость и логические ограничения | ||
| + | | Высокая стоимость разработки и сопровождения | ||
|- | |- | ||
| - | | | + | | Графы знаний |
| + | | Сущности и отношения | ||
| + | | Поддержка структурированных и многошаговых запросов | ||
| + | | Неполнота графа и ошибки связывания сущностей | ||
|- | |- | ||
| - | | | + | | Латентные и тематические модели |
| + | | Скрытые факторы или распределения по темам | ||
| + | | Выявление общей тематики, снижение размерности | ||
| + | | Ограниченный учёт порядка слов | ||
|- | |- | ||
| - | | | + | | Плотные нейросетевые представления |
| + | | Один вектор запроса и один вектор документа | ||
| + | | Работа с перефразировками, быстрый поиск после индексирования | ||
| + | | Потеря деталей и зависимость от обучающих данных | ||
| + | |- | ||
| + | | Позднее взаимодействие | ||
| + | | Векторы отдельных токенов | ||
| + | | Точное сопоставление частей запроса и документа | ||
| + | | Более крупный индекс | ||
| + | |- | ||
| + | | Обучаемый разреженный поиск | ||
| + | | Взвешенные термины расширенного словаря | ||
| + | | Совместимость с инвертированным индексом | ||
| + | | Рост индекса и стоимость обучения | ||
| + | |- | ||
| + | | Гибридный поиск | ||
| + | | Несколько представлений одновременно | ||
| + | | Устойчивость к разным типам запросов | ||
| + | | Необходимость настройки объединения | ||
|} | |} | ||
| - | == | + | === Лексические и вероятностные методы === |
| + | |||
| + | Одним из базовых представлений является [[TF-IDF]]. Широко используемая функция [[Okapi BM25|BM25]] имеет вид: | ||
| + | |||
| + | <tex> | ||
| + | \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)}. | ||
| + | </tex> | ||
| + | |||
| + | Здесь <tex>f(t,d)</tex> — частота термина, <tex>|d|</tex> — длина документа, <tex>\operatorname{avgdl}</tex> — средняя длина документа, <tex>k_1</tex> и <tex>b</tex> — параметры модели. BM25 остаётся сильным базовым методом при сравнении с нейросетевыми системами.<ref name="bm25">{{статья | ||
| + | |автор=Robertson S., Zaragoza H. | ||
| + | |заглавие=The Probabilistic Relevance Framework: BM25 and Beyond | ||
| + | |издание=Foundations and Trends in Information Retrieval | ||
| + | |год=2009 | ||
| + | |том=3 | ||
| + | |номер=4 | ||
| + | |страницы=333—389 | ||
| + | |doi=10.1561/1500000019 | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | === Онтологии, тезаурусы и графы знаний === | ||
| + | |||
| + | [[Онтология (информатика)|Онтология]] представляет предметную область через классы объектов, свойства, отношения и формальные ограничения. Поиск на её основе включает распознавание сущностей, связывание с понятиями, '''расширение запроса''' (англ. ''query expansion''), применение логических правил и ранжирование. | ||
| + | |||
| + | В RDF знания задаются тройками «субъект — предикат — объект», например <code>(Париж, столица государства, Франция)</code>. OWL позволяет описывать классы, эквивалентность, несовместимость и ограничения на свойства. | ||
| + | |||
| + | [[Граф знаний]] (англ. ''knowledge graph'') представляет объекты вершинами, а отношения — рёбрами. Поиск может выполняться сопоставлением шаблонов, обходом путей, распространением активации или ранжированием вершин. Упрощённая формула случайного блуждания имеет вид: | ||
| + | |||
| + | <tex> | ||
| + | r(v)=(1-\alpha)p(v)+ | ||
| + | \alpha\sum_{u\in N^-(v)} | ||
| + | \frac{w_{uv}}{\sum_{z\in N^+(u)}w_{uz}}r(u). | ||
| + | </tex> | ||
| + | |||
| + | Для связи текста с графом требуется связывание сущностей. Графы знаний часто используются совместно с обычным текстовым индексом.<ref name="kgir">{{книга | ||
| + | |автор=Reinanda R., Meij E., de Rijke M. | ||
| + | |заглавие=Knowledge Graphs: An Information Retrieval Perspective | ||
| + | |место=Boston | ||
| + | |издательство=Now Publishers | ||
| + | |год=2020 | ||
| + | |серия=Foundations and Trends in Information Retrieval | ||
| + | |doi=10.1561/1500000063 | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | === Латентные и тематические модели === | ||
| + | |||
| + | В латентно-семантическом анализе строится матрица «термин — документ» | ||
| + | |||
| + | <tex>X\in\mathbb{R}^{m\times n}</tex> | ||
| + | |||
| + | и выполняется сингулярное разложение: | ||
| + | |||
| + | <tex>X=U\Sigma V^T,\qquad X\approx U_k\Sigma_kV_k^T.</tex> | ||
| + | |||
| + | В модели LDA для документа задаётся распределение тем | ||
| + | |||
| + | <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> | ||
| + | |||
| + | Тематические модели полезны для навигации и кластеризации, но принадлежность к одной теме не гарантирует релевантности. | ||
| + | |||
| + | === Дистрибутивные и контекстуальные представления === | ||
| + | |||
| + | Модели [[Word2vec]], [[GloVe]] и [[FastText]] преобразуют слова в плотные векторы: | ||
| + | |||
| + | <tex>w\mapsto\mathbf{v}_w\in\mathbb{R}^m.</tex> | ||
| + | |||
| + | Косинусное сходство определяется как | ||
| + | |||
| + | <tex> | ||
| + | \cos(\mathbf{v}_a,\mathbf{v}_b) | ||
| + | = | ||
| + | \frac{\mathbf{v}_a^T\mathbf{v}_b} | ||
| + | {\|\mathbf{v}_a\|_2\|\mathbf{v}_b\|_2} | ||
| + | </tex> | ||
| + | |||
| + | Word2vec обучает представления через предсказание слова по контексту или контекста по слову.<ref name="word2vec">{{статья | ||
| + | |автор=Mikolov T., Chen K., Corrado G., Dean J. | ||
| + | |заглавие=Efficient Estimation of Word Representations in Vector Space | ||
| + | |издание=arXiv | ||
| + | |год=2013 | ||
| + | |номер=1301.3781 | ||
| + | |ссылка=https://arxiv.org/abs/1301.3781 | ||
| + | |язык=en | ||
| + | }}</ref> GloVe использует глобальную статистику совместной встречаемости слов.<ref name="glove">{{статья | ||
| + | |автор=Pennington J., Socher R., Manning C. D. | ||
| + | |заглавие=GloVe: Global Vectors for Word Representation | ||
| + | |издание=Proceedings of EMNLP | ||
| + | |год=2014 | ||
| + | |страницы=1532—1543 | ||
| + | |doi=10.3115/v1/D14-1162 | ||
| + | |ссылка=https://aclanthology.org/D14-1162/ | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | В контекстуальных моделях представление слова зависит от предложения. [[Sentence-BERT]] специально обучается для сравнения предложений по косинусному сходству.<ref name="sbert">{{статья | ||
| + | |автор=Reimers N., Gurevych I. | ||
| + | |заглавие=Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks | ||
| + | |издание=Proceedings of EMNLP-IJCNLP | ||
| + | |год=2019 | ||
| + | |страницы=3982—3992 | ||
| + | |doi=10.18653/v1/D19-1410 | ||
| + | |ссылка=https://aclanthology.org/D19-1410/ | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | === Кросс-энкодеры, двухбашенные модели и позднее взаимодействие === | ||
| + | |||
| + | '''Кросс-энкодер''' (англ. ''cross-encoder'') получает запрос и документ одновременно: | ||
| + | |||
| + | <tex> | ||
| + | \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 | ||
| + | </tex> | ||
| + | |||
| + | Он обеспечивает точное сопоставление, но требует отдельной обработки каждой пары и обычно используется для переранжирования.<ref name="bert-reranker">{{статья | ||
| + | |автор=Nogueira R., Cho K. | ||
| + | |заглавие=Passage Re-ranking with BERT | ||
| + | |издание=arXiv | ||
| + | |год=2019 | ||
| + | |номер=1901.04085 | ||
| + | |ссылка=https://arxiv.org/abs/1901.04085 | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | В двухбашенной архитектуре (англ. ''bi-encoder'', ''dual encoder'') запрос и документ кодируются независимо: | ||
| + | |||
| + | <tex> | ||
| + | \mathbf{q}=f_\theta(q), | ||
| + | \qquad | ||
| + | \mathbf{d}=g_\phi(d) | ||
| + | </tex> | ||
| + | |||
| + | Оценка соответствия задаётся скалярным произведением или косинусной близостью. Известным примером такой архитектуры является [[Dense Passage Retrieval|Dense Passage Retriever]].<ref name="dpr">{{статья | ||
| + | |автор=Karpukhin V., Oguz B., Min S., Lewis P., Wu L., Edunov S., Chen D., Yih W.-t. | ||
| + | |заглавие=Dense Passage Retrieval for Open-Domain Question Answering | ||
| + | |издание=Proceedings of EMNLP | ||
| + | |год=2020 | ||
| + | |страницы=6769—6781 | ||
| + | |doi=10.18653/v1/2020.emnlp-main.550 | ||
| + | |ссылка=https://aclanthology.org/2020.emnlp-main.550/ | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | В моделях позднего взаимодействия сохраняются векторные представления отдельных токенов. В модели ColBERT оценка соответствия вычисляется по формуле: | ||
| + | |||
| + | <tex> | ||
| + | s_{\mathrm{ColBERT}}(q,d) | ||
| + | = | ||
| + | \sum_{i=1}^{|q|} | ||
| + | \max_{1\leq j\leq |d|} | ||
| + | \mathbf{q}_i^{T}\mathbf{d}_j | ||
| + | </tex> | ||
| + | |||
| + | Для каждого токена запроса выбирается наиболее близкий токен документа, после чего полученные значения суммируются.<ref name="colbert">{{статья | ||
| + | |автор=Khattab O., Zaharia M. | ||
| + | |заглавие=ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT | ||
| + | |издание=Proceedings of SIGIR | ||
| + | |год=2020 | ||
| + | |страницы=39—48 | ||
| + | |doi=10.1145/3397271.3401075 | ||
| + | |ссылка=https://arxiv.org/abs/2004.12832 | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | === Обучаемые разреженные представления === | ||
| + | |||
| + | Разреженные нейросетевые модели формируют вектор размерности словаря, в котором большинство координат равны нулю. Они могут активировать не только слова документа, но и семантически связанные термины. К этому направлению относятся SPLADE и DeepImpact.<ref name="splade">{{статья | ||
| + | |автор=Formal T., Piwowarski B., Clinchant S. | ||
| + | |заглавие=SPLADE: Sparse Lexical and Expansion Model for First Stage Ranking | ||
| + | |издание=Proceedings of SIGIR | ||
| + | |год=2021 | ||
| + | |страницы=2288—2292 | ||
| + | |doi=10.1145/3404835.3463098 | ||
| + | |язык=en | ||
| + | }}</ref><ref name="deepimpact">{{статья | ||
| + | |автор=Mallia A., Khattab O., Suel T., Tonellotto N. | ||
| + | |заглавие=Learning Passage Impacts for Inverted Indexes | ||
| + | |издание=Proceedings of SIGIR | ||
| + | |год=2021 | ||
| + | |страницы=1723—1727 | ||
| + | |doi=10.1145/3404835.3463030 | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | == Обучение моделей == | ||
| + | |||
| + | === Источники обучающих данных === | ||
| + | |||
| + | Для обучения поисковых моделей используются экспертные оценки релевантности, пары «вопрос — ответ», переходы пользователей по результатам, время взаимодействия с документом, поисковые журналы, ссылки и цитирования, слабая разметка и автоматически сгенерированные запросы. | ||
| + | |||
| + | Поведение пользователей является удобным, но смещённым источником разметки: пользователь чаще нажимает на результаты, уже расположенные высоко, а отсутствие перехода не обязательно означает нерелевантность. | ||
| + | |||
| + | === Контрастное обучение === | ||
| + | |||
| + | Пусть для запроса <tex>q</tex> известен релевантный документ <tex>d^+</tex> и набор отрицательных документов <tex>d_1^-,\ldots,d_m^-</tex>. Распространённая контрастная функция потерь имеет вид: | ||
| + | |||
| + | <tex> | ||
| + | \mathcal{L}=-\log | ||
| + | \frac{\exp(s(q,d^+)/\tau)} | ||
| + | {\exp(s(q,d^+)/\tau)+\sum_{i=1}^{m}\exp(s(q,d_i^-)/\tau)}, | ||
| + | </tex> | ||
| + | |||
| + | где <tex>\tau</tex> — температура (англ. ''temperature''). | ||
| + | |||
| + | Тематически близкие, но нерелевантные документы называются '''сложными отрицательными примерами''' (англ. ''hard negatives''). Среди них могут оказаться неразмеченные релевантные документы — '''ложные отрицательные примеры''' (англ. ''false negatives''). | ||
| + | |||
| + | === Попарные и списочные функции потерь === | ||
| + | |||
| + | Попарная функция требует, чтобы релевантный документ оценивался выше нерелевантного: | ||
| + | |||
| + | <tex> | ||
| + | \mathcal{L}_{\mathrm{pair}}= | ||
| + | \max\bigl(0,\gamma-s(q,d^+)+s(q,d^-)\bigr), | ||
| + | </tex> | ||
| + | |||
| + | где <tex>\gamma</tex> — требуемый отступ. | ||
| + | |||
| + | В списочном обучении (англ. ''listwise learning'') рассматривается сразу множество документов. Модель может оптимизировать вероятность правильного порядка или приближение поисковой метрики, например [[Normalized Discounted Cumulative Gain|nDCG]]. | ||
| + | |||
| + | === Дистилляция знаний === | ||
| + | |||
| + | При [[Дистилляция знаний|дистилляции знаний]] сложная модель-учитель, например кросс-энкодер, создаёт оценки для большого числа пар. Более быстрая модель-ученик обучается воспроизводить эти оценки. | ||
| + | |||
| + | == Гибридный поиск == | ||
| + | |||
| + | Лексические и нейросетевые методы совершают разные ошибки. Плотная модель хорошо находит перефразировки, но может пропустить редкий код или фамилию. BM25 сохраняет точные совпадения, но может не найти синонимичную формулировку. | ||
| + | |||
| + | === Линейное объединение === | ||
| + | |||
| + | После нормализации оценок применяется взвешенная сумма: | ||
| + | |||
| + | <tex> | ||
| + | s_{\mathrm{hybrid}}(q,d)= | ||
| + | \lambda s_{\mathrm{lex}}(q,d)+(1-\lambda)s_{\mathrm{sem}}(q,d), | ||
| + | </tex> | ||
| + | |||
| + | где <tex>\lambda\in[0,1]</tex> регулирует вклад лексического поиска. | ||
| + | |||
| + | === Reciprocal Rank Fusion === | ||
| + | |||
| + | Метод [[Reciprocal Rank Fusion]] использует позиции документов: | ||
| + | |||
| + | <tex> | ||
| + | \operatorname{RRF}(d)= | ||
| + | \sum_{m=1}^{M}\frac{1}{k_0+\operatorname{rank}_m(d)}. | ||
| + | </tex> | ||
| + | |||
| + | <ref name="rrf">{{статья | ||
| + | |автор=Cormack G. V., Clarke C. L. A., Büttcher S. | ||
| + | |заглавие=Reciprocal Rank Fusion Outperforms Condorcet and Individual Rank Learning Methods | ||
| + | |издание=Proceedings of SIGIR | ||
| + | |год=2009 | ||
| + | |страницы=758—759 | ||
| + | |doi=10.1145/1571941.1572114 | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | === Многоэтапное ранжирование === | ||
| + | |||
| + | Распространённая схема включает: | ||
| + | |||
| + | # BM25, разреженный ретривер или плотную модель для поиска кандидатов; | ||
| + | # объединение кандидатов из нескольких источников; | ||
| + | # кросс-энкодер для переранжирования; | ||
| + | # модель, учитывающую качество и свежесть; | ||
| + | # фильтрацию, устранение дубликатов и диверсификацию. | ||
| + | |||
| + | == Индексирование и масштабирование == | ||
| + | |||
| + | === Инвертированный индекс === | ||
| + | |||
| + | В инвертированном индексе для каждого термина хранится список документов, в которых он встречается. Дополнительно могут храниться позиции слов, частоты, поля документа и предварительно вычисленные веса. | ||
| + | |||
| + | === Приближённый поиск ближайших соседей === | ||
| + | |||
| + | Для плотных представлений применяются методы [[Приближённый поиск ближайших соседей|приближённого поиска ближайших соседей]] (англ. ''approximate nearest-neighbor search'', ANN): графы HNSW, инвертированные файловые индексы, кластеризация, [[Квантование векторов|квантование]] и локально-чувствительное хеширование. | ||
| + | |||
| + | HNSW строит многоуровневый граф, по которому поиск постепенно приближается к области ближайших векторов.<ref name="hnsw">{{статья | ||
| + | |автор=Malkov Y. A., Yashunin D. A. | ||
| + | |заглавие=Efficient and Robust Approximate Nearest Neighbor Search Using Hierarchical Navigable Small World Graphs | ||
| + | |издание=IEEE Transactions on Pattern Analysis and Machine Intelligence | ||
| + | |год=2020 | ||
| + | |том=42 | ||
| + | |номер=4 | ||
| + | |страницы=824—836 | ||
| + | |doi=10.1109/TPAMI.2018.2889473 | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | Библиотека Faiss предоставляет методы поиска и кластеризации плотных векторов, включая реализации для графических процессоров.<ref name="faiss">{{статья | ||
| + | |автор=Johnson J., Douze M., Jégou H. | ||
| + | |заглавие=Billion-Scale Similarity Search with GPUs | ||
| + | |издание=IEEE Transactions on Big Data | ||
| + | |год=2021 | ||
| + | |том=7 | ||
| + | |номер=3 | ||
| + | |страницы=535—547 | ||
| + | |doi=10.1109/TBDATA.2019.2921572 | ||
| + | |ссылка=https://arxiv.org/abs/1702.08734 | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | Приближённый индекс вводит компромисс между скоростью, памятью и полнотой поиска. | ||
| + | |||
| + | == Оценка качества == | ||
| + | |||
| + | Для оценки поисковой системы создаётся набор запросов и суждений о релевантности документов — '''qrels''' (англ. ''query relevance judgments''). | ||
| + | |||
| + | === Precision и Recall === | ||
| + | |||
| + | <tex> | ||
| + | \operatorname{Precision@}k= | ||
| + | \frac{\text{число релевантных документов в первых }k}{k}, | ||
| + | </tex> | ||
| + | |||
| + | <tex> | ||
| + | \operatorname{Recall@}k= | ||
| + | \frac{\text{число найденных релевантных документов}} | ||
| + | {\text{общее число релевантных документов}}. | ||
| + | </tex> | ||
| + | |||
| + | Для извлечения кандидатов особенно важна полнота: документ, не найденный на первом этапе, не может быть восстановлен переранжированием. | ||
| + | |||
| + | === Mean Reciprocal Rank === | ||
| + | |||
| + | <tex> | ||
| + | \operatorname{MRR}= | ||
| + | \frac{1}{|Q|}\sum_{q\in Q}\frac{1}{\operatorname{rank}_q}. | ||
| + | </tex> | ||
| + | |||
| + | === nDCG === | ||
| + | |||
| + | <tex> | ||
| + | \operatorname{DCG@}k= | ||
| + | \sum_{i=1}^{k}\frac{2^{\operatorname{rel}_i}-1}{\log_2(i+1)}, | ||
| + | </tex> | ||
| + | |||
| + | <tex> | ||
| + | \operatorname{nDCG@}k= | ||
| + | \frac{\operatorname{DCG@}k}{\operatorname{IDCG@}k}. | ||
| + | </tex> | ||
| + | |||
| + | <ref name="ndcg">{{статья | ||
| + | |автор=Järvelin K., Kekäläinen J. | ||
| + | |заглавие=Cumulated Gain-Based Evaluation of IR Techniques | ||
| + | |издание=ACM Transactions on Information Systems | ||
| + | |год=2002 | ||
| + | |том=20 | ||
| + | |номер=4 | ||
| + | |страницы=422—446 | ||
| + | |doi=10.1145/582415.582418 | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | === Бенчмарки === | ||
| + | |||
| + | [[BEIR]] содержит разнородные наборы данных для проверки переноса поисковых моделей между предметными областями.<ref name="beir">{{статья | ||
| + | |автор=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 | ||
| + | |ссылка=https://openreview.net/forum?id=wCu6T5xFjeJ | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | [[MTEB]] оценивает текстовые эмбеддинги в поиске, классификации, кластеризации, семантическом сходстве и других задачах.<ref name="mteb">{{статья | ||
| + | |автор=Muennighoff N. et al. | ||
| + | |заглавие=MTEB: Massive Text Embedding Benchmark | ||
| + | |издание=Proceedings of EACL | ||
| + | |год=2023 | ||
| + | |страницы=2014—2037 | ||
| + | |doi=10.18653/v1/2023.eacl-main.148 | ||
| + | |ссылка=https://aclanthology.org/2023.eacl-main.148/ | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | Для русского языка предложен бенчмарк ruMTEB, включающий задачи семантического сходства, классификации, переранжирования и поиска.<ref name="rumteb">{{статья | ||
| + | |автор=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 | ||
| + | |doi=10.18653/v1/2025.naacl-long.12 | ||
| + | |ссылка=https://aclanthology.org/2025.naacl-long.12/ | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | === Онлайн-оценка === | ||
| + | |||
| + | В работающих системах измеряются частота переходов, доля успешных поисковых сессий, число переформулировок, время до нахождения ответа, пользовательская оценка, задержка ответа и вычислительная стоимость. Поведенческие метрики могут быть смещены и не всегда отражают истинную полезность. | ||
| - | + | Качество рекомендуется проверять отдельно на коротких и длинных запросах, редких сущностях, числах и датах, отрицаниях, перефразировках, опечатках, новых документах, разных языках и неоднозначных формулировках. | |
| - | + | ||
| - | + | ||
| - | + | ||
== Применение == | == Применение == | ||
| - | + | === Веб-поиск === | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | Семантические методы используются для распознавания сущностей, исправления и расширения запросов, формирования информационных панелей и ранжирования веб-страниц. | |
| - | + | === Корпоративный поиск === | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | Семантический поиск применяется к внутренним инструкциям, отчётам, договорам, базам знаний и переписке. Важны соблюдение прав доступа, работа с отраслевой терминологией и указание источника. | |
| - | + | === Электронная коммерция === | |
| - | + | Запрос «лёгкая непромокаемая куртка для осени» должен быть связан с атрибутами товаров, даже если описание использует слова «водоотталкивающая» или «демисезонная». | |
| - | + | ||
| - | + | === Медицинский и научный поиск === | |
| - | + | ||
| - | + | В научных системах используются термины, онтологии, цитирования, авторские связи и семантические представления аннотаций. В медицине особенно важны точность терминов и происхождение данных. | |
| - | + | ||
| - | + | === Поиск программного кода === | |
| + | |||
| + | Запрос может описывать требуемое поведение естественным языком, а система — находить функции или фрагменты программы с похожей функциональностью. Синтаксическое сходство и сходство поведения не всегда совпадают. | ||
| + | |||
| + | === Диалоговые системы и RAG === | ||
| + | |||
| + | В системах генерации, дополненной поиском (англ. ''retrieval-augmented generation'', RAG), сначала находятся документы, а затем языковая модель формирует ответ на их основе.<ref name="rag">{{статья | ||
| + | |автор=Lewis P. et al. | ||
| + | |заглавие=Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks | ||
| + | |издание=Advances in Neural Information Processing Systems | ||
| + | |год=2020 | ||
| + | |том=33 | ||
| + | |страницы=9459—9474 | ||
| + | |ссылка=https://arxiv.org/abs/2005.11401 | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | Нерелевантный, устаревший или намеренно вредоносный фрагмент может повлиять на сгенерированный ответ. Поэтому необходимы проверка источников, фильтрация, цитирование и оценка соответствия ответа найденным материалам. | ||
| + | |||
| + | == Ограничения и проблемы == | ||
| + | |||
| + | === Неоднозначность и семантический дрейф === | ||
| + | |||
| + | Короткий запрос может иметь несколько интерпретаций. '''Семантический дрейф''' (англ. ''semantic drift'') возникает, когда расширение запроса или поиск близких векторов уводит систему к связанной, но другой теме. | ||
| + | |||
| + | === Отрицания, числа и точные значения === | ||
| + | |||
| + | Модели могут переоценивать сходство предложений, различающихся отрицанием. Небольшое изменение числа, даты, дозировки, артикула или версии программы может полностью менять ответ, но слабо влиять на общий вектор текста. | ||
| + | |||
| + | === Длинные документы === | ||
| + | |||
| + | Один вектор может недостаточно точно представлять документ с несколькими темами. Чанкинг решает часть проблемы, но требует выбора размера фрагмента, перекрытия и способа сохранения контекста. | ||
| + | |||
| + | === Доменный сдвиг и многоязычность === | ||
| + | |||
| + | '''Доменный сдвиг''' (англ. ''domain shift'') возникает, когда рабочие данные отличаются от обучающих. Модель, обученная на веб-страницах, может хуже работать с юридическими или медицинскими текстами. Качество разных языков в одной модели также может различаться. | ||
| + | |||
| + | === Неполнота графов и объяснимость === | ||
| + | |||
| + | Отсутствие факта в графе не означает его ложность. Для плотного нейросетевого поиска объяснить близость двух векторов сложнее, чем показать совпавшие слова в лексическом поиске. | ||
| + | |||
| + | === Смещения, конфиденциальность и безопасность === | ||
| + | |||
| + | Модели наследуют статистические смещения обучающих данных. Индексы и эмбеддинги могут содержать конфиденциальную информацию. В корпоративных системах права доступа должны проверяться до передачи фрагментов языковой модели. Системы RAG уязвимы к намеренно добавленным документам с ложной информацией или инструкциями для модели. | ||
| + | |||
| + | === Вычислительная стоимость === | ||
| + | |||
| + | На практике приходится искать компромисс между качеством, задержкой, объёмом памяти и стоимостью вычислений. | ||
| + | |||
| + | == Современные направления исследований == | ||
| + | |||
| + | === Универсальные и инструктивные эмбеддинги === | ||
| + | |||
| + | Модели семейства E5 обучаются на разнородных парах текстов с использованием слабой разметки и контрастной функции потерь.<ref name="e5">{{статья | ||
| + | |автор=Wang L., Yang N., Huang X., Jiao B., Yang L., Jiang D., Majumder R., Wei F. | ||
| + | |заглавие=Text Embeddings by Weakly-Supervised Contrastive Pre-training | ||
| + | |издание=arXiv | ||
| + | |год=2022 | ||
| + | |номер=2212.03533 | ||
| + | |ссылка=https://arxiv.org/abs/2212.03533 | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | Большие языковые модели используются для создания синтетических обучающих данных для эмбеддингов.<ref name="llmembed">{{статья | ||
| + | |автор=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 | ||
| + | |doi=10.18653/v1/2024.acl-long.642 | ||
| + | |ссылка=https://aclanthology.org/2024.acl-long.642/ | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | BGE-M3 объединяет плотный, разреженный и многовекторный режимы поиска и поддерживает многоязычные тексты и длинные входные последовательности.<ref name="bgem3">{{статья | ||
| + | |автор=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 | ||
| + | |ссылка=https://arxiv.org/abs/2402.03216 | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | === Генеративное расширение запроса === | ||
| + | |||
| + | В методе HyDE языковая модель создаёт гипотетический документ, который мог бы отвечать на запрос. Вектор этого документа используется для поиска реальных материалов.<ref name="hyde">{{статья | ||
| + | |автор=Gao L., Ma X., Lin J., Callan J. | ||
| + | |заглавие=Precise Zero-Shot Dense Retrieval without Relevance Labels | ||
| + | |издание=Proceedings of ACL | ||
| + | |год=2023 | ||
| + | |страницы=1762—1777 | ||
| + | |doi=10.18653/v1/2023.acl-long.99 | ||
| + | |ссылка=https://aclanthology.org/2023.acl-long.99/ | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | === Графово-усиленный поиск === | ||
| + | |||
| + | KG²RAG получает семантически близкие исходные фрагменты, затем расширяет и упорядочивает их с помощью графа знаний.<ref name="kg2rag">{{статья | ||
| + | |автор=Zhu X., Xie Y., Liu Y., Li Y., Hu W. | ||
| + | |заглавие=Knowledge Graph-Guided Retrieval Augmented Generation | ||
| + | |издание=Proceedings of NAACL | ||
| + | |год=2025 | ||
| + | |страницы=8912—8924 | ||
| + | |doi=10.18653/v1/2025.naacl-long.449 | ||
| + | |ссылка=https://aclanthology.org/2025.naacl-long.449/ | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | GNN-Ret строит граф фрагментов по структурным и лексическим связям и применяет графовую нейронную сеть для ранжирования.<ref name="gnnret">{{статья | ||
| + | |автор=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 | ||
| + | |doi=10.18653/v1/2025.naacl-long.337 | ||
| + | |ссылка=https://aclanthology.org/2025.naacl-long.337/ | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | === Русскоязычные эмбеддинги === | ||
| + | |||
| + | В 2025 году была представлена модель GigaEmbeddings, обученная с использованием контрастного предварительного обучения, сложных отрицательных примеров и многозадачной настройки; модель оценивалась на ruMTEB.<ref name="gigaembeddings">{{статья | ||
| + | |автор=Kolodin E., Ianina A. | ||
| + | |заглавие=GigaEmbeddings — Efficient Russian Language Embedding Model | ||
| + | |издание=Proceedings of the 10th Workshop on Slavic Natural Language Processing | ||
| + | |год=2025 | ||
| + | |страницы=17—24 | ||
| + | |doi=10.18653/v1/2025.bsnlp-1.3 | ||
| + | |ссылка=https://aclanthology.org/2025.bsnlp-1.3/ | ||
| + | |язык=en | ||
| + | }}</ref> | ||
| + | |||
| + | === Мультимодальный, временной и объяснимый поиск === | ||
| + | |||
| + | Мультимодальные модели помещают текст, изображения, звук и видео в совместное пространство. Временной поиск учитывает изменение коллекции и значения терминов. Объяснимый поиск выделяет совпавшие фрагменты, пути в графе знаний и активированные термины разреженной модели. | ||
| + | |||
| + | == Отличие от преимущественно лексического поиска == | ||
| + | |||
| + | {| class="wikitable" | ||
| + | |- | ||
| + | ! Свойство | ||
| + | ! Преимущественно лексический поиск | ||
| + | ! Семантический поиск | ||
| + | |- | ||
| + | | Основной сигнал | ||
| + | | Совпадение терминов | ||
| + | | Значение, контекст, понятия и отношения | ||
| + | |- | ||
| + | | Перефразировки | ||
| + | | Могут быть пропущены | ||
| + | | Часто распознаются лучше | ||
| + | |- | ||
| + | | Редкие имена и коды | ||
| + | | Обычно обрабатываются хорошо | ||
| + | | Могут быть потеряны в общем векторе | ||
| + | |- | ||
| + | | Объяснимость | ||
| + | | Относительно высокая | ||
| + | | Зависит от метода | ||
| + | |- | ||
| + | | Требования к обучению | ||
| + | | Могут быть минимальными | ||
| + | | Часто нужны корпуса, разметка или внешняя база знаний | ||
| + | |- | ||
| + | | Вычислительная стоимость | ||
| + | | Обычно ниже | ||
| + | | Может быть значительно выше | ||
| + | |- | ||
| + | | Типичная ошибка | ||
| + | | Не найден документ с другой формулировкой | ||
| + | | Найден близкий по теме, но нерелевантный документ | ||
| + | |} | ||
| + | |||
| + | Противопоставление условно: современные семантические системы почти всегда сохраняют лексические компоненты. | ||
== См. также == | == См. также == | ||
| - | * [[ | + | * [[Информационный поиск]] |
| - | * [[ | + | * [[Релевантность]] |
| - | * [[ | + | * [[Векторная модель]] |
| - | * [[ | + | * [[TF-IDF]] |
| + | * [[Okapi BM25]] | ||
* [[Онтология (информатика)]] | * [[Онтология (информатика)]] | ||
| + | * [[Семантическая паутина]] | ||
* [[Граф знаний]] | * [[Граф знаний]] | ||
| - | * [[ | + | * [[Дистрибутивная семантика]] |
| - | * [[Трансформер (архитектура | + | * [[Тематическое моделирование]] |
| - | * [[ | + | * [[Латентно-семантический анализ]] |
| + | * [[Векторное представление слов]] | ||
| + | * [[Трансформер (архитектура глубокого обучения)]] | ||
| + | * [[Обучение ранжированию]] | ||
* [[Контрастное обучение]] | * [[Контрастное обучение]] | ||
| - | * [[ | + | * [[Приближённый поиск ближайших соседей]] |
| + | * [[Генерация, дополненная поиском]] | ||
| + | * [[Обработка естественного языка]] | ||
== Примечания == | == Примечания == | ||
| Строка 150: | Строка 828: | ||
== Литература == | == Литература == | ||
| - | * {{статья |автор=Salton G., Wong A., Yang C. S. |заглавие=A | + | * {{статья |
| - | * {{статья |автор= | + | |автор=Salton G., Wong A., Yang C. S. |
| - | * {{статья |автор=Devlin J., Chang M. W., Lee K., Toutanova K. |заглавие=BERT: Pre-training of | + | |заглавие=A Vector Space Model for Automatic Indexing |
| - | * {{статья |автор=Karpukhin V. | + | |издание=Communications of the ACM |
| - | * {{статья |автор=Khattab O., Zaharia M. |заглавие=ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT |издание=Proceedings of SIGIR |год=2020 | | + | |год=1975 |
| - | * {{статья |автор= | + | |том=18 |
| - | * {{статья |автор= | + | |номер=11 |
| - | * {{статья |автор= | + | |страницы=613—620 |
| - | * {{ | + | |doi=10.1145/361219.361220 |
| - | * {{статья |автор= | + | |язык=en |
| - | * {{статья |автор= | + | }} |
| - | * {{статья |автор= | + | * {{статья |
| + | |автор=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 | ||
| + | |doi=10.1002/(SICI)1097-4571(199009)41:6<391::AID-ASI1>3.0.CO;2-9 | ||
| + | |язык=en | ||
| + | }} | ||
| + | * {{статья | ||
| + | |автор=Robertson S., Zaragoza H. | ||
| + | |заглавие=The Probabilistic Relevance Framework: BM25 and Beyond | ||
| + | |издание=Foundations and Trends in Information Retrieval | ||
| + | |год=2009 | ||
| + | |том=3 | ||
| + | |номер=4 | ||
| + | |страницы=333—389 | ||
| + | |doi=10.1561/1500000019 | ||
| + | |язык=en | ||
| + | }} | ||
| + | * {{книга | ||
| + | |автор=Manning C. D., Raghavan P., Schütze H. | ||
| + | |заглавие=Introduction to Information Retrieval | ||
| + | |место=Cambridge | ||
| + | |издательство=Cambridge University Press | ||
| + | |год=2008 | ||
| + | |isbn=978-0-521-86571-5 | ||
| + | |ссылка=https://nlp.stanford.edu/IR-book/ | ||
| + | |язык=en | ||
| + | }} | ||
| + | * {{книга | ||
| + | |автор=Reinanda R., Meij E., de Rijke M. | ||
| + | |заглавие=Knowledge Graphs: An Information Retrieval Perspective | ||
| + | |место=Boston | ||
| + | |издательство=Now Publishers | ||
| + | |год=2020 | ||
| + | |серия=Foundations and Trends in Information Retrieval | ||
| + | |doi=10.1561/1500000063 | ||
| + | |язык=en | ||
| + | }} | ||
| + | * {{статья | ||
| + | |автор=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 | ||
| + | |doi=10.18653/v1/N19-1423 | ||
| + | |язык=en | ||
| + | }} | ||
| + | * {{статья | ||
| + | |автор=Reimers N., Gurevych I. | ||
| + | |заглавие=Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks | ||
| + | |издание=Proceedings of EMNLP-IJCNLP | ||
| + | |год=2019 | ||
| + | |страницы=3982—3992 | ||
| + | |doi=10.18653/v1/D19-1410 | ||
| + | |язык=en | ||
| + | }} | ||
| + | * {{статья | ||
| + | |автор=Karpukhin V. et al. | ||
| + | |заглавие=Dense Passage Retrieval for Open-Domain Question Answering | ||
| + | |издание=Proceedings of EMNLP | ||
| + | |год=2020 | ||
| + | |страницы=6769—6781 | ||
| + | |doi=10.18653/v1/2020.emnlp-main.550 | ||
| + | |язык=en | ||
| + | }} | ||
| + | * {{статья | ||
| + | |автор=Khattab O., Zaharia M. | ||
| + | |заглавие=ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT | ||
| + | |издание=Proceedings of SIGIR | ||
| + | |год=2020 | ||
| + | |страницы=39—48 | ||
| + | |doi=10.1145/3397271.3401075 | ||
| + | |язык=en | ||
| + | }} | ||
| + | * {{статья | ||
| + | |автор=Formal T., Piwowarski B., Clinchant S. | ||
| + | |заглавие=SPLADE: Sparse Lexical and Expansion Model for First Stage Ranking | ||
| + | |издание=Proceedings of SIGIR | ||
| + | |год=2021 | ||
| + | |страницы=2288—2292 | ||
| + | |doi=10.1145/3404835.3463098 | ||
| + | |язык=en | ||
| + | }} | ||
| + | * {{статья | ||
| + | |автор=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 | ||
| + | |ссылка=https://openreview.net/forum?id=wCu6T5xFjeJ | ||
| + | |язык=en | ||
| + | }} | ||
| + | * {{статья | ||
| + | |автор=Muennighoff N. et al. | ||
| + | |заглавие=MTEB: Massive Text Embedding Benchmark | ||
| + | |издание=Proceedings of EACL | ||
| + | |год=2023 | ||
| + | |страницы=2014—2037 | ||
| + | |doi=10.18653/v1/2023.eacl-main.148 | ||
| + | |язык=en | ||
| + | }} | ||
| + | * {{статья | ||
| + | |автор=Gao L., Ma X., Lin J., Callan J. | ||
| + | |заглавие=Precise Zero-Shot Dense Retrieval without Relevance Labels | ||
| + | |издание=Proceedings of ACL | ||
| + | |год=2023 | ||
| + | |страницы=1762—1777 | ||
| + | |doi=10.18653/v1/2023.acl-long.99 | ||
| + | |язык=en | ||
| + | }} | ||
| + | * {{статья | ||
| + | |автор=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 | ||
| + | |doi=10.18653/v1/2024.acl-long.642 | ||
| + | |язык=en | ||
| + | }} | ||
| + | * {{статья | ||
| + | |автор=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 | ||
| + | |ссылка=https://arxiv.org/abs/2402.03216 | ||
| + | |язык=en | ||
| + | }} | ||
| + | * {{статья | ||
| + | |автор=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 | ||
| + | |doi=10.18653/v1/2025.naacl-long.12 | ||
| + | |язык=en | ||
| + | }} | ||
| + | * {{статья | ||
| + | |автор=Zhu X., Xie Y., Liu Y., Li Y., Hu W. | ||
| + | |заглавие=Knowledge Graph-Guided Retrieval Augmented Generation | ||
| + | |издание=Proceedings of NAACL | ||
| + | |год=2025 | ||
| + | |страницы=8912—8924 | ||
| + | |doi=10.18653/v1/2025.naacl-long.449 | ||
| + | |язык=en | ||
| + | }} | ||
| + | * {{статья | ||
| + | |автор=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 | ||
| + | |doi=10.18653/v1/2025.naacl-long.337 | ||
| + | |язык=en | ||
| + | }} | ||
| + | * {{статья | ||
| + | |автор=Kolodin E., Ianina A. | ||
| + | |заглавие=GigaEmbeddings — Efficient Russian Language Embedding Model | ||
| + | |издание=Proceedings of the 10th Workshop on Slavic Natural Language Processing | ||
| + | |год=2025 | ||
| + | |страницы=17—24 | ||
| + | |doi=10.18653/v1/2025.bsnlp-1.3 | ||
| + | |язык=en | ||
| + | }} | ||
| + | * {{cite web | ||
| + | |url=https://www.w3.org/TR/rdf11-concepts/ | ||
| + | |title=RDF 1.1 Concepts and Abstract Syntax | ||
| + | |publisher=World Wide Web Consortium | ||
| + | |lang=en | ||
| + | |accessdate=2026-07-26 | ||
| + | }} | ||
| + | * {{cite web | ||
| + | |url=https://www.w3.org/TR/owl2-syntax/ | ||
| + | |title=OWL 2 Web Ontology Language: Structural Specification and Functional-Style Syntax | ||
| + | |publisher=World Wide Web Consortium | ||
| + | |lang=en | ||
| + | |accessdate=2026-07-26 | ||
| + | }} | ||
| - | [[Категория: | + | [[Категория:Информационный поиск]] |
[[Категория:Обработка естественного языка]] | [[Категория:Обработка естественного языка]] | ||
| + | [[Категория:Компьютерная лингвистика]] | ||
[[Категория:Машинное обучение]] | [[Категория:Машинное обучение]] | ||
| - | [[Категория: | + | [[Категория:Семантическая паутина]] |
Текущая версия
Семантический поиск (англ. 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), гибридное ранжирование и использование поиска в системах генерации, дополненной поиском.
Формальная постановка задачи
Пусть задан запрос , коллекция документов
и, возможно, дополнительный контекст . Поисковая система строит функцию релевантности
после чего упорядочивает документы по убыванию оценки:
Первые документов образуют результат поиска:
Функция может учитывать совпадение слов, статистическую важность терминов, семантическое сходство векторов, отношения между сущностями, категории онтологии, структуру графа, метаданные, качество и актуальность источника.
Во многих системах различают два этапа:
- извлечение кандидатов (англ. candidate retrieval) — быстрый поиск сравнительно небольшого множества потенциально релевантных документов;
- переранжирование (англ. reranking) — более точная, но вычислительно дорогая оценка найденных кандидатов.
Общая архитектура
Обработка коллекции
Документы очищаются, разбиваются на фрагменты, снабжаются метаданными и преобразуются в индексируемое представление. Разбиение на фрагменты называется чанкингом (англ. chunking). Слишком короткие фрагменты теряют контекст, а слишком длинные могут содержать несколько тем.
На этом этапе выполняются токенизация, лемматизация, выделение именованных сущностей, связывание сущностей (англ. entity linking), тематическая классификация, вычисление эмбеддингов, построение графов и сохранение терминов в инвертированном индексе.
Анализ запроса
Система может определять язык, исправлять опечатки, выделять сущности, распознавать намерение пользователя и преобразовывать запрос в одно или несколько представлений. Например, запрос «ягуар скорость» может относиться к животному или автомобилю.
Извлечение кандидатов и переранжирование
Для первоначального поиска применяются инвертированный индекс, поиск по онтологии, обход графа знаний, поиск ближайших векторов, обучаемый разреженный поиск и объединение нескольких индексов. Найденные кандидаты затем оцениваются более сложной моделью, способной учитывать взаимное расположение слов, структуру текста, свежесть источника и другие признаки.
Постобработка
После ранжирования применяются фильтрация, устранение дубликатов, диверсификация результатов, проверка прав доступа, группировка по темам и формирование объяснений.
Основные подходы
| Подход | Основное представление | Преимущества | Ограничения |
|---|---|---|---|
| Лексический и вероятностный поиск | Термины, частоты, инвертированный индекс | Высокая скорость, интерпретируемость, точный поиск названий и редких терминов | Ограниченный учёт синонимов и перефразировок |
| Онтологии и тезаурусы | Понятия, классы, явно заданные отношения | Объяснимость и логические ограничения | Высокая стоимость разработки и сопровождения |
| Графы знаний | Сущности и отношения | Поддержка структурированных и многошаговых запросов | Неполнота графа и ошибки связывания сущностей |
| Латентные и тематические модели | Скрытые факторы или распределения по темам | Выявление общей тематики, снижение размерности | Ограниченный учёт порядка слов |
| Плотные нейросетевые представления | Один вектор запроса и один вектор документа | Работа с перефразировками, быстрый поиск после индексирования | Потеря деталей и зависимость от обучающих данных |
| Позднее взаимодействие | Векторы отдельных токенов | Точное сопоставление частей запроса и документа | Более крупный индекс |
| Обучаемый разреженный поиск | Взвешенные термины расширенного словаря | Совместимость с инвертированным индексом | Рост индекса и стоимость обучения |
| Гибридный поиск | Несколько представлений одновременно | Устойчивость к разным типам запросов | Необходимость настройки объединения |
Лексические и вероятностные методы
Одним из базовых представлений является TF-IDF. Широко используемая функция BM25 имеет вид:
Здесь — частота термина,
— длина документа,
— средняя длина документа,
и
— параметры модели. BM25 остаётся сильным базовым методом при сравнении с нейросетевыми системами.[1]
Онтологии, тезаурусы и графы знаний
Онтология представляет предметную область через классы объектов, свойства, отношения и формальные ограничения. Поиск на её основе включает распознавание сущностей, связывание с понятиями, расширение запроса (англ. query expansion), применение логических правил и ранжирование.
В RDF знания задаются тройками «субъект — предикат — объект», например (Париж, столица государства, Франция). OWL позволяет описывать классы, эквивалентность, несовместимость и ограничения на свойства.
Граф знаний (англ. knowledge graph) представляет объекты вершинами, а отношения — рёбрами. Поиск может выполняться сопоставлением шаблонов, обходом путей, распространением активации или ранжированием вершин. Упрощённая формула случайного блуждания имеет вид:
Для связи текста с графом требуется связывание сущностей. Графы знаний часто используются совместно с обычным текстовым индексом.[1]
Латентные и тематические модели
В латентно-семантическом анализе строится матрица «термин — документ»
и выполняется сингулярное разложение:
В модели LDA для документа задаётся распределение тем
а для каждой позиции выбираются тема и слово:
Тематические модели полезны для навигации и кластеризации, но принадлежность к одной теме не гарантирует релевантности.
Дистрибутивные и контекстуальные представления
Модели Word2vec, GloVe и FastText преобразуют слова в плотные векторы:
Косинусное сходство определяется как
Word2vec обучает представления через предсказание слова по контексту или контекста по слову.[1] GloVe использует глобальную статистику совместной встречаемости слов.[1]
В контекстуальных моделях представление слова зависит от предложения. Sentence-BERT специально обучается для сравнения предложений по косинусному сходству.[1]
Кросс-энкодеры, двухбашенные модели и позднее взаимодействие
Кросс-энкодер (англ. cross-encoder) получает запрос и документ одновременно:
Он обеспечивает точное сопоставление, но требует отдельной обработки каждой пары и обычно используется для переранжирования.[1]
В двухбашенной архитектуре (англ. bi-encoder, dual encoder) запрос и документ кодируются независимо:
Оценка соответствия задаётся скалярным произведением или косинусной близостью. Известным примером такой архитектуры является Dense Passage Retriever.[1]
В моделях позднего взаимодействия сохраняются векторные представления отдельных токенов. В модели ColBERT оценка соответствия вычисляется по формуле:
Для каждого токена запроса выбирается наиболее близкий токен документа, после чего полученные значения суммируются.[1]
Обучаемые разреженные представления
Разреженные нейросетевые модели формируют вектор размерности словаря, в котором большинство координат равны нулю. Они могут активировать не только слова документа, но и семантически связанные термины. К этому направлению относятся SPLADE и DeepImpact.[1][1]
Обучение моделей
Источники обучающих данных
Для обучения поисковых моделей используются экспертные оценки релевантности, пары «вопрос — ответ», переходы пользователей по результатам, время взаимодействия с документом, поисковые журналы, ссылки и цитирования, слабая разметка и автоматически сгенерированные запросы.
Поведение пользователей является удобным, но смещённым источником разметки: пользователь чаще нажимает на результаты, уже расположенные высоко, а отсутствие перехода не обязательно означает нерелевантность.
Контрастное обучение
Пусть для запроса известен релевантный документ
и набор отрицательных документов
. Распространённая контрастная функция потерь имеет вид:
где — температура (англ. temperature).
Тематически близкие, но нерелевантные документы называются сложными отрицательными примерами (англ. hard negatives). Среди них могут оказаться неразмеченные релевантные документы — ложные отрицательные примеры (англ. false negatives).
Попарные и списочные функции потерь
Попарная функция требует, чтобы релевантный документ оценивался выше нерелевантного:
где — требуемый отступ.
В списочном обучении (англ. listwise learning) рассматривается сразу множество документов. Модель может оптимизировать вероятность правильного порядка или приближение поисковой метрики, например nDCG.
Дистилляция знаний
При дистилляции знаний сложная модель-учитель, например кросс-энкодер, создаёт оценки для большого числа пар. Более быстрая модель-ученик обучается воспроизводить эти оценки.
Гибридный поиск
Лексические и нейросетевые методы совершают разные ошибки. Плотная модель хорошо находит перефразировки, но может пропустить редкий код или фамилию. BM25 сохраняет точные совпадения, но может не найти синонимичную формулировку.
Линейное объединение
После нормализации оценок применяется взвешенная сумма:
где регулирует вклад лексического поиска.
Reciprocal Rank Fusion
Метод Reciprocal Rank Fusion использует позиции документов:
Многоэтапное ранжирование
Распространённая схема включает:
- BM25, разреженный ретривер или плотную модель для поиска кандидатов;
- объединение кандидатов из нескольких источников;
- кросс-энкодер для переранжирования;
- модель, учитывающую качество и свежесть;
- фильтрацию, устранение дубликатов и диверсификацию.
Индексирование и масштабирование
Инвертированный индекс
В инвертированном индексе для каждого термина хранится список документов, в которых он встречается. Дополнительно могут храниться позиции слов, частоты, поля документа и предварительно вычисленные веса.
Приближённый поиск ближайших соседей
Для плотных представлений применяются методы приближённого поиска ближайших соседей (англ. approximate nearest-neighbor search, ANN): графы HNSW, инвертированные файловые индексы, кластеризация, квантование и локально-чувствительное хеширование.
HNSW строит многоуровневый граф, по которому поиск постепенно приближается к области ближайших векторов.[1]
Библиотека Faiss предоставляет методы поиска и кластеризации плотных векторов, включая реализации для графических процессоров.[1]
Приближённый индекс вводит компромисс между скоростью, памятью и полнотой поиска.
Оценка качества
Для оценки поисковой системы создаётся набор запросов и суждений о релевантности документов — qrels (англ. query relevance judgments).
Precision и Recall
Для извлечения кандидатов особенно важна полнота: документ, не найденный на первом этапе, не может быть восстановлен переранжированием.
Mean Reciprocal Rank
nDCG
Бенчмарки
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]
Мультимодальный, временной и объяснимый поиск
Мультимодальные модели помещают текст, изображения, звук и видео в совместное пространство. Временной поиск учитывает изменение коллекции и значения терминов. Объяснимый поиск выделяет совпавшие фрагменты, пути в графе знаний и активированные термины разреженной модели.
Отличие от преимущественно лексического поиска
| Свойство | Преимущественно лексический поиск | Семантический поиск |
|---|---|---|
| Основной сигнал | Совпадение терминов | Значение, контекст, понятия и отношения |
| Перефразировки | Могут быть пропущены | Часто распознаются лучше |
| Редкие имена и коды | Обычно обрабатываются хорошо | Могут быть потеряны в общем векторе |
| Объяснимость | Относительно высокая | Зависит от метода |
| Требования к обучению | Могут быть минимальными | Часто нужны корпуса, разметка или внешняя база знаний |
| Вычислительная стоимость | Обычно ниже | Может быть значительно выше |
| Типичная ошибка | Не найден документ с другой формулировкой | Найден близкий по теме, но нерелевантный документ |
Противопоставление условно: современные семантические системы почти всегда сохраняют лексические компоненты.
См. также
- Информационный поиск
- Релевантность
- Векторная модель
- TF-IDF
- Okapi BM25
- Онтология (информатика)
- Семантическая паутина
- Граф знаний
- Дистрибутивная семантика
- Тематическое моделирование
- Латентно-семантический анализ
- Векторное представление слов
- Трансформер (архитектура глубокого обучения)
- Обучение ранжированию
- Контрастное обучение
- Приближённый поиск ближайших соседей
- Генерация, дополненная поиском
- Обработка естественного языка
Примечания
Литература
- 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.

