DeepFM这种算法是一种基于分解机的神经网络,该算法由哈尔滨工业大学深圳研究生院联合华为诺亚方舟实验室于2017年提出的。
这种算法是一种端到端的学习模型,不仅考虑了低阶的特征融合,也考虑了高阶的特征融合。该算法利用深度学习来学习特征,利用分解机做推荐。
本图给出了DeepFM的示意图。其中的“宽”元素和“深”元素共享同样的输入,它们的输入都是原始的特征向量。这种结构可以使得DeepFM从原生特征中同时学到低阶的特征之间的相互作用和高阶的特征之间的相互作用。
分解机模型可以通过将隐含因子作内积来学到结对的特征之间的交互作用,并且能够取得较好的效果。从原理上来讲,分解机模型可以学到更高阶的特征,但是实际应用中一般只考虑二阶的,更高阶的计算复杂度会更高。
DeepFM中的分解机用于学习低阶的特征之间的交互作用,深度神经网络用于学习高阶的特征之间的相互作用。
在数据处理部分,针对类别类型的数据,一般用one-hot编码来处理,针对连续型变量,保留值本身即可,也可以离散化之后利用one-hot编码来处理。
DeepFM中的FM结构如下
FM的输出形式如下
其中既包含了一阶的特征,也包含了二阶的特征。
深层神经网络的结构如下
注意,这里的深层神经网络,是深层的前馈神经网络,用来学习高阶特征。
其中嵌入层的结构如下
值得注意的是,这里的嵌入层允许输入层的节点数不一样,而嵌入以后节点数保持一致。分解机中所学到的权重可以用于将输入层映射到嵌入层。
下图给出了比较类似的网络结构
各个模型相互之间的比较如下
各模型运行时间比较
性能比较如下
容易看出,DeepFM的效果最好
激活函数类型的影响
容易看出针对DeepFM,relu的表现优于tanh。
dropout对模型的影响
容易看出dropout的比例对DeepFM有一定的影响,取值0.9时效果最好。其中dropout的值表示保留某个神经元的概率。
神经元个数对模型的影响
容易看出,单元数对DeepFM的影响不显著。
网络层数对模型的影响
容易看出,层数对DeepFM的影响不是那么显著。
网络形状对模型的影响
其中constant的形状为200-200-200,即每一层都有200个单元,increasing为100-200-300,即单元数随层数的增大而变大,decreasing为300-200-100,即单元数随层数的减小而变小,diamond为150-300-150,即单元数先变大后变小。容易看出,网络形状对DeepFM的影响不大。
参考资料
Guo, Huifeng, Ruiming Tang, Yunming Ye, Zhenguo Li, and Xiuqiang He. "Deepfm: A factorization-machine based neural network for CTR prediction." arXiv preprint arXiv:1703.04247(2017).
Zhang, Weinan, Tianming Du, and Jun Wang. "Deep learning over multi-field categorical data." In European conference on information retrieval, pp. 45-57. Springer, Cham, 2016.
Sedhain, Suvash, Aditya Krishna Menon, Scott Sanner, and Lexing Xie. "Autorec: Autoencoders meet collaborative filtering." In Proceedings of the 24th International Conference on World Wide Web, pp. 111-112. ACM, 2015.
Salakhutdinov, Ruslan, Andriy Mnih, and Geoffrey Hinton. "Restricted Boltzmann machines for collaborative filtering." In Proceedings of the 24th international conference on Machine learning, pp. 791-798. ACM, 2007.
Rendle, Steffen. "Factorization machines." In Data Mining (ICDM), 2010 IEEE 10th International Conference on, pp. 995-1000. IEEE, 2010.
Cheng, Heng-Tze, Levent Koc, Jeremiah Harmsen, Tal Shaked, Tushar Chandra, Hrishi Aradhye, Glen Anderson et al. "Wide & deep learning for recommender systems." In Proceedings of the 1st Workshop on Deep Learning for Recommender Systems, pp. 7-10. ACM, 2016.
Covington, Paul, Jay Adams, and Emre Sargin. "Deep neural networks for youtube recommendations." In Proceedings of the 10th ACM Conference on Recommender Systems, pp. 191-198. ACM, 2016.
Juan, Yuchin, Yong Zhuang, Wei-Sheng Chin, and Chih-Jen Lin. "Field-aware factorization machines for CTR prediction." In Proceedings of the 10th ACM Conference on Recommender Systems, pp. 43-50. ACM, 2016.