在前面的文章中,我们已经讨论了稀疏张量的Tucker分解,并介绍了如何采用梯度下降训练出一个合理的分解结构,与Tucker分解略有不同,这篇文章将介绍在数学表达式上更为简洁的CP分解,同时讨论如何利用梯度下降训练出稀疏张量的CP分解结构。
需要注意的是,本文在撰写过程中尽量避开了繁琐的数学推导,阅读以下内容只需要具备以下几点即可:首先,知道高阶张量实质上是多维数组,且仅仅是向量和矩阵的高阶泛化;
其次,对高等数学所学习的求偏导数较为熟悉;
最后,对矩阵计算较为熟悉且感兴趣。
1 张量的CP分解模型
一般而言,给定一个大小为
的张量
,其CP分解可以写成如下形式,即
其中,矩阵
的大小分别为
,被称为因子矩阵(factor matrices),符号“
”表示张量积,对于向量而言,这里的张量积与外积是等价的。张量
任意位置
上的元素估计值为