返回介绍

数学基础

统计学习

深度学习

工具

Scala

二十六、PDN [2021](mathcing)

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

  1. 推荐系统在面向用户的电商平台(如淘宝、亚马逊)中很重要,目的是将用户连接到他们喜欢的 item 并产生更多利润。由于电商平台中可用的 item 数量巨大,许多工业系统被设计为具有 matching 阶段和 ranking 阶段。具体而言:mathcing 阶段期望以低延迟和低计算成本检索一小部分相关的 item,而 ranking 阶段旨在使用更复杂的模型根据用户的兴趣细化这些相关 item 的排名。在论文 《Path-based Deep Network for Candidate Item Matching in Recommenders》中,论文聚焦于 matching 阶段,因为它是系统的基础部分,也是系统的瓶颈。

    item-to-item CF(即 item-based CF)是一种用于 item matching 的信息检索解决方案。item-based CF 根据两个 item 的共现co-occurrence 来估计item 之间的相关性。一些突出的优点使得 item-based CF 成为业界matching 阶段的自然选择:

    • 由于只使用用户历史交互的 item 进行检索,因此 item-based CF 可以很好地匹配许多在线服务的效率要求。
    • 此外,用户的兴趣可能非常多样化。通过考虑每个交互item,可以最大限度地覆盖用户的兴趣。
    • 最后,item 之间的相关性主要是基于海量的用户行为推导出来的。这些信号能够有效识别与交互item 相关的item

    但是,这些方法也有一定的局限性:

    • 传统的倒排索引难以满足精巧subtle 的个性化需求。通过仅考虑item 共现模式,item-based CF 无法适应用户的独有特点,如性别、消费能力等。
    • 同样,鉴于电商平台中可用的item 数量不断增长,在不考虑辅助信息的情况下,item-based CF 可能会受到数据稀疏性问题的影响。

    为了克服上述限制,embedding-based retrieval: EBR ,尤其是双塔架构的深度学习网络,最近引起了越来越多的兴趣。简而言之,EBR 旨在通过分别嵌入用户画像和 item 画像来表示每个用户和每个 item 。从这个意义上来说,matching 过程被转移到在 embedding 空间中执行最近邻nearest neighbor: NN 搜索。

    虽然 representation learning 可以在一定程度上缓解数据稀疏性问题,但是这些方法也存在一定的局限性:

    • 双塔架构不容易显式集成 item 之间的共现信息。
    • 此外,用户通常表示为单个 embedding 向量,这不足以编码用户兴趣的多样性diversity

    即:item-based CF 难以满足个性化personalization ,而 EBR 难以满足多样性diversity

    一个普通用户每个月都会与数百个属于不同类目的 item 进行交互,这表明用户兴趣的多样性。实际上,在实际的工业系统中,为了同时捕获用户兴趣的多样性diversity 并确保个性化personalization ,通常有多种策略,例如基于协同过滤模型和不同网络结构的 EBR 策略的各种倒排索引。这些模型应用于 matching 任务并且并行部署。注意:候选 item 通常是使用不同 scale 的相关性得分生成的。这些得分通常不可比incomparable,因此很难融合起来从而得到更好的结果。作者认为,由于这些策略的高维护成本以及缺乏联合优化,因此这种多策略解决方案可能是次优的。

    Deep Interest Network: DIN 通过 target attention 引入交互itemtarget item 之间的相似性,以获得更好的推荐。然而,这种注意力机制只是用来融合用户交互序列,而忽略了用户对每个交互item 的兴趣。此外,DIN 很难应用于 matching 阶段,因为它需要为每个 target item 重新计算 user representation

    受到 DIN 的启发,在论文 《Path-based Deep Network for Candidate Item Matching in Recommenders》中,作者提出了一种新的matching 架构,叫做 Path-based Deep Network: PDN 。该架构通过在 item-based CFEBR 之间建立联系,将 item-based attentionuser representation learning 分离。

    PDN 中,作者使用 EBR(即用户画像、交互item 序列、item 画像)和 item-based CF(即 item 共现)的representation learning 思想来适应用户个性化和多样化的兴趣建模,从而获得更好的性能。具体而言,PDN 由两个主要的子网组成:Trigger Net: TrigNetSimilarity Net: SimNet

    • TrigNet 通过以下方式被引入:将每个交互item 视为一个trigger 来编码用户兴趣。也就是说,生成的 user representation 具有可变维度,使得每个维度都描述了用户对交互 item 的兴趣。

      维度 $ i $ 代表用户对交互 item $ i $ 的兴趣强度。

    • 类似于 item-based CFSimNet 生成 item representation,每个维度描述交互itemtarget item 之间的相似性。

      维度 $ i $ 代表交互 item $ i $ 和 target item 的相似性。

    注意,由 EBR 提取的 user representationitem representation 的维度是恒定的,而 PDN 提取的 user representationitem representation 的维度是可变的,等于用户 trigger 的数量。如下图所示,通过用户交互item 将用户和 target item 连接起来,我们可以形成一系列 2-hop 路径。基于这些 2-hop 路径,PDN 通过显式考虑用户的不同兴趣来聚合用户和 target item 之间的相关性,从而获得更好的性能。具体而言,用户和 target item 之间的最终相关性是通过显式考虑用户的不同兴趣来计算的,即聚合 related two-hop 路径的相关性权重relevance weight(路径的 one-hop 对应于 user-item 交互,路径的 two-hop 对应于 item-item 相关性)。

    另一个优点是整个模型都是端到端的方式训练的,因此,相关性得分可以以统一的方式相互比较。

    值得强调的是,所提出的 PDN 具有 item-based CFEBR 的优点,可以实现高效的在线处理。

    • 一方面,通过 feature embedding,我们可以利用 TrigNet 提取与用户兴趣相关的 top m 最重要的 trigger,以满足实时性要求。
    • 另一方面,SimNet 独立于 TrigNet 工作。我们可以应用并行计算支持离线索引构建,其中使用 SimNet 计算的 item-to-item 相关性。

    总之,论文的主要贡献:

    • 一个新颖的 matching 模型。论文通过结合 item-based CFEBR 的优势提出了 Path-Based Deep Network: PDNPDN2-hop 路径聚合的形式集成了user attention 的所有画像信息、以及 target attentionitem 共现模式。PDN 考虑了用户个性化和兴趣多样性,从而实现更好的 item matching
    • 高效的在线检索。论文基于 PDN 构建了一个工业级的在线 matching 系统。特别地,论文描述了如何利用 PDN 以低延迟和低计算成本进行 item 检索。
    • 离线和在线实验。对几个真实世界数据集的大量离线实验表明:PDN 比现有替代方案实现了更好的性能。此外,论文在淘宝推荐系统上对 PDN 进行了为期两周的 A/B test。结果表明:几乎所有指标都获得了很大的性能提升。

    目前 PDN 系统已经成功部署在手机淘宝 App 上,处理了主要的在线流量。

  2. 相关工作:

    • CF-based 方法在构建推荐系统的 mathcing 阶段相当成功。item-based CF 由于其可解释性和高效,已经被广泛应用于工业环境中。其中, item-based CF 预先计算 item 的相似度矩阵,并推荐与用户历史点击item 相似的 item

      早期的工作利用余弦相似度和皮尔逊系数等统计量来估计 item 相似性。近年来,有几种方法试图通过优化 recommendation-aware 目标函数来学习 item 相似性。

      • SLIM 通过最小化原始 user-item 交互矩阵和重构矩阵之间的损失来学习 item 相关性。
      • NAIS 使用注意力机制来区分用户画像中历史互动 item 的不同重要性,这和 DIN 的想法相似。然而由于计算的复杂性,attention-based 方法仅适用于 ranking 阶段。
    • 随着 EBR 的成功,基于深度神经网络的双塔架构已经被广泛应用于工业推荐系统,从而通过利用丰富的内容特征来捕获用户的个性化信息。需要注意的是,在 matching 阶段,要以低延迟和低计算成本处理数十亿甚至数万亿个 item,因此两个塔不能相互交互以确保特征提取的并行性。

      • 基于 DSSM 的模型利用用户特征和 item 特征之间的内积学习相关性。
      • 为了提取更具有区分性的用户特征,Youtube DNN 通过平均池化用户行为来扩展用户特征。
      • BST 利用强大的 transformer 模型来捕获用户行为序列背后的序列信号。

    与上述方法不同的是, 我们提出的 PDN 结合了 item-based CFEBR-based 深度神经网络的优点,构建了 user-item 子网络以确保类似于 EBR 的个性化,并构建了 item-item 子网络类似于 item-based CF 从而捕获用户的多个兴趣。

