QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

推荐算法综述(五)

  • 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:526455
用户头像

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

关注

评论

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

面试官问我:Object o = new Object() 占用了多少个字节?

moon聊技术

JVM Java虚拟机 JVM虚拟机原理

一文带你彻底了解Java异步编程

Java老k

Java 响应式编程 reactor 异步编程

架构师训练营W07作业

Geek_f06ede

盖洛普

成周

美团T8级架构师剖析Spring Boot源码:日志、缓存、消息、Web服务等

Java架构追梦

Java 源码 架构 微服务 springboot

想了解表格问答,我们先看看TA的前世

华为云开发者联盟

数据库 规范 表格

云上看警博会黑科技,得益于华为云打造的“云之盾”

脑极体

聊聊OpenAPI Specification(OAS)

尤利西斯的微笑

全栈工程师 软件设计 swagger OpenAPI

极客大学 - 架构师训练营 第十一周作业

9527

AWS IoT Greengrass设计解析

soolaugust

边缘计算 工业4.0 工业物联网 iiot

PGAS模型编程语言

星际行者

【Linux开发】编写属于你的第一个Linux内核模块

程序员小灰

c++ Linux 后台开发 架构师 服务器开发

智能视频监控的发展和优势

anyRTC开发者

安全 监控 音视频 WebRTC RTC

写在日更之前,持续书写,见证文字的力量

boshi

随笔 随笔杂谈

前端: 如何快速将应用封装成js-sdk?

徐小夕

Java 大前端

30分钟玩转「正则表达式」

Yano

正则表达式

万字长文深度剖析面向对象的javascript

程序那些事

Java nodejs 程序那些事 面向对象js

区块链数字物流应用落地解决方案

t13823115967

区块链落地 区块链+ 数字物流应用落地解决方案

《华为数据之道》读书笔记:第 9 章 打造“安全合规”的数据可控共享能力

方志

大数据 数据中台 数据安全

写了一套优雅接口之后,领导让我给大家讲讲这背后的技术原理

楼下小黑哥

spring 重构

这次我让你彻底弄懂 RESTful

yes

RESTful

每一位程序员都应该保存的计算机网络总结,哪怕你刚进大学

996小迁

Java 架构 面试

线程池ForkJoinPool简介

Java老k

Java 线程池 forkjoin

甲方日常 60

句子

工作 随笔杂谈 日常

Spring 源码学习 03:创建 IoC 容器的几种方式

程序员小航

spring 源码 ioc 源码阅读

go-zero 之 rest 实战与原理

万俊峰Kevin

RESTful api 网关 microservice Go 语言

学Linux到底学什么?未来职业到底是怎么样的?

Linux服务器开发

Linux 后端 Linux服务器 底层应用开发 web服务器

《机器学习》By:周志华,PDF免费下载

计算机与AI

学习

跟随杠精的视角一起来了解Redis的主从复制

leonsh

redis redis高可用 redis主从

年轻人不讲武德,竟然重构出这么优雅后台 API 接口

楼下小黑哥

重构 Spring MVC

精心总结C++智能指针用法详解(完整版)附带视频讲解

ShenDu_Linux

c++ 程序员 指针 智能指针

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