文章快速检索     高级检索
  华东师范大学学报(自然科学版)  2018 Issue (4): 120-128, 146  DOI: 10.3969/j.issn.1000-5641.2018.04.012
0

引用本文  

张巍, 郑骏, 逄娇娜, 等. 基于自相似矩阵的协同过滤推荐算法[J]. 华东师范大学学报(自然科学版), 2018, (4): 120-128, 146. DOI: 10.3969/j.issn.1000-5641.2018.04.012.
ZHANG Wei, ZHENG Jun, PANG Jiao-na, et al. Collaborative filtering recommendation algorithm based on the self-similarity matrix[J]. Journal of East China Normal University (Natural Science), 2018, (4): 120-128, 146. DOI: 10.3969/j.issn.1000-5641.2018.04.012.

第一作者

张巍, 男, 硕士研究生, 主要研究方向为Web开发及应用.E-mail:fj1weiwei@163.com

通信作者

郑骏, 男, 教授, 博士生导师, 主要研究方向为, Web, 开发及应用.E-mail:jzheng@cc.ecnu.edu.cn

文章历史

收稿日期:2017-07-12
基于自相似矩阵的协同过滤推荐算法
张巍, 郑骏, 逄娇娜, 白玥     
华东师范大学 计算机科学与软件工程学院, 上海 200062
摘要:针对推荐系统中存在的噪声问题,提出了一种基于自相似矩阵的协同过滤推荐算法.文中的自相似矩阵选取为原始矩阵,滑动窗口选取为评分值的行向量和列向量.通过建立评分值与自相似矩阵之间的线性关系,对原始评分矩阵进行预处理,得到新的评分矩阵.新评分矩阵既保留了原始矩阵的评分信息,同时也削弱了噪声数据对推荐系统的影响.实验表明,通过对原始矩阵的预处理,有效缓解了噪声数据在评分矩阵中所起的作用,提高了推荐系统的性能.
关键词推荐系统    协同过滤    噪声数据    自相似矩阵    预处理    
Collaborative filtering recommendation algorithm based on the self-similarity matrix
ZHANG Wei, ZHENG Jun, PANG Jiao-na, BAI Yue    
School of Computer Science and Software Engineering, East China Normal University, Shanghai 200062, China
Abstract: A collaborative filtering recommendation algorithm based on self-similar matrices is put forward for the noise problem in the proposed system. In this paper, self-similar matrices are selected as primitive matrices, and the sliding window is chosen as the row vector and column vector of the score. The new score matrix is obtained to preprocess the original scoring matrix to establish the linear relationship between the scoring value and the self-similar matrices. The new scoring matrix preserves the original matrix of scoring information, while weakening the impact of noise data on the recommended system. Experiments show that the pre-processing of the original matrix effectively alleviates the impact of noise in the scoring matrix and improves the performance of the proposed system.
Key words: recommendation system    collaborative filtering    noise data    self-similarity matrix    pre-processing    
0 引言

随着大数据时代的到来, 互联网中的信息量爆炸式增长, 人们难以在海量数据中找到需要的信息.个性化推荐系统作为新时代的产物, 在满足用户需求的条件下, 根据用户的历史行为、评分信息等为用户提供推荐服务.推荐系统广泛应用于电子商务平台、社交网站和新闻网站等领域, 并在这些领域取得了显著效果. Amazon称其盈利的20%$\sim$30%来自推荐系统, Alibaba于2015年举办推荐算法大赛, 该比赛以真实的行为数据、位置信息为基础, 选取推荐内容更精准的推荐算法.

协同过滤是推荐系统中应用最广泛的技术, 通过计算用户或者物品之间的相似度, 找到最相似的邻居, 为用户进行推荐.矩阵分解作为降维和去噪的常用手段, 通常应用于推荐系统中.在2006年Netflix举办的数据建模比赛中, 基于SVD (Singular Value Decomposition)的推荐算法[1]获得了比赛的冠军; Cacheda等[2]和Guo等[3]通过结合用户隐式信息和显式信息提出了SVD的改进算法, 使推荐系统的性能得到进一步提升.

