多场景建模:阿里多场景多任务元学习方法M2M

multi-scenario multi-task meta learning approach (M2M)

背景

广告领域大部分是针对用户建模的,像点击率预估,很少有针对广告主需求建模(广告消耗预估、活跃率/流失率预估、广告曝光量预估),广告的类型较多(搜索广告、展示广告、实时流广告),广告主在不同场景类型上面的行为也不同,这篇文章就是针对广告主建模的。
在这里插入图片描述

针对广告主建模的难点:
  1. 很难建模数据量较小或者新的场景,数据样本太少,无法学习充分
  2. 场景之间的相互关系比较复杂,较难建模,即便是相同任务,在不同场景也表现不同,如下图,不同任务在不同场景对的皮尔逊相关性。
    在这里插入图片描述
解决方案:

引入了meta unit,融合丰富的场景知识来学习显示的场景之间的相关性,这样可以很方便的扩展到新场景。
提出了meta attention,捕获不同任务在不同场景之间的相关性
提出了meta tower,用于增强捕获特定场景特征表示的能力
在这里插入图片描述
点评:核心是通过场景表示学到的信息作为专家网络及任务学习的动态权重,在任务学习过程中加入场景的个性化。

方法详情

M2M包括3个主要的阶段

第一阶段

Backbone Network,主干网络获得特征、任务、场景的embedding表示,这部分和没有创新,一般做法。
在这里插入图片描述

step1:Shared Bottom Embedding
对广告主行为序列、表现序列离线化,用embedding层做成序列embedding,然后加上位置embedding,拼接起来。
在这里插入图片描述
特征属性特征: S = { s 1 , s 2 , . . , s l } S=\{s_1,s_2,..,s_l\} S={s1,s2,..,sl}
广告主画像特征: A = { a 1 , a 2 , . . . , a m } A=\{a_1,a_2,...,a_m\} A={a1,a2,...,am}
行为序列特征: X b = { X b t } t = 1 T X_b = \{X_b^t\}_{t=1}^T Xb={Xbt}t=1T
指标特征: X p = { X p T } t = 1 T X_p=\{X_p^T\}_{t=1}^T Xp={XpT}t=1T

step2: Transformer Layer 学习序列更深层次的表达
M H ( X ) = c o n c a t ( h e a d 1 , h e a d 2 , . . . , h e a d h ) W H MH(X)=concat(head_1,head_2,...,head_h)W^H MH(X)=concat(head1,head2,...,headh)WH
h e a d i = A t t e n t i o n ( X W i Q , X W i K , X W i V ) head_i=Attention(XW_i^Q,XW_i^K,XW_i^V) headi=Attention(XWiQ,XWiK,XWiV)
将转换后的行为序列Embedding和指标序列Embedding
F = c o n c a t ( M H ( X b ) , M H ( X p ) ) F=concat(MH(X_b), MH(X_p)) F=concat(MH(Xb),MH(Xp))

step3: Expert View Representation
经过transform编码后的embedding和其他dense特征拼接在一起,套用MMoE的结构,用 k k k个专家进行学习
E i = f M L P ( F )      i ∈ 1 , 2 , . . . , k E_i = f_{MLP}(F) \ \ \ \ i \in 1,2,...,k Ei=fMLP(F)    i1,2,...,k

step4:Task View Representation
受MRAN启发,除了特征embedding,在相同空间对所有task进行embedding,得到 m m m个任务的表示
T t = f M L P ( E m b e d d i n g )     t ∈ 1 , 2 , . . . , m T_t=f_{MLP}(Embedding) \ \ \ t \in 1,2,...,m Tt=fMLP(Embedding)   t1,2,...,m

step5: Scenario Knowledge Representation.
将场景属性及广告主画像合并起来,经过一个简单的mlp网络学习得到场景Embedding表示
S ~ = f M L P ( S , A ) \tilde S = f_{MLP}(S,A) S~=fMLP(S,A)

第二阶段

Meta Learning Mechanism, 元注意力(meta attention)组件和元塔(meta tower)组件,捕获不同场景之间的相关性以及增强特定场景特征表达能力
在这里插入图片描述

meta attention 和 meta tower的基础都是meta unit,这里详细阐述meta unit,结构如下:
在这里插入图片描述

右侧input为输入,在meta attention里面input是concat(expert_out_embedding,task_embedding),
即专家网络的输出embedding和task的embedding拼接起来。在meta tower里面input就是前面attention后的结果。

input经过的几层FCN的权重是动态产生的,由场景embedding经过一个简单的FCN后得到的embedding,
经过reshape后得到,这样不同场景meta unit里面的主网络FCN权重是不一样的,通过这样的动态权重做到场景的个性化。

