具有预测可靠性的深度神经网络推荐系统

文档序号:33505108发布日期:2023-03-17 23:50阅读:76来源:国知局
具有预测可靠性的深度神经网络推荐系统

1.本发明涉及推荐技术领域,特别涉及一种具有预测可靠性的深度神经网络推荐系统。


背景技术:

2.近些年,深度神经网络在计算机视觉、自然语言处理等机器学习领域展现出了优越的性能。与浅层网络相比,深层网络可以更好地从数据中捕捉到用户和项目特征间的高阶非线性关系。因此,该技术也被广泛应用于推荐领域,并取得了良好的效果。
3.然而,现有的深度学习的推荐系统大多都只关注于推荐项目的准确性,而忽略了这些所推荐项目是否具有可靠性。在推荐系统中,为推荐算法所预测出的评级提供相应可靠性概率可以有效地过滤掉低可靠性预测,从而实现既可靠又准确的推荐,提高用户满意度。同时,由于可靠性信息具有一定可解释性,因而还能增强用户对推荐系统的可信度。因此,设计一个具有预测可靠性的深度神经网络推荐系统来进一步提高推荐准确性就显得尤为重要。


技术实现要素:

4.针对上述问题,本发明提出一种具有预测可靠性的深度神经网络推荐系统,以帮助推荐系统过滤掉不可靠的预测评级,包括如下:
5.数据采集及准备模块,用于对数据库中收集的数据进行获取和清洗,以得到需要信息。
6.评级矩阵划分模块,用于根据系统设定的不同评级值,将用户-项目评级矩阵r划分为对应的几个独立且只含0-1二值的子矩阵。例如,系统中评级区间为1-5分,则划分r为5个子矩阵,且每个子矩阵代表一个评级。
7.评级概率计算模块,用于利用深度神经网络中的双塔模型去并行训练所获取的子矩阵,以预测出每个子矩阵中相同空白区域的概率值。
8.可靠性获取模块,用于归一化每个子矩阵中所得到的概率值,并将归一化后的最大概率值作为可靠性概率。
9.评级值获取模块,用于根据所获取的可靠性概率,找到对应子矩阵所代表的评级,并将该评级作为该空白区域的预测评级。
10.可靠性阈值过滤模块,用于通过与系统设定的可靠性阈值进行比较,将可靠性概率低于阈值的预测评级进行过滤,保留较高可靠性概率的评级。
11.推荐结果获取模块,用于将保留的较高可靠性概率的预测评级进行内部排序,将预测评级较高的前k个项目推送给目标用户,以形成其个性化推荐列表。
12.本发明所述评级矩阵划分模块,用于根据系统设定的不同评级值,将用户-项目评级矩阵r划分为对应的几个独立且只含0-1二值的子矩阵。子矩阵的设定规则如下:若用户评级与子矩阵所代表的评级相同,则子矩阵中对应位置的值设定为1;若不同,则设定为0;
否则,为空,即该位置为系统待预测的空白区域。
13.本发明所述评级概率计算模块,用于利用深度神经网络中的双塔模型去并行训练所获取的子矩阵,以预测出每个子矩阵中相同空白区域的概率值。具体包括如下步骤:
14.①
输入层,输入用户u(项目i)的特征嵌入向量zu(zi)。
15.②
隐藏层,利用激活函数relu来防止模型过拟合,获取所有隐藏层的输出l。
16.relu(zu)=max(0,zu)
17.l1=w
1tzu
18.ln=relu(w
1t
l
n-1
+bn),n=2,...,x-1
19.其中,wn和bn分别表示第n个隐藏层的权重矩阵和偏置向量。
20.③
输出层,获取用户u(项目i)的潜在特征向量pu(qi):
[0021][0022][0023]

计算用户u在项目i上的预测评级概率,如下:
[0024][0025]
其中,w
out
和e分别表示向量的权重矩阵和元素积;sigmoid函数σ(x)=1/(1+e-x
)用于将输出限制在范围(0,1)之内。
[0026]
本发明所述可靠性获取模块,用于归一化每个子矩阵所代表的评级r中所得到的预测概率并将归一化后的最大概率值作为该区域的可靠性概率。
[0027][0028]
本发明所述评级值获取模块,用于根据所获取的可靠性概率,找到对应子矩阵所代表的评级r,并将该评级作为该空白区域的预测评级p
ui

