Метрики сходства
В Milvus метрики сходства используются для измерения сходства между векторами. Выбор хорошей метрики расстояния помогает значительно улучшить производительность классификации и кластеризации.
В следующей таблице показано, как эти широко используемые метрики сходства сочетаются с различными формами входных данных и индексами Milvus. В настоящее время Milvus поддерживает различные типы данных, включая вкрапления с плавающей точкой (часто известные как векторы с плавающей точкой или плотные векторы), двоичные вкрапления (также известные как двоичные векторы) и разреженные вкрапления (также известные как разреженные векторы).
| Метрические типы | Индексные типы |
|---|---|
|
|
| Метрические типы | Типы индексов |
|---|---|
|
|
| Метрические типы | Типы индексов |
|---|---|
| IP |
|
Евклидово расстояние (L2)
По сути, евклидово расстояние измеряет длину отрезка, соединяющего две точки.
Формула для евклидова расстояния выглядит следующим образом:
евклидоворасстояние
где a = (a0, a1,...,an-1) и b = (b0, b0,..., bn-1) - две точки в n-мерном евклидовом пространстве.
Это наиболее часто используемая метрика расстояния, которая очень полезна, когда данные непрерывны.
Внутреннее произведение (IP)
Расстояние IP между двумя векторными вкраплениями определяется следующим образом:
ip
IP более полезно, если вам нужно сравнить ненормированные данные или если вам важны величина и угол.
Если применить метрику расстояния IP к нормализованным эмбеддингам, результат будет эквивалентен вычислению косинусного сходства между эмбеддингами.
Предположим, что X' нормализовано из вкрапления X:
normalize
Корреляция между двумя эмбеддингами выглядит следующим образом:
нормализация
Косинусное сходство
Косинусное сходство использует косинус угла между двумя наборами векторов для измерения того, насколько они похожи. Вы можете представить два набора векторов как два отрезка прямой, которые начинаются из одного и того же начала координат ([0,0,...]), но направлены в разные стороны.
Чтобы вычислить косинусоидальное сходство между двумя наборами векторов A = (a0, a1,...,an-1) и B = (b0, b1,..., bn-1), используйте следующую формулу:
косинусное_подобие
Косинусное сходство всегда находится в интервале [-1, 1]. Например, косинус сходства двух пропорциональных векторов равен 1, двух ортогональных векторов - 0, а двух противоположных векторов - -1. Чем больше косинус, тем меньше угол между двумя векторами, что говорит о том, что эти два вектора более похожи друг на друга.
Вычитая косинус сходства из 1, можно получить косинусное расстояние между двумя векторами.
Расстояние Жаккара
Коэффициент сходства Жаккара измеряет сходство между двумя выборочными совокупностями и определяется как кардинальность пересечения определяемых совокупностей, деленная на кардинальность их объединения. Он может быть применен только к конечным выборочным совокупностям.
Коэффициент сходства Жаккара
Расстояние Жаккара измеряет несходство между наборами данных и получается путем вычитания коэффициента сходства Жаккара из 1. Для бинарных переменных расстояние Жаккара эквивалентно коэффициенту Танимото.
Расстояние Жаккара
Расстояние Хэмминга
Расстояние Хэмминга измеряет расстояние между строками двоичных данных. Расстояние между двумя строками одинаковой длины - это количество битовых позиций, в которых биты различаются.
Например, пусть есть две строки: 1101 1001 и 1001 1101.
11011001 ⊕ 10011101 = 01000100. Поскольку они содержат две 1, расстояние Хэмминга d (11011001, 10011101) = 2.
Структурное сходство
Когда химическая структура является частью более крупной химической структуры, первая называется субструктурой, а вторая - суперструктурой. Например, этанол является подструктурой уксусной кислоты, а уксусная кислота - надстройкой этанола.
Структурное сходство используется для определения того, похожи ли две химические формулы друг на друга тем, что одна из них является надстройкой или подструктурой другой.
Чтобы определить, является ли A надстройкой B, используйте следующую формулу:
надстройка
где:
- A - двоичное представление химической формулы, которую необходимо найти
- B - двоичное представление химической формулы в базе данных.
Если формула возвращает 0, то A не является надстройкой B. В противном случае результат будет обратным.
Чтобы определить, является ли A подструктурой B, используйте следующую формулу:
субструктура
Где:
- A - двоичное представление химической формулы, которую необходимо найти
- B - двоичное представление химической формулы в базе данных.
Если формула возвращает 0, то A не является подструктурой B. В противном случае результат будет обратным.
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
Почему в результате векторного поиска в топ1 попадает не сам вектор поиска, если тип метрики - внутреннее произведение?
Это происходит, если вы не нормализовали векторы при использовании внутреннего произведения в качестве метрики расстояния.Что такое нормализация? Зачем нужна нормализация?
Нормализация - это процесс преобразования вложения (вектора) таким образом, чтобы его норма была равна 1. Если вы используете внутреннее произведение для расчета сходства вкраплений, вам необходимо нормализовать вкрапления. После нормализации внутреннее произведение равно косинусному сходству.
Более подробную информацию см. в Википедии.
Почему я получаю разные результаты, используя в качестве метрики расстояния евклидово расстояние (L2) и внутреннее произведение (IP)?
Проверьте, нормализованы ли векторы. Если нет, то сначала нужно нормализовать векторы. Теоретически говоря, сходство, полученное по L2, отличается от сходства, полученного по IP, если векторы не нормализованы.Что дальше
- Узнайте больше о поддерживаемых типах индексов в Milvus.