Допустим, две формулировки получили высокую близость. Что теперь разрешено сделать: показать одну рядом с другой, дать им общий заголовок или считать, что ответ на первую полностью отвечает на вторую? Число само не выбирает действие.

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

Оценки языковой модели в статье не вычислялись. Геометрические векторы, порог 0,8 и проверочные формулировки заданы для объяснения. Они не являются измерениями сервиса или рекомендуемыми настройками.

Сначала определить отношение, которое нужно найти

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

«Какой номинальный объём T500?» и «Сколько миллилитров составляет номинальная вместимость T500?» могут соответствовать одной задаче. Вопрос «сколько наливали при испытании?» относится к другой величине. В учебном досье это 450 мл против номинальных 500 мл. Один и тот же товар и единица измерения не делают ответы взаимозаменяемыми.

Для поиска документов достаточно и более широкого отношения: фрагмент заслуживает просмотра как возможное основание. Для навигации можно объединять разные вопросы в тему «Сохранение температуры». Для подсчёта покрытия объединение потребует другого критерия. Эти решения полезно хранить раздельно.

Определение отношения задаёт и разметку контрольного набора. Названия «похожи» и «не похожи» без рубрики оставляют каждому редактору свою задачу. Тогда настройка порога будет подгонять число под несогласованные решения.

Что находится между строкой и оценкой

Модель преобразует текст в числовое представление — вектор. Затем выбранная функция сравнивает два представления. В Sentence Transformers предусмотрены, в частности, косинусная мера, скалярное произведение и оценки на основе расстояний. Их числовые шкалы нельзя смешивать.

Результат относится к конкретной конфигурации: модели, языку, единице текста и подготовке входа. Важен и контекст. Короткое «сколько держит?» без названного предмета не содержит того же задания, что полный вопрос об испытании T500 при определённой температуре.

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

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

Как читать косинусную меру

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

cos(u, v) = (u · v) / (‖u‖ × ‖v‖).

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

Математический диапазон — от −1 до 1. Ноль означает перпендикулярные направления в выбранном пространстве. Отрицательное значение не следует автоматически читать как противоречие текстов, а 0,9 — как 90-процентную вероятность одинакового вопроса. Такая интерпретация потребовала бы отдельной модели и проверки.

Возьмём единичные векторы A = (1; 0), B = (√3/2; 1/2), C = (1/2; √3/2). Их углы к горизонтальному направлению — 0°, 30° и 60°. Поэтому cos(A, B) = cos(B, C) = √3/2 ≈ 0,866, а cos(A, C) = 1/2. Это чистая геометрия; никакие тексты этим точкам не приписаны.

Единичные векторы под углами0,30,60градусов дают близостьABиBCоколо0,866,аAC0,5. При условном пороге0,8 граф образует цепочкуA—B—C.
Рисунок 1. Математический контрпример. Условный порог 0,8 даёт две соседние связи, но не прямую связь A–C. Связный компонент содержит все три вершины.

Попарный порог и правило группы — разные настройки

В нашем примере можно соединить все пары с косинусом выше 0,8 и взять связные компоненты графа. Тогда A, B и C окажутся вместе, хотя пара A–C порог не проходит. Прохождение попарного порога не транзитивно. Принадлежность одной связной компоненте транзитивна, но она не означает, что каждая пара внутри компоненты проходит порог.

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

Разные алгоритмы задают разные правила. В документации DBSCAN параметр eps ограничивает соседство, а не максимальное расстояние между всеми точками кластера. Результат зависит также от плотности и min_samples. Наша тройка иллюстрирует связный компонент; утверждения о её результате в произвольной настройке DBSCAN здесь нет.

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

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

В схеме Retrieve & Re-Rank сначала возвращаются потенциально релевантные документы, затем Cross-Encoder совместно оценивает запрос и каждого кандидата. Применение похожего разделения к группировке вопросов — наше решение. Релевантный документ и дубликат вопроса остаются разными отношениями.

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

На этапе принятия можно сопоставить предметные роли и условия или использовать обученную парную модель. В каталоге Cross-Encoder различаются задачи STS, релевантности и логического отношения. Выбор модели по удобству интерфейса без проверки её задачи не обосновывает эквивалентность вопросов.

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

Выбрать порог по размеченной задаче

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

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

BinaryClassificationEvaluator работает с размеченными парами и метками 0/1. Но смысл метки задаёт задача автора. В нашем случае положительный класс означает «одна ответная задача». В статье 09 положительным классом было наличие ошибки; одинаковые формулы метрик здесь получают другие предметные значения.

Precision для объединения — доля верных совпадений среди принятых пар; recall — доля принятых положительных пар среди всех эталонных положительных пар в выбранном проверочном наборе. Ложное объединение создаёт лишнюю положительную пару, пропущенное совпадение — отрицательное решение для нужной пары. Нулевые знаменатели и спорные эталоны не следует скрывать готовой долей. Если проверяются только пары, переданные поиском кандидатов, результат относится к этому условному набору. Для оценки всей цепочки учитывают и положительные пары, потерянные до парной проверки.

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

При фиксированных оценках повышение порога сокращает множество принимаемых пар. Вместе с ложным объединением может исчезнуть и нужное совпадение. Изменение precision зависит от состава случаев; само движение порога не гарантирует её улучшения.

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

Что должно остаться после группировки

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

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

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

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

Источники и основания разбора

  1. Sentence Transformers. Semantic Textual SimilarityПредставления текста и меры сравнения; шкала не задаёт автоматически предметный критерий совпадения.
  2. scikit-learn. DBSCANeps задаёт соседство, не максимальную дистанцию внутри кластера; важны плотность и остальные параметры.
  3. Sentence Transformers. Retrieve & Re-RankДвухэтапный поиск и переранжирование документов; применение к вопросам отделено от задачи релевантности.
  4. Sentence Transformers. Pretrained Cross-EncodersРазные задачи парных моделей: сходство, релевантность и логическое отношение.
  5. Sentence Transformers. BinaryClassificationEvaluatorРазмеченные пары и метки. Рубрика, разбиение материала и выбор критерия в статье — авторская процедура.
  6. Sentence Transformers. Computing EmbeddingsТекстовые инструкции для отдельных моделей и особенности подготовки входа.

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