×
支撑199IT开展可参加常识沟通群(4000+用户),最有价值数据同享和评论!
点击即可参加!
封闭

搜狐:新闻引荐体系的CTR预估模型

在引荐体系的排序环节中,咱们常常运用CTR(Click-Through Rate)预估的办法来构建排序模型。在业界的实践运用上,怎么通过大规划数据提取出有用特征对用户行为建模、泛化一直是研讨人员的作业方向,因为在引荐体系的实践运用中,数据一般非常稀少,怎么从大规划的稀少特征中提取出有用的泛化特征是CTR预估模型的一个严重应战。本文咱们首要介绍了CTR预估模型的演化前史,并介绍怎么运用DNN在引荐体系的排序情形进行CTR预估,通过特其他网络结构得到高效的泛化特征进步模型的猜测才能

DNN在引荐体系中的运用

2.1 点击率预估模型

在新闻引荐体系中,想得到用户最或许点击的新闻,给定某用户及新闻的调集,通过提取特征咱们能够得到三种特征:

  1. 用户特征(用户爱好、年纪、性别等)
  2. 上下文特征(机型、网络等)
  3. 待预估新闻特征(类别、标签等)

咱们需求核算出用户对待预估新闻的点击率,通过对预估点击率的降序排序得出用户最或许点击的前K个新闻。

最开端做点击率预估的模型为LR(Logistic Regression),将上述特征代入LR模型能够得到一个简略的点击率预估模型。但是,在引荐情形中,用户的行为是稀少的,即一个用户能看到的新闻是有限的,怎么从用户有限的阅览中推测出用户或许喜爱的新闻,便是引荐作业的要点,在这儿运用LR假设仅仅简略的对上述特征进行建模,是无法得到特别好的作用的,原因是LR模型自身无法对特征进行泛化,它只能对某特征直接核算其相应的权重𝔀,假设想使得LR具有泛化才能,则需求咱们在数据端”手动泛化”,例如:

将用户的爱好与待估新闻的类别进行组合,得到一个interact特征,假设用户喜爱看科比相关的新闻,则待排新闻为体育类其他新闻应该比文娱类其他新闻的值应该更高,因而咱们能结构出特征用户喜爱科比且待排新闻为体育类,而且通过事务了解,咱们能知道这个特征必定比用户喜爱科比且待排新闻为文娱类在LR模型中得到的权重高。

则模型收敛后理应可得到:

通过这种特征工程的办法,咱们使得LR能猜测用户对没看过的新闻的偏好程度,即具有了必定的泛化才能,一同因为LR模型的简略结构,咱们能够由事务了解去判别模型练习是否正确,特征提取是否正确,即进步了咱们的debug才能。

 

2.2 更强的泛化才能

从上面的做法中咱们不难看出这么做的优势与下风,优势是咱们能够快速调试出可用模型,假设练习不符合预期能够直接从练习得到的权重中看出问题,并通过剖析特征权重协助特征工程做更强的泛化特征。下风是因为模型自身表达才能有限,咱们只能通过人工的特征工程满意泛化才能,而这种特征工程往往需求巨大的精力来调研、剖析、试验,每一步都有或许因为不小心或大意导致成果不符合预期,因而咱们期望通过增强模型自身的泛化才能,来削减后期研制人员的做特征工程的杂乱度。

2.1.1 FM(Factorization Machine)

逻辑回归的F(x)的核算办法只包括线性联络,约束了模型的表达才能,能够通过增加非线性联络来增强模型的表达才能,详细地,FM模型公式如下:

FM模型运用了一个矩阵作为隐含特征 ,每个特征𝔁都会对应一个𝓴维的𝓿向,通过核算两两特征的隐含向量𝓿的内积,得到了两个特征间的相关性。假设用户喜爱科比,而新闻标签含有NBA,则在模型收敛后,这两个特征的隐含向量内积应该比较大。

通过梯度下降办法更新𝙒,𝙑收敛得到模型参数。比较于LR,增加了一个隐含矩阵来表明特征的两两穿插联络,假设特征有𝙉个,隐含矩阵维度为𝘒,则矩阵空间杂乱度为𝙊(𝙉𝙆),通过简化核算可知核算的时刻杂乱度为𝙊(𝓴✱𝓶),其间𝓶为特征非0的个数,并没有增加很大的运算量。内积的办法能够使模型具有猜测才能:即使有两个特征在练习数据中从未在一个样本中一同呈现,咱们也能够通过隐含向量知道两个特征的相关性。

