推荐系统|多目标建模|多目标优化|跨域多目标算法演进

news2024/9/21 4:25:56

目录

多目标建模总结

推荐系统——多目标优化  

网易严选跨域多目标算法演进

背景介绍

多目标建模及优化

1.样本与特征

2. 模型结构迭代

3. 位置偏差与 Debias

4. 多目标 Loss 优化

 5. 跨域多目标建模


多目标建模总结

http://t.csdn.cn/H514i

常见的指标有点击率CTR、转化率CVR、GMV、浏览深度和品类丰富度等。

多目标建模的常用方法:

-多模型的融合

-多任务学习

        底层共享表示的优化

        任务序列依赖关系建模

多目标建模已经成为当前推荐系统中的标配,在多目标建模过程中,需要考虑多个目标之间的相互关系,以选择合适的多目标建模方法,同时,在多目标的损失函数的设计上,也存在很多的优化方案,需要根据具体的应用场景选择合适的损失函数,以达到对具体任务的优化。

推荐系统——多目标优化  

 http://t.csdn.cn/JNdFF

网易严选跨域多目标算法演进

全文目录:

  • 背景介绍

  • 多目标建模及演进

  • 长期价值探索

  • 多场景建模的实践

        其中 Part2 围绕严选业务,介绍如何多目标建模,以及进一步演进至跨域多目标建模的具体做法;Part3 主要分享在推荐业务中长期价值的探索;Part4 则集中在多场景建模,并结合某业务场景的实践进行细粒度讲解。

01

背景介绍

        推荐系统的总体流程可以分成四块,主要是召回、粗排、精排、重排。其中精排会承载很多业务模块的业务指标,在不同业务模块,关注的业务指标有所不同。对于某一些业务指标,存在转化数据比较稀疏,以及冷启动的问题。另外,我们在与业务方的交流中发现,他们关注的一些业务指标与算法目标不直接相关,需要我们去做一些长期价值的探索。

        严选精排算法演进过程,开始是基于深度学习的 CTR 单目标建模,然后在此基础上增加了基于用户行为序列进行建模,接着衍生到多目标建模,最后是跨域多目标建模

 02

多目标建模及优化

1.样本与特征

        近年来,多目标建模是业界排序建模的主流方式,而业务数据和特征工程决定了模型的上限。

        在多目标建模中,我们选取用户的点击与转化行为为正样本,根据 Skip-Above 原则选取曝光未点击的样本作为负样本。此外,在样本构造中还会注意以下几个优化点:

  • \bullet 头部的热门商品可能存在过曝光,需要对这种 Top 流量的商品做降采样。

  • \bullet 短时间之内会存在同一商品的多次曝光,需要在时间窗口对样本进行聚合,保留点击样本、剔除曝光未点击样本。

  • \bullet 虚假曝光,第一种是用户在刷 Feed 流浏览时,快速滑跃或无意识的快速浏览时的曝光;第二种是由于页面布局的影响,导致卡片头部一定比例在页面加载时默认曝光。这两种曝光实际上并没有对用户产生心智影响,因此,需要定制规则去噪。

  • \bullet 假正样本,主要包含用户的误点以及点进去之后快速回退的操作,用户并没有对商品产生兴趣,这类正样本也需要特殊处理。 

        特征工程方面,我们将其分为四类:数值特征、类别特征、序列特征和 Embedding。各类特征处理方式如下

  • \bullet 数值特征的处理,对连续特征进行归一化,或者采用 RankGauss[1](Rank 预处理保留数据排序信息,并转化为高斯分布);然后进行分桶,再计算 Embedding 。

  • \bullet 类别特征,通过哈希映射,对于频率出现过低的一些类别做过滤,同时保留一个默认和异常处理的坑位,再计算 Embedding。 

  • \bullet 序列特征,把用户行为交互序列中的每个元素进行embedding,再做attention 或者Pooling 操作。

  • \bullet Embedding 特征,主要是商品侧的表征特征,基于一个预训练模型得到的Embedding 作为模型中对应的商品侧表征的初始化权重;为处理值域过大的情况,可以做 Normalize 操作。

2. 模型结构迭代

