热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

边缘计算_EdgeRec:边缘计算在淘宝推荐系统中的大规模应用

篇首语:本文由编程笔记#小编为大家整理,主要介绍了EdgeRec:边缘计算在淘宝推荐系统中的大规模应用相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了EdgeRec:边缘计算在淘宝推荐系统中的大规模应用相关的知识,希望对你有一定的参考价值。






EdgeRec:边缘计算在淘宝推荐系统中的大规模应用









内容来源:龚禹pangolulu@知乎











导读:在全面进入无线的时代,为了解决信息负载的问题,越来越多的推荐场景得到兴起,尤其是以列表推荐形式为主的信息流推荐。以手淘信息流为例,进入猜你喜欢场景的用户,兴趣常常是不明确的,用户浏览时往往没有明确的商品需求,而是在逛的过程中逐渐去发现想买的商品。而推荐系统在用户逛的过程中,会向客户端下发并呈现不同类型的商品让用户从中挑选,推荐系统这个过程中会去捕捉用户的兴趣变化,从而推荐出更符合用户兴趣的商品。然而推荐系统能不能做到用户兴趣变化时立刻给出响应呢?



01


推荐系统中的痛点

推荐系统以往的做法都是通过客户端请求 ( 分页请求 ) 后触发云端服务器的商品排序,然后将排序好的商品下发给用户,端侧再依此做商品呈现。这样存在下面两个问题:



  • 推荐系统决策的延迟:由于云端服务器的QPS压力限制,信息流推荐会采用分页请求的方式,这样就会导致云端推荐系统对终端用户推荐内容调整机会少,无法及时响应用户的兴趣变化。如下图所示,用户在第4个商品的交互表明不喜欢“摩托车”,但是由于分页请求只能在50个商品后,那么当页后面其他“摩托车”商品无法被及时调整。


  • 对用户行为的实时感知的延迟:目前推荐系统的个性化都是通过把用户与商品交互的行为作为特征来表达的,但是用户的行为其实是发生在客户端上的,推荐系统模型想要拿到用户的行为特征需要把端上数据下发到服务端,此时就会造成延迟的问题,如下图所示用户行为的延迟可能会达到1min。于此同时,由于网络带宽延迟的问题,其他大量的用户细节行为(如商品的实时曝光、用户的滑动手势等)是无法进行建模的。


EdgeRec:边缘计算在淘宝推荐系统中的大规模应用


02


边缘计算 + 推荐系统

边缘计算的优势,是让边缘节点 ( 这里指手机端上 ) 具备了"独立思考"的能力,这让部分决策和计算不再依赖于云端,端侧可以更实时、更有策略的给出结果。另外由于在端侧能够秒级感知用户意图做出决策,产品和用户贴的更近了,这催生了更多实时性的玩法,产品将不再局限于要到固定的时机如分页请求让云端去给到新的内容反馈,而是思考,当用户表达出来特定的用户意图时,产品应该如何提供与意图相匹配的内容。

EdgeRec:边缘计算在淘宝推荐系统中的大规模应用

EdgeRec端上推荐系统便是借助于边缘计算的这种实时感知性和实时反馈性,来解决目前Client-Server架构推荐系统的实时感知、实时反馈能力不足的问题。EdgeRec推荐系统提供了端上用户意图感知、端上重排、端上实时插卡等能力。通过在端侧秒级感知用户意图做出决策,并提供与意图相匹配的反馈,提升用户的点击意愿与浏览意愿,整体改变瀑布流的体感。


03


EdgeRec:系统架构

EdgeRec:边缘计算在淘宝推荐系统中的大规模应用



特点:1)手机端上本地重排,不影响服务端推荐链路,支持端上的热插拔;2)支持端上部署大规模深度神经网络。


端上部署大规模深度神经网络的挑战与方案:

EdgeRec:边缘计算在淘宝推荐系统中的大规模应用


04


EdgeRec:端上算法模型

1. 概述

EdgeRec中端上的推荐算法模型主要包含了"端上实时用户感知"和"端上实时重排"两个模块。其中,"端上实时用户感知"被建模为Heterogeneous User Behavior Sequence Modeling,包含了"商品曝光行为序列建模 ( Item Exposure ( IE ) Behavior Sequence Modeling )"和"商品详情页行为序列建模 ( Item Page-View ( IPV ) Behavior Sequence Modeling )"两部分;"端上实时重排"被建模为Context-aware Reranking with Behavior Attention Networks ( CRBAN )。

EdgeRec:边缘计算在淘宝推荐系统中的大规模应用

2. 端上实时用户感知

① 意义

