广东工业大学学报  2018, Vol. 35Issue (4): 45-50.  DOI: 10.12052/gdutxb.170140.
0

引用本文 

彭嘉恩, 邓秀勤, 刘太亨, 刘富春, 李文洲. 融合社交和标签信息的隐语义模型推荐算法[J]. 广东工业大学学报, 2018, 35(4): 45-50. DOI: 10.12052/gdutxb.170140.
Peng Jia-en, Deng Xiu-qin, Liu Tai-heng, Liu Fu-chun, Li Wen-zhou. A Recommendation Algorithm of Latent Factor Model Fused with the Social and Tag Information[J]. JOURNAL OF GUANGDONG UNIVERSITY OF TECHNOLOGY, 2018, 35(4): 45-50. DOI: 10.12052/gdutxb.170140.

基金项目:

国家自然科学基金资助项目(61673122,61273118);广东省公益研究与能力建设专项资金资助项目(2015A030402006);广东工业大学研究生创新创业及竞赛资助项目(2016YJSCX036,2017YJSCX039)

作者简介:

彭嘉恩(1993–),女,硕士研究生,主要研究方向为数据挖掘、机器学习、推荐系统。

通信作者

邓秀勤(1966–),女,教授,主要研究方向为智能计算、数据挖掘等. E-mail:xiuqindeng@163.com

文章历史

收稿日期:2017-10-10
融合社交和标签信息的隐语义模型推荐算法
彭嘉恩1, 邓秀勤1, 刘太亨1, 刘富春2, 李文洲1     
1. 广东工业大学 应用数学学院, 广东 广州  510520;
2. 广东工业大学 计算机学院, 广东 广州  510006
摘要: 为了提高隐语义模型在数据稀疏情况下推荐结果的质量, 提出一种带有社交正则化项和标签正则化项的隐语义模型. 根据用户社交网络和物品标签的信息, 设计出描述用户和物品概况的正则化项, 并利用用户对物品的历史评分计算得到用户评分偏好, 将这三项引入矩阵分解目标函数中, 进一步约束目标函数, 最后通过梯度下降法去优化模型参数, 得到推荐结果. 为了验证算法的有效性, 在Last.fm数据集上进行实验,实验结果表明, 本文算法的推荐质量优于其他传统推荐算法.
关键词: 隐语义模型    社交网络    标签信息    推荐算法    
A Recommendation Algorithm of Latent Factor Model Fused with the Social and Tag Information
Peng Jia-en1, Deng Xiu-qin1, Liu Tai-heng1, Liu Fu-chun2, Li Wen-zhou1     
1. School of Applied Mathematics, Guangdong University of Technology, Guangzhou 510520, China;
2. School of Computers, Guangdong University of Technology, Guangzhou 510006, China
Abstract: In order to improve the recommendation performance of latent factor model under the circumstance of data sparseness, a latent factor model with the social regularization and the tag regularization is proposed. According to the user’s social network and the item’s tag information, the regularization depicting the profiles of the user and the item is designed, and the user rating preferences calculated by using user’s history rating of items. These three items are introduced into the objective function of the matrix decomposition to further constrain the objective function. Finally, the gradient descent method is used to optimize the model parameters and get the recommendation result. To verify the efficacy of the proposed method, the model is tested by the Last.fm data set, and the experimental results show that the recommendation algorithm proposed in this study has a better recommendation performance compared with other traditional recommendation algorithms.
Key words: latent factor model    social network    tag information    recommendation algorithm    

推荐系统在解决信息过载问题上起到了重要的作用,能帮助用户更精确快速地从大量信息中找到满意和合适的信息. 随着隐语义模型(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}$ 分解为用户特征矩阵 ${P}$ 和物品特征矩阵 ${Q}$ 相乘,如式(1)所示.

${R} \approx {P}{Q}.$ (1)

