支付宝:你长大了,该学会认识新朋友了!

小叽导读:在今年的拉动手淘用户增长战略中,支付宝小程序作为日活2亿同时包含大量手淘新用户的场景,在拉新中承担着十分重要的作用。我们的目标人群是将用户转化为淘宝用户,阿里工程师是用什么方法完成这样的转化呢?今天的文章,马上为你揭晓!

作者 | 亦汀、吴越、一尘、理欣


一、背景

“支付宝拉新”依托“绿洲”营销算法平台,精选淘抢购、天天特价、聚划算等营销商品,在支付宝首页进行个性化投放,旨在给支付宝用户一个非常好的购物初体验,进而引导用户安装手淘app体验更多精彩。

然而,新用户没有任何行为,且购买力等重要用户画像特征严重缺失,在对用户一无所知的情况下,个性化投放变得异常困难。幸运的是,这些用户在支付宝领域大多为成熟用户,我们可以通过全域帐号打通,得知用户线下进行哪些品类的消费,也能知道用户在支付宝花钱多或少。因此,我们提出一种通过跨domain的用户表征方式:CroSs Domain Embedding(CSDE),由支付宝domain的特征生成与淘宝domain特征非常相似的向量,据此对用户进行推荐,实验和线上测试都表明,我们的方法对新用户具有更好的表征能力,能更加准确的为新用户进行推荐。

由于我们的目标人群是将用户转化为淘宝用户,因而后续讨论中活跃用户、新用户、流失用户特指手淘app中用户分类。

支付宝:你长大了,该学会认识新朋友了!

支付宝小程序页面

二、算法介绍

1、基本思路

我们核心目标,是为淘宝domain中行很少的新用户,利用支付宝domain的特征为其生成一个新的画像,使之可以完全拟合用户在淘宝特征表达。有了这一生成网络,我们将可以为新用户、流失用户、行为缺失或画像缺失的用户生成特征,来减小其淘宝特征缺失的影响,提高推荐的准确性。因而我们的模型分为两个环节: CroSs Domain Embedding Learning(CSDE) :主要学习支付宝特征生成淘宝特征网络;以及Adaptive Prediction with CSDE :将学到的这一生成网络应用于小程序的深度模型中,补充新用户的表达。

支付宝:你长大了,该学会认识新朋友了!

为了方便问题的描述,我们首先给出关于 Input 和 Dataset 的符号定义:

支付宝:你长大了,该学会认识新朋友了!

2. CroSs Domain Embedding Learning(CSDE)

针对数据集 我们构建如下网络:

支付宝:你长大了,该学会认识新朋友了!

我们希望获得的是由支付宝特征生成淘宝特征的一个网络,最直接的做法是将支付宝encode为淘宝特征,然而,一方面由于淘宝特征复杂度太高,例如行为序列是很难encode,另一方面淘宝原始特征中也有一些冗余或无用信息无须被复原出来,我们的做法是,在目标函数中,先将淘宝特征转化为具有较好用户表达的embedding,再令支付宝domain生成的向量与这一embedding相似,我们称之为cross domain embedding。同时,我们也希望他具有一定的预测能力,所以我们的loss function由3部分组成:Lt -- Taobao Classification Loss(学习淘宝特征的良好表达)、Ls--Similarity Metric Loss(拉近两个domain距离)、 Lc -- CSDE Classification Loss(生成的表达有预测能力),损失函数如下:

支付宝:你长大了,该学会认识新朋友了!

生成网络的好坏主要取决于生成的CSDE与淘宝向量是否足够相似,因而S (Similarity Metric Loss) 的选择格外重要。我们尝试了两种度量目标函数,一种是拉进生成向量在空间中的距离,另一种是将CSDE视作fake taobao,而将淘宝向量视为real taobao,用判别网络去区分who's the real,生成网络尽可能去使判别网络无法区分两个domain的表达。