在这里插入图片描述
注意这里的 W ( i − 1 ) W^{(i-1)} W(i1) b ( i − 1 ) b^{(i-1)} b(i1)是通过场景Embedding经过mlp网络输出的向量再进行reshape得到,这里权重和偏置是根据场景动态产生的。比如说场景Embedding经过mlp得到一个256维的向量,这就可以reshape成128->64->64这样的简单3层mlp。
在这里插入图片描述
输入 h i n p u t h_input hinput经过几层动态权重的FCN得到输出 h o u t p o u t h_outpout houtpout,meta unit这个过程定义为 M e t a ( ∙ ) Meta(\bullet) Meta()
在这里插入图片描述

meta attention
输入就是专家输出embedding E i E_i Ei与task的embedding T t T_t Tt,通过meta unit M e t a ( ∙ ) Meta(\bullet) Meta()调制之后,再通过一个向量映射成注意力分值常数。meta unit是场景相关的,input又是task相关的,这样就同时学习到多场景和多任务之间的关系。
这里softmax计算注意力分数的时候, j j j表示专家,这里 M M M可能有误?专家总数按上文应该是 k k k
在这里插入图片描述
最后任务的表示如下,专家输出的加权求和。
在这里插入图片描述

meta tower
其实就是个残差网络,即能保留原始的输入,也能提取得到经过meta unit之后的输入
在这里插入图片描述在这里插入图片描述

第三阶段:Poisson Based Multi-Task Learning,通过泊松损失从多场景中预测多任务

loss

对于离散数据,使用泊松loss计算
在这里插入图片描述
在这里插入图片描述

评估指标

对于回归问题,MAPE(Mean Absolute Percentage Error)和NMAE(Normalized Mean Absolute Error)
但是因为pv、clicks很可能是0,因此使用 SMAPE (Symmetric Mean Absolute Percentage Error),
在这里插入图片描述
评估结果
在这里插入图片描述

消融分析

w/o meta tower module (MT).
w/o meta attention module (MA)
w/o transformer Layer (TL).
在这里插入图片描述

超参数分析

序列长度影响,过长文章说可能引入了较多噪声,导致反而变差
在这里插入图片描述
场景Embedding维度,到64维后就不再降低
在这里插入图片描述
meta unit的层数,越深反而效果变差,文章说可能是越深越容易过拟合
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据库-分库分表初探

文章目录 分库策略垂直切分垂直分库(专库专用)垂直分表(拆表)优点缺点 水平(Sharding)切分水平分表库内分表分库分表优点缺点 分表策略hash取模方案range范围区间取值方案映射表方案 分库分表问题事务一致性问题跨节点关联查询跨节…

隐藏服务器源IP的几种方法

为网络管理员的我们多知道遇到过服务器因为拒绝服务攻击(DDOS攻击)遇到网站瘫痪的情况是很糟心,随着客户信息越来越受到公司企业的重视,网站服务器的安全也越来越受到关注,但无法避免的是会遇到黑客使用DDoS攻击业务。 下面简单介绍一下隐藏i…

PolarDB无感切换特性助力游戏领域高可用实践

❤️作者主页:小虚竹 ❤️作者简介:大家好,我是小虚竹。2022年度博客之星评选TOP 10🏆,Java领域优质创作者🏆,CSDN博客专家🏆,华为云享专家🏆,掘金年度人气作…

前端使用css去除input框的默认样式

关键点&#xff1a; /* 关键点&#xff0c;让输入框无边框 */outline:none; border:none; 1.效果图 2.html <div class"container"><input type"text" placeholder"请输入用户名"><input type"text" placeholder&q…

如何在WordPress中使用 AI 进行 SEO(12 个工具)

您想在 WordPress 中使用 AI 进行 SEO 吗&#xff1f; 人工智能正在对 SEO 行业产生重大影响。已经有优秀的人工智能 SEO 工具&#xff0c;您可以使用它们来提高您的 SEO 排名&#xff0c;而无需付出太多努力。 在本文中&#xff0c;我们将向您展示如何通过我们精心挑选的工具…

深入解析互联网医院APP开发流程与源码搭建

本篇文章&#xff0c;深入解析互联网医院APP的开发流程&#xff0c;并提供关于源码搭建的一些建议。 一、确定需求与功能 在开始互联网医院APP的开发之前&#xff0c;首先需要明确项目的需求和功能。这包括用户端的预约挂号、在线咨询、报告查看等功能&#xff0c;以及医生端…

spawn_group_template | spawn_group | linked_respawn

字段介绍 spawn_group | spawn_group_template 用来记录与脚本事件或boss战斗有关的 creatures | gameobjects 的刷新数据linked_respawn 用来将 creatures | gameobjects 和 boss 联系起来&#xff0c;这样如果你杀死boss&#xff0c; creatures | gameobjects 在副本重置之前…

stm32中的SPI

SPI的简介 文章目录 SPI的简介物理层协议层基本通讯过程起始和终止信号数据有效性CPOL/CPHA及通讯模式 STM3的SPI特性及架构通讯引脚时钟控制逻辑数据控制逻辑整体控制逻辑通讯过程 代码配置实现指令集结构体的定义SPI时钟信号的定义SPI端口定义SPI命令 flash驱动代码初始化代码…

