Skip to main content
头部广告图片
  主页 > 欧洲杯

新闻推荐系统的CTR预估模型

2024-04-06 浏览:

关注【搜狐科技产品】第一时间获取技术资讯

01简介

在推荐系统的排名过程中,我们经常使用CTR(Click-Through Rate)估计来构建排名模型。 在行业实际应用中,如何从大规模数据中提取有效特征来对用户行为进行建模和泛化一直是研究人员的工作方向。 由于在推荐系统的实际应用中,数据通常非常稀疏,如何从大规模数据中提取有效的特征,从稀疏的特征中提取有效的泛化特征是CTR预测模型的一大挑战。 在本文中,我们首先介绍了CTR预测模型的演变历史,并介绍了如何在推荐系统的排序场景中使用DNN来预测CTR,并通过特殊的网络结构获得高效的泛化特征来提高预测能力该模型。

02DNN在推荐系统中的应用2.1点击率预测模型

在新闻推荐系统中,如果我们想得到用户最有可能点击的新闻,给定一组用户和新闻,我们可以通过提取特征得到三个特征:

用户特征(用户兴趣、年龄、性别等) 上下文特征(机器模型、网络等) 待估计的新闻特征(类别、标签等)

我们需要计算用户对预估新闻的点击率,并对预估点击率进行降序排序,得到用户最有可能点击的前K条新闻。

第一个点击率预测模型是LR(Logistic Regression)。 将上述特征代入LR模型即可得到简单的点击率预测模型。 然而,在推荐场景中,用户的行为是稀疏的,即用户能看到的新闻是有限的。 如何从用户有限的浏览中推断出用户可能喜欢的新闻是推荐工作的重点。 这里我们使用LR如果简单的对上面的特征进行建模的话,并不能达到特别好的效果。 原因是LR模型本身无法泛化特征。 它只能直接计算某个特征对应的权重。 如果想让 LR 具备泛化能力,我们需要在数据端进行“手动泛化”,例如:

将用户的兴趣与待评价的新闻类别相结合,得到交互特征。 如果用户喜欢看科比相关的新闻,那么体育类新闻的排名应该比娱乐类新闻的价值高。 因此,我们可以构造用户喜欢科比并且要预约的新闻属于体育类的特征,通过业务理解可以知道,这个特征在LR模型中的权重肯定比在LR模型中的权重要高。用户喜欢科比并且要预定的新闻的LR模型属于娱乐类别。

那么模型收敛后,我们应该得到:

通过这种特征工程方法,我们使LR能够预测用户对未见过的新闻的偏好,这意味着它具有一定的泛化能力。 同时,由于LR模型结构简单,我们可以根据业务理解来判断模型训练。 是否正确,特征提取是否正确,提高了我们的调试能力。

2.2 更强的泛化能力

从上面的做法,不难看出这样做的优点和缺点。 优点是我们可以快速调试可用的模型。 如果训练没有达到预期,我们可以直接根据训练得到的权重来识别问题,并通过分析特征权重来帮助特征。 工程具有更强的泛化特征。 缺点是由于模型本身的表达能力有限,我们只能通过手工特征工程来满足泛化能力,而这种特征工程往往需要投入巨大的精力去研究、分析、实验,并且每一步可能是由于粗心或草率造成的。 结果没有达到预期,所以我们希望通过增强模型本身的泛化能力来降低后期开发者特征工程的复杂度。

2.1.1 FM(因式分解机)

逻辑回归的F(x)计算方法仅包含线性关系,限制了模型的表达能力。 通过添加非线性关系可以增强模型的表达能力。 具体而言,FM模型公式如下:

FM模型使用矩阵

作为隐式特征,每个特征对应一个维度方向。 通过计算两个特征的隐向量的内积,得到两个特征之间的相关性。 如果用户喜欢Kobe,新闻标签包含NBA,那么模型收敛后,这两个特征的隐向量的内积应该比较大。

通过梯度下降法更新并收敛得到模型参数。 与LR相比,增加了一个隐式矩阵来表示特征的两两交叉关系。 如果有一个特征,隐式矩阵的维数为 ,则矩阵空间复杂度为(✱)。 通过简化计算,可以知道计算的时间复杂度为(✱),其中 是非零特征的数量,这并没有增加计算量。 内积方法可以使模型具有预测能力:即使训练数据中同一个样本中存在两个永远不会同时出现的特征,我们仍然可以通过隐向量知道这两个特征之间的相关性。

FM模型其实可以扩展到高阶,但只有二阶才能简化计算。 三阶及以上的计算复杂度太高,实际工业中基本不使用。 然而,FM阐述了一个重要的想法。 通过引入隐式矩阵,利用内积来表达特征之间的关系,从而提高模型的泛化能力。 鉴于其泛化思想和模型简单有效的能力,FM模型在实际使用中非常受欢迎,后续发展的DNN相关的ctr预测模型也借鉴了FM的许多思想。

2.1.2 深度神经网络

