基于好奇心的个性化推荐方法、系统、计算机设备和存储介质

文档序号:32160946发布日期:2022-11-12 02:30阅读:77来源:国知局
基于好奇心的个性化推荐方法、系统、计算机设备和存储介质

1.本发明属于个性化推荐技术领域,特别是涉及一种基于好奇心的个性化推荐方法、系统、计算机设备和存储介质。


背景技术:

2.当今社会,随着信息技术的飞速发展,互联网数据体量的高速增加,“信息爆炸”成为信息时代的一个关键名词。如何对纷繁芜杂的海量信息进行“过滤”,在浩如烟海的数据中选择能够满足用户需求的物品,成为工业界所面临的一个难题。由此,推荐系统应运而生,作为一种能够根据用户历史访问记录挖掘用户偏好的系统,推荐系统可以帮助用户在纷杂的信息中快速找到自己感兴趣的信息,大大节省了用户的时间开销。另一方面,推荐系统能够精确的为用户推荐高度相关的物品,增加用户对于互联网服务平台的粘性,帮助互联网服务业创造营收,实现用户和平台双赢。
3.然而,传统推荐系统过分聚焦精确度推荐,使用户陷入“信息茧房”和“信息孤岛”的处境,即只能获得与自己历史访问记录高度相关的信息,而忽视了用户对于外在信息的探索倾向。随着时间的推移,传统面向精确度的推荐会使得用户对与其访问记录高度相关的推荐列表感到无聊和枯燥,无法激发用户的点击和购买兴趣。


技术实现要素:

