返回介绍

数学基础

统计学习

深度学习

工具

Scala

十、JTM [2019](用于检索)

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

  1. 推荐问题recommendation problem本质上是从整个语料库中为每个用户请求检索一组最相关most relevant或者最喜欢most preferreditem 。在大规模推荐的实践中,算法设计需要在准确性accuracy 和效率 efficiency 之间取得平衡。在拥有数千万或数亿个 item 的语料库中,需要为每个用户请求user request 线性扫描每个item 的偏好分preference score,这在计算上是难以实现的。

    为了解决这个问题,通常使用索引结构index structure 来加速检索过程。在早期的推荐系统中,item-based 协同过滤item-based collaborative filtering: Item-CF 和倒排索引 inverted index 是一种克服计算障碍的流行解决方案。然而,候选集合的范围scope 是有限的,因为最终只能推荐那些与用户历史行为相似的 item

    近年来,向量表示学习 vector representation learning 方法得到了积极的研究。这种方法可以学习用户向量representationitem 向量 representation,然后向量的内积表示user-item 偏好。对于使用 vector representation-based 方法的系统,推荐集合生成generation等价于 k 近邻搜索问题k-nearest neighbor: kNN serach problem 。用于近似kNN 搜索的quantization-based 索引被广泛用于加速检索过程。然而,在上述解决方案中,向量表示学习和 kNN 搜索索引构造 search index construction 分别针对不同的目标进行优化。目标差异objective divergence 导致次优sub-optimal 的向量表示和索引结构。一个更重要的问题是,向量 kNN 搜索索引依赖于用户偏好建模的内积形式,而这种内积形式限制了模型的能力。像 Deep Interest Network: DINDeep Interest Evolution Network: DIENxDeepFM 这样的模型已经被证明在用户偏好预测方面是有效的,但是不能用于生成推荐候选集合。

    为了打破内积形式的限制,使得任意高级的用户偏好模型在计算上能够易于处理,从而可以从整个语料库中检索候选item ,之前的工作Tree-based Deep Model: TDM 创新性地使用树结构作为索引,并大大提高了推荐的准确性accuracyTDM 使用一个树索引 tree index 来组织 item,树中的每个叶节点对应于一个 item。像最大堆 max-heapTDM 假设每个 user-node 偏好等价于该用户在该节点的所有子节点上最大偏好。

    • 在训练阶段,训练 user-node 偏好预测模型从而拟合max-heap like 的偏好分布。不同于基于向量 kNN 搜索的方法,其中索引结构要求用户偏好建模的内积形式,在 TDM 中对偏好模型的形式没有限制。
    • 在预测阶段,由训练模型给出的偏好分preference score 被用于在树索引中执行 layer-wisebeam search 从而检索候选 item

    树索引中的 beam search 的时间复杂度相对于语料库大小是对数的,并且对模型结构没有限制,这是使得高级的用户偏好模型在推荐中检索候选 item 可行的先决条件。

    索引结构在基于 kNN 搜索的方法和基于树的方法中扮演不同的角色。

    • 在基于 kNN 搜索的方法中,首先学习用户的向量表示和item 的向量表示,然后建立向量搜索索引vector search index
    • 在基于树的方法中,树索引的层级hierarchy 也会影响检索模型的训练,二者相互依赖。因此,如何联合学习树索引和用户偏好模型是一个重要的问题

    基于树的方法也是极端分类extreme classification 的文献中的一个活跃的研究主题,而极端分类有时也被认为是一种推荐。在现有的基于树的方法中,树结构被学习从而为了在样本空间或 label 空间中有更好的层级 hierarchy 。然而,树学习阶段的样本划分任务或label 划分任务的目标并不完全符合最终目标,即准确地推荐。索引学习index learning和预测模型训练之间的目标不一致导致整个系统处于次优sub-optimal 状态。

    为了应对这一挑战,并促进树索引和用户偏好预测模型的更好协作,论文 《Joint Optimization of Tree-based Index and Deep Model for Recommender Systems》 开发了一种通过优化统一性能指标来同时学习树索引和用户偏好预测模型的方法。论文的主要贡献:

    • 提出了一个联合优化框架joint optimization framework 来学习 tree-based 推荐中的树索引和用户偏好预测模型,其中优化了统一的性能指标,即用户偏好预测的准确性 accuracy
    • 证明了所提出的树学习算法等价于二部图bipartite graph的加权最大匹配weighted maximum matching问题,并给出了树学习的近似算法。
    • 提出了一种新的方法,该方法可以更好地利用树索引生成层级hierarchical的用户representation ,有助于学习更准确accurate 的用户偏好预测模型。
    • 证明了树索引学习和层级用户表示都可以提高推荐准确性accuracy ,并且这两个模块甚至可以相互促进,从而实现更显著的性能提升。

    在两个大规模的真实世界数据集上进行的实验评估表明,论文的方法可以显著提高推荐的准确性accuracy。在展示广告平台display advertising platform 上的在线 A/B test 结果也证明了论文的方法在生产环境中的有效性。

