返回介绍

数学基础

统计学习

深度学习

工具

Scala

二十四、EdgeRec [2020]

发布于 2023-07-17 23:38:24 字数 31400 浏览 0 评论 0 收藏 0

  1. 互联网上可用的信息(如电影、商品、新闻等等)的爆炸性增长和多样性经常让用户不知所措。推荐系统是处理信息过载问题的一种有价值的手段,它从海量候选中选择一个 item 列表,以满足用户的多样化需求。

    在商业推荐系统的大部分场景中,尤其是在手机上,推荐的 item 都是以瀑布流的形式waterfall form 展示。如下图所示,大部分瀑布流式的推荐系统都是基于 cloud-to-edge 框架来部署的。当用户在瀑布流式推荐场景中滚动时,移动客户端 mobile client 首先向云服务器发起分页请求 paging request。然后在云服务器上servingmatching 模型和 ranking 模型响应分页请求并生成显示给用户的 ranking item 列表。在这种情况下,当前的基于 cloud-to-edge 的瀑布式推荐系统存在以下局限性:

    • 系统反馈延迟Delay for System Feedback:由于 cloud-to-edge 框架中的分页机制,云端推荐系统无法在相邻的两个分页请求之间及时调整推荐结果,无法进一步满足用户不断变化的需求。

      以下图为例,用户点击了当前页面第 5 个位置的一件衣服,这反映了用户对衣服类目的突然偏好sudden preference。然而,云端推荐系统无法响应,除非用户滚动到下一页,因此无法及时满足用户的需求、降低了用户体验。

    • 用户感知延迟Delay for User Perception:对于服务于云端的推荐模型,由于网络延迟,捕获用户行为存在长达1 分钟的延迟,因此它们在响应 edge 时无法对用户的实时偏好进行建模。

      以下图为例,用户对页面第49 个位置上item 的行为表明该用户目前对收音机的偏好,但是云端的推荐系统无法在下一页推荐类似的收音机,因为云端推荐系统没有及时接收到这些行为。此外,网络带宽进一步限制了当前推荐系统在 edge 捕获多样的diverse 、详细detailed 的用户行为。

    综上所述,云端推荐系统的局限性在于推荐结果的延迟调整导致无法匹配 edge 端用户偏好的实时变化,从而严重损害了商业推荐系统的用户体验。

    缺陷:实时性不足。除非用户滚动到下一页,否则客户端不会请求新的推荐 list ;即使客户端请求新的推荐 list,但是云端推荐系统无法及时处理实时用户行为。

    边缘计算edge computing 非常适合需要高实时性能的 application,并且有可能解决当前基于 cloud-to-edge 框架的推荐系统的上述问题。在论文《EdgeRec: Recommender System on Edge in Mobile Taobao》 中,论文率先设计并实现了一个新颖的边缘推荐系统 recommender system on edge: EdgeRec,该系统实现了实时用户感知Realtime User Perception 和实时系统反馈Real-time System Feedback ,而无需向云服务器发出额外请求。

    论文的主要贡献如下:

    • 系统架构System Architecture:论文设计了 EdgeRec 架构来在移动设备上进行 reranking,与提供候选 item 的云端推荐系统协作。

    • 系统实现System ImplementationEdgeRec 支持大规模神经网络模型,通过跨 edgecloud 之间分配模型,考虑了移动设备上的高效计算和存储。

    • 用户行为建模User Behavior Modeling:论文提出异质用户行为序列建模Heterogeneous User Behavior Sequence Modeling 来捕获用户不断变化的行为和动作。

      论文首先设计新颖的特征系统,然后同时考虑交互的 item 及其相应的动作,从而同时对 useritem 之间的正反馈和负反馈进行建模。基于 EdgeRec,特征系统中多样化diverse 的、详细detailed 的用户行为在edge 端被收集、存储、和消费,这些行为可以实时馈入模型中。

      特征体系创新:使用了更多的用户行为特征,不仅仅是点击/转化行为。

1
 > 行为建模创新:将 `item` 序列和行为序列分别独立建模,从而获取 `item representation` 和行为 `representation` 。理论上讲,分别独立建模降低了模型复杂度。因为将 `item` 序列和行为序列作为 `(item, action)` 一起来建模,相当于引入了交叉特征,而交叉特征会扩大模型容量。
  • 上下文感知重排Context-aware Reranking:论文提出使用带行为注意力网络的上下文感知重排Context-aware Reranking with Behavior Attention Network ,从而在edge 端重排 reranking

    具体而言,论文通过提出的行为注意力机制对候选 item 和实时用户行为上下文之间的交互进行建模。依靠基于 EdgeRecedge reranking 能力,EdgeRec 实现了实时响应以满足用户的需求。

作者对淘宝首页 feeds 的真实流量进行了广泛的离线和在线评估。定量和定性分析都证明了论文提出的 EdgeRec 系统的合理性和有效性。此外,EdgeRec 在在线 A/B test 中贡献了高达 1.57%PV 提升、7.18%CTR 提升、8.87%CLICK提升、10.92%GMV 提升,这对当前的淘宝推荐系统带来了重大改进。现在 EdgeRec 已经上线部署,并服务于主要流量。

