基于用户个性化生活模式的POI推荐方法
个性化推荐算法:基于阅读历史和兴趣的推荐系统 #生活乐趣# #阅读乐趣# #电子书推荐#
基于用户个性化生活模式的poi推荐方法
技术领域
1.本发明涉及推荐系统中的poi推荐方法,poi推荐不仅可以向用户推荐下一次最有可能去的top-k个poi,方便用户生活,还可以用于向广告商提供广告投放建议,为企业带来潜在的商业价值,同时还可以向城市交通规划提供建议等。
背景技术:
2.随着信息技术和智能设备的快速发展,基于位置的社交网络(location-based social networking services,lbsns)如foursquare,facebook,gowalla,yelp等越来越受人们的欢迎。在lbsns上,用户可以登录打卡他们的位置并分享与他们的位置相关的内容,由于lbsns用户数量的迅速增加,近年来从这些平台收集的用户签到数据量迅速增加,由此催生了一个新的推荐系统子领域,即兴趣点推荐(point-of-interest recommendation)。poi推荐是lbsns的重要应用,一方面,可以给用户推荐可能感兴趣的兴趣点,帮助用户解决其“选择困难症”,另一方面,帮助企业寻找目标客户,给企业带来了潜在的商业价值,同时还可以向城市交通规划提供建议等。
3.近年来已经有非常多的poi推荐算法来根据用户偏好推荐poi,包括传统的机器学习方法和深度学习方法。这些方法大多根据用户历史签到数据学习用户偏好,结合地理影响、社会影响等来进一步完善模型,提高推荐性能。由于基于协同过滤的方法在其他领域的推荐系统中取得了成功,基于协同过滤的方法也被用于poi推荐,但是这些方法只能模拟用户的静态偏好。在实际场景中,poi本身的受欢迎程度会随着时间的变化而变化,同时用户会在特定的时间采取特定的行动,比如午餐时间去餐馆,晚上休息时间去酒吧。另一方面,用户签到行为之间存在相互影响,导致特定的poi签到顺序,如很多用户会选择晚饭后去公园,但是在公园散步后,有的用户会去商场购物,有的用户会去健身房,这也反映了不同用户的个性化偏好,所以需要更多地关注于对用户的动态偏好建模。除此之外,还有一些方法利用用户的社交关系进行poi推荐,如果两个用户是朋友关系,则这两个用户往往会有相似的poi偏好,可以向用户的朋友推荐该用户感兴趣的poi,但是这种方法受限于用户之间的信任程度,有的朋友之间也可能不会有相似的poi偏好。
4.目前,现有的poi推荐方法存在以下主要问题:1)现有的方法受到数据稀疏性问题的影响,与整个城市的poi数量相比,用户所去过的poi数量非常少,poi推荐的准确率不高。2)大多数现有的poi推荐方法没有充分挖掘用户签到数据,因此用户行为的规律性难以发现和利用。3)许多方法仅能推荐用户曾经去过的poi,而无法推荐符合用户个性化生活模式但用户没有去过的poi,即无法帮助用户发现新的poi。
技术实现要素:
5.本发明要克服上述poi推荐方法的不足之处,提出一种基于用户个性化生活模式的poi推荐方法。
6.用户个性化生活模式,包括用户个性化偏好模式和用户个性化行为模式,其中用
户个性化偏好模式包括用户对poi类型的偏好和用户对poi的偏好,用户对poi的偏好又包括用户对poi的长期和短期偏好以及用户签到子序列对poi偏好的影响,用户个性化行为模式指不同时间段中用户的最大转移距离。本发明对用户签到数据进行多角度挖掘分析,根据用户历史签到数据中用户对poi类型的偏好和用户下一次访问poi时间段内的个性化行为模式对poi进行过滤,得到poi候选集。建模用户对于poi长期和短期的偏好,以及用户签到子序列对用户当前poi偏好的影响,根据用户下一个访问时间,结合用户个性化偏好模式和用户个性化行为模式对poi候选集进行重新排序,最终向用户推荐top-k个poi。本发明充分考虑了用户签到数据集的特征,通过对原始poi集合进行过滤得到poi候选集,缓解了poi推荐中的数据稀疏性问题。同时,根据用户对于poi类型偏好及用户在下一次访问poi时间段内的用户个性化生活模式,向用户推荐poi,所推荐的poi中即包括用户访问过的poi又包括符合用户偏好和用户个性化生活模式但用户未访问过的poi,提高了poi推荐的多样性。
7.本发明是通过以下技术方案达到上述目的:即基于用户个性化生活模式的poi推荐方法,具体的实施步骤如下:
8.(1)对原始数据进行预处理。对用户签到数据进行清洗,以及用户签到数据的规范化处理。
9.(2)对步骤(1)中所述数据进行时间划分。将用户签到数据按时间进行排序,然后按天进行划分得到用户历史签到子序列和最近签到子序列。
10.(3)对步骤(2)中所述数据进行用户个性化生活模式建模。首先提取用户和用户签到序列中poi类型之间的潜在信息,计算公式如下:
[0011][0012]
其中,uu表示用户u的嵌入向量,表示用户u访问的poi类型j的嵌入向量,和是两个权重矩阵,分别用于提取用户和poi类型潜在信息。
[0013]
利用长短期记忆神经网络模型建模用户关于poi类型的偏好,计算公式如下所示:
[0014][0015]
其中,和分别代表单个长短期记忆神经网络模型单元的输出结果和单元状态,为用户和poi类型之间的潜在信息,模型最终输出表示用户对于poi类型的偏好。
[0016]
提取用户和用户历史签到序列中poi的潜在信息,计算公式如下:
[0017][0018]
其中,表示用户u历史签到序列中第j个poi的嵌入向量,和是两个权重矩阵,分别用于提取用户和用户历史签到序列中poi的潜在信息。
[0019]
利用长短期记忆神经网络模型建模用户历史签到序列中的poi偏好,计算公式如下:
[0020][0021]
其中,为用户和用户历史签到序列中poi的潜在信息,和分别代表单个
长短期记忆神经网络模型单元的输出结果和单元状态,表示用户历史签到序列中对于poi的偏好,即用户的长期偏好,同时所有用户历史签到子序列中的转化为|sh|为单个历史签到子序列的长度。
[0022]
提取用户和用户最近签到序列中poi的潜在信息,计算公式如下:
[0023][0024]
其中,为用户最近签到序列中第j个poi的嵌入向量表示,和是两个权重矩阵,分别用于提取用户和用户最近签到序列中poi的潜在信息。
[0025]
利用长短期记忆神经网络模型建模用户最近签到序列中的poi偏好,计算公式如下:
[0026][0027]
其中,为用户和用户最近签到序列中poi的潜在信息,和分别代表单个长短期记忆神经网络模型单元的输出结果和单元状态,表示用户最近签到序列中对于poi的偏好,即用户的短期偏好,同时所有用户最近签到序列中的转化为|sn|为用户最近签到序列的长度。
[0028]
将一周时间划分为48个时间段,其中包括工作日24个时间段,周末24个时间段,将所有用户签到序列中的具体时间对应到这48个时间段。
[0029]
对于每个时间段,构造每个时间段的poi集合poi集合中的每个poi是在该时间段至少有一个用户访问过的poi,那么对于每一段用户历史签到子序列sh可以得到一个长度为|sh|的签到时间段序列
[0030]
可以计算不同时间段poi集合的相似度,计算公式如下:
[0031][0032]
其中,hi和hj分别表示时间段i和时间段j中的poi集合,τ
i,j
表示时间段i和时间段j中poi集合的相似度。
[0033]
计算带有时间权重信息的用户历史签到子序列表示sh,计算公式如下:
[0034][0035]
其中,表示当前时间段c与用户历史签到子序列sh中第j个时间段的相似度,v
te,2
为用户历史签到子序列sh中第t个poi的lstm单元状态,则n-1段用户历史签到序列sh∈{s1,s2,...,s
n-1
}可以表示为{s1,s2,...,s
n-1
},用户最近签到用平均池化来得到,计算公式如下:
[0036][0037]
计算每一段历史签到子序列sh∈{s1,s2,...,s
n-1
}对于最近签到序列sn的影响,计算公式如下:
[0038][0039][0040]
其中,c(s)为归一化因子,函数g(sh)=whsh用于生成sh的表示,wh为可训练的权重矩阵,函数计算最近签到序列sn与历史签到序列sh的相关度,则为序列级别的用户偏好,即用户历史签到子序列对用户当前偏好的影响。
[0041]
对每个用户历史签到子序列,计算用户相邻两次签到的转移距离,计算公式如下:
[0042][0043]
其中,di表示用户历史签到子序列中第i+1个poi到第i个poi的转移距离,表示第i个poi的经度,表示第i个poi的纬度,r为地球半径;
[0044]
对每个时间段的用户个性化行为模式建模,计算每个时间段内,所有用户签到子序列的最大转移距离,计算公式如下:
[0045]dt
=max(di)
ꢀꢀ
(13)
[0046]
其中,d
t
表示第t个时间段内用户历史签到子序列中用户的最大转移距离。
[0047]
(4)根据步骤(3)中所获用户个性化偏好模式和用户个性化行为模式,对poi集合进行过滤,得到poi候选集。
[0048]
计算用户最喜欢的top-k个poi类型,计算公式如下:
[0049][0050]yis
=σ(ws·
input+bs);i=1,2,...,p
ꢀꢀꢀꢀꢀ
(15)
[0051]
其中,σ表示softmax函数,分别为权重矩阵,ci表示第i个poi类型的嵌入向量,uu表示用户的嵌入向量,表示用户对poi类型的偏好;
[0052]
根据用户最喜欢的top-k个类型对每个用户的poi候选集进行过滤,计算公式如下:
[0053][0054]
其中,vu表示用户原始的poi候选集,表示经过第一层过滤后的poi候选集。
[0055]
根据用户下一次访问poi时间,结合用户在该时间段内的用户个性化行为模式,从poi候选集中过滤出与用户上一次签到位置的距离在该时间段用户最大转移距离内的poi,并加入该范围内属于用户偏好top-k个类型的但用户未去过的poi,得到最终的poi候选集,计算公式如下:
[0056][0057]
其中,表示经过第一层过滤后的poi候选集,表示经过第二层过滤后的poi候选集,即最终的poi候选集。
[0058]
(5)对poi候选集重新排序,得到用户最喜欢的top-k个poi。计算poi候选集中与用户上一个访问位置的距离,计算公式如下:
[0059][0060]
其中,和分别表示用户上一个访问位置的经度和纬度,和分别表示poi候选集中第j个poi的经度和纬度。
[0061]
计算用户对于poi候选集中poi类型之间的偏好,用户历史签到序列和用户最近签到序列中用户对于poi候选集中poi的偏好,计算公式如下:
[0062][0063]
其中,uu表示用户的嵌入向量,cc表示poi候选集中poi类型的嵌入向量,vv表示poi候选集中poi的嵌入向量。
[0064]
计算用户历史签到子序列对于poi候选集中poi的偏好影响,计算公式如下:
[0065][0066]
其中,其中w
p
∈r
|l|
×
2d
表示poi候选集中poi的投影矩阵,|l|表示poi候选集中poi的个数。
[0067]
对上述指标分别进行归一化处理,对poi候选集中的poi进行重新排序得到最终用户最有可能访问的top-k个poi,计算公式如下:
[0068][0069]
其中,fd,fv,fs分别表示归一化函数,wd,wv,ws分别表示距离,用户偏好和历史签到序列对poi偏好影响的权重矩阵。
[0070]
进一步,步骤(1)所述的对用户签到数据进行清洗,包括清除缺失值、噪声数据、删除签到记录过少的数据。
[0071]
本发明的优点是:根据用户个性化生活模式对poi集合进行过滤,有利于缓解lbsns中数据稀疏性的问题。本发明充分挖掘用户签到序列中的用户个性化生活模式,能够提高poi推荐的准确性;同时利用用户个性化偏好模式中用户对poi类型的偏好和用户个性化行为模式进行推荐,能帮助用户发现新的poi,有利于提高poi推荐的多样性。
附图说明
[0072]
图1是本发明方法的总体流程图。
[0073]
图2是用户个性化生活模式说明图。
[0074]
图3是用户个性化签到序列例图。
具体实施方式
[0075]
为了使本发明的目的、技术方案和优点更加清楚,下面将对本发明的具体实施方式作进一步的详细描述。
[0076]
本发明实施例提供了一种基于用户个性化生活模式的poi推荐方法,总体流程如图1所示,该方法包括:
[0077]
(1)对原始用户签到数据进行预处理。对用户签到数据进行清洗,如清除缺失值、噪声数据、删除签到记录过少的数据等,以及用户签到数据的规范化处理。
[0078]
(2)对步骤(1)中所述数据进行时间划分。将用户签到数据按时间进行排序,然后按天进行划分得到用户历史签到子序列和最近签到子序列。
[0079]
(3)对步骤(2)中所述数据进行用户个性化生活模式建模。如图二所示,用户个性化生活模式包括用户个性化偏好模式和用户个性化行为模式。其中用户个性化偏好模式包括用户对于poi的偏好以及用户对于poi类型的偏好,用户对于poi的偏好又包括用户对poi短期偏好、用户对poi长期偏好和用户签到子序列对poi偏好的影响。
[0080]
首先提取用户和用户签到序列中poi类型之间的潜在信息,计算公式如下:
[0081][0082]
其中,uu表示用户u的嵌入向量,表示用户u访问的poi类型j的嵌入向量,和是两个权重矩阵,分别用于提取用户和poi类型潜在信息。
[0083]
利用长短期记忆神经网络模型建模用户关于poi类型的偏好,计算公式如下所示:
[0084][0085]
其中,和分别代表单个长短期记忆神经网络模型单元的输出结果和单元状态,为用户和poi类型之间的潜在信息,模型最终输出表示用户对于poi类型的偏好。
[0086]
提取用户和用户历史签到序列中poi的潜在信息,计算公式如下:
[0087][0088]
其中,表示用户u历史签到序列中第j个poi的嵌入向量,和是两个权重矩阵,分别用于提取用户和用户历史签到序列中poi的潜在信息。
[0089]
利用长短期记忆神经网络模型建模用户历史签到序列中的poi偏好,计算公式如下:
[0090][0091]
其中,为用户和用户历史签到序列中poi的潜在信息,和分别代表单个长短期记忆神经网络模型单元的输出结果和单元状态,表示用户历史签到序列中对于poi的偏好,即用户的长期偏好,同时所有用户历史签到子序列中的转化为|sh|为单个历史签到子序列的长度。
[0092]
提取用户和用户最近签到序列中poi的潜在信息,计算公式如下:
[0093][0094]
其中,为用户最近签到序列中第j个poi的嵌入向量表示,和是两个权重矩阵,分别用于提取用户和用户最近签到序列中poi的潜在信息。
[0095]
利用长短期记忆神经网络模型建模用户最近签到序列中的poi偏好,计算公式如下:
[0096][0097]
其中,为用户和用户最近签到序列中poi的潜在信息,和分别代表单个长短期记忆神经网络模型单元的输出结果和单元状态,表示用户最近签到序列中对于poi的偏好,即用户的短期偏好,同时所有用户最近签到序列中的转化为|sn|为用户最近签到序列的长度。
[0098]
将一周时间划分为48个时间段,其中包括工作日24个时间段,周末24个时间段,将用户签到序列中的具体时间对应到这48个时间段。
[0099]
对于每个时间段,构造每个时间段的poi集合poi集合中的每个poi是在该时间段至少有一个用户访问过的poi,那么对于每一段用户历史签到子序列sh可以得到一个长度为|sh|的签到时间段序列
[0100]
可以计算不同时间段poi集合的相似度,计算公式如下:
[0101][0102]
其中,hi和hj分别表示时间段i和时间段j中的poi集合,τ
i,j
表示时间段i和时间段j中poi集合的相似度。
[0103]
计算带有时间权重信息的用户历史签到子序列表示sh,计算公式如下:
[0104][0105]
其中,表示当前时间段c与用户历史签到子序列sh中第j个时间段的相似度,v
te,2
为用户历史签到子序列sh中第t个poi的lstm单元状态,则n-1段用户历史签到序列sh∈{s1,s2,...,s
n-1
}可以表示为{s1,s2,...,s
n-1
},用户最近签到用平均池化来得到,计算公式如下:
[0106][0107]
计算每一段历史签到子序列sh∈{s1,s2,...,s
n-1
}对于最近签到序列sn的影响,计算公式如下:
[0108][0109][0110]
其中,c(s)为归一化因子,函数g(sh)=whsh用于生成sh的表示,wh为可训练的权重矩阵,函数计算最近签到序列sn与历史签到序列sh的相关度,则为序列级别的用户偏好,即用户历史签到子序列对用户当前偏好的影响。
[0111]
对每个用户历史签到子序列,计算用户相邻两次签到的转移距离,计算公式如下:
[0112][0113]
其中,di表示用户历史签到子序列中第i+1个poi到第i个poi的转移距离,表示第i个poi的经度,表示第i个poi的纬度,r为地球半径;
[0114]
对每个时间段的用户个性化行为模式建模,计算每个时间段内,所有用户签到子序列的最大转移距离,计算公式如下:
[0115]dt
=max(di)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(13)
[0116]
其中,d
t
表示第t个时间段内用户历史签到子序列中用户的最大转移距离。
[0117]
具体案例中,1082号用户在5月17日共有15条签到记录。其中在10点到11点中分别在40.63063339,-73.97712596,40.64510634,-73.9791548,40.68444569,-73.97785664有三条签到记录,在5月21日10点到11点分别在40.63072779,-73.97716999和40.64510634,-73.9791548,40.67838332,-73.94846453有三条签到记录。根据上述公式则该用户在5月17日中10点到11点转移距离分别约为1618米和4375米,该用户在5月21日中10点到11点转移距离分别约为1607米和4515米,则该用户在5月17日和5月21日10点到11点这个时间段中最大转移距离为4515米。
[0118]
(4)根据步骤(3)中所获用户偏好和用户个性化生活模式,对poi集合进行过滤,得到poi候选集。
[0119]
计算用户最喜欢的top-k个poi类型,计算公式如下:
[0120][0121]yis
=σ(ws·
input+bs);i=1,2,...,p
ꢀꢀꢀꢀꢀꢀꢀ
(15)
[0122]
其中,σ表示softmax函数,分别为权重矩阵,ci表示第i个poi类型的嵌入向量,uu表示用户的嵌入向量,表示用户对poi类型的偏好;
[0123]
根据用户最喜欢的top-k个类型对每个用户的poi候选集进行过滤,计算公式如下:
[0124][0125]
其中,vu表示用户原始的poi候选集,表示经过第一层过滤后的poi候选集。
[0126]
根据用户下一次访问poi时间,结合用户在该时间段内的用户个性化行为模式,从
poi候选集中过滤出与用户上一次签到位置的距离在该时间段用户最大转移距离内的poi,并加入该范围内属于用户偏好top-k个类型的但用户未去过的poi,得到最终的poi候选集,计算公式如下:
[0127][0128]
其中,表示经过第一层过滤后的poi候选集,表示经过第二层过滤后的poi候选集,即最终的poi候选集。
[0129]
具体案例中,在过滤出与用户上一次签到位置的距离在该时间段用户最大转移距离内的poi后,在城市poi数据集中,找出在与用户上一次签到位置的距离在该时间段用户最大转移距离内的并且属于用户最喜欢的top-k个类型的poi,加入poi候选集,得到最终的poi候选集。
[0130]
(5)对poi候选集重新排序,得到用户最喜欢的top-k个poi。计算poi候选集中与用户上一个访问位置的距离,计算公式如下:
[0131][0132]
其中,和分别表示用户上一个访问位置的经度和纬度,和分别表示poi候选集中第j个poi的经度和纬度。
[0133]
具体案例中,1082号用户上一次访问位置的经度为-73.80885946,纬度为40.69967673,poi候选集中的一个poi的经度为-73.80793463,纬度为40.70114391,则该poi与用户上一个访问位置的距离利用上述公式可计算得到约为180米。
[0134]
计算用户对于poi候选集中poi类型之间的偏好,用户历史签到序列和用户最近签到序列中用户对于poi候选集中poi的偏好,计算公式如下:
[0135][0136]
其中,uu表示用户的嵌入向量,cc表示poi候选集中poi类型的嵌入向量,vv表示poi候选集中poi的嵌入向量。
[0137]
计算用户历史签到子序列对于poi候选集中poi的偏好影响,计算公式如下:
[0138][0139]
其中,其中w
p
∈r
|l|
×
2d
表示poi候选集中poi的投影矩阵,|l|表示poi候选集中poi的个数。
[0140]
对上述指标分别进行归一化处理,对poi候选集中的poi进行重新排序得到最终用户最有可能访问的top-k个poi,计算公式如下:
[0141][0142]
其中,fd,fv,fs分别表示归一化函数,wd,wv,ws分别表示距离,用户偏好和历史签到序列对poi偏好影响的权重矩阵。
[0143]
如附图1,本发明方法首先根据用户签到数据,对用户签到数据进行预处理后,建
模用户个性化生活模式。根据用户个性化生活模式,对poi集合进行过滤,得到poi候选集,对poi候选集进行重新排序,最终得到用户最喜欢的top-k个poi。
[0144]
如附图2,用户个性化生活模式,包括用户个性化偏好模式和用户个性化行为模式,其中用户个性化偏好模式包括用户对poi类型的偏好和用户对poi的偏好,用户对poi的偏好又包括用户对poi的长期和短期偏好以及用户签到子序列对poi偏好的影响,用户个性化行为模式指不同时间段中用户的最大转移距离。
[0145]
如附图3,用户序列模式举例。用户行为的序列模式通常有两种含义。一方面,用户会在特定的时间采取特定的行动,比如晚餐时间去餐馆,休闲时间去电影院等。另一方面。用户行为之间存在一定的时间顺序,所以会出现特定的poi访问序列,这也反映了不同用户的个性化偏好。比如,图中三位用户都会在下班后吃晚餐,但是三位用户去不同的餐馆吃不同类型晚餐,反应了用户的个性化偏好。用户一在吃完晚餐后选择去电影院看电影然后再回家;用户二在吃完晚餐后选择去商场购物然后再回家;用户三在吃完晚餐后选择去球场做运动再回家。这三种不同的访问序列也反应了用户的个性化偏好。
[0146]
实施应用案例表明,本发明所提出的基于用户个性化生活模式的poi推荐方法是有效的,相对于其他设计方法,本发明方法将用户签到的绝对时间变换为时间段,并对poi集合进行两次过滤,缓解了poi推荐中的数据稀疏性问题,从多个角度挖掘用户个性化偏好模式,同时结合用户在下一次访问时间段内的用户个性化行为模式,向用户推荐poi,其中包含用户访问过的poi以及符合用户个性化偏好模式和用户个性化行为模式的用户未访问过的poi,即能够帮助用户发现新的poi,设计方案不仅能提高poi推荐的准确性,同时还能提高poi推荐的多样性。
[0147]
以上的所述乃是本发明的具体实施应用案例及所运用的技术原理,本发明的保护范围不应当被视为仅限于实施应用案例所陈述的具体形式,若依本发明的构想所作的改变,其所产生的功能作用仍未超出说明书及附图所涵盖的精神时,仍应属本发明的保护范围。
网址:基于用户个性化生活模式的POI推荐方法 https://www.yuejiaxmz.com/news/view/1092085
相关内容
基于POI数据的天津市主城区生活便利性分析基于用户评价的个性化饮食推荐方法研究
美团生活服务个性化推荐实践
基于POI数据的生活便利性分析——以烟台市城区为例
基于用户行为的个性化推荐算法与技术
基于用户多兴趣的个性化推荐算法研究
基于网络生活方式的综合价值个性化推荐机制研究
基于用户兴趣的个性化美食推荐系统
基于深度学习的电子商务个性化推荐模型
基于内容的个性化推荐算法