推荐算法和机器学习系列 - 推荐算法综述

转载 2016年08月30日 14:14:04

【编者按】推荐系统在各种系统中广泛使用,推荐算法则是其中最核心的技术点,InfoQ接下来将会策划系列文章来为读者深入介绍。推荐算法综述分文五个部分,本文作为第一篇,将会简要介绍推荐系统算法的主要种类。其中包括算法的简要描述、典型的输入、不同的细分类型以及其优点和缺点。在第二和第三篇中,我们将会详细介绍这些算法的区别,让你能够深入理解他们的工作原理。

注:本文翻译自Building Recommenders,InfoQ中文站在获得作者授权的基础上对文章进行了翻译。

为推荐系统选择正确的推荐算法是非常重要的决定。目前为止,已经有许多推荐算法可供选择,但为你需要解决的特定问题选择一种特定的算法仍然很困难。每一种推荐算法都有其优点和缺点,当然也有其限制条件,在作出决定之前,你必须要一一考量。在实践中,你可能会测试几种算法,以发现哪一种最适合你的用户,测试中你也会直观地发现它们是什么以及它们的工作原理。

推荐系统算法通常是某类推荐模型的实现,它负责获取数据,例如用户的喜好和可推荐项的描述,以及预测给定的用户组会对哪些选项感兴趣。

推荐算法通常被分为四大类(1-4):

  • 协同过滤推荐算法
  • 基于内容的推荐算法
  • 混合推荐算法
  • 流行度推荐算法

除了这些种类以外,还有一些高级非传统的推荐算法(5)。

推荐算法综述是分文五个部分的系列文章,本文作为第一篇,将会简要介绍推荐系统算法的主要种类。其中包括算法的简要描述、典型的输入、不同的细分类型以及其优点和缺点。在第二和第三篇中,我们将会详细介绍这些算法的区别,让你能够深入理解他们的工作原理。系列文章中的一些内容参考了一篇来自 RecSys 2014 tutorial 的文章:由Xavier Amatriain编写的The Recommender Problem Revisited

1.协同过滤推荐算法

  • 简介:通过在用户的一系列行为中寻找特定模式来产生用户特殊推荐

  • 输入:仅仅依赖于惯用数据(例如评价、购买、下载等用户偏好行为)

  • 类型:

    • 基于邻域的协同过滤(基于用户和基于项)
    • 基于模型的协同过滤(矩阵因子分解、受限玻尔兹曼机、贝叶斯网络等等)
  • 优点:

    • 需要最小域
    • 不需要用户和项
    • 大部分场景中能够产生足够好的结果
  • 缺点:

    • 冷启动问题
    • 需要标准化产品
    • 需要很高的用户和项的比例(1:10)
    • 流行度偏见(有长尾的时候表现不够好)
    • 难于提供解释

2.基于内容的推荐算法

  • 简介:向用户推荐和其过去喜欢项的内容(例如元数据、描述、话题等等)相似的项

  • 输入:仅仅依赖于项和用户的内容/描述(除了惯用数据)

  • 类型:

    • 信息检索(例如 tf-idf 和 Okapi BM25)
    • 机器学习(例如朴素贝叶斯、支持向量机、决策树等等)
  • 优点:

    • 没有冷启动问题
    • 不需要惯用数据
    • 没有流行度偏见,可以推荐有罕见特性的项
    • 可以使用用户内容特性来提供解释
  • 缺点:

    • 项内容必须是机器可读的和有意义的
    • 容易归档用户
    • 很难有意外,缺少多样性
    • 很难联合多个项的特性

3.混合推荐算法

  • 简介:综合利用协同过滤推荐算法和基于内容的推荐算法各自的优点同时抵消各自的缺点

  • 输入:同时使用用户和项的内容特性与惯用数据,同时从两种输入类型中获益

  • 类型:

    • 加权
    • 交换
    • 混合
    • 特性组合
    • 案列
    • 特征增强
    • 元层次
  • 优点:

    • 由于单独使用协同过滤推荐算法和基于内容的推荐算法
    • 没有冷启动问题
    • 没有流行度偏见,可推荐有罕见特性的项
    • 可产生意外,实现多样性
  • 缺点:

    • 需要通过大量的工作才能得到正确的平衡