26.1 模型

26.1.1 基本概念

  1. 下图以用户和 target item 之间的 2-hop 路径的形式总结了推荐问题。其中 $ j_1 $ 到 $ j_n $ 代表交互item 。边的粗细表示了相关性程度。这里:

    • $ \mathbf{\vec z}_u $ 代表用户 $ u $ 的用户信息,例如用户 id、年龄、性别、点击次数、每个类目的购买次数。
    • $ \mathbf{\vec x}_i $ 代表 target item $ i $ 的信息,如 item id、品牌 id、类目 id、月销售额。
    • $ \left\{\mathbf{\vec x}_{j_k}\right\}_{k=1}^n $ 表示用户 $ u $ 交互的 $ n $ 个 item $ \{j_k\}_{k=1}^n $ 的信息。
    • $ \left\{\mathbf{\vec a}_{u,j_k}\right\}_{k=1}^n $ 表示用户 $ u $ 在这 $ n $ 个 item 上的行为信息,如停留市场、购买次数。
    • $ \left\{c_{j_k,i}\right\}_{k=1}^n $ 表示这 $ n $ 个 itemtarget item $ i $ 的相关性信息,这是从 item-based CF 算法或者 item co-occurrence-based pattern 统计而来。

    如下图所示,用户和 target item 之间存在直接联系(虚线所示),这表明用户对 target item 的直觉的兴趣 intuitive interest 。此外,我们可以通过连接交互 item 来进一步形成 $ n $ 条 2-hop 路径:第一跳表示用户对交互 item 的兴趣,第二跳表示交互 itemtarget item 之间的相关性。因此,采用上述的可用信息,item matching 可以形式化为:

    $ \hat y_{u,i} = f\left(\mathbf{\vec z}_u, \mathbf{\vec x}_i,\left\{\mathbf{\vec x}_j\right\},\left\{\mathbf{\vec a}_{u,j}\right\},\left\{c_{j,i}\right\};j\in \mathcal N(u)\right) $

    其中: $ f(\cdot) $ 定义为推荐算法, $ \hat y_{u,i} $ 定义为用户 $ u $ 和 target item $ i $ 之间的相关性得分, $ \mathcal N(u) $ 为用户 $ u $ 历史交互的 item 集合。

  2. 推荐系统的大部分现有工作,包括 item-based CFEBR,可以看作是上式的特例。

    • item-based CF 的回归形式regression form 可以表述为:

      $ \hat y_{u,i} = f\left(\left\{\mathbf{\vec a}_{u,j}\right\},\left\{c_{j,i}\right\};j\in \mathcal N(u)\right)=\sum_{j\in \mathcal N(u)} f_r(\mathbf{\vec a}_{u,j})\times c_{j,i} $

      其中:

      • $ f_r:\mathbb R^m\rightarrow \mathbb R^1 $ 是一个加权函数,用于捕获用户对每个 trigger 的兴趣。 $ m $ 为行为特征向量的维度。
      • $ c_{j,i}\in \mathbb R^1 $ 表述基于 item co-occurrence 信息的、交互 item $ j $ 和 target item $ i $ 的相关性。

      因此,该方法可以视为基于 $ \left\{\mathbf{\vec a}_{u,j}\right\} $ 和 $ \left\{c_{j,i}\right\} $ 的所有 2-hop 路径的权重之和,并且每个路径权重可以计算为 $ f_r(\mathbf{\vec a}_{u,j})\times c_{j,i} $ 。

    • EBR-based 方法中的矩阵分解 matrix factorization: MF 可以表述:

      $ \hat y_{u,i} = f\left(\mathbf{\vec z}_u,\mathbf{\vec x}_i,\left\{\mathbf{\vec x}_j\right\};j\in \mathcal N(u)\right) = \mathbf{\vec q}_i\cdot \left(\mathbf{\vec p}_u + \frac{\sum_{j\in \mathcal N(u)}\mathbf{\vec q}_j}{\sqrt{|\mathcal N(u)|}}\right) $

      其中:

      • $ \mathbf{\vec q}_i $ 为 target item 信息 $ \mathbf{\vec x}_i $ 的 embedding 向量。
      • $ \mathbf{\vec q}_j $ 为互动item 信息 $ \mathbf{\vec x}_j $ 的 embedding 向量。
      • $ \mathbf{\vec p}_u $ 为用户信息 $ \mathbf{\vec z}_u $ 的 embedding 向量。

      MF 可以视为 $ n+1 $ 条路径的权重之和。具体而言:一条1-hop 路径的权重为 $ \mathbf{\vec q}_i\cdot \mathbf{\vec p}_u $ ,n2-hop 路径的权重为 $ \frac{\mathbf{\vec q}_i\cdot \mathbf{\vec q}_j}{\sqrt{|\mathcal N(u)|}} $ 。

    • YoutubeDNN 利用深度神经网络作为矩阵分解的推广,可以表述为:

      $ \hat y_{u,i} = f\left(\mathbf{\vec z}_u,\mathbf{\vec x}_i,\left\{\mathbf{\vec x}_j\right\};j\in \mathcal N(u)\right) = \mathbf{\vec q}_i\cdot \text{MLP}\left(\mathbf{\vec p}_u || \frac{\sum_{j\in \mathcal N(u)}\mathbf{\vec q}_j}{\sqrt{|\mathcal N(u)|}}\right) $

      这里 MLP 是一个多层感知机,|| 表示向量拼接。

    • DIN 也可以表述为:

      $ \hat y_{u,i} = f\left(\mathbf{\vec z}_u,\mathbf{\vec x}_i,\left\{\mathbf{\vec x}_j\right\},\{\mathbf{\vec a}_{u,j}\};j\in \mathcal N(u)\right) =\text{MLP}\left(\mathbf{\vec p}_u||\mathbf{\vec q}_i||\sum_{j\in \mathcal N(u)}\left(\text{MLP}\left(\mathbf{\vec q}_j||\mathbf{\vec a}_{u,j}||\mathbf{\vec q}_i\right)\odot \mathbf{\vec q}_j\right)\right) $

      其中 $ \odot $ 为逐元素乘法。

      注意,根据 target item 和每个 trigger 之间的相关性,DIN 可以被视为 2-hop 路径( $ u\rightarrow j\rightarrow i $ )的 representation 。但是,它需要重新计算每个 target itempath representation ,使得DIN 仅适用于 ranking 阶段。

  3. 为了保证检索效率,item-based CF 构建倒排索引inverted index,而 EBR 应用 KNN 搜索进行在线 serving。然而,由于两种模型体系结构都受到效率的限制,它们无法利用上图中的所有可用信息,从而导致性能欠佳。例如,item-based CF 缺少用户画像和 item 画像,而 EBR 缺少 item 之间的显式共现信息。因此,在本文中我们提出了一种叫做 PDN 的新型架构,从而支持低延迟的个性化和多样性检索。

