陶 丹,姚 伊,吴谨汐,范睿明,郑晨旺
(北京交通大学 电子信息工程学院,北京 100044)
近年来定位技术、移动智能设备以及移动互联网技术发展迅猛,基于位置的社交网络(Location-based Social Network,LBSN)也变得更加热门,如Foursquare、Gowalla、Yelp等.用户在LBSNs上能够以“签到”的方式,更加快速地分享自己的实时位置信息,以及带有地理标记的文本图像等内容信息.利用LBSNs中大量的用户历史签到数据挖掘用户习惯特点和偏好,并向用户推荐其可能感兴趣的新的地点称为兴趣点(Point of Interest,POI)推荐.兴趣点推荐在LBSNs中扮演着重要的角色.
早期的多数研究关注于如何在协同过滤模型(Collaborative Filtering,CF)基础上整合上下文信息.最近研究表明用户的签到行为具有序列性,并且这种特性对预测用户的行为具有重要作用.循环神经网络(Recurrent Neural Network,RNN)已经被成功的使用在对用户签到的序列行为建模.但是现实中用户的签到序列中往往还包含着复杂的时空信息属性,并不是序列中所有的已访问的地点对预测用户未来的行为都同等重要.并且绝大多数兴趣点推荐方法都未能很好地处理用户的兴趣是动态变化的这一重要问题.用户既存在长期稳定的偏好,也存在短期的行为需求[1].近年来,研究学者相继提出了长短期偏好融合的兴趣点推荐模型,例如Sun等人[2]提出了一种利用非局域网络对长期偏好建模和利用地理扩展RNN对短期偏好建模结合的模型.该模型通过对用户长短期偏好的充分学习与融合,实现了推荐性能的大幅提升.
基于此,本文设计了一种混合的兴趣点推荐模型(User Preference & Time Sequence based POI Recommendation,UPTS-PRec),该模型能够有效地捕捉用户的长期偏好和短期偏好.首先利用长短期记忆网络(Long Short-Term Memory,LSTM)对用户的短期序列偏好进行建模,并在LSTM网络的每一步中传入时空上下文信息,以捕捉用户短期行为中复杂的转移特性.基于注意力机制构建长期模型,过滤用户长期行为历史中的无关的签到记录,并且能够构建用户长期偏好.最后,本文还将用户短期偏好与长期进行偏好进行融合,获得用户更全面和丰富的偏好表示,从而实现更高效精确的兴趣点推荐[3].
早期协同过滤作为推荐系统中应用最为广泛和高效的方法之一,常被用作兴趣点推荐的基本模型.例如Yuan等人[4]将基于用户的协同过滤方法与时间地理信息相结合,分别对分人群签到行为中的时间及空间影响进行分析,以此提出了一种融合了空间及时间影响的兴趣点推荐框架.兴趣点推荐技术的发展过程中,Li等人[5]提出了一种基于排序的地理因子分解方法,该方法通过所有签到对兴趣点排序学习因子分解并融合不同类型的上下文信息,从而可以缓解数据稀疏的问题.基于协同过滤的模型虽然被广泛地研究与改进,但仍存在数据稀疏的问题,模型的推荐性能仍然不足.随着词嵌入模型在自然语言处理领域的提出,推荐系统开始应用嵌入学习这一全新的兴趣点推荐方法.例如:Zhao等人[6]提出一个地理时间序列化嵌入模型,该模型利用嵌入学习技术来获取上下文签入信息.Liu等人[7]提出了一种新的时空感知表示方法,将时空信息建模为连接用户和兴趣点的关系.基于嵌入学习的方法虽然很好地缓解了数据稀疏性问题,但对模型从历史签到数据中挖掘一些复杂的特殊关系或关系图的能力有很高的要求,大多数模型学习的关系过浅,还有较大的提升改进空间[8].
随着大数据应用的快速发展和机器学习模型技术水平的提升,基于深度学习的推荐算法也渐渐发展起来.例如利用循环神经网络、深度神经网络.Zhao等人[9]提出了一种LSTM的变体ST-LSTM,其在LSTM中实现了时间门和距离门来捕获连续签入之间的时空关系,并减少了参数的数目,提高了模型学习的效率.Yang等人[10]提出了一种新的神经网络模型,利用RNN对和GRU对移动轨迹中不同等级的序列关系进行建模,从而融合用户的长期和短期序列偏好能更好地分析和挖掘LBSN数据.普通RNN在面对较复杂的问题时,存在无法整合序列内部固有的复杂的时空信息的缺陷,以及数据较少时容易引起过拟合等问题.若只采用RNN对用户序列历史建模,具有局限性.本文采用了改进型RNN,避免了传统RNN梯度爆炸,梯度消失等问题.同时将注意力机制整合到RNN中,学习用户短期的序列相关性,精确捕捉用户的短期偏好,使得模型既能够捕获序列动态,又能够充分利用历史信息.
定义U={u1,u2,…,u|U|}表示用户集合,L={l1,l2,…,l|L|}表示兴趣点集合,其中|U|和|L|分别表示用户的总数和兴趣点的总数.为了便于说明,本文给出符号说明表格如表1所示.
表1 符号描述Table 1 Symbols description
定义1.兴趣点(POI). 一个兴趣点l被定义为具有由纬度和经度坐标唯一确定的地理空间项目,例如餐馆或博物馆等.可以用兴趣点ID、纬度和经度的集合〈lid,latlid,lonlid〉来表示一个兴趣点.
定义2.签到(Check-in). 用户的签到记录由用户u、兴趣点l和时间t这3个元素组成的集合表示,表示用户u∈U在时间t时访问了POIl∈L.
问题定义-兴趣点推荐. 在给定用户u的签到序列Mu和查询时间t的情况下,预测该用户在时间t访问未曾访问过的兴趣点lt∈L的概率.将预测概率的分数按降序排列,为用户推荐前N个地点.
本文提出的兴趣点推荐模型分为3部分,即用户的短期偏好模块、长期偏好模块以及长短期偏好融合模块.
在短期偏好模块中,采用融合时空上下文信息的LSTM来学习用户签到行为中复杂的序列转移模式,并通过基于目标地点的注意力机制进一步精确地提取短期偏好.在长期模块中采用基于用户注意力机制来构建用户长期偏好,同时该模块还能捕捉用户和兴趣点之间细粒度的交互关系,让模型更有关注性和分辨性地学习序列化依赖,过滤不相关的信息.最后将用户的短期偏好和长期偏好进行融合,实现了兼顾用户短期的行为需求和长期稳定的偏好的兴趣点推荐.模型的整体流程图如图1所示.
图1 UPTS-PRec模型整体流程图Fig. 1 Overall flow chart of UPTS-PRec model
短期偏好反映了用户在短时间内的兴趣和需求.对短期偏好建模的目的,是捕捉签到序列中用户对兴趣点的序列转移偏好.在此模块中,本文首先使用LSTM对输入的签到序列进行建模,然后利用基于目标兴趣点的注意力网络,进一步精确地提取用户的短期偏好.
ci=[eli;eti;lati;loni]
(1)
xi=ReLU(Wcx·ci+bcx)
(2)
把xi作为LSTM的输入进行短期序列偏好建模.LSTM是一种最常应用于各种推荐系统的改进型RNN模型[11].它能够很好对短期和长期的序列的依赖关系进行学习,巧妙地解决了传统RNN的梯度爆炸或梯度消失的问题.本文采用的LSTM模型表达式如下:
ft=σ(Wfxt+Wvfht-1+bf)
(3)
it=σ(Wixt+Wviht-1+bi)
(4)
(5)
(6)
ot=σ(Woxt+Wvoht-1+bo)
(7)
ht=ot⊙tanh(ct)
(8)
(9)
(10)
(11)
针对于长期偏好建模(如RUM[12]、ST-RNN),现有方法通常直接为每个用户学习一个静态潜在向量qu∈Rd来表示用户长期的兴趣偏好,该向量可反映用户固有的偏好特征.
然而,用户的历史签到记录往往会随着时间变化,而且用户在长期历史中往往展现出复杂多样的兴趣.因此,仅仅学习一个静态的嵌入向量会在一定程度上限制模型捕捉用户变化的、复杂的长期偏好的能力.本文选择对用户的历史签入记录进行编码,以获得另一种偏好表示,称为用户记忆嵌入向量,该向量可以根据用户不断更新的签到记录动态重构.
(12)
本文用特征向量u∈Rd来表示用户,以u作为查询向量来访问用户的历史行为序列m,对注意力分布(即权重)进行计算,公式如下:
(13)
其中LN为source长度,即用户历史行为序列长度.与短期偏好模型相似,这里注意力计算方式同样采用缩放点积模型.
尽管通过聚合用户的长期签到历史可以捕捉到用户的长期偏好的变化属性,但由于用户的实际签到数量是有限的,这样的方法仍然不能准确地表示出用户长期偏好的一般属性.
(14)
其中bl∈Rd是一偏置矩阵,Wl∈R2d×d是一权重矩阵.
短期模型能够较好地捕捉用户在短期内的需求,而长期模型能够捕捉到用户的长期偏好.为了使本算法能够兼具短期模型和长期模型的优点,拥有更高的推荐精确度和排序精确度,本文将短期模型和长期模型进行融合.
为获得更为全面的用户偏好,将用户的短期偏好和长期偏好进行融合,表达式如下:
(15)
其中WP为权重矩阵,⊕为运算连接符,bp为偏置向量,而pu表示为用户最终的偏好.
已知兴趣点推荐的要求与用户、时间、地点相关,本文将其表示为q=.本文考虑用户偏好与兴趣点的时间属性,构建整体预测得分表达式如下:
(16)
考虑到可将兴趣点推荐视为二分类问题,本文采用二分交叉熵作为损失函数,将目标函数设置为正则化的对数似然函数,得到如下表达式:
(17)
其中λ为正则化系数,Θ为模型参数集.所有模型参数均是通过最小化训练数据上的目标函数L来学习.为实现训练过程中学习速率的自动调整,本文采用了自适应矩估计优化器.并在全连接层使用了dropout技术,避免了过度拟合的问题.
5.1.1 实验数据集
本文实验的数据集来自Foursquare[注]http://spatialkeyword.sce.ntu.edu.sg/eval-vldb17/和Gowalla[注]http://www.yongliu.org/datasets/index.html,这两个数据集的数据真实且公开.Foursquare是一个手机服务网站,Gowalla是一个社交游戏的网络平台,二者都能够为用户提供基于位置的网络服务.本文分别从两个数据集获取了两万余名用户一年的签到记录,每条签到记录都包含用户ID、兴趣点ID、签到时间戳和兴趣点的经纬度等信息.
为使算法的准确性能够得到充分的评估,将Foursquare与Gowalla数据集中用户活跃度较小的、不适于本模型学习的数据进行剔除,即对数据进行预处理.对签到记录少于10条和访问地点数少于10个的数据进行剔除后,数据集的基本统计信息如表2所示.在模型训练中,将较早的签到记录用于训练模型,而将最近的签到记录用作对模型性能进行评估的测试样本.
表2 数据集基本信息Table 2 Basic data set information
5.1.2 评价标准
本文采用推荐算法中常用的精确度评价标准Accuracy@N、NDCG@N与MRR对模型进行性能评价.定义Dtest为测试数据的集合,|Dtest|为测试数据的总数.定义正确推荐的兴趣点li在所有推荐的兴趣点中的排名为reli,表示位置i的推荐结果的相关性.
Accuracy@N:本文采用的评价标准Accuracy@N与Yin等人[12]所采取的相同.由于本文的最终目标是形成一个由排名前N项的兴趣点构成的top-N推荐列表,因此如果reli满足reli≤N,表示推荐的POI满足用户需求.定义指示函数IN(x),表达式如下:
(18)
当本文的推荐列表top-N满足了用户的需求时,IN(x)的值取1,否则取0.因此Accuracy@N的计算公式为:
(19)
为方便后续表达,本文将该评价标准简称为Acc@N.
NDCG@N:NDCG是归一化后考虑位置影响因素的累积增益.这个评估标准既可以评价一个系统是否准确地推荐了POI,还注意到了所推荐的正确POI在推荐序列中的排名,其计算公式为:
(20)
其中|REL|表示将所得到的结果按照相关性降序排列,取前N个结果组成的集合.
MRR:将正确检索结果值在所有检索结果中的排名取倒数,再对测试数据取平均.其计算公式为:
(21)
5.1.3 对比算法
为验证本文提出的模型的兴趣点推荐性能,本文选取了7种具有代表性的推荐模型进行对比,其中POP、FPMC-LR为传统的推荐算法,而POI2Vec、ST-RNN、RUM、AttRec和SHAN为基于深度学习的推荐算法.
POP:基于地点的受欢迎程度的进行兴趣点推荐,是一种非个性化的模型.
FPMC-LR[13]:将矩阵分解与个性化马尔可夫链结合进行兴趣点推荐的模型.
POI2Vec[14]:在学习兴趣点嵌入过程中整合了兴趣点的地理关系、兴趣点的顺序转换和用户偏好进行联合建模的兴趣点推荐模型.
ST-RNN[15]:利用连续签到的时间间隔和地理距离信息对经典RNN进行改进的兴趣点推荐模型.
RUM[12]:利用外部存储网络集成协同过滤的顺序进行兴趣点推荐的模型.本文使用项目级RUM进行对比.
AttRec[16]:同时考虑了局部与全局的兴趣点推荐模型.该模型利用自注意力机制来捕捉用户历史行为交互的关系,并利用度量学习对用户的长期偏好建模进行建模.
SHAN[17]:两层次的注意力网络推荐模型.第1层注意力网络专注于学习用户的长期偏好,第2层注意力网络通过耦合用户的长期和短期偏好实现兴趣点推荐.
5.2.1 UPTS-PRec模型与其他推荐方法的性能对比
本节实验在Foursquare和Gowalla数据集的基础上,将本文推荐模型与POP、FPMC-LR等7种推荐模型的Acc@N、NDCG@N和MRR进行对比,各模型均取得最佳性能.对比结果见图2-图4.
图2-图4分别展示了在Foursquare和Gowalla数据集上,各模型所推荐兴趣点个数分别为5、10、20时的推荐性能.随着所推荐兴趣点个数的个数的增加,各模型的Acc@N、NDCG@N和MRR均有所升高.这是因为向用户推荐的兴趣点的个数越多,越有利于对用户偏好的挖掘,对模型的推荐性能有一定的影响.
从图2-图4可以看出,本文所提出的模型的Acc@N、NDCG@N和MRR明显优于其他7种模型,在本实验中,本模型的Acc@N、NDCG@N及MRR最优分别可达到27.90%、15.06%、12.42%,高出对比算法至少2.06%、2.17%、2.80%.其中POP模型性能均显著低于其他模型,这是因为POP模型只考虑地点的受欢迎程度,而没有考虑到用户个体的不同. FPMC-LR是基于马尔可夫链的推荐方式,POI2Vec是基于嵌入的推荐方式,这些方式能够捕捉签到序列成对的关系,进行个性化推荐,因此推荐性能有所提高.但是,由于这些方法并不能探索更高级的关联方式,因此这些推荐方法的性能较如RUM等基于深度学习的兴趣点推荐算法仍性能较弱.而在基于深度学习的兴趣点推荐模型ST-RNN、RUM、AttRec和SHAN中,AttRec和SHAN性能略优于ST-RNN、RUM,这也验证了基于用户偏好与时间序列的思想在兴趣点推荐中的优越性.
5.2.2 性能比较
本节对前文提出的短期模型、长期模型与UPTS-PRec模型的有效性加以验证.实验分别在经过处理的Foursquare和Gowalla数据集上比较短期、长期与UPTS-PRec模型在分别为用户推荐5个、10个和20个兴趣点的实验时Acc@N、NDCG@N与MRR的变化情况的变化情况.实验中将算法的参数设置为最优值.
表3、表4分别为本文的短期模型、长期模型与UPTS-PRec模型在Foursquare和Gowalla数据集上Acc@N、NDCG@N与MRR的变化情况. 其中,短期模型和长期模型分别用UPTS-PRec-s和UPTS-PRec-l表示.通过在该两大数据集上的实验结果,可看出推荐地点数相同的情况下,UPTS-PRec模型的性能优于未经融合的模型性能,且短期模型的性能普遍优于长期模型的推荐性能.UPTS-PRec模型推荐性能的优化程度有随推荐兴趣点数量的增加而增大的趋势,且在Gowalla数据集集上的变化更为明显,优化最大可表现为Acc@N较UPTS-PRec-s提高1.78%,NDCG@N提高0.67%.UPTS-PRec模型相对于短期模型和长期模型推荐性能能够提高的原因是UPTS-PRec模型兼具短期模型和长期模型的优点,既能够较好地捕捉用户在短期内的需求,又能够捕捉到用户的长期偏好.
表3 两数据集上不同模型的Acc@NTable 3 Acc@N for different models on the two datasets
表4 两数据集上不同模型的NDCG@N、MRRTable 4 NDCG@N and MRR for different models on the two datasets
5.2.3 实验参数的影响
本实验主要分析短期序列长度k与正则化系数λ对实验结果的影响.由于篇幅有限,本文仅展示Acc@20和NDCG@20时的实验结果.在短期偏好模块中,序列长度k是注意力网络捕捉用户序列模式的关键.本文将序列长度k的范围设置为1~10,结果如图5所示.从图中可看出,在Foursquare和Gowalla数据集上,模型性能在开始会随k的提高而增强,但k达到一定数值后,模型性能会随k的增大而有一定程度的下降,模型在k分别取4、3时在两数据集上性能达到最优.原因可能是用户的序列模式通常包含较短的序列,较长的序列会给模型带来一些噪声,不利于性能的提高.对于正则化系数λ,本文依次取值为1×10-6、5×10-6、1×10-5、5×10-5、1×10-4和1×10-3,结果如图6所示.可以看出模型在两数据集上均在λ为5×10-6时,达到最好效果,λ过高或过低均会导致模型效果变差.原因可能是因为正则化系数过小会使目标函数区趋于低次项而出现欠拟合现象,而正则化系数过大可能会使目标函数区趋于高次项而出现过拟合的情况,同样导致模型推荐效果不佳.可以看出,在模型中选用合适的短期序列长度与正则化系数对于提高模型性能是非常重要的.
图5 序列长度k影响Fig. 5 Effect of sequence length k
图6 正则化系数λ影响Fig. 6 Effect of regularization coefficient λ
根据用户兴趣点偏好的复杂性与变化性,本文提出了一种基于用户偏好与时间序列的兴趣点推荐模型.本文采用LTSM与注意力机制建立短期模型,采用注意力机制建立长期模型,并实现长期模型与短期模型的融合.为用户提供兴趣点推荐服务.实验结果表明:本文提出的兴趣点推荐模型性能在3种评价标准下均优于对比方法.未来工作将进一步扩大实验数据集,对模型的普适性进行验证.