1. 简介
基于位置的社交网络(LBSNs)已经成为一个流行的平台,允许用户分享他们的签到、意见、照片和评论给其他人。随着智能手机的广泛普及,LBSNs的用户数量已经增加到数十亿,这也导致丰富的多模态时空数据呈爆炸性增长。这些数据的增长催生了一个新的推荐系统子领域,即兴趣点(Point of Interest, POI)推荐,该领域在用户和商业角度都引起了广泛的关注。POI推荐技术本质上利用用户的历史签到和其他多模态信息(如POI属性和友谊网络),来为用户推荐下一个最适合的POI。
由于数据的大小和形式以及用户的期望差异很大,这给如何运用大量多模态数据带来了新的挑战,促使研究人员设计新的技术来更好地捕捉移动模式和其他特征(如空间、社交、文本)以提高推荐性能。早期的POI推荐主要关注特征工程和传统的基于机器学习的方法。由于矩阵分解方法在其他推荐系统中的成功应用,研究者开始探索其在POI推荐中的应用。随后,贝叶斯个性化排名方法被引入。此外,支持向量机、协同过滤和高斯建模等传统方法也被用于个性化POI推荐。手工特征设计的困难是限制推荐质量的最主要原因,因此,寻找更好的特征工程方法仍是重要课题,近年来,基于深度学习的方法取代了大多数传统技术。卷积神经网络或循环神经网络等深度学习方法在自动特征提取方面提供了许多优势,消除了手工特征设计的困难。不同深度学习模型的使用,如CNN,RNN、长短期记忆、门控循环单元和自注意力机制,极大地提高了POI推荐模型的性能。
尽管基于RNN框架的方法以数据驱动的方式推荐POI,但仍有几个关键问题尚未解决。1) 基于RNN的方法在短期连续访问中受到限制,它们很难对时间线上远处访问之间的隐式连接进行建模;2) 绝大多数现有算法无法捕获对下一个POI推荐有重要影响的POI和类别、POI与位置之间的跨模式知识;3) 绝大多数模型只考虑过去与当前用户行为而忽略用户未来规划对下一个POI推荐的影响。
针对以上问题,本文提出了基于MogrifierLSTM的POI推荐模型(MogrifierLSTM Based Recommendation, MogRec)模型,主要贡献为:1) 根据用户签到序列的周期性,设计未来信息提取器,结合用户过去、当前和未来序列进行下一POI推荐。2) 引入MogrifierLSTM,增强模型对上下文信息的学习能力,并对时间线上的隐式连接进行建模。
2. 相关研究
上下文信息的捕捉在POI推荐中起着至关重要的作用。对于POI推荐中上下文信息的捕捉主要分为基于RNN、基于LSTM、基于GRU三种捕捉方式。
2.1. 基于RNN的POI推荐方法
Liu [1] 等提出了时空循环网络(Spatial-Temporal Recurrent Network, ST-RNN)。该模型扩展了RNN模型以用于时空效应。它通过添加一个特定时间和距离的转换矩阵来捕捉时间循环效应和地理效应,并采用线性插值来训练过渡矩阵。Yang [2] 等提出了Flashback模型,该模型利用稀疏的用户移动数据,关注丰富的时空上下文,并对RNN中的隐藏状态进行回溯。此外,该模型还采用了历史隐藏状态的加权平均来更好地捕捉时空效应。Zhao [3] 等人提出了具有幂等注意模型(Power-Law Attention, ASPPA),用于学习签到序列的潜在结构。但是RNN模型不能很好地捕获长时间的上下文信息,因此在本文中使用MogrifierLSTM来捕获上下文信息。
2.2. 基于LSTM的POI推荐方法
Li [4] 等人提出时间和多层次上下文注意力模型(Temporal and Multi-Level Context Attention, TMCA),该模型使用基于LSTM的编码-解码网络和三种类型的注意机制:多级上下文注意(微观、宏观)和时间注意。Sun [5] 等人提出了长短期偏好模型(Long and Short-Term Preference Modeling, LSTPM)。该模型将所有签到划分为几个轨迹,并实际开发了三个模块:长期偏好模块、短期偏好模块和预测模块。其中,长期偏好模块使用所有的轨迹,短期偏好模块使用最后一个轨迹,并联合预测下一个POI。Zhang [6] 等人提出了交互式多任务学习模型(Interactive multi-task learning, iMTL),它使用了一个双通道编码器和一个特定任务解码器。双通道编码器包括时间感知的活动和空间感知的位置偏好编码器,旨在捕捉活动和位置偏好之间的顺序相关性。一些模型修改了基本的LSTM模型或使用双向变量,Liu [7] 等人提出了时空分层注意力网络(Geographical-Temporal Awareness Hierarchical Attention Network, GT-HAN), 该模型使用了三个要素:POIs的地理影响、POIs的地理敏感性和POIs之间的距离,以更好地捕获POI领域特定的因素。Lian [8] 等提出了基于自注意力网络的地理感知顺序推荐模型(Geographical-Aware Sequential Recommender Based on the Self-Attention Network, GeoSAN)。该模型使用了地理感知自注意网络和地理编码器;Guo [9] 等人提出自注意力网络与时空模式结合的模型(Self-Attentive Networks Along with Spatial and Temporal Pattern Learning, SANST),该模型使用双层Transformer Network [10] 来捕获空间模式。本文受Zhang [11] 等提出了多步骤未来偏好推荐模型(Next Point-of-Interest Recommendation with Inferring Multi-Step Future Preferences, CFPRec),将用户多步骤未来偏好纳入上下文信息用于推荐下一个POI。
2.3. 基于GRU的POI推荐方法
相较于LSTM,GRU需要学习的参数更少,但它有额外的门,可以解决梯度爆炸和梯度消失的问题。Feng [12] 等人提出了DeepMove模型。它是一种预测人类流动性的模型,与POI推荐非常相似。它有两个模块:(1) Multi-model Recurrent Prediction Framework:将时空特征和个人特征联合嵌入到一个密集表示中以提取特征,然后将该特征输入到GRU单元中,在轨迹序列中建模远程和复杂的依赖关系;(2) Historical Attention Module:捕捉人类流动的多层次周期性。大多数模型都考虑了不同类型的上下文对用户偏好的相同影响,但是他们的影响并不相同,为了解决这个问题。Manotumruksa [13] 等人提出了上下文注意循环结构(Context Attention Recurrent Architecture, CARA)。它有四个层:输入层、嵌入层、循环层、输出层。在循环层中,该模型使用GRU。为了捕捉不同情景对用户偏好的影响,该模型使用了两种门控机制:(1) 上下文注意门(Contextual Attention Gate):控制普通情景和过度情景对用户动态偏好的影响;(2) 基于时空的门(Time- and Spatial-based Gate):考虑连续签到之间的时间间隔和地理距离以控制之前GRU单元隐藏状态的影响。本文采用MogrifierLSTM,在LSTM单元之前使用门控将输入向量与隐藏状态进行交互,增强捕捉上下文信息的能力。
3. 问题定义
下一个POI推荐的问题定义为设
为一组用户;设
为一组POI;设
为POI的一组类别;设
为一组时间信息(其中一天映射为24小时
为工作日,
为非工作日)。签到记录
表示用户u在POIl时刻t的签到记录,该POI的类别为c,其地理位置信息为g (经纬度)。对每一个用户
,设
为该用户的签到轨迹。其中的任一轨迹
,表示该用户一天之中按时间顺序的一组连续签到记录。其中将用户的最新轨迹
视为当前连续签到轨迹。而剩余的轨迹视为过去非连续签到轨迹。
下一个POI推荐的研究问题为给出用户u的过去行为轨迹
和当前行为轨迹
,我们的目标是根据提取的用户多步骤未来偏好来预测用户下一个时间戳的签到行为(即
)。
4. MogRec模型
MogRec由三个部分组成如图1所示,(1) 过去偏好编码器,用以对用户过去长时间行动轨迹进行建模,捕捉用户非连续轨迹的上下文相关性,学习用户的长距离轨迹偏好;(2) 当前偏好编码器,用以对用户近期的顺序签到轨迹进行建模,学习用户的当前轨迹偏好;(3) 未来偏好提取器,用以结合用户的长距离轨迹偏好,提取出用于的未来多步骤偏好。本模型结合用户的过去长距离非连续签到轨迹,当前顺序签到轨迹,以及提取的多步骤未来偏好,更准确的给出下一个POI推荐。
4.1. 过去偏好编码器
通常情况下,用户访问POI都会出于各种各样的目的,也就是各种上下文环境,这也使得用户的签到行为具有复杂性而这种复杂性给学习用户的偏好带来了巨大挑战。幸运的是,用户的签到行为同样具有周期性,而这种周期性为用户偏好学习提供了重要的条件。受上下文嵌入方法研究的启发,MOGREC将Bi-Transformer作为过去偏好编码器的首选。(1) Bi-Transformer作为编码器能够在训练过程中对目标POI的左右上下文进行建模,并可以将POI类别、时序、工作日信息和地理信息等上下文都纳入模型中,能够使得学习的POI表示更具表现力。(2) 它能够捕获非连续签到行为之间的上下文关联,并在一个轨迹内自动聚合具有相关性的签到行为。
因此,如图1中的左边所示,MOGREC提出一种Transformer的拓展,用以捕获用户的过去偏好,该编码器能够将用户对POI的时空感知动态偏好和关于活动的静态偏好都进行编码。例如,用户可以在晚餐时间访问具有相同食物(使用相同食物,即活动)的不同餐厅(即POI)。
给出用户的过去签到轨迹:
,每一个签到行为
表示为
(1)
其中
联运算;
分别为用户,POI和类别的嵌入表示。
表示时间切片为工作日或非工作日,
。在嵌入层将
转换为
,然后将其输入到Transformer 层。
(2)
(3)
其中
是Softmax函数,
是Transformer Layer,
为隐藏状态,
分别为查询矩阵,键值矩阵和权重变换矩阵;
为空间关系矩阵。给定从
到
的距离
。通过
表示
之间的空间影响。
受构建自我监督训练目标以实现掩蔽标记预测的研究启发 [14] ,设计了三个辅助任务来进一步进行过去非连续签到轨迹的偏好学习并进行更准确的特征学习。对于任意签到轨迹
,随机对20%的签到记录进行掩蔽,例如,对于原轨迹中的签到记录
,使用
进行替换,相对应的嵌入向量和隐藏状态分别用
和
表示。最后,我们通过Softmax层对隐藏状态
进行解码,获得原始位置l、类别c和时间t的多任务预测。
(4)
其中
分别为三个预测任务的转换矩阵。其损失函数为:
(5)
其中
为所有掩蔽记录的集合。
4.2. 当前偏好编码器
由于LSTM在模拟用户短期顺序行为的广泛使用。因此,MOGREC使用LSTM的变体MogrifierLSTM [13] 来学习用户对当前顺序签到行为的时间感知依赖性,与LSTM不同的是,在LSTM计算之前,交替的让输入向量
与隐藏状态
进行交互,增强上下文建模能力。由于LSTM中输入与隐藏状态是相互独立的,他们只在门中进行交互,在这之前缺乏交互,而理论上来说,当前输入应该和前一个时间戳的掩藏状态相关,所以LSTM会导致上下文信息的丢失。
如图1中间部分所示,给定用户u的当前轨迹
的每个签到记录
都输入到公式(1)得到嵌入向量
。相应的,将当前轨迹的嵌入向量组
输入到MogrifierLSTM:
(6)
(7)
(8)
其中
是一个超参数,如果
,那么这就是普通的LSTM对应于时间戳
的隐藏状态。
和
分别为交互后输入到LSTM中的“嵌入向量”和“隐藏状态”。通过这种方式,MogrifierLSTM最终能够输出用户当前偏好的隐藏状态序列,即
。
4.3. 未来偏好提取器
如图1所示,用户通常会在行动之前进行规划,未来的多步骤规划大概率会对用户的后续行动轨迹产生影响,因此融合未来的行为将有助于更准确的捕获用户偏好,考虑多步骤未来规划有助于预测用户的下次POI访问。如图2所示,Bob在轨迹②中,18:00去电影院,19:00去购物被视为她的未来行为,但是在为她推荐17:00的餐厅时,这些未来信息往往不会被关注。但是,一些基于双向变压器的方法在模型训练中编码了过去和未来的行为,即为目标POI进行左右上下文建模。然而,由于无法确定用户的未来行为,极大的限制了模型在训练中捕获用户偏好的能力。受到CFPRec的启发,用户的日常签到行为所具有的周期性为推导未来偏好提取器提供了参考。未来偏好提取器拥有两层注意力聚合机制,用于推断多步骤未来偏好,从而在预测用户下一个POI时隐式的模拟用户的活动计划。
4.3.1. 序列间注意力机制
由于用户的行为轨迹具有周期性(即用户通常在相同的时间上下文中做出相似的行为),所以采用注意力机制来进行时间感知,以识别过去轨迹中与未来时间上下文最相关的行为。用户任一过去轨迹
,通过过去偏好编码器被编码为隐藏状态矩阵
,其中每个隐藏状态
表示用户的时空感知动态POI和静态活动偏好。未来时间嵌入
被用作关注过去轨迹的每个隐藏状态的查询向量,因此未来时间轨迹嵌入被表示为:
(9)
因此,
能够通过从过去轨迹中提取出关于时间戳
的最相关行为来当作潜在的多步骤未来行为。
4.3.2. 序列内注意力机制
序列内注意层强调未来时间上下文对轨迹内相关行为的影响。除此之外,用户日常的顺序行为偏好也在改变,如图2中所示的两条日常轨迹。受CFPRec的启发,引入一个序列间注意层来模拟不同轨迹上的顺序行为演变过程。得到关于
的多步骤未来轨迹(如{
})后,采用动态用户嵌入u作为查询向量来关注相关的轨迹偏好:
(10)
其中
为注意力得分;
为时间戳
上的未来行为偏好。
通过序列内注意力机制和序列间注意力机制,未来偏好提取器的搭配了用户多步骤未来偏好。