26.1.2 PDN

  1. 在这一部分,我们介绍了用于推荐系统 matching 阶段的 Path-based Deep Network: PDN的设计。我们首先介绍 PDN 的整体架构,然后详细阐述 PDN 的各个模块,包括 Embedding LayerTrigger Net: TrigNetSimilarity Net: SimNetDirect NetBias Net

  2. 根据公式 $ \hat y_{u,i} = f\left(\mathbf{\vec z}_u, \mathbf{\vec x}_i,\left\{\mathbf{\vec x}_j\right\},\left\{\mathbf{\vec a}_{u,j}\right\},\left\{c_{j,i}\right\};j\in \mathcal N(u)\right) $ ,PDN 的基本工作流程可以表述为:

    $ \text{Path}_{u,j,i} = \text{Merge}\left(\text{TrigNet}\left(\mathbf{\vec z}_u,\mathbf{\vec a}_{u,j},\mathbf{\vec x}_j\right),\text{SimNet}\left(\mathbf{\vec x}_j,c_{j,i},\mathbf{\vec x}_i\right)\right)\\ \hat y_{u,i} = \text{Agg}\left(f_d\left(\mathbf{\vec z}_u, \mathbf{\vec x}_i\right),\left\{\text{Path}_{u,j,i}\right\};j\in \mathcal N(u)\right) $

    其中:

    • TrigNetSimNet 是前面提到的两个独立的子网络。
    • $ \text{Path}_{u,j,i} $ 为通过 trigger item $ j $ 的 2-hop 路径的相关性权重。
    • Merge(.) 是合并每条 2-hop 路径中相关性权重的函数。
    • $ f_d(\cdot) $ 为获取直接路径direct path 相关性权重relevance weight 的函数。
    • Agg(.) 为一个评分函数,用于对 $ n+1 $ 条路径(一条1-hop 路径、 $ n $ 条 2-hop 路径)的相关性权重求和得到用户和 target item 的最终相关性得分。

    为了使 PDN 能够执行快速的在线 item 检索,我们首先将 Agg 定义为1-hop 相关性权重和2-hop 相关性权重的 summation,然后 $ f_d $ 也被定义为 user representationtarget item representation 之间的内积。因此,PDN 的最终形式为:

    $ \hat y_{u,i} = \mathbf{\vec p}_u\cdot \mathbf{\vec q}_i + \sum_{j\in \mathcal N(u)} \text{Merge}\left(\text{TrigNet}\left(\mathbf{\vec z}_u,\mathbf{\vec a}_{u,j},\mathbf{\vec x}_j\right),\text{SimNet}\left(\mathbf{\vec x}_j,c_{j,i},\mathbf{\vec x}_i\right)\right) $

    PDN 的整体架构如下图所示(该图最好用彩色观看):

    • Direct Net 用于获取 1-hop 路径的权重从而捕获用户对 target item 的直观兴趣。
    • TrigNetSimNet 分别获取每条 2-hop 路径的第一跳权重和第二跳权重,从而捕获细粒度的、针对用户的个性化和多样性的兴趣。
    • Bias Net 用于捕获各种类型的选择偏差selection bias 从而进一步提供无偏 serving

    注意:在每条 2-hop 路径中,当 TrigNetSimNet 的输出为向量时,它们可以被视为对应边的 representation,称之为 vector-based PDN。这种 setting 可能具有更高的模型容量,并且使得在线检索更加复杂。另一方面,当 TrigNetSimNet 的输出为标量时,它们可以被视为对应边的权重,称之为 scalar-based PDN 。和 vector-based PDN 相比, scalar-based PDN 具有较低的自由度,可以减轻基于路径检索的贪心策略在线检索的复杂性。因此,接下来我们介绍了 PDN 的每个组件,以及 scalar-based PDN 的设置。

    整个 PDN 模型分为三部分:

  • Direct Net:直接建模用户和 target item 之间的相关。这相当于没有用户历史行为、没有上下文的双塔模型。

  • Bias Net:根据上下文建模不同上下文情况下的 bias。它独立建模上下文,而没有联合 user representationitem representation 。这降低了模型复杂度。

  • Trigger Net & Similarity Net:直接建模用户历史行为和 target item 之间的相关性。这里没有用户画像特征、没有上下文特征。

    • Trigger Net 建模 trigger 重要性,得到 user representation 为 $ \mathbf{\vec u}=(u_1,\cdots,u_N)\in \mathbb R^N $ ,其中 $ u_i $ 为用户 $ u $ 在 trigger $ i $ (即 item $ i $ )上的重要。该 representation 大多数情况下都是零,只有在历史行为 item 上才可能非零。
    • Similarity Net 建模 item 之间相似度,得到 target item representation 为 $ \mathbf{\vec v} = (v_1,\cdots,v_N)\in \mathbb R^N $ ,其中 $ v_j $ 为 item $ j $ 和 target item $ v $ 之间的相似度。
    • Merge 给出如何融合 $ \mathbf{\vec u} $ 和 $ \mathbf{\vec v} $ 从而得到用户 $ u $ 和 target item $ v $ 之间的相关性。

