专栏首页社区的朋友们深度学习在 CTR 中应用
原创

深度学习在 CTR 中应用

作者:高航

一. Wide&&Deep 模型

首先给出Wide && Deep [1] 网络结构:

本质上是线性模型(左边部分, Wide model)和DNN的融合(右边部分,Deep Model)。

推荐系统需要解决两个问题:

记忆性: 比如通过历史数据知道”麻雀会飞”,”鸽子会飞”

泛化性: 推断在历史数据中从未见过的情形,”带翅膀的动物会飞”

WideDeep是怎么解决这两个问题呢?

Wide模型:

比如现在有一个点餐推荐APP,我输入炸鸡(query),那么会给我进行推荐其他相关的食物(item),那么模型目地就是为了希望知道给定了query, 消费item的概率, 即: P(消费| query, item). 那我们就可以通过构建出一系列(query, item)的cross 特征, 通过LR去学习到这些不同的cross特征与target = 消费 的相关性。比如(query = “炸鸡”, item = “啤酒”) 与target = 消费 ,通过历史数据学习到有很强的相关性,那么就推荐给炸鸡。

Deep模型:

现在我厌倦了推荐的结果,希望推一些让我惊喜的食物,上面的wide模型,我们构建的cross特征也是有限的,不能面面俱到,cross特征或许可以是三个类别,四个类别。所以,需要deep模型自动帮我们做一些特征。每个特征可以映射到一个低维空间去,学习到一个低维dense的表达(embedding vector)。 那么给定一个query, 我们可以在embedding space中找距离相近的item, 认为是潜在喜欢的item

Wide模型与Deep模型的结合,目的是为了平衡记忆性和泛化性的结果.

二. FNN,SNN 模型

和wide deep出发点一样, 一些线性模型LR很难学到非线性表达, 非线性模型比如FM, GBDT又很难学到所有的特征组合方式。那么,如何利用DNN去自动学习到特征表达,自动去学习到特征之间的交叉呢?

FNN模型结构[2]:

首先需要对category特征进行一个one-hot编码。

l1, l2层都是隐藏层,那么, dense real layer 就可以看作一个embedding层, 每个field 分别 对应一个embedding的过程。通常,使用FM去初始化这些参数往往能够更快地收敛,最大限制避免训练过程中陷入局部最小,以及得到更好的结果。可以看到,FNN其实就是widedeep模型的deep部分,但是FNN有用FM进行一个参数初始化的过程。

SNN模型结构:

SNN和FNN模型区别于最底层的训练方法, FNN最底层先用FM初始化,可以看到,SNN最底层是全连接的,不区分不同的field。 初始化采用RBM(限制玻尔兹曼机) 和 DAE(自动编码机)。

训练过程中,没有每轮迭代都会用到所有的特征,对为0的单元进行一个下采样操作,图中黑色的单元即是没有被选取到,不参与参数迭代。计算复杂度得到大量的减少。

文章在iPinYou数据集上进行评测,可以看到FNN效果优于FM,LR。

文章对调参也给出了一些经验

  1. 网络结构,通常,钻石型的网络结构往往优于其他结构
    1. 隐藏层单元数不是越高越好,中间有一个临界值达到最优.
  2. Dropout在数据量本来就很稀疏的情况下尽量不用,不同的数据集dropout表现差距比较大。

三. PNN 模型

PNN[3]的网络结构:

PNN的结构的思想相比于WideDeep模型核心改动地方在对于embedding后的dense feature,增加了两两交叉的功能,widedeep是embedding feature全部输入到隐藏层了。不同field经过Embedding后的特征做点击运算其实就相当于FM,那么PNN认为首先需要确保学习到这些交叉特征,再去额外交给DNN去学习更复杂的交叉特征。那么PNN结构其实相当于FM+DEEP。

