关注后回复 “进群” ,拉你进程序员交流群
作者 | 梁唐
出品 | 公众号:Coder梁(ID:Coder_LT)
https://mp.weixin.qq.com/s/-PBf_Ew47SNwwtR6yYAoMQ
大家好,我是梁唐。
今天和大家聊聊推荐算法,最近发生了一件挺有意思的事情,双十一那天老梁打开了某电商app,首页推荐居然长这样……
可能在很多lsp们看来,这样的推荐结果不仅没有任何问题,反而非常好。但在老梁看来,看到这样的结果非常痛心,并不是一个好的征兆。今天就和大家简单聊聊关于推荐系统以及什么是好的推荐这个问题的理解。
我们先把视角放得大一些,来思考一个问题,对于一个电商网站或者是app来说,推荐系统究竟扮演一个怎样的角色?换句话说,我们为什么要有推荐系统,想要达成什么目的?
这个问题看似非常简单是一个开放性问题,每个人都能说上两句,但其实它非常专业。不仅没有做过推荐的工程师答不上来,就连很多已经从事很多年的工程师、产品经理,或者是公司高层也不一定有很深的理解。当然问题本身没有标准答案,老梁说的也只是个人的理解。
我们从浅入深一层层来说,先说第一层,也就是从功能上来说,推荐系统可以用来推荐,发掘用户的兴趣。给用户推荐他们可能会感兴趣的内容。
这一层大家应该都能想到,我们在此基础上更进一步,进入第二层,我们有了推荐系统的好处是什么呢?
这个问题也不难回答,有了推荐系统之后,我们可以用算法挖掘用户的潜在兴趣,从而让用户尽可能在平台上多花时间,多消费。比如用户想要买乒乓拍,系统推荐了乒乓球,用户可以顺手一起买了,这样就额外促成了成交,给公司或平台带来了收益。
表面上看这样理解没有问题,但其实是有些疑点的。比如说,用户想买乒乓拍,他会不会买乒乓球是推荐系统决定的吗?其实很大程度上不是,是用户的需求决定的,他如果缺乒乓球那么他很有可能会买,如果不缺就不会买。所以即使系统不推荐乒乓球,用户该买还是会买。用这个例子来概括推荐系统的功能,是不全面的。
所以我们需要深入到第三层,理解这一层需要从用户意图入手。用户为什么会来到电商网站,很明显是为了买东西。但问题是,用户要买的东西是什么,是一个清晰的目标还是一个模糊的概念呢?
比如很多直男购物大多都是以前者为主,他们明确知道要买什么,而后者也很常见。比如你想给女朋友买个生日礼物,你只知道要买礼物,但截止到下单之前,这个礼物的概念都是模糊的。再比如女生喜欢的逛店、逛折扣,也是一样的,可能只是想买点东西,但并没有想好具体要买什么。还有些用户可能更单纯完全是折扣驱动的,什么有折扣什么便宜就买什么。
所以看似是单纯的买东西,其实当中的目标却是有区分的。
如果用户意图清晰会发生什么?
很简单,他们会去使用搜索引擎进行搜索,直接找到自己想买的商品。那如果不清晰呢?显然就没办法直接搜索了,就需要使用其他的系统。很明显,这里说的其他的系统很大程度上就是推荐系统。
所以从流量的角度出发,搜索引擎承载的是用户清晰的购物意图,而不清晰的购物意图,搜索引擎无法承载,就只能依靠推荐系统了。
所以为什么要有推荐系统,本质上不是为了猜用户喜欢,或者是增加用户的成交,或者消磨用户的时间。这些只是落实到具体case的微观结果,从大局上看,是为了承载流量。
这一点是老梁从大佬的分享里悟出来的,绝对的核心思想,记住了以后出去面试的时候拿出来吹一吹,绝对是加分项。如果还能举一反三,基本上互联网这块的策略就算是入门了。
我们明确了推荐系统存在的意义之后,再来看看推荐系统的指标。
推荐系统的核心是算法模型,不管是最基本的规则模型还是前沿的深度学习,在训练和评估的时候,都需要有明确且量化的指标。对于推荐模型来说,一般最常用的指标就是点击率。
点击率很好理解,就是点击数除以曝光数,衡量的是同样的曝光带来了用户多少的点击。如果把用户的点击理解成用户的实质兴趣的话,那么点击率越高,显然说明推荐的质量越好,越能引起用户的兴趣。
表面上来看,这似乎合情合理也说得通。但仔细推敲仍然是有问题的,核心的问题在于用户当下兴趣与购物意图很有可能是矛盾的。
比如老梁贴的那张图,推荐的是女性的内衣,封面是身材火辣的妹子。这当然很吸引人,尤其是在人均lsp的互联网环境当中,不用说肯定点击率爆高。但问题来了,在这种情况下,点击率能够反映用户的购物意图吗?
显然大多数情况下不能,因为对于大多数正常男性来说,是没有购买女性内衣的需求的。即使有配偶的男性也很少会给自己的对象买内衣这种比较私密的商品,所以这样的推荐结果即使点击率很高,也是很难引起成交的。
既然不能引起成交,本质上来说可以理解成是无效的推荐结果。
毕竟是电商平台,电商平台的核心指标就是成交,不然为什么每年淘宝双十一的指标都是GMV(成交总额),而不是用户浏览时长,或者是活跃用户数?
所以到这里,我们就知道了,只是以点击率为模型的目标是有问题的。因为显而易见,某些软色情的内容的点击率一定是远远高于其他商品的。那么在这种情况下训练出来的模型,必然会这些软色情的结果给出更高的分数,从而让它们获得更高的排名,获得更多的曝光。
长此以往,这会形成一个恶性循环。真正吸引用户能够构成成交的商品得不到展现,而被模型推上高位的商品都只是一些博眼球的内容。虽然点击率很高,但无法构成成交,都是无效推荐。这些东西推得越多,对平台越是有害。
显然,这对于平台的收益是有害的。
那么对于这样的问题,如何破局呢?
最好的方式当然是更换指标,我们不以点击率,换成其他指标训练模型不就好了?但很遗憾,没有这么简单。在当下,以点击率建模是最简单成本最低也是相对效果最好的方式。
一个比较可行的方式是采取多目标的神经网络模型,让模型能够同时学习点击以及成交等多个目标,让模型不只是关注点击这一个指标,也兼顾加购和成交。
虽然神经网络模型很强大,能够兼容得比较好,可以在点击率不降低太多的情况下提升成交转化率。
但降低不太多也是会降低的,点击率降低本身不是问题,但问题是点击率降低之后如何说服上层的老板。如果你的老板理解流量运营策略以及各系统角色这些理论,这当然是可行的,如果不然,则会非常艰难。
很多产品或者是决策者无法理解推荐结果需要考虑转化、成交这件事。他们会觉得,这个不是商品详情页应该考虑的事情吗?这不是搜索结果应该考虑的事情吗?这不是营销场景需要考虑的事情吗?他们会关注点击率,甚至是关注用户浏览商品数,用户浏览时长等五花八门没办法直接建模的指标。
在电商场景可能还好一些,毕竟还有成交转化这个指标可以看到用户的真实意图。如果是一些内容平台,可能更加麻烦。一个擦边球的小黄文,一篇标题党的文章,把用户骗进来读了半天才发现自己被骗了,这显然会对用户情感上带来巨大损害。
并且更麻烦的是工程师可能很难找到一个能够真实反映用户意图的指标,导致模型无法甄别、纠偏,使得擦边球、标题党大行其道,优质内容得不到曝光,被雪藏。最终整个平台充斥着垃圾内容,核心、高质量用户流式,平台随之逐渐失去价值,被用户抛弃。这几年很多平台都是倒在了这个问题上,很有很多平台正朝着这个结果飞速狂奔。
解决一个两难处境的最好办法就是不要让自己面临两难,同样,想要避免劣币驱逐良币最好的办法就是一开始就不要开这个口子。不能为了追逐眼下一时的商业指标,给垃圾内容蔓延滋长的机会。
而这很明显已经超出了工程师的职权范畴,工程师们能解决技术问题,但解决不了决策问题,也解决不了人的问题。这需要决策者有冷静清醒的头脑,有磅礴的格局,有坚毅的品格,能为了长远的发展抵御当下的诱惑。但我不说,你们也知道,这并不容易。
表面上来看,我们看到的推荐结果似乎是工程师能力的体现,但实际上运营策略、产品思维、以及老板的格局一览无余。
-End-
最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!
点击卡片,关注后回复【面试题
】即可获取