2. 广东工业大学 计算机学院, 广东 广州 510006
2. School of Computers, Guangdong University of Technology, Guangzhou 510006, China
推荐系统在解决信息过载问题上起到了重要的作用,能帮助用户更精确快速地从大量信息中找到满意和合适的信息. 随着隐语义模型(Latent Factor Model,LFM)的提出,促使推荐算法得到快速的发展. 与传统的协同过滤推荐方法相比较,LFM能有效地解决稀疏性和冷启动问题. 传统的推荐算法只是单一地使用了用户对物品的评分信息,导致推荐质量不佳. 为了提高推荐质量,许多学者结合多种信息去做推荐. 针对协同过滤算法中的冷启动和数据稀疏问题,Ma Tinghuai等[1]结合了社交关系和用户生成的标签共同去预测用户对物品的偏好,而Shambour等[2]将用户和物品的隐式信任信息引入协同过滤算法中. Zheng等[3]将协同过滤算法结合标签和时间信息去提高推荐质量. 在LMF算法基础上,为了提高推荐质量,Ma Hao等[4]提出两种根据社交信息设计出社交正则化项的方法,将社交信息融入LFM去做推荐. Liu 和Aberer[5]结合了社交信息和上下文信息去提高推荐质量. Ma Hao等[6-7]提出的集成社会信任度的概率矩阵分解模型(Recommendation with Social Trust Ensemble,RSTE)在计算用户对物品偏好的时候,同时考虑了用户自身和其信任朋友的喜好,并在此基础上改进了计算用户与好友的相似程度的公式,构建了改进的RSTE方法. Qian等[8]提出了SoRS模型,将用户的社交关系,以及利用用户对物品的评分得到的用户推荐权威系数引入LFM中,同时修正了用户与好友的相似度计算公式,从而进一步提高了推荐准确度. 另外,物品信息在推荐算法中的作用也得到了很好的体现,物品—物品之间的关系可以通过物品种类的皮尔森相关系数[9]或物品类型的相关性[10]来衡量. 为了更有效利用物品信息,Ma Tinghuai等[11]提出了结合标签和物品类型信息的矩阵分解技术. 通过这些方法衡量物品之间的相似程度,挖掘出相似程度高的物品,从而提高推荐准确度.
本文在文献[8]中的模型基础上引入标签信息,构建出刻画物品概况的正则化项,结合评分信息、社交信息和标签信息共同去预测用户对物品的评分值,从而得到推荐结果. 实验结果表明本文提出的算法能有效提高推荐质量.
1 方法描述 1.1 模型基础自Netflix Prize开始以来,涌现出很多优秀的推荐算法,其中Simon Funk[12]在博客上公布的Funk-SVD,将矩阵分解推广到推荐系统上,后来Netflix Prize的冠军Koren称之为隐语义模型(Latent Factor Model,LFM),其目的是将稀疏的评分矩阵补充完整,通过潜在特征联系用户和物品,从而预测用户对物品的喜好程度. 运用矩阵分解技术自动把评分矩阵
${R} \approx {P}{Q}.$ | (1) |
其中,
为了求解
$\sum\limits_{(i,j) \in {\rm Train}} {{{({r_{ij}} - {{\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{r} }_{ij}})}^2}} = \sum\limits_{(i,j) \in {\rm Train}}^{} {({r_{ij}} - \sum\limits_{k = 1}^K {{p_{ik}}} } {q_{kj}}{)^2} .$ | (2) |
其中Train为训练集. 通过最小化训练集的预测误差来得到合适的
$\sum\limits_{(i,j) \in {\rm Train}} {{{({r_{ij}} - \sum\limits_{k = 1}^K {{p_{ik}}} {q_{kj}})^2}}} + \lambda ({\left\| {{p_i}} \right\|^2} + {\left\| {{q_j}} \right\|^2}) . $ | (3) |
随后在2007年,R. Salakhutdinov等[13]提出的概率矩阵分解模型(Probabilistic Matrix Factorization,PMF)是根据概率知识去预测用户对物品的评分,是隐语义模型的概率化.
1.2 用户评分偏好现实生活中,由于每个用户的喜好和评分准则都有所不同,为了权衡每个用户的评分偏差,计算每个用户与大众喜好的差别,运用文献[8]中提到的计算用户评分偏好的方法,给出每个用户评分偏好,具体方法如下.
1)给出每个用户评分偏好初始值
${W_i} = \frac{{\left| {q(i)} \right|}}{m} .$ | (4) |
其中,
2)根据所有用户对物品的评分,计算每个物品所得的所有评分的平均值,得到大众对这个物品的偏好度,计算公式如式(5)所示.
${G_j} = \frac{{\sum\limits_{i \in p(j)} {{W_i}{r_{ij}}} }}{{\sum\limits_{i \in p(j)} {{W_i}} }}.$ | (5) |
其中,
3)利用余弦相似度计算公式得出每个用户的评分与物品的大众偏好度的相似程度,如式(6)所示.
${\rm{Co}}{{\rm{r}}_i} = \frac{{\sum\limits_{j \in q(i)} {({r_{ij}} - {{\bar r}_i})({G_j} - {{\bar G}_i})} }}{{\sqrt {\sum\limits_{j \in q(i)} {{{({r_{ij}} - {{\bar r}_i})}^2}} } \sqrt {{{\sum\limits_{j \in q(i)} {({G_j} - {{\bar G}_i})} }^2}} }}.$ | (6) |
其中的
4)利用式(6)计算出的
${W_i} = \frac{{({\rm{Co}}{{\rm{r}}_i} + 1)}}{2}.$ | (7) |
经过式(4)~(7)的不断迭代,计算出逐渐收敛的每个物品的大众偏好度
$\frac{1}{m}\sum\limits_{j = 1}^m {(G_j^{(m)} - G_j^{(m - 1)}) \leqslant {{10}^{ - 6}}} .$ | (8) |
一般情况下用户会选择喜好相同的好友的推荐,因此用户的社交信息对推荐结果有重要的影响. 通过计算每一位用户与其好友之间的相似程度,作为一个影响推荐的权重系数,衡量用户之间的相似度,从而构建一个社交正则化项.
本文在计算社交正则化项时,采用文献[8]的方法. 首先,用余弦相似度计算用户与其好友的相似程度,如式(9)所示.
${\rm Corr}(i,f) = \frac{{\sum\limits_{j \in q(i) \cap q(f)} {({r_{ij}} - {{\bar r}_i})} ({r_{fj}} - {{\bar r}_f})}}{{\sqrt {\sum\limits_{j \in {\text{q}}(i) \cap q(f)} {{{({r_{ij}} - {{\bar r}_i})}^2}} } \sqrt {\sum\limits_{j \in q(i) \cap q(f)} {{{({r_{fj}} - {{\bar r}_f})}^2}} } }} .$ | (9) |
因为用户与好友之间的相似程度还受到用户与好友共同评价的物品数的影响,故通过式(10)对式(9)的修正,增加共同评价的物品数去修正用户与好友之间的相似度,能更好地衡量用户与好友之间的相似程度,对做出更准确的推荐抉择起到重要的作用.
${S}(i,f) = \frac{{{\rm{Cor}}(i,f) + 1}}{{2(1 + {{\rm e}^{ - \frac{{\left| {q(i) \cap q(f)} \right|}}{2}}})}}\;.$ | (10) |
其中
最后,得到式(11)所示的社交正则化项:
$\frac{{{\lambda _s}}}{2}\sum\limits_{f \in f(i)} {{S}(i,f)\left\| {{{P}_i} - {{P}_f}} \right\|_2^2}. $ | (11) |
本文算法不仅考虑了相似用户的社交正则化项,还通过设计出标签正则化项将物品标签信息加入到推荐模型,以期提高推荐质量. 标签是用户对物品印象的一种概括,故标签不仅可以衡量用户偏好,还能将物品进行分类. 针对传统方法只计算了标签出现的频率的问题,本文利用文献[14]的方法来计算标签—物品矩阵,通过构建出标签频数权重L,标签局部权重X和物品全局权重U这3个部分,通过它们联合作用来获取标签—物品矩阵,具体方法如下.
1)通过统计标签标注物品次数获得标签频数权重L,其中L
${L}(i,j) = {\rm{log}}\left( {t{f_{ij}} + 1} \right).$ | (12) |
上式的
2)根据标签的代表性和接受程度共同描述标签局部权重X,其中X
${ X}(i) = - b(i) \times \log \left( {\frac{{c(i)}}{m}} \right) .$ | (13) |
式(13)中,
3)由物品的概括程度和传播程度联合作用去反映物品全局权重U,其中U
${U}\left( j \right) = - {\rm{Tag}}\left( j \right) \times \log \left(\frac{{{\rm tag}(j)}}{{NT}}\right). $ | (14) |
式(14)中的Tag
4)计算标签—物品矩阵Y
${Y}(i,j) = {X}\left( {\rm{i}} \right) \times {L}(i,j) \times {U}\left( j \right). $ | (15) |
根据式(12) ~ (15)可以得到标签—物品矩阵Y,该矩阵综合考虑了标签频数,标签在物品中的使用情况和用户对物品的反映情况这3个方面的因素,能很好地衡量标签在物品中使用的权重情况.
然后利用奇异值分解(Singular Value Decomposition,SVD)把标签—物品矩阵Y分解为3个矩阵
标签信息蕴藏着物品的概况,通过上述方法处理标签信息能够更好地挖掘物品的潜在信息,为更精确的推荐提供贡献,从而可以得到标签正则化项式(16):
$\frac{{\lambda _z^{}}}{2}\sum\limits_{j = 1}^m {\sum\limits_{h \in F(j)}^{} {{Z}(j,h)\left\| {{{Q}_j} - {{Q}_h}} \right\|_2^2} }.$ | (16) |
式(16)中的
综上分析,将用户评分偏好、社交信息和物品标签信息引进隐语义模型中,得到带有社交正则化项和标签正则化项的隐语义模型框架为
$\begin{split} E = & \frac{1}{2}\sum\limits_{{\text{i}} = 1}^n {\sum\limits_{j = 1}^m {{{I}_{ij}}} } {{G}_i}{({r_{ij}} - {P}_i^{\rm T}{{Q}_j})^2} + \\ & \frac{{{\lambda _s}}}{2}\sum\limits_{i = 1}^n {\sum\limits_{f \in f(i)}^{} {{S}(i,f)\left\| {{{P}_i} - {{P}_f}} \right\|_2^2} } + \\ & \frac{{\lambda _z^{}}}{2}\sum\limits_{j = 1}^m {\sum\limits_{h \in F(j)}^{} {{{Z}}(j,h)\left\| {{{Q}_j} - {{Q}_h}} \right\|_2^2} } + \\ & {\lambda _c}(\sum\limits_{i = 1}^n {\left\| {{{P}_i}} \right\|_2^2 + } \sum\limits_{j = 1}^m {\left\| {{{Q}_j}} \right\|_2^2} ).\end{split} $ | (17) |
其中
$\begin{split}\frac{{\partial E}}{{\partial {P_i}}} = & \sum\limits_{j = 1}^m {{{I}_{ij}}{{G}_i}} ({P}_i^{\rm T}{{Q}_j} - {r_{ij}}){{Q}_j} + \\ &{\lambda _s}\sum\limits_{f \in f(i)} {{S}(i,f)({{P}_i} - {{P}_f})} + {\lambda _c}{{P}_i},\end{split}$ | (18) |
$\begin{split}\frac{{\partial E}}{{\partial {{Q}_j}}} = & \sum\limits_{i = 1}^n {{{I}_{ij}}{{G}_i}} ({P}_i^{\rm T}{{Q}_j} - {r_{ij}}){P_i} + \\ & {\lambda _z}\sum\limits_{h \in F(j)} {{Z}(j,h)({{Q}_j} - {{Q}_h})} + {\lambda _c}{{Q}_j}.\end{split}$ | (19) |
然后可以通过式(20)~(21)计算得到更新后的
$\begin{split}{{P}_i} = & {{P}_i} - \varDelta (\sum\limits_{j = 1}^m {{{I}_{ij}}{{G}_i}} ({P}_i^{\rm T}{{Q}_j} - {r_{ij}}){{Q}_j} + \\ &{\lambda _s}\sum\limits_{f \in f(i)} {{S}(i,f)({{P}_i} - {{P}_f}) + } {\lambda _c}{{P}_i}),\end{split}$ | (20) |
$\begin{split}{{Q}_j} = & {{Q}_j} - \varDelta (\sum\limits_{i = 1}^n {{{I}_{ij}}{{G}_i}} ({P}_i^{\rm T}{{Q}_j} - {r_{ij}}){{P}_i} + \\ &{\lambda _z}\sum\limits_{h \in F(j)} {{Z}(j,h)({{Q}_j} - {{Q}_h}) + {\lambda _c}{{Q}_j}} ).\end{split}$ | (21) |
其中
算法复杂度分析:式(5)~(7)的复杂度分别是
实验中采用了全球最大的社会音乐平台Last.fm[15]上的数据,表1列出了该数据集的数据统计情况. Last.fm数据集收录了用户对艺术家的收听次数,为了符合本文算法的要求,运用文献[1]的方法处理,将收听次数转化为1到5的评分,如式(22)所示.
$r = \left\{{ \begin{array}{*{20}{l}} \,\left\lfloor {{{\log }_{10}}l} \right\rfloor + 1,\, & \,{\rm if}\left\lfloor {{{\log }_{10}}l} \right\rfloor + 1 < 5 ; \;\;5,\quad \quad \quad \quad & {\rm otherwise }. \\ \end{array}} \right. $ | (22) |
这里的
![]() |
表 1 数据集Last.fm统计数据 Table 1 Statistical data of Last.fm datasets |
本文采用推荐系统领域常用的平均绝对误差(MAE)和均方根误差(RMSE)来评价模型预测评分的效果,如果MAE值和RMSE值越小,则表明预测评分越准确,通过式(23)~(24)来计算MAE和RMSE. 此外,用召回率(Recall)和准确率(Precision)[16]来评估模型的推荐能力,再计算出召回率和准确率的加权调和平均数,即F1-Measure,来评价模型效果的好坏. 若召回率、准确率和F1-Measure越高,则说明推荐效果越好. 分别通过式(25)~(27)来计算召回率、准确率和F1-Measure.
${\rm MAE} = \frac{1}{{\left| {\rm Test} \right|}}\sum\limits_{(i,j) \in {\rm Test}} {\left| {{r_{ij}} - {{\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{r} }_{ij}}} \right|} .$ | (23) |
${\rm RMSE} = \sqrt {\frac{{{{\sum\limits_{(i,j) \in Test} {({r_{ij}} - {{\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{r} }_{ij}})} }^2}}}{{\left| {\rm Test} \right|}}}.$ | (24) |
${\rm recall} = \frac{1}{n}\sum\limits_{i = 1}^n {\frac{{\left| {{\rm RM}(i) \cap {I_S}(i)} \right|}}{{\left| {{I_S}(i)} \right|}}} .$ | (25) |
${\rm precision} = \frac{1}{n}\sum\limits_{i = 1}^n {\frac{{\left| {{\rm RM}(i) \cap {I_S}(i)} \right|}}{{\left| {{\rm RM}(i)} \right|}}}.$ | (26) |
${\text{F1 - Measure}} = \frac{{{\text{2}} \times {\text{precision}} \times {\text{recall}}}}{{({\rm precision} + {\rm recall})}}. $ | (27) |
其中,
从上文提出的推荐算法框架可以看出,本文需要确定两个参数
为了得到最优的
![]() |
图 1 在Last.fm数据集中社交信息对预测评分的影响 Figure 1 Impacts of social information to prediction rating in Last.fm dataset |
![]() |
图 2 在Last. fm数据集中社交信息对推荐质量的影响 Figure 2 Impacts of social information to recommendation performances in Last.fm dataset |
![]() |
图 3 在Last. fm数据中标签信息对预测评分的影响 Figure 3 Impacts of tag information to prediction rating in Last.fm dataset |
![]() |
图 4 在Last. fm数据中标签信息对推荐质量的影响 Figure 4 Impacts of tag information on recommendation performances in Last.fm dataset |
在实验过程中,随机选取了数据集中的70%、80%和90%的数据量作为训练集,剩余的作为测试集. 将本文提出的模型和PMF[13]、改进的RSTE[7]、SoRS[8]这3个模型在测试集上的实验结果进行比较,具体结果如表2和表3所示. 参考文献[7-8]中的参数设置,将改进的RSTE的参数设为
![]() |
表 2 4种方法在Last. fm数据集上的预测评分能力和推荐能力比较 Table 2 Comparisons in prediction rating and recommendation performances of four methods by utilizing Last.fm dataset |
从表2可以看出,在Last.fm数据集上,本文算法的RMSE和MAE都比其余3种方法小,而本文算法的recall@10、precision@10和F1@10比其余3种方法大. 从实验结果可以说明本文方法能有效地提高推荐质量. PMF仅使用了评分数据,而改进的RSTE和SoRS加入了用户社交信息,所以推荐质量得到提高,由于本文算法融合了用户评分偏好、社交和标签这三方面的信息,能为推荐结果提供更多有效的依据,因此提高了推荐质量.
3 结论本文提出的推荐算法融合了用户评分偏好、社交信息和标签信息,在计算标签—物品矩阵时,能从标签频数、标签的使用情况和用户对物品的印象情况去综合考虑标签与物品之间的关系,不仅能挖掘出用户所偏好的物品,还能根据标签将物品进行分类. 因此能更有效地利用标签信息,并根据标签信息刻画出物品间的相似度,基于相似物品为用户提供合适的推荐物品. 本文从评分预测和推荐能力这两方面去验证本文算法的有效性,与其他传统推荐算法相比较,本文算法具有更高的预测评分准确度和推荐质量,从而说明融入多种信息对推荐质量有着重要的影响.
[1] | MA T, ZHOU J, TANG M, et al. Social network and tag sources based augmenting collaborative recommender system[J]. Ieice Transactions on Information & Systems, 2015, 98(4): 902-910. |
[2] | SHAMBOUR Q, LU J. An effective recommender system by unifying user and item trust information for B2B applications[J]. Journal of Computer and System Science, 2015, 81(7): 1110-1126. DOI: 10.1016/j.jcss.2014.12.029. |
[3] | ZHENG N, LI Q. A recommender system based on tag and time information for social tagging systems[J]. Expert Systems with Applications, 2011, 38(4): 4575-4587. DOI: 10.1016/j.eswa.2010.09.131. |
[4] | MA H, ZHOU D, LIU C, et al. Recommender systems with social regularization[C]//Forth International Conference on Web Search and Web Data Mining. Hong Kong: ACM, 2011: 287-296. |
[5] | LIU X, ABERER K. SoCo: A social network aided context-aware recommender system[C]//International Conference on World Wide Web. Rio de Janeiro: ACM, 2013: 781-802. |
[6] | MA H, KING I, LYU M R. Learning to recommend with social trust ensemble[C]//International ACM SIGIR Conference on Research and Development in Information Retrieval. Boston: ACM, 2009: 203-210. |
[7] | MA H, KING I, LYU M R. Learning to recommend with explicit and implicit social relations[J]. ACM Transactions on Intelligent Systems and Technology, 2011, 2(3): 1-19. |
[8] | QIAN F, ZHAO S, TANG J, et al. SoRS: social recommendation using global rating reputation and local rating similarity[J]. Physica A Statistical Mechanics & Its Applications, 2016, 461(10): 61-72. |
[9] | KIM K R, MOON N M. Recommender system design using movie genre similarity and preferred genres in Smart Phone[J]. Multimedia Tools and Applications, 2012, 61(1): 87-104. DOI: 10.1007/s11042-011-0728-y. |
[10] | CHOI S M, KO S K, HAN Y S. A movie recommendation algorithm based on genre correlations[J]. Expert Systems with Applications, 2012, 39(9): 8079-8085. DOI: 10.1016/j.eswa.2012.01.132. |
[11] | MA T, SUO X, ZHOU J, et al. Augmenting matrix factorization technique with the combination of tags and genres[J]. Physica A: Statistical Mechanics & Its Applications, 2016, 461(9): 101-116. |
[12] | KOREN Y, BELL R, VOLINSKY C. Matrix factorization techniques for recommender systems[J]. Computer, 2009, 42(8): 30-37. DOI: 10.1109/MC.2009.263. |
[13] | SALAKHUTDINOV R, MNIH A. Probabilistic matrix factorization[C]// International Conference on Neural Information Processing Systems. Vancouver, British Columbia, Canada: Curran Associates Inc. 2007: 1257-1264. |
[14] |
谭学清, 蔡军, 罗琳. 基于改进的LSI标签语义检索书目系统[J].
图书馆学研究, 2014(11): 67-72.
TAN X Q, CAI J, LUO L. The tag semantic retrieval of bibliography system based on the improved LSI[J]. Research on Library Science, 2014(11): 67-72. |
[15] | CANTADOR I, BRUSILOVSKY P, KUFLIK T. Proceedings of the 2nd international workshop on information heterogeneity and fusion in recommender systems (HetRec 2011) : 27th October 2011, Chicago, IL, USA[J]. Soins Psychiatrie, 2011(232): 5-6. |
[16] |
卢露, 魏登月. 一种基于隐语义模型的协同过滤算法[J].
微电子学与计算机, 2015(2): 73-75.
LU L, WEI D Y. A collaborative filtering algorithm based on latent factor model[J]. Microelectronics & Computer, 2015(2): 73-75. |