专家分享选择开源和自研道路上的考量以及具体的业务案例,点击查看 了解详情
写点什么

从算法到案例:推荐系统必读的 10 篇精选技术文章

  • 2015 年 12 月 25 日
  • 本文字数:3050 字

    阅读完需:约 10 分钟

推荐系统近几年来一直十分火热,目前几乎所有的电子商务系统、社交网络,广告推荐,搜索引擎等等,都不同程度的使用了各种形式的推荐系统。想知道电商如何向你发送广告的?想了解社交网络怎么推荐好友的?想自己搭建一个推荐系统?想了解一些算法或架构从而将自己的推荐系统做得更好?InfoQ 为你整理了一系列的有关推荐系统的算法文章,以及主要从电商和社交网络方面选取了一些优秀的案例,来看看这些关于推荐系统的优秀文章吧。

另外,想迅速了解并掌握推荐系统的同学,可以购买极客时间出品的『推荐系统三十六式』专栏,作者在推荐系统方面有8 年的经验,为推荐系统学习者架构起整体的知识脉络,并在此基础上补充实践案例与经验,力图解决系统起步阶段 80% 的问题。

推荐系统在各种系统中广泛使用,推荐算法则是其中最核心的技术点, 为推荐系统选择正确的推荐算法是非常重要的决定。每一种推荐算法都有其优点和缺点,当然也有其限制条件,在作出决定之前,必须要一一考量。在实践中,你可能会测试几种算法,以发现哪一种最适合你的用户,测试中你也会直观地发现它们是什么以及它们的工作原理。

InfoQ 策划了系列文章来为读者深入介绍。推荐算法综述分为五个部分,本文作为第一篇,主要介绍了推荐算法的主要类型。第二篇涵盖了不同类型的协同过滤算法,突出他们之间的一些细微差别。之后的三篇会陆续发表出来。第三篇详细介绍了基于内容的过滤算法。第四篇主要介绍了混合引荐技术和基于流行度的推荐方法。第五篇,在回顾了所有基本的推荐算法之后,介绍了如何选择最合适的推荐算法。这一系列的作者是 Maya Hristakeva Kris Jack ,英国的数据科学家,具有丰富的构建推荐系统的经验,他们共同为世界创建出了一些出色的推荐系统。

虽然也曾从事过技术研发相关的工作,但是对算法这类很“高深”和数学关系又比较紧密的技术来说,要真正地了解起来确实是一个难度很大的动作。但是在笔者参加了一些和算法以及推荐系统相关的活动之后,发现这一高深的学问已经被从事软件开发的朋友应用的非常广泛。特别是在电商火爆的今天,各种和推荐相关的网站风起云涌,算法进入平常百姓家也就是水到渠成了。本文讨论了算法和推荐引起关注的原因,算法、架构、策略、机器学习之间的关系,学习推荐算法的几点经验等。

现在网上到处都有推荐。比如亚马逊、Mint.com 之类的财务规划网站、谷歌这些知名公司使用推荐提供情境化的、有相关性的用户体验,以提高转化率和用户满意度。这些建议原来一般由每天晚上、每周或每月生成新推荐的批处理作业计算提供。然而对于某些类型的推荐,响应时间有必要比批量处理作业所需的时间更短。本文将会介绍如何使用 Kiji 框架,它是一个用来构建大数据应用和实时推荐系统的开源框架。通过这篇文章可以了解到如何用 Kiji 整合数据,模型和算法来开发一个可以实时刷新推荐的推荐系统。

百分点推荐引擎是国内领先的推荐技术平台,专注于为电子商务和资讯网站提供 SaaS 模式的个性化推荐服务,提高网站的整站转化率和用户黏度。本文将从电子商务网站的实际需求出发,介绍百分点推荐引擎架构设计和搭建。百分点的架构设计包含了存储层,算法层,业务层,管理层。算法层里包含在线算法和离线算法。在线算法包括协同过滤(UserBased/ItemBased CF),基于内容的推荐(Content Based),热扩散(Heat Diffusion),用户行为模式分析(Behavior PatterAnalysis)等等。离线算法包括 KNN 聚类,基于 FP Tree 的关联规则挖掘,基于上下文统计的关联规则挖掘,序列模式算法,文档建模算法等等。

