Косинусное сходство (Cosine Similarity)
Математическая метрика, измеряющая угол между двумя векторами в многомерном пространстве. Показывает степень смыслового родства двух текстов от -1 (противоположные) до +1 (полные синонимы), игнорируя длину предложений.
1. Обзор концепции и системная проблема
Представьте два компаса. Если обе стрелки смотрят на север — угол между ними равен нулю, а направление идеально совпадает. Если одна смотрит на север, а другая на восток — угол составляет 90 градусов.
Косинусное сходство (Cosine Similarity) — это именно такой компас для нейросетей:
- Оно берет два вектора (числовые координаты смысла двух фраз).
- Измеряет угол между ними в пространстве понятий.
- Возвращает число от
0.0до1.0(или от -1 до 1), где 1.0 — это абсолютное смысловое родство.
Это фундаментальная математическая формула, благодаря которой работают ChatGPT при поиске по файлам, Notion AI и векторные базы данных.
2. Архитектурная таксономия и ментальная модель
^ Понятие о еде
│
│ / Текст А: «Купить свежий хлеб»
│ /
│ / ) угол близкий к 0° -> косинус ≈ 0.96
│ /
│ /---- Текст Б: «Булочка из пекарни»
│
│
│─────────────────────────────> Понятие о IT
│ Текст В: «Написать скрипт на Python»
│ (угол 90° -> косинус ≈ 0.04)
3. Почему угол лучше абсолютной длины
В традиционной геометрии чем длиннее линия, тем дальше ее конец. Если бы мы измеряли обычное расстояние:
- Слово
«автомобиль»(короткий вектор). - Статья в Википедии о конструкции автомобилей на 10 страниц (очень длинный вектор с множеством слов).
Евклидово расстояние посчитало бы их разными вещами, потому что один текст короткий, а другой длинный. А косинус оценивает лишь векторное направление мыслей, понимая: оба текста целиком посвящены транспорту.
4. Практические инженерные сценарии в продакшене
01. Настройка поиска в базе знаний
При настройке поиска в базе знаний или корпоративном чат-боте вы часто видите параметр similarity_threshold = 0.75. Это фильтр косинуса, который отсекает все документы, чей угол отклонения от запроса пользователя превышает допустимую погрешность.
02. Оптимизация векторных баз данных
Используйте косинусное сходство для оптимизации запросов в векторных базах данных, чтобы быстро находить документы с высоким смысловым родством, минимизируя время отклика.
03. Анализ текстов для рекомендаций
При анализе текстов для систем рекомендаций косинусное сходство помогает выявлять схожие статьи, улучшая качество рекомендаций на основе смыслового контекста.
5. Подводные камни, типовые ошибки и безопасность
При использовании косинусного сходства важно учитывать, что:
- Неправильная нормализация векторов может привести к искажению результатов.
- Слишком низкие значения сходства могут игнорировать релевантные документы, что снижает качество поиска.
- Необходимо следить за тем, чтобы векторы были сопоставимы по размерности, иначе результаты будут некорректными.
FAQ: Косинусное сходство (Cosine Similarity)
Связанные термины
Эмбеддинги на пальцах (Как текст становится числами)
Фундаментальная технология преобразования слов, предложений или изображений в многомерные списки чисел (векторы). Позволяет компьютеру математически измерять смысловую близость между различными мыслями и концепциями.
Векторные базы данных (Vector DBs & ANN Search)
Специализированные СУБД и расширения (Qdrant, pgvector, Milvus, Chroma, Turso), оптимизированные для хранения миллионов многомерных векторов и сверхбыстрого приближенного поиска ближайших соседей (Approximate Nearest Neighbors).
Семантический поиск (Поиск по смыслу, а не по буквам)
Технология поиска информации на основе концептуального содержания запроса, а не точного совпадения букв или ключевых слов. Понимает синонимы, перефразирования, ошибки в словах и абстрактные вопросы на естественном языке.