文章快速检索     高级检索
  山东大学学报(工学版)  2016, Vol. 46 Issue (3): 65-73  DOI: 10.6040/j.issn.1672-3961.2.2015.080
0

引用本文 

庞俊涛, 张晖, 杨春明, 李波, 赵旭剑. 基于概率矩阵分解的多指标协同过滤算法[J]. 山东大学学报(工学版), 2016, 46(3): 65-73. DOI: 10.6040/j.issn.1672-3961.2.2015.080.
PANG Juntao, ZHANG Hui, YANG Chunming, LI Bo, ZHAO Xujian. Multi-criteria collaborative filtering algorithm based on probabilistic matrix factorization[J]. Journal of Shandong University(Engineering Science), 2016, 46(3): 65-73. DOI: 10.6040/j.issn.1672-3961.2.2015.080.

基金项目

四川省教育厅资助项目(14ZB0113);西南科技大学博士基金资助项目(12zx7116)

作者简介

庞俊涛(1989— ),男,四川通江人,硕士研究生,主要研究方向为机器学习与推荐系统.E-mail:pangjuntaoer@163.com

通讯作者

张晖(1972— ),男, 安徽宿松人,教授,工学博士,主要研究方向为文本挖掘与知识工程.E-mail:zhanghui@swust.edu.cn

文章历史

收稿日期:2015-06-23
网络出版时间:2015-12-18
基于概率矩阵分解的多指标协同过滤算法
庞俊涛1, 张晖2, 杨春明1, 李波1,3, 赵旭剑1     
1. 西南科技大学计算机科学与技术学院, 四川 绵阳 621010;
2. 西南科技大学教育信息化推进办公室, 四川 绵阳 621010;
3. 中国科学技术大学计算机科学与技术学院, 安徽 合肥 230026
摘要: 为解决已有关于多指标评分推荐方法中忽略多指标之间存在相关性的问题,提出一种基于概率矩阵分解的多指标协同过滤算法(multi-criteria collaborative filtering algorithm based on probabilistic matrix factorization, MCPMF)。该算法将多指标评分表示成一个对整体用户和产品产生影响的权重矩阵,并假设该矩阵潜在分布服从高斯分布,其概率密度分布与用户和产品特征矩阵的概率密度分布条件相关。通过概率矩阵分解的方法学习得到用户和产品特征矩阵。在两个真实数据集上的试验结果表明,该方法比只考虑单一综合评分的方法能更加精确地预测用户的综合评分,同时能降低数据稀疏对推荐算法的影响。
关键词: 推荐系统    协同过滤    多指标    概率矩阵分解    
Multi-criteria collaborative filtering algorithm based on probabilistic matrix factorization
PANG Juntao1, ZHANG Hui2, YANG Chunming1, LI Bo1,3, ZHAO Xujian1     
1. School of Computer Science and Technology, Southwest University of Science and Technology, Mianyang 621010, Sichuan, China ;
2. Educational Informationization Office, Southwest University of Science and Technology, Mianyang 621010, Sichuan, China ;
3. School of Computer Science and Technology, University of Science and Technology of China, Hefei 230026, Anhui, China
Abstract: In order to solve the problem that the correlation was neglected among the multi-criteria in the recommendation method of the multi-criteria, a multi-criteria collaborative filtering algorithm based on probabilistic matrix factorization (MCPMF) was proposed. The algorithm represented the multi-criteria as a weight-matrix which has influence on all users and items. The latent distribution of the weight-matrix was assumed to follow Gaussian distribution, and the probability density distribution of the matrix was conditional related to the distribution of user and item latent feature matrix. The user and item feature matrix was learned by probability matrix factorization method. Experimental results on two real datasets showed that the proposed method was more accurate in forecasting the user′s overall rating compared with methods which only considered single overall rating and could reduce the impact of data sparsity to recommendation algorithms.
Key words: recommendation system    collaborative filtering    multi-criteria    probabilistic matrix factorizetion    
0 引言

协同过滤推荐算法中,概率矩阵分解(probabilistic Matrix Factorization,PMF)假设了数据潜在分布,弥补了传统矩阵分解(matrix factorization,MF)方法过拟合的问题,在协同过滤算法中表现较好。已有关于PMF在推荐问题中的研究主要针对单一指标评分,目前还没有关于PMF应用于多指标(Multi-criteria)评分推荐问题的研究。现在很多互联网应用在推荐环境中要求用户反馈评分时给出了多种评分指标[1],如大众点评美食点评中,有综合、环境、服务、口味4项指标评分;淘宝交易完成后对商品的点评中有商品描述、服务态度、发货速度、物流速度的评分;携程旅游景点点评中有综合、景色、趣味、性价比的评分。已有相关研究已经表明:考虑多指标的协同过滤方法能提高推荐精度[2]

