1. 深度学习推荐模型(1)
演化方式:
改变神经网络的复杂程度
改变特征交叉方式
wide&deep模型
FM深度版本
注意力机制与推荐系统结合
序列模型与推荐模型结合
强化学习与深度学习结合
2.1 神经网络复杂程度
2.1.1 Auto-rec–单层神经网络推荐模型(easy)
通过自编码器原理,还原输入的结果。
重建函数:
目标函数:
目标函数l2正则:
参考:https://zhuanlan.zhihu.com/p/159087297
2.1.2 Deep Crossing模型–经典深度学习架构
应用场景
网络结构
embedding层,stacking层,multiple residual units层,scoring层
反思
embedding+多层神经网络,相较于传统的二阶特征交叉能力,deep crossing拥有深度交叉的能力
2.1.2 NeuralCF - CF与深度学习的结合
先回忆一下传统的矩阵分解怎么做
物品-用户共现矩阵分解成用户向量和物品向量
向量embedding化
embedding后向量取内积(重要)
得到分数
这个模型 复杂的位置就是在第三步操作上 使用多层神经网络去替换这个卷积操作
==优势==
- 利用神经网络来拟合任意函数,灵活地组成不同的特征,按需增加或减少模型的复杂度
==劣势==
基于协同过滤构造,没有引入更多其他类型的特征
在实践中,防止过拟合的风险
2.2 加强特征交叉能力
2.2.1 PNN模型
感谢:https://zhuanlan.zhihu.com/p/37522266
https://blog.csdn.net/wuzhongqiang/article/details/108985457
相较于 deep crossing模型中的stacking层,PNN模型替换成了乘积层。其他的在模型的输入,embeding层,多层神经网络以及最终的输出层上没有结构上的不同。
product layer层,左边为线性部分,认为 特征之间的关系是and“且”的一种关系,而非add”加”的关系。
z=concat([emb1,emb2..,embn],axis=1)
其右边操作为乘积操作,有内积和外积的区别。外积在操作上会将问题的复杂度从原来的m到 $m^2$,在选择上更应该慎重。
- 优势
定义了外积和内积操作更有针对性地强调不同特征之间的交互
- 局限
在外积操作上,为了效率经行大量的简化操作,对所有特征进行无差别的交叉,在一定程度上忽略了原始特征中包含的价值信息。
2.2.2 product layer 内积
PNN中p的计算方式如下,即使用内积来代表pij:
2.2.3 product layer 外积
OPNN中p的计算方式如下:
此时pij为MM的矩阵,计算一个pij的时间复杂度为MM,而p是NNMM的矩阵,因此计算p的事件复杂度为NNMM。从而计算lp的时间复杂度变为D1 * NNM*M。这个显然代价很高的。为了减少负责度,论文使用了叠加的思想,它重新定义了p矩阵:
2.3 记忆能力与泛化能力的综合
2.3.1 wide&deep模型
wide部分是让模型具有较强的“记忆能力”,deep部分是让模型具有泛化能力。这样的结构使模型兼具了逻辑回归和深度神经网络的优点–能快速处理并且记忆大量的历史行为特征,并且具有强大的表达能力。
在提出W&D模型,平衡Wide模型和Deep模型的记忆能力和泛化能力。实际上是lr+dnn。
记忆(memorization) 通过特征叉乘对原始特征做非线性变换,输入为高维度的稀疏向量。通过大量的特征叉乘产生特征相互作用的“记忆(Memorization)”,高效且可解释,但要泛化需要更多的特征工程。
泛化(generalization)只需要少量的特征工程,深度神经网络通过embedding的方法,使用低维稠密特征输入,可以更好地泛化训练样本中未出现过的特征组合。但当user-item交互矩阵稀疏且高阶时,容易出现“过泛化(over-generalize)”导致推荐的item相关性差
- 工程应用
2.3.2 wide&deep进化 deep&cross模型
Cross Network
交叉网络的核心思想是以有效的方式应用显式特征交叉。交叉网络由交叉层组成,每个层具有以下公式:
xl和xl+1 分别是第l层和第l+1层cross layer的输出,wl和bl是这两层之间的连接参数。注意上式中所有的变量均是列向量,W也是列向量,并不是矩阵。xl+1 = f(xl, wl, bl) + xl. 每一层的输出,都是上一层的输出加上feature crossing f。而f就是在拟合该层输出和上一层输出的残差。
Cross Layer 设计的巧妙之处全部体现在上面的计算公式中,我们先看一些明显的细节:1) 每层的神经元个数都相同,都等于输入 的维度
DCN能够有效地捕获有限度的有效特征的相互作用,学会高度非线性的相互作用,不需要人工特征工程或遍历搜索,并具有较低的计算成本。
1)提出了一种新的交叉网络,在每个层上明确地应用特征交叉,有效地学习有界度的预测交叉特征,并且不需要手工特征工程或穷举搜索。
2)跨网络简单而有效。通过设计,各层的多项式级数最高,并由层深度决定。网络由所有的交叉项组成,它们的系数各不相同。
3)跨网络内存高效,易于实现。
4)实验结果表明,交叉网络(DCN)在LogLoss上与DNN相比少了近一个量级的参数量