再说下网络细节: Embedding layer 和Wide Deep模型是一样的, 不同field特征映射到了一个embedding的空间上,这时,不是所有的特征直接送到一个NN网络里面去,这里分成两个部分z 和p。 z部分直接就是原始的embedding特征不变; P部分是embedding特征两两做内积运算,达到FM的效果,接下来z和p拼接成一个vector, 送到一个NN网络里面,最后softmax输出概率值。

四. DeepFM 模型

DeepFM[4]的网络结构:

可以看到,很像PNN结构,只是在这里FM没有和原始特征一起送到NN中去训练,而是单独拿出来类似于WIDE模型。其实就是WideDeep模型中Wide侧替换为FM。

五. NFM 模型

NFM模型[5]的网络结构:

首先,也是经过全连接得到embedding层,输入是

分别是不同特征对应的相同维数的embedding向量。接下来,这些embedding向量两两做element-wise的相乘运算得到B-interaction layer。(element-wide运算举例: (1,2,3)element-wide相乘(4,5,6)结果是(4,10,18)。)

该B-interaction Layer 得到的是一个和embedding维数相同的向量。然后后面接几个隐藏层输出结果。

为什么这么做呢?首先看如果B-interaction layer后面不接隐藏层,直接把向量的元素相加输出结果(对应下面的公式h=(1,1,1,...,1)) , 就是一个FM, 就好比一个线性模型,权重都是1 :

现在后面增加了隐藏层,相当于做了更高阶的FM,更加增强了非线性表达能力。

六. AFM 模型

AFM模型[6]的网络结构:

AFM是NFM模型的一个改进, 在传统FM模型中,使用二阶交叉特征得到非线性表达能力,但是不是所有的特征交叉都会有预测能力,很多无用的特征交叉加入后反而会相当于加入了噪声。

因此,在这个模型中,加入了Attention Net 机制,aij表示特征i,j交叉的权重。计算方式如下: 经过一个attention net的隐藏层,得到该特征交叉的权重

最后的预测方式和NFM类似, 当P=(1,1,1,...,1),是加了权重的FM, 后面也可以和NFM一样增加隐藏层,得到更高阶特征的表达能力。

结语: 没有万能的模型,针对不同的业务可能需要选择不同的模型,比如如果需要解释能力强的,那么不妨选择AFM模型, Wide Deep实际中应用比较广,效果也可以,但是很难定位问题,也难分析Deep侧的特征重要性。同时网络结构需要不断尝试,或许我们都可以embedding到一个固定的维数后,可以把这个embedding特征当作图像来做,做卷积,pooling, 说不定有惊喜,达到去噪声的目的。

参考文献

[1] Cheng H T, Koc L, Harmsen J, et al. Wide & Deep Learning for Recommender Systems[J]. 2016:7-10.

[2] Zhang, Weinan, T. Du, and J. Wang. "Deep Learning over Multi-field Categorical Data: A Case Study on User Response Prediction." (2016).

[3] Qu Y, Cai H, Ren K, et al. Product-Based Neural Networks for User Response Prediction[J]. 2016:1149-1154.

[4] Guo H, Tang R, Ye Y, et al. DeepFM: A Factorization-Machine based Neural Network for CTR Prediction[J]. 2017.

[5] He X, Chua T S. Neural Factorization Machines for Sparse Predictive Analytics[J]. 2017.

