本文介绍推荐系统基础知识,涵盖以下内容:

  • 一、什么是推荐系统?
  • 二、使用推荐系统的好处
  • 三、推荐系统的构建流程
  • 四、推荐系统相关模型
  • 五、推荐系统开发工具(Python工具库)
  • 六、构建推荐系统的挑战
  • 七、推荐系统的价值

一、什么是推荐系统?

推荐系统通过预测用户对物品的’喜好‘,推荐给用户商品或者服务,例如:短视频、音乐、图书、服装、新闻等,从而可以提升用户的体检。举个例子,你在电商系统中搜索 “鸭舌帽 ”,会出现很多店铺的相关推荐,以便用户的选择,从而提高商品的购买率。

二、使用推荐系统的好处

使用推荐系统的好处在于能够快速及有效的解决用户的需求,为用户提供有价值的相关信息,从而能够将被动的服务变为更加主动的服务。由于大数据的爆发,网上信息资源的过载,利用推荐系统能够快速便捷的为用户删选出最为感兴趣的东西,当用户身处于一个陌生的领域时,同时也为用户提供一些建议,帮助用户进行抉择,成为用户的私人助理。

三、推荐系统的构建流程

(1)需求分析
首先需要明确推荐系统的具体的业务目标是什么,例如使用推荐系统提高商品的销售量以及提升用户的点击率。

(2)数据准备
通过需求分析,进行数据收集分析,如用户的相关行为数据。

(3)推荐模型
利用收集到的数据,通过推荐模型从而得出推荐商品的结果。

(4)线下测试
得到的模型,在历史的数据中进行测试,评估其预测的好坏。

(5)线上测试
如得到的推荐模型在进行评估后发现其效果不错,则可以在平台中上线进行使用推荐系统。

四、推荐系统相关模型

推荐系统常用策略有:

1. 基于内容的推荐

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

2. 协同过滤

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

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

3. 基于模型的推荐

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

4. 基于社交关系的推荐

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

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

说到具体算法的话,目前推荐算法主要为:分类算法、聚类算法、关联规则算法等。

其中分类算法模型主要有如下几种:

(1)KNN模型
(2)决策树模型
(3)逻辑斯蒂回归模型
(4)贝叶斯模型
(5)随机森林模型
(6)梯度提升树模型
(7)支持向量机模型
(8)神经网络模型
(9)XGBoost模型
(10)LightGBM模型

聚类算法模型有:

(1)K-Means模型
(2)DBSCAN模型
(3)高斯混合模型
(4)层次聚类模型

关联规则算法模型有:

(1)Apriori算法模型
(2)FP-Growth算法模型

五、推荐系统开发工具(Python工具库)

一个完整的推荐系统开发模型,在数据准备、整合阶段主要涉及的Python工具库有Numpy、Pandas、Scipy对数据进行读取、清洗、分析,在数据分析阶段可以通过Matplotlib、Seaborn、PyEcharts进行可视化分析,在模型训练以及评估阶段则可以通过Scikit-Learn、TensorFlow、PyTorch、Keras、XGBoost、LightGBM工具进行模型的分析与建设。

六、构建推荐系统的挑战

推荐系统是解决大规模用户场景下,大量信息的精准分发的问题,推荐系统解决的问题看起来很简单朴素,那么是不是可以非常容易的构建一个效果很好的推荐系统呢?

答案是否定的, 要想构建一个高效的有价值的推荐系统是一件很困难的事情。这里简单说一下构建推荐系统可能遇到的困难、障碍,以及构建好的推荐系统的挑战。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

七、推荐系统的价值

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

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

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

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

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

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

