基于多头自注意力神经网络的购物篮推荐方法*
山东科技大学计算机学院 青岛 266510
Online Product Recommendation Based on Multi-Head Self-Attention Neural Networks
College of Computer Science and Engineering, Shandong University of Science and Technology, Qingdao 266510, China
通讯作者: 刘彤,ORCID:0000-0003-4947-1340,E-mail:liu_tongtong@foxmail.com。
收稿日期: 2019-06-20 修回日期: 2019-09-17 网络出版日期: 2020-02-25
基金资助: |
|
Received: 2019-06-20 Revised: 2019-09-17 Online: 2020-02-25
【目的】 针对用户一次购买多件物品的场景,为用户推荐下一次可能购买的多件物品。【方法】 基于多头自注意力神经网络设计一种新的购物篮推荐方法,该方法使用多头自注意力机制捕捉购物篮中不同物品的关系以及融合物品属性信息,并使用具有注意力的循环神经网络建模购物篮序列信息。【结果】 实验结果表明,本文方法优于传统推荐方法和现有基于深度学习的推荐方法,特别是在TaoBao数据集上F1值提升2%。【局限】 本文方法仅提升了推荐结果的准确性,是否能够提升多样性还需进一步验证。【结论】 多头自注意力能够更好地对购物篮进行建模,进而提升购物篮推荐效果。
关键词:
[Objective] This paper aims to predict online customers’ future purchases based on their previous shopping behaviors.[Methods] We proposed a new product recommendation approach based on multi-head self-attention neural networks. Our method captured the relationship and attributes of items checked out by specific customers.Finally, we generated the recommended lists using recurrent neural networks with attentions.[Results] We examined the proposed approach on three real-world data sets and yielded better F1 values than existing methods (2% higher).[Limitations] The diversity of the recommended lists needs more analysis.[Conclusions] The multi-head self-attention mechanism is an effective way to model shopping behaviors and create better recommendations for the consumers.
Keywords:
本文引用格式
倪维健, 郭浩宇, 刘彤, 曾庆田.
Ni Weijian.
1 引 言
作为一类重要的个性化推荐任务,购物篮推荐任务已得到广泛关注,研究者提出多种购物篮推荐方法。传统购物篮推荐方法主要包括基于统计的方法、基于频繁模式的方法和基于马尔可夫链的方法等。基于统计的方法主要基于用户历史购买数据的统计信息进行推荐,基于频繁模式的方法侧重于考虑同一个购物篮中不同物品之间的共现关系,基于马尔可夫链的方法则侧重于考虑不同购物篮之间的序列关系。近年来,深度学习技术也被应用于购物篮推荐任务,基本方法是使用池化技术构建购物篮向量,使用循环神经网络捕捉购物篮序列信息。
虽然基于深度神经网络的购物篮推荐方法取得了比传统方法更好的性能,但还存在如下问题:
(1)现有方法在构建购物篮向量时使用各种池化技术,以均值池化为例,将所有物品的向量取均值作为购物量向量,然而购物篮中不同的物品权重应该是不同的,比如一个购物篮中的小众物品往往更能反映该用户的偏好,因此现有方法并不能很好地对购物篮中的物品关系进行有效建模;
(2)现有方法大多仅考虑用户的购买信息,侧重于对其中的时序特征进行建模,而没用很好地利用物品的属性信息。
针对以上问题,本文提出一种基于多头自注意力神经网络的购物篮推荐方法。使用自注意力机制为购物篮中的物品自动计算权重,从而得到更优的购物篮向量表示;另外使用多头注意力机制将属性信息融入模型中,实现对购物篮更为全面的建模。
2 研究现状
现有购物篮推荐方法可以被大致归为4类:
(4)基于深度学习的方法是近年来购物篮推荐研究的一个热点方向,基本思想是应用各种深度神经网络模型解决购物篮推荐中的购物篮建模、序列建模等问题。代表性工作有:Wang等提出一种层次化表示模型,对一个购物篮中的所有物品进行聚合得到购物篮向量表示,之后对一个用户最近的N个历史购物篮进行聚合得到用户偏好的向量表示,聚合采用均值池化或最大池化两种方式[13];Yu等对层次化表示模型进行改进,购物篮聚合层使用长短期记忆网络(Long Short-Term Memory, LSTM),从而捕捉购物篮之间的序列信息[14];Bai等使用注意力机制将物品的属性信息加入到购物篮向量中,进一步提升了购物篮推荐的准确性[15]。整体而言,基于深度学习的购物篮推荐刚刚起步,使用的深度神经网络模型还较为简单,在购物篮建模和序列建模等方面还存在很大的改进空间。
3 研究框架与方法
3.1 购物篮推荐任务描述
令U和I分别表示所有用户的集合和所有物品的集合,
基于上述符号表示,购物篮推荐任务的目标是给定用户u的历史购买记录
3.2 多头自注意力机制
多头自注意力机制的模型结构如图1所示。
图1
(1) 缩放点积注意力(Scaled Dot-Product Attention)
多头自注意力的输入包含查询向量或矩阵Q、键矩阵K、值矩阵V。在自然语言处理领域中,Q、K、V通常是由词向量构成的矩阵,比如它们均是同一个句子中各个位置的词向量矩阵,因此此时
其中,Softmax函数本质上根据Q计算K中每个键的权重,
(2) 多头注意力(Multi-Head Attention)
为更全面地计算注意力,通常在计算缩放点积注意力时并不直接输入原始的Q、K、V,而是先对它们进行多次不同的线性映射,之后对映射结果计算缩放点积注意力,其中每次计算结果称之为一个头(Head)。多头注意力模块计算如公式(2)和公式(3)[16]所示:
其中,
(3) 归一化及残差连接(Add & Norm)
得到多头注意力计算结果后,按层次进行归一化,并引入残差连接,以解决深度网络可能导致的退化问题。
(4) 全连接网络(Feed Forward)
归一化及残差连接模块输出后进入一个全连接网络,这个全连接网络包括两层全连接操作和一个ReLU激活函数,计算方法如公式(4)[16]所示。
全连接网络的输出经过归一化及残差连接处理后作为整个模型的最终输出。
图1所示的模型通常也被称之为Transformer神经网络,其可以被形式化表示如公式(5)所示。
4 基于多头自注意力的购物篮推荐模型
基于多头自注意力的购物篮推荐模型总体结构如图2所示,其中主要包括5个模块:融合属性信息的多头自注意力模块(Item & Category Embedding)、购物篮编码模块(Basket Vecter)、序列建模模块(LSTM)、序列注意力模块(Attention)、全连接输出模块(Multi-layer Perceptron,MLP)。
图2
图2
基于多头自注意力的购物篮推荐模型结构
Fig.2
Structure of Basket Recommendation Model Based on Multi-Head Self-Attention
4.1 融合属性信息的多头自注意力模块
物品属性是购物篮推荐任务中的一个重要考虑因素。为了能够对物品属性有效建模,在多头自注意力机制中引入物品的属性信息,基本思想是分别将物品自身和物品属性使用Q、K、V编码,设计基于物品自身的注意力模型和基于物品属性的注意力模型,分别如公式(6)和公式(7)所示。
4.2 购物篮编码模块
(1) 基本结构
一个购物篮是由一个或多个物品构成的。借鉴自然语言处理任务中将一个句子表示为向量的做法,即首先为所有句子设置一个标志位,用标志位与句子中所有的单词计算点积权重,利用计算出的权重对所有单词向量加权求和。在购物篮推荐任务中,为所有购物篮设置一个标志位,使用多头自注意力获得购物篮向量,如公式(8)所示。
其中,Flag表示购物篮的标志位向量,代替传统多头自注意力机制中的Q;K和V表示一个购物篮内的所有物品或属性向量构成的矩阵。由于Flag是一个向量,公式(8)最后的输出也是一个向量,这个向量就是购物篮向量。
(2) 属性感知的购物篮向量
在上述基本结构的基础上,为融入物品属性信息,为每一个购物篮设置两个标志位,其中Flagitem为购物篮物品标志位向量,Flagcatg为购物篮属性标志位向量。基于4.2节中融合属性信息的多头自注意力模块,可以计算两类购物篮向量,如公式(9)和公式(10)所示。
公式(9)是由购物篮内物品自身信息得到的购物篮向量,而公式(10)是由购物篮内物品的属性信息得到的购物篮向量,可以认为,两者从不同角度反映了购物篮的信息,具有一定的互补性。因此,通过这种方法将属性信息加入到网络中。
对于计算出的两种购物篮向量,采用拼接的方式将两者进行融合作为最终的购物篮向量表示,如公式(11)所示。
4.3 序列建模模块
对于用户u的历史购物篮信息
4.4 序列注意力模块
经过LSTM可以得到用户购物篮序列中每个时刻的编码
其中,
在购物篮推荐任务中,用户在最近时刻T的购买信息往往对于推荐结果具有最大的影响,因此每个时刻的权重依据该时刻编码向量与最近时刻编码向量的关系进行计算,如公式(15)所示。
4.5 全连接输出模块
序列注意力模块的输出可以被认为是一个用户历史购物记录的编码向量,将其输入至一个全连接网络中,该网络的输出大小等于所有物品的数量
其中,
为尽可能提高网络学习效果,使用带权交叉熵作为损失函数,如公式(17)所示。
其中,
5 实验结果及分析
5.1 数据集
本文使用如下三个真实数据集开展实验研究:
(1)Ta-Feng数据集①(①
(2)JingDong数据集②(②
(3)TaoBao数据集③(③
对上述数据集进行预处理,移除购物篮个数少于10的用户或被购买次数少于4的物品。在进行实验时,选择前n个购物篮作为训练数据,最后一个购物篮作为测试数据。
经过数据预处理后三个数据集的基本信息如表1所示,包括每个数据集的用户数量、物品数量、物品属性数量和购物篮数量。
表1 数据集基本信息(单位:个)
Table 1
数据集 | 用户数量 | 物品数量 | 购物篮数量 | 物品属性数量 |
---|---|---|---|---|
Ta-Feng | 2 348 | 14 716 | 39 101 | 2 013 |
JingDong | 16 891 | 17 718 | 250 996 | 10 |
TaoBao | 1 235 | 11 623 | 16 937 | 1 619 |
5.2 评价指标
本文设计的购物篮推荐模型可以为每个物品计算一个得分,对所有物品得分进行排序,选择前5个物品作为推荐结果,记作
(1) 精确率(Precision)
(2) 召回率(Recall)
(3) F1值(F1-score)
(4) 命中率(Hit-Rate)
(5) NDCG值(Normalized Discounted Cumulative Gain)
其中,
5.3 对比实验
为验证本文方法的优越性,采用如下经典的购物篮推荐方法作为基线方法:
(1)TOP:基于物品流行度(被购买的次数)的推荐方法。
(2)Item-CF[5]:基于物品的协同过滤推荐方法。
(3)NFM[20]:基于非负矩阵分解的推荐方法,其被证实为传统方法中效果最好的方法之一。
(4)DREAM[14]:基于循环神经网络的推荐方法。
(5)NAM[15]:基于注意力机制和循环神经网络的推荐方法。
(6)ANAM[15]:在NAM方法基础上进一步引入物品属性信息,其被证实为当前效果最好的购物篮推荐方法。
各个基线方法的具体实现方案为:三个传统方法TOP、Item-CF、NFM均基于Scikit-Learn 0.21机器学习库①(①
表2 Ta-Feng数据集结果
Table 2
Model | Precision | Recall | F1 | Hit-Rate | NDCG@5 |
---|---|---|---|---|---|
TOP | 0.0497 | 0.0698 | 0.0580 | 0.2172 | 0.0833 |
Item-CF | 0.0272 | 0.0400 | 0.0324 | 0.1244 | 0.0431 |
NFM | 0.0518 | 0.0728 | 0.0605 | 0.2432 | 0.0831 |
DREAM | 0.0533 | 0.0781 | 0.0633 | 0.2322 | 0.0851 |
NAM | 0.0599 | 0.0941 | 0.0732 | 0.2627 | 0.0925 |
ANAM | 0.0600 | 0.0942 | 0.0733 | 0.2632 | 0.0925 |
本文方法 | 0.0624 | 0.0968 | 0.0759 | 0.2732 | 0.0940 |
表3 JingDong数据集结果
Table 3
Model | Precision | Recall | F1 | Hit-Rate | NDCG@5 |
---|---|---|---|---|---|
TOP | 0.0140 | 0.0392 | 0.0206 | 0.0679 | 0.0270 |
Item-CF | 0.0123 | 0.0341 | 0.0181 | 0.0584 | 0.0251 |
NFM | 0.0337 | 0.0822 | 0.0478 | 0.1409 | 0.0633 |
DREAM | 0.0213 | 0.0592 | 0.0314 | 0.0988 | 0.0413 |
NAM | 0.0257 | 0.0678 | 0.0372 | 0.1150 | 0.0485 |
ANAM | 0.0568 | 0.1530 | 0.0828 | 0.2294 | 0.1226 |
本文方法 | 0.0678 | 0.1859 | 0.0994 | 0.2620 | 0.1485 |
表4 TaoBao数据集结果
Table 4
Model | Precision | Recall | F1 | Hit-Rate | NDCG@5 |
---|---|---|---|---|---|
TOP | 0.0011 | 0.0024 | 0.0015 | 0.0048 | 0.0025 |
Item-CF | 0.0012 | 0.0034 | 0.0018 | 0.0056 | 0.0022 |
NFM | 0.0074 | 0.0185 | 0.0106 | 0.0307 | 0.0136 |
DREAM | 0.0020 | 0.0044 | 0.0028 | 0.0088 | 0.0038 |
NAM | 0.0019 | 0.0042 | 0.0026 | 0.0080 | 0.0037 |
ANAM | 0.0019 | 0.0046 | 0.0027 | 0.0088 | 0.0038 |
本文方法 | 0.0158 | 0.0477 | 0.0237 | 0.0704 | 0.0410 |
(1)在TOP、Item-CF、NFM三个传统方法中,TOP和Item-CF的效果较差,其主要原因是它们仅考虑用户历史购物记录的基本统计信息,而NFM取得了接近深度学习方法的效果,这说明传统的矩阵分解方法在购物篮推荐任务中依然具有一定应用价值。
(2)DREAM、NAM、ANAM三个基于深度学习的方法在大多数情况下均取得了比传统方法更优的效果,这说明深度学习已成为购物篮推荐任务中的主流方法。整体而言,这三个方法的效果呈现不断上升趋势,这是由于DREAM仅使用LSTM捕捉购物篮的序列信息,NAM进一步引入注意力机制,ANAM则进一步将属性信息融入网络模型中,随着网络结果的不断复杂,学习效果不断提升。
(3)本文方法在三个数据集中都获得最优效果,验证了本文模型能够更好地对购物篮信息进行建模。特别地,本文方法在TaoBao数据集上提升的效果最为明显。根据表1可以发现,TaoBao数据集是三个数据集中规模最小的,这一定程度上说明本文方法更适用于小数据集。
5.4 网络模块效果分析
为评估网络中某一部分结构对于最终推荐结果的影响,在实验中移除图2所示网络模型中的某些模块,评估剩余部分的推荐效果。具体而言,设计了如下由部分网络结构构成的推荐模型:
(1)-category-attention:对购物篮建模时不使用属性信息,且移除序列建模中的注意力模块;
(2)-category-transformer:对购物篮建模时不使用属性信息,使用平均池化技术代替购物篮建模中的多头自注意力模块;
(3)-multihead:仅使用单头自注意力模块对购物篮进行建模;
(4)-attention:仅移除序列建模中的注意力模块;
(5)-transformer:使用平均池化技术代替购物篮建模中的多头自注意力模块。
表5 Ta-Feng数据集网络部分性能结果
Table 5
Model | Precision | Recall | F1 | Hit-Rate | NDCG@5 |
---|---|---|---|---|---|
-category-attention | 0.0589 | 0.0935 | 0.0723 | 0.2629 | 0.0930 |
-category-transformer | 0.0533 | 0.0746 | 0.0621 | 0.2317 | 0.0686 |
-multihead | 0.0617 | 0.0961 | 0.0752 | 0.2687 | 0.0934 |
-attention | 0.0601 | 0.0943 | 0.0734 | 0.2634 | 0.0787 |
-transformer | 0.0556 | 0.0899 | 0.0687 | 0.2512 | 0.0836 |
完整网络 | 0.0624 | 0.0968 | 0.0759 | 0.2732 | 0.0940 |
表6 JingDong数据集网络部分性能结果
Table 6
Model | Precision | Recall | F1 | Hit-Rate | NDCG@5 |
---|---|---|---|---|---|
-category-attention | 0.0428 | 0.1157 | 0.0625 | 0.1835 | 0.0919 |
-category-transformer | 0.0559 | 0.1506 | 0.0816 | 0.2225 | 0.1232 |
-multihead | 0.0665 | 0.1781 | 0.0969 | 0.2577 | 0.1480 |
-attention | 0.0428 | 0.1223 | 0.0634 | 0.1820 | 0.0930 |
-transformer | 0.0568 | 0.1539 | 0.0829 | 0.2304 | 0.1256 |
完整网络 | 0.0678 | 0.1859 | 0.0994 | 0.2620 | 0.1485 |
表7 TaoBao数据集网络部分性能结果
Table 7
Model | Precision | Recall | F1 | Hit-Rate | NDCG@5 |
---|---|---|---|---|---|
-category-attention | 0.0080 | 0.0221 | 0.0118 | 0.0363 | 0.0178 |
-category-transformer | 0.0046 | 0.0142 | 0.0070 | 0.0209 | 0.0101 |
-multihead | 0.0171 | 0.0543 | 0.0260 | 0.0738 | 0.0450 |
-attention | 0.0047 | 0.0143 | 0.0071 | 0.0272 | 0.0138 |
-transformer | 0.0055 | 0.0145 | 0.0080 | 0.0252 | 0.0176 |
完整网络 | 0.0158 | 0.0477 | 0.0237 | 0.0704 | 0.0410 |
(1)对比-category-attention与-attention、-category-transformer与-transformer,去除物品类别信息后在大多数情况下推荐效果均有所下降,这说明物品属性对于提升购物篮推荐效果十分重要;
(2)对比-category-attention与-category-transformer、-attention与-transformer,去除序列注意力与去除多头自注意力均会导致推荐效果下降,其中在Ta-Feng和TaoBao数据集上去除多头自注意力导致的效果下降更显著,在JingDong数据集上去除序列注意力导致的效果下降更显著,这说明不同模块在不同数据集上的重要性也存在区别;
(3)完整网络模型在Ta-Feng和JingDong数据集上取得了最优效能,但在TaoBao数据集上略低于去除多头机制的模型,其主要原因是TaoBao数据集规模较小,而多头机制会导致更多的参数,在小数据集上可能存在参数学习不充分的现象。
5.5 购物篮建模可视化分析
本文使用多头自注意力机制对购物篮进行建模,相比于现有工作中采用的平均池化等方式,其优势在于能够自动学习购物篮中每个物品的权重。在本实验中对物品权重进行可视化展示,以更为直观地理解多头自注意力机制的作用。具体而言,以Ta-Feng数据集为例,对公式(9)和公式(10)得到的基于物品自身的物品权重和基于物品属性的物品权重使用热度图进行可视化展示,分别如图3和图4所示。图中的横轴为各个购物篮,纵轴为各个物品,颜色深浅表示权重大小。对比图3和图4可以发现,同一购物篮内不同物品的权重通常是不同的,且不同方式得到的物品权重具有很大差异,这印证了购物篮内的物品不应被同等对待。此外,本文使用的多头自注意力机制能够有效对购物篮的物品信息和属性信息进行建模。
图3
图3
基于物品的自注意力权重可视化
Fig. 3
Visualization of Weights of Item-based Self-Attention
图4
图4
基于属性的自注意力权重可视化
Fig. 4
Visualization of Weights of Attribute-based Self-Attention
6 结 语
本文基于多头自注意力神经网络提出一种新的购物篮推荐模型。该方法在构建购物篮向量时使用多头自注意力机制为不同的物品计算不同的权值,且解决了物品属性信息融合的问题,此外使用具有注意力的LSTM网络捕捉用户购物篮的序列信息。在三个真实数据集上开展实验研究,结果表明本文方法的推荐效果优于传统推荐方法和现有的基于深度学习的推荐方法,网络模块效果分析和购物篮建模可视化分析也证实了本文模型中各模块的有效性。
在个性化推荐领域,购物篮推荐是一个较新的研究话题,推荐效果仍有很大的提升空间。本文提出的基于多头自注意力的购物篮推荐方法虽然在准确性上得到较大提升,但是依然存在可解释性差等不足,如何提升基于深度学习的购物篮推荐方法的可解释性是未来的一个重要研究方向。
作者贡献声明
倪维健:提出研究思路,设计研究方案;
郭浩宇:采集、清洗和分析数据,进行实验;
刘彤:论文起草及修改;
曾庆田,倪维健:论文最终版本修订。
利益冲突声明
所有作者声明不存在利益冲突关系。
支撑数据
支撑数据由作者自存储,E-mail: liu_tongtong@foxmail.com。
[1] 刘彤. Ta-Feng.txt. Ta-Feng购物篮数据集.
[2] 刘彤. JingDong.txt. JingDong购物篮数据集.
[3] 刘彤. TaoBao.txt. TaoBao购物篮数据集.
参考文献
Session-based Recommendations with Recurrent Neural Networks
[OL]. , arXiv: 1511.06939.
Parallel Recurrent Neural Network Architectures for Feature-rich Session-based Recommendations
[C]//,
Personalizing Session-based Recommendations with Hierarchical Recurrent Neural Networks
[C]//,
When Recurrent Neural Networks Meet the Neighborhood for Session-based Recommendation
[C]//,
openPDS: Protecting the Privacy of Metadata Through Safe Answers
[J]. ,
My Data Store: Toward User Awareness and Control on Personal Data
[C]//,
Mining Skewed and Sparse Transaction Data for Personalized Shopping Recommendation
[J]. ,
Towards Personalized Recommendation by Two-step Modified Apriori Data Mining Algorithm
[J]. ,
Next Basket Prediction Using Recurring Sequential Patterns
[OL]. , arXiv: 1702.07158.
Sequential Pattern Mining: Survey and Current Research Challenges
[J]. ,
Factorizing Personalized Markov Chains for Next-Basket Recommendation
[C]//,
A Personalized Interest-forgetting Markov Model for Recommendations
[C]//
Learning Hierarchical Representation Model for Next Basket Recommendation
[C]//,
A Dynamic Recurrent Model for Next Basket Recommendation
[C]//,
An Attribute-aware Neural Attentive Model for Next Basket Recommendation
[C]//,
QANet: Combining Local Convolution with Global Self-Attention for Reading Comprehension
[OL]. , arXiv: 1804.09541.
DiSAN: Directional Self-Attention Network for RNN/CNN-Free Language Understanding
[C]//
Algorithms for Non-negative Matrix Factorization
[C]//
/
〈 | 〉 |