\(C\)の行ベクトルを直交化し、行列\(D\)を得る。\(E=DA\)を計算する。\(E\)を特異値分解し、\(E=U'DV^{\dagger}\)を得る。T}U'\)を計算する。結果として得られるU,D,Vは高い確率で\(A\)の特異値分解と一致する。した特異値分解はscikit-learnに実装されている。SVDに比べ、圧倒的に高速であることがわかる。SVDからさらなる高速化が可能になる。手順は以下の通りである。行列\(A\)から行ノルムを重みとして\(p\)個の行をサンプリングした\(B\)を作成する。行列\(B\)から「ランダムに行を選び、選ばれた行から要素を重みとして列をサンプリングする」操作を\(p\)回行い\(C\)を作成する。行ベクトルからの要素のサンプリングコストを\(S_2(A)\)として、計算コストは\(O(S_2(A)p)\)。\(C\)を特異値分解して\(C=U'DV'^{\dagger}\)を得る。計算コストは\(O(p^3)\)。D^+\)を計算する。計算コストは\(O(np^2)\)。V^{\dagger}D^+A\)を計算する。n\)の多項式としても、結果として得られる\(U,D,V\)は高い確率で\(A\)の特異値分解の良い近似となる。得られる、積を取れば\(U\)が得られる\((B,V',D)\)のセットのことを\(V\)の簡潔表現と呼ぶ。