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

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

Объяснение часто используемых мер сходства

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

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

Математическая формула для расчета евклидова расстояния между векторами a и b с размерностями «n» определяется следующим образом:

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

Давайте рассмотрим пример, в котором мы определим два трехмерных вектора, A = (4, 5, 6) и B = (1, 2, 3), и пройдем этапы расчета.

Шаг 1. Найдите разницу между соответствующими элементами в двух векторах.

координата x: 4–1 = 3
координата y: 5–2 = 3
координата z: 6–3 = 3

Шаг 2. Возведите полученные различия в квадрат.

координата x: 32 = 9
координата y: 32 = 9
координата z: 32 = 9

Шаг 3. Сложите эти квадраты разностей вместе.

9 + 9 + 9 = 27

Шаг 4. Получите квадратный корень из суммы значений.

√27 ≈ 5.196

При расчете евклидова расстояния в пространствах, превышающих 2- или 3-мерное пространство, его часто называют нормой L2. Вот почему, указывая Евклидово расстояние в качестве меры сходства в KDB.AI, вы будете использовать L2 в качестве метрического параметра. L2-норма — это просто обобщение евклидова расстояния в многомерном пространстве.

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

Как вы можете видеть на изображении выше, векторы C и D указывают в одном направлении, что может первоначально заставить вас поверить, что они более похожи, чем векторы A и B. Однако, поскольку евклидово расстояние рассчитывается через расстояние по прямой между векторы, тот факт, что A и B являются меньшими векторами, означает, что они считаются более похожими при использовании этой меры.

Скалярное произведение
Скалярное произведение — это простая мера, используемая для определения того, насколько выровнены два вектора друг относительно друга. Он говорит нам, направлены ли векторы в одном направлении, в противоположных направлениях или перпендикулярны друг другу. Он рассчитывается путем умножения соответствующих элементов векторов и сложения результатов для получения единого скалярного числа.

Для векторов a и b с n-размерами скалярное произведение определяется математически как:

Это простое уравнение умножает соответствующие элементы векторов и суммирует полученные продукты. В качестве примера: если бы у нас было два вектора: A = (1, 2, 3) и B = (4, 5, 6), скалярное произведение вычислялось бы следующим образом:

Шаг 1. Перемножьте соответствующие элементы в двух векторах.

координата x: 1 * 4 = 4
координата y: 2 * 5 = 10
координата z: 3 * 6 = 18

Шаг 2. Сложите эти результаты вместе.

4 + 10 + 18 = 32

Если результат большой и положительный, это означает, что векторы имеют одинаковые направления, а если результат большой и отрицательный, это означает, что векторы имеют противоположные направления. Когда скалярное произведение равно нулю, это означает, что векторы перпендикулярны, образуя угол 90 градусов.

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

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

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

Для векторов a и b с размерностями «n» косинусное сходство определяется математически как:

Вы можете заметить, что формула для меры сходства «скалярного произведения» является верхней частью этого уравнения. Это связано с тем, что скалярное произведение измеряет выравнивание направлений векторов, а затем нижняя часть уравнения нормализует это значение, учитывая разницу величин векторов. Это дает нам значение сходства между –1 и 1. Мы можем пройти через то, что здесь происходит, используя одни и те же два трехмерных вектора: A = (1, 2, 3) и B = (4, 5, 6). , как мы использовали в примере скалярного произведения:

Начало уравнения:
Шаг 1:
Умножьте соответствующие элементы в двух векторах

координата x: 4 * 1 = 4
координата y: 5 * 2 = 10
координата z: 6 * 3 = 18

Шаг 2. Сложите эти результаты вместе.

4 + 10 + 18 = 32

Нижняя часть уравнения:
Шаг 3: Возведите в квадрат каждый элемент в каждом векторе

Вектор 1:(1², 2², 3²) = (1, 4, 9)
Вектор 2:(4², 5², 6²) = (16, 25, 36)

Шаг 4. Сложите полученные квадраты значений.

Вектор 1:1 + 4 + 9 = 14
Вектор 2:16 + 25 + 36 = 77

Шаг 5. Умножьте эти результаты.

sqrt(14 * 77) = sqrt(1078) = 32,83

Полное уравнение:
Шаг 6.
Разделите верхнее значение на нижнее значение.

32/32.83 = 0.9747

Как уже упоминалось, косинусное подобие фокусируется только на направлении векторов, а не на их величине, поэтому учитывается только угол между векторами. Это означает, что векторы будут считаться наименеепохожими, если они направлены прямо в противоположном направлении (180°), а векторы будут считаться наиболеепохожими, если они направлены в одном и том же направлении. (0°). Косинус этих углов всегда дает результирующее значение в диапазоне от -1 до 1, причем более высокое значение означает, что векторы более похожи.

Как вы можете видеть на рисунке выше, векторы A и B считаются более похожими при использовании косинусного сходства, чем векторы C и D, поскольку угол между ними меньше, несмотря на то, что величины этих векторов очень разные.

Когда использовать каждую меру

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

Евклидово расстояние:

  • Кластерный анализ.Кластеризация, как и k-средние, группирует точки данных на основе их близости в векторном пространстве.
  • Обнаружение аномалий и мошенничества. В этих случаях необычные точки данных могут быть обнаружены на необычно больших расстояниях от центроида обычных транзакций.

Скалярный продукт:

  • Поиск и сопоставление изображений. Изображения со схожим визуальным содержанием будут иметь близко выровненные векторы, что приведет к более высоким значениям скалярного произведения. Это делает скалярное произведение хорошим выбором, если вы хотите найти изображения, похожие на заданное изображение запроса.
  • Нейронные сети и глубокое обучение.В нейронных сетях полностью связанные слои используют скалярное произведение для объединения входных функций с обучаемыми весами. Это фиксирует взаимосвязи между функциями и полезно для таких задач, как классификация и регрессия.
  • Рекомендация по музыке. Сходство скалярного произведения помогает идентифицировать треки со схожими звуковыми характеристиками, что делает его ценным для систем рекомендаций по музыке.

Косинусное сходство:

  • Моделирование тем. Во встраиваниях документов каждое измерение может представлять частоту употребления слова или вес TF-IDF. Однако два документа разной длины могут иметь совершенно разную частоту слов, но одинаковое распределение слов. Поскольку при этом они располагаются в одинаковых направлениях в векторном пространстве, но не на одинаковых расстояниях, косинусное сходство является отличным выбором.
  • Сходство документов: еще одно применение тематического моделирования. Подобные вложения документов имеют одинаковое направление, но могут иметь разные расстояния.
  • Совместная фильтрация. Этот подход в системах рекомендаций использует коллективные предпочтения и поведение пользователей (или элементов) для выдачи персонализированных рекомендаций. Пользователи (или элементы) представлены в виде векторов, основанных на их взаимодействиях. Поскольку общие рейтинги и популярность могут создавать разные расстояния, но направление подобных векторов остается близким, часто используется косинусное сходство.

Мозг векторных баз данных

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

Посмотрите, как можно использовать различные методы сходства в KDB.AI и применить их к собственному векторному поиску.

Эта статья написана в соавторстве с Нилом Канунго и Натаном Кроуном