遗憾的是,第二种使用甚广的Domain Adaptation(DA)的方法,在我们的实验中提升非常的微弱,这可能是由于,DA的方法拉近的是整体的distribution,他并不限制domain pair对之间的相似,也就是说,对于一个支付宝中“高消费,偏好航旅交通的男性用户”,即使生成淘宝中“偏爱低价裙子”这一表达,只要这一画像符合且存在于淘宝真实用户中,loss function就不会对他做出惩罚,这与我们的初衷是相违背的,反而element-wise的距离约束更好地限制了映射与对应关系。之后的实验将主要基于第一种方法展开。

3. Adaptive Prediction with CSDE

这一部分我们基于全部用户训练 Da={xi,y},目标是cvr,并分别在D、Da、Dn 三种用户群体上进行测试和分析。 通过CroSs Domain Embedding Learning得到的生成网络G(CSDE Network),我们将这部分网络加入用户表达网络中,提升整体的预测能力。

网络结构:

支付宝:你长大了,该学会认识新朋友了!

Domain Attention:我们将生成网络直接加入用户embedding中,与不加CSDE网络对比是有一定的提升的。同时,经过分析不同类型用户群体的收敛速度我们观察到,受特征复杂度的影响,训练后期主要优化的是淘宝特征相关的复杂网络,而这一优化对新用户是没有作用的,但却会削弱CSDE网络的贡献。于是我们加入domain attention,来选择不同domain的重要程度,可以极大的平衡这一点,后面的实验部分也有相关说明。

三、实验和在线测试

CroSs Domain Embedding Learning和Adaptive Prediction with CSDE环节,我们均使用支付宝小程序7天日志作为训练样本,预测下一天的转化率。

1. auc对比:

我们以没有CSDE网络的模型为base,对比auc如下:

支付宝:你长大了,该学会认识新朋友了!

2. 在线测试:

我们取Adaptive Prediction with CSDE得到的模型更新至线上,在新用户群上进行测试,对比测试桶和base桶的转化率:

支付宝:你长大了,该学会认识新朋友了!

3. 不同用户群Attention对比:

支付宝:你长大了,该学会认识新朋友了!

我们主要对比alipay attention 和CSDE Attention,这两部分网络的输入特征均为支付宝特征,不同的是,alipay network的主要作用是学习支付宝特征的表达,CSDE adaptive network的主要作用是利用支付宝特征生成淘宝用户画像,使之弥补淘宝特征确实的影响。通过上图不同用户群的domain selection结果我们可以看出:

用户活跃度越高,CSDE和alipay attention越低,支付宝特征相关的网络越不重要。这是因为淘宝特征在cvr预估中具有更强的表达能力,因而淘宝特征约丰富的样本,越倾向于选择淘宝特征作为用户表达,支付宝特征越不重要。

用户活跃度越低,CSDE network和alipay network的重要度差异度越大。从图中可以看出,新用户alipay attention和CSDE attention之间的gap远大于活跃用户,这说明了对于没有淘宝特征的用户,alipay network关注支付宝特征本身的表达,而CSDE network关注由支付宝生成淘宝画像的表达,但是它们的作用是完全不一样的,并且生成淘宝画像这一网络的作用更加重要。

全部用户群体中,同样可以看到CSDE的attention高于alipay attention,这是因为全部用户还包含大量流失用户(很久没有访问手淘),他们的淘宝特征同样缺失严重,而CSDE的加入对这部分用户的预估准确度也有很大的提升。

四、生成对抗模型在cross domain用户表征的一些探索

1. 任务目标

尽管Domain Adaptation的方法提升微弱,我们仍然好奇生成对抗模型在Domain间的迁移和生成能力,这里介绍关于生成对抗模型的一些探索与尝试。我们利用用户在手淘app的行为序列,预估/生成支付宝中的行为序列,并将预估结果直接输入给支付宝行为序列的预测网络,在不改变且不重新训练该网络的情况下,达到比较好的预测效果。下列描述中,Domain A 代表手淘中的行为序列,而Domain B 代表支付宝中的行为序列。

2. 算法实现

考虑到两个domain的用户不一定有很多重合,因此在训练时需要使用unpairwise的模式,即在训练时A domain与B domain同时传入到一个batch中的数据是没有对应关系的。这也意味着在训练时我们不能通过直接计算同一个用户在两个domain的行为来优化模型。