首先,在个性化搜索和推荐中,"千人千面"来源于特征的个性化,而"个性化"主要依赖于用户的行为数据,参考DIN等工作,它们都建模了用户最近交互的商品序列,作为个性化模型的输入。但是,前面的工作一般只考虑了用户和商品的"正反馈"交互 ( 如点击、成交 ),很少考虑到用户与商品的"负反馈"交互 ( 如曝光 )。确实,"正反馈"特征相对来说较为明确,噪声也相对较少;但是我们认为用户与商品实时的"负反馈"交互也很重要,举一个直观的例子来说:某一类目的商品实时地多次曝光后,该类目商品点击率会明显下降。

另外一方面,之前的"个性化模型"的工作一般只考虑了与用户"交互"的商品特征,这句话的中心词是"交互的商品"。但是,用户与商品的"交互动作"其实也很重要,比如:用户点击商品后再详情页的行为反应的是对这个商品真正的偏好,真实的数据里面可能存在"伪"点击的情况;同样地,如果用户对某个商品虽然没有点击,但是用户在这个商品上的曝光非常聚焦,也就是商品曝光的停留时长非常长,这种情况也不能绝对说明这个商品的曝光未点击代表了用户不喜欢,尤其在现在信息流推荐页面里面商品的图片展示越来越大,也会透出各种关键词,甚至可以自动播放视频,也许点击对于某些用户已经成为了非常"奢侈"的正反馈了。

最后,我们认为用户在推荐场景的"实时行为"也会非常重要,比如:用户实时点击了不喜欢等负反馈,或者某个类目实时多次曝光却不点击,这些都反映了当时用户的实时偏好,因此推荐系统需要具备实时建模用户偏好的能力,并及时作出调整。

② 实时行为特征体系

根据上文的分析,相比目前云端推荐算法的用户感知建模,端上实时用户感知要具备以下特点:



  • 从"依赖正反馈交互"推进为"同时关注正负反馈交互"


  • 从"交互对象商品"改进为"对商品何种程度的交互"


  • 从"准实时交互"推进为"超实时交互"


而这三个特点要靠端上特征来体现,基于以上的三个特点,我们设计了用于信息流推荐系统的端上实时用户行为特征体系。如下图所示,端上实时用户行为特征主要包含了:(a)"商品曝光行为"和 (b)"商品详情页行为"这两部分。

EdgeRec:边缘计算在淘宝推荐系统中的大规模应用

③ Heterogeneous User Behavior Sequence Modeling

这里有两方面的异构:



  • 第一:"用户行为动作 ( Action )"和"交互商品 ( Item )"的异构


  • 第二:"瀑布流 ( 曝光 ) 行为 ( Item Exposure ( IE ) Behavior )"和"详情页 ( 点击 ) 行为 ( Item Page-View ( IPV ) Behavior )"的异构。


首先我们介绍一下模型输入的组织方式:



  • 用户一个行为定义为一个 Pair <商品 (Item),动作 (Action)>,行为序列定义为 List (<商品(Item),动作(Action)>)


  • 商品曝光行为序列 (Item Exposure (IE) Behavior Sequence),"商品"是一个曝光的商品,"动作"是用户在瀑布流对这个商品的交互动作,如曝光时长、滚动速度、滚动方向等


  • 商品详情页行为序列 (Item Page-View (IPV) Behavior Sequence),"商品"是一个点击的商品,"动作"是用户在详情页对这个商品的交互动作,如停留时长、是否加购、是否收藏等。


上面的模型图中包含了我们对Heterogeneous User Behavior Sequence Modeling的网络结构图的框架,这里重点说明两点:



  • "商品曝光行为序列 ( IE Behavior Sequence )"和"商品详情页行为序列 ( IPV Behavior Sequence )"先分别单独进行建模,最后再进行融合 ( 如果需要的话 )。这里主要考虑的是点击行为一般比较稀疏,而曝光行为非常多,如果先融合成一条行为序列再建模的话,很可能模型会被曝光行为主导。


  • 商品特征 ( Item ) 和行为动作特征 ( Action ) 先分别Encode后,再进行Fusion。这里主要考虑的是商品特征和行为动作特征属于异构的输入,如果下游的任务需要对具体的商品进行Attention的话,只有对同构的输入Attention才会有意义,后面讲到端上重排模型的时候会再重点说一下这个问题。


这里,商品特征序列 ( 包括IE Item Sequence和IPV Item Sequence ) 使用GRU网络进行Encode,动作特征序列 ( 包括IE Action Sequence和IPV Action Sequence ) 直接使用Identity函数进行Encode。商品序列Embedding ( 包括IE Item Embedding和 IPV Item Embedding ) 和动作序列Embedding ( 包括IE Action Embedding和 IPV Action Embedding ) 的Fusion采用简单的Concat操作,得到行为序列Embedding ( 包括IE Behavior Embedding和IPV Behavior Embedding )。

3. 端上重排

① 意义

