阿里妈妈展示广告召回之多场景建模算法

news2024/11/15 23:50:00

目录:

· 摘要

· 背景

· 方法

·  实验分析

· 总结

· 参考文献

1. 摘要

工业推荐系统通常拥有多个业务场景,并需要同时为这些场景提供推荐服务。在召回阶段,从大量商品库中选出的个高质量商品需要针对不同场景进行相应调整。以阿里妈妈展示广告为例,不同场景下的淘宝用户行为模式多种多样,同时广告主分配给不同场景的出价差异也较大。传统方法或是单独为每个场景训练模型,忽略了用户和商品的跨场景关联关系;或是简单地混合所有样本并维护一个共享模型,这使得模型很难捕获场景之间的显著差异。

在本文中,我们提出了自适应领域兴趣网络Adaptive Domain Interest Network,简称ADIN),它能自适应地处理数据在不同场景下的共性和差异性,因此该网络能在训练过程中充分利用来自不同场景的大量数据。通过在线推理过程中为不同的场景提供不同的候选集,ADIN能够有效提高各个业务场景的在线效果。具体而言,我们提出的ADIN包含共享网络和场景私有网络,分别对不同场景数据的共性和差异性进行建模。此外,我们还使用场景感知的批归一化方法,并设计了用于特征级领域适配的领域兴趣自适应层。最后,ADIN还结合了自监督训练策略,以捕获跨场景的标签级关联关系。目前,ADIN已在阿里妈妈展示广告系统中全量上线,并获得了可观广告收入增长。

2. 背景

现代推荐/广告系统通常包含召回、粗排、精排、重排等多个阶段。在召回阶段,最重要的目标是从海量商品库中筛选出个高质量商品候选集并送入后续的排序模块[1]。而现代工业级推荐/广告系统通常会接入多个业务场景,来自不同业务场景的数据通常拥有一定的共性和差异性。就共性而言,不同业务场景通常在商品/用户上有一部分重叠;换言之,用户的兴趣和商品信息可以直接从一个场景迁移至另一个场景。就差异性而言,由于不同业务场景的用户行为,商品准入规则以及广告主的出价都不尽相同,导致不同场景的数据分布存在着一定的差异性。现有的解决方案通常可以分为三类:a)单独为每个场景学习不同的模型,这样做的缺点在于维护多条数据链路和模型需要耗费很多的人力和算力,同时模型无法学习到场景间的可迁移知识;b)混合不同场景的样本并训练一个共享模型,这种方案需要进行针对性的设计,否则不同场景的任务在训练时可能会发生冲突;c)混合不同场景的样本并以多任务学习结构训练一个统一的模型。虽然多场景学习和多任务学习在结构上相似,但是我们认为这两种任务还是存在一定区别:多场景学习输入的数据分布通常有较大的差异,但各场景的学习目标是一致的[2];多任务学习的输入通常一致,但是不同任务的学习目标不同[3]。

本文提出了一种自适应领域兴趣网络(ADIN)用于同时为多个场景的用户兴趣建模。首先,ADIN用一组共享网络和私有网络建模不同场景间的共性和差异性;其次,为了完成特征级别的领域自适应,我们实现了两种领域自适应方案:场景感知的批归一化和领域兴趣自适应层;最后,我们实现了一种自监督学习方案,以捕获标签级别的场景关联关系。本文主要成果:

  • 我们提出了在召回侧用于解决多场景推荐任务的网络结构ADIN,ADIN高效地建模不同场景间的共性和差异性,并最终为各个场景同时带来效果提升;

  • 我们实现了两种领域自适应方案:场景感知的批归一化和领域兴趣自适应层,用于捕捉场景间的差异性;同时,我们实现了一种自监督学习策略,以捕获标签级别的场景关联关系;

  • 我们在工业界和学术界数据集上验证了ADIN的优越性,同时在阿里妈妈展示广告系统中部署了ADIN,获得了1.8%的广告收入增长。

3. 方法

3.1 骨干网络

