多场景建模:腾讯3MN

3MN: Three Meta Networks for Multi-Scenario and Multi-Task Learning in Online Advertising Recommender Systems

背景

推荐领域的多场景多任务学习:维护单模型即可节省资源也可节省人力;各个场景的数据共享,理论上面学习是更加充分的

问题&挑战
  1. 怎么学习复杂的多任务、多场景之间的关系MSMT(Multi-Scenario Multi-Task Learning),即(场景-场景、场景-任务、任务-任务之间的相互关系)
  2. 单个模型如何解决多个场景多个任务的不同数据分布问题(例如,来自不同媒体的用户不同,点击广告的意愿也不同;即使用户来自同一媒体,他们也点击广告的意愿通常会与他们下载应用程序的意愿不同)
  3. 不同场景下的样本分布严重不均,来自主流媒体的样本通常比小规模媒体要多得多,样本充足的场景怎么帮助哪些相关但是样本少的场景
解决方案
Three Meta Networks-based solution (3MN)

提出的三个场景自适应组件解决了挑战1,极大地提升了多任务的性能。第二个挑战由场景任务自适应主干网络及分类器解决,主干网络利用场景任务信息抽取分场景的任务特有、任务共享特征,场景自适应分类器利用这些特征提升分场景的多任务预测性能。第三个挑战由场景自适应embedding层解决,以一个自动的方式来选择不同场景下的Embedding维度。

在这里插入图片描述
点评:这篇文章是把元网络用到了极致,底层、中间层、顶层都注入了场景知识,实现场景的自适应匹配

方案详情
Scenario-Adaptive Embedding Layer

step1:Unified Embedding Dimensions.
以往的每个特征在Embedding层都映射到一个固定维度的特征向量上面,这里为了场景自适应匹配维度,设计了根据场景来选择合适的维度。
具体就是预先设置一组维度列表 { α 1 , α 2 , . . . , α a } \{\alpha_1, \alpha_2, ..., \alpha_a\} {α1,α2,...,αa},长度为 ∣ α ∣ |\alpha| α,对于每个输入的特征,产生 ∣ α ∣ |\alpha| α个embedding向量
x i = E m b e d d i n g i ( x ) i ∈ { 1 , 2 , . . . , ∣ α ∣ } \mathbf x_i = \mathrm {Embedding}_i(\mathbf x) \ \ \ \ i \in \{1,2, ..., |\alpha|\} xi=Embeddingi(x)    i{1,2,...,α}
然后使用一个形状转换层将形状转为统一的尺寸
x i ~ = x i W i + b i i ∈ { 1 , 2 , . . . , ∣ α ∣ } \widetilde {\mathbf x_i} = \mathbf x_i \mathbf W_i + \mathbf b_i \ \ \ \ i \in \{ 1,2,..., |\alpha| \} xi =xiWi+bi    i{1,2,...,α}
然后使用BatchNorm对这 ∣ α ∣ |\alpha| α个向量进行处理,避免出现由形状转换引起的极端数值变化
x i ‾ = B a t c h N o r m ( x i ~ ) \overline {\mathbf x_i} = \mathrm {BatchNorm} ( \widetilde {\mathbf x_i} ) xi=BatchNorm(xi )

step2:Scenario-Adaptive Embedding Dimension Selection
然后将 ∣ α ∣ |\alpha| α个向量进行加权求和得到特征最终的embedding向量
x s a e m b = ∑ i = 1 ∣ α ∣ p i ‾ x i ‾ \mathbf x_{sa_emb} = \sum_{i=1}^{|\alpha|} \overline {\mathbf {p_i}} \overline {\mathbf {x_i}} xsaemb=i=1αpixi
这里的权重 p i ‾ \overline {\mathbf {p_i}} pi是由元网络得到的,而元网络的输入是场景特征,因此能做到场景自适应的选择不同Embedding维度。
W 1 , b 1 , W 2 , b 2 = M e t a N e t e m b ( x s c e n e ) \mathbf W_1, \mathbf b_1, \mathbf W_2, \mathbf b_2 = \mathrm {MetaNet_{emb}} (\mathbf x_{scene}) W1,b1,W2,b2=MetaNetemb(xscene)

