一种用户社会地位增强的矩阵分解项目推荐算法的制作方法

文档序号:14279811阅读:273来源:国知局

本发明属于数据挖掘技术领域,具体涉及一种用户社会地位增强的矩阵分解项目推荐方法。



背景技术:

随着互联网技术的不断发展,从海量数据中找到有价值的相关信息变得越来越困难。推荐系统通过分析用户的历史活动数据,挖掘用户的潜在偏好,为用户提供个性化的推荐服务,成为解决信息过载问题的有效手段,近年来受到学术界和工业界的广泛关注。在推荐系统的研究中,协同过滤算法是目前应用最广泛的推荐技术。协同过滤算法通过分析用户的历史反馈信息,预测用户未来的偏好。然而,协同过滤算法存在严重数据稀疏、冷启动等问题。

随着社交网络的出现,越来越多的推荐算法利用社交网络提供的丰富信息来改进传统推荐算法的性能,特别是解决传统协同过滤方法中的冷启动问题。基于社交网络的推荐算法一般假设社交网络中用户的偏好受到朋友的影响,并且朋友之间具有相似的偏好。然而,已有的基于社交网络的推荐算法忽略了以下2个事实:(1)在不同的领域中,用户信任不同的朋友;(2)用户不仅在不同领域中受到不同朋友的影响,而且不同用户受朋友影响的程度不同。



技术实现要素:

本发明所要解决的技术问题是针对上述现有技术存在的问题和不足,提供一种用户社会地位增强的矩阵分解项目推荐算法,重点是从用户评分数据和社交网络数据中推导用户在不同领域内的社会地位,并将领域差异化的社会地位值融入到矩阵分解模型中,更加准确的学习用户和项目的隐式特征向量,从而达到提高推荐系统性能的目的。

本发明为解决上述技术问题采用的技术方案为一种用户社会地位增强的矩阵分解项目推荐算法,包括如下步骤:

步骤1),根据项目类别划分用户-项目评分矩阵,并利用用户评分和社交关系共现的原则推导特定类别用户社交网络;

步骤2),在推导的特定类别用户社交网络上,利用pagerank算法计算用户的社会地位值;

步骤3),以用户社会地位值衡量用户的评分权重,结合特定类别用户评分数据和社交关系数据执行矩阵分解,学习特定领域的用户和项目隐式特征向量;

步骤4),使用特定领域的用户和项目的隐式特征向量内积预测用户对项目的评分,根据预测评分为用户提供个性化的项目推荐。

作为本发明一种用户社会地位增强的矩阵分解项目推荐方法进一步的优化方案,所述步骤1)的详细步骤为:

步骤1.1),按照项目的类别对原始用户-项目评分矩阵r进行划分。用户对项目的评分表示为3元组的形式:(uid,pid,categoryid),其中categoryid表示被评分项目的类型。原始用户-项目评分矩阵r可以根据categoryid分为为用户评分数据集中项目类别的数量;

步骤1.2),根据用户评分和社交关系共现的原则推导特定类别的用户社交网络。用户u和用户v在类别c中社交信任值为:

其中,分别表示用户u和用户v在rc的评分数量。类别c中所有用户的社交关系构成类别c下的社交关系矩阵tc

作为本发明一种用户社会地位增强的矩阵分解项目推荐方法进一步的优化方案,所述步骤2)的详细步骤为:

步骤2.1),首先运行pagerank算法计算用户在每个类别下的pagerank值,设表示所有用户在社交关系矩阵tc中的pagerank值,nc表示tc中用户的数量,用户u在类别c内的pagerank值prc(u)可以表示为:

其中,fc(u)为用户u在类别c中信任朋友的集合,ec为逃逸向量,α是规范化常数。

步骤2.2),对nc个用户的pagerank值进行排序。设用户u的排名为则用户的社会地位值计算公式为:

作为本发明一种用户社会地位增强的矩阵分解项目推荐方法进一步的优化方案,所述步骤3)中,用户社会地位增强的矩阵分解项目推荐算法的目标函数如下:

其中,ωc为rc中可观测到的(用户,项目)对,表示用户u对类别c中项目i的评分。分别表示用户u和项目i在类别c中的隐式特征向量,k为隐式特征向量的维度。表示用户隐式特征矩阵,表示项目隐式特征矩阵,mc为类别c中项目的数量。λ1、λ2和λ3为正则化控制参数。表示frobenius范式。g(x)=1/(1+e-x)为logistic函数。

采用随机梯度下降的方法求解目标函数l*的局部最小解。目标函数l*关于的偏导数为:

其中,g'(x)=e-x/(1+e-x)2为logistic函数g(x)的导数,为tc中信任u的用户集合。

作为本发明一种用户社会地位增强的矩阵分解项目推荐方法进一步的优化方案,所述步骤4)中,用户u对未评分过项目i的预测评分的计算方法如下:

对于用户u,计算完所有未评分项目的预测评分后,根据预测评分值,推荐预测评分值高的k项给用户u。

与现有技术相比,本发明具有以下的技术效果:

1.通过用户评分和社交关系共现原则推导特定领域的社交网络关系,考虑了用户在不同领域信任不同朋友的问题;

2.在矩阵分解过程中融入用户在不同领域的社会地位值,以不同领域的用户社会地位值权衡用户评分的重要性,考虑了用户在不同领域,受其他用户影响程度不同的问题。

