1.一种基于矩阵分解协同过滤算法的图书推荐方法,其特征在于,包括以下步骤:(1)处理用户-图书评分矩阵,先将用户历史图书评分行为数据的训练集预处理为m*n的用户图书评分矩阵R;m表示为m个用户,n表示为n种图书;
(2)将矩阵R进行均值归一化处理,将矩阵R中每个值都除以矩阵R中所有值的和;
(3)对归一化处理后的用户-图书评分矩阵R的分解,将维数较高的用户-图书评分矩阵R分解成两个维数较低的矩阵的乘积,这两个低维的矩阵分别表示用户的特征矩阵θ以及图书的特征矩阵X;
(4)构造改进的代价函数,利用原始的评分矩阵Rm*n与重新构建的评分矩阵 之间的误差的平方,加入正则项构建改进的代价函数;
(5)初始化特征矩阵,将矩阵θ和矩阵X初始化为两个具有小的随机数值的矩阵;
(6)建立目标的函数,此处以代价函数最小化为目标函数;
(7)通过改进的梯度下降法求解目标函数,改进的梯度下降法求解共分为两步进行,第一步求解代价函数的偏导数,第二步更新θ、x两个变量,相应改进的下降公式加入正则项进行计算;
(8)计算用户对图书的预测评分,确定目标函数最优解之后,则可以得到对应的最优矩阵θk*m和最优矩阵Xk*n,计算用户i对图书j的预测评分;
(9)完成推荐,将前述步骤训练所得的参数用来计算用户对未评分的每个图书的预测评分,并取评分较高的前h个图书推荐给用户;
步骤(4)中构造改进的代价函数,利用原始的评分矩阵Rm*n与重新构建的评分矩阵之间的误差的平方,并在其中加入正则项,以对参数进行约束,加入正则项的改进代价函数计算公式如下所示:
上式中,r(i,j)=1表示用户i对图书j进行了评分,参数λ为正则化代价函数所设定的;
步骤(6)中建立的以代价函数最小化为目标的目标函数,具体的计算公式如下:将初始化后特征矩阵的值带入目标函数,若目标函数值小于0.001,则计算停止,否则,则用改进的梯度下降法不断地迭代更新特征矩阵,以使上述的代价函数最小化;
步骤(7)中改进的梯度下降法求解目标函数共分为两步进行:第一步求解代价函数的偏导数,
第二步更新θ、x两个变量,由于是改进的代价函数,相应改进的梯度下降公式亦进行改进,加入正则项进行计算,所以对每一个i=1,...,m,j=1,...,n梯度下降法更新计算公式如下所示:
以上公式中α为学习速率,其表示每一次迭代下降的幅度,参数k的含义是k个主题,其决定了用户特征向量和图书特征向量的维数;
通过不断的迭代,更新矩阵θ和矩阵X中的元素,以使代价函数不断减小;并将计算得到目标函数值,与0.001进行对比,若前者小则终止计算,否则继续以上步骤;同时若迭代次数达到10000次还未达到条件,则也停止计算,得到一个代价函数的局部最小值;
步骤(8)中计算用户对图书的预测评分,具体计算公式如下所示:以上公式中 表示用户i对图书j的预测评分,是用户i对图书的平均评分。
2.根据权利要求1所述一种基于矩阵分解协同过滤算法的图书推荐方法,其特征在于,步骤(1)中的用户-图书评分矩阵建立如下:将用户历史图书评分行为数据的训练集预处理为m*n的R,其中,m表示为m个用户,n表示为n本图书,rui表示用户u对图书i的评分;
3.根据权利要求1所述一种基于矩阵分解协同过滤算法的图书推荐方法,其特征在于,步骤(2)中将矩阵R进行均值归一化处理,其中归一化公式:在上述公式中,rij表示用户i对图书j的评分。
4.根据权利要求1所述一种基于矩阵分解协同过滤算法的图书推荐方法,其特征在于,步骤(3)中将用户-图书评分矩阵R分解为两个低维的用户的特征矩阵θ以及图书的特征矩阵X,具体所示:
其中,R为m*n的用户-评分矩阵,其中m为用户数量,n为图书数量,θ为k*m的用户特征矩阵,表示m个用户与k个主题的关系,X为k*n图书特征矩阵,表示k个主题和n个图书的关系;R的第i行、第j列元素,记为rij,为用户i对图书j的评分,θ的第i列为用户i的特征向量,记(i) (j)
θ ,X的第j列为图书j的特征向量,记为x ,则有:求解矩阵θk*m和Xk*n的每一个元素。
5.一种用于实现权利要求1至4任意一项所述的基于矩阵分解协同过滤算法的图书推荐方法的图书推荐系统,其特征在于,包括用户图书信息收集层、存储层、推荐引擎模块及接口层;
所述的存储层,用于存储系统使用和产生的数据,包括用户、图书的基本信息及用户行为信息;
所述的用户图书信息收集层,与存储层连接,用于负责录入和维护用户、图书的基本信息及用户行为信息;
所述的推荐引擎模块,与存储层连接,用于对用户的历史行为进行计算,产生推荐列表;采用基于矩阵分解的推荐模型构建推荐引擎;
所述的接口层,与推荐引擎模块、存储层连接及前端展示单元通信,用于将计算出的数据传递给前端展示单元,并将用户对图书的评分通过前端展示单元获取传回,接口层为前端展示单元调用提供所需数据,将前端展示单元传来的用户行为数据交由存储层储备用;
所述的推荐引擎模块的推荐方法,包括以下步骤:(1)处理用户-图书评分矩阵,先将用户历史图书评分行为数据的训练集预处理为m*n的用户图书评分矩阵R;m表示为m个用户,n表示为n种图书;
(2)将矩阵R进行均值归一化处理,将矩阵R中每个值都除以矩阵R中所有值的和;
(3)对归一化处理后的用户-图书评分矩阵R的分解,将维数较高的用户-图书评分矩阵R分解成两个维数较低的矩阵的乘积,这两个低维的矩阵分别表示用户的特征矩阵θ以及图书的特征矩阵X;
(4)构造改进的代价函数,利用原始的评分矩阵Rm*n与重新构建的评分矩阵 之间的误差的平方,加入正则项构建改进的代价函数;
(5)初始化特征矩阵,将矩阵θ和矩阵X初始化为两个具有小的随机数值的矩阵;
(6)建立目标的函数,此处以代价函数最小化为目标函数;
(7)通过改进的梯度下降法求解目标函数,改进的梯度下降法求解共分为两步进行,第一步求解代价函数的偏导数,第二步更新θ、x两个变量,相应梯度下降公式加入正则项进行计算;
(8)计算用户对图书的预测评分,确定目标函数最优解之后,则可以得到对应的最优矩阵θk*m和矩阵Xk*n,计算用户i对图书j的预测评分;
(9)完成推荐,将前述步骤训练所得的参数用来计算用户对未评分的每个图书的预测评分,并取评分较高的前k个图书推荐给用户。