为什么要特殊对待特殊人群?

  1. 新用户,低活用户的行为很少,个性化推荐不准确。个性化的召回和排序都需要基于用户的历史行为,如果历史行为少,个性化就做不好,尤其是新用户,这就需要策略把个性化做的特别好或者用非个性化方法来做弥补
  2. 新用户,低活用户容易流失,要想办法促使他们留存。对于全体用户,推荐系统要努力提升很多指标,比如留存,时长,消费等。而对于新用户和低活用户,只需要考虑留存,不需要考虑其他任何指标,所以只需要考虑优化留存
  3. 特殊用户的行为(比如点击率,交互率等)不同于主流用户,基于全体用户行为训练出的模型在特殊用户人群上有偏。要对特殊用户人群用特殊模型来消除偏差

涨指标的方法

  1. 构造特殊内容池,用于特殊用户人群的召回
  2. 使用特殊排序策略,保护特殊用户
  3. 使用特殊的排序模型,消除模型预估的偏差

构造特殊的内容池

  • 为什么需要特殊内容池?
    • 新用户,低活用户的行为很少,个性化召回不准确(既然个性化不好,那么就需要保证内容质量好,用优质内容弥补个性化缺失)
    • 针对特定群体的特点构造特殊内容池,提升用户满意度(例如,对于喜欢留评论的中年女性,构造粗评论内容池,满足这些用户的互动需求)
  • 方法1:根据物品获得的交互次数,交互率选择优质物品
    • 圈定人群:只考虑特定人群,例如 18 到 25 岁一二线城市男性
    • 构造内容池:用该人群对物品的交互次数,交互率给物品打分,选出分数最高的物品进入内容池,分数高说明质量好,容易吸引用户
    • 内容池有弱个性化的效果,说明这个人群对这个池子的内容感兴趣
    • 内容池定期更新,加入新物品,排除交互率低和失去时效性的老物品
    • 该内容池只对该人群生效
  • 方法2:做因果推断,判断物品对人群留存率的贡献,根据贡献值选物品
  • 通常使用双塔模型从特殊内容池中做召回
    • 双塔模型是个性化的
    • 对于新用户,双塔模型的个性化做不准
    • 靠高质量,弱个性化做弥补(可以容忍双塔模型的不准确)
  • 额外的训练代价?
    • 对于正常用户,无论有多少内容池,只训练一个双塔模型
    • 对于新用户,由于历史交互记录很少,需要单独训练模型。但不论有多少个内容池,新用户只需要一个自己的双塔模型就够了
  • 额外的推理代码?
    • 内容池定期更新,然后要更新 ANN 索引
    • 线上做召回时,需要做 ANN 检索
    • 无论是更新内容池还是做召回,每多一个内容池,就需要多一份额外的算力,内容池越大,需要的额外算力越多
    • 特殊内容池都很小(比全量内容池少 10 到 100 倍),所以需要的额外算力不大

特殊的排序策略

排除低质量物品

  • 对于新用户,低活用户这样的特殊人群,业务上只关注留存,不在乎消费(总曝光量,广告收入,电商收入)
  • 对于新用户,低活用户,少出广告,甚至不出广告
  • 新发布的物品不在新用户,低活用户上做探索
    • 新物品发布时,推荐做的不准,会损害用户体验。这没办法,毕竟一定要推荐出去。如果不做探索,推荐系统就不知道谁会喜欢这些物品
    • 只在老用户上做探索,对新物品做提权(boost)。老用户受一点伤害并不会流失
    • 不在新用户,低活用户上做探索,避免伤害用户体验。用这些特殊用户做探索会得不偿失

差异化的融分公式

  • 新用户,低活用户的点击,交互行为不同于正常用户
  • 低活用户的人均点击量很小;没有点击就不会有进一步的交互
  • 低活用户的融分公式中,提高预估点击率的权重(相较于普通用户,点进去看了才可能留存)
  • 保留几个曝光坑位给点击率最高的几个物品
    • 例:精排从 500 个物品中选 50 个作为推荐结果,其中 3 个坑位给点击率最高的物品,剩余 47 个坑位由融分公式决定。这 3 个坑位的目的是吸引用户点击
    • 甚至把点击率最高的物品排在第一,确保用户一定能看到。如果用在普通用户身上会损害核心指标

特殊的排序模型

