试着说说推荐算法

首先申明一下,推荐算法是个很大的话题,实际工程中也是很多策略交织在一起,所以本文主要是尽量通俗易懂的讲清楚推荐算法是个什么东西,不追求深入、全面和绝对的精确!轻喷

以下内容分三部分:算法的核心;算法有多大用;实际工程中算法怎么工作的

1. 算法的核心是什么

推荐算法的核心是基于历史信息寻找被推荐的东西(可能是人、物、信息)与用户的一种关联性,进而去预测你下一步可能喜欢什么,本质上还是基于统计学的一种推测(谷歌的深度学习除外)。

这里有两个关键点:历史信息;关联性

历史信息也就是大家所说的标准化数据

关联性也就是大家常说的算法,他做的事情就是猜测你可能会喜欢怎样的东西.要搞清楚这个问题,还是得回到人在不同的场景中会喜欢怎样的东西,这个在不同的场景中差别比较大。举两个例子说明一下

对于微信朋友圈:用户最关心的是我跟发布者的亲密度,其次是内容的质量和内容的发布时间,这也就是Facebook智能信息流的雏形,根据跟发布者的亲密度,内容的质量和内容的新鲜程度的一个混排算法。

对于美团外卖:用户最关心的是这家餐厅好不好吃,价格贵不贵,有没有优惠,配送时间长不长。至于我认不认识这家餐厅的老板,这家餐厅开业时间就不是重点,所以算法就可能是完全不一样的思路。

不管Facebook信息流还是美团外卖,核心还是得去理解用户在你的产品中到底喜欢怎样的东西,这个是基础,算法只是工具。

2. 算法真的有那么大效果吗

这几年今日头条的成功,包括业内各种AI、人工智能的吹,让我们以为算法无所不能,实际上算法真的有这么神奇吗?

答案是没有。。。

今日头条的成功我认为主要还是靠对流量的理解,战略和公司的运营、算法、数据化思维形成的执行力。算法在里面只是一环

举一个淘宝的例子,去淘宝的人从需求的强弱程度来看分三种:明确知道我要买啥的,知道我要买啥品类但具体买啥不知道,就是来逛的。

第一类算法没有增长点,我就要买个苹果的iphoneX,你再怎么推荐我也是买个苹果X

第二类算法的增长点一般,我要买个蓝牙耳机,算法处理的好能提高成单率,客单价,利润,但也是有限的,因为用户进来之前已经有了一些基本的预算之类的预设。

第三类是比较大的增量空间,因为第三类属于激发性需求。就像你去商场听导购一顿忽悠,买了本身不需要的东西。但是第三类的成单量本身的占比并没有那么大。

所以综合下来,算法实际的效果也就是在完全没有算法的基础上有1.1,1.2,1.3倍这样的效果,这是由用户的需求总量决定的。

当然我不是说算法没用,因为在同等成本结构的基础上,你的转化率哪怕比竞争对手高5%,那也是巨大的效率碾压。我只是想说算法没有大家吹得那么厉害,并不能直接决定一家公司的成败,算法只是一个辅助。

3. 水果店案例说明算法在实际工程中的工作过程

在实际的商品类的推荐系统中,主要分三大块:收集数据和整理(商品画像、用户画像);算法推荐;上线实验及回收结果。

收集数据及整理

假设小明开了一个有3家分店的大型水果连锁店,收集数据阶段主要包括:

商品属性信息:小明将店内的每一个水果以及水果的信息都记下来,甜的还是酸的,品质S还是A,有没有损坏,性寒还是热,单价贵不贵,有没有优惠等等。这是商品的基本属性信息。

商品反馈信息:销量咋样,停留率咋样,停留转化率咋样,用户的评价反馈咋样。这个是基本的反馈信息。

人的基本属性:什么人,什么小区,穿着打扮咋样,年龄多大,哪里人

人的行为信息:这次买了啥,下次买了啥,看了啥,咨询过啥,买完之后反馈咋样。

数据阶段收集是一方面,最关键的是收集的数据是结构化的,是在用户的购买决策中是有效的,比如说用户中途出去抽了一根烟这种信息就没啥用。。。

算法推荐

算法阶段关键的还是搞清楚用户在不同的场景中会喜欢怎样的水果。

我个人喜欢把商品推荐主干算法分为4个部分:质量评估,个性化,场景化,人工干预

质量评估:有些标准是存在绝对的好与坏的,水果是不是好的,性价比高不高,销量好不好,优惠力度大不大,用户反馈好不好这些是存在绝对的好与坏的,我相信没人想买个烂苹果。

