基于深度学习加强的混合推荐方法
张敏 , 丁弼原 , 马为之 , 谭云志 , 刘奕群 , 马少平     
清华大学 计算机系, 清华信息科学与技术国家实验室(筹), 智能技术与系统国家重点实验室, 北京 100084
摘要:近年来基于矩阵分解的协同过滤算法在评分预测上取得了显著成果,但仍未能很好地解决冷启动、数据稀疏等问题。因此,如何将评论信息引入推荐系统以缓解上述问题成为研究的热点之一。该文尝试基于深度学习来加强个性化推荐,提出将层叠降噪自动编码器(stacked denoising auto-encoder,SDAE)与隐含因子模型(latent factor model,LFM)相结合的混合推荐方法,综合考虑评论文本与评分,以提升推荐模型对潜在评分预测的准确性。在常用大规模公开Amazon数据集上进行的测试结果表明:与传统推荐模型相比,该文提出的方法可有效提高评分预测的准确性,性能提升最高可达64.43%。
关键词深度学习    协同过滤    混合推荐    
Hybrid recommendation approach enhanced by deep learning
ZHANG Min, DING Biyuan, MA Weizhi, TAN Yunzhi, LIU Yiqun, MA Shaoping     
State Key Laboratory of Intelligent Technology and Systems, Tsinghua National Laboratory for Information Science and Technology, Department of Computer Science and Technology, Tsinghua University, Beijing 100084, China
Abstract: Collaborative filtering based on matrix factorization has been very successful, while cold-start and data sparseness problems have not been well resolved. Hence, many studies have attempted to include review information into rating predictions. This paper presents a hybrid model that introduces deep learning into recommendation system with collaborative filtering. The algorithm combines a stacked denoising auto encoder (SDAE) with a latent factor model (LFM) to make use of both review and rating information to improve the rating predictions. Evaluations on a large, commonly used Amazon dataset show that this approach significantly improves the rating prediction accuracy in comparison with traditional models, with up to 64.43% better predictions.
Key words: deep learning     collaborative filtering     hybrid recommendation    

推荐算法的研究来源于互联网公司的实际需要。在互联网上,根据用户的行为记录向用户推荐可能感兴趣的商品或者内容是常见的。协同过滤是目前常用的推荐算法之一,它基于所有用户对商品的评分记录,分析出用户之间的关系和商品之间的关联,从而预测用户对某个商品的潜在评分。协同过滤算法不关注商品的内容和用户的个人信息,仅关注商品和用户、商品和商品以及用户和用户之间的关联,因此,协同过滤可以看作是根据其他用户的行为和当前用户的历史行为来预测当前用户的未来行为的算法。

目前最成功的基于模型的协同过滤算法是隐含因子模型(latent factor model, LFM)[1]算法。LFM算法使用矩阵分解方法降低数据的维度,提取隐含信息,将用户评分矩阵分解为用户偏好矩阵和商品特征矩阵。在实际预测评分时,LFM算法使用给定用户的偏好向量和给定商品的特征向量去预测用户对商品的潜在评分。其他基于模型的算法中的矩阵分解模型包括SVD(singular value decomposition)算法[2]和NMF(non-negative matrix factorization)算法[3]。在实际条件下,协同过滤算法面临冷启动和数据稀疏性的挑战。冷启动问题是指面对新用户时推荐算法准确率低的问题。协同过滤算法基于用户的历史记录,而新用户历史记录很少,因此协同过滤算法无法准确地估计新用户的个人偏好,从而导致预测准确性下降。例如,在美国Amazon商城购物的用户中,有94%的用户只有不超过3条历史评论。在如此稀疏的评论下,依赖历史评论的协同过滤算法的预测性能会受到影响。

为了克服协同过滤算法的缺陷,人们将基于内容的推荐方法与协同过滤方法融合起来,形成混合推荐模型[4-7],例如从商品的内容和用户个性化的偏好设置出发,提高了对新用户和新商品的推荐准确性[8-10]。如何对内容加以理解是这一类混合方法的核心之一。近年来的一个经典工作HFT(hidden factors as topics)[4]将主题模型LDA(latent dirichlet allocation)[8]与协同过滤相结合,在推荐准确率上比单纯的LFM模型有明显提升。其他同时考虑评分与文本的推荐算法还包括TopicMF (topic matrix factorization)[7]等。BoWLF (bag of words latent factor)[5]模型根据商品特征向量生成商品的评论文档的词概率分布,并将在给定商品特征参数下生成文档的似然度作为LDA部分的正则化项,使得模型在训练过程中能够反映评论文本的信息。

