Расширение запросов на основе LLM

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

Техника расширения запросов в последнее время снова на слуху. Раньше она была стандартной частью поисковых систем, а затем по ряду причин на некоторое время затихла. Но теперь, с появлением новой техники под названием "Агентный поиск" (Agentic Search), расширение запросов снова в центре внимания.

 

Зачем мне нужны расширения запросов?

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

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

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

Что такое агентский поиск?

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

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

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

 

Что такое расширение запросов?

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

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

基于LLM的查询扩展 (Query Expansion)

Рисунок 1. Схема расширения запроса с помощью словаря синонимов

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

В традиционных поисковых системах расширение запросов в основном используется для решения следующих двух проблем:

  • морфология (лингвистика): Разные формы одного и того же слова (например, "бег" и "бег") считаются разными словами, что приводит к неполным результатам поиска.
  • Синонимы и похожие по смыслу слова: Если вы ищете "похудеть", традиционная поисковая система может не найти поисковую систему, содержащую "сесть на диету","потеря жира"или"Контроль веса" страницы, но на самом деле эти слова очень актуальны.

Для расширения запроса было придумано множество способов, например:

  • Ручное составление словаря синонимов: Это как словарь, который подсказывает, какие слова имеют схожее значение.
  • Автоматический поиск релевантных слов из большого количества статей: Определите, связаны ли они между собой, проанализировав, какие слова часто встречаются вместе.
  • Анализ записей поиска: Узнайте, какие еще ключевые слова используют люди при поиске похожего контента.
  • На основе отзывов пользователей: Пусть пользователь сам подскажет поисковой системе, какие слова являются релевантными.

 

Семантическое векторное моделирование и расширение запросов

В последние годы, с развитием искусственного интеллекта, появилась новая технология под названием "Семантическое векторное моделирование". Представьте себе, что это "переводчик слов", который переводит каждое слово в строку чисел (мы называем их "векторами"). Эти числа отражают значение слова, и чем ближе значение слова, тем ближе соответствующая строка чисел (вектор).

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

Однако в реальности семантическая векторная модель не совершенна. Создаваемые ею "строки чисел" (векторы) могут содержать неоднозначную информацию, что приводит к менее точным результатам поиска.

Например, если вы ищете "гранат", поисковая система может выдать что-то о "Телефон Apple" результаты, а также может вернуть некоторую информацию о "фрукты"Результат также может быть возвращен "Apple Inc." для получения информации об акциях. Но если вы действительно ищете информацию о "Технология выращивания яблок" статьи, но могут быть переполнены другими результатами. Если мы добавим поисковый запрос "плантация", это поможет поисковым системам более точно понять наши намерения и найти результаты, которые в большей степени соответствуют нашим потребностям.

 

Расширение запросов с помощью больших моделей ИИ (LLM)

Теперь у нас есть более мощный инструмент для расширения запросов, и это AI Large Model (LLM).

Что такое большая модель искусственного интеллекта (LLM)? Вы можете представить его как суперзнающего "лингвиста", который прошел обучение на огромном количестве текстовых данных и приобрел богатые знания и лингвистические навыки.

Расширение запросов с помощью LLM имеет ряд существенных преимуществ перед традиционными методами расширения запросов:

  • обширный словарный запас: LLM Смотрите много слов и не беспокойтесь о том, чтобы найти правильные синонимы или родственные слова.
  • Будьте рассудительны: LLM может изначально определить, какие слова относятся к теме вашего поиска, что не под силу традиционным методам. Это поможет вам отсеять расширения, которые не являются релевантными.
  • Гибкость и возможность настройки: Вы можете указать LLM, какие расширения вы хотите получить, основываясь на конкретной задаче поиска. Это как будто вы даете LLM "команду", чтобы сообщить ей, какие результаты вы хотите получить.

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

基于LLM的查询扩展 (Query Expansion)

Рисунок 2: Расширение векторных запросов с помощью LLM

 

Эксперимент: посмотрите на эффект расширения запроса

Чтобы проверить, работает или нет расширение запросов с помощью LLM, мы провели несколько экспериментов.

экспериментальная среда

  • LLM: Мы использовали Google Близнецы 2.0 Модель вспышки.
  • векторная модель: Мы использовали две векторные модели: jina-embeddings-v3 и all-MiniLM-L6-v2.
  • набор данных: Мы использовали несколько общедоступных тестовых наборов данных для поиска.

Экспериментальные методы

Для руководства LLM при создании расширения были разработаны два типа подсказок. Подсказки - это как инструкции, которые вы даете LLM, чтобы сообщить ему, какой результат вы хотите получить.

  • Общие признаки: Применяется для решения различных поисковых задач.
  • Подсказки по конкретной задаче: Слова-подсказки, предназначенные для решения конкретных поисковых задач (например, поиск в области медицины).

Мы также протестировали разные количества расширений: 100, 150 и 250.

Влияние родовых признаков

Мы обнаружили, что хорошо работает следующее общее слово-подсказка:

Please provide additional search keywords and phrases for
each of the key aspects of the following queries that make
it easier to find the relevant documents (about {size} words
per query):
{query}
Please respond in the following JSON schema:
Expansion = {"qid": str, "additional_info": str}
Return: list [Expansion]

