目录

前言

本文主要介绍电商推荐场景多目标建模的几类方法,包括ESMM、ESM^2、ESCM^2等。

ESMM

ESMM 是全样本空间多任务模型(Entire Space Multi-Task Model)的简称,由阿里妈妈团队提出,用于解决转化率预估(CVR)中存在的样本选择偏差和数据稀疏问题。

以电商推荐系统为例,用户的行为通常遵循曝光→点击→转化的模式。CVR 建模就是估计点击后转化率的任务,即 pCVR=p(conversion|click, impression),其中 conversion 表示转化,click 表示点击,impression 表示曝光。与之相关的还有点击率 pCTR=p(y=1|x)和点击转化率 pCTCVR=p(z=1, y=1|x)。

传统 CVR 建模存在的问题如下:

  1. 样本选择偏差(Sample Selection Bias, SSB):传统的 CVR 模型在由点击和曝光的数据集上进行训练,但却要对所有曝光样本进行预估,这导致训练样本的分布偏离真正的分布,影响模型的泛化能力。

  2. 数据稀疏(Data Sparsity, DS):用于 CVR 训练的点击样本远少于曝光样本,数据的稀疏性使得模型拟合相对困难。

ESMM 的主要思路是利用用户行为的顺序模式,引入 CTR(点击率预估)和 CTCVR(点击转化率预估)两个辅助任务,通过学习这两个任务,隐式地学习 CVR 任务。其模型结构有两个特点:

  1. CTR 与 CVR 两个塔共享底座 embedding。由于 CTR 样本多,这样可以帮助 CVR 的 embedding 向量训练得更充分、更准确,有点迁移学习的味道,缓解了数据稀疏问题。

  2. CVR 塔没有自己的损失函数,在训练期间没有明确的监督信号。主要训练的是 CTR 和 CTCVR 这两个任务。

ESMM 的损失函数如下: 其中,分别是 CVR 网络和 CTR 网络的参数,是交叉熵损失函数,表示是否点击,表示是否转化,表示基于参数对输入的 CTR 预测值,表示基于参数对输入的 CTCVR 预测值。

根据公式(其中表示 pCTCVR,表示 CTR,表示 CVR),可以通过 CTR 和 CTCVR 的预估推导出来 CVR。因为 CTR 和 CTCVR 都是基于所有曝光样本进行训练和估计的,所以由此派生出的 CVR 也适用于所有样本,这样就减轻了样本选择偏差问题。同时,通过共享底座 embedding,缓解了 CVR 任务的数据稀疏问题。

在实际应用中,ESMM 模型在淘宝推荐系统的流量日志数据集上的实验表明,其显著优于其他同类方法,能够有效提升 CVR 预估的准确性。

ESM^2

ESM²即Elaborated Entire Space Supervised Multi-task Model(详细的全空间监督多任务模型),它是在 ESMM(Entire Space Multi-task Model,全样本空间多任务模型)基础上进行改进的方法,主要用于解决转化率预估中存在的问题,该方法发表于 SIGIR 2020。

ESM²的主要改进思路是对用户从点击到购买的行为路径进行更细致的拆分和细化,引入更多购买前的行为和数据,以降低数据稀疏性,进一步提升模型性能。

以下是 ESM²方法的具体介绍:

一、建模思路

