写点什么

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

  • 2019-04-25
  • 本文字数:5765 字

    阅读完需:约 19 分钟

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

导读:个性化推荐系统,简单来说就是根据每个人的偏好推荐他喜欢的物品。互联网发展到现在,推荐系统已经无处不在,在各行各业都得到普遍都应用。亚马逊号称 40% 的收入是来自个性化推荐系统的,淘宝的个性化推荐系统也带来非常大的收益,新闻媒体的个性化推荐系统典型的是今日头条,直播平台给用户推荐喜欢的主播,金融网站给用户推荐需要的理财产品,社交网络给用户推荐大 V 或者其他朋友……越来越多的公司将推荐系统作为产品的标配。


大家接触推荐系统的概率会越来越大。作为程序员,了解推荐系统也越来越必要,甚至可以主动选择“推荐系统算法工程师”的相关职位。那大家一定会关心推荐算法工程师需要哪些知识储备,以及作为一个推荐算法工程师,未来的发展道路怎样?


本文是作者计划的一系列文章中的第二篇。第一篇为《推荐算法工程师的成长之道》。后面的文章将涉及到推荐系统的冷启动、商业价值、工程实现、评估等方方面面。这系列文章是作者多年推荐系统学习、实践经验的总结,希望能够帮助到即将入行推荐系统开发的读者或者推荐系统开发人员,让大家少走弯路。



正文

推荐系统产生的背景

随着移动互联网的快速发展,我们进入了信息爆炸时代。当前通过互联网提供服务的平台越来越多,相应的提供的服务种类(购物,视频,新闻,音乐,婚恋,社交等)层出不穷,服务“标的物”的种类也越来越多样(亚马逊上有上百万的书),这么多的“标的物”怎么让需要它的人找到它, 满足用户的各种需要, 就是摆在企业面前的难题。


同时,随着社会的发展,受教育程度的提升,每个人都有表现自我个性的欲望。随着互联网的发展,出现了非常多的可以表达自我个性的产品,如微信朋友圈,微博,抖音,快手等,每个人的个性喜好特长有了极大展示的空间。另外从进化论的角度来说,每个人都是一个差异化的个体,是生而不同的,生而具有不同的性格特征,个人的生活成长环境又有极大差异,导致个人的偏好口味千差万别。“长尾理论”也很好的解释了多样化物品中的非畅销品可以满足人们多样化的需求,这些需求加起来不一定比热门物品产生的销售额小。


随着社会的进步,物质生活条件的改善,大家不必再为生存下来而担忧,所以大家有越来越多的需求是非生存需求,比如看书,看电影,购物等,而这些非生存的需求往往在很多时候是不确定的, 是无意识的,自己不知道自己需要什么。生存需求对人而言显得非常强烈而明显,比如你快饿死了,你的第一需要肯定是食物。不同于生存需求,面对非生存需求,人们实际上更愿意接受被动推荐的好的物品, 比如给你推荐一部电影,如果符合你的口味,你可能会很喜欢。


总结上面提到的三点,当今时代可选择的商品和服务这么多,而不同人的兴趣偏好又是截然不同,并且在特定场景下,个人对自己的需求不是很明确。在这三个背景驱动下,推荐系统应运而生。个性化推荐系统是解决上述三个矛盾的最有效的方法和工具之一。


为了更好的为用户提供服务, 在为用户提供服务的同时赚取更多的利润,越来越多的公司通过采用个性化推荐技术,辅助用户更快地发现自己喜欢的东西 。公司根据用户在产品上的行为记录,结合用户自身和“标的物”的信息, 利用推荐技术(机器学习的一个分支)来为用户推荐可能感兴趣的物品。

推荐系统解决什么问题

推荐系统是在互联网快速发展(特别是移动互联网)之后的产物,随着用户规模的爆炸增长以及供应商提供的物品的种类越来越多(淘宝上有几千万商品),用户身边充斥着大量信息,这时候推荐系统就发挥了用武之地。推荐系统本质上是在用户需求不明确的情况下, 从海量的信息中为用户寻找其感兴趣的信息的技术手段。推荐系统结合用户的信息(地域,年龄,性别等),物品信息(价格,产地等),以及用户过去对物品的行为(是否购买,是否点击,是否播放等),利用机器学习技术构建用户兴趣模型,为用户提供精准的个性化推荐。


