多目标融合参数搜索

多目标融合

权重分类目人群。

trick

normlize

  1. 不同Score之间含义、量级和分布差异较大:评分计算的不同部分的意义、范围和分布存在显著差异,这使得直接比较或融合它们的结果变得困难。
  2. 显式反馈(如点赞率)存在用户间差异:不同用户的显式反馈(如点赞率)有很大差异,很难用统一的权重来处理它们。这意味着一种通用的方法可能无法对所有用户都有效。
  3. 依赖于模型预估值的绝对大小:当前方法依赖于预测值的绝对大小,当预测值的分布发生改变时,可能需要重新进行调整或校准。
    多目标分数normalize

off-policy

1.手工融合,网格搜索和随机搜索是常采用的方法。
网格搜索(Grid Search)网格搜索是一种遍历所有超参数组合的方法,通常用于小规模的超参数空间。
随机搜索(Random Search)随机搜索则是在超参数空间内进行随机采样,这对于大规模超参数空间较为有效。

2.树模型拟合。
树模型规则Ensemble融合
● 使用GBDT模型,引入pXtr、画像和统计类特征,拟合组合label:
● 采用加权Logloss:
● 上下滑无负样本,通过拷贝正样本实现对目标无偏估计;
● 等价于将叶子结点转换为打分规则,得到打分的Ensemble,也叫RuleFit。
● 该方法的缺点是树模型表达能力有限,且无法online learning。

3.超参ltr
首先,介绍一个简单的双塔形式的DNN,如上图右侧网络结构所示,视频塔直接把各种个性化预估值拼在一起,形成一个24维向量;用户塔的顶层向量通过网络学习,产出一个24维向量。最后,对视频塔和用户塔产出的向量做内积,损失函数采用加权Logloss:
由此,相当于通过学习线性加权的超参数去拟合最终的组合收益。其次,用户特征选用了一种比较轻量级的方式,比如对用户划分不同的时间窗口:过去1分钟、5分钟、15分钟、…、2小时,每个时间窗内,对推荐给他的视频,根据用户的反馈拼接成一个向量,这些反馈包括有效播放、点赞、关注、分享、下载、观看时长等,最后,将各时间窗口对应的反馈向量和ID类特征一起输入到用户侧网络。

4.端到端ltr
上述双塔形式的DNN及其轻量级的特征表达,依然限制了模型的表达能力。继而,考虑端到端学习,主要尝试了Pointwise和Pairwise两种形式。
1.对于Pointwise形式,把user_id、行为序列等都作为原始输入特征,同时,融入pXtr特征,使用精排模型来学习最终的组合收益。因为这种方式支持更复杂的特征抽取和网络结构,如attention结构,所以模型的表达能力更强。

5.对于Pairwise形式,在一次用户请求返回的6个视频之间,对每种目标都如下操作:先通过该目标的正样本和负样本构造偏序对,再使用DNN网络学习偏序对的打分,对打分做sigmoid变换,最后通过交叉熵损失产出loss。下述公式表示的是like目标:
● 优点 离线方法是off-policy的方法,数据利用率高(100%样本都可以被使用),且模型的自由度和复杂度较高,可以容纳item embedding并使用稀疏特征,可以训练千亿规模的参数。
● 缺点 优化的离线AUC无法直接反映业务指标。因为这个过程做了很多简化,推荐系统不是精排之后就直接对接用户了,中间还有重排(比如多样性)等的影响,甚至还有一些商业化/运营流量的混排融合,所以该方法难以考虑到线上复杂多模块间的完整影响。此外,线下训练数据和线上数据也存在分布不一致的问题。

6.进化策略(Evolutionary Strategy)

爱奇艺采用的PSO进化优化算法
粒子群算法Particle Swarm Optimization详解
Evolution Strategies

7.强化学习(Reinforcement Learning)
利用强化学习算法,如 Q-learning 或深度强化学习,来搜索超参数空间。

on-policy