目前, 推荐系统仍面临着许多问题:数据稀疏性[4]、冷启动[5]和噪声[6]等.针对这些问题, Xue等[7]通过聚类算法将用户或者物品分成若干具有相似性质的类, 以解决数据稀疏问题; Zhang等[8]提出了用户--项目--标签三元组的推荐算法, 用来解决冷启动问题; Amatriain等[6]利用项目排序和评级时间等因素分析了显式反馈中的噪声问题; Unger等[9]利用PCA和深度学习方法对隐式信息进行了去噪和降维.本文要解决的噪声数据主要包括两个部分:一是商家为了追求利益, 雇佣水军对商品进行过高的评分; 二是用户的随意、不负责任的评分.这两种噪声会给推荐系统带来不真实的数据, 在一定程度上影响推荐系统的性能.针对这些问题, 国内外学者开展了广泛研究. Chirita等[10]使用统计特征来检测恶意攻击者; Bilge A等[11]采用K-means聚类的思想, 将正常用户和恶意用户分为2个组, 对恶意用户的噪声数据进行处理; Liu等[12]采用信息熵原理, 过滤掉信息熵低的用户, 再结合评分的时效性, 为用户作出更精确的推荐.

本文提出的基于自相似矩阵的推荐算法, 旨在建立评分值与自相似矩阵之间的线性关系, 利用自相似矩阵中的信息特征, 对原始评分矩阵进行预处理, 去除原始评分矩阵中的噪声数据, 再利用得到的预处理矩阵, 与传统的协同过滤方法结合对未评分项进行预测.通过实验表明, 这种方法有效地去除了评分矩阵中的噪声数据, 提高了推荐系统的性能.

本文第1节给出问题的定义及相关工作, 第2节详细介绍本文提出的方法, 第3节针对本文提出的算法进行实验验证, 并与传统方法进行比较, 第4节对本文所做工作进行了总结与展望.

1 问题定义及相关工作

本文用$m$个用户集合$U(U_1, U_2, \cdots, U_m)$$n$个物品集合$I(I_1, I_2, \cdots, I_n)$来表示评分矩阵.则评分矩阵$R_{m\times n}$为:

表 1 用户评分表 Tab.1 User rating table

其中, 矩阵的$m$行表示有$m$个用户, $n$列表示$n$个物品, $r_{ij}$表示用户$i$对物品$j$的评分, 评分的高低代表用户的偏好程度, 一般为1-5分.

1.1 相似度计算

相似度计算是用来计算用户之间或者物品之间的相似度的.下面以用户相似度计算为例, 设两个用户可用向量$A_i=(r_{i1}, r_{i2}, \cdots, r_{in})$$A_j=(r_{j1}, r_{j2}, \cdots, r_{jn})$表示, $r$代表用户的评分, 这里假设$n$个评分$r$都不为0, 则

(1) 标准的余弦相似度:

$ \begin{align} {\rm sim}(A_{i}, A_{j})=\dfrac{\sum\limits^{n}_{c=1}(r_{ic}\times r_{jc})}{\sqrt{\sum\limits^{n}_{c=1}(r_{ic})^2}\times \sqrt{\sum\limits^{n}_{c=1}(r_{jc})^2}}. \end{align} $ (1)

(2) 修正的余弦相似度, 在标准的余弦相似度的基础上, 通过用户原始评分减去用户对所有物品评分的平均值这一做法来修正了不同用户存在不同评分尺度的偏差的问题.

$ \begin{align} {\rm sim}(A_{i}, A_{j})=\dfrac{\sum\limits^{n}_{c=1}(r_{ic}-\overline{r}_\imath)\times (r_{jc}-\overline{r}_\jmath)}{\sqrt{\sum\limits^{n}_{c=1}(r_{ic}-\overline{r}_\imath)^2}\times \sqrt{\sum\limits^{n}_{c=1}(r_{jc}-\overline{r}_\jmath)^2}}. \end{align} $ (2)

其中$\overline{r}_\imath$$\overline{r}_\jmath$分别为用户$i$对所有物品评分的平均值和用户$j$对所有物品评分的平均值.

