TL;DR
ReCoG — метод, где модель сначала выписывает различия между каждой парой похожих объектов («чем A отличается от B»), а потом по этим записям выбирает победителя в попарных сравнениях. Побеждает объект с наибольшим числом побед (турнир «каждый с каждым»). Модель не обучают: она работает как есть, а различия хранятся текстом.
Обычный подход описывает каждый объект отдельно. Описание получается правдоподобным, но бесполезным для различения: модель пишет самые заметные признаки («тёмная птица, пятнистая грудка»), а они одинаковы у всех похожих объектов. Узнают объект по мелочам: форма клюва, полоса на крыле. Если взять такие описания и просто сравнивать объекты попарно, результат оказывается хуже, чем без сравнения. Попарное сравнение само по себе ничего не даёт, если под ним нет контрастных данных.
ReCoG устроен в два этапа. Этап 1. Для каждой пары объектов модель получает оба примера и пишет, что отличает один от другого (в обе стороны). Этап 2. Когда приходит новый случай, система выбирает несколько похожих кандидатов. Для каждой пары кандидатов модель сравнивает случай с ними, имея перед глазами записанные различия именно этой пары. Побеждает тот, у кого больше всего побед.
Схема метода
ЭТАП 1 (один раз, заранее): для каждой пары (A, B) среди объектов
→ запрос: «Чем A отличается от B?» (оба примера в запросе)
→ результат: две записи — различия с точки зрения A и с точки зрения B
ЭТАП 2 (на каждый новый случай):
ШАГ 1: отобрать 3–5 самых похожих кандидатов
ШАГ 2: для каждой пары кандидатов → «К кому ближе случай: к A или к B?»
(в запросе: примеры A и B + записанные различия пары)
ШАГ 3: посчитать победы каждого кандидата
ШАГ 4: у кого больше побед — тот ответ (ничья → самый похожий по общему сходству)
Это отдельные запросы к модели. Для малого числа объектов (до 5–6) их можно провести вручную в одном чате.
Пример применения
Задача: Селлер на Wildberries принимает возвраты. На складе лежат четыре почти одинаковые модели чёрных кроссовок. Фото с брака приходят от покупателей, и нужно понять, какая это модель. Каждая модель отличается мелочами: строчка, форма язычка, логотип на пятке. Общие описания вроде «чёрные кроссовки с белой подошвой» тут не помогают.
Промпт (этап 1, повторить для каждой пары, здесь 6 пар):
Тебе даны два фото: модель A (артикул 4412) и модель B (артикул 4418).
Обе — чёрные кроссовки, и на первый взгляд они почти одинаковые.
Не описывай каждую по отдельности. Напиши только то, чем A
отличается от B: мелкие детали — строчка, форма язычка, логотип,
рельеф подошвы, шнуровка, швы. Общие признаки, которые есть у обеих,
пропусти.
Формат:
Отличия A от B: (3–5 пунктов, каждый — конкретная деталь)
Отличия B от A: (3–5 пунктов)
Промпт (этап 2, для каждой пары кандидатов):
Вот фото из возврата (запрос), эталон модели 4412 (A) и эталон
модели 4418 (B).
Заранее выписанные различия этой пары:
{отличия_A_от_B_и_B_от_A}
Проверь по этим различиям: к какой модели ближе фото запроса?
Сравни именно перечисленные детали. Ответь: «A» или «B» и одной
строкой назови деталь, по которой решил.
Результат: На этапе 1 модель выдаст для каждой пары два коротких списка конкретных деталей без общих признаков. На этапе 2 для каждой пары придёт ответ «A» или «B» с указанием детали. Дальше вы считаете победы (при четырёх кандидатах это 6 сравнений) и берёте модель с наибольшим числом побед. Список различий пар готовится один раз и переиспользуется для всех новых фото.
Почему это работает
Слабость. Когда модель описывает объект сама по себе, она выбирает самые заметные признаки, а у похожих объектов они общие. Описание правдоподобное, но не отделяет объект от соседей. Оценки «насколько это похоже на A» ещё и нестабильны: они зависят от формулировки и от контекста.
Сильная сторона. Если дать модели два объекта рядом и спросить «в чём разница?», она хорошо находит мелкие различия. Сравнивать вдвоём проще, чем описывать вслепую. Вопрос «A или B?» тоже надёжнее, чем «насколько это A?».
Как метод это использует. Он заранее превращает попарное сравнение в готовую подсказку: записанные различия указывают, на что смотреть именно в этой паре. Затем решение собирается из многих простых бинарных выбора. Одна ошибка в паре не ломает итог. Важно, что оба элемента нужны вместе: сравнение без контрастных записей оказалось хуже обычной проверки.
Рычаги управления: - Число кандидатов (3–5) → меньше сравнений и дешевле, но выше риск потерять правильный ответ при отборе. - Формат различий («3–5 пунктов, конкретные детали») → короче записи и меньше шума; можно потребовать указать «наименее очевидное отличие». - Направленность (A от B и B от A) → два взгляда на одну пару дополняют друг друга. Авторы используют оба. - Только ближайшие пары → при большом числе объектов готовь различия только для самых похожих пар. Авторы называют это упрощённым вариантом и считают компромисс выгодным. - Правило ничьей → если побед поровну, берите того, кто визуально или по смыслу ближе в целом.
Шаблон промпта
Этап 1. Выписать различия пары
Тебе даны два объекта: {объект_A} и {объект_B}.
Они похожи, и общие описания их не отличают.
Не описывай каждый по отдельности. Напиши только то, чем {объект_A}
отличается от {объект_B}: мелкие, но надёжные признаки, по которым
их можно различить. Общие признаки пропусти.
Формат:
Отличия {объект_A} от {объект_B}: {число_пунктов} конкретных пунктов
Отличия {объект_B} от {объект_A}: {число_пунктов} конкретных пунктов
Этап 2. Попарное сравнение с различиями
Вот новый случай: {случай}.
Кандидаты: {объект_A} (эталон: {описание_или_фото_A}) и
{объект_B} (эталон: {описание_или_фото_B}).
Заранее выписанные различия этой пары:
{отличия_пары}
Проверь случай именно по этим различиям.
К кому он ближе: {объект_A} или {объект_B}?
Ответь одним словом и одной строкой назови деталь, по которой решил.
Этап 3. Подсчёт
Результаты сравнений: {список_пар_и_победителей}
Посчитай победы каждого кандидата. Назови того, у кого их больше.
Если ничья — выбери самого похожего по общему сходству: {правило_ничьей}.
Подставляйте объекты (товары, тарифы, шаблоны документов, виды брака) и сам случай. Когда объектов больше пяти, сначала отберите 3–5 ближайших кандидатов.
🚀 Быстрый старт — вставь в чат:
Вот шаблон ReCoG (различия пар → попарные сравнения → подсчёт побед).
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит, какие объекты вы различаете и чем они похожи, есть ли у них эталоны (фото или текст) и сколько кандидатов оставлять после отбора. Эти данные нужны, чтобы она написала различия именно для ваших пар и сохранила схему «различия → пары → победы».
Ограничения
⚠️ Число вызовов растёт квадратом: для каждой пары нужен отдельный запрос. Для 6–8 объектов вручную это терпимо, для сотен нужна автоматизация и упрощённый вариант (только ближайшие пары).
⚠️ Нужен отбор кандидатов: авторы сначала сужают круг объектов по сходству изображений (поиск по эмбеддингам CLIP). В чате без этого отбора придётся выбирать кандидатов самому или отдельным запросом.
⚠️ Только половина метода вредит: попарное сравнение без контрастных записей оказалось хуже обычной схемы «проверь каждый объект отдельно». Не пропускайте этап 1.
⚠️ Проверено на небольших открытых моделях: авторы тестировали открытые визуальные модели среднего размера и один эталон на объект. На ChatGPT, Claude и Gemini метод не проверяли.
⚠️ Промпты авторов не приведены в тексте статьи (они в приложении, которого нет в материале). Шаблоны выше — моя реконструкция по описанию метода, не дословная копия.
⚠️ Задача узкая: статья о распознавании пользовательских объектов по картинкам. Перенос на текстовые задачи (классификация обращений, тарифов) авторы не проверяли.
Как исследовали
Авторы построили новый тест FINGER на «похожих до неразличимости» объектах. Первая часть: 20 видов птиц из набора CUB в двух вариантах. В лёгком виды выбраны случайно. В сложном специально отобраны похожие, в основном чёрные птицы. Вторая часть: 20 сцен из кубиков, цилиндров и шаров (CLEVR), где один объект — вся сцена, снятая с разных ракурсов. Модели дают один эталонный пример на объект.
Сравнивали ReCoG с сильным методом R2P, который описывает объекты по отдельности, и с «Baseline». Baseline берёт описания R2P, но вместо проверки по одному сравнивает попарно. Так авторы отделили эффект самого сравнения от эффекта контрастных данных.
ReCoG выиграл везде. Итоговая точность выросла с 93,6% до 98,1% на лёгких птицах, с 81,0% до 92,8% на сложных и с 79,6% до 93,3% на сценах. На сложных птицах доля правильных узнаваний выросла с 63,8% до 86,3%. Главная неожиданность: Baseline получил заметно худший результат, чем R2P (на лёгких птицах ~50% против ~88% правильных узнаваний). Значит, попарное сравнение с обычными описаниями вредит: подсказки не указывают на реальные различия. На знакомых тестах (распознавание, подписи к картинкам, вопросы по картинкам) ReCoG тоже оказался лучшим.
Практический вывод: форма запроса «чем отличается от соседа» важнее самой процедуры сравнения.
Адаптации и экстраполяции
🔧 Техника: убрать «в обе стороны» → вдвое меньше запросов
Для большого числа объектов просите различия только в одну сторону: «Отличия A от B». Вы теряете второй взгляд на пару, но число запросов остаётся тем же, а текста меньше. Авторы оба направления берут из одного запроса, так что экономия идёт на длине записей, не на числе вызовов.
Экстраполяция на текст (моя идея, авторами не проверялась): тот же принцип для выбора между близкими вариантами в тексте: тарифы, шаблоны ответов, категории обращений.
Тебе даны две категории обращений в поддержку: «Возврат товара»
и «Отмена заказа до отправки». Они часто путаются.
Не описывай каждую отдельно. Выпиши 3–5 признаков, которые
надёжно отличают «Возврат товара» от «Отмена заказа до отправки»,
и 3–5 — наоборот. Общие признаки пропусти.
Потом классифицируй это обращение по выписанным признакам:
{текст_обращения}
Выписанные различия можно вставить в системную инструкцию агента поддержки как правила «если видишь это — это возврат».
Ресурсы
- Работа: ReCoG: Relational Concept Graph for Training-Free Personalization (NeurIPS 2026)
- Авторы: Changseon Yu, Hyeokjun Kweon — GSAIM, Chung-Ang University (Южная Корея)
- Страница проекта: https://csy-98.github.io/ReCoG/
- Сравниваемые методы: R2P, RAP
- Тест: FINGER (на базе CUB-200-2011 и CLEVR)
