简介: 常见的个性化举荐零碎包含日志收集,数据加工,召回,排序,离在线成果评估等诸多环节,对于中小客户存在技术门槛高,搭建周期长等问题。计算平台基于 PAI,Hologres,MaxCompute,DataWorks 平台产品,能够帮忙客户疾速搭建个性化举荐解决方案。本次分享,次要从计算平台的举荐零碎整体解决方案登程,重点介绍基于 PAI 的向量召回算法和 Hologres 向量检索的整体架构,以及该架构在某社交 APP 的落地案例和成果分享。
本文内容来自于
由达摩院领航举办的 3 月 20 日向量检索专场 Meetup 讲师演讲内容
讲师介绍
- 天邑
阿里云计算平台高级算法工程师。次要从事基于 PAI 平台的召回和排序算法研发,及基于云产品的举荐零碎解决方案研发,赋能客户个性化举荐解决方案落地。 -
- *
内容简要:
一、云上个性化举荐
二、向量召回
三、最佳实际
01 云上个性化举荐
解决方案简介
(一)个性化举荐 – 外围能力
个性化举荐外围价值是要做到千人千面,实现用户需要和资源的最佳匹配,从而晋升流量到业务指标的转化成果。
个性化举荐流程个别分召回和排序两个局部,咱们要从海量的数据中来精准的筛选出几个到几十个 Item 给用户举荐过来。
(二)个性化举荐 – 常见计划痛点
常见举荐计划一:经营教训制订举荐策略
须要有举荐教训的产品设计或经营人员,通过积攒的集体教训,制订业务举荐策略,并联合数据分析,调整举荐计划,通常在业务规模比拟小的企业,冷启动 阶段应用,有显著的成果弊病:
- 举荐计划及成果,受到人为影响而不可控。
- 计划难以实时联合业务倒退疾速更新,迭代速度慢。
- 数据计算能力无限,大规模数据分析时候艰难。
- 短少算法人员搭建企业举荐零碎,影响企业晋升市场竞争
常见举荐计划二:开源框架自建举荐零碎
越来越多的企业抉择联合 AI 技术实现企业举荐零碎,但应用开源框架自建举荐零碎,也存在诸多问题,影响业务倒退:
- 老本高 须要企业洽购大量机器用于反对数据计算,不仅一次性投入资金多,且大部分企业都会存在机器资源闲置的节约问题
- 工程化工作量大 须要适配支流开源框架,存在微小的工程化工作,以实现不同业务场景最优举荐成果,或实现反对多部门模型需要。
- 运维难承载海量数据、多任务运行,日常运维难度很大。
- 成果不现实。
(三)个性化举荐 – 云上计划
在云上咱们能够利用云上的工程基建和算法基建来减缓这部分的老本。在云上提供了两种的举荐计划,一种是黑盒化的,一种是白盒化的,黑盒化的解决方案低门槛易上手。白盒化的解决方案,整个算法流程是工程师全副自主可控的,它适宜于有肯定规模的,日解决数据百万起的团队,能够反对举荐算法的疾速迭代。
(四)云上个性化举荐 – 白盒解决方案
这是整个白盒化的推动解决方案的架构图,咱们从下往上看,最上层是数据处理模块,MaxCompute 和 Dataworks 的负责离线的特色解决,失去一些离线训练样本和用户的特色数据物料数据,而 Flink 是反对实时的特色解决,有了特色样本数据,会流入到 PAI-Studio 一体化的建模平台中。
其中 PAI-EasyRec 负责举荐算法,由 GraphLearn 和 Alink 负责一些图算法和传统机器设计算法。有了这一些算法,个别会产出两局部的模型,召回模型和排序模型。召回模型咱们能够例行部署到 Hologres 上,部署成各种根底索引表,向量召回的话会部署成向量表,这边图不太好画,user 局部向量也能够在 EAS 上进行实时推理。排序模型的话,咱们会部署成在线的模型推理服务来进行在线的打分推理。
有了根底索引表向量表和模型的推理服务,咱们再往下层就是整个举荐服务的引擎,咱们称之为 PAI-Rec 举荐服务引擎,PAI-Rec 间接承受用户的举荐申请,串联了多路召回、过滤、排序和冷启动模块来给出 TopN 举荐列表。
PAI-Rec 之外,咱们有 PAI-ABTest 来做 ab 试验,它次要负责迷信流量划分和指标的剖析,反对咱们云上举荐的成果的疾速迭代。
(五)云上个性化举荐 – PAI-EasyRec 算法框架
咱们重点来看一下其中的几个模块,首先是 PAI-EasyRec 的整个举荐算法框架,能够反对多样化的数据源,比如说 OSS、OdpsTable、HDFS、Kafka 等等,有了这样的特色数据,咱们会进入一个离在线统一的特色解决模块,这外面能够反对 IdFeature、RawFeature、SeqFeature 等等的特色解决。最两头的是 ModelZoo,蕴含很多 PAI 精心积淀的排序模型、召回模型和多指标模型,当然也反对算法工程师来基于此自定义本人的算法。整体上看,EasyRec 能在 PAI 上提供万亿样本、千亿特色的超大规模分布式训练、分布式的评估能力,还反对主动超参搜寻和常识蒸馏等调优成果的性能。
(六)云上个性化举荐 – PAI 冷启动计划
除了通用的举荐算法之外,咱们还提供了 PAI 冷启动计划,咱们为什么须要冷启动?
因为常见的举荐算法对新物品和新用户是不太敌对的,
新物品在很大水平上是经常会被低估的。
冷启动问题解决不好会影响内容创造者的积极性,进而影响平台生态的衰弱倒退
咱们 PAI 上的冷启动计划分为用户冷启动和物品冷启动两局部。用户冷启动次要是基于用户的根本画像,基于社交关系,基于用户趣味的一些热门举荐,U2U 的举荐。物品的冷启动的算法的则比拟丰盛了,有基于内容了解的,有基于疾速试探强化学习的,基于不同场景间迁徙学习的,此外,少样本学习、常识图谱的算法,咱们也在逐渐的研发上线中。
(七)云上个性化举荐 – PAIRec 举荐引擎
PAIRec 举荐引擎从上往下看,分为接口层、召回层、过滤层、排序层、重排层,这些模块它端到端的串联起了整个举荐服务的各个流程,并且其中的一些内置模块是能够简略的通过 config 文件来配置化应用的。
当然为了满足各种各样场景定制化的需要,咱们也反对在各个层便捷的注册各种定义的实现来满足灵活性的要求。
(八)云上个性化举荐 – PAI-A/BTest
PAI-A/BTest 是咱们保障疾速做举荐迭代成果很重要的一环,咱们首先来看一下 A /B Test 是什么,咱们会在同一时间维度将用户划分成两组,在保障用户特色雷同的状况下,让用户看到不同的两个 ab 计划的设计,而后依据最初数据的好坏来决定到底抉择哪个计划,最终把哪个计划来推全,他要走的更进一步,能够满足各多样化的 A /B Test 的需要。
举荐场景为例,咱们能够反对这种一般的流量划分,还能够反对分层的流量划分,分层流量划分有什么益处?
举荐场景咱们分为召回、排序、重排的这些模块,这些流量是齐全能够正交复用的,咱们能够在很小的流量场景之下就能够上很多的试验下来帮忙咱们疾速的迭代,PAI-A/BTest 还反对在实验室上设置各种各样的条件,比方辨别新用户和老用户,来满足各种各样多样化的 ab 的需要。
02 向量召回
PAI 召回算法 & HOLO 向量检
(一)向量召回 – 简介
召回是在整个举荐零碎中很重要的一环,它是在整个举荐零碎最火线的局部,决定了整个举荐零碎算法成果的下限。
传统的召回算法,如 CF、Swing 等,他们尽管是简略高效的,然而他们齐全基于用户的历史行为来进行举荐,没有联合用户的画像信息,物品的属性信息来产出举荐后果,这导致了整个举荐成果发现性很弱,会导致越推越窄。
而向量召回是将 User、Item 都嵌入到一个向量空间中去,肯定水平上缓解了发现性的问题。个别向量召回分为 U2I 和 I2I 两种。U2I 的向量召回次要代表性的如 DSSM、MIND、YoutubeDNN 等,思维很简略,将 User 侧和 Item 侧都抽取到向量空间中去,用 User 的向量在 Item 的向量汇合中查出最邻近的 TopK 个 Item 进去。
I2I 的如 Node2Vec、Metapath2Vec 等向量算法,它不同之处是须要 Trigger Item,基于用户的历史行为来抉择这些 Trigger,而后通过 Trigger Item 的向量,在 Item 的向量汇合中查问出 TopK 个邻近的 Item。
(二)向量召回 – PAI 向量召回
在 PAI 上咱们提供了丰盛的召回算法,在 PAI-Studio 中咱们 PAI-EasyRec 有提供 DSSM、YoutubeDNN、MIND 等一系列深度的向量召回模型,GraphLearn 提供的 GraphSage、GAT、SEAL 等基于图的向量召回模型,还有 Alink 提供 Word2Vec、Node2Vec、Metapath2Vec 等一系列向量召回模型。在 PAI-Studio 中,咱们想把这些算法疾速可视化搭建疾速试验,进行离线成果测试和在线的部署,并且咱们还反对 AutoML 自动化调参,有了这些算法基建,能够帮忙咱们在云上疾速的迭代推动成果。
(三)向量召回 – Hologres 向量检索
Hologres 深度集成阿里达摩院自研的向量检索引擎 Proxima,这款向量检索引擎具备超大规模索引构建和检索、高纬 & 高精度、高性能低成本等外围能力,可能帮忙 Hologres 提供提供低延时、高吞吐的在线查问服务。并且 Hologres 是以 SQL 的查问接口来裸露给用户的,非常简略易用,它能很容易反对程度扩大,因为它是分布式构建向量索引的形式。
(四)向量召回 – Hologres 向量检索
在具体的举荐业务场景中,很重要的一环是向量查问,Hologres 不仅能反对全量 item 汇合上的检索,面对简单条件下的检索,holo 也能用 sql 的模式来反对。例如有很多举荐场景须要查问最近沉闷,当须要查问某个类目下的,此时写一个 Where 语句就能很容易的实现检索。
全量检索
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;
*
简单条件下检索
*
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;
03 最佳实际
某社交 APP 首页举荐
(一)最佳实际 – 某社交 APP 首页举荐
咱们以一个社交 APP 的首页举荐的场景来体感一下这整套解决方案是怎么运行的。这是一个社交 APP 首页举荐的场景,分为列表页、详情页和会话页,通过点击列表页,能够看到用户的具体详情,进而发动会话进行聊天。整个首页举荐的指标是要建设用户和用户之间的新分割,因而咱们设计了 UV 回复转化率这个指标,就是必须用户回复,才算一个无效的会话。
(二)最佳实际 –首页举荐计划
咱们来看一下整个首页推社交 APP 首页举荐问题的难点。
算法需具备发现性,能建设新分割;“无效回复”优化指标十分稠密,这导致咱们优化整个模型的难度也十分高。
上面是整个首页举荐的计划,咱们有常见的多路召回、过滤、排序和用户的冷启动和最初会有一个重排。其中的重点是召回外面 DSSM 的向量召回和 GraphSage 的向量召回,还有新用户的冷启动,这保障了整体的算法具备发现性。而后另一块是排序这边做了一个多指标的模型,包含点击、关注、会话和回复,多个指标的档次递进的关系,解决了无效回复这个指标十分稠密的问题。
(三)最佳实际 – 向量召回算法 PAI-EasyRec | DSSM
重点来看一下其中向量召回,咱们以其中的 DSSM 为例,
它是一个典型的双塔架构,劣势是能充分利用 Side-Info,能反对分布式训练时的负采样和负样本 MiniBatch 内的共享。
(四)最佳实际 – 向量召回算法 PAI-EasyRec | DSSM – 优化技巧
双塔架构上模型一个外围的问题点是怎么做负采样?负采样决定了整个召回模型成果的好坏,咱们来看这个离线 hitrate 的曲线,能够看到随着负采量数的减少,基本上是一个稳步上涨的趋势,最高点是正负样本比例等于 1:1W 的时候最佳。所以当然随着负采样数的减少,特地是要达到 1:1W 的采样,对于存储的压力和计算压力都是十分大的。咱们想要离线的去 join 出这个 1:1W 的正负样本来做存储根本是不太事实的。因而 PAI-EasyRec 反对在分布式训练时的实时的负采样,咱们在存储的时候只存点击的正样本,在训练时分布式采样出相应的负样本来做训练。
上面是咱们做分布式负采样的计划,其实是将用户的历史行为和用户的一些属性特色,以图构造模式存在参数服务器上,而后基于咱们从参数服务器上进行实时的负采样,跟正样本 join 起来进行训练。1:1W 正负样本对于咱们的计算压力也是提出了很大的挑战。在 PAI-EasyRec 在外面咱们做了一个优化,MiniBatch 内负样本是共享的,不必将 N *1W 个负样本都计算一次,它只须要整体计算 1W 次,在做内积的时候以矩阵乘的形式开展,就能够达到简化共享负样本计算的成果。
(五)最佳实际 – HOLO 向量检索
咱们再来看一下工程零碎在首页举荐上实际的 HOLO 向量检索,咱们首先须要在 Hologres 中建设向量表,建表的语句也非常简单,其中重点是要在其中设置 proxima 的向量引擎和其余向量引擎所须要的检索参数,有了这样的向量表,咱们就很容易的把 MaxCompute 上的表面数据来导入到 Hologres 中,这是一个同性举荐的场景,咱们就能够在性别条件下进行向量的检索。
(六)最佳实际 – 首页举荐成果
举荐解决方案使得社交 APP 首页举荐的 UV 回复转化率晋升了 39%,UV 会话转化率晋升了 30%,是一个很胜利的案例。
(七)PAI 上其余向量算法能力
PAI 上其实还提供了很多其余的向量算法能力,包含图像的、文本的 PAI-EasyVision、PAI-EasyTransfer,PAI-EasyTransfer 曾经在 github 上开源了,咱们在 PAI 上还有人脸人脸匹配的能力、图片搜寻能力、问答匹配的能力等等,都能够用到其中的向量引擎。欢送大家来应用。
“AI 检索技术博客”
由阿里巴巴达摩院零碎 AI 实验室创建,
关注“AI 检索技术博客”公众号,
获取更多技术干货文章、
AI 检索畛域 Meetup 动静。
版权申明: 本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。