多场景建模:阿里STAR

多场景建模:阿里STAR

阿里提出了Partitioned Normalization、Star Topology FCN、Auxiliary Network应用到多场景建模,在各个场景上面取得不错的效果。

两个场景:

  1. 淘宝主页的banner,展示一个商品或者一个店铺或者一个品牌
  2. 猜你喜欢:双列的形式展示商品流

不同场景的user和item有重叠,但是user在不用的场景行为模式是不同的,简单将所有样本混合在一起训练一个共享的模型无法处理这样不同数据分布的多个场景。如果每个场景单独整一个模型,缺点显而易见:小场景的数据较少,模型很难学;场景多了后维护多个模型资源消耗和人力成本不可接受。

多任务学习针对的是数据分布相同,但是各个任务目标的label空间不同。基于此,现在的多任务学习都是基于底层的共享,但是保持任务输出层的独立性。直接应用多任务学习到多场景学习上面无法充分利用场景之间的关系,而且忽略了多个场景的数据分布差异。

总体结构如下

PN

为了加速训练及训练的稳定性,通常是对embedding进行batch内归一化normalization, γ \gamma γ和 β \beta β是可学习的缩放和偏差参数, μ \mu μ和 σ 2 \sigma^2 σ2是batch内的均值和方差,测试阶段,使用移动平均统计的均值 E E E和方差 V a r Var Var来替换。BN假设所有样本服从独立同分布,但是多场景中,这个假设就不成立了,各个场景内的样本服从本场景的独立同分布。
z ' = γ z − E V a r + ϵ + β \mathbf z' = \gamma \frac{\mathbf z - E}{\sqrt{Var + \epsilon}} + \beta z'=γVar+ϵ z−E+β

提出partitioned normalization (PN) 来解决,训练时每个batch来自第 p p p个场景, γ \gamma γ和 β \beta β是全局的缩放和偏差参数, γ p \gamma_p γp和 β p \beta_p βp是场景相关的缩放和偏差参数,在测试阶段,也使用各场景移动平均的均值 E p E_p Ep和方差 V a r p Var_p Varp来替换。

z ' = ( γ ∗ γ p ) z − E p V a r p + ϵ + β p + β \mathbf z' = (\gamma * \gamma_p) \frac{\mathbf z - E_p}{\sqrt{Var_p + \epsilon}} + \beta_p + \beta z'=(γ∗γp)Varp+ϵ z−Ep+βp+β

从消融分析上看,STAR FCN叠加LN比BN好,PN比LN好

Star Topology FCN

有一个共享的FCN,每个场景有一个单独的FCN网络,使用 W ∈ R c × d W\in R^{c \times d} W∈Rc×d和 W p ∈ R c × d W_p \in R^{c \times d} Wp∈Rc×d以及 b ∈ R d b \in R^d b∈Rd和 b p i n R d b_p in R^d bpinRd分别表示共享FCN和场景 p p p的FCN网络的权重和偏差,第 p p p个场景最终的FCN权重 W ∗ W^* W∗表示为
W ∗ = W ⊗ W p ; b ∗ = b p + b W^* = W \otimes W_p; b^* = b_p + b W∗=W⊗Wp;b∗=bp+b

场景 p p p的FCN网络输出 o u t p ∈ R d out_p \in R^d outp∈Rd计算如下
o u t p = φ ( ( W ∗ ) T i n p + b p ∗ ) out_p = \varphi ( (W^*)^Tin_p + b_p^* ) outp=φ((W∗)Tinp+bp∗)

这里增加的FCN网络的参数相对于整体参数基本忽略不计。

结构示意图

从消融分析看,基础模型加PN结果好于基础模型加BN,STAR FCN加BN好于基础模型加BN,STAR FCN加PN好于STAR FCN加BN。

Auxiliary Network

辅助网络是为了学习场景之间的差异的,一般所有特征都是同等的丢到模型中去学习,但是经过复杂的模型之后,还是很难学到场景之间的差异。直接将场景标识ID的embedding和其他特征embedding拼接起来作为辅助网络的输入,经过一个简单的2层FCN,输出一维的logit结果 s a s_a sa,然后加到指定场景的logit上面 s p s_p sp得到最后的logit,经过激活函数得到预估结果。
y ^ p = s i g m o i d ( s p + s a ) \hat{y}_p = sigmoid(s_p + s_a) y^p=sigmoid(sp+sa)

从消融分析上看,加辅助网络比不加更好,说明辅助网络的确学到了场景之间的差异。

最终loss

m i n ∑ p = 1 M ∑ i = 1 N p − y i p log ⁡ y ^ i p − ( 1 − y i p ) log ⁡ ( 1 − y ^ i p ) min \sum_{p=1}^M \sum_{i=1}^{N_p} -y_i^p \log \hat{y}_i^p - (1-y_i^p) \log (1-\hat{y}_i^p) minp=1∑Mi=1∑Np−yiplogy^ip−(1−yip)log(1−y^ip)

评估指标

GAUC 即每个用户的加权AUC
A U C = ∑ i n # i m p r e s s i o n i × A U C i ∑ i n # i m p r e s s i o n i \rm AUC = \frac{\sum_i^n \rm \#impression_i \times AUC_i}{\sum_i^n\#impression_i} AUC=∑in#impressioni∑in#impressioni×AUCi

OverAll AUC

混合所有样本在一起计算的AUC

测试用到了19个场景

各场景表现

相关推荐
qzhqbb1 小时前
基于统计方法的语言模型
人工智能·语言模型·easyui
冷眼看人间恩怨1 小时前
【话题讨论】AI大模型重塑软件开发:定义、应用、优势与挑战
人工智能·ai编程·软件开发
2401_883041081 小时前
新锐品牌电商代运营公司都有哪些?
大数据·人工智能
AI极客菌2 小时前
Controlnet作者新作IC-light V2:基于FLUX训练,支持处理风格化图像,细节远高于SD1.5。
人工智能·计算机视觉·ai作画·stable diffusion·aigc·flux·人工智能作画
阿_旭2 小时前
一文读懂| 自注意力与交叉注意力机制在计算机视觉中作用与基本原理
人工智能·深度学习·计算机视觉·cross-attention·self-attention
王哈哈^_^2 小时前
【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
前端·人工智能·深度学习·yolo·目标检测·计算机视觉·pyqt
Power20246663 小时前
NLP论文速读|LongReward:基于AI反馈来提升长上下文大语言模型
人工智能·深度学习·机器学习·自然语言处理·nlp
数据猎手小k3 小时前
AIDOVECL数据集:包含超过15000张AI生成的车辆图像数据集,目的解决旨在解决眼水平分类和定位问题。
人工智能·分类·数据挖掘
好奇龙猫3 小时前
【学习AI-相关路程-mnist手写数字分类-win-硬件:windows-自我学习AI-实验步骤-全连接神经网络(BPnetwork)-操作流程(3) 】
人工智能·算法
沉下心来学鲁班4 小时前
复现LLM:带你从零认识语言模型
人工智能·语言模型