其中, ${R} \in {\Re ^{n \times m}}$ 表示用户对物品的评分矩阵, ${R}$ 中的元素 ${r_{ij}}$ 表示用户 $i$ 对物品 $j$ 的评分; ${P} \in {\Re ^{n \times k}}$ 表示用户对隐类的偏好程度矩阵, ${Q} \in {\Re ^{k \times m}}$ 表示隐类与物品之间的相似程度矩阵,这里的 $k$ 是隐类的个数, $n$ 是用户总数, $m$ 是物品总数.

为了求解 ${P}$ ${Q}$ ,定义损失函数为

$\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为训练集. 通过最小化训练集的预测误差来得到合适的 ${P}$ ${Q}$ ,为了防止过拟合,加入防止过拟合项 $\lambda ({\left\| {{p_i}} \right\|^2} + {\left\| {{q_j}} \right\|^2})$ ,其中 $\lambda $ 是正则化参数,从而得到隐语义模型:

$\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)

其中, $q(i)$ 表示用户 $i$ 所评分的所有物品集合, $\left| {q(i)} \right|$ 表示用户 $i$ 所评分的物品数.

2)根据所有用户对物品的评分,计算每个物品所得的所有评分的平均值,得到大众对这个物品的偏好度,计算公式如式(5)所示.

${G_j} = \frac{{\sum\limits_{i \in p(j)} {{W_i}{r_{ij}}} }}{{\sum\limits_{i \in p(j)} {{W_i}} }}.$ (5)

其中, $p(j)$ 表示对物品 $j$ 做出评分的用户集合.

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)

其中的 ${\bar r_i}$ 表示用户 $i$ 所提供的评分的平均值, ${\bar G_i}$ 表示用户 $i$ 对所评分的所有物品的偏好度的平均值.

4)利用式(6)计算出的 ${\rm{Co}}{{\rm{r}}_i}$ ,再根据式(7)重新计算 ${W_i}$ 的值.

${W_i} = \frac{{({\rm{Co}}{{\rm{r}}_i} + 1)}}{2}.$ (7)

经过式(4)~(7)的不断迭代,计算出逐渐收敛的每个物品的大众偏好度 ${G_j}$ ,直到满足式(8),得出一个固定的物品大众偏好度.

$\frac{1}{m}\sum\limits_{j = 1}^m {(G_j^{(m)} - G_j^{(m - 1)}) \leqslant {{10}^{ - 6}}} .$ (8)
1.3 用户社交正则化项

一般情况下用户会选择喜好相同的好友的推荐,因此用户的社交信息对推荐结果有重要的影响. 通过计算每一位用户与其好友之间的相似程度,作为一个影响推荐的权重系数,衡量用户之间的相似度,从而构建一个社交正则化项.

本文在计算社交正则化项时,采用文献[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)

其中 $\left| {q(i) \cap q(f)} \right|$ 表示用户 $i$ 与用户 $f$ 共同评价过的物品的个数.

最后,得到式(11)所示的社交正则化项:

$\frac{{{\lambda _s}}}{2}\sum\limits_{f \in f(i)} {{S}(i,f)\left\| {{{P}_i} - {{P}_f}} \right\|_2^2}. $ (11)
1.4 标签正则化项

本文算法不仅考虑了相似用户的社交正则化项,还通过设计出标签正则化项将物品标签信息加入到推荐模型,以期提高推荐质量. 标签是用户对物品印象的一种概括,故标签不仅可以衡量用户偏好,还能将物品进行分类. 针对传统方法只计算了标签出现的频率的问题,本文利用文献[14]的方法来计算标签—物品矩阵,通过构建出标签频数权重L,标签局部权重X和物品全局权重U这3个部分,通过它们联合作用来获取标签—物品矩阵,具体方法如下.

1)通过统计标签标注物品次数获得标签频数权重L,其中L $ \in {\Re ^{a \times m}}$ a表示参与标注的标签总数, $m$ 表示参与标注的物品总数,本文所选取的物品样品都有标签标注. ${L}(i,j)$ 表示标签 $i$ 在物品 $j$ 的频数权重,计算方法如式(12)所示.

${L}(i,j) = {\rm{log}}\left( {t{f_{ij}} + 1} \right).$ (12)

