3,583 papers
arXiv:2512.17164 72 18 дек. 2025 г. FREE

TCDE: двойное расширение через топики для точного поиска

КЛЮЧЕВАЯ СУТЬ
Расширяешь только запрос — он уходит в одну сторону. Расширяешь только документ — он в другую. Они говорят об одном, но разными словами после обработки — semantic mismatch убивает релевантность. TCDE решает проблему: синхронизирует расширение через общие топики. Модель извлекает 5 ключевых тем из запроса, генерит мини-документ на каждую. Из документов выжимает 5 тематических предложений по тем же темам. Итог: запрос и документ говорят на общем тематическом языкеcosine similarity с 0.64 до 0.74.
Адаптировать под запрос

TL;DR

TCDE — техника поиска, которая расширяет и запрос, и документы через общие топики для лучшего совпадения. Обычно расширяют что-то одно: либо "распушают" запрос (добавляют синонимы, контекст), либо обогащают документ. TCDE делает оба шага синхронно: модель извлекает 5 ключевых тем из запроса и генерирует по мини-документу на каждую, затем из каждого документа выжимает 5 тематических предложений. Поиск идёт по расширенным версиям — они лучше "видят" друг друга.

Проблема раздельного расширения — семантический дрейф. Расширил запрос — добавил контекста, но этого контекста нет в документах. Расширил документы — добавил деталей, которых нет в запросе. В итоге: запрос про "инвестиции в стартапы", расширение добавило "венчурные фонды, бизнес-ангелы", а документы расширены про "финансирование, капитал" — разные слова, хотя смысл один. Модель может промахнуться. В цифрах: спросил 100 слов, расширение выдало то 80, то 120 — нестабильно.

TCDE синхронизирует через топики: модель сначала определяет о чём именно запрос (например: "риски стартапов", "этапы финансирования", "оценка команды"), генерирует текст по каждому топику. Потом извлекает из документов предложения по тем же топикам. Результат — общий "язык" между запросом и документами. Тематические мосты работают на двух уровнях: лексическом (больше общих слов) и семантическом (ближе в пространстве эмбеддингов).


🔬

Схема метода

ШАГ 1 (Query Expansion): LLM извлекает 5 топиков из запроса → генерирует мини-документ на каждый топик

ШАГ 2 (Document Expansion): LLM извлекает 5 ключевых тематических предложений из каждого документа

ШАГ 3: Расширенный запрос (оригинал + 5 мини-документов) ищется по расширенным документам (оригинал + 5 тематических предложений)

Шаги 1-2 выполняются отдельными запросами к LLM. Шаг 3 — поиск через BM25 или векторную модель.


🚀

Пример применения

⚠️ Ограничения метода: TCDE требует поисковую инфраструктуру (индексация документов, векторный поиск или BM25). Прямое применение в чате ограничено. Но принцип topic-alignment работает для ручного анализа документов.

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

Промпт (адаптация принципа для ручного анализа):

У меня есть запрос: "Разработка iOS/Android приложения для маркетплейса локальных услуг: мастера публикуют услуги, клиенты бронируют, встроенный чат, оплата и рейтинги."

И 15 коммерческих предложений от подрядчиков.

Шаг 1: Извлеки 5 ключевых тематических аспектов из моего запроса — что именно важно для оценки подрядчика.

Шаг 2: Для каждого КП извлеки 5 ключевых тематических предложений — о чём они реально говорят в предложении.

Шаг 3: Сопоставь топики КП с топиками моего запроса. Покажи матрицу совпадений: какие подрядчики покрывают мои темы, а какие отвечают мимо.

[Вставить тексты КП]

Результат:

Модель выдаст: 1. 5 топиков вашего запроса (например: "двусторонний маркетплейс", "встроенные коммуникации", "платёжная интеграция", "система репутации", "кроссплатформенность") 2. 5 топиков из каждого КП — что реально предлагают (например: один про "красивый UI", другой про "масштабируемую архитектуру", третий про "опыт в маркетплейсах") 3. Матрицу соответствия — визуально видно кто попал в ваши темы, а кто шлёт общие слова


🧠

Почему это работает

Слабость поиска: Когда расширяешь только запрос или только документ, они могут разойтись семантически. Расширил запрос — добавил "венчурные фонды, pitch deck", а в документе таких слов нет, хотя смысл тот же. Или наоборот: документ расширен деталями, которых нет в запросе. Semantic mismatch — запрос и документ говорят об одном, но разными словами после расширения.

