作者:一元,炼丹笔记四品炼丹师
EdgeRec:Recommender System on Edge in Mobile Taobao(CIKM2020)
背景
推荐系统(RS)已经成为大多数web应用程序的关键模块。最近,大多数RSs都是基于云到边缘框架的瀑布式的,其中推荐的结果通过在云服务器中预先计算传送到edge(例如用户移动)。尽管有效,但云服务器和边缘之间的网络带宽和延迟可能会导致系统反馈和用户感知的延迟。因此,edge上的实时计算可以帮助更精确地捕捉用户的偏好,从而提出更令人满意的建议。本文首次尝试设计和实现边缘推荐系统(EdgeRec),它实现了实时的用户感知和实时的系统反馈。此外,本文还提出了基于行为注意网络的异构用户行为序列建模和上下文感知重排序,以捕捉用户的不同兴趣并相应地调整推荐结果。在淘宝主页feeds的离线评测和在线性能测试结果表明了EdgeRec的有效性.
之前框架
如上图所示,手机端先向云端服务器初始化一个页面请求,matching和ranking模型对应页面请求生成一个排序商品集合,而这套框架有诸多问题:
- 系统反馈延迟,在相邻的两个页面请求,云端的RS无法实时调整推荐结果,所以较难满足用变化的需求。
- 用户感知延迟,RS模型部署在云端,往往会因为网络延迟导致1min种左右的延迟,很难抓住用户的实时需求。网络的带宽会进一步限制当前RS捕捉端上用户的大量的和详细的行为细节。
基于上述的情况,我们采用边缘计算来满足实时的性能要求。EdgeRec可以获得实时用户感知和实时的系统反馈。
系统
系统概览
- Client Native (CN):初始化页面请求并且将从RS服务器中返回的对应候选商品的特征进行缓存,从RS返回的商品个数被设置为100,然后CN收集用户对曝光商品的行为并且除法模型服务模块,在接收到候选商品的rank之后,CN就会调整商品的UI展示。
- Model Serving(MS):当由CN触发时,MS对从CN处接收到的用户行为和候选商品进行特征工程,然后基于神经网络的模型,其目的是通过用户行为建模来及时捕捉用户行为,并对上下文感知的Reranking以及时响应用户,MS向云发送日志,并将候选商品的排名结果返回给CN;
- Recommender System(RS): 响应来自CN的页面请求,并为候选项提供初始排序。此外,它还可以在响应CN之前从云上的key-value存储中查找MS模块中的模型需要的商品特征和嵌入;
- Offline Training(OT): 在模型训练之前,模块首先从MS中收集日志并构造样本。然后,将训练后的模型分为三个部分:(1).用户行为建模子模型;(2).上下文感知重排子模型;(3).嵌入矩阵(如类别和品牌)。最后,将前两个子模型部署在MS模块上,嵌入矩阵作为key-value形式保存在云上
算法模块
问题定义
给定云端现有RS得到的初始排序商品列表,对于在模型服务模块的reranking请求,我们的目标是寻找到一个得分函数:,
- 商品的特征是;
- 从初始模型得到的局部排序;
- 当前推荐环境下的实时用户行为上下文;
Reranking模型考虑在局部排序上下文,局部排序上下文表示为初始排序候选项之间的列表式交互,可以用RNN或Transformer来建模。在这里,我们认为实时的用户行为上下文对于重排序问题也很重要,特别是在瀑布式推荐场景中,而以前很少有人考虑过这一点。
特征系统
1. Insight
之前很多模型:
- 只考虑用户的直接正反馈,而忽略间接的负反馈,例如skipping或者删除操作等。
- 只考虑与用户交互的商品的特性(例如类别和品牌等),用户的行为则被忽略了。
此外,虽然用户没有点击某个项目,但对该项目曝光的操作(如滚动速度和曝光)可以代表该项目被视为“负面反馈”的程度。有时,如果用户长时间关注某个项目而不单击它,它不能绝对表明他/她不喜欢它。特别是在目前的瀑布流RS中,商品的显示信息越来越丰富,比如大图片、各种关键词甚至自动播放的视频,点击已经成为一些用户非常“奢侈”的正面反馈。
基于我们提出的EdgeRec系统,所有的用户行为特征都是在边缘(即用户的移动设备)上收集、提取和消费的,与目前基于云到端的RS系统相比,这可以突破网络延迟和带宽的限制。因此,可以结合大量详细的行为来更实时地推断用户偏好。另外,用户的原始行为在自己的移动设备上进行处理和利用,在一定程度上缓解了用户的数据隐私问题。
基于上面的讨论,我们发现这项工作的意义是非常重大的,新的特征工程:
- 从“只依赖正反馈交互”到“同时关注正反馈和负反馈交互作用”;
- 从“只关注交互项”到“同时考虑交互项及其对应的动作”;
- 从“准实时”到“超实时”。
关于端上的实时特征:
2. 商品曝光用户行为特征
商品曝光用户行为特征分为四块:
- 商品曝光统计特征;
- 用户滑动统计特征;
- 用户删减反馈;
- 时间延迟。
3. 商品页面浏览用户行为特征
商品页面浏览(ipv)特征分为三类:
- 商品页面浏览的统计特征;
- 在每个block是否有点击;
- 时间延迟;
4. 商品特征
商品特征可以分为:
- embedding学习的离散特征;
- 从base排序模型学习得到的原始特征;
异质用户行为序列建模
这边我们有两个异质,第一个是:
- 商品曝光行为和商品页面浏览行为:
因为商品的点击相较于商品的曝光是更加稀疏的,所以一旦一起编码,那么page-view的行为将会主导这一切。所以我们选择分开建模(商品曝光行为序列 商品浏览行为序列建模);
第二个是:
- 用户行为操作以及对应的用户交互的商品;
我们首先对他们进行编码,然后进行在下面的上下文感知的重排模型中对行为注意机制进行融合;
我们使用多层GRU网络定义序列编码函数:
其中, ,此处的fusion函数就是简单的concat操作,
其中, ,是fused encodings的输出序列。
1. 商品曝光行为序列建模
我们定义用户特征向量的序列(IE)为对应的商品特征向量为,其中为预先定义的IE行为序列的最大长度,对于短的序列我们使用zero padding.
2. 商品页面浏览行为序列建模
我们定义行为特征向量的IPV输入序列为以及对应的商品特征向量为,其中为IPV行为序列预先定义的最大长度。对于短的序列我们使用zero padding。
3. 行为Attention网络的上下文感知重排
我们使用GRU网络对初始排序模型排序的候选项序列进行编码,并将最终状态作为局部排序上下文,借助Attention技术,我们的重排序模型可以自动(软)搜索与目标项目排序相关的部分用户行为上下文。
4. 候选商品序列编码
我们将候选商品序列定义为,这是由之前的RS服务器端的模型产出的,对于短序列依旧使用0进行填充,我们使用GRU网络对其进行编码,将RNN的最终状态作为局部排序上下文:
其中为候选商品编码的输出序列, 表示局部排序上下文。
5. 行为Attention
将目标候选商品编码为,我们首先研究了用户商品曝光序列和商品浏览行为的编码,我们将attention的分布表示为以及,最终我们通过将attention的分布以及fused的用户行为序列编码,组合产出用户行为上下文以及。
我们将QKV分别用下面的数字表示:
- 作为Query;
- 表示为Key, 表示为Value;
于是我们得到:
其中,,,,,为训练参数。
6. 模型训练
为了建模,我们先将在IPV和IE上的用户行为进行拼接,目标候选商品的表示为以及局部排序上下文并最终将其输入到MLP。
实验
1. 效果比较
- CRBAN HUBSM(IE&IPV)取得了巨大的提升;
Heterogeneous User Behavior Sequence Modeling (HUBSM) Contextaware Reranking with Behavior Attention Networks (CRBAN);
2. 线上效果&性能
2.1 线上效果
- 采用完整型号CRBAN HUBSM(IE&IPV)的EdgeRec平均为PV贡献1.57%,CTR为7.18%,CLICK为8.87%,GMV为10.92%,带来了巨大的提升;
2.2 线上性能
- 用户行为的延迟时间大大降低,系统的响应时间大大降低,系统反馈数大大变多;
结论
本文设计并实现了EdgeRec来解决瀑布式RS中用户感知和系统反馈的延迟问题,这是RS与边缘计算相结合的首次尝试。具体地说,本文提出了异构用户行为序列建模和基于行为注意网络的上下文感知重排序方法来对用户丰富的行为进行建模。大量的线下和在线评估验证了EdgeRec在工业RS中的有效性。
参考文献
- EdgeRec: Recommender System on Edge in Mobile Taobao:https://arxiv.org/pdf/2005.08416.pdf