个性化:有些东西是存在个体差异的,甜的还是酸的,进口的还是国产的,水果的品种是樱桃还是芒果,性凉还是热的,品质分级是S还是A(跟前面的烂没烂两个概念)。

举个例子:一个金融白领可能喜欢的是甜的车厘子,进口的,品质S级的,优惠不敏感,客单价高;而小区的家庭主妇喜欢的可能是杨梅,品质还过得去的国产的就行,很在乎优惠,客单价适中的。那对于前一种用户就可以推一些客单价高的,毛利高的进口产品,相应的也可以少设置优惠;对于后一种就应该推一些性价比高的,有折扣的清仓的商品。

场景化:不同的时间和地点会一定程度上影响用户的消费决策,比如夏天大家喜欢吃西瓜,在医院边上香蕉好卖,中午的时候不带皮可以直接吃的东西好卖因为大部分下午还要上班,晚上则需要处理的也卖的还可以。这个就是不同的场景带来的影响

人工干预:算法本身是不带意志的,但是很多时候人会强加一些意志上去,比如说最近年底冲业绩了,需要强推高毛利的商品了;比如这个樱桃是合作方的,需要强推;比如有些东西快过期了,需要强推。这个时候就需要人工去做一些干预

算法最后做的就是把里面每一个环节打上一个分,最后再把这些因素去加总得到一个最后的结果呈现在用户面前。但是这个分怎么打?这个就涉及到算法的价值观

所谓算法的价值观,就是你希望算法最终的结果是怎样的,我是希望销量最大化还是销售额最大化还是利润最大化。不同的目标带来不同的结果。因为算法只是为目标最大化负责的。

算法在处理每一项得分的时候也挺简单,简单说就是,如果我的目标是销量最大化,那有两个特征:优惠力度,评价,如果随着优惠力度的提高购买转化率急剧提升,那么我认为优惠力度这个特征权重就高,如果随着评价的提升购买转化率提升较慢,那么我认为评价这个特征的权重就一般。

这个过程并不复杂,算法的优势在于他能记录更丰富的信息(工程中特征数量可能达到百万级),处理海量的数据。这是算法比人有优势的地方

这个大概能支撑起一个算法的框架,实际的应用中会在一个主干算法的基础上去迭代很多小的策略。

下面举几个具体的细分迭代策略:

比如说买了芒果的用户很大比例都买了樱桃,那相应的会把买芒果的用户列表中的樱桃相应的往前提。这个就是大家常说的购物篮算法

比如说同样是国贸摩根大厦的用户更喜欢进口水果,那对于一个摩根大厦的用户他列表中的进口水果,高客单价水果需要往前提。这个类似协同过滤,通过找到跟你类似的人,再去看他们喜欢啥。

比如说你第一次买了榴莲之后打了差评,以后就需要降低榴莲及相关水果的权重。这个就是负反馈。

比如说你的列表中连续出现了3种葡萄,那这时候大概率是应该把他们打散一下,尽量一页别出太多葡萄。这就是打散

比如当你在浏览的过程中点击了樱桃,那根据购物篮原来喜欢买樱桃的人也喜欢买芒果,那下一页加载的时候需要动态的增加芒果的权重  — 这个是实时反馈

实验及回收效果

个人认为快速的实验迭代和效果回收是算法高效率的关键,也是互联网的核心。修路造桥错了就是错了,而互联网产品这版效果不好下一版还能优化。算法是将这种快速迭代推向了顶峰,同时几十个实验在线上AB测试,不需要发版,好不好马上就能看出来。

AB测试的过程有点类似如果我有5家水果店,我要验证新引进的樱桃设置怎样的价格能收益最大化,我可以5家店同时设置5种价格,卖一周看看结果。

实验主要分两个部分:实验及效果回收

实验就是在其它东西都一样的情况下,留出一个不一样的东西,然后观察最后的结果,这样比较好确定最后的结果差异就是由这个不一样的东西带来的。

效果回收主要是看数据和人去看实际推荐的结果,看数据需要覆盖多一些的指标,因为很可能销量好了毛利降了,或者毛利好了当天剩余率升高了。

人工去看结果主要是一个二次确定的过程,比如在头条里面各种数据都很好,但是推出来的内容很低俗,或者这种数据好人看完之后凭经验知道这不是长久之计,比如周围就一家水果店你恶性提价。。

作者:s_crat

感谢支持199IT
我们致力为中国互联网研究和咨询及IT行业数据专业人员和决策者提供一个数据共享平台。

要继续访问我们的网站,只需关闭您的广告拦截器并刷新页面。
滚动到顶部