深度推荐模型:DeepCrossing

背景
特征工程是绕不开的话题,巧妙的特征组合也许能够为模型带来质的提升。但同时,特征工程耗费的资源也是相当可观的,对于后期模型特征的维护、模型线上部署不太友好。2016年,微软提出Deep Crossing模型,旨在解决特征工程中特征组合的难题,降低人力特征组合的时间开销,通过模型自动学习特征的组合方式,也能达到不错的效果,且在各种任务中表现出较好的稳定性。

与FNN、PNN不同的是,Deep Crossing并没有采用显式交叉特征的方式,而是利用残差网络结构挖掘特征间的关系。本文将对DeepCrossing从原理到实现细节进行详细分析。

模型结构
为了完成端到端的训练, DeepCrossing模型要在内部网络结构中解决如下问题:

(1)离散类特征编码后过于稀疏, 不利于直接输入神经网络训练, 需要解决稀疏特征向量稠密化的问题

(2)如何解决特征自动交叉组合的问题

(3)如何在输出层中达成问题设定的优化目标

DeepCrossing模型结构:
在这里插入图片描述
整个模型包含四种结构:Embedding,Stacking,Residual Unit,Scoring Layer。
论文中使用的目标函数为 logloss :logloss=−1N∑Ni=1(yilog(pi)+(1−yi)log(1−pi)) ,在实际应用中,可以灵活替换为其他目标函数。

一、特征抽取层:
对于基础数据的特征处理是整个推荐系统的基础,也是最重要,如何选取特征。

推荐系统常用 : 行为特征(阅读时长、关注、点赞、喜欢、评论等)、User 基本特征、item 基本特征 、统计特征(PV,UV,点击率等)

特征处理:类型特征OneHot、数字特征是否需要归一化,连续的特征是否需要cut 等

二、Embedding
https://zhuanlan.zhihu.com/p/83814532 embedding 介绍见这个blog 写的不错

Embedding的主要目的是将高维稀疏特征转化为低维稠密特征,其公式化定义为:

其中 代表输入的第 j 个特征Field,并且已经过one-hot编码表示,分别表示对应的模型参数,DeepCrossing加上了偏置 项 。公式中的 max 操作等价于使用 relu 激活函数。尽管可以通过分Field的操作,减少Embedding层的参数量,但是由于某些 高基数特征 的存在,如paper中提到的CampaignID,其对应的 仍然十分庞大。为此作者提出,针对这些高基数特征构造衍生特征,具体操作如下。根据CampaignID的历史点击率从高到低选择Top1000个,编号从0到999,将剩余的ID统一编号为 1000。同时构建其衍生特征,将所有ID对应的历史点击率组合成1001维的稠密矩阵,各个元素分别为对应ID的历史CTR,最后一个元素为剩余ID的平均CTR。通过降维引入衍生特征的方式,可以有效的减少高基数特征带来的参数量剧增问题。

三、Stacking Layer
经过Embedding之后,直接对所有的 进行拼接 Stacking, 。作者将特征embedding为256维,但是对于本身维度低于256的特征Field,无需进行Embedding,直接送入Stacking层 。

四、Multiple Resldual Units Layer (残差神经网络层)
在这里插入图片描述
上图描述的残差单元,残差神经网络层是有残差单元组成

① 输入层经过两次以Relu为激活函数的Full Connected操作 生成输出向量

② 输出向量和原输入向量做元素叠加生成新的输出向量 , 也就是经过①部分处理的数据 ,其实是拟合的残差。

五、 Scoring Layer
是为了拟合优化目标存在的,通常使用逻辑回归解决CTR 中的二分类问题,如果是多分类就通过softmax 处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值