随着近年来计算能力的提升,DNN又重新回到了公众的视野。 由于DNN具有非常强的拟合能力,因此在各个领域都取得了出色的性能提升。 人们首先研究DNN在NLP和图像领域的应用,然后发展到推荐领域。 2016年,Google提出了Wide & Deep Learning for Recommender Systems⁽1⁾,提供了将多层全连接网络定义为深度模型的思路。 ,额外增加一个类似于LR的Wide Model,利用两者各自的优点,得到融合模型。

算法模型评估_算法模型训练流程_ctr预估模型算法

由于DNN参数数量较多,且推荐场景中大部分特征都是稀疏特征,如果将原始特征进行级联(concatenate)直接输入到DNN中作为输入层,就会存在规模化的问题。训练参数太大,无法训练,所以需要embedding。 该层(Embedding)首先将大规模稀疏特征映射到低维稠密空间,然后将其与其他特征拼接到DNN中作为输入层。

除了DNN之外,wide&deep模型还额外增加了一个wide模型。 事实上,上面提到的LR的特征组合过程是作为一个独立的模块添加到模型中的。 例如上图所示,将用户安装的App与当前暴露的App进行对比。 组合特征是宽模型的特征之一。 这里可以结合业务知识创建特征组合,得到一些泛化能力较强的特征。

最后将DNN隐藏层的最后一层和wide特征拼接在一起,通过Logistic得到一个[0, 1]值,通过梯度更新收敛得到ctr预测模型。 Wide&Deep模型通过DNN获得特征之间的高阶非线性关系,提高了模型的泛化能力。 然而,DNN 结构学习简单的低阶交集实际上效率相对较低。 通过在wide层中人为地引入业务相关的组合特征,可以使模型快速学习到有效的低阶交叉特征。 因为这些特性有人们对业务的理解,所以往往对业务场景有很强的适配能力。 与DNN合并后效果会比单一DNN更好。

在这一点上,我们希望进一步扩大。 DNN模型能否像FM一样,不用手动组合特征,让模型自己学习低阶交叉特征? 这就是我们接下来要讨论的 Deep & Cross Network 所做的事情。

03深度跨网络

Deep & Cross Network(DCN)⁽²⁾是Google在2017年提出的推荐模型,与普通的多层全连接网络相比,它多了一个Cross Netork。 乍一听起来有些虚张声势,但实际上是通过矩阵来完成的。 进行特征交叉,利用残差思想构建深度网络的模型模块,通过模型而不是手动组合获得高阶组合特征。 下面我们详细介绍一下DCN模型。

3.1 模型结构

算法模型训练流程_算法模型评估_ctr预估模型算法

DCN模型的结构如上图所示。 其基本结构与wide&deep网络类似。 输入层使用Embedding将稀疏分类特征映射到低维稠密向量,直接与数值特征拼接作为网络输入特征。 由于这是一个CTR预测模型云开·全站appkaiyun官网,,并且样本是0/1二元分类监督问题,因此输出层使用sigmoid将输出限制为[0,1]来表示模型的估计点击率。

网络分为两部分:Cross网络和Deep网络。 深度网络是多层全连接网络,而交叉网络是跨层经过一系列计算的输出结果。

3.2 跨网络

Cross Network的具体计算公式为:

用图形表示这个公式:

ctr预估模型算法_算法模型训练流程_算法模型评估

式中,ₗ和ₗ₊₁作为列向量,分别代表交叉层第一层和+1层的输出,则函数

可以看作是拟合层+1和层1的残差。

这种特殊的结构可以使交叉特征的程度随着交叉层数的增加而增加。 对于第一层,交叉特征相对于₀的度为+1。 整个交叉网络的参数量为:✕✕2,其中 为输入列向量₀的维数,为交叉网络的网络层数。 每层包含一组,,所以乘以2。由于DNN是全连接的,所以隐藏层第一层的权重需要与输入层进行笛卡尔积。 与全连接网络相比2024欧洲杯,,交叉网络引入的参数量非常少,并且与输入层的特征维度呈线性关系。

3.2.1 深入理解Cross Network

我们可以将交叉网络理解为每个交叉层与ₗ成对交互一次,然后高效地转换回输入层的特征维度。分析上图中的Feature Crossing过程,令

,在

,这个公式实际上可以这样看:

ctr预估模型算法_算法模型评估_算法模型训练流程

我们将原始公式的前两项相乘。 这里得到的每个值可以看作是当前跨层特征与输入特征的按位积,我们可以看作得到了一个²行向量。 ,乘以块对角矩阵,其中列向量

,结果被投影回 1ˣᵈ 维度。 这个过程进行了特征交叉,特征维度被压缩回输入特征的大小²→,大大降低了空间复杂度。

3.2.2 DCN 和 FM

FM模型中的每个特征ᵢ都有一个隐式向量ᵢ,通过向量内积ᵢ•ⱼ得到两个特征之间的交叉关系; 而在 DCN 中,每个特征 ᵢ 都与一个标量相关联

相关性,特征ⱼ和ⱼ之间的关系是一个集合

的乘积,都具有特征交叉泛化的能力。

