NeuralCF
在实际使用矩阵分解来训练和评估模型的过程中,往往会发现模型容易处于欠拟合状态,究其原因是因为矩阵分解的模型结构相对比较简单,特别是“输出层”,无法对优化目标进行有效的拟合。这就是要求模型有更强的表达能力,在此动机的启发下,新加坡国立大学的研究人员提出了NeuralCF模型。
NeuralCF的模型结构
如下图所示,NeuralCF用“多层神经网络+输出层”的结构代替了矩阵分解模型中简单的内积操作。这样做的收益是直观的,一是用户向量和物品向量做更充分的交叉,得到更多有价值的特征组合信息;二是引入更多的非线性特征,让模型的表达能力更强。
原始的矩阵分解使用”内积”的方式让用户和物品向量进行交互,为了进一步让向量在各维度上进行充分交叉,可以通过“元素积”的方式进行操作,再通过逻辑回归等输出层拟合最终预测目标。
再进一步,可以把通过不同互操作网络得到的特征向量拼接起来,交由输出层进行目标拟合。论文中给出了整合两个网络的例子(如下图所示)。可以看出,NeuralCF混合模型整合了上面提出整合了上面提出的原始NeuralCF模型和一元素积为互操作层的广义矩阵分解模型。这让模型具有了更强的特征组合和非线性能力。
NeuralCF模型的优势和局限性
优势
- 它基于用户向量和物品向量这两个Embedding层,利用不同的互操作层进行特征的交叉组合,并且可以灵活地进行不同互操作层的拼接。
- 利用神经网络理论上能够拟合任意函数的能力,灵活地组合不同的特征,按需增加或减少模型的复杂度。
局限性
- 由于是基于协同过滤的思想进行构造的,所以NeuralCF模型并没有引入更多其他类型的特征,这在实际应用中无疑浪费了其他有价值的信息。此外,对于模型中互操作的种类并没有做进一步的探究说明。这都需要后来者进行更深入的探索。
在实践中要注意:并不是模型结构越复杂、特征越多越好。
一是要防止过拟合的风险。
二是往往需要更多的数据和更长的训练时间才能使复杂的模型收敛。