推荐系统介绍(优势、流程、模型、工具、挑战、价值)相关推荐

  1. 《文心千帆大模型平台开放测试,为企业和个人提供全流程大模型工具链》

    文章目录 每日一句正能量 前言 文心千帆大模型平台的结构 文心千帆大模型平台的功能 文心千帆大模型平台体验 文档 IDC「AI大模型评估报告」,文心大模型全班第一 文心大模型3.5,功能全面升级 检索 ...

  2. 推荐国外六大优秀流程设计工具,让你的业务流程管理更高效

    大家知道, BPM流程管理的整个生命周期有五个阶段:设计.建模.执行.监控和优化.BPMN,即Business Process Modeling Notation,业务流程建模符号,是用一种类似于流程 ...

  3. Replication(上):常见复制模型分布式系统挑战

    分布式系统设计是一项十分复杂且具有挑战性的事情.其中,数据复制与一致性更是其中十分重要的一环.数据复制领域概念庞杂.理论性强,如果对应的算法没有理论验证大概率会出错.如果在设计过程中,不了解对应理论所 ...

  4. 一文讲透需求管理(方法+模型工具)

    需求管理能力是衡量产品经理能力的一个重要指标.因为需求是产品的基石,只有选取恰当的方法进行需求分析及管理,才能更好的构建产品方案,从而输出精准的产品定义. 结合本人学习和自身经验,打算将需求管理分&q ...

  5. 18款iPad绘画软件推荐!iPad必备生产力工具

    每当提起iPad,少不了会听到坊间流传已久的那句话,「买前生产力,买后爱奇艺」,确实有不少奔着生产力入手iPad的人,最终让iPad沦为煲剧神器或泡面盖,但我们没必要因噎废食,因为总有人能克服iPad ...

  6. AI上推荐 之 逻辑回归模型与GBDT+LR(特征工程模型化的开端)

    1. 前言 随着信息技术和互联网的发展, 我们已经步入了一个信息过载的时代,这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战: 信息消费者:如何从大量的信息中找到自己感兴趣的信息? 信息生产 ...

  7. 个性化电商广告推荐系统介绍

    一 个性化电商广告推荐系统介绍 1.1 数据集介绍 Ali_Display_Ad_Click是阿里巴巴提供的一个淘宝展示广告点击率预估数据集 数据集来源:天池竞赛 原始样本骨架raw_sample 淘 ...

  8. python推介系统方法_基于AutoRec 的推荐系统介绍与python实现

    本文要介绍的模型是2015年由澳大利亚国立大学提出的AutoRec.它将自编码器(AutoEncoder) 的思想和协同过滤结合,提出了一种但隐藏层的神经网络推荐model.因为简洁的网络结构和清晰易 ...

  9. DataScience:数据可视化的简介(意义+六大优势)、使用工具之详细攻略

    DataScience:数据可视化的简介(意义+六大优势).使用工具之详细攻略 导读:源于人.机器和互联网本身的数据并不能为管理人员和其他决策者提供有价值的见解,必须整理.规范和进一步解释数据,然后进 ...

  10. 推荐场景中召回模型的演化过程

    导读:一般的推荐系统主要包括召回.排序和后续的业务机制 ( 重排序.多样性保证.用户体验保证等等 ) 这三大模块,而其中召回模块主要负责根据用户和 item 的特征,从众多待推荐的候选 item 中初 ...

最新文章

  1. sys.stdout.write与sys.sterr.write(二)
  2. 第四百零三节,python网站在线支付,支付宝接口集成与远程调试,
  3. math.hypot java_Java math
  4. 科学家研发多模态生物识别系统,基于脑纹独特性来防范身份欺骗
  5. Python实现switch效果
  6. 正态分布的前世今生(一)
  7. 分类检测分割中的损失函数和评价指标
  8. 游戏主播这个行为终于有人治了!腾讯下“禁令”
  9. SpringMVC——处理方法返回值的可选类型
  10. 【转】C#中base关键字的几种用法
  11. Hibernate----面试题
  12. Web设计规范----控件、组件
  13. 哈工大离散数学期末试题2021回忆版
  14. 非阻塞套接字及select模型 select(0,fread,NULL,NULL,timeOut);
  15. 自然场景文本检测识别 - 综述
  16. 单片机24秒倒计时c语言,基于51单片机的篮球24秒倒计时器
  17. 上原れな - 届かない恋
  18. WinCE下3G模块的调试
  19. 计算机培训后的感言,计算机中级培训感言
  20. python数据分析002—python基础语法

热门文章

  1. 【自己动手,打造自己的Wallpaper引擎(Win10/Win11)】
  2. java 方法过长_Java方法名称何时太长?
  3. IntelliJ IDEA 在当前类中查找方法快捷键
  4. 【vue警告坑】 Invalid prop: type check failed for prop resultChild. Expected Object, got String with v
  5. arcade订阅家庭共享教程
  6. model.addattribute作用及用法
  7. ubuntumysql卸载
  8. .net开发 C盘空间不足问题
  9. 【UML】 类图 图例
  10. python基于itchat实现微信群消息同步机器人