上式的 $t{f_{ij}}$ 表示用户标签 $i$ 标注物品 $j$ 的次数,其中将真数设为 $t{f_{ij}} + 1$ ,从而防止 $t{f_{ij}}$ 为零.

2)根据标签的代表性和接受程度共同描述标签局部权重X,其中X $ \in {\Re ^{1 \times a}}$ X(i)表示标签i的局部权重,计算方法如式(13)所示.

${ X}(i) = - b(i) \times \log \left( {\frac{{c(i)}}{m}} \right) .$ (13)

式(13)中, $b(i)$ 表示标签 $i$ 标注的物品总数,从而描述了标签的代表性; $c(i)$ 是用户使用标签 $i$ 标注物品的次数,可以反映出用户对标签的接受程度.

3)由物品的概括程度和传播程度联合作用去反映物品全局权重U,其中U $ \in {\Re ^{m \times 1}}$ ${U}(j)$ 表示物品 $j$ 的全局权重,可根据式(14)来计算.

${U}\left( j \right) = - {\rm{Tag}}\left( j \right) \times \log \left(\frac{{{\rm tag}(j)}}{{NT}}\right). $ (14)

式(14)中的Tag $(j)$ 表示物品 $j$ 拥有的标签总数,反映了标签对物品内容的概括程度;tag $(j)$ 表示物品 $j$ 被标注的次数,刻画了物品在用户中的传播程度.

4)计算标签—物品矩阵Y $ \in {\Re ^{NT \times m}}$ ,其中 $Y(i,j)$ 表示标签 $i$ 在物品 $j$ 中的权重,可利用式(15)计算:

${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个矩阵 ${{T}_0}$ ${{S}_0}$ ${{D}_0}^{\rm T}$ 的积: ${{Y }}={{{T}}_{0}} \times {{{S}}_{0}} \times {{{D}}_{0}}^{\rm T}$ ,通过降维技术找到的Y低阶近似矩阵 ${{{Y}}_{\text{g}}}$ ,得到的矩阵 ${{{Y}}_{\text{g}}}$ 是一个去噪矩阵,能消除原始矩阵Y的一些无关信息,而且可以降低计算机处理难度. 通过计算 ${Z} = {{{Y}}_{g}}^{\rm T} \times {{{Y}}_{g}}$ 可以得到物品之间两两的相似度,其中 ${Z}$ 的第 $i$ 行第 $j$ 列的元素 ${ {Z}}(i,j)$ 表示物品 $i$ $j$ 的相似程度.

标签信息蕴藏着物品的概况,通过上述方法处理标签信息能够更好地挖掘物品的潜在信息,为更精确的推荐提供贡献,从而可以得到标签正则化项式(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)中的 $F(j)$ 代表与物品 $j$ 相似度高的前 $N$ 个物品的集合,本文中规定 $g$ 为20, $N$ 为10.

1.5 融合社交信息和标签信息的隐语义模型

综上分析,将用户评分偏好、社交信息和物品标签信息引进隐语义模型中,得到带有社交正则化项和标签正则化项的隐语义模型框架为

$\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)

其中 ${I_{ij}}$ 表示若用户 $i$ 对物品 $j$ 进行了评分则为1,否则为0. 本文应用梯度下降法对目标函数(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)计算得到更新后的 ${P}$ ${Q}$ .

$\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)

其中 $\varDelta $ 表示下降速度.

