推荐可以是个性化的,也可以是非个性化的。在非个性化推荐中,用户对项目的选择基于其他用户在过去访问项目的次数;而个性化推荐的主要目标是根据用户个人的品位和偏好为其提供最好的商品。虽然个性化推荐长期以来在很多领域得到了应用,但事实上个性化推荐在1995年才被首次提出,直到21世纪初才受到广泛关注。1995年3月,个性化推荐概念在美国人工智能协会上被首次提出。随后,美国明尼苏达大学的研究小组制作了一个名为Movielens的电影推荐系统,这是个性化推荐最早的应用系统之一。
在20世纪90年代后期,重要的商业推荐系统出现了。1997年,Amazon的创始人Jeff Bezos开始尝试利用个性化推荐系统帮助用户进行购买决策,例如,根据客户以前的购物喜好,尝试为其推荐具体的书籍。根据Venture Beat的统计,这一举措将该网站的销售额提高了35%。1998年,Amazon提出了基于项目的协同过滤算法,并在Amazon中推广使用,进一步完善了个性化推荐系统的应用。Amazon的成功对个性化推荐系统的发展起了巨大的推动作用。自此之后,越来越多的互联网公司开始尝试个性化推荐,并出现了混合型推荐系统。最先出现的混合推荐系统之一是Fab,一个网站推荐系统。它将协同过滤与基于内容的过滤结合在一起,查找具有相似网站偏好的用户以及具有相似内容的网站。
推荐系统根据用户的显式和隐式偏好、其他用户的偏好以及用户和项目的属性等信息来推荐用户感兴趣的项目,其中应用最为广泛的就是协同过滤算法。比如GroupLens就是一个用于查找新闻文章的、基于协同过滤的推荐引擎。基于内容的推荐也是一种常见的个性化推荐算法,比如Ringo使用内容相似性来提供个性化的音乐推荐。其他的应用案例还有很多,如NewsWeeder和InfoFinder推荐系统使用基于内容的过滤进行新闻和文档的个性化推荐。不仅如此,在混合推荐算法的研究中,基于内容的推荐方法与协同过滤的结合也是最常见的一种混合算法组合方式。
(一)协同过滤
协同过滤也称为社交过滤,是在个性化推荐领域中应用最为广泛的算法。协同过滤根据群体划分来进行推荐,不需要获取用户和项目的具体信息,而是以用户对已消费项目的评分来组成“用户-项目”评分矩阵,通过此矩阵来寻找用户或项目之间的相似度,进而预测用户对于未消费项目的评分。协同过滤算法总体上可以分为两类,基于内存的协同过滤和基于模型的协同过滤。这两类之下又可以继续细分。分类方式如图37所示:
图37 协同过滤常见分类
1.基于内存的协同过滤
基于内存的协同过滤利用“用户-项目”的评分矩阵来获得用户或项目之间的相似度,基于相似度关系做出预测并产生推荐。基于内存的协同过滤将用户的评分矩阵按照行或列进行拆分,拆分为用户或项目的特征向量。通过向量的相似度计算方法来计算这些向量之间的相似性,得出相似性结果后通过一定的方式获取相似项。按照相似项度量对象的不同,可以将基于内存的协同过滤分为基于用户的和基于项目的。
基于用户的协同过滤是通过用户对项目的评分矩阵来计算用户之间的相似度。例如:若A、B两人都消费了项目X、Y并且给出了相似的评分,那一定程度上认为A、B是相似的用户,可以给用户B推荐A消费过并评分高的项目。基于用户的协同过滤存在三个明显问题:一是数据的稀疏性,在项目数量较多时,用户可能只消费了其中不到1%的项目,这使得不同用户之间所消费项目的重叠性较低,给计算用户之间的相似度带来困难;二是算法的扩展性较低,相似性的计算随着用户的增多而增大,难以在数据量过大的情况下使用;三是冷启动的问题,冷启动是指在没有足够的评分数据时,系统难以为没有评分历史的用户产生推荐结果,也难以对未被评分的项目进行推荐。
基于项目的协同过滤的不同之处是通过用户对项目的评分矩阵来计算项目之间的相似度。例如:若用户A同时消费项目X、Y,则推断项目X和Y具有一定的相似性;如果用户B消费了项目X,则可以将项目Y推荐给B。相比于计算用户之间的相似度,项目之间的相似性要稳定很多,因此大量的计算可以离线完成,从而提高推荐的效率和稳定性。与基于用户的协同过滤相同的是,基于项目的协同过滤同样也会面临数据稀疏性和冷启动的问题。
2.基于模型的协同过滤(www.daowen.com)
基于模型的协同过滤同样是利用用户的评分信息。不同于基于内存的协同过滤,这种方法是在获取到足量的用户评分信息后,在线下通过机器学习等建模方法来建立用户的兴趣模型,当在线应用时只需要通过建立好的用户兴趣模型为用户进行推荐即可。建模中常用的方法有贝叶斯网络模型、基于聚类的模型和基于降维的模型等。这种方法的缺陷在于:首先,由于用户的模型需要在线下提前建立,因此前期需要较大的用户评分数据以确保模型的准确性,这也导致了用户兴趣模型不能根据用户的兴趣迁移实时更新,且更新用户兴趣模型需要付出较大的计算成本;其次,这个方法中有较多需要调整的参数,也使得算法的应用受到一定的限制。
总的来说,协同过滤算法由于不需要对用户具体信息和项目内容进行深入的了解和分析,只需要根据用户对项目的评分即可做出推荐,因此获得了广泛应用。
(二)基于内容的推荐
基于内容的推荐,其假设是过去喜欢某些项目的人,将来也会喜欢相同类型的项目。不同于协同过滤依据用户项目评分来计算项目的相似度,基于内容的推荐根据项目本身的内容特征进行分析进而探索项目之间的相似度。因此,基于内容的推荐算法会受到推荐项目所选特征的限制。
许多推荐系统利用基于内容的推荐方式为用户提供服务。例如,StubleUpon是一个帮助用户浏览网页的推荐系统。在该系统中,通过页面内容与用户历史行为向用户推荐合适的Web页面。多数基于内容的应用案例都是作用于文本内容、文本元数据或元描述,这是因为文本信息可以被自动解析和分类。对于其他类型的媒体,如音频、视频和图片等,目前仍然没有统一的自动分类技术。在大多数情况下,这些类型的媒体都是手动分类的,这需要消耗大量的时间和资源,使得基于内容的推荐系统不适用于存储大量多媒体信息的动态环境。随着技术的发展,这个局面正在得到解决,比如Last.Fm就是音乐领域基于内容的推荐系统的成功应用案例。
(三)其他推荐算法
人口统计过滤,使用年龄、性别、教育水平等人口数据来确定用户类别。基于人口统计信息对用户进行分类操作较为简单,并且由于不涉及用户的具体行为,因此不存在冷启动的问题。人口统计过滤也有劣势:一方面,由于网络隐私问题,目前很难收集到足够的人口统计信息,这限制了人口统计过滤的使用;另一方面,人口统计的过滤结果不容易有较大的用户区分度。虽然人口统计过滤算法有较大的局限性,但是它经常可以作为一种加强技术与其他推荐算法结合使用,以获得更好的推荐质量。
基于知识的过滤,使用关于用户对项目的认知来推断哪些项目满足用户的需求,并生成相应的建议。一种特殊类型的基于知识的过滤是基于约束的推荐系统,它能够推荐购买次数很少并且有较多约束要求的项目,比如房子、汽车等。对于购买次数极少的项目,由于无法获取到足够的用户行为数据来做出推荐,常常可以使用基于知识的过滤推荐算法。此算法的优势在于实时性好,推荐对于用户信息的需求少,不存在数据的稀疏性和冷启动的问题。但此算法的缺陷在于奇异发现能力有限,知识的获取、聚合和数据库的构建和管理方面存在难度。
每个推荐算法都有相应的优势与不足,在实际应用中有时较难满足单一算法的启动条件,因此学者们开始探究将两种或多种推荐算法结合在一起,以弥补单一算法的限制,获得更好的应用效果。这种结合构成了一种新型的推荐系统,称为混合推荐系统。
Burke将混合方式分为7类:加权法,用每个推荐方法分别做出预测结果,然后加权合并成一个预测结果;条件触发法,根据条件触发不同推荐方法,在满足一定条件时,用对应的推荐方法进行预测;混合预测,将每种推荐方法的预测结果混合,共同呈现给用户;特征组合,单个预测算法具有不同推荐技术的特征;级联组合,即一种推荐技术的输出被另一种推荐技术细化;特征增强,指一种推荐技术的输出被另一种推荐技术补充;元层次法,指一种推荐技术产生的整个模型被另一种推荐技术利用。这是混合推荐系统最早期的研究成果之一,至今仍然涵盖大多数算法混合方式。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。