这种参数共享的方法不仅可以让模型泛化和导出一些训练样本中没有出现过的特征交互,而且可以使模型更加鲁棒,更少受到噪声数据的影响。 在我们推荐的场景中,特征非常稀疏。 如果两个特征 ⱼ , ⱼ 几乎不会一起出现在训练样本中,直接组合特征 ᵢ ⱼ 不会带来好处,但通过参数共享,我们仍然可以从参数乘积中获得特征组合的效果。

另外,我们通常所说的FM限制了模型只能获得二阶组合。 超出二阶计算,计算量会随着ᵈ的幂而增加。 DCN通过巧妙的设计,将特征交集从单层变为多层,获得多个层。 即使是一阶交互,计算量仍然线性增加。

3.2.3 已经是最好的了吗?

从上面描述的特征交叉计算方法中,我们看到一种特征交叉方法,可以高效地计算特征之间的高阶交叉,而不需要引入大量的计算量。 那么这个方法就完美了吗? ​​还有其他办法吗? 有什么改进吗? 首先,在推荐场景中,我们会有很多稀疏特征,比如用户ID、物品ID等,这些稀疏ID型特征通常需要通过DNN模型中的embedding转化为低维稠密特征,并且然后我们将每个特征拼接在一起后,就得到了输入特征₀ctr预估模型算法,也就是说,我们的特征₀会有几个都属于用户的embedding特征,它们共同代表了一个用户的属性。

ctr预估模型算法_算法模型训练流程_算法模型评估

回到交叉网络的计算,Feature Crossing可以表示为

,即 ₀ 和

两个向量中的每个元素按位相乘。 但是,我们知道embedding特征共同代表一个领域,因此它们内部乘积的组合并没有太大的作用。 我们更需要的是不同领域的嵌入是交叉组合的。 在这方面,FM做得更好。 我们可以将FM的隐向量视为特征的嵌入。 两个隐式向量的内积实际上是两个域的嵌入。 向量积(向量方式)不允许嵌入中的元素交叉组合。

04 总结

本文主要介绍推荐系统的关键环节:排序。 这里我们介绍一个业界比较通用的方法:CTR预测模型。 点击率估算模型的研究问题是知道我们当前推荐的用户、当前的上下文以及要计算的项目。 通过该模型,我们可以计算出用户点击该item的概率,并计算出所有待排序item的预估点击率。 ,然后将输出从高到低排序。

经过多年的发展,CTR预测模型已经从最初的LR升级到FM,再到现在的DNN模型。 总体来说,这次的开发也是基于同样的思路。 我们希望减少人为的特征组合,增加模型的通用性。 类型,从特征泛化到模型泛化,研究如何让模型的泛化能力更强。

当我们第一次使用LR时,模型本身不具备泛化能力。 我们结合业务理解,使用了大量复杂的特征工程,使得输入到LR的特征具有泛化能力。 然后FM出现了。 与LR相比,每个特征多了一维隐向量。 通过对隐向量取内积,我们可以实现模型中特征的两两组合,因此我们的模型具备了初步的泛化能力ctr预估模型算法,经过训练样本的训练和收敛,模型还可以推断出特征之间的关系从未一起出现过。 然后我们开始使用DNN来解决点击率估计问题。 同样,为了使模型能够快速训练组合交叉特征之间的关系,在多层全连接网络的基础上额外添加了一个交叉网络。 交叉网络被巧妙地设计为将特征组合扩展到多个层次,计算复杂度线性增加。 在实际应用中,我们只需要将交叉网络直接添加到已完成的DNN模型中即可得到更好的结果。 输入层不需要做任何特征工程。 该模型可以计算跨网络内特征之间的组合关系。

然而,虽然交叉网络可以在线性复杂度下获得高阶特征交叉,但其模型设计仍然值得改进。 由于使用直接矩阵乘积,即元素级(按位)乘积,计算过程模型无法区分向量元素是否属于同一个特征嵌入,会导致计算中出现一些无效的特征交集。 如何优化模型结构,使得模型在高阶交集时能够根据领域计算不同领域之间的组合特征(向量方式)也是当前的问题。 微软去年提出的前沿研究xDeepFM⁽³⁾实现了这一目标。 有兴趣的同学可以参考这篇论文来了解其中的思路。

参考:

[1]arxiv.org/pdf/1606.07792.pdf

[2]arxiv.org/pdf/1708.05123.pdf

[3]arxiv.org/pdf/1803.05170.pdf

搜狐智能平台团队其他精彩文章

搜狐新闻推荐算法原理

智能新闻整形师——美化图片ctr预估模型算法,给新闻一个脸

我们从基础讲推荐系统算法(一)

从基础开始讲推荐系统算法(二)

Embedding模型在推荐系统中的应用

加入搜狐技术作家群,千元稿费等你来!

更多信息请关注微信公众号【搜狐科技产品】,并联系微信后台搜狐科技产品助理。

2024欧洲杯 酷24体育 kaiyun下载app下载安装手机版 云开·全站appkaiyun官网