差异化的排序模型

  • 特殊用户人群的行为不同于普通用户。新用户,低活用户的点击率,交互率偏高或偏低
  • 排序模型被主流用户主导,对特殊用户做不准预估
    • 用权力用户训练出的模型,给新用户做的预估有严重偏差
    • 如果一个 APP 的用户 90% 都是女性,用全体用户数据训练出的模型,对男性用户做的预估有偏差
  • 问题:对于特殊用户,如何让排序模型预估做的更准?
    • 方法1:大模型 + 小模型
      • 用全体用户行为训练大模型,大模型的预估 ppp 拟合用户的行为 yyy
      • 用特殊用户的行为训练小模型,小模型的预估 qqq 拟合大模型的残差 y−py-pyp,残差是大模型犯的错误,我们希望小模型可以纠正大模型的错误
      • 对主流用户只用大模型做预估 ppp
      • 对特殊用户,结合大模型和小模型的预估 p+qp+qp+q,小模型的作用是纠偏
    • 方法2:融合多个 experts,类似 MMoE
      • 只用一个模型,模型有多个 experts,各输出一个向量
      • 对 expert 的输出做加权平均
      • 根据用户特征计算权重(和MMoE的区别是这里的神经网络输入只有一个用户特征)
      • 以新用户为例,模型将用户的新老,活跃度等特征作为输入,输出权重,用户对 expert 做加权平均。例:如果有两个 expert,用户刚刚注册,那么新用户 expert 的权重是 1,老用户 expert 的权重是 0。如果介于新老之间那么两个 expert都有一定的权重
    • 方法3:大模型预估之后,用小模型做校准
      • 用大模型预估点击率,交互率
      • 将用户特征,大模型预估点击率和交互率作为小模型(例如 GBDT)的输入
      • 在特殊用户人群的数据上训练小模型,小模型7的输入拟合用户的真实行为

错误的做法

  • 每个用户人群使用一个排序模型,推荐系统同时维护多个大模型
    • 系统有一个主模型,每个用户人群有自己的一个模型
    • 每天凌晨,用全体用户数据更新主模型,训练 1 个 epoch
    • 基于训练好的主模型,在某特殊用户人群的数据上再训练 1 epoch,作为该用户人群的模型、
  • 短期可以提升指标;维护代价大,长期有害
    • 起初,低活男性用户模型比主模型的 AUC 高 0.2%
    • 主模型迭代几个版本后,AUC 累计提升 0.5%
    • 特殊人群模型太多,长期没有人维护和更新
    • 如果把低活男性用户模型下线,换成主模型,在低活用户上的 AUC 反倒提升 0.3%

总结

在这里插入图片描述

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

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

相关文章

Java 大视界 -- Java 大数据在智能家居能源管理与节能优化中的深度应用(361)

Java 大视界 -- Java 大数据在智能家居能源管理与节能优化中的深度应用(361)引言:正文:一、Java 构建的智能家居能源数据架构1.1 多源能耗数据实时采集1.2 家庭能源画像与异常检测二、Java 驱动的节能策略与智能控制2.1 多场景节能…

从零开始的云计算生活——番外5,使用ELK实现对应用日志的监控

目录 一.环境准备 试验机安装 修改文件配置 二.收集测试机(test)日志 配置pipline文件 配置filebeat配置文件 三.收集测试机nginx日志 下载安装nginx 修改filebeat文件 修改pipline文件 四.收集网络服务模块日志 1.DHCP 下载dhcp 修改配置…

Node.js:函数、路由、全局对象

