推荐系统-知识综述

article/2025/8/23 9:55:21

文章目录

  • 综述
    • 腾讯 | 从零开始了解推荐系统全貌
    • 阿里 | 新时期的阿里妈妈广告引擎架构
  • 特征工程
    • 推荐系统之数据与特征工程
      • 数据生成
      • 数据预处理:ETL
      • 特征工程
      • 未来
  • 画像/用户行为
    • 飞猪旅行用户理解服务架构
  • 倒排
    • 百度广告倒排服务极致优化
  • 粗排
    • 阿里粗排技术体系与最新进展分享
    • 推荐系统(5):粗排工程实践与思考
    • 美团搜索粗排优化的探索与实践 (2022-08-11)
      • 效果优化:精排Teacher模型蒸馏粗排Student模型
      • 效果性能联合优化:基于神经网络架构搜索的粗排建模方案
    • 爱奇艺短视频推荐:粗排篇
    • 腾讯音乐:全民 K 歌推荐系统架构及粗排设计
      • 多样性保证:DPP概率模型
    • 粗排阶段性能与效率的权衡:基于可学习特征选择的方法(2021-11-02)
  • 精排
    • 微博推荐实时大模型的技术演进(2023-04-24)
  • 模型训练
    • 百度基于 GPU 的超大规模离散模型训练框架 PaddleBox 与 FeaBox(2023-03-12 )
    • PaddleBox:百度基于 GPU 的超大规模离散 DNN 模型训练解决方案

综述

腾讯 | 从零开始了解推荐系统全貌

https://www.6aiq.com/article/1601290232724

阿里 | 新时期的阿里妈妈广告引擎架构

https://www.6aiq.com/article/1654269863835
统一运行时 :所有模块选择统一的运行时框架,来托管PaaS层的能力
统一数据抽象 :将引擎依赖的各种数据统一抽象为Table(倒排/正排/KV等),业务开发只需要配置化地依赖Table,即可在自己的DAG中去直接消费。
统一业务抽象 :有了1/2后,继续对业务编程接口和算子进行规范化:算子的输入输出均为标准Schema的数据Table、去除对Session的依赖,从接口上让算子功能内聚;同时合理抽象所有算子的颗粒度,算子粒度变小之后,复用性大大提升。
优点:策略可以在不同模块复用。策略已经覆盖到了粗排、精排、重排等多个阶段,各阶段的逻辑要保持一致性,那么就需要相同的策略算子和子图在引擎的各阶段能够尽量复用。但是,不同阶段的计算特点不同,比如粗排广告比精排大一个数量级,但是精排广告比粗排计算精度要高,因此需要算子和子图能够以本地集成和服务化调用等多种形式来灵活部署和访问

特征工程

推荐系统之数据与特征工程

https://www.codenong.com/cs106528496/
讲解推荐系统所依赖的数据,怎么处理这些数据,让数据转换成推荐算法可以直接使用的形式,最终我们就可以构建高效、精准的推荐模型,这些处理好的适合机器学习算法使用的数据即是特征,而从原始数据获得特征的过程就是特征工程

数据生成

数据类型

  • 特征数据源:用户行为、用户属性(画像)、item属性、上下文信息(当时的时间、地点、设备、app版本等)
  • 数据类型:数值、文本、图片、音视频
  • 数据组织形式:结构化(文本、数值类,比如用户、物品属性)、半结构化(日志信息)、非结构化(音视频)

数据收集

  • 行为数据:客户端埋点上报
  • 用户属性:注册时提前收集、app权限上报
  • item属性:物料提供方具备
  • 上下文信息:app实时获取

数据预处理:ETL

ETL(Extract-Transform-Load),用来描述数据从生产源到最终存储之间的一系列处理过程,一般经过抽提、转换、加载
E

  • 行为数据:分离线和实时,离线通过ETL进入数仓,实时流通过Kafka等消息队列被实时(如Spark Streaming、Flink)处理,或者进入HBase、ES等实时存储供后面的业务查询
  • 用户属性:一般实时性不高,如果实时性高的通过binlog、消息队列
  • 上下文数据:实时流

