王子岚, 胡 伟, 凌 燕
(黄山职业技术学院,安徽 黄山 245000)
信息技术的高速发展为互联网用户提供了大量的在线服务项目。用户可以随时上网访问这些项目资源,但同时也面临严峻的信息过载问题。推荐系统是目前应用广泛且有效的信息过滤工具,可以以个性化的方式为用户推荐其感兴趣的内容,已经应用于各大在线平台中的互联网用户购物、听音乐等活动推荐中。但传统的推荐方法普遍存在数据稀疏、冷启动和特征提取困难等问题。近年来,深度学习作为一个新兴的计算机科学领域,推动人工智能的新浪潮,在图像处理、物体识别、自然语言处理等方面取得了很好的效果,也为推荐系统带来了新的可能。深度学习具有强大的特征提取能力,可以从各类数据中获得更有效的特征,与传统推荐算法进行融合,缓解传统方法的常见问题,有效提高系统的推荐质量[1]。在实际应用中,基于深度学习的推荐系统已经在Google、YouTube等平台应用并取得了不错的效果。
推荐系统的目标是主动帮助用户找到其感兴趣的个性化项目并推荐给用户。在推荐系统的帮助下,用户更可能获得需要的产品和服务,如电影、书籍、音乐、食物、酒店和餐馆等。预测和推荐是经典的推荐系统解决的两个主要问题。预测问题是指系统要实现精确预测用户对项目的偏好程度,推荐问题是指根据预测结果推荐给用户其最可能喜欢的项目。可见推荐环节可以从预测结果中得到,因此大部分的推荐算法研究的是预测环节。预测环节的推荐算法一般定义如下:假设U是所有用户的集合,I是所有项目的集合,U和I的量级都很大。对于每个用户u∈U,我们需要找出其偏好值最高的项目i∈I推荐给用户。其核心是计算项目i对用户的最大偏好值对应的数学表达式如公式(1)所示。
推荐系统根据算法通常分为三类:协同过滤推荐系统(CF)、基于内容的推荐系统、混合推荐系统。其中:应用最多的协同过滤推荐系统只根据用户历史评分数据向用户提供有相似品味的建议;基于内容的推荐系统根据项目的描述性特征进行新项目推荐;混合推荐系统则结合了CF推荐和基于内容的方法来避免单种方法的局限性。除了这些常见的推荐系统之外,还有一些具体的推荐技术,如上下文感知推荐系统将用户的上下文信息纳入推荐过程,标签识别推荐系统将产品标签集成到标准CF算法中[2]等。
推荐系统的确有效缓解了信息过载问题,但传统的推荐算法普遍存在准确性、稀疏性、冷启动等方面的问题。由于CF推荐系统严重依赖历史项目评级数据,在实际平台应用中经常会遇到评分稀疏问题,影响CF的推荐效果。数据稀疏导致另一个严重的问题称为冷启动问题。由于没有足够的数据对其进行分析,CF面对新项目时显得无能为力。与CF技术不同,新用户和项目可以在基于内容的推荐系统中利用其内容进行推荐,但基于内容的推荐常存在特征提取困难的情况。
近十年来,深度学习模型具有自动学习数据特征,获取数据的深层次隐表示等优点,掀起了人工智能的新热潮。很多深度模型,如叠加去噪自编码(SDAE)、卷积神经网络(CNN)和循环神经网络(RNN)等都在图像处理、自然语言语义、语音和文本分类中取得了显著的效果[3]。随着大数据技术和超级计算机的发展,深度学习技术的数据处理能力不断提高,不少研究者已经开始尝试在推荐系统中应用深度学习技术,以缓解传统推荐系统中的各类问题。基于深度学习的推荐系统自下而上为输入层、模型层和输出层,具体架构如图1所示。文中主要研究模型层面的应用。
图1 基于深度学习的推荐系统框架
在深度学习推荐系统中,基于限制玻尔兹曼机(RBM)是最早应用的一种神经网络模型,RBM大多由可见层和隐藏层组成,其在玻尔兹曼机(RM)的基础上去除层内的通信,并采用对比散度(CD)进行训练以提高模型效率。目前在推荐系统中RBM主要与协同过滤方法融合,应用于预测用户的评分,具体结构如图2所示。常见的RBM协同过滤模型可见层采用softmax模型,隐藏层采用二元变量,每一个RBM模型对应一个用户,模型输入层中神经元的个数和数据集中的项目数量对应,并且只有有评分的神经元才有连接。
图2 基于RBM的协同过滤模型
深度置信网络(Deep Belief Network,DBN)是应用成功的首个深度学习模型。在DBN之前,深度学习模型因其复杂的目标函数,训练和优化过程显得比较困难而难以应用。DBN可以看作是多个RBM叠加而成,每个RBM子网的隐藏层作为下一子网RBM的可见层,通常采用贪婪逐层算法进行训练,即将前一个RBN的隐藏层输出作为后一个RBM可见层的输入,而每个RBM内部则采用对比散度算法单独训练,使得DBN的训练简便有效。由于DBN在一维数据建模上优势明显,所以目前在推荐系统中的主要应用于音乐推荐。Wang等人将DBN和概率矩阵分解PMF结合,分别通过PMF和DBM分别对音乐和用户学习其隐表示,然后对两种隐表示做内积来拟合评分矩阵,并进行预测评分,有效提升了音乐推荐效果[4]。
自动编码器(AE)则是通过编码器和解码器来实现学习数据的重构,模型分为输入层、隐藏层和输出层。将输入层的数据层映射到隐藏层的过程称为编码过程,解码过程是指将隐藏层的数据从隐藏层映射到输出层。图3给出了基于自编码器的评分重构模型,其中Ri是用户的原始评分向量(黑色圆形表示有初始评分,白色圆形表示没有初始评分),Ri’是通过自编码器重构后的评分向量。通过最小化Ri和Ri’之间的误差来进行模型训练并获得参数,然后对未评分数据进行预测。
由于AE神经元的数目的输入和输出相等,数据重构很容易陷入恒等,因此研究者们在其基础上加上去噪因子,提出了去噪自编码器(DAE),使自编码器更加稳定,在推荐效果和鲁棒性都有明显提高。与RBM构建深度信念网络的方法类似,DAE也可以通过堆叠的方式创建深层架构SDAE。目前AE在推荐系统中的应用主要是通过SDAE对用户或项目信息进行学习重构,然后进行预测评分、图像和文本推荐等。
图3 基于AE的评分重构模型
与普通的神经网络不同,循环神经网络(RNN)在隐含层之间也有连接,模型训练中会对序列的每个元素执行相同的计算,模型的输出依赖之前的计算结果。也就是说RNN具有记忆功能,因此RNN尤其适合建模序列数据。目前RNN已经在语音识别、机器翻译等领域得到了广泛的应用。但是当RNN进行网络训练时,常常会遭遇渐变消失或爆炸的问题,通常用长短时记忆(LSTM)和门控递归单元(GRU)体系结构来解决此类问题。在推荐系统中,RNN通常用于建模用户行为序列或者是与注意力机制结合构建用户和项目的文本信息序列,应用于评分预测和文本推荐等领域。
卷积神经网络(CNN)在至少一层中应用卷积运算代替一般的矩阵乘法,模型通常由卷积层、池化层和全连接层组成。其中卷积层主要实现将输入的数据执行卷积运算并输出特征图。池化层则实现特征图的降维,以减少处理时间,通常选用最大池化或者平均池化操作。最后将池化层的输出作为全连接层的输入,进而实现分类。目前CNN已经成功地应用于许多困难的任务,如图像和对象识别、音频处理和自动驾驶汽车。在推荐系统中CNN常作为特征提取工具,广泛应用于文本、音乐等项目的特征提取。Kim等人提出ConvMF深度学习模型,利用CNN提取电影简介文本,然后集成到PMF中进行评分预测,有效提高了预测精度[5]。
互联网发展的同时带来了信息过载问题,传统的推荐算法在信息过滤的实际应用中面临很多挑战。深度学习具有自动学习深层特征能力,与传统推荐方法结合能够有效提升推荐质量和泛化能力。目前深度学习在推荐系统中已经有了一些研究成果,并在YouTube的视频推荐、Yahoo的新闻推荐等实际场景中得到了一些应用,但整体来说还处于起步阶段,模型在可扩展性、复杂性和解释性方面还有待进一步研究。