Сильная сторона LLM: Модель умеет извлекать абстрактные топики — ключевые темы без воды. Топик — это не пересказ, а сжатая суть. Вместо "мы предлагаем разработку мобильного приложения с использованием современных технологий" → топик "кроссплатформенная разработка". Компактно и однозначно.

Как TCDE использует это: Метод создаёт общий тематический словарь между запросом и документами. Оба расширяются через топики — получается синхронизация. Запрос превращается в набор мини-документов по темам, документ сжимается в ключевые тематические предложения. При поиске они лучше находят друг друга — больше общих слов (лексический уровень) и ближе в пространстве эмбеддингов (семантический уровень). Визуально: t-SNE показывает, что после TCDE релевантная пара (запрос, документ) сдвигается ближе (cosine similarity 0.64 → 0.74), а нерелевантная остаётся далеко.

Рычаги управления: - Число топиков (5 в оригинале) — уменьши до 3 для узких запросов, увеличь до 7-10 для многогранных тем - Повтор оригинала (5 раз в запросе) — усиливает вес исходной формулировки vs сгенерированных топиков; убери повторы если хочешь чистый поиск по топикам - Формат извлечения топиков — можешь заменить "одно предложение на топик" на "ключевые слова" или "короткие фразы" для ещё большей компактности


📋

Шаблон промпта (адаптация для ручного анализа)

**Задача:** {описание что ищешь или анализируешь}

**Документы/тексты для анализа:** {тексты}

Шаг 1: Извлеки {число} ключевых тематических аспектов из моей задачи — что именно важно.

Шаг 2: Для каждого документа извлеки {число} ключевых тематических предложений — о чём реально этот текст.

Шаг 3: Сопоставь топики документов с топиками задачи. Покажи матрицу: какие документы покрывают мои темы, какие нет, где есть пробелы.

Заполнение: - {описание что ищешь} — твой запрос или критерии поиска - {тексты} — документы, резюме, статьи, предложения для анализа - {число} — обычно 5, но можно 3-7 в зависимости от сложности


🚀 Быстрый старт — вставь в чат:

Вот шаблон TCDE для анализа документов через топики. Адаптируй под мою задачу: [твоя задача]. 
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит: что именно ты анализируешь, сколько документов, какие критерии важны — потому что от этого зависит сколько топиков извлекать и на чём фокусироваться. Она возьмёт паттерн "топики запроса → топики документов → сопоставление" и адаптирует под твою ситуацию.


⚠️

Ограничения

⚠️ Требует инфраструктуры для прямого применения: Полная реализация TCDE (автоматический поиск по большой коллекции) требует поисковой системы, индексации документов, API для массовой обработки. В чате можно применить принцип topic-alignment вручную для анализа 5-20 документов, но не для автоматического поиска в тысячах.

⚠️ Затраты на расширение: Каждый документ нужно предварительно обработать через LLM (извлечь топики). Для большой коллекции это дорого. В исследовании расширяли офлайн (один раз), но если документы постоянно обновляются — накладно.

⚠️ Не для простых запросов: Если запрос короткий и однозначный ("автор книги Война и мир"), topic-centric expansion избыточен. Работает лучше для многогранных информационных запросов ("риски инвестиций в стартапы на ранних стадиях").


🔍

Как исследовали

Команда из University of Massachusetts Boston и Xi'an Jiaotong University проверила TCDE на двух крупных бенчмарках: TREC Deep Learning (веб-поиск) и BEIR (12 датасетов из разных доменов — от научных статей до fact-checking). Сравнивали с сильными baseline: Query2doc (генерация псевдо-документа для запроса), docT5query (генерация запросов для документов через обученную T5), GRF (многогранное расширение запроса), CSQE (retrieval-augmented expansion).

Дизайн: Взяли LLM Qwen-turbo, сгенерировали 5 топиков для каждого запроса (на лету) и 5 тематических предложений для каждого документа (офлайн, заранее). Потом запускали поиск в двух режимах: sparse retrieval (BM25, лексическое совпадение слов) и dense retrieval (E5-Base, векторные эмбеддинги). Измеряли NDCG@10 (насколько релевантные документы в топ-10), MAP и Recall.

Результаты оказались неожиданными: В dense retrieval TCDE выиграла почти везде — 9 из 12 датасетов BEIR показали лучший NDCG@10. Особенно сильно на задачах fact verification (SciFact: +2.8% относительно E5-Base, FEVER: +7.6%). В sparse retrieval картина смешанная: TCDE лучше на 3 из 12 датасетов, но в среднем стабильнее конкурентов.

