Алгебра
Скалярное произведение и ортогональность
Cosine similarity в RAG-системах, нормировка attention в трансформерах, QR-разложение для МНК-всё это применения скалярного произведения и ортогональности. Когда два вектора ортогональны, они полностью независимы-это фундаментальная идея компрессии данных и проекции признаков.
- **RAG и эмбеддинги:** косинусное сходство-нормированное скалярное произведение; поиск по ближайшим эмбеддингам (FAISS)-задача на скалярное произведение
- **Scaled dot-product attention:** QKᵀ/√d-скалярное произведение с нормировкой; деление на √d предотвращает исчезновение градиентов softmax
- **QR в ML:** QR-разложение стабилизирует обучение (orthogonal initialization); QR-итерация-стандарт нахождения собственных значений (используется в numpy.linalg.eig)
Предварительные знания
Скалярное произведение
Скалярное произведение ⟨·,·⟩: V×V → ℝ удовлетворяет: 1. Симметрия: ⟨u,v⟩ = ⟨v,u⟩. 2. Линейность по первому аргументу: ⟨αu+βv,w⟩ = α⟨u,w⟩+β⟨v,w⟩. 3. Положительная определённость: ⟨v,v⟩ ≥ 0, и ⟨v,v⟩ = 0 тогда и только тогда, когда v = 0. Норма: ||v|| = √⟨v,v⟩.
**Стандартное скалярное произведение:** ⟨u,v⟩ = Σᵢ uᵢvᵢ = uᵀv. Угол между векторами: cos θ = ⟨u,v⟩/(||u||·||v||). Ортогональность: u ⊥ v ↔ ⟨u,v⟩ = 0.
Cosine similarity-это нормированное скалярное произведение. В RAG (Retrieval-Augmented Generation) ближайшие документы ищутся по максимальному cosine similarity между эмбеддингами.
Векторы u = (1,1,0) и v = (1,−1,1) ортогональны?
Неравенство Коши-Буняковского
Неравенство Коши-Буняковского-Шварца: |⟨u,v⟩| ≤ ||u||·||v||. Равенство достигается тогда и только тогда, когда u и v коллинеарны (u = αv). Следствие: определение cos θ = ⟨u,v⟩/(||u||·||v||) корректно, так как |cos θ| ≤ 1.
**Scaled dot-product attention:** в трансформерах скалярное произведение QKᵀ делится на √d_k (где d_k-размерность ключей). Это нормировка, предотвращающая слишком большие значения при большом d_k, что помогает softmax иметь разумные градиенты.
Неравенство КБШ утверждает: |⟨u,v⟩| ≤ ||u||·||v||. Когда достигается равенство?
Процесс Грама-Шмидта и ортогональные проекции
Процесс Грама-Шмидта превращает произвольный базис {v₁,…,vₙ} в ортонормальный {e₁,…,eₙ}: u₁ = v₁, uₖ = vₖ − Σᵢ₌₁^{k-1} ⟨vₖ,eᵢ⟩eᵢ, eₖ = uₖ/||uₖ||. Проекция w на подпространство span{e₁,…,eₖ}: proj(w) = Σᵢ ⟨w,eᵢ⟩eᵢ.
Классический Грам-Шмидт численно нестабилен при больших n. **Модифицированный Грам-Шмидт** (modified Gram-Schmidt) или Householder QR дают лучшие результаты на практике-именно их используют scipy и numpy.
В процессе Грама-Шмидта из вектора vₖ вычитается:
QR-разложение
QR-разложение: матрица A = QR, где Q-ортогональная (Qᵀ Q = I) и R-верхнетреугольная. Применение Грама-Шмидта к столбцам A даёт Q; R = QᵀA. QR-разложение используется для решения систем МНК: min ||Ax − b||² через Rx = Qᵀb.
**QR в численных методах:** QR-итерация-стандартный алгоритм нахождения всех собственных значений матрицы. QR-разложение более устойчиво, чем нормальные уравнения для МНК (число обусловленности улучшается с κ² до κ).
В QR-разложении A = QR матрица Q удовлетворяет:
Ключевые идеи
- **3 аксиомы:** симметрия, линейность по первому аргументу, положительная определённость; косинус угла через скалярное произведение
- **КБШ:** |⟨u,v⟩| ≤ ||u||·||v||; равенство ↔ коллинеарность; основа scaled attention
- **Грам-Шмидт:** ортонормализация базиса; ортогональная проекция на подпространство
- **QR = QR:** Q ортогональная, R верхнетреугольная; стабильное решение МНК и нахождение собственных значений
Связанные темы
Скалярное произведение добавляет геометрию к линейным пространствам:
- SVD — SVD использует ортогональные матрицы U и V; сингулярные векторы ортонормальны
- Квадратичные формы — Скалярное произведение ⟨u,Au⟩-квадратичная форма с матрицей A
- Линейные пространства — Гильбертово пространство = векторное пространство со скалярным произведением
Вопросы для размышления
- Почему в трансформерах скалярное произведение QKᵀ делится на √d_k, а не на d_k? Как это связано с распределением скалярных произведений случайных векторов в ℝ^d?
- Ортогональная инициализация весов нейронной сети (Orthogonal Init) улучшает обучение. Почему ортогональность матриц весов помогает градиентам течь?
- FAISS (Facebook AI Similarity Search) ищет ближайших соседей по cosine similarity для миллиардов векторов. Какие приближённые алгоритмы делают это вычислимым?