社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

深度学习下的点击率预测:交互与建模

AINLP • 3 年前 • 583 次点击  

© 作者|林子涵

机构|中国人民大学信息学院

研究方向 | 推荐系统、自然语言处理


本文主要介绍的是点击率预测任务在深度学习模型上的发展过程。文章也同步发布在AI Box知乎专栏(知乎搜索 AI Box专栏),欢迎大家在知乎专栏的文章下方评论留言,交流探讨!



引言

点击率(Click-Through Rate,简称 CTR)预测任务在各类互联网应用中大量存在,相关算法的表现好坏影响经济效益和用户体验,而随着深度学习方法的发展,各类最新的深度神经模型被提出并不断刷新在此任务上的性能。本文简单梳理 CTR 预测任务中深度模型的发展过程,从特征交互、用户行为建模、自动化结构搜索三个方面对各个模型进行简单的总结和介绍,并在最后给出本任务中亟待解决的几个重大挑战。

背景

个性化的在线服务自从互联网诞生之时就出现了雏形,最近几年随着多媒体类互联网应用的兴起,电商平台商品推荐、广告精准投放、个性化搜索引擎等大量场景下会产生点击率预测的任务。由于用户的每一次点击行为都可以看作是其偏好的一种展示,点击率预测就是从存储的用户历史数据中学习用户的偏好,然后用其预测未来行为的过程。在此任务中,数据会被组织为表格的形式,每一行对应一条数据,每一列则为一个用户或商品特征项,所有的训练数据首先会经过特征工程模块,对数值特征进行归一化、离散化、哈希、索引等预处理,之后每一条数据都会变为仅仅包含标准特征的多维向量,其中标签列为 0 或 1(0 代表用户没有点击行为,1 代表有点击行为),一组数据样例展示如下图:

由于标签为 0 或 1,则本任务可以建模为一个二分类任务,常用的损失函数便是交叉熵损失:

其中, 为 sigmoid 函数, 为模型预测函数, 代表模型参数, 分别代表输入的特征向量和标签。

CTR 预测模型的发展可以分为两个方面:自动的特征工程和提升模型能力。对于早期的 CTR 预测模型,受限于计算能力,大家更多的采用人工特征工程+简单机器学习模型的方式,后来出现的神经网络模型将人力从特征工程中解放了出来,但是随着深层模型进入瓶颈,最近的研究又重新返回特征工程,使用可学习的参数化方法来完成特征构造的过程,将复杂的模型和可学习的特征工程相结合成为了目前研究的热点。

由浅到深的 CTR 模型

针对二元分类任务,最简单的模型便是线性的逻辑斯蒂回归,其最大的优势在于高效和易于部署,计算公式如下:

其中, 为模型参数, 为特征维度。这种模型的一个严重缺点就是无法处理不同特征间的组合问题,如中国人更加喜欢中餐馆而非西餐馆。因此一个直接的办法就是手动的将特征之间进行组合形成新的交叉特征。

基于这种想法,POLY2 模型将所有特征两两组合并为每一个交叉项设置一个权重参数,由于总共需要 个参数,这样的模型在数据稀疏时并不能很好的学习参数。另一种方式是使用梯度下降决策树(GBDT)来学习特征的权重,但由于其无法并行,所以训练效果依旧不好且无法大规模部署。

在这种场景下,因子分解机(Factorization Machine,简称FM)为每一个特征创建一个可学习的参数向量 并通过一种灵活的乘积方式计算特征交互:

其中每两个特征项之间通过向量点积 的大小和正负来衡量,在具备高效的计算性能的同时又具备相当的可解释性。沿着 FM 模型的思路,一系列升级版模型针对不同侧重点进行了优化,如:FFMGBFMHOFMFwFM等模型。从这些模型开始,繁重的人工特征工程逐渐被部分替代。

