AI 助理
备案 控制台
开发者社区 大数据与机器学习 大数据计算 MaxCompute 文章 正文

解密淘宝推荐实战,打造 “比你还懂你” 的个性化APP

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 如今,推荐系统已经成为各大电商平台的重要流量入口,谁才能够做到比用户更懂用户,谁占据了新零售时代的主动权。手机淘宝的推荐更是淘宝最大的流量入口和最大的成交渠道之一,其背后是最为复杂的业务形态和最复杂的场景技术,那么究竟如何打造手淘背后的推荐系统呢?本次首席技术官大数据专享会上,阿里巴巴搜索推荐事业部资深算法专家欧文武(三桐)为大家解密了淘宝的推荐实战。

以下内容根据演讲视频以及PPT整理而成。

手淘推荐简介

手淘推荐的快速发展源于2014年阿里“All in 无线”战略的提出。在无线时代,手机屏幕变小,用户无法同时浏览多个视窗,交互变得困难,在这样的情况下,手淘借助个性化推荐来提升用户在无线端的浏览效率。经过近几年的发展,推荐已经成为手淘上面最大的流量入口,每天服务数亿用户,成交量仅次于搜索,成为了手淘成交量第二大入口。
image.png

今天的推荐不仅仅包含商品,还包含了直播、店铺、品牌、UGC,PGC等,手淘整体的推荐物种十分丰富,目前手淘的整体推荐场景有上百个。推荐与搜索不同,搜索中用户可以主动表达需求,推荐很少和用户主动互动,或者和用户互动的是后台的算法模型,所以推荐从诞生开始就是大数据+AI的产品。

手淘推荐特点

相比于其他推荐产品,手淘推荐也有自身的如下特点:
1.购物决策周期:手淘推荐的主要价值是挖掘用户潜在需求和帮助用户购买决策,用户的购物决策周期比较长,需要经历需求发现,信息获取,商品对比和下单决策的过程,电商推荐系统需要根据用户购物状态来做出推荐决策。
2.时效性:我们一生会在淘宝购买很多东西,但是这些需求通常是低频和只在很短的时间窗口有效,比如手机1~2才买一次但决策周期只有几小时到几天,因此需要非常强的时效性,需要快速地感知和捕获用户的实时兴趣和探索未知需求,因此,推荐诞生之初就与Flink、Blink实时计算关系非常紧密。
3.人群结构复杂:手淘中会存在未登录用户、新用户、低活用户以及流式用户等,因此需要制定差异化的推荐策略,并且针对性地优推荐模型。
4.多场景:手淘推荐覆盖了几百个场景,每个场景都独立进行优化显然是不可能的,而且每个场景的条件不同,因此超参也必然不同,无法依靠人工逐个优化场景模型的参数,因此需要在模型之间进行迁移学习以及自动的超参学习等,通过头部场景的迁移学习来服务好尾部场景。
5.多目标和多物种
image.png

推荐技术框架

如下图所示的是手淘推荐的技术框架。2019年双11,整个阿里巴巴的业务全部实现上云,因此手淘推荐的技术架构也是生长在云上的。推荐的A-B-C包括了推荐算法和模型、原始日志和基于日志加工出来的特征和离在线计算及服务能力,比如向量检索、机器学习平台、在线排序服务等。除了云,今年我们通过把深度学习模型部署到了端上,实现了云和端的协同计算。
image.png

接下来将主要围绕数据、基础设施以及算法模型进行介绍。

数据-基础数据

手淘的推荐数据主要包括几种,即描述型数据比如用户画像,关系数据比如二部图或稀疏矩阵,行为序列和图数据等。基于用户行为序列推荐模型在手淘商品推荐应用最为广泛,图模型则是近两年发展较快的模型,因为序列通常只适合于同构的数据,而在手淘里面,用户的行为有很多种,比如看视频、搜索关键词等,通过graph embedding 等技术可以将异构图数据对齐或做特征融合。
image.png

