- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- <iframe src="https://www.slidestalk.com/u45737/9_159847?embed" frame border="0" width="640" height="360" scrolling="no" allowfullscreen="true">复制
- 微信扫一扫分享
9 云上个性化推荐—— 基于PAI和Hologres的个性化推荐最佳实践-天邑
议题简介:
常见的个性化推荐系统包括日志收集,数据加工,召回,排序,离在线效果评估等诸多环节,对于中小客户存在技术门槛高,搭建周期长等问题。计算平台基于PAI,Hologres,MaxCompute,DataWorks平台产品,可以帮助客户快速搭建个性化推荐解决方案。本次分享,主要从计算平台的推荐系统整体解决方案出发,重点介绍基于PAI的向量召回算法和Hologres向量检索的整体架构,以及该架构在某社交APP的落地案例和效果分享。
嘉宾简介:
天邑,阿里云计算平台高级算法工程师
主要从事基于PAI平台的召回和排序算法研发,及基于云产品的推荐系统解决方案研发,赋能客户个性化推荐解决方案落地。
展开查看详情
1 .云上个性化推荐 基于PAI和Hologres的个性化推荐最佳实践 阿里云计算事业部 - 天邑
2 . 01 02 03 云上个性化推荐 向量召回 最佳实践 解决方案简介 PAI召回算法 & HOLO向量检索 某社交APP首页推荐 • 为什么要上云 • 为什么需要向量召回 • 整体社交推荐方案 • 云上方案是怎样的 • PAI+HOLO有什么优势 • 向量召回的优化经验
3 .#01 云上个性化推荐 解决方案简介
4 .个性化推荐 - 核心能力 个性化推荐核心价值:千人千面,实现用户需求和资源的最佳匹配,从而提升流量到业务目标的转化效果 个性化推荐内容 搭建推荐系统 反馈优化效果 用户 推荐策略/推荐模型 海量基础信息数据 个性化推荐业务流程:召回 — 排序(海量 —>万 —> 千 —> 百 —> 精准) ItemID:1 ItemID:1 ItemID:33 Rank:1 ItemID:2 召回 ItemID:2 排序 ItemID:3 ItemID:22 Rank:2 ItemID:3 模块 May like 模块 .....… .....… .....… ItemID:422 Rank:20 ItemID:500 ItemID:100,000 UserID: A UserID: A UserID: A 用户访问应用或平台,浏览信息 召回算法生成内容候选集 针对候选集排序,取得最终结果
5 .个性化推荐 – 常见方案痛点 常见推荐方案一:运营经验制定推荐策略 常见推荐方案二:开源框架自建推荐系统 需要有推荐经验的产品设计或运营人员,通过积累的 越来越多的企业选择结合AI技术实现企业推荐系统,但使 个人经验,制定业务推荐策略,并结合数据分析,调 用开源框架自建推荐系统,也存在诸多问题,影响业务发 整推荐方案,通常在业务规模比较小的企业,冷启动 展: 阶段使用,有明显的效果弊端: Ø 成本高 Ø 推荐方案及效果,受到人为影响而不可控 需要企业采购大量机器用于支持数据计算,不仅一次性投 Ø 方案难以实时结合业务发展快速更新,迭代速度慢 入资金多,且大部分企业都会存在机器资源闲置的浪费问 Ø 数据计算能力有限,大规模数据分析时候困难。 题 Ø 缺少算法人员搭建企业推荐系统,影响企业提升市 Ø 工程化工作量大 场竞争力 需要适配主流开源框架,存在巨大的工程化工作,以实现 不同业务场景最优推荐效果,或实现支持多部门模型需求 Ø 运维难 承载海量数据、多任务运行,日常运维难度很大, Ø 效果不理想
6 .个性化推荐 – 云上方案 黑盒推荐方案 白盒推荐方案 SaaS级别推荐方案,低门槛,易上手 PaaS级别推荐方案,可灵活配置,算法全流程自主可 控 ✅ 推荐业务初期,数据量少,快速验证效 ✅ 业务有一定规模,日处理数据百万起 果 ✅ 5人以上算法工程师团队,有算法积累 ✅ 0-5人算法工程师团队 ✅ 对效果优化要求高 ✅ 对效果优化要求低 机器学习PAI Hologres MaxCompute Dataworks Flink
7 .云上个性化推荐 – 白盒解决方案 PAI-Rec – 推荐服务引擎 推荐请求 多路召回 过滤 排序 冷启动 TopN推荐列表 x2i hot vec 条件 曝光 粗排 精排 重排 新 用户 物料 置 配 流 分 PAI-ABTest Hologres PAI-Studio–建模平台 PAI-EAS – 模型推理 部署 基础索引表 PAI-EasyRec model1 model2 … A/B流量划分 召 排 u2i i2i c2i 回 序 实验配置 部署 GraphLearn 模 模 Hologres 向量表 型 型 数据分析 Alink u_emb i_emb 特征数据 模型训练评估 用户 物料 训练样本 用户特征数据 物料特征数据 Flink MaxCompute 特征工程 实时数据 Dataworks 用户 物料 用户行为日志 用户画像数据 物料属性数据
8 .云上个性化推荐 – PAI-EasyRec算法框架 超大规模分布式训练 大规模稀疏特征 分布式评估 自动超参搜索 知识蒸馏 PAI-EasyRec算法框架 多样化输入 组件化模型 CrossEntropy OSS SmoothL1 Optimizer ModelZoo OdpsTable 输 特离 L2Loss Adam 入 多 重 AdaGrad HDFS 征在 召 排 目 排 目 AUC AdaDelta 特 处线 回 序 标 序 标 … 征 一 Accuracy Kafka 理致 模 模 模 模 型 型 MSE uid:string 型 型 ctr age: integer duration price:float IdFeature DSSM DeepFM ESSM … … RawFeature MIND DIN MMoE SeqFeature … DCN DBMTL … … …
9 .云上个性化推荐 – PAI冷启动方案 为什么需要冷启动? • 目前的召回、粗排、精排算法对新物品、新用户不友好 • 新物品很大程度上,会被模型“低估” • 冷启动问题处理不好会影响内容创造者的积极性,进而影响平台生态的健康发 展 用户冷启动 物品冷启动 热门推荐 基于内容理解 Side-Info | 主题模型 | 多模态Embedding 用户基本画像HOT 基于快速试探 MAB | Contextual Bandit | 强化学习 基于社交关系U2U 基于多领域数据 多场景迁移学习 基于用户兴趣HOT 少样本学习 知识图谱 聚类
10 .云上个性化推荐 – PAIRec推荐引擎 PAI-Rec – 推荐服务引擎 接口层 Http Server 路由配置 Controller 数据源 工具层 Redis 实时缓存 召回层 协同过滤 向量召回 Topic语义 自定义召回 MySQL 模块配置 过滤层 曝光过滤 去重过滤 数量调整 自义定过滤 OTS 实时日志 HBase DNS解析 排序层 Alink模型 TF模型 Boost提权 自义定排序 HOLO AB配置 Kafka 重排层 分组排序 数据打散 窗口规则 自义定重排 端到端 配置化 灵活性 串联推荐服务的各个流程 配置化使用内置模块 便捷注册各种自定义实现
11 .云上个性化推荐 – PAI-A/BTest A/B Test是什么 PAI A/B Test 以推荐场景为例(可支持用户运营、用户增长、UI等等) 可满足多样化A/B需求的流量模型 普通A/B 分层A/B 条件A/B 50%用户 50%用户 实验室 实验室 实验室X 实验室Y 新用户 老用户 召回层 方案A 方案B ExpA ExpB ExpC 49% 28% 排序层 转化率 转化率 ExpA ExpB ExpC ExpD ExpE ExpF ExpA ExpB ExpC ExpD 在同一时间维度将用户分成几组 在保证每组用户特征相同的前提下 重排层 让用户分别看到不同的方案设计 ExpG ExpH 根据其真实数据反馈科学迭代方案
12 .#02 向量召回 PAI召回算法 & HOLO向量检索
13 .向量召回 – 简介 传统召回算法 如 CF、Swing 等 向量召回算法 U2I 如 DSSM、MIND、YoutubeDNN 等 简单 高效 Item Embeddings User Embedding Item1 TopK Item2 完全基于用户的历史行为 … ItemN 难以结合Side Information I2I 如 Node2Vec、Metapath2Vec等 Item Embeddings Trigger Items 发现性弱 越推越窄 长尾差 User Item1 Trigger TopK Item2 … … ItemN
14 .向量召回 – PAI向量召回 丰富性 便捷性 自动化 丰富的向量召回算 可视化搭建快速实 AutoML自动化调参 法 验 PAI-Studio DSSM GraphSage PAI-EasyRec MIND GAT YoutubeDNN GraphLearn SEAL DeepModels GraphModels Alink Word2Vec Node2Vec Metapath2Vec …
15 .向量召回 – Hologres向量检索 select id, pm_approx_euclidean_distance(feature, '{0.1,0.2,0.3}')) as distance from feature_tb order by distance asc limit 10; 高性能 高易用性 分布式 深度集成阿里达摩 SQL查询接口,兼容 能够支持分布式构 院自研的Proxima, PostgreSQL生态, 建向量索引、以及 能够提供低延时、 简单易用,且支持带 对索引进行检索, 高吞吐的在线查询 复杂过滤条件的检索 可以支持水平扩展。 服务
16 .向量召回 – Hologres向量检索 全量检索 select id, pm_approx_euclidean_distance(feature, '{0.1,0.2,0.3}')) as distance from feature_tb order by distance asc limit 10; 复杂条件下检索 select id, pm_approx_euclidean_distance(feature, '{0.1,0.2,0.3}')) as distance where data_time between '1990-11-11 12:00:00' and '1990-11-11 13:00:00’ and tag in ('X', 'Y', ‘Z') from feature_tb order by distance asc limit 10;
17 .#03 最佳实践 某社交APP首页推荐
18 . 最佳实践 – 某社交APP首页推荐 列表页 详情页 会话页 目标 建立用户和用户间新联系 Query User 指标 UV回复转化率 UserA -> UserB -> UserA Cand Users
19 .最佳实践 –首页推荐方案 难点 • 算法需具备发现性,能建立新联系 • “有效回复”优化目标非常稀疏 多路召回 过滤层 排序层 Etrec协同过滤 曝光过滤 GBDT+FM多目 DSSM向量召回 关注过滤 标 重排层 GraphSage向量 热点过滤 冷启动保量 DBMTL多目标 Query User Side-Info策略 多路截断 直播保量 新Cand用户冷启动 Side-Info策略 Contextual Bandit
20 .最佳实践 – 向量召回算法 PAI-EasyRec | DSSM Softmax Cross Entropy Inner Product FC+BN+RELU FC+BN+RELU • 双塔结构 - 充分利用Side-Info FC+BN+RELU FC+BN+RELU • 分布式训练时负采样 FC+BN+RELU FC+BN+RELU • 负样本MiniBatch内共享,更高 效地支持更大的负采样 … Embedding Layer Query User Pos Cand User Neg Cand Users
21 .最佳实践 – 向量召回算法 PAI-EasyRec | DSSM – 优化技巧 Negative Sampling Is All You Need 负采样数 0.18 0.17 存储压力激增 计算压力激增 0.16 hitrate@K 0.15 正负样比例=1:1w最佳 分布式训练时负采样 负样本MiniBatch内共享 0.14 女找男 PS#1 PS#2 PS#N Pos #1 Neg #1 Neg #2 … Neg #1w 0.13 男找女 Pos #2 Neg #1 Neg #2 … Neg #1w 0.12 … Pos #3 Neg #1 Neg #2 … Neg #1w 128 256 512 1k 2k 4k 1w 2w 4w … 负采样数 Pos #N Neg #1 Neg #2 … Neg #1w Graph NegSampler Pos Cand User
22 .最佳实践 – HOLO向量检索 • 建Hologres向量表 begin; create table cand_emb_tb ( rid int8, r_sex int8, r_emb float4[] check(array_ndims(r_emb) = 1 and array_length(r_emb, 1) = 32) ); call set_table_property('feature_tb', 'proxima_vectors', '{"feature":{"algorithm":"Graph","distance_method":"InnerProduct”,"builder_params": {}, "searcher_init_params":{}}}’); commit; • 插入MaxCompute外表数据 insert into cand_emb_tb select rid, r_sex, string_to_array(item_emb,‘,’)::float4[] as r_emb from cand_emb_tb_outside; • 性别条件下的向量检索 select rid, pm_approx_inner_product_distance(r_emb, ‘?’)) as distance where r_sex = ? from cand_emb_tb order by distance asc limit 10;
23 .最佳实践 – 首页推荐效果 UV回复转化率 UV会话转化率 UserA -> UserB -> UserA UserA -> UserB -> UserA -> UserB 相对提升 39% 相对提升 30%
24 .#04 More And More… PAI上其他向量算法能力
25 .PAI上其他向量算法能力 人脸匹配 图片搜索 同款识别 … 问答匹配 对话检索 句子匹配 … 应用 表征学习 自监督学习 图像分类 文本匹配 预训练表征 文本分类 算法 图像检测 图像分割 视频分类 阅读理解 序列标注 … 动作检测 OCR … PAI-EasyVision PAI-EasyTransfer
26 .关注我们 关注 “AI 检索技术博客”公众号, 获取更多重磅讲师技术文章、 相关领域资讯、以及线下分享活动信息
27 .Thanks