写点什么

推荐算法综述(五)

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

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

关注

评论

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

架构师训练营 - 大作业

张明森

服务质量分析:腾讯会议&腾讯云Elasticsearch玩出了怎样的新操作?

腾讯云大数据

大数据

百度大脑6.0重磅升级 不断进阶中的中国AI底座实力尽显

脑极体

架构师训练营-第1周学习总结(1期)

阿甘

UML

在Ubuntu 20.04 搭建 Django 开发环境 以及 快速构建一个简单的 Blog

Matrix Chan

Python django 后端 Ubuntu20.04

读书笔记之《普罗普:故事形态学》

AI代笔

Java面试史上最全的JAVA专业术语面试100问 (前1-50)

Java架构师迁哥

架构师训练营第 0 期 期末大作业

无名氏

如何让知识图谱告诉你“故障根因”

华为云开发者联盟

华为云 知识图谱 图谱

彻底理解JavaScript执行上下文

Walker

Java 大前端 this指针 函数执行

USDT跑分承兑系统开发,区块链支付平台搭建

滴滴基于 Flink 的实时数仓建设实践

Apache Flink

flink

我写了一个TypeScript虚拟机。

渔子长

Java typescript 大前端 deno Node

甲方日常 15

句子

工作 随笔杂谈 日常

Week 13 学习总结

Jeremy

oeasy 教您玩转 linux 010215 随机谚语 fortune

o

LeetCode题解:206. 反转链表,双指针,JavaScript,详细注释

Lee Chen

大前端 LeetCode

繁星计划将成为引领全球币值管理的带动计划!

InfoQ_967a83c6d0d7

应对高并发系统有没有通用的解决方案呢?

架构师修行之路

架构 高并发 异步

Apache Pulsar 在腾讯 Angel PowerFL 联邦学习平台上的实践

Apache Pulsar

Apache 学习 开源 Apache Pulsar

Netty之旅三:Netty服务端启动源码分析,一梭子带走!

一枝花算不算浪漫

Netty

金融企业敏捷转型大咖风采 | 中国出口信用保险公司的 DevOps 落地之道

Atlassian

项目管理 DevOps 敏捷 行业资讯 Atlassian

哈哈,成为作者了

大海

架构师训练营-第1周课后作业(1期)

阿甘

用Go-Guardian写一个Golang的可扩展的身份认证

朱亚光

微服务 身份认证 Go 语言

介绍

剑心

学习

两年Java开发经验赶上金九招聘季涨到23K,这究竟是怎么做到的?

Java架构师迁哥

@所有人 Flink Forward Asia 2020 向您发出议题征集邀请!

Apache Flink

flink

Clickhouse在大数据分析平台-留存分析上的应用

腾讯云大数据

大数据

面试常考算法题之 Top K 问题

小齐本齐

数据结构 算法

Week 13 命题作业

Jeremy

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