目前,深度学习已经在图像处理[11-13]、自然语言处理[14-16]等领域发挥了重要的作用,相比于传统算法取得了巨大的成功, 而当前将深度学习应用于推荐系统中的研究才刚刚起步。在国内,陈达[17]提出了基于DBN(deep belief network)的推荐系统,杨宇[18]提出了基于深度学习的图像推荐系统。国际上当前相关领域的研究工作主要有2个重要进展:1) CDL(collaborative deep learning)模型[19],它将Bayes SDAE (stacked denoising auto-encoden)模型[20]与概率化LFM模型相结合,预测用户对商品评分的数学期望,通过物品的描述和标签提升模型的性能; 2) LMLF(language model regularized latent factor)[9]模型,它将LSTM(long short-term memory)与协同过滤相结合,然而LMLF模型在评分预测中的表现低于更为简单的BoWLF模型,而且运行效率低,使得它的实际可用性不高。

综上所述,利用深度学习网络来加强对内容的分析,设计融合评论文本与评分数据的推荐方法是相关研究领域的一个趋势所在,而已有相关研究还刚刚起步很不充分,存在效果不明显、算法效率低、很难在大规模数据上的真实推荐场景中得到应用等问题。

针对这些问题,本文提出语义增强的隐含因子模型(semantics enhanced latent factor model,SELFM)。这是一个基于深度学习方法、融合评论与评分信息的、高效的混合推荐模型:模型通过引入商品评论文本的自然语言模型增强了矩阵分解结果的一般性,实现了评论与评分信息的融合;模型综合了深度学习网络和协同过滤方法,用到了深度学习方法层叠降噪自动编码器(SDAE)[20]和协同过滤方法隐含因子矩阵分解(SELFM)算法[1]。通过大规模数据的推荐实验,SELFM算法比基准算法有更好的表现。

1 语义增强的隐含因子推荐模型框架设计

基于SDAE和LFM提出的语义增强的隐含因子模型SELFM主要框架如图 1所示。

图 1 SELFM模型框架

将每个商品的所有评论当成一个文档,表示为商品内容向量,并将该向量作为文本编码模型的输入。这样做具有较大优点:因为不同用户对同一商品的评价可能存在差异甚至矛盾信息,因此如果只用单条评论作为文档,则会带来输入信息的矛盾,而将多条评论合并为一个文档,通过词的权重以及SELFM中对文本特征的编码降噪,则使得文档中的主流评价观点得以体现,这也在较大程度上增加了模型的抗噪性。通过这种方式,本文增强了矩阵分解模型中商品特征向量的语义性信息。

该模型由3部分组成,分别是选词模型、文本编码模型和隐含因子矩阵分解模型。其中选词模型确定文本编码模型所用的词空间。SDAE只能接受定长的输入,而评论文本的词汇量却相对巨大而且变动,因此不能像传统的评论文本分析方法那样简单地使用全部词来构成内容的表示。在评论文本所包含的所有词中,有大量的词只出现极少次,因此难以作为判断商品特征的关键词,而有少量常见词则在评论文本中大量出现,并且没有区分度。因此,可以采用文本处理中常用的TFIDF (term frequency-inverse document frequency)来确定词的重要性。

文本编码模型的用途是将高维度的商品内容向量压缩为低维度的商品特征向量,并且尽可能多地保留文本的信息。对于这类任务,使用SDAE作为压缩向量的模型。

在使用选词模型处理了所有的评论后,得到每个商品的内容向量。这些商品内容向量用来训练SDAE中的参数。训练SDAE时,按顺序训练SDAE中的每一层降噪自动编码器,通过最小化压缩损失来估计每层降噪解码器的参数。

在文本编码模型的参数被估计后,估计隐含因子矩阵分解模型的参数,并微调文本编码模型的参数。

2 基于SDAE的文本编码模型