在线超参数学习算法基于探索与利用机制
探索:会在baseline附近探索生成N组参数,传给推荐系统后获得这N组参数对应的展现给用户的差异化排序结果,从而获得不同用户的反馈。
收集这些反馈日志并做收益(reward)统计,衡量在每组参数下,时长和互动指标相比基线的涨跌幅度。比如,观看时长涨了3%,而点赞跌了5%。此外,这里区分了收益项和约束项:

  • 收益项是主要优化目标,比如视频观看时长、个人页停留时长、评论区的时长等。
  • 约束项包括各种互动,比如播放、点赞、关注等。约束项使用非线性约束:阈值内做线性的弱衰减,可以用一些约束轻微的去兑换时长;超出阈值的做指数强衰减,避免约束项过分被损害。

最终送给BayesOpt/ES/CEM等调参算法产生下一组更好的参数。经过不停迭代,参数就会向一个多目标协调最优的方向前进。
在这里插入图片描述

在线的超参数学习方法具有以下优缺点:
● 优点 直接优化线上指标,灵活性高且反馈迅速,并且可以把推荐系统当做一个黑盒,无需关心内部细节。且可以做多场景联合优化,不限于ranking,在召回等场景也可以用。
● 缺点 需要在线上划分出一部分探索流量(大约5%),从而影响少部分用户体验,且由于数据稀疏,受噪声影响较大,尤其是一些稀疏的动作标签,比如分享、下载、收藏等;能容纳的参数量较小,一般几十到数百,相对离线学习的参数规模小很多。

