NerualCF模型

主要思想

chp2中https://www.yuque.com/zhang00/xqzytl/wdistl#WgggU 矩阵分解算法,通过分解共现矩阵得到user和item的隐向量,通过隐向量内积来预测用户u对物品i的评分预测,NeuralCF本质思想和MF相同,是基于深度学习的协同过滤模型,只不过将MF中的内积操作替换为多层神经网络和输出层,也就是将简单的内积,替换为复杂的交叉,以期获得更多的组合信息和非线性特征,反过来说MF也可以认为是NCF的特例。NCF是一种框架。Matrix Factorization - > Generalized Matrix Factorization
之所以是一种广义矩阵分解,是因为原始MF的内积可以替换为任意复杂互操作,比如inner product - > element-wise product ,AMF模型中特征交叉就采用了element-wise product。

模型结构

NCF框架

20200908-《深度学习推荐系统》-chp3 - 图1
NCF混合模型:
image.png

  • 论文中只使用了user和item作为输入,输入特征经过one-hot编码,如果预测的是显性反馈例如评分,目标可以设置为均方误差,如果是隐性如点击,就使用二分类的损失。
  • NCF混合模型整合了上述NCF和广义矩阵分解(GMF),目的还是为了进行丰富的特征交叉,这个结构和deepfm是比较类似的。

    NCF的优缺点

  • NCF实际是一种模型框架,可以灵活选择特征交叉方式;
  • NCF是基于协同过滤的思想,仍然只利用了user和item 的隐向量,没有利用其它更多信息;GMF部分虽然可以进行丰富的互操作,但是如何设计筛选不同的交叉方式还是需要投入很多的精力

    PNN模型-Product-based Neural Network

    主要思想

    将deepcrossing的stacking layer替换为product layer,有针对性地加强特征交叉。

    模型结构

    DeepCrossing的结构:https://www.yuque.com/zhang00/xqzytl/olq9vu
    20200908-《深度学习推荐系统》-chp3 - 图3
    PNN结构:
    20200908-《深度学习推荐系统》-chp3 - 图4

  • 从上面的结构可以看出整体结构,PNN和DeepCrossing没有本质上差异,都是输入层经过embedding,经过一个stacking layer,再接入多层神经网络。只不过PNN的stacking layer被替换为product layer,在这一层增加了了对embedding向量的互操作,而不是直接concatenate。

  • 这里的product layer是PNN的主要创新点,从网络结构图可以看出,这层分成了两个部分,左边是做内积生成的向量z,右边是做外积生成的向量p,外积就是矩阵乘。假设embedding向量长度为k,那么两个feature做外积会生成一个kk的方形矩阵,内积计算乘法k次,外积则要kk,论文中的降维方法是把所有k*k的结果叠加作为最后的p,简化后的式子,相当于所有embedding经过sum pooling之后做外积:

image.png

PNN的优缺点

  • PNN的创新点在于embedding层之后进行的特征交叉,相比于无差别连接后送入全连接层,能够提取更多交叉信息;
  • 外积计算复杂度高,简化的过程模糊了很多不是一个类别的特征信息,可能会影响效果。