多行为多对比视图的序列推荐方法及系统

文档序号:35527241发布日期:2023-09-21 03:55阅读:46来源:国知局
多行为多对比视图的序列推荐方法及系统

本发明属于推荐系统领域,具体涉及一种多行为多对比视图的序列推荐方法及系统。


背景技术:

1、推荐系统从海量的新闻资讯、音视频、商品等信息中寻找到满足自身需求的信息,以达到个性化推荐的效果。同推荐系统不同的搜索系统来说,搜索系统的基本思想与分类目录相类似,搜索引擎更多地根据用户想要搜寻的信息,然后经由系统本身对信息的分类、整合与排序,最终把与用户搜索最相关的信息呈现给用户,若是不能提供有效的关键字,则搜索引擎将无法很好地服务于用户。而推荐系统则是在没有足够信息的条件下,根据用户的交互历史向用户提供有用的信息,总而言之,推荐系统在用户没有主动行为的情况下,根据用户历史交互行为,从大数据中抽取到用户感兴趣的信息,在某些情况下甚至能挖掘到用户的潜在兴趣,为平台带来更大收益的同时,也给用户带来了极大的体验感。

2、现代推荐系统更多使用深度学习模型来建模用户表征。特别在基于注意力机制的模型流行于各个领域,因其能注意到整个序列中最重要的关系,从而被应用到序列推荐中。有研究人员将注意力机制与cnn相结合用以推荐,将提取序列的有力工具与提取特征的有力工具相结合。更有基于transformer的模型提出,但这些方法都是针对序列而言,由于序列本身的稀疏性,这类模型往往不能充分利用序列本身的信息。针对序列的稀疏性,现有模型提出自监督与对比学习等策略,例如添加多个自监督任务,使用预训练与微调策略进行模型训练、对表征进行改进从而增强数据得到对比损失,提出解释引导的对比学习方法、提出时间概念上的对比学习等。但这些模型仅仅是利用了序列层面的信息,得到用户个人的表征,而忽略了图结构上更加综合的表征,所以考虑如何将序列信息与图信息融合是其关键问题。同时随着人工智能和深度学习的不断发展,工业界对推荐系统的要求日益增高,先前简单建模用户行为序列模式已然不能满足要求,在大多数平台的中,用户的行为类型通常有多种形式,针对本就稀疏的序列而言,添加辅助行为必然会增强序列的表征,故现有序列推荐问题需要综合考虑用户的多行为模式,进而为用户推荐。


技术实现思路

1、本发明的目的在于提供一种多行为多对比视图的序列推荐方法及系统,该方法及系统有利于提高用户推荐结果的满意度。

2、为实现上述目的,本发明采用的技术方案是:一种多行为多对比视图的序列推荐方法,包括以下步骤:

3、步骤a:采集用户在与物品交互下产生的多行为数据,构建多行为多视图训练集;

4、步骤b:使用训练集训练用于序列推荐的深度学习网络模型g,所述深度学习网络模型g利用图信息的全局性和序列信息的个体性进行相互补充增强,同时对图数据进行数据增强以进行对比学习,以学习到更加鲁棒的表征,对序列数据进行数据增强以进行对比学习,以解决序列稀疏问题,进一步提高图和序列本身的表征能力;

5、步骤c:将用户行为数据依次输入深度学习网络模型g中,输出当前用户相应的推荐结果。

6、进一步地,所述步骤b具体包括以下步骤:

7、步骤b1:将训练集进行处理后根据不同行为进行划分,得到通用行为序列sc以及特定行为的序列数据sb和图数据guv,b;

8、步骤b2:将步骤b1得到的通用行为序列数据sc转化为通用行为图数据guv,c,进行数据增强操作,得到扩展矩阵muu和mvv,然后构建相应无行为区分的增强图guu和gvv;

9、步骤b3:将步骤b1得到的通用行为序列数据sc和特定行为序列数据sb输入序列网络进行训练,同时进行对比学习操作,得到序列对比损失lseqcl;

10、步骤b4:将步骤b2和b1得到的特定行为的图数据guv,b和无行为区分的增强图数据guu和gvv,使用lightgcn进行消息传播,得到各图下的用户与物品的embedding;然后进行对比学习操作,得到图对比损失lgraphcl;

11、步骤b5:将步骤b4得到的各图下各个行为的用户与物品embedding进行注意力融合操作,即图视图的各行为融合后的embedding;将步骤b3得到的序列下各个行为的用户与物品embedding进行拼接融合操作,即序列视图的各行为融合后的embedding;