Почему такие выводы: Topic-centric alignment работает как семантический клей — запрос и документ начинают говорить на одном "языке топиков". Это сильнее влияет на dense retrieval (где важна близость в embedding space), чем на sparse (где всё ещё доминирует точное совпадение слов). Ablation study показала: изолированное расширение запроса (TQE) даёт +8-10% на TREC DL'19, изолированное расширение документов (TDE) даёт +2-3%, но вместе они дают +15-20% — чистый синергетический эффект.

Инсайт для практики: Dual expansion не просто складывает эффекты — она создаёт общее тематическое пространство. Если расширяешь что-то одно, рискуешь semantic drift. Если оба — синхронизируешь. Это объясняет почему TCDE стабильнее: даже на MS MARCO Dev (где модели обучены и так хороши) TCDE падает меньше всех baseline при добавлении шума от expansion.


💡

Адаптации и экстраполяции

🔧 Техника: Асимметричное число топиков → баланс детализации

Необязательно извлекать одинаковое число топиков из запроса и документа. Для сложного запроса с множеством аспектов — возьми 7-10 топиков. Для документа, который заведомо узкий — хватит 3. Или наоборот: короткий запрос (3 топика), а документ длинный (10 топиков). Главное — покрытие, а не симметрия.

Шаг 1: Извлеки 3 ключевых аспекта из моего короткого запроса: "Как оценить product-market fit?"

Шаг 2: Для каждой статьи в подборке извлеки 7-10 тематических предложений.

Шаг 3: Какие статьи покрывают все 3 аспекта моего запроса?

🔧 Техника: Topic-first search → двухступенчатый фильтр

Сначала попроси модель извлечь топики из всех документов (без запроса). Потом сформулируй запрос через топики и ищи пересечения. Это полезно когда не знаешь что именно ищешь — разведочный поиск.

Шаг 1: Вот 20 статей про AI в маркетинге. Извлеки из каждой 5 ключевых топиков.

Шаг 2: Покажи мне кластеры — какие топики повторяются, какие уникальны.

Шаг 3: Теперь мой запрос: "Как AI помогает в персонализации email-рассылок". Какие статьи из 20 покрывают эту тему по топикам?

🔗

Ресурсы

TCDE: Topic-Centric Dual Expansion of Queries and Documents with Large Language Models for Information Retrieval

