写点什么

推荐算法综述(五)

  • 2016-02-01
  • 本文字数:1877 字

    阅读完需:约 6 分钟

【编者的话】近年来社交媒体已经越来越流行,可以从中获得大量丰富多彩的信息的同时,也给我们带来了严重的“信息过载”问题。推荐系统作为缓解信息过载的最有效方法之一,在社交媒体中的作用日趋重要。区别于传统的推荐方法,社交媒体中包含大量的用户产生内容,因此在社交媒体中,通过结合传统的个性化的推荐方法,集成各类新的数据、元数据和清晰的用户关系,产生了各种新的推荐技术。本文总结了推荐系统中的几个关键研究领域,进行综述介绍。本文是推荐算法综述的最后一部分。第一部分主要介绍了推荐算法的主要类型。第二部分,主要涵盖了不同类型的协同过滤算法,突出他们之间的一些细微差别。第三部分详细介绍了基于内容的过滤算法。第四部分主要介绍了混合引荐技术和基于流行度的推荐方法。在这篇文章中,我们在回顾了所有基本的推荐算法之后,介绍了如何选择最合适的推荐算法。

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

正文

本文是推荐算法综述的最后一部分。第一部分主要介绍了推荐算法的主要类型。第二部分,主要涵盖了不同类型的协同过滤算法,突出他们之间的一些细微差别。第三部分详细介绍了基于内容的过滤算法。第四部分主要介绍了混合引荐技术和基于流行度的推荐方法。在这篇文章中,我们在回顾了所有基本的推荐算法之后,介绍了如何选择最合适的推荐算法。

除了我们已经介绍的一些比较传统的推荐系统(例如流行度、协同过滤、基于内容的过滤、混合方法),目前还有许多的其他方法也可以用于增强推荐系统,包括:

  • 深度学习
  • 社会化推荐
  • 学习排序
  • 多臂 Bandit(探索 / 利用)
  • 张量因子分解和因子分解(情境感知的推荐)

这些更先进的和非传统的方法有利于将推荐系统的性能推高到一个新的水平,但实际上这些算法也存在不足,不太易于理解,而且在推荐插件中并没有很好地被支持。在实际应用中,相比一些更传统的方法而言,用户还需要考量执行更新的方法所带来的性能提升是否值得算法所花费的开销。根据我们的经验,基本的传统算法还将在实际系统中应用很久,并还将驱动一些伟大的产品的诞生。

在这个综述的系列文章中,我们想向读者介绍一些常见的推荐算法,包括基于用户的协同过滤算法、基于 item 的协同过滤算法、基于内容的过滤算法和混合方法。在这里,我们通过举一个简单的例子,提供了一个综合的阐述,当有相同的输入数据时,这四种不同的算法将为相同的用户产生如何不同的推荐结果(图 1)。在算法被应用到大的、真实的数据中时,这种差异会一直存在,所以在决定要使用哪种算法时需要考虑它们的优点和缺点,并且在评价它们的时候,还要考虑它们执行的好坏程度。

(点击放大图像)

图1:四种推荐系统算法被应用到相同的数据集时所产生的不同的推荐结果。在左边,我们以矩阵的形式给出了用户对于几个item 的偏好,以及要推荐的item 的标题列表。在中间,我们给出了四种不同的算法为第一个用户(即用户偏好矩阵中的第一行)所产生的推荐结果。按照显示的相似度度量,它们在相似度上有不同的定义。在右边,我们看到由每个推荐算法推荐的item,从上到下按照四种算法排序。

在实际应用中,如果你利用协同过滤算法作为你的推荐模型,一般不会出什么问题。协同过滤容易比其他算法产生更好的结果,但是它不能很好地处理新用户和新item 的冷启动问题,如果要处理这些问题,基于内容的推荐算法是一个很好的备选。如果你有时间,那么可以将这些方法进行组合,这样你就可以同时利用协同过滤算法和基于内容的推荐算法的优点。即使需要考察更为先进的推荐算法,在此之前,先好好考虑一下这些基本的算法也不失为一个好主意。

