本发明属于数据处理技术领域,更进一步涉及社交网络技术领域中的一种与时间相关的个性化地点路线推荐方法。本发明可应用于基于位置社交网络中的地点路线推送服务。
背景技术:
随着信息技术和移动终端技术的发展,以及无线网络和位置感知技术的出现和进步,基于位置的服务迅速发展起来,例如Foursquare。基于位置的服务能够通过签到来记录跟踪用户的空间移动轨迹。同时,随着城镇化的扩大,城市中包含的地点数量越来越多,用户可能只是了解和熟悉城市某个区域。当用户到达城市中的其他区域,需要服务提供商进行路线推荐。拥有海量的与用户有关的个人信息和历史记录,利用这些数据向用户主动推荐相关服务一方面能够帮助用户做出选择,发现他们感兴趣的、有价值的地点,进而将这些地点组成路线推荐给用户,改善用户体验。
蒋晓玲在其发表的硕士论文“基于用户偏好的个性化路径挖掘研究”(硕士论文2013年东北大学)中提出了一种基于图片信息挖掘用户的兴趣偏好并进行路径推荐的方法。该方法通过引入TF-IDF算法对用户的兴趣度进行提取量化。以路线中的兴趣点所属类别代替兴趣点描述路线,并将兴趣点类别对于用户的贡献度作为用户对该类别的兴趣度,提出了基于用户兴趣度的评价函数,实现了个性化的路线推荐。该方法存在的不足之处是,通过TF-IDF算法进行推荐结果比较单一,缺乏多样性;没有考虑路线访问的时间信息,推荐系统产生的路线可能是无效的。
百度在线网络技术(北京)有限公司在其申请的专利“一种路线推荐方法及系统”(申请号201410449757.9,公开号CN104197947A)中公开了一种适用于用户在两种状态切换情境下的路线推荐方法及系统,在移动设备的第一状态下根据用户的偏好信息获取至少一条第一推荐路径;在确定需要将所述移动设备由所述第一状态转换成第二状态时,根据所述偏好信息在所述第二状态下获取至少一条第二推荐路径。该方法存在的不足之处是:在根据用户的偏好信息进行路径推荐的过程中,没有考虑用户当前的时间信息和路线的时间信息,不能很好地为用户提供满足时间要求的路线。
技术实现要素:
本发明的目的在于克服上述已有技术的不足,提出一种时间相关的个性化地点路线推荐方法,综合考虑了用户兴趣和时间上下文,提高了推荐结果的准确性和可靠性,可应用于基于位置社交网络中的地点路线推送服务。
本发明的具体思路是:对已有的数据集,建立用户-地点-时间的三维张量模型,计算用户在某时间对地点的兴趣,挖掘用户的个人偏好。结合地点的时间分布,通过计算地点的粗粒度信息散度和细粒度信息散度,利用了时间信息。综合用户的个人偏好和时间信息,获取候选位置列表。通过采用最长路径规划算法,实现了个性化的路线推荐。
为实现上述目的,本发明包括以下步骤:
(1)构建三维签到张量:
(1a)从数据集中获取待推荐城市所有用户的签到数据;
(1b)从签到数据中分别提取每个用户对任意一个地点在任意时间段的评分;
(1c)将所有的评分构建成用户-地点-时间的三维签到张量;
(2)重构三维张量:
(2a)对三维的签到张量,使用高阶奇异值分解算法,计算所有用户对在任何时间段时对所有地点的评分;
(2b)将所有的评分构成用户-地点-时间的三维张量;
(3)获取候选地点列表:
(3a)通过用户手机内置的定位模块,获取待推荐用户的当前位置;
(3b)根据待推荐用户的当前位置,确定待推荐用户所在城市,并将该城市作为待推荐城市;
(3c)从重构用户-地点-时间的三维张量中,提取待推荐城市所有地点的评分集合;
(3d)对评分集合,按照评分由高到低进行排序,从排序中选择前K个评分,将所选取评分对应的地点作为候选地点列表;
(4)获取时间分布:
(4a)将待推荐城市的签到数据,按照地点名称进行分类,统计候选地点列表中的每个地点的签到次数;
(4b)对签到时间一年中每个月份的待推荐城市的签到数据进行统计,得到候选地点列表中的每个地点在不同月份的签到次数;
(4c)对签到时间一天中每个小时的待推荐城市的签到数据进行统计,得到候选地点列表中的每个地点在每个小时的签到次数;
(4d)用每个地点在不同月份的签到次数除以候选地点列表中每个地点的签到次数,得到地点的粗粒度时间分布概率;
(4e)用每个地点在不同小时的签到次数除以候选地点列表中每个地点的签到次数,得到地点的细粒度时间分布概率;
(5)计算地点的粗粒度时间信息散度:
采用粗粒度时间的信息散度计算公式,计算候选地点列表中的地点的粗粒度时间信息散度值;
(6)计算地点的细粒度时间信息散度:
采用细粒度时间的信息散度计算公式,计算候选地点列表中的地点的细粒度时间信息散度;
(7)按照下式,计算待推荐用户访问地点的概率值:
sj=ecj-b·(ckj·fkj)
其中,sj表示待推荐用户访问地点j的概率值,ecj表示待推荐用户c对地点j的评分,cj表示地点j的粗粒度时间信息散度,fj表示地点j的细粒度时间信息散度,b表示控制因子,其取值的范围为b∈[0,1];
(8)获取地点路线推荐:
使用最长路径算法,以用户访问地点的概率和候选地点列表中的地点作为输入,得到满足用户兴趣的地点路线推荐。
本发明与现有的技术相比具有以下优点:
第一,本发明利用了地点的粗粒度时间和细粒度时间信息,用来计算地点的粗粒度时间信息散度和细粒度时间信息散度,过滤了散度值为零的地点,去掉了时间完全不匹配的地点,克服了现有技术不能满足时间要求的无效地点出现的问题,使得本发明提高了推荐结果的准确性。
第二,本发明综合了用户对地点的评分和地点的时间信息散度,计算待推荐用户访问地点的可能性,使用了用户的兴趣信息而不是地点信息,克服了现有技术推荐结果单一的问题,使得本发明提高了推荐结果的多样性。
附图说明
图1是本发明的实现流程图。
具体实施方式
下面结合附图1,对本发明的步骤作进一步的详细描述。
步骤1,构建三维的签到张量。
从公开的Foursquare数据集中,获取待推荐城市所有用户的签到数据。从签到数据中,分别提取每个用户对任意一个地点在任意时间段的评分。将所有的评分构建成用户-地点-时间的三维签到张量。
步骤2,重构三维张量。
对三维的签到张量,使用高阶奇异值分解算法,计算所有用户对在任何时间段时对所有地点的评分;将所有的评分构成用户-地点-时间的三维张量。
步骤3,获取候选地点列表。
通过用户手机内置的定位模块,获取待推荐用户的当前位置;根据待推荐用户的当前位置,确定待推荐用户所在城市,并将该城市作为待推荐城市;从构建的用户-地点-时间的三维张量中,提取待推荐城市所有地点的评分集合;对评分集合,按照评分由高到低进行排序,从排序中选择前K个评分,将所选取评分对应的地点作为候选地点列表,K的取值范围是30-50。
步骤4,获取时间分布。
将待推荐城市的签到数据按照地点名称进行分类,统计候选地点列表中的每个地点的签到次数;对签到时间一年中每个月份的待推荐城市的签到数据进行统计,得到候选地点列表中的每个地点在不同月份的签到次数;对签到时间一天中每个小时的待推荐城市的签到数据进行统计,得到候选地点列表中的每个地点在每个小时的签到次数;用每个地点在不同月份的签到次数除以候选地点列表中每个地点的签到次数,得到地点的粗粒度时间分布概率;用每个地点在不同小时的签到次数除以候选地点列表中每个地点的签到次数,得到地点的细粒度时间分布概率。
步骤5,计算地点的粗粒度时间信息散度。
采用粗粒度时间的信息散度计算公式,计算候选地点列表中的地点的粗粒度时间信息散度值;粗粒度时间的信息散度计算公式如下:
其中,cj表示地点j的粗粒度时间的信息散度,∑表示求和操作,x表示粗粒度时间所对应的月份值,G(·)表示高斯分布,log表示以2为底取对数操作,dj(x)表示地点j在月份取值为x时的粗粒度时间分布概率值。
步骤6,计算地点的细粒度时间信息散度。
采用细粒度时间的信息散度计算公式,计算候选地点列表中的地点的细粒度时间信息散度;细粒度时间的信息散度计算公式如下:
其中,fj表示地点j的细粒度时间的信息散度,∑表示求和操作,y表示细粒度时间所对应的小时值,G(·)表示高斯分布,log表示以2为底取对数操作,kj(y)表示地点j在小时取值为y时的细粒度时间分布概率值。
步骤7,按照下式,计算待推荐用户访问地点的概率值:
sj=ecj-b·(ckj·fkj)
其中,sj表示待推荐用户访问地点j的概率值,ecj表示待推荐用户c对地点j的评分,cj表示地点j的粗粒度时间信息散度,fj表示地点j的细粒度时间信息散度,b表示控制因子,其取值的范围为b∈[0,1]。
步骤8,获取推荐路线。
用最长路径算法,以用户访问地点的概率和候选地点列表中的地点作为输入,得到满足用户兴趣的地点路线推荐。