12、步骤b6:将步骤b5得到的序列视图和图视图的各行为融合后的embedding进行对比学习操作,得到跨视图对比损失lcrosscl;

13、步骤b7:将序列视图和图视图融合后进行训练,当深度学习网络模型产生的损失值小于设定的阈值或达到最大的迭代次数时,终止深度学习模型m的训练。

14、进一步地,所述步骤b1具体包括以下步骤:

15、步骤b11:将训练集针对每个用户的通用行为序列生成相应的数据集,对于用户通用行为数据中的第n条数据,构建前n-1条数据去预测第n条数据的用户序列,每个用户生成max_len_u条数据,其中max_len_u表示用户u的最大序列长度;

16、步骤b12:将步骤b11得到的数据进行清理操作,对于每一个用户生成的数据,把最后一条目标行为时间记为t,接着把t行为之前在目标行为中出现过的物品从辅助行为中删除;

17、步骤b13:将步骤b12得到的数据按特定行为划分操作,取得各个行为下的序列数据sb;

18、步骤b14:将步骤b13得到的序列数据sb,按照节点分为用户节点与物品节点,在用户有过交互的物品上连边从而构建特定行为区分的图矩阵表示特定行为b下的用户i与物品j的交互矩阵,从而构建特定行为区分的图数据guv,b。

19、进一步地,所述步骤b2具体包括以下步骤:

20、步骤b21:根据步骤b14将步骤b11得到的数据转化为矩阵表示无行为区分的用户物品视图下用户i与物品j的交互次数,从而构建通用行为的图数据guv,c;

21、步骤b22:根据步骤b21得到的矩阵进行矩阵乘法操作,通过muu=(muv)(muv)t得到用户与用户的共现矩阵;同理通过mvv=(muv)t(muv)得到物品与物品的共现矩阵,从而构建无行为区分的图数据guu,gvv。

22、进一步地,所述步骤b3具体包括以下步骤:

23、步骤b31:设某个用户u的历史行为序列为其中b表示b种类型的行为{b1,…,bb};对于每个行为,有物品序列表示用户u特定行为b下的行为序列,目标行为序列表示为通用行为序列表示为将以上物品序列输入序列网络;

24、步骤b32:设物品embedding和位置embedding p∈rt×d,其中t是最大序列长度,是物品集合大小,故而给定第i个物品vi,其表征为经过embedding层转换后,步骤b31输入的序列变为序列的embedding矩阵

25、步骤b33:步骤b32得到的物品矩阵输入transformer层,经过多头注意力:

26、

27、其中x是输入的embedding矩阵,w是可学习矩阵,d是embedding维度,h是注意力头数,此外,对得到的多头注意力(msa)进行拼接:

28、msa(x)=concat(headi,head2,...,headh)wo

29、其中concat是拼接操作,wo是可学习矩阵;引入非线性并在msa层之间进行特征转换,采用前馈(pff)层:

30、pff(x)=fc(σ(fc(x))),fc(x)=xw+b

31、其中,fc是全连接层,σ是sigmoid激活函数,使用dropout技术、残差连接和层归一化,得到最终输出embedding:

32、h(l)=layernorm(x(l-1)+msa(x(l-1)))

33、x(l)=layernorm(h(l)+pff(h(l)))

34、其中,h(l)作为第l层的中间表示,x(l)是第l层的最终隐向量;将步骤以上注意力层操作合并称作trm(),序列经过l层trm()得到最终输出:

35、

36、步骤b34:将步骤b33经过的多层trm()操作标记为seqenc(),对于每个行为序列计算其embedding:

37、

38、其中,us,b表示用户在行为b下的embedding;同样使用seqenc()计算通用行为序列:

39、

40、其中us,c表示用户在通用行为下的embedding;

41、步骤b35:将步骤b34得到的目标行为下的用户embedding us,t与通用行为下的用户embedding us,c进行表征对比:

42、

43、

44、f(x,y,z)=log(σ(xty-xtz))

45、其中mlp将和映射到同一空间中的全连接层,表示第i个用户在目标行为下的序列embedding,表示第i个用户在通用行为下的序列embedding,表示第j个用户在通用行为下的序列embedding,σ是sigmoid激活函数,n是用户个数。

46、进一步地,所述步骤b4具体包括以下步骤:

47、步骤b41:利用步骤b14、b22得到的数据guv,b,guu,gvv进行消息传播:

48、

49、其中,a为邻接矩阵,dii=∑j=0aij为对角度矩阵,x是节点embedding,经过传播后的用户-物品视图节点embedding记为uuv,b,vuv,b,用户-用户视图节点embedding记为uuu,物品-物品视图节点embedding记为vvv,特别地目标行为下的用户-物品视图节点embedding记为uuv,t,vuv,t;

50、步骤b42:利用步骤b41得到的三个视图的节点embedding进行用户对比:

51、

52、

53、其中,表示第i个用户在用户-物品视图的目标行为下的用户embedding,表示第i个用户在用户-用户视图下的用户embedding,表示第j个用户在用户-用户视图下的用户embedding,n是用户个数;

54、步骤b43:利用步骤b41得到的三个视图的节点embedding进行物品对比:

55、

56、

57、其中,表示第i个物品在用户-物品视图的目标行为下的物品embedding,表示第i个物品在物品-物品视图下的物品embedding,表示第j个物品在物品-物品视图下的物品embedding;

58、步骤b44:将步骤b42、b43损失相加,得到最后的图对比损失:

59、lgraphcl=lgraphucl+lgraphicl。

60、进一步地,所述步骤b5具体包括以下步骤:

61、步骤b51:将步骤b34得到的各行为embedding融合:

62、

63、其中,us是序列视图的融合embedding,“||”是拼接操作;

64、步骤b52:将步骤b41得到的各行为embedding做拼接操作:

65、

66、其中ug-t表示除了目标行为外的其他辅助行为下的用户embedding,u0表示用户-物品视图的原始embedding,“;”表示embedding堆叠;

67、步骤b53:将目标行为下的用户embedding对步骤b52结果进行如步骤b33的注意力操作:

68、uuv,att=att(uuv,t,ug-t,ug-t)

69、其中,att表示注意力操作,uuv,att是目标行为对辅助行为做注意力的输出embedding;

70、步骤b54:将用户-物品视图的原始向量和注意力输出向量拼接,作为最终融合向量:

71、ug=mlpg(u0|uuv,att)

72、其中,ug是图视图的融合embedding。

73、进一步地,所述步骤b6中,将步骤b51和步骤b54得到的不同视图embedding进行对比操作:

74、

75、

76、其中,表示第i个用户的序列融合embedding,表示第i个用户的图融合embedding,表示第j个用户的图融合embedding。

77、进一步地,所述步骤b7具体包括以下步骤:

78、步骤b71:对两个视图进行拼接融合操作:

79、u=mlpu(us|ug),v=mlpv(vs|vg)

80、其中,us,ug,vs,vg分别表示序列和图的用户embedding、序列和图的物品embedding;

81、步骤b72:使用bpr损失计算损失值:

82、

83、其中u表示用户向量,vi表示用户的正样本,vj表示用户的负样本;

84、步骤b73:通过梯度优化算法adam对学习率进行更新,利用反向传播迭代更新模型参数,以最小化损失函数来训练模型;模型总损失为上述损失加权相加:

85、l=λolo+λ1lseacl+λ2lgraphcl+λ3lcrosscl

86、其中,λo,λ1,λ2,λ3为超参数,lo为主损失,lseqcl为序列对比损失,lgraphcl为图对比损失,lcrosscl为跨视图对比损失。

87、本发明还提供了采用上述方法的多行为多对比视图的序列推荐系统,包括:

88、构建训练集模块,用于采集用户在与物品交互下产生的多行为数据,构建多行为多视图训练集;

89、模型训练模块,用于训练用于序列推荐的深度学习网络模型g,并将训练好的深度学习网络模型g输出至模型预测模块;以及

90、模型预测模块,用于向深度学习网络模型g中输入用户行为数据,并输出当前用户相应的推荐结果。

91、与现有技术相比,本发明具有以下有益效果:对于用户行为序列稀疏问题,提出利用图信息的全局性和序列信息的个体性进行相互补充增强。此外,本发明还对图数据进行数据增强操作以进行对比学习,学习到更加鲁棒的表征。同时也对序列数据进行数据增强操作以进行对比学习,从另一方面解决序列稀疏问题,进一步提高图和序列本身的表征能力。本发明还从实际出发,利用辅助行为序列来增强序列表征。最后本发明还对图视图和序列视图得到的向量表征进行对比学习,进一步增强用户与物品的表征结果。

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