10.1 模型

  1. 我们首先简要回顾 TDM,然后我们提出了 tree-based 索引和深度模型的联合学习框架。最后,我们介绍了模型训练中使用的层级用户偏好表示hierarchical user preference representation

    改进点:直接优化损失函数的树学习算法;用户历史行为的 item在不同 level 使用不同的 representation

10.1.1 TDM

  1. 在大规模语料库的推荐系统中,如何有效地检索候选item 是一个具有挑战性的问题。Tree-based Deep RecommendationModel: TDM 使用一棵树作为索引,并在树中提出了一个 max-heap like 的概率公式。其中,在 level $ l $ 中每个非叶节点 $ n $ 的用户偏好为:

    $ p^{(l)}(n\mid u) = \frac{\max_{n_c\in \{n's \text{ children in level } l+1 \}}p^{(l+1)}(n_c\mid u)}{\alpha^{(l)}} $

    其中:

    • $ p^{(l)}(n\mid u) $ 为用户 $ u $ 对节点 $ n $ 偏好的 ground truth 概率。
    • $ \alpha^{(l)} $ 为level 的归一化项,使得 $ \sum_{n\text{ in level } l} p^{(l)}(n\mid u) = 1.0 $ 。

    上述公式意味着:节点 $ n $ 的 ground truthuser-node 概率,等于节点 $ n $ 的所有子节点中的user-node 概率最大值除以归一化项。因此:

    • level $ l $ 的 top-k 节点必须包含在 level $ l-1 $ 的 top-k 节点的子节点中。
    • top-k 叶节点的检索可以严格限制为自顶向下地、递归地检索每个leveltop-k 节点,而不会损失准确性 accuracy

    有鉴于此,TDM 将推荐任务转变为分层检索问题hierarchical retrieval problem ,从粗粒度到细粒度逐步地选择候选item

  2. TDM 的候选生成过程candidate generating process如下图所示。其中:

    • (a) 表示用户偏好预估模型user preference prediction model

      首先将用户行为在相应 level 进行分层抽象hierarchically abstract,得到层级的表示 。然后,层级的表示和目标节点以及其它特征(如用户画像)被用作模型的输入。

    • (b) 表示树层级tree hierarchy

      首先将每个item 分配给具有映射函数 $ \pi(\cdot) $ 的不同叶节点。在检索阶段,在leaf level 分配了红色节点的 item 被选择为候选集。

    候选生成过程首先将每个 item 分配给树层级tree hierarchy $ \mathcal T $ 中的叶节点 leaf node ,然后执行图 (b) 所示的layer-wisebeam search 策略:对于 level $ l $ ,仅对 level $ l-1 $ 中具有 top-k 概率的节点的子节点进行评分和排序,从而选择 level $ l $ 中的 top-k 候选节点。这个过程一直持续直到达到 top-k 叶节点为止。

    通过树索引,用户请求的整体检索复杂度从相对于语料库大小的线性降低到对数,并且对偏好模型结构preference model structure 没有任何限制。这使得 TDM 打破了向量 kNN 搜索索引带来的用户偏好建模内积形式的限制,并使得任意高级深度模型能够从整个语料库中检索候选item,大大提高了推荐准确性accuracy

10.1.2 联合优化框架

  1. 假设包含 $ N $ 个样本的训练集为 $ \mathbb D = \left\{\left(u^{(i)},c^{(i)}\right)\right\}_{i=1}^N $ ,其中第 $ i $ 个样本 $ \left(u^{(i)},c^{(i)}\right) $ 表示用户 $ u^{(i)} $ 对target item $ c^{(i)} $ 感兴趣。对样本 $ \left(u^{(i)},c^{(i)}\right) $ ,树层级 tree hierarchy $ \mathcal T $ 决定了预估模型 $ \mathcal M $ 为用户 $ u^{(i)} $ 选择的、到达 item $ c^{(i)} $ 的路径。

    我们提出在全局损失函数下共同学习 $ \mathcal M $ 和 $ \mathcal T $ 。正如我们将在实验中看到的那样,共同优化 $ \mathcal M $ 和 $ \mathcal T $ 可以提高最终推荐的准确性 accuracy

  2. 给定一个 user-itempair 对 $ (u,c) $ ,令 $ p(\pi(c)\mid u;\pi) $ 表示用户 $ u $ 对于叶节点 $ \pi(c) $ 的偏好概率。其中 $ \pi(c) $ 是一个映射函数,它将一个 item 映射到 $ \mathcal T $ 中的叶节点。注意: $ \pi(\cdot) $ 完全决定了树层级 $ \mathcal T $ ,并且优化 $ \mathcal T $ 实际上是在优化 $ \pi(\cdot) $ 。

    模型 $ \mathcal M $ 在给定模型参数 $ \theta $ 的情况下预估 user-node 偏好 $ \hat p(\pi(c)\mid u;\theta,\pi) $ 。如果 $ (u,c) $ pair 对是一个正样本,那么我们有 ground truth $ p(\pi(c)\mid u;\pi) = 1 $ 。根据最大堆max-heap的属性,所有 $ \pi(c) $ 的祖先节点的用户偏好概率(即 $ \left\{p(b_j(\pi(c))\mid u;\pi)\right\}_{j=0}^{l_\max} $ )也应该是 1 。其中 $ b_j(\cdot) $ 为一个映射函数,它将一个节点映射到 level $ j $ 的祖先节点, $ l_\max $ 为 $ \mathcal T $ 中的最大level

    这里假设每个用户仅有一个互动 item。如果有多个互动 item ,实际上由于level 的归一化项 $ \alpha^{(l)} $ 的存在,子节点 $ p(\pi(c)\mid u;\pi) = 1 $ 但是祖先节点的 $ p(b_j(\pi(c))\mid u;\pi) $ 不一定为 1。只能保证祖先节点的 $ p(b_j(\pi(c))\mid u;\pi) \gt 0 $ 。

    为了拟合这样的 user-node 偏好分布,全局损失函数公式化为:

    $ \mathcal L(\theta,\pi) = -\sum_{i=1}^N\sum_{j=0}^{l_\max}\log \hat p\left(b_j\left(\pi\left(c^{(i)}\right)\right)\mid u^{(i)};\theta,\pi\right) $

    这里我们将所有正样本(即 $ \mathbb D $ )和它们的祖先 user-node pair 对上的预估 user-node 偏好概率的负对数之和作为全局经验损失global empirical loss

  3. 优化 $ \pi(\cdot) $ 是一个组合优化问题,很难同时与 $ \theta $ 使用基于梯度的算法进行优化。为了解决这个问题,我们提出了一种联合学习框架joint learning framework ,它交替地针对用户偏好模型以及树层级来优化全局损失函数 $ \mathcal L(\theta,\pi) $ 。模型训练和树学习tree learning 中训练损失的一致性促进了框架的收敛。实际上,由于 $ \{\mathcal L(\theta_t,\pi_t)\} $ 是一个递减序列并且下界为0,因此模型训练和树学习都可以减小 $ \mathcal L(\theta,\pi) $ 的值,联合训练算法肯定会收敛。

    • 在模型训练中, $ \min_\theta \mathcal L(\theta,\pi) $ 就是学习一个适用于所有 leveluser-node 偏好模型,这个模型可以通过神经网络的流行优化算法(如 SGD, Adam 等)来求解。

      在标准化的 normalized 用户偏好设置中,由于节点数量随着 level 呈指数增长,因此噪声对比估计Noise-contrastive estimation 是估计 $ \hat p(b_j(\pi(c))\mid u;\theta,\pi) $ 的替代方法,以避免通过采样策略来计算归一化项。

    • 树学习的任务是在给定 $ \theta $ 的条件下求解 $ \max_\pi - \mathcal L(\theta,\pi) $ 。 $ \max_\pi - \mathcal L(\theta,\pi) $ 等价于二部图 bipartite graph的最大加权匹配问题maximum weighted matching problem,其中二部图由语料库 $ \mathcal C $ 和 $ \mathcal T $ 的叶节点组成。补充材料显示了详细的证明。

  4. 树索引和深度模型的联合学习框架:

    • 输入:

      • 损失函数 $ \mathcal L(\theta,\pi) $
      • 深度模型 $ \mathcal M $
      • 树 $ \mathcal T $
    • 输出:训练好的模型 $ \mathcal M $ 、训练好的树 $ \mathcal T $

    • 算法步骤:

      • 迭代 $ \text{ for } t=0,1,\cdots $ :

        • 通过优化 $ \mathcal M $ 来求解 $ \min_\theta \mathcal L(\theta,\pi) $ 。
        • 通过使用树学习算法 tree learning algorithm 优化树层级来求解 $ \max_\pi - \mathcal L(\theta,\pi) $ 。
      • 输出 $ \mathcal M,\mathcal T $ 。

  5. 诸如经典的匈牙利算法 Hungarian algorithm 之类的用于分配问题assignment problem 的传统算法由于其高度复杂性而难以应用于大型语料库。即使是贪心的选择权重最大的未赋值边unassigned edge 的朴素贪心算法naive greedy algorithm ,也需要预先计算并存储一个大的权重矩阵,这是无法接受的。为了解决这个问题,我们提出了一种分段树学习算法 segmented tree learning algorithm

    我们不是直接将 item 分配给叶节点,而是从根节点到 leaf level 一级一级地实现 achieve。给定一个映射 $ \pi $ 以及语料库中的第 $ k $ 个item $ c_k $ ,令:

    $ \mathcal L_{c_k}^{s,e}(\pi) = \sum_{(u,c)\in \mathcal A_k} \sum_{j=s}^e \log \hat p\left(b_j(\pi(c))\mid u;\theta,\pi\right) $

    其中:

    • $ \mathcal A_k = \left\{\left(u^{(i)},c^{(i)}\right)\mid c^{(i)} = c_k\right\}_{i=1}^N $ 为 target item 为 $ c_k $ 的训练样本集合。
    • $ s $ 为 start level, $ e $ 为 end level

    我们首先针对 $ \pi $ 来最大化 $ \sum_{k=1}^{|\mathcal C|} \mathcal L_{c_k}^{1,d}(\pi) $ ,这等效于将所有 item 分配给 level $ d $ 中的节点。对于最大level 为 $ l_\max $ 的完全二叉树 $ \mathcal T $ ,level $ d $ 中的每个节点被分配了不超过 $ 2^{l_\max -d} $ 个 item

    注意:根节点的 level 最高,为 $ l_\max $ 。叶节点的 level 最低,为 1

    这也是可以通过贪心算法greedy algorithm 有效解决的最大匹配问题,因为如果很好地选择了 $ d $ ,则每个 item 的可能位置的数量大大减少了。例如,对于 $ d=7 $ ,数量为 $ 2^d=128 $ ,即item 可能的位置为它后代的 128 个叶节点之一。

    将这一步找到的最佳映射记作 $ \pi^* $ 。然后我们接下来在约束 $ \forall c\in \mathcal C, b_d(\pi(c)) = b_d(\pi^*(c)) $ 的条件下最大化 $ \sum_{k=1}^{|\mathcal C|} \mathcal L_{c_k}^{d+1,2d}(\pi) $ 。这意味着在 level $ d $ 中保持每个 item 的相应祖先节点不变。一直递归,直到每个 item 都分配给叶节点。

  6. 树学习算法tree learning algorithm

    • 输入:

      • gap $ d $
      • 最大的树level $ l_\max $
      • 原始 original 的映射 $ \pi_{\text{old}} $
    • 输出:优化的映射 $ \pi_{\text{new}} $

    • 算法步骤:

      • 设置当前的 level $ l\leftarrow d $ ,初始化 $ \pi_{\text{new}}\leftarrow \pi_{\text{old}} $ 。

      • 迭代 $ \text{ while } d\gt 0 ,\text{ do } $ :

        • 对于level $ l-d $ 中的每个节点 $ n_i $ ,迭代:

          • 记 $ \mathcal C_{n_i} $ 为在 $ \pi_{new} $ 中 $ n_i $ 的所有后继子孙节点。即 $ \forall c\in \mathcal C_{n_i}, b_{l-d}(\pi_{\text{new}}(c)) = n_i $ 。

          • 寻找 $ \pi^* $ ,使得:

            $ \max -\sum_{c\in \mathcal C_{n_i}} \mathcal L_c^{l-d+1,l}(\pi)\\ s.t.\quad \forall c\in \mathcal C_{n_i},\; b_{l-d}(\pi^*(c)) = n_i $

            这里我们使用一个带有重新平衡策略rebalance strategy 的贪心算法greedy algorithm 来解决这个子问题。每个 item $ c\in \mathcal C_{n_i} $ 首先以最大权重 $ \mathcal L_c^{l-d+1,l}(\cdot) $ 分配给 $ n_i $ 在 level $ l $ 的子节点。然后,应用重新平衡过程以确保每个子节点被分配不超过 $ 2^{l_\max -1} $ 个 item

          • 更新 $ \pi_{\text{new}} $ :

            $ \forall c\in \mathcal C_{n_i},\;\pi_{\text{new}}(c) \leftarrow \pi^*(c) $
        • 更新 $ d $ : $ d\leftarrow \min(d,l_{\max}-l) $

        • 更新 $ l $ : $ l\leftarrow l+d $

      • 返回 $ \pi_{\text{new}} $ 。

10.1.3 层级的用户偏好表示

  1. 如前所述,TDM 是一个层级的检索模型hierarchical retrieval model ,用于从粗粒度到细粒度逐层地生成候选 item 。在检索中,用户偏好预测模型 $ \mathcal M $ 通过树索引执行 layer-wise 的自上而下的 beam search 。因此, $ \mathcal M $ 在每个level 的任务都是异质的 heterogeneous 。有鉴于此,必须提供 level-specific 输入从而提高 $ \mathcal M $ 的推荐准确性accuracy

  2. 一系列相关工作表明:用户的历史行为在预测用户兴趣方面起着关键作用。然而,在我们的 tree-based 方法中,我们甚至可以以新颖novel 和有效effective 的方式扩大这个关键作用 key role

    给定用户行为序列 $ \mathbf c=\{c_1,c_2,\cdots,c_m\} $ ,其中 $ c_i $ 是用户交互的第 $ i $ 个 item ,我们提出使用 $ \mathbf c^l=\{b_l(\pi(c_1)),b_l(\pi(c_2)),\cdots,b_l(\pi(c_m))\} $ 作为level $ l $ 中的用户行为特征。 $ \mathbf c^l $ 和目标节点以及其它可能的特征(如用户画像)一起被用作 level $ l $ 中的 $ \mathcal M $ 的输入,从而预测 user-node 偏好。

    另外,由于每个节点或item 都是一个 one-hot ID 特征,我们按照常见的方式将它们嵌入到连续的特征空间中。这样,用户交互的 item 的祖先节点被用作层级的用户偏好表示hierarchical user preference representation

  3. 一般而言,层级的表示带来两个主要好处:

    • level 独立level independence:与通常的方式一样,在不同 level 之间共享 item embedding 会在训练用户偏好预测模型 $ \mathcal M $ 时带来噪声,因为不同 leveltarget 不同。

      一种显式的解决方案是为每个 levelitem 附加一个独立的 embedding 。但是,这将大大增加参数的数量,并使得系统难以优化和应用。

      我们提出的层级的表示hierarchical representation 使用相应level 中的 node embedding 作为 $ \mathcal M $ 的输入,从而在不增加参数数量的情况下实现了训练的 level independence

    • 精确描述precise description: $ \mathcal M $ 通过树来分层地生成候选item。随着检索level 的增加,每个level 中的候选节点将从粗粒度到细粒度描述最终推荐的 item,直到达到 leaf level

      我们提出的层级的用户偏好表示抓住了检索过程的本质,并给出了用户行为的精确描述,其中节点位于相应的 level 。通过减少过于详细或过于粗糙的描述所带来的混乱,这种方法提高了用户偏好的可预测性。

      例如,在训练和预测中, $ \mathcal M $ 在 upper level 的任务是粗略地选择一个候选集合,并且在相同的 upper level 中用户行为用同质的homogeneous 节点 embedding 也是粗略地描述的。

10.2 实验

  1. 这里我们将研究所提出方法的离线性能和在线性能。

    • 我们首先将所提出的方法的整体性能和其它 baseline 进行对比。
    • 然后我们进行实验来验证各部分的贡献和框架的收敛性。
    • 最后我们在具有真实流量的在线展示广告平台online display advertising platform 上验证该方法的性能。
  2. 数据集:

    • Amazon Books:来自于 Amazon 的产品评论组成的 user-book 评论数据集。这里我们使用最大的子集 Books
    • UserBehavior:这是淘宝用户行为数据的子集。

    这两个数据集均包含数百万个 item,并且数据以 user-item 交互的形式进行组成。每个 user-item 交互包含用户IDitem IDcategory ID、以及时间戳。

    对于上述两个数据集,我们仅保留互动次数不少于 10 的用户。

  3. baseline 方法:为了评估我们提出框架的性能,我们对比了以下方法:

    • Item-CF:一种basic 的协同过滤方法,广泛用于个性化推荐,尤其是大规模语料库。

    • YouTube product-DNN:是 YouTube 视频推荐中使用的一种实用方法,这是基于向量 kNN 搜索方法的代表性工作。学到的用户向量表示和item 向量表示之间的内积反映了偏好。

      我们使用精确的 kNN 搜索来检索预估中的候选 item

    • HSM:是分层的 softmax 模型。它采用 layer-wise 条件概率的乘积来获得归一化的 item 偏好概率。

    • TDM:是tree-based 的深度推荐模型。它允许任意高级模型使用树索引来检索用户兴趣。

      我们使用 TDMbasic DNN 版本,没有 tree learning 、没有 attention

    • DNN:是没有树索引 tree indexTDM 的变体。唯一区别是在于,它可以直接学习 user-item 偏好模型,并且线性扫描所有 item,以检索预估中的 top-k 候选 item

      在在线系统中,这在计算上是不可行的。但是在离线比较中,这是一个很强的 baseline

    • JTM:是树索引和用户偏好预测模型的联合学习框架。JTM-JJTM-H 是两个变体:

      • JTM-J:联合优化了树索引和用户偏好预测模型,但是没有采用层级的用户偏好表示。
      • JTM-H:采用了层级的用户偏好表示,但是使用固定的初始树索引fixed initial tree index ,而没有 tree learning
  4. 配置:

    • 遵循 TDM,我们将用户拆分为训练集、验证集、测试集。

      • 训练集中的每个 user-item 交互都是一个训练样本,交互前的用户行为就是对应的特征。
      • 对于验证集和测试集中的每个用户,我们将沿时间线将前一半行为作为已知特征、后一半行为作为 ground truth
    • 利用TDM 的开源工作,我们在阿里巴巴的深度学习平台 X-DeepLearning: XDL 中实现了所有方法。HSM,DNN,JTM,TDM 采用相同的用户偏好预测模型。

    • 我们为 Item-CF 以外的所有方法都采用负采样,并使用相同的负采样率。对于每个训练样本,Amazon Books 中负采样 100 个负itemUserBehavior 中负采样 200 个负 item

    • HSM,TDM,JTM 在训练过程之前需要一颗初始树。遵从 TDM 的工作,我们使用类目信息category information 来初始化树结构,其中来自相同类目的itemleaf level 进行聚合。

    补充材料中列出了更多关于数据预处理和训练的细节和代码。

  5. 评估指标:我们采用 Precision, Recall, F-Measure 来评估不同方法的性能。

    令用户 $ u $ 召回的item 集合为 $ \mathbb P_u $ (其中 $ |\mathbb P_u|=M $ ),用户的ground truth 集合为 $ \mathbb G_u $ 。

    • Precision@M 定义为:

      $ \text{Precision@M}(u) = \frac{|\mathbb P_u\cap \mathbb G_u|}{|\mathbb P_u|} $
    • Recall@M 定义为:

      $ \text{Precision@M}(u) = \frac{|\mathbb P_u\cap \mathbb G_u|}{|\mathbb G_u|} $
    • F-Measure@M 定义为:

      $ \text{F-Measure@M}(u) = \frac{2\times \text{Precision@M}(u) \times \text{Precision@M}(u)}{\text{Precision@M}(u)+ \text{Precision@M}(u)} $

    每个指标在测试集中对所有用户取平均,并且每个实验执行五次取均值。

  6. 下表给出了两个数据集上所有方法的结果,其中 $ M=200 $ 。可以看到:我们提出的 JTM 在所有指标上均优于其它 baseline。和两个数据集上最佳的 DNN 模型相比,JTMAmazon booksUserBehavior 上的召回率分别提升了 45.3%9.4%

    如前所述,虽然在线系统上计算量难以实现,但是 DNN 是离线比较的一个非常强的 baselineDNN 和其它方法的比较结果给出了许多方面的洞察insight

    • 首先,YouTube product-DNNDNN 之间的差距显示了内积形式的局限性。

      这两种方法的唯一区别是:YouTube product-DNN 使用用户向量和item 向量的内积来计算偏好分,而 DNN 使用全连接网络来计算偏好分。这种变化带来了显著的提升,验证了高级神经网络相比于内积形式的有效性。

    • 其次,采用普通ordinary 但是未优化的树层级tree hierarch 的情况下,TDM 性能比 DNN 更差。

      树层级在训练和预测过程中都起作用。 user-node 样本沿着树生成从而拟合 max-heap like 的偏好分布,并且在预测时在树索引中部署 layer-wise beam search 。如果没有一个定义良好的树层级,用户偏好预测模型可能会收敛到一个次优 sub-optimal 版本,其中生成的样本是混乱的 confused ,并且可能丢失 non-leaf level 中的 target,从而可能返回不正确的候选集。

      特别是在像 Amazon Books 这样的稀疏数据集中,树层级中每个节点学到的 embedding 没有足够的可区分性distinguishable,因此 TDM 的性能不如其它 baseline

      这个现象说明了树的影响、以及tree learning 的必要性。

    • 此外,HSM 的结果比 TDM 差很多。这与 TDM 报告的一致。当处理大型语料库时,由于 layer-wise 概率乘积和 beam search 的结果,HSM 无法保证最终召回的集合是最优的。

  7. 通过联合学习树索引和用户偏好模型,JTM 在两个数据集中的所有指标上均优于 DNN,而检索复杂度要低得多。在 JTM 中可以获得更精确 precise 的用户偏好预测模型和更好的树层级,从而可以实现更好的 item 集合的选择。

    • 层级的用户偏好表示缓解了 upper level 的数据稀疏性问题,因为在具有相同样本数的情况下, upper level 用户行为特征的特征空间要小得多。并且它有助于以layer-wise 的方式进行模型训练,从而减少噪声在各个 level 之间的传播。
    • 此外,树层级学习使得相似的 itemleaf level 上聚合,从而使得内部的 level model 可以获得分布更加一致consistent 的、明确unambiguous 的训练样本。

    得益于上述两个原因,JTM 提供了比 DNN 更好的结果。

    上表中虚线下方的结果表明了各部分的贡献及其在 JTM 中的联合性能。以召回率指标为例:在 UserBehavior 数据集中,和 TDM 相比,树学习和用户偏好的层级表示分别带来了 0.88%2.09% 的绝对增益。此外,在一个统一的目标下,两种优化的组合实现了 3.87% 的绝对召回率提升。Amazon Books 也观察到了类似的收益。

    以上结果清楚地表明了层级表示和树学习以及联合学习框架的有效性。

  8. 迭代联合学习的收敛性Convergence of Iterative Joint Learning:树层级决定了样本的生成和搜索路径,一棵合适的树将极大地有利于模型训练和推断。

    下图给出了在 TDM 中提出的基于聚类的树学习算法,以及我们提出的联合学习方法的比较。为了公平起见,这两种方法都采用层级的用户表示。其中 $ M=200 $ ,(a),(b),(c)Amazon Books 数据集的结果,(d),(e),(f)UserBehavior 数据集的结果。横轴表示迭代次数。

    TDM 树学习算法是基于聚类来实现的,其目标是聚类间距离。JTM 树学习算法是逐级分段优化目标函数来实现,其目标是最小化损失。

    由于我们提出的树学习算法与用户偏好预测模型具有相同的目标,因此从结果来看,这具有两个优点:能够稳定低收敛到最优树;最终推荐准确性accuracy 高于基于聚类的方法。

    从下图中我们可以看到:所有三个指标的结果都在不断地增加。此外,模型在两个数据集上均稳定地收敛,而基于聚类的方法最终会过拟合。以上结果从经验上证明了迭代联合学习的有效性effectiveness 和收敛性 convergence

    一些细心的读者可能已经注意到:在最初的几轮迭代中,聚类算法的性能优于 JTM。原因是 JTM 的树学习算法涉及一种惰性策略lazy strategy,即尝试减少每次迭代中树结构修改的程度(详细内容在补充材料中给出)。

  9. 在线结果:我们还在生产环境中评估了JTM,其中生产环境为淘宝 App 首页的“猜你喜欢”栏目的展示广告display advertising 场景。

    我们使用 click-through rate: CTRrevenue per mille: RPM 来衡量效果,这是关键的效果指标。其中 CTR 定义为:点击量/曝光量。 RPM 定义为:广告收入/曝光量 * 1000

    在广告平台,广告主可以对大量的粒度进行出价,如 ad clusteritemshop 等等。所有粒度中,几个同时运行的推荐方法产生候选集合,它们的组合会被传递到后续阶段,如 CTR 预估、ranking 等等。比较的 baseline 是所有运行的推荐方法得到的这种组合。

    为了评估 JTM 的有效性,我们部署了 JTM 来替代 Item-CF,这是平台中 item 粒度的主要候选生成方法之一。TDM 的评估方法和 JTM 相同。要处理的语料库包含数千万个item。每个比较的 bucket 都有 2% 的在线流量,考虑到整体页面请求量,这已经足够大了。

    下表给出了两个主要在线指标的提升情况。

    • CTR 增长了 11.3%,这表明 JTM 推荐了更精准precise的商品。
    • RPM 提高了 12.9%,这表明 JTM 可以为平台带来更多收入。

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

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

发布评论

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