Что такое косинусное сходство?
Косинусное сходство показывает, насколько два вектора направлены в одну сторону. По сути это косинус угла между ними, и его значения лежат в диапазоне от −1 (противоположные направления) через 0 (перпендикулярные векторы) до 1 (одинаковое направление). Поскольку метрика зависит только от направления, а не от длины векторов, её широко применяют в машинном обучении, анализе текстов и рекомендательных системах — для сравнения документов, эмбеддингов и векторов признаков.
Как пользоваться калькулятором
Введите компоненты x, y и (при необходимости) z для вектора A и вектора B. Чтобы работать в двумерном пространстве, оставьте поля z пустыми или заполните нулями. Калькулятор выдаст косинусное сходство, а также скалярное произведение, длину каждого вектора и угол между ними — сразу в градусах и радианах.
Разбор формулы
Скалярное произведение — это сумма произведений соответствующих компонент: \(\vec{A}\cdot\vec{B} = \text{A}_x\,\text{B}_x + \text{A}_y\,\text{B}_y + \text{A}_z\,\text{B}_z\). Длина (модуль) вектора равна квадратному корню из суммы квадратов его компонент: \(\lVert\vec{A}\rVert = \sqrt{\text{A}_x^{2} + \text{A}_y^{2} + \text{A}_z^{2}}\). Если разделить скалярное произведение на произведение длин, результат нормируется к диапазону от −1 до 1 — это и есть косинус угла θ. Взяв обратный косинус (арккосинус), мы получаем сам угол.
$$\cos\theta = \frac{\vec{A}\cdot\vec{B}}{\lVert\vec{A}\rVert\,\lVert\vec{B}\rVert}$$
Пример с расчётом
Возьмём A = (1, 2, 3) и B = (4, 5, 6). Скалярное произведение: \(1\cdot4 + 2\cdot5 + 3\cdot6 = 4 + 10 + 18 = 32\). Длины векторов: \(\lVert\vec{A}\rVert = \sqrt{1+4+9} = \sqrt{14} \approx 3{,}7417\) и \(\lVert\vec{B}\rVert = \sqrt{16+25+36} = \sqrt{77} \approx 8{,}7750\). Тогда
$$\cos\theta = \frac{32}{3{,}7417 \times 8{,}7750} \approx 0{,}9746,$$что соответствует углу примерно 12,93°.
Частые вопросы
Что означает косинусное сходство, равное 0? Векторы ортогональны (перпендикулярны), угол между ними составляет 90°, то есть направленного сходства нет.
Может ли результат быть отрицательным? Да. Отрицательное значение говорит о том, что векторы направлены в целом в противоположные стороны; значение −1 означает, что они строго антипараллельны.
Чем это отличается от евклидова расстояния? Косинусное сходство игнорирует длину и сравнивает только направление, тогда как евклидово расстояние измеряет прямую дистанцию между концами векторов.