1.2 国内外研究现状
1.2.1 推荐系统基础研究现状
21世纪以来,不管是在商业界,还是在学术界,推荐系统都取得了长足的发展。在学术界,美国计算机协会从2007年开始召开有关推荐系统发展研究的国际会议(ACM RecSys),有许多关于推荐系统的优秀文章在该会议上发表,从各个方面优化了推荐系统,使推荐系统更加完善。与此同时,很多公司将数据集公开举行竞赛,并且将数据集提供给参赛者免费使用,其中NetFlix公司的推荐众包、国内阿里巴巴举办的天池大数据竞赛就是较为典型的案例。这些活动在一定程度上激发了相关人员研究探索推荐系统的热情;更加值得一提的是,在这些竞赛的实战中,参赛者们创造了许多带有创新性的、与现实密切相关的推荐策略,例如,以矩阵分解为基础建立起来的推荐算法就是在Netflix主办的有关竞赛中提出来的。在商业界,互联网领域越来越多地出现个性化推荐技术的运用实例:一方面,许多专业推荐网站产生了,Pandora、Jinni就是其中相对典型的案例;另一方面,越来越多的网站将推荐系统引入并作为网站的重要模块,为上网用户带来更好的体验,最终为网站带来更高的利润,亚马逊、京东、天猫就是其中较为大型且运用得比较成功的案例。
周涛在科学网博客提出了个性化推荐面临的十大挑战。Ricci等对推荐系统的科学研究和实际应用进行了梳理。吕林媛等对推荐系统进行了全面的综述。推荐算法(或叫推荐策略)作为推荐系统的核心功能模块,是其最重要的部分,决定了推荐系统的性能好坏,对推荐效果有着关键性的影响。徐元萍和陈翔针对推荐系统存在的商品类型单一、流行商品多、缺乏新意等问题,从兴趣扩展和预测角度给出了新颖性定义,改进了随机游走方法,提出了融合新颖性特征的推荐算法。
在推荐系统典型应用的电子商务网站系统中,用户和商品数量巨大,数目动辄以万亿量级计,两个用户之间选择的重叠非常少。据统计,推荐系统研究常用的MovieLens数据集的稀疏度为4.5%,Netflix为1.2%。数据的稀疏,使得基于相似/关联分析的推荐算法难以取得良好的效果。对于新用户、新商品,由于缺少信息,很难给出准确的推荐,这是推荐中所谓的冷启动问题。标签系统的广泛应用在一定程度上可以缓解冷启动问题。推荐系统常见的冷启动和新用户问题,本质上都属于数据缺失的问题。王梦晗系统研究了推荐系统中的数据缺失问题。
与推荐系统应用相关的大数据和计算量等科学与工程问题,也是研究的热点。尽管电子商务推荐系统中数据稀疏,但是包括用户信息、商品信息、购买行为信息等,数据量大且具有动态性,如何快速高效处理推荐系统中的数据,实现推荐的实(准)时性、准确性,是一个重要的问题。Cacheda等设计了一种预测算法,在保证预测效果的前提下,速度远远快于传统的协同过滤算法。Gemulla等提出了随机梯度下降法,并进行矩阵分解,提高算法的并行化。
由于推荐的广泛应用和高商业价值,推荐研究也扩展到其他方面,如用户行为模式挖掘与分析,推荐系统脆弱性、推荐效果评估,推荐用户界面与用户体验等。从研究方法角度来说,近年来随着网络科学的发展和广泛应用,利用网络科学研究基于相似度、用户兴趣、社交关系、信任等的推荐问题成为热点。
1.2.2 协同过滤推荐研究现状
根据具体推荐算法思想以及采用的具体策略的差异,推荐算法通常分为基于内容的过滤(Content-Based Filtering,CBF)推荐算法、协同过滤(Collaborative Filtering,CF)推荐算法以及组合推荐算法。尽管推荐算法多种多样,但协同过滤推荐算法由于操作简单、解释力强、易于实现,被认为是目前应用最广泛、最成功的推荐算法。“协同过滤”的概念是由帕洛阿尔托研究中心的Goldberg在Tapestry系统中首次提出的。它的提出基于这样一种假设:过去有相似偏好的用户群体在未来也具有相似的偏好。因此,该算法的关键在于为目标用户找到有相似兴趣的邻居用户群。协同过滤推荐一般可以分为四个步骤:测量用户相似度或项目相似度,建立最近邻用户或项目集,预测评分,得到推荐列表。Breese等在1998年提出基于用户的协同过滤推荐算法,Sarwar等在2001年提出基于项目的协同过滤推荐算法。
1994年至2006年间,推荐系统领域的主要研究方向是基于邻域的协同过滤推荐算法。基于邻域的协同过滤推荐算法可以概括为以用户相似度为基础建立的算法以及以项目相似度为基础建立的算法。GroupLens研究系统第一次运用以用户相似度为基础的协同过滤推荐算法,为Usenet新闻以及电影做出匿名协同过滤解决方案。Herlocker等则提出了以用户为基础建立的协同过滤算法框架,更进一步提出k近邻的思想。Sarwar的研究重点是以项目为基础建立的协同过滤推荐算法,由于该算法对于线下的数据预处理更加适用,相对能更好地适应大规模用户和项目数据,所以在业界应用最多,亚马逊运用的就是这一算法。虽然协同过滤推荐算法适用的领域比较多,但算法自身也存在着一些问题需要解决,比如数据的稀疏性、冷启动或者恶意行为攻击等。
相似度度量是协同过滤推荐的核心,关于协同过滤推荐的研究,一个很重要的方面是对相似度度量的改进和使用条件的研究。为改进相似度度量,一种方案是不考虑其他因素,只对相似度进行调整或精确化。邓爱林提出的基于项目评分预测的协同过滤推荐算法成为很多后续算法的基础,如李聪的领域最近邻推荐算法、朱国玮和周利的遗忘函数与领域最近邻混合推荐算法。该算法在计算用户相似度时第一次使用用户评分项目的并集,增加了用户之间共同评分项目数,不仅使用户相似度更精确,而且有效缓解了数据稀疏的问题。甘明鑫等认为流行性项目(度大的项目)会使目标用户与多个用户之间产生弱连接(用户之间的相似度较低),这些弱连接在最终预测项目评分时会由于累加而提高流行性商品的推荐概率,从而影响最终推荐的多样性,因此提出两种调整用户相似度的方法,一种是定义一个阈值,将小于此阈值的用户相似度设置为0,得到相似度过滤网络;一种是使用幂律公式调整用户相似度。
另一种使相似度更精确的方案是考虑用户兴趣漂移。很多学者认为用户的兴趣是随着时间而变化的,在用户评分项目集中,处于不同时间点的项目应该被赋予不同的权重。考虑用户兴趣漂移问题后,郑先荣借鉴心理学遗忘规律,先后提出了线性逐步遗忘推荐算法与非线性逐步遗忘推荐算法。在计算用户相似度时,利用线性或非线性逐步遗忘推荐算法,根据评价时间逐步降低每项评分的重要性。刑春晓等将基于时间的数据权重与用户相似度有机结合,来适应用户兴趣的变化。朱国玮等综合了基于领域最近邻的推荐算法与郑先荣提出的非线性逐步遗忘推荐算法,构建了二者的混合算法,在推荐结果上优于单一算法。曹毅和贺卫红将用户评价相似度、用户特征相似度以及项目与用户兴趣符合度三者加权相加,作为最终的用户相似度。李悦等考虑到用户偏好聚类,提出融合用户偏好聚类优化的协同过滤推荐算法。
尽管协同过滤推荐算法展现了较好的推荐准确性,但当数据中存在明星用户(度较大的用户)和明星项目(度较大的项目)时,算法的初始假设——过去有相似偏好的用户在未来也具有相似的偏好,受到质疑。这是因为协同过滤推荐算法在计算用户相似度时几乎都采用Pearson相关系数法、余弦相似度或修正的余弦相似度,这些方法会使明星用户与多个用户之间产生弱连接。比如,一个用户集中有10位用户,其中用户A和用户B都对某些商品感兴趣,那么两位用户之间的相似度应该较高(假设为0.7);而剩余的8位用户都对另一些商品感兴趣,那么这8位中的任意两位用户的相似度也比较高(假设为0.6);此外,这10位用户都对某一明星商品感兴趣,因此,用户A和用户B与剩余8位用户之间存在较低的相似度(假设为0.1);在为用户A推荐时,用户B的推荐影响力(0.7)将不及其余8位用户(0.1*8),那么其余8位用户感兴趣的商品将更有可能出现在用户A的推荐列表中。从此例可以看出,传统的相似度计算方法扩大了明星用户和明星项目对推荐精度的不利影响。
1.2.3 基于网络科学的推荐研究现状
近年来,基于社会网络、复杂网络等网络科学的推荐算法受到越来越多学者的关注。基于网络科学的推荐算法,借鉴物质扩散与热传导的思想,将推荐系统输入数据抽象为复杂网络模型,在算法复杂性上低于经典的协同过滤推荐算法,并且具有较好的可扩展性。
基于二分图网络结构的推荐算法最早由周涛等根据物质扩散原理提出。初始时每个用户都具有一定的推荐能量,通过一种资源分配机制流向与其有关系的项目,最后将获得推荐能量较高的项目推荐给未选择过此项目的用户。实验证明,相比经典的协同过滤推荐算法,该算法能够取得准确度更高的推荐效果。通过考虑基于物质扩散的信息推荐算法中初始物质分布的精细结构,周涛又提出了一种改进的算法,此算法相比原始算法,能够将精确性提高约10%。此外,从不同信息源获取的对于同一个项目的推荐信息可能存在着一定的冗余,周涛等设计了一种利用二阶关联简单快速去除可能冗余信息的方法,在基于物质扩散的推荐算法框架下,该方法能够有效提高推荐精确性。
基于二分图网络结构的推荐算法实质上是采用了一种新的用户之间相似度的计算方法,虽然具有较高的推荐准确性及较低的计算复杂度,但是这种算法也有不足之处:一、倾向于向用户推荐流行性高的商品,因为明星商品易获得更高的推荐能量,推荐算法的多样性有待提高;二、不考虑用户的显式评分或者直接剔除低于中挡评分(3分)的项目评价,这在一定程度上会造成信息丢失,并且使得数据更加稀疏。针对多样性差的缺陷,周涛等提出了基于热传导的推荐算法,该算法倾向于推荐“冷”项目(度小的项目),因此能提高推荐的多样性,但精确性有所下降。于是周涛等综合了基于热传导与基于物质扩散的推荐算法,初步解决了推荐多样性与精确性的不平衡问题。在周涛等提出的组合算法基础上,刘闯和周炜星等分别从不同方面对该算法进行了改进,从初始资源配置对算法的影响出发,发现当赋予不同度的项目不同初始资源时,不仅能提高推荐的多样性,而且不会显著降低推荐的精确性。针对不考虑显式评分问题,张翼成等在物质扩散过程中将项目的显式评分考虑在内,消除了只通过用户-项目二分图映射得到项目关系网络过程中的信息丢失现象,提高了基于物质扩散推荐算法的精确度,但是此算法的计算复杂度过高。王茜和段双艳在考虑用户显式评分的基础上,改进了基于二分图网络结构的推荐算法,虽然该算法提高了推荐多样性,但在计算用户相似度时,将用户评分中的低分(3分以下)设置较小权重的方法不够恰当,因为当两个用户对同一个项目都评低分时,恰能提高两个用户之间的相似度,而不是降低两个用户之间的相似度。
其他基于复杂网络的推荐算法还有:李昕和陈炘钧提出的基于二分图内核的推荐算法,该算法采用有限步随机游走计算目标用户-项目对与已存在的用户-项目对之间的相似度,以此推断目标用户-项目对发生的概率,但在判断不同随机游走路线相似度时认为不同长度的相似路线相似度为0,这会提高流行商品(度大的项目,具有更多不同长度的游走路线)的推荐概率;米传民等提出了改进的基于网络随机游走的推荐算法;俞琰、邱广华在研究社交网络朋友推荐时,根据“小世界”假说,采用重启动随机游走方法遍历有限范围内的所有路径,通过达到局部最优实现全局最优,向社交网络用户更准确地推荐朋友;廉捷等调整了周涛等提出的二分图资源分配机制,改进了原始算法,使之能够应用于微博社交网络,向用户推荐感兴趣的微博;宾晟和孙更新提出了一种基于多关系社交网络的协同过滤推荐算法。
1.2.4 基于信任网络的推荐研究现状
信任是影响市场营销效果、推荐效果的重要因素。随着社交网络的发展,将用户社交网络关系引入到推荐中成为可能,也为向用户推荐其感兴趣的商品提供了一个思路,即目标用户对其信任且与其兴趣相似的用户推荐的产品更感兴趣。类似于FilmTrust、Epinions、Flixster等评价网站所提供的用户在线评分数据和用户间信任关系数据,成为验证基于社交信任的推荐算法的基础。融合社交关系的推荐算法成为个性化推荐领域的一个研究热点。
从推荐系统的角度出发,信任可定义为:如果用户A确定根据用户B的行为做出相应行动能带来好的结果,则用户A信任用户B,通常用信任度来衡量这类用户之间的信任程度。郭贵冰给出了信任在推荐系统中的定义:信任是一个人对另外一个人提供有价值评分的能力的信赖程度,而且概括出了信任的非对称性、传递性、动态性和上下文依赖性四点特征。信任是一种具有主观性、非对称性、条件传递性和不确定的二元关系。社会信任网络是指由系统中所有个体的信任关系所组成的网络,可表示为一个图G(V,E),其中V是节点集,E是边集合,边上的权重表示信任度。如图1.2所示,信任网络中的节点代表一个个用户,节点间的有向线段代表用户信任关系,线段上的数字代表信任度。有别于社交中的相似关系,信任关系是有向且非对称的。根据获取信任度方式的不同,信任度可分为直接信任度(图中用实线表示,通过用户间的直接信任评价得到)和间接信任度(图中用虚线表示,通过用户间的信任传递获得)。在图1.2中,用户A和B、用户A和C都有直接信任关系,同时用户B和C又都和用户D有直接信任关系,可根据传递规则推断用户A和D之间也存在信任关系。
图1.2 信任网络
在互联网和社交网络上,用户数量庞大带来信任数据的稀疏性。在大多数情况下,用户只会对自己的朋友(数量往往不多)和个别有影响力的用户产生信任关系,这些较少量的初始的信任关系数据往往不能带来较为乐观的推荐结果。因此,对初始的少量信任数据进行潜在的信任扩展挖掘从而有效改善信任数据稀疏的问题并且提高推荐准确率势在必行。
为改进相似度测量,信任模型受到广泛关注。O'Donovon和Smyth认为如果一个非目标用户能够为目标用户传递精确的预测,那么此非目标用户是可靠并值得信赖的。因此,一些学者将“信任”引入到协同过滤推荐算法中,通过一些信任模型计算目标用户邻居集中用户的信任度,并与相似度结合,以提高传统协同过滤推荐算法的精确性。贾冬艳、张付志提出了一种用户信任计算模型,通过用户相似度和信任度的双重过滤,得到目标用户的可信邻居集。
依照信任来源,信任被分为显性信任和隐性信任。以显性信任为背景的推荐系统主要利用社会网络中用户之间直接的社交关系、朋友联系程度等来定义用户之间的相互信任力。在基于显性信任的推荐系统的相关研究中,Massa和Bhattacharjee最早利用Epinions.com数据集中的信任关系构建信任网络,在信任传递时采取一种线性衰减的策略:在社会网络中距离源用户近的用户具有较高的根据预测得到的对于另一个用户的信任度。Golbeck提出了Tidal Trust模型,采用改进的“宽度优先”策略来完成对于系统中用户间信任度的预测。对于给定的用户A,根据用户A和用户B的信任度,寻找用户A的最短路径的所有用户B的综合评分权重。Jamali和Ester提出了TrustWalker模型,主要是在随机游走思想的指导下将基于项目和基于信任的两个系统聚集到一起。赖锦慧等认为数据稀疏性会使得基于用户评分计算的信任度不够可靠,因此将基于用户评分的信任模型与显性信任度量值相结合来弥补评分数据稀疏带来的缺陷。
以隐性信任为背景的推荐系统通过用户以往行为、用户偏好及评分信息来发掘用户与用户之间的信任关系。O'Donovan和Smyth在基于隐性信任的推荐系统的相关研究中,主要介绍了两种信任:Profile-level信任和Item-Level信任。Bhuiyan等使用文本挖掘方法将每个项目的相关关键字作为标签,估算相关标签之间的信任度,并通过条件概率计算用户对其他用户的信任度。
间接信任涉及信任提取和信任传递的问题。使用用户信任关系的传递,Massa和Avesain将信任引入推荐系统,为用户匹配更多的相邻用户,在一定程度上缓解了数据稀疏性问题。在信任提取方面,郭艳红等从用户为他人做推荐的次数和评价数量两个维度构造信任模型,并将其融入协同过滤推荐算法中。但这些算法主要基于信任推荐,未考虑用户间兴趣的相似度,无法确保为用户推荐其感兴趣的商品。王涛等基于相似度和信任度的关联规则进行微博好友的推荐。高辉冀等综合考虑信任和兴趣因素,提出一个组合推荐系统,把用户的信任关系分为直接信任和间接信任,直接信任度由用户自己给出,间接信任度从信任传递距离和最长传递距离公式计算得到。这种方法虽然兼顾了用户兴趣,但在现实的推荐领域(如音乐、电影等)很难获取用户的直接信任度,实用性不高。彭鹏等基于用户信任和兴趣,运用概率矩阵分解方法进行了推荐算法研究。徐毅等基于概率矩阵分解提出一种新的推荐算法,先重新构建用户间的信任关系,在社交网络中赋予被他人信任程度高的用户更高的权重,然后利用用户相似度辨别和衡量目标用户和信任邻居间的偏好差异,最后使用加权相似度和信任度的推荐策略做出推荐。上述研究表明,同时考虑相似度和信任度能很好地提升推荐效果。
胡春华等考虑到不信任关系所隐含的商业信息,提出一种结合信任和不信任的实值受限玻尔兹曼机推荐算法,构造了信任-不信任监督机制。万坪禺基于活动社交网络的异构特征和活动内容文本信息提取了主题模型,根据用户主题模型与活动主题的相似性进行活动推荐。张琦等为了更准确度量社交关系对推荐预测的影响,提出了基于领域信任及不信任的社会化奇异值分解推荐算法。
1.2.5 文献综述
通过对推荐系统及相关研究的梳理,不难发现,经过近三十年,推荐系统的研究取得了很多成果,并应用到实际中产生了经济价值。但随着移动互联网、社交网络等的应用,以及用户对个性化推荐要求的日益提高,推荐系统方面的研究还存在很大的发展空间,下一步值得关注的方面包括:
(1)针对传统协同过滤推荐算法过于依赖相似度、可扩展性差、多样性差、多样性与准确度难以平衡等问题,可以考虑新的相似度度量方法。尤其是随着网络科学理论的发展,推荐依据的数据越来越丰富且数据中包括网络关系信息,可运用基于网络科学方法的相似度度量方法进行推荐。
(2)基于信任的推荐算法能够有效避免冷启动以及数据稀疏性所带来的负面影响,提高推荐结果的覆盖率。但是存在如下不足:一是在现实的数据当中,最初的直接信任网络数据比较稀疏;二是假设信任度越大的用户的偏好越接近,而实际情况可能是假设不成立;三是在最初的直接信任网络中存在很多有关信任的噪声。所以,对于基于信任的推荐,尤其是基于社交网络的推荐,社交信任的传递、信任关系的准确判断以及信任矩阵、协同推荐算法的合并运用也值得进一步研究。
(3)随着标签的广泛应用,标签中隐含的信息可在一定程度上解决一些推荐问题。用户兴趣是重要的用户方面的标签。当前基于用户兴趣分类的算法关注用户项目评分矩阵中的评分值。实践证明,直接使用用户-项目评分矩阵来进行用户的最近邻居集的寻找,其实并不完全符合用户选择项目的实际情况,有必要综合考虑用户评分与项目属性之间的关系、用户的偏好。
(4)目前基于矩阵分解的推荐算法的原始数据就是用户在系统中给的评分(以及用户购买矩阵),但随着用户和商品信息越来越丰富,如何将多类型的信息集成用于推荐中,也是值得研究的问题。比如用户在网站的行为并非只有评分或者购买行为,还有很多其他行为,例如浏览、添加购物车等。因此,可以利用用户的这些行为对原始的待分解矩阵进行填充,不断增加先验信息来提高推荐的准确度。另外,对于用户在不同网站上的信息也可以进行综合利用,例如结合用户的社交网络信息、用户的搜索信息等来丰富矩阵的内容。