这里存在一个问题:如何迫使模型的子结构预期工作,例如 Direct Net 学到 user-item 直接相关性、Trigger Net 学到 trigger 重要性。这里是否应该增加某些正则化,使得模型朝着预期方向进行优化。

  1. 特征组合Feature CompositionEmbedding Layer:如上图所示,我们的推荐系统中有四个特征字段feature field :用户字段 $ \mathbf{\vec z}_u $ 、用户行为字段 $ \{\mathbf{\vec a}_{u,j}\} $ 、item 共现字段 $ \{c_{j,i}\} $ 、item 字段 $ \mathbf{\vec x}_i $ (以及交互 item 集合 $ \{\mathbf{\vec x}_j\} $ 也是用的 item 字段)。 这些字段包括 one-hot 特征(如用户iditem id、年龄 id、品牌 id),也包括连续特征(如月销售额、停留时长、item 之间的统计相关性)。

    • 首先,我们通过离散化将连续特征转换为 one-hot 特征。
    • 然后,我们将每个 one-hot 特征投影到固定长度的 dense representation 中。
    • 最后,在embedding 之后,我们拼接属于同一个字段的 embedding 向量作为该字段的 representation

    形式上,用户字段、用户行为字段、item 共现字段、item 字段的 field representation 可以写作: $ \mathbf{\vec e}^z_u\in \mathbb R^{d_u},\mathbf{\vec e}^a_{u,j}\in \mathbb R^{d_a},\mathbf{\vec e}^c_{j,i}\in \mathbb R^{d_c},\mathbf{\vec e}^x_i\in \mathbb R^{d_x} $ ,其中 $ d_u,d_a,d_c,d_x $ 为相应字段的 embedding 维度。

  2. Trigger NetSimilarity Net:经过 embedding layer 之后,我们计算用户和 target item 之间每条 2-hop 路径的相关性权重。

    • 对于第一跳,我们利用 TrigNet 通过计算每个 trigger 的偏好来捕获用户的多种兴趣。具体而言,给定用户 $ u $ 及其 trigger item $ j $ ,偏好得分计算为:

      $ t_{u,j} = \text{TrigNet}\left(\mathbf{\vec z}_u,\mathbf{\vec a}_{u,j},\mathbf{\vec x}_j\right) = \text{MLP}\left(\text{CAT}\left(\mathbf{\vec e}^z_u,\mathbf{\vec e}^a_{u,j},\mathbf{\vec e}^x_j\right)\right) $

      其中 $ \text{CAT}\left(\mathbf{\vec e}^z_u,\mathbf{\vec e}^a_{u,j},\mathbf{\vec e}^x_j\right)\in \mathbb R^{d_u + d_a + d_x} $ 为用户embedding、用户行为 embedding、交互 item embedding 的拼接。 $ t_{u,j} $ 代表用户 $ u $ 对交互 item $ j $ 的偏好。

      当存在 $ n $ 个不同的交互 item 时, $ \mathbf{\vec t}_u = (t_{u,1},\cdots,t_{u,n})^\top $ 可以视为用户 $ u $ 的可变维度的 representationEBR-based 方法采用一个固定维度的 representation 向量来表示用户兴趣,这可能是捕获用户不同兴趣的瓶颈,因为所有关于一个用户不同兴趣的信息混合在一起,导致 matching 阶段的 item 检索不准确。与使用固定维度向量对用户 representation 进行编码的 EBR-based 方案相比, $ \mathbf{\vec t}_u $ 显式描述了用户对每个交互 item 的偏好,可以更好地表达用户的多样化diverse 兴趣并且更具有可解释性。

      值得一提的是,TrigNet 可以使用其它更强大的神经网络,例如Recurrent Neural Network: RNNtransformer-based 的模型来建模用户行为。不过我们想强调,一个简单的MLP 对我们的工业系统而言更具有性价比cost-effective

      一种直觉是:转化trigger 要比点击 trigger 更重要、转化多次的 trigger 要比转化一次的 trigger 更重要、转化长尾 trigger 要比转化热门 trigger 更重要。注意,这里的 trigger 既可以是正向的(点击/购买)、也可以是负向的(不感兴趣/快滑),包含用户所有的历史行为。

      因此,这里通过 TrigNet 自动从用户embedding、用户行为 embedding、交互 item embedding 中抽取 trigger 重要性。

    • 对于第二跳,我们利用 SimNet 根据 item 画像和共现信息来计算每个交互 itemtarget item 之间的相关性:

      $ s_{j,i} = \text{SimNet}\left(\mathbf{\vec x}_j,c_{j,i},\mathbf{\vec x}_i\right) = \text{MLP}\left(\text{CAT}\left(\mathbf{\vec e}^x_j,\mathbf{\vec e}^c_{j,i},\mathbf{\vec e}^x_i\right)\right) $

      其中 $ \text{CAT}\left(\mathbf{\vec e}^x_j,\mathbf{\vec e}^c_{j,i},\mathbf{\vec e}^x_i\right)\in \mathbb R^{2d_x + d_c} $ 为交互item embedding、共现 embeddingtarget item embedding 的拼接。 $ s_{j,i} $ 为 item $ j $ 和 item $ i $ 之间的相关性。

      这里的共现很重要:基于什么共现准则?点击共现、还是购买共现、还是不感兴趣共现?个人理解这和任务目标有关。如果任务是点击率预估,那么这里就是点击共现,从而捕获在点击意义下的 item pair 相关性。

      当存在 $ n $ 个不同的交互 item 时, $ \mathbf{\vec s}_i = (s_{1,i},\cdots,s_{n,i})^\top $ 可以视为 target item $ i $ 的可变维度的 representation

      我们强调 SimNet 基于item 共现信息co-occurrence information和辅助信息 side information 来显式地学习相关性。从这个意义上讲,它可以独立地部署从而进行 item-to-item 检索。

      一种直觉是:共现次数越高的 item pair 相似度越高、同类目的 item pair 相似度更高、同店铺的 item pair 相似度更高。

      这相当于将 DIN 中的行为 embedding attention 聚合拆分为 TrigNet + SimNet

    在得到 $ \{t_{u,j}\} $ 和 $ \{s_{j,i}\} $ 之后,PDN 将它们合并从而得到每个 2-hop 路径的相关性权重 $ \text{Path}_{u,j,i} $ ,即:

    $ \text{Path}_{u,j,i} = \text{Merge}(t_{u,j},s_{j,i}) = \ln\left(1+e^{t_{u,j} + s_{j,i}}\right) $

    这个 Merge 函数有两个特点:确保非负;将相关性乘积转换为加法操作,从而方便在线 serving

  3. Direct Net:我们进一步使用另一组 user embeddingitem embedding 在更广的范围内建模用户的一般兴趣general interest 。例如,女性对连衣裙更感兴趣,而男性对腰带更感兴趣。这可以被认为是将用户直接连接到 target item1-hop 路径。因此,我们利用由用户塔和 item 塔组成的直接网络direct network

    具体而言,这两个塔分别通过基于用户字段 $ \mathbf{\vec z}_u $ 和 target item 字段 $ \mathbf{\vec x}_i $ 的MLP (采用 LeakyReLU 激活),从而得到用户 representation $ \mathbf{\vec p}_u\in \mathbb R^{k} $ 和 item representation $ \mathbf{\vec q}_i\in \mathbb R^{k} $ 。然后 direct path 的相关性权重可以表述为:

    $ d_{u,i} = \mathbf{\vec p}_u\cdot \mathbf{\vec q}_i = \text{MLP}\left(\mathbf{\vec e}^z_u\right)\cdot \text{MLP}\left(\mathbf{\vec e}^x_i\right) $

    其中 $ d_{u,i} $ 为用户 $ u $ 和 target item $ i $ 之间的直接相关性direct relevance

  4. Bias Net:位置偏差 position bias 和许多其他类型的选择偏差 selection bias 被广泛研究,并验证为推荐系统中的一个重要因素。例如,用户通常倾向于点击靠近列表顶部显示的 item ,即使它不是整个语料库中最相关的 item

    为了在模型训练期间消除选择偏差,我们训练了一个浅层塔,其输入特征有助于selection bias ,例如位置偏差的位置特征position feature、时间偏差temporal bias 的小时特征 hour feature 。得到的偏差 logit $ y_\text{bias} $ 被添加到主模型的最终 logit 中,如上图所示。

    注意,在 serving 期间,bias net 被移除从而得到无偏的相关性得分。

  5. 损失函数Loss Function:用户 $ u $ 是否会点击 target item $ i $ 可以视为一个二分类任务。因此,我们将 $ n+1 $ 个路径的相关性权重和 bias logit 合并,得到 $ u $ 和 $ i $ 之间的最终相关性分数,并将其转换为用户点击概率 $ p_{u,i} $ :

    $ \hat y_{u,i} = \text{softplus}(d_{u,i}) + \sum_{j=1}^n \text{Path}_{u,j,i} + \text{softplus}(y_\text{bias})\\ p_{u,i} = 1-\exp\left(-\hat y_{u,i}\right) $

    注意,softplus 函数使得相关性分数 $ \hat y_{u,i} $ 的取值范围在 $ (0,+\infty) $ 之间,因此我们将其转换为 0.0 ~ 1.0 之间的概率值。

    为了训练模型,我们应用交叉熵目标函数:

    $ l_{u,i} = -\left[y_{u,i}\times \log p_{u,i} + (1-y_{u,i})\times \log (1-p_{u,i})\right] $

    其中: $ y_{u,i} $ 是 ground-truth,表示用户 $ u $ 是否点击 item $ i $ 。

  6. 讨论:为了确保 PDN 的训练能够收敛到一个更好的最优值,我们仔细设计了每条路径的相关性权重。如前所述,我们利用 $ \exp(\cdot) $ 而不是其它激活函数来将输出约束为正值(即 $ e^{s_{j,i}} $ 和 $ e^{t_{u,j}} $ ),从而实现每条 2-hop 路径权重的合并。这种将输出限制为正值的处理是直观的,并且符合现实世界的合理性。

    即: $ \text{Path}_{u,j,i} = \text{Merge}(t_{u,j},s_{j,i}) = \ln\left(1+e^{t_{u,j} + s_{j,i}}\right) $ 。

    注意,相关性权重本质上可以为负值(即负相关),但是这可能允许 PDN 在更广泛的参数空间中搜索局部最优值,这很容易导致过拟合。在下图中,我们通过允许相关性权重为负来说明两个bad cases

    • 在图 (a) 中,当一个 negative targetlabel = unclick )被两个完全不相关的 trigger 连接时,SimNet 可能会为一条路径生成一个正的相关性权重,并为另一条路径生成一个负的相关性权重。聚合后,点击概率仍然很低,即与 ground-truth 完美匹配。

      因为 $ \sum_{\text{path}} = 0.8 *(-0.5) + 0.8*0.5 = 0 $ 。

      但是很明显,牛奶不能和手机产生postive 的相关性。这意味着SimNet 产生了过拟合。

    • 在图 (b) 中,TrigNet 也可以学习对 triggernegative 偏好,从而过拟合数据。