ESM²基于任务之间的依赖关系,采用级联的方式建模,在 ESMM 的基础上,对用户的行为路径进行了更细致的拆分。

  1. 行为抽象:ESM²将电商场景中用户的购买行为抽象为“曝光-点击-加入购物车/加入心愿单/其它行为-购买”。其中,加入购物车或心愿单这两种行为占比较大,后续购买概率远高于其他行为。然后,将点击和购买之间的行为划分为是否有特定行为(包括决定性行为和其它行为)两种情况,即“曝光-点击-有特定行为/无特定行为-购买”。用户从曝光到购买的最终概率由行为路径上每个阶段对应的概率相乘得到。
  2. CTAVR(从曝光到产生特定行为的转化):用$v_i$表示曝光(值为1),$c_i$表示点击行为(值为1表示点击发生,值为0表示未点击),$a_i$表示特定行为(值为1表示特定行为发生,值为0表示未发生)。为方便表示,用$y_{2i}$表示$p(a_i=1 | v_i = 1, c_i = 1)$,即特定行为发生的概率;用$y_{1i}$表示$p(c_i = 1 | v_i = 1)$,即点击行为发生的概率。则$p_i^{ctavr}=y_{2i}y_{1i}$。这意味着从曝光到产生特定行为的转化概率,等于点击行为发生的概率乘以在点击发生的条件下特定行为发生的概率。
  3. CVR(从点击到购买的转化):用$b_i$表示购买行为(值为1表示购买发生,值为0表示未购买)。因为购买行为的前置依赖行为包括有特定行为和无特定行为两种情况,即$p(a_i = 0 | c_i = 1) + p(a_i = 1 | c_i = 1) = 1$,稍作变换可得$p(a_i = 0 | c_i = 1) = 1 - p(a_i = 1 | c_i = 1)$。为方便表示,用$y_{3i}$表示$p(b_i=1 | c_i = 1, a_i = 1)$,即有特定行为发生时购买的概率;用$y_{4i}$表示$p(b_i=1 | c_i = 1, a_i = 0)$,即无特定行为发生时购买的概率。则$p_i^{cvr}=y_{4i}(1-y_{2i}) + y_{3i}y_{2i}$。也就是说,从点击到购买的转化概率,等于无特定行为发生时购买的概率乘以特定行为未发生的概率,再加上有特定行为发生时购买的概率乘以特定行为发生的概率。
  4. CTCVR(从曝光到购买的转化):计算过程为$p_i^{ctcvr} = p(b_i=1 | v_i = 1) = y_{1i}(y_{4i}(1-y_{2i}) + y_{3i}y_{2i}) = p_i^{ctr}p_i^{cvr}$。即从曝光到购买的转化概率,等于从曝光到点击的概率乘以从点击到购买的概率。由于 CTR、CTAVR、CTCVR 均基于曝光样本空间,通过对这三个任务进行直接建模,间接实现了 CVR 基于曝光空间的建模。

二、模型结构

ESM²的模型结构对应地体现了任务之间的依赖关系,根据用户从曝光到购买的行为路径,对存在依赖关系的任务进行级联,从而避免样本选择偏差问题。不同任务在底层共享 embedding。模型结构包括三部分:

  1. embedding 共享模块(Shared Embedding Module, SEM):通过任务共享底层 embedding,使模型充分利用样本量大的任务进行学习,间接缓解数据稀疏问题。

  2. 预测分解模块(Decomposed Prediction Module,DPM):根据用户行为路径,将曝光到购买的整个过程分解为四部分,即从曝光到点击、从点击到有特定行为、从有特定行为到购买、从无特定行为到购买,每部分进行相应的建模。

  3. 序列行为合成模块(Sequential Composition Module,SCM):用于合成各个部分的结果。

通过这种方式,ESM²在 ESMM 的基础上,进一步缓解了数据稀疏问题,提高了转化率预估的准确性。但具体的应用效果还会受到数据特点、模型复杂度等多种因素的影响,在实际应用中需要根据具体情况进行调整和优化。

ESCM^2

ESCM^2(Entire Space Counterfactual Multi-Task Model)的原理主要是为了解决 ESMM(Entire Space Multi-Task Model)中存在的预估有偏和独立性先验问题。

ESMM 是一种有效解决真实场景中 CVR 预估面临的数据稀疏以及样本选择偏差问题的多任务学习模型。但 ESCM^2 指出 ESMM 存在以下两大类问题:

  1. 预估有偏(IEB,Inherent Estimation Bias):ESMM 预估的 CVR 天然比真实值要大。这是因为 ESMM 在曝光空间来优化 CVR,而真实情况是转化必须依赖于点击,应该在点击空间来优化 CVR。根源在于 ESMM 中 CVR main task 是在曝光空间进行优化的,这与真实情况相悖,导致预估值和真实值在曝光空间上的偏差大于0。

  2. 独立性先验(PIP,Potential Independence Priority):ESMM 分别建模 CTR(点击率)和 CVR(转化率),会忽视“转化”依赖于“点击”这一因果关系。即模型结构上 CVR 的预测不依赖于 click,但实际情况是发生点击后才会发生转化,这会导致 CTCVR(点击然后转化率)的预估存在问题。

为了解决这两个问题,ESCM^2 利用因果推断中的反事实经验最小化作为正则项进行多目标学习。具体来说,它从因果推断角度,采用了 IPW(Inverse Propensity Weighting,逆倾向加权)和 DR(Doubly Robust Estimator,双重稳健估计)手段。

ESCM^2 提出的模型可以在一定程度上缓解预估有偏和独立性先验的问题,使得 CVR 的预估更加准确。通过离线和在线实验表明,该方法不仅能有效解决这两大类问题,在指标上也显著优于其他基线模型。