最后,需要紧紧牢记的是,推荐模型仅仅是推荐系统五个部件中的其中一个。付出努力将推荐模型正确建立起来是非常重要的,但是对于其他的所有部件,如数据收集和处理、后处理、在线模块和用户界面,做出正确的选择同样重要。正如我们一遍又一遍所强调的,该推荐算法仅仅是推荐系统中的一部分,你的决策需要考虑整个产品。

本文是一篇翻译稿,读者也可以参考英文原文

编后语

《他山之石》是InfoQ 中文站新推出的一个专栏,精选来自国内外技术社区和个人博客上的技术文章,让更多的读者朋友受益,本栏目转载的内容都经过原作者授权。文章推荐可以发送邮件到editors@cn.infoq.com。


感谢杜小芳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群(已满),InfoQ 读者交流群(#2))。

2016-02-01 16:526671
用户头像

发布了 268 篇内容, 共 131.6 次阅读, 收获喜欢 24 次。

关注

评论

发布
暂无评论
发现更多内容

重构你的css吧!(初看)

云小梦

CSS bem elementUI scss ITCSS

暴力美学,拒绝平庸,Alibab开源内部神仙级“K8S核心笔记”下载

Java~~~

Java 架构 面试 微服务 k8s

牛逼Git,豆瓣评分高达9.3神著“Pro Git”电子版国内首次开源

Java~~~

Java git 架构 面试 架构师

NodeJs深入浅出之旅:异步I/O (上)🐋

空城机

JavaScript 大前端 Node 8月日更

在线JSON转PHP Array工具

入门小站

工具

百度地图开发-引入地图SDK并配置 02

Andy阿辉

android Android 小菜鸟 8月日更

Go- goto和label

HelloBug

Go 语言 goto label

获取 NodeJS 程序退出码

编程三昧

node.js Node 8月日更

阿里新产!Spring+SpringBoot+SpringCloud Alibaba全系列高阶笔记

Java~~~

Java spring 架构 面试 Spring Cloud

架构实战营 模块一作业

💤 ZZzz💤

架构实战营

【漏洞分析】远程命令执行漏洞总结

网络安全学海

网络安全 信息安全 网络 渗透测试 安全漏洞

懵逼!阿里一面就被虐了,幸获内推华为技术四面,成功拿到offer

编程susu

Java 编程 程序员 面试 计算机

架构师实战训练营|课后作业| 1

Frode

#架构实战营

网络攻防学习笔记 Day114

穿过生命散发芬芳

网络安全 8月日更

架构实战营作业--模块一

冬瓜茶

云与AI真的能互相成就?还是最好各自独立行走?

脑极体

程序员作图工具和技巧,你 get 了么?

程序员鱼皮

Java 大前端 后端 架构设计 代码

阿里巴巴最新产物!Spring+SpringBoot+SpringCloud Alibaba全系列高阶笔记

Java spring 程序员 架构 后端

☕【Java技术指南】「编译器专题」重塑认识Java编译器的执行过程(常量优化机制)!

码界西柚

Java 编译器 技术栈 8月日更

ShardingSphere JDBC 分库分表 读写分离 数据加密

Java 源码 ShardingSphere

Linux之export命令

入门小站

Linux

聊聊 Linux 登陆提示信息 motd 文件

耳东@Erdong

Linux 8月日更 motd

半监督学习概述(二)

Databri_AI

学习 深度半监督

小说类公众号如何运营:先要满足特定读者人群

石头IT视角

Alibaba史上最牛的分布式核心原理解析全彩手册开源!称霸GitHub

Java~~~

Java 架构 面试 分布式 微服务

教你一招疯狂拿Offer!用微服务设计一个超大型分布式电商平台

Java~~~

Java 架构 面试 Spring Cloud 架构师

CSS 数学函数之calc、clamp、min、max

devpoint

CSS css3 8月日更

不少同学想要放弃秋招了........

今晚早点睡

程序员 秋招

脉脉转发3W次的字节内部首发“数据结构算法”手册!惨大厂被封杀

Java~~~

Java 架构 面试 算法 架构师

HVEC安装与卸载

林建

HVEC DISM++

纯CSS实现beautiful按钮

执鸢者

CSS 大前端 按钮

推荐算法综述(五)_语言 & 开发_张天雷_InfoQ精选文章