MIND

0 阅读9分钟

标题:面向天猫推荐的动态路由多兴趣网络
单位:阿里
链接:Multi-Interest Network with Dynamic Routing for Recommendation at Tmall(2019.04)

摘要

为了处理十亿规模的用户和物品,工业推荐系统通常由匹配阶段和排序阶段组成。匹配阶段负责检索与用户兴趣相关的候选物品,排序阶段则按照用户兴趣对候选物品排序。因此,无论在哪一阶段,对用户兴趣进行建模和表征都是最关键的能力。

现有的大多数深度学习模型都使用单个向量表示一位用户,这不足以捕捉用户兴趣不断变化的性质。本文从不同角度处理该问题,使用多个向量表示一位用户,让不同向量分别编码用户兴趣的不同方面。我们提出动态路由多兴趣网络(Multi-Interest Network with Dynamic Routing,MIND),用于在匹配阶段处理用户的多样兴趣。

具体而言,我们基于胶囊路由机制设计多兴趣提取层,用于聚类历史行为并提取多样兴趣。此外,我们提出标签感知注意力技术,辅助学习由多个向量构成的用户表征。通过在多个公开基准和一个来自天猫的大规模工业数据集上进行广泛实验,我们证明 MIND 在推荐任务中的性能优于最先进的方法。目前,MIND 已经部署到手机天猫 App 首页,负责处理主要在线流量。

1 引言

天猫是中国最大的企业对消费者(B2C)电子商务平台,面向十亿规模的用户在线提供十亿规模的商品。2018 年 11 月 11 日,著名的天猫全球购物节实现约 2130 亿元商品交易总额(Gross Merchandise Volume,GMV),比 2017 年同日增长 26.9%26.9\%

随着用户和商品数量持续增长,帮助每位用户找到其可能感兴趣的商品变得越来越重要。近年来,天猫投入大量精力开发个性化推荐系统,显著改善了用户体验并提升了商业价值。例如,手机天猫 App 首页约占天猫总流量的一半,如图 1 左侧所示。该页面已经部署推荐系统,用于展示个性化商品,满足消费者的个性化需求。

image.png 图 1:左:虚线矩形标出的区域会面向天猫十亿规模的用户进行个性化展示。右:用户 A 与服装、体育和食品等不同类别的商品发生交互,用户 B 则与图书、玩具和手机类商品发生交互。

由于用户和物品都达到十亿规模,天猫的推荐流程由匹配和排序两个阶段构成。匹配阶段负责检索数千个与用户兴趣相关的候选物品,随后由排序阶段预测用户与这些候选物品发生交互的精确概率。在这两个阶段中,用户兴趣建模以及寻找能够捕捉用户兴趣的表征都至关重要,只有这样才能高效检索满足用户兴趣的物品。

然而,由于用户兴趣高度多样,在天猫中建模用户兴趣并不容易。平均而言,十亿规模的用户会访问天猫,每位用户每天与数百件商品发生交互。这些商品往往属于不同类别,体现出用户兴趣的多样性。如图 1 右侧所示,不同用户的兴趣各不相同,同一用户也可能对多种物品感兴趣。因此,捕捉用户多样兴趣的能力对天猫推荐系统至关重要。

现有推荐算法使用不同方式建模和表征用户兴趣。基于协同过滤的方法通过用户过去交互过的物品或隐因子表示其兴趣,但会受到数据稀疏或计算成本高昂等问题影响。基于深度学习的方法通常使用低维嵌入向量表示用户兴趣。

例如,用于 YouTube 视频推荐的深度神经网络 YouTube DNN,将用户过去行为转换为一个定长向量,以此表示每位用户。对于天猫中数量庞大的兴趣模式,这可能形成建模多样兴趣的瓶颈,因为该向量必须具有很高的维度才能表达所有模式。深度兴趣网络 DIN 使用注意力机制,使用户表征随不同物品发生变化,从而捕捉用户兴趣的多样性。然而,使用注意力机制意味着必须针对每个物品重新计算用户表征,在处理十亿规模物品时计算成本难以承受,所以 DIN 只适用于排序阶段。

本文关注匹配阶段中的用户多样兴趣建模问题。为了克服现有方法的局限,我们提出动态路由多兴趣网络 MIND,用于在工业推荐系统的匹配阶段学习能够反映用户多样兴趣的用户表征。