24.1 模型

24.1.1 系统

  1. 这里我们介绍 EdgeRec 系统,该系统旨在及时捕获丰富的用户行为(即实时感知Real-time Perception )并及时响应用户的需求(即实时反馈Real-time Feedback),而无需向云服务器发出任何额外请求。我们首先概述 EdgeRec 系统,然后详细说明每个设计良好的模块的实现。

  2. 系统概述:在下图中我们展示了 EdgeRec 系统的概况,其中左侧模块部署在手机淘宝客户端,右侧模块部署在云端。。注意,EdgeRec 旨在和云端的推荐系统协作,而不是取代后者。主要的模块和工作流程如下:

    • 本地客户端 Client Native: CN

      • 本地客户端首先发起分页请求paging request,并缓存推荐系统服务器返回的、具有相应特征的候选 item

        服务器不仅返回推荐的 item list,还返回这些 item 对应的特征。

        EdgeRec 中分页大小设置为 50,为了稳定性,这和淘宝中原始推荐系统的取值一样。同时,从推荐系统服务器返回的 item 数量设置为 100,以便为移动设备上的 reranking 提供更多空间。

      • 然后,本地客户端收集用户对曝光item 的行为并触发model serving 模块。

      • model serving 模块接收到候选item (尚未曝光的)的排名之后,本地客户端调整 itemUI 显示。

    • model serving: MS:是 EdgeRec 系统的核心模块。当 model serving 被本地客户端触发时:

      • 首先model serving 对从本地客户端接收到的用户行为和候选 item 进行特征工程。
      • 然后通过基于神经网络的模型,其目的是用户行为建模从而捕获及时的用户行为和上下文感知的reranking,从而及时响应用户。
      • 最后,model serving 将日志发送到云端(为了后续离线模型训练),并将候选item 的排名结果返回给本地客户端。
    • Recommender System on server:可以视为 EdgeRec 中的召回模块,其目的是响应来自本地客户端的分页请求,为候选 item 提供初始排名。

      此外,它可以在响应本地客户端之前,从云上的 key-value 存储中为候选 item 查找model serving 模块中模型需要的 item 特征和 embedding (例如category embedding )。

    • 离线训练Offline Training: OT模块:

      • 首先从model serving 收集日志并在模型训练之前构建样本。
      • 接下来,训练好的模型被分为三个部分:用户行为建模User Behavior Modeling的子模型、上下文感知重排Context-aware Reranking的子模型、embedding 矩阵(如类目和品牌)。
      • 最后,前两个子模型都部署在model serving 模块上,而 embedding 矩阵作为 key-value 形式存储在云端。

  3. 接下来我们介绍 EdgeRec 系统中两个关键模块的实现细节:本地客户端和 model serving 模块。

    • 本地客户端 Client Native: CN :本地客户端一个关键部分是在手机淘宝推荐系统中收集客户端上用户丰富的行为,例如浏览记录、点击记录(更详细的行为在后面会讲到)。这些用户行为随后被存储在设备的数据库中。

      由于 EdgeRec 模型(即 Model Serving )的运行是由本地客户端触发的,因此另一个关键的部分是触发 model serving 的策略。这里我们根据用户的在线实时行为设置了几个触发点trigger points :用户点击了一个 item、用户删除了一个 item (即长按)、Kitem 已经曝光但是没有点击。我们认为这三种类型的用户行为揭示了用户在当前推荐系统上的偏好,推荐系统应该及时响应用户(即触发 Model Serving )。

      根据业务规则来设定 trigger

    • Model Serving:在移动设备上的深度神经网络 model serving 相比较于传统的云服务面临着许多挑战,例如计算开销和存储开销。EdgeRec 模型有两个关键实现,分别针对计算效率和存储效率。其思想是跨 edgecloud 来分布模型,这使得 EdgeRec 支持在移动设备上为推荐系统提供大规模神经网络的 serving

      • 计算效率Computing Efficiency:用户行为建模User Behavior Modeling 和上下文感知重排Context-aware Reranking 一起训练,但是单独部署并在设备上异步运行。

        用户行为建模使用 RNN-based 序列建模方法,如果它总是从一开始就进行推断(即具有 $ O(n) $ 时间复杂度),那么效率低得多。因此,它通过 RNN 的循环特性recurrent characteristic (即时间复杂度为 $ O(1) $ )与用户的 online incoming behaviors 一起被实时独立推断independently inferred ,并产生行为编码behavior encoding 。该编码被存储在设备上的数据库中。上下文感知重排将首先从数据库中检索行为编码,然后基于这些行为编码进行模型推断。

      • 存储效率Storage EfficiencyID 类型的特征在推荐模型中很常见而且很重要,我们总是利用 embedding 技术来转换它们。然而,当在移动设备上 serving 时,ID embedding 面临存储效率的挑战。例如,我们模型中的 item 品牌是一个 ID 特征,字典大小大约为 150 万。当 ID 通过 embedding 层转换为维度 40embedding 向量时,embedding 矩阵的大小为 150万 x 40 (即大约 230MB )。当部署在移动设备上时,具有如此大 embedding 矩阵的模型将面临存储开销的问题。

        EdgeRec 系统中,我们从训练好的模型中提取 embedding 矩阵以部署在云端的 key-value 数据库中。当服务器上的推荐系统响应来自本地客户端的分页请求时,这些 embedding 矩阵将被相应的 item 检索,并作为 item 特征发送到客户端。移动设备上的、没有 embedding 层的剩余模型部分(大约 3MB)将把 embedding 特征作为输入,然后进行模型推断。

      此外,我们设计了一个模型版本策略 model version strategy 来确保模型更新时的同步,因为在移动设备上成功部署模型可能比在云端部署模型(即 embedding 矩阵)有更大的延迟,这取决于用户移动设备的当前状态(如,是否连接到 wifi 、是否连接到 3G/4G/5G )。在 EdgeRec 系统中,我们将为每个训练好的模型生成一个唯一的版本 ID。该版本 ID 与部署在移动设备上的模型、以及存储在云端的 embedding 矩阵一起保存。本地客户端首先在设备端用模型版本号发起分页请求,然后云端推荐系统获取模型版本号,检索对应版本的 embedding 矩阵,再响应客户端。

      版本 ID 用于确保模型各组件的一致性。这也意味着需要在云端部署多套 embedding (因为可能有的手机客户端未能更新到最新的模型)。

