彭 薇,江 昊,刘卉芳,彭诗雅,廖 娟
(1.武汉大学 电子信息学院,湖北 武汉 430072;2.中国联合网络通信有限公司广东省分公司,广东 广州 510627)
随着城市中大量人口流动数据的产生,人口流动的时空数据引起了越来越多的关注,其中一个重要关注点是用户位置预测及推荐,即根据用户过去的移动轨迹信息,预测其即将访问的地点。用户位置预测对于人流量预测、位置服务推荐和人群检测等都有重要意义。
近年来,国内外学者对用户轨迹相关问题进行了大量研究,大多数位置预测问题需要用潜在的嵌入向量来表示位置。最直接的方法是为位置的随机初始化向量加上全连接层,通过特定任务对其进行训练[1],然而该方法存在过拟合问题,且无法融合位置的其他相关信息。也有基于收集到的轨迹数据以及兴趣点(Point of Interest,POI)类别信息构建时空广义知识库,学习实体表征向量,将轨迹预测问题转化为知识图谱补全问题[2]。由于轨迹数据存在先后顺序,许多位置嵌入模型来源于自然语言处理中的词嵌入模型。模型POI2Vec将用户社交媒体登陆数据的POI序列视为句子[3],TALE基于CBOW[4]模型,融合用户访问地点的时间信息以提高预测的准确率[5]。HIER模型利用地理位置数据中的层次结构,学习细粒度位置嵌入向量,减小了数据稀疏造成的影响[6]。CTLE模型基于位置的上下文邻居动态计算位置的潜在嵌入向量[7]。另外,CAPE模型使用Instagram数据作为输入,利用位置和文本信息得到POI嵌入向量[8],Geo-Teaser[9]和Place2Vec[10]结合用户的登录信息和附近区域信息生成嵌入向量。DRAN利用图卷积网络(Graph Convolutional Network,GCN)进行特征提取,采用多头注意力对POI的各个维度进行处理,得到位置的精确表示[11]。然而,大多数位置嵌入方法没有充分考虑用户行为,仅仅局限于位置本身的属性或类别信息,而没有进一步挖掘用户当前行为与其所处位置、前后移动轨迹有关的信息。
位置信息嵌入可以用于解决各种任务,例如下一位置预测[12]、兴趣位置推荐[8]和位置分类[13]等。在用户未来移动轨迹的预测问题中,马尔可夫模型被广泛使用,例如利用多个相互关联的马尔可夫链对用户在不同时间段的不同移动行为进行建模[14],采用由用户个人频繁模式自适应确定动态顺序的变阶马尔可夫模型,预测用户的移动性[15]。除了马尔可夫模型,还有基于贝叶斯概率模型的用户移动性建模方法。Feng等[16]利用递归神经网络结合注意机制对用户移动性进行建模,DeepMove结合循环神经网络中的注意机制,模拟未来轨迹与历史轨迹的长期相关性[17],ST-RNN用特定时间和特定距离的过渡矩阵对每一层的局部时空上下文进行建模,构成时空递归神经网络模型用于位置预测[12]。ERPP将对某个地点的访问视为一个事件,将到达时间视为它的时间戳从而进行预测[18],门控循环单元(Gate Recurrent Unit,GRU)可以用来模拟用户的顺序移动模式,将输出隐藏向量输入到一个完全连接层中以预测用户下次访问的位置[19]。ST-LSTM通过将时间和距离值嵌入到潜在向量中,扩展了长短期记忆网络(Long Short-Term Memory,LSTM)的输入[1]。另外,ARNN从知识图谱中提取语义和空间信息,结合LSTM网络和注意力机制进行位置预测,对下一地点进行个性化推荐[20]。HMT-GRN 模型提出了缓解数据稀疏性的方法,并进行了多任务学习[21]。GETNext用GCN计算POI嵌入后,通过Transformer进行预测[22]。然而,若轨迹序列较长,在处理序列信息时更容易聚焦于短期的依赖关系,长距离依赖则难以捕获。
用户的移动一般存在具体目的,因此用户行为信息、地点语义信息等均有利于理解用户的移动轨迹,从而更好地进行预测。然而大量研究在预测位置时对于用户行为的考虑有所欠缺,且对于长期依赖关系的学习程度有限。本文提出基于用户行为和上下文语义的时空长短期记忆网络分层(Hierarchical Spatiotemporal Long Short-Term Memory Based on User Behavior and Contextual Semantics,CHST-LSTM)模型,将用户行为考虑在内,将轨迹中的位置信息与用户行为信息、时间信息相结合,通过预训练融合上下文语义信息,得到位置的表征向量,并将其用于ST-LSTM分层模型,根据用户的行为状态动态分割轨迹段,加上BiLSTM模块,以编码解码的形式,对轨迹上下文信息进行建模,分别对长短期特征进行处理,从而更好地学习长距离依赖关系,提升轨迹预测的准确率。
由于用户的行为、所处时段与其活动范围、移动轨迹息息相关,其行为某种程度上反映了所处位置的功能,可以从用户的行为中提取出所处位置的特征,因此将行为信息融入时空轨迹数据有利于得到更高质量的位置嵌入。为了融合到访时间、行为模式等行为信息,提出了相关信息编码模块,用位置编码融合时间编码和行为模式编码,将用户行为相关信息融入位置嵌入模型中。
对于位置编码Pli,对位置li的独热向量采用简单的全连接层得到:
Pli=Ω(li)。
(1)
考虑到用户在特定时间访问特定位置时,其访问时间信息与位置特征有着强相关性,因此加入时间编码模块。时间信息与序列顺序信息类似,参考Transformer中对序列位置的编码方式,将时间编码设为:
Tli=[cos(ω1tli),sin(ω1tli),cos(ω2tli),sin(ω2tli),…,
cos(ωdtli),sin(ωdtli)],
(2)
式中:Tli表示用户到达位置li时的时间编码,维度为二维;ωk=1/10 0002k/d,tli表示用户到达位置li的时间。
对用户的行为模式进行编码,Ali表示用户行为模式的信息编码,维度与位置编码、时间编码相同,ali表示用户行为模式,对ali的独热向量采用全连接层:
Ali=Ω(ali)。
(3)
具体来说,根据用户到达位置li的前后各半小时(共1 h)的通话次数、访问工作软件时长和移动距离数据,找到与之距离最近的模式类型即为ali。
融合位置编码模块、时间编码模块与行为模式编码模块,得到记录(u,l,t,a)中位置l经过信息编码之后的向量z′(l),其中u表示该用户,l表示途经位置,t表示到达对应位置的时间,a表示用户行为模式:
z′(l)=Pl+Tl+Al。
(4)
将用户行为融入位置嵌入向量,可以为位置的特征表达提供更多的有效信息,让所有用户共享和学习类似的规律。
一般来说,用户访问特定位置均有其明确目的,其途经位置也取决于所处城区本身的固有路线,具有较强的规律性,因此可以使用自然语言处理的相关算法。用户的轨迹类似于句子,途经的位置相当于单词,不同位置之间的不同组合方式表达了特定的含义,每个位置的特征很大程度上取决于前后位置即上下文环境,可以采用上下文感知嵌入模型计算位置的潜在表征向量。受到BERT[23]的启发,本文采用双向Transformer编码器[24],基于位置l的上下文内容C(l),通过掩码语言模型(Masked Language Model,MLM)预训练得到位置l的嵌入向量,如图1所示。
图1 位置嵌入预训练模型Fig.1 Pre-trained model for location embedding
在时空轨迹数据中,某用户的轨迹s可表示为s={(u,l1,t1,a1),(u,l2,t2,a2),…,(u,ln,tn,an)},即时空点序列。每个时空点都是用户到达某一位置时所涉及到的相关信息的元组,通过Transformer编码器可以得到位置li的嵌入向量z′(li):
(5)
(6)
式中:Θ表示模型中涉及的参数,通过最大化位置lm与其所在轨迹前后位置的关联关系计算得到,继而可以得到各个位置的嵌入向量。
(7)
(8)
最终整个预训练模型的目标为:
Θ=ΘML+ΘMT+ΘMA。
(9)
由于用户行为模式与所处位置相关性较强,因此将位置信息、到访时间信息和行为模式信息均作为预训练的目标,有利于得到更高质量的位置表征向量。有着相似上下文环境的位置由于涉及信息相似,其嵌入向量也会更加接近,高质量的嵌入向量有利于提升对用户下一位置预测的准确率。
在预测人类行为时,仅仅考虑轨迹序列显然是不够的,考虑到用户的行为信息对于位置预测的意义,采用上文中融合了用户行为的位置嵌入作为特征向量,在此基础上提出CHST-LSTM模型。
为了处理时空关系,采用ST-LSTM作为基本单元,该算法在原本的LSTM模块中引入时空因素进行学习。为了更好地计算长距离依赖,以编解码器的形式基于ST-LSTM进行分层扩展,将用户在其所在地的行为考虑在内,根据行为语义动态划分访问阶段,对访问记录按照停留时间进行灵活切割,以学习用户移动行为的内在含义。ST-LSTM作为编码器对序列的短期特征进行建模,BiLSTM对序列的长期特征进行双向融合,如图2所示。
图2 CHST-LSTM预测模型Fig.2 CHST-LSTM prediction model
用户移动轨迹具有一定的周期性及规律性,当轨迹序列粒度较细时,用户的访问序列很长。如果按固定时长划分阶段,范围较大则序列过长,范围较小则难以对用户行为阶段进行完整分析。考虑到用户在每个地点的停留时间可以在某种程度上反映该地点对于该用户的意义,本文基于停留时长对用户轨迹序列进行划分,将用户的访问长序列分为若干访问阶段。考虑到用户特性,选择将停留时长大于1 h的地点作为序列切割点。访问阶段划分如图3所示,将用户u的轨迹划分为一系列的访问阶段{S1,S2,…,Sn},其中Si={l1,l2,…,lm},表示阶段Si内的途经位置轨迹,用户在访问阶段Si内的最后一个停留位置lm的停留时长大于1 h。
图3 访问阶段划分Fig.3 Sessions of access stage
接着通过解码器帮助预测用户接下来的访问位置,利用ST-LSTM模块进行解码。假定解码器输出的隐藏层包含了过去途经位置和用户行为的相关信息,能够表达用户未来的移动意图,通过softmax函数计算用户接下来到达不同位置的概率,得到最有可能被访问的下一位置。
伴随移动互联网的发展以及城市化带来的人群聚集现象,下单外卖逐渐成为一种流行的新点餐方式,外卖配送服务大大便利了人们的生活。在送餐过程中,外卖员可以自行选择送餐顺序和路线,根据外卖员的行为特征对其进行下一位置预测,有利于互联网平台优化派单情况、规划推荐路径。本文将提出的算法应用于外卖员群体。
轨迹数据是通过对用户移动过程进行采样而获取的数据信息,用于反映用户在采样时间点的位置。现有的用户位置预测研究大都基于社交媒体签到数据,而该数据的个体时空轨迹往往比较稀疏。本文使用的数据集为我国南方某运营商的用户上网和通话数据,时长一共两周,时间为2021-06-01—2021-06-14。上网日志中包含用户ID、访问时间、访问时长、统一资源定位符(Uniform Resource Locator,URL)和接入基站等信息,关键字段如表1所示,经纬度为接入基站的位置。通话数据中包含用户ID、联系人ID、通话时间和通话时长等信息,如表2所示。用户通话或上网时,数据流向城市中密布的基站,基站的位置即可作为用户所在地的近似位置。不同于POI签到数据,蜂窝移动通信数据中的轨迹序列粒度较小。
表1 用户上网详单数据关键字段Tab.1 Key fields of dataset about Internet log
表2 用户通话数据关键字段Tab.2 Key fields of dataset about user’s calling
由于外卖员接单需要访问特定的应用软件,根据用户上网日志中的URL信息,利用关键字筛选出访问了外卖配送App的用户,考虑到外卖员工作需要拨打电话、访问外卖配送相关App和移动送货,根据通话次数、访问外卖配送相关App时长和移动距离等信息对其进一步筛选,共计3 163人,筛选后的外卖员轨迹数据集如表3所示。被筛选出的外卖员群体两周内共有5 497个位置点和4 953 858条记录,位置信息包含在上网记录中,相当于4 953 858个不规则(非定时采样)的轨迹采样点,平均每个用户的轨迹点数为1 566,用户轨迹序列较长。
表3 外卖员群体轨迹数据集Tab.3 Trajectory dataset of deliverymen
为了直观展示用户轨迹数据,绘制了用户A某天内途经的基站(上网过程中接入的基站),如图4所示,根据用户接入的不同基站可以大致还原用户A在这一天内的位置路线。
图4 用户A轨迹Fig.4 Trajectory of user A
外卖员群体在送餐过程中,需要先通过手机访问外卖类App进行接单以及查看商家位置、订单内容和客户位置等信息,到达商家后进行取餐,取餐后需要前往客户所在地进行配送,到达后需要通过拨打电话联系客户进行告知。因此外卖员的工作状态与其通话行为、移动行为和访问App行为等密切相关,下面对外卖员的行为进行分析。
外卖员的通话次数可以反映工作状态,对外卖员群体1 d内每小时的通话次数进行聚类,类中心如图5所示,图例表示不同类型。可以看出,外卖员群体于中餐时段、下午茶时段、晚餐时段和宵夜时段均有较多通话记录,不同外卖员的工作模式稍有不同,有些外卖员倾向于中午工作,有些则倾向于晚上工作。
图5 通话次数类中心Fig.5 Cluster centers of the number of calls
假设用户上网时手机接入的基站位置近似为用户所在位置,在已知用户接入基站经纬度信息的前提下,用户移动轨迹的距离信息可由其接入基站的位置变化进行计算。同样,对外卖员群体1 d内每小时的移动距离进行聚类,类中心如图6所示,可以看出,外卖员群体远距离移动行为同样集中于中午、下午和晚间的用餐时段,正是其送单行为的体现。
图6 移动距离类中心Fig.6 Cluster centers of moving distance
观察数据发现,大多数外卖员的工作有着较强的时间规律性,另外,由于外卖员移动路线取决于各个位置本身的功能,固定的商家和客户位置分布情况以及固有的城市路径决定了整个外卖员群体的工作路线会较为稳定。一般来说,该群体工作区域较为固定,这些因素均为外卖员轨迹预测问题提供了良好的基础条件。
不同的位置在外卖员送餐过程中有着不同的角色,外卖员自身的工作状态往往与所处位置息息相关,例如,处于商圈、办公区和住宅区的外卖员工作行为一般也不同。因此,外卖员群体的移动行为和工作行为能够反映出位置的功能,分析外卖员的历史轨迹和行为模式有利于得到详尽的位置功能信息,从而能够更好地实现下一位置的预测。
基于前述用户行为分析,认为外卖员工作行为主要可以由通话行为、工作时长和移动距离进行描述。对用户统计每小时通话次数、访问外卖类App的时长(s)、移动距离(km)数据以及两周内所有用户的三元数据进行聚类,当聚类数为8时,聚类轮廓系数超过0.6,可以得到8组小时制工作模式,中心点如表4所示。
表4 小时制工作模式(k=8)
由表4可以看出,外卖员在不同时间、不同地点的工作状态可能处于不同模式下,例如夜间大部分外卖员处于模式1状态,而用餐时间工作于不同区域的外卖员工作模式存在差异,在商家及客户密集区,外卖员工作效率(单位时间送单量/通话次数)一般更高。为了使用更精细的用户工作模式信息,本文设置k=50,将用户的工作行为模式分为50类,这里不详细列出具体数据。
在实验过程中,选择前8 d的轨迹进行训练,最后3 d进行测试,中间3 d进行评估。位置嵌入向量维度为128,Transformer编码器为4层,含8个注意力头。
为了评估模型的预测效果,对比CHST-LSTM模型与其他常见的5种预测算法在本数据集上的表现,实验模型如下:
① ST-RNN[12]:时空循环神经网络模型,在递归传播中通过特定的时间和距离转换矩阵融合了空间和时间的相关性。
② ST-LSTM[1]:时空长短期记忆网络模型,将时间和距离信息嵌入潜在向量。
③ GRU[19]:门控循环单元,构成网络用于模拟用户的历史轨迹。
④ DeepMove[16]:多模块注意力循环网络,利用注意力机制模拟移动的多层次周期性。
⑤ HST-LSTM[1]:分层时空长短期记忆网络, ST-LSTM作为编解码器。
比较结果如表5所示,用top-N准确率(N取1,5,10)对位置预测的性能进行评估,本文提出的基于用户行为的分层模型CHST-LSTM取得了最好的预测效果。
表5 预测模型效果比较Tab.5 Comparison among different prediction models
为了验证ST-LSTM分层架构的作用,本文设计了几组由ST-LSTM作为基本单元构成的预测模型变体,位置的嵌入向量均采用融合了用户行为信息的上下文感知向量,通过对比实验进行分析,模型如下:
① ST-LSTM:时空长短期记忆网络模型;
② 分层ST-LSTM:分层时空长短期记忆网络,ST-LSTM作为编解码器,轨迹按固定时长划分阶段;
③ 分层ST-LSTM+LSTM:分层时空长短期记忆网络,ST-LSTM作为编解码器,用LSTM处理长周期变化,轨迹按固定时长划分阶段,HST-LSTM方法;
④ 分层ST-LSTM+BiLSTM:分层时空长短期记忆网络,ST-LSTM作为编解码器,用BiLSTM处理长周期变化,轨迹按固定时长划分阶段;
⑤ 动态分层ST-LSTM+BiLSTM:分层时空长短期记忆网络,ST-LSTM作为编解码器,用BiLSTM处理长周期变化,轨迹按用户状态划分阶段,本文方法。
相比于ST-LSTM,以编解码器的形式进行序列信息处理能够更好地捕获长短期变化特征,如图7所示;在此基础之上通过LSTM、BiLSTM处理全局上下文信息,对于位置预测能起到更好的效果;根据用户停留时长进行动态划分后,又进一步提升了预测性能。另外,分层ST-LSTM+LSTM方法相当于在表5的HST-LSTM模型的基础上使用位置的上下文感知向量,对比二者结果可以证明位置的上下文语义对于位置预测的意义。可见基于用户状态动态分层、考虑上下文信息等处理对于捕获序列长距离依赖的意义,这些方法能够提升下一位置预测的准确率。
图7 CHST-LSTM成分分析Fig.7 Component analysis of CHST-LSTM
对于嵌入方法,本文选取了5种嵌入模型,对得到的位置嵌入向量利用本文的动态分层ST-LSTM预测,进行对比实验,嵌入方法包括Skip-gram[4]、POI2Vec[3]、TALE[5]、HIER[6]和CTLE[7]。表6显示了本文嵌入模型与5种对比嵌入方法的性能评估结果。
表6 嵌入模型效果比较Tab.6 Comparison among different embedding methods
表6结果显示融合了用户行为的位置嵌入向量质量更高,模型在下一位置预测中表现更佳。在这些方法中,Skip-gram没有考虑到访问时间、位置的地理信息,仅仅从上下文中提取信息,POI2Vec引入了空间信息,但位置属性与实际地理位置未必强相关,TALE和HIER虽然考虑了访问时间,但无法学习相对时间差,CTLE考虑了访问时间差,也可以区分特定上下文环境中位置的不同功能,但是仅有此信息无法关联上用户行为。用户处于不同位置的不同行为可以反映出所处地的特征,外卖员作为各个位置之间的穿梭者,其工作行为很大程度上反映了所处的位置,本文模型在考虑上下文信息的同时,将外卖员工作模式、访问时间纳入其中,能够进一步提升位置的嵌入质量,从而对用户下一位置预测带来性能提升。
为了进一步研究用户行为相关信息的有效性,设计了CHST-LSTM模型的变体进行比较,实验模型如下:
①Trans:该模型使用Transformer的位置编码,并且仅使用MLM目标进行预训练;
②Trans+Time:该模型用时间编码取代基本模型Trans中的位置编码;
③Trans+Time+Mode:该模型在使用时间编码的基础上加上了用户行为模式编码;
④Trans+MT:该模型使用Transformer位置编码,但在预训练期间加入时间掩码训练目标,与MLM目标结合;
⑤Trans+MT+MA:该模型使用Transformer位置编码,在预训练期间同时加入时间掩码和模式掩码训练目标;
⑥Trans+Time+Mode+MT+MA:本文方法。
在外卖员群体的数据集上,将这几种变体模型与CHST-LSTM模型预测位置的准确率进行比较,如图8所示。
图8 嵌入方法分析Fig.8 Analysis of the embedding methods
与其他位置嵌入方法相比,利用Transformer编码器进行训练已经具有一定的性能优势,这表明更好地学习上下文语义能够得到更高质量的位置特征表达,应用于位置预测任务能够达到更好的效果。加入时间编码模块、预测掩码时间等方法都能将时间信息融合到模型中,能够提高基本模型的预测性能。在此基础之上,加入用户行为模式编码模块、预训练时加入掩码行为模式的预测都能进一步提升预测效果。由此可见,用户到达某位置的时间、在某位置的行为模式都能为位置的嵌入表征提供有效信息,因此将其加入模型中以提升预测性能。
针对位置预测问题,本文将用户行为纳入考虑,设计了CHST-LSTM模型。为了处理用户行为信息,将用户访问时间、行为模式与访问地点共同编码,经上下文感知嵌入模型,通过掩码预训练得到位置的嵌入向量。为了更好地处理序列的长短期依赖问题,将位置嵌入向量用于基于用户状态划分的动态ST-LSTM分层模型,通过编解码器和BiLSTM提取长短期移动特征,共同构成CHST-LSTM预测模型。在对外卖员群体进行实验时,融合了访问时间、工作模式信息,得到了更高质量的位置嵌入表示,通过动态ST-LSTM分层模型使得外卖员下一位置预测更加准确,验证了CHST-LSTM模型对于轨迹预测的性能提升。在后续的工作中将考虑处理更复杂的用户行为信息,并将之应用于位置预测。