降噪自动编码器(denoising auto-encoder, DAE)是一个以尽量少的损失将高维向量压缩为低维向量的人工神经网络。自动编码器的网络结构可以看作由一个编码器层和一个解码器层组成。编码器层将输入的高维向量压缩为输出的低维向量,解码器层将低维的向量还原成高维向量。编码器的优化目标是使得解码器还原出来的高维向量尽量接近输入的原始高维向量。

假设输入的高维向量为x,其维度为N,压缩成的低维向量为y,其维度为M,解码器还原出的高维向量为$\boldsymbol{\tilde x} $,其维度为N。编码器层需要2个参数,分别是N×M维的矩阵WeM维的偏移向量be。解码器层需要2个参数,分别是N×M维的矩阵WdN维的偏移向量bd

自动编码器的工作原理为输入原始向量x,输出压缩后的向量y,压缩方法为

$ \boldsymbol{y} = {\boldsymbol{W}_{\text{e}}}\boldsymbol{x} + {\boldsymbol{b}_{\text{e}}}. $ (1)

自动解码器的工作原理为输入压缩后的向量y,输出还原的向量$\boldsymbol{\tilde x} $,解码方法为

$ \boldsymbol{\tilde x = }{\boldsymbol{W}_{\text{d}}}\boldsymbol{y} + {\boldsymbol{b}_{\text{d}}}. $ (2)

自动编码器的压缩损失为Le,可以定义为还原的向量与原始向量欧式距离的平方,即:

$ {L_{\text{e}}} = \sum\limits_{i = 1}^{i \leqslant N} {{{\left( {{{\boldsymbol{\tilde x}}_i}-{\boldsymbol{x}_i}} \right)}^2}.} $ (3)

在训练自动编码器时,以减少压缩损失Le为优化目标。

在实际情况中,输入数据会含有噪声,输入数据少的时候,也会导致编码器过拟合到训练数据集上。因此,在实际的模型中,增加1个降噪层用于提高自动编码器的编码能力。降噪层是1个由随机的二元分布的元素组成的层,降噪层的维数与输入层相同,均为N,每一维的元素都是1个符合二元分布的随机变量μi,即μi~B(p),其中p是二元分布的参数。输入数据与降噪层的元素相乘结果为编码器的输入,即加入了降噪层的编码器层计算公式为

$ \boldsymbol{y} = {\boldsymbol{W}_{\text{e}}}\left( {\boldsymbol{\mu } \otimes \boldsymbol{x}} \right). $ (4)

其中,$\otimes $运算符代表按元素乘法。在实际使用中,解码器的参数矩阵Wd通常为编码器的参数矩阵We的转置,此时学习出的We矩阵接近正交矩阵。

由于一层DAE网络的编码能力有限,因此,考虑将多层DAE网络堆叠起来,组成编码能力更强的SDAE网络。多个DAE编码器按顺序首尾相连,相邻的DAE层之间插入Sigmoid层组成SDAE网络。Sigmoid层作为活化层,使得SDAE网络具有比DAE网络更强的处理能力。

训练SDAE网络由分层训练和微调2部分组成。首先训练最外层DAE, 输入的数据经过最外层编码器编码后的结果直接通过最外层的解码器解码,通过训练最外层的编码器使得编码后的损失尽量小。当训练次数达到指定次数后,停止最外层编码器的训练。当最外层的编码器训练完成后,训练第2层编码器, 当第2层编码器训练完成后,再按照相同的方法训练内部的编码器,直到所有编码器均分别训练完成。

当所有编码器层均训练完成后,就不再考虑解码器部分,只保留编码器连接成的网络,以最外层编码器的输入为整个网络的输入,以最内层编码器的输出为整个网络的输出。之后,再微调整个网络以适应实际的需求。

3 隐含因子矩阵分解方法

如果将用户对商品的评分看作一个矩阵,其中每一行代表一个用户对所有商品的评分,每一列代表一个商品的所有用户评分,那么,矩阵的每个元素都是某个用户对某个商品的评分。假设用户数为U,商品数为I,评分矩阵为R,即R=(ru, i)U×I。将评分矩阵R分解为2个低维度矩阵PU×NQI×N,其中N是远小于UI的整数,表示用户和商品的隐含特征空间的维数。在矩阵分解模型下,用户u对商品i的预测评分为