24.1.2 算法

  1. 这里我们介绍了用于用户行为建模和上下文感知重排的特征系统和方法。

  2. 我们提出的 EdgeRec 系统旨在将 reranking 方法应用于 edge targeting waterfall flow 推荐场景。给定云端现有推荐系统生成的、缓存在 edge 端的初始排序 item 列表 $ \mathcal S_r $ ,对于本地客户端模块触发的 model serving 模块中的 reranking 请求 $ r\in \mathcal R $ ,我们的目标是找到一个评分函数 $ \phi(\mathbf{\vec x}_i,\mathcal s,\mathcal C) $ ,其中: $ \mathbf{\vec x}_i $ 为目标 item $ i $ 的特征, $ \mathcal s $ 为来自初始模型的本地排序上下文local ranking context(从 $ \mathcal S_r $ 抽取而来), $ \mathcal C $ 为当前推荐环境中的实时用户行为上下文real-time user behavior context (从本地客户端上用户行为序列抽取而来)。

    这里本地排序上下文指的是推荐系统服务器返回的候选 item 列表。

    考虑本地排序上下文的 reranking 模型在以前的工作中已经得到了很好的研究。并且本地排序上下文表示为初始排序候选 item 之间的 list-wise 交互,其可以由 RNN 或者 Transformer 建模。但是,我们认为实时用户行为上下文对于 reranking 问题也很重要,尤其是在瀑布推荐场景中,而之前很少有工作考虑过它。

    接下来我们将介绍如何使用异质用户行为序列建模实时用户行为上下文,以及如何使用行为注意力网络Behavior Attention Network 的上下文感知重排Context-aware Reranking 来建模候选 item 和实时用户行为上下文之间的交互。通过结合边缘计算 edge computing 系统和上下文感知重排模型,我们可以在推荐系统中实现实时感知Real-time Perception 和实时反馈Real-time Feedback ,更好地满足用户的在线多样化需求。

    EdgeRec 系统的整体架构如下图所示。