Эта подсказка может обрабатывать несколько поисковых запросов одновременно и генерировать список расширенных терминов для каждого поискового запроса.

Сначала мы протестировали его с моделью jina-embeddings-v3 и получили следующие результаты:

тестовый наборнерасширенное слово100 расширенных слов150 расширенных слов250 расширенных слов
SciFact(Мандат на проверку фактов)72.7473.3974.1674.33
TRECCOVID(Задачи медицинского поиска)77.5576.7477.1279.28
FiQA(Поиск финансовых вариантов)47.3447.7646.0347.34
NFCorpus(Поиск медицинской информации)36.4640.6239.6339.20
Touche2020(Задача на поиск аргументов)26.2426.9127.1527.54

Как видно из результатов, расширение запроса улучшает поиск в большинстве случаев.

Чтобы проверить эффективность расширения запроса на разных моделях, мы повторили тот же тест с моделью all-MiniLM-L6-v2, получив следующие результаты:

тестовый наборнерасширенное слово100 расширенных слов150 расширенных слов250 расширенных слов
SciFact(Мандат на проверку фактов)64.5168.7266.2768.50
TRECCOVID(Задачи медицинского поиска)47.2567.9070.1869.60
FiQA(Поиск финансовых вариантов)36.8733.9632.6031.84
NFCorpus(Поиск медицинской информации)31.5933.7633.7633.35
Touche2020(Задача на поиск аргументов)16.9025.3123.5223.23

Из результатов видно, что расширение запроса значительно улучшает результаты поиска, особенно для небольших моделей, таких как All-MiniLM-L6-v2.

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

моделирование100 слов о расширении150 слов о расширении250 слов о расширении
jina-embeddings-v3+1.02+0.75+1.48
all-MiniLM-L6-v2+6.51+5.84+5.88

all-MiniLM-L6-v2 Подъемник более чем jina-embeddings-v3 Гораздо больше, вероятно, потому что all-MiniLM-L6-v2 Первоначальная производительность модели невысока.jina-embeddings-v3 Сама модель лучше понимает значение поисковых терминов, поэтому дополнительная помощь, которую может оказать расширение запроса, более ограничена.

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

Подсказки по конкретной задаче

Мы обнаружили, что общие слова-подсказки, хотя в целом и эффективны, могут включать нерелевантные слова, которые снижают эффективность поиска. Поэтому мы разработали более специфические слова-подсказки для двух конкретных поисковых задач (проверка фактов и поиск финансовых опционов):

Please provide additional search keywords and phrases for
each of the key aspects of the following queries that make
it easier to find the relevant documents scientific document
that supports or rejects the scientific fact in the query
field (about {size} words per query):
{query}
Please respond in the following JSON schema:
Expansion = {"qid": str, "additional_info": str}
Return: list [Expansion]

Экспериментальные результаты показывают, что это более конкретное ключевое слово улучшает результаты поиска почти во всех случаях:

тестовый набормоделированиенерасширенное слово100 слов о расширении150 слов о расширении250 слов о расширении
SciFactjina-embeddings-v372.7475.85 (+2.46)75.07 (+0.91)75.13 (+0.80)
SciFactall-MiniLM-L6-v264.5169.12 (+0.40)68.10 (+1.83)67.83 (-0.67)
FiQAjina-embeddings-v347.3447.77 (+0.01)48.20 (+1.99)47.75 (+0.41)
FiQAall-MiniLM-L6-v236.8734.71 (+0.75)34.68 (+2.08)34.50 (+2.66)

Как видно из таблицы выше, результаты поиска улучшились при всех настройках, кроме случая использования модели All-MiniLM-L6-v2 на SciFact и добавления 250 расширений.

в отношении jina-embeddings-v3 модель, мы обнаружили, что добавление 100 или 150 расширений дает наилучшие результаты; добавление 250 расширений снижает результаты. Это говорит о том, что больше расширений - не значит лучше, и что добавление слишком большого количества слов может ухудшить результаты поиска.

 

Преимущества и проблемы расширения запросов

vantage

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

вызов

  • Вопросы стоимости: Использование LLM увеличивает время и вычислительные затраты на поиск. Дополнительные расходы возникают при использовании некоторых платных услуг LLM.
  • Дизайн подсказок: Разработка хороших слов-подсказок - дело непростое и требует много экспериментов и настроек. Более того, для разных LLM, разных векторных моделей и разных задач поиска могут потребоваться разные слова-подсказки.
  • Другие методы оптимизации: Если ваша векторная модель работает плохо, вероятно, экономически выгоднее просто перейти на более совершенную модель, чем тратить время на масштабирование запросов.

 

будущее направление

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

  • Проверьте, можно ли использовать расширение запросов для улучшения векторного представления документов.
  • Изучите использование расширения запросов в других методах поиска ИИ, таких как переупорядочивание.
  • Сравнение расширений, созданных с помощью LLM, и традиционных методов (например, словарей синонимов) для генерации
  • Обучите LLM специально для задачи расширения запроса.
  • Оптимизируйте количество расширений и не добавляйте слишком много слов сразу.
  • Изучите, как распознать хорошие и плохие расширения.

 

 

Весь код и результаты экспериментов находятся в открытом доступе и могут быть использованы и воспроизведены:

llm-query-expansion: https://github.com/jina-ai/llm-query-expansion/

© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...