[6] Xiao J, Ye H, He X, et al. Attentional factorization machines: Learning the weight of feature interactions via attention networks[C]. IJCAI, 2017.

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 干货|深度学习在CTR中的应用

    ...

    fishexpert
  • 深度学习在CTR预估中的应用

    深度学习凭借其强大的表达能力和灵活的网络结构在NLP、图像、语音等众多领域取得了重大突破。在广告领域,预测用户点击率(Click Through Rate,简称...

    鹅厂优文
  • 迁移学习在深度学习中的应用

    ▌简介 ---- 迁移学习是一种机器学习方法,其中为一个任务开发的模型可以在另一个任务中重用。 迁移学习是深度学习中的一种流行方法,其中预训练(pre-trai...

    WZEARW
  • 深度学习在AEC中的应用探索

    我们可以想象为两个人通电话,从左框看到的远端信号(Far-End)是指对方传过来的信号x(n),而右框的近端信号(Near-End)指着本地麦克风收到的信号y(...

    LiveVideoStack
  • 深度学习在情感分析中的应用

    用户1737318
  • 如何在Chatbot中应用深度学习? | 赠书

    用户1737318
  • 深度学习在文本分类中的应用

    近期阅读了一些深度学习在文本分类中的应用相关论文(论文笔记:http://t.cn/RHea2Rs ),同时也参加了 CCF 大数据与计算智能大赛(BDCI)2...

    AI研习社
  • 深度学习在文本分类中的应用

    近期阅读了一些深度学习在文本分类中的应用相关论文(论文笔记),同时也参加了CCF 大数据与计算智能大赛(BDCI)2017的一个文本分类问题的比赛:让AI当法...

    llhthinker
  • 深度学习在推荐系统中的应用

    2016年DeepMind开发的AlphaGo在围棋对决中战胜了韩国九段选手李世石,一时成为轰动全球的重大新闻,被全球多家媒体大肆报道。AlphaGo之所以取得...

    kbsc13
  • 深度学习在推荐系统中的应用

    2016年DeepMind开发的AlphaGo在围棋对决中战胜了韩国九段选手李世石,一时成为轰动全球的重大新闻,被全球多家媒体大肆报道。AlphaGo之所以取得...

    Datawhale
  • 深度学习在推荐系统中的应用

    2016年DeepMind开发的AlphaGo在围棋对决中战胜了韩国九段选手李世石,一时成为轰动全球的重大新闻,被全球多家媒体大肆报道。AlphaGo之所以取得...

    石晓文
  • 深度学习对点击率的估计(CS IR)

    点击率(CTR)估计在各种个性化的在线服务中扮演着核心功能模块,包括在线广告、推荐系统和网络搜索等。从2015年开始,深度学习的成功开始惠及CTR估计性能,现在...

    用户8128510
  • 简洁易用可扩展,一个基于深度学习的 CTR 模型包

    在计算广告和推荐系统中,CTR 预估一直是一个核心问题。无论在工业界还是学术界都是一个热点研究问题,近年来也有若干相关的算法竞赛。

    用户1737318
  • 入门 | 简述迁移学习在深度学习中的应用

    机器之心
  • CTR学习笔记&代码实现4-深度ctr模型 NFM/AFM

    这一节我们总结FM另外两个远亲NFM,AFM。NFM和AFM都是针对Wide&Deep 中Deep部分的改造。上一章PNN用到了向量内积外积来提取特征交互信息,...

    风雨中的小七
  • CTR预估之深度学习模型DeepFM

    趁今天618剁手节,老shi决定带大家去剁手,哦不,是认识广告CTR预估中非常有名的深度学习模型DeepFM。话不多说,马上进入正题~

    用户7569543
  • 【AI in 美团】深度学习在OCR中的应用

    AI(人工智能)技术已经广泛应用于美团的众多业务,从美团App到大众点评App,从外卖到打车出行,从旅游到婚庆亲子,美团数百名最优秀的算法工程师正致力于将AI技...

    美团技术团队
  • 【Dev Club 分享】深度学习在 OCR 中的应用

    Dev Club 是一个交流移动开发技术,结交朋友,扩展人脉的社群,成员都是经过审核的移动开发工程师。每周都会举行嘉宾分享,话题讨论等活动。 本期,我们邀请了 ...

    腾讯Bugly
  • FPGA在深度学习应用中或将取代GPU

    人工智能的兴起触发了市场对 GPU 的大量需求,但 GPU 在 AI 场景中的应用面临使用寿命短、使用成本高等问题。现场可编程门阵列 (FPGA) 这一可以定制...

    FPGA技术江湖

扫码关注云+社区

领取腾讯云代金券