多指标推荐问题的研究主要是为了提升推荐精度,发现用户更多的兴趣偏好。常用方法有利用多属性效用理论以及一些线性加权函数来聚合多指标[3-4]。文献[5]利用多指标计算用户或产品每一维指标的相似性,然后通过聚合函数预测综合评分,同时也提出聚类的方法,将综合评分看作因变量,多指标评分看作自变量,然后利用最小二乘回归对多指标评分聚合成一个关于综合评分聚合函数。文献[6]利用支持向量机(support vector machine,SVM)分别对用户和产品建立聚合函数。文献[7]根据聚合思想提出了利用基因遗传的方法构建关于用户偏好的聚合函数。基于聚合的方法虽然能在一定程度上提高预测精度,但往往都忽略了多指标之间的关系,而且基于聚合的方法往往受到训练样本稀疏性的影响。文献[6]证明当训练样本少于指标个数时会造成聚合函数过拟合的可能。还有一些学者将多指标推荐问题看作是多指标决策问题,文献[8-10]利用决策领域已有方法对用户的偏好进行建模来实现多指标的推荐算法。最近越来越多研究者将多指标与聚类方法结合起来提高推荐精度[11],文献[12-14]利用模糊神经网络解决数据稀疏性问题以及用户偏好问题,但是这类方法只考虑了多指标对用户的偏好影响,忽略了多指标对产品的影响。文献[15]提出了针对多指标的概率潜在语义分析(probabilistic latent semantic analysis,PLSA)的方法,该方法很好地提升了预测精度,但也只考虑多指标对用户的影响。

有很多关于PMF模型的相关研究工作。文献[16]提出一种概率稀疏性矩阵分解算法,该方法很好的解释了数据中不同级别噪音的不确定性。文献[17]第一次将概率矩阵分解方法应用于推荐问题中,假设用户(产品)特征向量服从高斯分布。文献[18]提出一种贝叶斯概率矩阵分解的方法,该方法能防止PMF在学习参数过程中容易出现的过拟合问题。文献[19]提出一种新的概率矩阵分解方法,利用核函数将一些外部信息高效的整合进矩阵分解方法中。文献[20]提出一种多相关性概率矩阵分解的方法,但这种方法只适用在图分析领域。

PMF算法虽然具有很好的预测精度,但只针对单一指标,而已有的多指标推荐算法研究大多基于聚合的方法,聚合的时候大多没有考虑多指标之间的相关性。MCPMF算法将多指标引入概率矩阵分解算法中,通过将多指标对全部用户和产品的影响表示成一个权重矩阵,并假设这个权重矩阵的潜在分布服从高斯分布,以及PMF模型中的用户和产品特征矩阵的潜在概率分布都与该权重矩阵的概率分布条件相关,然后通过贝叶斯推断来最大化用户(产品)特征矩阵概率分布,最后再利用最小二乘法学习得到用户(产品)特征矩阵。MCPMF算法具有如下的优点:(1) 将多指标抽象成一个权重矩阵来考虑多指标间的相关性,矩阵每一项代表指标的相互影响度;(2) 权重矩阵考虑的是指标对整体的用户和产品的影响,而不是指标对单个用户和产品的影响,可以避免因为单用户或产品的训练样本过少而造成最后算法过拟合,即能更好的适应数据评分密度较稀疏的情况。

1 概率矩阵分解

PMF是一个概率线性模型,M个用户集(H={Hi|i=1,…,M})对N个产品集(I={Ij|j=1,…,N})的评分记录构成了观察到的评分矩阵RM×N,其中Rij表示用户i对产品j的综合评分,R中的缺失项或0项表示该用户i未对该产品j有过评分行为。R常常可以表示成用户特征矩阵和产品特征矩阵的内积形式,即R=UTV,其中UV分别为用户和产品低秩特征矩阵,URD×M,VRD×N,其中D为用户(产品)特征向量的维度。

图 1 PMF模型 Figure 1 PMF Model

PMF模型假设已经观察到的评分矩阵的条件分布服从高斯分布,如图 1所示。图 1中,Ui,Vj分别为用户特征矩阵和产品特征矩阵,αR的潜在高斯分布的概率密度函数方差,αUαV分别为用户和产品特征矩阵潜在分布的概率密度方差。R的概率密度函数

$P\left( R|U,V,\alpha \right)=\prod\limits_{i=1}^{M}{\prod\limits_{j=1}^{N}{{{\left[ N\left( {{R}_{ij}}|U_{i}^{\text{T}}{{V}_{j}},{{\alpha }^{-1}} \right) \right]}^{{{I}_{ij}}}},}}$