[0029]
本发明所述可靠性阈值过滤模块,用于将预测评级所对应的可靠性概率与系统设定的可靠性阈值θ比较,若可靠性概率小于阈值,则认为该预测评级不可靠,进行过滤,反之亦然。
[0030]
本发明所述推荐结果获取模块,用于获取目标用户u的推荐列表。其中包括:将保留的较高可靠性概率的预测评级进行内部从大到小排序,设定待推荐项目数k,选取前k个预测评级较高的项目推送给目标用户u,以形成目标用户u的个性化推荐列表。
[0031]
本发明提出的具有预测可靠性的深度神经网络推荐系统,只使用用户与项目间的交互关系和评级信息,而无需其它辅助信息来获得预测评级的可靠性概率。因此,所提系统具有良好的通用性和扩展性。同时,所提系统通过过滤较低可靠性概率的预测评级,保留具有较高可靠性的预测,可以进一步提高推荐准确性和用户满意度。
附图说明
[0032]
图1是本发明的系统过程示意图;
[0033]
图2是本发明的系统框架图;
[0034]
图3是本发明在四个数据集下hr@5值和ndcg@5值与其他方法对比情况。
具体实施方式
[0035]
为了使用本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明提出的一种具有预测可靠性的深度神经网络的推荐系统进行详细说明。应当理解,此处所描述的具体实施方法仅仅用以解释本发明,并不用于限定本发明,本技术领域的普通技术人员在本发明的示值范围内所做出的变化、改动、添加修改或替换,其均应涵盖在本发明的权利要求范围之中。
[0036]
图1是本发明的具有预测可靠性的深度神经网络推荐系统的过程示意图。从图1可以看出,本发明提出的具有预测可靠性的深度神经网络推荐系统,包括从数据库中获取和清理数据信息,以获得所需信息;根据系统设定的不同评级值,将用户-项目评级矩阵r划分为对应的几个独立且只含0-1二值的子矩阵;利用深度神经网络中的双塔模型去并行训练所获取的子矩阵,以预测出每个子矩阵中相同空白区域的概率值;归一化每个子矩阵中所得到的概率值,并将归一化后的最大概率值作为可靠性概率;根据所获取的可靠性概率,找到对应子矩阵所代表的评级,并将该评级作为该空白区域的预测评级;通过与系统设定的可靠性阈值进行比较,将可靠性概率低于阈值的预测评级进行过滤,保留较高可靠性概率的评级;对过滤后的预测评分集合进行排序,将预测评级较高的前k个项目推送给目标用户,以形成其个性化推荐列表。
[0037]
图2是本发明的具有预测可靠性的深度神经网络推荐系统的框架图。从图2可以看出,本发明提出的具有预测可靠性的深度神经网络推荐系统,包括数据采集及准备模块、评级矩阵划分模块、评级概率计算模块、可靠性获取模块、评级值获取模块、可靠性阈值过滤模块、推荐结果获取模块。所述数据采集及准备模块用于从数据库中提取数据,并对数据进行清洗和预处理等操作,以得到需要的信息;所述评级矩阵划分模块根据系统设定的不同评级值,将用户-项目评级矩阵r划分为对应的几个独立且只含0-1二值的子矩阵,例如,系统中评级区间为1-5分,则划分r为5个子矩阵,且每个子矩阵代表一个评级;所述评级概率计算模块利用深度神经网络中的双塔模型去并行训练所获取的子矩阵,以预测出每个子矩阵中相同空白区域的概率值;所述可靠性获取模块,用于归一化每个子矩阵中所得到的概率值,并将归一化后的最大概率值作为可靠性概率;所述评级值获取模块,用于根据所获取的可靠性概率,找到对应子矩阵所代表的评级,并将该评级作为该空白区域的预测评级;所述可靠性阈值过滤模块,用于通过与系统设定的可靠性阈值进行比较,将可靠性概率低于阈值的预测评级进行过滤,保留较高可靠性概率的评级;所述推荐结果获取模块根据所述评级值获取模块,并将所述可靠性阈值过滤模块保留的较高可靠性概率的预测评级进行内部排序,将预测评级较高的前k个项目推送给目标用户,以形成其个性化推荐列表。
[0038]
进一步地,以下述情况为例子进行说明:
[0039]
movielens数据集中有m个用户u={u1,u2,...,um}和n个项目i={i1,i2,...,in},评级域为{1,2,3,4,5},用户-项目评分矩阵用[r]m×n表示;r
ui
表示用户在项目i上的评分值,u(i,j)表示为既对项目i又对项目j有过评分行为的用户集合,即共同评分项;ui表示所有对项目i有过评价的用户集合。
[0040]
首先通过数据采集及准备模块对系统数据进行获取和清洗,得到假设中的各变
量。整个所提具有预测可靠性的深度神经网络推荐系统的具体实施步骤如下所示:
[0041]
s1:数据采集及准备模块从数据库中获取所需的数据信息,包括用户id、项目id和评分信息;
[0042]
s2:评级矩阵划分模块根据系统设定的不同评级值,将用户-项目评级矩阵r划分为对应的几个独立且只含0-1二值的子矩阵;
[0043]
以movielens数据集为例,其评级域为{1,2,3,4,5},则可将评级矩阵r划分为与评级值相对应的五个子矩阵,子矩阵的设定规则如下:若用户评级与子矩阵所代表的评级相同,则子矩阵中对应位置的值设定为1;若不同,则设定为0;否则,为空,即该位置为系统待预测的空白区域。
[0044]
s3:评级概率计算模块利用深度神经网络中的双塔模型去并行训练所获取的子矩阵,以预测出每个子矩阵中相同空白区域的概率值;
[0045]
双塔模型各层计算公式如下:
[0046]
输入层:输入层,输入用户u(项目i)的特征嵌入向量zu(zi);
[0047]
隐藏层:利用激活函数relu来防止模型过拟合,获取所有隐藏层的输出l;
[0048]
relu(zu)=max(0,zu)
[0049]
l1=w
1tzu
[0050]
ln=relu(w
1t
l
n-1
+bn),n=2,...,x-1
[0051]
其中,wn和bn分别表示第n个隐藏层的权重矩阵和偏置向量。
[0052]
输出层:获取用户u(项目i)的潜在特征向量pu(qi):
[0053][0054][0055]
然后,计算用户u在项目i上的预测评级概率,
[0056][0057]
其中,w
out
和e分别表示向量的权重矩阵和元素积;sigmoid函数σ(x)=1/(1+e-x
)用于将输出限制在范围(0,1)之内。
[0058]
s4:可靠性获取模块,用于归一化每个子矩阵所代表的评级r中所得到的预测概率并将归一化后的最大概率值作为该区域的可靠性概率,公式如下:
[0059][0060]
s5:评级值获取模块,用于根据所获取的可靠性概率,找到对应子矩阵所代表的评级r,并将该评级作为该空白区域的预测评级p
ui

