zoukankan      html  css  js  c++  java
  • 【华为云技术分享】原来CTR预估模型的发展有这样的规律

    【摘要】 CTR预估模型的发展有什么样的规律呢?本文分别从前深度学习时代和深度学习时代CTR预估模型中分析总结出了一般性的发展规律,通过这个规律更有助于帮我们理解和加深CTR预估模型。

    前深度学习时代

    在深度学习还没有引入到点击率(Click-Through Rate,CTR)预估之前,CTR预估的模型大概经历了三个阶段:逻辑回归(Logistic Regression,LR),因子分解机(Factorization Machine,FM)、梯度提升树(Gradient Boosting Decision Tree,GBDT)。

    经典的逻辑回归算法由于其强的可解释性与易工程化而在工业界被大量应用,但是由于LR在高阶特征构造上的缺陷,其算法性能受到了局限。因此又有人提出了结合一阶和二阶特征的因子分解机模型,该模型相比于LR,增加了交叉特征的构造,性能得到了提升。但是由于FM也只能够做二阶的特征交叉,因此后来又有了梯度提升树的提出。梯度提升树可以得到更高阶的特征组合,树越深,越高阶。因此通过仔细分析发现,基本上模型的发展有着这么一条规律:往更好地构造高阶特征的发展。具体地通过举例分析,首先我们仔细理解一下特征,根据我个人的理解,给特征如下解释:

    特征是刻画事物的数字化抽象,那么何谓高阶特征呢?具体来讲就是更加抽象的特征。例如描述一个人说个子高,身材瘦,这是一阶特征,也是最直接的描述,那么通过这个映射:

    1578015927578469.png

    可以数字化为二维的特征(1,1),接着往高一层抽象我们描述这个人可以说成高挑,通过这个映射:

    1578015952368573.png

    我们可以数字化为一维的特征(0),而这个空间维度特征就是更加抽象的数字化描述。进一步的,我们仔细可以欣赏一下2019感动中国十大人物之一的钟杨颁奖词:

    超越海拔六千米,抵达植物生长的最高极限,跋涉十六年,把论文写满高原。倒下的时候双肩包里藏着你的初心、誓言和未了的心愿。你热爱的藏波罗花,不屑于雕梁画栋,只绽放在高山砾石之间。

    可以看出这段话特征鲜明,即使不知道人名,也可以看出能得到如此高赞的人寥寥无几。这段话的特点就是用了很简短的语言但是表达出了一个特征鲜明的大人物,这也就是高阶特征的特点,更加抽象,更加特征鲜明。所以高阶特征的表达能力更高,更能用来区分类别。

    深度学习时代

    当把深度学习的方法引入到CTR预估中,可谓是百花齐放,这里举一些经典的网络,像16年发表的论文FNN [1],为了避免完全从随机状态训练Embedding,通过FM的隐层向量作为user和item的Embedding,然后再通过隐含层进行全连接也就是特征交叉操作来实现高阶特征的提取,如图 1:

    1578016071217390.png

    ▲ 图1.  FNN模型结构 [1]

    还有在embedding层和全连接层之间加入了Product Layer的PNN [2],其product操作在不同特征embedding之间进行特征组合,随后再加上全连接完成高阶特征的提取。其中product操作又分为inner product,outer product等多种product操作,用来捕捉不同的交叉信息,增强模型的高阶特征提取能力。如图 2:

    1578016102407898.png

    ▲ 图2.  PNN模型结构 [2]

    而像Wide&Deep,DeepFM,DCN,NFM这些模型同样也是在高阶特征的提取上下了不少功夫,不同的是这些模型延续Wide&Deep采用两路方式的框架来提取高阶特征,如图 3 为Wide&Deep [3] 模型结构,左边是wide部分直接把原始的特征不经过模型处理连接到输出,而右边的deep部分对输入进行多层感知机提取高阶特征之后连接到输出。

    1578016128972876.png

    ▲ 图3.  Wide&Deep模型结构 [3]

    那么接下来看DeepFM是怎样在这个基础上沿着构建更好的高阶特征提取结构的思路上发展的,如图 4 为DeepFM [4] 模型结构,可以看出,该模型基本上是把wide部分替换成了FM结构,相当于左边是FM来提取二阶特征,右边是多层感知机提取高阶特征。

    1578016150138107.png

    ▲ 图4.  DeepFM模型结构 [4]

    同样的看DCN [5],如图 5 所示

    1578016171199506.png

    ▲ 图5.  DCN模型结构 [5]

    使用提出的可以更好进行高阶特征提取的Cross操作来替代原来的Wide部分,具体操作如下:

    1578016193684682.png

    把原始输入x0和cross layer输入xl加权重矩阵相乘,再加上cross layer输入xl和偏置bl。还有通过权重来更好地调整和学习交叉特征的AFM [6],DIN [7],DIEN [8],AutoInt [9],FiBiNET [10]等,基本上这些网络都希望能更好地自动学习到高阶特征。由此可见,在深度学习时代,CTR模型的迭代发展也是在找一个更好的可以得到强表达能力的高阶特征的构造方面发展。

     

    后深度学习时代

    这个时代目前来看还没有出现,但是可以大胆的预测一下,也许是一个比深度学习可解释性更强的理论诞生的时代,通过理论指导方法,可以设计出更加稳定性能更好模型,而这个模型也许同样遵从这个规律,是往更好的高阶特征构造发展的模型。

     

    参考文献

    [1][FNN] Deep Learning over Multi-field Categorical Data (UCL 2016)

    [2][PNN] Product-based Neural Networks for User Response Prediction (SJTU 2016)

    [3][Wide&Deep] Wide & Deep Learning for Recommender Systems (Google 2016)

    [4][DeepFM] A Factorization-Machine based Neural Network for CTR Prediction (HIT-Huawei 2017)

    [5][DCN] Deep & Cross Network for Ad Click Predictions (Stanford 2017)

    [6][AFM] Attentional Factorization Machines - Learning the Weight of Feature Interactions via Attention Networks (ZJU 2017)

    [7][DIN] Deep Interest Network for Click-Through Rate Prediction (Alibaba 2018)

    [8][DIEN] Deep Interest Evolution Network for Click-Through Rate Prediction (Alibaba 2019)

    [9][AutoInt] AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks (2018 arxiv)

    [10][FiBiNET] Combining Feature Importance and Bilinear feature Interaction for Click-Through Rate Prediction (RecSys 2019)

    作者:wanderist

  • 相关阅读:
    【第一周】进度条
    【第二周】Java实现英语文章词频统计(改进1)
    【第二周】关于java.util包下的Random类
    【第二周】结对编程(宫丽君和林莉):四则运算
    【第二周】scrum站立会议
    【第二周】燃尽图
    【第二周】Java实现英语文章词频统计
    【第一周】读《构建之法》有感
    python:带参数的装饰器,函数的有用信息
    python:数据类型dict
  • 原文地址:https://www.cnblogs.com/2020-zhy-jzoj/p/13164962.html
Copyright © 2011-2022 走看看