Ping Chen (University of Massachusetts Boston), Yu Yang, Feng Tian (Xi'an Jiaotong University)


📋 Дайджест исследования

Ключевая суть

Расширяешь только запрос — он уходит в одну сторону. Расширяешь только документ — он в другую. Они говорят об одном, но разными словами после обработки — semantic mismatch убивает релевантность. TCDE решает проблему: синхронизирует расширение через общие топики. Модель извлекает 5 ключевых тем из запроса, генерит мини-документ на каждую. Из документов выжимает 5 тематических предложений по тем же темам. Итог: запрос и документ говорят на общем тематическом языкеcosine similarity с 0.64 до 0.74.

Принцип работы

Не расширяй вслепую — синхронизируй через топики. Обычный подход: добавил в запрос "венчурные фонды, бизнес-ангелы", а в документе "финансирование, капитал" — разные слова, один смысл, модель промахивается. TCDE создаёт тематические мосты: запрос превращается в набор мини-документов по 5 темам, документ сжимается в 5 ключевых предложений по темам. Поиск идёт по расширенным версиям — они лучше "видят" друг друга на двух уровнях: больше общих слов (лексика) + ближе в пространстве эмбеддингов (семантика).

Почему работает

Модель умеет извлекать абстрактные топики — сжатую суть без воды. Вместо "мы предлагаем разработку с современными технологиями" → топик "кроссплатформенная разработка". Компактно и однозначно. TCDE использует топики как общий словарь между запросом и документами — оба расширяются через одни темы, получается синхронизация. Визуально: t-SNE показывает что релевантная пара (запрос, документ) сдвигается ближе после TCDE, нерелевантная остаётся далеко. Работает на двух уровнях: лексическом (совпадающие слова) и семантическом (близость векторов). Рычаги: число топиков (стандарт 5, можно 3-10), повтор оригинала (5 раз усиливает вес исходной формулировки), формат извлечения (предложения vs ключевые слова).

Когда применять

Информационный поиск → для многогранных запросов где важна точность совпадения тем, особенно когда документы и запросы используют разную лексику для одних понятий. Примеры: анализ коммерческих предложений (15 КП от подрядчиков — кто реально понимает специфику), поиск экспертизы в резюме (найти кандидатов с опытом в конкретных технологиях), сопоставление требований с документацией. НЕ подходит для коротких однозначных запросов ("автор книги Война и мир") — topic-centric expansion избыточен.

Мини-рецепт

1. Извлеки топики из запроса: Извлеки 5 ключевых тематических аспектов из моей задачи: [описание]. Каждый топик — одно предложение, фокус на суть без воды
2. Извлеки топики из документов: Для каждого документа извлеки 5 ключевых тематических предложений — о чём реально этот текст. Не пересказывай, а называй темы
3. Сопоставь: Покажи матрицу соответствия: какие документы покрывают мои топики, какие отвечают мимо, где пробелы
4. Ранжируй: По количеству совпадающих топиков — чем больше пересечений тем, тем релевантнее документ

Примеры

[ПЛОХО] : Найди в этих 10 резюме кандидатов с опытом в мобильной разработке — модель ищет по ключевым словам, промахивается если в резюме написано "iOS/Android" вместо "мобильная разработка"
[ХОРОШО] : Шаг 1: Извлеки 5 топиков моего запроса: опыт кроссплатформенной разработки, работа с платёжными API, реализация чатов, система рейтингов, публикация в сторы. Шаг 2: Из каждого резюме извлеки 5 ключевых технических компетенций. Шаг 3: Матрица совпадений — кто покрывает мои топики — модель синхронизирует через темы, находит даже если формулировки разные
Источник: TCDE: Topic-Centric Dual Expansion of Queries and Documents with Large Language Models for Information Retrieval
ArXiv ID: 2512.17164 | Сгенерировано: 2026-01-09 00:24
📖 Простыми словами

TCDE: двойное расширение через топики для точного поиска

arXiv: 2512.17164

Поиск информации в базе — это не магия, а попытка двух текстов «узнать» друг друга. Проблема в том, что обычные поисковики тупые: они ищут совпадения слов. Если ты ищешь «как поднять раунд», а в крутой статье написано про «привлечение инвестиций серии А», вы можете никогда не встретиться. Раньше пытались «распушить» что-то одно: либо докидывали синонимов в запрос, либо раздували описание документа. Но это часто не срабатывает, потому что расширенный запрос улетает в одну сторону, а документ — в другую, и они окончательно теряют связь. Метод TCDE решает это через синхронное расширение, заставляя обе стороны говорить на одном языке.

Это как если бы два человека пытались встретиться в огромном торговом центре, не имея телефонов. Если один пойдет искать «еду», а второй — «фудкорт», они могут разминуться. TCDE — это когда оба заранее договариваются встретиться у конкретных ориентиров: «фонтан», «кинотеатр», «лифт». Метод берет запрос и документ и принудительно прогоняет их через общие топики. Вместо того чтобы надеяться на удачу, система создает пять тематических мостов, по которым запрос и документ гарантированно придут в одну точку.

Технически это работает в два удара. Сначала LLM вытаскивает из твоего короткого запроса 5 ключевых тем и пишет по мини-тексту на каждую — превращает три слова в детальный контекст. Затем она берет каждый документ из базы и выжимает из него 5 тематических предложений, которые отвечают на те же темы. В итоге поиск идет не по исходным обрубкам текста, а по этим расширенным версиям. Вероятность того, что они «зацепятся» друг за друга, вырастает в разы, потому что семантический разрыв просто исчезает.

Хотя метод тестировали на классическом поиске, принцип универсален. Это не просто про базы данных, это про то, как вообще заставить AI понимать суть дела. Если ты готовишь справку для шефа или пишешь статью, используй topic-alignment: не лей воду, а выделяй конкретные темы и раскрывай их и в вопросе, и в ответе. Старое доброе SEO, где мы пихали ключи в заголовки, окончательно дохнет. На смену приходит GEO, где важно, чтобы твой контент совпадал с темами, которые генерирует нейронка в голове у пользователя.

Главный вывод: если хочешь, чтобы тебя нашли, перестань играть в угадайку со словами. Нужно внедрять двойное расширение и бить точно в темы, которые связывают запрос с реальностью. TCDE доказывает, что когда и вопрос, и ответ подготовлены по одной схеме, точность поиска взлетает. Либо ты настраиваешь этот «тематический мост», либо твой контент так и останется лежать мертвым грузом, который формально существует, но никем не найден.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с