俞 伟,徐德华
(同济大学 经济与管理学院,上海 200092)
随着科技的飞速发展与我国改革开放的日趋深入,我国经济正朝着数字化经济转型升级。尤其是在电子商务领域,我国已经走在世界前列,代表性企业有淘宝天猫、苏宁易购等。电子商务已经成为了一种不可或缺的生活方式。然而,由于电子商务平台拥有越来越多的商品,用户有效获取到满意的商品变得越来越困难,产生了信息过载(Information Overload)问题。对于这样的难题,推荐系统应运而生。它承担了解决信息过载问题重任,已成为工业界和学术界的关注焦点,目前已经得到了广泛应用并形成了大量研究成果。本文将对推荐系统领域的国内外研究成果进行梳理,并对未来的研究方向进行展望。
协同过滤的基本思想是,通过协作的机制,用户对已浏览的商品做出一定回应,并将这些信息记录下来以实现过滤的目的,从而帮助其他用户筛选商品。一般的,协同过滤算法可以划分为两大类,即基于记忆的协同过滤和基于模型的协同过滤。
基于记忆的协同过滤的实现过程主要包括两个关键步骤:①使用用户-商品评分数据来计算用户或者商品之间的相似性;②根据与目标用户相似性最高的近邻或与目标商品相似性最高的近邻来计算目标用户对某商品的评分。基于记忆的协同过滤算法包括基于用户的协同过滤和基于商品的协同过滤。
1.1.1 基于用户的协同过滤
对于推荐任务来说,评分数据仅仅知道一部分,需要对未知的评分进行预测。根据基于用户的协同过滤算法的思想,需要计算用户两两之间的相似性,目前度量用户相似性的 方 法 主 要 有 皮 尔 森 相 关 系 数 ( Pearson correlation coefficient)、余弦相似性(Cosine similarity)和调整余弦相似性(Adjusted cosine similarity)这三种方式。在用户相似性计算时,通常会面临评分尺度、共同评分商品过少、隐式评分数据和相似性关系不满足传递性等问题。在获得目标用户的最近邻居之后,接下来就需要计算目标用户对待预测商品的评分。一般的,采用引入用户对商品评分的平均数来有效克服评分尺度不一致问题。此外,还可以通过偏好过滤的方法来消除用户评分尺度不同的问题[1]。最后,根据目标用户对每个待预测商品的评分值,选择得分最高的几项商品推荐给该用户。
1.1.2 基于商品的协同过滤
随着电商平台用户数量的不断增长,基于用户的协同过滤需要频繁更新用户相似性矩阵,但是被推荐的商品数量则保持相对稳定,商品相似性矩阵更新频率较低。据此,基于商品的协同过滤算法被提出,其基本思路是:根据用户对商品的历史评分数据,通过计算商品间的相似性来获得每个商品的最近邻居集合,然后根据目标用户对待预测商品的最近邻居的评分数据,预测该商品的评分,最后根据商品的评分高低,为该用户推荐商品。
有学者研究认为相比于基于用户的协同过滤,基于商品的协同过滤能够取得很好的推荐效果[2]。
基于模型的协同过滤算法的基本思路是:基于数据挖掘与机器学习的方法,利用用户历史数据构建用户模型,并据此对待预测商品进行评分预测,最后为目标用户产生推荐列表。Breese等在1998年提出了基于概率的协同过滤算法。随着机器学习方法的兴起,越来越多的模型被应用到协同过滤算法当中,比如概率相关模型、贝叶斯模型、线性回归模型和最大熵模型[3]。
协同过滤算法只考虑了用户历史评分数据,并不包含用户本身的特征和商品信息。基于内容的推荐算法可以较为充分地使用这些信息,即把与用户曾经喜欢的商品最相似的商品推荐给他。利用机器学习、数据挖掘等技术,对历史数据分析建模,通过模型实现推荐。在对网页进行分类时,Park等采用Bayse分类器技术[4]。用户配置文件建模与更新是基于内容的推荐算法中最核心的环节之一[5]。Chang等提出了减少更新用户配置文件代价的方法,即对用户的长短期兴趣进行区分,短期感兴趣的关键字被赋于更高的权重[6]。
协同过滤推荐算法与基于内容的推荐算法都有各自的优缺点,因此在实际应用中,往往把不同的推荐算法进行组合来进行组合推荐,即混合推荐算法[7]。Campos等在混合推荐算法中使用了贝叶斯概率框架,将基于内容的特征和协作特征相结合,并取得了较好的推荐效果[8]。Burke等提出了一种在异构网络中引入多重关系的加权混合推荐算法,在不损失推荐精度的情况下提高了推荐的多样性[9]。Renckes等研究了一种混合基于记忆和基于模型的协同过滤算法的组合推荐,可以有效地生成商品推荐[10]。在提供相当准确推荐服务的同时,他们使用了随机化技术来保护用户的隐私。Sun等提出了一种基于排序学习的混合推荐算法[11]。对于在线旅游产品,Lucas等研究了基于关联度的分类方法的旅游推荐系统[12],实验表明其一定程度上可以消除推荐系统中的限制并提高推荐质量。
通常来讲,混合推荐算法融合了协同过滤和基于内容的推荐算法的优点,推荐效果更好,但是算法的复杂度增加了,其运行的时间成本更高。
随着时代的发展和需求的变化,推荐领域面临数据量越来越大,数据结构越来越丰富,同时对推荐效果要求越来越高的新情况,学术界和工业界都十分迫切地想要开发新的技术和方法来应对这些新的挑战。与此同时,深度学习技术在最近几年得到了快速发展,已经成为人工智能和互联网大数据的一个热潮。深度学习在计算机视觉、自然语言处理、语音识别和语义分析等研究领域取得了突破性进展[13]。深度学习凭借其具有的深层非线性网络结构,相对浅层模型具有两大优势:①理论上可以实现复杂函数的任意逼近;②可以通过逐层学习方法获得输入数据的分布式表示。深度学习能够很好地从样本中学习到数据集的本质特征,进而提升预测或者分类的准确性。由此,将深度学习应用到推荐算法之中成了推荐算法研究的最新方向。
Elkahky等提出了一种基于多视角深度学习方法的跨领域用户模型,采用深度学习模型,从用户浏览记录中获取用户的特征,并且根据用户信息实体与商品信息实体的语义匹配,进而得到用户的商品推荐列表[14]。Cheng等创新性地将深度模型和广度模型融合在一起,提出了广度与深度学习模型,使模型同时具备了泛化能力和记忆能力[15]。Li等提出了一种新的基于注意力的LSTM模型,该模型通过注意机制将主题建模融入到LSTM体系结构中,实现微博的Hashtag推荐[16]。Hidasi等提出了一种基于循环神经网络的推荐算法来模拟短期会话,以此获取会话中用户行为的潜在关系[17]。Geng等使用神经网络模型来获取社交网络中用户与图像的一致表示[18]。Kim等提出了一种新的上下文感知推荐模型——卷积矩阵因子分解模型,其将概率矩阵分解与卷积神经网络相结合,实验表明该模型具有非常好的推荐效果[19]。Bansal等提出了基于循环神经网络的文本推荐算法,该算法利用了三种数据,包括评分数据、文本标签数据和文本内容信息[20]。
深度学习可以从两个方面改进传统推荐系统:①它可以基于多层非线性映射单元组成的网络结构,从数据集中学习到用户和商品的深层次特征表示,而通常这些特征表示具备良好的泛化能力;②它可以从多元异构数据源中进行特征表示学习,并将不同结构的数据映射到同一个隐空间,从而获得数据的统一表征。显然,对于基于深度学习的推荐算法的研究已经成为推荐算法领域的前沿研究。