推荐系统系列(五):Deep Crossing理论与实践
背景 特征工程是绕不开的话题,巧妙的特征组合也许能够为模型带来质的提升。但同时,特征工程耗费的资源也是相当可观的,对于后期模型特征的维护、模型线上部署不太友好。2016年,微软提出Deep Crossing模型,旨在解决特征工程中特征组合的难题,降低人力特征组合的时间开销,通过模型自动学习特征的组合方式,也能达到不错的效果,且在各种任务中表现出较好的稳定性。 与之前介绍的FNN、PNN不同的是,Deep Crossing并没有采用显式交叉特征的方式,而是利用残差网络结构挖掘特征间的关系。本文将对DeepCrossing从原理到实现细节进行详细分析。 分析 1. DeepCrossing模型结构 整个模型包含四种结构:Embedding,Stacking,Residual Unit,Scoring Layer。 论文中使用的目标函数为 \(logloss\) : \(logloss=-\frac{1}{N}\sum_{i=1}^{N}(y_ilog(p_i)+(1-y_i)log(1-p_i))\) ,在实际应用中,可以灵活替换为其他目标函数。 下面对各层结构进行分析: 1.1 Embedding & Stacking Embedding的主要目的是将高维稀疏特征转化为低维稠密特征,其公式化定义为: \(X_j^O=max(0,W_jX_j^I+b_j)\) ,其中 \(X_j^I\