刘方爱 王倩倩 郝建华
( 1) 山东师范大学信息科学与工程学院,250358,济南; 2) 山东女子学院数据科学与计算机学院,250002,济南 )
互联网的发展虽然为人们带来便利,但是同时也带来了信息过载的困扰,使人们难以在海量的信息中快捷地找到自己需要的信息.目前的搜索引擎虽然可以满足大众的简单需求,但对于信息需求的个性化服务存在明显不足.因此,作为解决个性化服务的重要手段,推荐系统应运而生.与搜索引擎不同,推荐系统并不需要用户提供明确的需求信息,而是通过分析用户的历史行为信息,深入挖掘用户的兴趣偏好,主动向用户提供信息,从而解决“信息超载”问题.
推荐系统在1997年由Resnick等人[1]提出,Resnick等人对推荐系统进行初步定义,该系统包含用户模型、推荐模型两部分内容.其中,用户模型主要是对用户的浏览轨迹、购买记录等信息进行获取与表示,获取的方式有显式获取与隐式获取两种.显式获取通过用户对产品的表达偏好程度直接获得,例如对产品进行的评价(喜欢/不喜欢);隐式获取是利用系统对用户历史行为的追踪发现用户的兴趣偏好,间接获得数据.
在推荐系统发展的初始阶段,主要是基于内容的推荐或基于协同过滤(CF,Collaborative Filter)的推荐[2].基于内容的推荐是将用户偏好与项目内容特征进行匹配,进而为用户提供推荐结果[3],可以应用于多种场景中.比如,可以根据电影的题材、演员的基本信息以及导演人员等为用户生成个性化的电影推荐;可以根据图书的题材、作者类型等信息提供图书的推荐等等.Ekstrand等人[4]在2000年提出了基于协同过滤的推荐,它主要是根据与喜欢此项目的其他用户的偏好产品进行推荐.推荐的准确性评价指标中,协同过滤推荐得到了较大的提高,逐步被学术界和企业界所接受.但是这种推荐方法只利用浅层的模型依赖关系,无法学习出用户和项目的深层特征表示,并且与许多基于内容的算法相比,缺乏可解释性.基于上述存在的问题[5-7],很多研究人员在此基础上对协同过滤推荐算法进行改进.2008年,Koren等人[8]进一步将潜在因子模型(LFM,Latent Factor Model)与协同过滤相结合,使得协同过滤算法又前进了一步;Koren等人[9]在2009年又提出基于矩阵因子分解(MF,Matrix Factorization)的协同过滤及其变体方法,实验证明该方法在评分预测中效果较好.尽管研究人员提出的方法在推荐性能方面有所提升[10],但潜在因子模型中的“潜在因素”(例如矩阵分解)并不具有直观解释意义,这使得人们难以理解为什么某个项目预测了较高评分并被推荐出来.虽然传统的基于内容的推荐方法能提高推荐的可解释性,但它基于浅层模型提取用户-项目特征进行推荐,这种特征提取方法在很大程度上依赖于人工设计特征,严重制约了推荐的有效性和可扩展性.
随着计算机技术、人工智能技术等领域的发展,深度学习技术被广泛应用在了语音识别、图像处理等方面.该技术不仅能够准确地获取多样化数据中用户与项目间的关系,而且能够将抽象代码转化为高阶数据信息,因此,深度学习技术被广泛地应用在推荐系统中,如2007年Salakhutdinov等人[11]在其研究中将深度学习与协同过滤进行融合,并应用在电影推荐中.受此启发,越来越多的研究人员展开了应用于推荐系统中的深度学习网络模型研究.
基于深度学习的推荐系统框架如图1所示[12].基于深度学习的推荐算法的基本原理为:首先获取用户的隐式、显式信息以及点击率、图像内容、文本内容、浏览时长等一系列辅助信息数据,并以此作为算法的输入,进而通过循环、卷积神经网络、自编码器等深度网络模型及注意力机制等深度学习技术对输入数据的隐藏特征表示加以学习,然后通过一系列方法如softmax函数或者内积等将这些隐藏特征表示加以计算得出最终的预测或推荐结果.
图1 基于深度网络模型的推荐系统框架
基于深度神经网络的推荐相较于传统的推荐方法具有以下两点优势:
1) 传统的推荐方法在本质上来说属于一种线性结构算法,模型的表达力不足,而相比之下,深度神经网络由于使用了诸如tanh、sigmoid和relu等非线性激活函数,所以具有提取复杂用户-项目特征的能力.
2) 与传统推荐方法相比,基于深度神经网络的推荐算法没有人工提取特征的工作流程,并且能够挖掘出数据之间的复杂逻辑关系,除此之外,该推荐模型还能够融入诸如图像、视频、音频、文本等异构多源数据,数据挖掘能力更强.
2.1基于受限玻尔兹曼机的推荐受限玻尔兹曼机(RBM,Restricted Boltzmann Machine)是一种基于概率的网络模型,其原理是通过学习经过重构的用户输入的原始数据的方式得到其概率分布,RMB是在原有玻尔兹曼机的基础上加以改进形成的随机神经网络.经过数年的发展,RBM常用于特征学习与分类[14、16]、主题建模[15]、降维[13],尤其在协同过滤[12]领域得到了广泛的应用.该模型对训练样本还原度较好,既适用于有监督的训练场景,也适用于无监督的训练场景,通过学习数据中隐藏的依赖关系来进行预测分析.
RBM的主要结构如图2所示,由可见层与隐藏层组成,是一个两层的网络结构,每一层的神经元之间是相互独立、毫无关联的[17].RBM的工作原理可以看成是编码解码的过程,其编码过程相当于从可见单元层传递输入数据到隐藏单元层的过程,解码过程相当于将神经元的值从隐藏单元层还原到可见单元层.在训练过程中,通过多次正反向的迭代更新相关系数,将计算偏差尽可能地缩小,最终实现对数据的准确预测.
图2 受限玻尔兹曼机示意图
受限玻尔兹曼机凭借简易灵活的网络结构被广泛应用在许多领域,尤其是在推荐场景中,其主要作用是将用户的偏好特征从数据中挖掘出来,并对用户将来可能交互的未知数据进行预测.Georgiev等人[18]提出基于受限玻尔兹曼机对用户和交互项目的特征进行建模;Hu等人[19]通过将RBM融入到群组推荐,挖掘整个用户群组的特征偏好;Phung等人[20]在RBM原有两层架构上增加全连接层,进一步挖掘已评分项目之间隐藏的关系.受限玻尔兹曼机中每个神经元都是只有激活和不激活两种状态,也就是说每个单元都是一个二元变量,将这样一种结构应用到推荐系统中,可以分别对用户的特征以及用户与项目之间的关联进行建模,通过训练自动抽取用户及交互特征,进一步提高了推荐系统的准确度.
2.2基于自编码器的推荐自编码器(AE,Autoencoder)是由Williams等人提出的一种前馈神经网络,主要用于维度较高、较难处理的数据.AE由三部分组成:输入层、隐藏层和输出层,如图3所示.自编码器的核心结构是编码和解码的一个映射过程,编码过程从输入层到隐藏层实现数据重构,下一步通过解码从隐藏层映射到输出层,其中输入层和输出层的神经元数量是保持一致的.
图3 自编码器示意图
自编码器利用重构策略尽可能地保证输入与输出接近,但该策略在提取信息的过程中会夹杂着无用信息,或者可能出现重构后与原数据一样,未进行重新编码.为解决上述问题,有研究者提出去噪自编码器(DAE,Denoising Autoencoder)的概念,在训练时将降噪因子加入到原始数据中,利用降噪因子处理无用信息.该策略提高了输入数据表示的准确度,进一步提升了模型的稳定性.另外,Vincent等人[21]提出了一种深层神经网络模型——堆栈去噪自动编码器(SDAE,Stacked Denoising Autoencoders),通过堆栈结构将多个去噪自编码器进行叠加,搭建更深层次的架构.SDAE可以通过非监督的方式学习得到数据的抽象特征表示.
DAE应用于推荐系统能够预测训练过程中数据的缺失值,SDAE通过多个叠加可得到输入矩阵的更高维表示[22],并且能够将多源数据融合.Li等人[23]通过将多源信息融合到推荐系统中,提出了边缘化去噪自编码器;Wang等人[24]提出了一种生成概率形式的堆栈去噪自编码;Strub等人[25]提出了一种去噪自动编码器模型,可以将多源信息数据整合到堆栈中的每一层.Zhang等人[26]利用堆栈去噪自编码器提取评论文本特征.受限玻尔兹曼机的预测结果是利用最大化“对数似然函数”估计得到的,基于自编码器使用了推荐系统中最常用的精确度指标——最小化均方根误差,因此与自编码器的推荐模型比基于受限玻尔兹曼机的推荐模型具有更高的预测准确度.
2.3基于循环神经网络的推荐循环神经网络(RNN,Recurrent Neural Network)是基于序列信息的人工神经网络,可以模拟序列数据之间的影响关系.在很多推荐场景中,用户决策往往会受到过往经验的影响,因此用户的历史决策记录可抽象为一段序列信息,将其输入到循环神经网络模型中训练可提取出用户的喜好.循环神经网络应用到推荐场景最早是由Google等公司提出的,随后有研究者研究出了长短期记忆网络(LSTM,Long Short-Term Memory)以及门控制单元(GRU,Gated Recurrent Unit),这两种神经网络是在传统RNN基础上提出的,可以在一定程度上解决训练过程中出现梯度爆炸或消失的问题.循环神经网络可以应用在建模用户的历史交互序列,也可应用于提取用户特征,非常适用于预测、文本推荐等领域.
在循环神经网络中,上一时刻状态以及当前输入的单元状态会直接影响下一时刻状态.图4为展开的RNN序列数据,其中xt表示t时刻的输入数据,ot表示输出.
图4 循环神经网络示意图
2.3.1 长短期记忆网络 由于梯度消失问题,RNN不能很好地处理较长序列[28].LSTM是Hochreiter等人提出的RNN的一种变体,避免了传统神经网络面临的梯度消失等问题,其结构如图5所示,在传统RNN(图6)的基础上增加了三个特殊的“门”,包括输入门、遗忘门以及输出门,在单元状态之间传递控制信息,使得在较长序列数据中依然可以保持长距离的依赖关系.在LSTM中,遗忘门用于过滤之前的单元状态信息,输入门用于控制保留多少新信息,最后是控制丢弃当前层状态信息的输出门.
图5 LSTM结构图
图6 RNN结构
2.3.2 门控制单元 门控制单元是由Cho等人[29]提出的RNN的另一种变体,比LSTM结构更加简单,如图7所示.GRU结构包括更新门和重置门两个特殊“门”,其中控制信息过滤的是重置门rt,更新门zt用于控制上一时刻状态的影响,如果zt接近1,则表示上一时刻状态的信息全部保留.
图7 GRU结构
通过分析用户的序列数据,对用户短期内将要交互的项目进行预测是基于循环神经网络的推荐模型研究的重点内容.LSTM和GRU相比RNN增加了保存长期状态的隐藏状态单元,能够更加有效地对顺序之间的长期依赖关系进行建模.GRU由于具有较少的参数和更加简洁的结构,成为了目前序列建模中应用最广泛的循环神经网络模型.另外,与传统的推荐方法相比,当训练数据很多、隐层节点数较多或网络长度较大时,循环神经网络的训练需要耗费大量的时间.因此,如何提高网络的训练效率是需要深入研究的问题.
2.4基于卷积神经网络的推荐卷积神经网络(CNN,Convolutional Neural Network)是一种深层神经网络,常用于处理文本、图像以及一些非结构化数据等.卷积神经网络主要包括输入层、输出层和隐藏层,其中隐藏层又分为三层:卷积、池化和全连接层.
卷积神经网络的核心是卷积层,通过卷积计算出输入的数据特征,各神经元计算出特征后由卷积滤波器集成特征图,并继续向下一层神经元传递.在处理图像时,网络架构需要大量的神经元,因为图像中的每个像素点都可看成变量,而卷积运算可以利用较少的权重参数和更深层次的网络架构处理图像数据.
卷积神经网络的池化操作包括局部池化层全局池化层.下一层每个神经元都会与上一层神经元簇的输出结合.例如,最大池化操作将上一层中的最大值提取出来.池化层的操作进一步减少了参数数量,从而降低了网络计算复杂度.
全连接层将卷积层和池化层输出的特征进行加权,下一层神经元与上一层的每个神经元相连接,利用相应的函数计算得到上一层的输入.神经网络在层间传递计算时涉及到的函数主要包括权重向量和偏差,在不断迭代中更新,利用权重和偏差的矢量(一般称之为滤波器)表示输入的某些特征,滤波器在多个神经元中可以实现共用,从而节省内存空间,提升处理效率.
图8 卷积神经网络示意图
目前,已有许多研究者成功地将卷积神经网络应用在推荐领域,Oordetal等人[29]基于卷积神经网络从音频数据中提取出了潜在特征;Zheng等人[30]利用评论文本数据提取用户偏好,提出了基于注意力机制的卷积神经网络推荐模型并进行预测分析,大大提高了推荐的准确度.Zhou等人[31]在推荐系统中设计卷积神经网络获取用户的视觉特征,形成用户的视觉兴趣偏好.Kim等人[32]提出了卷积矩阵分解(ConvMF)模型,将卷积神经网络融入概率矩阵分解中.Lei等人[33]利用卷积神经网络捕获用户的偏好特征与图像特征.另外,有研究者将卷积神经网络与上下文感知推荐系统结合,为提取文本语义信息提供更加精确的推荐效果.Seo等人[34]利用基于注意力机制的卷积神经网络对评论文本信息建模,提取用户偏好以及项目的特征信息.
2.5基于深度知识图谱网络的推荐近年来,一些研究者将知识图谱(KG,Knowledge Graph)作为辅助信息引入深度学习推荐系统.这样能够实现两个方面的优点:其一,能够有助于提高推荐系统的准确率;其二,能够为推荐结果提供解释性.知识图谱是一种异质图,其中节点表示实体,节点之间的连接表示节点的关系.可以将物品及其属性映射到知识图谱中来理解物品之间的相互关系[35].此外,用户和用户辅助信息也能够集成到知识图谱中,这使得用户和物品的关系以及用户偏好可以被更准确地捕获[36].图9是一个基于知识图谱的推荐系统示例,其中电影“Avatar”和“Blood Diamond”是推荐系统为Bob的推荐结果.这个知识图谱把用户、电影、演员、导演以及流派作为实体,把朋友关系、交互、归属、表演以及指导作为实体之间的关系.通过知识图谱,影片和用户之间存在不同的潜在关系,这些潜在关系能够帮助推荐系统提高准确性.另外,基于知识图谱的推荐能够为推荐结果提供解释性.例如,推荐“Avatar”的一个原因是,“Avatar”与 Bob 之前看过的“Interstellar”,而“Interstellar”属于同一类型风格的电影.
图9 基于知识图谱的推荐系统
与传统的推荐系统相比,将知识图谱引入深度学习推荐系统,能够带来多种实体和关系来连接用户和物品,并且能够说明推理过程.Wang等人[37]应用知识图谱的特点,将项目与其属性联系起来,打破了独立交互假设,提出了一种基于知识图注意网络(KGAT,Knowledge Graph Attention Network)的新方法,该方法以端到端的方式,显式地建模知识图的高阶连接,能够提供更准确、多样化和可解释的推荐;Zhou等人[38]结合面向词和面向实体的知识图谱来增强会话式推荐系统(CRS,Conversational Recommender Systems)中的数据表示;Zhou等人[39]研究了利用知识图谱来处理交互式推荐系统(IRS,Interactive Recommender System)中问题的潜力,利用从知识图谱中学到的项目相关性的先验知识指导候选项的选择,动态处理用户偏好和用户反馈的稀疏性.Palumbo等人[40]提出entity2rec,它的一个关键元素是构造属性特定的子图,通过属性特定的知识图嵌入来学习用户-项目之间的相关性,以便进行项目推荐.总之,将知识图谱引入推荐系统不仅能够为推荐结果提供可解释性,而且能够更好地处理用户偏好和数据稀疏的问题.
在推荐系统中经常采用的性能评价指标主要有:均方根误差、平均绝对误差、标准平均误差、召回率、精确率.
1) 均方根误差(RMSE,Root-Mean-Square Error)[41]用于衡量评分的准确性,公式如下:
(1)
2) 平均绝对误差主要衡量用户预测评分与实际评分的绝对误差,具体公式如下:
(2)
其中n为用户i评分产品的数量,pia为预测得到的用户评分,ria为实际的用户评分.
在企业各项工作中,离退休工作不是大局但影响大局,不是中心却牵动中心。洛阳石化公司不断适应新形势,研究新特点,充分尊重老同志为企业发展继续贡献力量的真诚愿望,主动搭建平台,使离退休职工的有生力量得到最广泛地调动,把老同志的优势和作用转化为为党的事业增添正能量,实现了和谐共赢的局面。多年来,在良性互动理念的引领下,坚持通过开展丰富多彩的敬老爱老管理服务活动,来提升离退休工作的凝聚力、感召力,努力营造良性互动、和谐相处的融洽氛围,为企业改革发展作出了积极贡献。
3) 标准平均误差的定义如下:
(3)
其中N为标准平均误差,M为平均绝对误差,rmax为用户评分最大值,rmin为用户评分最小值[42].
4) 召回率由Recall@N表示,缩写为R@N.召回率应用在位置兴趣点的推荐中,R@N定义如下:
(4)
5) 精确率由Precision@N表示,同样应用在位置兴趣点的推荐中,P@N定义如下:
(5)
在推荐系统中,距离标准化指标[43]、ROC曲线[44]、半衰期指标[45,46]等都可以对系统的性能进行衡量.推荐的准确性是关键的衡量指标,同时提供给用户好的体验也至关重要.
4.1基于注意力机制的双向GRU神经网络推荐模型深度神经网络技术具有有效捕获用户与项目的深层次非线性关系的特性,基于这一特性,笔者提出了基于自注意力的双向GRU神经网络模型(Att-BNN,Behavior-aware Neural Network with Self-Attention)[47].用来解决一般的推荐方法在预测用户偏好时无法解决的冷启动问题和长距离依赖的问题,如图10所示.该模型分别使用自注意力网络和双向GRU网络两个神经网络以预测用户当前消费动机,首先将用户的交互行为序列作为输入得到项目嵌入表示,其次为了更好地提取用户行为序列中项目之间隐藏的深层关联,使用双向GRU替代原有简单的网络结构.Att-BNN是一种“局部-全局”的网络模型,通过结合注意力机制重要性高的项目赋予更高的权重,可以同时学习到包含用户长期偏好和短期项目的信息.该模型主要包含三个核心部分:1) 通过嵌入模型获得标准的项目表示空间,然后学习项目的嵌入向量,并获得不同项目之间的序列相似程度.2) 设计两个交互行为学习网络分别用于学习用户当前兴趣和用户长期偏好,其中双向GRU网络从正反两个方向挖掘项目序列信息.3) 在基于双向GRU模型的用户长期偏好学习网络中引入了注意力机制,将该机制的局部激活能力和GRU中的序列学习能力结合,对用户偏好变化进行建模,其他序列中与用户偏好相关的项目便可以由模型识别出来.
图10 Att-BNN模型结构图
通过以上三个步骤,Att-BNN能够同时挖掘用户偏好与偏好变化过程,注意力机制所带来的局部激活能力能够增强相关性更强项目的权重,削弱偏好迁移部分的影响,所以能够更精准地为用户推荐可能感兴趣的项目内容.
基于卷积神经网络的内容感知位置兴趣点推荐模型分别由用户的兴趣偏好建模、用户对位置兴趣点评论的情感分类以及用户关注的位置属性信息这三方面组成.其中,在用户对位置兴趣点评论的情感分类模块引入了卷积神经网络,如图11所示.
图11 基于卷积神经网络的评论文本情感分类模型结构
该模型使用的网络结构与传统的CNN架构类似,主要由四部分构成,包括嵌入层、卷积层、池化层、输出层.将评论文本作为词向量输入到卷积神经网络中,经过训练得到预定义的情感分类.
首先将评论文本中的每个词映射为对应的词向量,形成词向量矩阵作为卷积神经网络的输入传递到卷积层,然后,通过卷积运算得到矢量矩阵后由滤波器集成,输出包含文本信息前后依赖关系的特征表示,最后,选择合适的池化策略将特征表示转化为特定维度后输出.评论文本有三种输出结果,包括-1、0、1,分别描述用户对位置兴趣点的不同喜爱程度.训练过程中通过Softmax函数将文本情感向量转化成相应的概率,并经过反复迭代更新参数将误差最小化.
将卷积神经网络应用于位置兴趣点推荐,基于评论文本分别对用户的情感分类和位置兴趣点建模,不仅可以解决上述的数据稀疏问题,还可以提升推荐算法的准确率,卷积神经网络的卷积和池化操作也能够进一步提高训练速度,缩短训练时长.
4.3基于分层注意力机制的推荐模型随着深度神经网络在推荐系统中的广泛应用,基于评论文本的推荐成为热点研究方向之一.目前基于评论文本的推荐方法没有充分考虑用户和项目的潜在特征,过度关注评论文本内容本身,在真实的应用场景中,用户的下一步决策会不同程度地受到用户以及项目自身属性特征的影响.Zheng等人[30]将用户和项目属性特征输入到卷积神经网络生成特征表示向量,融合了评论文本偏好信息,该模型的最终推荐结果与传统推荐方法相比,推荐质量有所提升,同时该模型也存在几点不足:一方面,评论文本中的每个句子以及句子中的每个单词对整个评论文本的影响都是不一样的,因此在训练过程中,这些单词或者句子需要赋予不同的权重;另一方面,对于用户和项目的向量表示应该从整个语义层面考虑,而不是仅仅简单地考虑几个单词的组合.
针对上述问题,Xing等人[49,50]提出了分层注意力机制模型(HAUP,Hierarchical Attention User and Product),该模型分别从单词层面、句子层面、整个文本层面以及结合层这几个角度建模.该模型构建了分层的双向GRU网络,能够很好地处理较长文本序列数据内部之间隐藏的关联性.基于用户的评论文本信息以及用户对项目的评分信息作为模型的初始数据,分别从单词和句子层面提取用户偏好以及交互项目属性的表示向量,然后基于分层的双向GRU网络分别构建用户偏好的评论文本表示以及项目属性特征的评论文本表示.为区分评论文本中不同句子及句子中的不同单词的重要性,HAUP分别从句子级别和单词级别引入了注意力机制.最后将得到的用户表示以及项目表示映射到同一个向量空间生成预测结果.
HAUP模型的具体结构如图12所示.该模型相较于其它推荐模型的创新点在于:1) 分别从单词层面和句子层面构建双向GRU网络来生成用户偏好及项目属性表示,将评论文本的词向量分别输入到代表用户和项目的双向GRU网络中生成句子层面的表示向量,句子层面的表示向量再经过双向GRU网络即可输出最终的文本表示.2) 在生成用户和项目表示的两个双向GRU网络中均引入了注意力机制,分别从单词层面和句子层面识别重要部分,并赋予不同的权重,从而更准确地提取出用户的深层次偏好和项目的特征.
图12 HAUP网络框架
本文在分析传统推荐算法的基础上,讨论了基于深度神经网络的推荐系统的研究现状,总结了推荐系统的性能评价指标,介绍了三种基于深度学习的推荐模型.大多数基于深度神经网络的推荐模型在一定程度上提高了算法性能,但仍有其局限性.基于循环神经网络的推荐模型能够提取上下文的依赖关系,比较适合处理基于序列的预测或推荐任务;基于卷积神经网络的推荐模型可以定位重要信息,更准确地进行特征学习,并且可以缓解冷启动问题,更适合基于图像或文本的推荐任务.
实际上,用户偏好会随着时间及环境因素发生变化,是动态的.现在的推荐模型集中在如何更准确地提取用户的静态偏好表示方面,忽略了用户偏好的动态变化,这样会导致推荐模型只集中于推荐流行度高的项目而没有结合用户当下的个性化需求和喜好.因此,可以从如下方面研究推荐系统模型:一是如何更好地定位用户的动态偏好变化,构建长期有效的动态推荐算法模型;二是基于知识图谱,将知识图谱作为辅助信息引入到推荐系统,可以有效地解决传统推荐系统存在的稀疏性和冷启动问题;三是将多模态信息进行融合,比如图像、文本、视频等,利用融合的多模态信息构建综合推荐模型,提高推荐的准确率.