结合以上两点,本发明所采用的用户社会地位增强的矩阵分解项目推荐技术能够更加准确的学习用户的隐式特征向量,从而提高推荐系统的性能。

附图说明

图1是本发明一种用户社会地位增强的矩阵分解项目推荐方法的流程示意图。

具体实施方式

现结合附图对本发明做进一步详细的说明。

如图1所示,本发明公开了一种用户社会地位增强的矩阵分解项目推荐方法,包含以下步骤:

步骤1),根据项目类别划分用户-项目评分矩阵,并利用用户评分和社交关系共现的原则推导特定类别用户社交网络;

步骤2),在推导的特定类别用户社交网络上,利用pagerank算法计算用户的社会地位值;

步骤3),以用户社会地位值衡量用户的评分权重,结合特定类别用户评分数据和社交关系数据执行矩阵分解,学习特定领域的用户和项目隐式特征向量;

步骤4),使用特定领域的用户和项目的隐式特征向量内积预测用户对项目的评分,根据预测评分为用户提供个性化的项目推荐。

所述步骤1)的详细步骤为:

步骤1.1),按照项目的类别对原始用户-项目评分矩阵r进行划分。用户对项目的评分表示为3元组的形式:(uid,pid,categoryid),其中categoryid表示被评分项目的类型。原始用户-项目评分矩阵r可以根据categoryid分为为用户评分数据集中项目类别的数量;

步骤1.2),根据用户评分和社交关系共现的原则推导特定类别的用户社交网络。用户u和用户v在类别c中社交信任值为:

其中,分别表示用户u和用户v在rc的评分数量。类别c中所有用户的社交关系构成类别c下的社交关系矩阵tc

所述步骤2)的详细步骤为:

步骤2.1),首先运行pagerank算法计算用户在每个类别下的pagerank值,设表示所有用户在社交关系矩阵tc中的pagerank值,nc表示tc中用户的数量,用户u在类别c内的pagerank值prc(u)可以表示为:

其中,fc(u)为用户u在类别c中信任朋友的集合,ec为逃逸向量,α是规范化常数。

步骤2.2),对nc个用户的pagerank值进行排序。设用户u的排名为则用户的社会地位值计算公式为:

所述步骤3)中,用户社会地位增强的矩阵分解项目推荐算法的目标函数如下:

其中,ωc为rc中可观测到的(用户,项目)对,表示用户u对类别c中项目i的评分。分别表示用户u和项目i在类别c中的隐式特征向量,k为隐式特征向量的维度。表示用户隐式特征矩阵,表示项目隐式特征矩阵,mc为类别c中项目的数量。λ1、λ2和λ3为正则化控制参数。表示frobenius范式。g(x)=1/(1+e-x)为logistic函数。

采用随机梯度下降的方法求解目标函数l*的局部最小解。目标函数l*关于的偏导数为:

其中,g'(x)=e-x/(1+e-x)2为logistic函数g(x)的导数,为tc中信任u的用户集合。

所述步骤4)中用户u对未评分过项目i的预测评分的计算方法如下:

对于用户u,计算完所有未评分项目的预测评分后,根据预测评分值,推荐预测评分值高的k项给用户u。

下面以具体实例来说明其具体步骤:

首先,根据项目类别划分原始的用户-项目评分矩阵,并根据用户评分和社交关系共现的原则推导特定类别的用户社交网络。

设用户对项目的评分表示为3元组的形式:(uid,pid,categoryid),其中categoryid表示被评分项目的类型。原始用户-项目评分矩阵r可以根据categoryid分为为用户评分数据集中项目类别的数量。利用用户评分和社交关系共现的原则,用户u和用户v在类别c中社交信任值为:

其中,分别表示用户u和用户v在rc的评分数量。类别c中所有用户的社交关系构成类别c下的社交关系矩阵tc

然后,在推导的特定类别用户社交网络上,利用pagerank算法计算用户的社会地位值。

在特定类别用户社交网络上,运行pagerank算法计算用户在每个类别下的pagerank值,设表示所有用户在社交关系矩阵tc中的pagerank值,nc表示tc中用户的数量,用户u在类别c内的pagerank值prc(u)表示为:

其中,fc(u)为用户u在类别c中信任朋友的集合,ec为逃逸向量,α是规范化常数。然后,对nc个用户的pagerank值进行排序。设用户u的排名为则用户的社会地位值计算公式为:

其次,以用户社会地位值衡量用户的评分权重,结合特定类别用户评分数据和社交关系数据执行矩阵分解,学习特定领域的用户和项目隐式特征向量。

用户社会地位增强的矩阵分解项目推荐算法的目标函数如下:

其中,ωc为rc中可观测到的(用户,项目)对,表示用户u对类别c中项目i的评分。分别表示用户u和项目i在类别c中的隐式特征向量,k为隐式特征向量的维度。表示用户隐式特征矩阵,表示项目隐式特征矩阵,mc为类别c中项目的数量。λ1、λ2和λ3为正则化控制参数。表示frobenius范式。g(x)=1/(1+e-x)为logistic函数。采用随机梯度下降的方法求解目标函数l*的局部最小解。目标函数l*关于的偏导数为:

其中,g'(x)=e-x/(1+e-x)2为logistic函数g(x)的导数,为tc中信任u的用户集合。

最后,预测用户u对未评分过项目i的预测评分

对于用户u,计算完所有未评分项目的预测评分后,根据预测评分值,推荐预测评分值高的k项给用户u。

本技术领域技术人员可以理解的是,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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