首页 > 其他分享 >深度网络CTR建模

深度网络CTR建模

时间:2023-06-14 19:32:12浏览次数:45  
标签:CTR 特征 模型 建模 al 深度 et


1. 概述

CTR预估是现如今的搜索、推荐以及广告中必不可少的一部分,CTR预估的目标是预估用户点击给定item的概率。经过这么多年的发展,CTR预估算法得到了较大的改进,从开始的线性模型LR,发展到带有特征交叉的FM算法,随着深度网络的发展,CTR预估也逐渐发展到如今的基于深度模型的CTR预估,期间出现了较大一批成功在业界得到广泛应用的算法模型,如Wide & Deep,DeepFM,DIN,DIEN等等。

近年来深度学习技术在NLP以及CV领域得到了充分的发展,提出了很多优秀的模型结构,如在NLP领域,从MLP到CNN,RNN,LSTM,GRU,再到现如今被广泛研究的基于Transformer的算法。在CTR预估方面,相比较于NLP和CV领域,其特征相对是大规模的,且是稀疏的,为了能够使用深度网络对CTR数据建模,需要在结构上做相应的调整,使得数据能够适应深度网络模型。

2. 深度CTR建模

2.1. Base模型

参考[1]中给出了深度CTR预估的Base模型结构,如下图所示:

深度网络CTR建模_深度网络

在Base模型结构中,主要包括了输入层,Embedding层,全连接层以及输出层。

2.2. 输入层

上述的Base模型中,输入层包括四个输入模块,分别为:用户画像特征(User Profile Features),用户行为特征(User Behaviors),候选Ad特征(Candidate Ad)和上下文特征(Context Features)。

对于User Profile Features,通常包含了诸如请求用的性别,年龄,购买力,手机品牌等一些静态的特征,还包括请求用户的一些统计信息,如月度点击数,月度访问数,月度使用时间等;对于User Behaviors特征和Candidate Ad特征,通常可以包含商品的一些静态特征,如id,标题分词,标题tagging,类目,品牌,价格等,还可以包含一些统计的特征,如历史统计的CTR,7日PV,7日UV等;对于Context Features,通常是客户端带的信息,在用户授权的前提下可以直接获取,比如请求时间、用户手机品牌、手机型号、操作系统、当前网络状态(3g/4g/wifi)、用户渠道等实时属性特征以及之间的 cross 特征。

不同类型的特征需要采用不同的处理方式。根据特征的形式的不同,可以将特征分为三类,分别为类别特征(Categorical),数值特征(Numeric)和多值特征(Multi-valued)[2]。

Categorical类特征,一般是离散的值,特征中只包含一个值,典型的如性别特征。对于Categorical类特征,处理方法通常是使用one-hot编码,将其转换成离散的表示,如“gender=Female”,通过one-hot编码后,其特征编码为深度网络CTR建模_深度网络_02

Numeric类特征,主要有两种处理的方法,一种方式是对其离散化,将其转化成Categorical类特征的处理;另一种是对其进行归一化,将其归一化到深度网络CTR建模_深度网络_02区间上。如“age=33”,经过离散化和one-hot编码后,其特征编码为深度网络CTR建模_深度学习_04

Multi-valued类特征,与Categorical类特征的处理类似,只是在Categorical类特征经过one-hot编码后只有一维的值为深度网络CTR建模_深度学习_05,而在Multi-valued类特征经过编码后,有多维的值为深度网络CTR建模_深度学习_05

以下图[1]为例,经过转换后的对照关系如下图所示:

深度网络CTR建模_深度学习_07

对于Numeric类特征,也有不经过Embedding的处理方法,如参考[3]中的ranking模型,直接对其对数值上的转换后与Embedding结果concat在一起,如下图所示:

深度网络CTR建模_User_08

上图中的特征time since last watch与特征previous impressions可以看成是Numeric类特征。

2.3. Embedding层