图3-1展示了ADIN的整体架构图,流程遵从灰色箭头顺序。整体架构属于双塔结构,用户侧和商品侧的模型结构类似(在实际线上应用中,我们基于二向箔算法[4]提供的ANN检索能力,将最后一层的用户、商品相似度量函数从内积形式升级为了DNN网络,具体可参考《TDM到二向箔:阿里妈妈展示广告Match底层技术架构演进》)。首先特征会被送入领域兴趣自适应层,进行特征级别的领域自适应,不同场景的样本特征将被分配以不同大小的特征权重;随后变换后的特征会被送入共享网络和场景私有网络,其中所有场景的样本都会通过共享网络,而当前场景样本会通过场景标志符选出场景私有网络并送入当前场景网络。得到共享网络和场景私有网络的输出后,两者的输出会经过一个融合层并送入最后的场景私有前向网络,最后计算Sampled Softmax Loss。

e0d4b781d5ab207dc91e5e3a4e3ea3ec.png
图3-1 ADIN整体架构

3.2 领域自适应

在本文中我们实现了两种领域自适应方案:场景感知的批归一化和领域兴趣自适应层。批归一化(Batch Normalization,简称BN)技术已经在神经网络设计中得到了广泛地应用;BN假定输入数据遵循独立同分布假设,这在单一场景下是适用的。然而在多场景推荐任务中,来自不同场景的数据分布往往具有较大差异;因此我们将现有模型中的批归一化部分升级为了场景感知的批归一化(Domain-Specific Batch Normalization,简称DSBN)[5]。如图3-2所示,通过计算不同场景batch内的参数统计值,DSBN实现了对场景相关信息的捕捉:

16b8120be340004271ca4efd50dad18b.png
图3-2 DSBN示意图

而领域兴趣自适应层用于自动赋予不同场景的样本不同的特征权重,考虑到不同的场景可能会关注于原始特征的不同部分。我们实现了三种形式的领域兴趣自适应层,并在实践中发现基于SE-Block注意力机制[6]实现的版本效果最好,具体实现如下:

其中是一个标准的SE-Block,由()这样的网络结构组成。领域兴趣自适应层通过学习不同场景下的不同注意力权重,以一种轻量且高效的方式捕获跨场景差异性。

3.3 自监督学习

自监督学习是一种在训练时高效利用无标签数据的训练策略,我们首次将这种技术引入多场景推荐任务中。因为当不同场景的用户/商品存在重叠时,训练数据中存在潜在的标签级关联关系;具体而言,若用户在一个场景下交互某个商品,该用户仍有概率在另一场景交互该商品。这一假设尤其适用于数据量丰富的场景帮助数据量稀疏的场景,甚至一个新场景。

给定用户、商品以及场景,自监督学习策略会计算该用户在其他场景对该商品的匹配分数,大于一定阈值则将这条样本训练产生的梯度回传给场景的模型参数。简单而言,该策略在模型正常训练中交替执行以下两个步骤:

  • 冻结模型参数,生成伪标签,并根据阈值筛选置信的伪标签;

  • 冻结伪标签,微调模型参数。具体实现如图3-3所示。

2e29e4990753c241ad8e08ae3ff33aa8.png
图3-3 自监督学习伪代码

4. 实验分析