$ {\tilde r_{u, i}} = {\boldsymbol{P}_u}\boldsymbol{Q}_i^{\text{T}}. $ (5)

从用户和商品的整体范围考虑,也可以使用基于平均偏差的预测模型, 其中最基础的是所有评分的平均值α。考虑每个用户有自己的评分习惯,因此对每个用户引入一个用户评分偏移量bu。考虑每个商品的质量不同,也对每个商品引入一个商品评分偏移量bi。将平均偏差模型与矩阵分解模型相结合,可以得到带有平均偏差的评分预测公式:

$ {\tilde r_{u, i}} = \alpha + {b_u} + {b_i}\boldsymbol{ + }{\boldsymbol{P}_u}\boldsymbol{Q}_i^{\text{T}}. $ (6)

模型训练的目标是使预测的评分尽量接近真实评分。如果所有评论的集合为H={(u, i, r)},那么,通过最小化目标函数LH来估计参数:

$ {L_H} = \sum\limits_{\left( {u, i, r} \right) \in H} {{{\left( {r-{{\tilde r}_{u, i}}} \right)}^2}.} $ (7)

基于矩阵分解的协同过滤算法在稀疏的评分矩阵上容易过拟合,导致模型的一般性较低。文本编码模型可以修正矩阵分解的过程,并提高模型在预测评分上的准确率。本文是将通过矩阵分解得到的商品特征向量替换为文本编码模型输出的商品特征向量。矩阵分解得到的商品特征向量在语义上缺乏意义,而文本编码模型输出的商品特征向量则反映了商品的特征。因此,文本编码模型输出的商品特征向量更加具有代表性。

除了预测准确性,通常还希望避免模型过拟合的情况。在避免模型过拟合的方法中,最常见的方法是引入参数衰减项(weight decay)。对于隐含因子矩阵分解模型来说,除了参数α,其他参数bubiPuQi都是数值在零上下波动的偏移量。对于这些在零上下波动的偏移量参数,参数的方差越大,那么参数所对应的模型就越复杂,因此也就更容易过拟合。通过限制参数矩阵的范数,可以减小模型中参数的方差,从而使得模型更加简单。然而,如果参数的方差过小,会发生欠拟合现象,也就是模型过于简单,以至于不能够有效地反映用户对商品预测的隐含因子。所以,能够影响参数方差大小的参数衰减项系数会影响到模型的性能,需要谨慎地选取。在实验中也测试了参数衰减项系数对模型性能的影响。

因此,优化隐含因子矩阵分解模型的目标就是最小化:

$ \begin{gathered} {L_H} = \sum\limits_{\left( {u, i, r} \right) \in H} {{{\left( {r-{{\tilde r}_{u, i}}} \right)}^2}} + \hfill \\ {\lambda _b}\left( {\left\| {{b_u}} \right\| + \left\| {{b_i}} \right\|} \right) + {\lambda _p}\left\| {{\boldsymbol{P}_u}} \right\|. \hfill \\ \end{gathered} $ (8)

在优化隐含因子矩阵分解模型时,文本编码模型的参数也会根据隐含因子矩阵分解模型任务的独特性进行微调,以便达到更好的评分预测效果。

4 实验结果与分析 4.1 实验数据集及评价指标

在美国Amazon评论数据集上测试SELFM模型的准确度, 数据集采集自1995年到2013年间Amazon网站上用户的真实评论。这些评论按照Amazon的商品类别被划分为24个子数据集,包括艺术、汽车、手机、电影、音乐和视频游戏等多个领域,不但具有丰富的评论内容,而且各个子数据集之间沉默用户数、评论规模均不同,对于测试推荐模型在不同场合下的性能很有帮助,如表 1所示。