而用户和产品特征向量的先验分布也假设服从高斯分布,概率密度函数表达式分别为:

$P\left( U|{{\alpha }_{U}} \right)=\prod\limits_{i}^{M}{N\left( {{U}_{i}}|0,\alpha _{U}^{-1}I \right),P\left( V|{{\alpha }_{V}} \right)=\prod\limits_{j}^{N}{N\left( {{V}_{j}}|0,\alpha _{V}^{-1}I \right),}}$

式中:N(x|χ,α-1)表示均值为χ方差为α的高斯密度分布函数;Iij为指示函数,当用户i对产品j有评分行为时Iij为1,否则为0。

通过贝叶斯推断可以得到用户和产品的特征向量的后验概率,然后通过求解极大化R的后验概率(Maximum a Posterior,MAP)变形可以得到学习过程中的损失函数

$E=\frac{1}{2}\sum\limits_{i=1}^{M}{\sum\limits_{j=1}^{N}{\left( {{R}_{ij}}-U_{i}^{\text{T}}{{V}_{j}} \right){{I}_{ij}}}}+\frac{{{\lambda }_{U}}}{2}\left\| {{U}_{i}} \right\|_{\text{Fro}}^{2}+\frac{{{\lambda }_{V}}}{2}\left\| {{V}_{i}} \right\|_{\text{Fro}}^{2},$
2 多指标概率矩阵分解

传统针对单一指标评分的矩阵分解方法只考虑了用户和产品的关系[17-18, 21],这里将多指标评分视为用户综合评分的上下文信息,对用户和产品同时产生了影响,并假设用户对产品最后的综合评分与多指标评分条件有关,为此引入了权重矩阵AS×S,表示S个指标对用户和对产品的整体影响权重。扩展针对单一评分的PMF模型以融合多指标矩阵A对综合评分进行预测,该模型如图 2所示,其中Wik表示第k个指标对i产品的影响权重,Wuk表示第k个指标对u用户的影响权重,Ak表示k个对用户和产品的综合权重矩阵,αA表示权重矩阵潜在分布的概率密度函数方差。

图 2 多评分特征概率矩阵分解模型 Figure 2 Multi-rating PMF Model
2.1 多指标评分权重影响计算

计算权重矩阵A的一个关键步骤是考虑多指标对用户(产品)的影响权重。每个指标对用户(产品)的整体权重影响的表达式为:

$\left\{ \begin{align} & {{W}_{k}}\left( U \right)=g\left( \frac{1}{M}\sum\limits_{i=1}^{M}{\frac{\sum\limits_{j\in \text{Ite}{{\text{m}}_{i}}}{{{r}_{ijck}}}}{\sum\limits_{j\in \text{Ite}{{\text{m}}_{i}}}{{{{\hat{r}}}_{ij}}+O}}} \right), \\ & {{W}_{k}}\left( V \right)=g\left( \frac{1}{N}\sum\limits_{j=1}^{N}{\frac{\sum\limits_{i\in \text{Use}{{\text{r}}_{j}}}{{{r}_{ijck}}}}{\sum\limits_{i\in \text{Use}{{\text{r}}_{j}}}{{{{\hat{r}}}_{ij}}+O}}} \right), \\ \end{align} \right.$ (1)

式中:${{{\hat{r}}}_{ij}}$为用户i对产品j的综合评分;rijck为用户i对产品j的第ck个指标评分,其中ck为第k个条件指标;Itemi为用户i的产品集;Userj为产品j的用户集;g(x)=1/(1+e-x)为正则化逻辑斯蒂回归(Logistic Regression)函数,目的是将权重值映射到0~1之间;O为评分范围正则项,因为现实应用环境中,综合评分与多指标评分取值范围可能不一致,为防止多指标评分大于综合评分造成结果溢出,则在分母综合评分上加上O

本文没有考虑多指标对单个用户(产品)的影响,而是考虑多指标对用户(产品)整体的影响,因为考虑多指标对单个用户(产品)的权重影响会受到单个用户(产品)训练样本数的影响,当单个用户(产品)的训练样本数较少的时候(数据集评分密度较稀疏)可能会造成算法最后过拟合的问题。文献[6]已经证明单个用户的评分记录较少会造成聚合函数最后过拟合的问题。所以本文从整体上考虑多指标对用户(产品)的权重影响。

文献[22]已经证明,在多指标的环境中,大多数用户往往倾向于个别指标,而忽略其他指标,假设每个指标对整体用户(产品)的影响相互独立,且它们的潜在分布为正态分布,两种独立的权重影响的联合分布也服从二维标准正态分布,则权重矩阵A的每一项(多指标对用户和产品的整体影响)的计算公式为:

${{A}_{ij}}=f\left( {{w}_{i}},{{w}_{j}} \right)=\frac{1}{2\pi {{\sigma }_{u}}{{\sigma }_{v}}}\text{exp}\left\{ -\frac{1}{2}\left[ \frac{{{\left( {{w}_{i}}-{{\mu }_{U}} \right)}^{2}}}{\sigma _{U}^{2}}+\frac{{{\left( {{w}_{j}}-{{\mu }_{v}} \right)}^{2}}}{\sigma _{v}^{2}} \right] \right\},$ (2)

试中:wi为第i个指标对用户的整体权重影响;wj为第j个指标对产品的整体权重影响;σUσV分别为多指标对用户(产品)权重影响的正态分布的方差;μU,μV分别为多指标对用户(产品)分布的期望。

2.2 多指标概率矩阵分解

传统矩阵分解只考虑了用户-产品的关系,本文考虑了多指标的影响构成用户-产品-多指标的关系,建立模型时分别考虑用户-产品、用户-多指标、产品-多指标的关系。用户-产品的聚类关系仍然采用用户特征向量与产品特征向量的内积得到,而用户(产品)-多指标的聚类关系可以通过用户(产品)与每个指标的相互影响之和来建模,每个指标被刻画成用户和产品的条件因素。用Rij表示用户i对产品j在多指标c1,…,cs条件下的综合评分,用${{\hat{R}}_{ij{{c}_{1}},\cdots ,{{c}_{s}}}}$表示在c1,…,cs条件下预测到的用户i对产品j的综合评分,则

${{\hat{R}}_{ij{{c}_{1}},\cdots ,{{c}_{s}}}}=\bar{r}+U_{i}^{\text{T}}{{V}_{j}}+C,$ (3)

式中:r为训练集R中综合评分均值;C为一个常量正则项参数。

假设观察得到的每个指标评分权重影响服从均值为0的高斯先验分布,则指标权重矩阵A的概率密度分布函数

$P\left( A|{{\alpha }_{A}} \right)=\prod\limits_{k=1}^{S}{N\left( {{A}_{k}}|0,\alpha _{A}^{-1}I \right),}$

式中:Ak为第k个指标对用户和产品的综合权重。把多指标对用户和产品的影响关系考虑进模型,于是可以定义用户-多指标和产品-多指标关系的先验分布的概率函数

$\left\{ \begin{align} & P\left( U|A,\alpha _{U}^{-1},\alpha _{A}^{-1} \right)\propto P\left( U|\alpha _{U}^{-1} \right)P\left( U|A,\alpha _{A}^{-1} \right)= \\ & \prod\limits_{i=1}^{M}{N\left( {{U}_{i}}|0,\alpha _{U}^{-1}I \right)}\times \prod\limits_{i=1}^{M}{N\left( {{U}_{i}}|\sum\limits_{k=1}^{S}{{{U}_{i}}{{A}_{k{{c}_{k}}}},\alpha _{A}^{-1}I} \right)}, \\ & P\left( V|A,\alpha _{V}^{-1},\alpha _{A}^{-1} \right)\propto P\left( U|\alpha _{V}^{-1} \right)P\left( U|A,\alpha _{A}^{-1} \right)= \\ & \prod\limits_{j=1}^{M}{N\left( {{V}_{j}}|0,\alpha _{V}^{-1}I \right)}\times \prod\limits_{j=1}^{M}{N\left( {{U}_{i}}|\sum\limits_{k=1}^{S}{{{U}_{i}}{{A}_{k{{c}_{k}}}},\alpha _{A}^{-1}I} \right)}, \\ \end{align} \right.$

通过贝叶斯推断(后验概率等于先验概率乘似然项)来获得用户U、产品V分布的后验概率

$\begin{align} & P\left( U,V|R,A,{{\alpha }^{-1}},\alpha _{U}^{-1},\alpha _{V}^{-1},\alpha _{A}^{-1} \right)\propto \\ & P\left( R|U,V,{{\alpha }^{-1}} \right)P\left( U|A,\alpha _{U}^{-1},\alpha _{A}^{-1} \right)P\left( V|A,\alpha _{V}^{-1},\alpha _{A}^{-1} \right)= \\ & \prod\limits_{i=1}^{M}{\prod\limits_{j=1}^{N}{{{\left[ N\left( {{R}_{ij}}|U_{i}^{\text{T}}V,{{\alpha }^{-1}} \right) \right]}^{{{I}_{ij}}}}\times }} \\ & \prod\limits_{i=1}^{M}{N\left( {{U}_{i}}|0,\alpha _{U}^{-1}I \right)\times \prod\limits_{j=1}^{N}{N\left( {{V}_{j}}|0,\alpha _{V}^{-1}I \right)}}\times \\ & \prod\limits_{i=1}^{M}{N\left( {{U}_{i}}|\sum\limits_{k=1}^{S}{{{U}_{i}}{{A}_{k{{x}_{k}}}},\alpha _{A}^{-1}I} \right)\times } \\ & \prod\limits_{j=1}^{N}{N\left( {{V}_{j}}|\sum\limits_{k=1}^{S}{{{V}_{j}}{{A}_{k{{c}_{k}}}},\alpha _{A}^{-1}I} \right),} \\ \end{align}$ (4)

为了便于学习模型参数,将式(4)通过求取极大后验概率(MAP)变形为:

$\begin{align} & \max \ln P\left( {{U}_{,}}V|R,A,{{\alpha }^{-1}},\alpha _{U}^{-1},\alpha _{V}^{-1},\alpha _{A}^{-1} \right)\propto - \\ & \frac{1}{2}\sum\limits_{i=1}^{M}{\sum\limits_{j=1}^{N}{{{\left( {{R}_{ij}}-{{{\hat{R}}}_{ij}} \right)}^{2}}-\frac{1}{2\alpha _{U}^{-1}}\sum\limits_{i=1}^{M}{U_{i}^{\text{T}}U-}}}\frac{1}{2\alpha _{V}^{-1}}\sum\limits_{j=1}^{N}{V_{i}^{\text{T}}V-} \\ & \frac{1}{2\alpha _{A}^{-1}}\sum\limits_{i=1}^{M}{\left[ {{\left( {{U}_{i}}-\sum\limits_{k=1}^{S}{U_{i}^{\text{T}}U} \right)}^{\text{T}}}\left( {{U}_{i}}-\sum\limits_{k=1}^{S}{U_{i}^{\text{T}}U} \right) \right]}- \\ & \frac{1}{2\alpha _{A}^{-1}}\sum\limits_{j=1}^{N}{\left[ {{\left( {{V}_{j}}-\sum\limits_{k=1}^{S}{V_{i}^{\text{T}}V} \right)}^{\text{T}}}\left( {{V}_{i}}-\sum\limits_{k=1}^{S}{V_{j}^{\text{T}}V} \right) \right]} \\ \end{align}$ (5)

为了学习得到特征矩阵U、V,忽略式(5)中与U、V无关的项目,则式(5)等价于最小化公式

$\begin{align} & \min \left( \text{error} \right)=\frac{1}{2}\sum\limits_{i=1}^{M}{\sum\limits_{j=1}^{N}{{{\left( {{R}_{ij}}-{{{\hat{R}}}_{ij}} \right)}^{2}}+\frac{{{\lambda }_{U}}}{2}\sum\limits_{i=1}^{M}{\left\| {{U}_{i}} \right\|_{\text{Fro}}^{2}+}}} \\ & \frac{{{\lambda }_{v}}}{2}\sum\limits_{j=1}^{N}{\left\| {{V}_{j}} \right\|_{\text{Fro}}^{2}}+\frac{{{\lambda }_{A}}}{2}\sum\limits_{i=1}^{M}{\left\| {{U}_{i}}-\sum\limits_{k=1}^{S}{U_{i}^{\text{T}}{{A}_{k{{c}_{k}}}}} \right\|_{\text{Fro}}^{2}}+ \\ & \frac{{{\lambda }_{A}}}{2}\sum\limits_{j=1}^{N}{\left\| {{V}_{i}}-\sum\limits_{k=1}^{S}{V_{j}^{\text{T}}{{A}_{k{{c}_{k}}}}} \right\|_{\text{Fro}}^{2}}, \\ \end{align}$ (6)

式中:${{\lambda }_{U}}=\frac{{{\alpha }^{-1}}}{\alpha _{U}^{-1}},{{\lambda }_{V}}=\frac{{{\alpha }^{-1}}}{\alpha _{V}^{-1}},{{\lambda }_{A}}=\frac{{{\alpha }^{-1}}}{\alpha _{A}^{-1}}$,都是正则项固定参数;‖·‖Fro表示矩阵的Frobernius范数。式(6)也表示了预测值和真实值的误差平方和形式,问题最后变成一个最小化误差的优化问题,通过梯度下降法就可以学习得到用户(产品)特征矩阵UV

根据模型的详细描述,下面给出了具体的算法描述:

输入:训练集合R,测试集T

输出:学习得到的用户(产品)特征矩阵U(V)

(1) 初始化模型参数、用户特征矩阵和产品特征矩阵

(2) 遍历所有训练集R,利用公式(1)、(2)计算多指标评分的影响权重矩阵A

Repeat

(3) for each observed

 Sample(u,i,rui0,rui1,rui2,…) in R do

(4) computer with Eq.(3) and Eq.(6);

(5) ${{e}_{ui}}={{r}_{ui}}-{{\hat{r}}_{ui}}$;

(6) UuUu+learnRate*(eui*ViUu)

(7) ViVi+learnRate*(eui*UuVi)

(8) end for

(9) 计算本次迭代误差currErr和上一次迭代误差preErr

(10) Until reach loop times or currErr>preErr

3 试验结果与分析 3.1 评估标准

试验采用了推荐领域主流的评价指标平均绝对误差(mean absolute error,MAE)。MAE定义式为:

$\text{MAE=}\frac{\sum\limits_{r\in {{\text{R}}_{\text{test}}}}{\left| r-\hat{r} \right|}}{N\left( {{R}_{\text{test}}} \right)},$

式中:r为测试集中用户综合评分;$\dot{r}$为模型预测的综合评分;Rtest为测试集:N(Rtest)为测试集的用例个数。MAE的值越小效果越好,表示模型综合评分预测精度越高。

3.2 数据集介绍

试验过程中使用到大众点评美食点评和携程旅游景点点评2个真实互联网数据集,原始数据集基本信息如表 1所示。其中评分密度用来表示数据集稀疏程度。

表 1 原始数据集基本信息 Table 1 Basic information about the original dataset

为了验证MCPMF算法的效果,试验过程划分了数据集中每个用户至少有2条评分记录的数据作为试验1、2的数据集,试验3为了验证数据稀疏性对算法的影响,将原始数据集划分为每个用户评分记录数在(0,10),[10,50),[50,100),[100,∞)4种不同区间范围的数据集,统计划分结果数据集信息如表 2所示。

表 2 试验数据集统计 Table 2 Statistical information of experimental dataset
3.3 试验结果

在模型训练过程中,统一设置了部分算法每次训练的学习率为经验值0.05,迭代次数均为200,其他参数见试验过程描述,试验结果均采用5折交叉法验证结果。

3.3.1 参数对算法的影响(试验1)

试验中,模型参数表现为两类,一是多指标评分的权重影响计算用到的参数,二是模型训练时候的参数。在计算多指标权重影响时,假设多指标对用户(产品)的权重影响服从正态分布,期望(方差)都相同,取经验值μU=μV=μ=1,σU=σV=σ=0.1,在模型训练中参数取λU=λV=λA=λ,然后动态考虑λ=0.1、0.4、0.8、1.2、2.0、5.0、10.0时对MAE的影响。试验过程中用户(产品)特征向量维度D取10,图 3展示了参数λ对本文算法MAE的影响变化。

图 3 参数λ对模型的影响 Figure 3 The influence of parameter λ to the model

图 3可以看出:λ对本文的算法具有一定程度的影响,当λ>1.2时参数对模型影响趋于稳定;λ=0.8的时候,模型在两种数据集下明显获得了较低的误差。虽不能确定在λ=0.8是否同时获得最优效果,因为两种真实数据集存在一定的差异,但可以肯定λ的最优值0.4~1.2。因此下面试验中,统一取λ=0.8为最优值。

3.3.2 不同特征维度对算法的影响(试验2)

为了验证提出的算法的实际效果,选择以下5个具有代表性的算法模型与之对比:

(1) 经典的正则化奇异值分解(Regularization Singular Value Decomposition,regSVD)算法;

(2) 基于概率矩阵分解的算法PMF17],该算法在传统的SVD基础上基于概率思想考虑了噪音的影响;

(3) 在PMF模型上改进的贝叶斯概率矩阵分解模型(Bayesian Probabilistic Matrix Factorization,BPMF)[18],该算法弥补了PMF需要设置太多人为学习参数的不足;

(4) 针对多指标推荐问题,文献[15]采用的基于概率潜在语义分析(PLSA)的全高斯概率潜在语义分析算法(Full Gaussian Probabilistic Latent Semantic Analysis,FGPLSA);

(5) 为了对比考虑多指标FGPLSA算法效果,同时选择了PLSA模型算法做对比。

试验过程中分别取D=2、5、10、15、20,算法的其他参数固定为最优情况下的值。针对多指标推荐的算法只选择FGPLSA进行对比,这是因为现有的针对多指标评分大都基于聚合和最近邻的方法进行推荐预测,而本文采用的是矩阵分解的思想,通常矩阵分解的方法比最近邻方法的预测精度高,采用不同类型方法需要考虑的参数较多,对了方便对比试验,选择了同样基于概率生成和分类思想算法FGPLSA和几种不同的矩阵分解方法。表 3记录试验过程中特征向量在不同维度下各算法MAE的平均值,图 45展示了各算法在不同特征维度D下MAE的变化情况。

表 3 不同算法不同维度下的MAE Table 3 MAE on different algorithms under the different dimensions
图 4 不同特征维度对算法的影响(美食) Figure 4 The influence of different feature dimensions on algorithms (food)
图 5 不同特征维度对算法的影响(景点) Figure 5 The influence of different feature dimensions on algorithms (tourist attraction)

试验结果表明:相对于其他算法,MCPMF在两种数据集下在不同特征维度下能获得较低的MAE。虽然特征维度变化对RegSVD的影响不是特别明显,但是预测精度也不高。相对于PLSA方法,FGPLSA能明显提高预测精度,但是预测精度比其他几种基于矩阵分解的方法预测精度要低,但从另外一方面也证明了利用多指标评分确实能提高预测精度。在美食数据集中特征维度大于10对BPMF影响特别明显,这是因为BPMF模型采用了马尔科夫蒙特卡洛的方法逼近评分矩阵,这种方法的缺陷是难以确定马尔科夫链何时收敛到所需的分布,这里受到固定迭代次数200、特征维度增加、数据集潜在分布不同等因素的影响,使得更难以学习得到收敛时的分布,这也就可能造成BPMF模型在不同数据集中不同维度的时候表现效果不一样。

3.3.3 数据稀疏性对算法的影响(试验3)

为了对比数据稀疏性对算法的影响,仍与试验2选择的几种算法对比,试验数据集如表 2所示。可以看出,2种数据集90%以上用户的产品评分数都小于10个,即0~10区间的数据集是非常稀疏的,但是数据量(用户数和产品数)比较大。试验中特征维度按照试验1、2中最优解取值,即λ=0.8,取美食特征维度D=10,景点特征维度D=5。最后绘制了几种算法在不同数据集下MAE均值变化情况如图 67所示。

图 6 不同数据稀疏性对算法的影响(美食) Figure 6 The influence of different data sparse on algorithm (food)
图 7 不同数据稀疏性对算法的影响(景点) Figure 7 The influence of different data sparse on algorithm (tourist attraction)

试验3表明,MCPMF、PMF算法对数据的稀疏性都有很好的适应性,但MCPMF算法能获得更高的预测精度。当评分比较密集的时候,特别是单个用户评分产品数大于100后,MCPMF与同样基于概率矩阵分解的PMF、BPMF的预测效果不太明显,这是因为MCPMF模型在计算多指标权重时和用户(产品)的数量有很大关系,而此时数据集评分密度虽然很大,但是包含的用户(产品)数比较少,这样计算出的多指标权重不准确,所以MCPMF模型的预测效果退化到接近PMF模型。RegSVD在数据稀疏的情况下表现比较差,因为它没有考虑数据噪音和数据分布。同样BPMF在数据稀疏的情况下的表现也是差强人意,因为BPMF采用的Gibbs采样[18]方法在数据稀疏的情况下难以获得所需要的蒙特卡洛链的分布。

4 结语

本研究提出了一种针对多指标推荐系统的概率矩阵分解算法,通过假设用户(产品)特征向量会受到多指标的条件影响,将多指标影响权重融入概率矩阵模型中构成MCPMF模型,同时在计算多指标权重时又考虑了多指标的相互影响关系,从而提高推荐评分预测精度。在采集到的大众美食点评和携程旅游景点点评2个真实数据集上的试验表明,与传统针对单一指标模型算法相比,MCPMF模型的预测精度有一定的提高,而与针对多指标的FGPLSA算法相比也有提高,并且能降低数据稀疏性带来的影响。但MCPMF算法只考虑了多指标对用户(产品)的整体影响,以及包含了太多的人为经验参数,在后面的工作中,将考虑多指标对单用户(产品)的影响,同时考虑利用贝叶斯矩阵分解来研究多指标的推荐问题。

参考文献
[1] ADOMAVICIUS G, TUZHILIN A. Toward the next generation of recommender systems: a survey of the state-of-the-art and possible extensions[J]. Knowledge and Data Engineering, IEEE Transactions on,2005, 17 (6) : 734-749. (0)
[2] LAKIOTAKI K, TSAFARAKIS S, MATSATSINIS N. UTA-Rec: a recommender system based on multiple criteria analysis[C]//Proceedings of the 2008 ACM Conference on Recommender Systems. Lausann, Switzerland: ACM, 2008:219-226. (0)
[3] MANOUSELIS N, COSTOPOULOU C. Analysis and classification of multi-criteria recommender systems[J]. World Wide Web,2007, 10 (4) : 415-441. (0)
[4] MANOUSELIS N, COSTOPOULOU C. Experimental analysis of design choices in multiattribute utility collaborative filtering[J]. International Journal of Pattern Recognition and Artificial Intelligence,2007, 21 (2) : 311-331. (0)
[5] ADOMAVICIUS G, KWON Y O. New recommendation techniques for multicriteria rating systems[J]. Intelligent Systems, IEEE,2007, 22 (3) : 48-55. (0)
[6] JANNACH D, KARAKAYA Z, GEDIKLI F. Accuracy improvements for multi-criteria recommender systems[C]//Proceedings of the 13th ACM Conference on Electronic Commerce. Valencia, Spain: ACM, 2012:674-689. (0)
[7] HWANG C S. Genetic algorithms for feature weighting in multi-criteria recommender systems[J]. Journal of Convergence Information Technology,2010 (5) : 126-136. (0)
[8] TSOUKIàs A, MATSATSINIS N, LAKIOTAKI K. Multi-criteria user modeling in recommender systems[J]. IEEE Intelligent Systems,2011, 26 (2) : 64-76. (0)
[9] LAKIOTAKI K, TSAFARAKIS S, MATSATSINIS N. UTA-Rec: a recommender system based on multiple criteria analysis[C]//Proceedings of the 2008 ACM Conference on Recommender Systems. Lausann, Switzerland: ACM, 2008:219-226. (0)
[10] MANOUSELIS N, COSTOPOULOU C. Analysis and classification of multi-criteria recommender systems[J]. World Wide Web,2007, 10 (4) : 415-441. (0)
[11] NILASHI M, JANNACH D, IBRAHIM O, et al. Clustering-and regression-based multi-criteria collaborative filtering with incremental updates[J]. Information Sciences,2015, 293 (293) : 235-250. (0)
[12] NILASHI M, IBRAHIM O, ITHNIN N. Multi-criteria collaborative filtering with high accuracy using higher order singular value decomposition and Neuro-Fuzzy system[J]. Knowledge-Based Systems,2014, 60 (2) : 82-101. (0)
[13] NILASHI M, IBRAHIM O B, ITHNIN N, et al. A multi-criteria recommendation system using dimensionality reduction and Neuro-Fuzzy techniques[J]. Soft Computing,2015, 19 (11) : 3173-3207. (0)
[14] 张付志, 常俊风, 王栋. 基于 Widrow-Hoff 神经网络的多指标推荐算法[J]. 模式识别与人工智能,2011, 24 (2) : 233-242.
ZHANG Fuzhi, CHANG Junfeng, WANG Dong. Multi-riteria recommendation algorithm based on widrow-hoff neural network[J]. Pattern Recognition and Artificial Intelligence,2011, 24 (2) : 233-242. (0)
[15] ZHANG Y, ZHUANG Y, WU J, et al. Applying probabilistic latent semantic analysis to multi-criteria recommender system[J]. Ai Communications,2009, 22 (2) : 97-107. (0)
[16] DUECK D, FREY B, DUECK D, et al. Probabilistic sparse matrix factorization . (2004-09-28) . http://www.researchgate.net/publication/240191894_Probabilistic_Sparse_Matrix_Factorization. (0)
[17] MNIH A, SALAKHUTDINOV R. Probabilistic matrix factorization[C]//Advances in Neural Information Processing Systems. Vancouver, Canada: MIT Press, 2007:1257-1264. (0)
[18] SALAKHUTDINOV R, MNIH A. Bayesian probabilistic matrix factorization using Markov chain Monte Carlo[C]//Proceedings of the 25th International Conference on Machine Learning. Helsinki, Finland: ACM, 2008: 880-887. (0)
[19] ZHOU T, SHAN H, BANERJEE A, et al. Kernelized probabilistic matrix factorization: exploiting graphs and side information[C]. SDM 2012.California, USA: SDM, 2012, 12:403-414. (0)
[20] LI Z, LIU J, ZHU X, et al. Image annotation using multi-correlation probabilistic matrix factorization[C]//Proceedings of the International Conference on Multimedia. Firenze, Italia: ACM, 2010:1187-1190. (0)
[21] PATEREK A. Improving regularized singular value decomposition for collaborative filtering[C]//Proceedings of KDD Cup and Workshop. California, USA: ACM, 2007, 2007: 5-8. (0)
[22] FUCHS M, ZANKER M. Multi-criteria Ratings for Recommender Systems: An Empirical Analysis in the Tourism Domain[J]. Lecture Notes in Business Information Processing,2012, 123 : 100-111. (0)