a. 特征系统

  1. 这里我们首先讨论我们的特征系统 feature system,然后介绍 item 曝光上、以及 item 详情页上的详细用户操作特征以及相应的 item 特征。

  2. 洞察 insight: 在个性化搜索和推荐系统的文献中,用户的行为通常被建模从而表征用户的个性化偏好。因此,这些模型仅考虑用户和 item 之间的直接 “正反馈”positive feedback (例如点击或交易),很少关注间接“负反馈”negative feedback(如跳过或删除)。虽然正反馈相对更清晰、噪音更小,但是实时的负反馈也很重要,尤其是在瀑布流推荐系统中。以在线淘宝推荐系统为例,一个item 类目实时多次曝光之后,如果继续曝光该类目的 item 那么点击率 CTR 会显著下降。

    另一方面,以前的工作仅考虑与用户交互的 item 的特征(如,类目、品牌)。然而,用户对 item 的“动作”action 也应该受到关注。例如,用户点击一个 item 之后,其详情页(称作 item page-view)中的操作(例如,添加到收藏夹、添加到购物车)反映了用户对该 item 的真实偏好。此外,尽管用户没有点击某个 item,但是对该 item 曝光的操作(例如滚动速度和曝光)可以代表该 item 被视为“负反馈” 的程度。有时,如果用户长时间聚焦于某个 item 曝光而没有点击它,这并不能绝对表明用户不喜欢该 item 。在目前瀑布流推荐系统中,item 展示的信息量越来越大,例如图片更大、关键词更多、甚至自动播放视频,因此点击已经成为一些用户非常“奢侈”的正反馈。

    最后,基于我们提出的 EdgeRec 系统,所有的用户行为特征都在edge(即用户的移动设备)上收集、抽取、和消费。与当前的基于 cloud-to-edge 的推荐系统相比,这有可能突破网络延迟和带宽的限制。因此,可以结合丰富的、详细的用户行为以更实时的方式推断用户偏好。此外,在用户自己的移动设备上处理和利用用户的原始行为,可以在一定程度上缓解用户数据隐私问题。

    总而言之,我们工作中的特征系统是新颖的,并且从 “仅依赖正反馈交互” 到 “同时关注正负反馈交互”,从“仅关注交互 item ” 到 “同时考虑交互的 item 及其相应的动作”, 从“准实时方式” 到 “超实时方式”。

  3. item 曝光用户行为特征 Item Exposure User Action Featureitem 曝光 Item Exposure: IE 用户行为揭示了用户在推荐系统当前展示页面中的 item 曝光上的行为。下图(a)说明了手机淘宝瀑布流推荐系统中的 item 曝光。

    相应用户行为特征可以分类为(下表给出了更详细的细节):item 曝光统计信息(e1~e2)、用户滚动统计信息(e3~e5)、用户删除反馈信息(e6)、时间衰减(e7)。这里我们将 item $ i $ 对应的 e1 ~ e7 拼接起来,作为item $ i $ 的曝光行为特征向量exposure action feature vector $ \mathbf{\vec a}_\text{IE}^i $ 。

    下表中,e1 ~ e7item 曝光用户行为特征,d1 ~ d12item 详情页用户行为特征,p1~p7item 特征。

  4. item 详情页用户行为特征 Item Page-View User Action FeatureItem Page-View: IPV 用户行为揭示了用户在点击 item 后在 item 详情页中的行为。上图 (b) 说明了手机淘宝中的 item 详情页,并且相应用户行为特征可以分类为(下表给出了更详细的细节):item 详情页统计信息 (d1)、每个区域是否点击(d2 ~ d11)、时间衰减(d12)。这里我们将 item $ i $ 对应的 d1 ~ d12 拼接起来,作为item $ i $ 的详情页行为特征向量 page-view action feature vector $ \mathbf{\vec a}_\text{IPV}^i $ 。

  5. item 特征 Item Feature:除了用户行为特征,我们还需要相应 item 的特征。item 特征可以分类为:离散特征(p1~p6,它们将学习 embedding)、从base ranking 模型提供的原始特征 (p7)。这里我们将 item $ i $ 对应的 p1 ~ p7 拼接起来,作为 item $ i $ 的 item feature vector $ \mathbf{\vec p}^i $ 。