表 1 Amazon数据集
序号 数据集 用户数/个 商品数/件 评论数/条 沉默用户率/%
1 艺术 24 071 4 211 27 980 97.69
2 机动车 133 256 47 577 188 728 93.89
3 婴儿用品 13 930 1 660 17 332 97.12
4 化妆品 167 725 29 004 252 056 91.51
5 手机 68 041 7 438 78 930 97.82
6 服装 128 794 66 370 581 933 78.84
7 电子产品 811 034 82 067 1 241 778 91.36
8 食品 112 544 23 476 154 635 93.46
9 健康 311 636 39 539 428 781 93.72
10 厨房用具 644 509 79 006 991 794 91.90
11 工业 29 590 22 622 137 042 93.90
12 首饰 40 594 18 794 58 621 93.24
13 Kindle商店 116 191 4 372 160 793 95.50
14 乐器 67 007 14 182 85 405 95.00
15 办公用品 110 472 14 224 138 084 96.42
16 庭院 166 832 19 531 206 250 96.47
17 宠物用品 160 496 17 523 217 170 93.21
18 73 590 48 410 389 877 70.86
19 软件 68 464 11 234 95 084 96.80
20 体育 329 232 68 293 510 991 92.53
21 日用工具 283 514 51 004 409 499 92.81
22 游戏玩具 290 713 53 600 435 996 94.03
23 视频游戏 228 570 21 025 463 669 90.95
24 手表 62 041 10 318 68 356 98.52

表 1可以看出,各个数据集之间有很大差距。在艺术品类别中沉默用户高达97.69%,而在鞋类别中沉默用户只有70.86%,测试结果能够反映出模型在不同情况下的准确率。

将实验数据集按照9:1的比例随机分成训练集和测试集,SELFM模型和其对比模型均在相同的训练集上测试,并在同样的测试集上测试运行,以确保结果具有可比性。本文只考虑训练集中的评论文本,而忽略测试集中的所有评论文本。

采用推荐领域的经典评价指标MSE(mean square error)评价模型性能。假设测试集为T={(uk, ik, rk)},共有s个样例,其中uk为第k个评论的用户ID,ik为第k个评论的商品ID,rk为第k个评论的真实评分,那么MSE的定义如下,且这个值越小,模型的预测准确率越高,

$ {\text{MSE = }}\frac{1}{s}\sum\limits_{\left( {{u_k}, {i_k}, {r_k}} \right) \in H} {{{\left( {r-{{\tilde r}_{u, i}}} \right)}^2}} . $ (9)
4.2 对比模型

选择SVD++和LFM模型作为协同过滤的代表模型,BoWLF和LMLF模型作为结合评论文本的推荐模型与提出的SELFM模型进行比较。

1) SVD++:SVD++方法使用矩阵分解模型将高维度的用户评分矩阵分解为低维度的用户偏好矩阵和商品特征矩阵,提取在用户评分矩阵中蕴含的信息。SVD++方法在2007和2009年的Netflix竞赛中发挥了重要的作用。

2) LFM:LFM模型基于矩阵分解和评分偏移量模型,是目前为止最成功的协同过滤模型之一。

3) LDA-LFM:相比于LFM方法中使用随机均匀分布初始化参数,本模型使用LDA分析商品的所有评论,为每个商品对应的文档生成一个主题分布,作为商品特征矩阵的初始值。

4) BoWLF:BoWLF方法将词袋模型与LFM模型相结合,是一种将神经网络与基于协同过滤的推荐系统整合的推荐模型。词袋模型根据商品的特征向量估计评论中词出现的概率,并最大化评论文档的整体概率。通过词袋模型,BoWLF可以正则化LFM模型中的商品特征向量,将商品特征向量与商品评论相联系,从而提高模型的一般性。

5) LMLF:LMLF方法将BoWLF方法中的词袋模型替换为循环神经网络中的长短期记忆网络(LSTM)[14],将深度学习与基于矩阵分解的协同过滤方法相结合,在对评论的模型化能力上强于BoWLF,但是在评分预测的能力上并没有超过BoWLF。

4.3 评分预测结果

与其他相关研究工作一样,本文使用预测评分与测试集真实评分的平方误差MSE作为评价指标来衡量模型的效果。在相同的训练集/测试集切分上运行SELFM模型和SVD++模型,在另一份相同的训练集/测试集切分上运行SELFM、LFM、LDA初始化的LFM(简称LDA-LFM)、BoWLF模型,在测试集上的评分预测性能见表 2。其中,对于SELFM,在使用TFIDF方法选择出的5 000个TFIDF值最高的词上使用SDAE方法提取商品特征。对于SDAE,使用4层DAE,每层的输出维度分别是1 000、100、20和5,每层的降噪参数都是0.95。选择Adam方法训练文本编码模型,使用随机梯度下降方法训练矩阵分解模型。

