分布式矩阵分解算法在推荐系统中的研究与应用_张海建

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

随着互联网的普及和电子商务的发展,推荐系统逐渐成为电子商务IT 技术的一个重要研究内容,得到越来越多研究者的关注[1]

。例如,Amazon 、CDNOW 、e -

Bay 、京东等电子商务网站,都开始逐渐引入了各种形式的推荐系统。

协同过滤推荐是当今被广泛使用的推荐技术[4],其中,潜在因素模型(latent factor models )是协同过滤推

荐使用的技术之一。潜在因素模型是通过分析消费历史记录来推测潜在的发展趋势。矩阵分解算法(matrix

factorization )[2]

是潜在因素模型中被广泛使用的技术之

一。但是,随着网站消费记录的增多,传统的矩阵分解算法不能高效地为大规模消费记录构建潜在因素模型,无法实现推荐系统的实时性。本文针对大规模历史消费记录,提出了高效地特征矩阵分解算法,该算法是

收稿日期:2012-12-21

作者简介:张海建(1978-),男,北京人,硕士,讲师,主要研究方向:计算机软件,数据库系统。

分布式矩阵分解算法在推荐系统中的研究与应用

张海建

(北京信息职业技术学院,北京100018)

摘要:随着互联网信息技术的高速发展,越来越多的人开始接触网络。网上购物成为当今社会的购物的主要方式之一,各大电子商务网站每天都有大量的消费者购买及浏览记录。电子商业往往希望通过分析大量的网站购买记录以及消费者浏览记录,对消费者提供有价值地商品推荐,以便于提高销售量。矩阵分解广泛地应用在推荐系统中的协同过滤算法中,但是,随着网站数据量的增大,传统的矩阵分解算法不能有效地处理这些大规模海量数据。本文针对推荐系统中大规模的网站数据,提出了基于云平台的分布式矩阵分解算法,该算法能够分布式完成推荐系统中的协同过滤过程。实验结果表明,本文提出的算法能够高效地完成推荐系统中的协同过滤,并且,该算法具有很好的可扩展性。关键词:推荐系统;分布式;云平台;mapReduce ;矩阵分解;协同过滤中文分类号:TP3

文献标识码:A

文章编号:1001-7119(2013)12-0151-03

The Research and Application of Distributed Matrix

Factorization Algorithm in Recommend System

Zhang Haijian

(Beijing Information Technology College,Beijing 100018,China)

Abstract:With the high-speed development of internet information technology,more and more people begin to get in touch with internet.On-line shopping is becoming one of the main shopping methods,several big e-commerce sites pro -duce big amount of consumer purchasing and browsing records.E-commerce sites usually hope to analyze these records and provide to the consumers with valuable commodity recommendation,in order to promote sales.Matrix factorization is popularly used in collaborative filtering algorithm in recommendation system.However,with the incensement of web data,traditional matrix factorization could not deal with this huge amount of data.In this paper,focusing on big scale website data,we propose distributed matrix factorization based on Cloud computing platform.Through the experimental results,the algorithm in this paper could complete collaborative filtering in recommendation system effectively,and it has good scalability.

Key words :recommender systems;distributed;cloud platforms;mapReduce;matrix decomposition,and collaborative filtering

第29卷第12期

2013年12月

科技通报

BULLETIN OF SCIENCE AND TECHNOLOGY

Vol.29No.12Dec.2013

技通报科第29卷

基于MapReduce [5]分布式云计算平台[7],能够高效、快速地完成潜在因素模型的构建。实验结果进一步表明,本文提出的算法具有很高的加速比,并且有很好的可扩展性。

1矩阵分解算法

矩阵分解模型中,引入一组二进制值pui,pui 代表

用户u 对项目i 的偏好:

p ui =

1ulikei

0udislike i

如果用户u 已经购买了项目,那么令p ui =1,否则,令p ui =0。在购买历史记录中,不存在p ui =0的样本值,因此该矩阵分解算法只能用于对正训练数据进行推荐。

在矩阵分解模型中,偏好度被假定为内积形式:

p ui =x T u y i 。矩阵分解模型的目标是求解向量x u 和y i 满足最

小化训练数据的预测错误平方值。用户因素和项目因素是通过最小化如下方程求解的:

min

x *,y *∑(u,i )∈R

(p ui -x T u y i )2+λ(∑u

||x u ||2+∑i

||y i ||2

其中,λ是正则化参数,用于防止过拟合问题。通

过固定用户参数或者项目参数,成本函数变为二次方程,因此该问题转化为最小平方优化问题,步骤如下:

首先,通过重新计算用户因素x u 最小化如下成本方程:

x u =(Y T Y+λI )-1Y T

p (u )

其中,p (u )包含所有用户u 的购买项目记录。然后,通过相同的方法重复计算项目因素:

y i =(X T X+λI )-1X T p (i )

通过迭代重复计算项目因素和用户因素x u 和y i ,矩阵分解模型将p

赞ui 中top-N 项目推荐给用户u ,其中p 赞ui 代表用于u 对项目i 的预测偏好度。

2分布式矩阵分解算法

通过前面的介绍,可以看出算法的执行时间与矩

阵相乘有关,并且与因式分解的个数相关,如果矩阵X 的维度非常大,那么大矩阵相乘问题将严重影响算法的执行时间。本节部分针对大规模数据计算矩阵相乘求解慢问题,基于MapReduce 分布式计算平台,设计分布式矩阵分解算法。下面,详细介绍算法的执行流程。

(1)将数据集平均分配到各个不同节点中,即将初始化矩阵X ,Y 平均分配到K 的个计算节点中,每个计算节点的子矩阵表示为:

Y 1,Y 2,..,Y k ;X 1,X 2,..,X k 。并且,将p (u )和p (i )的信息传递到各个计算节点。

(2)每个计算节点中,分别求解子矩阵转置与该

子矩阵的乘积,即:Y T k Y,X T k X 以及Y T

k p (u )和X T k p

(i )。(3)当所有计算节点计算完毕后,将所有的计算

结果Y T k Y,X T k X 做和作为Y T Y 和X T

X 最终的结果;

同时,将Y T k p (u )和X T k p

(i )结果按照列号合并,最为最终的矩阵结果。

(4)对Y T Y 和X T X 分别求逆运算,与矩阵和X T p

(i )分别相乘,求解出相应的x u 和y i 。迭代步骤(2)、(3)、(4),直至收敛为止,完成最小化成本函数求解。

(5)将最终的x u 转置和y i 相乘,得出预测p 赞u i ,并将top-N 项目推荐给用户u 。

下面是基于MapReduce 的分布式矩阵分解算法的伪代码:

Input :User-Factor Matrix X,Item-Factor Matrix Y,p(u),p(i)

Output:p 赞ui

Mapper

Program:

图1可扩展性测试结果Fig.1Scalability Testing Results 表1实验数据描述

Table 1Experimental Data Description 数据集名称

D1D2D3D4D5D6

记录条数1,000,0002,000,0004,000,0008,000,00010,000,00012,000,000

表2算法执行时间比较

Table2Algorithm Running Time Comparison

实验数据D1D2D3D4D5D6

分布式矩阵分解

(D-MF )执行时间/s 3867781523312336704632

传统算法(T-MF )执行时间/s 48251058019296409114660959289

加速比12.513.612.6713.112.712.8

152

相关文档
最新文档