b. 异质用户行为序列建模

  1. 这里我们将介绍如何对定义为 $ \mathcal C $ 的实时用户行为上下文real-time user behavior context 进行建模。根据以前的工作,我们也应用序列建模方法。然而,之前的工作仅考虑用户的positive 交互 item,正如我们前面所讨论的,因此他们不能很好地处理基于我们提出的特征系统的用户行为序列建模。挑战来源于用户行为数据存在两个方面的异质性heterogeneity。因此在我们的工作中,我们提出了异质用户行为序列建模 Heterogeneous User Behavior Sequence Modeling: HUBSM,具体而言是针对以下两个异质性:

    • 第一个异质性是 item 曝光行为和 item 详情页行为的异质性。由于和 item 曝光行为相比,item 点击行为要稀疏得多(item 详情页就是点击之后带来的),如果曝光行为和点击行为以一个序列编码在一起,那么我们相信item 曝光行为将占据主导地位。所以我们选择分别对 item 曝光行为和 item 详情页行为进行建模,即 Item Exposure Behavior Sequence ModelingItem Page-View Behavior Sequence Modeling

      Item 曝光行为刻画的是用户的负向意图,而 Item 详情页行为刻画的是用户的正向意图。所以在构建特征体系的时候,Item 曝光用户行为特征描述了哪些行为能够体现用户的 “不喜欢”,Item 详情页用户行为特征描述了哪些行为能够体现用户的 “喜欢”。

    • 第二个异质性是用 user behavior action 和对应的 user interacted item 的异质性,这代表了两种特征空间。用户行为动作特征揭示了用户在 item 上行为的分布,而 item 特征代表了 item 属性的分布。

      我们选择首先对用户行为动作和用户交互item 进行独立编码,然后在接下来的上下文感知重排模型中进行关于行为注意力机制Behavior Attention mechanism 的融合。

    曝光行为和点击行为分开独立建模可以理解,但是将动作序列和 item 序列分开独立建模好像讲不通?只有动作、而没有被作用的 item 无法刻画用户的偏好,只有动作和 item 结合在一起才能完整地刻画用户偏好。因此第二个异质性是否不成立?

  2. item 曝光行为序列建模:我们将 Item Exposure 动作特征向量输入序列定义为 $ \mathcal A_\text{IE} = \left\{\mathbf{\vec a}_\text{IE}^i\right\}_{i=1}^m $ ,对应的 item 特征向量输入序列为 $ \mathcal P_\text{IE} = \left\{\mathbf{\vec p}^i_\text{IE}\right\}_{i=1}^m $ 。其中 $ m $ 为 Item Exposure 行为序列的预定义最大长度,对于较短的序列我们用零来填充。

    通过以下方程我们得到了动作编码输出序列 $ \hat {\mathcal A}_\text{IE} $ 、item 编码输出序列 $ \hat{\mathcal P}_\text{IE} $ 、融合的行为编码输出序列 $ \hat{\mathcal B}_\text{IE} $ :

    $ \left(\hat{\mathcal A}_\text{IE},\_\right) = \text{GRU}(\mathcal A_\text{IE}),\quad \left(\hat{\mathcal P}_\text{IE},\_\right) = \text{GRU}(\mathcal P_\text{IE}),\quad \hat{\mathcal B}_\text{IE} = \text{concat}\left(\hat{\mathcal A}_{IE},\hat{\mathcal P}_\text{IE}\right)\\ \hat{\mathcal A}_\text{IE} = \left\{\mathbf{\hat{\vec a}}_\text{IE}^i\right\}_{i=1}^m,\quad\hat{\mathcal P}_\text{IE} = \left\{\mathbf{\hat{\vec p}}_\text{IE}^i\right\}_{i=1}^m,\quad \hat{\mathcal B}_\text{IE} = \left\{\mathbf{\hat{\vec b}}_\text{IE}^i\right\}_{i=1}^m $

    其中 $ \hat{\mathbf{\vec a}}_\text{IE}^i,\hat{\mathbf{\vec p}}_\text{IE}^i,\hat{\mathbf{\vec b}}_\text{IE}^i $ 为编码后的动作特征向量、item 特征向量、融合行为向量。

  3. item 详情页行为序列建模:我们将 Item Page-View 动作特征向量输入序列定义为 $ \mathcal A_\text{IPV} = \left\{\mathbf{\vec a}_\text{IPV}^i\right\}_{i=1}^n $ ,对应的 item 特征向量输入序列为 $ \mathcal P_\text{IPV} = \left\{\mathbf{\vec p}^i_\text{IPV}\right\}_{i=1}^n $ 。其中 $ n $ 为 Item Page-View 行为序列的预定义最大长度,对于较短的序列我们用零来填充。

    通过以下方程我们得到了动作编码输出序列 $ \hat {\mathcal A}_\text{IPV} $ 、item 编码输出序列 $ \hat{\mathcal P}_\text{IPV} $ 、融合的行为编码输出序列 $ \hat{\mathcal B}_\text{IPV} $ :

    $ \left(\hat{\mathcal A}_\text{IPV},\_\right) = \text{GRU}(\mathcal A_\text{IPV}),\quad \left(\hat{\mathcal P}_\text{IPV},\_\right) = \text{GRU}(\mathcal P_\text{IPV}),\quad \hat{\mathcal B}_\text{IPV} = \text{concat}\left(\hat{\mathcal A}_{IPV},\hat{\mathcal P}_\text{IPV}\right)\\ \hat{\mathcal A}_\text{IPV} = \left\{\mathbf{\hat{\vec a}}_\text{IPV}^i\right\}_{i=1}^m,\quad\hat{\mathcal P}_\text{IPV} = \left\{\mathbf{\hat{\vec p}}_\text{IPV}^i\right\}_{i=1}^m,\quad \hat{\mathcal B}_\text{IPV} = \left\{\mathbf{\hat{\vec b}}_\text{IPV}^i\right\}_{i=1}^m $

    其中 $ \hat{\mathbf{\vec a}}_\text{IPV}^i,\hat{\mathbf{\vec p}}_\text{IPV}^i,\hat{\mathbf{\vec b}}_\text{IPV}^i $ 为编码后的动作特征向量、item 特征向量、融合行为向量。

  4. 如前所述,在item 曝光行为序列建模和item 详情页行为序列建模中,对于户行为动作、用户交互item ,我们都采用常用的 gate recurrent unit: GRU 作为我们的编码器函数。我们用多层 GRU 网络定义序列编码器函数为:

    $ \left(\hat{\mathcal X},\mathbf{\vec s}\right) = \text{GRU}(\mathcal X) $

    其中 $ \mathcal X=\left\{\mathbf{\vec x}^{i}\right\}_{i=1}^n $ 为输入序列, $ \hat{\mathcal X} = \left\{\mathbf{\hat{\vec x}}^{i}\right\}_{i=1}^n $ 为编码的输出序列, $ \mathbf{\vec s} $ 为 RNN 的最终状态。

    我们采用向量拼接来作为融合函数fusion function,即:

    $ \hat{\mathbf{\vec b}}^i = \text{concat}\left(\hat{\mathbf{\vec a}}^i , \hat{\mathbf{\vec p}}^i \right) $

    其中 $ \hat{\mathbf{\vec a}}^i $ 为编码后的动作特征向量, $ \hat{\mathbf{\vec p}}^i $ 为编码后的item 特征向量, $ \hat{\mathbf{\vec b}}^i $ 为融合后的特征向量。

    当然,这里可以采用更复杂的编码模型(例如 Transformer),也可以采用更复杂的融合函数(例如 DNN)。考虑到移动设备上模型的大小,我们在实现中分别使用了 GRU 和拼接。最终用户行为上下文 $ \mathcal C $ 由两个元组构成: $ \left(\hat{\mathcal P}_\text{IE},\hat{\mathcal B}_\text{IE}\right),\left(\hat{\mathcal P}_\text{IPV},\hat{\mathcal B}_\text{IPV}\right) $ 。

    我们在 EdgeRec 的设备上部署 HUBSM。基于 RNN 的循环计算特性,我们对 online incoming 用户行为进行同步地、实时地建模,如前面内容所述。

