一种基于信任信息的TimeSVD改进算法的制作方法

文档序号:19155947发布日期:2019-11-16 00:46阅读:606来源:国知局
一种基于信任信息的TimeSVD改进算法的制作方法

本发明涉及一种svd算法,具体的说是一种基于信任信息的timesvd改进算法,属于互联网技术领域。



背景技术:

随着互联网和信息技术的快速发展,数据量也飞速的增加。微博、搜索引擎、电子商务等网络业务的普及,导致人们在面对如此海量的数据时,想要筛选出自己想要的信息变得非常困难。为了解决这个问题,推荐系统应运而生。而协同过滤是建立推荐系统的最常用方法,多次在netflix大赛中获得大奖。它分为基于用户(user-based)、基于项目(item-based)以及基于模型的协同过滤(model-basedcollaborativefiltering),包括matrixfactorization(mf),singularvaluedecomposition(svd),latentdirichletallocation(lda)等。其中最受瞩目的就是svd算法。

svd算法可以直接用于推荐,我们把user-item评分矩阵进行svd分解降维,通过计算得出预测评分,并且直接对用户进行推荐。但为了提高推荐准确度,我们又在模型中加入隐式偏置信息,包括用户偏置、项目偏置以及时间偏置,从而组成新的timesvd模型,很大程度上提高了推荐的准确度。

信任信息作为用户隐式信息对于解决评分数据稀疏性和冷启动问题起到重要作用,一直收到广泛的关注。在用户日常生活中,除了从自身喜好和历史行为作为偏好判断之外,用户倾向于相信他们信任的其他人的信息,比如朋友或者网络好友。当用户属于新用户或冷用户时,但他可能与某个热用户有信任关系。通过这种反馈情况,信任关系信息可以作为隐式信息解决评分数据稀疏性和用户冷启动问题。这种信任关系是基于用户之间经常通过推荐物品产生的互相影响而发展起来。



技术实现要素:

本发明的目的是提供一种基于信任信息的timesvd改进算法,解决了推荐系统中特定用户冷启动的问题,当用户处于新用户时或者评分数据过少的时候,能够有效地通过信任网络中与该用户信任程度高的其它热用户的评分值,实现对该新用户进行物品推荐。

本发明的目的是这样实现的:一种基于信任信息的timesvd改进算法,包括以下步骤:

步骤1)数据输入,包括用户评分信息与用户信任信息;

步骤2)构建评分矩阵:建立m×n阶的用户-项目评分矩阵,m为用户组,n为项目组,用r表示评分矩阵,则r=[ru,i]m×n,ru,i表示用户u对项目i的评价;

步骤3)构建信任矩阵:建立m×m阶的用户信任矩阵,m为用户组,用t表示用户信任矩阵,则t=[tuv]m×m,它表示用户u对v的信任值,当特定项目为i时,矩阵为

步骤4)timesvd分解矩阵:利用timesvd对已经建立好的m×n阶评分矩阵r分解降维,将矩阵r分解为p∈rd×m、q∈rd×n、∑;其中p∈rd×m代表用户矩阵,q∈rd×n代表项目矩阵,将高维度的用户-项目的评分矩阵分解为两个低维度矩阵的乘积,这两个低维度矩阵分别被称为用户特征向量矩阵和项目特征向量矩阵,∑是奇异值的对角矩阵,则用户u对未评分项目i的评分预测值

步骤5)根据评分预测,给出推荐结果。

作为本发明的进一步限定,步骤4)具体包括:

步骤4.1)根据相关列项目评分平均值对矩阵中的空白元素进行填充;

步骤4.2)通过简化p、q、∑,构造降维后的矩阵r’;

步骤4.3)按照梯度下降法(sgd)迭代学习优化,得到最有解;

步骤4.4)计算用户u对未评分项目i的评分预测值

步骤4.5)优化评分矩阵损失函数l,增加正则化参数项λ,防止过拟合,其中损失函数t是测试集中全部的用户-项目组合,是正则化的项,rui是用户u对项目i的真实评分,‖.‖是欧几里得范数;