Netflix 的推荐和个性化功能向来精准,他们公布了自己的系统架构。主要从在线,接近在线,离线处理三个方面来讲解。

并且他们指出构建一个好的推荐系统需要具备使用复杂机器学习算法的能力,这些算法要可以适应高度复杂性,可以处理大量数据。还要能够提供灵活、敏捷创新的架构,新的方法可以很容易在其基础上开发和插入。而且,需要推荐结果足够新,能快速响应新的数据和用户行为。找到这些要求之间恰当的平衡并不容易,需要深思熟虑的需求分析,细心的技术选择,战略性的推荐算法分解,最终才能为客户达成最佳的结果。

个性化推荐引擎已经在雅虎的首页、新闻、体育、财经等很多频道,以及雅虎的 Email、用户订阅的邮件内容等方面使用。个性化推荐引擎推荐的内容有雅虎编辑原创的内容,也有雅虎购买版权的内容,还有从 Web 上抓取的内容,包括新闻、图片、博客、轻博客等形式。现在已经在欧洲等地方做全球化的推广,并且统计发现个性化推荐引擎对于用户粘性的提升已经超过了 100%。本文从数据收集,新模型 / 算法的评估上线,关于用户粘度三个方面讲解了雅虎推荐引擎的系统架构。

与传统的推荐引擎不同,人人网的社会化推荐考虑了人与人之间的关系,通过真实的人际关系,提高推荐结果的精准度。例如,好友推荐的目的是帮助用户找到好友,迅速构建用户社交图谱,形成可持续发展的网络生态圈。社会化推荐对传统的推荐引擎提出了新的需求和挑战,具体体现在其个性化和复杂性上。本文从社交图谱的建立和社会化过滤方法的应用两个方面讲解了人人网社会化推荐框架。

为了保证用户体验和使用效果,推荐系统中的机器学习算法一般都是针对完整的数据集进行的。然而,随着推荐系统输入数据量的飞速增长,传统的集中式机器学习算法越来越难以满足应用需求。因此,分布式机器学习算法被提出用来大规模数据集的分析。作为全球排名第一的社交网站,Facebook 就需要利用分布式推荐系统来帮助用户找到他们可能感兴趣的页面、组、事件或者游戏等。Facebook 就在其官网公布了其推荐系统的原理、性能及使用情况。在工作原理方面,Facebook 推荐系统采用的是流行的协同过滤(Collaborative filtering,CF)技术。具体读者可以自行看看文中的叙述。

微博(Weibo)是一种通过关注机制分享简短实时信息的广播式社交网络平台。微博用户通过关注来订阅内容,在这种场景下,推荐系统可以很好地和订阅分发体系进行融合,相互促进。微博两个核心基础点:一是用户关系构建,二是内容传播,微博推荐一直致力于优化这两点,促进微博发展。

在微博推荐发展的过程中遇到体系方向的变化、业务的不断更迭、目标的重新树立,其产品思路、架构以及算法也随之进行变迁。本文讲了微博推荐架构的演进过程:独立式的 1.0 版本,分层式的 2.0 版本和平台式的 3.0,架构组成分为应用层,计算层,数据层和基础服务,并在 3.0 中解决了推荐候选/排序/训练的算法最重要的问题。具体可以点击链接阅读。

随着移动互联网迅速发展,大数据技术为企业带来了前所未有的发展机遇,然而中小企业和传统行业由于其数据量缺乏且单一,技术投入不足的劣势,面对大数据技术发展带来的红利只能望洋兴叹。本文介绍微信即将推出的微信斑马系统,该系统旨在为中小企业和传统行业提供基于微信大数据分析技术的受众分析,精准推广,激活留存和商业智能决策的全套解决方案。

  1. 推荐系统算法综述
  2. 一次算法的普及型讨论
  3. 用 Kiji 构建实时、个性化推荐系统
  4. 百分点推荐引擎–从需求到架构
  5. Netflix 公布个性化和推荐系统架构
  6. 雅虎个性化推荐引擎的工程实践
  7. 社会化推荐在人人网的应用
  8. Facebook 如何向十亿人推荐东西
  9. 微博推荐架构演进
  10. 微信斑马系统:微信朋友圈广告背后的利器

