当前位置: 首页 > backend >正文

【王树森推荐系统】物品冷启05:流量调控

冷启动的优化点

  • 优化推荐全链路(包括召回和排序),每一个环节都优化对新笔记做优化,让新笔记有足够多的机会走完链路,被曝光。还要让新笔记的推荐做的尽量准,不要让用户方案
  • 流量调控(流量怎么在新物品,老物品中分配),工业界的做法是让流量在新笔记中倾斜,增加新笔记的曝光机会

扶持新笔记的目的

  • 目的 1:促进发布,增大内容池
    • 新笔记获得的曝光越多,作者创作的积极性就越高
    • 反映在发布渗透率,人均发布量
  • 目的 2:挖掘优质笔记
    • 做探索,让每篇新笔记都能获得足够曝光
    • 挖掘的能力反映在高热笔记占比。如果一篇新笔记是高质量笔记,但是如果它没有获得足够的曝光,那么优质笔记也会被埋没。所以我们要保证每篇笔记在探索阶段都得到足够的曝光

工业界的做法

  • 假设推荐系统只分发年龄 < 30 天的笔记,超过 30 天的笔记通常不会出现在推荐的结果里,只能通过搜素和其他渠道曝光
  • 假设采用自然分发(新老笔记公平竞争),新笔记(年龄 <24 小时)的曝光占比为 1/30
  • 扶持新笔记,让新笔记的曝光占比远大于 1/30。新笔记流量远远大于自然分发的流量

流量调控技术的发展

  1. 在推荐结果里强插新笔记
  2. 对新笔记的排序分数做提权(boost)。排序的时候对新笔记加上或者乘以一个系数,这样会让新笔记更占优势,获得更多曝光机会。这是一个投入产出比很划算的策略,实现也不难
  3. 通过提权,对新笔记做保量。比如尽量保证让每篇新笔记都能在前 24 小时获得至少 100 次曝光。保量的手段也是提权,但是提权的策略更复杂更精细
  4. 差异化保量。在笔记刚刚发布的时候,根据内容质量,根据保量的目标是多少次曝光,内容质量高的,保量目标定的高,给更多的流量倾斜

新笔记提权(boost)

推荐系统的链路

  • 粗排会让物品从几千个到几百个
  • 重排+抽样让物品从几百个到几十个
  • 如果不做干涉,让新笔记和老笔记做公平竞争,那么新笔记的曝光是很有限的
  • 这里要干涉粗排和重排,这两个环节是漏斗,过滤掉大量笔记。干涉的方法就是大量对新笔记进行提权,让新笔记比老笔记更有优势,更有机会通过漏斗

在这里插入图片描述

  • 优点:容易实现,投入产出比好
  • 缺点:
    • 曝光量对提权系数很敏感
    • 很难精确控制曝光量,容易过度曝光和不充分曝光

新笔记保量

  • 保量:不论笔记质量搞递,都保证 24 小时获得 100 次曝光
  • 在原有提权系数的基础上,乘以额外的提权系数,比如:
    在这里插入图片描述

动态提权保量

  • 用下面的四个值计算提权系数:
    • 目标时间:比如 24 小时
    • 目标曝光:比如 100 次
    • 发布时间:比如笔记已经发布 12 小时。预期应该获得 50 次曝光,如果只获得了比如 20 次曝光,就应该让提权系数变大,有更多的机会被曝光
    • 已有曝光:比如笔记已经获得 20 次曝光
  • 类似下列函数计算提权系数:
    在这里插入图片描述

保量的难点

  • 保量成功率远低于 100%
    • 很多笔记在24 小时达不到 100 次曝光
    • 召回,排序存在不足
    • 提权系数调的不好
  • 线上环境变化导致保量失败
    • 线上环境变化:新增召回通道,升级排序模型,改变重排打散规则等等
    • 线上环境变化后需要调整提权系数
  • 思考题
    • 给所有笔记一个很大的提权系数(比如 4 倍),直到达成 100 次曝光为止
    • 这样的保量成功率很高
    • 为什么不用这种方法?答:效果不好
  • 给新笔记分数 boost 越多,对新笔记越有利?
    • 好处:分数提升越多,曝光次数越多
    • 坏处:把笔记推荐给不太合适的受众
      • 点击率,点赞率等指标降低
      • 长期会受推荐系统的打压,难以成长为热门笔记

差异化保量

  • 保量:无论新笔记质量高低,都做扶持,在前 24 小时给 100 次曝光
  • 差异化保量:不同笔记有不同的保量目标,普通笔记保 100 次曝光,内容优质笔记保 100 到 500 次曝光
  • 基础保量:24 小时 100 次曝光
  • 内容质量:用模型评价内容质量高低,基于额外保量目标,上限是 200 次曝光
  • 作者质量:根据据作者历史上的笔记质量,基于额外保量目标,上限是 200 次曝光
  • 一篇笔记最少有 100 次保量,最多有 500 次保量

总结

在这里插入图片描述

http://www.xdnf.cn/news/15414.html

相关文章:

  • Java-72 深入浅出 RPC Dubbo 上手 生产者模块详解
  • 清除 Android 手机 SIM 卡数据的4 种简单方法
  • 网络准入控制系统的作用解析,2025年保障企业入网安全第一道防线
  • OpenVela之开发自测试框架cmocka
  • 【算法训练营Day12】二叉树part2
  • 量产技巧之RK3588 Android12默认移除导航栏状态栏​
  • google浏览器::-webkit-scrollbar-thumb设置容器滚动条滑块不生效
  • Android 性能优化:启动优化全解析
  • C++-linux 7.文件IO(一)系统调用
  • Linux上基于C/C++头文件查找对应的依赖开发库
  • uni-app 选择国家区号
  • CentOS 7服务器上使用Docker部署Notesnook的详细指导说明
  • Spring Cloud分布式配置中心:架构设计与技术实践
  • 链表算法之【获取链表开始入环的节点】
  • 图生生AI模仿裂变:1分钟批量裂变素材图片!
  • MySQL数据库的基础操作
  • C++后端面试八股文
  • 深入解析Hadoop YARN架构设计:从原理到实践
  • 5、qt系统相关
  • LLM表征工程还有哪些值得做的地方
  • linux打包固件shell脚本
  • FOC算法中SIMULINK一些常用模块(1)(个人留存)
  • 多客户端-服务器(select,poll)
  • 第二章 基于新版Onenet搭建云服务(stm32物联网)
  • elementPlus中的el-table实现合并单元格
  • MMKV 存储json list数据(kotlin)
  • 《Linux篇》自动化构建-make/Makefile
  • 自动润滑系统:从 “盲目养护“ 到智能精注的工业运维革命
  • MMaDA:多模态大型扩散语言模型
  • 动态规划题解_将一个数字表示成幂的和的方案数【LeetCode】