p = f 1 ( σ ( W 2 T ( σ ( W 1 T E m b e d d i n g ( x s e l e c t e d ) ) + b 1 ) + b 2 ) ) \mathbf p = f_1(\sigma ( \mathbf W_2^T( \sigma(\mathbf W^T_1 \mathrm {Embedding}( \mathbf x_{selected})) + b_1) + \mathbf b_2)) p=f1(σ(W2T(σ(W1TEmbedding(xselected))+b1)+b2))

其中 x s e l e c t e d \mathbf x_{selected} xselected是用户及item的一些频次统计特征,也就是基于user、item、scene三者来选择不同维度的Embedding

p ∈ R ∣ α ∣ ∗ n f i e l d \mathbf p\in R^{|\alpha| * n^{field}} pRαnfield,先reshape成 R n f i e l d ∗ ∣ α ∣ R^{n^{field}*|\alpha| } Rnfieldα,然后经过softmax后再拆分成 α \alpha α
p 1 ‾ , p 2 ‾ , . . . , p ∣ α ∣ ‾ = S p l i t ( S o f t m a x ( R e s h a p e ( p ) ) ) \overline {\mathbf {p_1}},\overline {\mathbf {p_2}},...,\overline {\mathbf {p_{|\alpha|}}} = \mathrm {Split} (\mathrm { Softmax}( \mathrm {Reshape ( \mathbf p)} )) p1,p2,...,pα=Split(Softmax(Reshape(p)))

Scenario&Task-Adaptive Backbone Network

类似于PLE的结构,有任务特有和任务共享的专家
Shared and Specific Experts.
首先BN处理下
x b n = B a t c h N o r m ( x s a e m b ) \mathbf x_{bn} = \mathrm {BatchNorm} (\mathbf x_{sa_emb}) xbn=BatchNorm(xsaemb)
然后任务特有的专家和任务共享的专家
e i , j = T a s h S p e c E x p e r t i ( x b n ) \mathbf e_{i,j} = \mathrm {TashSpecExpert_i}(\mathbf x_{bn}) ei,j=TashSpecExperti(xbn)
s k = T a s h S h a r e E x p e r t k ( x b n ) \mathbf s_{k} = \mathrm {TashShareExpert_k}(\mathbf x_{bn}) sk=TashShareExpertk(xbn)

Scenario&Task-Adaptive Expert Selection

对专家进行加权融合
x t i ~ = p t i ~ X t i \widetilde {\mathbf x_{t_i}} = \widetilde{ \mathbf p_{t_i}} \mathbf X_{t_i} xti =pti Xti
这里的专家即
X t i = [ e i , 1 T , e i , 2 T , . . . , e i , n n i T , s 1 T , s 2 T , . . . , s n s e T ] \mathbf X_{t_i} = [ \mathbf e_{i,1}^T, \mathbf e_{i,2}^T, ..., \mathbf e_{i,n^{n_i}}^T, \mathbf s_1^T, \mathbf s_2^T, ..., \mathbf s_{n^{se}}^T] Xti=[ei,1T,ei,2T,...,ei,nniT,s1T,s2T,...,snseT]

各个专家的权重 p t i ~ \widetilde{ \mathbf p_{t_i}} pti 是场景自适应的,也是由元网络得到的,元网络的输入是场景信息和任务信息

