深度学习在CTR预估中的应用 | CTR深度模型大盘点

作者丨辛俊波

单位丨腾讯

研究方向丨CTR预估,推荐系统


前言


深度学习凭借其强大的表达能力和灵活的网络结构在 NLP、图像、语音等众多领域取得了重大突破。在广告领域,预测用户点击率(Click Through Rate,简称 CTR)领域近年也有大量关于深度学习方面的研究,仅这两年就出现了不少于二十多种方法。


本文就近几年 CTR 预估领域中学术界的经典方法进行探究,并比较各自之间模型设计的初衷和各自优缺点。通过十种不同 CTR 深度模型的比较,不同的模型本质上都可以由基础的底层组件组成。 


本文中出现的变量定义: 


  • n: 特征个数,所有特征 one-hot 后连接起来的整体规模大小

  • f: 特征 field 个数,表示特征类别有多少个 

  • k: embedding 层维度,在 FM 中是隐向量维度 

  • H1: 深度网络中第一个隐层节点个数,第二层 H2,以此类推

深度学习模型


1. Factorization-machine (FM) 


FM 模型可以看成是线性部分的 LR,还有非线性的特征组合 xixj 交叉而成,表示如下:



其中 vi 是第 i 维特征的隐向量,长度 k<<n,包含 k 个描述特征的因子。参数个数为 k*n。所有包含 xi 的非零组合特征都可以用来训练 vi,缓解数据稀疏问题。


▲ 图1:FM模型结构


图 1 是从神经网络的角度表示 FM, 可以看成底层为特征维度为 n 的离散输入,经过 embedding 层后,对 embedding 层线性部分(LR)和非线性部分(特征交叉部分)累加后输出。


FM 等价于 FM + embedding,待学习的参数如下: 


  • LR 部分:1+n

  • embedding 部分:n*k


FM 下文中将作为各种网络模型的基础组件。


2. Deep Neural Network (DNN) 


▲ 图2:DNN模型结构


图 2 是经典的 DNN 网络, 结构上看就是传统的多层感知机(MultiLayer Perceptron,简称 MLP)。


在 MLP 网络中,输入是原始的特征 n 维特征空间,假设第一层隐层节点数为 H1,第二层为 H2,以此类推。在第一层网络中,需要学习的参数就是 n*H1。


对于大多数 CTR 模型来说,特征体系都极其庞大而且稀疏,典型的特征数量级 n 从百万级到千万级到亿级甚至更高,这么大规模的 n 作为网络输入在 CTR 预估的工业界场景中是不可接受的。


下面要讲到的大多数深度学习 CTR 网络结构,都围绕着如何将 DNN 的高维离散输入,通过 embedding 层变成低维稠密的输入工作来展开。


DNN 待学习参数: 


n*H1+H1*H2+H2*H3+H3*o


o 为输出层大小,在 CTR 预估中为 1。


DNN(后文称 MLP)也将作为下文各种模型的基础组件之一。


3. Factorization-machine supported Neural Networks (FNN) 


在上述的 DNN 中,网络的原始输入是全部原始特征,维度为 n,通常都是百万级以上。然而特征维度 n 虽然空间巨大,但如果归属到每个特征所属的 field(维度为 f),通常 f 维度会小很多。


如果有办法将每个特征用其所属的 field 来表示,原始输入将大大减少不少。Factorisation-machine Supported Neural Networks,简称 FNN 就是基于这种思想提出来的。


▲ 图3:FNN模型结构


FNN 假设每个 field 有且只有一个值为 1,其他均为 0。x 为原始输入的特征,它是大规模离散稀疏的。它可以分成 n 个 field,每一个 field 中,只有一个值为 1,其余都为 0(即 one hot)。 


field i 的输入可以表示成 x[start_i: end_i],Wi 为field i 的 embedding 矩阵。z为 embedding 后的向量,是一个 k 维的向量,它由一次项 wi ,二次项 vi=(vi1,vi2,…vik) 组成,其中 k 是 FM 中二次项的向量的维度。而后面的 l1,l2 则为神经网络的全连接层的表示。 


除此之外,FNN 还具有以下几个特点: 


FM 参数需要预训练 


FM 部分的 embedding 需要预先进行训练,所以 FNN 不是一个 end-to-end 模型。在其他论文中,有试过不用 FM 初始化 embedding,而用随机初始化的方法,要么收敛速度很慢,要么无法收敛。有兴趣的同学可以实验验证下。 


无法拟合低阶特征 


FM 得到的 embedding 向量直接 concat 连接之后作为 MLP 的输入去学习高阶特征表达,最终的 DNN 输出作为 CTR 预估值。因此,FNN 对低阶信息的表达比较有限。 


每个 field 只有一个非零值的强假设 


FNN 假设每个 fileld 只有一个值为非零值,如果是稠密原始输入,则 FNN 失去意义。对于一个 fileld 有几个非零值的情况,例如用户标签可能有多个,一般可以做 average/sum/max 等处理。 


本质上讲&

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值