FM模型实践可扩展为高阶,但是只要二阶能够简化核算,三阶及以上核算杂乱度过高,实践业界根本不会运用,但FM论述了一个重要思维,通过引进隐含矩阵,以内积的办法表明特征之间的联络,由此提高了模型的泛化才能,鉴于其泛化的思维及模型简练而有用的才能,FM模型在实践运用中大受欢迎,然后续开展的DNN相关的ctr预估模型也有不少学习了FM的思维。

2.1.2 DNN

跟着近年核算才能的提高,DNN从头回到群众视界,因为DNN具有非常强的拟合才能,在各个范畴都取得了优异的功能提高。人们首要通过研讨DNN在NLP、图画范畴的运用,低声开展到引荐范畴,2016年Google提出的Wide & Deep Learning for Recommender Systems⁽¹⁾供给了一种思路,将多层全衔接网络界说为Deep Model, 额定增加一个形似LR的 Wide Model,运用两者各自的优势得到一个交融模型。

因为DNN参数数量巨大,而引荐情形下大部分特征为稀少特征,假设将原始特征拼接(concatenate)起来作为输入层直接输入DNN,会呈现练习参数规划过大而无法练习的问题,因而需求一个嵌入层(Embedding)将大规划稀少特征首要映射到一个低维密布(dense)的空间中,再与其他特征拼接到一块作为输入层输入DNN。

除了DNN,wide&deep模型额定增加了一个wide模型,实践上便是将上文中LR的特征组合进程作为一个独立模块参加模型中,例如上图所示,将用户安装过的App与当时曝光展示的App做一个组合特征作为wide model的其间一个特征,这儿又能够结合事务常识去做特征组合,取得一些强泛化才能的特征。

最终将DNN的隐含层最终一层与wide特征拼接到一块,通过Logistic得到一个[0, 1]值,通过梯度更新收敛得到ctr预估模型。wide&deep模型通过DNN取得了特征之间高阶的非线性联络,进步了模型的泛化才能,但DNN这种结构去学习简略的低阶穿插实践上是比较低效的,通过在DNN外参加一个wide层,人工引进事务相关的组合特征,能够使模型快速学习到有用的低阶穿插特征,这些特征因为有人们对事务的知道,对事务情形往往具有较强的拟合才能,与DNN兼并后作用会比单一DNN更好。

到这儿咱们期望能进一步扩展,能否让DNN模型像FM相同不需求通过人工组合特征,让模型自己学到低阶的穿插特征呢?这便是接下来咱们要讲到的Deep & Cross Network所做到的工作。

03
Deep & Cross Network

Deep & Cross Network(DCN)⁽²⁾是由Google于2017年提出的引荐模型,比较于一般的多层全衔接网络,多出一个Cross Netork,乍一听很唬人,实践是通过矩阵来进行特征穿插,运用残差思维结构深层网络的一个模型模块,通过模型而不是人工组合得到高阶组合特征,下面咱们详细介绍DCN模型。

3.1 模型结构

DCN模型结构如上图所示,其根本结构和wide&deep网络相似,输入层对稀少类别型特征选用Embedding的办法映射到一个低维密布向量,与数值型特征直接拼接起来作为网络输入特征。因为这是一个CTR预估模型,样本是0/1的二分类监督问题,所以输出层选用sigmoid将输出限定在[0,1]之间表明模型预估点击率。

网络中心分为两块:Cross network与Deep network。其间deep网络便是多层的全衔接网络,而cross网络则是cross layer通过一系列核算输出成果。

3.2 Cross Network

Cross Network的详细核算公式为:

用图来表明这个公式:

公式中,作为列向量,表明cross层的第层,第层输出,则函数能够看作拟合第层与第层的残差。

这种特其他结构能够使得穿插特征的阶(degree)跟着cross层增加,关于第层,穿插特征相关于的阶为。整个cross网络的参数量为:2,这儿𝓭为输入列向量𝔁₀的维度,𝐿为cross network的网络层数,每一层包括一组𝔀,𝙗,因而乘2。DNN因为全衔接,隐含层的第一层的权重𝔀就需求与输入层做笛卡尔积,而相关于全衔接网络,cross网络引进的参数量非常小,与输入层特征维度呈线性联络。

3.2.1 深化了解Cross Network

咱们能够将cross网络了解为每一个cross层,都将与了一次pairwise交互,然后再通过高效的办法转回输入层的特征维度。剖析一下上图的Feature Crossing的进程,令,其间,这个公式实践能够这么看:

咱们将原式的前两项相乘,这儿面得到的每一个值都能够看作当时cross层特征与输入特征做了一次bit-wise的乘积,而且咱们能够看作得到了一个𝓭²的行向量,再乘以一个块对角矩阵,其间列向量,将成果投影回了维,这个进程做了一次特征穿插,特征维度通过压缩回输入特征的巨细𝓭²→𝓭,大大削减了空间杂乱度。