推荐系统很好的满足了“标的物”提供方,平台方,用户三方的需求。拿淘宝购物举例来说, “标的物”提供方是淘宝上成千上万的店主,平台方是淘宝,用户就是在淘宝上购物的自然人或企业。通过推荐系统可以更好地将商品曝光给给需要购买的用户, 提升社会资源的配置效率。


从本质上讲,推荐系统提升了信息分发和信息获取的效率。

推荐系统的应用领域

推荐系统广泛用于各类互联网公司,基于上面的介绍,只要存在大量的“供用户消费的商品”的互联网产品,推荐系统就有用武之地。具体来说推荐系统的应用领域主要有如下几类:


电商网站:购物,购书等,如淘宝,京东,亚马逊等


视频:Netflix,优酷,抖音,快手,电视猫等


音乐:网易云音乐,酷狗音乐等


资讯类:今日头条,天天快报等


生活服务类:美团,携程,脉脉等


交友类:陌陌,珍爱网等


下图展示了几类常见的互联网推荐产品,大家应该都不陌生。



推荐系统更多的应用场景正在不断被挖掘和创造。有了这些基本背景,下面来具体说下什么是推荐系统。

推荐系统的定义

上面两节提到了推荐系统产生的背景和推荐系统需要解决的问题,那么什么是推荐系统呢?本节我尝试给推荐系统下一个定义, 让大家可以更好的理解什么是推荐系统。


推荐系统是一项工程技术解决方案,通过利用机器学习等技术,在用户使用产品进行浏览交互的过程中,系统主动为用户展示可能会喜欢的物品,从而促进物品的“消费”,节省用户时间,提升用户体验, 做到资源的优化配置。


上面定义有几点需要细化说明一下, 方便大家更好的理解推荐系统的本质。


  1. 推荐系统是一项工程技术解决方案,要将推荐系统落地到业务上需要大量的工程开发,涉及到日志打点,日志收集,ETL,分布式计算,特征工程,推荐算法建模,数据存储,提供接口服务,UI 展示与交互,推荐效果评估等各个方面,推荐系统是一项庞大复杂的体系工程;

  2. 推荐系统是机器学习的一个分支应用,推荐系统大量使用机器学习技术,利用各种算法构建推荐模型, 提升推荐的精准度,惊喜度,覆盖率等,甚至是实时反馈用户的兴趣变化(如今日头条 APP 下拉展示新的新闻,实时反馈用户的兴趣变化);

  3. 推荐系统是一项交互式产品功能,产品为推荐系统提供载体,用户通过使用产品触达及触发推荐系统,推荐系统为用户提供个性化的推荐, 从而提升用户体验;

  4. 推荐系统是一种为用户提供感兴趣信息的便捷渠道,通过为用户提供信息创造商业价值;


推荐系统的本质是通过技术手段将“标的物”与人关联起来,方便人获取对自己有价值的“标的物”。通过上面的介绍,相信大家对推荐系统有了一个初步的了解。

常用的推荐算法

上面一节提到了推荐系统大量使用机器学习技术, 本节来简单介绍一下推荐系统常用的策略或者算法。


  1. 基于内容的推荐


上面讲到推荐系统是通过技术手段将“标的物”与人关联起来,“标的物”包含很多自己的属性,用户通过与“标的物”的交互会产生行为日志,这些行为日志可以作为衡量用户对“标的物”偏好的标签,通过这些偏好标签为用户做推荐就是基于内容的推荐算法。拿视频推荐来说,视频有标题、国别、年代、演职员、标签等信息,用户以前看过的视频,就代表用户对这些视频有兴趣,比如用户偏好恐怖,科幻类的电影,我们就可以根据这些兴趣特征为用户推荐恐怖科幻类的电影。


  1. 协同过滤


