1.一种基于区域划分和上下文影响的兴趣点推荐方法,其特征在于,包括如下步骤:S101:获取用户的签到数据,每条签到数据由用户ID、位置ID、时间戳、位置的经纬度(lon,lat)以及位置类别c构成;
S102:对所有已获取的位置,通过经典的K‑means聚类算法以距离为标准进行区域的划分,得到区域集合R,R={r1,r2,...rq},每个r代表一个区域;
定义区域的数量q,采用K‑means,基于目标函数(1)动态地进行区域的划分:其中,dis()函数根据两个位置的经纬度求距离,μi是K‑means动态产生的聚类中心;
L
S103:基于用户原始的位置向量u并以余弦相似度的方式计算其相似用户群体SU(u),继而计算用户对未知位置l的协同过滤分数cf(u,l), 表示用户u访问位置lj的次数;
具体步骤如下:
基于余弦相似度计算用户在区域上的访问情况与大众的匹配程度sim(u,R),得到与用户相似用户群体SU(ui),通过公式(5)计算用户对未知位置l的协同过滤分数cf(ui,lj);
SU(ui)={uj|sorted by sim(ui,uj),uj∈U,num} (4);
其中,cnt(rz)是全体用户在区域rz上的经过归一化处理的签到数量, 是用户自身在区域rz上的经过归一化处理的签到数量,num是相似用户个数;
R
S104:基于用户的区域向量u , 计算用户访问某个区域的分数|R|要远远小于|L|,并用该区域的分数去加强位置的协同过滤分数cf(u,l),得到基于区域划分的协调同过滤分数具体步骤如下:
采用公式(6)计算用户访问某个区域的分数 再利用公式(7)计算基于区域划分的协调同过滤分数其中,rz是lj对应的区域;
S105:基于全体签到数据中的每相邻两点之间的地理距离,采用幂律分布来模拟用户访问下一个位置的距离可能性p(l|ao);
具体步骤如下:
定义距离的幂律概率为公式(8);
b
p(li|lj)=a×(dis(li,lj)) (8);
其中,li和lj为用户真实的签到数据集中相邻的两个签到位置,a和b分别为幂律分布的参数;为了求解未知参数,将公式(8)转化为如下线性模型:log p(li|lj)=log a+blogdis(li,lj) (9);
y(x,w)=a′+bx (10);
其中,w是参数集合,a′是log a,x表示li和lj;
基于目标函数即公式(11),采用梯度下降的方式对参数进行更新:其中,x表示li和lj,D是使用的真实数据集,t(x)是根据D导出的真实距离概率,λ表示正则化项的权重系数;
计算距离可能性p(l|ao)的公式如公式(12);
计算未知位置l与活动范围ao内的全体已经访问过的位置的综合距离可能性p(l|ao);
S106:基于距离可能性p(l|ao)以未知位置l的所属区域为准,计算用户访问未知位置l的综合距离得分具体步骤如下:
处于同一活动范围内的候选位置进行归一化处理,然后根据活动范围内的签到数量与区域内的最大活动范围签到数量之比赋予权重,计算基于地理距离的上下文分数其中,count(ao)计算的是用户在活动范围ao内的签到总数的函数,count(ax)计算的是用户在活动范围ax内的签到总数,p(lj|ao)是基于公式(10)计算的lj的距离可能性,p(lx|ao)是基于公式(10)计算的lx的距离可能性, 是用户在区域下的活动范围集合;
S107:基于全体签到数据的类别信息,整合得到类别转移矩阵T,继而计算用户访问未知位置l的类别分数具体步骤如下:
构建类别转移矩阵T,Tij表示的是类别ci和类别cj的转移次数,即包含这一对类别的用户数量,由于对称性的存在,故Tij=Tji;
对于未知位置l的类别c,如果用户曾经在该区域内访问过该类别,则使用公式(14)表示其类别分数 否则,使用公式(15)表示其类别分数其中,Cu是用户在该区域下已经访问过的类别的集合,ci∈Cu,而cj是该用户没有访问过的类别;
S108:基于距离分数 和类别分数 计算位置的上下文分数采用加权的形式利用公式(16)计算上下文分数:其中, 已提前进行过归一化处理,β∈[0,1];
S109:基于上下文分数 和区域划分下的协同过滤分数 计算用户访问未知位置的最终分数 按照分数的大小进行排序,将排名靠前的K个位置生成u推荐列表rec;
采用加权的形式公式(17)计算未知位置l的最终分数:其中,α∈[0,1]。