张量分解-CP分解 2016.06.19
CP分解(Canonical Polyadic Decomposition)
1927年Hitchcock提出了CP 分解。CP 分解将一个$N$阶的张量$\mathcal{X}\in {\mathbb{R}^{ {I_1}{\mathbf{ \times }}{I_2}{\mathbf{ \times }} \cdots {\mathbf{ \times }}{I_N}}}$分解为$R$个秩为1的张量和的形式即:
\begin{equation}
\mathcal{X}=\sum \limits_{ {r} = 1}^{ {R}} \lambda_{r} a_{r}^{(1)}\circ a_{r}^{(2)}\circ \cdots a_{r}^{(N) }
\end{equation}
通常情况下$ a_{r}^{(n)}$是一个单位向量。定义$A^{(n)}=[a_{1}^{n} \quad a_{2}^{n} \quad \cdots \quad a_{R}^{n}]$,$D=diag(\lambda)$ 那么上面的公式可以写为:
\begin{equation}
\mathcal{X}=D\times_{1}A^{(1)}\times_{2}A^{(2)}\cdots\times_{N}A^{(N)}
\end{equation}
矩阵的表达形式即为:
\begin{equation}
X_{(n)}=A^{n}D(A^{(N)} \bigodot \cdots A^{(n+1)} \bigodot A^{(n-1)}\cdots
\bigodot A^{1})^T \label{eq:cpmatix}
\end{equation} 特殊的时候当张量$\mathcal{X}$的阶数为3的