Фундаментальные принципы работы с векторами

TL;DR

  • Эмбеддинги дают одинаковую форму (фиксированная длина), чтобы сравнивать любые тексты.
  • Смысл кодируется в плотных вещественных координатах.
  • Близость/поиск держатся на контексте, композиции и стабильности представлений.

Core idea

Эти принципы полезны как “mental model” для RAG/поиска по смыслу: они объясняют, почему работает cosine similarity и какие свойства стоит ожидать/проверять у эмбеддингов.

Principles

  1. Принцип единообразия. Любой объект будь то короткое слово или длинный абзац текста кодируются в вектор одинаковой длины, что позволяет сравнивать между собой и искать сходство любых двух текстовых фрагментов.
  2. Принцип плотности. Векторные представления - это “плотные” векторы, в которых каждая координата может быть любым вещественным числом. В отличие от разреженных представлений, когда большинство координат равны нулю, здесь каждое измерение несёт информацию о смысле.
    • Прямая цитата. Пока сам не очень понимаю.
  3. Принцип контекстуальности. Модели эмбеддеры умеют понимать контекст вокруг фрагмента. Таким образом “ключ” когда он от замка и “ключ” когда он родник получат совсем разные векторы.
  4. Принцип композиционности. Векторы можно комбинировать для создания представлений более сложных конструкций. Вектор предложения может быть получен усреднением векторов слов или более сложными способами, учитывающими синтаксис и семантику.
  5. Принцип стабильности. Векторные представления должны быть устойчивыми - небольшие изменения в тексте не должны кардинально менять вектор. Опечатки, синонимы, перефразирование должны давать похожие векторы для сохранения смысловой целостности.

When to use / When not to use

  • Use: когда проектируешь/дебажишь поиск по эмбеддингам (RAG, дедупликация, “похожие документы”).
  • Not: когда решаешь задачу, где важнее точное совпадение токенов/структуры (например, строгое правило/схема/ID), либо когда метрика сходства задана доменом иначе.