p t i = f 2 ( σ ( W 2 T ( σ ( W 1 T E m b e d d i n g ( x b n ) ) + b 1 ) + b 2 ) ) \mathbf p_{t_i} = f_2(\sigma ( \mathbf W_2^T( \sigma(\mathbf W^T_1 \mathrm {Embedding}( \mathbf x_{bn})) + b_1) + \mathbf b_2)) pti=f2(σ(W2T(σ(W1TEmbedding(xbn))+b1)+b2))
W 1 , b 1 , W 2 , b 2 = M e t a N e t b a c k b o n e ( [ x s c e n e ∣ ∣ x t a s k ] ) \mathbf W_1, \mathbf b_1, \mathbf W_2, \mathbf b_2 = \mathrm {MetaNet_{backbone}} ([\mathbf x_{scene} \ || \ \mathbf x_{task}]) W1,b1,W2,b2=MetaNetbackbone([xscene ∣∣ xtask])

p t i ‾ = S o f t m a x ( p t i ) \overline {\mathbf p_{t_i}} = \mathrm {Softmax}(\mathbf p_{t_i}) pti=Softmax(pti)

Scenario&Task-Adaptive Classifiers

得到专家的加权输出后,再通过各自任务的tower层,得到最终任务的输出

o t i = f 3 ( σ ( W 2 T ( σ ( W 1 T E m b e d d i n g ( x t i ~ ) ) + b 1 ) + b 2 ) ) \mathbf o_{t_i} = f_3(\sigma ( \mathbf W_2^T( \sigma(\mathbf W^T_1 \mathrm {Embedding}( \widetilde {\mathbf x_{t_i}})) + b_1) + \mathbf b_2)) oti=f3(σ(W2T(σ(W1TEmbedding(xti ))+b1)+b2))
W 1 , b 1 , W 2 , b 2 = M e t a N e t c l a s s i f y ( [ x s c e n e ∣ ∣ x t a s k ] ) \mathbf W_1, \mathbf b_1, \mathbf W_2, \mathbf b_2 = \mathrm {MetaNet_{classify}} ([\mathbf x_{scene} \ || \ \mathbf x_{task}]) W1,b1,W2,b2=MetaNetclassify([xscene ∣∣ xtask])

MSMT Meta Networks

详解 meta 网络也有三个组件, meta embedding layer, meta backbone network, and meta fully-connected layers
在这里插入图片描述

meta embedding layer
x e m b = E m b e d d i n g ( [ x s c e n e ∣ ∣ x t a s k ] ) \mathbf x_{emb} = \mathrm {Embedding} ([\mathbf x_{scene} \ || \ \mathbf x_{task}]) xemb=Embedding([xscene ∣∣ xtask])

meta backbone network

x m e t a = L a y e r N o r m ( D r o p o u t ( M H ( x e m b ) ) ) + x e m b \mathbf x_{meta} = \mathrm {LayerNorm} ( \mathrm {Dropout} ( \mathrm {MH} (\mathbf x_{emb}) ) ) + \mathbf x_{emb} xmeta=LayerNorm(Dropout(MH(xemb)))+xemb

x m e t a ‾ = M L P ( x m e t a ) \overline {\mathbf x_{meta}} = \mathrm {MLP} (\mathbf x_{meta}) xmeta=MLP(xmeta)

meta fully-connected layers 得到最终的权重
W i , b i = W i m e t a x m e t a ‾ + b i m e t a i ∈ { 1 , 2 } \mathbf W_i, \mathbf b_i = \mathbf W_i^{meta} \overline {\mathbf x_{meta}} + \mathbf b_i^{meta} \ \ \ i \in \{1,2\} Wi,bi=Wimetaxmeta+bimeta   i{1,2}
其中 W i m e t a \mathbf W_i^{meta} Wimeta b i m e t a \mathbf b_i^{meta} bimeta是元网络FCN的参数
这里产出的 W i , b i \mathbf W_i, \mathbf b_i Wi,bi就是上面用到的权重

实验&消融分析

数据集
在这里插入图片描述
实验效果
在这里插入图片描述
各个组件消融分析
在这里插入图片描述
专家选择权重的可视化
在这里插入图片描述
不同embedding尺寸选择权重的可视化
在这里插入图片描述
SA embedding layer加在base模型上的效果增益
在这里插入图片描述

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

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

相关文章

微信小程序Skyline在手机端不渲染的问题之一及其解决方式

