一、典型推荐场景
场景是智能推荐里面我们设定的一个概念,可以将其理解为用户流量的入口,而当用户从一个流量入口进来,他一定会带着某种心智。比如他进入大促页面,可能就会看一看自己感兴趣的商品是否在大促,如果有的话可能就去下单,所以我们在流量入口上就进行了区分。流量入口一旦确定,它要实现的目标、访问逻辑、选品逻辑和最终的算法逻辑也差不多确定了。也就是说,一个场景代表了唯一的选品逻辑和唯一的算法逻辑的结合。
但是如果有多个推荐场景,且它们的本质上可以使用一套算法策略,那么它的目标和用户心智其实是比较类似的,我们可以把它们定义为一个场景,而假如我们需要对它们进行差异化,又可以将其拆分为不同的场景。
在智能推荐里面,我们的优化单元、配置单元都是以场景为最小的细粒度,也就是说在一个场景里,我们可以给它设置不同的选品逻辑、算法策略等,而另外的场景可以复用,也可以单独设置另外的规则。
了解了场景的概念之后,我们如何去搭建一个场景呢?
如果没有基于云服务去新建一个场景,那么一般的做法是首先从数据控中将场景圈选出来,做哪些物品的推荐,然后去搭通平台里面所有的用户数据、行为数据等,然后进行分析。这个过程中我们需要做的就是数据对接、数据验证,而如果是自建的模式,可能还需要准备一些特征工程、组装召回排序的链路等,这样时间线就会拉得很长。
而智能推荐其实可以给大家提供一个快速搭建个性化推荐页面的能力,也就是说从对接服务开始到完成数据对接和POC,引擎层会自动拉起一些行业的定制算法模板和各种计算逻辑,之后这个页面就可以快速落地和上线了。
上线之后如果有更多的业务定制需求,可以通过两种方法实现。第一种是通过算法的维度来解决业务上适配的问题,比如开放一些召回算法的定制、召回参数的优化等;另一个方面,我们也可以通过运营策略的维度去解决问题,比如定制一些选品的规则、投放的规则,在一些扶持策略上做一些倾斜等。
二、经典算法模型简介
谈到算法,我们其实会使用到一些经典的算法模型,比如协同过滤、用户偏好召回、向量召回和新品算法策略。
1. 协同过滤
智能推荐应用的协同过滤是基于item之间的CF算法,比如一些物品被用户连续点击,或者没有点击只是曝光,那么我们可以根据平台里面所有的行为数据进行计算,输出一个每个item之间的打分表,就类似于点击了ID1的item之后,再点ID2的item的概率有多大,这个概率也就意味着item之间有多大的相似度,所以协同过滤更多的是计算物品与物品之间的相似度。
那么在整个召回链路上它是怎么做到的?首先我们要结合实时的用户行为先找到左边的item,比如用户点击了一个口红ID为1的商品,我们发现她对这个口红有购买兴趣,就可能给她推荐更类似的一些口红,这样容易得到更多点击和转化。所以在下一刷的时候就优先把ID为2的口红推荐给用户。这就是整个协同过滤从用户产生行为到我们去调取打分表,最终给用户补充到召回链路的过程。
针对协同过滤算法我们也进行了一些算子优化。在后台里我们可以看到,比如说你创建了一个标准版的示例,针对某一个场景去看它的算法策略的时候,这里有一个基于物品的协同过滤,其中有一些值是可以进行定制的,比如说这条链路是否启用,在这条链路里我们希望拿到的最大召回数量是多少,以及在这条链路里一些算子的优先级如何等等。
这些算子是我们基于典型的协同过滤算法进行了一轮优化,比如这里面涉及的子类目或父类目的收敛优化。比如沃尔玛通过数据分析,会比较消费者的哪些商品是两个一起购买的,由此发现了啤酒和尿不湿的故事,所以协同过滤能够帮助我们去发现一些理解不到的联系。但是有时候当我们行为比较稀疏的时候,它的学习偏差比较大,所以有时候会采用一些父类目子类目收敛优化的策略。也就是说当我们计算协同过滤的时候,会优先去看两个item是否同属一个子类目或父类目,如果是,就认为它们的相似度比较高,我们就可以在链路里面让它出现的概率更大一些,这个就是我们内部对应的一个优先级。
2. 用户偏好召回
第二种用户偏好召回是更偏策略和人工理解的一种算法。怎么理解用户的偏好呢?其实我们主要通过用户发生的行为去刻画用户的偏好,通过计算和分析一些历史和实时的行为。在电商行业内影响消费决策的有品牌、店铺、标签、类目等,这些特征会映射到用户的身上,我们可以根据用户过去的行为去分析他对哪些类目有偏好,对哪些品牌有偏好等,然后去预测他未来的喜好,这样其实就构成了一个用户画像。
那么在这条链路里面,我们也可以定制它的关闭和启动状态、最大召回数量、内部优先级等。这里面会涉及很多的特征,比如类目、品牌、店铺和标签,在选择这些特征的时候我们要考虑几个方面:
一、在这个商业模式下,这些特征是不是用户主要消费决策的特征;
二、对这些特征的维护,我们是否能够做得比较完善。
比如在电商里面可能标签打得非常好,那么我们可以很多程度地去利用它的优势,把标签的优先级往上调一调,这就是我们可以结合召回链路去做优化的策略和方式。
3. 向量召回
向量召回的思路其实就是把高阶的特征降为低阶的运算,然后通过向量之间的距离算出相似的关联合集。比如我们可以基于标题去做向量召回,一个商品或者一条内容,它是有一个标题来直观描述它讲述了什么内容,或者说它是一个怎么样的实体,这个标题里面的一句话由多个分词组成,所以我们可以把这个标题进行拆解,然后去后台运算,算出每个分词之间相似度的分值。
那么当我们输入一个标题的时候,怎么去找到另一个跟它相似的标题呢?其实也是先把这个标题拆解为一个一个的向量,然后去运算向量之间的距离,从而得到整体的相似分数,这个就是基于标题向量的计算逻辑。
另外也有一些基于用户标签的召回,比如用户行为序列,可以理解为用户在访问一次会话的流程里面发生的一系列行为,比如曝光了什么商品,点击了什么商品,购买了什么商品,它会有一个行为序列,它是用户一次访问的连续表达。通过这些连续表达,我们会发现他点击的这些item其实是有一些关联度的,所以我们再去训练的时候也可以把它映射成标题,把标题本身放在一句话里,它就有一定的关联度和相似度。
4. 新品算法策略
新品算法策略就是新发布的商品、内容的推广策略。在推广的过程中,首先我们要让整个系统知道哪些商品、内容是新品,所以要对字段进行实时准确的更新。新品是一个冷启动的过程,但在没有任何行为的条件下去做分发,可能会由于品牌质量问题在推荐后损失一些购买,所以我们可以提供一些基于策略的方案,比如刚才就基于用户历史偏好算出了兴趣标签。我们也可以将它利用到新品的算法策略里面去,基于用户的偏好、品牌等做扶持。
除此之外,一些行业对新品的要求维度可能更高一点,可能要在新品发布之后对热度分进行排序,发现一个最有潜力的新品,或者可能是要先上优先发布的内容,那我们就去调整这个策略。至于这块如何选择适配的算法模型呢,其实也是根据我们本质的业务诉求来的。
除此之外我们也有一些其他的典型召回算法,在智能推荐标准版中给大家归档了协同过滤、用户偏好召回、热度召回、新品召回等召回链路,并且可以让大家进行一些参数优化。如果大家有更高阶的需求,比如需要自己处理数据,自己进行一些特征工程,自己产出打分表,然后注册到我们线上的模型一起来组合使用,那么这些功能会在高阶版中提供。
三、电商行业优化最佳实践
电商行业优化最佳实践围绕三个维度展开:实时反馈体验提升、特征倾斜与效果提升、营销触达策略应用。
1. 实时反馈体验提升
实时反馈就是用户实时发生一些行为的时候,我们在给他下次的推荐结果中就进行了进一步的跟进和反馈。比如下面的淘宝截图有效曝光了4个商品,用户可能对这个彩妆礼盒比较感兴趣,然后可能点击到商品里面去查看详情,甚至进行加购。这个过程中我们会发现用户对化妆品、护肤相关类目比较感兴趣,所以当我们采集到这条点击的行为后,可以实时回传给推荐系统。另外我们希望在二刷、三刷、N刷的时候也会结合兴趣做反馈,这个时候就可以使用刚刚协同过滤中讲到的结合类目的收敛优化,比如基于这个商品的类目,优先召回出与当前商品比较相似的商品推荐给用户。这也就是我们在配置算法优先级的时候,可以把类目收敛的优化分子的优先级提高。
2. 特征倾斜与效果提升
怎么理解特征倾斜与效果提升?比如右边我们给到商品一些特征,首先它是一个美妆套装,然后品牌是稚优泉,店铺是稚优泉天猫旗舰店,最后它的标签是明星联名、礼盒、化妆品。
可能一些商城强调店铺的概念,但一些卖很多品牌服装的店铺可能更强调品牌的特征,而如果我们认为消费决策上标签很重要,那也可以去调整标签的优先级。所以整个判断的逻辑就是我们认为消费决策的首要特征是什么,次要特征是什么?还有这些特征的维护是否相对比较优质,可以来调整链路召回的优先级,提升推荐效果。
3. 营销触达策略应用
我们在做购买商品决策的时候,可能会加购很多,但是过一段时间一直没有下单,可能觉得比较贵或者在等一个大促机会。但是如果系统重复推荐出来的话,用户可能觉得还是很想买,就下单了,所以这里讲的其实是消费者的心理逻辑。在这个过程中,我们可以考虑在平台里尝试使用一些营销触达的策略去帮助用户去做一些消费决策。
比如这里面我们配置了曝光过滤的时间是三天,点击过滤的时间是一天。第一天我们对下面四件商品里的太阳帽和服装进行了曝光和点击,而其他的就只有曝光。一天之后这个页面可能又出现了之前点击过的一个商品,相当于给了一次重复曝光的机会,如果这次用户又发生点击了,那还可以再给一次重复曝光的机会。那么如果这次重复曝光机会触发了用户的购买,或者也到了曝光过滤的时间,我们就不会再推荐了。另外,如果这里给了用户一次重复推荐的机会,但是用户没有点击,那么也不会再进行二次推荐了。我们理想的状态就是在重复的过程中去促进用户的消费,这个也是电商行业里面比较常见的一种策略。
四、内容行业最佳实践
1. 多地域/多Feature划分页面搭建
内容社区里面会涉及到多个地域或者多个feature的划分,也涉及到一些用户的逻辑,比如青少年模式、VIP用户,要进行一些不同的过滤。在这个过程中,我们如果选择以往的场景搭建的形式,就可能滋生出很多个场景,这对于我们的运营来说是非常难以维护的。
这个时候我们内部是有一套推荐的功能,叫在线属性过滤,大家可以利用地理位置、细分品类等特征给视频打标签,做一些交集并集,最终得到一个推荐过滤的结果。在这块儿它们就可以绑定在一个场景上,我们可以在这一个场景上进行多个属性过滤的逻辑拼装,从而产出多个推荐的落地页面,提升我们的运维效率,方便我们更快地进行调优和迭代。
2. 推荐内容时效性调整
这里的时效性指的是,在我们推荐的结果中我们希望这些内容的时间分布窗大概是什么维度的。比如说一些对时效要求很强的行业,尤其是新闻行业,如果它的发布时间超过五天我们就不再进行推荐了。那么在它从发布到失效的这个过程中,也可能会发生一些上下架的操作,我们可以结合时效去设置一个物品过滤规则,并且在急需发布的内容上进行一些加权操作,从而进行调控,来保证它在失效的时间之内能够得到有效的分发。
3. 优质作者激励
最后一个点是我们想要去做一些优质作者的激励,尤其是在新内容的扶持上。我们新品一般要求是最近30、最近10天、最近7天发布的内容能够得到有效的推广,这也是内容社区的生命力之一,让最新发布的内容得到有效曝光。这样的话我们首先就要设置一个新品的口径,比如认为几天发布的算是新品,然后就是提供流量,以及结合一些分发策略,按照兴趣、时间或者热度,这里同样可以结合业务需求去进行一定的策略调整,也就是从口径、流量和策略三个维度去进行干预,从而实现有效发布。