Типы метрик
Метрики сходства используются для измерения сходства между векторами. Выбор подходящей метрики расстояния позволяет значительно улучшить производительность классификации и кластеризации.
В настоящее время Milvus поддерживает такие типы метрик сходства: Евклидово расстояние (L2), внутреннее произведение (IP), косинусное сходство (COSINE), JACCARD, HAMMING, и BM25 (специально разработанная для полнотекстового поиска по разреженным векторам).
В таблице ниже приведены соответствия между различными типами полей и соответствующими им типами метрик.
Тип поля |
Диапазон измерений |
Поддерживаемые метрические типы |
Метрический тип по умолчанию |
|---|---|---|---|
|
2-32,768 |
|
|
|
2-32,768 |
|
|
|
2-32,768 |
|
|
|
2-32,768 |
|
|
|
Размерность указывать не нужно. |
|
|
|
8-32,768*8 |
|
|
Для векторных полей типа
SPARSE\_FLOAT\_VECTORметрический типBM25используется только при полнотекстовом поиске. Дополнительные сведения см. в разделе Полнотекстовый поиск.Для векторных полей типа
BINARY_VECTORзначение размерности (dim) должно быть кратно 8.
В таблице ниже приведены характеристики значений расстояния сходства для всех поддерживаемых метрических типов и диапазон их значений.
Тип метрики |
Характеристики значений расстояния сходства |
Диапазон значений расстояния сходства |
|---|---|---|
|
Меньшее значение указывает на большее сходство. |
[0, ∞) |
|
Большее значение указывает на большее сходство. |
[-1, 1] |
|
Большее значение указывает на большее сходство. |
[-1, 1] |
|
Меньшее значение указывает на большее сходство. |
[0, 1] |
|
Оценивает сходство по Жаккарду на основе битов подписи MinHash; меньшее расстояние = большее сходство |
[0, 1] |
|
Меньшее значение указывает на большее сходство. |
[0, dim(vector)] |
|
Оценка релевантности на основе частоты терминов, инвертированной частоты документов и нормализации документов. |
[0, ∞) |
Чтобы проиндексировать векторные поля в поле Array of Structs, необходимо добавить префикс MAX_SIM к набору метрических типов, упомянутых выше, на основе векторных вкраплений, хранящихся в этих полях. Например,
Для векторного поля, хранящего векторные вложения типа
FLOAT_VECTOR,FLOAT16_VECTOR,BFLOAT16_VECTOR, илиINT8_VECTOR, в качестве метрического типа можно использоватьMAX_SIM_COSINE,MAX_SIM_IP, илиMAX_SIM_L2.Для векторного поля, хранящего векторные вложения типа
BINARY_VECTOR, в качестве метрического типа можно использоватьMAX_SIM_JACCADRилиMAX_SIM_HAMMING.
Евклидово расстояние (L2)
По сути, евклидово расстояние измеряет длину отрезка, соединяющего две точки.
Формула для евклидова расстояния выглядит следующим образом:
Евклидова метрика
где a = (a0, a1,...,an-1) и b = (b0, b1,..., bn-1) - две точки в n-мерном евклидовом пространстве.
Это наиболее часто используемая метрика расстояния, которая очень полезна, когда данные непрерывны.
Milvus вычисляет значение перед применением квадратного корня только в том случае, если в качестве метрики расстояния выбрано евклидово расстояние.
Внутреннее произведение (IP)
Расстояние IP между двумя вкраплениями определяется следующим образом:
Формула IP
IP более полезно, если вам нужно сравнить ненормированные данные или если вам важны величина и угол.
Если вы используете IP для вычисления сходства между эмбеддингами, вы должны нормализовать ваши эмбеддинги. После нормализации внутреннее произведение равно косинусному сходству.
Предположим, что X' нормализовано из вкрапления X:
Формула нормализации
Корреляция между двумя эмбеддингами выглядит следующим образом:
Корреляция между эмбеддингами
Косинусное сходство
Косинусное сходство использует косинус угла между двумя наборами векторов для измерения того, насколько они похожи. Можно представить два набора векторов как отрезки прямых, начинающиеся из одной и той же точки, например [0,0,...], но направленные в разные стороны.
Чтобы вычислить косинусоидальное сходство между двумя наборами векторов A = (a0, a1,...,an-1) и B = (b0, b1,..., bn-1), используйте следующую формулу:
Косинусное сходство
Косинусное сходство всегда находится в интервале [-1, 1]. Например, косинус сходства двух пропорциональных векторов равен 1, двух ортогональных векторов - 0, а двух противоположных векторов - -1. Чем больше косинус, тем меньше угол между двумя векторами, что говорит о том, что эти два вектора более похожи друг на друга.
Вычитая косинус сходства из 1, вы можете получить косинусоидальное расстояние между двумя векторами.
Расстояние JACCARD
Коэффициент расстояния JACCARD измеряет сходство между двумя выборочными совокупностями и определяется как кардинальность пересечения заданных совокупностей, деленная на кардинальность их объединения. Он может быть применен только к конечным выборочным совокупностям.
Формула коэффициента сходства JACCARD
Расстояние JACCARD измеряет несходство между наборами данных и получается путем вычитания коэффициента сходства JACCARD из 1. Для бинарных переменных расстояние JACCARD эквивалентно коэффициенту Танимото.
Формула расстояния JACCARD
MHJACCARD
MinHash Jaccard (MHJACCARD) - это метрика, используемая для эффективного, приблизительного поиска сходства в больших наборах, таких как наборы слов документов, наборы тегов пользователей или наборы геномных к-меров. Вместо того чтобы сравнивать исходные наборы напрямую, MHJACCARD сравнивает сигнатуры MinHash, которые являются компактными представлениями, разработанными для эффективной оценки сходства по Жаккарду.
Этот подход значительно быстрее, чем вычисление точного сходства по Жаккарду, и особенно полезен в крупномасштабных или высокоразмерных сценариях.
Применяемый тип вектора
BINARY_VECTOR, где каждый вектор хранит подпись MinHash. Каждый элемент соответствует минимальному хэш-значению по одной из независимых хэш-функций, примененных к исходному множеству.
Определение расстояния
MHJACCARD измеряет, сколько позиций в двух подписях MinHash совпадает. Чем выше коэффициент совпадения, тем более похожи исходные наборы.
Milvus сообщает:
- Расстояние = 1 - оценка сходства (коэффициент совпадения).
Значение расстояния варьируется от 0 до 1:
0 означает, что сигнатуры MinHash идентичны (оценочное сходство по Жаккарду = 1).
1 означает, что совпадений нет ни в одной позиции (расчетное сходство по Жаккарду = 0).
Для получения информации о технических деталях обратитесь к разделу MINHASH_LSH.
Расстояние HAMMING
Расстояние HAMMING измеряет бинарные строки данных. Расстояние между двумя строками одинаковой длины - это количество битовых позиций, в которых биты различаются.
Например, пусть есть две строки, 1101 1001 и 1001 1101.
11011001 ⊕ 10011101 = 01000100. Поскольку они содержат две 1, расстояние HAMMING, d (11011001, 10011101) = 2.
Сходство BM25
BM25 - это широко используемый метод измерения релевантности текста, специально разработанный для полнотекстового поиска. Он объединяет следующие три ключевых фактора:
Частота терминов (TF): Измеряет, насколько часто термин встречается в документе. Хотя более высокая частота часто указывает на большую важность, BM25 использует параметр насыщенности k , чтобы предотвратить доминирование слишком частых терминов в оценке релевантности.
Обратная частота документа (IDF): Отражает важность термина во всем корпусе документов. Термины, встречающиеся в меньшем количестве документов, получают более высокое значение IDF, что указывает на больший вклад в релевантность.
Нормализация длины документа: Длинные документы имеют тенденцию получать более высокие оценки, так как содержат больше терминов. BM25 уменьшает это смещение путем нормализации длины документов, а параметр b управляет силой этой нормализации.
Оценка BM25 рассчитывается следующим образом:
Описание параметра:
Q: текст запроса, предоставленный пользователем.
D: оцениваемый документ.
,: Частота термина, показывающая, как часто термин q встречается в документе D.
): Обратная частота документа, рассчитывается как:
где N - общее количество документов в корпусе, n ) - количество документов, содержащих термин q .
Длина документа D (общее количество терминов).
: средняя длина всех документов в корпусе.
k: Регулирует влияние частоты терминов на оценку. Более высокие значения увеличивают важность частоты терминов. Типичный диапазон - [1.2, 2.0], в то время как Milvus допускает диапазон [0, 3].
b: Регулирует степень нормализации длины, в диапазоне от 0 до 1. Если значение равно 0, нормализация не применяется; если значение равно 1, применяется полная нормализация.