算法复杂度分析:式(5)~(7)的复杂度分别是 $O\left( {m \times n} \right)$ ${O}\left( {m \times n} \right)$ $O\left( n \right)$ ,故 ${G_i}$ 的计算复杂度是 $O(l \times m \times n)$ ,这里的 $l$ 表示社交关系的数量,显然有 $l < m$ $l < n$ ,所以把 $l$ 看作常数. 其中用户好友相似度 ${S}(i,f)$ 的复杂度是 $O\left( {{n^2}} \right)$ ,物品相似度 ${Z}(j,h)$ 的复杂度是 $O\left( {{m^2}} \right)$ . 因为 ${{G}_i}$ ${S}(i,f)$ ${Z}(j,h)$ 可以提前离线计算,而梯度下降法的计算复杂度是目标函数 $C$ 和参数 ${P}$ ${Q}$ 的梯度的复杂度. 由于评分矩阵 ${R}$ 的稀疏性,梯度 $\displaystyle\frac{{\partial E}}{{\partial {P}}}$ $\displaystyle\frac{{\partial E}}{{\partial {Q}}}$ 的计算复杂度为 $O\left( {\sigma \times k} \right)$ ,其中 $\sigma $ 是矩阵 ${R}$ 的非零项的个数, $k$ 是用户和物品的隐类因子向量的维度,再加上线性查找的时间成本,本文算法的计算复杂度是 $O\left( {n + m + \sigma \times k} \right)$ .

2 实验与分析 2.1 数据集

实验中采用了全球最大的社会音乐平台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)

这里的 $l$ 是收听次数, $r$ 是经过处理后得到的评分. $\left\lfloor x \right\rfloor $ 是取不超过 $x$ 的整数.

表 1 数据集Last.fm统计数据 Table 1 Statistical data of Last.fm datasets
2.2 评价指标

本文采用推荐系统领域常用的平均绝对误差(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)

其中, $\left| {\rm Test} \right|$ 表示测试集中的评分个数, ${I_S}(i)$ 为用户 $i$ 在测试集中评价过的项目集合. 假设在测试集上产生的推荐列表为RM $(i)$ ,本文设置将前10个物品推荐给用户 $i$ ,则有 $\left| {{\rm RM}(i)} \right| = 10$ ,故把召回率,准确率和F1分别写作recall@10、precision@10和F1@10.

2.3 参数设定 2.3.1 社交信息和标签信息对推荐结果的影响

从上文提出的推荐算法框架可以看出,本文需要确定两个参数 ${\lambda _s}$ ${\lambda _z}$ 的取值,通过实验可以确定参数 ${\lambda _s}$ ${\lambda _z}$ 的最佳取值. 参数 ${\lambda _s}$ 在目标函数(17)中的作用是控制相似用户对推荐结果影响的比重,而 ${\lambda _z}$ 的作用则是控制相似物品对推荐结果影响的比重. 假设把参数 ${\lambda _s}$ ${\lambda _z}$ 都设定为0,则目标函数就是传统的LFM模型,这时的模型单一地使用用户对物品的评分矩阵,忽略了用户的社交关系和物品的相似性对推荐结果的作用.

为了得到最优的 ${\lambda _s}$ ${\lambda _z}$ 的取值组合,参考文献[11]中的正则化系数的设置,本文将 ${\lambda _c}$ 确定为0.1,在 ${\lambda _c}$ 取相同值的情况下,讨论 ${\lambda _s}$ ${\lambda _z}$ 取值对算法的影响,参照文献[8]中的参数范围,通过实验确定参数范围,尝试逐步缩小 ${\lambda _s}$ ${\lambda _z}$ 的取值范围,把 ${\lambda _s}$ ${\lambda _z}$ ${10^{ - 1}}$ 的倍数从1到0.000 01逐步减小,在Last.fm数据集上进行实验,记录实验结果,从而比较得出最优的取值组合. 从图1图4可以看出,在Last.fm数据集中,当 ${\lambda _s}$ ${\lambda _z}$ 都设为0.01时,MAE和RMSE的结果最小,而recall@10和precision@10的值最大.

图 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
2.3.2 实验结果与分析

在实验过程中,随机选取了数据集中的70%、80%和90%的数据量作为训练集,剩余的作为测试集. 将本文提出的模型和PMF[13]、改进的RSTE[7]、SoRS[8]这3个模型在测试集上的实验结果进行比较,具体结果如表2和表3所示. 参考文献[7-8]中的参数设置,将改进的RSTE的参数设为 ${\lambda _{\rm user}} = 0.1$ ${\lambda _{\rm item}} = 0.1$ ,SoRS的参数设定为 ${\lambda _1} = 0.001$ .

表 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.