低秩分解在推荐中的应用,Tucker分解 vs CP分解的效率比较?
推荐模型里的大矩阵(如全连接层 $W \in \mathbb{R}^{m \times n}$、协同过滤矩阵、某些嵌入变换)往往低秩或近似低秩。用低秩分解 $W \approx U V^\top$,$U \in \mathbb{R}^{m \times r}$,$V \in \mathbb{R}^{n \times r}$,$r \ll \min(m,n)$,参数量从 $mn$ 降为 $(m+n)r$,计算也由一次大矩阵乘变为两次小矩阵乘,利于压缩与加速。
CP 分解(CANDECOMP/PARAFAC):张量 $\mathcal{X}$ 分解为若干秩 1 张量之和: \(\mathcal{X} \approx \sum_{r=1}^{R} \boldsymbol{a}_r \otimes \boldsymbol{b}_r \otimes \boldsymbol{c}_r.\) 参数量与 $R$ 和各模态维度之和成线性关系;存储与计算都较省,适合张量阶数高、各维规模大的场景;但表达能力受 $R$ 限制,且拟合非 CP 结构时可能需较大 $R$。
Tucker 分解:$\mathcal{X} \approx \mathcal{G} \times_1 A \times_2 B \times_3 C$,$\mathcal{G}$ 为核张量,$A,B,C$ 为因子矩阵。更灵活,可对不同模态设不同秩($r_1,r_2,r_3$),表达力强;但核张量 $\mathcal{G}$ 与各因子参数量相对 CP 更大,计算与存储成本更高。
| 返回模块 | 返回总览 |