Node.js函数 在JavaScript中,一个函数可以作为另一个函数的参数,可以先定义一个函数,然后进行传递,也可以在传参的地方直接定义 function sayhello(){console.log("hello"); } function run(hello, value){hello();cons…

2025暑期—06神经网络-常见网络3

VGG16网络64个卷积核做两次卷积,填充后编程224X224X64 pooling 两次卷 pooling 三次卷...分辨率降低一半,通道数增加1倍所有卷积核都是3x3, 所有的pooling 都是2x2残差网络每一层的块都有越层的连接。

使用 FastAPI 构建 Elasticsearch API

作者:来自 Elastic Jeffrey Rengifo 学习如何使用 Pydantic 模式和 FastAPI 后台任务,通过实际示例构建一个 Elasticsearch API。 想获得 Elastic 认证吗?查看下一期 Elasticsearch Engineer 培训的时间! Elasticsearch 拥有丰富…

[2025CVPR-目标检测方向]FSHNet:一种用于3D物体检测的全稀疏混合网络。

1. ​简介​ 论文提出了FSHNet(Fully Sparse Hybrid Network),一种用于3D物体检测的全稀疏混合网络。FSHNet旨在解决现有稀疏3D检测器的两大核心问题:长距离交互能力弱和网络优化困难。稀疏检测器(如VoxelNeXt和SAFDN…

MySql 8.0.42 zip版安装教程和使用

今天要装个MySQL,就按照自己以前的教程来做,不知道是不是版本更新了的原因,又遇到了一点小阻碍,于是再记录一下吧。 下载MySQL 下载链接:MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/…

【lucene】实现knn

在 Lucene 中,可以通过 KnnFloatVectorQuery 和 KnnFloatVectorField 来实现 KNN(k-Nearest Neighbors)搜索。以下是具体介绍:1. 功能原理KnnFloatVectorQuery 是 Lucene 用于执行最近邻搜索的查询类,它可以在一个字段…

RabbitMQ实践学习笔记

RabbitMQ实践 以下是关于RabbitMQ实践的整理,涵盖常见场景和示例代码(基于Markdown格式)。内容按模块分类,避免步骤词汇,直接提供可操作的方法: 基础连接与队列声明 使用Python的pika库建立连接并声明队列: import pikaconnection = pika.BlockingConnection(pika.C…

量子生成对抗网络:量子计算与生成模型的融合革命

引言:当生成对抗网络遇上量子计算在人工智能与量子计算双重浪潮的交汇处,量子生成对抗网络(Quantum Generative Adversarial Networks, QGAN)正成为突破经典算力瓶颈的关键技术。传统生成对抗网络(GAN)在图…

VBA 多个选项,将选中的选项录入当前选中的单元格

1、使用LISTBOX插件&#xff0c;选中后回车录入 维护好数据&#xff0c;并新增一个activeX列表框插件 Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Target.Count > 1 Then Exit SubIf Target.Row > 2 And Target.Row < 10 And Target.Column 2…

【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 主页-微博点赞量Top6实现

大家好&#xff0c;我是java1234_小锋老师&#xff0c;最近写了一套【NLP舆情分析】基于python微博舆情分析可视化系统(flaskpandasecharts)视频教程&#xff0c;持续更新中&#xff0c;计划月底更新完&#xff0c;感谢支持。今天讲解主页-微博点赞量Top6实现 视频在线地址&…

SAP调用外部API

SAP需求将中文字符转化为对应的拼音具体思路,由于sap中没有将中文字符转化为拼音的函数或方法类,则以http请求访问外部服务器发布的API服务,然后获取其返回值即可1.调用外部网站上提供的api缺点:免费次数有限,后需要充值这里是用www格式的json报文*&----------------------…

(12)机器学习小白入门YOLOv:YOLOv8-cls 模型微调实操

YOLOv8-cls 模型微调实操 (1)机器学习小白入门YOLOv &#xff1a;从概念到实践 (2)机器学习小白入门 YOLOv&#xff1a;从模块优化到工程部署 (3)机器学习小白入门 YOLOv&#xff1a; 解锁图片分类新技能 (4)机器学习小白入门YOLOv &#xff1a;图片标注实操手册 (5)机器学习小…

基于Matlab传统图像处理技术的车辆车型识别与分类方法研究

随着计算机视觉和图像处理技术的发展&#xff0c;车辆检测与识别已经成为智能交通系统中的一个重要研究方向。传统图像处理方法通过对图像进行预处理、特征提取、分类与识别&#xff0c;提供了一种无需复杂深度学习模型的解决方案。本研究基于MATLAB平台&#xff0c;采用传统图…

未来趋势:LeafletJS 与 Web3/AI 的融合

引言 LeafletJS 作为一个轻量、灵活的 JavaScript 地图库&#xff0c;以其模块化设计和高效渲染能力在 Web 地图开发中占据重要地位。随着 Web3 和人工智能&#xff08;AI&#xff09;的兴起&#xff0c;地图应用的开发范式正在发生变革。Web3 技术&#xff08;如区块链、去中…

Spring AI 系列之二十一 - EmbeddingModel

之前做个几个大模型的应用&#xff0c;都是使用Python语言&#xff0c;后来有一个项目使用了Java&#xff0c;并使用了Spring AI框架。随着Spring AI不断地完善&#xff0c;最近它发布了1.0正式版&#xff0c;意味着它已经能很好的作为企业级生产环境的使用。对于Java开发者来说…

LFU算法及优化

继上一篇的LRU算法的实现和讲解&#xff0c;这一篇来讲述LFU最近使用频率高的数据很大概率将会再次被使用,而最近使用频率低的数据,将来大概率不会再使用。做法&#xff1a;把使用频率最小的数据置换出去。这种算法更多是从使用频率的角度&#xff08;但是当缓存满时&#xff0…

关于原车一键启动升级手机控车的核心信息及注意事项

想知道如何给原车已经有一键启动功能的车辆加装手机远程启动。这是个很实用的汽车改装需求&#xff0c;尤其适合想在冬天提前热车、夏天提前开空调的车主。一、适配方案与核心功能 ‌升级专车专用4G手机控车模块‌&#xff0c;推荐安装「移动管家YD361-3」系统&#xff0c;该方…

数据结构与算法:类C语言有关操作补充

数据结构与算法:类C语言操作补充 作为老师,我将详细讲解类C语言(如C或C++)中的关键操作,包括动态内存分配和参数传递。这些内容在数据结构与算法中至关重要,例如在实现动态数组、链表或高效函数调用时。我会用通俗易懂的语言和代码示例逐步解释,确保你轻松掌握。内容基…