多场景建模:阿里多场景多任务元学习方法M2M
multi-scenario multi-task meta learning approach (M2M)
背景
广告领域大部分是针对用户建模的,像点击率预估,很少有针对广告主需求建模(广告消耗预估、活跃率/流失率预估、广告曝光量预估),广告的类型较多(搜索广告、展示广告、实时流广告),广告主在不同场景类型上面的行为也不同,这篇文章就是针对广告主建模的。
针对广告主建模的难点:
- 很难建模数据量较小或者新的场景,数据样本太少,无法学习充分
- 场景之间的相互关系比较复杂,较难建模,即便是相同任务,在不同场景也表现不同,如下图,不同任务在不同场景对的皮尔逊相关性。
解决方案:
引入了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) i∈1,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) t∈1,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(i−1)和 b ( i − 1 ) b^{(i-1)} b(i−1)是通过场景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的层数,越深反而效果变差,文章说可能是越深越容易过拟合
相关文章:

多场景建模:阿里多场景多任务元学习方法M2M
multi-scenario multi-task meta learning approach (M2M) 背景 广告领域大部分是针对用户建模的,像点击率预估,很少有针对广告主需求建模(广告消耗预估、活跃率/流失率预估、广告曝光量预估),广告的类型较多&#x…...

仿真机器人-深度学习CV和激光雷达感知(项目2)day03【机器人简介与ROS基础】
文章目录 前言机器人简介机器人应用与前景机器人形态机器人的构成 ROS基础ROS的作用和特点ROS的运行机制ROS常用命令 前言 💫你好,我是辰chen,本文旨在准备考研复试或就业 💫本文内容是我为复试准备的第二个项目 💫欢迎…...

【多商户开源-BSD- Fecmall 电商平台】
关于Fecmall Fecmall 关于,Fecmall介绍 Fecbbc开源BSD多商户系统,真正开源,商用免费授权的多商户系统 Fecmall系统简介: 全称为Fancy ECommerce Shop, 着重于电商架构的研发优化,全新定义商城的架构体系&…...

2023春秋杯冬季赛 --- Crypto wp
文章目录 前言Cryptonot_wiener 前言 比赛没打,赛后随便做一下题目 Crypto not_wiener task.py: from Crypto.Util.number import * from gmpy2 import * import random, os from hashlib import sha1 from random import randrange flagb x bytes_to_long(f…...
ImageMagick使用手册
ImageMagick使用手册 文章目录 ImageMagick使用手册ImageMagick是什么指令总结1.查看版本2.官网验证指令解读3.svg转png4.png转ico5.将指定文件夹中的所有PNG图像转换为ICO图标 本教程持续更新,我学到多少就更新多少。关于ffmpeg如何安装可以看上一篇博客win系统环境…...
嵌入式培训机构四个月实训课程笔记(完整版)-C++和QT编程第五天-Qt编程技巧若干解答(物联技术666)
链接:https://pan.baidu.com/s/1-u7GvgM0TLuiy9z7LYQ80Q?pwd1688 提取码:1688 QT在Windows下制作图表 QT是跨平台的程序设计库,在windows下的程序往往想要有一个好看的图标,方法如下: 1.准备个ICO图标。例如&…...

【蓝桥杯选拔赛真题59】python小写字母 第十五届青少年组蓝桥杯python 选拔赛比赛真题解析
目录 python小写字母 一、题目要求 1、编程实现 2、输入输出...
代码随想录算法训练营Day37|738.单调递增的数字、贪心算法总结
目录 738.单调递增的数字 方法一:暴力解法 方法二:贪心解法 贪心算法总结 738.单调递增的数字 题目链接 文章链接 方法一:暴力解法 class Solution { private:// 各位递增判断函数bool checkNum(int num) {int max 10;while (num) {int …...
笔记-影响力-对比,互惠,赌徒原理
笔记 From 《影响力》 目录 C1 影响力的武器 C2:互惠 C3 承诺和一致 C4:社会认同 C5:喜好 C6:权威 C7:稀缺 Ankie的笔记:对比,互惠,赌徒原理 C1 影响力的武器 人类在认知方面有个原理,叫“对比原理”。 假设有人走进一…...
PIL、cv2、numpy,和pytorch(torch)之间的转换
在图像处理和深度学习中,经常需要在PIL(Python Imaging Library)、OpenCV(cv2)、NumPy和PyTorch之间进行图像数据的转换。下面是这些库之间常见的转换方法。 1. PIL和numpy之间的转换 import numpy as np from PIL i…...

Java面试题50道
文章目录 1.谈谈你对Spring的理解2.Spring的常用注解有哪些3.Spring中的bean线程安全吗4.Spring中的设计模式有哪些5.Spring事务传播行为有几种6.Spring是怎么解决循环依赖的7.SpringBoot自动配置原理8.SpringBoot配置文件类型以及加载顺序9.SpringCloud的常用组件有哪些10.说一…...

电脑怎么剪辑视频?这些软件不可错过
电脑怎么剪辑视频?随着视频时代的到来,越来越多的人开始涉足视频制作。从Vlog到短片,再到专业级的影视作品,视频已经成为了我们生活中不可或缺的一部分。那么,如何才能快速掌握视频剪辑技巧,制作出令人惊叹…...
HBase学习七:Compaction
1、简介 Compaction是从一个Region的一个Store中选择部分HFile文件进行合并。其目的为了减少 HFile 的个数跟清理掉过期和删除的数据。 合并原理是,先从这些待合并的数据文件中依次读出KeyValue,再由小到大排序后写入一个新的文件。之后,这个新生成的文件就会取代之前已合…...

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

【centos7安装docker】
背景: 学习docker,我是想做一个隔离环境,并且部署的话,希望实现自动化,不为安装软件而烦恼,保证每个人的环境一致。 2C4G内存 50G磁盘的虚拟机事先已经准备完毕。 1.查看下centos版本,docker要…...

四、Flask学习之JavaScript
四、Flask学习之JavaScript JavaScript,作为一种前端脚本语言,赋予网页生动的交互性和动态性。通过它,开发者能够操作DOM(文档对象模型)实现页面元素的动态改变、响应用户事件,并借助AJAX技术实现异步数据…...

IO 专题
使用try-with-resources语句块,可以自动关闭InputStream [实践总结] FileIUtils 共通方法最佳实践 [实践总结] java 获取在不同系统下的换行符 [实践总结] StreamIUtils 共通方法最佳实践 斜杠“/“和反斜杠“\“的区别 路径中“./”、“…/”、“/”代表的含义…...

MySql索引事务讲解和(经典面试题)
🎥 个人主页:Dikz12🔥个人专栏:MySql📕格言:那些在暗处执拗生长的花,终有一日会馥郁传香欢迎大家👍点赞✍评论⭐收藏 目录 索引 概念 索引的相关操作 索引内部数据结构 事务 为…...
《微信小程序开发从入门到实战》学习九十一
7.1 视图容器组件 7.1.2 scroll-view组件 scroll-view组件时是滚动的视图容器,可在竖直方向或水平方向上滚动,展示超出屏幕高度或宽度的内容。 使用竖直方向滚动时,需要通过wxss的height样式给scroll-view设置一个固定高度,超出…...

【立创EDA-PCB设计基础】6.布线铺铜实战及细节详解
前言:本文进行布线铺铜实战及详解布线铺铜的细节 在本专栏中【立创EDA-PCB设计基础】前面完成了布线铺铜前的设计规则的设置,接下来进行布线 布局原则是模块化布局(优先布局好确定位置的器件,例如排针、接口、主控芯片ÿ…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...

YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...

3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...

中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...