Embedding层的作用是把高维稀疏的特征转化成低维的embedding的稠密表达,以满足深度网络的要求。一般处理这种转换关系是初始化一个lookup table,这个lookup table是一个矩阵(可学习的),矩阵的行数为上述经过编码后的总维数,矩阵的列数是低维稠密向量的维数。

假设输入经过编码后总维数为深度网络CTR建模_User_09维,那么lookup table就有深度网络CTR建模_User_09行,其中第深度网络CTR建模_深度学习_11行是第深度网络CTR建模_深度学习_11维对应的embedding。然而对于Multi-valued类特征,一组特征通常编码后会出现多维值为深度网络CTR建模_深度学习_05的情况,如得到的embedding结果为深度网络CTR建模_自然语言处理_14,通常采用sum或者avg的方法将其转换成一维:

深度网络CTR建模_人工智能_15

2.4. 全连接层和输出层

全连接层和输出层是多层感知器(multiple layer perceptron, MLP)中的基本结构,定义了第深度网络CTR建模_自然语言处理_16层到第深度网络CTR建模_深度网络_17层的非线性映射关系,它的主要作用是使模型具备非线性拟合能力。假设深度网络CTR建模_User_18为第深度网络CTR建模_自然语言处理_16层的输入向量,深度网络CTR建模_人工智能_20为第深度网络CTR建模_深度网络_17层的输出向量,深度网络CTR建模_深度网络_22为连接第深度网络CTR建模_自然语言处理_16层到第深度网络CTR建模_深度网络_17层的权重矩阵,深度网络CTR建模_人工智能_25深度网络CTR建模_深度网络_17层的偏置向量,深度网络CTR建模_人工智能_27为非线性激活函数(sigmoid,tanh,relu等),那么深度网络CTR建模_人工智能_20深度网络CTR建模_User_18的关系为:

深度网络CTR建模_人工智能_30

2.5. 损失函数

在CTR建模过程中,通常使用交叉熵(cross-entropy)作为模型的损失函数,其具体形式如下所示:

深度网络CTR建模_User_31

其中,深度网络CTR建模_深度学习_32是所有训练数据的集合,深度网络CTR建模_自然语言处理_33深度网络CTR建模_人工智能_34表示的是样本真实的标签和CTR预估的结果,且

深度网络CTR建模_人工智能_35

其中,深度网络CTR建模_深度学习_36是Sigmoid函数。

3. 深度CTR模型在问题求解上的发展

参考[4]中给出了近年来深度CTR模型本身的发展,详细介绍了每一个模型在先前工作上的一些改进,下面是我在阅读一些文章后,结合参考[4]给出的深度CTR模型在问题求解思路上的发展,具体如下图所示:

深度网络CTR建模_深度学习_37

上图仅代表目前我了解到的文章,后期看到新的文章或思路会继续更新该图。

如上图所示,在基于Base DNN的基础上,目前我了解到的在求解思路上的模型优化主要有四个方面:

  • 模型融合
  • 特征交叉
  • 序列建模
  • 加入Attention
  • 多目标

模型融合主要是指在DNN的基础上,加入之前已经成功应用在CTR问题求解的线性模型LR,典型的模型结构是Wide&Deep[5],当然在Wide&Deep的基础上提出了很多模型层面的优化,分为在Wide侧,如增加交叉特征的DCN[6],DeepFM[7]等,在Deep侧的NFM[8]。

特征交叉是指在DNN的Embedding层的基础上,再增加一个特征的交叉层,能够进一步挖掘出对CTR预估有效的交叉特征,在众多的实验中,也能看出交叉特征对于CTR结果的重要性,这其中比较典型的如PNN[9]。

序列建模是指对于用户的行为序列建模,上述的方法都没有利用用户行为上的时序关系,基于序列建模,能够更好地挖掘出用户的兴趣,这其中比较典型的如基于GRU的时序建模方法GRU4Rec[10],以及基于Transformer的BST[11]。

