前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深入理解推荐系统:如何多种业务场景合并建模

深入理解推荐系统:如何多种业务场景合并建模

作者头像
Coggle数据科学
发布2022-08-31 15:23:18
1.2K0
发布2022-08-31 15:23:18
举报
文章被收录于专栏:Coggle数据科学Coggle数据科学

背景介绍

以往CTR(Click-Through Rate、点击率)预估模型更加关注于单个业务场景域(domain)的预测。在淘宝的App中,有多种domains需要用到CTR预估模型,比如首页推荐、猜你喜欢等等。如果每个场景都单独建模,模型的数目会很多,可能有几百个,维护成本变大,而且有的domains的数据比较少,模型的学习效果也不够好。考虑到不同domains之间有很大的共性,比如domains间的用户是重叠的、商品也是重叠的,一个思路是把多个domains放到一起建模,利用domains间的共享部分,提升其他domains的效果,减少模型的个数。

STAR模型的目标是学习一个有效和高效的CTR模型来同时处理多个domains,它会为每个domain给出精准的CTR预测,并在资源消耗上开销不大,该模型可以充分利用domain共性,并能捕捉domain间的差异。。可以将multi-domain CTR prediction公式化成:需要为M个业务场景domains

D_1, D_2, \cdots, D_M
D_1, D_2, \cdots, D_M

作为CTR预测。该模型可以将input作为(x, y, p),其中:

  • x是公共特征(像:历史用户行为、用户画像特征、商品属性特征、上下文特征等),会被多个商业domain使用
y \in \lbrace 0, 1\rbrace
y \in \lbrace 0, 1\rbrace

是点击label

  • p是domain索引:它表示该样本是来自哪个domain

论文专门介绍了Multi-Domain Learning和Multi-Task Learning关系。首先Multi-Domain Learning与Multi-Task Learnin间的不同之处是:Multi-Domain预测是在输入样本不同的domain上解决相同的任务,不同domains的label spaces是相同的,数据分布有所不同。然而,Multi-Task训练则在输入样本相同的domain上解决不同的任务,其中label space会不同。由于任务的异构性,已存在的Multi-Task Learnin方法则关注于在bottom layers上的共享信息,但会在每个task output layers上保持独立。

为了充分利用domain关系,论文提出星形拓朴自适应推荐(STAR Topology Adaptive Recommender: STAR)来进行multi-domain CTR预估。提出的STAR模型是星形拓朴,STAR包含了共享的中心参数,以及domain-specific参数的多个集合。每个domain的最终模型通过将共享中心参数和domain-specific参数进行组合来获得。中心参数被用于学习在所有domains间的总行为,其中公共知识可以被学习到以及在所有domains间转移。domain-specific参数会捕获在不同domains间的特定行为来提升更加精准的CTR预估。Star topology会利用跨多个domains间的有效信息转换,来学习domain公共性和差异。该论文会实现STAR模型,它使用在每个layer上对weights做element-wise product来作为组合策略。由于embedding layers会在工业界推荐器上贡献大多数参数量,添加的domain-specific参数对于总参数量来说可被忽略。因此,使用STAR模型来serve多个domains只需要添加少量计算和内存开销,就能达到更好的效果。

主要的贡献如下:

  • 提出Star Topology FCN模块建模多个领域间的共享和差异部分
  • 提出Partitioned Normalization (PN)对不同领域的数据单独归一化
  • 提出auxiliary network直接学习领域表征信息,让模型更直接地感知不同的领域。

在工业产品数据集上评估STAR,并将它部署在2020的阿里展示广告系统上,持续的收益验证了STAR的效果。直到现在,STAR的部署带来了6%的CTR和8%的RPM提升,它可以泛化到其它场景上。

提出的方法

Multi-domain CTR预估

架构总览

如上所示,忽略domain索引 p,学习单个共享CTR模型会忽略domain的差异性。这会导致次优的模型参数。另一方面,对于不同domain训练不同模型会更差,因为将domains进行分隔,每个模型会得到更少的数据。由于资源开销以及人力开销,在生产环境中为每个domain维护一个独立的模型是难以进行的。

使用STAR来进行multi-domain CTR预估,可以更好利用不同domains间的相似性,并能捕获domain上的差异。如下图所示,STAR包含了三个主要部分:

  • (1) partitioned normalization(PN):它会为不同domains间的样本进行单独normalization
  • (2) star topology FC network (star topology FCN)
  • (3) auxiliary network:它会将domain标识索引看成是input featrure,并能学到它的语义embeddings来捕获domain差异性

在训练期间,domain索引 p 会首先被抽样。STAR会首先将这些input features通过一个embedding layer进行嵌入作为低维vectors。在工业推荐系统中,该模型通常会使用数十亿维度进行训练,embedding的参数通常要比其它部分的参数更多。这使得它在不同domains上使用有限数据来学习domain-specific embedding很难。因此,在STAR模型中,我们将所有domains共享相同的embedding layer。共享的embedding layer会跨不同的domains,可以极大减少计算和内存开销。