用户在产品上的交互行为为用户留下了标记,我们可以利用“物以类聚,人以群分”的朴素思想来为用户提供个性化推荐。


具体来说,“人以群分”就是找到与用户兴趣相同的用户(有过类似的行为),将这些兴趣相同的用户浏览过物品推荐给用户,这就是基于用户的协同过滤算法。“物以类聚”就是如果有很多用户都对某两个物品有相似的偏好, 说明这两个物品是“相似”的,我们可以通过推荐用户喜欢过的物品相似的物品这种方式为用户提供个性化推荐, 这就是基于物品的协同过滤推荐算法。


下面以图示来简单说明这两类协同过滤算法,让大家有更好的理解。



  1. 基于模型的推荐


基于用户行为记录,用户相关信息(年龄,性别,地域,消费习惯等),物品相关信息,构建算法模型,预测用户对物品的偏好,常用的算法有 logistic 回归,矩阵分解等。随着现在深度学习技术的发展,目前有很多深度学习相关的算法落地到了推荐系统上,产生了很好的效果。


  1. 基于社交关系的推荐


我们在日常生活中经常为别人或者要求别人给我们推荐书籍, 餐厅, 电影等,这种推荐方式往往效果较好,大家会更容易接受。最近微信 7.0 版本“看一看”模块中的“好看”就是通过将你的微信好友看过的文章推荐给你,张小龙在今年微信 8 周年微信公开课上说到,“好看”比“看一看”模块中的“精选”效果好很多,而“精选”就是通过算法来实现的推荐。


这些推荐算法中,基于内容的推荐和协同过滤推荐是最常用的推荐算法,实现相对简单,效果也很不错,在工业界得到了大规模的应用。

构建推荐系统的阻碍与挑战

推荐系统是解决大规模用户场景下,大量信息的精准分发的问题,推荐系统解决的问题看起来很简单朴素, 那么是不是可以非常容易的构建一个效果很好的推荐系统呢?答案是否定的, 要想构建一个高效的有价值的推荐系统是一件很困难的事情。这里简单说一下构建推荐系统可能遇到的困难、障碍,以及构建好的推荐系统的挑战。


首先不是任何一个产品都需要推荐的,你提供的“标的物”必须足够多,用户无法通过浏览完所有“标的物”来做选择,这时才有推荐的必要,比如苹果官网,卖的东西是很少的几个品类,每个品类也不多,加起来也没有多少,这时用户可以直接浏览所有产品找自己喜欢的也很方便。


另外,前面说过推荐系统是一个比较大的系统工程,有效的落地需要相当多的资源投入,所以需要领导的大力支持,并且领导要能够意识到推荐算法的价值。为什么今日头条可以从传统的新闻客户端脱颖而出,正是张一鸣认识到了推荐的价值,整个公司从创立之初就以算法为核心,围绕推荐系统构建好的产品体验,不到 7 年最终达到估值近 700 亿美元的独角兽,令腾讯和百度都感受到了极大的威胁。