端上重排是端上推荐的基础,拥有实时改变商品推荐顺序的能力,可以把端上重排看做用户Local域的推荐优化,也就是在当页推荐结果内进行优化。端上重排依托于实时用户感知,根据实时的正 / 负反馈 ( 曝光、详情页 ) 和更细节的用户行为特征,在信息流里面不断地对待排序商品进行重新排序,真正做到信息流的实时感知+实时推荐。

重排序这个任务无论在搜索还是推荐领域其实都有很多前人的工作,这些工作的核心点其实就是context-aware ranking,这里的context指的是待排序商品之间的上下文,对context的建模可以多种多样,比如:RNN,Transformer,或者人工定义全局特征+DNN。

EdgeRec中端上实时重排也基于context-aware ranking的基础,但是这里的context不仅仅包含待排序商品之间的上下文,还包含了用户实时行为 ( 实时曝光商品、实时点击商品、用户交互行为 ) 的上下文。通过这些上下文信息,实时重排可以做到:我知道已经排了啥,也知道用户在前面排序上的行为,给我一个待排序的商品上下文,如何排可以达到最优。下面重点介绍端上重排的模型框架,我们称作 Context-aware Reranking with Behavior Attention Networks ( BAN )。

② Context-aware Reranking with Behavior Attention Networks

上面的模型图中包含了我们对Context-aware Reranking with Behavior Attention Networks的网络结构图的框架。在背景中已经说过,端上实时重排考虑了两种上下文信息,对待排序商品之间的上下文建模我们依旧采用常用的序列建模的方法,引入GRU网络对商品集合进行Encode;为了考虑到用户实时行为的上下文,这里依旧采用了常用的方法,其实就是Attention ( 有时也被称作target attention )。回忆一下实时用户感知里面,异构行为序列建模的输入:用户一个行为定义为一个 Pair <商品,动作>,行为序列定义为 List (<商品,动作>),其中"商品"指的是用户与之交互的商品,"动作"指的是用户和商品交互的动作。从上面网络图中可以看到,Attention作用在待排序商品和行为序列的商品上,其实也就是商品与商品之间。熟悉Attention的同学应该知道 (Query, Key, Value) 这个三元组,这个模型里面Query是待排序商品的Encode结果 ( Candidate Item Embedding ),Key是行为序列的商品的Encode结果 ( 包括IE Item Embedding和IPV Item Embedding ),Value是行为序列Fusion后的Embedding结果 ( 包括IE Behavior Embedding和IPV Behavior Embedding )。用大白话描述一下motivation:对待排序商品集合里某一个商品来说,先看看用户交互过的商品都长啥样,重点关注下特征相似的商品,于此同时,再看看用户在这些商品上的表现是啥,综合起来都作为这个商品排序的参考。


05


实验效果

1. 离线实验

EdgeRec:边缘计算在淘宝推荐系统中的大规模应用

2. 在线实验

EdgeRec:边缘计算在淘宝推荐系统中的大规模应用

EdgeRec:边缘计算在淘宝推荐系统中的大规模应用

双十一当天,EdgeRec推荐系统提供了点击导向和成交导向的端上重排功能。在淘宝首页猜你喜欢运行5亿次,相对于不开启EdgeRec,点击导向的端上重排商品点击量提升10%,成交导向的端上重排成交金额提升5%。EdgeRec对商品推荐的准确度提升,对用户意图的反馈更加及时,其最好的体现是信息流分页尾部卡片的点击率有大幅提升。


06


总结

EdgeRec是推荐算法在边缘计算方向的第一次小试牛刀,从拿到的业务效果上来看其发展空间是非常巨大的。通过利用端侧计算的能力,深度模型可以在端上做预测,通过端上模型运行来弥补云上实时行为获取困难、策略实时调整能力弱的问题。另外,端侧计算能力不仅可以用于模型预测,还可以考虑在端上做训练,为每个用户训练其个体模型,为端侧智能带来更大的空间。

本文发表于CIKM 2020 Applied Research Track,今天的分享就到这里,谢谢大家。

https://arxiv.org/pdf/2005.08416.pdf

作者介绍:

龚禹 ( 花名:凛至 ),2017年硕士毕业于上海交通大学,现任阿里巴巴搜索推荐事业部算法专家,曾在SIGIR、KDD、AAAI等发表多篇论文,其中IRGAN曾获SIGIR2017最佳论文提名。研究方向包括了推荐系统与自然语言处理等,目前专注于边缘计算与推荐系统的结合,主导的EdgeRec系统已经在手淘推荐场景大规模落地。

https://www.zhihu.com/people/pangolulu



在文末分享、点赞、在看,给个三连击呗~~



社群推荐:

欢迎加入 DataFunTalk 推荐算法交流群,跟同行零距离交流。如想进群,请识别下面的二维码,根据提示自主入群。

文章推荐:









关于我们:


推荐阅读
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
author-avatar
艺卓显示、巴可投影
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有