编注:“大数据文摘”的很多读者亲友,一些纯粹的大数据爱好者,甚至有一部分企业管理者经常在后台向我们建议,希望我们能把大数据的分析系统做一个简单的介绍,不要“只见案例,不见原理”。于是Larry就自告奋勇来为大家做一个科普,带领读者亲友们一探究竟,让我们来揭开大数据推荐系统神秘的面纱!
说到大数据,神马根据数据进行精准营销啊,神马更了解你的客户啊,神马啤酒尿布超市推送商品预测怀孕亚马逊预测式发货等等,你谷歌百度搜狗有道一气,都是说推荐系统如何如何牛逼的,但是没人介绍推荐系统到底是啥样的。今天来八一八。过年了,干货全当送礼。
先看看系统架构吧。大多推荐系统架构基本是这样的:
架构图看了,那就分别细说一下。
先说数据底层。或者叫基础数据层。这一层基本是在做数据的整合和批量处理。数据整合主要是整合产品系统的用户行为、日志等数据和相关运营监控系统的数据。一般是以客户的id为主键或key,形成一个大宽表。之后通过算法的批量计算进行聚类,分类等操作。形成的数据结果反馈至中间计算层。
中间计算层通过基础数据层的结果进行实时的小批量计算,将结果推送到进线计算层。
进线计算层结合中间计算层的结果和用户的实时使用和反馈进行结合。实时给出结果。
呵呵,是不是和看绕口令一样?那看下面的例子。
你要听歌。打开一个app,app里面就会有“今日推荐”,这个基本上是中间计算层的数据。还有一个就是猜你喜欢。“猜你喜欢”基本上是进线计算层的数据。还有就是音乐类型啊,场景啊,这个基本上就是基础数据层的批处理跑出来的。
上面的内容权作科普。基本上告诉了大家推荐系统的架构是怎样的。
下面来点真正的干货!
1.推荐系统依赖全量数据。以一个音乐app产品为例。用的人多,反馈越多,可用作分析的用户数据就越多。数据越多,那些原本的数据挖掘算法,就会基于你的这个app训练得更好。或者说更适合于你自己的产品。所以说,你要想做一个好的app,花钱做推广吧。
2.算法很重要,但是需要逐步完善。算法是一个工具,工具用的好需要好的工匠。工程师作为工匠要快速的进行算法的完善,以便能够符合app的长期运营战略。以音乐app产品为例,短期的算法改进可能会让你有大量的用户,但是由于多种因素变化,某个或某些算法可能存在“半衰期”--就是说基于这个算法,你改进了很多次,但是计算结果用户都不喜欢。这个其实就是需要一个长期的稳健的规划。如何设计和改进你的算法策略和算法计划很关键。
3.了解你的产品。不管你的推荐系统是应用的电商网站,还是用于音乐app,还是其他。了解你的产品本身很重要。例如音乐类app产品,在应用中,用户对音乐场景的选择粘度要远高于对音乐类型的选择粘度--“忧伤时候必须听的歌”,“失恋必听30首”这样的歌单的点击会高于“R&B;最牛100首”,“史上重金属经典50首”这样的歌单。这种情况下其实算法是帮不了你的,只能通过你对产品的感情了。