3. 位置偏差与 Debias

        上面介绍了数据特征处理和使用基础的多目标网络结构进行建模,在此基础上,会根据实际业务场景的问题进行优化。

        第一个问题是位置偏差,位置偏差是指推荐 Feed 流场景下用户倾向点击/交互曝光位置靠前的物品,这个信息蕴含在正样本里,可能会导致建模存在偏差。如下图左上角是对某个业务模块做的位置偏差分析,横轴是时间,纵轴是曝光点击率。可以看到随着坑位的逐渐往下,曝光点击率逐渐下降。基于带位置偏差的数据进行模型训练,会形成一个循环反馈,模型去学习这种趋势,然后做预测推荐,会导致位置偏差在不断地放大,从而导致整体的推荐流量生态出现问题,比如部分商品过曝光。

        存在的位置偏差需要做 Debias 的操作。我们做 Debias 的方式是在 MMOE 多任务的基础上,加一个消偏模块。整体结构如上图右边部分,输入是常见的几类特征(用户侧、商品侧、情境上下文,行为交互序列特征)。经过特征预处理后,输入到 Embedding  层,然后会进入 MMOE 主网络。同时会构建一个 Debais 辅助网络,输入主要是 Bias  相关的特征(比如商品曝光的坑位、设备的型号、用户的身份等可能影响到展示位置的特征),经过浅层网络后得到bias 的学习表征。然后把这个结果与多任务主网络学出来的 CTR 结果直接相加,再经过一层激活函数得到最终 CTR 预测结果,CVR 网络无任何操作。Debais 辅助网络的浅层部分,会加上 Dropout,主要是为了防止模型学习结果过于依赖浅层网络的特征,保证模型的鲁棒性。

        多任务模型 Debias 优化上线 AB 后,人均点击数+4.95%、曝光点击率+1.70%。需要说明的是,Debias 优化需要根据具体业务特点做判断,我们的场景 AB 刚上线前几天,会对某些业务指标产生非正向收益,因为 Debias 会对热门做打压,对长尾的商品进行扶持,这可能会影响销售额。Debias 优化,本质上是从整体业务生态或者长期收益的角度考虑问题,在短期内能承载一部分收益下降的前提下,可以推全放量,它会带动整体推荐流量生态向良性、健康的方向发展。 

4. 多目标 Loss 优化

        此外,在 CTR 跟 CVR 目的基础上根据业务方的需求增加更多的目标,包括加购、评论商品、查看促销信息、分享、收藏等。有些目标如收藏、分享的转化数据相对会比较稀疏,这些任务与 CTR、CVR 样本比较丰富的任务一起训练时,由于样本过于稀疏,会导致训练不够充分,被带偏。

        针对转化目标比较稀疏,训练不充分的问题。我们会考虑在损失函数上引入 Focal Loss[4] 替换交叉熵函数。如上图中的 FL(p, y),Focal Loss 在交叉熵基础上,增加了 P 和 Gamma 两个参数,P 就是模型预测样本是否为正样本的概率。看损失函数第一项,对于正样本,P 的预测接近 1 时,1-p 的 Gamma 次方会更加接近于 0,那么很容易区分的那部分正样本,损失会下降非常明显;P 的预测接近 0 时,损失无太大变化。对负样本的处理与正样本同理。Focal Loss 目的是让 Loss 去关注/聚焦比较难以区分样本信息,Gamma 参数是去调节聚集程度。还可以再引入一个类别权重参数A lpha,去解决正负样本不平衡的问题。比如 Alpha 定义为正负样本比,增强正样本的损失影响。 

        另外,多个子任务一起训练时可能存在某个子任务被带偏的情况,即跷跷板(Seesaw Phenomenon)效应。我们尝试使用 Gradnorm[5] 梯度归一化来控制 WI 的权重。梯度归一的目标是让不同的任务的 Loss 梯度量级更加接近,同时还可以让不同任务的学习速率也更加接近。通过这两个点优化 WI 权重,让各个任务的学些更加平衡。上图右下角两张图是 CTR、CVR 训练速度的展示。红线是它原有的训练速度,蓝线是经过 Gradnorm 调整之后的,可以看到调整之后,训练的速度接近 1 左右,不会出现速度训练过快或过慢的情况。

        多目标损失优化,引入 Focal Loss 和 GradNorm 控制损失权重后,整体上线 AB 实验,CTR +6.92%,CTCVR+5.87%,都有显著提升。 

 5. 跨域多目标建模

        在我们的业务中,会涉及到很多场景,比如新客、新品页面,用户的行为数据会比较稀疏,还有新上线的业务模块,刚上线数据非常少,处于冷启状态。那么在这些场景下,如何能够让模型学习得更好呢?那就需要考虑多场景的跨域建模。引入多场景的好处在于,首先让模型先意识到场景之间的差异性,建模拟合映射由 P(y|x) -> P(y|x, d),输入增加了场景信息(Domain)。另外小样本的场景,能够通过对样本更加丰富/比较成熟模块的场景共性的刻画和迁移学习,让模型对小场景也能够取得更好的效果。 