(3) 改进的余弦相似度, 修正后的余弦相似度的计算基于两个用户之间的共同评分项目, 当两个用户的共同评分项目较少时, 该方法存在一定的偶然性. Ma等[13]提出了影响性权重的设置, 定义用户$U_{i}$$U_{j}$之间的共同评分项目$I'=I_{U_{i}}\bigcap I_{U_{j}}$, 通过设置阈值$\gamma$, 与$I'$作比较.

$ \begin{align} {\rm sim}'(A_{i}, A_{j})=\dfrac{\min (|I'|, \gamma)}{\gamma}\times {\rm sim}(A_{i}, A_{j}). \end{align} $ (3)

改进后的${\rm sim}'(A_{i}, A_{j})$仍然落在[0, 1]区间内, 如果用户$i$和用户$j$的共同评分项目较多的话, 则$|I'|>\gamma$, $\min (|I'|, \gamma)=1$, 那么${\rm sim}'(A_{i}, A_{j})={\rm sim}(A_{i}, A_{j})$, 相似度大小与修正的余弦相似度大小一样, 如果共同评分项少, 则用户之间的相似度减小.这种方法避免了因为共同评分项目少而出现的偶然性问题.

基于之前的分析, 本文采用改进的余弦相似度计算方法.

1.2 矩阵分解(MF)

大多数情况下, 数据集中只有一部分携带了整个数据集的信息, 其他的多为噪声和冗余数据.矩阵分解作为推荐系统常用的手段之一, 通过将原始评分矩阵分解成两个矩阵乘积的形式, 学习用户--项目交互特征. MF的一般形式如下.

$ \begin{align} y_{ui}=q^{\rm T}_{i}p_{u}, \end{align} $ (4)

其中, $y_{ui}$表示预测评分, $p_{u}$表示用户潜在向量, $q_i$表示项目潜在向量.通过最小化预测评分$y_{ui}$与真实评分$r_{ui}$得到目标函数.

$ \begin{align} \sum(r_{ui}-q^{\rm T}_{i}p_{u})^2+\lambda (|q_i|^2+|p_{u}|^2), \end{align} $ (5)

其中, $\lambda (|q_i|^2+|p_{u}|^2)$为正则项, 避免数据过拟合.对该目标函数, 通常采用的优化方法有随机梯度下降和交叉最小二乘法.

2 基于自相似矩阵的协同过滤推荐算法

在评分矩阵中, 对于大部分的评分值, 推荐系统可以认为用户$u$对物品$i$的评分与该用户对所有物品的评分以及所有用户对该物品的评分之间存在关联性.另外, 存在极少的评分值不满足上述条件, 这些评分值被认为是系统的噪声数据.

传统的推荐算法没有考虑噪声数据对推荐系统的影响, 本文提出的基于自相似矩阵的推荐算法, 旨在建立评分值与自相似矩阵之间的线性关系, 弱化噪声数据对推荐系统的影响.自相似矩阵中包含该矩阵的全局特性, 对于评分矩阵中的每个评分点, 只需要利用自相似矩阵中的部分特性便可以判断该点是否为噪声点, 于是引入滑动窗口的概念, 滑动窗口指以矩阵中的评分点与其周围邻居点组成的区域.

为了自相似矩阵能充分反映原始矩阵的特性, 自相似矩阵可以选取拥有原始矩阵中全部用户和项目的更完整评分集, 比如小型的在线观看电影网站可以借鉴大型网站中的评分集.自相似矩阵也可以选取为原始评分集.为了让评分点充分利用自相似矩阵中的局部特性, 滑动窗口可以选取为以某个评分点为中心的3$\times$3、4$\times$4等的矩形窗口, 这种选择方法需要先对评分用户和评分物品进行聚类, 让属于同一类的用户和物品在评分矩阵中相邻.滑动窗口也可以选取某个评分点的对应矩阵中的行向量、列向量.

本文中的自相似矩阵选取为原始矩阵, 滑动窗口选取为评分点的行向量和列向量.这种做法可以充分考虑基于该评分点的所有用户对该物品的评分和该用户对所有物品的评分对该评分值的影响.利用行向量求出的评分为用户倾向评分, 利用列向量的求出的评分为物品倾向评分, 通过改变行向量和列向量的影响系数, 得到最终评分, 遍历评分矩阵中的每个评分点, 便得到最终预处理矩阵.

2.1 定义

本文所提出的基于自相似矩阵的协同过滤算法旨在在原始评分矩阵、自相似矩阵和输出矩阵之间建立线性平移变换过程, 通过该过程区分正常数据和噪声数据, 弱化噪声对未评分项的影响, 从而达到提高推荐系统性能的目的.

假设输出矩阵$Y$是自相似矩阵$M$以评分点$k$为中心的滑动窗口$h_k$的线性变换:

$ \begin{align} y_n=w_km_n+b_k, \quad \forall_n\in h_k. \end{align} $ (6)

其中, $w_k$$b_k$为该线性方程的系数, $m_n$是自相似矩阵$M$以滑动窗口为$h_{k}$的输入值, $y_n$是滑动窗口为$h_k$的输出值, 输出值$y_n$与原始矩阵$R$中的评分值$r_n$之间存在如下关系:

$ \begin{align} r_{n}=y_n+\Delta_n, \end{align} $ (7)

$\Delta_n$为输出评分值与真实评分值的差值, 对滑动窗口$h_k$内的所有$\Delta_n$的值求平方和得到下式:

$ \begin{align} E(w_k, b_k)=\sum\limits_{n\in h_k}(w_km_n+b_k-r_n)^2. \end{align} $ (8)

在输出评分值与实际评分值越接近的同时, 加入正则项$\theta w_k^2$, 防止过拟合, 得到如下公式:

$ \begin{align} E(w_k, b_k)=\sum\limits_{n\in h_k}((w_km_n+b_k-r_n)^2+\theta w_k^2). \end{align} $ (9)

其中, $\theta$为正则化系数, 称其为权重因子.通过最小化函数$E(w_k, b_k)$可求得参数$w_k$$b_k$:

$ \begin{align} &w_{k}=\dfrac{\dfrac{1}{|h|}\sum\limits_{n\in h_k} (m_{n} r_{n}-\overline{m}_{n} \overline{r}_{n})}{\sigma^{2}_{k}+\theta}, \\[2mm] \end{align} $ (10)
$ b_k=\overline{r}_{k}-w_{k}\overline{m}_{k}. $ (11)

其中, $|h|$为滑动窗口$h_k$中评分点的个数, $\overline{m}_{k}$$\sigma^{2}_{k}$分别为自相似矩阵$M$在滑动窗口$h_k$中所有评分值的均值和方差, $\overline{r}_{k}=\frac{1}{|h|}\sum_{n\in h_k}r_n$是原始评分矩阵$R$在滑动窗口$h_k$中所有评分值的均值.最终求得:

$ \begin{align} y_n=\dfrac{\dfrac{1}{|h|}\sum\limits_{n\in h_k} (m_{n} r_{n}-\overline{m}_{n} \overline{r}_{n})}{\sigma^{2}_{k}+\theta}m_n+ \Big(\overline{r}_{k}-\dfrac{\dfrac{1}{|h|}\sum\limits_{n\in h_k} (m_{n} r_{n}-\overline{m}_{n} \overline{r}_{n})}{\sigma^{2}_{k}+\theta}\overline{m}_{k}\Big). \end{align} $ (12)

由上述公式可以看出, 本文提出的将原始矩阵去噪后得到的矩阵受到自相似矩阵和滑动窗口的影响.

2.2 自相似矩阵及权重因子

上述过程实现了将自相似矩阵的评分信息映射到新评分矩阵上的工作, 本文选取原始矩阵作为其自相似矩阵, 即$M\equiv R$, 则$w_k$$b_k$可以进一步化简为:

$ w_k=\dfrac{\sigma^2_k}{\sigma^2_k+\theta}, $ (13)
$ b_k=(1-w_k)\overline{m}_{k}. $ (14)

其中, $\overline{m}_{k}$$\sigma^2_k$分别为自相似矩阵$M$在滑动窗口$h_k$中所有评分值的均值和方差, $\theta$为权重因子, $y_n$的表达式如下:

$ \begin{align} y_n=\dfrac{\sigma^2_k}{\sigma^2_k+\theta}m_n+\Big(1-\dfrac{\sigma^2_k} {\sigma^2_k+\theta}\Big)\overline{m}_{k}. \end{align} $ (15)

由上式看出, $y_n$的值除了受自相似矩阵的均值$\overline{m}_{k}$和方差$\sigma^2_k$影响外, 也受权重因子$\theta$的影响, $\theta$的选取, 可以调整算法去噪的强度, 下面具体分析其意义.

当一个用户对所有物品或者所有用户对一个物品的评分波动较大, 自相似矩阵的方差就会较大, 可以认为$\sigma^2_k\gg \theta$, $\theta$$w_k$的影响非常小, 则$w_k$将趋近于1, $b_k$将趋近于0, 通过公式(15)得出的评分值将与未处理前的值相差甚微, 将不会认为待评分点为噪声点; 反之, 当评分波动不大时, $\theta$将会对$w_k$造成一定的影响(影响大小取决于$\theta$的选取), 此时评分值将会受到$\overline{m}_{k}$的作用, 可以对噪声数据进行弱化.波动较大的评分矩阵可以理解为评分均匀分布的矩阵, 波动较小的矩阵可以理解为评分集中分布的评分矩阵, 通过调整权重因子$\theta$的取值, 可以使均匀分布的矩阵仍保持均匀, 对评分集中的矩阵去除冗余和噪声.

2.3 滑动窗口及信任因子

由公式(15)可以看出, 去噪后的输出评分值受滑动窗口中所有评分值的均值和方差的影响, 评分矩阵中用户$u$对物品$i$的评分与该用户对所有物品的评分以及所有用户对该物品的评分存在关联性.

当滑动窗口选取为评分值$r_{ij}$ ($i$$j$表示矩阵中的行号和列号)的行向量时, 利用公式(15)得到的$y_n$记做$y^U_{n}$, $y^{I}_{n}$称其为用户倾向函数.当滑动窗口选取为评分值的列向量时, 利用公式(15)得到的$y_n$记做$y^{I}_{n}$, 称其为物品倾向函数, 那么新评分值$p_{ij}$为:

$ \begin{align} p_{ij}=\alpha y^U_{n}+\beta y^{I}_{n}, \end{align} $ (16)

其中, $\alpha $$\beta $叫做$y^{U}_{n}$, $y^{I}_{n}$的信任因子, 满足$\alpha +\beta =1$.

$y^{U}_{n}$$y^{I}_{n}$分别表示$y_{ij}$评分值利用行向量和列向量求得的评分, 评分矩阵中用户$i$对所有物品的评分影响$y^{U}_{n}$的值, 所有的用户对物品$j$的评分影响$y^{I}_{n}$的值, $y^{U}_{n}$$y^{I}_{n}$的值共同影响最终值$p_{ij}$.

信任因子$\alpha $$\beta $的取值分别代表用户倾向度和物品倾向度对最终评分值$p_{ij}$的影响程度.当$\alpha $的取值较大时, 评分值受用户$i$对所有物品的评分影响较大, 当$\beta $的取值较大时, 评分值受所有用户对物品$j$的评分影响较大. $y^{U}_{n}$可以理解为用户对物品的主观评分, $y^{I}_{n}$可以理解为物品的客观评分, 通过调整$\alpha $$\beta $的取值, 可以改变物品的主观评分和客观评分对最终评分的影响.在之后的章节中, 将通过实验验证$\alpha $$\beta $的取值对去噪效果的影响.

2.4 算法过程及性能分析

推荐模型的生成可以分为两部分: ①原始矩阵的预处理, ②利用协同过滤算法生成模型.

算法1.基于自相似矩阵的数据预处理

输入:用户--物品评分矩阵$R_{m\times n}$, 信任因子$\alpha $$\beta $, 权重因子$\theta$

输出: "去噪"后的新评分矩阵$R'_{m\times n}$

(1) 选取一个矩阵$R_{m\times n}$中已评分的矩阵值$r_{ij}$, 分别计算$r_{ij}$对应行向量、列向量的均值和方差, 记为$\overline{m}_\imath$, $\overline{m}_\jmath$, $\sigma^{2}_{i}$, $\sigma^{2}_{j}$;

(2) 将得到的$\overline{m}_\imath$, $\overline{m}_\jmath$, $\sigma^{2}_{i}$, $\sigma^{2}_{j}$代入公式(15)分别得到用户和物品倾向值$y^{U}_{n}$, $y^{I}_{n}$;

(3) 将倾向评分值$y^{U}_{n}$, $y^{I}_{n}$代入公式(16), 结合信任因子$\alpha $$\beta $得到最终评分$p_{ij}$;

(4) 遍历整个评分矩阵$R_{m\times n}$分别执行步骤(1)(2)(3), 最后得到新评分矩阵$R'_{m\times n}$.

该算法的时间复杂度为0($M\times N\times\max(M, N)$), 其中0($M\times N$)来自于对评分矩阵$R_{m\times n}$的遍历, 0($\max(M, N)$)为在计算均值和方差时, 遍历行向量和列向量所花费的时间, 在遍历过程中可以并行处理, 因此时间复杂度为0($\max(M, N)$).该过程在应用于推荐系统时, 可以定期执行, 将得到的新矩阵存储下来, 减少不必要的时间花费.

算法2.基于自相似矩阵的协同过滤推荐

输入: "去噪"后的新评分矩阵$R'_{m\times n}$

输出:用户$U_{i}$对物品$I_{j}$的预测评分$p_{ij}$

(1) 根据$R'_{m\times n}$计算物品或用户之间的相似度;

(2) 找到相似度最高的$K$个邻居;

(3) 计算预测分数$p_{ij}$.

该算法的时间复杂度为0($M\times N$).

3 实验结果及分析

本文在以下方面做了实验比较: ①调整信任因子$\alpha $$\beta $的值, 观察其对实验结果的影响; ②调整最近邻$K$值, 比较本文方法和传统方法的实验结果; ③对比了本文所提算法与其他去噪算法的结果.

3.1 实验数据

实验数据来源于GroupLens研究产品组(http://www.grouplens.org)提供的一个著名电影评分数据集MovieLens, 包括6 040个用户对3 952个电影的评分集合, 共有评分1 000 209个, 其中每个用户至少包括20个评分, 评分区间1--5分, 分值越高表示用户的偏爱程度越高.在整个实验过程中将80%的数据作为训练集, 20%的数据作为测试集, 用以验证实验结果.

3.2 评价标准

本文采用的评价标准为平均绝对误差(Mean Absolute Error, MAE)[14].

均方根误差通过预测评分与实际评分之间的差值来表示预测的准确度.其值越大表示预测的准确度越差, 反之, 准确度越高, 表达式如下:

$ \begin{align} {MAE}=\dfrac{1}{R}\sum\nolimits_{r_{ij}\in R}|r_{ij}-\widehat{r}_{\imath\jmath}|, \end{align} $ (17)

其中, $R$表示评分矩阵, $\vert R\vert $表示评分矩阵中评分的数量, $r_{ij}$表示实际得分, $\widehat{r}_{\imath\jmath}$表示预测得分.

3.3 信任因子$\alpha $$\beta $对去噪效果的影响

本实验的目的在于验证2.3节中提到的信任因子$\alpha $$\beta $对去噪效果的影响, 找到较优的$\alpha $$\beta $值, 比较行向量(用户倾向度)和列向量(物品倾向度)的所占比重对去噪效果的影响.由2.3节可知$\alpha +\beta =1$, 这里选取$\alpha $, $\beta $作为图 2图 3中横坐标的值, 其取值分别为(0.1, 0.9)、(0.2, 0.8)、(0.3, 0.7)、(0.4, 0.6)、(0.5, 0.5)、(0.6, 0.4)、(0.7, 0.3)、(0.8, 0.2)、(0.9, 0.1)、(1.0, 0.0), 纵坐标为MAE的值.实验选取了基于自相似矩阵的物品协同过滤算法(MICF)、基于自相似矩阵和MF的物品协同过滤算法(MMFICF)、基于自相似矩阵的用户协同过滤算法(MUCF)和基于自相似矩阵和MF的用户协同过滤算法(MMFUCF)进行比较, 实验结果如图 12所示.

图 1 参数$\alpha $$\beta $的比较($\theta=0.1^2$) Fig.1 Comparison of parameters $\alpha $ and $\beta $ ($\theta=0.1^2$)
图 2 参数$\alpha $$\beta $的比较($\theta=0.2^2$) Fig.2 Comparison of parameters $\alpha $ and $\beta $ ($\theta=0.2^2$)
图 3 传统的方法和本文提出的方法之间的比较($\theta=0.1^2$) Fig.3 Comparison between traditional methods and the methods presented in this paper ($\theta=0.1^2$)

图 12展示了MICF、MMFICF、MUCF和MMFUCF的实验结果比较, 实验中选取的最近邻数量为30.从实验结果图可以看出, 无论哪种方法, 当$\alpha $的取值为0.8, $\beta $的取值为0.2时, 模型的去噪效果较好, 也就是当用户倾向度占输出评分值的比重较大时, 模型能更好地识别噪声数据, 并削弱噪声数据对系统的影响, 使得$MAE$的值较小.

3.4 基于自相似矩阵的推荐算法与传统的推荐算法的比较

通过上面的实验, 得到了一组较优的$\alpha $$\beta $值作为基于自相似矩阵推荐算法的参数与传统的推荐算法进行比较.本次实验中, 横坐标$K$表示最近邻数量, 依次选取为5、10、15、20、25、30、35、40、45和50, 纵坐标表示$MAE$的值.对以下8种算法进行了比较:文献[15]中传统的基于物品的协同过滤算法(ICF)、基于MF的物品协同过滤推荐算法(MFICF)、基于用户的协同过滤算法(UCF)和基于MF的用户协同过滤推荐算法(MFUCF), 本文提出的基于自相似矩阵的物品协同过滤推荐算法(MICF), 基于自相似矩阵和MF的物品协同过滤推荐算法(MMFICF), 基于自相似矩阵的用户协同过滤推荐算法(MUCF), 基于自相似矩阵和MF的用户协同过滤推荐算法(MMFUCF).如图 34所示.

图 4 传统的方法和本文提出的方法之间的比较($\theta=0.2^2$) Fig.4 Comparison between traditional methods and the methods presented in this paper ($\theta=0.2^2$)

图 34可以看出, 开始时$MAE$的值随着$K$值的增加而减小, 在$K$达到30以后, $MAE$的值趋于平稳.通过比较平稳后的曲线可以看出, 结合了自相似矩阵和矩阵分解的方法要优于其他方法.这是因为传统的方法并没有考虑评分矩阵中噪声数据对推荐结果的影响, 而本文提出的结合自相似矩阵的协同过滤算法充分考虑了评分数据中的噪声问题, 通过识别和处理噪声数据, 减少了噪声数据对模型的干扰, 从而提高了推荐系统的性能.

3.5 基于自相似矩阵的推荐算法与其它去噪算法的比较

为了验证本文所提方法在去噪方面的有效性, 本次实验将文献[12]中提出的信息熵方法分别与基于用户的协同过滤算法(Entropy User Collaborative Filtering, EUCF)和基于物品的协同过滤算法(Entropy Item Collaborative Filtering, EICF)相结合.实验中信任因子$\alpha $$\beta $的取值分别为0.8和0.2, 以$MAE$作为评价指标, $f$表示分解维度, 如图 5所示.

图 5 去噪算法之间的比较 Fig.5 Comparison between denoising algorithms

图 5可以看出, MMFUCF和MMFICF的$MAE$值都要优于EMFUCF和EMFICF, 这说明本文所提算法的准确度优于基于信息熵的去噪算法.随着分解维度的增加, 推荐的质量也随之提升, 在$f$为50时, 本文所提算法在准确度方面比基于信息熵的算法提高了3.5%左右, 这说明本文的去燥方法是准确有效的.

4 结论

本文提出了基于自相似矩阵的协同过滤推荐算法, 主要贡献在于对原始评分矩阵的预处理, 解决了评分矩阵中存在的噪声问题.通过调整信任因子, 在自相似矩阵的用户倾向度和物品倾向度之间达到了均衡, 并与传统方法进行了对比, 通过实验表明, 本文提出的算法能够有效提升推荐系统的性能.

本文提出的方法在参数的选取上还有进一步的提升空间, 在选取信任因子$\alpha$$\beta$的时候采用全局模式, 即所有的评分值共享同一个参数, 下一步的工作可以在参数的选取方面结合优化算法进行自我学习, 得到每一个评分值的$\alpha$$\beta$, 从而进一步提高推荐系统的性能.

参考文献
[1] 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
[2] CACHEDA F, FORMOSO V. 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.
[3] GUO G, ZHANG J, YORKE-SMITH N. TrustSVD: Collaborative filtering with both the explicit and implicit influence of user trust and of item ratings[C]//Twenty-Ninth AAAI Conference on Artificial Intelligence. Palo Alto, CA, USA: AAAI Press, 2015: 123-129.
[4] SARWAR B, KARYPIS G, KONSTAN J, et al. Application of dimensionality reduction in recommender systemsA case study[C]//Proc of the Acm Webkdd Workshop. New York: ACM, 2000.
[5] MASSA P, AVESANI P. Trust-aware collaborative filtering for recommender systems[M]//On the Move to Meaningful Internet Systems 2004, Coopis, DOA, and Odbase. Berlin: Springer, 2004: 492-508.
[6] AMATRIAIN X, PUJOL J M, OLIVER N. I like it. I like it not: Evaluating user ratings noise in recommender systems[C]//International Conference on User Modeling, Adaptation, and Personalization: Formerly Um and Ah. Berlin: Springer-Verlag, 2009, 5535: 247-258.
[7] XUE G R, LIN C, YANG Q, et al. Scalable collaborative filtering using cluster-based smoothing[C]//International Acm Sigir Conference on Research & Development in Information Retrieval. New York: ACM, 2005: 114-121.
[8] ZHANG Z K, ZHOU T, ZHANG Y C. Tag-aware recommender systems:A state-of-the-art survey[J]. Journal of Computer Science and Technology, 2011, 26(5): 767-777. DOI:10.1007/s11390-011-0176-1
[9] UNGER M, BAR A, SHAPIRA B, et al. Towards latent context-aware recommendation systems[J]. Knowledge-Based Systems, 2016, 104: 165-178. DOI:10.1016/j.knosys.2016.04.020
[10] CHIRITA P A, NEJDL W, ZAMFIR C. Preventing shilling attacks in online recommender systems[C]//ACM International Workshop on Web Information and Data Management. New York: ACM, 2005: 67-74.
[11] BILGE A, OZDEMIR Z, POLAT H. A novel shilling attack detection method[J]. Procedia Computer Science, 2014, 31: 165-174. DOI:10.1016/j.procs.2014.05.257
[12] 刘江冬, 梁刚, 冯程, 等. 基于信息熵和时效性的协同过滤推荐[J]. 计算机应用, 2016, 36(9): 2531-2534. DOI:10.11772/j.issn.1001-9081.2016.09.2531
[13] MA H, KING I, LYU M R. Effective missing data prediction for collaborative filtering[C]//International ACM SIGIR Conference on Research and Development in Information Retrieval. New York: ACM, 2007: 39-46.
[14] 朱郁筱, 吕琳媛. 推荐系统评价指标综述[J]. 电子科技大学学报, 2012, 41(2): 163-175.
[15] KOREN Y. The bellkor solution to the netflix grand prize[J]. Netflix Prize Documentation, 2009(8): 1-10.