科学地花钱:基于端智能的在线红包分配方案 (CIKM2020)
优采云 发布时间: 2020-08-23 13:04科学地花钱:基于端智能的在线红包分配方案 (CIKM2020)
简介:红包是电商平台重要的用户营运手段,本文将介绍1688基于端智能技术开发的two-stage红包分发方案。这一方案持续在线上生效,相较于原有算法有显著提高。 一、前言
本文是作者在1688进行新人红包领取的技术方案总结,基于该技术方案的论文《Spending Money Wisely: Online Electronic Coupon Allocation based on Real-Time User Intent Detection》已经被CIKM2020接收,欢迎交流见谅!
关于作者
李良伟:阿里巴巴算法工程师,邮箱 孙刘诚: 阿里巴巴中级算法工程师,邮箱
二、背景介绍
用户权益(包括*敏*感*词*红包、优惠券、店铺券、元宝等,图-1)是电商平台常用的用户营运手段,能够帮助平台促活促转化。 围绕着权益的技术优化也层出不穷[1,2,3,4,5]。
图-1: 1688新人红包
红包领取作为一种营销手段,其ROI是我们十分关心的一个指标,因为它直接反映了在有限的预算内红包为整个平台促活促成交的能力。优化红包领取的ROI要求我们把红包发到最合适的用户手上。而判定什么用户适宜领取红包须要我们在真正发红包之前判定当前用户的意图。举例来讲,一个订购意图十分明晰、无论是否有红包就会下单的用户似乎不适宜领取红包;相反,红包对一个犹豫不决、货比三家的用户很有可能起到“临门一脚”的作用。
随着1688业务的快速发展,每天就会有大量的平台新用户涌向,其中有很多用户在整个阿里经济体的数据都非常稀疏,基于常规手段,我们很难对这些“陌生”的用户进行精准描画。然而,只要一个用户步入了APP,或多或少就会和平台形成相互作用(滑动,点击等),这种在端上实时形成的数据才能帮助我们对用户尤其是新用户的实时意图进行精准捕捉,进而完成红包领取的决策。
本文将介绍我们基于端智能的用户意图辨识和智能权益领取方案。
三、技术方案
从物理的角度,权益领取是一个带约束的优化问题。优化目标是关心的业务指标(GMV,买家数,转化率等),约束通常是预算约束,有时也会有其他约束例如领取疲劳度约束、单个用户发放红包金额约束等。
按照之前提及的先辨识用户意图再进行权益领取这一思路,我们提出了一个two-stage的求解方案。在第一阶段,我们基于端智能技术[6],根据用户实时行为数据,通过瞬时意图辨识网路(Instantaneous Intent Detection Network, IIDN) 识别出用户当前意图;在第二阶段,我们将优化问题建模成一个多选项挎包问题(Multiple-Choice Knapsack Problem, MCKP),并运用[7]提到的primal-dual框架求解。在这里,我们指出我们关于IIDN的两个创新点:
1.IIDN最主要测量的用户意图是下单意图,但是实践发觉在新人当中,用户下单的比列是比较小的,这样我们在进行下单意图辨识的时侯会面临一个类别不均衡的问题(下单:不下单 = 1:10甚至更低),这样的类别误差会增加常见的分类器的分类疗效[8]。为了解决这一问题,受到ESMM[11]和seq2seq[10]启发,我们引入了一个辅助任务:停留意图辨识。我们随即会从理论上验证这一做法
2.我们采用encoder-decoder的结构,灵活地处理序列化的输入和输出
第一阶段:瞬时意图辨识
图-2: IIDN结构
图-2是IIDN的整体结构,它由Embedding Layer, LSTM layer, Attention Layer, Encoder和Decoder五部份组成。接下来分别介绍。
Embedding Layer
模型的输入主要是实时用户特点和红包特点,用户特点包括实时特点(端上搜集到的:点击、加购等)、历史特点(用户核身、年龄等),红包特点现今只加入了面额。这些特点是高度异质的,需要进行一步处理把它们映射到相同的向量空间中。我们采用[9]提到的嵌套技术,把原创的异质特点映射为宽度固定的向量,并把该向量作为后续结构的输入。
LSTM Layer
我们红包领取的业务逻辑是:用户在详情页形成浏览行为并返回landing page的时侯触发决策模型,判断给该用户领取红包的面额(0元代表不领取)。由于用户一般会形成一系列的详情页浏览行为,因此我们搜集到的数据也是高度序列化的。为了更好地描述序列化数据当中的时间依赖关系,我们在特点抽取环节采用了Long Short Term Memory (LSTM) 来捕捉这些序列化信息。
Attention Layer
对于LSTM产出的序列化的feature map,我们使用注意力机制抽取当中的局部和全局依赖关系。我们将LSTM每层的输出都通过Attention估算权重并参与最终的结果估算。这样的用处是模型除了关注LSTM最终层输出,还会关注逐层的输出结果,从而降低模型对于输入信息的感知能力。
Encoder
由于用户实时特点的序列厚度不固定,而红包特点和用户历史特点是静态的固定特点,我们须要一种机制来进行有效的特点融合。受到Natural Language Generation (NLG) 当中句子生成的启发,我们采用一种seq2seq的结构:包括encoder和decoder,我们将在下一小节介绍decoder。这里encoder将之前形成的所有feature map作为输入,通过全联接层形成一个固定宽度的向量,这个向量涵盖了进行用户意图辨识的一切信息,并作为以后decoder进行意图辨识的根据。
Decoder
Decoder被拿来输出最终的意图辨识结果。在最开始,我们的模型只输出用户下单的机率,但是随着业务的深入,我们发觉类别不均衡这一问题给结果预测引起了不小的干扰。在提升预测精度的实践当中,我们发觉了一个有趣的现象:如果在进行下单率预估的时侯在特点中加入用户在此次浏览以后是否离开这一信息,预测精度会有很大的提高。这引起了我们的思索:用户离开和用户下单之间存在什么样的关系。随后我们又做了一个实验:进行用户离开意图辨识,并在特点中加入了用户两小时内是否下单这一特点。实验结果表明加入是否下单这一特点并不能给离开率预估的任务带来增益。这样的实验结果当然是符合逻辑的:用户才能下单的前提是用户一定要留在APP内不离开,前者的发生在逻辑上须要依赖前者的发生,因此在进行下单率预估的时侯加入是否离开才能为模型提供一定的信息增益;相反,用户是否离开更多取决于用户当前的态度以及APP能够挺好地承接他,用户是否下单并不能影响用户是否离开。我们可以觉得:
由上式可以很自然地推论出下式:
可以见到,在进行下单率预估的时侯(P的估算),用户逗留意图辨识(S的估算,或者说离开意图,二者等价)将可以拿来作为辅助任务提高预测疗效。我们的实验也验证了这点。
尽管在我们这一任务当中,我们只须要预测逗留意图和下单意图,但是在以后扩充的场景中,更多意图也可以被辨识:比如用户去往搜索的意图,用户去往新人专区的意图等。所有意图当然都象下单意图和逗留意图一样存在一个逻辑上的先后关系(至少所有意图的形成都依赖于用户不离开),这样的关系促使我们想到了机器翻译当中句子生成:后一个词组的生成依赖于前一个词组的预测,这启发了我们在encoder-decoder的基础上采用seq2seq的思想:decoder会先生成S,并在此之上生成P。这样做有两个益处:
1.在一定程度上减轻了我们一开始提及类别不均衡问题:尽管不是所有用户都下单,但是所有用户一定会离开APP,离开意图辨识并不存在类别不均衡的问题
2.我们这一套意图辨识框架可以扩充到无限多的意图辨识当中,只要提供先验的逻辑先后关系
我们使用普通的RNN完成每一个意图的辨识。
loss设计
全局的loss是由逗留意图辨识和下单意图辨识两个任务的loss相乘得到:
其中CE表示交叉熵:
第二阶段:求解MCKP
根据第一阶段得到的实时意图$P$和$S$,我们在这一阶段完成红包的最终领取。我们将这一问题建模成一个多选项挎包问题,我们作以下定义:
1.j拿来索引红包,表示第j个红包,i拿来索引用户,表示第i个用户
2.c_j表示第$j$个红包的面额
3.x_{ij} = 1当且仅当第i个用户被发到了j红包
4.\gamma 表示用户逗留兴趣阀值,我们只给这些逗留意图足够低的用户发红包,停留意图假如不够低我们觉得他就会继续浏览,因此此次先不领取红包
5.P_{ij}、S_{ij}分别表示第$i$个用户发放到第$j$个红包之后的下单率和停留率
6.B表示全局预算约束
运用以上的定义,红包领取问题可以被写作:对于任意的用户,满足S_{ij}
为了求解以上问题,我们采用[7]提到的primal-dual框架。定义alpha和beta_j分别是相关的排比变量,据此框架我们可以在线求解以上问题。具体来讲,x_{ij}可以依据以下公式求得:
通过上式求得的x_{ij}和j,我们就得到了最终的分配方案。
四、系统布署
目前在集团做端智能首推jarvis平台,在这里给相关朋友点赞,在最开始的时侯没少麻烦jarvis朋友解决问题。运用jarvis,我们可以搜集端上实时数据并将深度模型布署到端上。我们主要是将IIDN布署到端上,MCKP决策模型因为须要考虑全局最优,所以放到了服务端。
图-3: 系统大图
图-3是我们整体的系统构架,每一个用户在详情页回挪到landing page的时侯会触发决策模型,IIDN首先按照端上采集到的行为数据辨识出用户的下单和逗留意图,随后该意图会被推送到服务端参与最终的红包决策。我们这套系统在日常线上持续生效,同时还参与了0331商人节,助力卖家数的提高。
五、实验
实验设置
我们从1688客户端搜集数据,用到的特点如下表:
实验分为两部份:离线实验和在线实验。离线实验主要验证IIDN对于意图的辨识疗效,验证指标是AUC和logloss;在线实验主要验证我们二段式建模对于红包领取的疗效,主要的验证指标是增量卖家成本 (increment cost, ic),它被拿来评判每带来一个增量卖家须要消耗的成本,计算公式如下:
离线实验
在离线实验环节,我们分别使用以下方式进行下单意图辨识,并进行比较:
1.Logistic Regression (LR)
2.Gradient Boosting Decision Tree (GBDT)
3.DNN + RNN [12]
4.IIDN-single-LSTM (单层LSTM)
5.IIDN-non-attention (无Attention机制,使用简单的全联接)
6.IIDN-non-auxiliary-task (没有辅助任务的IIDN)
7.IIDN
离线结果如下表:
可以看见IIDN达到最高的AUC和最低的Logloss,这证明了IIDN的合理性。
在线实验
我们主要和另外三个领取方案做比较:
1.不发:该桶所有用户均不发红包
2.全发:该桶所有用户均发红包
3.uplift:我们采用广告营销当中常用的uplift方案,对每一个用户领取让他转化率提高最大的面额,同时该面额带来的转化率提高须要小于一定的阀值,否则不领取红包
在线疗效如下表:
可以看见虽然全发桶带来的转化率提高最显著,但是它也带来了最大的增量卖家成本。我们提出的方案除了相对自然转化率提高了25.7%,同时也比全发桶的增量卖家成本降低了44.3%,这证明了我们方案的优越性。
模型剖析
学习曲线
图-4: 学习曲线
图-4展示了不同方式的学习曲线,可以看见LSTM, Attention以及逗留意图辨识任务均可以起到加速模型训练的疗效。
单调性剖析
正常来讲,红包面额越大,对于用户的剌激作用也越大,用户下单率曲线应当是一条关于红包面额单调递增的曲线,我们实验得到的曲线如下图:
图-5: 单调性曲线
可以看见所有模型基本呈现单调性,其中IIDN愈发符合真实情况。
作者:李良伟
原文链接