从 2015 年开始,受到 GPU 计算能力提升和神经网络结果出色表现的影响,深度模型逐步开始使用在 CTR 预测任务中。由于神经网络只能处理连续的数值型数据,所以需要将原本离散的特征向量转换为连续实数向量,这一步也成为特征嵌入。完成转换后,向量可以被连接后送入多层感知机(MLP)模型中来进行预测,工业界中也称这样的模型为DNNSNN。这样的模型可以自动提取不同特征之间的高层交互,但参数失去了可解释性。后来,在同时考虑线性特征和深层交互特征的Wide&Deep中,DNN 和 LR 被同时使用来加强不同层级的建模能力,表示如下:值得说明的是,人工构造的一些强特征也可以作为向量输入到深度模型中,这样在模型中的深度部分作用相当于学习浅层模型与标签之间的残差。同样实现类似功能的还有DeepCross模型,它通过一种隐式的交互来自动构建特征交互。

尽管这些早期的深度模型通过 MLP 来达到更好的特征交互,其劣势也相当明显,训练一个好的神经网络是十分困难的,不敏感梯度可能导致网络无法刻画离散的特征交互,同时使用 MLP 来模拟简单的向量点积都是十分困难的。正是由于这些问题的存在,后续出现了很多结构上更加复杂也更加有效的网络结构来试图解决这些问题。它们可以被分为三类:(1)特征交互模型,这类模型关注于如何设计更加合理的方式来完成单个数据项内的不同特征间的交互。(2)用户行为建模模型,这类模型以用户为标准对数据分组,建模用户的兴趣在不同的行为数据项上的变化情况。(3)自动结构搜索方法,这类模型考虑使用神经网络架构搜索(NAS)技术来同时解决上述两个方面。下面对这三类方法简单介绍。

特征交互

在深度神经网络模型中,输入的特征都已经转换为独热向量,所有的向量会首先经过一个嵌入层转换为连续向量,接下来会被输入到一个特征表示学习层中,这一层通过显式的特征交互,获取高阶的特征交互表示,神经网络能够学习到较好的表现往往直接取决于这一层得到的特征交互是否合适,沿着这样的思路,很多模型可以被表达为:其中的 MLP 结构在这类模型中并不是必须的,接下来我们分为三类简单介绍这类重点在特征交互的模型。

点积模型

为了直接的建模特征之间的二阶交互,PNN模型首次引入在嵌入层和神经网络层之间引入了一个点积层,这一层通过将不同特征之间的表示向量两两进行点积来显式的获得特征交互结果,根据使用点积类型的不同,其有两种变种,分别是使用内积的IPNN和使用外积的OPNN,下图展示了使用内积的点积层的结构。实验显示,加入点积层的深度模型能够更好的收敛且效果更出色。在相似的动机下被设计的模型还有NFM,其加入了一个双向交互层来成对的对特征进行交互并同样取得了更好的训练效果。但是这类模型的特征交互完全交由神经网络进行黑盒训练,无法控制交互的层级,Cross Network通过在每一层引入特征的交互来解决这个问题,这样交互的阶数与模型的层数就产生了关联。更进一步,在Cross Network V2 中,特征交互向量被交互矩阵替代,模型的表达能力也进一步提高。采用显式的点积特征交互结构的模型还有 CINKPNNPIN等。

卷积模型

除了使用点积进行特征交互以外,一些模型也尝试使用卷积神经网络(CNN)和图卷积网络(GCN)来进行特征交互。最早的使用卷积的模型是CCPM,其将所有的特征向量拼接为二维矩阵,并使用卷积和池化操作提取其任意阶的特征交互,其模型框架如下图所示:这种直接在特征图上使用卷积的方法受限于感受野的大小,其只能对相邻的特征进行交互,为了解决这个问题,FGCNN引入了一个重聚合层来建模不相邻的特征,同时其将 CNN 生成的高阶特征交互与原始特征共同输入到后续网络中,极大的减轻了训练深度网络的难度。这类方法由于卷积自身的特点无法建模任意的特征交互,受到图图结构的启发,FiGNN 将所有的特征作为图上节点并为所有节点之间连边形成一个全连接图,之后使用 GCN 在图上传播来进行特征交互。

