2. 淮海工学院商学院, 连云港, 222005;
3. 淮海工学院计算机工程学院, 连云港, 222005;
4. 江苏省海洋资源开发研究院, 连云港, 222005
2. School of Business, Huaihai Institute of Technology, Lianyungang, 222005, China;
3. Department of Computer Science, Huaihai Institute of Technology, Lianyungang, 222005, China;
4. Marine Resource Development Institute of Jiangsu, Lianyungang, 222005, China
伴随着社交网络的盛行,在线用户生成的信息呈指数型增长,社会语义信息的分析对于许多Web应用程序变得越来越重要, 然而用户冷启动问题导致的用户-项目矩阵数据稀疏性等问题严重影响了推荐质量。现有的推荐方法均未能很好地处理具有极少评分项的用户推荐。目前推荐系统与各种社会背景信息相关联,包括用户的社会信任网络、用户标签[1-3]或与项目相关的标签信息等[4-5]。
社交标签可以通过从新的方向反映用户对网络资源的偏好来描述用户选择的类型,即社会化标签反映了用户感兴趣的一些主题,可以利用一些主题偏好比如标签的使用来推断用户的兴趣方向。目前大量关于社会标签系统的研究调查[6-10]已经证实了标签可以很精准地代表用户对网页内容的判断及喜好,也可以很好地对资源进行描述。Heymann等[6]对社会化标签预测进行了研究,发现基于标签的关联规则可以产生非常精确的标签预测;Ramage等[11]采用标签作为一种辅助数据源应用于页面文本和锚文本,用来提高网页自动聚类;Wu等[12]在带有权重的标签社会网中应用了基于扩散的推荐方法来提高推荐系统的精度,然而对是否可以利用社会标签信息来帮助提高推荐质量的研究甚少。因与以往研究工作不同,本文的研究将社会标签信息与信任度相融合来提高社会化推荐的质量,从而有效地解决了推荐系统中的冷启动问题。
信任网络是指由社会网络内部所有存在信任关系的用户所共同构成的一种网络结构。现在,进行社会网络推荐的算法有很多,它们主要以信任关系为基础,但大多数还是偏向于如何进行准确的信任度计算和信任模型的推理。如对用户进行推荐预测时可以使用多种相似度度量方法的线性组合[13]; 基于用户信任关系矩阵的概率分解和传统评分矩阵的概率分解提出了一种新的推荐方法,该方法基于受限关系和概率分解矩阵[14]; 当对用户的兴趣进行建模时,进一步通过辨别与目标用户有相同爱好的朋友来解决恢复信任度的过程[15]; 通过合并多个目标函数,在矩阵分解的框架下解决问题[16]。
为了有效解决社会网络推荐中的冷启动问题,让社会网络推荐变得更加高效,本文提出了一种基于社会标签与信任关系的社交网络推荐方法(Tag-based and trust-based recommendation,TTR),该方法结合社交标签和信任度的社会化推荐方法,在基于概率因式分析的基础上集成了社会信任关系、项目标签信息以及用户项目评分矩阵。将这些维度不同的数据资源通过公共的用户潜在特征空间(或项目潜在特征空间)进行相连接,利用概率矩阵因式分解技术实现降维,从而在获得低维度的用户及项目潜在特征空间的基础上实现高效的社会化推荐。在Epinions和Movielens数据集上的实验结果表明,与现有的基于信任度的社会化推荐及社会标签推荐算法相比,TTR算法的推荐性能更加优越,特别是当用户的评分数据量非常少时,其优势就变得很明显。另外,通过算法的复杂度分析,显示该算法适用于非常大的数据集,因为算法的复杂性和观测数据的数量之间存在线性关系。
1 信任矩阵分解模型信任矩阵分解的基本思想就是对社会网络的信任关系进行分析,从而获得两个分别表示用户和信任关系的低维潜在特征矩阵。通过以上处理,能够完成评分矩阵R向用户特征矩阵U和项目特征矩阵V的转换,这些特征是描述用户和推荐对象的重要因素。为了进一步发掘出潜藏在信任关系之后的用户特征,通过信任关系来提升推荐的准确度,使用信任关系矩阵对目标函数进行限制,将社会关系矩阵和用户评分矩阵在共享用户特征空间上进行联合概率分解,挖掘出评分相近又具有相同兴趣嗜好的信任用户成为邻居用户产生推荐,与之对应的概率图模型如图 1所示。用户信任关系矩阵B可用用户特征矩阵U和信任特征矩阵Q的内积表示;用户-项目评分矩阵R可用用户特征矩阵U和项目特征矩阵V的内积表示。
假设在R中包含m个用户和n个项目,Rij则表示用户ui对项目vj的评分,分解得到的用户特征矩阵用U∈Rl×m表示,用Q∈Rl×m表示分解得到的信任关系特征矩阵,用l表示用户特征个数,列向量Ui, Qj分别表示用户ui和信任矩阵B所对应的潜在特征向量。为了使预测评分UTQ与用户信任关系矩阵B的误差最小,定义信任关系矩阵B的条件概率分布为
$ p\left( {\mathit{\boldsymbol{B}}\left| {\mathit{\boldsymbol{U}},\mathit{\boldsymbol{Q}},\sigma _\mathit{\boldsymbol{B}}^2} \right.} \right) = \prod\limits_{i = 1}^m {\prod\limits_{k = 1}^m {{{\left[ {N\left( {{b_{ij}}\left| {g\left( {\mathit{\boldsymbol{U}}_i^{\rm{T}}{\mathit{\boldsymbol{Q}}_k}} \right)} \right.,\sigma _\mathit{\boldsymbol{B}}^2} \right)} \right]}^{I_{ik}^\mathit{\boldsymbol{B}}}}} } $ | (1) |
式中:N(x|μ, σ2)表示随机变量x服从数学期望为μ、标准方差为σ2的高斯分布;IikB表示指示函数,其取值为0表示用户ui信任uk,取值为1则表示用户ui不信任uk;函数g(x)=1/(1+exp(-x)),其作用是限定信任预测值在[0, 1]之间。为了防止这种情况的发生,假设用户和可靠性矩阵仍然是平均为0的球形高斯先验,即
$ p\left( {\mathit{\boldsymbol{U}}\left| {\sigma _\mathit{\boldsymbol{U}}^2} \right.} \right) = \prod\limits_{i = 1}^m {N\left( {{\mathit{\boldsymbol{U}}_i}\left| {0,\sigma _\mathit{\boldsymbol{U}}^2I} \right.} \right)} $ | (2) |
$ p\left( {\mathit{\boldsymbol{Q}}\left| {\sigma _\mathit{\boldsymbol{Q}}^2} \right.} \right) = \prod\limits_{k = 1}^m {N\left( {{\mathit{\boldsymbol{Q}}_k}\left| {0,\sigma _\mathit{\boldsymbol{Q}}^2I} \right.} \right)} $ | (3) |
通过贝叶斯推荐可得
$ \begin{array}{*{20}{c}} {p\left( {\mathit{\boldsymbol{U}},\mathit{\boldsymbol{Q}}\left| {\mathit{\boldsymbol{B}},\sigma _\mathit{\boldsymbol{B}}^2,\sigma _\mathit{\boldsymbol{U}}^2,\sigma _\mathit{\boldsymbol{Q}}^2} \right.} \right) \propto p\left( {\mathit{\boldsymbol{B}}\left| {\mathit{\boldsymbol{U}},\mathit{\boldsymbol{Q}},\sigma _\mathit{\boldsymbol{B}}^2} \right.} \right)p\left( {\mathit{\boldsymbol{U}}\left| {\sigma _\mathit{\boldsymbol{U}}^2} \right.} \right)p\left( {\mathit{\boldsymbol{Q}}\left| {\sigma _\mathit{\boldsymbol{Q}}^2} \right.} \right) = }\\ {\prod\limits_{i = 1}^m {\prod\limits_{k = 1}^m {{{\left[ {N\left( {{b_{ij}}\left| {g\left( {\mathit{\boldsymbol{U}}_i^{\rm{T}}{\mathit{\boldsymbol{Q}}_k}} \right)} \right.,\sigma _\mathit{\boldsymbol{B}}^2} \right)} \right]}^{I_{ik}^\mathit{\boldsymbol{C}}}}} } \times \prod\limits_{i = 1}^m {N\left( {{\mathit{\boldsymbol{U}}_i}\left| {0,\sigma _\mathit{\boldsymbol{U}}^2I} \right.} \right)} \times \prod\limits_{k = 1}^m {N\left( {{\mathit{\boldsymbol{Q}}_k}\left| {0,\sigma _\mathit{\boldsymbol{Q}}^2I} \right.} \right)} } \end{array} $ | (4) |
将信任矩阵B代入式(4),可得
$ \begin{array}{*{20}{c}} {p\left( {\mathit{\boldsymbol{U}},\mathit{\boldsymbol{V}},\mathit{\boldsymbol{Q}}\left| {\mathit{\boldsymbol{B}},\mathit{\boldsymbol{R}},\sigma _\mathit{\boldsymbol{R}}^2,\sigma _\mathit{\boldsymbol{B}}^2,\sigma _\mathit{\boldsymbol{V}}^2,\sigma _\mathit{\boldsymbol{U}}^2,\sigma _\mathit{\boldsymbol{Q}}^2} \right.} \right) \propto }\\ {p\left( {\mathit{\boldsymbol{R}}\left| {\mathit{\boldsymbol{U}},\mathit{\boldsymbol{V}},\sigma _\mathit{\boldsymbol{R}}^2} \right.} \right)p\left( {\mathit{\boldsymbol{B}}\left| {\mathit{\boldsymbol{U}},\mathit{\boldsymbol{Q}},\sigma _\mathit{\boldsymbol{B}}^2} \right.} \right)p\left( {\mathit{\boldsymbol{U}}\left| {\sigma _\mathit{\boldsymbol{U}}^2} \right.} \right)p\left( {\mathit{\boldsymbol{V}}\left| {\sigma _\mathit{\boldsymbol{V}}^2} \right.} \right)p\left( {\mathit{\boldsymbol{Q}}\left| {\sigma _\mathit{\boldsymbol{Q}}^2} \right.} \right)} \end{array} $ | (5) |
式(5)利用用户自己评论的信息与信任矩阵对用户和信任的潜在特征进行估算,具体的求解过程与标签模型相似,在此就不再展开。
2 融合标签与信任关系的推荐模型基于如何利用用户的社会信任关系进行推荐的总体框架,可以很容易地扩展到融合用户项目评分矩阵与社会标签推荐模型上来。与用户评分相似,具有相似标签的项目信息同样也可以作为推荐的重要来源,因此本节利用相同的因式分解技术对用户项目评分与项目标签进行分解。通过共享的项目特征将用户的矩阵与项目标签信息进行联合,得到如图 2所示的基于标签推荐的概率图模型。其中T表示每个标签的潜在特征,Fjk表示标签,其值为项目vj被标签tk标记的次数。用户潜在特征空间从评分与标签角度反映了用户的喜好,而项目潜在特征空间也可以由项目所收到的评分与标签信息来体现。
与信任矩阵分解模型相似,可以得到
$ \begin{array}{*{20}{c}} {p\left( {\mathit{\boldsymbol{U}},\mathit{\boldsymbol{V}},\mathit{\boldsymbol{T}}\left| {\mathit{\boldsymbol{F}},\mathit{\boldsymbol{R}},\sigma _\mathit{\boldsymbol{R}}^2,\sigma _\mathit{\boldsymbol{F}}^2,\sigma _\mathit{\boldsymbol{V}}^2,\sigma _\mathit{\boldsymbol{U}}^2,\sigma _\mathit{\boldsymbol{T}}^2} \right.} \right) \propto }\\ {p\left( {\mathit{\boldsymbol{R}}\left| {\mathit{\boldsymbol{U}},\mathit{\boldsymbol{V}},\sigma _\mathit{\boldsymbol{R}}^2} \right.} \right)p\left( {\mathit{\boldsymbol{F}}\left| {\mathit{\boldsymbol{T}},\mathit{\boldsymbol{V}},\sigma _\mathit{\boldsymbol{F}}^2} \right.} \right)p\left( {\mathit{\boldsymbol{U}}\left| {\sigma _\mathit{\boldsymbol{U}}^2} \right.} \right)p\left( {\mathit{\boldsymbol{V}}\left| {\sigma _\mathit{\boldsymbol{V}}^2} \right.} \right)p\left( {\mathit{\boldsymbol{T}}\left| {\sigma _\mathit{\boldsymbol{T}}^2} \right.} \right)} \end{array} $ | (6) |
联合用户评分矩阵与项目标签矩阵分解的后验概率值满足
$ \begin{array}{*{20}{c}} {\ln p\left( {\mathit{\boldsymbol{U}},\mathit{\boldsymbol{V}},\mathit{\boldsymbol{T}}\left| {\mathit{\boldsymbol{R}},\mathit{\boldsymbol{F}},\sigma _\mathit{\boldsymbol{R}}^2,\sigma _\mathit{\boldsymbol{F}}^2,\sigma _\mathit{\boldsymbol{T}}^2,\sigma _\mathit{\boldsymbol{U}}^2,\sigma _\mathit{\boldsymbol{V}}^2} \right.} \right) = }\\ { - \frac{1}{{2\sigma _\mathit{\boldsymbol{R}}^2}}\sum\limits_{i = 1}^m {\sum\limits_{j = 1}^n {I_{ij}^\mathit{\boldsymbol{R}}{{\left( {{r_{ij}} - g\left( {\mathit{\boldsymbol{U}}_i^{\rm{T}}{\mathit{\boldsymbol{V}}_j}} \right)} \right)}^2}} } - }\\ {\frac{1}{{2\sigma _\mathit{\boldsymbol{F}}^2}}\sum\limits_{j = 1}^n {\sum\limits_{k = 1}^q {I_{ij}^\mathit{\boldsymbol{F}}{{\left( {{f_{jk}} - g\left( {\mathit{\boldsymbol{V}}_j^{\rm{T}}{\mathit{\boldsymbol{T}}_k}} \right)} \right)}^2}} } - }\\ {\frac{1}{{2\sigma _\mathit{\boldsymbol{U}}^2}}\sum\limits_{i = 1}^m {\mathit{\boldsymbol{U}}_i^{\rm{T}}{\mathit{\boldsymbol{U}}_i}} - \frac{1}{{2\sigma _\mathit{\boldsymbol{V}}^2}}\sum\limits_{j = 1}^n {\mathit{\boldsymbol{V}}_j^{\rm{T}}{\mathit{\boldsymbol{V}}_j}} - \frac{1}{{2\sigma _\mathit{\boldsymbol{T}}^2}}\sum\limits_{k = 1}^q {\mathit{\boldsymbol{T}}_k^{\rm{T}}{\mathit{\boldsymbol{T}}_k}} - \\ \frac{1}{2}\left( {\left( {\sum\limits_{i = 1}^m {\sum\limits_{j = 1}^n {I_{ij}^\mathit{\boldsymbol{R}}} } } \right)\ln \sigma _\mathit{\boldsymbol{R}}^2 + \left( {\sum\limits_{j = 1}^n {\sum\limits_{k = 1}^q {I_{jk}^\mathit{\boldsymbol{F}}} } } \right)\ln \sigma _\mathit{\boldsymbol{F}}^2} \right) - }\\ {\frac{1}{2}\left( {ml\ln \sigma _\mathit{\boldsymbol{U}}^2 + nl\ln \sigma _\mathit{\boldsymbol{V}}^2 + ql\ln \sigma _\mathit{\boldsymbol{T}}^2} \right) + \varepsilon } \end{array} $ | (7) |
式中ε为与参数无关的常数。当式(7)取最大值时,可知项目评分矩阵与标签矩阵最小偏差值可分解相对应的用户特征矩阵、项目特征矩阵和标签特征矩阵。将式(7)简化成为式(8),可将解决最大值的问题转换为解决相对应的式(8)的最小值问题。
$ \begin{array}{*{20}{c}} {L\left( {\mathit{\boldsymbol{R}},\mathit{\boldsymbol{F}},\mathit{\boldsymbol{U}},\mathit{\boldsymbol{V}},\mathit{\boldsymbol{T}}} \right) = \frac{1}{2}\sum\limits_{i = 1}^m {\sum\limits_{j = 1}^n {I_{ij}^\mathit{\boldsymbol{R}}{{\left( {{r_{ij}} - g\left( {\mathit{\boldsymbol{U}}_i^{\rm{T}}{\mathit{\boldsymbol{V}}_j}} \right)} \right)}^2}} } + \\ \frac{{{\lambda _\mathit{\boldsymbol{F}}}}}{2}\sum\limits_{j = 1}^n {\sum\limits_{k = 1}^q {I_{jk}^\mathit{\boldsymbol{F}}{{\left( {{f_{jk}} - g\left( {\mathit{\boldsymbol{V}}_j^{\rm{T}}{\mathit{\boldsymbol{T}}_k}} \right)} \right)}^2}} } + }\\ {\frac{{{\lambda _\mathit{\boldsymbol{U}}}}}{2}\left\| \mathit{\boldsymbol{U}} \right\|_{\rm{F}}^2 + \frac{{{\lambda _\mathit{\boldsymbol{V}}}}}{2}\left\| \mathit{\boldsymbol{V}} \right\|_{\rm{F}}^2 + \frac{{{\lambda _\mathit{\boldsymbol{T}}}}}{2}\left\| \mathit{\boldsymbol{T}} \right\|_{\rm{F}}^2} \end{array} $ | (8) |
式中:λU=σR2/σU2,λV=σR2/σV2,λF=σR2/σF2,λT=σR2/σT2, ‖·‖F2表示Frobenius范数。若求得如式(8)所示的目标函数L的部分最小值,可在Ui,Vj和Tk上通过对所有用户、所有项目和标签来使用梯度下降法来获得,即
$ \begin{array}{*{20}{c}} {\frac{{\partial L}}{{\partial {\mathit{\boldsymbol{U}}_i}}} = \sum\limits_{j = 1}^n {I_{ij}^{\bf{R}}g'\left( {\mathit{\boldsymbol{U}}_i^{\rm{T}}{\mathit{\boldsymbol{V}}_j}} \right)\left( {g\left( {\mathit{\boldsymbol{U}}_i^{\rm{T}}{\mathit{\boldsymbol{V}}_j}} \right) - {r_{ij}}} \right){\mathit{\boldsymbol{V}}_j}} + {\lambda _\mathit{\boldsymbol{U}}}{\mathit{\boldsymbol{U}}_i}}\\ {\frac{{\partial L}}{{\partial {\mathit{\boldsymbol{V}}_j}}} = \sum\limits_{i = 1}^m {I_{ij}^{\bf{R}}g'\left( {\mathit{\boldsymbol{U}}_i^{\rm{T}}{\mathit{\boldsymbol{V}}_j}} \right)\left( {g\left( {\mathit{\boldsymbol{U}}_i^{\rm{T}}{\mathit{\boldsymbol{V}}_j}} \right) - {R_{ij}}} \right){\mathit{\boldsymbol{U}}_i}} + {\lambda _\mathit{\boldsymbol{V}}}{\mathit{\boldsymbol{V}}_j} + \\ {\lambda _\mathit{\boldsymbol{F}}}\sum\limits_{i = 1}^m {I_{jk}^\mathit{\boldsymbol{F}}g'\left( {\mathit{\boldsymbol{V}}_j^{\rm{T}}\mathit{\boldsymbol{T}}} \right)\left( {g\left( {\mathit{\boldsymbol{V}}_j^{\rm{T}}{\mathit{\boldsymbol{T}}_k}} \right) - {f_{jk}}} \right){\mathit{\boldsymbol{T}}_k}} }\\ {\frac{{\partial L}}{{\partial {\mathit{\boldsymbol{T}}_k}}} = {\lambda _\mathit{\boldsymbol{F}}}\sum\limits_{j = 1}^n {I_{jk}^Fg'\left( {\mathit{\boldsymbol{V}}_j^{\rm{T}}{\mathit{\boldsymbol{T}}_k}} \right)\left( {g\left( {\mathit{\boldsymbol{V}}_j^{\rm{T}}{\mathit{\boldsymbol{T}}_k}} \right) - {f_{jk}}} \right){\mathit{\boldsymbol{V}}_j}} + {\lambda _\mathit{\boldsymbol{T}}}{\mathit{\boldsymbol{T}}_k}} \end{array} $ | (9) |
式中:g′(x)为函数g(x)的导数,即g′(x)=exp(x)/(1+exp(x))2;为了减少算法的复杂度,令λU=λV=λT;参数λT用于控制将多少项目的标签信息融入到推荐模型中。算法对于U, V和T的学习方法如下:首先随机初始化U, V和T的取值,然后根据梯度值迭代更新矩阵U, V和T,直至目标函数达到收敛。
算法主要的计算代价在于目标函数L和在矩阵U, V和T的梯度学习上。由于用户-项目评分矩阵R和标签矩阵F都是稀疏矩阵,假设R和F中的非零元素数目分别为ρR和ρF,则目标函数L的计算复杂度为O(ρRl+ρFl);式(9)中梯度∂L/∂Ui,∂L/∂Vj和∂L/∂Tk的计算复杂度分别为O(ρRl+ρFl),O(ρRl)和O(ρFl)。因此算法运行一次总的计算复杂度为O(ρRl+ρFl),这也说明了算法的复杂度与观测数据成线性关系。
3 实验与结果分析 3.1 数据集与评价指标本文研究的社会信任关系类型是有向的,所以选择两个公开的产品评论网站中的数据作为此次实验的数据集:Epinions和MovieLens数据集。在该网站上的用户不仅可以对不同的产品进行评分,还可以对产品进行评论。另外,用户还可以对其他用户对该产品写下的评论进行评价,并将可信用户添加到“信任列表”里。MovieLens数据集拥有众多的社会标签信息,包含了10 000 054条评分数据和95 580条标记数据,是由71 567名用户对10 681部电影标注产生的。本节中使用其中的10M/100M数据集进行测试。两个数据集的统计数据如表 1所示。
MovieLens 10M/100M数据相聚随机选择80%作为训练集,20%作为测试集。每次实验验证都是独立的运行几次,最终将其结果取平均值。实验采用平均绝对误差(Mean absolute error,MAE)和均方根误差(Root mean square error,RMSE)作为系统评估指标,对各个推荐系统的性能进行对比。
MAE为全部单个观测值和算术平均值的偏差的绝对值,其大小与推荐性能成反比,即其值越小,则说明其推荐性能越好,定义为
$ {\rm{MAE}} = \frac{{\sum\nolimits_{i,j} {\left| {{r_{i,j}} - {{\bar r}_{i,j}}} \right|} }}{N} $ | (10) |
式中:ri, j表示用户i为项目j所打的评分; ri, j表示使用推荐算法计算得到的预测评分; N表示要观测评分的个数。
RMSE表示观测值与真值偏差的平方与观测次数N比值的平方根,其大小也与推荐性能成反比,即其值越小,其推荐性能越好,定义为
$ {\rm{RMSE}} = \sqrt {\frac{{\sum\nolimits_{i,j} {{{\left( {{r_{i,j}} - {{\bar r}_{i,j}}} \right)}^2}} }}{N}} $ | (11) |
在TTR推荐模型中,融入用户-项目评分矩阵和标签信息之间的比例大小由参数λT来控制。如果λT取值为0,表示它的推荐只对用户评分矩阵信息依靠来进行;如果λT取无穷大时,表示推荐模型只对项目所被标注的标签信息依赖进行用户喜好的预测。只有联合订阅者自身的评价信息和项目标签信息,推荐效果才最有利。
实验环境的参数为:用户特征矩阵的维度L=10,λU=λV=0.1。训练集比例分别选取10%,30%,50%和80%,图 3给出了当用户特征矩阵维度L=10时对MAE与RMSE在不同比例训练集下的实验结果。由图 3可知,参数λT对算法的推荐性能会产生重要影响,也验证了用户评分矩阵与社会标签的融合将有助于提升推荐性能。随着λT的增大,推荐精准度逐渐提高,但当λT值继续增大时,推荐性能反而随之降低。由图可知,当参数λT的取值为20时,MAE的值最低,算法推荐性能最好,因此将参数λT的取值设为20。
3.3 算法性能对比实验
通过与以下几种算法的对比实验来对本文提出的TTR算法进行验证。
(1) UserMean:使用每个用户为每个项目所打分的平均值来预测用户没有得分项。
(2) ItemMean:使用每个用户为每个项目所打分的平均值来预测用户的评分数据。
(3) 概率矩阵分解(Probabilistic matrix factorization,PMF)[17]:是由Salakhutdinov等提出的一种基于概率的矩阵分解技术。
(4) 非负矩阵分解(Non-negative matrix factorization,NMF)[18]:是由Lee等提出的一种只使用评价矩阵信息的推荐方法。
(5) 奇异值分解(Singular value decomposition, SVD)[19]:通过有效处理评分矩阵中的缺失项来提高推荐系统的性能。
(6) 社会网络矩阵分解(Social matrix factorization, SocialMF)[20]:利用用户兴趣爱好传播进行建模的一种推荐方法,也是本文的研究基础之一。可是该算法没有考虑不可信节点影响信任建模的情况,对用户和好友之间的偏好差异没有限制。
实验中使用的参数设置如下:λT=20;用户特征矩阵的维度L=10;λU=λV=0.1。本文提出的TTR算法最大的贡献是在传统社会推荐算法的基础上融入了社会标签信息,优化了项目属性的构建。为了更进一步验证项目标签比例对算法性能的影响,首先将训练集中按照项目所被标注的标签数量划分为5组,分别是项目标签数量为“0”,“1-5”, “6-10”, “11-20”, “> 21”,取TTR算法在不同训练集上对不同项目标签数量下,以MAE和RMSE作为评测标准进行推荐效果的对比,实验结果如图 4所示。
由图 4可知,本文提出的TTR算法由于考虑了项目标签的信息,因此在推荐精度上有显著提高。随着项目被标注的标签信息增大,推荐系统的质量首先显著提升,但随着标签信息量继续增加至20以上,系统性能趋于稳定。这个结果也是合理的,因为随着标签信息的增加,项目属性被描述得越准确;但当项目标签过多时,将会导致项目描述信息的冗余,最终实验选择项目标签数量为20。
表 2给出了所有算法在Epnions和MovieLens数据集上的对比实验结果。实验分别在潜在特征向量维度为5,10和20三种取值下进行验证。从对比结果可以看出,本文提出的TTR算法在两个数据集上的所有维度取值下性能均优于其他算法。
4 结束语
推荐系统主要以用户历史评分信息为基础,对其喜好进行预测,但是如果当新用户没有任何评分数据或信任关系信息时,推荐系统就无法进行有效的预测,因此冷启动用户是影响推荐系统性能高低的关键因素。社会网络中包含着丰富的标签信息,可以被用于提升社会化推荐的精准度。本文研究的主要贡献在于将社会标签信息与信任关系信息相结合,提出了一种融合社会标签与信任关系的社会网络推荐算法。该算法最大的优势在于对新用户的评分进行了预处理,并且在构建项目属性时加入了项目被标注的标签信息,从而能在一定程度上提高推荐系统的准确性。实验结果表明,将用户信任关系与项目标签信息相融合的推荐方法在平均绝对误差和均方根误差指标上较其他推荐方法有大幅度的提高,特别是对冷启动用户较多的信任网络效果更加明显。由于社会标签信息和信任关系会随着用户兴趣的迁移会不断变化,因此下一步的研究方向是对社会标签及信任关系的动态演化进行分析研究,从而实现更加高效的实时推荐。
[1] |
Zhao W, Guan Z, Liu Z. Ranking on heterogeneous manifolds for tag recommendation in social tagging services[J]. Neurocomputing, 2015, 148: 521-534. DOI:10.1016/j.neucom.2014.07.011 |
[2] |
李亚克, 田青, 高航. 结合类标签关联度的有序核判别回归学习[J]. 数据采集与处理, 2016, 31(3): 532-540. Li Yake, Tian Qing, Gao Hang. Kernel discriminant learning for ordinal regression using label membership[J]. Journal of Data Acquisition and Processing, 2016, 31(3): 532-540. |
[3] |
秦雨, 余正涛, 王炎冰, 等. 基于特征映射的微博用户标签兴趣聚类方法[J]. 数据采集与处理, 2015, 30(6): 1246-1252. Qin Yu, Yu Zhengtao, Wang Yanbing, et al. Micro blog user label interest clustering method based on feature mapping[J]. Journal of Data Acquisition and Processing, 2015, 30(6): 1246-1252. |
[4] |
Ma H, Zhou T C, Lyu M R, et al. Improving recommender systems by incorporating social contextual information[J]. ACM Transactions on Information Systems, 2011, 29(2): 219-230. |
[5] |
Wu H, Pei Y, Li B, et al. Item recommendation in collaborative tagging systems via heuristic data fusion[J]. Knowledge-Based Systems, 2015, 75: 124-140. DOI:10.1016/j.knosys.2014.11.026 |
[6] |
Heymann P, Koutrika G, Garcia-Molina H. Can social bookmarking improve web search[C]//Proceedings of the International Conference on Web Search and Web Data Mining. New York, USA: ACM, 2008: 195-206.
|
[7] |
Li X, Guo L, Zhao Y E. Tag-based social interest discovery[C]//Proceedings of the International Conference on World Wide Web Conference Series. New York, USA: ACM, 2008: 675-684.
|
[8] |
Puglisi S, Parra-Arnau J, Forné J, et al. On content-based recommendation and user privacy in social-tagging systems[J]. Computer Standards & Interfaces, 2015, 41: 17-27. |
[9] |
Gabriel H H, Spiliopoulou M, Nanopoulos A. Summarizing dynamic social tagging systems[J]. Expert Systems with Applications, 2014, 41(2): 457-469. DOI:10.1016/j.eswa.2013.07.071 |
[10] |
Wu Z Y, Zou M. Modeling social tagging using latent interaction potential[J]. Physica A Statistical Mechanics & Its Applications, 2014, 413(11): 125-133. |
[11] |
Ramage D, Heymann P, Manning C D, et al. Clustering the tagged web[C]//International Conference on Web Intelligence, DBLP 2009. Milan, Italy: ACM, 2009: 54-63.
|
[12] |
Wu P, Zhang Z K. Enhancing personalized recommendations on weighted social tagging networks[J]. Physics Procedia, 2010, 3(5): 1877-1885. DOI:10.1016/j.phpro.2010.07.032 |
[13] |
Bobadilla J S, Ortega F, Hernando A, et al. A collaborative filtering approach to mitigate the new user cold start problem[J]. Knowledge-Based Systems, 2012, 26: 225-238. DOI:10.1016/j.knosys.2011.07.021 |
[14] |
印桂生, 张亚楠, 董宇欣, 等. 基于受限信任关系和概率分解矩阵的推荐[J]. 电子学报, 2013, 42(5): 904-911. Yin Guisheng, Zhang Yanan, Dong Yuxin, et al. A constrained trust recommendation using probabilistic matrix factorization[J]. Acta Electronica Sinica, 2013, 42(5): 904-911. |
[15] |
郭磊, 马军, 陈竹敏. 一种信任关系强度敏感的社会化推荐算法[J]. 计算机研究与发展, 2013, 50(9): 1805-1813. Guo Lei, Ma Jun, Chen Zhumin. Trust strength aware social recommendation method[J]. Journal of Computer Research and Development, 2013, 50(9): 1805-1813. |
[16] |
Noel J, Sanner S, Tran K N, et al. New objective functions for social collaborative filtering[C]//Proceedings of the International Conference on World Wide Web. New York, USA: ACM, 2012: 859-868.
|
[17] |
Salakhutdinov R, Mnih A. Probabilistic matrix factorization[C]//Proceedings of the 21st Annual Conference on Neural Information Processing Systems. New York, USA: Curran Associates, 2008: 1257-1264.
|
[18] |
Lee D D, Seung H S. Learning the parts of objects by non-negative matrix factorization[J]. Nature, 1999, 401(6755): 788-791. DOI:10.1038/44565 |
[19] |
Kurucz M, Benczur A. Methods for large scale SVD with missing values[C]//In Proceedings of the KDD Cup and Workshop. New York, USA: ACM, 2007: 31-41.
|
[20] |
Jamali M, Ester M. A matrix factorization technique with trust propagation for recommendation in social networks[C]//Proceedings of the Fourth ACM Conference on Recommender Systems. New York, USA: ACM, 2010: 135-142.
|