Skip to content

voorhs/mq-bksvd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e90b70d · May 21, 2023

History

23 Commits
Feb 16, 2023
Feb 5, 2023
Feb 16, 2023
May 21, 2023

Repository files navigation

Matrix Query + Block Krylov SVD

Идеи

  • Быстрые алгоритмы для матриц расстояний в различных метриках
  • Randomized Block Krylov Method для частичной задачи на сингулярные числа матрицы расстояний

Запросы к матрице расстояний

  • Пусть имеется датасет X R n × d .
  • Матрица расстояний A R n × n содержит расстояния A i j = ρ ( x i , x j ) , где ρ ( , ) - некоторая метрика.
  • Запросом к матрице A будем называть матрично-векторное умножение A y ,   y R n .
  • Запросы позволяют решать численные задачи линейной алгебры без хранения матрицы A

Быстрые запросы к матрице расстояний в 2 2 метрике

k-ая координата для query A y , где A - матрица расстояний, может быть найдена следующим образом:

( A y ) k = j = 1 n y j x k x j 2 2 = | | x k | | 2 2 j = 1 n y j + j = 1 n y j | | x j | | 2 2 2 x k , j = 1 n y j x j

Составим простой query-алгоритм

  1. v = i = 1 n y i x i

  2. S 1 = i = 1 n y i

  3. S 2 = i = 1 n y i | | x i | | 2 2

  4. ans ( k ) = S 1 | | x k | | 2 2 + S 2 2 x k , v

Сложность O ( n d )

Сравнение наивного алгоритма запроса с быстрым

word

Основная особенность — отсутствие preprocessing

Быстрые запросы к матрице расстояний в 1 метрике

k -ая координата для query A y , где A - матрица расстояний, может быть найдена следующим образом:

( A y ) k = j = 1 n y j x k x j = j = 1 n i = 1 d y j | x k , i x j , i | = i = 1 d j = 1 n y j | x k , i x j , i |

Для каждого признака i = 1 , d введем перестановку π i , которая соответствует отсортированному в порядке возрастания массиву значений x j , i (по столбцам). Тогда:

( A y ) k = i = 1 d j = 1 n y j | x k , i x j , i | = i = 1 d ( j   :   π i ( k ) π i ( j ) y j ( x j , i x k , i ) + j   :   π i ( k ) > π i ( j ) y j ( x k , i x j , i ) )

Перегруппируем значения в скобках:

( A y ) k = i = 1 d ( x k , i ( j   :   π i ( k ) > π i ( j ) y j j   :   π i ( k ) π i ( j ) y j ) + j   :   π i ( k ) π i ( j ) y j x j , i j   :   π i ( k ) > π i ( j ) y j x j , i ) ( A y ) k = i = 1 d ( x k , i ( S 3 S 4 ) + S 2 S 1 )

Сложность алгоритма

  • Препроцессинг - поиск перестановок π i

  • Cложность препроцессинга O ( n d log n )

  • Cложность query = O ( n d )

Сравнение наивного алгоритма запроса с быстрым

word

Частичная задача на сингулярные числа

Randomized Block Krylov Method [MM15]:

Вход: A R n × d , ошибка ϵ ( 0 , 1 ) , ранг k n , d

Выход: U ^ k , Σ ^ k , V ^ k

  1. q = Θ ( log ( d ) / ϵ )
  2. Π N ( 0 , 1 ) d × k
  3. K := [ A T A Π , ( A T A ) 2 Π , , ( A T A ) q Π ] R n × q k
  4. K = Q R ,   Q R n × q k
  5. U ^ , Σ ^ , V ^ SVD ( A Q )
  6. Вернуть U ^ k , Σ ^ k , Q V ^ k

Подробности в bksvd.py.

Сходимость

Теорема (10, 11, 12 из [MM15]). С вероятностью 0.99 алгоритм BKSVD возвращает k -ранговую аппроксимацию A k ^ = U ^ k Σ ^ k V ^ k такую, что

A A ^ k 2 ( 1 + ϵ ) A A k 2   A A ^ k F ( 1 + ϵ ) A A k F   | σ i σ ^ i | ϵ σ k + 1 2

Для этого требуется q = Θ ( k / ϵ ) запросов к матрице A .

Теорема (1.3 из [BCW22]). Для ϵ > 0 и константы p 1 найдётся распределение D матриц n × n таких, что для A D любой алгоритм, который хотя с константной вероятностью возвращает вектор v :

A A v v T S p p ( 1 + ϵ ) min u 1 = 1 A A u u T S p p ,

требует Ω ( 1 / ϵ 1 / 3 ) запросов к матрице A .

Gaussian Mixture (24K объектов)

Время svds 120.7 сек 77.3 сек
Время постр. dist matrix 10.55 сек 17.46 сек
Время preproc 0.227 сек -

MNIST (15K объектов)

Время svds 13.95 сек 11.68 сек
Время постр. dist matrix 525.2 сек 819.41 сек
Время preproc 3.1 сек -

Препятствия для ускорения других методов

Просто заменить matvec на query не получится:

  • Предобуславливатели

  • Уравнение коррекции Якоби

Возможное решение: использовать и запросы, и матрицу расстояний.

Литература

  • [IS22] Indyk, P., Silwal, S.. (2022). Faster Linear Algebra for Distance Matrices.
  • [MM15] Musco, C., & Musco, C.. (2015). Randomized Block Krylov Methods for Stronger and Faster Approximate Singular Value Decomposition.
  • [BCW22] Bakshi, A., Clarkson, K., & Woodruff, D.. (2022). Low-Rank Approximation with 1 / ε 1 / 3 Matrix-Vector Products.