T
由于抽取的数据多源、多端规范不一,所以需要对抽取的数据进行数据清洗、格式转换、缺失值填补、去重等操作,最终得到格式统一、高度结构化、数据质量高、兼容性好的数据,供推荐算法的特征工程处理。

L
加载是把数据加载至最终的存储,比如数据仓库、关系型数据库、KV等。对于离线的推荐系统,训练数据放到数仓中,属性数据存放到关系型数据库中。

特征工程

特征工程是将原始数据转换为特征的过程
特征的取值类型:离散特征、连续(数值)特征、时空特征、文本特征、富媒体特征
特征的可解释性:显式特征、隐式特征

特征工程的步骤
特征预处理:缺失值处理、归一化、异常值与数值截断、非线性变换
特征构建

  1. 离散特征:如性别、学历、视频类型、标签、导演。(编码方式:one-hot编码、散列编码、计数编码、离散特征之间交叉、离散特征与连续特征交叉)
  2. 连续(数值)特征:(编码方式:直接使用、离散化、特征交叉)
  3. 时空特征:(编码方式:转化为数值、将时间离散化)
  4. 文本特征:(编码方式:TF-IDF、LDA、Word2Vec)
  5. 富媒体特征:可转为向量表示
  6. 嵌入特征:基于内容的嵌入:使用标的物属性(如视频标题、标签、海报图、视频、音频等信息),通过 NLP、CV、深度学习等技术生成嵌入向量。基于行为的嵌入:基于用户与标的物的交互行为数据生成嵌入
    特征选择
  7. 基于统计量选择:选择方差大的特征、皮尔逊相关系数、覆盖率、假设检验、互信息(表示相关性)
  8. 基于模型选择:基于模型参数、子集选择 (自动选特征的技术方案)
    特征评估:特征覆盖率、特征的维度、定性分析、定量分析

未来

融合更多的数据源来构建更复杂的推荐模型、深度度学习等复杂技术减少人工特征工程的投入、实时数据处理与实时特征工程(现在很多公司已经实现了)、自动化特征工程

画像/用户行为

飞猪旅行用户理解服务架构

https://zhuanlan.zhihu.com/p/618707844
RTUS:实时用户理解服务中心
把用户多方面、多维度的兴趣理解或者是意图预测存到实时DB内。下游各个场景如果需要用户各个维度理解时,直接调用接口去查询。实现数据复用,模型复用,减少性能开销。

  1. 多链路数据融合:对服务端日志、客户端日志、专链数据异步融合。用统一的schema进行数据收集,形成统一的数据链路
  2. 数据和模型复用: TODO

倒排

百度广告倒排服务极致优化

https://baijiahao.baidu.com/s?id=1752248929718505328
Array比较于List,对cache更友好。但是使用Array,如果满足修改实时生效,开销更大。因此文章提出了一种内存数据结构:HybridIndexTable(HIT)混合倒排表
特点
1 用HashMap索引keysign
2 短链采用连续存储,长链则是一棵叶子连续存储的前缀树,前缀树则参考了业界AdaptiveRadixTree,简称ART(重点在于自适应)
3 短链和叶子的连续存储都采用了自研的RowContainer,简称RC
但是注意,HIT是连续存储,但是append-only、标记删除
优化
1 通过LeafCompaction优化稀疏。因为key值分布稀疏,可能导致子树扇出小但是深度很深。通过自适应动态span提升平均扇出,降低树高,通过叶子合并解决叶子数据稀疏的问题
2 RCU(Read Copy Update)面向读者实现读写安全。这里不采用CAS是因为CAS常见写法是while循环直到成功,如果有10个线程都在高速修改一个链表尾巴,这时候CAS只是说把陷入内核省掉了,但是还是要不停地循环,不能完全释放并行的能力,最好能从业务上打散。另一方面,CAS也有问题,多核下 CPU cache coherence protocol总线仲裁,导致破坏流水线。

粗排

阿里粗排技术体系与最新进展分享

https://zhuanlan.zhihu.com/p/355828527
https://zhuanlan.zhihu.com/p/371025064
CODL Model serving中的优化
并行化:请求并行、多线程并行、GPU
行列转化:将行计算重构成列计算,对同一列上的稀疏数据进行连续存储,之后利用MKL优化单特征计算,使用SIMD优化组合特征算子,以达到加速的目的。
Float16:NVIDIA的Turning架构对Float16的矩阵乘法有额外的加速。使用MPS (Multi-Process Service)解决kernel启动的开销