表 2 SELFM与SVD++/LFM/LDA-LFM/BoWLF的性能(MSE)对比
数据集 实验1 实验2
SVD++ SELFM 相对
提升/%
LFM LDA-LFM BoWLF SDAE LFM
相对提升/%
LDA-LFM
相对提升/%
BoWLF
相对提升/%
艺术 1.466 1.311 10.62 1.465 1.451 1.477 1.450 1.02 0.05 1.80
机动车 1.573 1.453 7.66 1.412 1.408 1.415 1.412 -0.03 -0.30 0.24
婴儿用品 1.644 1.540 6.32 1.536 1.540 1.766 1.558 -1.45 -1.17 11.76
化妆品 1.626 1.342 17.48 1.319 1.299 1.322 1.306 0.98 -0.51 1.26
手机 2.177 2.123 2.46 2.114 2.119 2.165 2.116 -0.06 0.15 2.30
服装 0.716 0.349 51.24 0.339 0.347 - 0.352 -3.94 -1.57 -
电子产品 1.803 1.711 5.16 1.718 1.735 1.718 1.712 0.35 1.36 0.34
食品 1.528 1.441 5.75 1.421 1.405 1.420 1.397 1.69 0.57 1.64
健康 1.644 1.501 8.68 1.515 1.504 1.518 1.450 1.00 0.30 1.20
厨房用具 1.686 1.545 8.37 1.530 1.542 1.539 1.528 0.11 0.90 0.73
工业 0.464 0.377 18.78 0.380 0.383 0.379 0.378 0.60 1.34 0.31
首饰 1.355 1.395 -2.92 1.267 1.258 1.274 1.226 3.26 2.66 3.81
Kindle商店 1.436 1.395 2.90 1.431 1.413 1.422 1.410 1.46 0.18 0.84
乐器 1.495 1.445 3.33 1.431 1.432 1.453 1.453 -1.53 -1.46 -0.01
办公用品 1.760 1.705 3.11 1.695 1.657 1.654 1.639 3.33 1.08 0.88
庭院 1.782 1.705 4.34 1.675 1.665 1.684 1.672 0.17 -0.45 0.67
宠物用品 1.671 1.584 5.21 1.561 1.568 1.590 1.563 -0.15 0.31 1.68
0.629 0.224 64.43 0.233 0.231 - 0.228 2.17 1.32 -
软件 2.357 2.225 5.62 2.330 2.312 2.317 2.306 1.02 0.23 0.47
体育户外 1.337 1.146 14.30 1.148 1.142 1.150 1.135 1.16 0.61 1.37
日用工具 1.607 1.490 7.24 1.498 1.497 1.500 1.496 0.15 0.10 0.30
游戏玩具 1.453 1.405 3.31 1.396 1.406 1.405 1.432 -2.55 -1.79 -1.89
视频游戏 1.530 1.491 2.59 1.543 1.517 1.529 1.512 1.96 0.28 1.06
手表 1.516 1.492 1.64 1.488 1.476 1.493 1.474 0.93 0.10 1.24

表 2可以发现,与SVD++相比,SELFM在24个子数据集的23个数据集上均有提升(仅在“首饰”数据集上性能略有下降),总体上优于SVD++模型。其中准确率在鞋类商品上提升64.43%,在服装商品上提升51.24%,提升效果明显,整体上SELFM比SVD++在预测准确率上提升7.90%。在17个数据集上SELFM的预测结果优于LFM和LDA-LFM。相比于LFM,SELFM预测准确率提升最高3.33%;相比于LDA-LFM,SELFM预测准确率提升最高1.36%;在20个数据集上,SELFM方法的预测准确率都高于BoWLF方法,最高提升了11.76%。根据提出BoWLF方法的论文中的实验[5],与BoWLF方法相比,使用了循环神经网络中的长短期记忆网络(long short-term memory)的LMLF方法虽然在自然语言表示层面取得了更好的结果,但是在评分预测层面,LMLF方法落后于BoWLF方法。而本文中SELFM在预测评分上比BoWLF更准确,因此可以合理预计SELFM能够比LMLF方法取得更好的预测准确性。

