论文笔记|Wide & Deep Learning for Recommender Systems

在读了FM和FMM的论文后,紧接着开始学习最典型的FM系列的深度神经网络模型DeepFM,看到论文中多次提到Wide&Deep这个模型,因此首先找来这篇文章学习了一下。
通常分类或回归方法分为两类,一类是简单的线性模型,通过分析特征性质,用两个或多个特征手动构建新的特征,特点是输入变量高维、稀疏,称为Wide模型,如LR;另一类是模型较为复杂,能够自动构建新的非线性特征,,特点是输入变量低维、稠密,称为Deep模型,如DNN通过embedding层实现将稀疏特征转变为稠密特征并通过多层网络实现非线性,FM通过特征两两内积构建新的交叉特征。文章提出了一种想法,将具有memorization(记忆)能力的Wide模型与具有generalization(泛化)能力的Deep模型进行组合,并在Google Play Store的ranking业务上在线测试了模型与Deep和Wide模型的效果对比。
在工业界的推荐领域,一直以来LR得到广泛应用,因为线性模型相对于其他模型十分简单,易扩展,且具有较高的可解释性。通常,对于类别信息,通过one-hot编码后,拼接得到输入变量,因为原本类别信息若直接作为一维特征输入,无法体现不同类别之间的相似关系,而通过one-hot编码后,向量之间的欧式距离就代表了向量之间的相似程度,并且对于稀疏向量,运算效率更高。但是,仅仅一维的特征往往无法挖掘出更深的特征信息,所以根据特征的具体含义,如年龄与国家,通过内积运算,构建两个或多个特征之间的交叉特征,或者通过GBDT自动选取划分节点构建新的特征(GBDT的叶节点拼接于原输入变量之后)。但是,人为构建的特征特征虽然具有较强的可解释性,但总归是有限的,并且受限于数据集,假若某一维度数据量较少,往往难以挖掘出和这维特征有关的特征。Embedding层实际上与FM中的二阶部分类似,将每个field中的one-hot编码变换成一定维度内的稀疏稠密变量。
在本文提出的模型中,首先通过特征变换构建Wide部分的特征。对于Deep部分的特征,若是连续特征,则通过累计概率将连续特征分段、归一。注意,这里连续特征离散化的原因在于,使连续特征粗粒化,改平滑曲线为阶跃曲线,从而使方差降低,模型泛化能力增强,离散化后特征仍是一维,比如年龄、APP下载数等。模型采用joint training,代价函数定义为
P ( Y = 1 ∣ x ) = σ ( w w i d e T [ x , ϕ ( x ) ] + w d e e p T a ( l f ) + b ) P(Y=1|x)=\sigma(w^T_{wide}[x,\phi(x)]+w^T_{deep}a^{(l_f)}+b) P(Y=1x)=σ(wwideT[x,ϕ(x)]+wdeepTa(lf)+b)
这里区分一下联合训练和集成学习,集成学习在于每个模型都具有较强的表达能力,通过多个模型融合降低方差,因此每个独立的模型需要更加复杂,而这里的联合训练的方式则对整体进行参数优化。在优化方式上,Wide部分采用带L1正则化的FTRL,Deep部分采用Adagrad。考虑到训练模型的高计算复杂度,该模型采用了热启动的方式,即embedding层和wide部分的权重直接采用之前的训练结果作为初始值。

你可能感兴趣的:(论文笔记|Wide & Deep Learning for Recommender Systems)