基于奇异值分解的协同过滤推荐算法研究

基于奇异值分解的协同过滤推荐算法研究

朱 敏,苏 博

(贵州大学,贵州 贵阳 550003)

摘 要:协同过滤系统是目前最成功的推荐系统,但随着电子商务系统规模、用户数量、产品种类的不断扩大,基于协同过滤的推荐系统面临着挑战。要真正提高推荐系统的推荐质量,协同过滤必须与其他技术相结合。因此,出现了许多基于协同过滤技术的改进技术,这些技术在一定程度上提高了推荐系统的推荐质量。提出了基于奇异值分解技术与协同过滤相结合的算法,通过这种算法,可以提高系统推荐效率,希望能够对实践有所裨益。关键词:奇异值;协同过滤;算法

Algorithm Research of Collaborative Filter Recommending

base on Singular Value Decomposition

ZHU Min,SU Bo

(Guizhou University,Guiyang ,Guizhou 550003,China)

Abstract:Collaborative filtering is the most successful recommending system, but as expanding with e-commerce system size, subscriber number, product categories, recommending system based on collaborative filtering is facing challenges. To truly improve the quality of the recommendation of the recommending system, collaborative filtering must be combined with other technical. So, there are many improvements in technology based on collaborative filtering, these techniques to a certain extent quality of the recommendation system..The article gives the Algorithm base on collaborative filter and singular value decomposition, By the algorithm, it can be improved the recommending efficiency of the system , hoping it will be a great benefit to the practice.Key words:singular value;collaborative filter;Algorithm

1 引言

目前推荐系统,查询系统主要采用传统的基于关键词检索的搜索引擎,由于不具有智能性,不能学习用户的兴趣,信息需求在相当长一段时间内保持不变或变化不大,用户只能不断在网上反复查询相同的内容,这造成了许多不必要的浪费。正是在这样的需求驱动下,信息过滤技术得到了长足的发展。如果把信息检索看作是一种“人找信息”的信息服务形态,那信息过滤就是一种“信息找人”的信息服务形态,即实现信息的个性化主动服务。

本文提出了基于奇异值分解的协同过滤算法,通过奇异值分解的原理查找信息的相似度,然后通过相似度进行协同过滤,通过这些办法提高推荐系统的推荐质量与运行速度。

2基于奇异值分解的协同过滤理论

线性代数方法使我们可以将数据分解为很多分量,然后分析其中的主要分量,奇异值分解(Singular Value Decomposition,SVD)就是其中的一种矩阵分解技术,它是一种有效的代数特征提取方法,深刻揭示了矩阵的内部结构。目前,奇异值分解在信息检索方面的应用主要是隐含语义检索(Latent Semantic Indexing,LSI)。潜在语义索引可以将文档在向量空间模型中的高维表示,投影到低维的潜在语义空间中,这一方面缩小了检索的规模,另一方面也在一定程度上避免了数据的过分稀疏[1]。

基于奇异值分解的协同过滤技术,就是利用目标用户的最近邻居对商品评价的加权平均值来预测他对目标项的

喜好程度,然后采用奇异值分解技术,获得的隐含语义关系对用户喜好进行判断,最后系统根据这一喜好程度来对目标用户自动进行推荐。

3利用奇异值分解寻找相似度

利用奇异值分解的协同过滤是个性化推荐中应用最为广泛的方法,它是基于邻居用户的兴趣爱好预测目标用户的兴趣偏好。算法先使用奇异值分解的技术寻找与目标用户有相同喜好的邻居,然后根据目标用户的邻居的喜好获取相似度,产生向目标用户的推荐。

3.1获取用户—项矩阵

在一个典型的采用基于奇异值分解的协同过滤技术的推荐系统中,输入数据通常可以表述为一个i ×j 的矩阵R i ×j 表示,这个矩阵也称用户一项矩阵。R i ×j 表示用户i 对商品j 的评价值(例如购买频率或点击率),如表1所示。

表1 用户一项矩阵

3.2利用奇异值分解形成邻居

基于用户的协同过滤技术实现的推荐系统的核心是为

集(Nearest-neighbor),即:对一个用户u,要产生一

个根据相似度大小排列的“邻居”集合N={N

1

,N

1

, ,

N

k

),以N

1

到N

k

,相似度s i m(u,N

1

)>s i m(u,N

2

)>

>sim(u,N

k

)。图1示意了利用奇异值分解,通过寻找

