柴瑞敏,殷 臣
辽宁工程技术大学 电子与信息工程学院,辽宁 葫芦岛 125105
随着移动设备和GPS的普遍应用,下一个兴趣点推荐(next POI recommendation)正成为基于位置的社交网络(location-based social network,LBSN)的一个重要任务,它不仅可以帮助用户探索喜欢的地方,也有利于企业获得更多的潜在客户。然而,由于用户的签到数据非常稀疏,进行准确的下一个兴趣点推荐极具挑战性。研究表明[1-3],由于人类的日常生活中表现出强烈的时序模式,POI签到序列信息对下一个兴趣点推荐起着至关重要的作用。
在很多研究中,通常将下一个兴趣点推荐视为序列推荐问题。文献[4]提出了FPMC模型,通过将矩阵因子分解和马尔科夫链相结合进行下一个购物车推荐,文献[2]对FPMC模型进行扩展,增加了个性化马尔科夫链和用户的移动距离限制进行下一个兴趣点推荐。最近,RNN已经成功运用于序列数据建模,成为目前主流的下一个兴趣点模型。文献[1]提出了一个LSTM变体,通过增加时间门和距离门对时间间隔和空间间隔信息建模进行下一个兴趣点推荐。文献[5-8]也说明了一些上下文信息(如时空信息、类别信息等)能够提升兴趣点推荐效果。
然而,在下一个兴趣点推荐中,用户关系还没有被深入考虑,而实际上用户关系能在一定程度上影响模型推荐效果[9-10]。本文将用户关系分为两类,分别是朋友关系和偏好相似关系。朋友关系是指在社交软件中互为对方好友,如果两个人具有朋友关系,则他们可能会具有相近的兴趣偏好,比如在未来更可能一起去旅游或者聚餐。一些研究表明[11],通过加入朋友关系,模型的推荐效果得到提高。对于偏好相似关系,可用两个用户共同访问过的兴趣点个数衡量,两个用户共同访问过的兴趣点越多说明他们偏好越相近。为了学习用户关系向量的表示,本文首次提出整合两种用户关系的模型User2Vec,该方法首先根据两种用户关系建立用户关系图,然后利用DeepWalk[12]方法学习用户关系向量表示。
为了能够同时对用户签到POI序列信息、用户关系、签到POI的上下文信息进行建模,提出了一个整合用户关系和其他上下文信息的GRU模型(GRU-R)。本文提出的GRU-R模型考虑的上下文信息包括时间上下文、空间上下文和兴趣点类别信息,其中时间上下文包括兴趣点的签到时间和两个相邻签到兴趣点之间的时间间隔,空间上下文包括两个相邻签到兴趣点之间的距离间隔。
本文贡献如下:
(1)本文提出一种新的用户关系学习模型(User2Vec),该模型同时考虑朋友关系和偏好相似关系,并通过训练得到用户关系的低维向量表示。
(2)本文提出GRU-R神经网络模型用于下一个兴趣点推荐,该模型能够同时考虑用户的历史签到序列信息、用户关系、时空信息和兴趣点类别等信息用于下一个兴趣点推荐。
(3)本文在两个公开真实的数据集上进行实验,实验结果表明,本文提出的模型比现有主流的方法具有更高的下一个兴趣点推荐准确性。
现有的下一个兴趣点推荐方法主要可分为基于矩阵因子分解的方法、基于马尔科夫链的方法、基于嵌入的方法和基于神经网络的方法。
基于矩阵因子分解的方法是目前最常用的协同过滤方法。矩阵因子分解的基本目标是将用户位置偏好矩阵分解为两个低秩矩阵,每个低秩矩阵表示用户或位置的潜在因子。文献[11]提出了一种基于朋友关系的协同过滤的方法,根据朋友共同访问过的兴趣点做兴趣点推荐。文献[13]提出了一种多中心高斯模型来捕获用户的地理影响,并结合矩阵分解模型进行兴趣点推荐。然而,基于矩阵因子分解的模型很难产生新用户或新位置的表示,存在严重的冷启动问题,也无法有效对序列数据进行建模。
近年来,基于马尔科夫和嵌入学习的推荐模型也被广泛应用于兴趣点推荐中。基于马尔科夫链(Markov chain,MC)的模型旨在基于用户过去的连续签到行为来预测用户的下一个行为。文献[2]提出FPMC-LR模型,是对基于马尔科夫链方法的扩展,基本思想是通过考虑连续签到兴趣点序列关系和地理距离限制进行下一个兴趣点推荐。文献[14]利用个性化度量嵌入的方法对用户签到序列建模,从而进行个性化兴趣点推荐。文献[15]提出了一种嵌入学习方法(GE),该方法利用二部图对POI推荐上下文中的一对上下文进行建模,并通过对四对嵌入模型进行统一优化进行兴趣点推荐。
近年来,基于神经网络的推荐方法被广泛的应用于多个领域[16-18],如视频推荐、广告推荐和书籍推荐等,显著提升了推荐效果。在神经网络结构中,由于基于循环神经网络(RNN)的方法能够有效地捕捉序列数据的影响,并且能够在用户签到数据中自动挖掘上下文信息之间的交互影响,因此在兴趣点推荐中得到了广泛应用,并成为当前主流的推荐模型。然而,RNN存在梯度爆炸和梯度消失的问题[19],使其不能学习到较长序列内远距离的依赖关系。为了解决这个问题,长短时记忆(LSTM)[19]和门控循环单元(GRU)[20]两种RNN变体提出来解决该问题,使得循环神经网络能够学习到长距离的序列依赖问题。文献[3]提出的ST-RNN模型整合了时空信息,通过在RNN的隐藏层之间应用特定时间和特定距离的转换矩阵描述动态的时间间隔和距离间隔。文献[1]提出了改进的LSTM模型,该模型在LSTM模型中加入时间门和距离门,通过对相邻签到之间的时间间隔和距离间隔进行建模来提取用户长期和短期兴趣偏好进行下一个POI推荐。文献[7]提出NEXT模型,利用简单的前馈神经网络以一种统一的嵌入方式处理多种上下文信息进行下一个POI推荐。
然而,以上的模型都存在不足。传统的基于矩阵分解的方法无法对用户签到序列信息进行有效建模。基于马尔科夫链和基于嵌入模型的方法也很难同时考虑多种上下文信息以及多种上下文信息之间的交互作用。现有的基于循环神经网络的方法通常对时空信息建模,缺乏对多种上下文信息的考虑。文献[7]提出的NEXT模型与本文工作相似,由于它使用简单的前向神经网络进行下一个POI推荐,因此无法对签到POI序列关系有效建模,同时NEXT也没有深入考虑用户关系。与以上方法不同,本文提出的GRU-R能够同时对用户关系、签到序列信息、多种上下文信息以及上下文信息之间的交互影响进行建模。
本文使用的符号定义如下。假设U={u1,u2,…,u M}是M个用户的集合,P={p1,p2,…,p N}是N个兴趣点的集合。
定义1(POI)POI定义为具有唯一标识的特定地点,包含两个属性:标识符和地理经纬度坐标。
定义2(历史签到序列)某一个用户u在t i时刻前的历史签到序列可以表示为,其中表示用户u在t i-1时刻访问了兴趣点p。
定义3(下一个POI推荐)给定用户在t i时刻之前的历史签到序列,下一个兴趣点推荐的目标是在t i时刻给用户u推荐一组用户将要访问的兴趣点列表。用户历史签到序列和下一个兴趣点推荐如图1所示。推荐列表中的兴趣点的排名越靠前,说明用户在下一时刻t i将会更可能访问该兴趣点。根据预测分数,模型给出用户top-k个推荐兴趣点列表。文中用到的变量符号如表1所示。
图1 用户历史签到序列与下一个兴趣点推荐Fig.1 User history check-in sequence and next POI recommendation
表1 符号表Table 1 Symbols table
GRU-R模型包括三个主要模块:用户关系学习模块、GRU模型的数据输入模块、基于GRU模型的预测模块。本节将详细阐述模型部分的具体细节,模型的整体框架如图2所示。
本文将用户关系分为朋友关系和偏好相似关系。偏好相似关系由用户共同访问的兴趣点数量衡量;朋友关系由用户在社交软件中的好友信息得到。为了能够同时考虑用户的相似偏好关系和朋友关系,提出了一种用户关系学习模型(User2Vec)。该模型的学习过程分为两步:第一步构建用户关系图;第二步学习用户关系的向量表示。
3.1.1 构建用户关系图
为了表示偏好相似关系,首先需要根据用户的访问历史兴趣点建立用户-兴趣点访问表(如表2所示),表中数值1表示用户访问过该地点,0表示用户没有访问过该地点。同样地,为了表示用户的朋友关系,根据社交软件中的朋友关系建立朋友关系表(如表3所示)。然后根据表2和表3信息建立用户关系图(如图3所示)来综合两种不同关系。图中边的权重综合了两类用户关系的紧密度,如果两个用户访问过同一地点或者两个用户是朋友就将图中相应两个节点连接边的权重加1。
表2 用户-兴趣点访问表Table 2 User-POI access table
表3 朋友关系表Table 3 Friendship table
图3 用户关系图Fig.3 User relationship graph
3.1.2 用户关系向量学习
本文使用DeepWalk图嵌入的方法来学习用户关系向量的表示。DeepWalk模型学习用户关系图中用户(节点)向量表示需要两步。首先通过在图中每个节点上执行随机游走方法获得训练的输入序列,之后根据输入序列信息使用Skip-Gram模型训练用户(节点)关系向量的表示。
用户关系图中边权重代表从一个用户节点到另一个用户节点的转移概率,从一个用户u i到另一个用户u j随机游走的概率可定义为:
其中f(u i,u j)表示从u i到u j边的权重,u m表示与u i有边相连的节点。比如在图3中,和u2(ID为2)相连接的边的权重总和为4,u2和u4相连边的权重为2,可得到u2到u4的转移概率为2/4(注意,从u4到u2的转移概率是2/5)。在采样过程中,从图中的一个节点出发开始重复进行50次随机游走,每次游走的步长设置为20,对图中所有的节点都执行同样的操作。执行上述步骤之后,就可以获得用于模型训练的序列输入数据。
本文使用基于Hierarchical Softmax的Skip-Gram语言模型学习用户关系嵌入向量表示,用户关系向量学习过程类似于自然语言处理中词向量的训练过程。用户关系向量训练过程是在采样序列中最大化预测其邻近用户的概率。基于Hierarchical Softmax的Skip-Gram语言模型的每个输入样本形式为(v,context(v)),其中v表示序列中的一个用户,context(v)是序列中与v邻近的用户,v的嵌入向量表示为x v,l v表示为根节点到叶节点v路径中包含的节点个数,∈{1,0}表示路径中第j个节点对应v的哈夫曼树编码。在此基础上,用v预测context(v)的可能性表示为:
其中p(w|v)可表示为:
之后,用对数似然形式得到语料库中所有用户的联合概率为:
其中V是数据集中所有用户的集合,σ(·)是sigmoid函数,是对应于的参数。为了得到v的最优向量表示,需要将上述目标L最大化。因此,需要用函数L对和x v分别求偏导:
用户关系嵌入向量x v的更新方式可以写成:
其中,η为模型训练时的学习率,根据文献[21],将η设置为0.025。在用Skip-Gram模型的训练过程中,滑动窗口大小设置为5,用户关系向量的长度设置为64维。
如图2所示,GRU的输入由历史序列签到数据表示,序列中给定用户某一时刻t的输入包括7类信息S t=<u,p,c,ct,Δt,Δd,r>。
u、p和c分别表示64维的用户向量、128维的兴趣点向量和16维的类别向量,在程序开始训练阶段,u、p和c向量被随机初始化,在模型的训练过程中会被更新,最终模型会学习到u、p和c的向量表示。由于一个地点的类别标签可能有多个,比如兴趣点的类别标签为{‘Shop’,‘Food’,‘Gym’,‘Office’},为了获得兴趣点的语义表示,最终POI的类别表示(c)是每种兴趣点类别标签向量的平均值。
时间间隔(Δt)由两个相邻签到兴趣点的时间差表示(单位为天),距离间隔(Δd)由两个相邻签到兴趣点的距离差表示(单位为km),距离间隔计算是由Harversine公式得到,Δt和Δd都用原始的连续数值表示。签到时间ct被分为签到时刻(hour)和签到周(week),如2010-07-24T13:44:46Z表示用户在星期六的13点进行了签到,分别用7位和24位one-hot向量表示,对应一周的7天和一天中24小时。
用户关系向量(r)为64维的向量,是基于DeepWalk的方法对用户关系进行预训练得到的结果,在模型训练的过程中无法更新。以上所有向量的拼接结果将作为GRU在i时刻的输入向量。
GRU是LSTM网络的一种变体,可以解决RNN网络中的长依赖问题,它较LSTM网络的结构更加简单。LSTM利用三个门控单元和一个存储单元控制信息流动。LSTM也被广泛应用于涉及序列建模的不同任务中[22-23]。GRU是LSTM的最新变种,包括重置门(rt)和更新门(zt)两种类型的门控单元,它们共同控制信息在神经网络中的流动状态,因此GRU在进行数据训练时需要更少的时间花费,GRU的状态更新公式如下:
其中[]表示向量拼接操作,*表示矩阵的哈达玛积,x t表示t时刻的输入数据,h t-1表示上一时刻的隐层状态,σ表示sigmoid激活函数,W r,W z和W h͂表示权重参数,h t表示t时刻的输出向量。
本文将GRU模型的最后时刻的输出向量h t作为用户访问下一个兴趣点的偏好向量。之后h t被送入分类层(一层全连接层)得到用户访问每一个兴趣点的偏好分数,全连接神经网络的计算过程如下:
式中向量y表示用户访问每一个兴趣点的偏好分数,向量y的长度为兴趣点总数。W和b分别表示全连接神经网络的参数矩阵和偏置值,使用Relu作为激活函数。
最终,通过Softmax函数将y映射到[0-1]区间的概率值,根据概率给用户推荐其感兴趣的top-k个将要访问的下一个兴趣点列表。Softmax函数的计算方法如下:
式中ŷi表示用户访问下一个兴趣点ID为i的概率值,N表示兴趣点的总数。
这一部分主要介绍本文使用的数据集、对比算法、模型的参数设置以及实验结果。
数据稀疏性处理不同于一般的商品(如电影、图书、音乐等)数据集,兴趣点由经纬度表示,并且受到地理位置的影响,用户只偏好于访问一些距离家和公司附近的一些地方,因此相比于一般的商品数据集更为稀疏。针对于数据稀疏问题,有很多模型使用不同的上下文来解决数据稀疏性问题。比如一些研究利用类别、时间和文本信息等多上下文来解决数据稀疏性问题[7,18]。本文通过同时考虑用户的序列信息、用户关系、两类时间信息(签到时间和时间间隔)以及类别信息进行下一个兴趣点推荐。为了能够有效地评价模型的效果,首先需要对数据集做预处理,预处理的方法是赛选掉在大数据集中不活跃的用户和兴趣点,这样的目的是为了能够从稀疏的大数据集中得到较为稠密的子集。
数据集本文使用两个公开真实的数据集,包括CA数据集和Gowalla数据集。CA数据集[24]包括生活在美国加利福尼亚州的4 163名使用者在Foursquare应用上的签到记录,包括483 813个签到信息、12 1142个不同的兴趣点。Gowalla数据集包括2009年2月至2010年10月期间的196 591个用户的6 442 890条签到记录,本文提取在加利福尼亚州和内华达州两个地点的签到数据用于实验,因为这两个相邻的地区没有显著的文化差异,由于Gowalla不含有类别标签,因此在Gowalla数据集实验中没有用到类别信息。沿着常用的数据集的处理方式[2,7],本文移除了不活跃的用户和兴趣点,保留每个兴趣点至少被10个不同用户访问过,并且保证每个用户至少有10次签到记录。表4给出了处理后的数据集信息。使用用户历史签到记录的前70%作为训练集,后20%作为测试集,其余的10%作为验证集数据用于模型调参。
表4 实验数据集统计信息(数据处理后)Table 4 Statistics of experimental datasets(after data processing)
对比算法本文提出的模型主要与以下几个主流算法进行比较,其中BPR、FPMC-LR和PRME-G模型的嵌入向量维度都为20,GRU、NEXT和GRU-R隐藏层神经元个数都设置为128,选择模型迭代100次的最优结果作为实验评价结果。本文没有对比较模型的其他参数进行调优,都使用原模型默认的参数设置。
BPR[25]利用矩阵分解算法和BPR损失对“用户-兴趣点”的隐式反馈矩阵进行优化。BPR认为用户对交互过的兴趣点偏好大于未交互的兴趣点。
FPMC-LR[2]该模型结合了个性化马尔科夫链和用户在局部区域的移动约束。它将所有用户的兴趣点转移矩阵分解,并通过计算转移概率来预测下一个位置。
PRME-G[14]该模型利用个性化度量嵌入的方法对兴趣点的签到序列信息建模,同时使用权重的方法整合地理位置信息进行下一个兴趣点推荐。
GRU[20]最新的RNN模型的变体,是LSTM的简化版本,通过两个门控单元控制信息的流动。
NEXT[7]利用简单的前向神经网络进行推荐的模型,通过以一种统一的方式整合签到序列、过渡信息和朋友关系等多种上下文信息进行下一个兴趣点推荐。
GRU-R本文提出的方法,综合考虑用户关系、签到序列、时空信息和地点类别信息等进行下一个兴趣点推荐。
评价指标本文采用的评价指标是Accuracy@N(ACC@N),它通常用于评估推荐任务的准确性。在ACC@N中,如果用户下一个访问的兴趣点出现在top-k的推荐列表中,就认为预测正确,结果为1,否则结果为0,整个ACC@N是所有测试实例的平均值,这里选择k={1,5,10}进行实验比较。平均倒数排名(mean reciprocal rank,MRR)是衡量推荐列表中兴趣点排名的标准,它根据真实值在下一个兴趣点的索引位置计算得到,如果用户访问下一个兴趣点在在推荐列表的位置越靠前,MRR的得分就会越高。
模型参数设置本文使用tensorflow框架实现提出的GRU-R模型。GRU隐藏层的神经元的个数设为128个,学习率设为0.001。为了防止模型出现过拟合和梯度爆炸,模型应用了dropout技术和梯度裁剪的方法,其中dropout设置为0.1,反向误差传播的梯度被限制在[-1,1]之间。实验结果如表5和表6所示。
表5 Gowalla数据集的下一个兴趣点推荐结果准确性比较Table 5 Accuracy comparison of next POI recommendation results on Gowalla dataset %
表6 CA数据集的下一个兴趣点推荐结果准确性比较Table 6 Accuracy comparison of next POI recommendation results on CA dataset %
从实验结果可以得出如下结论:
(1)BPR在两个数据集上ACC@1和MRR指标上的都表现出最差的结果。BPR是基于协同过滤矩阵分解的算法,只考虑用户的偏好信息,认为用户访问过得兴趣点大于未访问过得兴趣点,该算法常用于商品推荐或者一般的兴趣点推荐算法中,但是BPR并不适合用于下一个兴趣点推荐,因为它只是单纯考虑用户偏好信息,并没有考虑用户的序列关系和距离信息。从两个数据集上的实验结果可以发现,其他基于序列推荐的方法(FPMC-LR、PRME-G、GRU和NEXT)在ACC@1和MRR指标上都显著优于BPR算法,说明在下一个兴趣点推荐中序列信息要比用户偏好更加重要。通过在CA数据集上的实验也可以发现,尽管BPR算法在ACC@10指标上优于FPMC-LR和PRME-G模型,但是BPR算法在MRR评价指标上效果较差。BPR在ACC@10较好的原因是它可以提供用户更多用户感兴趣的地点,这是由于用户具有频繁的访问诸如家和公司附近的一些场所的偏好导致的。但是这不适用于用户下一个兴趣点推荐模型中,在下一个兴趣点推荐中用户会受到当前位置的约束,给用户推荐更多的满足用户偏好的兴趣点并不一定是符合用户下一个访问兴趣点的真实目的,这也解释了BRP模型具有较低的MRR值的原因。
(2)下面比较FPMC-LR、PRME-G和NEXT模型,这些模型都对用户的序列信息和距离信息进行建模。FPMC-LR使用一阶马尔科夫链的方法对序列信息建模,同时根据用户移动距离的限制进行推荐。PRME-G使用度量嵌入的方法对用户序列签到行为建模根据位置距离控制权重系数进行推荐。PRME-G在两个指标上相比于FPMC-LR均具有轻微的提升,这也表明表示基于嵌入模型的方法要优于基于一阶马尔科夫链的方法。可以发现NEXT模型显著优于FPMC-LR和PRME-G模型,NEXT是基于神经网络的方法,该模型同时整合用户偏好、序列信息、时空信息和朋友关系等进行推荐,说明用户访问下一个兴趣点偏好通常由多个因素影响,整合多个上下文信息有利于更为清晰地表明用户访问下一个兴趣点的潜在意图,能够提升下一个兴趣点的推荐效果。
(3)GRU模型优于FPMC-LR和PRME-G模型。GRU模型是最新的基于循环神经网络的变体,能够捕获长序列的依赖问题。尽管GRU模型并没有整合地理位置信息,但是GRU模型依然表现出较好的推荐效果,可能的原因是FPMC-LR和PRME-G这两个模型没有对序列信息进行充分建模,因为这两个模型都只用到了用户最后一次签到来推荐用户下一个访问的兴趣点,这导致用户之前的签到序列信息被忽略。同时也说明了GRU模型使用非线性变换对于序列建模的有效性,能够挖掘用户历史签到兴趣点的潜在偏好信息进行有效的序列推荐。
(4)本文提出的整合用户序列信息、用户关系信息、时空信息和类别信息的模型优于表现最好的NEXT模型。尽管NEXT也通过整合序列信息、时空信息和其他上下文信息进行推荐,但是它有几个方面的不足,NEXT只用到了用户上一个兴趣点的签到信息进行推荐,同时它只使用了一层简单的神经网络整合这些上下文,因此NEXT不能有效对序列信息进行建模。而本文提出的GRU-R模型使用最新的GRU模型,能够有效对序列信息建模,深入考虑用户关系、时空信息和类别信息等进行下一个推荐点推荐。
本节实验目的是讨论模型参数和不同上下文信息对于推荐准确性的影响。
模型参数影响:对隐层神经元个数和dropout进行调参,讨论模型参数对于推荐准确性的影响。
从表7的实验结果可以看出,当隐层神经元个数为128时两个数据集在ACC@10和MRR指标上都达到较高的准确率。当模型隐层神经元个数很少时,模型的效果会变得很差,这是由于隐层神经元个数的限制,导致模型无法对用户签到序列进行有效建模,限制了模型能力的表达。另外,隐层神经元个数太多时,程序的效率也会有所下降,这是因为随着隐层神经元个数的增加会导致训练参数极剧增加,增加了模型的训练难度,也会使模型更容易出现过拟合现象。
表7 隐层神经元个数对数据集的影响Table 7 Influence of number of hidden neurons on datasets %
确定隐层神经元个数后,本文分别尝试dropout值为0.1、0.2、0.3和0.4。经过实验发现当dropout为0.1和0.2时模型表现较好,当dropout为0.1时模型表现出最优的效果,因此选择dropout为0.1。
上下文信息影响:下面本实验主要讨论每种上下文信息对于模型推荐效果提升作用影响,这里只选用了ACC@10指标用于测试。使用标准的GRU模型作为基线。GRU+表示只整合单一的上下文信息,GRU-R是本文提出的综合用户关系和其他上下文的模型。
从表8可以看出,兴趣点不同的上下文信息对于下一个兴趣点的推荐准确性有不同程度影响,距离间隔对于下一个兴趣点推荐的效果影响最大,表明在下一个兴趣点中,用户的偏好会受到地理因素强烈的影响。实验结果也表明,用户关系在下一个兴趣点推荐中同样具有重要作用,说明在下一个兴趣点推荐中,用户关系越紧密的用户通常会表示相似的用户偏好,访问下一个兴趣点也越相似。然而,其他上下文信息(如签到时间、相邻两个兴趣点的过渡时间、兴趣点的类别信息等)对于提升推荐准确性效果并不明显。但是综合以上所有信息的输入,可以看出本文提出的GRU-R的推荐效果得到显著提升,说明用户访问的下一个兴趣点往往由不同的上下文信息共同导致,整合不同的上下文信息能够给用户提供更准确的推荐。
表8 上下文信息对推荐准确性的影响Table 8 Influence of context information on recommendation accuracy %
注意力机制近年来,注意力机制已经被证明能够有效提升模型的推荐效果,有很多注意力模型被提出应用于各种任务中。文献[26]通过在RNN模型上使用分层注意力模型已经成功的应用于文档分类中,显著提升了文档分类效果。因此,本文尝试使用分层注意力机制进一步捕获用户的潜在的签到行为特征。分层注意力模型的计算公式如下:
其中h t表是神经网络模型的t时刻的输出,u t是h t经过一层全连接神经网络后的向量表示。u w表示被随机初始化的上下文向量,v表示整合用户所有时刻签到信息的最终偏好向量表示。在增加注意力机制的模型中,最终的偏好v将会替代循环神经网络的最后时刻的输出用于兴趣点预测。增加分层注意力机制的模型在两个数据集的的实验结果如图4~7所示。
图4 Gowalla数据集上ACC@10随迭代次数变化Fig.4 ACC@10 of Gowalla dataset varies with number of iterations
图5 Gowalla数据集上MRR随迭代次数变化Fig.5 MRR of Gowalla dataset varies with number of iterations
图6 CA数据集上ACC@10随迭代次数变化Fig.6 ACC@10 of CA dataset varies with number of iterations
图7 CA数据集上MRR随迭代次数变化Fig.7 MRR of CA dataset varies with number of iterations
从图4~7上两个数据集实验结果可以看出,是否增加注意力模型对于模型的迭代收敛速度几乎没有影响,两者的收敛趋势一致。可以发现引入注意力机制后的模型在ACC@10和MRR指标上均得到了轻微的提升,说明使用注意力机制有利于提升模型的推荐效果。注意力能够影响模型的推荐效果的原因可能是由以下方面造成,使用注意力机制能够通过控制权重的方式控制用户签到信息对于下一个兴趣点推荐重要性的影响,从而自动筛选掉对于用户下一个兴趣点影响较弱的签到信息,同时使用注意力机制能够捕获用户更深层的签到行为特征,比如用户签到行为的周期性影响等。
本文研究了下一个兴趣点推荐的问题,提出了利用用户关系和多个上下文信息进行下一个兴趣点推荐的模型(GRU-R)。首次提出了一种新用户关系嵌入模型User2Vec,并将其应用到循环神经网络中。为了提高下一个兴趣点推荐的效果,本文同时考虑了用户签到序列信息、用户关系、兴趣点时空信息和类别信息等方面。本文在真实的数据集上测试了模型的性能,实验结果表明,通过增加用户关系等信息模型的准确性得到了进一步的提升。尽管本文提出GRU-R模型具有很好的推荐准确性,但是该模型依然存在改进的地方来获得更好的效果,比如寻找描述更丰富的数据集,进一步结合用户基本属性、地点基本属性来解决兴趣点推荐中出现的冷启动问题,或者整合其他辅助的信息如图像、用户评分和描述文本信息等,给出更精确的下一个兴趣点推荐。