即使对于同样的模型,SELFM在同一个数据集的不同训练集/数据集的切分上的预测结果也有很大的差异,例如在视频游戏类别上,SELFM在2个不同切分上的MSE分别是1.4908和1.5165,差别达到了1.7%。这说明推荐算法的预测准确率对数据集的切分方法十分敏感,因此,从实验中可以得出结论,只有在相同的切分上的实验结果之间才具有可比性。

4.4 模型超参数对模型性能的影响 4.4.1 SDAE结构的影响

SDAE模型的压缩能力与SDAE的层数有关联。随着层数的增多,SDAE可以表示的逻辑的复杂性也会增加,因此,本文使用单层DAE与4层SDAE对比,研究SDAE的层数对模型预测准确性的影响程度。对于单层DAE,直接将5 000维的输入向量压缩为商品特征的5维向量,与4层SDAE的输出维数保持相同,其余正则项系数与训练方法、模型超参数均保持一致。在艺术、机动车、婴儿用品、化妆品等4个子数据集上的实验结果见表 3,其他数据集上的结果也是类似的。可以看出,4层SDAE相对于单层DAE,推荐准确率有所上升,但是在部分数据集上提升的幅度很小。在4个数据集中的最大提升幅度为1.26%,最小的提升幅度只有0.21%。

表 3 SDAE层数对模型性能(MSE)的影响
子数据集 单层DAE 4层SDAE 提升幅度/%
艺术 1.327 1.311 1.26
机动车 1.464 1.453 0.78
婴儿用品 1.543 1.540 0.21
化妆品 1.356 1.342 1.01

4.4.2 正则项系数的影响

正则项是用于防止协同过滤模型过拟合到训练数据,从而导致模型在实际情况下的表现变差。模型过拟合的一种情况是随着训练过程的继续,模型变得更加复杂,导致参数的绝对值偏大,从而使得在实际场景下的准确率下降。为了避免这种现象,本文对协同过滤中的bubiPu引入正则项,作为模型损失函数的一部分。参数越复杂,正则项的数值越大,从而模型的损失也越大,从而阻止参数向复杂化发展。然而正则项的弊端在于如果正则项系数过大,在损失函数中占据主要部分,那么在训练过程中,简化模型的趋势就会大于学习规律的趋势,从而导致模型完全训练失败。为了验证正则项对模型的预测性能的影响,在艺术数据集上以多对正则项系数组合训练协同过滤模型,实验结果见表 4

表 4 正则项系数对模型性能(MSE)的影响
λb λp MSE
0.01 0.1 1.322
0.01 1 1.323
0.1 0.1 1.322
0.1 1 1.323
1 0.1 1.329
1 1 1.329

表 4可以发现,正则项系数对预测准确性的影响很小,λp的波动几乎不会对模型结果造成影响。但是,λb过大(等于1) 确实会导致因为正则项的系数过高,从而使得模型学习结果变差。

5 结论

本文提出语义增强的隐含因子模型,该混合推荐模型将深度学习用于个性化推荐系统,并尝试将评论内容结合到协同过滤的算法之中,作为加强商品特征分析的一种渠道。SELFM模型通过将深度学习方法中的SDAE与基于矩阵分解的LFM相结合, 以此提升推荐模型在预测评分上的准确率。

从运行性能角度上看,SELFM对商品评论的分析模型不需要反复运行,而且不需要每次都从初始状态训练,相反,可以使用微调的方式将新的数据加入模型,因此文本分析模型的平均训练时间是很短的。而基于LFM的协同过滤模型的训练时间也很短,因此能够保证在合理的时间内处理大规模的数据。

与传统的协同过滤模型相比,SELFM通过结合深度学习算法提升了评分预测的准确性,与SVD++、LFM、LDA-LFM、BoWLF模型相比均有所提升,最高分别提升了64.43%、3.33%、1.36%和11.76%。相比于LSTM,SDAE的训练速度更快,因此在运行效率上优于LMLF模型。

目前本文提出的SELFM在使用SDAE处理文本时使用了基于词袋的模型,并没有考虑词的相互关系和上下文语义。下一步工作将考虑把上下文相关的深度学习算法与协同过滤算法相结合,以提高推荐系统的推荐能力。