Figure 2. Two of Bob's daily trajectories
图2. Bob的两条日常行为轨迹
4.4. 模型训练
通过过去和当前偏好编码器以及未来偏好提取器获得了用户偏好特征
的隐藏状态,这使得模型能够在训练期间可以对目标POI的左右上下文进行建模。
假设用户的下一个POI访问不仅受到过去和当前的偏好影响,还可能受到其多步骤未来偏好的影响。所以用户的最终偏好(
)通过聚合
中的每个隐藏状态得到:
(11)
其中
为用户动态嵌入u和每个隐藏状态
的注意力得分。随后,利用学习到的用户偏好
,使用Softmax函数解码得到
个POI上的概率分布:
(12)
其中
为关于
的预测概率分布;
为变换矩阵。所以目标POI预测的目标函数为:
(13)
其中
为训练样品集合;
为对应于第i个训练样本的POI预测概率的真值。
最后,给出损失函数:
(14)
其中
为平衡目标POI预测和辅助目标的超参数。
4.5. 复杂性分析
在模型训练期间,过去偏好编码器、当前偏好编码器和未来偏好提取器的计算复杂度分别
其中n为训练实例的轨迹序列数;
为平均轨迹序列长度;D为嵌入尺寸。由于
,每个训练实例的总体复杂度约为
。
5. 实验
5.1. 实验设置