1.CEM(Cross-Entropy Method)
CEM是一种基于采样和统计的全局优化算法,通过迭代优化一个概率分布,从而找到目标函数的最优解。其基本步骤如下:
初始化分布:选择一个初始的概率分布,例如高斯分布,随机设置一个 n n n维均值向量 μ \mu μ, n维方差向量 θ 2 \theta^2 θ2。分别对应于 W W W的每一维。
采样候选解:从该分布中采样一批候选解,计算reward。
选择topk样本:根据目标函数值选择表现最好的前 k k k的样本。
更新分布参数:使用topk样本来更新概率分布的参数,并对方差做微小扰动(防止过早陷入局部最优),得到新的高斯分布。
μ i ′ = 1 M ∑ s ∈ S θ i ( s ) σ i ′ 2 = 1 M ∑ s ∈ S ( θ i ( s ) − μ i ′ ) 2 \mu_{i}' = \frac{1}{M} \sum_{s \in S} \theta_{i}^{(s)} \\ \sigma_{i}'^2 = \frac{1}{M} \sum_{s \in S} \left( \theta_{i}^{(s)} - \mu_{i}' \right)^2 μi=M1sSθi(s)σi′2=M1sS(θi(s)μi)2
重复迭代:重复以上步骤,直到收敛或达到预定的迭代数。

该算法的优点是简洁、高效,超参很少;
0阶方法,TopK选取只依赖Reward的序,不需要对Reward的数值大小进行建模,对噪声更近鲁棒;
参数通过高斯分布扰动探索,偏离基线越多的参数选中的概率越小,线上指标相对平稳。

2.贝叶斯优化算法
贝叶斯优化的基本思想在于由于真实优化函数计算量太大或是个黑盒(比如推荐场景中用户的真实反馈收益),我们需要用一个代理函数(surrogate function) 来近似它。而在代理函数周围可能是最小值点的附近,或者是在还没有采样过的区域采样新的点之后,我们就可以更新代理函数,使之不断逼近目标函数。我们常采用高斯过程(Gaussian process, GP) 来建模概率代理函数的分布,然后再设计一个采集函数(acquisition function),基于高斯过程回归的结果来计算下一组可能更优的采样点(使采集函数最大化)。
注意:这里之所以使采集函数最大化,而不是直接使代理函数最大化,因为直接优化代理函数过于目光短浅了,因为我们还要考虑不确定性。事实上,这也是一种探索(exploration)机制的体现。贝叶斯优化与网格搜索的不同之处在于,它在尝试新的超参数组合时会考虑之前的评估结果(即利用了证据,即evidence的信息来估计代理函数的后验分布),并基于代理函数来求解采集函数的极值,从而确定下一个采样点。
贝叶斯优化包含两个关键组成部分:

  • 概率代理模型 用于对代理函数的分布进行建模,在迭代开始前初始化为一个指定的先验分布。常用的概率代理模型有:高斯过程(GP)、树形Parzen估计器(tree-structured parzen estimator, TPE)、神经网络、决策树等。
  • 采集函数 采集函数用于衡量每一个点值得探索的程度。每轮迭代算法会基于现有的高斯过程,从候选集中选择下一步的迭代点以使得采集函数最大化。贝叶斯优化效果受采集函数的影响较大,选择不合适的话容易陷入局部最优解。采集函数的选取可以看做一个探索-利用问题,常用采集函数包括置信区间上界(Upper Confidence Bound, UCB)方法、POI方法、EI方法等(其中最为简单易用的是UCB方法)。

首先,算法会初始化一个代理函数的先验分布,然后开始迭代。算法的第t步迭代的伪代码描述如下:

  • 通过优化采集函数 u u u以获得 x t + 1 = a r g m a x x u ( x ∣ D t ) x^{t+1}=argmax_x u(x|D^t) xt+1=argmaxxu(xDt)
  • 通过用户的在线反馈收益 r r r(对应贝叶斯优化中的目标函数)得到 y t + 1 y^{t+1} yt+1
  • 对数据进行增广 D t + 1 = { D t , ( x t + 1 , y t + 1 ) } D^{t+1}=\{D^t, (x^{t+1},y^{t+1})\} Dt+1={Dt,(xt+1,yt+1)}
  • 更新概率代理模型(如高斯过程回归),得到一个代理函数的后验分布(做为下一步迭代的先验分布)。

算法流程示意图如下:

在这里插入图片描述

3.进化策略(ES)算法
占位。

多目标排序在快手短视频推荐中的实践
推荐系统:精排多目标融合与超参数学习方法
Reinforcing User Retention in a Billion Scale Short Video Recommender System
Multi-Task Fusion via Reinforcement Learning for Long-Term User Satisfaction in Recommender Systems
如何评价快手的RLUR模型?

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

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

相关文章

【9】openssl 代码调试

0x01 前言 最近在学习密码学,但是国密算法(SM2,SM3,SM4,SM9)的细节都在openssl项目里,当然一些国际算法也在。想着看下代码执行过程和理论结合起来。中间走了一些弯路,做个笔记。 0x02 openssl安装 一开始认为是不是直接下载好的…

Layui实现下拉多选功能

1、问题概述? 提供源码下载 在项目中有很多地方需要使用到下拉框,并且实现选择多个信息,下面是展示。 支持如下功能: 1、分页 2、主题自定义 3、国际化 4、下拉方向 5、Tips修改等 6、Style自定义样式 7、取值 8、赋值 2、资源准备及测试? 2.1、资源下载

Leetcode 力扣113. 路径总和 II (抖音号:708231408)

给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum 22 输出&a…

中山大学和字节发布「视频虚拟试穿」扩散模型VITON-DiT,一键生成换装后视频!

视频虚拟试穿技术日益受到关注,然而现有的工作局限于将服装图像转移到姿势和背景简单的视频上,对于随意拍摄的视频则效果不佳。最近,Sora 揭示了 Diffusion Transformer (DiT) 在生成具有真实场景的逼真视频方面的可扩展性,可以说…

Kubernetes入门-大简介

目录 何为微服务 何为云原生 何为编排器 “Kubernetes”这个名字来自希腊语,意思是“舵手”舵手是一个航海/航行术语,指掌舵的人从本质上说,Kubernetes是云原生微服务(cloud-native microservice)应用的编排器(orchestrator) 何为微服务 …

WordPress 高级缓存插件 W3 Total Cache 开启支持 Brotli 压缩算法

今天明月给大家分享一下 WordPress 高级缓存插件 W3 Total Cache 开启支持 Brotli 压缩算法的教程,在撰写【WordPress 高级缓存插件 W3 Total Cache Pro 详细配置教程】一文的时候明月就发现 W3 Total Cache 已经支持 Brotli 压缩算法了,可惜的是在安装完…

ctfshow-web入门-命令执行(web53-web55)

目录 1、web53 2、web54 3、web55 1、web53 这里的代码有点不一样,说一下这两种的区别: (1)直接执行 system($c); system($c);这种方式会直接执行命令 $c 并将命令的输出直接发送到标准输出(通常是浏览器&#xff…

【qsort函数】

前言 我们要学习qsort函数并利用冒泡函数仿照qsort函数 首先我们要了解一下qsort(快速排序) 这是函数的的基本参数 void qsort (void* base, size_t num, size_t size,int (*compar)(const void*,const void*)); 简单解释一下 base:指向…

23.在游戏中按下Home键呼出辅助窗口

上一个内容:22.钩子注入原理 在 22.钩子注入原理 它的代码上进行修改 效果图: 首先在CWndMain.h文件中添加下图红框里的东西 ChangeShowState函数的实现 void CWndMain::ChangeShowState() {UiShow !UiShow;ShowWindow(UiShow); } OnInitDialog函数…

CISCN2024 初赛 wp 部分复现(Re)

Misc 1. 火锅链观光打卡 答题即可 Re 1. asm_re 感谢智谱清言,可以读出大致加密算法 这是输入 这是加密部分 这里判断 找到疑似密文的部分,手动改一下端序 #asm_wp def dec(char):return (((char - 0x1E) ^ 0x4D) - 0x14) // 0x50 #return (ord(cha…

powerdesigner各种字体设置

1、设置左侧菜单: 步骤如下: tools —> general options —> fonts —> defalut UI font ,选择字体样式及大小即可,同下图。 2、设置Table的字体大小 Tools------>Display Prefrences------>Table------->Format---------…

RabbitMQ系列-rabbitmq无法重新加入集群,启动失败的问题

当前存在3个节点:rabbitmq5672、rabbitmq5673、rabbitmq5674 当rabbitmq5673节点掉线之后,重启失败 重启的时候5672节点报错如下: 解决方案 在集群中取消失败节点 rabbitmqctl forget_cluster_node rabbitrabbitmq5673删除失败节点5673的…

王学岗鸿蒙开发(北向)——————(十)子组件修改父组件的内容与 动画

子组件修改父组件的内容 使用类似Android的回调,父组件传递给子组件一个函数 import { MyComment } from ./component/MyComment import { MyContent } from ./component/MyComtent import { MyTitleComponent } from ./component/MyTitleComponentEntry Componen…

【MySQL数据库基础】

🌈个人主页:努力学编程’ ⛅个人推荐:基于java提供的ArrayList实现的扑克牌游戏 |C贪吃蛇详解 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 …

【CS.OS】堆管理算法:不同的堆分配和管理算法

1000.5.CS.OS.1.3-基础-内存管理-堆管理算法-Created: 2024-06-09.Sunday10:41 文章目录 1 内存分配算法概述1.1 首次适应(First-Fit)1.2 最佳适应(Best-Fit) 2 伙伴系统(Buddy System) 3 总结References …

Python | 正则表达式

?:标记?之前的字符为可选. used&#xff1f; d可有可无 *:匹配>0个重复的在*号之前的字符。 ab*c 匹配多个b &#xff1a;匹配>1个重复的号前的字符。&#xff08;至少一个&#xff09; {n,m}&#xff1a;匹配num个大括号之前的字符或字符集 &#xff08;n < num …

算法:101. 对称二叉树

对称二叉树 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false提示&#xff1a; 树中节…

ThreadCache线程缓存

一.ThreadCache整体结构 1.基本结构 定长内存池利用一个自由链表管理释放回来的固定大小的内存obj。 ThreadCache需要支持申请和释放不同大小的内存块&#xff0c;因此需要多个自由链表来管理释放回来的内存块.即ThreadCache实际上一个哈希桶结构&#xff0c;每个桶中存放的都…

目标检测(R-CNN)系列(Pytorch 26)

一 R-CNN 除了之前描述的单发多框检测之外&#xff0c;区域卷积神经网络&#xff08;region‐based CNN或regions with CNN features&#xff0c; R‐CNN&#xff09;(Girshick et al., 2014)也是将深度模型应用于目标检测的开创性工作之一。下面介绍R‐CNN及其一 系列改进方法…

架构设计-web项目中跨域问题涉及到的后端和前端配置

WEB软件项目中经常会遇到跨域问题&#xff0c;解决方案早已是业内的共识&#xff0c;简要记录主流的处理方式&#xff1a; 跨域感知session需要解决两个问题&#xff1a; 1. 跨域问题 2. 跨域cookie传输问题 跨域问题 解决跨域问题有很多种方式&#xff0c;如使用springboot…