- Показатель косинусного сходства измеряет направленное выравнивание двух векторов путем вычисления косинуса угла между ними, игнорируя их общую величину.
- Этот показатель имеет решающее значение для современного искусственного интеллекта, позволяя осуществлять семантический поиск, создавать персонализированные рекомендательные системы и обрабатывать многомерные эмбеддинги.
- В то время как стандартный метод косинусного сходства рассматривает признаки как независимые, продвинутые версии, такие как Soft Cosine, интегрируют взаимосвязи между признаками для повышения точности.
Вы когда-нибудь задумывались, как Spotify точно знает, какая песня придется вам по вкусу, или как Google понимает, что ваш поисковый запрос означает что-то конкретное, даже если вы не используете точные слова? Большая часть волшебства происходит за кулисами с помощью векторных представлений . Вместо того чтобы рассматривать слова или элементы как простой текст, ИИ преобразует их в точки в огромном многомерном пространстве, и именно здесь вступает в действие концепция косинусного сходства, чтобы все это осмыслить.
По сути, этот математический приём позволяет компьютерам определять, насколько «близки» два объекта, анализируя угол между их векторами . Компьютеру всё равно, если один вектор значительно длиннее другого; важно лишь, направлены ли они в одном направлении. Это кардинально меняет ситуацию в области обработки естественного языка (NLP) и рекомендательных систем, поскольку фокусируется на семантическом значении, а не просто на совпадении символов.
Основные принципы расчета

Чтобы понять, как это работает, нужно осознать, что каждый фрагмент данных — будь то слово или фильм — представлен в виде вектора, где каждое измерение соответствует определенному атрибуту. Для определения сходства мы выполняем несколько конкретных шагов. Во-первых, мы вычисляем скалярное произведение , которое включает в себя умножение соответствующих значений обоих векторов и их суммирование для определения степени их соответствия. Затем мы определяем величину (или длину) каждого вектора, извлекая квадратный корень из суммы его квадратов компонентов.
Последний шаг — это вычисление формулы косинусного сходства : скалярное произведение делится на произведение величин этих двух векторов. Математически это выглядит так: Косинусное сходство = (A · B) / (||A|| × ||B||) . Результатом является значение, которое обычно колеблется от -1 до 1. Значение 1 означает, что векторы идеально выровнены , 0 — что они ортогональны (совершенно не связаны), а -1 — что они диаметрально противоположны.
Взглянем на это в перспективе: короли, королевы и яблоки

Давайте рассмотрим это на конкретном примере. Представьте, что программист обрабатывает слова «король» и «королева». Поскольку эти термины часто встречаются рядом со словами типа «трон» или «монархия», их векторные представления будут указывать почти в одном направлении, что приведет к высокому показателю косинусного сходства . Теперь добавим в этот список слово «яблоко». Даже если оно находится в том же документе, оно встречается рядом с такими терминами, как «фрукт» или «сад», поэтому его вектор будет указывать в совершенно другом направлении, что приведет к гораздо более низкому показателю сходства.
Чтобы обеспечить высокую скорость обработки данных, компании не вычисляют это на лету для каждого отдельного элемента. Они используют векторные базы данных . Эти специализированные инструменты созданы для индексирования многомерных векторов, что позволяет невероятно быстро находить наиболее похожие совпадения без необходимости ручного сканирования всего набора данных.
Выходя за рамки основ: мягкий косинус и другие метрики.
Стандартный косинусный анализ имеет недостаток: он предполагает независимость каждого измерения. Однако в реальном мире слова, такие как «играть» и «игра», имеют разные измерения, но семантически связаны . Именно здесь на помощь приходит мягкий косинусный анализ . Он вводит матрицу сходства (часто с использованием расстояния Левенштейна или WordNet) для учета взаимосвязи между признаками, позволяя модели более эффективно обобщать понятия , даже если формальные признаки различаются.
Стоит также сравнить это с другими распространенными метриками. Например, евклидово расстояние (L2) измеряет расстояние по прямой линии между двумя точками, что отлично подходит для пространственной близости. Манхэттенское расстояние (L1) вычисляет расстояние по сетчатой траектории. В то время как эти метрики измеряют абсолютное расстояние , косинусное сходство фокусируется исключительно на ориентации . Существует также скалярное произведение , которое учитывает как угол, так и величину. Если нормализовать векторы до единичной длины, скалярное произведение и косинусное сходство фактически становятся одним и тем же, но вычисление скалярного произведения обходится дешевле с точки зрения вычислительных затрат.
Практическое применение в графовых данных и поиске
В мире графовых баз данных, таких как Amazon Neptune и другие графовые системы , косинусное сходство используется для выявления связей между группами или идентификации похожих пользователей. Например, если у вас есть граф людей и их любимых кухонь, вы можете представить их предпочтения в виде векторов оценок. Применяя алгоритм косинусного сходства , вы можете ранжировать пользователей, имеющих наиболее схожие вкусы, независимо от того, оценивает ли один человек больше ресторанов, чем другой.
Современные поисковые системы также отходят от чисто лексического поиска (например, Ctrl+F) в сторону векторного поиска . Хотя лексический поиск отлично подходит для токенизации, он упускает суть текста. Векторный поиск улавливает скрытое намерение . В таких системах, как Elasticsearch, это реализуется путем преобразования запросов в эмбеддинги и поиска ближайших соседей с использованием обсуждавшихся нами метрик, часто преобразуя диапазон от -1 до 1 в положительный показатель для лучшего ранжирования.
Независимо от того, создаёте ли вы систему рекомендаций фильмов или сложного ИИ-агента, выбор правильной метрики сходства зависит от того, имеет ли значение величина вектора . Если вас интересует только «тема» или «направление» данных, косинусное сходство — ваш лучший выбор. Для тех, кому необходимо точное пространственное расстояние, подойдёт евклидово сходство. Объединив эти математические инструменты с эффективными алгоритмами индексирования , мы можем превратить неструктурированные данные в организованную, доступную для поиска карту человеческого смысла.