26.1.3 系统

  1. 在这一部分,我们详细描述了 PDN 在淘宝上进行item 推荐的实现和部署。当用户打开手机淘宝 App 时,推荐系统首先会从包含多达数十亿个 item 的语料库中为该用户检索数千个相关的 item 。然后,每个检索到的 item 都通过 ranking 模型进行评分,并将根据评分排序的item 列表作为推荐给用户展示。

  2. 在线检索Onling Retrieval :如前所述,matching 阶段需要处理数十亿甚至数万亿个item 。为了满足在线实时 serving,不可能利用 PDN 对所有可用 item 进行评分。基于 PDN 的架构,很直观的一点是 ,路径相关性权重越大,用户对 item 感兴趣的可能性就越大。因此,matching 问题可以看作是在用户的 2-hop 邻域中检索具有较大路径权重的 item 节点。

    如下图所示,我们通过贪心策略以路径检索的形式实现了在线实时 top-K 最近邻检索。具体而言,我们将路径检索分解为两个部分:

    • 使用 TrigNettop-m 重要的 trigger 搜索(第一跳)。
    • 基于 SimNet 生成的索引对每个 top-m trigger 执行 top-k item 搜索(第二跳)。

    对于 TrigNet,我们将模型部署在实时在线服务中,用于用户 trigger 的打分。对于 SimNet,我们使用该模型以离线方式计算和索引 item 相关性。

    详细而言,PDN 的在线检索可以概括为:

    • 索引生成(第一步):基于 SimNet,离线生成语料库中每个 itemtop-k 最相似的 item,并与相关性得分 $ s_{j,i} $ 一起存储在数据库中。

    • trigger 提取(第二步):当用户打开手机淘宝 App 时,我们取出用户交互的所有item,并利用 TrigNet 得到用户所有的 trigger 的评分 $ t_{u,j} $ ,并返回 top-m trigger

    • top-k 检索(第三步):我们从这些 top-m trigger 开始查询数据库并获得总共 $ m\times k $ 个候选 item。在移除 bias feature 的情况下,返回 top-k item 进行推荐:

      $ \hat s_{u,i} = \text{softplus}(d_{u,i}) + \sum_{j=1}^m \text{softplus}(t_{u,j} + s_{j,i}) $

    注意:

    • $ \mathbf{\vec p}_u $ 和 $ \mathbf{\vec q}_i $ 是静态的 representation,这两种 representation 也可以离线推断并存储在数据库中。在执行在线服务时,可以直接根据user id 或者 item id 来查询它们。
    • 推断时评分函数仅使用了 top -mtrigger(训练时使用 n 个);推断时评分函数使用简化的 、基于加法操作的Merge 函数(训练时使用复杂的、基于对数操作的 Merge 函数)。

  3. 索引生成Index Generation:对于具有大型 item 语料库的工业系统,我们需要压缩 item 相关性的稠密矩阵,即 $ \mathbb R^{N\times N}\rightarrow \mathbb R^{N\times k} $ ,从而减少索引构建时间成本和存储成本。即使这个过程可以离线完成,计算所有 $ N\times N $ 的 item pair 对的相关性成本太高,所以我们首先根据候选生成 candidate generation 将 $ N\times N $ 降低到 $ N\times \hat k $ ,其中 $ \hat k $ 要比 $ k $ 大一个量级。压缩操作主要包括三个步骤:

    • 候选 item pair 对生成:我们主要从两种策略生成 item pair 对:一种基于共现信息,例如在同一个session 中点击的 item ;另一种基于 item 的画像信息,例如同一个品牌。从这个意义上讲,历史没有共现的、但是具有一些相似属性的 item pair 对也可以被视为候选。
    • 候选 item pair 对排序:我们使用 SimNet 提取每个 item pair 对的相关性得分 $ s_{j,i} $ 。
    • 建立索引:对于每个 item,我们获取 top-k 相似的 item 组成 $ N\times k $ 的 item pair 对,同时 $ s_{j,i} $ 也一并存储在数据库中。

    值得一提的是, SimNet 可以独立地用于索引,因此也可以用于 item-to-item 检索。

    对每个 item 基于 SimNet 生成 top k 相似的 item 非常关键。如果对全量 item 库进行计算,那么每个 item 需要调用 SimNet $ O(N) $ 次,全量计算需要调用 SimNet $ O(N^2) $ 次,即使是离线计算也不现实。为此,需要根据先验知识,挑选出可能相关的 item 进行打分。

