- 1 -
中国科技论文在线
协同过滤推荐系统研究
牟丹,刘辉*
作者简介:牟丹,(1978-),女,讲师,计算机应用及信息管理
(辽宁工程技术大学经济管理学院,辽宁 阜新 123000)
摘要:推荐系统作为电子商务网站的一种重要的营销工具,使消费者在面对海量的商品信息
时得到有价值的购买建议的同时,也提高了网站的销售业绩。随着网络与计算机技术的进步,
电子商务推荐系统得到广泛的研究与发展,服务越来越智能化、个性化。电子商务下的个性
化信息推荐系统在理论和实践上都得到了很大发展,其核心部分就是对推荐方法的研究,选
择哪种推荐方法对于推荐系统的效果和效率至关重要。协同过滤算法是个性化推荐系统中常
用的方法,由于用户对项目的评价部分不多,使得数据稀疏性对推荐质量和实时性影响较大。
本文对电子商务环境下的个性化信息推荐服务进行了深入地研究,并针对个性化推荐方法中
的协同过滤算法进行了详尽地分析,给出了协同过滤算法所面临的挑战,在此基础上,对基
于聚类的协同过滤推荐算法进行了改进。该算法在用户-项目评分数据库的基础上,首先离
线计算项目之间的相似度,结果保存在数据库中;其次对每个项目聚类结果进行用户聚类,
计算用户之间的相似度,找到用户的最近邻居集合;最后根据用户最近邻居集合预测对每个
项目的评分,产生推荐给目标用户。本文改进了算法的可行性和有效性,从而可以有效解决
用户评分数据极端稀疏情况下传统方法存在的不足,有效提高了电子商务推荐算法的推荐质
量。
关键词:个性化信息推荐;相似性;协同过滤;电子商务推荐系统
中图分类号:TP315
The Recommendation System Research Of on the
Collaborative Filtering Algorithm
Mu Dan, Liu Hui
(COLLEGE ECONOMIC MANAGEMENT,LIAONING TECHNICAL UNIVERSITY,
LiaoNing FuXin 123000)
Abstract: As an important marketing tool for the E-commerce web sites, the recommended system
provides customers with valuable advices from millions of item information, so as to help promote the
marketing performance of the web sites. With the progress of the Internet and the computer technology,
the E-commerce recommended system receives deeper research and development which make it
produce more intelligent and more personal services. On the aspect of theory research and factual
application, E-business personalized recommended systems have developed rapidly. Recommendation
approaches are the core part of recommended system, so which approach is adopted is crucial to the
success of recommending quality as well as efficiency. Collaborative filtering algorithm is the
prevalent recommendation method at present. However, because the proportion of user rating data is
few, the sparsity of data influences the quality and the real-time requirement of recommendation. A
collaborative filtering recommendation method based on items and customers clustering was proposed
in this paper to solve these problems: This paper studied deeply E-commerce recommendation system,
analyzed the collaborative filtering algorithm and challenges which collaborative filtering
recommendation approach suffered from, then we presented an improved collaborative filtering
algorithm based on clustering. The followings are the main steps of improved algorithm: Firstly, to
compute offline items similarity based on the Users-Items rating database, and to save results in
database; Secondly, for every clustered sets , to compute users similarity and find out the user's
neighbors sets. Finally, to predict every item's rating according to the nearest neighbors and to generate
recommendation to target tested the improved algorithm through programming, the
experiment result proved that this algorithm is feasible and effective. Compare to traditional
collaborative filtering algorithm, this algorithm can overcome the sparsity of user's rating information
and generate better recommendation results.
Keywords:Personalized information recommendation; similarity; collaborative filtering; E-business
recommendation system
- 2 -
中国科技论文在线
0 引言
电子商务迅猛发展的时代已经到来,网上购物的交易方式正在改变着传统的商业模式。
电子商务网站已不再只单纯作为企业对外的一个门户,而成为了企业进行经营的场所。商务
网站从“以站点为中心”向“以用户为中心”发展成为必然。
在这样虚拟的商务环境下商家所能提供的商品种类日益繁多。我国当当网站的商品种类
也有 30万余种。面对如此众多的商品,无疑会大大增加用户发现满意商品的困难。解决方
案就是电子商务推荐系统。于是个性化推荐系统逐渐成为电子商务领域中的一项重要的研究
内容,得到了广泛关注。它可以根据用户兴趣、爱好、习惯以及各个用户之间的相关性向用
户在线推荐商品,提供浏览建议,通过不定期调整网站的结构方便用户访问,动态地为用户
定制个性化的网站等,对用户进行个性化服务。
目前国内在个性化推荐方面做得较好的网站有互动出版网网上书店(-
),北京人大金仓信息技术有限公司的数字图书馆个性化推荐系统 King base DL,
网上文章推荐 360doc 小助手。在推荐算法演进为个性化推荐技术的过程中,最近邻协同过
滤算法是广泛应用且有效的一种,改善协同过滤推荐的性能一直是热点研究的问题。文献[1]
提出用初始评价矩阵的奇异值分解(singular value decomposition)维度压缩技术去抽取一些本
质的特征,利用评价数据阵中的潜在结构可极大地减少维数,使数据变得更为稠密,降低协
同过滤推荐中用户评分数据的稀疏性;Augural等人利用一种新的图论方法也可以较好的解
决稀疏性的问题,能避免以前一些算法的局限性; Feb 系统组合协同过滤和基于内容的过
滤,分析用户评价项目的内容建立基于内容的用户兴趣资料,然后通过用户协同过滤技术发
现具有相似兴趣爱好的邻居用户,这样可以解决新项目没有人评价的冷开始问题;也有学者
采用激励理论的方法来解决。Yoon Ho Cho 等把 WEB 使用挖掘与产品分类结合起来,以
WEB 使用挖掘对客户网上购物行为的分析组成层次数据库,通过产品分类对层次数据库进
行广度约简来提高搜索的表现能力。
随着站点结构、内容复杂度和用户及产品数量的急剧膨胀,解决稀疏性、冷开始、奇异
发现、健壮性分析、评价数据模型等问题变得越来越重要,这些都是个性化研究的关键问题。
本文研究的对象是电子商务个性化推荐系统中的协同过滤推荐方法。针对以上陈述的挑
战,对个性化推荐系统中协同过滤推荐算法进行了研究和改进。
本文的研究内容主要包括:
a.电子商务环境下的个性化推荐系统的应用现状分析,对不同的推荐技术进行分类比
较。
b.研究了个性化推荐算法中的传统协同过滤算法的推荐过程,以及在应用中所面对的问
题和挑战。
c.结合传统协同过滤算法的思想,提出了一种基于客户和项目聚类的协同过滤推荐改进
算法。
本文主要研究成果是提出了基于项目和客户聚类的协同过滤算法的改进方法:
a.算法利用选择的相似性度量方法离线预计算项目和用户之间的相似度,结果保存于数
据库中。
b.利用 K划分聚类算法形成邻居用户。在这一步骤中,先计算项目之间的相似度之后,
然后进行一次项目聚类,然后把聚类结果转化成“用户-项目”矩阵,即相当于把原始“用
户-项目”评分矩阵划分成 K个子矩阵,每个子矩阵的用户数目由聚类结果决定。然后在每
- 3 -
中国科技论文在线
个子矩阵 K 中判断哪些用户于目标用户相似,即计算用户之间的相似度,再进行一次用户
聚类,得到目标用户的邻居用户。
c.最后利用用户的最近邻居集合,预测对每个项目的评分,产生推荐给目标用户。
1 个性化推荐技术
电子商务个性化服务
电子商务个性化信息推荐服务
2003 年以来,电子商务个性化服务已经成为一个研究热点。虽然近两年关于个性化信
息服务的研究成果较多,但何谓个性化信息服务?个性化信息服务应包括哪些内容?现在还
没有统一的认识。
关于个性化信息服务的概念尽管表述不一,但其核心内容基本上是一致的。电子商务个
性化信息服务应是能够满足用户的个体信息需求的一种服务,即根据用户提出的明确要求提
供信息服务,或通过对用户个性、使用习惯的分析而主动地组织信息资源,创建个性化的信
息环境,向用户提供其可能需要的信息服务。它可以培养用户的个性化行为、引导其信息需
求,促进社会的多样化和多元化发展。因此,个性化信息服务是在尊重用户个体的基础上,
研究用户的行为和习惯,为用户选择更重要、更合适的信息资源,提供有特色的服务。
信息推荐服务[1]是一种根据用户的信息需求、兴趣或行为模式,将用户感兴趣的信息、
产品和服务推荐给用户的个性化信息服务模式,如热点链接、动态链接生成、文件预取、信
息推送、信息提醒、电子商务网站的产品推荐、查询重构策略推荐等。
一般说来,高效率的个性化信息推荐服务包括如下内涵:
a.推荐信息的针对性。个性化信息推荐服务不仅要提供友好界面,而且要方便用户交互,
要能够了解与跟踪用户的偏好、兴趣和需求,为用户提供其个性需求的各种信息资源,排除
不相关信息的干扰,为用户提供“一对一”的个性化信息服务。
b.推荐信息的时效性。推荐服务的客户是数以千万计的,面对大量用户的信息需求,推
荐系统要能够保证信息的时效性,实现及时的、适当的信息反馈。
c.推荐的智能性和准确性。提供个性化服务的服务器可以提高数据传送的准确性和权威
性,并且使推荐更加智能化,对用户需求的准确把握可以让用户感觉他们是唯一的。
电子商务个性化推荐服务的研究内容
电子商务个性化推荐服务主要包括以下两个方面的内容:
a.服务内容的个性化。由于自身条件的不同,客户对商品和服务的需求也不尽相同,而
消费者的需求个性化则是企业电子商务个性化服务的推动力。消费者不再只是被动地接受,
商家也不仅仅是提供多样化的选择范围了事,商家必须根据消费者的兴趣偏好,及时地为消
费者推荐其真正需要的商品,尽量减少消费者在搜寻自己所需商品的过程中所消耗的精力,
同时商家也可以将搜集到的消费者个人的偏好参与到商品的设计和制造过程中去,满足消费
者个性化的需求。
b.服务方式的个性化。目前,最常用的信息服务方式是“PULL拉”的模式,即信息提
供者把所提供的信息直接发布在网页上,需要的用户必须去其网站上查找,这使得用户不得
不花费大量的时间和精力在网页间的转换上。与“PULL拉”模式相对应的还有一种“PUSH
推”模式,在这种模式下,信息提供者直接将最新信息的标题和摘要发布给已经订阅的用户,
- 4 -
中国科技论文在线
然后用户根据自己的需要点击链接访问网站,阅读对应的信息。这种模式的优点是很明显的,
尤其是在当今信息爆炸的网络环境下,用户可以仅仅关心自己感兴趣的那一部分,而没必要
把更多的精力浪费在查找的过程中。
电子商务个性化推荐服务是个性化服务在电子商务中的拓展,也是个性化服务新的应用
和发展领域。
电子商务个性化推荐服务的意义
对于用户来说,个性化推荐服务使得用户从无限的网络信息资源和商品世界中解脱出
来,大大节省了用户在商品检索上花费的时间和精力;对于服务的提供者来说,个性化推荐
服务提高了客户对电子商务网站的忠诚度,增加了用户的访问次数,实现了将更多的电子商
务网站的浏览者转变为商品的购买者,提高了电子商务网站的交叉销售能力,为电子商务企
业及专业的信息服务机构赢得了更多的赢利机会。
在商品同质化趋势越来越明显和信息量越来越庞大的今天,电子商务个性化服务将会带
来显著的经济效益,大大降低企业的销售成本,提高信息服务机构的赢利。可以预见,在未
来的几年内,我国的电子商务个性化将有相当广阔的发展空间。
电子商务环境下的推荐系统
到目前为止,推荐系统并没有一个统一而精确的定义。Resnick和 Varian(1997年)认
为:推荐系统就是对用户实现个性化的物品推荐。Schafer等(1999年)认为,推荐系统是
任何只要提供单个的推荐结果作为输出或者以一种个性化的方式引导用户在大容量的可选
项目中找到自己感兴趣或对自己有用的物品的系统。Sarwar 等(2000 年)指出推荐系统就
是利用统计和知识发现技术来解决与目标客户交互时提供商品推荐问题的系统。
推荐系统有很多应用领域。1997 年以前,推荐系统主要用于信息过滤,如电子邮件的
过滤、新闻组文章的过滤等,代表系统有 TAPESTRY,Group Lens,PHOAKS,Fad,Referral
Web,Site Seer等。1997年以后,推荐系统被引入一个新的应用领域——电子商务。在引入
推荐系统以后,电子商务系统可以预测用户的喜好,把用户可能有兴趣的商品形成列表推荐
给用户。由于这种列表往往很小,顾客可以很容易的找到自己感兴趣的商品,这样不仅极大
地方便了顾客,而且潜在的增加了电子商务的交易量,为商家带来了可观的收益。因此,电
子商务的商家纷纷开始把推荐系统嵌入到他们的电子商务系统中,引发了推荐系统研究和应
用的热潮。
电子商务推荐系统的概念也由此产生,电子商务个性化推荐系统是利用电子商务网站向
用户提供产品信息和相关建议,帮助用户决定购买什么产品,通过模拟销售人员,帮助用户
完成购买过程的系统(Resnick和 Varian,1997)。这个定义现在已经被广泛的应用。推荐
系统的使用者是用户(电子商务活动中的用户),推荐的对象是项目(Item)。项目是推荐
系统提供给用户的产品和服务,也是最终的推荐内容。
早期的推荐系统主要帮助用户进行检索,它提供的推荐信息是对全体用户提供相同的信
息,如 Top-N 排行榜等,并不是对个体用户进行推荐,这类推荐系统在个性化推荐方面存
在不足。随着电子商务的发展,后来推荐主要基于用户对商品的评价,用户登记的个人爱好,
或者企业当时的行销趋向,用户在网站给商家留下的个人资料和评价信息成为推荐系统进行
推荐的主要依据。
Resnick和 Varian在 1997年给出电子商务推荐系统正式的定义:指电子商务网站向客户
- 5 -
中国科技论文在线
提供商品信息和建议,直接与用户交互,模拟商店销售人员向用户提供商品推荐,帮助用户
找到所需商品,从而顺利完成购买过程。其作用主要有三个方面:将电子商务网站的浏览者
转变为购买者;提高客户对电子商务网站的忠诚度;提高电子商务网站的交叉销售能力,如
客户刚购买了面包,网站会推荐客户购买牛奶。
电子商务个性化信息推荐系统使得电子商务系统主动适应每个用户的特定需求,为每个
用户创建适合该用户的电子商店,从而为每个用户提供完全不同个性化购物体验,为电子商
务系统实现“一对一营销”的个性化服务提供了可能。通过推荐系统实现个性化服务已成为
电子商务应用的一项新兴技术。在许多大型电子商务网站中,如 Amazon、当当网等,推荐
系统已经得到不同程度的使用;Yahoo也使用推荐系统根据客户查询的关键字,来决定显示
广告栏中的内容,或为客户进入下一网页导航等[2]。
个性化信息推荐的相关技术
推荐技术的比较分析
个性化推荐技术是电子商务推荐系统中最核心、最关键的技术,很大程度上决定了推荐
系统性能的优劣。
a.协同过滤推荐技术:协同过滤是目前研究最多也是最成功的个性化推荐技术,它基于
邻居用户的信息得到目标用户的推荐,是从用户的角度来进行相应的推荐,且是自动的(即
用户获得推荐不需要用户努力地找到适合自己兴趣的推荐或者填写一些显式信息,而是系统
从用户购买模式或者点击行为等隐式获得的),推荐个性化程度高。Tapestry 是最早提出的
个性化协同过滤推荐系统,文献[3]中 Group Lens是由 Mir开发的最早的自动个性化协同过滤
推荐系统,用于从大量的新闻中搜索用户感兴趣的新闻列表,其他著名的系统还有
Range/Finery,以及一些网站采用的推荐系统:如 、、
等。由微软研究院开发的协同过滤工具已经被集成在微软的 Commerce Server产品中,并被
许多站点使用。
b.基于关联规则的推荐:就是根据关联规则发现算法以及客户当前的购买行为向客户产
生推荐,以关联规则为基础,把己购商品作为规则头,推荐对象作为规则体。该算法常被用
于产生 Top-N推荐。如 IBM的Web sphere、Broad、I Log等都是基于规则的推荐系统[4][ 5][ 6]。
c.基于内容的推荐技术:通过比较信息资源与用户的兴趣模型之间的相似性来推荐信
息。它是信息过滤技术的延续与发展,项目或者对象通过相关特征的属性来定义,系统基于
用户评价对象的特征学习用户的兴趣,依据用户资源与待预测项目的匹配程度进行推荐,如
新闻组过滤系统 New sweeper[7]。
d.基于用户统计信息的推荐:推荐系统基于用户个人属性对用户进行分类,再基于类对
类中的用户进行推荐[8],不要求有一个历史的用户数据。
e.基于效用的推荐:它是根据对用户使用项目的效用进行计算的,核心问题是如何为每
个用户创建效用函数,并考虑非产品属性,如提供商的可靠性和产品的可用性。
f.基于知识的推荐:在某种程度上可以看成是一种推理技术,各方法因所用的知识不同
而有明显区别[9][10]。
对于以上所列推荐技术,表 1-1给出了其推荐的主要步骤,并比较了优缺点[11]:
- 6 -
中国科技论文在线
表 1-1 推荐技术优缺点比较
推荐技术 主要步骤 优点 缺点
协同过滤推荐
识别当前要预测的用户
的邻居用户;根据其生
成当前要预测项目的评
价分
推荐个性化、自动化程
度高;处理复杂的非结
构化对象;新异兴趣发
现、不需要领域知识。
冷开始问题、稀琉问题;系统
开始时推荐质量差;系统实时
性与推荐精确性的矛盾
基于关联规则的推荐 生成关联规则;根据规则生成推荐
发现新兴趣点;不要领
域知识
关联规则抽取难、耗时;产品
名同义性问题;个性化程度低
基于内容的推荐技术
根据所有用户的评价分
生成项目的分类器
推荐结果直观,容易解
释;不需要领域知识
稀疏问题,新用户问题,复杂
属性不好处理;要有足够数据
构造分类器。
基于用户统计信息的推
荐技术
识别当前要预测的用户
的相似用户,根据其生
成当前要预测项目的评
价分
新异兴趣发现;没有新
用户问题;不要领域知
识
用户的人口信息统计资料难
得到
基于效用的推荐技术
把效用函数用户各项
目;生成各项目的排序
无冷开始和稀疏问题;
对用户偏好变化敏感;
考虑非产品特性
用户必须输入效用函数;推荐
是静态的,灵活性差;属性重
益问题
基于知识的推荐技术 计算各项目和用户需要
的匹配程度
把用户需求映射到产品
上;考虑非产品属性
知识难获得推荐是静态的
2 个性化推荐系统中的算法改进
个性化信息推荐的一般过程
用户数据收集
收集客户信息[12]包括客户的个人属性、购买历史记录、WEB页面的浏览记录等。个人
属性可以从用户注册表单中获得,当然前提是用户必须填写真实有效的个人信息;购买历史
记录主要保存在电子商务网站后台交易数据库中,它是每位用户以前每次购物的详细情况的
记录集,包括交易时间、商品清单、价格、折扣等,同时也可以收集用户放入购物篮而未购
买的商品记录,以及用户过去点击过的商品的链接和停留时间等,这些信息可以帮助电子商
务商家分析目标用户的兴趣或偏好、改进在线销售系统的结构和性能,提高产品的点击率和
购买率;WEB页面浏览记录储存于服务器的日志文件中,记录的是用户的访问行为、频率、
内容、停留时间及用户来源。
数据分析
目的是建立客户行为模型,形成客户相关信息。按照推荐算法的需要,这些相关信息可
以是客户的分类或者聚类情况,也可以是一些关联规则等。这些可以帮助企业分析客户的购
买习惯和行为特征等问题,数据挖掘中的神经网络技术、模型化算法和其他信息处理技术在
数据分析中得到了相当广泛的应用。比如聚类技术就是将具有相似兴趣、相似属性的客户或
者项目聚集到相同的簇中,根据簇中其他客户的行为和评价对目标客户产生推荐。Bayesian
网络技术用训练集创建相应的模型,模型用决策树表示[13]。关联规则用来分析产品间的关
联模式,用于提高交叉销售能力。这些方法各有优劣,推荐系统需要兼顾准确性和实时性,
一个好的系统很可能是多种方法或技术的结合。
产生推荐数据集
对目标客户可以计算两类推荐结果——客户对任意项的兴趣度的预测和 Top-N推荐集。
对于前者,在目标客户 u的最近邻居产生以后,其对任意项 t的兴趣度可以表示为:
- 7 -
中国科技论文在线
uP =u + ∑
∑
=
=
−×
n
i
i
n
i
i
corr
iratingcorr
1
1
i
)(
)()(
……………………………(2-1)
其中,u是客户 u对项目的平均评估值,i是最近邻居集中的客户, icorr 是客户 u和
i之间的 Pearson系数, irating 是客户 i对项目 t的评估值,i是客户 i对项目的平均评估
值。
对于 Top-N 推荐集,先分别统计最近邻居集中客户对不同项目的兴趣度,取其中 N个
排在最前面而且目标客户以前没有选择过的项目作为 Top-N推荐集。
基于聚类分析的协同过滤推荐算法
聚类就是将数据对象分组成为多个类或簇(Cluster),在同一个簇中的对象具有较高的相
似度,而不同簇中的对象差别较大。一旦簇建立,可以使用簇中其它用户(项目)的平均观点
对目标用户(项目)进行预测。在协同过滤中使用聚类算法来划分用户(项目),并使用划分作
为邻居,每个划分代表一个簇。协同过滤算法首先使用聚类算法将用户-项目评分数据集分
成 N个划分(聚类算法可以产生固定尺寸的划分,或者基于相似度阈值能产生一个要求的不
同尺寸的划分个数),然后搜寻目标用户(项目)属于哪个划分,这个划分就是目标用户(项目)
的邻居,最后通过协同过滤算法来预测评分。
其中划分的方法有很多,本论文用到的是最著名与常用的划分方法:K-means[14]:
给定一个包含 n个数据对象的数据库,以及要生成的簇的数目 K,一个划分类的算法将
数据对象组织为 K个划分(k≤n),其中每个划分代表一个簇。通常会采用一个划分的准则(经
常称为相似度函数),例如距离,以便在同一个簇中的对象是“相似的”,而不同簇中的对
象是“相异的”。
基于聚类分析的协同过滤推荐算法分为两类:基于用户聚类的协同过滤推荐算法和基于
项目聚类的协同过滤推荐算法。目前是应用比较广泛、效率较高的个性化推荐算法。
基于用户聚类的协同推荐算法
基于用户聚类的协同过滤算法是目前应用比较广泛且效率较高的一种个性化推荐算法。
它是基于这样的假设:为用户找到真正感兴趣的商品的方法是找到与用户有共同兴趣爱好的
相似用户,并将相似用户感兴趣的商品推荐给该用户。基于用户聚类的协同过滤算法描述:
算法采用一个 m×n 阶用户-项目评分矩阵来表示用户输入的评分数据,使用聚类分析技术
进行划分形成邻居,寻找与目标用户有相同喜好的邻居,然后根据目标用户的邻居的喜好产
生向目标用户的推荐。主要有三个步骤:
a.数据表示:在一个采用基于用户聚类的协同过滤技术的推荐系统中,用户输入评分数
据可以用一个 m×n阶矩阵 A(m,n)表示,m行代表 m个用户,n列代表 n个项目(或产品),
第 i行第 j列的元素 Rij代表用户 i对项目 j的评分。评分可以是用二进制的 0和 1来表示的
用户偏好(喜欢/不喜欢)或者购买状态(购买/已购买),也可以是用分级表示用户对项目的喜好
值(例如,可以用 0到 5的整数来代表用户的偏好,0表示没有评分,1到 5表示用户喜欢程
度)。用户评分数据矩阵如下:
- 8 -
中国科技论文在线
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
mnmm
n
n
RRR
RRR
RRR
""
""""""""
""
""
21
22221
11211
……………………………………(2-2)
b.邻居的形成:该算法的核心部分是为一个需要推荐服务的目标用户寻找最相似的最近
邻居集(Nearest-neighbor),即:采用聚类技术为目标用户产生一个根据相似度大小排列的邻
居集合,目标用户不属于这个邻居集,按照相似度从大到小排列。最近邻居查找的效果和效
率很大程度上决定了算法的效果和效率。
计算相似度可以有多种方法,主要包括如下三种方法:余弦相似性,相关相似性和修正
的余弦相似性。本论文中采用修正的余弦相似性(Adjusted Cosine similarity):设用户 i和用
户 j共同评分过的项目集合用 ijI 表示, iI 和 jI 分别表示用户 i和用户 j评分过的项目集合,
ciR , 表示用户 i对项目 C的评分, iR 和 jR 分别表示用户 i和用户 j的平均评分。则用户 i
和用户 j相似性 ),( jisim 为:
∑∑
∑
∈∈
∈
−−
−−=
jI
ji
IC
jcj
C
ici
IC
jcjici
RRRR
RRRR
jisim
2
,
2
,
,,
)()(
))((
),( , ……………(2-3)
采用聚类分析的 K-means算法来产生邻居用户的算法描述如下:
输入:划分的数目 K和用户评分数据库;
输出:K个划分(簇);
方法:
任意选择 K个对象作为初始的聚类中心;
repeat;
根据 ),( jisim 计算簇中每个对象与聚类中心的相似性。值越高,说明相似性越大;
将每个对象(重新)赋给最类似的划分。重新计算每个划分的更新划分;
until最后划分与上次划分一样,不再发生变化。
这样得到的最后聚类结果就是按照与目标用户的相似性排列的邻居用户集。
c.产生推荐
从目标用户的最近邻居中产生N项产品推荐。设目标用户 a的最近邻居集合用 as∪ 表
示,则用户 a对项目 j的预测评分 jaP , 为:
∑
∑
∈
∈ −+=
asn
asn
nja
aja
nasim
RRnasim
RP
∪
∪
)),((
)(*),( ,
, ………………………(2-4)
),( nasim 表示用户 a与用户 n之间的相似性, jnR , 表示用户 n对项目 j的评分。 aR
和 nR 分别表示用户 a和用户 n对项目的平均评分。通过上述方法预测用户对所有未评分项
目的评分,然后选择预测评分最高的前若干项作为推荐结果给当前用户。
- 9 -
中国科技论文在线
基于项目聚类的协同推荐算法
基于项目聚类的协同过滤算法通过用户对项目评分的相似性对项目进行聚类并生成对
应的聚类中心。关键过程是计算项目间的相似度并选择最相似的项目。计算项目 i,j的相似
性的基本思路是首先分离出共同评过分的项目的用户,并采用余弦相似性,相关相似性和修
正的余弦相似性方法中的一种来计算。文献[15]给出了基于项目聚类的协同过滤推荐算法的
聚类过程,并提出了一种最近邻查询的优化方法。
在最后产生推荐的过程中,一般采用求权重和(weighted sum)方法来计算用户 u对项目 i
的预测评分 iuP , :
∑
∑=
N
Ni
N
NuNi
iu
S
RS
P
)(
)*(
,
,,
, ……………………………………………(2-5)
其中 N 表示所有相似项目集合, NiS , 是表示项目 i 和其余相似项目之间的相似度,
NuR , 表示用户 u对项目的评分。
基于聚类的协同过滤算法改进
算法改进的原因
主要有如下原因:
a.传统的协同过滤算法在进行推荐时,只考虑了用户或者项目单方面的相似性,但实际
上,用户可能喜欢相似用户所喜爱的产品,另外也可能喜欢非相似用户购买的相似产品。在
基于客户聚类的协同过滤算法中,仅考虑了与目标用户有共同偏好的相似用户,并将其感兴
趣的商品推荐给该用户,而没有考虑目标用户可能也对非相似用户的相似商品感兴趣,即没
有考虑项目之间的相似性,而基于项目的协同过滤算法又仅考虑了项目之间的关联。
b.随着电子商务系统规模的扩大,用户和项目数目呈指数级增长,在大型电子商务系统
中,用户评分的项目一般不会超过项目总数的 1%,基于项目聚类的协同过滤推荐需要在整
个项目空间上查询目标项目的最近邻居,这对推荐算法的伸缩能力是个很大的挑战,推荐系
统的实时性要求越来越难以满足。即要做到在尽量少的项目空间上搜索到目标项目大部分的
最近邻居是改进的目标。为了使推荐更精确有效,并保证推荐系统的实时性要求,很多研究
者都把协同过滤和别的分析技术结合起来,比如 Bayesian 网络技术、聚类分析,关联规则
技术等等[16][17]。
改进算法的思想
基于聚类的协同过滤算法都只是从用户或者项目单方面角度出发,没有把客户和项目结
合起来,鉴于此,本文提出了一种基于项目和客户双重聚类的协同过滤推荐算法,算法的核
心在于相似度的计算和聚类方法。本文采用的聚类方法是 K 划分方法,但总的算法已加以
改进。相似度的计算也采用修正后的余弦相似性。
根据以上分析,可知总体框架图如图 2-1:
- 10 -
中国科技论文在线
图 2-1 改进算法总体框架图
改进算法程序流程图
图 2-2 改进算法程序流程图
- 11 -
中国科技论文在线
改进算法设计
a.获得用户评价信息
在对项目和客户进行聚类的过程中,都需要对项目或客户进行相似性的度量,用户评分
数据以用一个M*N阶矩阵 A(m,n)表示,m行代表 m个用户,n列代表 n个项目(或产品),
第 i行第 j列的元素 jiR , 代表用户 i对项目 j的评分,用户评分数据矩阵如下:
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
mnmm
n
n
RRR
RRR
RRR
""
""""""""
""
""
21
22221
11211
………………………………………(2-6)
b.相似度计算
对于项目之间的相似性,我们设对项目 i和项目 j共同评分过的用户集合用 jiU , 表示,
iU 和 jU 分别表示对项目 i 和项目 j 评分过的用户集合,则项目 i 和项目 j 之间的相似度
),( jisim [15][19]为:
)(
)()(
))((
),(
2
,
2
,
,,
, ji
RRRR
RRRR
jisim
ji
ji
UC
cjc
UC C
ic
UC
jjciic ≠−−
−−= ∑∑
∑
∈∈
∈ ……(2-7)
icR , 表示用户 c对项目 i的评分, jcR , 表示用户 c对项目 j的评分, iR 和 jR 表示对
项目 i和 j的平均评分。
对于用户之间的相似性,我们需要知道系统整个流程。在计算项目之间相似度之后,我
们采用 K划分算法得到聚类结果 1c , 2c ,…… kc ,然后对每一个聚类 ic ,我们把其转化
为“用户-项目”矩阵,即相当于把原始“用户-项目”评分矩阵划分成 K个子矩阵,每个子
矩阵的用户数目由聚类结果决定。然后在每个子矩阵 K中判断哪些用户与目标用户 a相似,
使用皮尔逊相关系数计算 K中用户 i与用户 a之间的兴趣相似度 ),( iaW k [20]:
∑ ∑
∑
−−
−−=
j j
ikijakaj
j ikijak
aj
k
rrrr
rrrr
iaW
22 )()(
))((
),( ………………………(2-8)
其中, ikak IIj ∩∈ , akI 是用户 a在子矩阵 k中的评过分的项目的集合, ikI 是用户
i在子矩阵 k中评过分的项目的集合。即 j为用户 a,i共同评分的项目集。 ajr 是用户 a 对
项目 j的打分, akr 是用户 a在子矩阵 k中的对项目的平均打分。
-划分聚类过程
根据上述的项目和客户相似度量方法,可以对项目和客户进行聚类,目的是先将具有较
高相似性的项目归在一个聚类中,而不同聚类中的项目差别较大;然后对于每个项目聚类,
我们针对用户进行聚类,把具有相同兴趣爱好的用户归在一起。
下面介绍通过 K划分聚类算法对项目和客户进行聚类的总算法,具体步骤如下:
输入:聚类数目 k和 s和用户评分数据库 RDB;
- 12 -
中国科技论文在线
输出:s聚类;
方法:
l)从用户评分数据库 RDB中检索所有的 n个项目,记为集合 },,,{ 21 niiiI "= ;
2)从用户评分数据库RDB中检索所有的m个用户,记为集合 },,,{ 21 muuuU "= ;
3)任意选择 k个项目,将用户评分数据库对这 k个项目的评分作为初始聚类中心,记为
集合 },,,{ 21 kuiuiuiUI "= ;
4)k个聚类 1C , 2C ,.…… kC 均初始化为空,记为集合 },,{ 21 kCCCC "= ;
5)S个聚类 1T , 2T ,.…… sT 均初始化为空,记为集合 },,{ 21 sTTTT "= ;
6)repeat
For 每个项目 Iii ∈
For 每个聚类中心 UIui j ∈
计算项目 ii 和 jui 的相似性 ),( ji uiisim ;
End For
)},(),,(),,(max{),( 21 kiiimi uiisimuiisimuiisimuiisim "=
聚类 imm iCC ∪=
End For
For 每个聚类 CCi ∈
For 每个用户 UUj∈
计算用户 ju 对聚类 ic 中所有项目的平均评分 ciujR , ,生成新的聚类中心 iui ;
End For
End For
Until 聚类 KCCC ,,, 21 " 与上一轮循环中的聚类 koldoldold CCC ",, 21 相同;
7)把每个聚类转化成“用户-项目”矩阵。即相当于把原始“用户-项目”评分矩阵划分
成 K个子矩阵;
8)在 m个用户中任意选择 s个用户作为初始聚类中心,记为集合
},,,{ 21 sucucucUC "= ;
9)repeat
For 每个子矩阵 kki∈
For 除了聚类中心外的每个用户 Uui∈
For 每个聚类中心 )( jiUCuc j ≠∈
计算 iu 与 juc 的相似性 ),( ji
k ucuW ;
End For
}),,(,max{),( "" jikmik ucuWucuW =
- 13 -
中国科技论文在线
聚类 imm uTT ∪=
End For
For 每个聚类 TTi∈
For 每个用户 UUj∈
计算用户 ju 对聚类 iT 中所有项目的平均评分 TiujR , ,生成新的聚类中心 iuc ;
End For
End For
End For
Until 聚类 sTTT ,,, 21 " 与上一轮循环中的聚类 soldoldold TTT ,,, 21 " 相同;
10)返回。
聚类 C1,C2,…Ck 表示对项目的聚类,相似度较高的项目被归为一类。而聚类 Tl,
T2,…Ts 是为了找到目标用户的邻居用户,和目标用户在同一个聚类中的用户就是其最近
邻邻居,设每个聚类中的数目是Ma(Ma根据聚类结果得到)。
d.产生推荐此过程中先找到目标用户 a所在的几个小矩阵 k( Kk∈ ),对于这几个矩阵
中用户 a没有评价过的资源 j,计算他对 j的预测值,如果 j属于多个类别中,则取预测值大
者作为最终预测值。计算用户 a对项目 j的预测 kajP [20][21]方法如下:
))(,( ,
1
ikji
Ma
i
k
ak
k
aj rriaWkrP −+= ∑
=
…………………………………(2-9)
其中, akr 是用户 a 在子矩阵 K 内的平均打分,Ma 是最近邻邻居数目, jir , 为最近邻
邻居 i对项目 j的评分, ikr 是最近邻邻居 i在子矩阵 K内的平均评分。K是归一化因子。
根据上述过程,对每一类的 kajP 值进行计算,然后降序排列,选择评分最高的前若干个
项目作为推荐结果反馈给当前用户。
通过对改进算法的编程实现证明其是可行的,MAE 值的比较说明改进算法比较传统过
滤推荐,其推荐精度要高;同时,本算法先对项目聚类,然后对客户聚类,相当于把原始用
户-评分矩阵分成若干个子矩阵,和划分前的协同过滤算法相比较,每个子矩阵拥有的用户
数目和资源数目大大减少,缩小了近邻搜索的范围及需要预测的项目数目,提高了协同过滤
算法的可扩展性和效率。
3 结论
随着用户和产品的数量以惊人的速度增长,电子商务的发展面临越来越多的挑战。为使
用户及时地从大量数据中得到所需信息,电子商务个性化信息推荐系统应运而生,它针对不
同的用户,对产品和服务作出个性化推荐。推荐系统中最关键且应用最广的技术即是协同过
滤,但随着电子商务个性化推荐系统的广泛应用与系统规模的不断扩大,协同过滤算法也出
现了很多问题。
本文研究和分析了电子商务个性化信息推荐方法,并对不同的推荐方法在电子商务推荐
系统中的应用进行比较。详细研究传统的协同过滤算法所面临的问题,及在此基础上提出的
改进算法——基于项目和客户聚类的协同过滤算法,论文具体工作如下:
- 14 -
中国科技论文在线
a.算法首先对项目进行聚类,基于用户-项目评分数据库,利用选择的相似性度量方法计
算项目之间的相似度,并产生相应的聚类簇。
b.根据得到的项目聚类,把每个聚类结果转化成用户-项目子矩阵,相当于把原始矩阵
分成 K 个子矩阵,对每个矩阵,采用特定的客户相似度量方法,计算客户之间的相似度,
得到客户的最近邻居集。
c.最后,利用用户的最近邻居集合,用户协同过滤的预测公式,对每个项目进行预测评
分,产生推荐给目标用户。
由于电子商务个性化信息推荐系统是个新的研究与应用领域,所以整个系统框架只是理
论研究。通过改进的算法可以有效解决用户评分数据在数据稀疏情况下传统过滤推荐方法存
在的不足,有效提高了电子商务推荐算法的推荐质量。
[参考文献] (References)
[1] Sung Ho Online Customers Decide through Web Personalization [J].IEEE Intelligent
./,-43.
[2] 安芳.电子商务个性化信息推荐服务的研究[D]. 北京.对外经济贸易大学.2006.
[3] Mobsters, B, Dai, H., Luo, T., and Nakagawa, M.,Improving the Effectiveness of Collaborative Filtering on
Anonymous Web Usage Data. In Proceedings of the IJCAI 2001 Workshop on Intelligent Techniques for Web
Personalization (ITWP010), 2001
[4] Schafer J. B. Konstanz J. A. and Riel J,E-Commerce recommendation applications . Data Mining and
Knowledge Discovery, 2001,5(1-2):115-153.
[5] 薛菘.基于WEB数据库平台的图书馆个性化服务,2002(8)P22
[6] 史田华,因特网个性化信息服务,2002(1):P31
[7] 冯翱.基于 Agent的个性化信息过滤系统 Open Bookmark[J].清华大学学报自然科学版.2001, 4 (3) :85-88.
[8] 吴佑寿,丁晓青. 汉字识别原理与应用[M]. 北京:高等教育出版社,1992.
[9] 欧立奇.协同过滤在电子商务推荐系统中的应用研究[D]. 西安.西北大学.2006.
[10] 王莉红.电子商务环境下协同过滤推荐方法的应用分析与研究[D]. 上海.上海师范大学.2005.
[11] 余力、刘鲁,电子商务个性化推荐研究[J]. 计算机集成制造系统.,10(10): 1306-1313
[12] 张勇,个性化信息服务技术研究与实现. 西北工业大学硕士学位论文.
[13] Chin, Y-H., and George, Bayesian Model for Collaborative Filtering. Proceedings of the Seventh
International Workshop on Artificial Intelligence and Statistics,1999.
[14] Jamey Han, Michelin Camber, 范明、孟小峰等译,数据挖掘概念与技术.北京,机械工业出版社,2001,8
[15] 邓爱林、左子叶、朱扬勇,基于项目聚类的协同过滤推荐算法[J]. 小型微型计算机系统.2004,(9):
1665- 1670.
[16] Thiess on B, Meek C, Checkering D and Heckerman D., Learning mixture of DAG models[R].Proceedings
of the 14th Conference on Uncertainty in Artificial Intelligence,1998,504-513.
[17] 张海燕、丁峰、姜丽红,基于模糊聚类的协同过滤推荐方法明.计算机仿真.2005,22(08): 144-147.
[18] 杨众.基于项目聚类的协同过滤推荐算法的研究[D]. 吉林.东北师范大学.2005.
[19] 邓爱林、朱扬勇报.2003,14(9):、施伯乐,基于项目评分预测的协同过滤推荐算法[J].软件学 1621-1628.
[20] 高凤荣、杜小勇、王珊,一种基于稀疏矩阵划分的个性化推荐算法[J].微电子学与计算机.2004,21(2):
58-62.
[21] 周军锋、汤显、郭景峰,一种优化的协同过滤推荐算法[J].计算机研究与发展.2004,41(10) :1842 -1847.