最后从技术工程实现的角度说说构建推荐系统面临的挑战,具体而言构建好的推荐系统面临如下的挑战:


  1. 推荐系统推荐精准度的问题:这需要通过构建好的推荐算法来实现,同时要有足够多的用户行为数据来学习算法模型, 数据预处理的质量也对结果有较大影响, 现在基于深度学习的推荐系统可以达到很好的效果;

  2. 冷启动问题: 新用户、新物品没有相关行为信息, 这时系统怎么给用户推荐,怎么将新物品推荐出去, 在推荐系统落地过程中都需要做结合业务场景的特殊处理才能达到好的用户体验;

  3. 如果你的产品有大量用户访问,怎么构建一套高效的推荐系统,满足高并发访问,为用户提供稳定,快速,高效的推荐服务也是一个挑战;

  4. 数据缺失的问题:现实场景中一定存在用户或者物品的信息不完善,或者部分信息有误,这些也是在构建推荐算法模型过程中必须考虑和解决的问题;

  5. 怎么处理非结构化的信息:用户和物品相关的信息有可能是非结构化的信息,比如图片,视频,音频,文本等,怎么高效的利用这些信息,为推荐模型提供更多信息输入, 随着深度学习在推荐系统中大规模运用,这类问题可以得到较好的解决;

  6. 一些噪音及恶意攻击也会产生大量垃圾数据,对更好的做推荐产生很大的干扰, 怎么很好的保证训练数据的质量,这是 ETL 和特征工程需要解决的重要问题;

  7. 大规模计算与存储:大量的用户和大量的物品,对数据处理和计算造成很大的压力,需要采用分布式技术(如 Hadoop,Spark 等)来做数据存储,处理,计算等, 所以要很好的落地推荐系统需要企业构建一套高效的大数据分析处理平台;

  8. 为了给用户提供实时的个性化推荐(如今日头条的新闻推荐等), 需要实时收集处理用户的反馈,做到更及时精准的推荐,为用户提供强感知的服务。对大规模用户做到实时响应,对算法,计算,处理有相当大的挑战。

  9. 用户交互问题:推荐系统通过用户与产品的交互来触达用户,所以好的 UI 及交互体验对推荐系统发挥真正的价值起到非常关键的作用,有时好的 UI 和交互体验甚至比好的算法更管用;

  10. 怎么评估推荐算法的价值:推荐系统怎么服务于业务,怎么衡量推荐系统的价值产出,怎么为推荐系统制定业务指标,通过指标提升推荐系统效果的同时促进业务发展?这些问题都是摆在推荐系统开发人员, 甚至是公司管理者面前的重要问题, 只有很好的度量出推荐系统的价值,才能更好的优化推荐系统,发挥推荐系统的价值。


上面说了这么多构建好的推荐系统需要克服的困难和障碍, 但是推荐系统是非常有价值的,值得我们花这么多精力和时间去构建一套好的推荐系统。推荐系统的极大价值也驱使越来越多的公司将推荐系统作为产品的标配。

推荐系统的价值

当前推荐系统技术是互联网公司的标配技术, 因为它很好的解决“标的物”提供方,平台方,用户三方的需求。本节详细说一下推荐系统的价值,它的价值主要体现在四个方面。


从用户角度说, 推荐系统可以让用户在纷繁芜杂的海量信息中快速找到自己感兴趣的信息,节省了用户的时间,特别是当用户在使用某个互联网产品时,不经意中发现平台给自己推荐了特别喜欢的东西时,那种惊喜油然而生,从而极大提升了用户的使用体验。


从平台的角度看, 推荐了一本书给用户,用户发现这本书正好是自己需要的,立即就买下来了, 推荐一首付费音乐给用户, 用户特别喜欢,毫不犹豫就付费了。精准的推荐,也能增加用户对平台的粘性,让用户喜欢上你的平台。平台通过售卖物品的分成及广告投放可以获取丰厚的利润。


从物品提供商的角度看,如果平台能够将提供商的物品推荐给喜欢的用户, 提升物品被售卖出去的概率,这样商品可以卖得更多更好, 提升了供应商的销量,从而为供应商赚取极大的收益。


另外,平台精准的将物品(实物物品,如冰箱,电视机等)推荐出去并被用户购买,从侧面也降低了物品的周转时间, 减少了库存积压,对于社会资源的节省和有效利用也是大有益处的。


硅谷互联网教父凯文·凯利在“必然”这本畅销书上提到了“过滤”这一大趋势,推荐系统就是最好的提供过滤能力的技术之一,相信随着互联网的深入发展,推荐系统将会发挥越来越重要的价值!


作者介绍:gongyouliu,有近 10 年大数据与 ai 相关项目经验,有 9 年推荐系统研究及实践经验,目前负责电视猫大数据与人工智能团队。喜欢读书,暴走,写作。业余维护“大数据与人工智能”公众号,ID:ai-big-data,持续输出大数据、推荐系统、机器学习等相关文章。个人微信:liuq4360


