〔小叽导读〕:在淘宝网等电子商务网站中,品牌在用户对商品做点击、购买选择正起着越来越重要的作用,部分原因是用户现在越来越关注商品的质量,而品牌是商品质量的一个保证。 但是,现有的排序系统并不是针对用户对品牌的偏好设计的。某些处理方案一定程度上能减轻这个问题,但仍然无法取得理想的效果或需要增加额外的交互成本。接下来,我们一起来看看,阿里巴巴针对这个问题提出了何种解决方案?
我们提出并设计了第一个品牌级排序系统来解决“现有的排序系统并不是针对用户对品牌的偏好设计的”这个问题,该系统的核心挑战是如何有效利用电子商务网站中的大量信息来对品牌作个性化排序。在我们的解决方案中,我们首先针对个性化品牌排序问题设计特征工程,然后在 Attention-GRU模型的基础上,提出了3个重要改进,以便更好地对品牌排序。值得注意的是,这些改进也能应用于很多其他机器学习模型。我们在阿里巴巴天猫商城上做了大量实验来验证这个排序模型的有效性,并测试了真实应用场景中用户对该排序系统的反馈。
1.1 引言
在淘宝网等电子商务网站中,品牌在用户对商品做点击、购买选择起着越来越重要的作用[1]。产生这个现象的原因有很多:一方面,用户喜欢高质量的商品,而品牌是商品质量的保证;另一方面,用户可能因为某些品牌的推广活动而对这些品牌有特殊偏好,比如篮球粉丝会喜欢某NBA明星代言的品牌等。
但是,正如图1.1(a) 所示,已有搜索、推荐系统中的排序结果将不同品牌的商品汇聚在一起,这不能很好地满足有品牌偏好的用户的需求,因为他们必须花费大量的时间去浏览。
(a) 现有排序系统的结果
(b) 点击复选框 Levi’s 后的结果
(c) 品牌级排序系统的结果
图 1.1 在给定搜索词 “jeans” 时不同排序系统展示的搜索结果。红线标注的内容是重要的品牌相关信息。
针对他们不喜欢的品牌商品,有些方案一定程度上可以减轻这个问题:
将品牌作为系统中排序模型的一个特征,从而使用户喜欢的品牌的商品在排序列表中的位置靠前。但是,不同品牌的商品还是杂糅在一起。
设置复选框、按钮来过滤品牌,如图1.1(b)所示,在搜索词 “jeans” 的返回页面上,通过点击Levi’s (李维斯) 的按钮,用户可以只浏览李维斯的商品。但是,复选框、按钮只能显示少量品牌,而且没有个性化。另外,当用户想浏览多个品牌时,必须多次点击复选框,这增加了交互成本,降低了用户体验。
因为现有系统存在的上述问题,我们设计了一个品牌级排序系统,其中相同品牌的商品聚集在一起,并根据用户对品牌的偏好来对品牌排序。图1.1(c) 是我们系统的一个演示:首先,对牛仔裤按品牌(比如李维斯和威格 (Wrangler))归类。然后,当系统学习到相比于威格,用户更喜欢李维斯时,李维斯的排序位置将会更靠前。
品牌级排序系统的核心挑战是解决个性化品牌排序问题。电子商务网站上的多种重要信息都可用于对品牌排序。首先,品牌价格特征对品牌建模很重要;其次,用户行为中的序列信息和时间间隔信息对用户兴趣建模也非常重要[2];另外,不同的行为类型(点击和购买)反映了用户对商品不同的偏好(相应地,反映了对品牌的不同偏好)。
比如,一般来说购买行为比点击行为能体现用户更强的喜好程度。这里的核心问题是,如何有效利用用户行为序列中的这些特性来提升个性化品牌排序效果。我们将此定义为一个点排序问题。具体地,首先基于电子商务网站中的不同信息训练一个分类器;然后。给定一个用户,使用分类器预测他喜欢不同品牌的概率,再基于概率对品牌排序。属于同一个品牌的商品可使用传统方法排序。
设计该品牌级排序系统需要完成两个子任务:一个是针对品牌排序问题的特征工 程,我们提出一系列影响品牌排序效果的品牌特征;另一个是排序模型的设计,我们出一个适配的 Attention-GRU模型[3] 来预测用户喜欢不同品牌的概率。循环神经网络 (Recurrent Neural Network,简称 RNN) 已经在用户行为序列建模中取得了很好的效果[2],门循环单元 (Gated Recurrent Unit简称GRU)[4] 是最好的RNN结构之一,注意力机制[5]有助于区分不同行为对当前推荐的影响。因此,我们将 Attention-GRU作为基础模型。然后,在Attention-GRU 的基础上我们出了3个重要改进。
将启发式设计的品牌特征和由模型学习到的品牌向量进行整合以更好地对品牌建模。在我们的实验中,这个改进能极大提升品牌推荐效果。
考虑不同的行为类型。我们为不同的行为类型设置不同的矩阵,并显式地将它们对品牌的影响建模成矩阵相乘。
整合时间门[2] 来对行为间的时间间隔建模,这能更好地捕获用户的长短期兴趣。通过阿里巴巴天猫商城上的离线和在线实验验证了我们提出的模型及基于该模型的品牌级排序系统的有效性。
本章的贡献如下:
我们提出了第一个品牌级排序系统用于个性化品牌排序,并能基于用户的品牌偏好来提升他们的购物体验。
我们针对品牌排序任务设计了相应的特征工程,并提出了一个适配的 Attention-GRU模型。具体地,我们提出了3个重要改进,这些改进能有效提升模型效果。
我们在阿里巴巴天猫商城上做了大量的离线和在线实验。实验结果和真实用户的反馈证明了我们模型和品牌级排序系统的有效性。
1.2 相关工作
1.2.1 RNN, GRU 和 Attention-GRU
RNN [6]已被证明能在序列数据建模中取得非常好的效果,它的数学公式如下:
其中,和是第m步的隐状态,输入和输出。f 是一个非线性激活函数。W , U和V是通过训练学习到的相应权值。
GRU [4]是RNN 结构中的一个重要组成成分,能防止梯度消失问题,它把公式(1.1)替 换为:
其中和分别表示更新门和重置门。σ和tanh分别是sigmoidal和tanh函数。和是相应的权值。⊙表示矩阵元素一一乘法。
Attention-GRU [3] 表示基于注意力机制的 GRU 模型。使用注意力机制的 RNN 方法已成功应用于手写字体合成[7],机器翻译[5] 等等。它通常处理以下任务,输入为一个序列,输出也为一个序列。x通常被编码成另一个序列。在第m步,ym 按如下方式生成:
其中,Attend和Generate是函数。是一个向量,其元素表示第j个输入的注意力权值。被称为glimpse[8]。Recurrency表示循环激活函数,在Attention-GRU中,循环激活函数是GRU。
1.2.2 用于行为建模的 RNN 模型
一些方法专注于基于会话场景的 RNN 解决方案,也有方法[12] 针对购物篮推荐设计了相应的 RNN 模型,但我们的工作与它们的设定不同。Time-LSTM模型[2]在LSTM[13]基础上添加了时间门来更好地捕获用户的长短期兴趣。我们提出时间门是一个基本组件, 并可嵌入到其他的 RNN 结构中 (比如本章中的 Attention-GRU)。
1.3 任务定义和模型适配
1.3.1 任务定义
我们用来表示 M 个用户的集合,用来表示 N 个品牌的集合。对于每个用户u ∈ U,将他的历史行为定义为,其中表示u生成了他在时刻对 品牌的第 m 个行为(点击或购买)。我们的任务是,预测用户 u 在一个特定时刻在品牌上生成用户行为的概率。
1.3.2 传统 RNN 模型的适配
我们首先将Hu 转换为
的数学表示分别为。通过2 种方式定义品牌特征向量或 (2) 独热向量。用独热向量定义 ,因为我们的任务中只 有 2 种行为类型,即点击和购买,因此分别用 [0, 1] 和 [1, 0] 表示它们。是一个标量(用秒计算)。如果在真实场景中用户 u 在时刻点击、购买了品牌,则样本标签为1,否则为 0。
对于 Time-LSTM[2],每一步的输入是表示向量串接) 和 。 对于其他RNN 模型,输入(即 1.2.1 节中的是。对于没有注意力机制的 RNN,输出 (即公式 (1.2)中的是所有品牌的概率分布,从中我们可以 获取到。对于Attention-GRU,1.2.1节中的T和(即在公式(1.8)中,当m=1时的分别设为1和。我们将公式(1.9)替换为:
其中,V 是权重,o ̃m 是关于标签 1 和 0 的概率分布。其中,V 是权重,o ̃m 是关于标签 1 和 0 的概率分布。等于标签1 的概率。这些模型基于 和标签计算对数损失,并使用 AdaGrad [14] 方法训练。
图 1.2 品牌特征的提取过程。
为了设计这个品牌级排序系统,我们需要完成两个子任务,即特征工程和排序模型的设计。
1.4.1 特征工程
通过分析淘宝和天猫商城上大量的用户行为日志,用户访问和市场研究,价格区间对于用户和品牌建模非常重要。一方面,用户在做点击、购买决定时,价格是一个重要的考虑因素。另一方面,价格也是反映品牌质量和知名度的一个重要特征。因此,我们根据7 级价格区间来精心设计品牌特征。具体信息如下 (也可参考图1.2):
(1) 收集所有属于同一类目 (比如 “衣服”) 的商品,并按价格对它们进行排序。将排好序的商品列表表示成,用表示的价格。我们把 7 级价格定义成 7 个价格区间,第1级为,第2级为,…,第7级为
(2) 给定一个特定的品牌,商品按以上定义的价格级别进行归类。具体地,当一个商品的价格落在某个价格区间,这个商品就属于相应的价格级别。
图 1.3 展示为什么在我们的任务中要使用注意力机制的一个例子。
(3) 给定一个特定的品牌,统计每个价格级别中8个最重要的电子商务指标,生成8维向量。7个价格级别中的所有 8 维向量串接起来生成 56 维的向量。具体地,本章中8个最重要的电子商务指标如表 1.1所示。
1.4.2 排序模型的设计我们设计了一个适配的 Attention-GRU 模型来预测用户喜欢不同品牌的概率。
1.4.2.1 (1) 为什么选择 Attention-GRU
在对用户行为序列建模时,RNN 方法已经取得最好的效果。LSTM 和 GRU 是 RNN 结构的非常重要的组成成分,它们都能避免梯度消失的问题。相比于 LSTM,GRU 能获得差不多的效果,但参数更少,因此它的训练速度更快,需要更少的数据就可以达到同样的泛化能力。图1.3展示了一个例子,来说明为什么要将注意力机制应用于我们的任务中。当预测用户是否会点击、购买阿迪达斯的夹克时,我们希望能提升第一个和第 三个商品对预测的影响,因为相比于手机和电脑、裤子、鞋子与夹克的关系更紧密。在注意力机制中,这反映在第一个和第三个输入有更大的权值。
1.4.2.2 (2) 如何对Attention-GRU进行改进为了获得更好的效果
我们针对Attention-GRU出了3个改进(也可参考图1.4):
图 1.4 我们针对Attention-GRU模型提出的改进,使用虚线和红文本表示。
改进 1: 将品牌特征和品牌 ID 整合来更好地表示品牌在一个传统的 Attention-GRU 模型中,品牌可由 1.4.1 节中的品牌特征或品牌 ID 的独热向量表示。但是品牌特征是启发式设计的,可能缺失了某些重要的信息。比如,2 个品牌可能含有类似的品牌特征,但用户只对其中一个感兴趣。使用独热向量能显示区分不同品牌,但没有考虑品牌的内容信息。本章提出将这两种表示整合,具体地,按照 1.3.1 节中 的符号表示,假设等于的品牌特征表示成。它的独热向量定义为 其中第k个元素值等于1,其他元素值等于0。定义矩阵为所有品牌的嵌入向量,然后我们使用表示包含品牌特征和品牌嵌入向量的品牌, 其中
由训练数据学习得到,用于从中查找的嵌入向量。
针对公式 (1.11),我们给出 3 种解释。
1.启发式初始化 + 精调。是启发式设计的,通过训练数据的学习,我们进一步调整品牌的表示,得到,这能更好地适应我们的任务。
- 先验信息 + 后验修正。这个解释和第一个解释类似,但是从贝叶斯的角度[17] 去理解。具体地, 是由我们对品牌的 “先验” 认识去设计的,然后训练数据加强了我们对品牌的理解,从而我们可以对用户的品牌偏好有 “后验” 的估计。
- 内容信息 + 协同信息。包含了品牌的内容信息,同时在我们的任务中,是从用户 的点击、购买数据中学习到的,因此捕获了协同信息。对于一些很少出现在训练数据中的 品牌能提供额外的信息以处理这种冷启动问题。
改进 2: 考虑不同的行为类型当使用 RNN 模型对用户行为建模时,之前的工作通常只考虑一种行为类型。但是,在电商网站中用户可以有多种行为类型,比如点击和购买。处理不同行为类型的一种方式是 使用独热向量去表示它们,然后将其串接到品牌表示
但是,这种方法没有考虑和 的特征交互(非线性激活函数只能隐式地对它们的交互建模),因此不能很好地捕获品牌和行为类型的交互关系[18]。
对此,我们提出为每种行为类型定义一个矩阵(行为类型的数目通常不是很多)。在我 们的任务中,分别为点击和购买定义和。然后,同时考虑品牌和行为类型的品牌表示为:
通过这种矩阵相乘的方式,显式地对品牌和行为类型的交互建模。
改进 3: 整合时间门以对行为间的时间间隔建模Time-LSTM[2] 中的时间门对捕获用户的长短期兴趣是非常有效的。本章中我们指出,时间门是一个基本组件,并按如下方式将其适配到我们的模型中。首先定义时间门为:
其中
和分别是和(时间间隔) 的权重。可能很大,因此我们在上强。 加了一个sigmoidal 函数 σ。然后将公式(1.5)改写为:
当使用我们的模型对用户行为建模时,公式 (1.15) 中的表示用户最近的行为,因此利用 来学习他/她当前的短期兴趣。对该用户之前的行为建模,因此反映了 他/她的长期兴趣。的作用有两方面,即不仅经过的过滤,也经过的过滤,因此能控制对当前推荐的影响;(2) 将首先保 存在,然后转移到,并将最终转移到。因此在之后的推荐中通过 整合可以更好地对长期兴趣建模。我们将包含时间门的 Attention-GRU 表示为 Time-Attention-GRU。
值得注意的是,改进 1 非常具有普适性,可用于人造特征和独热向量存在的很多其他机器学习模型;改进 2 可泛化于处理与输入有不同交互类型的任务;在改进 3 中,我们提出时间门不仅可用于LSTM 中,还可用于其他 RNN 模型中,使用方式可以参考我们在Attention-GRU 中的做法。
1.4.2.3 (3) 损失和训练
类似于 Attention-GRU,我们模型中的是由公式(1.10)中的 o ̃m 得到的。定义用 户 u 的损失为:
其中,如果 u 确实于时刻在品牌上生成了用户行为,则的值为 1,我们将负样本的损失乘了 w (< 1),因为训练数据中可能包含未标注的正样本[19]。该模型使用 AdaGrad[14]进行训练。
1.5 离线实验
1.5.1 数据集
我们在阿里巴巴天猫商城上收集了一个真实的大规模数据集。具体地,抽取四元 组 ,每个四元组表示用户user_id 在时 刻 timestamp对品牌 brand_id 产生了一个行为 action_type,过滤掉只有少量交互的用户 和品牌。在离线实验中,最后的数据集包含 M =3, 591,372 用户,N = 90, 529 品牌和 82,960,693 次行为。
对于每个用户 u,将他/她的行为序列拆分成长度为 11 的短序列。前10 个行为形 成,将最后一个行为的品牌和时间戳分别赋值给和,作为训练集中的正样本 (labelu = 1),通过将 随机替换为一个其他品牌来生成负样本1.5.2 比较模型和评价指标
用 Attention-GRU-3M (带有 3 个改进的 Attention-GRU) 来表示我们的模型,并将其与其他基准方法比较。GRU : GRU [4] 是最好的 RNN 结构之一。因此,用 GRU 的效果来代表 RNN 模型的最佳效果。
Attention-GRU:相似地,选择 Attention-GRU [3]来代表带注意力机制的 RNN 模型。 Time-LSTM: Time-LSTM[2] 在序列行为建模方面已取得最好的效果。因此,将其作为一个 非常有竞争力的基准方法。
Session-RNN :Session-RNN [9]基于一个会话中的行为序列使用 RNN 方法来捕获用户的短期兴趣。我们使用公开的 python 代码来实现 Session-RNN,其中会话信息通过 Timeout [20]方法获得。
libFM:我们的任务也可看成是一个品牌推荐问题,因此,很多能同时捕获内容信息和协同信息的融合推荐算法也能使用。挑选 libFM 模型[18] 来代表这一类方法。
使用 1.3.2 节中的方法将 GRU,Attention-GRU, Time-LSTM 和 Session-RNN 适配到我们的任务。对于 libFM,我们抽取三元组 ,其中,当用户user_id 在真实场景中对品牌 brand_id 发生过行为时,则 label为 1,否则 label 为 0。将user_id 的独热向量,brand_id 的独热向量和相应的品牌特征串接起来生成 x,label 是 libFM 中的 y。
将所有 RNN 模型中隐单元的数目统一设置成 256,其他超参数使用交叉验证或按原 论文进行设置。近期我们将公布本章的代码。
本章使用 AUC 和 F1 [21] 这两个评价指标来评价不同模型的预测性能。
1.5.3 实验结果和结论
1.5.3.1 模型比较
如表1.2所示,Attention-GRU-3M 的性能明显好于所有基准模型,我们将此归功于注意力机制和提出的 3 个改进。基准方法 GRU 和 Session-RNN 没利用任何特性,所以 表现最差。相比于 GRU,Attention-GRU利用了注意力机制,Time-LSTM 利用了 1.4.2 节 中提出的改进 3。因此,它们的效果比 GRU 和 Session-RNN 都更好。作为一个融合推 荐算法,libFM 同时捕获了内容信息和协同信息,但是没有捕获用户行为的序列信息, 而 Attention-GRU-3M 利用了所有信息,这解释了为什么 Attention-GRU-3M 的效果好于 libFM。
1.5.3.2 三个改进的效果
如 1.4.2 节所述,我们提出了 3 个改进来提升 Attention-GRU 的效果。现在,我们每 次去掉 1 个改进来看看每个改进是如何影响预测效果的。同时,我们也改变训练数据的 规模来看看数据集的大小对效果的影响。如图1.5 (AUC 和 F1 的结果是类似的,为方便起见,我们只展示 AUC 的结果) 所示,去掉任何一个改进都会使 AUC 下降,而去掉改进 1。
表 1.2 模型比较 (粗体表示最好的效果。* 表示在显著性水平设为 p < 0.01 时,效果最好的方法相比于第二好的方法是有显著性差异的。)
图 1.5GRU-3M 中去掉每个改进和改变训练数据规模时的效果 (AUC)。No Modification i 表示在 Attention-GRU-3M 中去掉改进 i。
时 AUC 下降得最多,这证明所有改进都对效果提升有帮助,改进 1 的效果最明显。当训 练数据的规模变大时,改进 1 的影响更加明显 (即 “Attention-GRU-3M” 和 “No Modification 1” 之间的差距变大)。一个可能的解释是,相比于其他两个改进,改进 1 有更多的参数 (即的大小),因此它需要更多训练数据来学习最优值。
训练数据的规模对于模型效果来说是个重要的影响因素。如表1.2所示,当数据集大小从50%升到100%时,我们模型提升的效果比其他模型更多。值得注意的是,如图1.5所 示,当增加训练数据的大小,Attention-GRU-3M 效果的增长率比 Attention-GRU升很多,这可能是因为提出的3个改进使得我们的模型更好地拟合本任务中潜在的复杂模式,相应地,它需要更多训练数据进行学习。
1.6 线上实验
为了更好地评测用户对该品牌级排序系统的真实反馈,我们在阿里巴巴天猫商城上做了一系列线上实验。在天猫商城上,共有约个用户,个品牌,一天大约有次点击行为和次购买行为。在线上进行了一个标准的A/B 测试,如图1.6所示,我们设计了2个用户交互界面,一个使用原始的排序系统 (左边),另一个添加了一 个 “Brand” 按钮,用户可以通过点击 “Brand” 按钮来切换到品牌级排序系统,如右图所示, 其为没有品牌偏好的用户保留了原始的排序系统。对于每个交互界面,挑选相同数目(大 约每天) 的用户参与 A/B 测试。该线上实验执行了 7 天,并统计每天 CTR,ATIP和GMV 的平均值 (1.4.1节有描述)。
图1.6 左边展示了原始的排序系统。用户可以通过点击“Brand” 按钮切换到右边的品牌级排序系统。
表1.3 线上实验的效果 (基准 对应于图1.6左边的系统,新版本表示右边的系统。相对提升是新版本相对于基准的提升,比如,3.40% ≈ (144.90 − 140.13)/140.13)
表1.3展示了线上实验结果。可以看到,相比于基准方法,新排序系统中的 CTR 和 ATIP 都有提升,这证明通过整合品牌级排序系统,用户更愿意点击该系统展示的商品,同时他们购买的商品价格比以前更高 (商品质量相对也更高)。也因此,天猫商城上的核心优化指标 GMV 有了 3.51% 的提升。考虑到整个天猫商城的流量,这将会带来巨大的经济效益。该品牌级排序系统已经在天猫商城正式上线,当前用户需要主动激活这个功能才可 以使用,每天大概有个用户使用该品牌级排序系统。
1.7 小结
我们提出了一个品牌级排序系统,以更好地满足有品牌偏好的用户的需求。 这个系统的核心是解决个性化品牌排序问题。在我们的解决方案中,我们首先精心设计品牌特征,然后使用适配的 Attention-GRU 模型,即 Attention-GRU-3M,来对品牌排序。
Attention-GRU-3M包含了3个重要改进,从而能利用资源ID 和资源属性的融合信息,不同用户行为类型及相邻行为的时间间隔来提升品牌排序的效果。但是,当前介绍的几个工 作都只考虑用户与资源之间的二元关系,而随着推荐系统的不断完善,标签等越来越多的元素被添加进来,用户、标签和资源间除了形成二元关系,还会构建 < 用户、标签、资源 > 的三元标注关系。
原文发布时间为:2018-07-18
本文作者:西克
本文来自云栖社区合作伙伴“ 阿里技术”,了解相关信息可以关注“ 阿里技术”。