为解决这一问题,我们使用了目前被广泛关注的生成对抗网络来设计模型。参考在图像领域显示出优良效果的双向对抗模式如CycleGAN、DisoGAN、DualGAN等,我们设计实现了如下图所示的双向对抗网络结构。

支付宝:你长大了,该学会认识新朋友了!

Input A通过生成器A2B后,得到A在B domain的迁移表示Generated B,并将其与Input B——同传输给判别器B来区分真假,通过迭代训练多次之后,当判别器没办法很好区分这两个输入时,生成器A2B生成的Generated B便是Input A在B domain的一个较好呈现,可以直接用于B domain的目标任务中。将Generated B通过生成器B2A再还原回A,计算cyclic loss加入生成器的优化loss中,从而保证生成器生成样本的多样性。

同理,Input B也有对应的一条数据流进行训练,从而形成双向对抗。算法中的生成器和判别器均通过全连接层实现。相关loss计算采用在生成对抗领域效果优秀的Wasserstein GAN with gradient penalty实现。

与图像处理不同,在迁移用户行为的embedding向量时,我们发现向量特征不像图像那样隐含了像素的位置等额外信息,采用生成对抗模式训练时*度更高,很容易就会跑偏,因此考虑将目标task的loss加入生成器的训练中,来指引训练流程。由于训练时unpairwise的特性,生成器生成的用户行为没法找到对应的用户和商品进行关联,来计算B domain中目标任务的loss,于是我们将训练时对应domain的用户profile以及item特征一并做迁移,形成3路并行的双向对抗网络,将3路生成器输出拼接起来输入另一个domain的目标任务中计算loss,达成在生成器训练loss中引入目标任务loss指导训练的目的。

3. 实验结果

可视化分析:

我们将 Domain A, Origin domain B(训练初始), Generated A by B(经Cycle GAN充分训练后)的分布均值进行可视化:

Domain A :

支付宝:你长大了,该学会认识新朋友了!

Origin domain B :

支付宝:你长大了,该学会认识新朋友了!

Generated A by B :

支付宝:你长大了,该学会认识新朋友了!

可以看出,原始的A和B,差异度是非常大的,而经过Cycle GAN转换之后,Generated A by B与A的分布确实非常相似,我们的算法确实能够在一定程度上将一个domain的数据以另一个domain的分布形式进行迁移。

预估实验:

domain A中有大规模的数据&特征可以充分训练完备的预估模型,然而对于domain A中信息缺失的用户,预估精度会大大降低。这里我们希望训练一个通用的转化器,使任何domain B的特征都可以生成与之对应的A,在不经过重新训练的情况下直接套用完备的domain A预估模型,便可以完成转化率预估任务。

为了验证模型效果,我们进行如下实验,可以看出,没有A后,auc从0.6494下降至0.6056,而如果我们用generated A by B来填补这一缺失,auc会上升至0.6293。因而,对于A特征缺失的用户,我们的双向对抗网络可以为之生成特征。

支付宝:你长大了,该学会认识新朋友了!

五、总结

我们提出了一种新颖的新用户推荐模型,来解决用户特征不足的问题。

CSDE借助了用户source domain中相似活跃用户在target domain的特征,并将这一knowledge transfer至新用户的推荐任务上。

我们的domain attention,是一种不同用户的domain selection机制,他平衡了输入特征的不均匀性,较人工切分用户流失度而言,他用了一种更加soft和灵活的方式让用户自特征进行自我打标与特征选择。

我们将cross domain learning描述为双向对抗网络,对生成对抗的基础上增加还原loss,来增强domain similarity的约束。

实验结果与在线测试显示,我们的算法相较于普通的深度模型网络,对转化率有显著的提升。

上一篇:Mockplus组件样式库一键解决风格复用


下一篇:DevUP 沙龙 | 11月北京、杭州2场活动报名已经开启!现场更有阿里云MVP资格, 参观园区等好礼!