推荐系统(5):粗排工程实践与思考

https://zhuanlan.zhihu.com/p/474874372
本文介绍的粗排架构是基于双塔的,可借鉴的点:对于双塔粗排,由于item向量训练可能为小时级,因此新入池的item是找不到item向量的。一种可行的做法是,对于这部分item,可以通过本地TF,来预估item向量,并embedding缓存到cache

美团搜索粗排优化的探索与实践 (2022-08-11)

https://tech.meituan.com/2022/08/11/coarse-ranking-exploration-practice.html

效果优化:精排Teacher模型蒸馏粗排Student模型

蒸馏方案
精排结果蒸馏:策略1:在用户反馈的正负样本基础上,随机选取少量精排排序靠后的未曝光样本作为粗排负样本的补充。策略2:直接在精排排序后的集合里面进行随机采样得到训练样本,精排排序的位置作为 label 构造 pair 对进行训练。策略3:基于策略2的样本集选取,采用对精排排序位置进行分档构造 label ,然后根据分档 label 构造 pair 对进行训练
精排预测分数蒸馏:希望粗排模型输出的分数与精排模型输出的分数分布尽量对齐
特征表征蒸馏:将对比学习技术应用到粗排建模中,使得粗排模型在蒸馏精排模型的表征时,也能蒸馏到序的关系

效果性能联合优化:基于神经网络架构搜索的粗排建模方案

同时优化粗排模型的效果性能,选择出满足粗排时延要求的最佳特征组合和模型结构。
效率建模:为了在模型目标中建模效率指标,我们需要采用一个可微分的学习目标来表示模型耗时,粗排模型的耗时主要分为特征耗时和模型结构耗时。

爱奇艺短视频推荐:粗排篇

https://www.6aiq.com/article/1614422394959
本质上仍为双塔粗排

腾讯音乐:全民 K 歌推荐系统架构及粗排设计

https://www.6aiq.com/article/1615248202348
其基本结构仍然为双塔。思考方式可以借鉴:
路线1:把粗排作为召回的延伸,通过实时serving或实时指标对召回排序的结果做一个选择。
路线2:把粗排当成是精排的迁移或压缩(实际上现在都是路线2)
模型蒸馏,弥补子模型缺少复杂结构或交互结构导致的部分收益损失
特征蒸馏,通过一个更大的teacher模型学习全量特征,再把学到的知识迁移到子模型,即弥补了上述的部分特征损失
在粗排中使用时,结构仍为双塔,粗排模型未使用交叉特征。在user tower和item tower交互后,加上精排模型的logits信息,共同构成粗排的优化目标

多样性保证:DPP概率模型

选择出一个子集使得多样性和相关性联合建模的收益最大。直观理解,先基于多样性和相关性构建一个矩阵,该矩阵行列式的物理含义是矩阵中各向量张成的平行多面体体积的平方,这样就把问题转换成了一种可度量的方式:要想同时最大化多样性和相关性,只需要最大化平行多面体的体积。
DPP模型贯穿整个推荐链路,包括粗排后、精排后(rerank)

粗排阶段性能与效率的权衡:基于可学习特征选择的方法(2021-11-02)

https://zhuanlan.zhihu.com/p/428178907

精排

微博推荐实时大模型的技术演进(2023-04-24)

https://mp.weixin.qq.com/s/wRi0YJLpru5M1My0H2Ww0w
1. 技术迭代
1.1. 多目标
主要目标:点击、互动、时长、负反馈、完播、下刷
技术点: 融合系数计算:静态融合、离线计算升级为自动搜参。融合方式:打分公式融合升级为模型融合

1.2. 多任务
用1个模型训练好多个目标,优点

  • a. 有相关性的目标之间通过浅层的共享表示互相分享、互相补充学习到的领域相关信息,从而相关目标互相促进学习,进而提升模型颈估能力
  • b. 多任务学习的本质是迁移学习,互动目标通过迁移(共享)点击目标的浅层网络,可缓解互动目标正样本稀疏向题,这也是电商类公司借助多任务模型大幅提升转化率的主要原因
  • c. 模型大小近似一个单目标模型大小,节省资源
  • d. 平均多个任务噪声从市学习到更一般的表征,增强泛化能力
    技术点: 从MMOE 开始,到 SNR,再到 DMT,最后到全量的 MM,其实就是在 SNR 上做了融合网络等优化。

