【推荐算法】ctr cvr联合建模问题合集

ctr和cvr分开建模相比ctcvr的优势?

在电商搜索推荐排序中,将ctr和cvr分开建模,相比直接建模ctcvr的优势是什么? - 萧瑟的回答 - 知乎

总结:

1、ctr的数据可以试试获取,能实时训练。但是cvr存在延迟现象,样本更新慢。一起训练容易出现跷跷板现象。

2、分开建模可以输出2个指标,便于调控。

3、CTR肯定是需要单独建模的,因为它影响用户的长期的参与度,也影响未来收益。
CTCVR低,不代表用户不喜欢,也可能是因为其他原因(比如没钱,这个很容易建模,拿用户过去消费的金额,与当前商品的价格,一比就能知道)

观点1

在电商搜索推荐排序中,将ctr和cvr分开建模,相比直接建模ctcvr的优势是什么? - 萧瑟的回答 - 知乎

分开建模的话。可能有下面几个好处:

  1. 方便机制等进行更灵活的调控。电商排序公式,往往不会就是简单的 ctr∗cvr∗pricectr*cvr*price ,很多时候可能是类似这样的一些更复杂的排序公式 ctra+ctrb∗cvrc+ctrd∗cvre∗pricefctr^a+ctr^b*cvr^c+ctr^d*cvr^e*price^f ,这个时候就需要有单独的ctr和cvr分数以便进行调控。另外像很多广告业务,基于点击计费,那么也需要单独的ctr分数。cvr分数可能会用到的广告出价bid的调整上。
  2. 分开使迭代更方便。样本上,cvr的转化信号往往存在一定的延迟,长的可能好几天。而ctr的点击信号,长的一般也就几十分钟,如果ctr和cvr一起建模的话,对于实时训练系统来说,样本上可能会面临比较大的挑战。另外ctr和cvr一起训练,效果可能相互影响,出现跷跷板效应,新的算法迭代ctr和cvr离线在线指标出现一个涨一个跌的问题,会让人非常头疼。

当然ctr和cvr放一起训练建模,也有一些优势,特别是如果算法组人力紧张的话,联合建模相比分开迭代,可以节省很多人力维护成本。

像淘宝一些核心业务的算法组,ctr和cvr模型也经历过多次分分合合。ctr和cvr模型是否要放一起训练迭代,并没有标准答案,和当前组内人力情况、业务情况,技术迭代情况等都息息相关。

观点2

 ctr和cvr分开建模,相比一起建模的好处。https://zhuanlan.zhihu.com/p/599920653 

CTR肯定是需要单独建模的,因为它影响用户的长期的参与度,也影响未来收益。
CTCVR低,不代表用户不喜欢,也可能是因为其他原因(比如没钱,这个很容易建模,拿用户过去消费的金额,与当前商品的价格,一比就能知道)
这个时候,如果只按CTCVR排序,只给用户显示那些物美价廉的东西,
一来用户审美疲劳,
二来也失去了给用户种草的机会。万一哪天用户中彩票了,或者一狠心想剁手了,在你们的app上却不展示合适的商品,岂不是白白浪费了机会。

其次,CTCVR你也预估不准。

其实哪个XTR都不可能绝对预估准,因此需要修正。

有了CTR,CVR,我修正CTCVR起来,还能多有一些信息可咨利用

另外,ctr和cvr一起训练,出现跷跷板现象,经常出现一个涨一个跌的情况,比较麻烦。

观点3

ctr和cvr联合建模的好处  https://www.zhihu.com/question/546623702/answer/2621988648

有些单个任务数据不充分造成模型不能训练收敛到较好的性能。多个相关任务在一起训练,配置合适的网络结构,可以实现多个任务的样本共用,每个任务得样本都变多了,能够帮助模型训练收敛。

举个例子,比如CTR(点击率预估)和CVR(转化率)联合建模。对于CTR任务来说,CVR的转化样本是高质量的点击人群,加入CVR转化样本能够帮助CTR任务更加倾向高质量点击。反之对于CVR任务,一般样本比较稀疏,通过加入CTR的浅层转化样本,也能够帮助先粗分辨更可能转化的人群。

当然多任务模型需要配置好网络参数和门控,增强多个任务间的互相增益,降低多个任务负向干扰。