感谢魏星对本文的审校。

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

2015 年 12 月 25 日 18:0035512
用户头像
Tina InfoQ高级编辑

发布了 658 篇内容, 共 368.7 次阅读, 收获喜欢 1938 次。

关注

评论

发布
暂无评论
  • 特征工程:推荐系统有哪些可供利用的特征?

    从这节课开始,我们来讲特征工程,说说到底什么是特征工程,构建特征工程的基本原则是什么,以及推荐系统中常用的特征有哪些。

    2020 年 10 月 9 日

  • 有赞推荐系统关键技术

    本文介绍有赞微商城的个性化推荐系统,在关键节点增加推荐入口,进行场景化推荐。

  • 热门微博:AI 时代精准的个性化推荐

    本次分享介绍如何打造适合自己产品的推荐系统。

  • 如何发掘数据之间的关系?

    挖掘数据的典型应用场景有搜索排序、关联分析以及聚类,下面我们一个一个来看,希望通过今天的学习,你能够了解数据挖掘典型场景及其应用的算法。

    2019 年 1 月 24 日

  • 打造工业级推荐系统(二):无处不在的推荐系统

    导读:个性化推荐系统,简单来说就是根据每个人的偏好推荐他喜欢的物品。互联网发展到现在,推荐系统已经无处不在,在各行各业都得到普遍都应用。

  • 推荐算法综述(四)

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

  • 协同过滤:你看到的短视频都是集体智慧的结晶

    在实际算法的应用过程当中,还有一种通过集体智慧来构成的复合算法,它可以寻找大量人群当中的行为数据模型规律,达成普通算法从单体上无法达到的效果。这种算法当中,最著名的一个算法就是协同过滤算法。

    2021 年 9 月 10 日

  • 华为云新一代黑科技核心算法揭秘

    推荐技术在社交APP、电商、音乐视频图片平台、咨讯推送平台等场景中大展身手

  • 百度技术沙龙第 38 期回顾:打造能“读懂”用户的系统(含资料下载)

    在5月25日由@百度主办、@InfoQ负责策划组织和实施的第38期百度技术沙龙活动上,百度推荐与个性化部高级架构师陈天健、百度个性化推荐部门资深研发工程师姚旭、前淘宝搜索算法专家何杰和Zalora South East Asia 架构师翁伟分享了各自的推荐系统实践方面的经验,话题涉及“推荐系统实时化的实践和思考”、“百度个性化推荐实践”、“个性化推荐在电商行业迷思”和“利用20%时间开发推荐引擎”等。本文将对他们各自的分享做下简单的回顾,同时提供相关资料的下载。

  • 基于标签的实时短视频推荐系统

    本文结合电视猫的业务场景及工程实践经验来详细讲解基于标签的倒排索引算法的原理及工程落地方案细节。

  • “查询关键字理解”三部曲之分类

    查询关键字理解最基本的一个步骤就是给查询关键字分类。查询关键字从大类上分为信息意图、交易意图以及导航意图。

    2017 年 11 月 27 日

  • 推荐算法综述(二)

    推荐系统在各种系统中广泛使用,推荐算法则是其中最核心的技术点,InfoQ接下来将会策划系列文章来为读者深入介绍。推荐算法综述分文五个部分,本文我们将会详细介绍这些算法的区别,让你能够深入理解他们的工作原理。

  • 开篇词|开发者为什么要从实战出发学机器学习?

    如果你是要使用机器学习的技术,那我觉得对你来说,最简单的学习方法就是“做中学”。

    2021 年 8 月 30 日

  • 开篇词 | 用知识去对抗技术不平等

    推荐系统的技术实践中,大厂们一骑绝尘,然而更普遍的是:太多中小厂、工程师们还不知道一个推荐系统如何才能从0到1诞生。

    2018 年 2 月 26 日

  • 深度树匹配——下一代推荐技术的探索和实践

    本次分享介绍阿里妈妈在近一年的技术进展。

  • 点点网如何出产高品质内容

    到底是什么决定了2011年社区产品(以SNS为代表)在国内外发展的红红火火,Web2.0大行其道?点点虽给不出一个绝对的答案,不过不难看出,信息爆炸对时代的冲击,彻底地改变着人们的生活方式,也为这个时代的发展全方位拓宽了方向。随着用户对数据量的要求越来越大,就有了相应的数据挖掘/推荐系统。

  • 推荐算法综述(五)

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