注意力模型

随着注意力结构的兴起,一些模型也尝试在模型中引入注意力来进行特征交互。AFM使用注意力来加强FM模型,使得不同的特征交互对结果的贡献不同。在每一次计算中,一对特征交互的结果会经过一个注意力网络来计算其各自的权重,如下图所示:这些权重会与交互向量相乘来作为对结果不同程度的贡献。受到自然语言处理中自注意力结构的影响,AutoInt模型使用一个带残差链接的多头注意力网络来显式的进行不同阶的特征交互,同时其得到的权重赋予模型一定程度的可解释性。在此基础上,InterHAt模型将注意力结构升级为了 Transformer 模块,使得训练的效率进一步提高。

用户行为建模

用户的行为中包含了用户的偏好模式,最近,对用户的行为进行建模已经成为了 CTR 预测任务中的一个重要主题。通常,用户的行为会被表示为一个多值向量,每个值代表其中的一个行为,行为一般按照时间顺序进行排序,每一个行为中包含商品 ID 和相对应的商品特征,整体的结构如下图所示:这其中最关键的部分便是设计一个有效的建模行为序列的函数来学习到行为特征的连续表示,之后此表示可以与其他的特征连接后输入后续深度网络中得到最终的预测。接下来我们简单介绍其中的三类代表性方法。

注意力方法

DIN模型是第一个将注意力引入用户行为建模的方法,其通过注意力模块根据用户的历史行为与当前商品的相关度为其赋予不同的权值。由于用户的偏好是随着时间动态变化的,从用户的行为中挖掘其时间特征就非常重要,这也是DIEN模型的出发点。其使用包含注意力机制的两层 GRU 网络,第一层负责提取用户的偏好,第二层则刻画偏好在时序上的动态性,同时其引入了辅助损失来监督每一步行为隐状态的建模,让其具备非常强的表达能力。除此之外,自注意力模块同样可以使用在行为建模中。BST模型直接使用一个多头注意力层来提取序列行为之间的相关性。DSIN模型将用户行为按照时间分为不同的节,在每一个节内使用自注意力得到精确的行为表示,在节之间使用双向 LSTM 刻画动态性。上述这些模型都是注意力方法在行为建模上的成功使用。

记忆网络方法

由于在电商平台中,一个用户可能具有海量的历史行为数据,所以处理长行为序列并挖掘长距离行为的联系便十分重要。DINDIEN这类模型在面对长序列时计算的复杂度太高,因此记忆网络成为一个很好的解决这个问题的办法。在HPMN模型中,一个终身记忆单元被用来存储用户的偏好表示,同时随着时间记忆状态被不断的用户行为所更新。HPMN整体结构时多层的 GRU 结构,上层更新频率慢于下层,因此其能够建模长距离的时序信息。基于相同的出发点,在UIC模型中,十分耗时的行为表示模块被分解在了实时预测当中,用户的行为表示会在线下预先计算,当进行推理是直接从记忆单元中取出参与计算。由于用户的偏好往往是多方面的,其使用一种多面用户偏好存储单元来计算用户行为表示。相比于HPMN模型,UIC模型更加偏向于工业化的一种系统解决方法。

行为检索方法

在上述的所有模型中,建模用户偏好所使用的都是最近相邻的行为,再配合复杂的结构来刻画长序列信息,这给系统的负载带来了很大的负担。UBR4CTR模型提出了一种新的结构,其使用搜索引擎技术,从用户的所有历史行为中检索出最相关的行为来参与计算,这样在每一次推理中都只有一小部分行为参与计算。这种方法不仅极大的减少了时间开销而且能够有效的缓解长连续行为序列中的噪声影响。此模型使用搜索引擎技术检索最相关的 k 个历史行为,查询中包含当前目标商品的特征,因此整个检索过程是可学习的,并且可以通过强化学习的方式进行优化。SIM模型是另外一种包含硬检索和软检索的方法,对于硬检索,其使用预定义的 ID 信息作为索引,而在软检索中,其使用嵌入向量进行局部敏感哈希实现检索。上述两种方法都已经在实际线上场景中得到应用。