4.为了解决上述现有技术的不足,本发明提供了一种基于好奇心的个性化推荐方法、系统、计算机设备和存储介质,该方法通过基于多层感知机(mlp)和注意力机制的双分支网络捕捉用户和物品的隐式特征,并显式建模用户个体偏好和社会共识关系,用以挖掘用户隐式反馈中隐藏的好奇心特质;遵循心理学上的wundt曲线,设计了一种新颖的由奖励曲线和惩罚曲线组合的好奇心曲线来建模用户的好奇心特质,并通过re-weighting的方式将好奇心与推荐系统深度融合,实现了基于用户好奇心探索的多样性推荐,具有良好的实际应用价值。
5.本发明的第一个目的在于提供一种基于好奇心的个性化推荐方法。
6.本发明的第二个目的在于提供一种基于好奇心的个性化推荐系统。
7.本发明的第三个目的在于提供一种计算机设备。
8.本发明的第四个目的在于提供一种存储介质。
9.本发明的第一个目的可以通过采取如下技术方案达到:
10.一种基于好奇心的个性化推荐方法,所述方法包括:
11.获取数据集,根据数据集构建用户物品交互矩阵;所述数据集包括movielens-1m和lastfm-2k;
12.将用户物品交互矩阵中的用户和物品编号输入好奇心模型中的个体偏好模块,得到个体偏好得分;
13.将用户物品交互矩阵中的用户和物品编号输入好奇心模型中的社会共识模块,得
到社会共识分数;
14.将个体偏好得分和社会共识分数输入好奇心模型中的好奇心挖掘模块,生成好奇心曲线;
15.利用用户物品交互矩阵分别训练个体偏好模块和社会共识模块,根据初步训练后的个体偏好模块和社会共识模块输出的个体偏好得分和社会共识分数构建好奇心曲线,根据好奇心曲线计算好奇心分数并将其作为指导权重对个体偏好模块和社会共识模块继续进行训练;
16.利用训练好的好奇心模型中的个体偏好模块和社会共识模块,对真实场景中的用户物品交互数据进行预测,并对预测得分进行排序,得到最终的推荐列表。
17.进一步的,所述获取数据集,根据数据集构建用户物品交互矩阵,包括:
18.对数据集进行处理,得到处理后数据集;
19.根据处理后数据集,构建用户物品交互矩阵;
20.其中:
21.所述对数据集进行处理,得到处理后数据集,包括:
22.对数据集中的无效信息进行过滤,对过滤后的用户和物品分别进行连续编号;
23.将movielens-1m数据集中的显式评分信息转化为隐式反馈数据;
24.所述根据处理后数据集,构建用户物品交互矩阵,包括:
25.利用处理后数据集中的用户和物品编号以及隐式反馈数据构建用户物品交互矩阵,对于用户物品交互矩阵中a∈rm×n中的每一项,代表用户与物品是否存在交互,定义如下:
[0026][0027]
其中,hit表示用户和物品发生过交互,存在隐式反馈,a
p,q
表示交互矩阵中用户p对应的q物品项,m和n分别表示处理后数据集中用户和物品的数量。
[0028]
进一步的,所述个体偏好模块为基于矩阵分解的个体偏好模块,且通过多层感知机增加模块非线性表达能力;
[0029]
所述将用户物品交互矩阵中的用户和物品编号输入好奇心模型中的个体偏好模块,得到个体偏好得分,包括:
[0030]
根据用户物品交互矩阵中的用户和物品编号,利用两个可学习的嵌入矩阵和得到个体偏好模块中用户和物品的隐式特征表达;其中,d表示用户和物品隐式特征的维度;
[0031]
将用户和物品的隐式特征表达输入多层感知机增加其非线性,得到最终的用户和物品隐式特征表达;
[0032]
利用最终的用户和物品隐式特征表达的向量内积,得到个体偏好得分。
[0033]
进一步的,所述社会共识模块为基于注意力机制的社会共识模块;
[0034]
所述将用户物品交互矩阵中的用户和物品编号输入好奇心模型中的社会共识模块,得到社会共识分数,包括:
[0035]
根据用户物品交互矩阵中的用户和物品编号,利用两个可学习的嵌入矩阵和得到社会共识模块中用户和物品的隐式特征表达;根据用户和物
品的隐式特征表达,基于注意力机制进行社会共识关系显式建模,得到社会共识关系向量;其中,d表示用户和物品隐式特征的维度;
[0036]
根据社会共识关系向量,通过《头节点,关系,尾节点》的三元组形式描述不同用户和物品之间的社会共识关系图;
[0037]
根据社会共识关系图,聚合用户与其所对应的社会共识关系向量,得到基于社会共识的用户隐式特征,并通过与物品的隐式特征表达进行向量内积得到社会共识分数。
[0038]
进一步的,所述根据用户和物品的隐式特征表达,基于注意力机制进行社会共识关系显式建模,得到社会共识关系向量,包括:
[0039]
对于访问过物品i的用户集合ui={u1,u2,u3,...},将用户集合ui中的每个用户视为值向量,将物品i视为查询向量,利用注意力机制聚合访问过物品i的所有用户的信息,得到加权聚合后的社会共识关系向量ri,表示如下:
[0040][0041]
att
i,u
=sigmoid(v
itwavu
)
[0042]
其中,wa∈rd×d指可学习权重,att
i,u
表示物品i对于用户u的注意力分数,vu和vi分别表示社会共识模块中用户和物品的隐式特征表达;
[0043]
通过注意力机制完成不同社会共识的关系建模后,得到适用于整个数据集的社会共识关系向量集rj={r1,r2,...,rn}。
[0044]
进一步的,所述将个体偏好得分和社会共识分数输入好奇心模型中好奇心挖掘模块,生成好奇心曲线,包括:
[0045]
根据个体偏好得分和社会共识分数,计算冲突性刺激值sti;
[0046]
基于冲突性刺激值的频数分布建模奖励曲线和惩罚曲线,再将奖励曲线和惩罚曲线组合构建好奇心倒u形曲线,具体包括:
[0047][0048][0049][0050]
其中,reward(sti)、punish(sti)分别表示奖励曲线和惩罚曲线,sloper和slope
p
分别代表奖励曲线和惩罚曲线的斜率,offset表示好奇心曲线的感受野,pivot表示好奇心曲线最高点所在的刺激值,sti
u,i
表示用户u与对应的物品i经过个体偏好模块与社会共识模块所得到的冲突性刺激值;
[0051]
对于奖励曲线和惩罚曲线的斜率sloper和slope
p
,通过pivot的位置定义:
[0052]
sloper=e-δ(pivot)
[0053]
slope
p
=e-δ(1-pivot)
[0054]
其中,δ为可调整的超参数,用于控制斜率的变化差异,使其符合倒u形特征;
[0055]
基于不同用户好奇心感知水平存在差异,使用刺激值分布与pivot的标准差衡量
不同用户的好奇心感受野,公式如下:
[0056]
offset=0.5-std(sti,pivot)
[0057][0058]
其中,n表示sti的数量;
[0059]
根据奖励曲线和惩罚曲线构建好奇心曲线,公式如下:
[0060]
cur(sti)=reward(sti)+punish(sti)。
[0061]
进一步的,设正样本为用户物品交互矩阵中a
p,q
=1对应的物品,负样本为a
p,q
=0对应的物品;
[0062]
所述利用用户物品交互矩阵分别训练个体偏好模块和社会共识模块,包括:
[0063]
利用用户物品交互矩阵训练个体偏好模块,具体包括:
[0064]
将用户物品交互矩阵中的用户和物品编号输入好奇心模型中个体偏好模块,得到个体偏好得分;
[0065]
将用户与正样本编号得到的个体偏好得分记为用户与负样本编号得到的个体偏好得分记为
[0066]
根据和利用贝叶斯个性化排序损失计算误差值:
[0067][0068]
根据计算出的loss
p
值,通过梯度反向传播调整个体偏好模块中嵌入矩阵和多层感知机中的参数;
[0069]
利用用户物品交互矩阵训练社会共识模块,具体包括:
[0070]
将用户物品交互矩阵中的用户和物品编号输入基于注意力机制的社会共识模块,得到社会共识分数;
[0071]
将用户与正样本编号得到的社会共识分数记为用户与负样本编号得到的社会共识分数记为
[0072]
根据和利用贝叶斯个性化排序损失计算误差值:
[0073][0074]
根据计算出的losss值,通过梯度反向传播实现社会共识模块的参数更新。
[0075]
进一步的,将好奇心分数作为指导权重对个体偏好模块和社会共识模块继续进行训练,具体为:
[0076]
将好奇心分数作为贝叶斯个性化排序损失的权重,进而对好奇心模型中个体偏好模块和社会共识模块分别进行再次训练。
[0077]
本发明的第二个目的可以通过采取如下技术方案达到:
[0078]
一种基于好奇心的个性化推荐系统,所述系统包括:
[0079]
数据集获取模块,用于获取数据集,根据数据集构建用户物品交互矩阵;所述数据集包括movielens-1m和lastfm-2k;
[0080]
个体偏好模块,用于将用户物品交互矩阵中的用户和物品编号输入好奇心模型中的个体偏好模块,得到个体偏好得分;
[0081]
社会共识模块,用于将用户物品交互矩阵中的用户和物品编号输入好奇心模型中的社会共识模块,得到社会共识分数;
[0082]
好奇心挖掘模块,用于将个体偏好得分和社会共识分数输入好奇心模型中的好奇心挖掘模块,生成好奇心曲线;
[0083]
训练模块,用于利用用户物品交互矩阵分别训练个体偏好模块和社会共识模块,根据初步训练后的个体偏好模块和社会共识模块输出的个体偏好得分和社会共识分数构建好奇心曲线,根据好奇心曲线计算好奇心分数并将其作为指导权重对个体偏好模块和社会共识模块继续进行训练;
[0084]
得分预测模块,用于利用训练好的好奇心模型中的个体偏好模块和社会共识模块,对真实场景中的用户物品交互数据进行预测,并对预测得分进行排序,得到最终的推荐列表。
[0085]
本发明的第三个目的可以通过采取如下技术方案达到:
[0086]
一种计算机设备,包括处理器以及用于存储处理器可执行程序的存储器,所述处理器执行存储器存储的程序时,实现上述的个性化推荐方法。
[0087]
本发明的第四个目的可以通过采取如下技术方案达到:
[0088]
一种存储介质,存储有程序,所述程序被处理器执行时,实现上述的个性化推荐方法。
[0089]
本发明相对于现有技术具有如下的有益效果:
[0090]
1、本发明提供的方法,基于双分支网络分别捕捉用户选择下的个体偏好和社会共识因素,并利用其冲突性刺激建模用户好奇心曲线,最终将好奇心分数作为指导权重对模型进行再次训练,有效地缓解了传统推荐系统场景下的“信息孤岛”问题,实现了基于用户好奇心探索的多样性推荐,具有良好的实际应用价值。
[0091]
2、通过本发明提供的方法,能够合理的挖掘用户选择下潜在的好奇心特征,根据好奇心理论的指导,激活用户对物品的探索欲望,缓解了传统面向精确度推荐系统的“信息茧房”问题,帮助用户推荐更具多样性和个性化的物品。
[0092]
3、本发明提供的方法不同于传统好奇心推荐方法,利用外部信息建模好奇心刺激值,本发明提出一种新颖的基于注意力机制的社会共识关系图建模方法,捕捉用户选择下的社会共识因素,并基于此与个体偏好网络所捕捉到的个体偏好特征联合建模用户好奇心曲线,最终实现更具个性化和多样性的推荐列表,更符合真实世界的用户倾向,为用户实现更好的交互体验。
附图说明
[0093]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
[0094]
图1为本发明实施例1的基于好奇心的个性化推荐方法的流程图。
[0095]
图2为本发明实施例1的好奇心模型的原理示意图。
[0096]
图3为本发明实施例1的训练好奇心模型的流程图。
[0097]
图4为本发明实施例1的基于矩阵分解的个体偏好模块示意图。
[0098]
图5为本发明实施例1的基于注意力机制的社会共识模块关系图生成示意图。
[0099]
图6为本发明实施例1的好奇心曲线组合建模过程示意图。
[0100]
图7为本发明实施例1的模型训练流程图。
[0101]
图8为本发明实施例1的基于好奇心模型预测分数的生成示意图。
[0102]
图9为本发明实施例2的基于好奇心的个性化推荐系统的结构框图。
[0103]
图10为本发明实施例3的计算机设备的结构框图。
具体实施方式
[0104]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。应当理解,描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
[0105]
实施例1:
[0106]
本发明将心理学上的好奇心与推荐系统相结合,提出了一种基于好奇心的个性化推荐方法,通过挖掘用户潜在的好奇心特质,帮助用户走出“信息茧房”,并最终向用户提供一个契合其好奇心水平的个性化候选推荐列表。不同于之前工作依赖于外部信息计算用户好奇心刺激值,本发明提出一种基于多层感知机(mlp)和注意力机制的双分支模块捕捉用户和物品的隐式特征,并显式建模用户个体偏好和社会共识关系,用以挖掘用户隐式反馈中隐藏的好奇心特质。最后,遵循心理学上的wundt曲线,本发明设计了一种新颖的由奖励曲线和惩罚曲线组合的好奇心曲线来建模用户的好奇心特质,并通过一种re-weighting的方式将好奇心与推荐系统深度融合。
[0107]
如图1所示,本实施例提供的基于好奇心的个性化推荐方法,包括以下步骤:
[0108]
s101、获取公开数据集数据,根据数据集构建用户物品交互矩阵。
[0109]
进一步的,步骤s101包括:
[0110]
(1)获取公开数据集movielens-1m和lastfm-2k,并进行处理。
[0111]
本实施例中,收集公开数据集movielens-1m和lastfm-2k数据集用于本发明的训练。
[0112]
首先,对收集到的公开数据集movielens-1m和lastfm-2k中的无效信息进行过滤,剔除不存在交互记录的用户或物品。
[0113]
接下来,对过滤后的用户和物品分别进行编号,得到连续的用户和物品id,用于后续的交互矩阵生成和模型输入。
[0114]
最后,对于movielens-1m数据集,由于物品存在显式评分数据,需要先对其进行处理,将显式评分信息转为隐式反馈数据,即对于存在评分的物品数据,都将标签设置为1,否则将标签设置为0。其中,显式评分指明确具有评价信息的反馈,例如电影星级打分;隐式评分(隐式反馈)指表示用户和物品之间是否存在交互的0/1数据。
[0115]
(2)根据处理后的数据集构建用户物品交互矩阵。
[0116]
完成数据处理后,利用得到的用户和物品id以及隐式反馈数据构建用户物品交互矩阵,对于用户物品交互矩阵中a∈rm×n中的每一项,代表用户与物品是否存在交互,定义如下:
[0117][0118]
其中,hit表示用户和物品发生过交互,存在隐式反馈,a
p,q
表示交互矩阵中用户p对应的q物品项,m和n分别表示数据集中用户和物品的数量,该矩阵将用于后续模型的训练和测试。
[0119]
s102、构建好奇心模型,利用用户物品交互矩阵训练好奇心模型。
[0120]
如图2所示,好奇心模型包括基于矩阵分解的个体偏好模块、社会共识模块和好奇心挖掘模块。
[0121]
进一步的,如图3所示,步骤s102包括:
[0122]
s1021、将用户物品交互矩阵中的用户和物品编号输入基于矩阵分解的个体偏好模块,得到个体偏好得分;根据用户和物品之间的个体偏好得分计算误差值。
[0123]
本实施例中的个体偏好模块为嵌入矩阵与多层感知机(mlp)。
[0124]
进一步的,如图4所示,步骤s1021包括:
[0125]
(1)根据用户物品交互矩阵,得到用户和物品的隐式特征表达和
[0126]
对用户物品交互矩阵a
p,q
中的用户和物品编号进行嵌入表达,利用两个可学习的权值矩阵和得到用户和物品的隐式特征表达,具体如下:
[0127][0128][0129]
其中,u和i分别表示用户和物品的编号,d表示隐式特征的维度(隐式特征的表达方式是向量,d表示向量的长度,即维度),和分别表示用户和物品的隐式特征表达,同时作为多层感知机(mlp)初始层的输入。
[0130]
(2)对于用户和物品的初始隐式特征表达和通过多层感知机增加其非线性,得到最终的用户和物品隐式特征表达,公式如下:
[0131][0132][0133]
其中,t表示多层感知机的层数,和对应用户第t层神经网络的权值参数和偏置参数,和对应用户第t层神经网络的输入和输出;同理,和对应物品第t层神经网络的权值参数和偏置参数,和对应物品第t层神经网络的输入和输出。由公式可以看出,多层感知机的上一层输出是下一层的输入,tanh是一种非线性激活函数,公式表示如下:
[0134][0135]
本实施例中t为大于等于3的整数。
[0136]
最终的用户和物品隐式特征表达即为多层感知机输出的每个用户以及每件物品的隐式特征表达,为简化起见,个体偏好模块的最后一层输出省略上标,表示为pu和pi。
[0137]
(3)利用用户和物品隐式特征表达的向量内积得到个体偏好得分,以及根据用户和物品之间的预测得分计算误差值。
[0138]
利用用户和物品隐式特征表达的向量内积得到个体偏好得分,并使用贝叶斯个性化排序损失计算误差值:
[0139][0140][0141][0142]
其中,score
p
表示个体偏好得分,而和分别表示用户和正样本物品/负样本物品之间的预测得分,公式均与score
p
相同,其中,正样本指用户物品交互矩阵中a
p,q
=1的物品,负样本则指a
p,q
=0的物品。
[0143]
s1022、将用户物品交互矩阵中的用户和物品编号输入基于注意力机制的社会共识模块,得到社会共识分数;根据用户和物品之间的社会共识分数计算误差值。
[0144]
进一步的,如图5所示,步骤s1022包括:
[0145]
(1)根据用户物品交互矩阵中的用户和物品编号,通过与s102步骤(1)相同的方式得到隐式特征表达,并基于注意力机制对其进行社会共识关系的显式建模,得到社会共识关系向量。
[0146]
其中,通过与s102步骤(1)相同的方式得到用户和物品的隐式特征表达vu和vi,基于注意力机制对其进行社会共识关系的显式建模。对于访问过物品i的用户集合ui={u1,u2,u3,...},将用户集合ui中的每个用户视为值向量,将物品i视为查询向量,利用注意力机制聚合访问过物品i的所有用户的信息,最终得到加权聚合后的社会共识关系向量ri,表示如下:
[0147][0148]
att
i,u
=sigmoid(v
itwavu
)
[0149]
其中,wa∈rd×d指可学习权重,d表示用户和物品特征向量的维度,att
i,u
表示物品i对于用户u的注意力分数。
[0150]
通过注意力机制完成不同社会共识的关系建模后,得到适用于整个数据集的社会共识关系向量集ri={r1,r2,...,rn}。
[0151]
(2)根据社会共识关系向量,通过<头节点,关系,尾节点>的三元组形式描述不同用户和物品之间的社会共识关系图。
[0152]
受知识图谱启发,本实施例通过<头节点,关系,尾节点>的三元组形式描述不同用户和物品之间的社会共识关系图。对于物品i,访问过物品i的用户集合ui中的所有用户共享同一种社会共识关系ri。
[0153]
(3)根据社会共识关系图,得到社会共识分数;根据用户和物品之间的预测得分计
算误差值。
[0154]
将用户与其对应的社会共识关系相加,得到基于社会共识的用户隐式特征表达,然后与物品的隐式特征表达进行内积计算得到社会共识分数scores,并利用贝叶斯个性化排序损失计算误差值,通过梯度反向传播实现模型的参数更新,公式表述如下:
[0155][0156][0157][0158]
其中,和的计算公式相同,分别表示用户和正样本物品/负样本物品之间的预测得分。
[0159]
s1023、将个体偏好得分和社会共识分数输入好奇心挖掘模块,生成好奇心曲线。
[0160]
进一步的,如图6所示,步骤s1023包括:
[0161]
(1)根据个体偏好得分和社会共识分数,计算冲突性刺激值。
[0162]
根据个体偏好模块计算的个体偏好得分和社会共识模块计算的社会共识分数,计算冲突性刺激值,公式如下:
[0163]
sti=|score
s-score
p
|
[0164]
其中,sti表示冲突性刺激值,score
p
和scores分别表示个体偏好模块和社会共识模块的输出结果。
[0165]
(2)基于冲突性刺激值的频数分布建模奖励曲线和惩罚曲线,再将奖励曲线和惩罚曲线组合构建好奇心倒u形曲线。
[0166]
(2-1)基于冲突性刺激值的频数分布建模奖励曲线和惩罚曲线。
[0167]
奖励曲线、惩罚曲线以及好奇心曲线的公式如下:
[0168][0169][0170]
其中,sloper和slope
p
分别代表奖励曲线和惩罚曲线的斜率,offset表示好奇心曲线的感受野,即用户对于刺激值的敏感程度;pivot表示好奇心曲线最高点所在的刺激值,表达式为:
[0171][0172]
其中,sti
u,i
表示用户u与对应的物品i,经过个体偏好模块与社会共识模块所得到结果的冲突性刺激值。
[0173]
基于斜率sloper和slope
p
表示好奇心曲线的变化剧烈程度,遵循心理学好奇心驱动理论的指导,当用户频繁感受到某种强度的刺激时,对于好奇心的激发程度也会随之下降,可理解为对于刺激的耐受性增强,很难唤醒好奇心。因此,对于奖励曲线和惩罚曲线的斜率,本实施例通过pivot的位置来定义:
[0174]
sloper=e-δ(pivot)
[0175]
slope
p
=e-δ(1-pivot)
[0176]
其中,δ是一个可调整的超参数,用于控制斜率的变化差异,使其符合倒u形特征,通过实验观察δ=1.3较为合理。
[0177]
基于不同用户好奇心感知水平存在差异,标准差能够体现刺激值分布与pivot的离散程度,因此可用来衡量用户的好奇心感受野。本实施例使用刺激值分布的标准差衡量不同用户的好奇心感受野,公式如下:
[0178]
offset=0.5-std(sti,pivot)
[0179][0180]
其中,n表示sti的数量。
[0181]
(2-2)根据奖励曲线和惩罚曲线构建好奇心曲线。
[0182]
根据下述公式,得到好奇心曲线:
[0183]
cur(sti)=reward(sti)+punish(sti)
[0184]
基于上述步骤,最终实现好奇心wundt曲线的建模,并随之得到不同刺激水平下的好奇心分数。
[0185]
s1024、利用用户物品交互矩阵分别训练个体偏好模块和社会共识模块,利用初步训练后的个体偏好模块和社会共识模块输出的结果建模好奇心曲线;根据好奇心曲线计算好奇心分数并将其作为指导权重对好奇心模型中的个体偏好模块和社会共识模块继续进行训练,得到训练好的好奇心模型。
[0186]
进一步的,如图7所示,步骤s1024包括三个阶段,分别为:
[0187]
(1)利用用户物品交互矩阵分别对个体偏好模块和社会共识模块进行训练,分别得到初步训练好的个体偏好模块和社会共识模块。
[0188]
利用隐式反馈数据对个体偏好模块进行训练,即根据计算出的loss
p
值调整嵌入矩阵与多层感知机中的参数,包括多层感知机中每一层的权值参数通过对个体偏好模块进行初步训练,得到表达能力较优的用户物品隐式特征,基于预训练的用户物品隐式特征,通过内积的方式得到用户对物品的个体偏好得分;以及利用隐式反馈数据对社会共识模块进行训练,即根据计算出的losss值,通过梯度反向传播实现模块的参数更新;根据训练后的社会共识模块得到社会共识得分。
[0189]
(2)将用户物品交互矩阵中的用户以及物品的编号分别输入以上两个训练好的模块,分别得到个体偏好得分和社会共识得分,通过好奇心挖掘模块建模的好奇心曲线,计算好奇心分数。
[0190]
(3)基于步骤(2)得到的好奇心分数cur,将好奇心分数作为贝叶斯个性化排序损失的权重,在好奇心水平指导下对模型中的个体偏好模块和社会共识模块分别进行再次训练,公式如下:
[0191][0192]
考虑到个体偏好模块和社会共识模块所使用的损失函数计算过程一致,为简化起
见,这里仅阐明好奇心指导下的通用loss公式。
[0193]
假设本实施例对模型总共训练100次,其中80次用于第一阶段的训练,即分别训练个体偏好模块和社会共识模块80次;后面的20次用于第三阶段,即通过步骤(2)以及(3)中计算的loss对个体偏好模块和社会共识模块中的参数作进一步的调整,从而得到训练好的模型。
[0194]
s103、利用训练好的好奇心模型中的个体偏好模块和社会共识模块对真实场景中的用户物品交互数据进行预测,并对预测得分进行排序,得到最终的推荐列表。
[0195]
如图8所示,将真实场景中用户物品交互中的隐式反馈数据输入训练好的个体偏好模块和社会共识模块,得到个体偏好得分和社会共识得分,通过超参数α调节个体偏好模块和社会共识模块对最终预测结果的贡献比例,得到预测得分,即:
[0196]
pred=αscore
p
+(1-α)scores[0197]
本领域技术人员可以理解,实现上述实施例的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,相应的程序可以存储于计算机可读存储介质中。
[0198]
应当注意,尽管在附图中以特定顺序描述了上述实施例的方法操作,但是这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0199]
实施例2:
[0200]
如图9所示,本实施例提供了一种基于好奇心的个性化推荐系统,该系统包括数据集获取模块901、个体偏好模块902、社会共识模块903、好奇心挖掘模块904、训练模块905和得分预测模块906,其中:
[0201]
数据集获取模块901,用于获取数据集,根据数据集构建用户物品交互矩阵;所述数据集包括movielens-1m和lastfm-2k;
[0202]
个体偏好模块902,用于将用户物品交互矩阵中的用户和物品编号输入好奇心模型中的个体偏好模块,得到个体偏好得分;
[0203]
社会共识模块903,用于将用户物品交互矩阵中的用户和物品编号输入好奇心模型中的社会共识模块,得到社会共识分数;
[0204]
好奇心挖掘模块904,用于将个体偏好得分和社会共识分数输入好奇心模型的中好奇心挖掘模块,生成好奇心曲线;
[0205]
训练模块905,用于利用用户物品交互矩阵分别训练个体偏好模块和社会共识模块,根据初步训练后的个体偏好模块和社会共识模块输出的个体偏好得分和社会共识分数构建好奇心曲线,根据好奇心曲线计算好奇心分数并将其作为指导权重对个体偏好模块和社会共识模块继续进行训练;
[0206]
得分预测模块906,用于利用训练好的好奇心模型中的个体偏好模块和社会共识模块,对真实场景中的用户物品交互数据进行预测,并对预测得分进行排序,得到最终的推荐列表。
[0207]
本实施例中各个模块的具体实现可以参见上述实施例1,在此不再一一赘述;需要说明的是,本实施例提供的系统仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将内部结构划分成不同的功能
模块,以完成以上描述的全部或者部分功能。
[0208]
实施例3:
[0209]
本实施例提供了一种计算机设备,该计算机设备可以为计算机,如图10所示,其通过系统总线1001连接的处理器1002、存储器、输入装置1003、显示器1004和网络接口1005,该处理器用于提供计算和控制能力,该存储器包括非易失性存储介质1006和内存储器1007,该非易失性存储介质1006存储有操作系统、计算机程序和数据库,该内存储器1007为非易失性存储介质中的操作系统和计算机程序的运行提供环境,处理器1002执行存储器存储的计算机程序时,实现上述实施例1的个性化推荐方法,如下:
[0210]
获取数据集,根据数据集构建用户物品交互矩阵;所述数据集包括movielens-1m和lastfm-2k;
[0211]
将用户物品交互矩阵中的用户和物品编号输入好奇心模型中的个体偏好模块,得到个体偏好得分;
[0212]
将用户物品交互矩阵中的用户和物品编号输入好奇心模型中的社会共识模块,得到社会共识分数;
[0213]
将个体偏好得分和社会共识分数输入好奇心模型中的好奇心挖掘模块,生成好奇心曲线;
[0214]
利用用户物品交互矩阵分别训练个体偏好模块和社会共识模块,根据初步训练后的个体偏好模块和社会共识模块输出的个体偏好得分和社会共识分数构建好奇心曲线,根据好奇心曲线计算好奇心分数并将其作为指导权重对个体偏好模块和社会共识模块继续进行训练;
[0215]
利用训练好的好奇心模型中的个体偏好模块和社会共识模块,对真实场景中的用户物品交互数据进行预测,并对预测得分进行排序,得到最终的推荐列表。
[0216]
实施例4:
[0217]
本实施例提供了一种存储介质,该存储介质为计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时,实现上述实施例1的个性化推荐方法,如下:
[0218]
获取数据集,根据数据集构建用户物品交互矩阵;所述数据集包括movielens-1m和lastfm-2k;
[0219]
将用户物品交互矩阵中的用户和物品编号输入好奇心模型中的个体偏好模块,得到个体偏好得分;
[0220]
将用户物品交互矩阵中的用户和物品编号输入好奇心模型中的社会共识模块,得到社会共识分数;
[0221]
将个体偏好得分和社会共识分数输入好奇心模型中的好奇心挖掘模块,生成好奇心曲线;
[0222]
利用用户物品交互矩阵分别训练个体偏好模块和社会共识模块,根据初步训练后的个体偏好模块和社会共识模块输出的个体偏好得分和社会共识分数构建好奇心曲线,根据好奇心曲线计算好奇心分数并将其作为指导权重对个体偏好模块和社会共识模块继续进行训练;
[0223]
利用训练好的好奇心模型中的个体偏好模块和社会共识模块,对真实场景中的用户物品交互数据进行预测,并对预测得分进行排序,得到最终的推荐列表。
[0224]
需要说明的是,本实施例的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0225]
综上所述,本发明提供的方法,包括:收集公开数据集数据,构建用户物品交互矩阵;构建基于矩阵分解的个体偏好网络,包括基于矩阵分解的隐式特征提取和基于多层感知机的非线性关系建模;构建基于注意力机制的社会共识网络,包括基于注意力的社会共识关系图谱构建,基于《头节点,关系,尾节点》三元组的度量学习方法;构建基于个体偏好与社会共识的冲突性刺激,包括利用个体偏好和社会共识网络的输出计算冲突性刺激值;构建好奇心倒u形曲线,包括基于冲突性刺激值频数分布建模奖励曲线和惩罚曲线,将奖励曲线和惩罚曲线组合建模好奇心倒u型曲线;将隐式反馈数据输入模型完成初步训练,利用初步训练的结果建模好奇心曲线,将好奇心分数作为指导权重对模型继续训练;利用训练好的模型对真实场景中的用户物品交互数据进行预测,对预测得分进行排序,得到最终的推荐列表。本发明所述的方法应用双分支网络分别捕捉用户选择下的个体偏好和社会共识因素,并利用其冲突性刺激建模用户好奇心曲线,最终将好奇心分数作为指导权重对模型进行再次训练,有效地缓解了传统推荐系统场景下的“信息孤岛”问题,实现了基于用户好奇心探索的多样性推荐,具有良好的实际应用价值。
[0226]
以上所述,仅为本发明专利较佳的实施例,但本发明专利的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明构思加以等同替换或改变,都属于本发明专利的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1