Table 1. Statistics for three datasets
表1. 三个数据集的统计数据

Table 2. Parameter settings for the three datasets
表2. 三个数据集的参数设置
本文采用Foursquare收集的三个数据集,分别为Singapore (SIN)、New York City (NYC)和Phoenix (PHO)的POI签到数据,如表1所示。本次实验中删除了签到数据少于10次的POI,并过滤出签到数据少于5次的用户数据和签到记录少于3次的轨迹数据。然后根据时间戳以8:1:1的比例分割每个用户的轨迹序列,其中80%为训练集,10%分别为验证集和测试集。最后采用RECALL@K、NDCG@K和MAP@K评估所有方法的性能。为了进行稳健的比较,本实验将每个方法运行10次后取平均结果作为最终结果。最后通过与其他模型中效果最好的模型进行对比得出提升率(即表3、表4、表5中的Improve项)。
本文将模型与九个基准模型进行比较。(1) MostPop模型:通过人气推荐POI;(2) MPRMF模型:基于贝叶斯个性化排名的矩阵分解方法;(3) ST-RNN [1] 模型:基于RNN的先驱模型,结合了下一个POI推荐的连续签到之间的空间组合上下文方法;(4) ATST-LSTM模型,基于注意力的时空LSTM模型,其关注轨迹中的相关历史签到;(5) MCARNN模型:基于多任务上下文感知的RNN模型,其利用空间活动主题进行下一个活动和位置预测;(6) PLSPL [5] 模型:实现了从用户过去和当前行为中捕获用户行为偏好;(7) iMTL [6] 模型:基于多任务的下一个POI推荐模型,其通过双通道编码器对活动和位置的顺序相关性进行建模;(8) CTLE模型:基于双向Transformer框架的上下位位置嵌入方法;(9) CFPRec [11] 模型:首次基于过去当前行为轨迹和未来轨迹预测的POI推荐模型。
本文根据经验找出了所有方法的最佳参数设置。按照CFPRec的论文建议设置各种方法的参数并使用pytorch实现,优化器采用Adam,学习率设置为0.0001,迭代次数为100,其他参数如表2所示。