白酒:原料选择与品质提升的关键要素

云仓酒庄的豪迈白酒&#xff0c;作为中国白酒的品牌之一&#xff0c;其品质的卓着性深受消费者喜爱。在探究其原料选择与品质提升的关键要素时&#xff0c;我们可以深入了解这款酒的酿造工艺和品质保障。 首先&#xff0c;豪迈白酒的原料选择至关重要。高粱作为主要原料&#…

31、WEB攻防——通用漏洞文件上传JS验证mimeuser.ini语言特性

文章目录 文件上传一、前端验证二、.user.ini 文件上传 检测层面&#xff1a;前端、后端等检测内容&#xff1a;文件头、完整性、二次渲染等检测后缀&#xff1a;黑名单、白名单、MIME检测等绕过技巧&#xff1a;多后缀解析&#xff08;php5、php7&#xff09;、截断、中间件特…

【算法与数据结构】518、LeetCode零钱兑换 II

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;本题的硬币是无数的&#xff0c;因此本题可以抽象成一个完全背包问题。完全背包和01背包的不同之处在于…

智谱AI官网再升级,GLM-4,智能体,AI作图长文档全部搞定

创建智能体 智能体体验中心 可以看到智谱AI也推出了自己的智能体&#xff0c;并且官方内置了丰富多样的智能体供大家免费体验。 GLM-4 原生支持自动联网、图片生成、数据分析等复杂任务&#xff0c;现开放体验中&#xff0c;快来开启更多精彩。写一篇《繁花》的影评&#xf…

四月在巴黎,首届全球旗舰会议Sui Basecamp诚邀您来

Sui主网于2023年5月成功上线&#xff0c;历经八个月的发展&#xff0c;TVL最高达3.4亿美金跻身非EVM链第二名&#xff0c;整体生态也在不断的调整中&#xff0c;焕发蓬勃生机。随着2024年4月主网上线周年的临近&#xff0c;我们诚挚邀请您参加Sui全球旗舰品牌会议Sui Basecamp&…

darts,一个超强的 Python 库!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个超强的 Python 库 - darts。 Github地址&#xff1a;https://github.com/unit8co/darts 时间序列数据在各行各业中都扮演着重要的角色。无论是股票价格、气象数据、销售记…

浮点数详解

目录 1.概述 2.浮点数的编码方式 2.1.float类型的IEEE编码 2.2.double类型的IEEE编码 2.3.现场问题 2.4.总结 1.概述 计算机也需要运算和存储数学中的实数。在计算机的发展过程中&#xff0c;曾产生过多种存储实数的方式&#xff0c;有的现在已经很少使用了。不管如何存储…

HDMI、VGA、DVI、DB接口的区别

HDMI、VGA、DVI和DB&#xff08;也称为DisplayPort&#xff09;是不同类型的视频接口标准&#xff0c;它们用于连接计算机、显示器、电视和其他视频设备。 HDMI&#xff08;High-Definition Multimedia Interface&#xff0c;高清晰度多媒体接口&#xff09;&#xff1a;HDMI支…

JavaEE进阶(6)SpringBoot 配置文件(作用、格式、properties配置文件说明、yml配置文件说明、验证码案例)

接上次博客&#xff1a;JavaEE进阶&#xff08;5&#xff09;Spring IoC&DI&#xff1a;入门、IoC介绍、IoC详解&#xff08;两种主要IoC容器实现、IoC和DI对对象的管理、Bean存储、方法注解 Bean)、DI详解&#xff1a;注入方式、总结-CSDN博客 目录 配置文件作用 Sprin…

MySQL定期整理磁盘碎片

MySQL定期整理磁盘碎片&#xff1a;提升数据库性能的终极指南 MySQL作为一个强大的关系型数据库管理系统&#xff0c;在长时间运行后可能会产生磁盘碎片&#xff0c;影响数据库性能。本博客将深入讨论如何定期整理MySQL磁盘碎片&#xff0c;以确保数据库的高效运行。我们将介绍…

nexus清理docker私库

下载nexus-cli客户端&#xff0c;并非必须下载到服务器&#xff0c;理论上只要能访问到nexus就行 wget https://s3.eu-west-2.amazonaws.com/nexus-cli/1.0.0-beta/linux/nexus-cli这个链接下载不了了&#xff0c;末尾有资源下载&#xff0c;里面包含了完整包和脚本&#xff0…

风二西CTF流量题大集合-刷题笔记|NSSCTF流量题(1)

2.[鹤城杯 2021]流量分析 flag{w1reshARK_ez_1sntit} 3.[CISCN 2023 初赛]被加密的生产流量 c1f_fi1g_1000 4.[GKCTF 2021]签到 flag{Welc0me_GkC4F_m1siCCCCCC!} 5.[闽盾杯 2021]Modbus的秘密 flag{HeiDun_2021_JingSai} 6.[LitCTF 2023]easy_shark 7.[CISCN 2022 初赛]ez…