这"一"个点击率模能用遍阿里,凭什么?

今天我们就来探讨一篇论文《One Model to Serve All: Star Topology Adaptive Recommender for Multi-Domain CTR Prediction》,该论文称一个模型能服务所有的点击率模型。传统的推荐系统,都是每个业务领域训练一个模型服务该业务,然而,在大型商业平台上,推荐系统需要对多个业务域进行点击率(CTR)预测。不同的业务域有重叠的用户组和items,因此存在共性。因为特定用户组可能有所不同,用户行为可能会在特定的业务域内发生变化,所以不同的域也有较大的区别。区别导致不同领域有特定的数据分布,这使得单一的共享模型很难服务所有域。针对这个问题,论文提出了星型拓扑自适应推荐器(STAR),该模型高效地学习并服务于所有领域。具体地说,STAR具有星拓扑结构,包含共享中心参数和特定域的参数。共享参数用于学习所有域的共性,特定域的参数捕获域之间的区别,从而更精确预测。给定来自不同域的请求,STAR可以根据不同的域调整其参数。到目前为止,STAR一直是部署在阿里巴巴展示广告系统中,获得CTR平均提高8.0%,RPM平均提高6.0%。

多域点击率问题

如下图所示,就是两个业务领域,一个是首页推荐,一个是猜你喜欢,都是为用户推荐他可能购买的商品。首页推荐在淘宝首页的最上方,可以是商品、商店、品牌等。而猜你喜欢都是商品。除了直接混合训练数据,直接粗暴的训练一个共享参数的点击率模型,另一个方案是每个业务领域训练一个模型,这样会有以下问题:

  • 一些业务训练数据不足

  • 维护太多模型成本过高

所以该论文提出去学习一个高效的点击率模型,可以同时处理上百个业务领域。模型的输入是(x, y, p),x是各个领域共有的特征,如用户行为序列,用户画像,商品特征,上下文特征等。y表示是否点击,p表示业务领域的标识。因为数据来自不同p,所以模型要准确的捕捉不同领域直接的数据分布差。

说了这么多,大家可能有疑惑,这难道不是多任务问题?论文中也做了解释,这和多任务是完全不同的,多域问题是解决不同域的同一个问题,比如预测不同域的点击率。而多任务优化目标是多个的,比如同时优化点击率和转化率。现有的多任务学习框架都是共享底层,不同的任务用不同的输出层,对于多域问题,并不能充分挖掘不同域之间的关系。所以STAR横空出世了,如下图所示,每个域都有自己特定参数,而且共享中心参数。

星框架

如上图(右)所示,STAR由3个模块组成:

  • partitioned normalization (PN)

  • star topology fully-connected neural network (star topology FCN)

  • the auxiliary network

先采样一个业务域p,然后采样B个样本,如下所示:

然后通过pooling和concat等操作,获得B个固定长度的embeding。先后输入到PN和FCN中,p直接映射成embedding,和FCN的输出合并,作为最终的输出,这样既能捕捉不同域的共性和异性,也能显示的捕捉域的特性。

PN:其实就是修改了batch normalization(BN),因为BN假定样本都是来自同一分布的,但是由于我们这篇论文中的数据来自于不同的域,所以BN中的参数,在不同域中是不一样的,所以修改如下:

STAR Topology FCN:经过PN后我们得到z',然后就要输入到星形(多个)全连接的前馈神经网络中,有一个共享参数的前馈神经网络,还有M个(域的个数)对应不同域的前馈神经网络,最后FCN层定义如下:

Auxiliary Network:如果只让模型自己去学习不同域的差异是很困难的,如何显示的把域的信息加入到模型中呢?所以提出了Auxiliary Network,即直接把p embedding,和其他特征的embedding进行concat,然后输入到网络中得到sa,FCN的输出定义为sm,然后通过下式得到最终输出,最后用log loss进行模型的学习。

实验

对比各个域在各个模型(包含单任务,多任务模型)的效果,我们也发现STAR的表现均最优。


觉得还不错就给我一个小小的鼓励吧!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值