618省心凑背后的新算法——个性化凑单商品打包购推荐

简介: 作为购物导购链路的一个重要环节,凑单旨在快速帮助用户找到达成某个满减门槛(比如满300减50)的商品,完成性价比最高的跨店组合结算。

前言


 背景


凑单是一个历史悠久的场景,伴随着长期优化并不断升级,为用户决策提供了便捷通道。作为购物导购链路的一个重要环节,它旨在快速帮助用户找到达成某个满减门槛(比如满300减50)的商品,完成性价比最高的跨店组合结算。


基于用户圈选商品的凑单商品推荐(bundle mining)是区别于凑单场景和其他场景的算法解决方式,bundle这里是打包购的意思,我们认为凑单场景算法的重点是:当用户已经加购了商品A,还想找一个能一起打包购买的商品B,而不是想找跟A相似的商品C。基于这个假设,传统的基于商品相似推荐(i2i)以及基于用户兴趣偏好推荐(u2i)就不能契合场景需要,而如何寻找打包购的商品集合,提升场内转化效率是本场景算法建模主要的着眼点与发力点。为此,我们提出了凑单模型“Context Aware Item Add on Model”(CAAM)其中创新性地提出多trigger注意力网络和多元目标协同损失共同求解凑单场景的捆绑推荐问题。


我们从下表(用户成交数据在去年大促期表现)可以看出,在过去跨店满减订单中,用户下单金额距离下一门槛还差25%以内的量级平均占比20%,这反映出凑单需求未被很好满足。

640.png

今年618大促活动力度升级,减免金额扩大,凑单的需求随之也水涨船高。凑单是全平台满减活动下的一个刚性需求,但现有的凑单场景存在三个问题:1、金额随机性大,无法帮助用户快速定位确定金额的凑单商品(如用户勾选总额仅差10元到达下一满减门槛,这时推荐10元及微高价格的商品是能更快促进凑单结算);2、动线较长,传统凑单场景跳转新页面,无法与购物车商品状态发生实时关联(用户加购后需要回购物车重新勾选商品,再进行组合凑单规划与结算);3、相关性不足,由于其和购物车即时勾选状态没有关联,缺少“当前待下单商品”相关推荐的内容(如挖掘与用户勾选待结算商品的一些搭配品,衍生品抑或是经常打包结算的相关品等)。

其功能还需持续优化,甚至重新定义。

▐  现状


  • 存在的问题


凑单场景传统优化方式主要分为两类,第一类是探索User-Item关系的一些范式,期待能够找到用户潜在的兴趣偏好。第二类是探索Item-Item关系,basket推荐关联,这种方法目标是学习加购商品与凑单品之间的关联。这两种方式都很符合直觉,且有实际的线上效果,但是,我们需要重新思考一下用户的在凑单即刻的诉求。除了个性化推荐与关联推荐,凑单用户希望能够快速找到有一定购买价值的,和金额差较接近的商品。我们将其定位为三个方面——“快速”,“精准“以及“节约成本”。首先,“快速” 是指凑单场景需要具备使用户快速,便捷完成凑单的能力;“精准“ 是指推荐结果能够符合用户的兴趣;“节约成本” 是指用户能够定位到满足优惠且无多余开销的选择。


在算法设计方面,区别于基于用户个性化”猜你喜欢“式推荐的算法模型,我们提出多trigger注意力网络来建模购物车即时勾选商品与用户行为序列的相关度,模型不仅考虑到用户行为序列的影响,同时也兼顾了打包购整体集合的可用性。更好的将推荐商品在用户个性化与打包凑单性之间做trade-off。除此之外,我们提出了多元目标协同损失,用以模拟用户在凑单场点击-加购-成交三个维度动线的一致共现性,实验结果也表明,在本场内接近十分之一的用户发生加购,其中超过半数完成成交,加购转化率很高,也印证了我们对连续行为协同建模的有效性。


在产品模式方面,传统的凑单场景存在金额随机性大,动线较长,致使用户在定位打包购目标商品时较为困难且费时。因而我们今年在购物车结算页引入了一个新的场景【省心凑】,期待能够极大程度满足用户“快速,精准,节约成本“这三个方面的诉求,同时也期待能为拉动平台整体成交尽一份微薄之力。


  • 业务简介

640 (1).png

场景入口设置在购物车最下端,当用户勾选跨店满减商品时会展示一个带有满减信息和拉取浮层按钮的飘条。飘条内会展示用户勾选商品关联的活动(如跨店满减满200-30)以及用户勾选商品距离下一个满减门槛的金额信息(如已减30,再买40减30),我们称其中的40为目标金额 price_diff。当用户点击”筛选满减“按钮即可唤起浮层,顶端为活动满减信息,紧接着便是省心凑的前置展示品以及跳转直达入口(查看更多),接下来是购物车商品流。当用户查看完购物车中的商品后紧接省心凑推荐信息流,在上方点击查看更多直接跳转至推荐信息流,或查看完购物车中的商品后也能达到推荐信息流。省心凑推荐商品价格围绕目标金额 price_diff 做一定的上延。