加入Attention是指在用户行为与目标之间必定会存在一定的关系,加入Attention旨在挖掘出用户与目标之间的相关兴趣,有助于建模对目标的点击概率,其中比较典型的算法如DIN[1],结合序列建模,建模用户兴趣的演化过程,又衍生出DIEN[12]以及DSIN[13]。

多目标指的是在同一个模型中训练多个目标,CTR建模中通常会与CVR模型一起,模型结构完全一致,只是训练目标不一致。最简单的方法是分别用一个模型训练CTR和CVR,也可以一起训练,采用多目标的框架结构,在多目标模型中,比较典型的是MMoE[14]。

4. 总结

深度学习模型在CTR问题上的探索还在继续,在CTR建模上也有更多更复杂的模型出现,在模型迭代的过程中,挖掘出更多有用的特征也是一条不断探索的道路。

参考文献

[1] Zhou G, Zhu X, Song C, et al. Deep interest network for click-through rate prediction[C]//Proceedings of the 24th ACM SIGKDD international conference on knowledge discovery & data mining. 2018: 1059-1068.

[2] Zhu J, Liu J, Yang S, et al. Open Benchmarking for Click-Through Rate Prediction[C]//Proceedings of the 30th ACM International Conference on Information & Knowledge Management. 2021: 2759-2769.

[3] Covington P, Adams J, Sargin E. Deep neural networks for youtube recommendations[C]//Proceedings of the 10th ACM conference on recommender systems. 2016: 191-198.

[4] 谷歌、阿里、微软等10大深度学习CTR模型最全演化图谱【推荐、广告、搜索领域】

[5] Cheng H T, Koc L, Harmsen J, et al. Wide & deep learning for recommender systems[C]//Proceedings of the 1st workshop on deep learning for recommender systems. 2016: 7-10.

[6] Wang R, Fu B, Fu G, et al. Deep & cross network for ad click predictions[M]//Proceedings of the ADKDD’17. 2017: 1-7.

[7] Guo H, Tang R, Ye Y, et al. DeepFM: a factorization-machine based neural network for CTR prediction[J]. arXiv preprint arXiv:1703.04247, 2017.

[8] He X, Chua T S. Neural factorization machines for sparse predictive analytics[C]//Proceedings of the 40th International ACM SIGIR conference on Research and Development in Information Retrieval. 2017: 355-364.

[9] Qu Y, Cai H, Ren K, et al. Product-based neural networks for user response prediction[C]//2016 IEEE 16th International Conference on Data Mining (ICDM). IEEE, 2016: 1149-1154.

[10] Hidasi B, Karatzoglou A, Baltrunas L, et al. Session-based recommendations with recurrent neural networks[J]. arXiv preprint arXiv:1511.06939, 2015.

[11] Chen Q, Zhao H, Li W, et al. Behavior sequence transformer for e-commerce recommendation in alibaba[C]//Proceedings of the 1st International Workshop on Deep Learning Practice for High-Dimensional Sparse Data. 2019: 1-4.

[12] Zhou G, Mou N, Fan Y, et al. Deep interest evolution network for click-through rate prediction[C]//Proceedings of the AAAI conference on artificial intelligence. 2019, 33(01): 5941-5948.

[13] Feng Y, Lv F, Shen W, et al. Deep session interest network for click-through rate prediction[J]. arXiv preprint arXiv:1905.06482, 2019.

[14] Ma J, Zhao Z, Yi X, et al. Modeling task relationships in multi-task learning with multi-gate mixture-of-experts[C]//Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2018: 1930-1939.


标签:CTR,特征,模型,建模,al,深度,et
From: https://blog.51cto.com/u_16161414/6480226