本节中我们选择了部分实验结论进行展示,更多实验细节与结论请参考原论文。(Adaptive Domain Interest Network for Multi-domain Recommendation,https://dl.acm.org/doi/abs/10.1145/3511808.3557137)

4.1 对比和消融实验

我们在真实在线系统的数据集进行训练及测试,该数据集包含三个场景的样本。从表4-1可见,ADIN相对于各类基线模型均能获得显著的提升。值得注意的是,混合三场景样本共同训练的DNN在场景二、场景三上的效果优于独立场景独立训练的DNN-single,然而在场景一上的效果却更差。这种现象表明,简单地混合训练数据而不设计特定的模型结构可能会损害模型性能。

f707fe84374f7873bfc01db9e0b9d880.png
表4-1 与基线模型的对比实验结果

在表4-2中,详细的消融实验结果表明,该方法在各个场景下均能带来正向收益。升级后的场景感知的批归一化技术能够有效解决不同场景数据分布不一致的问题,建模场景间的差异性;领域兴趣自适应层能自动给予不同场景下特征的不同权重;而自监督学习策略能有效捕捉不同场景间样本在标签级别的关联关系,进一步提升多场景建模的效果。

a17fd871436b38596cfa690fc574a443.png
表4-2 消融实验结果

4.2 SE-Block使用方案对比实验

我们认为SE-Block的正确使用方法对最终模型效果至关重要。如图4-1所示,我们对比三种不同的SE-Block的使用方案,分别是:

  • 1-SE:使用一个全局SE-Block作为通用的特征权重放缩层;

  • 3-SE:为每个场景设计一个SE-Block作为领域兴趣自适应层,对应场景的样本会通过对应场景的SE-Block;

  • 4-SE:在私有/公有网络中均加入SE-Block,单纯增加模型的复杂度而不是对特征进行领域自适应操作。

1167f524938961cc6317721e9666baec.png
图4-1 不同SE-Block使用方案示意图

从表4-2的结果可知,1-SE版本的性能最差,3-SE版本的性能最好。一个有趣的现象是,即使模型参数增加,4-SE版本的效果并不比3-SE更好。因此,我们建议使用3-SE版本作为领域兴趣自适应层,而不是单纯地增加网络复杂度。

364abf9ce4fce7516c7b70eb7fe37d19.png
表4-2 不同SE-Block使用方案实验结果

4.3 可视化

为了给出领域兴趣自适应层有效性的直观证据,我们可视化了不同场景的SE-Block注意力权重。如图4-3所示,不同的暗度分布表明每个场景关注特征的强度差异。值得注意的是,我们将场景一、场景二、场景三中提取的统计特征(CTR、CLICK、COST和PAYNUM)分别用红色、绿色和黄色线框框出。可以看到,领域兴趣自适应层自动分配给场景相关特征更高的注意力分数,这证明了我们提出的场景兴趣适应层的有效性。

083db9bb45b798694d0a188322d211fb.png
图4-3 场景兴趣适应层权重可视化

4.4 在线实验

目前该模型已部署在阿里妈妈展示广告系统。为得到稳定结论,我们观察了一段时间的在线实验。广告系统中的三个常用指标用于衡量在线性能:RPM(千次展示消耗)、PPC(单次点击成本)和CTR(点击率)。如表4-4所示,在我们的在线A/B测试实验中,ADIN在三个场景下均取得了在线指标的有效提升。

d8be6a3459555baf73b1fbe418248473.png
表4-4 在线A/B实验结果

5. 总结

本文聚焦多场景下的推荐问题。与现有工作相比,我们提出的ADIN尝试将领域自适应技术应用于推荐系统的召回阶段。骨干网络有效地学习多个场景间潜在的共性和多样性;DSBN组件和领域兴趣自适应层用于特征级领域自适应;自监督学习训练策略则可以捕获跨场景的潜在标签级连接。在公共和工业数据集上的实验验证了该方法的优越性。同时,我们从多个维度广泛地讨论和验证了所提出方法的有效性,并对每个组件的正确使用方案给出了建议。ADIN已在阿里妈妈展示广告系统全量上线,并获得了可观广告收入增长。

该项工作相关内容已发表在 CIKM 2022,欢迎阅读交流。

论文:Adaptive Domain Interest Network for Multi-domain Recommendation

下载:https://dl.acm.org/doi/abs/10.1145/3511808.3557137

参考文献

[1] Paul Covington, Jay Adams, and Emre Sargin. 2016. Deep neural networks for youtube recommendations. In Proceedings of the 10th ACM conference on recommender systems, 191–198.

[2] Yang Zou, Zhiding Yu, Xiaofeng Liu, BVK Kumar, and JinsongWang. 2019. Confidence regularized self training. In Proceedings of the IEEE/CVF International Conference on Computer Vision, 5982–5991.

[3] Xiao Ma, Liqin Zhao, Guan Huang, Zhi Wang, Zelin Hu, Xiaoqiang Zhu, and Kun Gai. 2018. Entire space multi-task model: an effective approach for estimating post-click conversion rate. In The 41st International ACM SIGIR Conference on Research & Development in Information Retrieval, 1137–1140.

[4] Rihan Chen, Bin Liu, Han Zhu, Yaoxuan Wang, Qi Li, Buting Ma, Qingbo Hua, Jun Jiang, Yunlong Xu, Hongbo Deng, et al. 2022. Approximate nearest neighbor search under neural similarity metric for large-scale recommendation. arXiv preprint arXiv:2202.10226.

[5] Woong-Gi Chang, Tackgeun You, Seonguk Seo, Suha Kwak, and Bohyung Han. 2019. Domain-specific batch normalization for unsupervised domain adaptation. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, 7354–7362.

[6] Jie Hu, Li Shen, and Gang Sun. 2018. Squeeze-and-excitation networks. In Proceedings of the IEEE conference on computer vision and pattern recognition, 7132–7141.

END

f2f8edebfbd6ad1bbc5572adeafac0d9.gif

也许你还想看

TDM到二向箔:阿里妈妈展示广告Match底层技术架构演进

从二值检索到层次竞买图——让搜索广告关键词召回焕然新生

DC-GNN:面向大规模广告召回场景的解耦式图模型方法

阿里妈妈展示广告智能拍卖机制的演进之路

关注「阿里妈妈技术」,了解更多~

b1f016e8c2360dff5d30780773b8e7a8.gif

喜欢要“分享”,好看要“点赞”ღ~

↓欢迎留言参与讨论↓

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

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

相关文章

认识 MySQL数据库和Redis缓存的数据一致性问题

文章目录1. 什么是数据的一致性2. 数据不一致情况及应对策略3. 数据一致性中需要注意的其他问题有哪些?1. 什么是数据的一致性 “数据一致”一般指的是:缓存中有数据,缓存的数据值 数据库中的值。 但根据缓存中是有数据为依据,…

微信外卖点餐小程序毕业设计,微信订餐小程序系统设计与实现,微信小程序毕业设计论文怎么写毕设源码开题报告需求分析怎么做

基于微信小程序的毕业设计题目(5)php点菜外卖小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板) 项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于微信小程序外卖点菜系统,前台用户使用小程序,后台管理使用基PHPMySql的B…

