推荐系统学习笔记-FNN

由来

在FM之后出现了很多基于FM的升级改造工作,由于计算复杂度等原因,FM通常只对特征进行二阶交叉。但是当面对海量高度稀疏的用户行为反馈数据的情况下,二阶交叉往往是不够的,三阶、四阶甚至更高阶的组合交叉能够进一步提升模型学习能力。

于是就有人参考图像领域CNN通过相邻层连接扩大感受野的做法,使用DNN来对FM显式表达的二阶交叉特征进行再交叉,从而产生更高阶的特征组合,加强模型对数据模式的学习能力。即FNN(Factorization Machine supported Neural Network)模型。

模型预测公式表达

推荐系统学习笔记-FNN_第1张图片

模型结构

利用DNN对特征进行隐式交叉,可以减轻特征工程的工作,同时也能够将计算时间复杂度控制在一个合理的范围内。

为了加速模型的收敛,充分利用FM的特征表达能力,FNN采用了两阶段训练方式。首先,针对任务构建FM模型,完成模型参数的学习。然后,将FM的参数作为FNN底层参数的初始值。这种两阶段方式的应用,是为了将FM作为先验知识加入到模型中,防止因为数据稀疏带来的歧义造成模型参数偏差。

在特征进行输入之前首先进行分域操作,这种方式也成了后续处理高维稀疏性数据的通用做法,目的是为了减少模型参数量,与FM计算过程保持一致。

推荐系统学习笔记-FNN_第2张图片
模型中的dense real layer 将FM产出的低维稠密特征向量进行简单拼接,作为下一全连接层的输入,采用tanh作为激活函数,最终使用sigmoid将之进行二分类操作,即0与1

模型效率对比

推荐系统学习笔记-FNN_第3张图片

你可能感兴趣的:(推荐系统学习笔记,kaggle,神经网络,学习,深度学习,推荐算法,人工智能)