▐  技术路线


  • 产品&算法建模设计


针对于用户的三类型诉求,在产品设计和算法推荐策略上我们做了如下优化:


快速:动线优化


  1. 使用拉起浮层替代跳转新页面的展示方式。用户在拉起浮层后的操作与当前购物车中商品状态相关联,即在浮层内新增的加购品,会和主购物车内商品勾选状态合并。这样能够极大程度缩短用户成交动线,让用户体验连续凑单,替换勾选等操作。
  2. 在浮层内进行商品sku丰富度判断,单sku商品可以直接加购,无需跳转详情或拉起加购浮层;多sku商品支持拉起加购筛选浮层加购,省去用户点击跳转详情后再进行加购的成本。
  3. 当用户在浮层内新增勾选商品后,商品状态不会重置,底部价格差会动态变化。这样就能够给用户提示最实时,准确的凑单金额信息,保证用户在当前浮层能够完成凑单结算需求。


精准:凑单性挖掘


对于用户个性化推荐的学习分为两个方向进行,一是搭建凑单分模型,它基于省心凑场景特点,直接对凑单这一行为进行建模,下文模型章节中将详细说明。二是进行人货关系挖掘,例如用户历史多次复购品,易于凑单品(快消,生鲜,百货等),大促期的热款爆款和尖货等,并给予这些具备凑单属性的商品更高的权重。


节约成本:价格约束


在优化前两个需求基础上,我们也考虑到用户凑单的低成本需求。不同于无价格约束的个性化推荐方式,我们对price_diff和推荐商品的折后价进行策略约束,确保推荐商品在加购后能直接达到下一满减门槛,同时约束推荐品价格其不超出price_diff过大。


  • 技术结构设计

640 (2).png

召回


凑单场景和其他推荐场景重要差异在于,用户在喜欢需要与价格合适之间权衡选择。 基于此,我们在召回体系中引入了一些易于凑单,流行度较高的商品,通过圈品保障推荐的凑单心智:


  1. 复购品:用户在历史一年内有重复购买记录的商品,使用复购周期与复购分进行排序;
  2. 天猫尖货:天猫尖货是指大促期间售卖能力强,对大盘成交额起到支撑作用的选品,详细可参考 [1];
  3. 食品生鲜:食品生鲜具有快消属性,凑单成本较低且易转化,我们针对这一类运营选品扩增召回。


线上效果显示这三类召回,用户加购转化占比远高于曝光点击。高转化特性说明挖掘商品的凑单属性是必要的。


后处理


凑单需求具有与转化并生,持续时间短的特性,如何快速定位用户需求,推荐内容的散度就显得尤为重要。我们设置了基于队列的流式打散逻辑,保证用户在每一个视觉窗口内看到的商品都是多元化的。实验结果显示打散不仅能够保证用户浏览体验,在下翻深度、订单数和成交金额等指标上的表现都是正向的。

由于凑单处于交易链路的一环,它对商品的准确性也就有更高的要求。在大促商品状态多变的情况下,算法和服务端联动双重调取实时二方接口,保证商品价格,在售状态,参与活动等信息准确无误。


冷链路


双十一的一峰场景流量在几分钟之内破万,流量瞬时爆炸性增长给我们在工程上带来极大挑战。大促稳定性得益于如下三方面的保障:


定时扩容:资源保障,由于自动扩容延迟性,设置定时扩容来解决突发流量,将异常率控制在0.5%以下;

预热:链路冷启动保障,在流量到来之前使用低流量进行链路预热;

缓存:峰值二方服务加载失败保障,将历史请求结果按活动,价格区间分pkey储存,在流量峰值保证有内容透出。

凑单模型

▐  问题定义


给定用户勾选商品序列640 (3).png参加活动的活动标示coupon_id,距离下一满减门槛的推荐目标金额price_diff,我们需要建立一个排序模型,它能够给召回的商品集合640 (4).png进行打分,不同于传统的点击率,转化率的模型,这个分数综合反映了用户凑单的可能性,最终将作为信息流商品排序的依据。其中,我们定义用户相关特征640 (5).png,商品相关特征640 (6).png,用户序列特征640 (7).png,以及凑单场景环境特征640 (8).png,,基于这些特征,我们搭建了凑单模型“Context Aware Item Add on Model”(CAAM)

▐  模型结构


