张量分解与应用-学习笔记[02]

3. 张量秩与CANDECOMP/PARAFAC分解法

3.0 CANDECOMP/PARAFAC分解法的定义

  • CANDECOMP(canonical decomposition)和PARAFAC(parallel factors)是一种对张量进行拆分的方法, 其核心思想是用有限个的秩1张量的和来(近似地)表示该张量. 这种方法被不少人独立的发现, 不考虑历史上的因素, 咱们将其称为CP分解法 (CP decomposition).
    image-20191216104141980算法

  • 例: 若是咱们要把一个3阶张量\(\mathcal{X}\in\mathbb{R}^{I \times J \times K}\)进行CP分解, 咱们期待其结果以下.
    \[ \begin{equation} \mathcal{X} \approx \sum_{r=1}^R a_r \circ b_r \circ c_r \end{equation}, \]app

  • 经过外积的定义, 对每一个元素都有:
    \[ x_{ijk} \approx \sum_{r=1}^R a_{ir}b_{jr}c_{kr} \text{ for $i=1,\dots,I,\,j=1,\dots,J, \, k=1,\dots,K.$} \]ide

  • 咱们称那些上式中经过外积组成秩1张量元素的向量集合为因子矩阵(factor matrices). 例如, \(\mathrm{A} = \begin{bmatrix} a_1 & a_2 & \dots & a_R \end{bmatrix}\), 相似的,咱们构造\(\mathrm{B}\)\(\mathrm{C}\). 利用这些定义, CP分解能够被等价写做如下矩阵形式. 注意, 其左侧都是张量的对应mode的矩阵化.
    \[ \mathrm{X}_{(1)} \approx \mathrm{A}(\mathrm{C}\odot \mathrm{B})^\mathsf{T},\\ \mathrm{X}_{(2)} \approx \mathrm{B}(\mathrm{C}\odot \mathrm{A})^\mathsf{T},\\ \mathrm{X}_{(3)} \approx \mathrm{C}(\mathrm{B}\odot \mathrm{A})^\mathsf{T}. \]函数

  • 以上3维模型也能够用张量的frontal slices来表示:
    \[ \mathcal{X} \approx \mathrm{A}\mathrm{D}^{(k)}\mathrm{B}^\mathsf{T},\, \text{ where }\, \mathrm{D}^{(k)} \equiv \text{diag}(c_{k::}) \, \text{ for $\, k=1,...,K.$} \]学习

  • 咱们也能够将上式子改写为horizontal slices和lateral slices的版本, 须要注意的是, 这种以slice为主体的表达很难延伸到超过3维的张量之中. 利用Kolda的命名方式, 咱们也能够进一步简化CP模型:
    \[ \mathcal{X} \approx [\![\mathrm{A,B,C]}\!] \equiv \sum_{r=1}^R \mathrm{a}_r \circ \mathrm{b}_r \circ \mathrm{c}_r. \]ui

  • 为了便利, 咱们一般假设\(\mathrm{A, B}\)\(\mathrm{C}\)的列向量都是归一化的(normalized). 而本来的比重(weights)则被一个向量\(\lambda\in\mathbb{R}^R\)所吸取, 写做如下形式:
    \[ \mathcal{X} \approx [\![\lambda \, ; \, \mathrm{A,B,C}]\!] \equiv \sum_{r=1}^R \lambda_r \: \mathrm{a}_r \circ \mathrm{b}_r \circ \mathrm{c}_r. \]spa

  • 到如今为止, 咱们都只把注意力放在了3维张量上. 这是由于3维张量偏偏是应用当中最为普遍也每每是足够知足咱们需求的张量. 对于一个N阶的张量, \(\mathcal{X}\in\mathbb{R}^{I_1\times I_2 \times \dots \times I_N}\)来讲, 他的CP分解能够被写为
    \[ \mathcal{X} \approx [\![\lambda \:; \mathrm{A}^{(1)}, \mathrm{A}^{(2)},\dots,\mathrm{A}^{(N)}]\!] \equiv \sum_{r=1}^R \lambda_r \: \mathrm{a}_r^{(1)} \circ \mathrm{a}_r^{(1)}\circ \dots \circ \mathrm{a}_r^{(N)}, \]
  • 其中\(\lambda \in \mathbb{R}^R\)以及\(\mathrm{A}^{(n)}\in \mathbb{R}^{I_n\,\times\,\mathbb{R}}\). 在这种状况下, mode-n 矩阵化的版本将为以下:
    \[ \mathrm{X}_{(n)}\approx \mathrm{A}^{(n)}\Lambda(\mathrm{A}^{(N)}\circ \dots \circ \mathrm{A}^{(n+1)} \circ \mathrm{A}^{(n-1)} \cdot \dots \cdot \mathrm{A^{(1)})^\mathsf{T}} \]
  • 其中 \(\Lambda = diag(\lambda).\)3d