1.3. 多场景
背景:场景有大有小,小场景收敛的没那么好,因为数据量不足,而大场景的收敛比较好,即使两个场景都差不多大,中间也会有一些涉及到知识迁移会对业务有收益。和多任务在技术上有很多相通的点。
技术点:

  • a. 以MMOE/CGC为基础结构(京东DNDNN/美团MBN-V4):共享专家部分由多个场景样本联合训练,或主从结构有部分专家共享、部分专家独有,上层每个场景有各自独立的塔结构
  • b. 阿里STAR模型:星结构,每个场景拥有自己独立的参数,同时场景间拥有共享的参数。场景间共享参数和场景独有参数相乘,得到实际每个场景的参数
  • c. MDN base SNR
  • d. SNR + EPNET

1.4. 兴趣表征
用户行为序列建模
技术点:pooling、attention(DIN)、RNN类(RNN\LSTM\GRU)、transformer(支持并行计算/与缓存提速,主要包括ATRank, BST, DSIN , TISSA, SDM , KFAtt , DFN, SIM, DMT)
把序列拉长(点击、时长、互动序列等),可能带来更好的算法效果,但是需要算力成本也更大。但是超长的序列,价值未必突出,大家关注点变化快,信息流中7天前的信息分发就较少了。太长的行为序列可能会对预估用户对item的偏好价值有减弱。当然也取决于不同场景。对低频/回流用户,结论可能不同

1.5特征
技术点
匹配特征:用户对于单个物料、单个内容类型、单个发博者建立一些比较详细的统计数据,都能带来一些收益。
多模态特征: 推荐模型是基于用户行为的,有一些低频、冷门的 Item 在整个系统中用户行为不足,引入更多的先验知识能带来更多收益。多模态通过引入 NLP 等技术引入一批语义进来,对于低频和冷启动都是有帮助的

链路表达一致性
粗排精排一致性:LTR
粗排模型优化:使用DNN和级联模型做STACKING架构。粗排内先用双塔做一层筛选,之后在过滤阶段给粗排的DNN模型。

模型训练

百度基于 GPU 的超大规模离散模型训练框架 PaddleBox 与 FeaBox(2023-03-12 )

https://zhuanlan.zhihu.com/p/613322265
PaddleBox聚焦训练性能、稳定性、成本
存储挑战:实现了分布式的 GPU 稀疏参数服务器、SSD 的超大的稀疏参数服务器
性能挑战:软件上,大小流水线架构,异构硬件最大化并行。硬件上:性能最优的CPU/GPU/SSD/网卡布局设计
通信挑战:升级网卡拓扑,GPU直接高速通信。梯度聚合+量化通信,降低数据量

FeaBox 基于 GPUBox 的一体化特征抽取框架
一体化流式框架,提升性能和易用性。基线复用+列存储,解决IO和重复计算问题。异构特征抽取,支持CPU/GPU混合特征抽取
异构调度策略:
依据 DAG 的拓扑实现分层调度。在同层之内,尽量使得 CPU 和 GPU 去并行。在同一层内,首先异步的调度 GPU 节点,进行GPU 操作。再同步调用 CPU 节点,使得GPU和GPU并行执行。
对于同层的 GPU 节点,我们还又会做 KernelFusion 来减小 Launch 的开销。最后在 GPU 透传之后,将结果列转行,转到 CPU 的内部,最后弹出数据。

显存分配:显存池,在显存池上进行分层
异构调度策略

显存分配方案
显存分配方案

PaddleBox:百度基于 GPU 的超大规模离散 DNN 模型训练解决方案