相关文章

  • POJ2117 Electricity 题解 tarjan点双连通分量 割点
    题目链接:http://poj.org/problem?id=2117题目大意:给定一个由\(n\)个点\(m\)条边构成的无向图,请你求出该图删除一个点之后,连通块最多有多少。解题思路:tarjan,判断\(u\)的子节点有几个\(v\)满足\(low[v]\gedfn[u]\)就是答案,但是同时如果\(u\)不是这个dfs树的根节......
  • 深度学习:基本概念深度解析
    我们前面经过了三个实际项目的历练,在项目实践中我们其实在不自觉中经历了深度学习的重要步骤,以及践行了深度学习过程中的一些重要概念,再此我们把这些概念提炼出来加以阐述和理解,这能为我们后面进行难度更大的项目打下扎实的基础,我们需要搞清楚三个概念,分别是数据预加工,特征工程,以及......
  • 利用DSF深度优先搜索来解容器倒水问题
    在一些面试算法或智力题中,时不时会遇到容器倒水的问题,例如,有三个容器,分别是10升,7升,4升,7升和4升的容器装满了水,10升容器是空的,如果将容器a中的水倒入容器b时,必须使得a中的水全部倒完,或者b被倒满,问有没有一种倒水序列,使得7升容器或4升容器中只有2升的水。这个问题怎么会跟图论的深度......
  • 深度学习应用篇-元学习[13]:元学习概念、学习期、工作原理、模型分类等
    #深度学习应用篇-元学习[13]:元学习概念、学习期、工作原理、模型分类等1.元学习概述1.1元学习概念元学习(Meta-Learning)通常被理解为“学会学习(Learning-to-Learn)”,指的是在多个学习阶段改进学习算法的过程。在基础学习过程中,内部(或下层/基础)学习算法解决由数据集和......
  • 深度学习应用篇-元学习[14]:基于优化的元学习-MAML模型、LEO模型、Reptile模型
    深度学习应用篇-元学习[14]:基于优化的元学习-MAML模型、LEO模型、Reptile模型1.Model-AgnosticMeta-LearningModel-AgnosticMeta-Learning(MAML):与模型无关的元学习,可兼容于任何一种采用梯度下降算法的模型。MAML通过少量的数据寻找一个合适的初始值范围,从而改变梯度下降......
  • 数据仓管概念、关系建模和维度建模、维度表和事实表、数据仓库建模、什么是拉链表?
    目录数据仓管概念数据仓管分为5层数仓为什么要分层数据集市和数据仓库的区别数仓命名规范范式理论第一范式第二范式第三范式关系建模和维度建模星型模型:雪花模型:星座模型:模型选择:维度表和事实表数据仓库建模ODSDWD什么是拉链表?数据仓管概念数据仓管分为5层ODS原始数据层存......
  • Vue-watch-deep 深度监听
    首先明确一个概念,Vue是可以监听到多层级数据改变的,且可以在页面上做出对应展示。但是Vue提供的watch方法,默认是不提供深度监听的(deep默认为false,也就是不开启深度监听)(刚挂载的时候是不执行的,只有挂载完成之后的变化才会执行。如果我们想要初次挂载的时候就l执行,则需......
  • 深度发现:数据智能之路
    本文译自博文《Discovery-In-Depth:ThePathToDataIntelligence》By莎拉·霍斯佩尔霍恩。数据发现是所有数据管理的基本要素:从网络安全到数据隐私再到数据治理。数据发现是数据智能、洞察力和分析的核心——既需要可扩展性也需要自动化才能成功处理机构收集的各种类型的大量数......
  • 三维人脸建模和驱动技术,让数字人快速“活”起来
    摘要:本文剖析MetaStudio中数字人制作管线背后的一些关键技术,让开发者快速了解当前平台提供的核心能力。本文分享自华为云社区《三维人脸建模和驱动技术,让数字人快速“活”起来》,作者:华为云社区精选。虚拟数字人一直是业界的热点研究问题,广泛应用在营销、直播、AR、VR等场景中。而......
  • leetcode 104. 二叉树的最大深度(java实现)
    104.二叉树的最大深度标题解法标题给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。解法publicclassSolution{publicintmaxDepth(TreeNoderoot){//如果节点为空,返回深度为0......