本文介绍推荐系统基础知识,涵盖以下内容
推荐系统通过预测用户对物品的‘喜好’,推荐给用户商品或者服务,例如:短视频、音乐、图书、服装、新闻等,从而可以提升用户的体检。
举个例子,你在电商系统中搜索 “鸭舌帽 ”,会出现很多店铺的相关推荐,以便用户的选择,从而提高商品的购买率。
使用推荐系统的好处在于能够快速及有效的解决用户的需求,为用户提供有价值的相关信息,从而能够将被动的服务变为更加主动的服务。
由于大数据的爆发,网上信息资源的过载,利用推荐系统能够快速便捷的为用户删选出最为感兴趣的东西,当用户身处于一个陌生的领域时,同时也为用户提供一些建议,帮助用户进行抉择,成为用户的私人助理。
首先需要明确推荐系统的具体的业务目标是什么,例如使用推荐系统提高商品的销售量以及提升用户的点击率。
通过需求分析,进行数据收集分析,如用户的相关行为数据。
利用收集到的数据,通过推荐模型从而得出推荐商品的结果。
得到的模型,在历史的数据中进行测试,评估其预测的好坏。
如得到的推荐模型在进行评估后发现其效果不错,则可以在平台中上线进行使用推荐系统。
推荐系统常用策略有:
推荐系统是通过技术手段将“标的物”与人关联起来,“标的物”包含很多自己的属性,用户通过与“标的物”的交互会产生行为日志,这些行为日志可以作为衡量用户对“标的物”偏好的标签,通过这些偏好标签为用户做推荐就是基于内容的推荐算法。
拿视频推荐来说,视频有标题、国别、年代、演职员、标签等信息,用户以前看过的视频,就代表用户对这些视频有兴趣,比如用户偏好恐怖,科幻类的电影,我们就可以根据这些兴趣特征为用户推荐恐怖科幻类的电影。
用户在产品上的交互行为为用户留下了标记,我们可以利用“物以类聚,人以群分”的朴素思想来为用户提供个性化推荐。
具体来说,「“人以群分”」就是找到与用户兴趣相同的用户(有过类似的行为),将这些兴趣相同的用户浏览过物品推荐给用户,这就是基于用户的协同过滤算法。「“物以类聚”」就是如果有很多用户都对某两个物品有相似的偏好, 说明这两个物品是“相似”的,我们可以通过推荐用户喜欢过的物品相似的物品这种方式为用户提供个性化推荐, 这就是基于物品的协同过滤推荐算法。
基于用户行为记录,用户相关信息(年龄,性别,地域,消费习惯等),物品相关信息,构建算法模型,预测用户对物品的偏好,常用的算法有logistic回归,矩阵分解等。随着现在深度学习技术的发展,目前有很多深度学习相关的算法落地到了推荐系统上,产生了很好的效果。
我们在日常生活中经常为别人或者要求别人给我们推荐书籍、餐厅、电影等,这种推荐方式往往效果较好,大家会更容易接受。微信“看一看”模块中的“在看”就是通过将你的微信好友看过的文章推荐给你。
这些推荐算法中,基于「内容的推荐」和「协同过滤推荐」是最常用的推荐算法,实现相对简单,效果也很不错,在工业界得到了大规模的应用。
说到具体算法的话,目前推荐算法主要为:分类算法、聚类算法、关联规则算法等。
其中「分类算法模型」主要有如下几种:
(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工具库有Numpy、Pandas、Scipy对数据进行读取、清洗、分析,在数据分析阶段可以通过Matplotlib、Seaborn、PyEcharts进行可视化分析,在模型训练以及评估阶段则可以通过Scikit-Learn、TensorFlow、PyTorch、Keras、XGBoost、LightGBM工具进行模型的分析与建设。
推荐系统是解决大规模用户场景下,大量信息的精准分发的问题,推荐系统解决的问题看起来很简单朴素,那么是不是可以非常容易的构建一个效果很好的推荐系统呢?
答案是否定的,要想构建一个高效的有价值的推荐系统是一件很困难的事情。这里简单说一下构建推荐系统可能遇到的困难、障碍,以及构建好的推荐系统的挑战。
「首先不是任何一个产品都需要推荐的」,你提供的“标的物”必须足够多,用户无法通过浏览完所有“标的物”来做选择,这时才有推荐的必要,比如苹果官网,卖的东西是很少的几个品类,每个品类也不多,加起来也没有多少,这时用户可以直接浏览所有产品找自己喜欢的也很方便。
「另外,推荐系统是一个比较大的系统工程」,有效的落地需要相当多的资源投入,所以需要领导的大力支持,并且领导要能够意识到推荐算法的价值。为什么今日头条可以从传统的新闻客户端脱颖而出,正是认识到了推荐的价值,整个公司从创立之初就以算法为核心,围绕推荐系统构建好的产品体验。
「最后从技术工程实现的角度说说构建推荐系统面临的挑战」,具体而言构建好的推荐系统面临如下的挑战:
「推荐系统推荐精准度的问题」:这需要通过构建好的推荐算法来实现,同时要有足够多的用户行为数据来学习算法模型, 数据预处理的质量也对结果有较大影响, 现在基于深度学习的推荐系统可以达到很好的效果;
「冷启动问题」:新用户、新物品没有相关行为信息, 这时系统怎么给用户推荐,怎么将新物品推荐出去, 在推荐系统落地过程中都需要做结合业务场景的特殊处理才能达到好的用户体验;
如果你的产品有大量用户访问,怎么构建一套高效的推荐系统,满足高并发访问,为用户提供「稳定,快速,高效的推荐服务」也是一个挑战;
「数据缺失的问题」:现实场景中一定存在用户或者物品的信息不完善,或者部分信息有误,这些也是在构建推荐算法模型过程中必须考虑和解决的问题;
「怎么处理非结构化的信息」:用户和物品相关的信息有可能是非结构化的信息,比如图片,视频,音频,文本等,怎么高效的利用这些信息,为推荐模型提供更多信息输入, 随着深度学习在推荐系统中大规模运用,这类问题可以得到较好的解决;
「一些噪音及恶意攻击也会产生大量垃圾数据」,对更好的做推荐产生很大的干扰, 怎么很好的保证训练数据的质量,这是ETL和特征工程需要解决的重要问题;
「大规模计算与存储」:大量的用户和大量的物品,对数据处理和计算造成很大的压力,需要采用分布式技术(如Hadoop,Spark等)来做数据存储,处理,计算等, 所以要很好的落地推荐系统需要企业构建一套高效的大数据分析处理平台;
为了给用户提供实时的个性化推荐(如今日头条的新闻推荐等), 需要实时收集处理用户的反馈,做到更及时精准的推荐,为用户提供强感知的服务。对大规模用户做到「实时响应」,对算法,计算,处理有相当大的挑战。
「用户交互问题」:推荐系统通过用户与产品的交互来触达用户,所以好的UI及交互体验对推荐系统发挥真正的价值起到非常关键的作用,有时好的UI和交互体验甚至比好的算法更管用;
「怎么评估推荐算法的价值」:推荐系统怎么服务于业务,怎么衡量推荐系统的价值产出,怎么为推荐系统制定业务指标,通过指标提升推荐系统效果的同时促进业务发展?这些问题都是摆在推荐系统开发人员, 甚至是公司管理者面前的重要问题, 只有很好的度量出推荐系统的价值,才能更好的优化推荐系统,发挥推荐系统的价值。
上面说了这么多构建好的推荐系统需要克服的困难和障碍, 但是推荐系统是非常有价值的,值得我们花这么多精力和时间去构建一套好的推荐系统。推荐系统的极大价值也驱使越来越多的公司将推荐系统作为产品的标配。
当前推荐系统技术是互联网公司的标配技术, 因为它很好的解决“标的物”提供放,平台方,用户三方的需求。本节详细说一下推荐系统的价值,它的价值主要体现在四个方面。
「从用户角度说」,推荐系统可以让用户在纷繁芜杂的海量信息中快速找到自己感兴趣的信息,节省了用户的时间,特别是当用户在使用某个互联网产品时,不经意中发现平台给自己推荐了特别喜欢的东西时,那种惊喜油然而生,从而极大提升了用户的使用体验。
「从平台的角度看」,推荐了一本书给用户,用户发现这本书正好是自己需要的,立即就买下来了, 推荐一首付费音乐给用户,用户特别喜欢,毫不犹豫就付费了。精准的推荐,也能增加用户对平台的粘性,让用户喜欢上你的平台。平台通过售卖物品的分成及广告投放可以获取丰厚的利润。
「从物品提供商的角度看」,如果平台能够将提供商的物品推荐给喜欢的用户, 提升物品被售卖出去的概率,这样商品可以卖得更多更好, 提升了供应商的销量,从而为供应商赚取极大的收益。
另外,平台精准的将物品(实物物品,如冰箱,电视机等)推荐出去并被用户购买,从侧面也降低了物品的周转时间,减少了库存积压,对于「社会资源的节省和有效利用」也是大有益处的。
硅谷互联网教父凯文·凯利在《必然》这本畅销书上提到了“过滤”这一大趋势,推荐系统就是最好的提供过滤能力的技术之一,相信随着互联网的深入发展,推荐系统将会发挥越来越重要的价值!
点击卡片关注我,第一时间获取干货~本文由 mdnice 多平台发布