为了推断用户表征向量,我们设计了一种称为多兴趣提取层的新型网络层。该层使用动态路由,自适应地将用户历史行为聚合为用户表征。动态路由过程可以视为软聚类,它会将用户历史行为划分为多个簇。每个历史行为簇进一步用于推断与某项特定兴趣相对应的用户表征向量。通过这种方式,MIND 为每位用户输出多个表征向量,这些向量共同表示用户的多样兴趣。用户表征向量只需计算一次,就能在匹配阶段用于从十亿规模的物品中检索相关结果。

本文的主要贡献如下:

  1. 为了从用户行为中捕捉多样兴趣,设计多兴趣提取层,使用动态路由将用户历史行为自适应地聚合为多个用户表征向量。
  2. 利用多兴趣提取层生成的用户表征向量和新提出的标签感知注意力层,构建用于个性化推荐任务的深度神经网络。与现有方法相比,MIND 在多个公开数据集和一个来自天猫的工业数据集上表现更优。
  3. 为了部署 MIND 并服务天猫十亿规模的用户,我们构建了一套覆盖数据收集、模型训练和在线服务完整流程的系统。部署后的系统显著提高了手机天猫 App 首页的点击率。

本文其余部分组织如下:第 2 节回顾相关工作;第 3 节详细介绍 MIND 的技术细节;第 4 节介绍 MIND 在多个公开基准和在线服务中与现有方法的对比实验;第 5 节介绍 MIND 在大规模工业应用中的部署;最后一节给出结论和未来工作。

2 相关工作

用于推荐的深度学习

受深度学习在计算机视觉和自然语言处理领域成功应用的启发,人们投入了大量精力开发基于深度学习的推荐算法。除了已经落地的工业应用外,多种类型的深度模型也受到广泛关注。

神经协同过滤(NCF)、DeepFM 和深度矩阵分解模型(DMF)都构建了由多个 MLP 组成的神经网络,用于建模用户与物品之间的交互。还有研究为 Top-NN 序列推荐提出统一且灵活的网络,以捕捉更多特征。

用户表征

在推荐系统中,将用户表示为向量是一种常见做法。传统方法会将用户偏好组织为由感兴趣物品、关键词或主题组成的向量。随着分布式表征学习兴起,通过神经网络得到的用户嵌入得到了广泛使用。

有研究使用 RNN-GRU,根据按时间排序的评论文档学习用户嵌入;有研究从词嵌入中学习用户嵌入向量,并将其用于学术微博推荐;还有研究提出基于卷积神经网络的新型模型,显式学习和利用用户嵌入,并将其与从话语中提取的特征结合起来。

胶囊网络

“胶囊”概念最早于 2011 年提出,它是由一小组神经元组成、整体输出一个向量的结构。胶囊网络不使用反向传播学习胶囊之间的连接权重,而是采用动态路由。随后又有研究使用期望最大化算法改进动态路由,克服其若干缺陷并获得更高准确率。

与传统神经网络相比,这两项主要差异使胶囊网络能够编码局部与整体之间的关系,因此在计算机视觉和自然语言处理领域具有优势。SegCaps 证明,胶囊比传统 CNN 更擅长建模物体之间的空间关系。另有研究考察胶囊网络在文本分类中的应用,并提出三种提高性能的策略。

3 方法

3.1 问题形式化

工业推荐系统匹配阶段的目标,是针对每位用户 uUu\in U,从十亿规模的物品池 II 中检索一个物品子集。该子集只包含数千个物品,并且每个物品都与用户兴趣相关。为了实现这一目标,需要收集推荐系统产生的历史数据并构建匹配模型。

具体而言,每个样本可以表示为三元组 (Iu,Pu,Fi)(I_u,P_u,F_i)。其中,IuI_u 表示用户 uu 交互过的物品集合,也称为用户行为;PuP_u 表示用户 uu 的基本画像,例如性别和年龄;FiF_i 表示目标物品的特征,例如物品 ID 和类别 ID。

MIND 的核心任务是学习一个将原始特征映射为用户表征的函数,其形式为:

Vu=fuser(Iu,Pu).(1)V_u=f_{\mathrm{user}}(I_u,P_u).\tag{1}

其中,Vu=(vu1,,vuK)Rd×KV_u=(\vec{v}_u^1,\ldots,\vec{v}_u^K)\in\mathbb{R}^{d\times K} 表示用户 uu 的多个表征向量,dd 表示维度,KK 表示表征向量数量。当 K=1K=1 时,模型只使用一个表征向量,与 YouTube DNN 相同。

目标物品 ii 的表征向量通过嵌入函数得到:

ei=fitem(Fi).(2)\vec{e}_i=f_{\mathrm{item}}(F_i).\tag{2}

