CP分解
將高維的張量分解成為Rank-One Tensors的和。
這里的是指的外積畦徘。
上面的式子也可以展開成:
定義因子矩陣(factor matrices)表示向量的組合萧福。例如耻矮。然后對三維的情況赫模,我們可以將上面的表達(dá)式寫成下面的形式:
其中的表示KR積慎宾。然后表示張量的的mode-n unfolding潜支。
例如:甸赃,
那么
我們可以把它展開后驗證一下式子的正確性,當(dāng)然肯定是對的冗酿。也可以從維度的角度去進(jìn)行驗證埠对。
CP分解可以簡明的表述為:
如果將標(biāo)準(zhǔn)化络断,然后提取出權(quán)重,可以得到如下的表述:
對于N維的情況项玛,
Tensor Rank
當(dāng)取等號的時候貌笨,R的最小取值,就是該張量的秩襟沮。
對張量的秩的定義和對矩陣的張量的定義類似锥惋。但是存在一些不同。
- 張量的秩在實數(shù)域和復(fù)數(shù)域可以不同开伏。
- 沒有直接的算法去計算給定張量的秩膀跌。這是一個NP-hard問題。
張量集合的最大秩和典型秩固灵。對一個張量的集合捅伤,所能取到的最大的秩成為最大秩(maximum rank),發(fā)生概率大于0的秩成為典型秩typical rank巫玻。
對于不同形狀的張量有不同的最大秩和典型秩丛忆,可以通過查表獲得。
Uniqueness 唯一性
高階張量的一個特性是他們的分解通常是唯一的仍秤,但是矩陣分解通常不是唯一的熄诡。
矩陣的分解是不唯一的。令是一個秩為R的矩陣诗力,它的分解為:
如果的SVD分解是那么我們可以選擇凰浮,同時可以選擇
張量分解的唯一性是指排除簡單的重新組合和縮放的情況后,只存在一種可能的分解姜骡。
三維情況下导坟,CP分解唯一性的充分條件是:
其中的是矩陣的秩屿良。
將其擴(kuò)展到N維情況為:
充分條件為:
CP分解唯一性的必要條件為:
對N維的情況圈澈,
然后,因為:
所以尘惧,更一般的必要條件為:
三維張量在以下的條件下康栈,CP分解通常是唯一的。
低秩近似和邊界秩Low-Rank Approximations and the Border Rank
令R是矩陣的秩喷橙,假設(shè)的SVD為:
然后他的rank-k近似可以寫作:
但是這種結(jié)果不適用于高階張量啥么。
存在低階近似不是高階近似的因子的情況。導(dǎo)致最佳秩近似的分量不能夠按照順序一個個的求解贰逾,必須同時找到所有的因子悬荣。
令是一個rank-three張量,被定義為:
然后這個張量可以被下面的rank-two張量任意的近似:
然后:
但是在某些情況下疙剑,低秩近似是不存在的氯迂,并且這不是一個少見的情況践叠。在不存在低秩近似的時候,引入邊界秩的概念嚼蚀。他被定義為等于一個張量的最小數(shù)量禁灼,其足以近似給定張量且具有任意小的非零值。
計算CP分解
沒有明確的算法去計算張量的秩轿曙,因此計算CP分解的第一個問題是如何去選取rank-one張量的數(shù)量弄捕。大多數(shù)的程序選擇好多個不同的值,直到其中一個表現(xiàn)比較好的時候导帝。對于無噪聲的理想數(shù)據(jù)守谓,我們可以從依次選取,直到達(dá)到合適的時候您单。但是在給定R的情況下分飞,我們也沒有完美的程序去計算CP分解。另外根據(jù)低秩近似睹限,我們也知道可以通過低秩的張量近似表示高秩張量譬猫,這在實踐中會引發(fā)一些問題。
假設(shè)組件的數(shù)量已經(jīng)確定羡疗,有很多方法去計算CP分解染服,我們關(guān)注ALS(交替最小二乘法)算法去計算CP分解。
在三維情況下:令叨恨,最終的計算目標(biāo)是計算一個R個組件的CP分解能夠最好的近似柳刮。
ALS的步驟是固定和去優(yōu)化,然后固定和去優(yōu)化痒钝,最后固定優(yōu)化秉颗,持續(xù)迭代更新,直到收斂送矩。
在和固定的情況下蚕甥,我們可以得到:
其中。
優(yōu)化的結(jié)果是:
這里的表示矩陣的偽逆栋荸。菇怀。又因為:,所以得到:
這個地方有一步?jīng)]想清楚晌块。
通過上面的變化爱沟,我們就不用計算一個JK×R的矩陣的偽逆了,只需要計算一個R×R的矩陣的逆即可匆背。然后對標(biāo)準(zhǔn)化后可以得到呼伸。
N維張量CP分解的完整的步驟如上圖所示。
ALS方法易于理解和擴(kuò)展钝尸,但是需要花費比較多的迭代次數(shù)使它收斂括享。同時闽铐,它不能夠保證一定能夠收斂到全局最小值,僅保證目標(biāo)函數(shù)不再減小奶浦。