https://www.6aiq.com/article/1667215658349
处理超大离散DNN模型的训练,传统分布式CPU解决方案存在成本问题、通信长尾和稳定性问题、算力问题。PaddleBox提出了基于GPU的分布式GPU 稀疏参数服务器
特点
存储大:支撑超大模型参数存储的SSD参数服务器
超大规模异构存储稀疏参数服务器,支持单机10TB、万亿维参数存储
IO优化 :构建多级全内存hash索引,实现对SSD数据一次性的准确读写,每次查询最多一次IO
查询剪枝 :结合数据访问的冷热比例,MEM Cache 存储热数据;使用BloomFilter判断当前key 是否在SSD上进一步降低无效的访盘次数。这两种剪枝策略使得SSD查询次数降低一个数量级
底层优化 :通过异步IO和数据对齐等优化技术,SSD读写性能提升5倍,直达SSD理论极限5*3GB/s
训练快:支撑参数高效访存的HBM参数服务器
采用SSD参数服务器后,单台GPU服务器即可进行超大模型训练,但是其训练速度却并没有得到很大提升。原因在于训练过程中Sparse参数的超高频CPU-GPU通信,无法充分发挥GPU超强算力。
解决:多机多卡分布式GPU稀疏参数服务器。HBM、MEM和SSD三层参数服务器自动化协同,既具备SSD的大容量,又具备HBM的高性能。


http://chatgpt.dhexx.cn/article/XMApoyHm.shtml

相关文章

论文解读:《BACPI:一个用于复合蛋白相互作用和结合亲和力预测的双向注意神经网络》

期刊名:Bioinformatics 分区:Q1 发表:2022年1月8号 代码数据集:GitHub - CSUBioGroup/BACPI 一、摘要 BACPI,以预测CPI(化合物-蛋白质相互作用)和它们的结合亲和力,识别化合物-蛋…

云效故障定位研究论文被ICSE 2021 SEIP track收录

简介:新成果 近期,由阿里云云效团队联合复旦大学CodeWisdom研究团队、阿里技术风险部安全生产团队,合作完成的论文《MicroHECL: High-Efficient Root Cause Localization in Large-Scale Microservice Systems》被ICSE 2021 SEIP track录用。…

基于Mahout的电影推荐系统(MVC架构)

源代码下载地址:http://download.csdn.net/detail/huhui_bj/5248056 参考资料: http://www.ibm.com/developerworks/cn/java/j-lo-mahout/ http://blog.sina.com.cn/s/blog_541086000100qh2j.html 1 Mahout介绍 Apache Mahout 是 Apache Software Founda…

推荐系统 | 【01】简介

[toc]简介 介绍 简介:推荐系统经过对年的发展,在电商、资讯、音乐等应用中成为了核心组件之一。 背景:信息的过载与用户对于需求不够明确。 概念:用户没有明确的需求且服务于用户的商品信息过载,则系统能过通过算法对…

MADlib——基于SQL的数据挖掘解决方案(2)——MADlib基础

一、MADlib简介 MADlib是Pivotal公司与伯克利大学合作开发的一个开源机器学习库,提供了多种数据转换、数据探索、统计、数据挖掘和机器学习方法,使用它能够简易地对结构化数据进行分析和挖掘。用户可以非常方便地将MADlib加载到数据库中,扩展…

OushuDB入门(八)——AI篇

一、OushuDB AI简介 OushuDB可集成MADlib机器学习库作为其AI组件。现在OushuDB通过MADlib已经支持了大部分机器学习算法,正在研发一个新的组件以支持深度学习。OushuDB对MADlib进行了增强和优化,并在此基础上提出了AI-in-Database的概念。 MADlib…

朴实无华,总结200道往年BAT机器学习面试题

来源:CSDN 刷题,是面试前的必备环节。本文作者总结了往年BAT机器学习面试题,干货满满,值得收藏。 想要入职大厂可谓是千军万马过独木桥。 为了通过层层考验,刷题肯定是必不可少的。本文作者根据网络在线发布的BAT机器学…

2019年国内IT行业就业状况分析,你拖后腿了吗?

点击上方“后端技术精选”,选择“置顶公众号” 技术文章第一时间送达! 作者:刚入道的大学僧 本文系投稿,原文内容点击阅读原文直达 一、分析背景与分析目的 随着科技的迅速发展,计算机的普及及对人类生活的渗透&#x…

Deep Learning Methods for Remote Heart Rate Measurement:A Review and Future Research Agenda