相似性,从而形成邻居过程:

奇异值分解可以将一个m×n的矩阵R分解为3个

矩阵N,S,B:

R=N×S×B i (1)

其中,N是一个m×m的正交矩阵(NN i=I),B是一

个n×n的正交矩阵(BB i=I),S是一个m×n矩阵,它的

非对角线上的元素全为0,而对角线上的元素满足

所有的并按照从大到小顺序排列,称为奇异值

(singular value),奇异值可以表示一个给定矩阵与比其

秩低的矩阵的接近程度。通常对于矩阵R=N×S×B i,N,

S,B必须是满秩的。奇异值分解有一个优点,它允许存

在一个简化的近似矩阵。对于S,保留k个最大的奇异值,

将其余的用0来替代,这样,我们就可以将S进行维数

简化为仅有k个奇异值的矩阵(k

以将S中的值为0的行和列删除,得到一个新的对角矩

阵S

k

。如果矩阵N和B也按照这种方法进行简化得到矩

阵N

k

和B

k

,则有重构得到的矩R

i

=N

k

×S

k

×B

k

i,R

i

≈R。

奇异值分解能够生成初始矩阵R的所有秩等于k的矩阵

中与矩阵R最近似的一个[2]。

例如有一个矩阵R

利用公式(1),可以分解为如下三个矩阵:

根据以上理论,我们可以看出在S矩阵中“14.4890”

描述的特征是最重要的一个特征,所有可以选择最重要

的特征来简化S的维数,在这个例子中我们可以只选择

“14.4890”所表示的一个最重要的特征。本次通过奇异值

分解,可以将数据在高维向量空间模型中的表示,投影到

低维的潜在语义空间中,得出S矩阵的特征,从而可以根

据S矩阵的特征值进行有效的检索,缩小了问题的规模。

通过奇异值分解算出相似度后,以选中的S点为中心的

2-6个最近用户被选择为邻居[3]。

奇异值分解用于协同过滤的思想是用户对项目评分是

之间也存在一些共有的特征。用户喜欢某一项目是因为他

们对这些特征的评分较高,所以通过将用户的评分用线性

代数方法分解为一些特征,可以根据用户对这些特征的喜

好程度来预测用户对他所没有评过分的项目的喜好。

图1 邻居的选择

4 形成协同过滤推荐

通过奇异值分解的方法计算得到目标用户的最近邻居,

下一步需要产生相应的协同过滤推荐。

设用户U的最近邻居集合用N S B

u

表示,则用户u

对项目i的预测评分P

u i

可以通过用户u对最近邻居集合

NBS

u

中项目的评分得到,计算方法如下:

(2)[4]

其中,sim

NBS

(u,n)表示用户u与用户n之间通过奇异

值分解后得到的相似检索值,R

n,j

表示用户n对项目i的

评分,,分为表示为用户u与用户n对项目的平均

评分。通过对公式(4-1)的计算,最后得出的P

u,i

则是基

于奇异值分解的的协同过滤推荐值。

5 结语

本文研究了基于奇异值的协同过滤算法在检索功能当中

的应用,通过奇异值分解方式查找邻居的相似度。目标用户

的最近邻居查询是否准确,直接关系到整个推荐系统的推荐

质量。准确查询目标用户的最近邻居是整个协同过滤推荐成

功的关键。本文提出的最近邻居的搜索是基于奇异值分解原

理,如果能结合其他的一些更精密的邻居搜索算法,就能进

一步提高预测的准确度,并减少计算的复杂度。

参考文献:

[1]徐翔,王煦法.基于S V D的协同过滤算法的欺诈攻击行

为分析[J].计算机工程与应用,2009年20期.

[2]孙小华.协同过滤系统的稀疏性与冷启动问题研究

[D].2006年浙江大学博士论文.

[3]曾子明,余小鹏.电子商务推荐系统与智能谈判技术[M].

武汉大学出版社,2008年05月.

[4]张翼.协同过滤技术在个性化图书馆中的应用研究

[D].2006年复旦大学硕士论文.

[5]孙小华,陈洪.在协同过滤中结合奇异值分解与最近邻

方法[J].计算机应用研究,2006年9期.

作者简介:朱 敏(1980-),女,硕士,贵州大学讲师,主

要研究领域为计算机软件;苏 博(1979-),男,硕士,贵

州大学讲师,主要研究领域为通信。

收稿日期:2010-05-26

相关文档
最新文档