【AI入门】利用Paddle实现简单的数字识别

梳理逻辑 整个流程 准备好Paddle的环境准备好训练样本设计模型(定义模型)训练模型模型测试 1、准备好环境 #加载飞桨和相关类库 import paddle from paddle.nn import Linear import paddle.nn.functional as F import os import numpy as np import matplotlib.pyplot as plt…

Kafka 为什么那么快?

有人说:他曾在一台配置较好的机子上对 Kafka 进行性能压测,压测结果是 Kafka 单个节点的极限处理能力接近每秒 2000万 条消息,吞吐量达到每秒 600MB。 那 Kafka 为什么这么快?如何做到这个高的性能? 本篇文章主要从这…

梯度消失、梯度爆炸和梯度裁剪(Gradient Clipping)

消失梯度 网络训练过程中,如果每层网络的梯度都小于 1,各层梯度的偏导数会与后面层 传递而来的梯度相乘得到本层的梯度,并向前一层传递。该过程循环进行,最后导 致梯度指数级地减小,这就产生了梯度消失现象。这种情况…

第6季2:H264编码原理与基本概念

以下内容源于网络资源的学习与整理,如有侵权请告知删除。 参考博客 (1)H264 编码基本原理_ByteSaid的博客-CSDN博客_h264编码原理 (2)H264 编码简介_mydear_11000的博客-CSDN博客 (3)什么是I帧…

鸿蒙3.0应用开发体验

鸿蒙os3.0发布以来,华为官方开始主推etsarkui开发模式,逐渐抛弃java,为以后去安卓化做铺垫,但目前在笔者体验来看,仍需要大力完善,还有很长的路要走! 什么是ets?ts是js的超集&#x…

日志、logback

logback下载步骤: logback官网https://logback.qos.ch/index.html教程http://t.csdn.cn/xSK0I 点击SLF4J API进去,注意看右上角的标题是有变化的,是什么目录下就会显示什么目录,点击下载 然后一样点击右下角的Maven 下载这三个&a…

centos7 基于Dledger搭建rocketmq 5.0.0并集成到微服务(1主2从)

