这里将会主要对深度学习的总结,传统的推荐模型例如矩阵分解MF,逻辑回归LR、FM、LS-PLM等不再赘述,但是这些模型毕竟是推荐算法的鼻祖,其推荐原理值得每个人去研究,或者在之后的工作中可以受到启发;在随着神经网络的出现和应用,深度学习的处理复杂特征的优势和将特征工程模型化能力显著等这些优势逐渐让之前的推荐模型黯然失色,所以本部分的笔记将会主要以深度学习模型展开,如果涉及到传统推荐模型也会进行少量的阐述;
值得一说是2016年其实算是一个深度学习模型走进推荐领域的一个时间开始点,自此随着FNN、WIDE&Deep、Deep Crossing等一大批优秀的推荐模型架构被提出。个人认为:推荐模型相对于其它领域的模型而言,模型的主要研究出发点应该是特征,由于在推荐场景中,往往没有固定单一确定的特征类别,例如有的时候推荐特征是商品这种单一独立离散的特征,有的是行为序列这种随着时间变化的离散序列等,而且各个特征领域权重度不一样,像推荐往往实时性数据,比如最近的用户交互特征等 往往显得更具有效益,但与此同时也是不能忽略用户离线的历史数据,所以推荐领域,它的特征是具有非常的不统一特性,所以往往人们更愿意称呼并构建推荐系统,因为数据对象的庞大也将推荐分成了若干环节,比如召回和排序等;其实在做推荐的时候一定要有个清晰的概念,模型是为了针对特征而建立的,因为在其它领域不论是视频还是语音都是以信号的形式出现,其特征比较统一基本都是因果非线性信号,可以进行傅里叶变化等方式展开作为模型输入,或者时域信号的序列信号输入,相比这下,推荐显得复杂多了。
一、Deep Crossing 模型
该模型解决的问题:
(1)输入特征过于稀疏;
(2)特征自动交叉组合;
(3)在输出层完成优化目标。
该模型的网络结构图如下:
该模型结构分别由四个结构层:Embedding、Stacking层、Multiple Residual Unit层和Scoring层。这里可以依次阐述一下各个层的作用:
1、Embedding层:作用是为了将稀疏的特征转化为稠密的Embedding向量,值得注意的是如果某一个特征为数值特征则不需要进行转化直接可以输入(例如年龄这种数值特征);
2、Stacking层:对Embedding层的输入向量进行拼接,形成包含所有特征的特征向量(这里估计会会有人想到这是没有对特征交叉进行考量的,因为只是输入原特征向量,而不像MF那样计算出交叉特征的,该问题在下一个层进行解决);
3、Multiple Residual Unit层:这一层的结构主要是多层感知机(所谓感知机是指的输入最初输入数据),使用了多层的残差网络,通多多层的残差网络对特征向量的各个维度(和传统交叉特征做法不一样的地方)进行充分的交叉组合,让模型能够抓到更多的非线性特征和组合特征的信息,使之能力更加强大;
4、Scoring层:为了优化目标而存在,若是二分类问题,使用逻辑回归模型,若是多分类问题使用softmax模型即可。
以上是对该模型的结构阐述,该模型对于当今更为复杂的模型看来也就是一般般的复杂,相对于传统的FM和FFM二阶特征交叉来看,该模型是通过调整网络深度来实现特征交叉的,且不是人工特征,而是交给了模型处理的,算是一大进步把,这一点的思想值得记忆。