数据-样本

数据样本主要包含两部分元素,label和特征。label一般在手淘推荐中有几类,比如曝光、点击、成交以及加购等。特征则比较多了,比如用户自己的特征、用户上下文特征、商品本身特征以及两两组合特征等。根据用户的特征和行为日志做Join就形成样本表,这些表格存储的时候就是按照稀疏矩阵方式进行存储,一般而言是按天或者按照时间片段形成表格,样本生成需要占用很大一部分离线计算资源。
image.png

离线计算-计算模式

离线计算主要有三种模式,即批处理、流处理和交互式查询。批处理中比较典型的就是MapReduce,其特点是延迟高但并行能力强,适合数据离线处理,比如小时/天级别特征计算,样本处理和离线报表等。流计算的特点是数据延迟低,因此非常适合进行事件处理,比如用户实时点击,实时偏好预测,在线学习的实时样本处理和实时报表等。交互式查询则主要用于进行数据可视化和报表分析。
image.png

离线计算-模型训练
模型训练也有三种主要的模式,即全量学习、增量学习和在线学习。全量学习这里是指模型初始化从0开始学习,如果日志规模比较小,模型简单并不需要频繁更新时,可以基于全量日志定期训练和更新模型,但当日志和模型参数规模较大时,全量学习要消耗大量计算资源和数天时间,性价比很低,这时通常会在历史模型参数基础上做增量学习,用小时/天日志增量训练模型和部署到线上,降低资源消耗和较高的模型更新频率。如果模型时效性非常强需要用秒/分钟级别样本实时更新模型,这是就需要用到在线学习,在学习和增量学习主要差别是依赖的数据流不一样,在线学习通常需要通过流式计算框架实时产出样本。
image.png

离线计算-训练效率

因为机器资源总是不够的,训练优化是如何用更快的速度,更少的计算和更少的数据训练出更好的模型,这里为大家提供一些加速训练的方式:

1.热启动:模型需要不断升级和优化,比如新加特征或修改网络结构,由于被修复部分模型参数是初始值,模型需要重新训练,热启动就是在模型参数只有部分修改时如何用少量的样本让模型收敛。
2.迁移学习:前面提到手淘推荐的场景非常多,而某些场景的日志非常少,因此无法实现大规模模型的训练,这是可以基于样本较多的大场景做迁移学习。
3.蒸馏学习:手淘用来做级联模型学习,比如精排模型特征更多模型更加精准,通过精排和粗排特征蒸馏,提升粗排模型精度,除此之外也可以用来做模型性能优化;
4.低精度、量化和剪枝:随着模型越来越复杂,在线存储和预测成本也在成倍增加,通过这些方式降低模型存储空间和预测速度,另外是端上模型通常对大小有强要求;
image.png

离线计算-端到端闭环

因为手淘推荐日志很大,特征来源很复杂,离线和在线的细微变动都可能导致样本出错或离线在线特征/模型不一致,影响迭代效率甚至造成生产故障,我们的解决办法是做一个端到端的开发框架,开发框架对日志,特征和样本做抽象,减低人工开发成本和出错的可能,并在框架嵌套debug 和数据可视化工具,提高问题排查效率。目前手淘搜索推荐已经基本上做到了从最原始日志的收集、到特征抽取以及训练模型的验证、模型的发布,再到线上部署以及实时日志的收集形成整体的闭环,提升了整体模型的迭代效率。
image.png

云和端

随着5G和IOT的发展数据会出现爆炸式的膨胀,将数据放在云上集中存储和计算,这样做是否是一个最合理的方式呢?一些数据和计算能否放在端上来做?端上相对于云上而言,还有几个较大的优势,首先延时低,其次是隐式性,各个国家对于隐私的保护要求越来越严厉,因此需要考虑当数据不能发送到云端的时候如何做个性化推荐。
image.png

云和端协同计算