如今排序模型中din被广泛使用并取得了较好的效果,我们的工作将基于attention网络推开。din模型的核心在于attention网络有很好的用户兴趣获取能力,凑单模型的搭建在din的基础上,试图将勾选商品集合作为用户强意图信号,新增一路对勾选商品建模的注意力网络(multi-trigger attention net)。同时,凑单行为和点击转化目标不完全相同,我们会引入用户更多的行为标签,直接拟合凑单行为成功率,新增多目标损失层(multiple loss layer)。具体结构如下图所示:


640 (9).png

左边部分为网络整体的结构,和din类似地使用了attention结构,最终将序列表达,UI表达连接作为wide层输入,输出一个分数预测logits,同时和三个标签计算cross entropy loss,并可学习地结合起来。右边上部分为多目标损失层,下部分为主商品注意力网络。网络最终输出一个0~1之间的凑单概率分数。最终的商品排序我们将仅依据此分数,结合一些过滤,打散策略,推荐给有凑单需求的用户。

▐  核心网络层


  • 环境特征挖掘


在购物车结算页面,用户主动勾选想要合并结算的商品,并拉取浮层进行筛选满减,凑单。这时我们就有了三个重要的环境信息:用户勾选的商品、加购但未勾选的商品,凑单目标金额(已勾选商品总价和下一满减门槛的价格差)。这三类型的特征我们都进行了建模,其中用户主动勾选的商品被视为用户意图的表征,在CAAM中新增了模块进行挖掘。在购物车但未勾选的商品,反映了用户一定程度的偏好,但是包含成因较丰富,我们仅将其作为补充特征。最后的目标金额,因为我们在最后的过滤逻辑中,已经保证了透出商品价格不能和目标金额相差过大,所以也将其作为补充特征。


在购物车相关的环境特征之外,我们还探索了上游模型信息,即召回阶段的环境特征。包含召回类型和分数,召回商品和用户行为间的类目重合度,用户对召回商品类目复购概率,复购周期等。


最后,因为每次活动覆盖面相差较大,活动玩法也不尽相同,我们引入了当下满减活动的一些信息,如时间信息,满减活动标示以及活动的满减门槛等。这三部分最终构成了我们富环境信息的特征体系。


  • Multi-trigger attention net(多trigger注意力网络)

640 (10).png

如上表所示,我们统计了采样用户在不同行为类型下(曝光点击加购成交)对应的商品与用户勾选商品(triggers)历史行为(abfs)的类目,一级类目交叉分。如triggers有10个,商品与其中6个是同类目的,我们计这条样本的交叉分为0.6。分析可见,用户勾选商品较历史行为商品与用户行为重合度更大。且随着行为类型的深入(转化记为最深交互,曝光记为最浅),商品与勾选商品,历史行为交叉分越高,说明我们的推荐应当保持高个性化,且需要对加购商品针对性建模。


用户主动勾选的商品反映了用户成交意图,是很强的先验信息,如果我们的凑单商品能够契合当前的意图,或是围绕它做意图发散,这样能够保证用户的个性化体验,促进快速成交。我们考虑将这部分信息建模在模型中,辅助用户兴趣提取网络的学习。

640 (11).png

给定序列表征640 (7).png,with shape [T, E],勾选商品序列表征640 (12).pngwith shape [C, E],待打分商品表征with shape [C, E],待打分商品表征640 (13).pngwith shape [E]。其中T为用户序列长度,C为勾选商品个数,E为商品表示的映射维度。待打分商品与行为序列计算attention 就不再赘述,与din模型一致。multihead-attention layer这一层将进行勾选商品和行为序列间的attention计算,我们将640 (7).png640 (12).png均延伸一维,并进行复刻,保证他们两者在计算attention之前有相同的维度 [T, C, E], 进而进行更换Q条件下的multihead attention。Trigger fusion layer 会将计算得到的张量,在勾选商品个数这一维度进行融合,具体计算过程如下:640 (14).png

其中我们借用了Multi-Head Attention (MHA)的结构, 但将其中的查询向量置为勾选商品表征。多头注意力网络可以表述为:640 (15).png

其中640 (16).png为attention net可学习的网络参数 with shape [E, E];640 (17).png为对应head可学习的网络参数 with shape [E/h, E].

由此我们得到两份attention weight640 (18).png640 (19).png Gate fusion layer 将这两份weight加权融合并与原始序列表征相乘,得到最终的序列表征:

640 (20).png

  • Multiple loss layer(多元目标协同损失)


在multi-trigger attention net得到的用户序列表征,将与用户,环境,商品(待打分/勾选商品)等特征连接,输入到MLP中,再经过softmax函数得到一个分数预测logits,它代表了当前待打分商品被用户凑单的概率大小。我们考虑凑单是一个比较多元化的问题,它不同于点击,成交等指标,凑单是在价格处于可接受范围内,用户快速定位并加购转化的问题。同时我们统计到,该场景加购转化率在半数以上,加购转化用户比更高,这表明加购是很强的一个中间指标,也说明凑单行为是一个快速决策的转化问题。因而,我们考虑将用户的多元行为协同建模,直接学习曝光到凑单成功的概率。