3.1 张量秩(tensor rank)的基本

  • 与矩阵时的定义相似, 张量秩写做$ \text{rank}(\mathcal{X}) \(, 为还原张量所需秩1张量的最小数目. 换句话说, 也就是精确(exact)CP分解中的最小成分数. 当CP分解是精确的, 也就是\)R=\text{rank}(\mathcal{X})$时, 咱们也称之为秩分解(rank decomposition).orm

  • 虽然张量秩的定义和矩阵相似, 但他们的性质之间存在不少不一样. 其中一个不一样即是在 \(\mathbb{R}\)\(\mathbb{C}\) 之下, 实数值得张量能够存在不一样的秩. 举例来讲, 令张量\(\mathcal{X}\)的frontal slice为:
    \[ \mathrm{X}_1 = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} \quad \text{and} \quad \mathrm{X}_2 = \begin{bmatrix} 0 & 1 \\ -1 & 0\end{bmatrix}. \]
  • 这个张量在 \(\mathbb{R}\) 下的秩为3, 但在 \(\mathbb{C}\) 下的秩为2. 其 \(\mathbb{R}\) 之下的秩分解\(\mathcal{X} = [\![\mathrm{A}, \mathrm{B}, \mathrm{C}]\!]\)为:blog

\[ \mathrm{A} = \begin{bmatrix}1 & 0 & 1 \\ 0 & 1 & -1 \end{bmatrix}, \quad \mathrm{B} = \begin{bmatrix}1 & 0 & 1 \\ 0 & 1 & 1 \end{bmatrix}, \quad and \quad \mathrm{C} = \begin{bmatrix}1 & 1 & 0 \\ -1 & 1 & 1 \end{bmatrix}, \]

  • \(\mathbb{C}\) 之下, 其秩分解则为:
    \[ \mathrm{A} = \frac{1}{\sqrt{2}}\begin{bmatrix} 1 & 1 \\ -i & i \end{bmatrix}, \quad \mathrm{B} = \frac{1}{\sqrt{2}}\begin{bmatrix} 1 & 1 \\ i & -i \end{bmatrix}, \quad and \quad \mathrm{C} = \frac{1}{\sqrt{2}}\begin{bmatrix} 1 & 1 \\ i & -i \end{bmatrix} \]
  • 或许读者已经注意到了, 咱们给出了张量秩的定义, 但咱们没有给出如何求他的方法. 这是张量秩和矩阵秩的第二个巨大不一样. 张量秩没有一个简单直接的求法, 以致于任何张量秩都伴随着证实他确实为秩的过程. 即便咱们对秩的最大值有必定程度的了解, 直接求秩自己已被证实是NP-hard.

  • 除了最大秩之外, 咱们定义典型秩为那些出现几率不为0的秩. 当给定尺寸的张量中填上随机实数值,咱们用monte-carlo法等检测其秩为某数的几率. 当其几率不为0时, 咱们称之为典型秩. 好比, 咱们发现\(2 \times 2 \times 2\)张量中, 79%的可能性是秩2, 21%可能性是秩3. 秩1理论可能,但几率为0. (试想随机生成的一个张量刚好为3个秩1向量外积的可能性).

  • 下图是一些在某些状况下咱们知道的最大秩(maximum rank)和典型秩(typical rank), 其中最详细的是某维度下只有两层slice的3阶张量:

  • 对于任意的一个3阶张量\(\mathcal{X}^{I\times J \times K}\), 咱们只知道其秩最大秩的弱上限:

\[ \text{rank}(\mathcal{X}) \leq \text{min}\{IJ, IK, JK\}. \]

  • 当咱们知道张量的某一个slice是对称的时候, 咱们从这个限制中推测出更多信息. 因为秩与维度的顺序无关, 在不失通常性的状况下,咱们假设其frontal slice是对称的. 其秩的相关信息可见下图:
  • 对于超对称(supersymmetric)的张量来讲, 咱们能够借由定义一个新的概念:对称秩(symmetric rank)来研究他. 设张量\(\mathcal{X}\in \mathcal{C}^{I\times I\times \dots \times I}\)是超对称的, 则其在\(\mathcal{C}\)上的对称秩被定义为:
    \[ \text{rank}_S(\mathcal{X}) = \text{min} \Big\{ R: \mathcal{X} = \sum_{r=1}^{R} \mathrm{a}_r \circ \mathrm{a}_r \circ \dots \circ \mathrm{a}_r, \text{ where $\mathrm{A} \in \mathbb{C}^{I \times R}$} \Big\}, \]
  • 也就是其对称秩1因子的最小数目. Comon et al.指出, 除了\((N,I) \in \{ (3,5), (4,3), (4,4), (4,5)\}\)的时候等式须要加1之外,如下等式成立的几率为1.

\[ \text{rank}_S(\mathcal{X}) = \Bigg\lceil \frac{{I+N-1}\choose{N}}{I} \Bigg\rceil, \]

3.2 惟一性 Uniqueness

  • 高维张量的另外一个很神奇的特性在于他们的秩分解每每是惟一的. 而矩阵并非, 他们每每有多个秩分解解法. 咱们能够从一个简单的例子来复习如何轻易构造出无穷多个这样的矩阵秩分解.

  • 令矩阵\(\mathrm{X} \in \mathbb{R}^{I \times J}\), 则他的秩分解为:
    \[ \mathrm{X} = \mathrm{A}\mathrm{B}^\mathsf{T} = \sum_{r=1}^R \mathrm{a}_r \circ \mathrm{b}_r. \]

  • 若是\(\mathrm{X}\)的SVD为\(\mathrm{U\Sigma V}^\mathsf{T}\)那么, 咱们能够选择\(\mathrm{A} = \mathrm{U \Sigma}\)\(\mathrm{B} = \mathrm{V}.\) 然而, 这也等效于选择\(\mathrm{A} = \mathrm{U \Sigma W}\)\(\mathrm{B} = \mathrm{VW}\), 其中 \(\mathrm{W}\) 是任意一个 \(R\times R\)的正交矩阵(orthogonal matrix)

  • 换句话说, 咱们能够找到无穷多个知足上述要求的矩阵秩分解. SVD的结果是惟一理由仅仅是由于其正交限制及对奇异值排序上的约束所致使.

  • 然而, CP分解在弱的多的前提下也是惟一的.令\(\mathcal{X} \in \mathbb{R}^{I \times J \times K}\)为一个秩\(R\)三阶张量, 那么咱们有以下分解:
    \[ \mathcal{X} = \sum_{r=1}^R \mathrm{a}_r \circ \mathrm{b}_r \circ \mathrm{c}_r = [\![\mathrm{A},\mathrm{B},\mathrm{C}]\!]. \quad\quad\quad\quad\quad(3.1) \]

  • 上述的惟一性指的是, 咱们只能找到一种可能的秩1张量的组合使得他们的和为\(\mathcal{X}\). 请注意, 因为张量的特殊性, 咱们在讲惟一时排除了张量的度量(scaling)和置换(permutation)上的内在不肯定性(indeterminacy).

  • 置换不肯定性是由于任何秩1张量均可以被随意交换维度. 写成数学语言即是:
    \[ \mathcal{X} = [\![\mathrm{A}, \mathrm{B}, \mathrm{C}]\!] = [\![\mathrm{A\Pi}, \mathrm{B\Pi}, \mathrm{C\Pi}]\!] \,\text{ for any $R \times R$ permutaton matrix $\mathrm{\Pi}$}. \]

  • 而度量的不肯定性则来自于咱们能够缩放组成秩1张量的向量, 只要保证他们最后的外积不便便可:

\[ \mathcal{X} = \sum_{r=1}^{R}(\alpha_r \mathrm{a}_r) \circ (\beta_r \mathrm{b}_r) \circ (\gamma_r \mathrm{c}_r), \quad \alpha_r \beta_r \gamma_r = 1 \text{ for }r=1,\dots,R. \]

  • 在惟一性这方面最有建树的理论之一来自于Kruskal和新概念k-rank. 对于一个矩阵\(\mathrm{A}\)来讲, k-rank, 写做\(k_\mathrm{A}\),是知足A的任意k个列向量都是线性不相关的条件下的k的最大值. 该k揭示了CP分解法(3.1)惟一性的充分条件:
    \[ k_{\mathrm{A}} + k_{\mathrm{B}} + k_{\mathrm{C}} \geq 2R + 2. \]

  • 随后, Kruskal的结论被其余人延伸至N阶张量. 设\(\mathcal{X}\)是一个N阶的秩R张量, 并假设其CP分解以下:

\[ \mathcal{X} = \sum_{r=1}^R \mathrm{a}_r^{(1)}\circ \mathrm{a}_r^{(2)} \circ \dots \circ \mathrm{a}_r^{(N)} = [\![\mathrm{A}^{(1)}, \mathrm{A}^{(2)},\dots,\mathrm{A}^{(N)}]\!]. \]

  • 那么, 其惟一性的充分条件为:

\[ \sum_{n=1}^N k_\mathrm{A}^{(n)} \geq 2R + (N-1). \]

  • 上述分解惟一性的充分条件, 对秩2或秩3张量来讲同时也是必要条件. 而当秩大于3的时候, 就不必定了. 一个更为通常的CP分解的必要条件集以下:
    \[ \min_{n=1,\dots,N} \text{rank} \Big(\mathrm{A}^{(1)} \cdot \dots \cdot \mathrm{A}^{(n-1)} \cdot \mathrm{A}^{(n+1)}\cdot \dots \cdot \mathrm{A}^{(N)}\Big) = R. \]
  • 然而咱们经过观察发现, \(\text{rank}(\mathrm{A} \odot \mathrm{B}) \leq \text{rank} (\mathrm{A} \otimes \mathrm{B}) \leq \text{rank}(\mathrm{A}) \cdot \text{rank}(\mathrm{B})\), 咱们能够甚至能够得出一个更简单的必要条件:
    \[ \min_{n=1,\dots,N}\Bigg(\prod_{m=1 \\ m \neq n} \text{rank}(\mathrm{A}^{(m)})\Bigg) \geq R. \]

  • De Lathauwer 提出了观察张量秩是否为肯定惟一(deterministically unique)或generically unique (通常惟一, 也就是几率为1). CP分解法对一个\(\mathcal{X} \in \mathbb{R}^{I \times J \times K}\)的通常惟一条件以下:
    \[ R \leq K \quad \text{and} \quad R(R-1) \leq I(I-1)J(J-1)/2. \]

  • 相似的, 对于一个4阶秩R张量$\mathcal{X} \in \mathbb{R}^{I \times J \times K \times L}来讲, CP分解法的通常惟一条件为:
    \[ R \leq L \quad \text{and} \quad R(R-1) \leq IJK(3IJK - IJ - IK - JK - I - J - K +3)/4 \]

