多场景建模:阿里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+ϵ zE+β

提出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+ϵ zEp+βp+β

在这里插入图片描述
从消融分析上看,STAR FCN叠加LN比BN好,PN比LN好

Star Topology FCN

有一个共享的FCN,每个场景有一个单独的FCN网络,使用 W ∈ R c × d W\in R^{c \times d} WRc×d W p ∈ R c × d W_p \in R^{c \times d} WpRc×d以及 b ∈ R d b \in R^d bRd 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=WWp;b=bp+b
场景 p p p的FCN网络输出 o u t p ∈ R d out_p \in R^d outpRd计算如下
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=1Mi=1Npyiplogy^ip(1yip)log(1y^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#impressioniin#impressioni×AUCi

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

测试用到了19个场景
在这里插入图片描述
各场景表现
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/417307.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FineBI报表页面大屏小屏自适应显示问题

大屏正常显示 显示正常 小屏BI自适应显示 存在遮挡字体情况 小屏浏览器缩放显示 等比缩放后显示正常 其他建议(部分解决方法) 初步有两种解决方法 两种方法都需要FineBI中网页框可以嵌套发布FineReport制作的报表xx.cpt/xx.frm 方法一:使用f…

【论文阅读 SIGMOD18】Query-based Workload Forecasting for Self-Driving

Query-based Workload Forecasting for Self-Driving Database Management Systems My Summary ABSTRACT Autonomous DBMS的第一步就是能够建模并预测工作负载,以前的预测技术对查询的资源利用率进行建模。然而,当数据库的物理设计和硬件资源发生变化…

Redis持久化和集群架构

目录 Redis持久化 RDB快照(snapshot) RDB优点 RDB缺点 RDB的触发机制 AOF持久化 AOF文件重写 AOF触发机制 混合模式 Redis主从架构 Redis哨兵高可用架构 Redis Cluster架构 槽位定位算法 跳转重定位 Redis集群节点间的通信机制 Redis持久化…

2024最新租号平台系统源码,支持单独租用或合租使用

应用介绍 这是一款租号平台源码,采用常见的租号模式。目前网络上还很少见到此类类型的源码。 平台的主要功能如下: 支持单独租用或采用合租模式,采用易支付通用接口进行支付,添加邀请返利功能,以便站长更好地推广&am…

c语言空指针

系列文章目录 c语言空指针 c语言空指针 系列文章目录c语言空指针 c语言空指针 空指针 没有指向任何的地址(其指向0的地址) 空制指针就是指向内存编号为零的空间,操作该内存空间会报错,一般情况空指针用于程序条件判断 操作空指针 …

位运算的奇技淫巧

常见位运算总结&#xff1a; 1、基础位运算 左移<<运算 将二进制数向左移位操作&#xff0c;高位溢出则丢弃&#xff0c;低位补0。 右移>>运算 右移位运算中&#xff0c;无符号数和有符号数的运算并不相同。对于无符号数&#xff0c;右移之后高位补0&#xff…

二进制表示(14)

题目 public class Main {public static String con01(int x,int n) {StringBuffer s new StringBuffer();while(x!0) {s.append(x%n);x/n;}return s.reverse().toString();}public static int con02(int x,int n) {StringBuffer s new StringBuffer();int sum 0;while(x!0…

Hudi Hadoop3 环境运行报错, 关于 HftpFileSystem问题

问题 Caused by: org.apache.flink.core.fs.UnsupportedFileSystemSchemeException: Could not find a file system implementation for scheme hdfs. The scheme is not directly supported by Flink and no Hadoop file system to support this scheme could be loaded. For…

【Python】--- 基础语法(1)

目录 1.变量和表达式2.变量和类型2.1变量是什么2.2变量的语法2.3变量的类型2.3.1整数2.3.2浮点数&#xff08;小数&#xff09;2.3.3字符串2.3.4布尔2.3.5其他 2.4为什么要有这么多类型2.5动态类型特征 3.注释3.1注释的语法3.2注释的规范 结语 1.变量和表达式 对python的学习就…

什么是技术架构?架构和框架之间的区别是什么?怎样去做好架构设计?(二)

什么是技术架构?架构和框架之间的区别是什么?怎样去做好架构设计?(二)。 技术架构是对某一技术问题(需求)解决方案的结构化描述,由构成解决方案的组件结构及之间的交互关系构成。广义上的技术架构是一系列涵盖多类技术问题设计方案的统称,例如部署方案、存储方案、缓存…

数据结构:顺序循环队列

队列是限制在两端操作进行插入操作与删除操作的线性表&#xff0c;允许进行插入操作的一端称为"队尾"&#xff0c;允许进行删除操作的一端称为“队头”。当线性表中没有元素时&#xff0c;称为“空队”。队列的特点是先进先出。 队列两种规定&#xff1a; 1、front…

猫咪增肥长壮吃什么猫罐头?5款适合猫咪增肥长壮的猫罐头推荐

近期&#xff0c;我在网络上经常看到网友们热烈讨论关于猫咪增肥长壮的食物选择。许多铲屎官都为自家猫咪的消瘦而苦恼。作为一名拥有六年宠物店经营经验的养猫人&#xff0c;我对猫咪的饮食习惯有着深入的了解。 想要猫咪增肥长壮&#xff0c;高蛋白的猫罐头是一个不错的选择…