观点4

工作时建模ctr*cvr时,关于esmm的几个疑问?

1.esmm 的ctr 网络输出还是ctr么(是否有偏)

2.esmm 针对ctr、cvr 分布差异大(任务不太相关,比如ctr多数来自新用户,cvr多数转化来自老用户)是否会带来cvr侧的不稳定

3.为什么esmm cvr 侧塔会高估

观点5

MMOE解决跷跷板现象 https://zhuanlan.zhihu.com/p/462953458

mmoe借鉴了ensamble的解决思路,训练一批模型,每个task用其中不同的一些模型。这样也就缓解了样本分布差别大导致的跷跷板问题。实践经验表明expert的个数越多效果会越好,但边际效应递减,而且过多可能模型难以收敛。根据数据量,一般都会学习4-6个expert。

观点6(好)

cvr是否ctr的简单复制 - 彭红卿的文章 - 知乎

分别预估然后相乘算pctcvr是最佳做法么

初次碰到计算pctcvr是用pctr和pcvr相乘得出的,有人可能习以为常,有人可能就会有疑惑,为啥非得这么做,为啥不直接预估pctcvr,有哪些好处和坏处?

这么做的理由可以列好些出来,比如,分开预估就是两个模型,就可以有两拨人有事情做(大雾)。技术上呢?有一种说法是,ctcvr的正例太稀疏了,拆开来更好学习。业务上的理由有,比如app的转化有延迟,因此app ctr和app cvr数据处理流程不一样,模型的更新周期不一样,拆开更合理。还有一种说法是,ctr和cvr的特征不一样,所以拆开合情合理。

端到端预估也有不少好处,比如app ctr在某些媒体上可能有很多行为码不好界定是否属于点击,比如自动播放的那些。端到端就直接跨过这个问题,毕竟转化的定义是清晰的。

另外,在召回和粗排阶段,是否直接预估pctcvr又更合理呢?

ctr有的特征是否cvr就该有

比如ctr使用了用户行为特征,cvr模型是否就一定也要用上,cvr特征永远是ctr特征的超集?

ctr是否能使用转化相关的特征,cvr能否使用点击相关特征

比如ctr能否使用用户转化行为相关特征,为什么会有效?而cvr使用点击相关特征又会有正面效果么?

ctr和cvr预估值怎样相互影响

ctr和cvr的低估和高估会怎样影响到对方?ctr数据的收集基本在站内就能完成,因此ctr相对来说会更容易做的更准确,当然点击label定义不清又是另外一种情形。而转化受广告主回传等因素的影响,真值的波动会比ctr大,从而容易导致预估偏差。因此ctr是pctcvr预估的稳定剂,预估偏差不能太大。

采样偏差在预估和统计上的影响

sampling selection bias的问题在esmm论文里头已经说的比较清楚了,训练的样本空间(其实是特征空间)应该跟推断的样本空间一致。不一致会发生什么情况呢?就拿cvr预估来说,如果还是用点击作为负样本,转化作为正样本来训练模型,相比esmm来说,正样本是没丢的,也就是正样本的特征空间也不会有损失。点击未转化的样本(通常意义的cvr负样本)也一个没少,那么损失的都是什么呢,是那些曝光没点击的,大概率是cvr的负样本。这些负样本会对特征空间有所扩充,而且会让负样本本身预估更准确。举个例子,有点击的用户可能集中在20-60岁之间,假设其他岁数就变成一个缺省值“-”,如果是按照非esmm的cvr训练模式训练出来一个模型,在线上会有大量的样本命中“-”,这个时候这些样本的预估值就会比较接近,没有区分度。对于ocpx系统来说,这是比较要命的,我们希望所有样本之间都有能区分它们的特征,从而能预估一个更细致的值,更好地控制成本,哪怕是这些预估值很低,意味着几乎不可能发生转化。个人理解可以看做是easy negative(相对positive而言)里头的hard(negative之间)情形,因为你需要把“-”再分开。这块跟召回用全量空间的样本有相似之处,都是一不小心就会导致训练的样本空间小于推断的样本空间,区别在于召回的全量空间包括没有曝光的样本,而esmm的全量空间包括没有点击的样本。esmm认为能曝光出来已经是能产生转化的最低要求了,未曝光样本(同样会出现新特征值)在esmm看来属于冷启动问题,需要靠实时模型和泛化特征等手段来解决。

