先验模型也能用后验特征?

前言

在我们平常开发模型的时候,实际上线下和线上的模型能够使用的特征是有gap的,比如我们开发一个CVR模型(预测用户点击商品后购买的概率),线下模型可以根据日志使用用户点击后的一些后验特征,比如用户在该商品页面停留的时间,查看评论,收藏等等。

但是线上模型不可能实时获得这些特征,因为我们的预测任务是要发生在这些后验动作之前的,而这些特征其实对CVR模型预测又是至关重要的,一个直观的感受就是用户停留在页面的时间越长,大概率就会购买。

那么怎么能够很好的利用上这些特征呢?已有的一些工作采取了单独增加一个模型来预测这些特征进而后续CVR模型利用,这无疑带来了一些额外成本且新增的这些任务难度甚至超越了主任务,而且受制于其准确率,很有可能影响了主任务,导致结果适得其反。

那么今天我们来看一篇阿里最新发表的Paper,一起来学习一下其思想以及能够给我们带来的启发。

欢迎文末关注笔者微信公众号等等,会有更多好内容分享给大家~

背景

背景就不多说了,大概上就是前言介绍的线下和线上的模型能够使用的特征是有gap的,而这些特征又是极其重要的,Paper中将这类特征统称为优势特征Privileged Features,因为Paper中介绍的场景是淘宝的电商即推荐系统,所以主要聚集了推荐系统中最常出现的两大任务CTR(预测曝光给用户商品后点击的概率)和CVR(预测用户点击商品后购买的概率)。

目前推荐系统大体上可以分为三个阶段:召回,粗排以及精排对应到Paper中的就是Candidate Generation,Coarse-Grained Ranking和Fine-Granied Ranking,那CTR就发生在粗排,CVR就是发生在精排。大概推荐框架如下,总目标就是最大化 Gross Merchandise Volume(GMV)

GMV = CTR*CVR*Price

所以我们就是要优化CTR和CVR,这两大任务中涉及到的Privileged Features主要就是一些后验特征。

方法

文章主要使用的方法就是蒸馏!!!

还不熟悉蒸馏模型的小伙伴可以先简单补一下这方面的知识,很简单。

(1)PFD

具体来说就是Teacher模型(线下模型)使用优势特征训练,其自然是更加准确,而Student模型(线上模型)不使用优势特征,但从教师模型中蒸馏优势特征的知识。Paper将这种方法命名为PFD(privileged fretures distillation)。

传统的模型蒸馏MD(model distillation),Teacher模型(线下模型)通常是一个大模型,参数和网络都更加复杂,在数据量足够的前提下,准确率自然是很好,但是大模型带来的弊端就是线上使用时存在高时延,所以就设计一个对应的轻量级别的student模型,然后让本身就学的很好的Teacher模型指导其学习,如下图:

所以MD对应解决的是模型大小问题而PFD对应解决的是输入不一致的问题。对应的公式对比如下:

(1)是MD,(2)是PFD。

所以我们简单来总结一下这里比较重要的思想。

(1)当有gap的时候,不论是模型参数大小还是输入以及其他情况,而且任务目标又一样的时候,都可以使用蒸馏思想。

(2)Teacher模型越精确,那么student最终越精确的可能性才越高,不严谨的说,Teacher就是student的天花板,天花板本身就低了,student自然发挥的空间也就有限。

(2)MD+PFD

所以为了提高天花板,论文中进一步进行了优化。

我们知道线上模型,为了低时延,通常都是采用的双塔模型,也就是Paper中所说的内积模型(inner product model),即将整个推荐模型分为两大块,用户塔和商品塔,我们可以离线计算得到商品塔(一些类别特征都是固定,不变),线上我们只计算用户塔,进而在塔尖设计一些两者交互,常见的比如就是几层MLP(熟悉预训练模型的小伙伴一定知道,大名鼎鼎的sentence_bert其实也是基于这个思想下的产物)。那这其实相比于单塔模型是有精度损失的,因为双塔模型在前期特征交互很少,甚至可以说没有,而内积本身广义上来讲又是矩阵分解,所以如果我们Teacher模型采用单塔模型,是不是可以进一步提高天花板呢?所以Paper联合使用了PFD和MD。整个框架如下:

图(a)中的teacher就是单塔模型,注意线上还是双塔模型(为了低时延),也就是说如果只有FPD,那么teacher就应该是一个User侧的模型,只不过输入加了优势特征,然后同样和item(商品侧)做内积得到预测结果。

图(b)就是我们所说的线上双塔模型。

具体到电商领域,更加详细的模型框架大体如下:

标红的就是优势特征,InteractedFeatures和Post-Click Features分别是CTR和CVR对应的优势特征,Interacted Features就是一些比如过去24小时在待召回的商品上面的点击次数等等,Post-Click Features就是开头所说的页面停留时间等等。

其实粗排模型中使用的单塔模型和精排模型大体一致,精排模型本身也是一个单塔模型,一定程度上精排模型反向学习利用了精排模型。

(3)共享参数联合训练

按照上面的思路,我们先需要花时间喂大量数据训练一个teacher模型,然后再喂大量数据训练student模型,所以可不可以联合训练呢?而且为了减少计算量,可以让两个模型底部的一些参数共享,即公式如下:

联合训练带来一个问题就是,前期教师模型都还没学好,其指导可能就会带来一些偏差,反而影响了学生模型自身的学习,所以开始的时候,置LAMBDA=0,各学各的,等教师模型学的差不多了,再指导学习。

实验结果

这里作者主要做了四个对比或者说消融实验:

(1)PFD策略在CTR和CVR上的收益。

(2)PFD + MD的收益。

(3)PFD对LAMBDA是否敏感。

(4) 参数共享的联合训练对结果的影响。

table2

图二显示了在CTR上的离线实验结果(指标为AUC),可以看到PFD是有效果的,而且PFD+MD达到最好,为了验证其策略是否随着训练数据量的增大具有普遍增益,还在10天的数据上进行了实验,可以看到确实提高了,由于实验成本太高,所以其他方式没有做实验,只是在PFD+MD上面做了实验。同时也做了线上的A/B实验,相比于baseline提高了5%。

table4

 

图四显示了在CVR上的离线实验结果,说明同上,线上A/B对比baseline提高了2.3%.

table5

table6

图五图六分别显示了在CTR和CVR上lambda灵敏度的实验结果结果。可以看到大部分情况下,都是优于baseline的。

table7

table8

图七图八分别显示了在CTR和CVR上共享联合训练的实验结果。其中Ind代表不共享,Share代表共享,Async代表不联合训练,Sync代表联合训练。Share*是共享的时候排除了user id embedding,因为CTR的优势特征中包含了一些用户和点击item的交互特征,我们单独给student一个id embedding是为了更好的让它学到带有个人兴趣点的特征,换句话说,teacher模型是user id + 优势特征的embedding,而student没有优势特征,而又共享了user id,那效果就差,如果单独给student一个id embedding让它学,其拟合的近似就是user id + 优势特征的embedding,当然了不严谨,但是可以简单这么理解。极端情况下,都不共享那不是更好?看表格实验结果也是,但是咱们为了节约训练成本,所以可以共享而且相比于Ind&Sync,Share*&Sync也没减少多少。图八就是对应的CVR实验结果,不再重述。

总结

这篇Paper实用性很强,很工业。看完后,我们受到的启发起码有(前面已经说过):

(1)当有gap的时候,不论是模型参数大小还是输入以及其他情况,而且任务目标又一样的时候,都可以使用蒸馏思想。

(2)Teacher模型越精确,那么student最终越精确的可能性才越高,不严谨的说,Teacher就是student的天花板,天花板本身就低了,student自然发挥的空间也就有限。

尤其第一点,可以泛化到很多场景,比如冷启动问题,也是相当于没有很多后验特征,那么是否可以搞一下?

哈哈,开放式结尾,希望对大家有用~~

关注

微信公众号

知乎:

小小梦想 - 知乎ML/NLP研究员,欢迎关注微信公众号“算法让生活更美好” 回答数 75,获得 46 次赞同https://www.zhihu.com/people/sa-tuo-de-yisheng/posts

github:

Mryangkaitong · GitHub

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值