在云和端协同计算方面,阿里巴巴已经做了大量的尝试,比如云和端如何实现协同推理,这里包括几个部分,比如手机端上拥有更加丰富的用户行为如用户滑屏速度、曝光窗口时长以及交互时长等,因此第一步是端上的用户行为模式感知的模型。第二步就是在端上决策,比如预测用户何时会离开APP,并在用户离开之前改变一些策略提高用户的浏览深度。此外,手淘还在端上做了一个小型推荐系统,因为目前云上推荐都是一次性给多个结果比如20多个,而手机一次仅能够浏览4到6个推荐结果,当浏览完这20个结果之前,无论用户在手机端做出什么样的操作,都不会向云端发起一次新的请求,因此推荐结果是不变化的,这样就使得个性化推荐的时效性比较差。现在的做法就是一次性将100个结果放在手机端上去,手机端不断地进行推理并且更新推荐结果,这样使得推荐能够具有非常强的时效性,如果这些任务全部放在云端来做,那么就需要增加成千上万台机器。
image.png

除了推理之外,还有云和端的协同训练。如果想要实现个人的隐私保护,云和端协同训练是非常重要的,只有这样才能够不将用户的所有原始数据全部加载到云上,大部分训练都在手机端完成,在云端只是处理一些不可解释的用户向量,从而更好地保护用户的隐私数据。
image.png

召回技术-动态实时多兴趣表达(MIND)

早些年大家在做推荐协同过滤可能使用Item2Vec召回、标签召回等,比如像Item2Vec召回而言,确实比较简单,而且时效性非常好,在很长一段时间内主导了推荐技术发展的进程,后续才诞生了矩阵分解等。但是Item2Vec召回存在很大的问题,如果商品的曝光点不多其实是很难被推荐出来的,因此推荐的基本上都是热门的Item。其次Item2Vec召回认为每个点击都是独立的,缺少对于用户的全局认知,此时需要做的是就是将用户的行为和标签进行全局感知并做召回。基于这样的出发点,我们提出了基于行为序列的召回模型,但这种方式存在的问题就是用户的兴趣不会聚焦在同一个点,单个向量召回通常只能召回一个类目或者兴趣点,因此如何通过深度学习做用户的多需求表达等都是挑战。这样的问题,阿里巴巴已经解决了,并且将论文发表在CIKM 2019上面。现在,淘宝所使用的是在线多向量化并行召回。
image.png

CTR模型

手淘推荐的CTR模型也经历了几个重要的变革,第一个模型是FTRL+LR,其优点是模型简单,能够支持千亿级别特征。第二个模型是XNN,对LR离散特征做embedding,并引入多层神经网络,由于引入新的参数,模型学习能力更强。第三个模型是Self-attention CTR,也就是基于图和用户行为序列实现的。
image.png

推荐序列优化-生成式推荐

推荐一般都是基于打分的,打完分之后在做一个贪心排序和打散,这样的做法得到的结果其实并不是最优的,因为这样做并没有考虑结果与结果之间的依赖性,使用贪心算法得到的结果并不是最优的。推荐本质上应该是对于集合而不是序列的优化,因此手淘推荐是用的是生成式排序模型。更多可以参考我们在KDD 2019发表的论文。
image.png
多目标均衡优化

在推荐时,大家往往会遇到多目标均衡问题,比如商品推荐的浏览深度,点击和成交,由于目标量纲不一致,不存在全局唯一最优解,需要同时优化多个目标或在多个目标之间做合理取舍,对此我们提出了基于帕累托的多目标优化排序模型。更多可参考我们发表在RecSys 2019的文章。
image.png