采样偏差在一个不太为人注意的任务上也存在,那就是统计。比如计算pcvr和tcvr之间的预估偏差,这个时候,是统计发生了点击后的预估值和点击后的真实值之间的gap,还是统计所有曝光的预估值的均值再和真实值相比?

在线学习

ctr模型用在线方式的处理,问题不太大,毕竟点击行为从端上上报不会比曝光延迟太久,漏掉正样本的情况比较少。但cvr的转化就不一样了,延迟的转化在app安装和激活上尤其明显,电商推荐的收藏到付费也可能时间很长。label延迟的情况下到底是否适合在线学习,这个事情业界好像是先整在线再说,快速数据流转成为一种理念。于是梯度补偿等方法也被提出来,没太多理论保证,但这也是为“快”所付出的代价。按预估转化时间分桶打散听起来更合理一些,也能跟在线处理结合,只是更复杂一些。

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

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

相关文章

最近学习内容(2023-10-21)

最近学习内容 Linux编译链接命令一条有用的删除可执行文件的bash命令gcc 在macos 的编译选项,其中-g会生成一个.dSYM文件夹to long don’t read 工具的使用gnu bintuils 的使用,但是很可惜macos上的是Mach-O,不是ELFaxel多线程下载器和其余的…

使用nginx方向代理部署Vue项目刷新页面404的问题解决

文章目录 问题假设原理探究问题解决 问题假设 部署出现的问题为:由于项目中使用的vue router 项目直接使用node环境部署项目,在同一个路由如: 192.168.1.30:/home刷新浏览器正常 nginx部署刷新不出现404 /nginx not found 如何解决?以下是我…

C# 文件 校验:MD5、SHA1、SHA256、SHA384、SHA512、CRC32、CRC64

文件 校验 算法:MD5、SHA1、SHA256、SHA384、SHA512、CRC32、CRC64 (免费) 编程语言:C# 功能:文件 哈希 属性 校验算法:MD5、SHA1、SHA256、SHA384、SHA512、CRC32、CRC64。 下载(免费):https://download.csdn.net/download/polloo2012/88450148 本程序 File Pro…

工程监测仪器振弦传感器信号转换器在桥梁安全监测中的重要性

工程监测仪器振弦传感器信号转换器在桥梁安全监测中的重要性 桥梁是人类社会建设过程中最重要的交通基础设施之一,对于保障人民出行、促进经济发展具有极其重要的作用。由于桥梁结构在长期使用过程中受到环境因素和负荷的影响,会逐渐发生变形和损伤&…

python读写.pptx文件

1、读取PPT import pptx pptpptx.Presentation(rC:\Users\user\Documents\\2.pptx) # ppt.save(rC:\Users\user\Documents\\1.pptx) # slideppt.slides.add_slide(ppt.slide_layouts[1])# 读取所有幻灯片上的文字 for slide in ppt.slides:for shape in slide.shapes:if shape…

10月21日,每日信息差

今天是2023年10月21日,以下是为您准备的13条信息差 第一、东方物探公司与阿里云达成战略合作,逐步助力勘探行业实现智能化、自动化、绿色化和可持续化的目标 第二、九洲集团签约300MW集中式风电项目计划总投资21亿,项目达产后,预…

【前端vue面试】vuex

目录 什么是 Vuex?vuex流程图Vuex 和单纯的全局对象不同点StatemapStateGetterMutationmapMutationsAction基础用法dispatch提交载荷(Payload)mapActions组合 ActionModules什么是 Vuex? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所…

Android Studio初学者实例:RecyclerView学习--模仿今日头条--续

新学期开始了,这篇文章收到了很多人的评论有很多地方不懂,所以写下了以下的文章--续篇 首先使用RecyclerView也好还是使用ListView,更或是GridView你都要先构思需要什么 这些东西无一例外通常都是用在列表显示下,那么需要一些&a…

vue ref和$refs获取dom元素