自动结构搜索

在计算机视觉中,一些自动设计的网络结构达到了跟人工设计的网络相媲美的程度,所以推荐领域的研究者也在探索使用自动搜索的深度神经网络结构来建模特征和行为。下面我们简单介绍其中的三类代表性方法。

嵌入维度搜索

特征的嵌入表示在 CTR 预测中是一个十分关键的因素,其往往是模型参数的主要组成部分,严重决定模型的表现,因此一些工作尝试为不同的特征自适应的搜索其合适的嵌入维度。NISESAPN模型都使用了强化学习的方法来搜索混合嵌入维度。NIS模型首先将全局的维度空间根据经验分为几个快,然后使用强化学习来生成为不同特征选择维度的决策序列,在反馈函数中同时考虑了最终的精度和内存消耗。ESAPN同样使用了一些候选维度,但其使用一个策略网络来为不同特征动态的选择维度,动态网络以当前维度为输入判断是否需要增加维度。

上述两种方法都是从一系列候选维度中选择特征嵌入维度,而DNISPEP模型考虑在一个连续的空间内进行搜索。具体的来说,DNIS模型为每一个特征块构造一个二值索引矩阵来对应相应的维度,然后一个软选择层被用来将搜索空间对应到连续空间,最后使用一个预定义的阈值来控制筛选那些不重要的维度。然而,这个阈值的选择非常困难,为此PEP模型进一步将这个阈值调整为根据数据自适应学习得出。

上述方法都是在搜索空间中选择单一的结构,一些其他的模型考虑使用一种软选择策略,即多个嵌入维度共同作用,代表性的有AutoEmbAutoDim模型,它们都是使用一种可学习的注意力权重来为不同的特征学习不同的维度权重,最终使用多个维度的聚合信息做预测。

特征交互搜索

正如前面提到的,特征交互在深度 CTR 预测模型中非常重要,因此自动的提取一些有用的特征交互就具有非常强的研究价值。AutoFIS模型能够自动识别和选择重要的特征交互输入给因子分解模型,其枚举所有的特征交互组合并使用一系列结构参数进行选择,所有的参数都可以通过梯度进行优化,然而AutoFIS模型限制特征只能通过点积来进行交互,但是在之前的模型中一些发现一些其他的复杂结构能够比点积更有效,所以自动的选择交互方式同样十分重要。基于这样的原因SIFAutoFeature模型被提出,SIF模型能够根据数据集的不同自动的选择合适的交互函数,包括 MLP 网络和五个预定义的函数。AutoFeature模型更进一步,可以为不同的特征组合匹配不同的子网络结构且整个过程通过进化算法进行优化。

然后上述的两个模型都无法处理高阶的特征组合,因为它们都需要枚举所有的特征组合。为了避免这样的暴力枚举,AutoGroup模型尝试为特征分组,每个特征初始都有 0.5 的概率进入任何一个组,组内的所有特征都可以进行交互,这个入选概率可以使用 CTR 任务的监督信号来进行训练。上述的所有模型都是通过选择或生成特征交互来完成自动搜索,而BP-FIS模型是第一个识别特征交互重要性的模型,其使用贝叶斯生成模型为每一个用户识别个性化的特征重要性。

全局结构搜索

最后的一些工作则更加开放,它们尝试对整个模型结构进行搜索以同时完成各个子任务。AutoCTR模型将整个模型分为两个层级,首先所有的功能模块被划分为不同的块,块与块之间连接成一个有向无环图(DAG)外层负责搜索图上的连接关系,而内层则搜索每一个块内部的超参数,整个过程同样可以使用进化算法优化。AMER模型可以同时对序列化的行为特征进行序列结构搜索和为普通特征进行结构搜索。一方面,其可以通过选择不同的层完成结构的搜索,另一方面,其还可以通过逐渐增加特征交互的阶数来筛选合适的特征交互。

总结与未来方向

