首先申明一下,推荐算法是个很大的话题,实际工程中也是很多策略交织在一起。所以本文主要是尽量通俗易懂的讲清楚推荐算法是个什么东西,不追求深入、全面和绝对的精确。
以下内容分三部分:算法的核心;算法有多大用;实际工程中算法怎么工作的。
算法的核心是什么
推荐算法的核心是基于历史信息寻找被推荐的东西(可能是人、物、信息)与用户的一种关联性,进而去预测你下一步可能喜欢什么,本质上还是基于统计学的一种推测(谷歌的深度学习除外)。
这里有两个关键点:历史信息;关联性。
历史信息也就是大家所说的标准化数据;
关联性也就是大家常说的算法,它做的事情就是猜测你可能会喜欢怎样的东西。要搞清楚这个问题,还是得回到人在不同的场景中会喜欢怎样的东西,这个在不同的场景中差别比较大。
举两个例子说明一下:
对于微信朋友圈:用户最关心的是我跟发布者的亲密度,其次是内容的质量和内容的发布时间,这也就是Facebook(NASDAQ:FB)智能信息流的雏形,根据跟发布者的亲密度,内容的质量和内容的新鲜程度的一个混排算法。
对于美团外卖:用户最关心的是这家餐厅好不好吃,价格贵不贵,有没有优惠,配送时间长不长。至于我认不认识这家餐厅的老板,这家餐厅开业时间就不是重点,所以算法就可能是完全不一样的思路。
不管Facebook信息流还是美团外卖,核心还是得去理解用户在你的产品中到底喜欢怎样的东西,这个是基础,算法只是工具。
算法真的有那么大效果吗
这几年今日头条的成功,包括业内各种人工智能(AI)的吹,让我们以为算法无所不能,实际上算法真的有这么神奇吗?
答案是:没有
今日头条的成功,我认为主要还是靠对流量的理解,战略和公司的运营、算法、数据化思维形成的执行力。算法在里面只是一环。
举一个淘宝的例子
去淘宝的人从需求的强弱程度来看分三种:明确知道我要买啥的,知道我要买啥品类但具体买啥不知道,就是来逛的。
第一类算法没有增长点,我就要买个苹果的iphoneX,你再怎么推荐我也是买个苹果X。
第二类算法的增长点一般,我要买个蓝牙耳机,算法处理的好能提高成单率,客单价,利润,但也是有限的,因为用户进来之前已经有了一些基本的预算之类的预设。
第三类是比较大的增量空间,因为第三类属于激发性需求。就像你去商场听导购一顿忽悠,买了本身不需要的东西。但是第三类的成单量本身的占比并没有那么大。
所以综合下来,算法实际的效果也就是在完全没有算法的基础上有1.1,1.2,1.3倍这样的效果,这是由用户的需求总量决定的。
当然我不是说算法没用,因为在同等成本结构的基础上,你的转化率哪怕比竞争对手高5%,那也是巨大的效率碾压。我只是想说,算法没有大家吹得那么厉害,并不能直接决定一家公司的成败,算法只是一个辅助。
算法在实际工程中的工作过程是怎样的
在实际的商品类的推荐系统中,主要分三大块:收集数据和整理(商品画像、用户画像);算法推荐;上线实验及回收结果。
【1】收集数据及整理
假设小明开了一个有3家分店的大型水果连锁店,收集数据阶段主要包括:
商品属性信息:小明将店内的每一个水果以及水果的信息都记下来,甜的还是酸的,品质S还是A,有没有损坏,性寒还是热,单价贵不贵,有没有优惠等等。这是商品的基本属性信息。
商品反馈信息:销量咋样,停留率咋样,停留转化率咋样,用户的评价反馈咋样。这个是基本的反馈信息。
人的基本属性:什么人,什么小区,穿着打扮咋样,年龄多大,哪里人。
人的行为信息:这次买了啥,下次买了啥,看了啥,咨询过啥,买完之后反馈咋样。
数据阶段收集是一方面,最关键的是收集的数据是结构化的,是在用户的购买决策中是有效的,比如说用户中途出去抽了一根烟这种信息就没啥用。
【2】算法推荐
算法阶段关键的还是搞清楚用户在不同的场景中会喜欢怎样的水果。
我个人喜欢把商品推荐主干算法分为4个部分:质量评估,个性化,场景化,人工干预。
质量评估:有些标准是存在绝对的好与坏的,水果是不是好的,性价比高不高,销量好不好,优惠力度大不大,用户反馈好不好这些是存在绝对的好与坏的,我相信没人想买个烂苹果。
个性化:有些东西是存在个体差异的,甜的还是酸的,进口的还是国产的,水果的品种是樱桃还是芒果,性凉还是热的,品质分级是S还是A(跟前面的烂没烂两个概念)。
举个例子:
一个金融白领可能喜欢的是甜的车厘子,进口的,品质S级的,优惠不敏感,客单价高;而小区的家庭主妇喜欢的可能是杨梅,品质还过得去的国产的就行,很在乎优惠,客单价适中的。
那对于前一种用户就可以推一些客单价高的,毛利高的进口产品,相应的也可以少设置优惠;对于后一种就应该推一些性价比高的,有折扣的清仓的商品。
场景化:不同的时间和地点会一定程度上影响用户的消费决策,比如夏天大家喜欢吃西瓜,在医院边上香蕉好卖,中午的时候不带皮可以直接吃的东西好卖因为大部分下午还要上班,晚上则需要处理的也卖的还可以。这个就是不同的场景带来的影响。
人工干预:算法本身是不带意志的,但是很多时候人会强加一些意志上去,比如说最近年底冲业绩了,需要强推高毛利的商品了;比如这个樱桃是合作方的,需要强推;比如有些东西快过期了,需要强推。
算法最后做的就是把里面每一个环节打上一个分,最后再把这些因素去加总得到一个最后的结果呈现在用户面前。但是这个分怎么打?这个就涉及到算法的价值观
所谓算法的价值观,就是你希望算法最终的结果是怎样的,我是希望销量最大化还是销售额最大化还是利润最大化。不同的目标带来不同的结果。因为算法只是为目标最大化负责的。
算法在处理每一项得分的时候也挺简单,简单说就是,如果我的目标是销量最大化,那有两个特征:优惠力度,评价。
如果随着优惠力度的提高购买转化率急剧提升,那么我认为优惠力度这个特征权重就高;如果随着评价的提升购买转化率提升较慢,那么我认为评价这个特征的权重就一般。
这个过程并不复杂,算法的优势在于它能记录更丰富的信息(工程中特征数量可能达到百万级),处理海量的数据——这是算法比人有优势的地方。
这个大概能支撑起一个算法的框架,实际的应用中会在一个主干算法的基础上去迭代很多小的策略。
下面举几个具体的细分迭代策略:
比如说买了芒果的用户很大比例都买了樱桃,那相应的会把买芒果的用户列表中的樱桃相应的往前提——这个就是大家常说的购物篮算法。
比如说同样是国贸摩根大厦的用户更喜欢进口水果,那对于一个摩根大厦的用户他列表中的进口水果,高客单价水果需要往前提。这个类似协同过滤,通过找到跟你类似的人,再去看他们喜欢啥。
比如说你第一次买了榴莲之后打了差评,以后就需要降低榴莲及相关水果的权重——这个就是负反馈。
比如说你的列表中连续出现了3种葡萄,那这时候大概率是应该把他们打散一下,尽量一页别出太多葡萄——这就是打散。
比如当你在浏览的过程中点击了樱桃,那根据购物篮原来喜欢买樱桃的人也喜欢买芒果,那下一页加载的时候需要动态的增加芒果的权重——这个是实时反馈。
【3】实验及回收效果
个人认为快速的实验迭代和效果回收是算法高效率的关键,也是互联网的核心。修路造桥错了就是错了,而互联网产品这版效果不好下一版还能优化。
算法是将这种快速迭代推向了顶峰,同时几十个实验在线上AB测试,不需要发版,好不好马上就能看出来。
AB测试的过程有点类似如果我有5家水果店,我要验证新引进的樱桃设置怎样的价格能收益最大化,我可以5家店同时设置5种价格,卖一周看看结果。
实验主要分两个部分:实验及效果回收。
实验就是在其它东西都一样的情况下,留出一个不一样的东西,然后观察最后的结果,这样比较好确定最后的结果差异就是由这个不一样的东西带来的。
效果回收主要是看数据和人去看实际推荐的结果,看数据需要覆盖多一些的指标,因为很可能销量好了毛利降了,或者毛利好了当天剩余率升高了。
人工去看结果主要是一个二次确定的过程,比如在头条里面各种数据都很好,但是推出来的内容很低俗;或者这种数据好人看完之后凭经验知道这不是长久之计,比如周围就一家水果店会恶性提价。
如果你发现自己要去了解基本面很困难,不妨关注我们提供给你的火箭研报小程序,帮助你提高对上市公司的精选和甄别。
编辑:Gemini(算法与数据之美)
来源:新浪财经
本文为 @ 21CTO 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。