原文链接https://mp.weixin.qq.com/s/DofYtvZCe-7RTicLqYtL4A


相关文章


打造工业级推荐系统(一):推荐算法工程师的成长之道


2019-04-25 15:1611446

评论

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

《网络是怎么样连接的》读书笔记 - ADSL

懒时小窝

网络编程

SAP Marketing Cloud Restful API SDK 使用案例分享

汪子熙

云计算 SaaS SAP 6月月更 Marketing Cloud

西安Java培训 | java设计模式之工厂设计模式

@零度

设计模式 JAVA开发

3M互助智能合约系统开发搭建技术

薇電13242772558

智能合约

修修补补一时爽,果断重构有担当——聊聊CRM分布式缓存优化

鲸品堂

分布式缓存

百问百答第43期:应用性能探针监测原理-PHP探针

博睿数据

智能运维 博睿数据 性能监测 百问百答

高效远程办公手册| 社区征文

程序员-小江

初夏征文

啃论文俱乐部 | 压缩算法团队:我们是如何开展对压缩算法的学习研究

OpenHarmony开发者

OpenHarmony

小程序直播互动功能运行在App里?

Speedoooo

小程序 直播带货 移动开发 直播技术 小程序容器

百度交易中台之钱包系统架构浅析

百度Geek说

系统架构 百度app

浅谈德州扑克AI核心算法:CFR

行者AI

人工智能 AI 强化学习

2022年中国手机银行年度专题分析

易观分析

手机银行

既不是研发顶尖高手,也不是销售大牛,为何偏偏获得 2 万 RMB 的首个涛思文化奖?

TDengine

数据库 tdengine 时序数据库

不容错过的2大直播!Linux应用运行抖动的背后&身临其境体验Anolis OS|第25-26期

OpenAnolis小助手

Linux 开源 操作系统 直播 龙蜥大讲堂

视频一对一源码,简单的搭建方式也有技术要求

开源直播系统源码

软件开发 二次开发 一对一源码

中国信通院首届3SCON软件供应链安全会议成功召开 聚焦软件供应链全链路安全

中国IDC圈

安全 软件安全

见证荣耀|长三角区块链应用创新大赛复赛于旺链科技成功举办

旺链科技

区块链 产业区块链 区块链应用创新

Flink CDC MongoDB Connector 的实现原理和使用实践

Apache Flink

mongodb 大数据 flink 流计算 实时计算

PingCAP 入选 2022 Gartner 云数据库“客户之声”,获评“卓越表现者”最高分

PingCAP

TiDB

这不会又是一个Go的BUG吧?

捉虫大师

Java Go 死锁

linux 密钥登录

CRMEB

Linux下玩转nginx系列(六)---nginx实现cache(缓存)服务

anyRTC开发者

nginx Linux 缓存 音视频 服务器

云堡垒机分布式集群部署优缺点简单说明-行云管家

行云管家

云计算 网络安全 堡垒机 云堡垒机

浅谈SpringMVC五大组件以及对执行原理的分析

百思不得小赵

springmvc Java EE 6月月更

居家办公初体验之新得分享| 社区征文

阿Q说代码

居家办公 初夏征文 心得分享

容器云是什么意思?与堡垒机有什么区别?

行云管家

云计算 运维 容器云 堡垒机 IT运维

Apache ShardingSphere 5.1.2 发布|全新驱动 API + 云原生部署,打造高性能数据网关

SphereEx

云原生 ShardingSphere 版本更新

融云 x DiDO:中东热土上的语音社交「萌狮」

融云 RongCloud

CVPR2022 | 上科大x小红书首次提出动作序列验证任务,可应用于体育赛事打分等多场景

小红书技术REDtech

Transformer CVPR2022 视频动作理解 动作序列验证

5000字解析:实战化场景下的容器安全攻防之道

青藤云安全

网络安全 容器安全 攻防演练

北京Java培训 | java设计模式之原型模式

@零度

JAVA开发 原型设计模式

打造工业级推荐系统(二):无处不在的推荐系统_开源_Databri_AI_InfoQ精选文章