DeepFM model
推荐系统小白一枚----无所为而为
本模型由华为和哈工大联合出品。
原文是:
DeepFM: A Factorization-Machine based Neural Network for CTR Prediction
FM(factorization-machine)因子分解机技术本身就是设计出来就是为了二阶的特征交互,其改变了原本的一阶手工交叉的LR模型的缺点。二阶的特征交叉带来了细粒度更高的特征。
DNN:对于离散特征的处理,将离散特征转换成为one-hot向量的形式,但是将One-hot类型的特征输入到DNN中,通过构建全连接层,这会导致网络参数太多。计算复杂度过高。因此将原本的one-hot向量划分为一个个field向量,这样可以大大的降低计算的复杂度。即如下图所示
然后将feature field特征导入dnn中进行更加深入的特征交叉
再将FM和DNN组合起来构成DeepFM模型
本人一眼看过去模型大致分为三个部分
input层:提取稀疏特征,再划分field,做dense embeddings,将这些原始的特征转化为低维稠密的向量,方便input到之后的模型中。
model层:model层被分为两个部分
FM layer:使用FM模型试图在低维度进行特征交互,其优势在于记忆能力相比起DNN要强。
DNN的Hidden Layer:将这些特征放入DNN中进行高阶交互,提取更高细粒度的特征。
output层:最后两个模型的输出结果都导入一个sigmoid function中输出确定的概率值。
思考题:(非专业的小白一枚,思考题实在不是太会请谅解)
1.如果对于FM采用随机梯度下降SGD训练模型参数,请写出模型各个参数的梯度和FM的参数训练复杂度
2.不同颜色节点分别表示什么意思
黄色节点表示用户点击,灰色节点表示没有点击。
在dense embeddings层的颜色深浅反映链接数量?(个人猜测)
其与Wide&Deep模型的不同点:
- DeepFM模型的Deep层和FM层是共享特征的,而Wide&Deep模型的wide部分和deep部分的特征是不共享的,各自选取自己的特征。
- Wide&Deep的wide部分是使用的是高维稀疏特征,而DeepFM的FM部分是经过处理后的低维稀疏的特征。