4.流行度推荐算法

  • 简介:这是一种推荐流行项的方法(例如最多下载、最多看过、最大影响的项)

  • 输入:使用惯用数据和项的内容(例如类目)

  • 优点:

    • 相对容易实现
    • 良好的基准算法
    • 有助于解决新用户冷启动问题
  • 缺点:

    • 需要标准化产品
    • 经常需要一些项的类型进行分类
    • 不会推荐新项(很少有机会被观测到)
    • 推荐列表不会改变太大

5.高级非传统推荐算法

  • 类型:

    • 深度学习
    • 学习等级
    • Multi-armed bandits(探索/开发)
    • 上下文感知推荐
    • 张量分解
    • 分解机
    • 社会推荐
  • 优点:

    • 利于勉强维持最终性能百分点
    • 你可以说你正在使用渐进的方式
  • 缺点:

    • 难于理解
    • 缺乏推荐工具支持
    • 没有为你的首个推荐系统提供推荐的方式




美团推荐算法实战

转 美团推荐算法实践 摘要 美团的推荐算法实践 前言 推荐系统并不是新鲜的事物,在很久之前就存在,但是推荐系统真正进入人们的视野,并且作为一个重要的模块存在于各个互联网公司...
  • rosenor1
  • rosenor1
  • 2016年08月22日 20:33
  • 784

面试:机器学习--推荐算法

在推荐系统简介中,我们给出了推荐系统的一般框架。很明显,推荐方法是整个推荐系统中最核心、最关键的部分,很大程度上决定了推荐系统性能的优劣。目前,主要的推荐方法包括:基于内容推荐、协同过滤推荐、基于关联...
  • u013713010
  • u013713010
  • 2015年04月06日 20:50
  • 1738

机器学习——推荐系统中常用的推荐算法简介

在推荐系统简介中,我们给出了推荐系统的一般框架。很明显,推荐方法是整个推荐系统中最核心、最关键的部分,很大程度上决定了推荐系统性能的优劣。目前,主要的推荐方法包括:基于内容推荐、协同过滤推荐、基于关联...
  • NIeson2012
  • NIeson2012
  • 2016年06月14日 11:15
  • 3768

简单易学的机器学习算法——协同过滤推荐算法(1)

一、推荐系统的概念
  • google19890102
  • google19890102
  • 2014年06月02日 19:57
  • 13621

关于2015阿里移动推荐算法大赛的总结(三)——机器学习

想用机器学习的方法,那么思路其实也很明确,问题是那一天用户是买还是不买,那么可以看成是二分法。通过用户行为方式来判断是否会购买。就是把用户行为等抽象成特征向量得到训练集,扔进机器学习算法训练出一个模型...
  • lyh03601
  • lyh03601
  • 2015年05月17日 10:51
  • 4899

简单易学的机器学习算法——协同过滤推荐算法(2)

一、基于协同过滤的推荐系统
  • google19890102
  • google19890102
  • 2014年06月03日 11:16
  • 5908

个性化推荐算法 综述

随着互联网的迅速发展,接入互联网的网页与服务器数量也以指数形式迅猛增长。互联网的发展,使得海量信息以飞快的更新速度在我们眼前不断呈现。例如,卓越亚马逊上存在着上千万的图书,NetFlix上有数万部电影...
  • zhouyan8603
  • zhouyan8603
  • 2014年05月20日 15:14
  • 1768

机器学习入门----以阿里移动推荐算法大赛为例

从数据中学的模型的过程称为“学习”(learning)或“训练”(training),这个过程通过执行某个学习算法来完成,如GBDT。训练过程中使用的数据称为“训练数据”,其中的每个样本称为一个“训练...
  • Dr_Guo
  • Dr_Guo
  • 2016年04月19日 20:25
  • 3329

【AI】用户推荐算法综述

用户推荐算法综述。
  • guguant
  • guguant
  • 2016年12月29日 22:19
  • 1167

数据挖掘、机器学习、深度学习、推荐算法的联系与差别总结

数据挖掘,机器学习,深度学习,推荐算法的联系与区别
  • shanshanhi
  • shanshanhi
  • 2016年12月22日 15:39
  • 2967
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:推荐算法和机器学习系列 - 推荐算法综述
举报原因:
原因补充:

(最多只允许输入30个字)