小伙伴们,你们好呀,我是老寇,好久不见啦,甚是想念。 rocketmq和rocketmq-console安装包:https://pan.baidu.com/s/1swrV9ffJnmz4S0mfkuBbIw 提取码:1111 1.准备三台主机 192.168.1.1rocketmq&#xff0…

Verilog语法之generate for、generate if、generate case

0、前言 Verilog-2005中有3个generate 语句可以用来很方便地实现重复赋值和例化(generate for)或根据条件选择性地进行编译(generate if和generate case)等功能。接下来就一起看下这3个语句的应用场景和应用方法吧。 1、generate …

Hotspot垃圾收集器一览

上篇文章我们介绍了如何判断对象是否为垃圾,有垃圾就要清理,清理就需要 垃圾收集器。 垃圾收集器(Garbage Collector)是垃圾收集GC的实现,根据是否分代收集可将垃圾收集器分为两种类型:分代收集和不分代收集。 分代收集 Serial垃…

多线程编程带来的不安全问题

目录 1.观察线程不安全问题 2.出现线程不安全问题原因 2.1 根本原因 2.2 代码结构 2.3 原子性 2.4 内存可见性问题 2.5指令重排序 3.通过原子性解决线程安全问题 4.synchronized的使用方法 4.1 修饰方法 4.2 修饰代码块 1.观察线程不安全问题 如果多线程环境下代码…

餐饮企业提升用户价值,从基于点单链路的精细化运营开始

近几年,餐饮业的经营增长面临着巨大挑战,在这种情况下,餐饮企业如何提升用户价值,提高多风险下持续增长的动力呢?神策数据杨丽月聚焦用户运营,围绕“一条链路,四个指标”,跟大家分享…

C# 标签式导航

一 标签式导航 使用TabControl控件,将多个页面结合起来,每个标签关联一个页面。 TabControl 选项卡容器; TabPage选项页; 可以在设计器里添加页面,也可以代码方式添加。 操作演示: ① 选中TabControl; ②…

框架skywalking部署笔记

一旦你的程序docker化之后,你会遇到各种问题,比如原来采用的本地记日志的方式就不再方便了,虽然你可以挂载到宿主机,但你使用 --scale 的话,会导致 记录日志异常,所以最好的方式还是要做日志中心化,另一个问题,原来一个请求在一个进程中的痉挛失败,你可以在日志中巡查…

linux的内存映射(二)

我们先来看幅图: Linux内存管理的最底层是buddy内存管理方案,即伙伴算法,管理伙伴算法我们不做详诉,有兴趣的可以自行学习,我们这里只要知道buddy内存池中只能分配2^n个page的内存,比如1,2,4,8……个pages…

前端面试指南之JS面试题总结

1. JS 有哪些数据类型? 根据 JavaScript 中的变量类型传递方式,分为基本数据类型和引用数据类型两大类七种。 基本数据类型包括Undefined、Null、Boolean、Number、String、Symbol (ES6新增)六种。 引用数据类型只有Object一种,主要包括对象…

pve扩展lvm空间,重做物理卷

pve扩展lvm空间,重做物理卷pve扩展lvm空间,重做物理卷必备知识扩展步骤1.查看当前机器状况2.查看盘符3.确定是否有可分配空间4.确定物理卷分配情况5.(可略)如果你的空闲的盘已经挂载了请用以下命令卸掉6.创建物理卷7.查看卷状态8.…

day7_redis学习

文章目录Geo查找附近商铺BitMap实现用户签到UV统计Geo查找附近商铺 Geo是GeoLocation的简称,代表地理坐标,在Redis 3.2中加入了对Geo的支持,允许存储地理坐标信息,常见的命令有: ①GEOADD key x y member [x2 y2 member]&#xf…

(一)SpringBoot项目初始化并引入基础文件【木字楠后台管理系统模板】

🎶 文章简介:SpringBoot项目初始化并引入基础文件【木字楠后台管理系统模板】 💡 创作目的:为了带大家完整的体验木字楠后台管理系统模版的开发流程 ☀️ 今日天气:天气☁️很好。太阳晒在身上暖暖的 📝 每…