vue ref和$refs获取dom元素 **创建 工程: H:\java_work\java_springboot\vue_study ctrl按住不放 右键 悬着 powershell H:\java_work\java_springboot\js_study\Vue2_3入门到实战-配套资料\01-随堂代码素材\day04\准备代码\14-ref和$refs获取dom对象 vue --ve…

【OpenVINO】行人摔倒检测 — 基于 OpenVINO C# API 部署PP-Human-上篇

行人摔倒检测 — 基于 OpenVINO C# API 部署PP-Human 1. 英特尔开发套件1.1 OpenVINO1.2 AIxBoard 介绍产品定位产品参数AI推理单元 2. PaddleDetection实时行人分析工具PP-Human3. 预测模型获取与转换3.1 PP-YOLOE行人跟踪模型介绍模型下载与转换(1)Pad…

【ARM Coresight 系列文章19.1 -- Cortex-A720 PMU 详细介绍】

文章目录 概述Cortex-A720 PMU Features1.1 PMU 使用介绍1.2 Performance monitors events1.3 Performance Monitors Extension registers1.3.1 Performance monitors program1.4 Performance monitors interrupts1.5 Interaction with the Performance Monitoring Unit and De…

2023年传媒行业中期策略 AIGC从三个不同层次为内容产业赋能

基本面和新题材共振,推动传媒互联网行情上涨 AIGC 概念带动,传媒板块领涨 A 股 2023 年第一个交易日(1 月 3 日)至 6 月 2 日,申万传媒指数区间涨幅高达 48.38%,同时期沪深 300 跌幅为 0.25%,…

Python大数据之PySpark

PySpark入门 1、 Spark与PySpark 1、 Spark与PySpark

centos7 部署oracle完整教程(命令行)

centos7 部署oracle完整教程(命令行) 一. centos7安装oracle1.查看Swap分区空间(不能小于2G)2.修改CentOS系统标识 (由于Oracle默认不支持CentOS)2.1.删除CentOS Linux release 7.9.2009 (Core)(快捷键dd)&…

【公众号开发】图像文字识别 · 模板消息推送 · 素材管理 · 带参数二维码的生成与事件的处理

【公众号开发】(4) 文章目录 【公众号开发】(4)1. 图像文字识别功能1.1 百度AI图像文字识别接口申请1.2 查看文档学习如何调用百度AI1.3 程序开发1.3.1 导入依赖:1.3.2 公众号发来post请求格式1.3.3 对image类型的消息…

QStringListModel

创建模型&#xff1a; QStringListModel* model new QStringListModel(this); 初始化列表&#xff1a; QStringList strList;strList << QStringLiteral("北京") << QStringLiteral("上海") << QStringLiteral("天津") &l…

《基于 Vue 组件库 的 Webpack5 配置》8.在生成打包文件之前清空 output(dist) 目录(两种方式)

方式一 ​ 如果 webpack 是 v5.20.0&#xff0c;直接使用属性 output.clean&#xff0c;配置如下&#xff1a; module.exports {//...output: {clean: true}, };方式二 如果使用较低版本&#xff0c;可以使用插件 clean-webpack-plugin&#xff1a; 先安装&#xff1a;npm…

Python---死循环概念---while True

在编程中一个靠自身控制无法终止的程序称为“死循环”。 在Python中&#xff0c;我们也可以使用while True来模拟死循环&#xff1a; 代码&#xff1a; while True: print(每天进步一点点) 图示 应用&#xff1a; 比如&#xff0c;在测试里面&#xff0c;自动化测试用例…

解析Apache Kafka中的事务机制

这篇博客文章并不是关于使用事务细节的教程&#xff0c;我们也不会深入讨论设计细节。相反&#xff0c;我们将在适当的地方链接到JavaDocs或设计文档&#xff0c;以供希望深入研究的读者使用。 为什么交易? 我们在Kafka中设计的事务主要用于那些显示“读-进程-写”模式的应用…

jenkins 原理篇——pipeline流水线 声明式语法详解

大家好&#xff0c;我是蓝胖子&#xff0c;相信大家平时项目中或多或少都有用到jenkins&#xff0c;它的piepeline模式能够对项目的发布流程进行编排&#xff0c;优化部署效率&#xff0c;减少错误的发生&#xff0c;如何去写一个pipeline脚本呢&#xff0c;今天我们就来简单看…