本文简单介绍了 CTR 预测任务的发展过程。通过显式的进行特征交互,深度模型能够更好的建模高阶的特征信息并得到更好的性能。用户的历史行为同样被注意力、记忆网络等结构出色的建模来进一步丰富特征信息。同时一些最新的工作将神经结构搜索方法使用的模型中来让整个过程更加自动化。

尽管最近几年 CTR 预测任务发展迅速且取得了非常大的突破,依旧有一些挑战还没有被很好解决:

  • 深度学习理论 尽管很多模型在效果上都非常好,但是大多模型都缺少对其原理的解释和挖掘,包括采样复杂度分析、特征交互原理、梯度分析等。
  • 预训练 在文本或者图结构数据上的预训练模型取得了很大的成功,同样的,在离散特征数据上进行预训练同样是一个值得期待的方向,但目前还鲜有工作在这个方向做出成果。
  • 多模态数据的使用 在现在信息系统中,存在大量的多模态数据可以利用,能够充分利用这些数据可能是未来 CTR 预测模型进一步提升的关键所在。
  • 策略化的数据处理 最近在用户历史行为处理上的深度模型给出了一种自动化数据处理的可能,在这方面还存在巨大的潜力值得挖掘,将数据处理过程变得可学习化是未来的一个潜在研究点。

参考文献

[1] Deep Learning for Click-Through Rate Estimation. IJCAI 2021

[2] Factorization Machines. ICDM 2010

[3] DeepFM: A Factorization-Machine based Neural Network for CTR Prediction. IJCAI 2017

[4] Learnable Embedding Sizes for Recommender Systems. CoRR 2021

[5] User Behavior Retrieval for Click-Through Rate Prediction. SIGIR 2020

[6] Bayesian Personalized Feature Interaction Selection for Factorization Machines. SIGIR 2019

[7] Fi-GNN: Modeling Feature Interactions via Graph Neural Networks for CTR Prediction. CIKM 2019

[8] Interpretable Click-Through Rate Prediction through Hierarchical Attention. WSDM 2020

[9] Product-Based Neural Networks for User Response Prediction over Multi-Field Categorical Data. ACM Trans. Inf. Syst. 2019

[10] AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks. CIKM 2019

[11] Predicting clicks: estimating the click-through rate for new ads. WWW 2007

[12] Training and Testing Low-degree Polynomial Data Mappings via Linear SVM. 2010

[13] Gradient boosting factorization machines. RecSys 2014

[14] Field-aware Factorization Machines for CTR Prediction. RecSys 2016

[15] Higher-Order Factorization Machines. NIPS 2016

[16] Field-weighted Factorization Machines for Click-Through Rate Prediction in Display Advertising. WWW 2018

[17] Wide&Deep Learning for Recommender Systems. RecSys 2016

[18] Deep Crossing: Web-Scale Modeling without Manually Crafted Combinatorial Features. KDD 2016

[19] Neural Factorization Machines for Sparse Predictive Analytics. SIGIR 2017

[20] DCN-M: Improved Deep & Cross Network for Feature Cross Learning in Web-scale Learning to Rank Systems. CoRR 2020

[21] xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems. KDD 2018

[22] A Convolutional Click Prediction Model. CIKM 2015

[23] Feature Generation by Convolutional Neural Network for Click-Through Rate Prediction. WWW 2019

[24] Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks. IJCAI 2017

[25] Deep Interest Network for Click-Through Rate Prediction. KDD 2018

[26] Deep Interest Evolution Network for Click-Through Rate Prediction. AAAI 2019

[27] Behavior Sequence Transformer for E-commerce Recommendation in Alibaba. CoRR 2019

[28] Deep Session Interest Network for Click-Through Rate Prediction. IJCAI 2019

[29] Lifelong Sequential Modeling with Personalized Memorization for User Response Prediction. SIGIR 2019

进技术交流群请添加AINLP小助手微信(id: ainlper)
请备注具体方向+所用到的相关技术点

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。


阅读至此了,分享、点赞、在看三选一吧🙏

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/115502
 
583 次点击