推荐引擎简介
推荐引擎利用特殊的信息过滤(IF,Information Filtering)技术,将不同的内容(例如电影、音乐、书籍、新闻、图片、网页等)推荐给可能感兴趣的用户。通常情况下,推荐引擎的实现是通过将用户的个人喜好与特定的参考特征进行比较,并试图预测用户对一些未评分项目的喜好程度。参考特征的选取可能是从项目本身的信息中提取的,或是基于用户所在的社会或社团环境。
根据如何抽取参考特征,我们可以将推荐引擎分为以下四大类:
- 基于内容的推荐引擎:它将计算得到并推荐给用户一些与该用户已选择过的项目相似的内容。例如,当你在网上购书时,你总是购买与历史相关的书籍,那么基于内容的推荐引擎就会给你推荐一些热门的历史方面的书籍。
- 基于协同过滤的推荐引擎:它将推荐给用户一些与该用户品味相似的其他用户喜欢的内容。例如,当你在网上买衣服时,基于协同过滤的推荐引擎会根据你的历史购买记录或是浏览记录,分析出你的穿衣品位,并找到与你品味相似的一些用户,将他们浏览和购买的衣服推荐给你。
- 基于关联规则的推荐引擎:它将推荐给用户一些采用关联规则发现算法计算出的内容。关联规则的发现算法有很多,如 Apriori、AprioriTid、DHP、FP-tree 等。
- 混合推荐引擎:结合以上各种,得到一个更加全面的推荐效果。
基于Mahout的电影推荐系统:https://blog.youkuaiyun.com/huhui_cs/article/details/8596388
https://github.com/bystc/MovieRecommender
Apache Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。经典算法包括聚类、分类、协同过滤、进化编程等等,并且,在 Mahout 中还加入了对Apache Hadoop的支持,使这些算法可以更高效的运行在云计算环境中。
推荐算法详述
1)基于内容的推荐
原理是基于用户感兴趣的物品A,找到和A内容信息相近的物品B。
提取推荐对象的特征,是内容推荐算法的关键。但是对于多媒体内容,如视频、音乐,很难找到它们之间的特性关联性。
2)协同过滤算法
仅仅基于用户行为数据设计的推荐算法,称为协同过滤算法。此方法主要根据用户对物品的历史行为,寻找用户或物品的近邻集合,以此计算用户对物品的偏好。
a) 基于领域的模型算法
i) 基于用户的协同过滤算法(UserCF)
这种算法给用户推荐和他兴趣相似的其他用户喜欢的物品。
计算用户兴趣相似度时,要避免热门物品自带马太效应的影响。换句话说,两个用户对冷门物品采取过同样行为,更能说明他们的兴趣相似。
计算用户相似度的方法有3种:余弦相似性;相关相似性(皮尔森相关系数);修正的余弦相似性
ii) 基于物品的协同过滤算法(ItemCF)
这种算法给用户推荐和他之前喜欢的物品相似的物品。该算法是目前业界应用最多的算法。
ItemCF 与 基于内容的推荐算法的区别:
- 基于内容的推荐算法,计算的是物品内容属性之间的相似度。如,电影的导演是不是同一个人
- ItemCF是通过用户的行为计算物品之间的相似度。如,物品A、B具有很大相似度,是因为喜欢物品A的用户也大都喜欢物品B
b) 隐语义模型算法
LFM(latent factor model)隐语义模型是最近几年推荐系统领域最热门的话题,它的核心思想是通过隐含特征联系用户兴趣和物品。
基于机器学习,可以优化指标建立最优模型。
c) 基于图的模型
3)基于关联规则的推荐 主要用于购物车分析
4)基于知识推荐
5)混合推荐