基于时空数据与元学习的用户服务推荐方法和系统

文档序号:33935638发布日期:2023-04-22 15:14阅读:92来源:国知局
基于时空数据与元学习的用户服务推荐方法和系统

本发明涉及poi推荐,尤其涉及一种基于时空数据与元学习的用户服务推荐方法和系统。


背景技术:

1、随着基于位置的社交网络的兴起及智能手机的快速普及与应用,越来越多的人参与到社交网络的交互中,为位置社交网络提供了海量的数据。下一个poi(兴趣点)的推荐问题也随之得到了广泛地关注。下一个poi推荐领域的主要工作是利用用户的签到的历史记录和当前时空的上下文信息,推荐目标用户可能想要去的下一个poi。目前,有许多研究已经能为用户提供一个可靠的推荐,但在更多的现实场景中,在为交互有限的用户进行下一个poi推荐时,无法取得预期的效果,进而导致一些平台存在长尾性问题。长尾性问题是指如果一个平台不能向一些交互有限的新用户提供可靠的推荐服务,这些新用户可能就会选择其他的平台作为替代,进而导致推荐系统只能为一些长期使用该推荐系统的用户提供可靠的服务。如何解决这些少量交互用户的推荐问题,即解决下一个poi推荐系统中存在的冷启动问题是目前的当务之急。

2、现有的下一个poi推荐系统目前使用两种常用推荐方法,第一种是依靠其他用户得到更多的信息来进行协同过滤,第二种是利用神经网络来提取到用户轨迹中的个人偏好特征,并以此对用户进行推荐;目前常用的这些算法、模型虽然善于从用户轨迹信息中挖掘用户的时空上下文信息,对于签到轨迹长的用户能有优异的推荐效果,但是对于那些签到次数少、签到轨迹短的用户就很难完成自己的推荐任务,所以目前poi推荐方法不能解决下一个poi推荐的冷启动问题。


技术实现思路

1、为了解决下一个poi推荐系统中存在的冷启动问题,本发明提供一种基于时空数据与元学习的用户服务推荐方法和系统。

2、第一方面,本发明提供一种基于时空数据与元学习的用户服务推荐方法,包括:

3、步骤1:根据已有的用户长轨迹信息构建任务池,具体包括:

4、步骤1.1:获取用户uk在一段时间内的轨迹信息sk,记作其中,表示用户uk在tr时间对位置lr的访问,r=1,2,…,mk,mk表示用户k的轨迹信息sk的轨迹长度,sk中的访问是按照时间顺序排列的;k=1,2,…,n,n表示用户总数;

5、步骤1.2:针对每个用户,从该用户的轨迹信息中随机采样以获取多个样本,每个样本均由两个相邻的访问构成;将获取的多个样本分为训练集和测试集,所述训练集和测试集组成该用户的元任务;

6、步骤1.3:所有用户的元任务组成任务池;

7、步骤2:构建元学习模型,并初始化模型参数θ,基于每个元任务对所述元学习模型进行训练,更新得到用于新用户服务推荐的初始模型参数θ′;

8、步骤3:基于新用户的初始轨迹信息构建该新用户的训练集和测试集,基于新用户的训练集对元学习模型的初始模型参数θ’再次进行更新,基于更新后的模型参数和该新用户的测试集得到该新用户的用户服务推荐列表。

9、进一步地,步骤2中具体包括:

10、基于每个元任务的训练集对所述元学习模型进行训练,更新得到该元任务对应的模型参数;使用更新模型参数的元学习模型对将该元任务的测试集进行预测并得到该元任务对应的预测损失;

11、对所有元任务对应的预测损失进行加和,通过最小化预测损失和更新得到用于用户服务推荐的初始模型参数θ’。

12、进一步地,基于任意一个元任务tn的训练集对所述元学习模型的训练过程包括:

13、步骤2.1:针对任意一个样本pi→pj,使用mlp网络学习该样本的中间态特征hi,j;

14、步骤2.2:根据元任务tn中训练集包含的所有样本的中间态特征计算元任务tn的整体过渡信息dn;

15、步骤2.3:基于所述过渡信息dn对参数θ进行调整得到更新后的参数θn’。

16、进一步地,步骤2.1具体包括:

17、针对任意一个样本pi→pj,利用嵌入层转换得到隐藏态ei→ej;

18、采用位置嵌入方法得到隐藏态ei→ej对应的嵌入向量li;

19、根据嵌入向量li,使用mlp网络按照公式(3)得到带有中间态的特征hi,j:

20、hi,j=σ(w(ei||ej)+li+b)    (3)

21、其中,w代表可训练的转换矩阵,σ(·)代表sigmod激活函数,b代表偏差向量。

22、进一步地,步骤2.2中,按照公式(4)计算元任务tn的整体过渡信息dn:

23、

24、其中,|sun|是元任务tn的训练集sun中的样本总数。

25、进一步地,步骤2.3具体包括:

26、按照公式(5)计算元任务tn的损失函数对参数θ进行不断调整使得该损失函数取值最小,从而得到更新后的参数θn’;

27、

28、其中,sun表示元任务tn中的训练集,γ表示margin,score(ei→ej)=ei+dn-ej表示单个样本pi→pj对应的损失函数,e′j表示用户的已有轨迹信息中没有包含的访问所对应的隐藏态,[·]+表示在0和函数内的值中取最大值。

29、进一步地,步骤3具体包括:

30、基于新用户的训练集按照公式(6)对元学习模型的初始模型参数θ’再次进行更新得到θtest;;

31、

32、其中,α为学习率,表示在新用户的测试集qn上的预测损失。

33、第二方面,本发明提供一种基于时空数据与元学习的用户服务推荐系统,包括:

34、任务池构建模块,用于根据已有的用户长轨迹信息构建任务池,具体用于:获取用户uk在一段时间内的轨迹信息sk,记作其中,表示用户uk在tr时间对位置lr的访问,r=1,2,…,mk,mk表示用户k的轨迹信息sk的轨迹长度,sk中的访问是按照时间顺序排列的;k=1,2,…,n,n表示用户总数;针对每个用户,从该用户的轨迹信息中随机采样以获取多个样本,每个样本均由两个相邻的访问构成;将获取的多个样本分为训练集和测试集,所述训练集和测试集组成该用户的元任务;所有用户的元任务组成任务池;

35、模型构建和训练模块,用于构建元学习模型,并初始化模型参数θ,基于每个元任务对所述元学习模型进行训练,更新得到用于新用户服务推荐的初始模型参数θ’;

36、推荐模块,用于基于新用户的初始轨迹信息构建该新用户的训练集和测试集,基于新用户的训练集对mlp元学习模型的初始模型参数θ’再次进行更新,基于更新后的模型参数和该新用户的测试集得到该新用户的用户服务推荐列表。

37、第三方面,本发明提供一种电子设备,包括:存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述任一所述的用户服务方法,包括:根据已有的用户长轨迹信息构建任务池;构建元学习模型,并初始化模型参数θ,基于每个元任务对所述元学习模型进行训练,更新得到用于新用户服务推荐的初始模型参数θ′;基于新用户的初始轨迹信息构建该新用户的训练集和测试集,基于新用户的训练集对元学习模型的初始模型参数θ’再次进行更新,基于更新后的模型参数和该新用户的测试集得到该新用户的用户服务推荐列表。

38、第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的用户服务推荐方法,包括:根据已有的用户长轨迹信息构建任务池;构建元学习模型,并初始化模型参数θ,基于每个元任务对所述元学习模型进行训练,更新得到用于新用户服务推荐的初始模型参数θ′;基于新用户的初始轨迹信息构建该新用户的训练集和测试集,基于新用户的训练集对元学习模型的初始模型参数θ’再次进行更新,基于更新后的模型参数和该新用户的测试集得到该新用户的用户服务推荐列表。

39、本发明的有益效果:

40、本发明构建了一个由少量用户签到轨迹记录组合的任务所构建的一个任务池。这个任务池将模拟目标冷启动场景,并使用元学习的方式逐步学习用户偏好。然后,对maml架构进行改进,构建了兴趣点推荐网络模型,该模型能够有效地捕捉用户的短期性行为模式,从数据丰富的用户签到轨迹信息中提取出来有价值的过渡知识,并快速适应冷启动用户,从而为这些冷启动用户提供所需要的推荐服务。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1