参考文献
[1] Koren Y, Bell R, Volinsky C. Matrix factorization techniques for recommender systems[J]. IEEE Computer, 2009, 42(8): 30–37. DOI:10.1109/MC.2009.263
[2] Koran Y. Factorization meets the neighborhood: A multifaceted collaborative filtering model [C]// Proceedings of the 14th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD'08). Las Vegas, NV, USA: ACM, 2008: 426-434. http://www.inf.ed.ac.uk/teaching/courses/dme/studpres0910/DME-presentation-final.pdf
[3] Lee D D. Algorithms for non-negative matrix factorization[J]. Advances in Neural Information Processing Systems, 2015, 13(6): 556–562.
[4] Mcauley J, Leskovec J. Hidden factors and hidden topics: Understanding rating dimensions with review text [C]// ACM Conference on Recommender Systems. Hong Kong, China: ACM, 2013: 165-172. http://i.stanford.edu/~julian/pdfs/recsys13.pdf
[5] Almahairi A, Kastner K, Cho K, et al. Learning distributed representations from reviews for collaborative filtering [C]// Proceedings of the 9th ACM Conference on Recommender Systems. Vienna, Austria: ACM, 2015: 147-154. http://dl.acm.org/citation.cfm?id=2800192
[6] Sang S L, Chung T, Mcleod D. Dynamic item recommendation by topic modeling for social networks [C]// Eighth International Conference on Information Technology: New Generations. Las Vegas, NV, USA: IEEE, 2011: 884-889. http://sir-lab.usc.edu/publications/2010-ieee_itng_final.pdf
[7] Bao Y, Fang H, Zhang J. TopicMF: Simultaneously exploiting ratings and reviews for recommendation [C]// Proceedings of the 28th AAAI Conference on Artificial Intelligence. Quebec, Canada: AAAI, 2014: 2-8. http://www.ntu.edu.sg/home/zhangj/paper/aaai14-bao.pdf
[8] Blei D M, Ng A Y. Latent dirchlet allocation[J]. Journal of Machine Learning Research, 2003, 3(1): 993–1022.
[9] Almahairi A, Kastner K, Cho K, et al. Learning distributed representations from reviews for collaborative filtering [C]// Proceedings of the 9th ACM Conference on Recommender Systems. Vienna, Austria: ACM, 2015: 147-154. https://wenku.baidu.com/view/1b4624bed5d8d15abe23482fb4daa58da0111cd2.html
[10] Wang C, Blei D M. Collaborative topic modeling for recommending scientific articles [C]// Proceedings of the 17th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York, NY, USA: ACM, 2011: 448-456. http://dl.acm.org/citation.cfm?id=2020480
[11] Lawrence S, Giles C L, Tsoi A C, et al. Face recognition: A convolutional neural-network approach[J]. IEEE Transactions on Neural Networks, 1997, 8(1): 98–113. DOI:10.1109/72.554195
[12] Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition [Z/OL]. (2015-04-10). http://arxiv.org/abs/1409.1556.
[13] Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions [C]// IEEE Conference on Computer Vision and Pattern Recognition. Boston, MA, USA: IEEE, 2015: 1-9.
[14] Graves A. Long short-term memory[J]. Neural Computation, 1997, 9(8): 1735–1780. DOI:10.1162/neco.1997.9.8.1735
[15] Graves A. Supervised sequence labelling with recurrent neural networks[J]. Studies in Computational Intelligence, 2012, 385: 1–124.
[16] Sutskever I, Vinyals O, Le Q V. Sequence to sequence learning with neural networks[J]. Advances in Neural Information Processing Systems, 2014, 4: 3104–3112.
[17] 陈达. 基于深度学习的推荐系统研究[D]. 北京: 北京邮电大学, 2014. https://www.cnki.com.cn/lunwen-1015527866.html
[18] 杨宇. 基于深度学习特征的图像推荐系统[D]. 成都: 电子科技大学, 2015. http://www.docin.com/p-1415386397.html
[19] Wang H, Wang N, Yeung D Y. Collaborative deep learning for recommender systems [C]// Proceedings of the 21st ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York, NY, USA: ACM, 2014: 1235-1244.
[20] Vincent P, Larochelle H, Lajoie I, et al. Stacked denoising autoencoders: Learning useful representations in a deep network with a local denoising criterion[J]. Journal of Machine Learning Research, 2010, 11(6): 3371–3408.