跳至內容

TSQR

維基百科,自由的百科全書

TSQR是針對高瘦(tall and skinny)矩陣QR的分解。這類矩陣有着行(Row)遠大於列(Column)的特點, 高瘦(TS)矩陣往往常見於評價系統,評價的項目少於評價的人數等。

TSQR分解和普通的QR分解的區別在於,TSQR的分解可以進行並行加速。

TS矩陣

TS矩陣的特點是行(Row) 列(Column)。 如下圖就是一個典型的TS矩陣。

這裏

TSQR分解的方法優劣比較

TSQR分解主要依賴於QR分解,有以下三種方法的詳細介紹和例子說明,以下將詳細比較三種方法的優劣勢作用於TS矩陣。

Householder變換

針對Householder變換,其優勢在於計算的時間複雜度較低,一次變換可以將一整個列除了首個元素都化成0,但是對數據的依賴度較高,不容易進行並行化計算,但是該方法對於稠密矩陣,相比於以下兩種方法,計算效率會更高。

豪斯霍爾德變換示意圖:向量x在豪斯霍爾德向量v的超平面上的鏡像是HxH是豪斯霍爾德矩陣。

吉文斯旋轉

針對吉文斯旋轉,其優勢在於對於數據的依賴性較低,可以很好的並行化,對於稀疏矩陣有很大的優勢。缺點在於其時間複雜度較高,一次只能對兩行做吉文斯旋轉。

格拉姆-施密特正交化方法

格拉姆-施密特正交化方法對於並行化計算並不友好,它的優勢在於算法理解其他直觀,時間複雜度介於Householder變換和吉文斯旋轉之間。

並行TSQR分解

基本思想

利用矩陣分塊的思想,對於TS矩陣進行切割,從而對若干個子塊矩陣進行分而治之。

TSQR分解算法

我們將拆成若干個子矩陣(這裏拆成2個)的維度分別是, 注意拆開的子矩陣要保證行數仍然大於列數,即

我們分別對做QR分解。

此時的QR分解是完全可以並行的。 我們再將合併並驚醒QR分解

此時的 便是我們所需要的最後分解所得的

例子

我們現在需要分解如下矩陣

現在將其分解成兩個矩陣,並對其做相應的QR分解。

那麼


我們對進行QR分解,

優勢

上述的TSQR和普通的QR分解的優勢在於:

1)不同於QR分解,此類的QR分解是可以高度並行化的;

2)在並行階段,其特殊的上三角形式也可以用並行的方式進行加速。

用途

快速求解奇異值分解(SVD)

對於一個TS矩陣求解其SVD,我們可以先對矩陣做TSQR分解。那麼

我們在對做SVD分解 ,相比於直接做SVD,這樣做的好處在於的維度是 , 所以速度會快很多。

所以最後只需要計算

就可以得到所有的特徵量向量

外部連結

[1]

[2]

[3]

[4]

  1. ^ M. Anderson; G. Ballard, J. Demmel and K. Keutzer. Communication-Avoiding QR Decomposition for GPUs. 2011 IEEE International Parallel & Distributed Processing Symposium: 48–58. 2011. doi:10.1109/IPDPS.2011.15. 
  2. ^ MIT. QR Decomposition. [2020-07-01]. (原始內容存檔於2020-07-27). 
  3. ^ N.-Y. Cheng and M.-S. Chen. Exploring Dual-Triangular Structure for Efficient R-initiated Tall-skinny QR on GPGPU. Pacific-Asia Conf. on Knowledge Discovery and Data Mining. April 14-17, 2019. 
  4. ^ A. Rafique, N. Kapre and G. A. Constantinides. Enhancing performance of Tall-Skinny QR factorization using FPGAs. International Conference on Field Programmable Logic and Applications: 443–450.