相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
晋恒
目录
相关文章
土木林森
|
22天前
|
消息中间件 Java
【实战揭秘】如何运用Java发布-订阅模式,打造高效响应式天气预报App?
【8月更文挑战第30天】发布-订阅模式是一种消息通信模型,发送者将消息发布到公共队列,接收者自行订阅并处理。此模式降低了对象间的耦合度,使系统更灵活、可扩展。例如,在天气预报应用中,`WeatherEventPublisher` 类作为发布者收集天气数据并通知订阅者(如 `TemperatureDisplay` 和 `HumidityDisplay`),实现组件间的解耦和动态更新。这种方式适用于事件驱动的应用,提高了系统的扩展性和可维护性。
土木林森
33 2
全栈程序猿
|
3月前
|
开发框架 移动开发 JavaScript
SpringCloud微服务实战——搭建企业级开发框架(四十七):【移动开发】整合uni-app搭建移动端快速开发框架-添加Axios并实现登录功能
在uni-app中,使用axios实现网络请求和登录功能涉及以下几个关键步骤: 1. **安装axios和axios-auth-refresh**: 在项目的`package.json`中添加axios和axios-auth-refresh依赖,可以通过HBuilderX的终端窗口运行`yarn add axios axios-auth-refresh`命令来安装。 2. **配置自定义常量**: 创建`project.config.js`文件,配置全局常量,如API基础URL、TenantId、APP_CLIENT_ID和APP_CLIENT_SECRET等。
全栈程序猿
203 60
Ant.Dream
|
2月前
|
监控 Android开发 开发者
Android经典面试题之实战经验分享:如何简单实现App的前后台监听判断
本文介绍在Android中判断应用前后台状态的两种方法:`ActivityLifecycleCallbacks`和`ProcessLifecycleOwner`。前者提供精细控制,适用于需针对每个Activity处理的场景;后者简化前后台检测,适用于多数应用。两者各有优劣:`ActivityLifecycleCallbacks`更精确但复杂度高;`ProcessLifecycleOwner`更简便但可能在极端场景下略有差异。根据应用需求选择合适方法。
Ant.Dream
28 2
朝阳39
|
2月前
|
前端开发
uniapp 实战 -- app 的自动升级更新(含生成 app 发布页)
uniapp 实战 -- app 的自动升级更新(含生成 app 发布页)
朝阳39
723 1
全栈程序猿
|
4月前
|
开发框架 移动开发 JavaScript
SpringCloud微服务实战——搭建企业级开发框架(四十六):【移动开发】整合uni-app搭建移动端快速开发框架-环境搭建
正如优秀的软件设计一样,uni-app把一些移动端常用的功能做成了独立的服务或者插件,我们在使用的时候只需要选择使用即可。但是在使用这些服务或者插件时一定要区分其提供的各种服务和插件的使用场景,例如其提供的【uni-starter快速开发项目模版】几乎集成了移动端所需的所有基础功能,使用非常方便,但是其许可协议只允许对接其uniCloud的JS开发服务端,不允许对接自己的php、java等其他后台系统。
全栈程序猿
275 61
游客b4xhmqvpzoklq
|
4月前
|
JSON API 数据格式
如何获得淘宝/天猫app商品详情原数据 API 返回值说明
淘宝和天猫的API返回值通常会包含商品的详细信息。这些信息可能包括但不限于商品ID、商品标题、商品描述、价格、优惠信息、库存、发货地、物流方式等。具体的返回字段可能会随着API版本的更新而有所变化,因此建议参考淘宝/天猫开放平台官方提供的API文档来获取最准确的信息。
游客b4xhmqvpzoklq
59 1
sumith
|
4月前
|
网络协议 算法 Android开发
安卓逆向 -- 实战某峰窝APP(动态分析)
安卓逆向 -- 实战某峰窝APP(动态分析)
sumith
98 4
winx_19970108018
|
4月前
|
数据采集 存储 数据挖掘
淘宝app端商品详情数据采集python
淘宝app端商品详情数据采集python
winx_19970108018
167 2
sumith
|
4月前
|
算法 Java Android开发
安卓逆向 -- 实战某峰窝APP(静态分析)
安卓逆向 -- 实战某峰窝APP(静态分析)
sumith
57 0
jcLee95
|
4月前
|
存储 Web App开发 iOS开发
Electron 从基础到实战笔记 - Electron App对象及其事件
Electron 从基础到实战笔记 - Electron App对象及其事件
jcLee95
188 0
大数据与机器学习