跨域多目标算法的整体网络结构,如上图。

        底层输入特征(包括用户侧、商品侧、上下文情境、行为序列特征),经过特征预处理进入 Embedding 层,然后进 MMOE 层进行多任务的信息抽取。网络右边部分是一个辅助网络,把域/不同场景/Domain Field 相关的特征输入,然后经过一个 Domain Tower 得到对应场景的抽象特征。然后将场景的抽象特征与多任务的输出表征共同输入到 STAR 网络层(参考阿里 STAR 文章[6]),STAR 的拓扑结构里包含两种塔:共享 Share塔、表征不同场景的 Domain塔。Share塔主要去学习场景的一些共性信息,Domain 塔去学习各个不同场景对应的独特信息,之后对两边塔的权重进 Element相乘后得到的结果,作为每个场景的权重,最终得到每个场景下不同任务的输出。 

        这个优化上线后,在主场景和小样本场景上取得的效果有些差异,小样本场景下的提升更加明显,曝光转化率和曝光点击率有 10.8% 和 3.5% 的相对提升。主场景下,本身数据比较丰富,效果提升没有那么显著,曝光转化率和曝光点击率分别有 2.2% 和 0.81% 的提升。

 

(2023年 4月19日 10:26首次发布)


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

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

相关文章

电、气物联网联合管理监测方案

一、概述 水、电、气联合管理就是把同一个用户的用电计量和用水计量、用气计量统一到一个账户(同时具有子账户),用一套软件进行统一管理,当账户余额不足时,可实行停电催费,从而既达到预付费的目的&#xff…

hue源码编译,替换cloudera manage hue,解决hue滚动条bug问题

一.安装依赖 yum install python python-dev python-setuptools python-pip \ libkrb5-dev libxml2-dev libxslt-dev libssl-dev \ libsasl2-dev libsqlite3-dev libldap2-dev \ libffi-dev nodejs npm cmake make gcc g++ 二.拉取源码 wget https://github.com/cloudera/hue/a…

机器学习笔记之K近邻学习算法

机器学习笔记之K近邻学习算法 引言回顾:投票法回顾:明可夫斯基距离 K \mathcal K K近邻算法算法描述 K \mathcal K K值的选择小插曲:懒惰学习与急切学习 KD \text{KD} KD树描述及示例 K \mathcal K K近邻 VS \text{ VS } VS 贝叶斯最优分类器…

汽车基础软件信息安全与AUTOSAR

AUTOSAR 信息安全框架和关键技术分析 随着汽车网联化和智能化,汽车不再孤立,越来越多地融入到互联网中。在这同时,汽车也慢慢成为潜在的网络攻击目标,汽车的网络安全已成为汽车安全的基础,受到越来越多的关注和重视。AUTOSAR 作为目前全球范围普遍认可的汽车嵌入式软件架…

HDFS FileSystem 导致的内存泄露

目录 一、问题描述 二、问题定位和源码分析 一、问题描述 ftp程序读取windows本地文件写入HDFS,5天左右程序 重启一次,怀疑是为OOM挂掉,马上想着就分析 GC日志了。 ### 打印gc日志 /usr/java/jdk1.8.0_162/bin/java \-Xmx1024m -Xms512m …

Net2FTP搭建免费web文件管理器『打造个人网盘』

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! 前言 文件传输可以说是互联网最主要的应用之一,特别是智能设备的大面积使用,无论是个人存储文件资料,还是商业文件流转&#xff0c…

老杨说运维 | 数智时代,运维一体化如何落地实践?

在IT运维的发展过程中,随着分布式架构的加速推进,云原生技术加入应用,运维工具相比过去呈现出了更高强度的进化态势,即从多个相对独立的软件向EA形态的一体化系统进化。本次樱花论坛正是基于这一新的变革点,邀请了行业…