问题:电脑端是skyline渲染,手机端是webview渲染?如何解? 开发者工具 当前渲染模式:Skyline 当进行预览时手机端却是: 请注意看轮播图的显示情况 请注意看轮播图的显示情况 请注意看轮播图的显示情况 从轮播图上来看,手机端是webview渲染…

“有国才有家”这个观点应该怎么理解?

​《有国才有家》这首歌由马仕健作词作曲,蒋国佳编曲,刘畅混音,马仕健演唱。 “家是最小国,国是千万家”。千百年来,“家国”这两个词一直紧紧联系在一起。“国家好,民族好,大家才会好”&#x…

【嵌入式学习】C++QT-Day3-C++基础

笔记 见我的博客:https://lingjun.life/wiki/EmbeddedNote/19Cpp 作业 设计一个Per类,类中包含私有成员:姓名、年龄、指针成员身高、体重,再设计一个Stu类,类中包含私有成员:成绩、Per类对象p1,设计这两个类的构造函…

Linux文件管理(下)

上上篇介绍了Linux文件管理的上部分内容,这次继续将 Linux文件管理的剩余部分说完。内容如下。 一、查看文件内容 1、cat 命令 1.1 输出文件内容 基本语法: cat 文件名称主要功能:正序输出文件的内容。 eg:输出 readme.txt文…

对Spring当中AOP的理解

AOP(面向切面编程)全称Aspect Oriented Programminge AOP就是把系统中重复的代码抽取出来,单独开发,在系统需要时,使用动态代理技术,在不修改源码的基础上,将单独开发的功能通知织入(应用)到系统中的过程,完…

慎投!这3本期刊诚信风险高,被警告和风险低的期刊选哪个?

近年来,学术界对学术诚信的关注越来越多,期刊的学术诚信风险也日益受到关注。科睿唯安在今年三月份剔除的35本SCI期刊中,绝大多数涉及学术诚信问题!据官方介绍,其已正式开发了一款AI工具,可以锁定存在学术诚…

【JavaScript 基础入门】01 编程语言和计算机基础

编程语言和计算机基础 目录 编程语言和计算机基础1 - 编程语言1.1 编程1.2 计算机语言1.3 编程语言1.4 翻译器1.5 编程语言和标记语言区别1.6 总结 2 - 计算机基础2.1 计算机组成2.2 数据存储2.3 数据存储单位2.4 程序运行 1 - 编程语言 1.1 编程 编程: 就是让计算…

微信小程序(二十二)获取全局实例