大数据计算 MaxCompute

热门文章

最新文章

  • 1
    阿里云开源离线同步工具DataX3.0介绍
  • 2
    大数据环境下该如何优雅地设计数据分层
  • 3
    odps是什么?
  • 4
    美柚:最懂女性App背后的混合云架构与大数据服务
  • 5
    阿里云MaxCompute(大数据)公开数据集---带你玩转人工智能
  • 6
    【转载】时隔一年多,我又用起了 Superset
  • 7
    干货:解码OneData,阿里的数仓之路。
  • 8
    阿里云MaxCompute 2019-5月刊
  • 9
    【大数据干货】数据进入阿里云数加-大数据计算服务MaxCompute(原ODPS)的N种方式
  • 10
    互联网下半场的角逐,玩转轻资产的大数据服务 | 阿里云栖开发者沙龙大数据专场(北京站)干货集锦
  • 1
    如何创建2024云栖Openlake测试项目和配置环境
    155
  • 2
    MaxCompute 产品新能力发布-2024年Q1
    177
  • 3
    MaxCompute操作报错合集之编写UDF(用户自定义函数)时,报错:找不到主类,是什么原因
    72
  • 4
    MaxCompute操作报错合集之执行SQL Union All操作时,数据类型产生报错,该怎么解决
    62
  • 5
    MaxCompute操作报错合集之出现“查询运行日志失败”的报错,一般是什么导致的
    50
  • 6
    MaxCompute操作报错合集之遇到报错:"Catalog Service Failed",该如何处理
    47
  • 7
    MaxCompute操作报错合集之在读取OSS遇到格式报错,该怎么办
    46
  • 8
    MaxCompute操作报错合集之 Spark Local模式启动报错,是什么原因
    39
  • 9
    MaxCompute操作报错合集之在创建SQL函数时,遇到报错,该如何解决
    154
  • 10
    MaxCompute操作报错合集之配置mysql数据源querysql模式,同步到MC时遇到报错,该怎么处理
    28
  • 相关课程

    更多
  • 互联网安全-移动APP漏洞风险与解决方案
  • 2020版大数据实战项目之DMP广告系统(第三阶段)
  • 相关电子书

    更多
  • 女性移动App安全攻防战
  • 汇聚云计算的生态核能——云市场,云上APP Store
  • 千万级用户直播App——服务端架构设计和思考
  • 相关实验场景

    更多
  • 搭建微信小程序
  • 星轨-钉钉APP分发实训
  • 网站用户流量分析—适用于电商网站、资讯网站、游戏主站等各类Web站点场景
  • 搭建Magento电子商务网站
  • 小试牛刀,一键部署电商商城
  • 下一篇
    通义千问API入门教程

    深圳SEO优化公司网站怎样写文章优化效果好荆州外包网站优化公司排名道县网站的优化丰南公司网站优化保山很好的网站优化用户体验网站标题优化推荐的书公司网站排名优化如何做好网站优化排名才能靠前包装网站优化什么公司好顺义企业网站排名优化优化网站认定小钢炮23下拉南宁seo网站排名优化公司玩具网站优化价格表东港优化网站排名去哪优化网站关键词佛山网站seo优化东莞桥头网站搜索优化服务好的销售行业网站优化费用教育网站优化平台专业的企业网站优化哪家靠谱宁波网站优化招商引资雄县网站优化多少钱婚纱摄影网站优化的办法建设网站的优化问题沧州网站优化哪里好太仓网站关键词优化工作室鞍山网站优化关键词上虞网站优化哪家价钱合理天津网站优化公司 鹊起科技网站SEO优化专员歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

    深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化