3.2.2 DCN与FM

FM模型内每个特征有一个隐含向量,两个特征的穿插联络是通过向量内积得到的;而在DCN里,每个特征与标量相关联,特征的联络是调集和的乘积,两者都具有特征穿插泛化的才能。

这种参数同享的办法不光能让模型泛化得出一些练习样本未呈现过的特征交互,而且能使得模型鲁棒性更强,噪音数据的影响更小。在咱们引荐的情形下特征非常稀少,假设两个特征简直从未在练习样本里一同呈现过,则直接组合特征并不会带来收益,但通过参数同享的办法,咱们仍能从参数乘积得到特征组合的作用。

别的,一般咱们说的FM约束了模型只能得到二阶组合,超越二阶核算量会以次方增加,而DCN通过奇妙的规划,将特征穿插从单层变成了多层,取得多阶交互的一同核算量仍为线性增加。

3.2.3 现已最好了吗?

从上文描绘的Feature Crossing核算办法,咱们看到了一种既能高效核算特征间的高阶穿插,又没有带来巨大核算量的特征穿插办法,那这个办法现已完美了吗,是否还有能够改善完善的当地?首要,在引荐情形中,咱们会呈现许多稀少特征,例如用户id、物品id等等,这类稀少的id型特征在DNN模型一般都需求通过embedding转为低维密布特征,然后咱们把各个特征拼接到一同得到了输入特征𝔁₀,即咱们的特征𝔁₀内会有好几个都归于用户的embedding特征,他们一同表明了一个用户的特点。

回到cross network的核算,Feature Crossing能够表明为,即𝔁₀与两个向量内每个元素都做乘积(bit-wise),但是咱们知道内的embedding特征是一同表明一个域(field)的,则他们内部的乘积组兼并没有太大作用,咱们更需求的是不同域的embedding进行穿插组合,在这一方面,FM是做的更好的,咱们能够将FM的隐含向量看作特征的embedding,两个隐含向量的内积实践便是两个域的embedding向量乘积(vector-wise),并不会让embedding内的元素进行穿插组合。

04
总结

本文首要介绍了引荐体系的关键环节:排序。这儿咱们叙述了一种业界比较通用的办法:CTR预估模型。点击率预估模型研讨的问题是已知咱们当时要引荐的用户、当时所在上下文、待核算的物品,通过模型核算出用户点击该物品的概率,将待排序物品悉数核算出预估点击率,再由高至低排序输出。

CTR预估模型通过多年开展,现已由开端的LR,晋级至FM,现在又开展到了DNN模型,总的来说,这一路开展都是根据一个思路,咱们期望削减人工组合特征,增加模型的通用型,从特征泛化走向模型泛化,研讨怎么让模型的泛化才能更强。

最开端运用LR,模型自身不具有泛化才能,咱们结合事务的了解,通过很多杂乱的特征工程使输入LR的特征自身具有了泛化才能。随后呈现FM,比较于LR每个特征多出了一个𝓴维隐含向量,通过对隐含向量彼此求内积,咱们使特征在模型内完结了两两组合,由此咱们的模型具有了开端的泛化才能,通过练习样本的练习收敛后模型也能推测出从未一同呈现的特征间的联络。然后咱们开端运用DNN来处理点击率预估问题,同样地,为了使模型能快速练习出组合穿插特征的联络,在多层全衔接网络外额定增加了一个穿插网络,cross network以奇妙的规划将特征组合延伸到了多阶,而且核算杂乱度呈线性增加,在实践中,咱们只需求在现已完结的DNN模型直接增加cross network即可得到更好的作用,输入层能够不做任何的特征工程,模型能够在cross network内部核算出特征间的组合联络。

但是,cross network尽管能在线性杂乱度下取得高阶特征穿插,其模型规划仍有值得改善的当地,因为选用直接矩阵乘积,即元素等级(bit-wise)的乘积,在核算进程模型是无法区别向量元素是否归于同一个特征embedding的,这样会使核算呈现一些无效的特征穿插,怎么优化模型结构使模型能在高阶穿插时依照field在不同域间核算组合特征(vector-wise)也是当时的前沿研讨,上一年微软提出的xDeepFM⁽³⁾即完结了这个方针,感爱好的同学能够参阅这篇论文,领会其间的思路。

参阅文献:

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

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

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

来历:搜狐

感谢支撑199IT
咱们努力为我国互联网研讨和咨询及IT职业数据专业人员和决策者供给一个数据同享渠道。

要持续拜访咱们的网站,只需封闭您的广告拦截器并改写页面。
翻滚到顶部