步骤4.6)利用timesvd对已经建立好的m×m信任矩阵t分解成信任者和被信任者的特征矩阵p、w;其中pd×m表示信任者矩阵,wd×m表示受信者矩阵;

步骤4.7)计算信任者对被信任者的信任预测值

步骤4.8)结合评分矩阵和信任矩阵获得新的损失函数其中表示用户u和用户v的预测信任值,λt控制正则化项中信任的程度。

本发明采用以上技术方案与现有技术相比,具有以下技术效果:本发明解决了推荐系统中用户冷启动以及评分数据过于稀疏的问题,当用户处于新用户时或者评分数据过少的时候,能够有效地通过信任网络中与该用户信任程度高的其它热用户的评分值,实现对该新用户进行物品推荐。

附图说明

图1是基于信任信息的timesvd改进算法流程图。

图2是timesvd算法对评分矩阵以及信任矩阵分解降维流程图。

图3是融合timesvd算法和信任关系的推荐方法对比其它算法在数据集epinions性能对比。

图中ttsvd是我们所提出的算法,我们给出了该算法与另外两个包含信任信息的模型trustmf、trustsvd在epinions数据集中针对不同信任值的rmse对比图。

图4是提出的算法与timesvd在epinions数据集中针对不同迭代次数的rmse对比图。

具体实施方式

下面结合附图对本发明的技术方案做进一步的详细说明:

如图1-2所示的一种基于信任信息的timesvd改进算法:

步骤1)对图3中的epinions数据集进行处理,包括用户评分信息与用户信任信息。

步骤2)构建评分矩阵:建立m×n阶的用户-项目评分矩阵,m为用户组,n为项目组;用r表示评分矩阵,则r=[ru,i]m×n,ru,i表示用户u对项目i的评价。

步骤3)构建信任矩阵:建立m×m阶的用户信任矩阵,m为用户组。用t表示用户信任矩阵,则t=[tuv]m×m,它表示用户u对v的信任值,当特定项目为i时,矩阵为

步骤4)timesvd分解矩阵:利用timesvd对已经建立好的m×n阶评分矩阵r分解降维;将矩阵r分解为p∈rd×m、q∈rd×n、∑;其中p∈rd×m代表用户矩阵,q∈rd×n代表项目矩阵(将高维度的用户-项目的评分矩阵分解为两个低维度矩阵的乘积,这两个低维度矩阵分别被称为用户特征向量矩阵和项目特征向量矩阵,∑是奇异值的对角矩阵。则用户u对未评分项目i的评分预测值

步骤4.1)根据相关列项目评分平均值对矩阵中的空白元素进行填充;

步骤4.2)通过简化p、q、∑,构造降维后的矩阵r,;

步骤4.3)按照梯度下降法(sgd)迭代学习优化,得到最优解;

步骤4.4)计算用户u对未评分项目i的评分预测值步骤4.5)优化评分矩阵损失函数l,增加正则化参数项λ,防止过拟合,其中损失函数t是测试集中全部的用户-项目组合,是正则化的项,rui是用户u对项目i的真实评分,‖.‖是欧几里得范数;

步骤4.6)利用timesvd对已经建立好的m×m信任矩阵t分解成信任者和被信任者的特征矩阵p、w;其中pd×m表示信任者矩阵,wd×m表示受信者矩阵;步骤4.7)计算信任者对被信任者的信任预测值

步骤4.8)结合评分矩阵和信任矩阵获得新的损失函数其中表示用户u和用户v的预测信任值,λt控制正则化项中信任的程度。

步骤5)根据评分预测,给出推荐结果;同时计算出与已有的trustmf、trustsvd与timesvd在rmse上的对比数据,给出图3与图4的对比图。图3中针对不断增加的信任信息值,我们提出的ttsvd在rmse上依旧表现出比其它基于信任关系的模型更优的效果。图4在与不包含信息信息的timesvd算法对比中,我们的ttsvd算法同样表现出更低的rmse值,推荐准确度上更有优势。

以上所述,仅为本发明中的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可理解想到的变换或替换,都应涵盖在本发明的包含范围之内,因此,本发明的保护范围应该以权利要求书的保护范围为准。

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