3.3 低秩近似(Low-Rank Approximations)与边界秩(the Border Rank)

  • 对矩阵来讲, 咱们知道使用SVD的前k个因子便可得到其最好的秩k近似(rank-k approximation). 咱们来复习一下. 若秩R矩阵\(\mathrm{A}\)的SVD以下:
    \[ \mathrm{A} = \sum_{r=1}^R \sigma_r \mathrm{u}_r \circ \mathrm{v}_r \quad \text{with }\sigma_1 \geq \sigma_2 \geq \dots \geq \sigma_R > 0. \]

  • 最小化\(||\mathrm{A} - \mathrm{B}||\)的秩k近似为:

\[ \mathrm{B}= \sum_{r=1}^k \sigma_r \mathrm{u}_r \circ \mathrm{v}_r. \]

  • 然而, 这种类型的近似法对高维张量来讲不成立. 例如: 考虑一个3阶秩R张量的以下CP分解:
    \[ \mathcal{X} = \sum_{r=1}^R \lambda_r \mathrm{a}_r \circ \mathrm{b}_r \circ \mathrm{c}_r. \]
  • 理想状态下, 咱们期待将其中k个分解因子相加来得到一个最佳k秩近似. 但实际上, 这并不可行. Kolda已经给出一个反例, 其中最佳秩1近似的因子, 并不存在于其最佳秩2分解的因子中. 换句话说, 咱们不能经过寻找秩N分解因子集, 来按序给出秩N如下的最佳近似. 咱们必须独立的面对每一个秩k问题, 并同时找出其全部因子.

  • 然而, 问题可能更为复杂. 由于在高维张量可能根本不存在其最佳秩K近似. 咱们称那些能够被低秩因子近似到任意程度的张量为退化的(degenerate)张量. 举例来讲, 令\(\mathcal{X}\in \mathbb{R}^{I \times J \times K}\) 为一个被以下式所定义的3阶张量
    \[ \mathcal{X} = \mathrm{a}_1 \circ \mathrm{b}_1 \circ \mathrm{c}_2 + \mathrm{a}_1 \circ \mathrm{b}_2 \circ \mathrm{c}_1 + \mathrm{a}_2 \circ \mathrm{b}_1 \circ \mathrm{c}_1 , \]
  • 其中, \(\mathrm{A} \in \mathbb{R}^{I \times 2}, \, \mathrm{B} \in \mathbb{J \times 2}, \quad \mathrm{C} \in \mathbb{R}^{K \times 2}\) 而且其列向量均为线性无关. 那么, 这个张量就能够被一个秩2张量近似至任意程度:

\[ \mathcal{Y} = \alpha \, \Big( \mathrm{a}_1 + \frac{1}{\alpha} \mathrm{a}_2 \Big) \circ \Big( \mathrm{b}_1 + \frac{1}{\alpha} \mathrm{b}_2 \Big) \circ \Big( \mathrm{c}_1 + \frac{1}{\alpha} \mathrm{c}_2 \Big) - \alpha \, \mathrm{a}_1 \circ \mathrm{b}_1 \circ \mathrm{c}_1. \]

  • 具体来讲:
    \[ ||\mathcal{X} - \mathcal{Y}|| = \frac{1}{\alpha} \Bigg|\Bigg| \, \mathrm{a}_2 \circ \mathrm{b}_2 \circ \mathrm{c}_1 + \mathrm{a}_2 \circ \mathrm{b}_1 \circ \mathrm{c}_2 + \mathrm{a}_1 \circ \mathrm{b}_2 \circ \mathrm{c}_2 + \frac{1}{\alpha} \mathrm{a}_2 \circ \mathrm{b}_2 \circ \mathrm{c}_2 \,\Bigg|\Bigg| \]

  • 很显然, 此式能够被缩小至任意程度. 所以上述张量为退化的. 从这个例子中咱们还能够发现, 秩2张量空间并非闭合(closed)的. 此例中, 以下图所示的那样, 秩2向量的序列收敛于秩3张量.

  • 接下来快速的叙述一些关于此性质的重要发现. Lundy, Harshman 和 Kruskal发现结合Tucker分解法能够避免退化. De Silva和Lima指出, 那些没有最优秩k近似的张量, 至少对某些k来讲有正体积(Lebesgue measure 勒贝格测度). 换句话说, 没有最优秩k近似并非一个罕见的事件. Comon给出了对称矩阵和对称近似的类似退化例子. Stegeman证实了维度为\(I\times \times 2\)时, 任何秩为\(I+1\)的张量都不存在最佳秩\(I\)近似. 他接下来又证实了当张量的维度为\(I\times J\times 3\), 秩为其2种典型秩时, 绝大多数状况下咱们能够找到一个近似至任意程度的低秩近似.

  • 当最佳低秩近似不存在时, 考虑其边界秩(border rank)变得十分有用. 他被定义为容许咱们近似至任意精度时, 所需秩1张量的数量的最小值:
    \[ \begin{aligned} \widetilde{\text{rank}} (\mathcal{X}) = \min \{ \, r \, | \, \text{ for any $\epsilon > 0$, exists tensor $\mathcal{E}$ such that $||\mathcal{E}|| < \epsilon$, rank $(\mathcal{X} + \mathcal{\mathcal{E}}) = r$}\} \end{aligned} \]

  • 显然, 边界秩知足:

\[ \widetilde{\text{rank}}(\mathcal{X}) \leq \text{rank}(\mathcal{X}). \]

3.4 计算CP分解 Computing the CP Decomposition

  • 就如前文所述, 并无一个肯定的算法来得出一个张量的秩. 因而, 当咱们试图计算CP分解时遇到的第一个问题, 即是如何选择其秩1成分的个数. 许多计算方法同时选择了几个不一样的秩1成分个数来计算CP分解, 直到发现某一种选择看起来"最好". 理想上来讲, 若是数据是没有噪音并且秩1成分数量给定后的CP计算方法是已知的, 那么咱们只要在分解的拟合精度达到100%以前, 对\(R= 1,2,3,\dots\)依序进行计算便可.

  • 然而, 就如同你可能预料的那样, 这样的方法有许多问题.
    • 咱们发现即便给定秩1成分的数量, 也没有完美的方法去求出CP.
    • 并且, 就和咱们在以前的例子中看到的那样, 有些张量是退化的, 他们拥有能够精确至任意精度的低秩分解. 这在应用之中引发了一些麻烦.
    • 最后, 数据中常常是有噪音的. 当有噪时, 任何拟合都不能决定秩的大小.
  • 给定秩1成分数量后计算CP的主流算法有许多. 咱们将目光先焦距在流行算法ALS(alternating least squares)(交替最小方差法)身上. 原始算法以下图. 为了简化, 接下来咱们只会推导3阶算法, 原始论文是针对N阶的.
  • 假设三阶张量\(\mathcal{X} \in \mathbb{R}^{I \times J \times K}\). 咱们的目标是算出他的CP分解, 使得其中R个秩1元素的和可以最好的近似\(\mathcal{X}\). 也就是说, 咱们要寻找
    \[ \min_{\hat{\mathcal{X}}} ||\mathcal{X} - \hat{\mathcal{X}}|| \, \text{ with } \, \hat{\mathcal{X}} = \sum_{t=1}^R \lambda_r \, \mathrm{a}_r \circ \mathrm{b} \circ \mathrm{c}_r = [\![\mathrm{\lambda}\, ; \, \mathrm{A}, \mathrm{B}, \mathrm{C}]\!]. \]

  • 交替最小方差法先固定\(\mathrm{B}\)\(\mathrm{C}\)来求出\(\mathrm{A}\), 而后固定\(\mathrm{A}\)\(\mathrm{C}\)来求\(\mathrm{B}\), 最后固定\(\mathrm{A}\)\(\mathrm{B}\)来求出\(\mathrm{C}\). 而后将重复整个流程直到一些收敛条件被符合.

  • 经过固定除了一个矩阵之外的全部矩阵, 问题就被简化成了一个线性最小方差问题. 好比, 假设\(\mathrm{B}\)\(\mathrm{C}\)被固定, 回忆在上一章中咱们说起如下性质:
    \[ \mathrm{X}_{(1)} \approx \mathrm{A}(\mathrm{C}\odot \mathrm{B})^\mathsf{T},\\ \mathrm{X}_{(2)} \approx \mathrm{B}(\mathrm{C}\odot \mathrm{A})^\mathsf{T},\\ \mathrm{X}_{(3)} \approx \mathrm{C}(\mathrm{B}\odot \mathrm{A})^\mathsf{T}. \]

  • 所以, 最小化问题能够被写成如下矩阵形式

