本发明属于互联网技术领域,特别是涉及一种基于预测值填充的项目推荐方法、可读存储介质和终端。
背景技术:
随着互联网的快速发展,网络信息以爆炸式地增长,导致用户无法在庞大的数据信息中筛选有价值的信息,信息过载问题亟待解决。在此背景下,个性化推荐系统应运而生。具体而言,推荐系统是基于用户的历史行为数据或物品数据,通过有效的算法,为用户推荐符合他需求的物品。目前在电子商务和社交网络等领域中,都不同程度地使用了推荐系统技术。
协同过滤(collaborativefiltering,cf)算法是应用最广泛的推荐算法之一,该算法利用用户对项目评分的高低来衡量用户的兴趣偏好,根据评分进行推荐。协同过滤推荐算法主要分为基于模型和基于邻域两类。
技术实现要素:
本发明所要解决的技术问题是如何提高项目推荐的准确性,提升用户的体验。
为了达到上述目的,本发明提供一种基于预测值填充的项目推荐方法,所述方法包括:
获取原始用户项目评分矩阵;
当确定所述原始用户项目评分矩阵为稀疏矩阵时,基于所述项目间的相似性对所述原始用户项目评分矩阵进行填充,得到对应的填充矩阵;
基于所述填充矩阵,对目标用户的项目评分进行预测;
根据预测得到的项目评分将对应的项目推荐给所述目标用户。
可选地,所述基于所述项目间的相似性对所述原始用户项目评分矩阵进行填充,包括:
计算所述原始用户项目评分矩阵中项目之间的相似度;
基于计算得到的项目之间的相似度,确定所述原始用户项目评分矩阵中与未评分项目相似度最高的多个评分项目;
采用所述原始用户项目评分矩阵中与未评分项目相似度最高的多个评分项目的评分,计算得到所述未评分项目的预测评分;
将所述未评分项目的预测评分填入所述原始用户项目评分矩阵中的对应位置处。
可选地,所述基于所述填充矩阵,对目标用户的项目评分进行预测,包括:
对所述填充矩阵采用奇异值分解进行降维,得到对应的左奇异矩阵和奇异值矩阵;
基于所述左奇异矩阵和奇异值矩阵,构建用户隐式特征空间矩阵;
基于所述用户的用户隐式特征空间矩阵,确定每个用户的邻居用户群;
基于所述邻居用户群中用户之间的信任关系,构建目标用户的信任邻居群集合;
基于所构建的目标用户的信任邻居群集合中用户的项目评分,对所述目标用户的为评分项目进行预测。
可选地,采用如下的公式对所述填充矩阵采用奇异值分解进行降维:
其中,
可选地,采用如下的公式基于所述左奇异矩阵和奇异值矩阵,构建用户隐式特征空间矩阵:
y=pksk1/2;
其中,y表示所述用户隐式特征空间矩阵,pk表示对所述填充矩阵采用奇异值分解进行降维得到的左奇异矩阵,sk表示对所述填充矩阵采用奇异值分解进行降维得到的奇异值矩阵。
可选地,所述基于所述用户隐式特征空间矩阵,确定每个用户的邻居用户群,包括:
在所述用户隐式特征空间矩阵下计算每两个用户之间相似度,构建用户相似矩阵;
将所述用户相似矩阵转换为对应的模糊等价矩阵;
按照所述模糊等价矩阵中等价关系值,将具有相似特征的用户归为一类,得到每个用户对应的邻居用户群。
可选地,所述基于所述邻居用户群中用户之间的信任关系,构建信任用户的信任邻居群集合,包括:
当目标用户与所述信任邻居群集合中的邻居用户之间具有直接信任关系时,采用修正的余弦相似性计算所述目标用户与该邻居用户之间的信任度数值;
当目标用户与所述信任邻居群集合中的邻居用户之间具有间接信任关系时,采用信任传播算法计算所述目标用户与该邻居用户之间的信任度数值;
获取与所述目标用户的信任度数值较高的多个邻居用户,组成所述目标用户的信任邻居群集合。
可选地,采用如下的公式基于所构建的目标用户的信任邻居群集合中用户的项目评分,对所述目标用户的为评分项目进行预测:
其中,pa,i表示目标用户ua的未评分项目i的预测评分,
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述任一项所述的基于预测值填充的项目推荐方法的步骤。
本发明实施例还提供了一种终端,包括存储器和处理器,所述存储器上储存有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述任一项所述的基于预测值填充的项目推荐方法的步骤。
与现有技术相比,本发明的有益效果为:
上述的方案,通过当确定所述原始用户项目评分矩阵为稀疏矩阵时,基于所述项目间的相似性对所述原始用户项目评分矩阵进行填充,得到对应的填充矩阵,并基于所述填充矩阵,对目标用户的项目评分进行预测,最后根据预测得到的项目评分将对应的项目推荐给所述目标用户,可以有效解决数据稀疏问题,提高项目推荐的准确性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中的一种基于预测值填充的项目推荐方法的流程示意图;
图2是本发明实施例中的一种基于预测值填充的项目推荐装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本发明实施例中有关方向性指示(诸如上、下、左、右、前、后等)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
如背景技术所述,现有技术其中的协同过滤算法是应用最广泛的推荐算法之一,该算法利用用户对项目评分的高低来衡量用户的兴趣偏好,根据评分进行推荐。协同过滤推荐算法主要分为基于模型和基于邻域两类。
其中,基于模型的协同过滤主要通过用户对产品的评分信息训练出相应的模型,利用模型再进行未知数据的预测。由于虽然具有良好的扩展性和可实践性被广泛的使用,但是随着用户和项目数量的急剧增加,面临着用户-评分矩阵稀疏性的问题,导致推荐质量不高。
本发明实施例中的技术方案通过当确定所述原始用户项目评分矩阵为稀疏矩阵时,基于所述项目间的相似性对所述原始用户项目评分矩阵进行填充,得到对应的填充矩阵,并基于所述填充矩阵,对目标用户的项目评分进行预测,最后根据预测得到的项目评分将对应的项目推荐给所述目标用户,可以有效解决数据稀疏问题,提高项目推荐的准确性。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1基于预测值填充的项目推荐方法的流程示意图是本发明实施例的一种。参见图1,一种基于预测值填充的项目推荐方法,具体可以包括如下的步骤:
步骤s101:获取原始用户项目评分矩阵。
在具体实施中,所述原始用户项目评分矩阵中包括多个用户与对应的多个项目的评分信息。
步骤s102:当确定所述原始用户项目评分矩阵为稀疏矩阵时,基于所述项目间的相似性对所述原始用户项目评分矩阵进行填充,得到对应的填充矩阵。
在具体实施中,当确定原始的用户项目评分矩阵为稀疏矩阵时,若在稀疏矩阵下对目标用户的未评分项目进行评分预测,会出现数据稀疏所导致的推荐不准确的问题。因此,为了避免数据稀疏,可以首先对原始的用户项目评分矩阵进行填充。
在具体实施中,可以基于原始的用户项目评分矩阵中的项目之间的相似性,来对用户对未评分项目的评分进行预测,以此来填充原始用户项目评分矩阵,可以具体包括如下的操作:
首先,计算所述原始用户项目评分矩阵中项目之间的相似度。在本发明一实施例中,采用如下的公式计算原始用户项目评分矩阵中项目之间的相似度:
其中,sim(a,b)表示原始用户项目评分矩阵中项目a与项目b之间的相似度,ra,i表示用户a对项目i的评分,rb,i表示用户b对项目i的评分,
在计算得到项目之间的相似度之后,再基于计算得到的项目之间的相似度,确定所述原始用户项目评分矩阵中与未评分项目相似度最高的多个评分项目,并将采用所述原始用户项目评分矩阵中与未评分项目相似度最高的多个评分项目的评分,计算得到所述未评分项目的预测评分。换言之,将在整个项目空间中查找与未评分项目之间相似度最高的多个项目sp={i1,i2,..,im},并采用查找得到的与未评分项目之间相似度最高的多个项目的用户评分对该为评分项目进行预测。在本发明一实施例中,采用如下的公式对该未评分项目进行预测:
其中,pa,p表示用户a对未评分项目p的评分预测数值,simp,c表示未评分项目p与项目c的相似度,ra,c表示用户a对项目c的评分,c为与未评分项目p之间相似度最高的多个项目中的一个。
重复上述的步骤,对所述原始用户项目评分矩阵中用户的未评分项目均计算得到对应的预测分值,并填入所述原始用户项目评分矩阵中的对应位置处,直至所述原始用户项目评分矩阵中所有评分为零的项目均填充完成,从而得到对应的填充矩阵。
步骤s103:基于所述填充矩阵,对目标用户的项目评分进行预测。
在本发明一实施例中,为了降低计算的复杂度,可以首先采用奇异值分解,具体可以其中的截断奇异值分解(truncatedsingularvaluedecomposition,简称tsvd),对所述填充矩阵进行分解降维:
其中,
其次,在对填充矩阵进行分解降维得到对应的左奇异矩阵、右奇异矩阵和奇异值矩阵之后,可以采用分解降维得到的左奇异矩阵和奇异值矩阵得到对应的用户隐式特征空间矩阵。在本发明一实施例中,可以采用如下的公式得到所述用户隐式特征空间矩阵:
y=pksk1/2(4)
其中,y表示所述用户隐式特征空间矩阵,pk表示对所述填充矩阵采用奇异值分解进行降维得到的左奇异矩阵,sk表示对所述填充矩阵采用奇异值分解进行降维得到的奇异值矩阵。
通过上述的步骤处理后所得到的用户隐式特征空间矩阵,为m×k矩阵(m个用户的k维表示)计算矢量相似性,以在该缩小的空间中形成邻域,从而可以达到降低计算复杂度,节约计算资源并提高计算效率的有益效果。
接着,在得到用户隐式特征空间矩阵时,便可以在所述用户隐式特征空间下,确定每个用户的邻居用户群。在本发明一实施例中,具体可以采用如下的操作确定每个用户的邻居用户群:
(1)首先,在所述用户隐式特征空间矩阵下计算每两个用户之间相似度,构建用户相似矩阵。具体地,首先计算在所述用户隐式特征空间矩阵下计算每两个用户之间相似度,并将计算的得到的用户的相似度填入矩阵中的对应位置处,即可得得到所述用户相似矩阵
(2)将所述用户相似矩阵转换为对应的模糊等价矩阵。具体地,可以利用传递闭包将用户相似矩阵转化为模糊等价矩阵,也即采用平方法找到一个自然数k,使得
(3)按照所述模糊等价矩阵中等价关系值,将具有相似特征的用户归为一类,得到每个用户对应的邻居用户群。运用模糊聚类算法查找目标客户的邻居客户,可以将客户进行软分类,并允许一个用户按照不同的概率属于不同的类,每一类的用户具有相似偏好。
然后,再基于所述邻居用户群中用户之间的信任关系,构建目标用户的信任邻居群集合,即在目标用户的用户邻居群中,将信任因子融入相似度空间,计算目标用户与其用户邻居群中的邻居用户之间的信任度,并选取一定数目信任度比较高的邻居用户建立所述目标用户的信任邻居群集合trustn。这也是比较重要的一步,由于大部分情况下数据矩阵是很稀疏的,这里可以认为高信任度邻居的信任邻居也是值得信任的,这样做也符合信任网络传递的原则。
具体而言,首先定义用户ui的全局信任分数,即在信任网络中直接连接到用户ui的邻居给出的本地信任分数的平均值:
其中,gti表示所述用户ui的全局信任分数,
在上述公式(5)中,用户ui与用户uj之间的本地信任度数值tj→i可以分为以下两种情形进行分别计算:
(a)当目标用户ui与用户uj在信任网络中只有一条路径,二者为直接信任关系,此时可以用修正的余弦相似性度量计算信任度tj→i。
(a)当目标用户ui与用户uj之间没有共同评级的项目,也即在信任网络中二者为间接信任关系,此时可以通过信任传播来计算间接信任度。具体地,在连接源用户uj与目标用户ui的信任路径中存在中间用户um,则通过um分别与目标用户ui与用户uj之间的直接信任分数tj→m和tm→i进行加权平均,计算得到目标用户ui与用户uj之间的本地信任度分值:
其中,ij表示项目j,im表示项目m。
以此类推,可以重复应用传播算法来计算信任网络中任意连个用户之间的间接信任关系。
最后,在基于所构建的目标用户的信任邻居群集合中用户的项目评分,对所述目标用户的为评分项目进行预测。在本发明一实施例中,采用如下的公式基于所构建的目标用户的信任邻居群集合中用户的项目评分,对所述目标用户的为评分项目进行预测:
其中,pa,i表示目标用户ua的未评分项目i的预测评分,
步骤s104:根据预测得到的项目评分将对应的项目推荐给所述目标用户。
在具体实施中,当根据预测得到的目标用户对项目的评分时,便可以选取预测得到的项目评分数值排列在前列的多个项目推荐给用户。
上述对本发明实施例中的基于预测值填充的项目推荐方法进行了详细的描述,下面将对上述的方法对应的装置进行介绍。
图2示出了本年发明实施例中的一种基于预测值填充的项目推荐装置的结构示意图。参见图2,一种基于预测值填充的项目推荐装置20可以包括获取单元201、填充单元202、预测单元203和推荐单元204,其中:
所述获取单元201,适于获取原始用户项目评分矩阵。
所述填充单元202,适于当确定所述原始用户项目评分矩阵为稀疏矩阵时,基于所述项目间的相似性对所述原始用户项目评分矩阵进行填充,得到对应的填充矩阵。
所述预测单元203,适于基于所述填充矩阵,对目标用户的项目评分进行预测。
所述推荐单元204,适于根据预测得到的项目评分将对应的项目推荐给所述目标用户。
在具体实施中,所述填充单元202,适于计算所述原始用户项目评分矩阵中项目之间的相似度;基于计算得到的项目之间的相似度,确定所述原始用户项目评分矩阵中与未评分项目相似度最高的多个评分项目;采用所述原始用户项目评分矩阵中与未评分项目相似度最高的多个评分项目的评分,计算得到所述未评分项目的预测评分;将所述未评分项目的预测评分填入所述原始用户项目评分矩阵中的对应位置处。
在具体实施中,所述预测单元203,适于对所述填充矩阵采用奇异值分解进行降维,得到对应的左奇异矩阵和奇异值矩阵;基于所述左奇异矩阵和奇异值矩阵,构建用户隐式特征空间矩阵;基于所述用户的用户隐式特征空间矩阵,确定每个用户的邻居用户群;基于所述邻居用户群中用户之间的信任关系,构建目标用户的信任邻居群集合;基于所构建的目标用户的信任邻居群集合中用户的项目评分,对所述目标用户的为评分项目进行预测。
在本发明一实施例中,所述预测单元203适于采用如下的公式对所述填充矩阵采用奇异值分解进行降维:
其中,
在本发明一实施例中,所述预测单元203适于用如下的公式基于所述左奇异矩阵和奇异值矩阵,构建用户隐式特征空间矩阵:
y=pksk1/2;
其中,y表示所述用户隐式特征空间矩阵,pk表示对所述填充矩阵采用奇异值分解进行降维得到的左奇异矩阵,sk表示对所述填充矩阵采用奇异值分解进行降维得到的奇异值矩阵。
在本发明一实施例中,所述预测单元203适于在所述用户隐式特征空间矩阵下计算每两个用户之间相似度,构建用户相似矩阵;将所述用户相似矩阵转换为对应的模糊等价矩阵;按照所述模糊等价矩阵中等价关系值,将具有相似特征的用户归为一类,得到每个用户对应的邻居用户群。
在本发明一实施例中,所述预测单元203适于当目标用户与所述信任邻居群集合中的邻居用户之间具有直接信任关系时,采用修正的余弦相似性计算所述目标用户与该邻居用户之间的信任度数值;当目标用户与所述信任邻居群集合中的邻居用户之间具有间接信任关系时,采用信任传播算法计算所述目标用户与该邻居用户之间的信任度数值;获取与所述目标用户的信任度数值较高的多个邻居用户,组成所述目标用户的信任邻居群集合。
在本发明一实施例中,所述预测单元203适于采用如下的公式基于所构建的目标用户的信任邻居群集合中用户的项目评分,对所述目标用户的为评分项目进行预测:
其中,pa,i表示目标用户a的未评分项目i的预测评分,
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述任一项所述的基于预测值填充的项目推荐方法的步骤。
本发明实施例还提供了一种终端,包括存储器和处理器,所述存储器上储存有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述任一项所述的基于预测值填充的项目推荐方法的步骤。
采用本方发明实施例中的上述方案,通过当确定所述原始用户项目评分矩阵为稀疏矩阵时,基于所述项目间的相似性对所述原始用户项目评分矩阵进行填充,得到对应的填充矩阵,并基于所述填充矩阵,对目标用户的项目评分进行预测,最后根据预测得到的项目评分将对应的项目推荐给所述目标用户,可以有效解决数据稀疏问题,提高项目推荐的准确性。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,本发明要求保护范围由所附的权利要求书、说明书及其等效物界定。