c. 上下文感知重排

  1. 这里我们研究了我们的 reranking 方法的细节,该方法称作行为注意力网络的上下文感知重排Context-aware Reranking with Behavior Attention Networks ,以共同捕获 local ranking 上下文以及候选 item ,与实时用户行为上下文之间的交互。

    我们使用 GRU 网络对由初始 ranking 模型排序的候选 item 序列进行编码,并将最终状态作为 local ranking 上下文 $ \mathcal s $ 。借助于注意力技术,我们的 reranking 模型可以自动搜索与target item 排序相关的用户行为上下文部分。

    以前的 CTR 预估模型(如 DINDUPN)仅学习与 target item 相关的attend 用户历史交互 item,因此它们无法基于上述注意力机制对用户行为动作进行建模。作为比较,我们的方法首先从用户行为上下文中 attend 相关的交互 item(也就是找到相似的交互 item),然后attentively 结合相应的用户行为动作(这些用户行为动作表明用户对这些item 的潜在意图),一起作为上下文表示从而指导target item 预测。我们在这里称之为 Behavior Attention,它特别地同时使用了 item 曝光行为上下文和 item 详情页行为上下文。

    简而言之,首先找到目标 item 相似的用户交互 item,然后找到对于该 item 的动作。

  2. Candidate Item Sequence Encoder :我们将候选 item 序列定义为 $ \mathcal P_\text{CND} = \left\{\mathbf{\vec p}_\text{CND}^i\right\}_{i=1}^K $ ,它是由推荐系统服务器中的prior 模型生成和排序的。这里的 $ K $ 是候选 item 序列的预定义最大长度,对于较短的item 序列我们使用零来填充。

    候选 item 序列如何生成?猜测可能就是常规的 ranking 模型得到的。因此EdgeRec 需要两套模型:一套是服务器端的常规 ranking 模型,另一个是 EdgeRec 模型。

    我们应用 GRU 网络对其进行编码,并将 RNN 的最终状态表示为 local ranking 上下文,即:

    $ \left(\hat{\mathcal P}_\text{CND},\mathbf{\vec s}_\text{CND}\right) = \text{GRU}(\mathcal P_\text{CND}) $

    其中: $ \hat{\mathcal P}_\text{CND} = \left\{\mathbf{\hat{\vec p}}_\text{CND}^i\right\}_{i=1}^K $ 为候选 item 编号后的 embedding 向量, $ \mathbf{\vec s}_\text{CND} $ 为 local ranking 上下文。

    因为服务器返回的是有序的 item list,所以这里用 GRU 网络来捕获序列关系。

  3. Behavior Attention:具体到编码为 $ \hat {\mathbf{\vec p}}^t_\text{CND} $ 的 target 候选 item $ t $ :

    • 我们首先分别关注 item 曝光行为item 编码序列 $ \hat {\mathcal P}_\text{IE} $ 和 item 详情页 item 动作编码序列 $ \hat {\mathcal P}_\text{IPV} $ 。

    • 然后我们根据 Bahdanau 注意力机制将将注意力分布表示为 $ \left\{\text{att}_\text{IE}^{t,j}\right\}_{j=1}^m $ 以及 $ \left\{\text{att}_\text{IPV}^{t,j}\right\}_{j=1}^n $ 。

      即,计算曝光行为 item / 详情页行为 item 和目标 item $ t $ 的相似度。

    • 最后,我们通过结合注意力分布,以及用户行为序列的融合行为编码fused behavior encoding $ \hat {\mathcal B}_\text{IE} $ 和 $ \hat {\mathcal B}_\text{IPV} $ ,从而生成用户行为上下文 $ \mathbf{\vec c}_\text{IE}^t $ 和 $ \mathbf{\vec c}_\text{IPV}^t $ 。

    具体而言,遵循 Transformer 中的三元组 (Query,Key,Value) 的符号,我们在模型中定义 $ \hat {\mathbf{\vec p}}^t_\text{CND} $ 为 Query、 $ \hat {\mathcal P}_\text{IE}/\hat {\mathcal P}_\text{IPV} $ 为 Key、 $ \hat {\mathcal B}_\text{IE}/\hat {\mathcal B}_\text{IPV} $ 为 Value 。我们认为,这里的注意力计算是为了搜索相似或相关的 item,因此比较的两个特征空间的 representation 应该是同质的。这就是为什么我们选择对 user behavior actions 和相应的 user interacted items 分别进行编码,并以用户行为item 序列作为 Keytarget item 作为 Query

    比较的两个特征空间也可以是异质的,可以通过一个参数矩阵映射到相同的空间中来。但是论文中的方法是否更好,可以通过实验来比较。

    详细信息可以参考以下公式:

    $ \text{att}_\text{IE}^{t,j} = \text{softmax}\left(\mathbf{\vec v}_1\cdot \tanh\left(\mathbf W_1\hat {\mathbf{\vec p}}^t_\text{CND}+ \mathbf W_2\hat {\mathbf{\vec p}}_\text{IE}^j\right)\right),1\le j\le m\\ \mathbf{\vec c}_\text{IE}^t = \sum_{j=1}^m \text{att}_\text{IE}^{t,j} \times \hat {\mathbf{\vec b}}_\text{IE}^j\\ \text{att}_\text{IPV}^{t,j} = \text{softmax}\left(\mathbf{\vec v}_2\cdot \tanh\left(\mathbf W_3\hat {\mathbf{\vec p}}^t_\text{CND} + \mathbf W_4\hat {\mathbf{\vec p}}_\text{IPV}^j\right)\right),1\le j\le m\\ \mathbf{\vec c}_\text{IPV}^t = \sum_{j=1}^n \text{att}_\text{IPV}^{t,j}\times \hat {\mathbf{\vec b}}_\text{IPV}^j $

    其中 $ \mathbf W_1,\mathbf W_2,\mathbf W_3,\mathbf W_4,\mathbf{\vec v}_1,\mathbf{\vec v}_2 $ 为训练的参数。

  4. 模型学习:为了建模 $ \phi(\cdot) $ ,我们首先简单地将 IPVIE上的上下文(即 $ \mathbf{\vec c}_\text{IE}^t,\mathbf{\vec c}_\text{IPV}^t $ )、target 候选的 representation (即 $ \hat {\mathbf{\vec p}}^t_\text{CND} $ )、local ranking 上下文(即 $ \mathbf{\vec s}_\text{CND} $ )拼接起来,并将它们馈入多层感知机MLP 中进行非线性变换,随后使用交叉熵损失进行模型训练。

