前言
本次分享一篇2016年提出的模型Deep Crossing,论文题目:“Deep Crossing: Web-Scale Modeling without Manually Crafted Combinatorial Features“。
本文约1.9k字,预计阅读15分钟。
Deep Crossing
Deep Crossing模型是微软于2016年在KDD上提出的模型,它算是第一个企业以正式论文的形式分享深度学习推荐系统的技术细节的模型。由于手工设计特征(特征工程)花费巨大精力,因此文章提出了Deep Crossing模型自动联合特征与特征交叉。以现在的角度看待这个模型是非常简单的,也就是Embedding+MLP的结构,但对当时影响是非常巨大。由于距离Deep Crosssing的提出已过去近4年,因此并不在涉及Introduction和Related Work两部分内容。但该模型的应用场景与之前的电商平台有所不同,因此需要简单提一下。
应用场景
Deep Crossing模型的应用场景是微软的搜索引擎Bing中的搜索广告的推荐场景,即文章提到的Sponsored search(赞助搜索)。当用户在搜索引擎中输入搜索词时,除了返回对应的搜索结果,还会有与搜索词相关的广告。这与之前单纯的电商场景不同,因为有搜索的关键词,那么推送给用户的广告将更为精确。如何提高广告的点击率以及转化率,这是Deep Crossing模型的优化目标。
模型特征
针对特定的应用背景,微软使用的特征如下:
Query(搜索):用户搜索的关键词;
Keyword(广告关键词):广告商对自己的产品广告打的标签,用于匹配用户的搜索词;
Title(标题):广告的标题;
Landing Page(落地网页):点击广告后跳转的网页;
Match Type(匹配类型):广告商可选择的关键字与用户查询的匹配程度,通常有四种:精确匹配、短语匹配、宽泛匹配和上下文相关匹配;
Campaign(广告计划):广告商投放的计划;
Imression(曝光样例):记录了该广告实际曝光场景的相关信息;
Click(点击样例):记录了该广告实际点击场景的相关信息;
Click Through Rate(点击率):广告的历史点击率
click prediction(预估点击率):另一个CTR模型的预估值;
文章给出了如下一个单独特征类型以及维度的例子:
对于搜索词、关键词、文本则是一个文本信息,关于维度信息,在2013年微软提出DSSM模型的论文有所提及。MatchType对应着四个匹配的类型,为分类输入特征。CampaignID使用one-hot编码进行表示。CampaignIDCount是数值特征(计数型特征),存储每个活动的统计数据,如点击率、预估点击率等。所有引入的特征都是稀疏特征,除了计数特征。
模型结构
Deep Crossing模型是一个端到端的模型,结构如下所示,
主要包含4层结构:Embedding层、Stacking层、Multiple Residual Units层和Scoring层。
Embedding层
几乎所有基于深度学习的推荐、CTR预估模型都离不开Embedding层,它的作用是将离散高维的稀疏特征转化为低维的密集型特征。Embedding矩阵的参数通过神经网络的反向传播进行训练。在模型结构中发现Feature #2并没有使用Embedding,因为文章提到“维度小于256的特征“不需要进行Embedding转化。
Stacking层
Stacking层的工作特别简单,就是将所有的Embedding向量、未进行Embedding操作的原生特征进行拼接。
Multiple Residual Units层
Deep Crossing模型中的Crossing就是多个残差单元层来实现。该层使用了残差网络的基本单元,单个残差单元如下所示:
Deep Crossing模型使用稍微修改过的残余单元,它不使用卷积内核,改为了两层神经网络。我们可以看到,残差单元是通过两层ReLU变换再将原输入特征加回来:
其中,