一般国内涉及到推荐模型的公司,发展历程为传统机器学习LR-->FM到深度学习wide&deep、deepfm、DCN...这些。目前我所在的公司采用的是online fm模型,准备向深度学习进军,所以最近也是在调研一些工业界用的比较多的模型,以此记录一下学习历程,因为自己本身对tensorflow不是很熟悉,一些看似简单的模型架构实现起来很困难(说到底就是线性代数学的差,矩阵维度傻傻算不清楚),所以博主准备从模型维度出发全面瓦解模型思想。
如果你足够了解fm模型,那么deepfm也就非常简单了,他主要分为两部分
模型所需的参数
- field_size(field数):F
- feature_size(特征维度):M
- hidden_factor(隐藏因子数):K
- batch_size(每批次训练样本数):B(None)
构建的原始权重参数
- feature_embeddings:[M,K]
- feature_bias:[M,1]
1.fm layer
首先要弄清楚field size和feature size的概念和区别,在对于category特征时,例如特征sex列,有(man,woman,null)三个特征值,那么我们一般要先将特征one-hot一下为三个特征列,若某个用户性别时男,那么他的表示就是(1,0,0),女就是(0,1,0),以此递推null就是(0,0,1),那么性别这个特征就是一个field,他的feature size就是3个(男,女,null)。所

本文介绍了从传统机器学习模型如LR、FM到深度学习模型如Wide&Deep、DeepFM的发展历程。重点解析DeepFM模型,它由FM层和Deep层组成。FM层处理field和feature的关系,Deep层则是一个简单的DNN。文中还讨论了模型参数、输入处理和维度计算,并提出了在多-hot问题和模型迁移上的思考。
最低0.47元/天 解锁文章
374

被折叠的 条评论
为什么被折叠?



