背景
这是阿里发的一篇 Multi-Domain CTR 预估论文, Multi-Domain 和 multitask 任务有什么本质区别吗?没接触过 Multi-Domain 的业务,阿里的Multi-Domain类似同个页面下的不同广告位吧
模型结构
aa
直接看模型结构吧,阿里star模型和普通的ctr模型主要有以下几个区别:
1. embedding层都是一样的,各个domain都是共享底层embedding的
2. BN层换成了PN,简单来说就是对不同domain的样本采用了不同的BN
3. Star Topology FCN,不同domain有一个共享的FCN,每个domain也有自己的FCN
4. 加了一个辅助任务,强化模型区分不同domian
下面详细介绍各个部分
Partitioned Normalization
batch normalization (BN) 是模型中常见的一种结构
训练时:
预估时:
BN假设了所有的样本都是服从相同分布的,BN适合单domain的任务,对于多domain的任务,阿里star提出了partitioned normalization结构
训练时:
预估时:
和普通BN相比,PN有以下几点不同:
1. 每个mini batch的样本要属于同一个domain
2. 训练时,不仅学习了所有domain共享的一对参数(γ,β),对于每个domain还另外学习了一对参数(γp,βp)
3. 预估时,每个domain都要计算它的期望和方差
Star Topology FCN
star Topology FCN 由一个每个domian共享的FCN和多个每个domain私有的FCN组成
Auxiliary Network
为了加强模型对各个domain的区分能力,阿里star网路引入了一个辅助任务。每个domain的标识是一个ID特征,也会学习它的embedding,concat到其它特征上,然后通过两层的FCN得到一个1维的值
这里标记主任务的输出为sm,辅助任务的输出时sa,那么最终的输出是: