Please wait a minute...
浙江大学学报(工学版)  2019, Vol. 53 Issue (7): 1349-1353    DOI: 10.3785/j.issn.1008-973X.2019.07.014
自动化技术、计算机技术     
基于非负矩阵分解的Slope One算法
董立岩1,2(),金佳欢1,方塬程1,王越群1,李永丽3,孙铭会1,2,*()
1. 吉林大学 计算机科学与技术学院,吉林 长春 130012
2. 吉林大学 符号计算与知识工程教育部重点实验室,吉林 长春130012
3. 东北师范大学 信息科学与技术学院,吉林 长春 130117
Slope One algorithm based on nonnegative matrix factorization
Li-yan DONG1,2(),Jia-huan JIN1,Yuan-cheng FANG1,Yue-qun WANG1,Yong-li LI3,Ming-hui SUN1,2,*()
1. College of Computer Science and Technology, Jilin University, Changchun 130012, China
2. Key Laboratory of Symbolic Computation and Knowledge Engineering of Ministry of Education, Jilin University, Changchun 130012, China
3. School of Information Science and Technology, Northeast Normal University, Changchun 130117, China
 全文: PDF(637 KB)   HTML
摘要:

针对协同过滤推荐算法中Slope One算法在稀疏数据集中推荐精度低的问题,利用矩阵分解在解决矩阵稀疏性方面的优势,将非负矩阵分解技术引入到用户-项目评分矩阵的降维处理中,将原有的稀疏评分矩阵进行非负分解,改善了矩阵的稀疏性,优化Slope One算法. 从实验数据可以看出,与原始的CF算法进行比较,NMF-Slope One算法有较好的推荐效果. 在数据稀疏的条件下,确定参数进行实验. 实验结果表明,该方法提高了Slope One算法在数据稀疏下的精度和推荐质量.

关键词: 推荐系统协同过滤非负矩阵分解Slope One    
Abstract:

The good performance of matrix decomposition in solving matrix sparsity was used in order to solve the problem that the Slope One algorithm has low recommendation accuracy in the sparse data set in the collaborative filtering recommendation algorithm. The nonnegative matrix factorization technology was introduced into the dimension reduction of the user-item rating matrix in order to optimize the Slope One algorithm. The original sparse scoring matrix was non-negatively decomposed in order to improve the sparsity of the matrix. The experimental results show that the NMF-Slope One algorithm has a good recommendation effect compared with the original CF algorithm. Parameters were determined for experimentation under conditions of sparse data. The proposed method improves the accuracy and the recommendation quality of the Slope One algorithm under data sparseness.

Key words: recommendation system    collaborative filtering    non-negative matrix factorization    Slope One
收稿日期: 2018-09-04 出版日期: 2019-06-25
CLC:  TP 301  
通讯作者: 孙铭会     E-mail: dongly@jlu.edu.cn;smh@jlu.edu.cn
作者简介: 董立岩(1966—),男,教授,博导,从事数据挖掘的研究. orcid.org/0000-0001-7491-5893. E-mail: dongly@jlu.edu.cn
服务  
把本文推荐给朋友
加入引用管理器
E-mail Alert
作者相关文章  
董立岩
金佳欢
方塬程
王越群
李永丽
孙铭会

引用本文:

董立岩,金佳欢,方塬程,王越群,李永丽,孙铭会. 基于非负矩阵分解的Slope One算法[J]. 浙江大学学报(工学版), 2019, 53(7): 1349-1353.

Li-yan DONG,Jia-huan JIN,Yuan-cheng FANG,Yue-qun WANG,Yong-li LI,Ming-hui SUN. Slope One algorithm based on nonnegative matrix factorization. Journal of ZheJiang University (Engineering Science), 2019, 53(7): 1349-1353.

链接本文:

http://www.zjujournals.com/eng/CN/10.3785/j.issn.1008-973X.2019.07.014        http://www.zjujournals.com/eng/CN/Y2019/V53/I7/1349

图 1  Slope One基本思想
输入:原有的用户-项目评分矩阵Rm×n),ks为特征属性个数,steps为迭代次数,a=0.000 2为梯度下降常数,b=0.02用来控制用户特征向量和条目特征向量的比例,用来进行规范化,防止过拟合.
输出:较稠密的用户-项目评分矩阵Rnewm×n
1 for step<steps//迭代次数
2  for i<len(R
3   for j<len(R[i])
4    if R[ij]>0//用户给出了评分
5      eij=R[ij]?P[ijQ[ij]
6     for k<ks
7       P[i][k]=P[i][k]+a(2eij ·Q[k][j]?b·P[i][k])
8       Q[k][j]=Q[k][j]+a(2eij ·P[i][k]?b·Q[k][j])
9     end for
10    end if
11   end for
12  end for
13  式(7)
14 end for
15 sreturn Rnewm×n
表 3  
输入:较稀疏的用户-项目矩阵 Rm×n);目标用户 u,目标项目 iks 为特征属性个数,steps 为迭代次数,a=0.000 2 为梯度下降常数,b=0.02 用来控制用户特征向量和条目特征向量的比例,用来进行规范化,防止过拟合.
输出:u对itemi的预测评分pu,i
1 for step<steps//迭代次数
2  for i<len(R
3   for j<len(R[i])
4    if R[ij]>0//用户给定评分
5      eij=R[ij]?P[ijQ[ij]
6     for k<ks
7       P[i][k]=P[i][k]+a(2eijQ[k][j]?bP[i][k])
8       Q[k][j]=Q[k][j]+a(2eijP[i][k]?bQ[k][j])
9     end for
10    end if
11   end for
12  end for
13  式(7)
14 end for
15 根据式(8)构建不同用户的相似度矩阵
16  Nu ← TopK(u
17  N=|Nu|
18  ${\rm{de{v}}}_{i,j} = \frac{{\mathop \sum \limits_{{\rm{user}} \in {N_u}} \left( {{R_{ui}} - {R_{uj}}} \right)}}{N}$
19  ${p_{u,i}} = \frac{{\mathop \sum \limits_{j \in {I_u}} {N_{ij}}\left( {{\rm{de{v}}}_{i,j} + {R_{uj}}} \right)}}{{\mathop \sum \nolimits_{j \in {I_u}} {N_{ij}}}}$
表 4  
图 2  不同k下的RMSE
图 3  不同k下的MAE
算法 RMSE MAE
Bi-Polar Slope One 1.08 1.06
Weighted Slope One 0.98 0.97
NMF-Slope One 0.92 0.92
表 1  不同Slope One算法的RMSE与MAE
算法 RMSE MAE
User-Based CF 0.97 0.87
Item-Based CF 1.07 0.92
NMF-Slope One 0.91 0.76
表 2  不同CF算法的RMSE和MAE
1 CACHEDA F, FORMOSO V, FERNáNDEZ D, et al Comparison of collaborative filtering algorithms: Limitations of current techniques and proposals for scalable, high-performance recommender systems[J]. ACM Transactions on the Web, 2011, 5 (1): 1- 33
2 LEMIRE D, MACLACHLAN A. Slope One predictors for online rating-based collaborative filtering [C] // Proceedings of the 2005 SIAM International Conference on Data Mining. Philadelphia: Society for Industrial and Applied Mathematics Publications, 2005: 471-475.
3 KARYDI E, MARGARITIS K G. Multithreaded implementation of the Slope One algorithm for collaborative filtering [C] // 8th IFIP WG 12.5 International Conference on Artificial Intelligence Applications and Innovations. New York: Springer, 2012: 117-125.
4 KOREN Y, BELL R. Advances in collaborative filtering [M]. New York: Springer, 2015: 77-118.
5 TIAN S, OU L. An improved Slope One algorithm combining KNN method weighted by user similarity [C] // 17th International Conference on Web-Age Information Management. Berlin: Springer, 2016: 88-98.
6 BASU A, VAIDYA J, KIKUCHI H. Perturbation based privacy preserving Slope One predictors for collaborative filtering [C] // 6th IFIP WG 11.11 International Conference on Trust Management VI. New York: Springer, 2012: 17-35.
7 MAO C, CHEN J QoS prediction for web services based on similarity-aware Slope One collaborative filtering[J]. Informatica (Slovenia), 2013, 37 (2): 139- 148
8 LIU Y, LIU D, XIE H, et al A research on the improved slope one algorithm for collaborative filtering[J]. International Journal of Computing Science and Mathematics, 2016, 7 (3): 245- 253
doi: 10.1504/IJCSM.2016.077865
9 SAEED M, MANSOORI E G A new slope one based recommendation algorithm using virtual predictive items[J]. Journal of Intelligent Information Systems, 2018, 50 (3): 527- 547
doi: 10.1007/s10844-017-0470-7
10 WANG Q X, LUO X, LI Y, et al Incremental Slope-one recommenders[J]. Neurocomputing, 2018, 272: 606- 618
doi: 10.1016/j.neucom.2017.07.033
11 LEE D D, SEUNG H S Learning the parts of objects with non-negative matrix factorization[J]. Nature, 1999, 401 (6755): 788- 791
doi: 10.1038/44565
12 ZONG L, ZHANG X, ZHAO L, et al Multi-view clustering via multi-manifold regularized non-negative matrix factorization[J]. Neural Networks, 2017, 88: 74- 89
doi: 10.1016/j.neunet.2017.02.003
13 LU S, HONG M, WANG Z A Nonconvex splitting method for symmetric nonnegative matrix factorization: convergence analysis and optimality[J]. IEEE Transactions on Signal Processing, 2017, 65 (12): 3120- 3135
doi: 10.1109/TSP.2017.2679687
14 ALQUIER P, GUEDJ B An oracle inequality for quasi-Bayesian nonnegative matrix factorization[J]. Mathematical Methods of Statistics, 2017, 26 (1): 55- 67
doi: 10.3103/S1066530717010045
15 HARPER F M, KONSTAN J A The MovieLens datasets: history and context[J]. ACM Transactions on Interactive Intelligent Systems, 2015, 5 (4): 1- 19
16 林德军, 孟祥武 基于奇异值分解的Slope One算法[J]. 新型工业化, 2012, 2 (11): 12- 17
LIN De-jun, MENG Xiang-wu Slope One algorithm based on single value decomposition[J]. The Journal of New Industrialization, 2012, 2 (11): 12- 17
[1] 李诺,郭斌,刘琰,景瑶,於志文. 神经协同过滤智能商业选址方法[J]. 浙江大学学报(工学版), 2019, 53(9): 1788-1794.
[2] 王红霞,陈健,程艳芬. 采用评论挖掘修正用户评分的改进协同过滤算法[J]. 浙江大学学报(工学版), 2019, 53(3): 522-532.
[3] 厉小军,柳虹,施寒潇,朱柳青,张亚辉. 基于深度学习的课程推荐模型[J]. 浙江大学学报(工学版), 2019, 53(11): 2139-2145.
[4] 韩勇, 宁连举, 郑小林, 林炜华, 孙中原. 基于社交信息和物品曝光度的矩阵分解推荐[J]. 浙江大学学报(工学版), 2019, 53(1): 89-98.
[5] 袁友伟, 余佳, 郑宏升, 王娇娇. 基于新颖性排名和多服务质量的云工作流调度算法[J]. 浙江大学学报(工学版), 2017, 51(6): 1190-1196.
[6] 任迪, 万健, 殷昱煜, 周丽, 高敏. 基于贝叶斯分类的Web服务质量预测方法研究[J]. 浙江大学学报(工学版), 2017, 51(6): 1242-1251.
[7] 毛宜钰, 刘建勋, 胡蓉, 唐明董. 基于Logistic函数和用户聚类的协同过滤算法[J]. 浙江大学学报(工学版), 2017, 51(6): 1252-1258.
[8] 涂鼎, 陈岭, 陈根才, 吴勇, 王敬昌. 基于在线层次化非负矩阵分解的文本流主题检测[J]. 浙江大学学报(工学版), 2016, 50(8): 1618-1626.
[9] 居斌, 钱沄涛, 叶敏超. 基于结构投影非负矩阵分解的协同过滤算法[J]. 浙江大学学报(工学版), 2015, 49(7): 1319-1325.
[10] 苏凯, 马良荔, 孙煜飞, 郭晓明. 面向Web服务QoS预测的非负矩阵分解模型[J]. 浙江大学学报(工学版), 2015, 49(7): 1358-1366.
[11] 岳克强, 孙玲玲, 游彬, 楼立恒. 基于欠定盲分离的并行识别防碰撞算法[J]. 浙江大学学报(工学版), 2014, 48(5): 865-870.
[12] 扈中凯, 郑小林, 吴亚峰, 陈德人. 基于用户评论挖掘的产品推荐算法[J]. J4, 2013, 47(8): 1475-1485.
[13] 崔建涛, 厉小润, 赵辽英. 高光谱图像亚像元级地物端元提取方法[J]. J4, 2012, 46(10): 1857-1865.
[14] 厉小润, 伍小明, 赵辽英. 非监督的高光谱混合像元非线性分解方法[J]. J4, 2011, 45(4): 607-613.
[15] 赵武锋 严晓浪. 基于多尺度梯度角和SVM的正面人脸识别方法[J]. J4, 2008, 42(4): 590-592.