其中,eiRd×1\vec{e}_i\in\mathbb{R}^{d\times1} 表示物品 ii 的表征向量,fitemf_{\mathrm{item}} 的细节将在“嵌入与池化层”一节中介绍。

学习到用户表征向量和物品表征向量后,根据以下评分函数检索排名前 NN 的候选物品:

fscore(Vu,ei)=max1kKeiTvuk.(3)f_{\mathrm{score}}(V_u,\vec{e}_i)=\max_{1\leq k\leq K}\vec{e}_i^T\vec{v}_u^k.\tag{3}

其中,NN 是匹配阶段预先设定的检索物品数量。

3.2 嵌入与池化层

如图 2 所示,MIND 的输入由三组信息构成:用户画像 PuP_u、用户行为 IuI_u 和标签物品 FiF_i。每组都包含多个类别 ID 特征,这些特征具有极高的维度。例如,物品 ID 的数量约为十亿。因此,我们采用广泛使用的嵌入技术,将这些 ID 特征嵌入为低维稠密向量,也就是嵌入,从而显著减少参数数量并降低学习难度。

对于 PuP_u 中的性别、年龄等 ID 特征,将对应嵌入拼接起来形成用户画像嵌入 pu\vec{p}_u。对于 FiF_i 中的物品 ID,以及经验证有助于冷启动物品的品牌 ID、店铺 ID 等其他类别 ID,将对应嵌入进一步输入平均池化层,形成标签物品嵌入 ei\vec{e}_i。最后,收集用户行为 IuI_u 中各物品的对应嵌入,形成用户行为嵌入 Eu={ejjIu}E_u=\{\vec{e}_j\mid j\in I_u\}

image.png 图 2:MIND 概览。MIND 将用户行为和用户画像特征作为输入,输出用于推荐匹配阶段物品检索的多个用户表征向量。输入层中的 ID 特征经嵌入层转换为嵌入,每个物品的多个嵌入进一步由池化层取平均。用户行为嵌入被送入多兴趣提取层,生成兴趣胶囊。将兴趣胶囊与用户画像嵌入拼接,再通过多个 ReLU 层转换,得到用户表征向量。训练时额外引入标签感知注意力层来指导训练;服务时,则通过近似最近邻查找,使用多个用户表征向量检索物品。

3.3 多兴趣提取层

我们认为,使用单个表征向量表示用户兴趣,会成为捕捉用户多样兴趣的瓶颈,因为用户多种兴趣相关的全部信息都必须被压缩到一个向量中。这样会使各种兴趣信息相互混合,导致匹配阶段的物品检索不够准确。

本文改为使用多个表征向量分别表达用户的不同兴趣。这样,匹配阶段可以分别考虑用户的多种兴趣,从而针对每个兴趣方面更准确地检索物品。

为了学习多个表征向量,我们使用聚类过程,将用户历史行为划分为多个簇。一个簇中的物品应彼此密切相关,并共同表示用户兴趣的某一特定方面。为此,我们设计多兴趣提取层,用于聚类历史行为,并为得到的各个簇推断表征向量。

多兴趣提取层的设计受到胶囊网络中动态路由表征学习方法的启发。为了使本文内容自包含,下面首先回顾其必要基础。

3.3.1 动态路由回顾

这里简要介绍胶囊表征学习中的动态路由。胶囊是一种以向量表示的新型神经单元。假设存在两层胶囊,分别将第一层和第二层中的胶囊称为低层胶囊与高层胶囊。

动态路由的目标是,根据低层胶囊的值,以迭代方式计算高层胶囊的值。在每次迭代中,给定低层胶囊 i{1,,m}i\in\{1,\ldots,m\} 及其对应向量 cilRNl×1\vec{c}_i^l\in\mathbb{R}^{N_l\times1},以及高层胶囊 j{1,,n}j\in\{1,\ldots,n\} 及其对应向量 cjhRNh×1\vec{c}_j^h\in\mathbb{R}^{N_h\times1},低层胶囊 ii 与高层胶囊 jj 之间的路由 Logit bijb_{ij} 计算为:

bij=(cjh)TSijcil.(4)b_{ij}=(\vec{c}_j^h)^TS_{ij}\vec{c}_i^l.\tag{4}

其中,SijRNh×NlS_{ij}\in\mathbb{R}^{N_h\times N_l} 是待学习的双线性映射矩阵。

得到路由 Logit 后,高层胶囊 jj 的候选向量由所有低层胶囊的加权和计算:

zjh=i=1mwijSijcil.(5)\vec{z}_j^h=\sum_{i=1}^{m}w_{ij}S_{ij}\vec{c}_i^l.\tag{5}