26.2 实验

  1. 在这一部分,我们将 PDN 和已有的 SOA 方案进行离线和在线的对比,包括消融研究、模型分析、案例研究。

26.2.1 离线评估

  1. 数据集:我们在三个公开的真实数据集上进行实验:MovieLensPinterestAmazon books 。这三个数据集的统计数据如下表所示。按照 《Neural collaborative filtering》 的设置,我们仅保留至少有 20 次交互的用户。关于这三个数据集的预处理的更多细节,参考 《Neural collaborative filtering》 ,我们不再赘述。

  2. 评估方式:为了评估 PDN 的性能,我们采用了留一法来评估。对于每个用户,最后一次交互作为 target item,而之前的交互 item 作为用户行为集合。具体而言,我们遵循惯例,在每个 test case 中使用所有negative items ,并在这些 negative items 中对 target item 进行排序。

    我们使用命中率 Hit Ratio: HRNormalized Discounted Cumulative Gain: NDCG 作为性能指标。在这里 HR 可以解释为基于召回的指标, NDCG 可以解释为基于 ranking 的指标。

  3. baseline 方法:我们将 PDN 与以下双塔方法和传统的 item-based CF 方法进行比较。为了确保公平地比较,超参数调整是通过网格搜索进行的,每种方法都用最佳超参数进行测试。

    双塔方法如下:

    • DSSMDSSM 使用 embedding 来表示用户和 item。相关性得分是基于 user representationitem representation 之间的内积来计算。
    • Youtube DNNYoutube DNN 利用用户的交互序列来得到user representation 。它平等地对待用户历史行为中的每个交互 item,并采用均值池化来提取用户的兴趣。
    • BSTBST 扩展了 Youtube DNN,通过利用 transformer layer 来捕获用户对历史行为序列的短期兴趣。我们使用 user representationitem representaiton 的内积,而不是 MLP

    item-based CF 方法如下:

    • Pearson-based CF: PCF:这是标准的 item-based CF,它根据皮尔逊系数估计 item 相关性。
    • SLIMSLIM 通过最小化原始 user-item 交互矩阵和从 item-based CF 模型重建的矩阵之间的损失来学习 item 相关性。

    ranking 方法如下:

    • DINDIN 利用 target attention 来提取用户交互序列和 target item 之间的关系。
  4. 三个公共数据集上HR@10NDCG@10 的实验结果如下表所示。所有实验重复 5 次并报告平均结果。最佳结果以粗体突出显示。对 baseline 方法的提升在 0.05 水平上具有统计显著性。

    • Personalise 是指输出的得分考虑了用户信息,例如 PDNEBR-based 方法。值得注意的是,CF 无法得到个性化的分数,因此用 - 表示。
    • Item to Item 指的是基于交互 itemtarget item 之间的相关性检索。具体而言,item 相似度的获取策略是基于 item-based CFSimNet 的输出、EBR 方法获取的 item embedding 之间的内积。

    显然,在大多数数据集下,PDN 优于所有比较方法。我们观察到:

    • 对于个性化检索(Personalise ),DSSM 在双塔方法中表现最差,这表明基于用户行为捕获用户兴趣对于推荐系统至关重要。

      BST 的性能优于 YouTube DNN,这是因为 transformer layer 通过考虑用户行为中的序列信息来提取用户的兴趣。

      PDN 实现了最佳性能,主要是因为这些双塔方法用一个固定维度的向量来表示每个用户,这是对不同兴趣进行建模的瓶颈。相比之下,PDN 利用 TrigNet 提取多兴趣的用户representation,每个维度都以细粒度的方式描述了用户对交互item 的兴趣。SimNet 在得到 itemtarget item 之间的相似性方面也很有效。因此,可以通过考虑用户对 target item 的潜在兴趣来估计更准确的相关性。

    • 在线部署时,我们采用 SimNet 代替item-based CF 来估计 item-to-item 相似性。因此,我们和 item-to-item 进行了对比(即下表中带有 Item to Item 的列)。

      SimNet 在所有Item to Item 方法中表现最好。原因是 SimNet 基于深度神经网络,通过集成双塔方法使用的 item 画像、以及item-based CF 使用的共现信息,显式优化了 item 之间的相似性。这种方式利用更多的信息来解决 CF 遇到的稀疏性问题。

    • PDNDIN 表现更好。我们认为 DIN 忽略了用户对交互 item 的注意力(而仅考虑 target item 对交互 item 的注意力),而 PDN 同时考虑了 user attentionitem attention 从而获得更好的个性化推荐。

    • 基于消融研究,PDN 产生了最佳性能,并且确认每个组件对最终效果都有贡献。