\[ \min_{\hat{\mathrm{A}}}||\mathrm{X}_{(1)} - \hat{\mathrm{A}}(\mathrm{C}\odot\mathrm{B})^\mathsf{T}||_F, \]

  • 其中. \(\hat{\mathrm{A}} = \mathrm{A} \cdot \text{diag}(\lambda)\) . 最优解为:

\[ \hat{\mathrm{A}} = \mathrm{X}_{(1)}\big[(\mathrm{C}\odot \mathrm{B})^{\mathsf{T}}\big]^\dagger. \]

  • 因为Khatri-Rao乘积的性质, 其伪逆矩阵有特殊形式. (可参考本笔记开头介绍Khatri-Rao性质的部分). 常常将解写做
    \[ \hat{\mathrm{A}} = \mathrm{X}_{(1)}(\mathrm{C} \odot \mathrm{B})(\mathrm{C}^{\mathsf{T}}\mathrm{C} * \mathrm{B}^{\mathsf{T}}\mathrm{B})^\dagger. \]

  • 这个版本的优点在于咱们仅仅须要计算一个\(R\times R\)而不是\(JK\times R\)矩阵的伪逆矩阵. 然而, 因为存在数值病态条件的可能, 咱们并不老是推荐这个版本.

  • 最后, 咱们还须要归一化\(\hat{\mathrm{A}}\)的列向量来得到\(\mathrm{A}\). 换句话说, 令\(\lambda_r = ||\hat{\mathrm{a}}_r||\)\(\mathrm{a}_r = \hat{\mathrm{a}}_r / \lambda_r \, \text{ for } r = 1,\dots , R.\)

  • 完整的ALS算法参照上面的Figure3.3. 他假设CP分解的成分数R是被给定的. 其因子矩阵能够用任何方式初始化, 能够是随机的, 也能够令其为对应mode下的矩阵化结果的从左侧起R个奇异向量
    \[ \mathrm{A}^{(n)} = R \,\text{ leading left singular vectors of }\mathrm{X}_{(n)} \,\text{ for }\, n=1,\dots,N. \]
  • 如图中所述, 在每一个内迭代中, 都必须计算矩阵\(\mathrm{V}\)的伪逆矩阵. 虽然这只是个\(R\times R\)尺寸的矩阵. 迭代将持续到某些中止条件都被符合为止. 常见的选择有: 目标函数的提高为0或低于阈值; 因子矩阵几乎或没有被改变; 目标值为0或几乎为0以及预设的最大迭代次数被超过等. (熟悉深度学习的朋友应该都很熟悉这些常见的中止模式)

  • ALS算法简单易懂, 实现轻松, 但每每须要不少次迭代才能收敛, 显得效率有些低. 并且, 该算法并不保证咱们能达到一个全局最小值, 甚至不能保证是一个驻点. 他其实只是给出了一个上述最小化目标的函数的解, 使得最小化目标函数开始慢慢中止减小, 他没有保证这个最小化目标函数处于最低值或者不会继续减小.

  • 替代ALS的可行算法有许多, 但在时间不是紧缺的状况下, 研究代表并无一个比ALS全面优秀的算法存在. 研究ALS的变种算法的论文更是不可胜数. 他成为了一个分支研究的起点, 人们期待从他出发, 寻找张量分解的新的可能.

下一章咱们将引入另外一种分解法: Tucker分解法及张量压缩, 敬请期待!!

相关文章
相关标签/搜索