1.一种基于社交关系融合位置动态流行度和地理特征的兴趣点推荐方法,其特征在于,所述方法包括如下步骤:步骤1:收集、整理原始签到数据集和社交关系数据集,分别将其转换成用户‑时间‑兴趣点三维评分矩阵以及二维关系矩阵,包括:步骤1‑1:整理原始签到数据集C,获得n条签到记录,记作C={c1,c2,…,cn},签到数据集C中的所有用户形成用户集合U,所有兴趣点形成地址集合L,用户数量和兴趣点数量分别记作NU和NL,对签到记录中的签到时间进行取整,将离散的签到时间转换为24个时间槽,时间槽集合T={0,1,2,…,23};
步骤1‑2:在签到数据集C中统计某用户u在时间槽t时访问某地址l的次数,若签到次数为0,则用户u在时间槽t时对地址l的评分ru,t,l为0,否则,ru,t,l=1,汇总所有评分,形成用户‑时间‑兴趣点三维评分矩阵R={ru,t,l},其中,u∈U,t∈[0,23],l∈L,U和L分别是用户集合和兴趣点集合;
步骤1‑3:整理原始的社交关系数据集F,获得m条社交关系记录,记作F={f1,f2,…,fm},将每一条社交关系记录形式化为<用户ux,用户uy>二元组,x∈[1,NU],y∈[1,NU],NU是数据集中所有用户的数量;
步骤1‑4:构建二维用户社交关系矩阵S={sxy}:
该矩阵的行数和列数均为用户数量NU,x∈[1,NU],y∈[1,NU],其元素sxy代表了用户ux与uy之间是否存在社交关系;
步骤2:选取基于位置的社交网络中某活跃用户作为推荐服务对象,为该目标用户删除评分矩阵中的弱相关行和弱相关列,改进传统的基于用户的协同过滤算法,为目标用户生成基于友谊的预测评分,包括:步骤2‑1:确定位置社交网络中某目标用户ua作为推荐服务对象,搜索社交关系矩阵S中目标用户ua所在的行,获取该行中元素值为1的列号,形成目标用户ua的朋友集合Fa,Fa集合中的元素个数记为Fnuma,同时记录下该行中元素值为0的列号,形成与目标用户ua无社交关系的用户集合UnFa;
在用户‑时间‑兴趣点三维评分矩阵R中,若用户ui∈UnFa,则在R中删除用户ui的评分信息,得到删除与目标用户ua无社交关系的用户,即弱相关行后的评分矩阵R1={ri',t,j},i'∈[1,Fnuma],t∈[0,23],j∈[1,NL],其中i'表示用户编号,t表示时间槽的值,j表示地址编号,Fnuma表示目标用户ua的朋友个数,NL表示兴趣点总数,ri',t,j表示用户ui'在时间槽t时对地址lj的评分;
通过社交关系的筛选,有效降低了原始评分矩阵R的行规模,即|i'|=Fnuma<
步骤2‑2:在评分矩阵R1中,逐个计算每个地址在所有时间槽内的评分总和,若评分总和等于0,则表示目标用户ua的所有朋友在任何时间内均未访问过此地址,将该地址加入到unvisit_Fa集合中;
若地址lj∈unvisit_Fa,则在R1中删除lj的评分信息,得到删除无关地址,即弱相关列后的评分矩阵R2={ri',t,j'},i'∈[1,Fnuma],t∈[0,23],j'∈[1,NL‑|unvisit_Fa|],其中i'表示用户编号,t表示时间槽的值,j'表示地址编号,Fnuma表示目标用户ua的朋友个数,NL表示兴趣点总数,|unvisit_Fa|表示目标用户的所有朋友均未访问过的地址数量,ri',t,j'表示用户ui'在时间槽t时对地址lj'的评分;
通过无关地址的删除,在评分矩阵R1的基础上进一步降低了列规模,即|j'|=NL‑|unvisit_Fa|<
步骤2‑3:基于预处理后的评分矩阵R2计算目标用户ua与其朋友用户之间的评分相似度,若用户v∈Fa,则目标用户ua和用户v的评分相似度为:其中,ua是推荐系统当前服务的目标对象,v为目标用户ua的一个朋友用户,t是某个时间槽,T是时间槽集合,L是所有兴趣点用集合,unvisit_Fa表示目标用户ua的所有朋友在任何时间内均未访问过的地址集合, 和rv,t,l分别表示用户ua和用户v在时间t时对兴趣点l的评分;
步骤2‑4:改进传统的基于用户的协同过滤算法,利用数据压缩后的评分矩阵R2,基于社交关系计算目标用户ua在tr时访问兴趣点l的预测评分:其中,ua是推荐系统当前服务的目标对象,tr是当前推荐时间对应的时间槽,l是位置社交网络中目标用户尚未访问过的一个兴趣点,unvisit_Fa表示目标用户ua的所有朋友在任何时间内均未访问过的地址集合,v为目标用户ua的一个朋友用户,Fa表示目标用户ua的朋友集合,sim(ua,v)为步骤2‑3中得到的用户ua和用户v的评分相似度, 表示用户v在时间tr时对兴趣点l的评分;
步骤3:统计各个兴趣点在每个时间槽内的被访问次数,将其同时与兴趣点在所有时间的总访问次数和所有兴趣点在某时间的被访问次数进行比较,计算各个兴趣点基于时间感知的动态流行度,包括:步骤3‑1:在原始签到数据集C中统计兴趣点l在时间槽t时的被访问次数Cnuml,t:Cnuml,t=∑u∈UCnumu,t,l 公式4
步骤3‑2:在签到数据集C中统计兴趣点l被访问的总次数Cnuml:
Cnuml=∑t∈T∑u∈UCnumu,t,l 公式5
步骤3‑3:统计签到数据集C中在时间槽t的内发生的所有被访问次数Cnumt:
Cnumt=∑l∈L∑u∈UCnumu,t,l 公式6
在公式公式4、公式5、公式6中,U为所有用户集合,L为所有地址集合,T为时间槽集合,Cnumu,l,t表示在签到数据集C中某用户u在时间槽t内访问兴趣点l的次数;
步骤3‑4:通过计算兴趣点l在时间槽t的被访问次数与兴趣点l在所有时间被访问的总次数的比值得到兴趣点的纵向流行度:其中,Cnuml,t表示兴趣点l在时间槽t的被访问次数,Cnuml表示兴趣点l在所有时间被访问的总次数;
步骤3‑5:通过计算兴趣点l在时间槽t的被访问次数与所有兴趣点在时间槽t的被访问次数的比值得到兴趣点的横向流行度:其中,Cnuml,t表示兴趣点l在时间槽t的被访问次数,Cnumt表示所有兴趣点在时间槽t的被访问次数;
步骤3‑6:综合步骤3‑4纵向比较和步骤3‑5横向比较的结果,得出兴趣点l在时间槽t的基于时间感知的动态流行度:popu(l,t)=popu1(l,t)×popu2(l,t) 公式9其中,popu1(l,t)是兴趣点l在时间槽t的纵向流行度结果,popu2(l,t)是兴趣点l在时间槽t的横向流行度结果;
汇总每个兴趣点在各个时间槽的基于时间感知的动态流行度,形成NL行24列的兴趣点‑时间二维流行度矩阵P;
步骤4:根据签到数据集中位置的经纬度信息,计算不同兴趣点之间的地理距离,基于幂律分布模型挖掘地理特征对兴趣点访问概率的影响;
步骤5:综合考虑用户社交关系、位置动态流行度和地理距离对用户访问行为的影响,融合基于友谊的预测评分、兴趣点的动态流行度以及基于距离的访问概率,为目标用户生成未访问地址的最终预测评分,对所有未访问地址按最终预测评分排序,为目标用户提供排名靠前的若干个地址组成的推荐列表;
步骤6:使用精确率Precision、召回率Recall和综合精度指标F1作为推荐系统的准确性评价指标,对比所述推荐方法与其他相关的经典推荐方法的预测准确度,评价所提出技术的适用性和有效性。
2.根据权利要求1所述的一种基于社交关系融合位置动态流行度和地理特征的兴趣点推荐方法,其特征在于,所述步骤4包括:步骤4‑1:假设目标用户ua已访问过的兴趣点集合为L_ua,l'∈L_ua,在签到数据集C中获取l'的地理经度Lngl'和纬度Latl',记作l'=
步骤4‑2:用户在不同地点的签到概率符合幂律分布,构建基于地理距离的幂律函数:
b
pr(dist(l,l'))=a×dist(l,l') 公式11其中,目标用户ua已访问过的兴趣点集合为L_ua,l'∈L_ua,在签到数据集C中获取l'的地理经度Lngl'和纬度Latl',记作l'=
步骤4‑3:计算当用户目前在兴趣点l'时,用户访问候选兴趣点l的条件概率pr(l|l'):其中,目标用户ua已访问过的兴趣点集合为L_ua,l'∈L_ua,在签到数据集C中获取l'的地理经度Lngl'和纬度Latl',记作l'=
步骤4‑4:利用朴素贝叶斯方法,计算目标用户ua访问候选兴趣点l的概率:
其中,目标用户ua已访问过的兴趣点集合为L_ua,l'∈L_ua,在签到数据集C中获取l'的地理经度Lngl'和纬度Latl',记作l'=
3.根据权利要求1所述的一种基于社交关系融合位置动态流行度和地理特征的兴趣点推荐方法,其特征在于,所述步骤5包括:步骤5‑1:确定位置社交网络中某目标用户ua作为推荐服务对象,将当前推荐时间timer转换为时间槽tr;
步骤5‑2:综合考虑用户社交关系、位置动态流行度和地理距离对用户访问行为的影响,计算目标用户ua在tr时访问兴趣点l的预测评分:其中,ua是推荐系统当前服务的目标对象,tr是当前推荐时间对应的时间槽,l是位置社交网络中目标用户尚未访问过的一个兴趣点, 是基于社交关系计算目标用户ua在tr时访问兴趣点l的预测评分,popu(l,tr)是兴趣点l在tr时的实时流行度,pr(l|L_ua)是利用幂律分布模型挖掘地理距离影响得到的预测访问概率,L_ua是目标用户ua已访问过的兴趣点集合;
步骤5‑3:对目标用户ua未访问过的所有地址按照预测分排序,将排名靠前的N个位置组成推荐列表,并将推荐列表TopNLista返回给目标用户。
4.根据权利要求1所述的一种基于社交关系融合位置动态流行度和地理特征的兴趣点推荐方法,其特征在于,所述步骤6包括:步骤6‑1:随机选取NU×20%个用户作为目标用户集TestU,NU表示用户总数量,为TestU集合中的每个目标用户分别运行各推荐方法,生成推荐列表;
步骤6‑2:计算推荐方法在时间槽t内的精确率和召回率:
其中,TestU是所有目标用户的集合,R(u,t)是推荐方法在t时刻提供给某目标用户u的推荐列表,Like(u,t)是用户u在t时刻真正访问过的兴趣点集合;
步骤6‑3:计算推荐方法的总体精确率和召回率,其值为各个时间槽中对应评估指标的平均值:其中,T是时间槽集合,precision(t)和recall(t)分别是推荐方法在时间槽t内的精确率和召回率;
步骤6‑4:计算推荐系统的综合准确度F1值:
其中,precision和recall分别是推荐方法运行一次的总体精确率和召回率;
步骤6‑5:重复执行步骤6‑1至步骤6‑4共Ntimes次,推荐方法的最终预测准确度,其中包括精确率Precision、召回率Recall和综合精度指标F1的值,为Ntimes次对应指标结果的平均值;
步骤6‑6:对比分析各指标结果:如果所述方法的精确率Precision大于其他推荐方法的Precision值,则说明提出的技术能够帮助用户更准确地找到感兴趣的地址;如果所述方法提出的技术的召回率Recall大于其他推荐方法的Recall值,则说明提出的技术能够更全面地覆盖用户感兴趣的地址;如果提出的方法的F1值大于其他推荐方法的F1值,则说明提出的技术在预测准确度方面具有更强的综合能力。