一、前言
本文是作者在1688进行新人红包发放的技术计划总结,基于该技术计划的论文《Spending Money Wisely: Online Electronic Coupon Allocation based on Real-Time User Intent Detection》曾经被CIKM2020接管,欢送交换斧正!
对于作者
李良伟:阿里巴巴算法工程师,邮箱 leon.llw@alibaba-inc.com
孙刘诚: 阿里巴巴高级算法工程师,邮箱 liucheng.slc@alibaba-inc.com
二、背景介绍
用户权利(包含现金红包、优惠券、店铺券、元宝等,图-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} <= gamma,咱们求解以下最优化问题:
为了求解以上问题,咱们采纳[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更加合乎真实情况。
原文链接
本文为阿里云原创内容,未经容许不得转载。