24.2 实验

  1. 这里我们通过离线和在线评估,在真实的淘宝推荐系统数据集上验证了我们模型的有效性。

24.2.1 离线评估

  1. 数据集:我们从手机淘宝的 EdgeRec 系统收集在线日志以及相应的 item 特征。具体而言,我们从两个不同日期(2019-11-142019-11-15)的日志中随机抽样,并将它们分为训练集(22072671 个样本)和测试集(200000 个样本)。此外,我们收集的数据集的 Item 曝光行为序列平均长度为 56Item详情页行为序列的平均长度为 26

  2. baseline 方法:我们将我们的模型和两种在工业application 中广泛应用的代表性方法进行比较,即 DNN-rankDLCM

    为了检查我们提出的异质用户行为序列建模 HUBSM 和使用行为注意力网络的上下文感知重排 CRBAN 的有效性,除了我们的完整方法CRBAN+HUBSM(IE&PV)之外,我们还准备了 CRBAN 的以下变体:

    • CRBAN+HUBSM(IE):仅仅考虑 Item 曝光行为序列建模 IE-BSM

    • CRBAN+HUBSM(IPV):仅仅考虑 Item 详情页行为序列建模 IPV-BSM

    • CRBAN+HUISM(IE&IPV):尽管 IE 曝光行为序列和 Item 详情页行为序列都被考虑,但是使用 DIN 而不是 HUBSM 对用户行为上下文建模。

      DIN 仅考虑历史行为序列和目标 item 相关性,没有利用到序列的顺序特性。

  3. 配置:我们使用 PAI 支持的分布式 Tensorflow 训练模型,训练配置如下:batch size = 512、学习率为 0.005GRU 隐单元数量为 32attention 隐单元数量为 32MLP 隐单元数量为 32、优化器为 Adam

    注意:DNN-rankDLCM 仅利用云端的特征,因为它们无法捕获 edge 特征。

  4. 评估指标:GAUC 是一种广泛使用的推荐指标,通过对用户的 AUC 取平均。在我们的论文中,我们通过对 EdgeRec 系统中的本地客户端请求 $ r\in \mathcal R $ 取平均 AUC 来扩展 GAUC ,这可以视为一个 reranking session,计算如下:

    $ \text{GAUC} = \frac{\text{imp}_r \times \text{AUC}_r}{\sum_{r\in \mathcal R } \text{imp}_r} $

    其中: $ \text{imp}_r $ 为请求 $ r $ 的item 曝光量, $ \text{AUC}_r $ 为请求 $ r $ 的 AUC

  5. 不同方法的 GAUC 性能如下表所示。这里 * 表示和 baseline (DLCM ) 相比,通过 t-testp-value=0.05 的统计显著性提升。

    可以看到:

    • DLCM 优于 DNN-rank ,这验证了将 local ranking context 纳入 reranking 模型的有效性。

    • 所有基于 CRBAN 的方法都显著优于 DLCM。特别地,我们的完整方法 CRBAN+HUBSM(IE&IPV) 实现了 GAUC2% 的显著相对提升。这证明了在 reranking 模型中考虑实时用户行为上下文的优势。因此,如何对用户行为上下文进行建模是我们将在以下讨论中重点讨论的内容。

    • 为了验证我们提出的异质用户行为序列建模方法,我们将 HUBSM(IE&IPV)HUBSM(IE)HUBSM(IPV) 进行了比较。结果表明:正反馈(即 IPV)和负反馈(即 IE)的用户行为都有助于对用户行为上下文进行建模。

      我们还发现 HUBSM(IPV) 优于 HUBSM(IE) ,这表明 Item 详情页用户行为可能比 Item曝光用户行为更重要。

    • 最后,通过比较 HUBSM(IE&IPV)HUISM(IE&IPV) 的结果表明:通过同时考虑交互 item 及其相应action 的行为注意力机制可以带来效果提升。