注释很详细,直接上代码 上一篇 新增内容: 1.全局实例的定义位置 2.全局实例中数据的修改方法 源码: app.js App({//数据可以包括在第二级globalData:{userInfo:null,token:1243,userInfo:null},//globalData并不是关键词,数据可以…

预制菜春节大洗牌,味知香、千味央厨谁是“硬菜”?

2024年春节预制菜销量走俏,预制菜依然是消费者“年夜饭”上的重头戏。各大生鲜平台、电商、商超、餐饮门店都纷纷开卖春节预制菜。 预制菜赛道两大“玩家”:“预制菜第一股”味知香(605089.SH)、“餐饮供应链第一股”千味央厨(001215.SZ)均在…

jrt运维命令改造

以前发布网站都是定死网站放置路径的,现在JRT想面向更广范围推广,所以就不能明确确定网站放置目录,为此需要改造一下jrt命令和sh来满足目录不确定情况和多个程序用不同管理命令的要求。 以前是写死的,现在改为调程序运行目录的sh…

在Mixamo网站上,下载的模型导入unity后没有材质怎么解决

在Mixamo网站上,下载的模型导入unity后没有材质 1.导入的模型没有材质2.解决方法3.提取后就有材质了 1.导入的模型没有材质 2.解决方法 选中导入的模型 > 选择提取纹理>选择你要提取到的文件夹(默认是当前文件夹)>点击 fix now 3.提取后就有材质了

【漏洞复现】中移铁通禹路由器弱口令漏洞

Nx01 产品简介 中移禹路由器支持宽带拨号、动态IP和静态IP三种上网模式,一般中国移动宽带的光猫都是智能光猫也就是光猫带路由器功能,中移禹路由器作为二级路由使用。 Nx02 漏洞描述 中移禹路由器存在默认口令(admin),攻击者可利用该漏洞获取敏感信息。 Nx03 产品…

《HTML 简易速速上手小册》第7章:HTML 多媒体与嵌入内容(2024 最新版)

文章目录 7.1 在HTML中嵌入视频和音频7.1.1 基础知识7.1.2 案例 1&#xff1a;嵌入视频文件7.1.3 案例 2&#xff1a;嵌入音频文件7.1.4 案例 3&#xff1a;创建一个视频和音频混合的播放列表 7.2 使用 <iframe> 嵌入外部内容7.2.1 基础知识7.2.2 案例 1&#xff1a;嵌入…

四. 基于环视Camera的BEV感知算法-BEVFormer实战

目录 前言1. BEVFormer实战 前言 自动驾驶之心推出的《国内首个BVE感知全栈系列学习教程》&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考 本次课程我们来学习下课程第四章——基于环视Camera的BEV感知算法&#xff0c;一起去学习下 BEVFormer 的相关代码 课程…

Matlab图像平滑滤波学习笔记——卷积、中值滤波、排序滤波以及自适应滤波

1.引言 图像处理是计算机视觉领域中的一个重要分支&#xff0c;其目标是通过对图像进行各种操作来改善图像的质量或提取出特定的信息。在图像处理的诸多任务中&#xff0c;平滑和滤波是常见且关键的操作&#xff0c;用于去除噪声、增强细节或突出图像中的特征。本文将重点介绍…

探索Viper-适用于GoLang的完整配置解决方案

前言 对于现代应用程序&#xff0c;尤其大中型的项目来说&#xff0c;在程序启动和运行时&#xff0c;往往需要传入许多参数来控制程序的行为&#xff0c;我们可以通过命令行参数&#xff0c;环境变量&#xff0c;配置文件等方式来将参数传递给程序。而Viper库为Golang语言开发…

麒麟系统安装minio_centos8.0安装最新minio_离线安装minio并设置权限_创建桶---minio工作笔记001

https://www.minio.org.cn/?id=18&id=3&id=0&id=11&id=9&spinz=qianfeng&adinfo678=baidu&spinz=qianfeng&adinfo678=baidu%3E 首先去到官网去下载minio,然后 可以看到已经显示的官网,然后再去,右边点击下载 进入下载页面一般都是amd64的版本…

【JaveWeb教程】(35)SpringBootWeb案例之《智能学习辅助系统》登录功能的详细实现步骤与代码示例(8)

目录 案例-登录和认证1. 登录功能1.1 需求1.2 接口文档1.3 思路分析1.4 功能开发1.5 测试 案例-登录和认证 在前面的课程中&#xff0c;我们已经实现了部门管理、员工管理的基本功能&#xff0c;但是大家会发现&#xff0c;我们并没有登录&#xff0c;就直接访问到了Tlias智能…

Leetcode3014. 输入单词需要的最少按键次数 I

Every day a Leetcode 题目来源&#xff1a;3014. 输入单词需要的最少按键次数 I 解法1&#xff1a;统计 统计字符串 word 的小写字母个数和 1、#、*、0 的个数。 将小写字母均匀地分配到 8 个按键上&#xff0c;模拟即可。 代码&#xff1a; /** lc appleetcode.cn id3…

多维时序 | Matlab实现DBO-LSTM蜣螂算法优化长短期记忆神经网络多变量时间序列预测

多维时序 | Matlab实现DBO-LSTM蜣螂算法优化长短期记忆神经网络多变量时间序列预测 目录 多维时序 | Matlab实现DBO-LSTM蜣螂算法优化长短期记忆神经网络多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现DBO-LSTM多变量时间序列预测&#x…