(十二)rk3568 NPU 中部署自己训练的模型,(2)模型转换

对于rknn 模型部署,本人使用*.pt -> *.onnx -> *.rknn的方式。 一、首先是pt文件到onnx文件的转换。 onnx文件导出时,需要修改models/yolo.py文件中的后处理部分。 注意:在训练时不要修改yolo.py的这段代码,训练完成后使用export.py进行模型导出转换时一定要进行修…

RHCE第六次作业

目录 一、编写脚本for1.sh,使用for循环创建20账户,账户名前缀由用户从键盘输入,账户初始密码由用户输入,例如: test1、test2、test3、.....、 test10 1.创建脚本for1.sh 2.执行脚本并查看是否创建成功 二、编写脚本for2.sh,使用for循环,通过…

微积分:微分

目录 1.代数推导 2.几何推导 3.总结 1.代数推导 假设我们有一个正方形初始边长为X,这时面积S1x 然后正方形的边长增加△x,此时面积S2(x△x) 变化的面积大小是△s(x△x)- x2x△x(△x&#x…

软件测试外包干了4年,感觉废了..

先说一下自己的情况,大专生,18年通过校招进入湖南某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

c++算法——枚举法

枚举概念 枚举法是通过计算机速度快的特点,对问题所有可能性进行枚举,从中找到答案,需要利用循环。 例题 1,简单数字谜 题目描述 在□内填上一个合适的相同的数字,使等式“□365283□8256”成立。 输入格式 无 输出…

5.2 构造数值积分公式的基本方法与有关概念

学习目标: 如果要学习构造数值积分公式的基本方法与有关概念,可以遵循以下步骤: 1.了解数值积分的基本概念和性质:包括积分的定义、积分的性质、数值积分的定义及其误差等。这可以通过课本或相关的学习资料来了解。 2.掌握构造…

ubuntu 安装vmware tool(优先安装最新ubantu,可以不安装vmware tools)

1在虚拟机种站到安装vmware-tools 然后重启虚拟机 2在磁盘中可以看到如下文件,将zip文件移动到桌面解压备用 3关闭虚拟机 找到编辑虚拟机设置 4点击左侧 CD/dvd(SATA) 如果是使用镜像文件,改成使用物理驱动器. 5 打开命令行 cd 桌面 (如…

yara规则--构建yara规则库

零、快速构建yara规则库的方案 Yara官方预置的规则库,链接 https://github.com/Yara-Rules/rules ClamAV的特征码转换为yara规则,利用工具clamav_to_yara.py将clamav的特征码转换为yara规则 从yara-generator爬取别人上传的样本的规则 利用 yarGen工具 …

电容笔和触控笔有什么区别?2023平价好用的电容笔测评

无论是导电的材料,还是工作的原理,还是操作的方式,甚至是价格,电容笔都和一般的触控笔有着明显的区别。电容笔具有更小的笔尖,并且具有更好的耐磨性。而且现在科技进步很快,IPAD的市场也越来越大&#xff0…

【蓝桥杯省赛真题18】python阴影图形面积 青少年组蓝桥杯python编程省赛真题解析

目录 python阴影图形面积 一、题目要求 1、编程实现 2、输入输出

Linux-零拷贝及Java实现

RabbitMQ比RocketMQ、Kafka较慢点一点重要原因就是 零拷贝 什么是零拷贝? 零拷贝指的是在进行IO的时候减少或避免让CPU拷贝数据(数据在IO缓冲区中进行拷贝) 零拷贝的优点: 减少甚至完全避免不必要的CPU拷贝,从而让C…

paddlepaddle 的 CPU 和 GPU

想记录一下一个 bug 改了一上午改到最后发现并没有 bug 的 bug。 总结: 因为下午要跑很久,为了省 GPU 算力,我想上午先用 CPU 把数据处理部分跑出来(感觉数据处理部分不像网络训练那样涉及太多计算,所以感觉用 CPU 就…

JavaWeb开发 —— MyBatis动态SQL

目录 一、XML映射文件 1. 介绍 2. MyBatisX插件 二、MyBatis动态SQL 1. if 2. foreach 3. sql & include 一、XML映射文件 1. 介绍 ① XML映射文件的名称与Mapper接口名称一致,并且将XML映射文件和Mapper接口放置在相同包下(同包同名…