其中,wijw_{ij} 是连接低层胶囊 ii 与高层胶囊 jj 的权重,通过对路由 Logit 执行 Softmax 得到:

wij=exp(bij)k=1mexp(bik).(6)w_{ij}=\frac{\exp(b_{ij})}{\sum_{k=1}^{m}\exp(b_{ik})}.\tag{6}

最后,应用非线性 Squash 函数,得到高层胶囊向量:

cjh=squash(zjh)=zjh21+zjh2zjhzjh.(7)\vec{c}_j^h=\operatorname{squash}(\vec{z}_j^h)=\frac{\|\vec{z}_j^h\|^2}{1+\|\vec{z}_j^h\|^2}\frac{\vec{z}_j^h}{\|\vec{z}_j^h\|}.\tag{7}

bijb_{ij} 的初始值设为零,路由过程通常重复三次即可收敛。路由结束后,高层胶囊的值 cjh\vec{c}_j^h 被固定,可作为后续网络层的输入。

3.3.2 行为到兴趣动态路由

简而言之,胶囊是一种使用向量而非普通神经网络中标量表示的新型神经元。向量胶囊有望表示一个实体的不同属性,其中胶囊的方向表示一种属性,胶囊长度则表示该属性存在的概率。

相应地,多兴趣提取层的目标是学习能够表达用户兴趣属性的表征,并判断相应兴趣是否存在。胶囊与兴趣表征之间的语义联系,促使我们将行为表征和兴趣表征分别视为行为胶囊和兴趣胶囊,再通过动态路由从行为胶囊中学习兴趣胶囊。

然而,最初为图像数据提出的路由算法不能直接用于用户行为数据。因此,我们提出行为到兴趣(Behavior-to-Interest,B2I)动态路由,将用户行为自适应地聚合成兴趣表征向量。它在以下三个方面不同于原始路由算法。

共享双线性映射矩阵。 我们使用固定的双线性映射矩阵 SS,而不为每对低层和高层胶囊分别设置双线性映射矩阵,主要出于两方面考虑。一方面,用户行为长度可变。天猫用户的行为数量从几十到几百不等,使用固定双线性映射矩阵具有更好的泛化性。另一方面,我们希望兴趣胶囊位于同一个向量空间,但不同的双线性映射矩阵会将兴趣胶囊映射到不同向量空间。因此,路由 Logit 计算为:

bij=ujTSei,iIu,j{1,,K}.(8)b_{ij}=\vec{u}_j^TS\vec{e}_i,\qquad i\in I_u,\quad j\in\{1,\ldots,K\}.\tag{8}

其中,eiRd\vec{e}_i\in\mathbb{R}^{d} 表示行为物品 ii 的嵌入,ujRd\vec{u}_j\in\mathbb{R}^{d} 表示兴趣胶囊 jj 的向量。双线性映射矩阵 SRd×dS\in\mathbb{R}^{d\times d} 由所有行为胶囊与兴趣胶囊对共享。

随机初始化路由 Logit。 由于使用共享双线性映射矩阵 SS,将路由 Logit 初始化为零会产生相同的初始兴趣胶囊。后续迭代随后会陷入不同兴趣胶囊始终完全相同的状态。为了缓解这一现象,我们从高斯分布 N(0,σ2)\mathcal{N}(0,\sigma^2) 中采样随机矩阵,用于初始化路由 Logit,使初始兴趣胶囊彼此不同;这一做法与成熟的 K-Means 聚类算法类似。

动态兴趣数量。 不同用户拥有的兴趣胶囊数量可能不同,因此我们引入一条启发式规则,为不同用户自适应地调整 KK。用户 uuKK 值计算为:

Ku=max(1,min(K,log2(Iu))).(9)K_u'=\max\left(1,\min\left(K,\log_2(|I_u|)\right)\right).\tag{9}

对于兴趣较少的用户,这种动态调整兴趣胶囊数量的策略能够节省计算资源和内存资源。完整动态路由过程见算法 1。

算法 1:B2I 动态路由