[0061]
s6:可靠性阈值过滤模块,用于将预测评级所对应的可靠性概率与系统设定的可靠性阈值θ比较,若可靠性概率小于阈值,则认为该预测评级不可靠,进行过滤,反之亦然。
[0062]
s7:推荐结果获取模块,用于获取目标用户u的推荐列表。其中包括:将保留的较高可靠性概率的预测评级进行内部从大到小排序,设定待推荐项目数k,选取前k个预测评级较高的项目推送给目标用户u,以形成目标用户u的个性化推荐列表。
[0063]
图3度量了提出的方法在四个数据及上两个方面的指标表现,并与其他方法进行了对比。两个度量分别是:命中率(hr)和标准化折扣累积收益(ndcg)。它们的计算方式及度量内容如下所示:
[0064]
命中率(hr):用于测量测试集中的实际推荐项目是否呈现在top-k预测推荐列表上,其指示了模型的项目推荐能力,计算方法如下:
[0065][0066]
其中m表示推荐系统中的用户数量,hits(i)表示第i个用户的前k个预测推荐项目在实际推荐项目集合中的比例。
[0067]
标准化折扣累积收益(ndcg):通过给排名靠前的点击分配更高的分数来说明点击的位置,其显示了模型的项目排名推荐质量,计算公式如下:
[0068][0069][0070][0071]
其中,dcg@k和idcg@k分别表示贴现累积增益和理想dcg,rel
p
用于显示位置p处项目的推荐相关性,即,如果预测推荐项目出现在实际推荐列表中,rel
p
=1,否则为0。值得注意的是,我们假设如果项目的预测或实际评级超过评级区间的中值,则推荐该项目。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1