该embeddings接着被pool和concatenate,来获得B个固定长度的r表示向量。在这之后,B个抽取的表示向量会通过PN layer进行处理,接着为不同domains进行独立的normalization statistics。normalizated vectors接着作为input被feed到star topology FCN中来获取output。star topology FCN包含了共享的centered FCN以及多个domain-specific FCNs。每个domain的最终模型通过将shared centered FCN和domain-specific FCN进行组合获得

在multi-domain CTR预估中,描述domain信息的features很重要。在STAR模型中,auxiliary network会将domain标识索引作为input,并使用描述该domain的其它features一同输入到auxiliary network中。auxiliary network的output 会被添加到star topology FCN的output中,来获取最终的prediction。auxiliary network比star topoology FCN更简单,模型以一个直接和简单方式来捕获domain差异。

Partitioned Normalization

如上,输入特征会首先转换成低维embeddings,接着进行pool和aggregation来获得中间表示。通常,为了训练deep networks更快和更稳定,一个标准的惯例是应用normalization layer到中间表示z上。在所有的normalization方法之间,batch normalization(BN)是一个表示方法,它对于训练非常深的DNN很重要。BN会为所有样本使用一个全局的normalziation,它会累积normalization moments,并学习跨多个样本的共享参数。BN会假设所有样本是独立同分布的,并在所有训练样本上使用共享的statistics。

然而,在multi-domain CTR预估中,样本假设是在一个特定domain上是局部独立同分布的。在testing期间在BN layers上共享全局的monents和参数,会牺牲domain差异性,并导致模型效果的降级。为了捕获每个domain上唯一的数据特性,论文提出partitioned normalization, 它会为不同domains上单独对statistics和parameters做normalization。具体的,在training期间,假设当前的mini-batch是从第p个domain上抽样得到,然后会计算当前mini-batch的均值和方差,并将feature进行归一化。

Star Topology FCN

在PN layer之后的结果会被作为input来喂到下面的star topology multi-layer FCN上。如下图所示,提出的star topology FCN会为每个domain包含一个共享的centerd FCN和独立FCNs,因而,FCN的总数是M+1. 第p个domain的最终模型可以通过对shared centered FCN和domain-specific FCN组合来得到,其中,centered参数会学习在所有domains上的通用行为,domain-specific参数会捕获在不同domains上的指定行为,来帮助更多的fefined CTR预测。

STAR如何为不同domains生成FCN的参数。STAR包含了一个共享的centered FCN和独立的每个domain的FCNs。对于每个domain,一个neural network layer的最终weights会通过将shared FCN与domain-specific FCN进行element-wise乘法来获得。共享参数会通过所有示例的梯度进行更新,而domain-speciific参数只会通过在该domain下的样本进行更新。

注意,我们会对shared centerd FCN和domain-specific FCN进行组合策略,它的实现是:将每个layer上的weights进行element-wise乘,将bias进行加得到;也可以尝试研究其它策略。shared参数会通过对所有样本的梯度进行更新,而domain-specific参数则只会在使用该domain的样本时才会被更新。如上所示,工业推荐系统的大多数参数,会由embedding layer来贡献,STAR只会增加M个FCNs,量级很少。

Auxiliary Network

在CTR建模的传统方式下,所有features会被同等看待,并被喂给复杂的模型。在multi-domain CTR预测时,对于模型来说自动学习domain差异是很难的。一个好的multi-domain CTR模型应该具有以下几个特性:

  • (1) 具有考虑上domain特性的信息特征
  • (2) 这些featrures可以很容易并直接影响final CTR预估

背后的直觉是,描会domains的features很重要,因为它可以减少模型难度来捕获domains间的不同。

min \sum\limits_{p=1}^M \sum\limits_{i=1}^{N_p} - y_i^p log(y_i^p) - (1 - y_i^p) log(1 - \hat{y}_i^p) \\
min \sum\limits_{p=1}^M \sum\limits_{i=1}^{N_p} - y_i^p log(y_i^p) - (1 - y_i^p) log(1 - \hat{y}_i^p) \\

实验

对比模型

  • Base:经过embedding,pooling和concat,batch normalization,之后经过7层全连接。pooling和concat的操作是基于DIEN
  • Shared Bottom:只共享embedding,各个领域有独立的7层全连接网络
  • MulANN:在Base模型的基础上,添加adversarial模块,区分不同领域学习到的表示
  • MMoE:每一个expert是7层全连接网络,experts的个数和领域的个数相同
  • Cross-Stitch:每个领域一个7层全连接expert,并且在每个hidden layer都添加线性cross-stitch单元,组合不同experts的hidden表示。

训练细节

优化器使用Adam,lr=0.001,batch size = 2000,评价指标使用weighted AUC,根据每个用户的样本计算AUC,然后按照用户的曝光量加权。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-06-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景介绍
  • 提出的方法
    • Multi-domain CTR预估
      • 架构总览
        • Partitioned Normalization
          • Star Topology FCN
            • Auxiliary Network
            • 实验
              • 对比模型
                • 训练细节
                相关产品与服务
                批量计算
                批量计算(BatchCompute,Batch)是为有大数据计算业务的企业、科研单位等提供高性价比且易用的计算服务。批量计算 Batch 可以根据用户提供的批处理规模,智能地管理作业和调动其所需的最佳资源。有了 Batch 的帮助,您可以将精力集中在如何分析和处理数据结果上。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档