阿里妈妈精准定向检索及基础算法团队最新CVR预估模型

今天要总结的一篇paper是阿里妈妈定向广告团队在2018年SIGIR会议上的一篇论文《Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate》。
需要注意的是这个场景是CVR即conversion rate(转化率),不是CTR。所谓的CVR指的就是当一个用户点击了商品之后,会有多大的概率会购买该商品,它们的关系在该论文中用了一个很形象的集合图进行表示:

这里写图片描述

首先用户会impression一些商品,从中选择一些感兴趣的进行click操作,再从click生成的集合中选择一些感兴趣的进行conversion操作,也就是购买。之前的baseline算法在解决该问题的时候,直接把CTR预估模型套用在了CVR场景之中,特别是在构造训练集数据的时候,原来的构造方法正样本肯定选取的是click=1 && conversion=1的,但是负样本选取的是click=1 && conversion=0的,这样很显然构造的样本肯定是全部都是已经click操作之后的,这样子训练出来的模型如果放到真实的实战场景中是很难取得比较好的效果的,毕竟真实场景的数据来源于impression中的数据,而训练出的模型却是适配click中的样本,这个现象在论文中被称之为“sample selection bias”(SSB)。同时不难看出,click范围内的样本量要远远小于impression范围内的样本量,这样就会导致更加严重的“data sparsity”。为了解决baseline模型在CVR场景中的这两个缺陷,本文提出了一个新的网络架构,模型结构如下图所示:
这里写图片描述
可以看出整个模型用到了multi-task的思想。从整体来看,整个模型由两个功能模型组成,一个是左边的CVR,另一个是右边的CTR,最终这两个预测结果概率相乘就得到了CTCVR即 P C T C V R = P P C T R P C V R 。如果我们仔细看这两个网络结构,会发现它们几乎是一模一样的,同时这两个部分网络共享Embedding Layer。那么在训练的时候,右边的CTR模型可以利用impression data进行训练,左边的CVR模型则利用click数据进行训练。从整个模型框架可以看出,Embedding layer占据了大部分的模型参数,这样在CTR子模型训练的时候,用到了更多的训练数据,那么两个模块联合的训练损失函数如下所示:
L ( θ c v r , θ c t r ) = i = 1 N l ( y i , f ( x i ; θ c t r ) ) + i = 1 N l ( y i a n d z i , f ( x i ; θ c t r ) f ( x i ; θ c v r ) )
其中 y i 标识一个样本是否被点击了(click), y i a n d z i 标识一个样本是否被点击(click)以及是否被购买(conversion)。

猜你喜欢

转载自blog.csdn.net/guoyuhaoaaa/article/details/80251509