24.2.2 在线评估

  1. 在线 A/B test:我们在手机淘宝上部署的 EdgeRec 系统上进行了在线实验(A/B test)。在淘宝瀑布流推荐系统中,在线指标包括 PV、CTR、CLICK、GMV,这些指标评估用户在推荐系统中查看(PV)、点击(CTR,CLICK)、购买(GMV)的意愿有多大。

    EdgeRec 已经全面部署在手机淘宝 application 中,服务于数十亿用户。baseline (即 A test)是没有 EdgeRec 的常规淘宝推荐系统。在这里,数百万不同的随机用户同时分别进行在线A/B test 。在 2019-10-262019-11-08 近两周的测试中,拥有完整模型 CRBAN+HUBSM(IE&IPV)EdgeRec 平均贡献高达 1.57% PV7.18% CTR8.87% CLICK10.92% GMV 的提升。这绝对是一项重大的改进,并证明了我们提出的系统的有效性。

    此外,我们还回顾了淘宝推荐系统中不同展示位置display position 的在线平均 item 点击率。从下图可以看到:部署 EdgeRec 后,当前页面末尾的 CTR 会有很大的提升。这说明在推荐系统中加入实时感知和实时反馈可以大大提高用户的点击意愿,因为推荐系统能够及时满足用户的在线需求。

  2. 在线系统性能:除了在线 A/B test 以展示生产中的业务效果之外,我们还在手机淘宝中进行了 EdgeRec 的效率测试,从三个关键方面揭示了部署 EdgeRec 后系统效率的显著提升。

    • 用户行为的延迟时间会影响系统捕获用户对 item 个性化偏好的及时性,从而影响用户在推荐系统中的体验。

      由于网络带宽和延迟的限制,仅仅基于 cloud-to-edge 框架的推荐系统可能会导致捕获用户行为的延迟时间长达 1 分钟。然而,部署 Edge 之后,用户行为可以在设备上被收集和消费,无需任何网络通信开销,这可以使延迟时间在 300 毫秒以内(例如,从设备上的数据库读取用户行为的时间)。

    • 系统的响应时间是影响推荐系统用户体验的另一个因素。当本地客户端随着用户在推荐系统场景中滚动并向系统发送请求时,系统应该及时响应并将已排序的 item 提供给用户,否则用户将等待并可能导致用户离开。

      由于为淘宝上亿用户提供如此复杂的推荐系统模型的计算开销,仅基于云端计算的推荐系统可能会导致包括网络传输在内的 1 秒的响应时间。而在 EdgeRec 中,model serving 在每个用户的移动设备上,解决了集中计算开销的问题,使得响应时间在 100 毫秒以内,无需任何网络通信。

    • 系统对用户的平均反馈次数是影响推荐系统用户体验的另一个关键因素。它反映了当用户在推荐系统中浏览时,系统可以调整向用户展示的 item 排名的频率。系统调整结果的频率越高,就越能够满足用户在推荐系统中的各种需求。

      然而,没有 EdgeRec 的推荐系统不能使系统反馈的次数变得更大,因为这会加重云端服务器上的计算开销。所以在目前 cloud-to-edge 的框架下,没有 EdgeRec 的淘宝推荐系统中用户的平均系统反馈次数为 3 次,平均分页大小为 50 (即用户平均发出 3 次分页请求)。相比之下,EdgeRec 中没有显式的分页点,而是根据用户行为由本地客户端来触发。在不增加云端额外计算开销的情况下,EdgeRec 中系统反馈的平均次数可以达到 15 次(即本地客户端平均在一个页面中触发了 5reranking 请求,因此总数为 15 次)。

    EdgeRec 和不带 EdgeRec 的推荐系统在这三个方面的性能如下表所示。结果数据是在流量高峰时观察到的,并且通过对用户取平均来计算。

24.2.3 案例研究

  1. 我们在下图中对手机淘宝进行了案例研究,以展示异质用户行为序列建模和行为注意力网络的上下文感知重排的有效性。总之,我们有以下观察:

    • 用户在item 详情页中的行为表明用户具有 positive intention degreeitem 偏好,例如添加到购物车或者和客服咨询;而item 曝光中的用户行为通常推断出对 itemnegative intention ,如快速划过或删除。

      这意味着异质用户行为序列建模能够捕获用户对历史交互 item 的潜在正向和负向意图。

    • 借助于item 详情页中两件相似的衬衫,候选衬衫被预测为postive ;借助于item 曝光中具有lower negative intention degree 的两个相似的交互 item,候选帽子被预测为 negative

      这表明行为注意力网络的上下文感知重排能够利用用户行为上下文对候选item 之间的交互进行建模,从而更好地指导target item 的预测。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文