前言 本文为一片远程心率监测综述的总结复述,本文为作者第一篇试写博客,欢迎大家提出宝贵意见。 文章主要内容:1.简述了有关远程心率监测的基础知识与相关概念。2.讨论了基于深度学习的远程心率检测方法的几个最新进展,并根据模型…

论文解读:基于共享混合深度学习架构的DNA形状特征预测转录因子结合位点

Predicting transcription factor binding sites using DNA shape features based on shared hybrid deep learning architecture 数据:https://github.com/wangguoguoa/CRPTS 表S1: Tables S1 表S2:S2 表S3:Table S3 目录 1 文章概述…

一文简单理解“推荐系统”原理及架构

本文主要介绍什么是推荐系统,为什么需要推荐系统,如何实现推荐系统的方案,包括实现推荐系统的一些常见模型,希望给读者提供学习实践参考。 为什么需要推荐系统 对于信息消费者,需要从大量信息中找到自己感兴趣的信息&a…

拉普拉斯, 高斯, 高尔顿, 皮尔逊, 戈塞特, 费歇尔对统计学的发展贡献

由于人类的统计实践是随着计数活动而产生的,因此,统计发展史可以追溯到远古的原始社会,也就是说距今足有五千多年的漫长岁月。但是,能使人类的统计实践 上升到理论上予以概括总结的程度,即开始成为一门系统的学科统计学…

css过渡 取消过渡_如何过渡到微服务架构

css过渡 取消过渡 获取完整的书 微服务和容器 建议零售价$ 39.99 看见 本文摘录自Parminder Singh Kocher撰写的Pearson Addison-Wesley的著作《微服务和容器》。 经皮尔逊(Pearson)许可在此处转载©2018。 有关更多信息,请访问notifyit…

从编解码、传输到基础架构 详解Bigo多媒体技术栈

本文来自Bigo多媒体技术团队的投稿,详细介绍了Bigo多媒体技术的前生今世,通过何种技术手段支撑起了BigoLive、Likee和imo三大业务。技术栈具体涉及编解码、传输、全球基础设施架构等三方面。如果你也有独到的经验与思考,欢迎通过contributeli…

推荐系统lambda架构学习笔记之推荐系统(一)

推荐系统 个性化推荐(推荐系统)经历了多年的发展,已经成为互联网产品的标配,也是AI成功落地的分支之一,在电商(淘宝/京东)、资讯(今日头条/微博)、音乐(网易云音乐/QQ音乐)、短视频(抖音/快手)等热门应用中,推荐系统都是核心组件之一。 推荐…

极客星球 | 联邦学习与产品化之路

一、 背景——联邦学习与fate简介 1、联邦学习 联邦学习(Federated Learning)是一种新兴的人工智能基础技术,由谷歌最先提出于2016年,原用于解决安卓手机终端用户在本地更新模型的问题。其设计目标是在保障大数据交换时的信息安…

云效故障定位论文被ICSE2021 SEIP track收录

近期,由阿里云云效团队联合复旦大学CodeWisdom研究团队、阿里技术风险部安全生产团队,合作完成的论文《MicroHECL: High-Efficient Root Cause Localization in Large-Scale Microservice Systems》被ICSE 2021 SEIP track录用。本文针对大规模微服务系统…

简历项目-

文章目录 项目一:电商广告推荐系统一、数据集项目实现分析二、根据用户行为数据创建ALS模型并召回商品用户行为数据拆分(pv,fav,cart,buy)预处理behavior_log数据集根据用户对类目偏好打分训练ALS模型根据用户对品牌偏好打分训练ALS模型 三. …

【推荐系统算法学习笔记1】基本架构、专有名词、构建流程

文章目录 1.架构1.1 大数据框架:lambda 架构的1.2.基本概念 2. 推荐模型构建流程2.1 数据2.1.1 数据来源2.1.2 数据清洗、处理 2.2 特征工程2.3 算法(机器学习) 来源 1.架构 推荐算法架构 召回 协同过滤基于内容的基于隐语义的 排序 召回决定…

个性化推荐系统

一、系统架构 1、大数据Lambda架构 (1)Lambda系统架构提供了一个结合实时数据和Hadoop预先计算的数据环境和混合平台, 提供一个实时的数据视图 (2)分层架构 ----- 批处理层 a.数据不可变,可进行任何计算&#xff0c…