输入: 行为嵌入 {eiiIu}\{\vec{e}_i\mid i\in I_u\}、迭代次数 rr、兴趣胶囊数量 KK
输出: 兴趣胶囊 {ujj=1,,Ku}\{\vec{u}_j\mid j=1,\ldots,K_u'\}

  1. 根据公式(9)计算自适应兴趣胶囊数量 KuK_u'
  2. 对所有行为胶囊 ii 和兴趣胶囊 jj,初始化 bijN(0,σ2)b_{ij}\sim\mathcal{N}(0,\sigma^2)
  3. k=1k=1rr 重复以下步骤:
  4. 对所有行为胶囊 ii,令 wijsoftmax(bij)w_{ij}\leftarrow\operatorname{softmax}(b_{ij})
  5. 对所有兴趣胶囊 jj,令 zj=iIuwijSei\vec{z}_j=\sum_{i\in I_u}w_{ij}S\vec{e}_i
  6. 对所有兴趣胶囊 jj,令 ujsquash(zj)\vec{u}_j\leftarrow\operatorname{squash}(\vec{z}_j)
  7. 对所有行为胶囊 ii 和兴趣胶囊 jj,令 bijbij+ujTSeib_{ij}\leftarrow b_{ij}+\vec{u}_j^TS\vec{e}_i
  8. 返回 {ujj=1,,Ku}\{\vec{u}_j\mid j=1,\ldots,K_u'\}

image.png

3.4 标签感知注意力层

多兴趣提取层会根据用户行为嵌入生成多个兴趣胶囊。不同兴趣胶囊表示用户兴趣的不同方面,而在评估用户对特定物品的偏好时,应使用相关的兴趣胶囊。因此,在训练期间,我们基于缩放点积注意力设计标签感知注意力层,让目标物品选择要使用的兴趣胶囊。

具体而言,对于一个目标物品,我们计算每个兴趣胶囊与目标物品嵌入之间的兼容度,再对兴趣胶囊加权求和,得到该目标物品对应的用户表征向量。每个兴趣胶囊的权重由相应兼容度决定。在标签感知注意力中,标签作为查询,兴趣胶囊同时作为键和值,如图 2 所示。用户 uu 相对于物品 ii 的输出向量计算为:

vu=Attention(ei,Vu,Vu)=Vusoftmax(pow(VuTei,p)).\vec{v}_u=\operatorname{Attention}(\vec{e}_i,V_u,V_u)=V_u\operatorname{softmax}\left(\operatorname{pow}(V_u^T\vec{e}_i,p)\right).

其中,pow\operatorname{pow} 表示逐元素幂运算,pp 是用于调节注意力分布的可调参数。当 pp 接近 0 时,各兴趣胶囊获得近似均匀的注意力。当 p>1p>1 时,随着 pp 增大,点积较大的兴趣胶囊会获得越来越高的权重。在极限情况下,当 pp 趋于无穷大时,注意力机制变成一种硬注意力,只选择注意力值最大的胶囊并忽略其他胶囊。实验发现,使用硬注意力可以使模型更快收敛。

3.5 训练与服务

得到用户向量 vu\vec{v}_u 和标签物品嵌入 ei\vec{e}_i 后,用户 uu 与标签物品 ii 发生交互的概率计算为:

Pr(iu)=Pr(eivu)=exp(vuTei)jIexp(vuTej).(10)\Pr(i\mid u)=\Pr(\vec{e}_i\mid\vec{v}_u)=\frac{\exp(\vec{v}_u^T\vec{e}_i)}{\sum_{j\in I}\exp(\vec{v}_u^T\vec{e}_j)}.\tag{10}

训练 MIND 的总体目标函数为:

L=(u,i)DlogPr(iu).(11)L=\sum_{(u,i)\in D}\log\Pr(i\mid u).\tag{11}

其中,DD 是由用户与物品交互构成的训练数据集合。物品数量达到十亿规模,公式(10)分母中的求和操作在计算上不可行。因此,我们使用采样 Softmax 技术,使目标函数能够处理,并选择 Adam 优化器训练 MIND。

训练完成后,除标签感知注意力层之外的 MIND 网络可以作为用户表征映射函数 fuserf_{\mathrm{user}}。服务时,将用户行为序列和用户画像输入 fuserf_{\mathrm{user}},为每位用户生成多个表征向量。随后,通过近似最近邻方法使用这些表征向量检索排名前 NN 的物品。与用户表征向量相似度最高的物品会被检索出来,共同构成推荐系统匹配阶段的最终候选物品集合。

需要注意的是,当用户产生新行为时,其行为序列和对应用户表征向量都会发生改变。因此,MIND 能够为匹配阶段实现实时个性化。

3.6 与现有方法的联系

本节讨论 MIND 与两种现有方法之间的关系,说明它们的相似之处与差异。

YouTube DNN

MIND 和 YouTube DNN 都使用深度神经网络建模行为数据,生成用户表征,并在工业推荐系统的匹配阶段使用这些表征进行大规模物品检索。但 YouTube DNN 使用一个向量表示一位用户,MIND 则使用多个向量。当算法 1 中 K=1K=1 时,MIND 会退化为 YouTube DNN,因此 MIND 可以视为 YouTube DNN 的泛化。

DIN

在捕捉用户多样兴趣方面,MIND 与 DIN 的目标相似,但二者实现目标的方式和适用场景不同。为处理多样兴趣,DIN 在物品层面应用注意力机制;MIND 则使用动态路由生成兴趣胶囊,在兴趣层面考虑多样性。

此外,DIN 侧重于只需处理数千个物品的排序阶段;MIND 将用户表征推断与用户和物品兼容度计算两个过程解耦,因此可以处理匹配阶段的十亿规模物品。

4 实验

4.1 离线评估

本节在多个数据集上进行离线实验,从推荐准确率角度比较 MIND 与现有方法。

4.1.1 数据集与实验设置

我们选择两个数据集来评估推荐性能。第一个是 Amazon Books,它是电子商务推荐中使用最广泛的公开数据集之一。第二个称为 TmallData,由手机天猫 App 数据构建,包含随机采样的 200 万名天猫用户在 10 天内的历史行为。

对于 Amazon Books,我们只保留至少收到 10 条评论的物品,以及至少评论过 10 个物品的用户。对于 TmallData,我们过滤掉被少于 600 名不同用户点击的物品。两个数据集的统计信息见表 1。

Amazon Books 数据集:jmcauley.ucsd.edu/data/amazon…

表 1:用于离线评估的两个数据集的统计信息。 image.png

我们使用下一物品预测问题评估各方法的性能,即预测用户的下一次交互,因为这是推荐系统匹配阶段的核心任务。首先按照 19:119:1 的比例,将每个数据集中的用户与物品交互数据随机划分为训练集和测试集。对于每位用户,随机选择一个与其交互过的物品作为目标物品,并将目标物品之前发生的交互收集为用户行为。

采用命中率作为衡量推荐性能的主要指标,其定义为:

HitRate@N=(u,i)DtestI(目标物品出现在 Top-N 中)Dtest.(12)\operatorname{HitRate}@N=\frac{\sum_{(u,i)\in D_{\mathrm{test}}}\mathbb{I}(\text{目标物品出现在 Top-}N\text{ 中})}{|D_{\mathrm{test}}|}.\tag{12}

其中,DtestD_{\mathrm{test}} 是由用户和目标物品对 (u,i)(u,i) 组成的测试集,I\mathbb{I} 表示指示函数。

嵌入向量维度 dd 和用户兴趣数量 KK 的超参数调优,会在一组根据各数据集规模和分布预定义的参数上进行实验。为了公平比较,每种方法都使用其最佳超参数进行测试。

4.1.2 对比方法

  1. WALS: Weighted Alternating Least Squares 的缩写,是一种经典矩阵分解算法,用于将用户与物品交互矩阵分解为用户和物品的隐因子。推荐根据用户与目标物品隐因子之间的兼容度产生。
  2. YouTube DNN: 如前文所述,它是工业推荐系统中最成功的深度学习方法之一。
  3. MaxMF: 一种高度可扩展的方法,通过学习非线性隐因子分解来建模用户的多种兴趣。

4.1.3 实验结果

表 2 汇总了 MIND 和基线在两个数据集上的 HitRate@N\operatorname{HitRate}@N,其中 N=10,50,100N=10,50,100。显然,MIND 在两个数据集上均取得优于所有基线的性能。

表 2:不同方法在两个数据集上的HitRate,最佳结果以粗体标出。HP 表示超参数,包括兴趣数量 KK 和嵌入维度 dd。为证明各方法的有效性,只展示具有最佳性能的超参数所对应的结果。括号中的百分比表示相对于 YouTube DNN 的提升。 image.png

矩阵分解方法 WALS 被其他方法超过,体现了深度学习在改善推荐系统匹配阶段方面的能力。MaxMF 虽然没有使用深度学习,但表现明显优于 WALS,因为它将标准矩阵分解泛化为非线性模型,并采用多个用户表征向量。

可以观察到,使用多个用户表征向量的方法,即 MaxMF-K-interest 和 MIND-K-interest,整体上优于 WALS、YouTube DNN 和 MIND-1-interest 等其他方法。因此,使用多个用户表征向量已被证明是建模用户多样兴趣并提高推荐准确率的有效方式。

此外,在 TmallData 上,多个用户表征向量带来的提升更加显著,因为天猫用户往往表现出更加多样的兴趣。各数据集对应的最佳 KK 也能反映这种多样性差异:TmallData 的最佳 KK 大于 Amazon Books。

MIND-1-interest 相比 YouTube DNN 的提升表明,动态路由是一种优于平均池化的池化策略。对比 MaxMF 与 MIND-K-interest 的结果还可以验证,使用动态路由从用户行为中提取多个兴趣,优于 MaxMF 使用的非线性建模策略。这可以归因于两点:第一,多兴趣提取层使用聚类过程生成兴趣表征,能够更精确地表示用户;第二,标签感知注意力层使目标物品能够关注多个用户表征向量,从而实现用户兴趣与目标物品之间更准确的匹配。

4.2 超参数分析

本节在 Amazon Books 上进行两项实验,研究多兴趣提取层和标签感知注意力层中的超参数影响。

路由 Logit 的初始化

多兴趣提取层使用的路由 Logit 随机初始化,与 K-Means 质心初始化类似;在 K-Means 中,初始簇中心的分布会显著影响最终聚类结果。由于路由 Logit 按照高斯分布 N(0,σ2)\mathcal{N}(0,\sigma^2) 初始化,我们关心不同 σ\sigma 是否会导致不同收敛结果,并进一步影响性能。

为了研究 σ\sigma 的影响,我们分别使用 0.10.11155 三种 σ\sigma 值初始化路由 Logit bijb_{ij}。图 3 上半部分展示了结果,三种取值对应的曲线几乎完全重合。这说明 MIND 对 σ\sigma 的取值具有鲁棒性,因此在实际应用中选择 σ=1\sigma=1 是合理的。

标签感知注意力中的幂指数

如前所述,标签感知注意力中的幂指数 pp 控制每项兴趣在组合后的标签感知兴趣表征中所占的比例。我们将 pp00 变化到 \infty,比较 MIND 的性能,结果见图 3 下半部分。

显然,p=0p=0 的性能远差于其他设置。原因是,当 p=0p=0 时,每项兴趣获得相同的注意力,因此组合兴趣表征等于所有兴趣的平均值,与标签无关。当 p1p\geq1 时,注意力分数与兴趣表征向量和目标物品嵌入之间的相似度成比例,使组合兴趣表征成为不同兴趣的加权和。

结果还表明,性能会随 pp 增大而改善,因为与目标物品更相似的兴趣表征向量能够获得更大的注意力。当 p=p=\infty 时,该机制演变为硬注意力。此时,距离目标物品最近的兴趣表征会主导组合兴趣表征,使 MIND 收敛更快并取得最佳性能。

image.png 图 3:超参数的影响。上半部分表明,MIND 在不同 σ\sigma 下都能取得相近结果;下半部分表明,较大的 pp 能使 MIND 获得更好的性能。

4.3 在线实验

我们将 MIND 部署到天猫首页,处理真实流量并进行为期一周的在线实验。为保证比较公平,部署在匹配阶段的所有方法后面都使用相同的排序流程。实验使用点击率这一广泛采用的工业指标,衡量各方法服务在线流量时的性能。

在线实验包含两种基线方法。一种是基于物品的协同过滤,它是服务大部分在线流量的基础匹配算法。另一种是 YouTube DNN,即知名的深度学习匹配模型。我们将所有对比方法部署到 A/B 测试框架中,每种方法检索 1000 个候选物品,再将其送入排序阶段产生最终推荐。

实验结果汇总于图 4。MIND 明显优于基于物品的协同过滤和 YouTube DNN,说明 MIND 能够生成更好的用户表征。此外,还可以得到以下观察:

  1. 经过长期实践优化后,基于物品的协同过滤优于 YouTube DNN;而只提取一个兴趣的 MIND 又超过 YouTube DNN。
  2. 随着提取的兴趣数量从 1 增加到 5,MIND 的性能呈现非常明显的上升趋势。
  3. 当提取兴趣数量达到 5 时,MIND 性能达到峰值。此后 CTR 基本不变,使用 7 个兴趣带来的提升可以忽略。
  4. 采用动态兴趣数量的 MIND 与固定使用 7 个兴趣的 MIND 性能相近。

根据这些观察可以得出若干结论。首先,对于天猫,最佳用户兴趣数量为 5 至 7,这反映了用户兴趣的平均多样性。其次,动态兴趣数量机制没有带来 CTR 增益,但实验中发现,该方案能够降低服务成本。这对天猫等大规模服务十分有益,实践中也更容易采用。总体而言,在线实验验证了 MIND 是建模用户多样兴趣的更优方案,可以显著改善整个推荐系统。

image.png 图 4:一周内的在线 CTR。提取 5 至 7 个兴趣的 MIND 在所有对比方法中表现最佳。MIND 显著超过基于物品的协同过滤和 YouTube DNN 两种基线方法。

4.4 案例研究

4.4.1 耦合系数

行为胶囊与兴趣胶囊之间的耦合系数,可以量化某个行为隶属于某项兴趣的程度。本节对这些耦合系数进行可视化,以说明兴趣提取过程具有可解释性。

图 5 展示了从天猫日活跃用户中随机选择的两位用户所对应的耦合系数,其中每一行对应一个兴趣胶囊,每一列对应一个行为。用户 C(上方)与耳机、零食、手提包和服装四类商品发生过交互,每一类都在某个兴趣胶囊上具有最大耦合系数,并形成对应兴趣。用户 D(下方)只对服装感兴趣,因此系统从其行为中解析出三个粒度更细的兴趣:毛衣、大衣和羽绒服。

根据这一结果可以确认,每一类用户行为都会被聚集在一起,并形成对应的兴趣表征向量。

image.png 图 5:两位用户的耦合系数热力图。每类行为都在对应兴趣上具有最大的耦合系数。用户 C(上方)与用户 D(下方)的兴趣粒度不同。

4.4.2 物品分布

服务时,通过最近邻搜索检索与用户兴趣相似的物品。我们根据物品与对应兴趣的相似度,对每项兴趣召回的物品分布进行可视化。图 6 展示了图 5 上方同一位用户 C 的物品分布。

这些分布分别由两种方法得到。上方四条坐标轴展示 MIND 基于四项兴趣召回的物品,最下方坐标轴展示 YouTube DNN 的召回结果。物品按照与兴趣之间的相似度散布在坐标轴上。相似度经最小最大归一化缩放到 0 至 1,再四舍五入到最接近的 0.5。一个点会聚合同一特定区间内的物品,因此点的大小表示具有对应相似度的物品数量。图中还展示了从所有候选物品中随机选择的部分物品。

正如预期,MIND 召回的物品与对应兴趣高度相关;YouTube DNN 召回的物品则跨越多种类别,与用户行为之间的相似度也较低。

image.png 图 6:与左侧用户行为示例对应的各项兴趣所召回物品的分布。每项兴趣由一条坐标轴表示,坐标值是物品与兴趣之间的相似度。点的大小与具有特定相似度的物品数量成正比。

5 系统部署

本节介绍 MIND 在天猫中的实现与部署。图 7 展示了由多个基础平台构成的典型工作流程,具体如下。

当用户启动手机天猫 App 时,推荐请求会被发送到天猫个性化平台。该服务器集群集成了多个插件模块,并作为天猫的在线推荐服务。天猫个性化平台会检索用户近期行为,并将其发送给用户兴趣提取器。用户兴趣提取器是实现 MIND 的主要模块,负责将用户行为转换为多项用户兴趣。

随后,召回引擎搜索嵌入向量与用户兴趣最接近的物品。由不同兴趣触发的物品会被合并为候选物品,并按照它们与用户兴趣之间的相似度排序。得益于 MIND 的高效服务能力,用户兴趣提取器和召回引擎可以在 15 毫秒以内,从十亿规模的物品池中选出数千个候选物品。

为了在物品覆盖范围与系统响应时间之间取得平衡,排名前 1000 的候选物品会由排序服务进行评分。排序服务使用大量特征预测 CTR。最后,天猫个性化平台生成物品列表,作为推荐结果展示给用户。

用户兴趣提取器和排序服务都在模型训练平台上使用 100 块 GPU 进行训练,整个训练可以在 8 小时内完成。得益于模型训练平台的出色性能,用于预测的深度网络每天都会更新,确保新发布的商品能够被计算和曝光。

image.png 图 7:天猫推荐系统的架构。

6 结论与未来工作

本文提出一种新的神经网络结构,即动态路由多兴趣网络 MIND,用于在涉及十亿规模用户和物品的电子商务推荐匹配阶段中表示用户的多样兴趣。具体而言,我们设计了采用动态路由变体的多兴趣提取层,用于提取用户的多样兴趣,再通过新型标签感知注意力方案对这些兴趣进行训练。

离线实验表明,MIND 在公开基准上取得了更优性能。在线 CTR 结果也证明了 MIND 在天猫真实生产环境中的有效性和可行性。

未来工作将沿两个方向展开。第一,在用户行为序列中引入更多信息,例如行为发生时间。第二,参考 K-Means++ 的初始化方案优化动态路由的初始化,从而获得更好的用户表征。

致谢

感谢团队同事提供有益的讨论和研究支持,也感谢合作的搜索工程团队。我们还感谢匿名审稿人提出的宝贵意见和建议,这些反馈帮助提升了论文质量。