Косинус, скалярное произведение и расстояние: выберите метрику, которую ожидает модель встраивания
Сравните три вычисления сходства на малых векторах и посмотрите, когда нормализация меняет упорядочение.
В этом материале
Короткий ответ
Используйте метрику сходства и предварительную обработку, рекомендованные для модели встраивания. Косинус сравнивает направление, скалярное произведение также отражает величину вектора, а евклидово расстояние измеряет разделение. Для единичных векторов косинус и скалярное произведение совпадают, а квадрат евклидова расстояния равен 2 минус удвоенный косинус. Эта эквивалентность требует нормализации; она не делает произвольные оценки сервиса взаимозаменяемыми. Проверяйте как векторы документов, так и запросов перед изменением индекса.
Начните с контракта встраивания
Запишите идентификатор модели, ревизию, размерность вектора и рекомендуемую меру сходства. Векторы запроса и документа должны принадлежать совместимым представлениям; одинаковые размерности сами по себе не доказывают совместимость. Некоторые модели извлечения используют разные инструкции для запроса и документа, поэтому совместимость не обязательно означает идентичное форматирование входных данных. Применяйте задокументированную предварительную обработку последовательно и сохраняйте её вместе с конфигурацией индекса.
Различайте направление и величину
Для ненулевых векторов q и x косинус равен их скалярному произведению, делённому на произведение их длин. Положительное масштабирование любого из векторов оставляет косинус неизменным. Скалярное произведение не обладает такой инвариантностью: увеличение длины вектора может повысить его оценку, даже если направление остаётся прежним. Решите, несёт ли длина полезную информацию в конкретной модели, вместо того чтобы считать нормализацию универсально безвредной очисткой.
Вычислите три упорядочения вручную
Рассмотрим построенные векторы q=(1,0), a=(2,0) и b=(1,1). Их скалярные произведения с q равны 2 и 1, поэтому скалярное произведение ставит a на первое место. Косинусы равны 1 и приблизительно 0.707, также ставя a на первое место. Необработанные евклидовы расстояния равны 1, что даёт ничью. Этот арифметический пример демонстрирует разное поведение метрик; это не измеренный результат извлечения и не доказательство того, что одна метрика точнее.
Поймите эквивалентность единичных векторов
После нормализации a становится (1,0), b становится приблизительно (0.707,0.707), а q остаётся (1,0). Их расстояния от q становятся 0 и приблизительно 0.765. Для двух единичных векторов раскрытие квадрата расстояния даёт 1+1-2 умножить на их скалярное произведение. Таким образом, минимизация расстояния и максимизация косинуса дают одинаковое упорядочение в точной арифметике при этих предположениях. Приближённые индексы и обработка ничьих всё ещё могут возвращать разные наборы кандидатов.
Отклоняйте недопустимые векторы до индексации
Нулевой вектор не может быть нормализован до единичной длины делением, а косинус не определён, когда длина любого из векторов равна нулю. Неконечные значения и несовместимые размерности также следует рассматривать как проблемы данных или конвейера. Определите, отклоняются ли такие записи, попадают в карантин или повторяются. Молчальная замена каждой недопустимой записи нулями создаёт новое представление без установления того, что модель встраивания или сервис поиска поддерживают его.
Интерпретируйте оценку, возвращаемую сервисом
API может преобразовать расстояние или сходство в собственную оценку ранжирования. Например, Azure AI Search документирует преобразованную косинусную оценку, а не возвращает необработанный косинус как оценку поиска. Поэтому порог, скопированный из другого сервиса или из ручного вычисления, может быть неверным. Прочитайте определение оценки для фактического режима запроса, включая то, объединяет ли гибридное извлечение несколько ранжирований.
Оценивайте изменения на осмысленных запросах
Перед переключением метрики в рабочей среде сравните небольшой набор репрезентативных запросов с явными суждениями о релевантности. При изолировании изменения метрики оставляйте документы, модель и предварительную обработку фиксированными. Если используется приближённый индекс, различайте проблему полноты кандидатов и проблему оценки. Записывайте отсутствующие релевантные документы и неожиданные результаты с высоким рангом вместо трактовки визуально большей оценки как улучшения качества.
Храните нормализацию вместе с версией индекса
Изменение нормализации меняет сохранённые векторы и может требовать перестройки индекса. Нормализация только запросов при несовместимом представлении документов, оставленном без изменений, не является общей стратегией миграции. Сохраняйте ревизию модели, метрику и настройки нормализации вместе, чтобы последующее развёртывание могло воспроизвести представление. Проверьте карточку модели для фактически выбранной модели; рекомендация для одной нормализованной модели встраивания не устанавливает правило для всех моделей.
Что проверить
- Используйте совместимые представления запроса и документа.
- Подтвердите рекомендацию по метрике, специфичную для модели.
- Отклоняйте нулевые и неконечные векторы согласно задокументированной политике.
- Читайте определение оценки, возвращаемой реальным сервисом.
- Рассматривайте значения малых векторов как иллюстративную арифметику.
Границы применения
Эквивалентность применяется к ненулевым единичным векторам в точной арифметике. Приближенная индексация, квантование, гибридное ранжирование и преобразования оценок сервиса могут влиять на возвращаемые результаты. Это руководство не устанавливает точность извлечения для конкретного корпуса.