26.2.2 在线实验

  1. A/B test:除了离线研究,我们还通过在淘宝推荐系统中部署我们的方法从而进行为期两周的在线 A/B test 实验。

    • 在对照组(即 baseline )中,包含了我们当前生产系统中的所有matching 策略。
    • 在其中一个实验组,我们应用 SimNet 而不是 item-based 方法来构建倒排索引。

    为了公平地比较,在两个 matching 阶段之后都采用相同的 ranking 组件和业务逻辑。注意:在线指标给出的是相对提升,即:

    $ \frac{\text{metric}_\text{PDN}- \text{metric}_\text{base}}{\text{metric}_\text{base}} $

    下表给出了淘宝上的在线 A/B test 实验提升,为期两周:

    下图给出了 PDN 每一天各种指标的在线提升,为期一周:

    可以看到:

    • PDN 改进了电商推荐系统的所有核心业务指标,包括页面点击率 page click-through rate: PCTR、用户点击率 user click-through rate: UCTR、每个用户点击量 clicks per user: ClkPU、平均session 时长 average session duration: avgSD,以及多样性diversity

      这些都被认为是推荐满意度recommendation satisfaction 的良好指标。其中多样性指标代表了覆盖的类目数量。尤其是个性化的多样性对于现有的生产系统而言通常是比较难的,而 PDN 大幅度增加了推荐item 的多样性,这说明 PDN 可以通过 TrigNetSimNet 来捕获用户的多样化兴趣,提升整体的用户体验。

    • 此外,我们还部署了 SimNet 来验证它可以独立地用于构建索引,而不是基于 item-based CF ,从而进行 item-to-item 检索。这也获得了性能的提升。

  2. 在线效率:这里我们报告在线serving 的效率。具体而言,从请求到候选生成candidate generation 的整体延迟可以在 6.75ms 内完成,即 queries per second: QPS 是在千级别,这与使用标准倒排索引的检索相当。基于巨大的性能提升和低延迟,我们将 PDN 部署到线上,从而服务于淘宝推荐系统的 matching 阶段。