Figure 3. Comparison of R value performance on three datasets
图3. 三个数据集上r取值性能对比
5.2. 结果分析
表3、表4、表5列出了所有方法的性能。对于三个数据集,MostPop表现最差,这表明在下一个POI推荐中需要进行个性化推荐。BPRMF模型对比基于RNN的模型表相较差,因为它无法从用户的签到行为中捕获顺序规则。所有基于RNN的方法比较如下所述。(1) TST-LSTM的性能优于ST-RNN,这表明对顺序行为建模时利用注意力机制可以提高下一个POI推荐的质量。(2) MCARNN、iMTL和PLSPL的性能相对较高,这表明将用户的时空感知活动和位置偏好联合建模有助于捕捉用户对其下一个POI访问的偏好。(3) PLSPL的性能较好表明建模过去和当前顺序行为对于更准确的下一个POI推荐的重要性,而忽略对未来偏好的建模对比CFPRec与MOGREC阻碍了其用户偏好学习。(4) CFPRec与MOGREC总体性能上高于其他基线,说明在建模时考虑用户的未来偏好将有利于用户的下一个POI推荐。(5) MOGREC在性能SIN与NYC数据集上的表现优于CFPRec,说明在长序列数据集上MogrifierLSTM学习用户偏好的能力高于LSTM。
MOGREC较之于CFPRec的改进主要集中于当前偏好编码器。而MogrifierLSTM较于LSTM主要是可以将输入与前一个时间戳的隐藏状态在门计算之前进行交互,增强上下们的相关性。所以(1) 相较于SIN数据集和NY数据集,PHO的轨迹序列内签到记录较少,所以MogrifierLSTM的门前交互几乎没有影响;(2) 对比SIN数据集和NY数据集,由于NY的签到密度较小,所以签到记录的提前交互对之影响也较小。
MogrifierLSTM最重要参数为mogrifyier_steps,它对应公式(6) (7)中的步骤数。如图3所示,在准备数据时,我们已经过滤掉了轨迹数量小于3的轨迹,因此我们从3开始进行测试。对于长序列数据集SIN和NY,随着mogrifyier_steps的增长,RECALL@10、NDCG@10和MAP@10都严格单调递增。对于短序列数据集PHO,我们也观察到相同的趋势。这表明mogrifyier_steps越接近序列长度,捕捉上下文信心的能力越强。
6. 结语
本文提出了基于MogrifierLSTM和未来信息的POI推荐算法(MOGREC),通过用户签到记录的周期性学习到用户的行为偏好,设计出用户未来偏好提取器,将未来行为规划纳入考量,并引入MogrifierLSTM来增强上下文的关联性。基于Foursquare数据集,通过比较MOGREC算法与其他算法,发现MOGREC算法的召回率和NDCG值有所提高。在未来的工作中希望改进未来偏好提取器中的注意力机制,以期达到更好的推荐效果。
基金项目
国家自然科学青年基金(61902105);河北省科技厅科技支撑计划指令性项目(Z20220032);河北省教育厅重点项目(ZD2020175)。
NOTES
*通讯作者。