基于边缘计算框架的端上推荐模型

今天的博客主要参考了2020年CIKM会议的paper《EdgeRec: Recommender System on Edge in Mobile Taobao》。这篇paper提出的在手机淘宝客户端上部署的边缘计算推荐模型应该是边缘计算在推荐领域落地应用的开山之作。

首先,我来解释一下我理解的“边缘计算”这个概念在淘宝推荐领域应用的意思。所谓“边缘计算”其实是随着手机移动端的计算能力、存储能力越来越强,相较于传统的CS(client,server)模式中client端只负责用户行为特征数据采集,其额外地被赋予了模型计算的能力,也就是说模型的相关计算从server端下移到了client端。这样的直观好处是,一方面减小了server的计算压力,另一方面大大缩短了模型的计算反应时间(不需要每次将特征数据通过网络传播给server端,再由server端将计算结果返回给client端)。

下图就大致展示了传统的CS架构下的,推荐系统数据流图:
在这里插入图片描述
从图中可以看出,在传统的CS推荐架构下,所有的推荐模型都是运行在server端的(包括匹配模块和排序模块)。正如前文说的,在这种框架模式之下,每次由client搜集用户在移动端产生的行为序列特征,再交给server端进行特征计算和模型计算,最后由server将计算排序好的结果返还给client端去进行展示。特征上传 => 特征计算 => 模型计算 => 结果回传 ,整个过程的时延往往是分钟级的,这样的模式不利于提升用户使用系统的体验。

正如作者在paper里强调的,传统的CS架构存在2个显著问题:
1 Delay for System Feedback。
即在client向server端发送相邻2个请求时间内的间隔中,客户端是没法得到server的最新计算排序结果的;除非用户滑到下一页,向server端触发发送新的请求。这样就会导致客户在页面的一些行为没法即使的提供给模型进行计算;

2 Delay for User Perception
由上图可知,用户的特征上传到server端,由server端计算好并返回给client端。这段时间的时延一般在1 分钟左右,因此推荐系统也没办法针对用户的行为产生更及时的响应。

基于此,paper提出了完整的边缘计算框架,用来解决上述问题。以便模型能够更及时的对用户的最新行为进行感知,并产生针对性的预测结果。
在这里插入图片描述
从图中可以看出推荐模型分布部署在client端和server端。模型的整个训练还是放在server端;训练好的模型参数中,embedding参数占据了很大的一部分,这部分参数由于占据空间比较大,是不可能全部存储在client的内存中的,它会根据需要在response信息中包含该请求需要的商品embedding向量信息;至于网络模型的其他部分,由于占据的内存空间比较小,会在每个client的内存空间中留存一份副本,模型参数的更新是有周期性的,即当client发现server端的模型version比本地的高的话,会自动想server请求最新的模型参数。

在每一次client发起request后,server会返回一批次的item候选集列表,这些列表会存储在client端的内存中。当用户在client端页面内进行一些操作的时候,会在以下三个场景下触发client端的排序模型,重新对由server端返回的item列表进行排序,分别是:1 用户点击了某个item;2 用户删除了某个item;3 用户滑过了k个item而没有产生任何的点击行为。

client端重新对item排序的模型架构图如下所示:
在这里插入图片描述
paper中称上述针对用户行为序列提取建模的结构为 Heterogeneous User Behavior Sequence Modeling,其中Heterogeneous包含了2个层面的意思:

1 整个建模的序列中同时包含了“item exposure behavior”和“item page-view behavior”。从本身的业务属性上我们可以知道“item page-view behavior”相对于“item exposure behavior”来说是非常稀疏的行为,如果放在一起直接建模,势必会将“item page-view behavior”的行为淹没掉。因此后续在建模的时候,需要将这两部分行为序列分别独立建模;

2 "user behavior actions"和“user interacted items”。其中“user behavior actions”反应了用户针对item的操作统计数据,比方说曝光时长,曝光次数,滑动速度等,;这个类别的action在“item page-view behavior”和“item exposure behavior”场景下会有不同的统计指标。"user interacted items"就是和item属性相关的id类特征,比方说类别,品牌等。具体的一些指标说明见下图所示:
在这里插入图片描述
当对行为进行了划分之后,建模流程就非常清晰了。在Item Exposure Behavior中根据用户行为类别划分"user behavior actions"和“user interacted items”,分别输入到GRU中,然后将两个序列对应GRU输出的隐藏层向量拼接起来,得到最终的IE Behavior Encodings向量序列。
使用同样的思想对Item Page-View Behavior进行建模,得到类似最终的Item Page-View Behavior Encodings向量序列。

在得到了Item Page-View Behavior Encodings向量序列 和 Item Page-View Behavior Encodings向量序列之后,根据当前待排序的target item,使用attention的思路,使用其对两个目标向量序列中的每一个元素计算相似度,并加权求和。

最终把求和后的结果与相关的其他特征一起输入到后续的MLP网络中,得到模型最终的预测概率。作者通过一系列的实验证明了基于client-sever架构的边缘计算模型,无论是对线上指标PV,CTR,CLICK,GMV等有很大的提升,而且还大大缩短了推荐系统的反馈时延,大大提升了用户的使用体验。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值