26.2.3 案例研究

  1. 用户行为序列长度分析:基于淘宝离线日志训练得到的模型,我们研究了用户行为序列长度 $ n $ 对性能的影响。我们根据 $ n $ 对用户进行分组。

    • 如下表所示,我们发现 $ n $ 越小增益越大。评估指标为 HR@300,括号中的百分比表示相对于 BST 的提升。

      该结果表明:PDN 对 $ n $ 具有较强的鲁棒性,即使在用户行为序列稀疏的情况下也能获得优异的性能。

    • 如下图所示,我们发现随着 $ n $ 的增加,PDN 生成的候选的多样性逐渐增加,并且显著优于 BST

    这些结果表明:PDN 能够以细粒度的方式捕获用户的个性化和多样化兴趣,从而改善用户体验。

  2. SimNet 的多样性diversity和准确性accuracy

    • 为了验证 SimNet 的有效性,我们分别利用 SimNetitem-based CF 提供的相似性,利用相同的 trigger item 执行 item-to-item 检索。返回结果的相似性从左到右递减。

      如下图所示,通过形状像猫的玩偶来检索,SimNet 返回相似的猫形玩偶和印有猫爪图案的杯子,而 item-based CF 返回月销量高但是和猫无关的玩偶(例如狗形玩偶)。这个结果表明:SimNet 可以在不受交互次数(即 item 销量)干扰的情况下检索更相关和更多样的结果,而 item-based CF 会遭受 “马太效应”的影响,这引入了对热门item 的偏好的bias 。换句话说,item-based CF 仅基于 item co-occurrence 信息计算相似性,而我们的方法额外引入了更多信息,如 item 画像、用户画像、用户行为,从而实现更准确的 item 相似性估计。

    • 为了进一步验证基于 SimNetitem 相似性的可靠性,我们选择一批类目,然后每对类目随机选择 1000item pair 对,并基于在线 servingSimNet 构建的倒排索引计算它们的平均相似度。如下图所示:

      • 我们发现属于同一个类目的 item 具有更高的相似性。
      • 此外,相关类目的相似度高于不相关类目的相似度。例如,无论是 “女装 vs 童装” 还是 “电子产品 vs 家电”,都要比其它类目 pair 对具有更高的相似度。

  3. TrigNet 的个性化和有效性:

    • 在公共数据集上,我们基于 TrigNet 来探索用户对 item 的兴趣。如下图所示,user-to-itemtrigger 权重分别在 postive itemnegative item 上取平均。很明显,postive item 的权重高于 negative item 的权重。这个结果说明了 TrigNet 的合理性。

    • 为了验证 TrigNet 的个性化能力,我们随机选择了 1000 名男性和 1000 名女性,从几个类目中随机选择了 500item,然后基于在线 servingTrigNet 对所有 user-item pair 对进行评分,得到男性和女性之间的平均 trigger 权重的差异。如下图所示,我们可以发现 TrigNet 对性别的处理是不同的,从而准确反映用户特点。例如,男性更喜欢电脑、汽车和手表,女性更喜欢花卉、旅游和女鞋。

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

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

发布评论

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