内容要点
本文主要围绕电商推荐,从个性化推荐的核心问题、架构、推荐效果阐述智能推荐的技术演进应用。
电商推荐问题和价值
在看推荐系统要解决哪些问题之前,首要了解它能带来什么价值。个性化推荐之所以能如此迅速地占领各大APP的首要版块,取代了之前很多人工运营的坑位,最核心的原因是它可以更拉近用户与商品的距离,用最短的时间和路径让用户找到想要的商品,也就是常说的流量分发效率。
这就好比一个人逛超市,他喜欢吃肉,而且一般只逛3个货架,虽然还没确定这次要买什么,但是如果货架上摆的都是蔬菜,那么他大概会扫兴而归,对于超市来说,最现实的就是收入少了,归因就是流量分发效率低。所以由此引出的就是,推荐要解决的最基本问题,就是保证流量效率,也就是点击率、转化率这些指标。
电商首页的版块,一般都代表着产品的门面,它所承载的,不仅仅是怎么赚更多的钱。所以这也需要推荐系统再往前走一步,不仅仅是流量,还要能承接住用户的心智和产品的调性。这些可以概括为两个方面:用户体验和运营干预。
运营干预,就是推荐结果要可以被一些外部的输入所影响,这些输入主要来自于人的主观判断。比如能够做一些流量调控,侧重一些行业的倾斜,甚至对新店铺做一些扶持。首先这些判断对产品的发展是很重要的,其次其背后的信息是系统无法量化计算的,因此只能交给人来做,系统只需要留好接口,尽可能柔和地接住这些硬性的规则。
怎么才算是好的用户体验?这是一个综合的衡量指标,很难从单一维度回答。换个角度,当一个用户逛完某个平台,有了一定的精神满足感,那么就基本可以判断用户体验还不错。仍以逛超市举例,我们不仅希望用户在3个货架内成交,还希望他能逛更多的货架,希望他明天能来,逛完后不仅仅喜欢吃肉了,还喜欢吃水果了。所以具象化到推荐系统,就有了更多的衡量指标,如发现性、停留时长、浏览深度、复购率等,也就是说,一个好的推荐系统,不仅是让用户快速找到喜欢的商品,还能让用户逛起来。
总结起来,推荐需要解决这三方面的问题,但单靠推荐系统肯定是不够的,还需要商品、流量、运营这些因素共同来支撑。
由左侧的问题,可以推断出,判定一套推荐系统的价值,一定是多元化的。不同的业务系统,会有各自侧重的标准,所以推荐做到最后,不仅仅是算法模型的问题,它更是一个业务系统。
在此有一点需要强调,这种多元的价值判断,不同指标看上去都是相辅相成的,但是仔细思考,里面还是有很多相悖的。就比如前面说的,一个用户满足感高了,他自然买的就多了,可买的多并不仅仅是因为流量效率高了,而是因为他浏览了更多的货架,感觉越逛越开心。所以怎么去衡量这些指标之间的平衡,也是推荐系统需要考量的问题。
推荐系统架构
对于一个推荐系统来说,它的架构已经比较明确了。
第一部分是商品池、用户池的构建。数据是算法的基础,底层数据的丰富程度决定了推荐能力的天花板。更多的用户录入系统,使请求推荐的用户未登录占比更低。更多的特征,比如用户的年龄、性别、地域、商品的店铺、价格、类目等。更丰富的行为,曝光和点击是目前智能推荐的基本要求,其他还包括点赞、停留时长、下载等等。算法系统本质上是拿过去预测未来,如果过去什么都没有发生,那么预测出来的结果,就可想而知。
第二部分是怎么从海量的商品池选择推荐的对象。这方面主要是依靠检索的技术,包括通过协同过滤、内容过滤、用户偏好建立索引,并根据索引生成第一步的结果。这些涉及到的工程技术主要是性能,怎样一次性查得更多、更快。以阿里云智能推荐来说,主要是复用了阿里内部的系统架构,单次单链路的召回至少是几千级别的,这是这款产品的固本之策。
在算法上,主要就是各个召回链路。以最基础且最通用的协同过滤为例,ItemCF可算是推荐系统发展过程中的一个里程碑节点,它第一次解决了大规模的计算问题,并且能在效果上碾压其它普通的基于信息检索,语义检索的推荐系统。它效果好的原因,第一就是它本质上是一种迁移学习,收集用户在全场景上的行为、推荐、搜索等打造出来的信息,是一种半监督式的。另一个就是,它是通过用户的近期行为去做相关性的匹配,所以也是一个核函数的方法,就是越近的结果越容易被推荐出来。但是,i2i效果太好也会有挑战性的一面,很难去突破,而且对数据质量要求很高。以上问题的关键就在于心智的体现,落地到系统上就是需要扩召回,需要更丰富的,能体现心智的链路进来。
第三部分是在之前的基础上,需要一个精选排序。不管是LR或者GBDT,还是WDL在神经网络上4层、7层甚至10层的尝试,都是希望rank model学得更准。再配合推荐价值,不仅仅能优化例如停留时长之类的某一个目标。
最后一部分是运营干预,也就是对最后结果的一次规则性的过滤。这里其实有一个主要的矛盾点,对于运营同学来说,仅仅对最后结果的干预,还是太弱了。对于算法同学来说,强行对最后的结果进行人工规则的过滤、重排序,是非常影响效果的。所以,从系统落地的角度,我们在做的一个事情就是把运营规则前置化,可以更柔性地应用到选品、召回、排序中。
推荐效果
第三部分内容聚焦在怎样提升推荐效果上,也就是流量分发效率。
现阶段,机器还是一个把人的思维落地成自动化的过程。所以试想一下,如果面临一个用户要选择三个商品,你会怎么去推荐,需要什么样的信息,怎样去做决策。
第一步,需要什么样的信息。我们需要知道这3个商品是什么。是美妆,还是食品?是大品牌,还是性价比高?还需要知道用户的信息。是男是女?地域怎么样?年龄多大?最重要的是,我们得知道用户喜欢什么,他肯定不会直接告诉你,有时候他自己也不知道,那么,我们就用他过去的行为来推测,点过什么商品,买过什么商品,什么商品看了看就走了,什么商品看了很久很久。所以你需要这些信息判断,推荐系统也需要,把这些信息抽象一下,就是以上图右边的这三类,对于智能推荐这个产品来说,就是三张基础数据表。
第二步,需要把这些信息抽象一下,得出这个用户喜欢什么的结论。对于推荐系统,就是一个用户画像构建的过程。简单的做法,就是把用户过去的行为做个聚类。也可以做的很复杂,如需要考虑时间的衰减,需要把即时兴趣抽出来,需要考虑同特征的人群画像的输入等等,这也是各个推荐系统的核心竞争力之一。当然,还是那句话,没有最好的,只有最符合你的业务的。
拿到用户画像之后,还有很关键的一步,就是怎么把这个画像和要推荐的商品关联起来。这里就可以抽象出一个trigger的概念,是一个桥梁,以之前提到的i2i举例,图中左边这个item就是一个trigger,可通过画像知道用户更喜欢哪个item,然后进而去寻找和它最相近的右边item,这样就完成了一次召回的查询。
有了用户画像,还可以构建物品画像。举个例子,一个商品,北京的人更喜欢购买,那么它的画像中的一个因素就是北京人,一般物品画像更多地会用在新用户冷启动上。
第三步,通过这种相关性,可以拿到多商品,之后就是推荐的最后一步——精排。还是用之前的这些信息量,换个角度,重新再模型计算打分。这样,就完成了一次推荐。
在这个过程中,其实还有一些更细致的考虑,比如当拿到的信息缺失了一部分怎么办,映射到推荐系统,也就是用户冷启动和物品冷启动。
用户冷启动,需要明确一个前提,就是可以拿到这个用户的部分特征(每一个平台用户注册的基本信息),但是没有这个用户过去在这个平台的行为。仅仅从分发效率上说,能想的办法不多。一方面,可通过物品画像进行推荐,比如这个平台上,男生都喜欢什么,那么就给新来的男性推送这些商品。另一方面,也可以想办法扩充用户画像和特征,他在这个平台上是新用户,但并不表示在全网其它平台上也是新用户,这是一个思路。具体的操作需要第三方数据授权,在此也提醒大家,一定要注意隐私保护,因为这些信息对推荐系统来说,确实很重要。最后,如果前两个都不起作用,那就只能用热门推荐了,这是考虑效率后的最优选择。
其实,新用户对一个平台来说,留存是最重要的,所以对于推荐系统来说,就更需要特殊考虑了。以阿里云智能推荐来说,除了分发效果,也会考虑用户心智的探索,比如适当地推荐一些新鲜的东西,让用户能快速建立平台的心智,同时还会结合一些运营的需求。
其次,是新品冷启动,这个问题的核心在于怎么让一个未知的商品在兼顾效率的情况下,快速地热起来。对于我们智能推荐的设计,主要就是两个流量环,我们会给新品单独建立一个索引池,小流量地灰度预热这些商品,它的推荐策略主要是兼容效果和运营需求。当这个商品热起来之后,再放到正常的推荐流量环中。这样做主要的考量因素就是新品的曝光可控性。考虑到如果新品直接放入正常的推荐池中,那么大概率是得不到流量的,如果人工运营强行加权,又会干扰到正常商品池的推荐,还会导致新品自身的流量不均衡。
另外有一点也值得深思,就是怎么判断一个商品热起来了。这里有很多办法,简单点,PV达到一定量就可以了,再进一步,需要这个商品的CTR稳定下来不再波动,这个问题我们会持续迭代探讨下去。
智能推荐2.0及未来
基于以上产品技术的思考,本次阿里云智能推荐2.0发布了。相比之前,智能推荐加入了前文提到的价值判断的环节,目标就是为了优化用户体验。在新品的策略上进行了一些调整,希望做到可控,可调整,有分发效率。同时,2.0版本也提升了整体推荐效果,模型持续迭代,扩了很多召回,很多基础链路也进行了重构,主要是为了更适宜云上中小客户的行为规模。以上优化仅仅是个开始,我们的目标是推荐赋能用户,这条路还很长,期待我们一起探索。
加入社群
点击订阅《阿里云搜索与推荐技术交流期刊》
扫码入群,了解更多资讯,获取课程资料