我们设置了三组标签:曝光-点击、曝光-加购、曝光-转化。有了这三个标签,在模型最终输出一个概率logits后,我们计算得到三个loss,让模型同时去拟合这三个目标,然后将三者融合得到最终的总损失:

640 (21).png

其余两个任务类似,再此不再赘述。这里三个损失做了平均融合,之后还可以探索自由可学习的范式。


▐  实验分析


  • 样本组织


我们会继承主图横滑场景的线上模型(训练样本200e)的参数,使用热启动的方式初始化模型,并使用本场景历史所有数据进行优化训练。样本组织上,为了有效的去除无效曝光,我们仅保留有点击行为的信息流样本,并将跳转详情页跳回信息流的样本去重处理。其中,曝光:点击样本比为30:1,点击:加购样本比为11:2,加购:转化样本比为3:2。


  • 离线实验结果


对比base模型,最优模型gauc提升1.36%。

640 (22).pngBaseline: 使用私域大流量模型(主图横滑场景dtin模型,50d线上模型版本)参数初始化,使用本场景数据做finetune。

V1版模型:(context enrich) 在base模型基础上,新增了multi-trigger attention net,并丰富了环境信息特征。
V2版模型:在V1版模型基础上,新增了multiple loss layer。


  • 线上实验效果


对比无模型使用召回分排序策略桶,最优模型实验桶在各项指标均有大幅提升。

640 (23).png

Baseline: 使用召回分数排序;
实验一:使用CAAM打分作为依据进行排序;
实验二:使用CAAM打分作为依据进行排序+后置打散的策略;


项目整体效果


省心凑是标准的大促场景,仅在全平台满减活动时出现。同时场景为新场景无历年同期对比情况。在今年双十一及618第一阶段活动中,场景呈现出【高爆发】,【高转化】两个特点。在大促活动开始后,场景流量在不到三分钟内从0飙至峰值,对于链路瞬时抗压能力是较大的挑战。同时在拉动成交方面,引导成交,引导加购和人均场内成交都远远高出对比实验桶,是极佳的成交引导场。在今年618大促中,该场景已在购物车全量。



相关文章
|
算法 JavaScript
(最简易版本2)js笛卡尔积生成商品SKU多规格算法
首先这篇文章得仔细看,上面是我出的第一版本多规格算法可以去看一下思路
390 0
(最简易版本2)js笛卡尔积生成商品SKU多规格算法
|
3月前
|
SQL 算法 Serverless
B端算法实践问题之使用concat_id算子获取用户最近点击的50个商品ID如何解决
B端算法实践问题之使用concat_id算子获取用户最近点击的50个商品ID如何解决
28 1
|
4月前
|
数据采集 机器学习/深度学习 算法
Python基于Apriori关联规则算法实现商品零售购物篮分析
Python基于Apriori关联规则算法实现商品零售购物篮分析
262 0
|
4月前
|
机器学习/深度学习 搜索推荐 算法
利用机器学习算法增强IAA广告定位和预测:实现个性化广告投放以最大化收益
【7月更文第30天】在当今高度竞争的移动应用市场中,应用内广告(IAA)是许多开发者获取收入的重要途径之一。然而,传统的广告推送方式往往忽略了用户的个体差异性,导致广告效果不佳。通过运用机器学习技术,我们可以更准确地理解用户偏好,从而实现个性化的广告推送。
299 0
|
6月前
|
算法
【优选算法】——Leetcode——LCR 179. 查找总价格为目标值的两个商品
【优选算法】——Leetcode——LCR 179. 查找总价格为目标值的两个商品
|
5月前
|
搜索推荐 算法 前端开发
计算机Java项目|基于协同过滤算法的体育商品推荐系统
计算机Java项目|基于协同过滤算法的体育商品推荐系统
|
11月前
|
搜索推荐 算法 前端开发
商品购物管理与推荐系统Python+Django网页界面+协同过滤推荐算法
商品购物管理与推荐系统Python+Django网页界面+协同过滤推荐算法
127 0
|
6月前
|
移动开发 算法 数据可视化
数据分享|Spss Modeler关联规则Apriori模型、Carma算法分析超市顾客购买商品数据挖掘实例
数据分享|Spss Modeler关联规则Apriori模型、Carma算法分析超市顾客购买商品数据挖掘实例
|
6月前
|
搜索推荐 算法
基于用户的协同过滤算法实现商品推荐
基于用户的协同过滤算法实现商品推荐
83 2
|
6月前
|
JavaScript 算法 前端开发
JS懒加载 -- 适用于商城主页商品懒加载、图片懒加载,算法简单、易于理解、萌新福音
JS懒加载 -- 适用于商城主页商品懒加载、图片懒加载,算法简单、易于理解、萌新福音
56 0