本发明涉及poi推荐领域,具体涉及一种时间感知的poi推荐方法。
背景技术:
基于位置的社交网络(lbsn)越来越受欢迎。在lbsn中,用户通过共享他们的位置和以及与位置信息相关的内容来记录自己的生活,并且发现更多感兴趣的地点。兴趣点(pointofinterest,poi)推荐是lbsn中的重要应用,其根据用户历史签到记录来学习用户的特征,从而向用户推荐可能感兴趣的新poi。poi推荐可以缓解目前普遍存在的信息过载问题,帮助用户从海量的地点中找到他们可能感兴趣的未访问过的poi。
poi推荐系统大多数是基于内存或者基于模型的协同过滤(cf)技术,并通过线性组合地理影响、社会影响和偏好相似性来进一步完善模型,提高性能。地理信息也已经在poi推荐中被广泛应用,利用地理影响进行poi推荐的方法大致分为两类,一种是利用地理邻近度来改善用户偏好,另一种是应用地理潜在因子或主题模型来推导区域或poi的潜在特征。除了地理信息之外,poi推荐的模型中还会利用分类信息或流行度信息等来提高推荐的准确度,但是相对于如何更好的利用时间信息达到更好的推荐效果还未能实现。
针对在poi推荐中时间信息利用不足的缺陷,本发明提出了一种时间感知的poi推荐模型,将时间信息结合到poi推荐中去,提高时间信息的利用程度,以进一步提高poi推荐的准确度。
技术实现要素:
针对已有模型中的缺陷,本发明提供了一种时间感知的poi推荐方法。该方法考虑了如何利用不同时间特征的信息,提高了poi推荐的准确度。
本发明的技术方案如下:一种时间感知的poi推荐方法,其特征在于将时间信息结合到推荐模型中,包括以下步骤:
步骤1:对原始数据进行预处理获得符号化表示,并且按照需求比例划分训练集、验证集和测试集;
步骤2:构建基于时间特征的poi推荐模型,将训练样本与验证样本批量随机地输入基于时间特征的poi推荐模型中,开始迭代模型训练过程,得到训练集与验证集上的评价指标,当验证集上的指标不再上升或者迭代达到一定次数后停止,保存验证集上的最优模型;
其中,构建基于时间特征的poi推荐模型包括:划分时间段、基于时间特征构建关系矩阵、学习用户与poi的表示、计算用户对poi的感兴趣程度;
步骤3:加载保存的在验证集上评价指标最优的基于时间特征的poi推荐模型,将测试样本批量送入模型中,输出与保存推荐的结果。
进一步地,所述步骤1中的原始数据集包含相关的用户信息、地点信息以及与其对应的用户访问记录信息。
优选地,所述步骤2中划分时间段具体为:根据每周以及每日两个不同的时间特征构建用户与poi的关系矩阵,每周划分为工作日与周末,每日按照小时划分为5个时间段,总共有10种不同的时间段。
优选地,所述步骤2中基于时间特征构建关系矩阵具体为:根据不同时间段下用户访问poi的记录信息,每个时间段分别构建用户和poi的交互矩阵;通过将多个时间段的关系矩阵排列形成一个由用户、poi以及时间段构成的三维张量;分别为每周t1以及每日t2这两个不同时间的尺度建立两个独立的张量。
优选地,所述步骤2中学习用户与poi的表示具体为:利用rescal的有效分解算法,将基于时间特征构建关系矩阵中得到的两个三维张量分别执行张量分解后,学习得到用户的两个表示与poi的两个表示。
优选地,所述步骤2中计算用户对poi的感兴趣程度具体为:在得到用户与poi的表示后,采用余弦相似性分别度量计算不同的时间特征下用户对于未访问的poi的感兴趣程度,采用线性组合方式将两个时间特征下的用户对poi的偏好得分组合在一起;最后,将用户对未访问过的poi的通过协同过滤算法得到的偏好得分与基于时间特征的张量分解的偏好得分线性组合起来,作为用户对poi的最终偏好得分。
优选地,所述步骤2中构建好基于时间特征的poi推荐方法后,将训练与验证样本随机批量的输入到模型中,并且利用随机梯度下降(stochasticgradientdescent)方法使模型逐渐学习最优的参数值,同时计算在验证集上的评价指标,当验证集上的指标不再上升或者模型训练迭代到一定次数后停止训练,保存验证集上表现最优的关系分类模型。
进一步地,所述步骤3的测试过程具体为先加载步骤2中训练好的关系分类模型,再将测试集中的样本批量输入到模型中,此时模型的参数固定不变,经过模型计算后,得到针对每位用户的可能感兴趣的poi推荐。
与现有技术相比,本发明具有以下优点和积极效果:
1)本发明提出基于不同时间尺度构建关系矩阵的思路,利用时间信息的特征,在不同时间段内构建的用户与poi的关系矩阵,能够更好的表示用户与poi的表示。
2)本发明对用户-poi-时间三维张量矩阵执行张量分解得到不同时间特征下的用户与poi的表示,其次对不同时间特征下的向量进行线性组合,这样用户和poi的表示中包含了不同时间维度的信息,有利于提高推荐的准确性。
附图说明
图1为本发明实施例的方法流程图;
图2为本发明实施例的模型框架图;
具体实施方式
具体实施时,本发明所提供技术方案可由本领域技术人员采用计算机软件技术实现自动运行流程。以下结合附图和实施例详细说明本发明技术方案。
步骤1:对原始数据集中的用户、地点、时间信息以及用户访问记录信息,进行预处理获得符号化表示,并且按照需求比例划分训练集、验证集和测试集。
实施例中,本发明选择了poi推荐任务中被广泛采用的gowalla和foursquare数据集,这两个数据集自被提出后便逐渐在poi推荐领域内取得了广泛的使用。gowalla数据集包含2009年2月至2010年10月用户签到信息。本发明去掉gowalla数据集中签到的poi数量少于15的用户以及访客少于10人的poi。因此过滤后的数据集包括18737个用户,32510个poi,1278274个用户访问记录。foursquare数据集包含2012年4月至2013年9月的用户签到数据。本发明去掉foursquare数据集中签到的poi数量少于10的用户以及不超过10位访客的poi。因此过滤后的数据集包含24941个用户,28593个poi和1196248个用户访问记录。
在进行预处理后,将按照通用的训练、验证、测试划分方式,对于每个用户,本发明使用用户历史签到数据的70%作为训练数据,接下来的10%作为验证数据,最近的20%作为测试数据。
步骤2:参考附图1,将训练样本与验证样本批量随机地输入基于时间特征的poi推荐模型中,开始迭代模型训练过程,得到训练集与验证集上的评价指标,当验证集上的指标不再上升或者迭代达到一定次数后停止,保存验证集上的最优模型。
实施例中,为了构建利用时间信息下的用户与poi的关系矩阵,本发明划分不同时间段,利用rescal算法来学习用户与poi的表示,将不同时间特征的贡献聚合在一起。本文采用多种时间特征为poi做推荐。参考附图2,此处说明整个模型的实现过程。
1)划分时间段:根据对gowalla数据集和foursquare数据集中用户的签到数据进行分析,本发明考虑两个时间尺度的时间特征:每天t1中不同的时间段以及每周t2中的工作日和周末。通过分析记录用户与poi的签到关系,本发明首先以周为尺度划分为工作日和周末,相应的,对应的用户和poi的交互矩阵就划分为xwork和xweekend。其次,本发明以天为尺度划分为5个时间段,即t1(0-7时,晚上休息时间)、t2(8-11时,为上午工作时间)、t3(12-14时,为午休时间)、t4(15-18时,为下午工作时间)和t5(19-23时,为晚上休息和娱乐时间),分别对应x1、x2、x3、x4和x5五个关系矩阵。
2)基于时间特征构建关系矩阵:为体现用户在不同时间段下的签到偏好,本发明定义了关于时间段的用户与poi的关系矩阵,该矩阵记录了在每个时间段下,用户与poi之间的关系。如1)所述,每周存在的关系矩阵为工作日关系矩阵xwork和周末关系矩阵xweekend,每天划分为五个时间段,即t1、t2、t3、t4和t5时间段,每个时间段分别对应的关系矩阵x1、x2、x3、x4和x5。因此,对于两个不同的时间特征,分别存在不同的三维张量xt1和xt2,其中xt1包含工作日关系矩阵xwork和周末关系矩阵xweekend,xt2包含五个时间段关系矩阵x1、x2、x3、x4和x5。对于每个三维张量中的每个用户与poi的关系矩阵构造如下:
其中,u_u:用户与用户之间存在的关系,同一时间段两个用户共同访问poi的个数,即在同一时间段用户a与用户b共同访问poi的个数,poi相同个数越多表示用户a与用户b具有潜在相似性。
p_p:poi与poi之间存在的关系,同一时间段两个poi共同访问用户的个数,即在同一时间段poia与poib共同被访问的用户的个数,用户相同个数越多表示poia与poib具有潜在相似性。
u_p:用户与poi之间存在的关系,同一时间段内用户a访问poij的次数与其用户a所有签到次数的比例,[注:关系矩阵假设为频数矩阵,u_p关系得到的比例数,因此我们将其同比例扩大10倍作为签到次数];p_u构造方法与其类似。
3)学习用户与poi的表示:根据2)构造出的张量,本发明通过张量因子分解算法将不同时间段的关系信息相关的用户和poi转换为对应的表示。给定张量xn×n×m,rescal旨在秩r近似,其中每个切片xk被分解的过程如下:
xk≈arkat
其中,a是n×r的矩阵,其中第i行表示第i个实体;rk是非对称的r×r矩阵,其描述了第k个关系的潜在分量的相互作用;k的范围是从1到m。
然后,本发明通过最小化下面的损失函数得到a和rk表示:
为了自动获取更多有用的全局信息,本发明构建不同时间段用户与poi的关系矩阵这样可以通过张量分解将多重时间段中的信息嵌入到最终学习的表示中。由2)可以得到为每周t1以及每日t2两个不同时间尺度建立两个独立的张量,并分别得到执行张量分解后学习到的用户(u(t1)和u(t2))与poi(l(t1)和l(t2))的表示。
4)计算用户对poi的感兴趣程度:由3)可得用户和poi在不同时间尺度下的向量表示,本发明对得到的用户和poi表示利用余弦相似度度量用户(u)对未访问poi(i)的感兴趣程度
其中,cos表示余弦相似度的计算。
最后,本发明将两种时间特征下用户对poi的感兴趣程度线性结合,从而能够向用户更好地推荐未访问过的poi,具体计算如下式所示:
其中,
为了推断用户对目标poi的偏好,本发明将用户偏好与时间信息融合。具体来说,即用户偏好和时间影响来一起实现poi推荐。其中,用户偏好的计算是基于协同过滤的矩阵分解算法,通过聚合类似用户的行为来发现用户的隐含偏好。因此,我们使用线性融合框架将用户偏好和时间信息的影响提供的排名列表整合到最终排名列表中,具体的融合方法如下式所示:
其中,
本专利中,α1、α2和β1、β2被约束在[0,1]的范围内。在网格搜索方法中,首先将α1从零改为1,间隔为0.1。然后,对于每个α1值,例如α1=0.1,将α2满足需求1-α1。网格搜索方法尝试步长为0.1的所有值组合满足约束α1 α2=1,并且,α1,α2≥0。相对,对于每个β1值,例如β1=0.1,将β2满足需求1-β1。网格搜索方法尝试步长为0.1的所有值组合满足约束β1 β2=1,并且β1,β2>=0。当α1=0.3,α2=0.7以及β1=0.4,β2=0.6时,我们发现gowalla数据集和foursquare数据集上的我们的方法都达到最佳效果。
步骤3:加载步骤2中训练好的poi推荐模型,再将测试集中的样本批量输入到推荐系统模型中,此时模型的参数固定不变。经过模型计算后,得到每位用户的可能感兴趣的top-k个poi。
实施例中,加载在验证集上表现最好的模型,输入测试集dtest,得到测试集的每位用户的poi推荐结果。
本文中所描述的具体实施例仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例作各种各样的修改、补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
1.一种时间感知的poi推荐方法,其特征在于,包括以下步骤:
步骤1:对原始数据进行预处理获得符号化表示,并且按照需求比例划分训练集、验证集和测试集;
步骤2:构建基于时间特征的poi推荐模型,将训练样本与验证样本批量随机地输入基于时间特征的poi推荐模型中,开始迭代模型训练过程,得到训练集与验证集上的评价指标,当验证集上的指标不再上升或者迭代达到一定次数后停止,保存验证集上的最优模型;
其中,构建基于时间特征的poi推荐模型包括:划分时间段、基于时间特征构建关系矩阵、学习用户与poi的表示、计算用户对poi的感兴趣程度;
步骤3:加载保存的在验证集上评价指标最优的基于时间特征的poi推荐模型,将测试样本批量送入模型中,输出与保存推荐的结果。
2.根据权利要求1所述的时间感知的poi推荐方法,其特征在于:所述步骤1中的原始数据集包含相关的用户信息、地点信息以及与其对应的用户访问记录信息。
3.根据权利要求1所述的时间感知的poi推荐方法,其特征在于:所述步骤2中划分时间段具体为:根据每周以及每日两个不同的时间特征构建用户与poi的关系矩阵,每周划分为工作日与周末,每日按照小时划分为5个时间段,总共有10种不同的时间段。
4.根据权利要求3所述的时间感知的poi推荐方法,其特征在于:所述步骤2中基于时间特征构建关系矩阵具体为:根据不同时间段下用户访问poi的记录信息,每个时间段分别构建用户和poi的交互矩阵;通过将多个时间段的关系矩阵排列形成一个由用户、poi以及时间段构成的三维张量;分别为每周t1以及每日t2这两个不同时间的尺度建立两个独立的张量。
5.根据权利要求4所述的时间感知的poi推荐方法,其特征在于:所述步骤2中学习用户与poi的表示具体为:利用rescal的有效分解算法,将基于时间特征构建关系矩阵中得到的两个三维张量分别执行张量分解后,学习得到用户的两个表示与poi的两个表示。
6.根据权利要求5所述的时间感知的poi推荐方法,其特征在于:所述步骤2中计算用户对poi的感兴趣程度具体为:在得到用户与poi的表示后,采用余弦相似性分别度量计算不同的时间特征下用户对于未访问的poi的感兴趣程度,采用线性组合方式将两个时间特征下的用户对poi的偏好得分组合在一起;最后,将用户对未访问过的poi的通过协同过滤算法得到的偏好得分与基于时间特征的张量分解的偏好得分线性组合起来,作为用户对poi的最终偏好得分。
7.根据权利要求1所述的时间感知的poi推荐方法,其特征在于:
所述步骤2中构建好基于时间特征的poi推荐方法后,将训练与验证样本随机批量的输入到模型中,并且利用随机梯度下降(stochasticgradientdescent)方法使模型逐渐学习最优的参数值,同时计算在验证集上的评价指标,当验证集上的指标不再上升或者模型训练迭代到一定次数后停止训练,保存验证集上表现最优的关系分类模型。
8.根据权利要求1所述的时间感知的poi推荐方法,其特征在于,所述步骤3的测试过程具体为先加载步骤2中训练好的关系分类模型,再将测试集中的样本批量输入到模型中,此时模型的参数固定不变,经过模型计算后,得到针对每位用户的可能感兴趣的poi推荐。
技术总结