发现更多内容

通过AWS EMR降低集群计算成本

行者AI

AWS 计算

failure: repodata/repomd.xml from cloudera-manager: [Errno 256] No more mirrors to try

wjchenge

3 月日更挑战|春日胜景,记录暖心每一天

InfoQ写作社区官方

七日更 3月日更 热门活动

大话 Python:python 操作 excel 系列 -- 数据汇总与统计

老王说编程

Python Excel 数据统计

上过云么?一行代码秒上云体验过么?

华为云开发者联盟

华为云 云服务器 devcloud 代码托管

区块链赋能电子合同!构建互联网可信生态整体解决方案

源中瑞-龙先生

Open-Falcon 中的 LDAP 认证

冯骐

Python 运维 Open-Falcon ldap Go 语言

《精通比特币》学习笔记(第一章)

棉花糖

区块链 读书笔记

浪潮肖雪:用工业互联网解决企业痛点问题

浪潮云

工业互联网

拍乐云加盟UCloud优云精选计划,构建云上的美好互动

拍乐云Pano

ucloud 云服务 RTC 拍乐云 白板

思科设备漏洞 CVE-2018-0171 的快速修复

冯骐

Python 运维 安全 网络 交换机

Redis最佳实践:7个维度+43条使用规范,带你彻底玩转Redis | 附最佳实践清单

Kaito

数据库 redis 后端

Volcano社区正式发布v1.2.0版本

华为云原生团队

人工智能 开源 AI 云原生

上云三问 | 京东云这次的大促有哪些“不一样”?

京东科技开发者

云主机 云安全

Golang 中的并发限制与超时控制

冯骐

并发 超时 Go 语言

交换机配置的自动备份与变更告警

冯骐

Python 运维 网络 备份 multissh

远程恶搞舍友电脑

大忽悠

3月日更

徐烨:这20年,我与应用系统的“云化”之路

华为云开发者联盟

架构 服务器 华为云 企业上云 应用系统

如何使用Excel表格精准分析PT100温度阻值关系?

不脱发的程序猿

28天写作 PT100 温度采集算法 Excel数据分析 传感器采集

LeetCode题解:190. 颠倒二进制位,移动n,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

智汇华云 | 深入理解Istio中的证书管理

华云数据

量化交易马特机器人(币掌柜/小树/小喜/瓦力)系统开发策略搭建

薇電13242772558

数字货币 量化策略

用 Go 写一个轻量级的 ldap 测试工具

冯骐

运维 开发 ldap Go 语言

用 Go 写一个轻量级的 ssh 批量操作工具

冯骐

运维 SSH Go 语言

【经验分享】如何释放企业CMDB价值?——CMDB建设路径浅谈

嘉为蓝鲸

运维自动化 配置中心 CMDB 配置信息 配置管理

话说 wait、notify 、 notifyAll

木子的昼夜

Java 通信 Wait notify notifyAll

简述Electron的发展和应用

anyRTC开发者

WebRTC 跨平台 Electron RTC sdk

元素XPATH定位点击为什么老失败?

小小娃爱吃甜食

Python 自动化 测试 selenium

从小厂逆袭快手,我是如何准备面试的

haxianhe

Spring Boot+Maven实现车牌训练、识别系统

不脱发的程序猿

maven Spring Boot 图像处理 28天写作 车牌训练、识别系统

【LeetCode】俄罗斯套娃信封问题Java题解

HQ数字卡

算法 LeetCode 28天写作

面向体验的视频云-火山引擎增长沙龙

面向体验的视频云-火山引擎增长沙龙

从算法到案例:推荐系统必读的10篇精选技术文章_语言 & 开发_Tina_InfoQ精选文章