阿里在《One Model to Serve All: Star Topology Adaptive Recommender for Multi-Domain CTR Prediction》中提出了一种思路来解决不同模块使用同一模型的思路:

1.介绍

传统CTR模型关注于single-domain的prediction,其中ctr模型会服务于单个业务domain,它基于从该domain中收集到的样本进行训练。每个业务domain是一个特定位置(items被展示给移动端app或PC 网站)。在大的商业公司(比如:阿里和亚马逊),经常有许多业务domains需要进行CTR预估来增强用户满意度和提升商业回报。例如,在阿里,商业domains的范围有: 猜你喜欢、Banner、以及其它domains。图1展示了在阿里的一些业务domains。

图片名称

图一

  • Banner:在banner中,会在taobao主页的top banner上展示items。这些item可以是一个商品、商店、或一个品牌。
  • 猜你喜欢:在该模块中,items都是商品,在左或右列被展示给用户

由于不同业务domains会有重叠的用户组(user groups)和items,在这些domains间会存在共性,允许信息共享对于学习每个domain的CTR模型来说是有益的。然而,特定的user group可能会不同,用户行为也会在多个domains内变化。这些差异会导致domain-specific数据分布简单将所有data进行混合并训练单个共享的CTR模型不能很好地在所有domains上工作良好

除了混合数据并训练一个shared model外,另一种简单解法是,为每个商业domain构建一个独立的模型。这种方式也会有一些缺点:

  • (1) 一些业务domains会比另一些domains具有更少的数据。将数据进行分割会忽略domain共性,并造成更少的训练数据,使得模型很难学习
  • (2) 维护多个模型会造成资源大量消耗,并需要更多的人工开销。当商业domains的数目达到上百个时会相当麻烦

本paper的目标是学习一个有效和高效的CTR模型来同时处理多个domains。我们将multi-domain CTR prediction公式化成:recommender需要为M个商业domains \(D_1, D_2, \cdots, D_M\)作为CTR预测。该模型可以将input作为(x, y, p),其中:

  • x是公共特征(像:历史用户行为、用户profile特征、item feature、context feature等),会被多个商业domain使用
  • \(y \in \lbrace 0, 1\rbrace\)是点击label
  • p是domain indicator:它表示该样本是在哪个domain上被收集

注意:(x,y)从domain-specific分布\(D_p\)上抽取得到,分布会随着不同的domains有所不同。multi-domain CTR预测的目标是:构建一个有效且高效的模型,它会为每个domain给出精准的CTR预测,并在资源消耗上开销不大,该模型可以充分利用domain共性,并能捕捉domain间的差异。

一种用于提升学习的可能策略是,使用domain进行多任务学习。如图3所示,multi-domain CTR预测与多任务学习间的不同之处是:multi-domain CTR预测是在不同的domains上解决相同的任务(都是CTR 预测任务),不同domains的label spaces是相同的,数据分布有所不同。作为对比,大多数多任务学习方法则在相同的domain上解决不同的任务,其中label space会不同,例如:联合估计CTR和CVR。由于任务的异构性,已存在的多任务学习方法则关注于在bottom layers上的共享信息,但会在task-specific output layers上保持独立。直接在multi-domain CTR预测上采用multi-task方法可能不会充分利用上在label space上的domain关系,并且会忽略不同domains上不同数据分布。

图片名称

图3 multi-task learning与multi-domain learning的对比。大多数多任务学习方法关注在单个domain内处理不同任务。作为对比,multi-domain learning会为多个domains作出预测来解决相同的任务,例如:ctr预测,其中,label spaces是相同的。直接采用multi-task方法来进行multi-domain CTR预测不能充分利用在label space中的domain关系,并忽略不同domains上的不同数据分布

为了充分利用domain关系,我们提出星形拓朴自适应推荐(STAR Topology Adaptive Recommender: STAR)来进行multi-domain CTR预估。提出的STAR模型是星形拓朴,如图4所示。STAR包含了共享的中心参数,以及domain-specific参数的多个集合。每个domain的最终模型通过将共享中心参数(shared centerd params)和domain-specific参数进行组合来获得。中心参数(centered parameters)被用于学习在所有domains间的总行为,其中公共知识可以被学习到以及在所有domains间转移。domain-specific参数会捕获在不同domains间的特定行为来提升更加refined的CTR预估。star topology会利用跨多个domains间的有效信息转换,来学习domain公共性和差异。该paper会实现STAR模型,它使用在每个layer上对weights做element-wise product来作为组合策略。由于embedding layers会在工业界推荐器上贡献大多数参数量,添加的domain-specific参数对于总参数量来说可被忽略。因此,使用STAR模型来serve多个domains只需要添加少量计算和内存开销,就能达到更好的效果。

主要的贡献如下:

  • STAR:
  • 不同domains具有不同的数据分布,当使用batch normalization时,这会生成不准确的统计。我们提出Partitioned Normalization(PN),它会为不同domains上的样本进行独立normalization来解决该问题。PN会在domain内生成更准确的moments,它会提升model效果。
  • 在mulit-domainCTR预测中,描绘domain信息的features是很重要的。我们提出一个auxiliary network,它会直接将domain indicator作为input,并学习描绘该domain的有embeddings。该embedding会feed给auxiliary network,它比原始network更简单。这会使得domain indicator以一种直接方式影响最终预测。
  • 我们会在工业产品数据集上评估STAR,并将它部署在2020的阿里展示广告系统上。持续的收益验证了STAR的效果。直到现在,STAR的部署带来了6%的CTR和8%的RPM提升。它可以泛化到其它场景上。

2.相关工作

图片名称

图2 (a)对于所有domains的single shared model,方形nodes表示共享模型 (b) 每个domain一个模型,每个模型独立学习。圆形节点表示domain-specific model (c) 提出的STAR,其中每个domain具有特定的参数,也会共享一个公共centered model。边意味着center shared参数与domain-specific参数的组合

3.提出的方法

在本节中,我们首先提出一个关于multi-domain CTR预估的简洁背景介绍。接下是提出方法multi-domain的CTR预估的架构总览。接着我们详细介绍STAR,包括提出的STAR topology network,partitioned normalization以及auxiliary network。

3.1 Multi-domain CTR预估

在序列推荐系统中,推荐会采用用户历史行为、user profile特征、target item feature以及其它features(比如:context feature)作为input。一个用户u在一个item m上点击的预估CTR(\(\hat{y}\))可以计算如下:

\[\hat{y} = f( E(u_1), \cdots, E(u_i); E(m_1), \cdots, E(m_j); E(c_j), \cdots, E(c_k))\]

其中:

  • \(\lbrace u_1, \cdots, u_i \rbrace\)是user features的集合,包括:用户历史行为,user pfofile feature。
  • \(\lbrace m_1, \cdots, m_j \rbrace\)是target item feature的集合
  • \(\lbrace c_1, \cdots, c_k \rbrace\)是其它features的集合
  • \(E(\cdot) \in R^d\)表示embedding layer,它会将sparse IDs映射到可学习的dense vectors上

在将raw feartues映射到低维embeddings上后,惯例是将这些embeddings聚合来获取固定长度的vectors。可以部署不同类型的聚合方法(42, 43)来聚合这些embeddings来抽取用户兴趣并获取固定长度的presentation。获得的representation接着feed到下面的DNN中(例如:一个multi layer fully-connected network)来获得最终的CTR预测。

传统的CTR模型(6,13,23,42,43)通常从一个单一商业domain上获取数据进行训练。然而,真实推荐通常会处理不同的商业domains。推荐系统需要为M个domains \(D_1, D_2, \cdots, D_M\)同时作为CTR预测。该模型会将(x,y,p)作为input,其中:

  • x是在多个domains中用到的公共featrure(比如:用户历史行为、user profile、target item feature);
  • \(y \in \lbrace 0, 1\rbrace\)是点击的label
  • \(p \in \lbrace 1,2, \cdots, M\rbrace\)是domain indicator,它会表示样本来自哪个domain。

注意(x,y)是从domain-specific分布\(D_p\)上抽样得到,该分布对于不同domains会不同。multi-domain CTR预估的目标是:构建单个CTR模型,它可以给出准确的CTR预估,并以较低资源和开销进行serve。

3.2 架构总览

如上所示,忽略domain indicator p,学习单个共享CTR模型会忽略domain的差异性。这会导致次优的模型参数。另一方面,对于不同domain训练不同模型会更差,因为将domains进行分隔,每个模型会得到更少的数据。由于资源开销以及人力开销,在生产环境中为每个domain维护一个独立的模型是不可行的。

最后,我们提出STAR来进行multi-domain CTR预估,它可以更好使用不同domains间的相似性,并能捕获domain上的差异。如图4所示,STAR包含了三个主要部分:

  • (1) partitioned normalization(PN):它会为不同domains间的样本进行单独normalization
  • (2) star topology FC network (star topology FCN)
  • (3) auxiliary network:它会将domain indicator看成是input featrure,并能学到它的语义embeddings来捕获domain差异性

图片名称

图4 single-domain CTR预测以及STAR的对比。在STAR中,partitioned normalization(PN)会为不同domains的样本进行nomalization。被归一化的features接着作为input来feed给下面的star topology FCN中。star topology FCN包含了共享的centered FCN以及多个domain-specific FCNs。每个domain的最终组合模型通过

在训练期间,domain indicator p会首先被抽样,接着会使用一个B个mini-batch实例:

\[(x_1, p), (x_2, p), \cdots, (X_B, p)\]

会从该domain中抽样。STAR会首先将这些input features通过一个embedding layer进行嵌入作为低维vectors。在工业推荐系统中,该模型通常会使用数十亿features(15)进行训练,embedding的参数通常要比其它部分的参数更多。这使得它在不同domains上使用有限数据来学习domain-specific embedding很难。例如:对于在日常任务中用到的模型,embeddings参数要比FC layers上超过10000倍。因此,在STAR模型中,我们将所有domains共享相同的embedding layer,例如:在不同domains上的相同ID features会共享相同的embedding。共享的embedding layer会跨不同的domains,可以极大减少计算和内存开销。

该embeddings接着被pooled和concatenated,来获得B个固定长度的reprensentations。在这之后,B个抽取的representations会通过PN(patitioned normalization) layer进行处理,接着为不同domains进行独立的normalization statistics。normalizated vectors接着作为input被feed到star topology FCN中来获取output。star topology FCN包含了共享的centered FCN以及多个domain-specific FCNs。每个domain的最终模型通过将shared centered FCN和domain-specific FCN进行组合获得

在multi-domain CTR预估中,描述domain信息的features很重要。在STAR模型中,auxiliary network会将domain indicator作为input,并使用描述该domain的其它features来feed到auxiliary network中。auxiliary network的output 会被添加到star topology FCN的output中,来获取最终的prediction。我们让auxiliary network比star topoology FCN更简单,便得让模型以一个直接和简单方式来捕获domain差异。接着我们描述这些组件。

3.3 Partitioned Normalization

如上,raw featrures会首先转换成低维embeddings,接着进行pool和aggregation来获得中间表示。尽管一个实例的中间表示为z,为了训练deep networks更快和更稳定,一个标准的惯例是应用normalization layer到中间表示z上。在所有的normalization方法之间,batch normalization(BN)是一个表示方法,它对于训练非常深的DNN很重要(14,31)。BN会为所有样本使用一个全局的normalziation,它会累积normalization moments,并学习跨多个样本的共享参数。具体的,BN的训练归一化给定如下:

\[z' = \gamma \frac{z-u}{\sqrt{\sigma^2 + \epsilon}} + \beta\]

其中:

  • z’是output
  • \(\gamma\)和\(\beta\)是可学习的scale和bias参数
  • \(\mu, \sigma^2\)是当前mini-batch的均值(mean)和方差(variances)

在testing期间,在所有样本上的均值E和方差Var的移动平均统计,使用如下:

\[z' = \gamma \frac{z-E}{\sqrt{Var + \epsilon}} + \beta\]

…(2)

换句话说,BN会假设:所有样本是独立同分布(i.i.d)的,并在所有训练样本上使用共享的statistics。

然而,在multi-domain CTR预估中,样本假设是在一个特定domain上是局部i.i.d的。在testing期间在BN layers上共享全局的monents和参数,会牺牲domain差异性,并导致模型效果的降级。为了捕获每个domain上唯一的数据特性,我们提出partitioned normalization(PN), 它会为不同domains上单独对statistics和parameters做normalization。具体的,在training期间,假设当前的mini-batch是会第p个domain上抽样得到,我们会计算当前mini-batch的均值(mean)和方差(variances),并将feature进行归一化:

\[z' = (\gamma * \gamma_p) \frac{z - \mu}{\sqrt{\sigma^2 + \epsilon}} + (\gamma + \gamma_p)\]

…(3)

其中:

  • \(\gamma, \beta\)是全局的scale和bias
  • \(\gamma_p, \beta_p\)是domain-specific scale和bias参数

对于每个mini-batch,它会接受最终scale,通过将共享的\(\gamma\)与domain-specific \(\gamma_p\)进行element-wise相乘作为final scale,例如:PN会根据domain indicator自适应地对representation进行缩放。相似的,PN的bias也可以根据domain自适应地计算,它可以通过global bias \(\beta\)和domain-specific bias \(\beta_p\)求和来实现。注意:通过对比BN,PN也会在training期间使用当前mini-batch的moments,但PN会引入domain-specific scale和bias \(\gamma_p, \beta_p\)来捕获domain差异。

除了在scale和bias上的修改外,PN也会让不同domains进累计domain-specific的均值\(E_p\)和方差\(Var_p\)的移动平均。在testing期间,PN会将第p个domain的实验z进行转换:

\[z' = (\gamma * \gamma_p) \frac{z - E_p}{Var_p + \epsilon} + (\gamma + \gamma_p)\]

…(4)

从等式(4)来说,我们可以看到,PN会使用domain-specific的平均\(E_p\)和方差\(Var_p\)来归一化中间表示z。因而,PN会根据domain indicator为条件自适应更改中间表示来捕获差异特性。

3.4 Star Topology FCN

在PN layer之后,表示\(z'\)会被作为input来feed到下面的star topology multi-layer FCN上。如图5所示,提出的star topology FCN会为每个domain包含一个共享的centerd FCN和独立FCNs,因而,FCN的总数是M+1. 第p个domain的最终模型可以通过对shared centered FCN和domain-specific FCN组合来得到,其中,centered参数会学习在所有domains上的通用行为,domain-specific参数会捕获在不同domains上的指定行为,来帮助更多的fefined CTR预测。

图片名称

图5 STAR如何为不同domains生成FCN的参数。STAR包含了一个共享的centered FCN和独立的每个domain的FCNs。对于每个domain,一个neural network layer的最终weights会通过将shared FCN与domain-specific FCN进行element-wise乘法来获得。共享参数会通过所有示例的梯度进行更新,而domain-speciific参数只会通过在该domain下的样本进行更新。

特别的,假设:

  • W和b:分别表示shared FCN对应是NN layer上的weights和bias。
  • \(W_p\)和\(b_p\):分别表示第p个domain的specific FCN上相应layer上的weights和bias。
  • 我们将input维度表示为c,output维度表示为d,(例如:\(W, W_p \in R^{c \times d}, b, b_p \in R^d\))

第p个domain的最终的weights \(W_i^*\)和bias \(b_i^*\)可以通过以下获得:

\[W_p^* = W_p \otimes W, b_p^* = b_p + b\]

…(5)

其中:

  • \(\otimes\)表示element-wise乘法

假设:

  • \(in_p \in R^{c \times 1}\)表示来自第p个domain该neural network layer的输入,
  • \(out_p \in R^d \times 1\)表示最终的output

\(output_p\)给定如下:

\[out_p = \phi((W_p^*)^T in_p + b_p^*)\]

…(6)

其中:

  • \(\phi\)表示该layer的activation function

shared param和在domain-specific param的组合可以在所有layers上使用。通过这种方式,STAR可以对它的参数基于domain为条件进行调节。

注意,我们会对shared centerd FCN和domain-specific FCN进行组合策略,它的实现是:将每个layer上的weights进行element-wise乘,将bias进行加得到;也可以尝试研究其它策略。shared参数会通过对所有样本的梯度进行更新,而domain-specific参数则只会在使用该domain的样本时才会被更新。如上所示,工业推荐系统的大多数参数,会由embedding layer来贡献,STAR只会增加M个FCNs,量级很少。

3.5 Auxiliary Network

在CTR建模的传统方式下,所有features会被同等看待,并被feed给复杂的模型。在multi-domain CTR预测时,对于模型来说自动学习domain差异是很难的。我们会讨论一个好的multi-domain CTR模型应该具有以下几个特性:

  • (1) 具有考虑上domain特性的信息特征
  • (2) 这些featrures可以很容易并直接影响final CTR预估

背后的直觉是,描述domains的features很重要,因为它可以减少模型难度来捕获domains间的不同。

最后,我们提出一个auxiliary network来学习domain差异。为了讨论与domain特性相关的信息特征,我们将domain features直接看成是ID feature input。domain indicator会首先映射到embedding vector上,并与其它features进行concate。auxiliary network接着会根据concatenated features分别计算forward pass,来获得一维output。

  • \(s_m\):表示star topology FCN的一维output
  • \(s_a\):表示auxiliary network的output

\(s_m\)和\(s_a\)会被相加来获得最终logit。接着使用sigmoid来获得CTR预测:

\[Sigmoid(s_m + s_a)\]

…(7)

在我们的实现中,auxiliary network会比主网络更简单,它是一个二层FCN。这种简单结构可以使得domain features可以直接影响final prediction

另外,

  • \(\hat{y}_i^p\)表示在第p个domain的第i个样本上的预测概率
  • \(y_i^p \in \lbrace 0, 1\rbrace\)是ground truth

我们会在所有domains上对cross-entropy loss function进行最小化:

\[min \sum\limits_{p=1}^M \sum\limits_{i=1}^{N_p} - y_i^p log(y_i^p) - (1 - y_i^p) log(1 - \hat{y}_i^p)\]

…(8)

4.实验

参考

JD在《DADNN: Multi-Scene CTR Prediction via Domain-Aware Deep Neural Network》提了一种domain-aware DNN介绍。

1.介绍

2.模型结构

图片名称

图2 模型结构展示(fts-features)。(a) DNN model,它仅会考虑单个场景 (b) DADNN-MLP model,它会进一步考虑对于每个单独场景裁减出的差异特性。routing layer会使用关于scene id的一个wide input来区分场景。KT表示在多个场景间的内部知识迁移(internal knowledge transfer) (c)DADNN-MMoE model,它引入了multi-gage mixture-of-experts来替换hard shared-bottom block。gate的weights允许为每个单独scene进行差异化representations

C.Routing & Domain Layer

如果遵循相同的分布,独立场景的数据很少。为了减小跨场景的domain shift,routing layer会将通过场景来将样本划分给各自的domain layer,这样,对于对于每个独立的场景可以进行裁减出差异的representations。routing layer会通过一个scene id的wide input来区分场景。当在线进行serving时,对于每个场景来说只有一个domain layer会激活。routing和domain layer如图2(b)和图2(c)所示。更特别的,每个场景具有一个domain layer,它只会使用它自己的数据来调整模型参数。为了这个目的,domain layer可以来缓解引入多个数据分布带来的效果退化。给定一个dataset \(D = \lbrace (x_i, y_i) \mid i = 1,2,\cdots, N \rbrace\),我们的模型的objective function定义如下:

\[\underset{W_d}{argmin} L_d (W_d; D)\]

…(5)

其中:\(L_d\)是在training set的total loss。它的公式为:

\[L_d(W_d; D) = \sum\limits_{k=1}^K \alpha_k L_{d_k}\]

…(6)

其中:

  • \(L_{d_k}\)是第k个场景的loss
  • \(\alpha_k\)是它相应的weight
  • K是场景号

通过我们的探索,我们发现,当将\(\alpha_k\)动态地设置为第k个场景的样本百分比时效果最好。特别的,\(L_{d_k}\)通常定义为cross-entropy loss function:

\[L_{d_k} = - \frac{1}{N_k} \sum\limits_{i=1}^{N_k} (y_i log p(x_i) + (1-y_i) log(1-p(x_i)))\]

…(7)

其中:

  • \(N_k\)是第k个场景样本的size
  • \(y_i\)是第i个实例的ground truth
  • \(p(x_i)\)是第k个domain layer的output,它表示样本\(x_i\)被点击的概率

D. Knowledge Transfer

尽管routing和domain layer可以缓和domain shift,domain layer对于流量有限的场景可能会训练得不够充分。另外,在我们的实验中,这些场景都是特定比较相似的feeds。为了这个目的,我们提出了一个knowledge transfer模块,它位于每两个场景间,允许综合知识交互(knowledge interactions)和信息共享(information sharing),如图2(b)和图2(c)所示。一旦这些来自teacher domain classifier的knowledge被生成,它可以通过其它cross-entropy loss来指导其它domain layers。另外,我们会描述我们提出的knowledge transer方法。给定一个dataset \(D = \lbrace i=1, 2, \cdots, N \rbrace\),我们的模型的objective function如下所定义:

\[\underset{W_d, w_{kt}}{argmin} L_d(W_d; D) + L_{kt}(W_{kt}; D)\]

…(8)

特别的:\(L_{kt}\)是knowledge matching loss,它表示由[14]扩展而来的pairwise probabilistic prediction mimicking loss,它的定义如下:

\[L_{kt} = \sum\limits_{p=1}^K \sum\limits_{q=1, p \neq q}^K u_{pq} L_{pq}\]

…(9)

\[L_{pq} = - \frac{1}{N_p} \sum\limits_{k=1}^{N_p} (p(x_i) logq(x_i) + (1 - p(x_i)) log(1-q(x_i)))\]

…(10)

其中:

  • \(p(x)\)和q(x)分别表示teacher network和student network。
  • \(u_{pq}\)是classifier p到q的weight,\(N_p\)是teacher样本的size。在我们的实验中,我们设置\(u_{pq}\)为0.03。

特别的,我们只会使用在teacher network中的场景数据来更新student network。我们会开发gradient block scheme来阻止teacher net恶化,它在【16】中有使用。

4.实验

在本节中,我们会详细描述我们的实验。我们会在从公司中的在线广告系统中收集到的数据集来进行实验。另外,我们设计实验来验证routing和domain layer,MMoE模块和knowledge transfer的的效果。最后,我们会共享在线serving的结果和技术。

A.Metrics

AUC是在线CTR预估领域广泛使用的metrics。它表示:一个CTR predictor对于随机选择一个postive item高于一个随机选择negative item的概率。由于私有场景的数据分布通常是多样的,我们会使用一个派生自GAUC的metric,它表示了一个通过将每个场景的样本group计算而来的weighted average AUC。一个基于impression的GAUC计算如下:

\[GAUC = \frac{\sum\limits_{i=1}^K impression_i \times AUC_i}{\sum\limits_{i=1}^K impression_i}\]

…(11)

其中,weight是每个场景的曝光数。该metric会measures intra-scene order的好坏,并表明了在广告系统中的在线效果更相关。特别的,我们使用calibration metric来measure模块稳定性,因为CTR的accurate prediction对于在线广告的成功来说是必要的。它是average estimated CTR和empirical CTR之间的ratio:

calibration = pCTR / CTR

…(12)

calibration与1的差异越小,模型越好。

B.datasets和实验setup

参考

阿里在《Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate》中提出了ESMM来解决CVR的建模问题:

摘要

在工业应用中,如推荐和广告,准确估计点击后转化率(post-click conversion rate:CVR)对于排序系统至关重要。【传统的CVR建模】使用流行的深度学习方法并实现了最先进的性能。然而,在实践中遇到了几个任务特定(task-specific)的问题,使CVR建模具有挑战性。例如,传统的CVR模型是通过点击样本进行训练的,而在整个空间中进行推理时,则使用所有曝光样本。这会导致样本选择偏差(sample selection bias)问题。此外,存在极端的数据稀疏问题,使得模型拟合变得非常困难。在本文中,我们通过充分利用用户行为的顺序模式,即曝光(impression)→点击(click)→转化(conversion),以全新的视角对CVR进行建模。所提出的整体空间多任务模型(ESMM)可以通过以下两种方式来同时消除这两个问题:

  • i)直接在整个空间上建模CVR
  • ii)采用特征表示迁移学习(feature representation transfer learning)策略

从淘宝推荐系统的流量日志收集的数据集上的实验表明,ESMM显著优于其它方法。我们还发布了这个数据集的抽样版本,以便未来的研究。据我们所知,这是第一个包含点击和转化标签顺序相关样本的公共数据集,用于CVR建模。

1.介绍

转化率(CVR)预测是工业应用中排名系统的重要任务,例如在线广告和推荐等。例如,在优化每次点击成本(OCPC)广告中,预测的CVR用于调整每次点击的出价,以实现平台和广告商的双赢[3]。它也是推荐系统中平衡用户点击偏好和购买偏好的重要因素。

本文重点关注点击后CVR预估任务。为了简化讨论,我们以电子商务网站中推荐系统中的CVR建模为例。给定推荐的商品,用户可能会点击感兴趣的商品,并进一步购买其中的一些商品。换句话说,用户行为遵循曝光→点击→转化的顺序模式。因此,CVR建模是指预估点击后的转化率,即$pCVR=p(conversion \mid click, impression)$。

通常,【传统的CVR建模】方法采用类似于点击率(CTR)预估任务中开发的技术,例如最近流行的深度网络[1,2]。然而,存在一些任务特定的问题,使CVR建模具有挑战性。其中,我们报告了我们在实践中遇到的两个关键问题:

  • i)样本选择偏差(SSB)问题[9]。如图1所示,传统的CVR模型是在由有点击的曝光(clicked impressions)组成的数据集上进行训练的,而在整个空间中进行推理时,则使用所有曝光样本。SSB问题会损害训练模型的泛化性能。
  • ii)数据稀疏(DS)问题。在实践中,用于训练CVR模型的数据通常比CTR任务少得多。训练数据的稀疏性使CVR模型拟合变得非常困难。

图片名称

图1

有几项研究试图解决这些挑战:

  • 在[4]中建立了不同特征的分层估计器,并与逻辑回归模型结合使用以解决DS问题。然而,它依赖于先验知识来构建分层结构,这在拥有数千万用户和商品的推荐系统中难以应用。
  • 过采样方法[8]复制了少数类样本以增加训练数据,但可能会导致过拟合。所有未点击的印象作为负样本的随机采样策略(AMAN)[5]可以通过引入未观察到的例子在一定程度上消除SSB问题,但会导致持续低估的预测。
  • 无偏方法[7]通过拒绝抽样从观察到的样本中拟合真正的潜在分布来解决CTR建模中的SSB问题。但是,当通过拒绝概率的除法加权样本时,可能会遇到数值不稳定性。

总之,在CVR建模场景中,SSB和DS问题都没有得到很好的解决,以上方法也没有利用顺序行为的信息。

在本文中,通过充分利用用户行为的顺序模式,我们提出了一种名为整体空间多任务模型(ESMM)的新方法,能够同时消除SSB和DS问题。在ESMM中,引入了预测曝光后点击率(post-view CTR)和曝光后点击转化率(post-view CTCVR)的两个辅助任务。ESMM不直接使用点击的曝光样本来训练CVR模型,而是将pCVR视为中间变量,乘以pCTR等于pCTCVRpCTCVR和pCTR都是使用所有曝光的样本在整个空间上估计的,因此得到的pCVR也适用于整个空间。这表明SSB问题被消除了。此外,CVR网络的特征表示参数与CTR网络共享。后者使用更丰富的样本进行训练。这种参数转移学习有助于显着缓解DS问题。

对于这项工作,我们从淘宝的推荐系统中收集了流量日志。完整的数据集包括89亿个带有点击和转化顺序标签的样本。进行了仔细的实验。ESMM始终优于竞争模型,这证明了所提出方法的有效性。我们还发布了我们的数据集,以供该领域的未来研究使用。

2.提出的方法

我们假设观察到的数据集为:

\[S = \lbrace (x_i,y_i \rightarrow z_i) \rbrace \mid_{i=1}^N\]

其中:

  • 样本(x,y → z)是从具有域X×Y×Z的分布D中抽取的,其中X是特征空间,Y和Z是标签空间,N是曝光的总数
  • x表示观察到的曝光的特征向量,通常是一个高维稀疏向量,具有多个字段,例如用户字段、商品字段等
  • y和z是二元label,其中y = 1或z = 1表示是否发生了点击或转化事件
  • y → z表示了点击和转化标签的顺序依赖性,即在转化事件发生时,总会有先前的点击

Post-click CVR建模的目标是:估计概率:

\[pCVR = p(z = 1 \mid y = 1, x)\]

两个相关的概率是:

  • post-view点击率(CTR):$pCTR = p(z = 1 \mid x)$
  • post-view点击转化率(CTCVR):$pCTCVR = p(y = 1, z = 1 \mid x)$

在给定曝光x的情况下,这些概率遵循等式(1):

\[\underbrace{p(y = 1, z = 1|x)}_{pCTCVR} = \underbrace{p(y = 1|x)}_{pCTR} \times \underbrace{p(z = 1|y = 1, x)}_{pCVR}\]

…(1)

2.2 CVR建模与挑战

最近,基于深度学习的方法已经被提出用于CVR建模,取得了很好的效果。其中大多数方法都遵循类似的Embedding & MLP 网络架构,如[2]中所介绍的。图2的左侧说明了这种架构,为了简单起见,我们将其称为BASE模型

图片名称

图2 ESMM模型的CVR建模架构概述。在ESMM模型中,引入了CTR和CTCVR两个辅助任务,这两个任务有助于:i)在整个输入空间中建模CVR,ii)提供特征表示的迁移学习。ESMM模型主要由两个子网络组成:左侧是CVR网络,右侧是CTR网络。CTR网络和CVR网络的嵌入参数是共享的。CTCVR的输出是CTR和CVR网络输出的乘积。

简而言之,【传统的CVR建模】方法直接估计点击后(post-click)转化率:

\[p(z = 1 \mid y = 1, x)\]

他们(传统的CVR模型)使用已点击的曝光样本来训练模型,即:

\[Sc = \lbrace (x_j,z_j) | y_j = 1 \rbrace \mid_{j=1}^M\]

其中:

  • M是所有曝光中的点击次数。
  • $S_c$是S的一个子集。

注意,在$S_c$中,

  • (点击过的)曝光如果没有转化,会被视为负样本
  • 有转化的曝光(也点击过)被视为正样本

在实践中,CVR建模遇到了几个任务特定的问题,使其具有挑战性。

1.样本选择偏差(SSB)[9]

事实上,【传统的CVR建模】通过引入辅助特征空间$X_c$,使得

\[p(z = 1|y = 1, x) ≈ q(z = 1|x_c)\]

$X_c$表示与$S_c$相关的$limited^2$空间。对于$X_c$中的每个$x_c$,都存在一个对$(x = x_c,y_x = 1)$:

  • 其中 $x \in X$
  • $y_x$是x的点击label

通过这种方式,使用$S_c$的点击样本在空间$X_c$上训练$q(z = 1 \mid x_c)$。在推理阶段,假设对于任何$(x,y_x = 1)$对,其中:$x \in X$,x属于$X_c$,计算整个空间X上的$p(z = 1 \mid y = 1, x)$的预测值为$q(z = 1 \mid x)$。这个假设有很大的概率会被违反,因为$X_c$只是整个空间X的一小部分。它受到极少出现的点击事件的随机性的严重影响,其概率在空间X的不同区域中变化。此外,在实践中,如果没有足够的观察,空间$X_c$可能与X非常不同。这会导致训练样本的分布从真正的潜在分布中漂移,并损害CVR建模的泛化性能。

数据稀疏性(DS)

传统方法使用$S_c$的点击样本来训练CVR模型。点击事件的罕见发生导致CVR建模的训练数据极为稀疏。直观地说,它通常比相关的CTR任务少1-3个数量级,后者使用所有曝光的S数据集进行训练。表1显示了我们实验数据集的统计信息,其中CVR任务的样本数仅为CTR任务的4%。

2.3 Entire Space Multi-Task Model

等式(1)给我们提供了线索,可以转化为等式(2):

\[p(z = 1|y = 1, x) = p(y = 1, z = 1|x) p(y = 1|x)\]

…(2)

这里,$p(y = 1, z = 1 \mid x)$和$ p(y = 1 \mid x)$是在包含所有曝光的S数据集上建模的。等式(2)告诉我们,通过估计pCTCVR和pCTR,可以在整个输入空间X上推导出pCVR,从而直接解决了样本选择偏差问题。通过单独训练模型分别估计pCTR和pCTCVR,并通过等式(2)获得pCVR似乎很容易,我们将其简称为DIVISION。然而,在实践中,pCTR是一个很小的数字,除以它会引起数值不稳定。ESMM通过乘法形式避免了这个问题。在ESMM中,pCVR只是一个中间变量,受方程(1)的约束。pCTR和pCTCVR是ESMM实际上在整个空间上估计的主要因素。乘法形式使得这三个相关的联合训练估计器能够利用数据的顺序模式并在训练过程中相互传递信息。此外,它确保估计的pCVR值在[0,1]范围内,在DIVISION方法中可能超过1。

ESMM的loss函数定义为等式(3)。它由来自CTR和CTCVR任务的两个loss项组成,这些loss项在所有曝光的样本上计算,而不使用CVR任务的loss。

\[L(\theta_{cvr}, \theta_{ctr}) = \sum\limits_{i=1}^N l(y_i, f(x_i; \theta_{ctr})) +\sum\limits_{i=1}^N l (y_i \& z_i, f(x_i; \theta_{ctr}) \times f(x_i; \theta_{cvr}))\]

…(3)

其中:

  • $\theta_{ctr}$和$\theta_{cvr}$是CTR和CVR网络的参数
  • $l(·)$是交叉熵损失函数

从数学上讲,方程(3)将y → z分解为两部分:y和y&z,实际上利用了点击和转化标签的顺序依赖性。

特征表示转移(Feature representation transfer)。如第2.2节所介绍的,嵌入层将大规模稀疏输入映射为低维表示向量。它贡献了深度网络的大多数参数,学习需要大量的训练样本。在ESMM中,CVR网络的嵌入字典与CTR网络共享。它遵循特征表示转移学习范式。CTR任务的所有曝光训练样本相对于CVR任务要丰富得多。这种参数共享机制使得ESMM中的CVR网络能够从未点击的曝光中学习,并为缓解数据稀疏性问题提供了很大的帮助。

需要注意的是,ESMM中的子网络可以用一些最近开发的模型[1,2]替代,这可能会获得更好的性能。由于篇幅限制,我们省略了这部分内容,重点是解决CVR建模中实际遇到的挑战。

其它

参考

美团在《A Dual Augmented Two-tower Model for Online Large-scale Recommendation》中提出对偶增强双塔模型(DAT)。

抽要

许多现代推荐系统具有非常大的item库(corpus),处理大规模检索的工业界方案是,使用two-tower模型来从content features中学习query和item表示。然而,模型通常存在缺失two towers间的信息交互的问题。另外,不均衡的类目数据也会阻碍模型效果。在本paper中,我们提出一个新的模型,称为对偶增强双塔模型(Dual Augmented two-tower model: DAT),它会集成一个新的自适应模仿机制(Adaptive-Mimic-Mechanism)以及一个类目对齐Loss(Category Alignment Loss: CAL)。我们的AMM会为每个query和item定制一个增强向量(augmented vector)来缓和信息交叉的缺失问题(注:此种实现决定了该方法在工程实现上效率不高)。再者,我们通过对不平衡的类目(uneven categories)进行对齐item representation,我们的CAL可以进一步提升效果。在大规模datasets上的离线实验表示了DAT的优越性。另外,在线A/B testings证实:DAT可以进一步提升推荐质量。

1.介绍

2.模型架构

2.1 问题声明

我们考虑一个推荐系统,它具有:

  • 一个query set:\(\lbrace u_i \rbrace_{i=1}^N\)
  • 一个item set \(\lbrace v_j \rbrace_{j=1}^M\)

其中:

  • N是users数目,M是items数目。

这里,\(u_i, v_j\)是许多features(例如:IDs和content features)的concatenations,由于稀疏性它可以是非常高维的。

query-item feedback可以通过一个matrix \(R \in R^{N \times M}\)进行表示,其中:

  • 当query i 给出在item j上的一个postive feedback时,\(R_{ij}=1\);
  • 否则为\(R_{ij}=0\)。

我们的目标是:给定一个特定query,从整个item corpus中有效选择可能的数千个candidate items。

2.2 对偶增强双塔模型

我们提出的模型框架如图1所示。DAT模型使用一个增强向量(augmented vector)\(a_u(a_v)\)来从其它tower中捕获信息,并将该vector看成是一个tower的input feature。另外,Category Alignment Loss会将从具有大量数据的category中学到知识并迁移到其它categories中。

图片名称

图1 得出的对偶增强双塔模型的网络架构

2.2.1 Embedding Layer

与two-tower模型相似的是,在\(u_i\)和\(v_j\)中的每个feature \(f_i \in R\)(例如:一个item ID)会经过一个embedding layer,接着被映射到一个低维dense vector \(e_i \in R^K\)中,其中K是embedding维度。特别的,我们定义了一个embedding matrix \(E \in R^{K \times D}\),其中:E通过学习得到,D是唯一特征数,embedding vector \(e_i\)是embedding matrix E的第i列。

2.2.2 Dual Augmented layer

对于一个特定query和candidate item,我们会通过它们的IDs来创建相应的增强向量(augmented vectors)\(a_u\)和\(a_v\),并将它们与feature embedding vectors进行cancatenate一起来获得增强后的输入向量(augmented input vectors) \(z_u, z_v\)。例如,如果query u具有features “uid=253,city=SH,gender=male,…“,item v具有features “iid=149,price=10,class=cate,…“,我们有:

\[z_u = [e_{253} || e_{sh} || e_{male} || \cdots || a_u] \\ z_v = [e_{149} || e_{p_{10}} || e_{cate} || \cdots || a_v ]\]

其中:

  •   ”表示向量连接操作符(concatenation op)

增强后的输入向量(augmented input vectors) \(z_u\)和\(z_v\)不仅包含了关于当前query和item的信息,也包含了通过\(a_u\)和\(a_v\)的历史正交叉

接着,我们将\(z_u\)和\(z_v\) feed到two towers上(它们由使用ReLU的FC layers组成),以便达到在由 \(a_u\)和\(a_v\)的two towers间的信息交叉。接着,FC layers的output会穿过一个L2 normalization layer来获得关于query \(p_u\)和item \(p_v\)的增强后表示(augmented regresentations)。正式的,two steps的定义如下:

\[\begin{align} h_1 & = ReLU(W_1 z + b), \cdots \\ h_L & = ReLU(W_l h_{L-1} + b_l) \\ p & = L2Norm(h_L) \end{align}\]

…(1)

其中:

  • z表示\(z_u\)和\(z_v\)
  • p表示\(p_u\)和\(p_v\);
  • \(W_l\)和\(b_l\)是第l层的weight matrix和bias vector;

two towers具有相同的结构但具有不同的参数。

再者,为了估计augmented vectors \(a_u\)和\(a_v\),我们设计了一个Adaptive-Mimic Mechanism(AMM),它会集成一个mimic loss和一个stop gradient策略。mimic loss的目标是:使用augmented vector来拟合在其它tower上的所有正交叉(postive interactions),它属于相应的query或item。对于label=1的每个样本,我们定义了mimic loss作为在augmented vector与query/item embedding \(p_u, p_v\)间的MSE

\[loss_u = \frac{1}{T} \sum\limits_{(u,v,y) \in T} [y a_u + (1-y)p_v - p_v]^2 \\ loss_v = \frac{1}{T} \sum\limits_{(u,v,y) \in T} [y a_v + (1-y)p_u - p_u]^2\]

…(2)

其中:

  • T是在training dataset T中的query-item pairs数目
  • \(y \in \lbrace 0, 1 \rbrace\)是label

我们在接下来的子章节中讨论了标记过程(labeling process)。如上所示:

  • 如果label y=1, \(a_v\)和\(a_u\)会靠近query embedding \(p_u\)和item embedding \(p_v\);
  • 如果label \(y=0\), 则loss等于0

如图1所示,augmented vectors被用于一个tower中,query/item embeddings会从另一个生成。也就是说,augmented vectors \(a_u\)和\(a_v\)会总结关于一个query或一个item与另一个tower相匹配的高级信息。因为mimic loss是为了更新\(a_u\)和 \(a_v\),我们应将\(p_u\)和\(p_v\)的值进行freeze。为了这么做,会使用stop gradient策略来阻止\(loss_u\)和\(loss_v\)反向梯度传播到\(p_v\)和\(p_u\)

一旦获得两个augmented vectors \(a_u\)和\(a_v\),他们会将它们看成了两个towers的input features,来建模在two towers间的信息交叉。最终,模型的output是query embedding和item embedding的inner product:

\[s(u, v) = <p_u, p_v>\]

其中,s(u,v)表示由我们的retrieval model提供的score。

2.2.3 Category Alignment

在工界业,items的categories会非常分散(例如:foods、hotels、movies等),每个category的items的数目是非常不均。有了这些不均衡的category数据,two-tower model会对于不同的categories表现不一样,在相对较小数目的items上效果要更差。为了解决该问题,我们在训练阶段提出了一个Category Alignment Loss(CAL),它会将具有较大数目的categories学到的知识迁移到其它categories上。特别的,对于每个batch,具有较大量数据的category的item representation \(p_v\)会被用来形成主要的category set:\(S^{major} = \lbrace p_v^{major}\rbrace\),并于其它categories的\(p_v\)会形成它们各自的category sets:\(S^2, S^3, S^4, \cdots\),我们定义了category alignment loss作为在major category和其它categories features间的二阶统计(协变量)间的距离:

\[loss_{CA} = \sum\limits_{i=2}^n || C(S^{major}) - C(S^i)||_F^2\]

…(3)

其中:

  • \(\|\cdot \|_F^2\)表示平方矩阵Frobenius范数(squared matrix Frobenius norm)
  • n表示categories数目
  • \(C(\cdot)\):表示 covariance matrix

2.3 模型训练

我们会将retrieval问题看成是一个二元分类问题,并采用一个随机负采样框架。特别的,对于在每个postive query-item pair(label=1)中的query,我们会从item corpus中随机采样S个items来创建具有该query的S个negative query-item pairs(label=0),接着添加这些S+1个pairs到training dataset中。对于这些pairs的cross-entropy loss如下:

\[loss_p = - \frac{1}{T} \sum\limits_{(u,v,y) \in T} (y log \sigma(<p_u, p_v>)) + (1-y) log(1 - \sigma(<p_u, p_v>)) \\ T=D \times (S+1)\]

…(4)

其中:

  • D是query-item pairs的postive feedback query-item pairs的数目
  • T是train pairs的总数目
  • \(\sigma(\cdot)\)表示sigmoid function

final loss function的公式如下:

\[loss = loss_p + \lambda_1 loss_u + \lambda_2 loss_v + \lambda_3 loss_{CA}\]

…(5)

其中,\(\lambda_1, \lambda_2, \lambda_3\)是可调参数。

3.实验

在本节中,我们会进行在线、离线实验来调整DAT设计的合理性。

3.1 Datasets

我们会在两个大规模数据集上评估: 一个从meituan的在线系统的日志中抽样得到,另一个来自Amazon[3]。

  • Meituan dataset包含了连续11天的数据,前10天用于训练,第11天用于测试
  • 我们会将前10天出现过的items组合在一起形成item corpus

Amazon Books dataset则相对较小,我们只保持至少被看过5次的items,以及至少看过5个items的用户。我们留下剩下的item作为testing。详细如表1所示。

图片名称

表1

3.2 实验设定

下面的方法被广泛用于工作界,用于与DAT model的对比:

  • WALS:
  • YoutubeDNN:
  • FM:
  • Two-tower Model:
  • MIND:

我们通过使用distributed Tensorflow建模以使用及Faiss来从大规模item pool中检索top-N items。对于所有模型,embedding维度和batch size被固定到32-256维上。所有模型通过Adam optiizer进行训练。为了确保一个公平对比,所有模型的其它超参数,被单独调参以达到最优结果。对于DAT,每个tower的FC layers的数目被固定在3,维度为256、128、32. augmented vectors \(a_u\)和\(a_v\)被设置为 d=32,而\(\lambda_1, \lambda_2\)被设置为0.5,\(\lambda_3\)被设置为1。为了评估多个模型的offline效果,我们使用HitRate@K和MRR metrics,它们被广泛用于工业界的retrieval。其中K被置为50到100,因为retrieval module需要检索一个相当大数目的candidate items来feed给ranking module。由于大量的测试实例,我们采用一个MRR的归一化版本,factor=10.

3.3 离线结果

3.3.1 模型对比

表3所示

3.3.2 Augmented Vectors的维度

在DAT中的augmented vector在建模信息交叉上会扮演着一个主要角色,为了分析维度的影响,我们研究了在两个datasets上对应不同augmented vectors维度的DAT效果。如图2所示,在Meituan的DAT的效果提升会随着dimension的增加而获得提升,而在Amazon上的DAT效果提升只发生在首个位置,接着会下降。这是因为两个datasets的数据量的不同造成的。另外,忽略维度外,它总是能达到更好效果,这对augmented vector的有效性作出了解释。

图片名称

图2 在两个datasets上,在HR@100和MRR上的效果,随着augmented vectors的维度变化

3.4 在线实验

除了离线研究外,我们会通过部署DAT来处理一周的真实流量,系统每天会服务6000w用户。为了做出公平对比,retrieval stage会遵循相同的ranking procedure。在线实验的baseline方法是一个two-tower模型,它是base retrieval算法,会服务online traffic的主要流量。有上百个candidate items通过一个方法进行检索,并feed给ranking stage。图3展示了7个连续天的在线结果。我们的模型效果要胜过baseline一大截,在CTR、GMV上的整体平均提升分别为:4.17%、3.46%。

图片名称

图3 DAT的在线效果和baselines

4.结论

参考

阿里在KDD 2020《Maximizing Cumulative User Engagement in Sequential Recommendation: An Online Optimization Perspective》提出了MDP-SSP。

摘要

为了在序列推荐(sequential recommendation)中最大化累积用户参与度(cumulative user engagement 例如:cumulative clicks),通常需要对潜在的两个冲突目标进行tradeoff,也就是说:追求更高的即时用户参与度(immediate user engagement,例如:click-through rate)和鼓励用户浏览(例如:更多的items曝光)。现存的工作通常分开考虑这两个任务。因而会导致次优的结果。在本paper中,我们从在线最优化的视角,研究了该问题,并提出了一个灵活并且实际的框架来对更长的用户浏览长度和更高的即时用户参与度间进行tradeoff。特别的,我们将:

  • items:看成是actions
  • 用户请求(user requests):看成是states
  • 用户离开(user leaving):看成是一个吸收态(absorbing state)
  • 每个用户的序列行为:看成是一个个性化的马尔可夫决策过程Markov decision process(MDP)

因此,最大化cumulative user engagement的问题可以转化成一个随机最短路径(SSP:stochastic shortest path)问题。同时,有了immediate user engegement和退出概率估计,可以看到:SSP问题可以通过动态规划(DP)进行有效求解。在实际数据集上的实验表明了该方法的有效性。另外,该方法被部署到大型电商平台上,达到了7%的cumulative clicks的提升。

1.介绍

最近些年,sequential recommendation在许多场景在使用。比如:头条,tiktok等。

不同于传统的推荐系统(通常推荐items的数目的固定的),sequential recommendation的最重要特性是:它会迭代式推荐items,直到用户退出(如图1)。这意味着,用户可以浏览无尽的items。我们针对此的目标是:最大化在每个session内的累积用户参与度(cumulative user engagement),比如:累积点击(cumulative clicks)、累积停留时间(cumulative dwell time)等。为了该目的,推荐系统需要同时达成两个目标:

  • a) 吸引用户具有一个更长的session,比如:浏览更多items
  • b) 捕获user interests,比如:达到更高的immediate user engagement

图片名称

图1

在传统的推荐系统中,由于推荐item的数目是固定的,大多数努力都花在提升immediaite user engagement上,它通常通过CTR进行衡量,等。然而,当这样的一个策略被用到sequential recommendation中时,会趋向于产生次优的cumulative user engagement,这是因为浏览items的数目有限。另外,由于它们间的内在冲突,想要同时达到一个更长session和更高immediate user engagement是一个trivial任务(可以通过实验进行演示)。例如,为了达到一个更长的session,它通常需要探索更多样的推荐结果;这会牺牲immediate user engagement。因此,如何对一个一个更长的session和更高的immediate user engagement进行tradeoff变得非常重要,可以达到一个更高的cumulative user engagement,这对于sequential recommendation来说是个非常重要的问题。

通常来说,在sequential recommendation中存在的工作划成两派。派系1尝试利用sequential information(例如:用户的交互行为)来更准地估计user engagement(例如:CTR)的概率【8,11,12,16,22】。例如,通过使用RNN或它的变种【8,11,25】。通过利用sequential行为模式,这些方法关注于更准地捕获用户兴趣,但没有考虑扩展session length,因而会导致次优结果。基于多样结果的观查,趋向于吸引用户浏览更多的items,第二派的方法显式考虑推荐结果多样性【7,9,23】。然而,在多样性和用户浏览长度间的关系是非常经验性的;因而,直接优化多样性并没有充分理由,特别是存在这样的事实:目前不存在被广泛接受的meartures。因此,在sequential recommendation中最优化cumulative user engagement仍是个挑战。

在本paper中,我们从在线最优化(online optimization)的角度,考虑在sequential recommendation中最大化cumulative user engagement的问题,并提出了一个灵活和实际的框架来解决它。特别的,当将不同的items看成是不同的actions时,用户不同的请求看成是states,用户离开看成是一个absorbing state,在MDP框架中的用户浏览过程,是一个最大化cumulative user engagement的问题,可以看成是一个随机最短路径问题(SSP)问题。为了让该框架可行,在每个state(除了absorbing state),我们需要知道对于每个可能action的两个概率,例如:达到user engagement(例如:click)的概率以及转换成absorbing state的概率(这意味着用户退出浏览过程)。很明显,估计user engagement的概率已经被广泛研究,许多已经存在的机器学习方法可以被采用。同时,我们提出了一个multi-instance learning方法来估计将absorbing state的转移概率(例如:用户退出)。有了该框架以及相应的概率被有效估计,SSP问题可以通过动态规划(DP)进行有效求解。在真实datasets中的实验表明了该方法的有效性。

2.相关工作

2.1 Sequential Recommendation

在最近几年,常规推荐方法,例如:RNN models,使用attention的memory network,被广泛应用于Sequential Recommendation场景。为了找到应推荐的next item,RNN models会通过使用历史序列信息捕获用户的sequence模式。可以训练一个memory network并引入attention机制来加权某些sequential elements。【11,22】表明:这些方法可以极大胜过经典方法(它们会忽略sequential信息)。本质上,他们仍会估计next item的immediate user engagement(),不会考虑上quit probability。因此,进一步的提升必须最大化cumulative user engagement。

2.2 MDP and SSP

随机最短路径(SSP)是一个关于经典最短路径问题的随机版本:对于一个graph的每个node,我们必须选择一个关于在后继节点集合上的概率分布,以便达到一个特定目标节点具有最小的期望开销【4,21】。SSP问题通常是一个MDP问题,具有以下假设:存在一个absorbing state和一个合适的策略。一些动态规划的变种可以被用来求解该问题。RTDP是一个算法,用来求解non-deterministic planning问题,它可以看成是一个启发式搜索或者一个动态规划过程。Labeled RTDP是RTDP的一个变种,关键思想是:如果它的后继节点已经收全省,将一个state标记为sloved,sloved states不会进一步更新。

2.3 Multi-Instance Learning

在MIL任务中,每个样本可以通过一个实例包进行表示【10】。如果它包含了至少一个正实例,则该包(bag)是正向(positive);否则为负。根据[1] 该方法可以分成三个范式:

  • instance-space paradigm
  • bag-space paradigm
  • embedded-space paradigm

对于我们的sequential recommendation设定,建模转移概率与instance-space paradigm一致。在instance-level MIL任务上,一些SVM-based的方法被提出来。MI-SVM是一个SVM-like MIL方法的变种,主要思想是:在每次迭代中,它会强制远离决策超平面(decision hyperplane,它具有最大间隔)的instance为postive。

3.问题声明

我们将每个浏览过程建模成一个个性化的MDP过程,它包括:一个absorbing state,我们将最大化cumulative user engagement的问题看成是一个SSP问题。

3.1 个性化MDP模型

MDP包含了4个元素的tuple (S, A, R, P):

  • State space S: \(S = \lbrace s_1, s_2, s_3, \cdots, s_t, \cdots, s_T, s_A \rbrace\)。这里我们将推荐序列中的每个step看成是一个单独的state,并定义\(s_t = t\),其中t是step index。由于每个step中只有一个item会被展示给用户,t也是浏览items的顺序数(sequence number)。T是浏览session length的上限,它对于推荐场景来说是足够大的。\(s_A\)被定义成absorb state,意味着用户离开。
  • Action space A:\(A = \lbrace 1,2,3,\cdots, K\rbrace\)。Action space A包含了所有candidates,它可以在当前session中被推荐
  • Reward R:\(R \in R^{(T+1) \times K}\)。将S中的state表示成s,将在A中的action表示a,那么\(R_{s,a}\)表示在state s上采用action a的reward。特别的,\(R_{s_t, a_t}\)是在第t个step的immediate user engagement(例如:CTR)。
  • 转移概率(Transition probability) P: \(P \in R^{(T+1) \times K \times (T+1)}\),并且\(P_{s,a,s'} \in [0, 1]\)是在采用action a后,从state s转移到state \(s'\)的概率。

由于在S中的states是顺序的,我们在P上引入一个regulation,它来自所有states(除了\(s_T, s_A\)),用户可以转移到下一个state(继续浏览),或者跳到absorbing state(退出)。另外,从最后的浏览step来看,用户只会进到absorbing state。正式的,我们有:

\[\begin{cases} P_{s_i, a_i, s_{i+1}} + P_{s_i, a_i, s_A} = 1, i < T \\[2ex] P_{s_T, a_t, s_A} = 1, i=T \end{cases}\]

…(1)

该过程的有限状态机如图2所示。再者,强调的是,提出的MDP模型是个性化的,我们需要为每个online session来infer一个新的MDP模型。生成MDP models的一个有效算法会在后面呈现。

图片名称

图2

3.2 SSP问题

基于MDP模型,在sequantial recommendation中的累积回报(cumulative rewards)可以公式化为一个SSP问题:给定一个MDP,目标是寻找一个policy \(\pi^*: S \rightarrow A\),它可以帮助我们规划一个具有最大累计回报的path:

\[\pi^* = argmax_{\pi} E(\sum\limits_{t=1}^{\tau} R_{s_t, a_t})\]

…(2)

其中,\(\tau\)是实际浏览长度。\(\tau\)的分布可以被导出:

\[P(\tau \geq t) = \prod_{i < t} P_{s_i, a_i, s_{i+1}}\]

…(3)

因而,等式(2)的expected cumulative reward可以被表示为:

\[E(\sum\limits_{t=1}^{\tau} R_{s_t, a_t}) = \sum_{t \leq T} R_{s_t, a_t} P(\tau \geq t)\]

…(4)

最终,通过将等式(1)引入到等式(4)中,我们有:

\[E(\sum\limits_{t=1}^{\tau} R_{s_t, a_t}) = \sum\limits_{t=1}^T R_{s_t, a_t} \times \prod\limits_{i < t} (1 - P_{s_i, a_i, s_A})\]

…(5)

3.2.1 Remark 1

最大化等式(5)的目标是共同最优化以下两个点

  • 1)用户浏览长度(\(\tau\))
  • 2)immediate user engagement (例如:\(R_{s_t, a_t}\))

根据该公式,我们应首先估计等式(5)中的\(R_{s_t, a_t}\)和\(P_{s_i, a_i, s_A}\),它本质上会生成一个个性化的MDP模型。接着我们通过最大化等式(5)来最优化一个policy,它可以用来为相应用户规划一个推荐序列\([a_1, \cdots, a_T]\)(或者称为 在SSP中的Path)。

4.提出的方法

为了最大化expected cumulative rewards,我们会从personlized MDP model中学习一个MDP generator,它可以在线生成,接着使用personized MDP模型来规划推荐序列。因此,提出的MDP-SSP框架包含了两部分:一个离线MDP Generator和一个在线SSP Planer,它如图3所示。

图片名称

图3 MDP-SSP框架

4.1.1 MDP Generator

它被设计成用来为每个online session生成personalized MDPs。在该部分中存在两个子模块:Model Worker和Calibration Worker。Model Worker被用来从离线历史数据中生成一个模型,目标是提供个性化MDP的必要元素。特别的,等式(5)中需要的reward function \(R_{s_t, a_t}\)和退出概率(quit probability) \(P_{s_i, a_i, s_A}\)。这里:

  • \(R_{s_t, a_t}\)可以是一个immediate user engagement,例如:immediate click,因而,Model Worker包含了相应的estimation model,例如:click model。
  • \(P_{s_i, a_i, s_A}\)与一个quit model相关,它决定着浏览session长度,是一个关于Model Worker的重要组件。

再者,由于SSP planing的效率依赖于生成的MDP model的accuracy,我们引入一个额外的Calibration Worker来对从学到的模型中获得的ranking scores进行calibrate到real value【14, 18, 20】。

4.1.2 SSP Planer

它会规划一个最短路径(具有最大cumulative rewards),它包含了顺序的推荐items。它也包含了两个submodules:MDP Producer和SSP Solver。基于通过离线MDP Generator算法学到的该generator,MDP Producer 会为用户的当前session生成一个个性化的MDP。接着SSP Solver会计算一个基于个性化MDP的最优路径给该用户。

4.2 Offline MDP Generator算法

在本节中,我们描述了一个离线算法来学习reward function \(R_{s_t, a_t}\)以及quit probability \(P_{s_i, a_i, s_A}\),它对生成online个性化MDPs是必需的。我们将看到建模\(P_{s_i, a_i, s_A}\)的问题会更严格和困难。实际上,我们获得的历史数据通常是一个item set,它包含了该用户看到过的items,直到session结束(它会做出用户退出或者继续浏览)。然而,很难知道item set中的哪个item是准确的主因。为了估计每个item的退出概率,我们会采用MIL框架,通过采用item set作为bag,将item作为instance。详细的,如果该item set会造成一个quit,那么该用户会不喜欢在该set中的所有items;如果该item set会造成一个持续的浏览,那么在item set中至少有一个item会被该用户接受,它与MIL setting是一致的

4.2.1 Remark 2

标准的MIL猜想声明:所有negative bags只包含negative instances,positive bags包含至少一个postive instance。

通过使用一些经典的MIL技术,我们可以获得如下user quit model。

4.2.2 User Quit Model

基于用户的浏览历史,我们可以获得包含了bags \(B_i\)的序列,你可以验证在浏览session中只有最后的bag不会让users继续浏览。我们假设:该bag会继续保持该用户是一个postive bag,写成\(B_i^+\),并且最后一个是negative bag,写成“\(B_{leave}^-\)”,因此,一个浏览session 为:\(B=(B_1^+, \cdots, B_i^+, \cdots, B_{leave}^-)\)。我们的任务是构建一个模型来预测每个new instance \(B_{*,j}\)的quit probability。然而,存在一个gap,我们的training labels是bag level,而predictions是instance level。为了处理该问题,我们引入MI-SVM【2】来帮助我们训练一个instance level model,它具有bag level data,据我们所知,它对推荐来说是一个MIL的新应用。quit model的训练过程如算法1所示。

4.2.3 Model Calibration

在工业界推荐系统中,由click model和quit model提供的ranking scores,并不等于MDPs中的reward \(R_{s_t, a_t}\)以及转移概率\(P_{s_i, a_i, s_A}\)。因而,它必须对模型的output进行calibrate到真实概率上。对该话题感兴趣的读者可以去【14,18,20】进行详细阅读。在本paper中,我们将predicted score表示成\(f(B_{i,j})\),真实概率值可以如下进行表示:

\[P(y=1 | B_{i,j}) = \frac{1}{1 + exp(A * f(B_{i,j}) + B)}\]

…(6)

其中,A和B是两个scalar参数,可以从历史数据中学习到.

4.3 Online SSP Planner算法

基于最近子节中提到的MDP Generator,我们会正式介绍SSP Planer,它包含了MDP Producer和SSP Slover。

4.3.1 MDP Producer

当一个新的session来的时候,MDP Producer接受来自server的关于user和items的在线信息,接着feeds它们到从MDP Generator中genreators中。接着,可以获得reward和转移概率并实时生成一个个性化MDP。值得注意的是,关于以下的信息:用户已经浏览了多少items,有多少item的类目已经被展示给用户,该用户点击了多少次等,都应该被考虑。这些交互features会扮演着重要的角色,造成用户继续浏览或退出。

4.3.2 SSP Solver

从MDP Producer中,我们可以为当前session获得一个个性化MDP,下一个工作是,寻找一个路径\([a_1, \cdots, a_T]\),它具有最大cumulative rewards。除了absorbing state外,相应的MDP具有T个states,接着最优的state value function可以使用在T-steps交互的动态规划进行求解。接着,很容易验证,我们特定设计的MDP的transition matrix会保持一个上三角结构,如等式(7)所示。

(7)

基于特殊的结构化转移矩阵,很容易发现:当我们更新当前的state value function,后者的state value function不会变化。因此,向后归纳(backwards induction)会被采纳。我们可以从absorbing state开始,迭代式获取最优的policy以及相关的最优state value function。我们正式地将该过程归纳如下:

\[V^*(s_A) = 0\]

…(8)

再者,当i = T时,我们有:

\[\pi^*(s_T) = argmax_{a_T} \lbrace R_{s_T, a_T} + P_{s_T, a_T, s_A} V^*(s_A) \rbrace \\ = argmax_{a_T} \lbrace R_{s_T, a_T} \rbrace, \\ V^*(s_T) = max_{a_T} \lbrace R_{s_T, a_T} \rbrace\]

…(8)(9)(10)

当 i < T时,我们有:

\[\pi^*(s_t) = argmax_{a_t} \lbrace R_{s_t, a_t} + P_{s_t, a_t, s_{t+1}} V^*(s_{t+1}) + P_{s_t, a_t, s_A} V^*(s_A)\ rbrace \\ = argmax_{a_t} \lbrace R_{s_t, a_t} + P_{s_t,a_t,s_{t+1}} V^*(s_{t+1})\rbrace \\ V^*(s_t) = max_{a_t} \lbrace R_{s_t, a_t} + P_{s_t,a_t,s_{t+1}} V^*(s_{t+1}) \rbrace\]

…(11)(12)

基于等式(8)(12),我们可以计算一个最优的路径 \([a_1, \cdots, a_T]\)。最优化过程如算法2所示。我们可以看到:整个planing过程相当简单和清晰,它有利于提出方法的在线应用。特别的,假设存在K个候选,SSP的复杂度为O(TK)个。

5.实验

我们在一个大型电商平台上开展实验。首先分析了数据特性:表明使用SSP的必要性,接着在离线和在线评估SSP。

5.1 数据集

Dataset 1: MDP Generator的数据集。它包含了15天关于user item交互的历史数据,基于此,我们可以学习模型来预测ctr以及任意user item pair的退出概率(quit probability)

Dataset 2: 该dataset用于SSP offline evaluation。我们收集活跃用户以及它们相应的浏览sessions,并丢弃掉那么不活跃用户或过度活跃用户。根据规则:是否浏览session length在50个items到100个items间进行采样。最终,我们得到1000个users以及相应的浏览sessions。浏览sessions的平均长度是57.

Dataset 3: 该dataset用于SSP online evaluation。它实际上是线上环境,每天具有1000w用户和1亿items。

许多策略(包括SSP)将被部署,会对Dataset 2和Dataset 3中的每个用户进行rerank个性化的候选items,来验证它们在最大化cumulative user engagement上的效果。在那之前,我们应首先验证:该datasets会与如下特性一致:

  • 歧视(Discrimination): 不同的items会提供不同的quit概率,他们会具有一个明显的歧视。否则,当做出推荐时没必要考虑quit概率。
  • 弱相关(Weakly related): 对于一个用户来说,一个item的退出概率会与CTR弱相关。否则SSP和Greedy会是相同的。

5.2 Evaluation Measures

在该实验中,我们会考虑cumulative clicks作为cumulative user engagement。更者,我们将cumulative clicks命名为IPV,这意味着Item Page View,常用于工业界。浏览深度(Browse length:BL)也是一个measurement,因为IPV可以通过让用户浏览更多的items来进行最大化。

在离线评估中,假设:推荐的sequence length是T,根据等式(1)-(5),我们有:

\[IPV = \sum\limits_{t=1}^T R_{s_t, a_t} \times \prod\limits_{i<t} (1 - P_{s_i, a_i, s_A}) \\ BL = \sum\limits_{t=1}^T \prod_{i < t} (1 - P_{s_i, a_i, A})\]

…(13)(14)

再者,推荐序列的CTR的定义如下:

\[CTR = \frac{IPV}{BL}\]

…(15)

在每个evaluation中,IPV可以根据实际在线情况进行统计,根据:

\[IPV = \sum\limits_{t=1}^{\tau} c_t\]

…(16)

其中:\(c_t \in \lbrace 0, 1\rbrace\)表示在t step上的click行为,而\(\tau\)是浏览深度,例如:\(BL=\tau\)。

5.3 对比策略

  • Greedy:在我们的方法与传统方法间的关键不同点是:我们会考虑user的退出概率,并计划着一个可以直接最大化IPV的path,而大多数其它方法尝试尽可能准地估计每个step的reward \(R_{s_t, a_t}\)。然而,当计划着根据\(R_{s_t, a_t}\)贪婪地对items进行排序时,会忽略掉\(P_{s_i, a_i, s_A}\)对于IPV来说很关键。Greedy是第一个对比策略,它的quit概率\(P_{s_i, a_i, s_A}\)不涉及。假设:存在K个侯选,planning path的长度为T,则复杂度是\(O(TK)\)。
  • Beam Search:这是一个search算法,可以对效果(performance)和消耗(consumption)进行平衡。它的目的是:将相对最优的路径以序列方式解码。它会被选择作为对比策略,因为退出概率\(P_{s_i, a_i, s_A}\)会被涉及。我们会根据等式(13)计算beam search score,因此,Beam Search会直接应用到这来最优化IPV。假设:存在K个候选,planning path的长度是T,复杂度是O(STK),其中S是beam size。

5.4 MDP Generator Learning

我们首先会描述MDP Generator learning如第5.4节所示。

5.4.1 Model Learning

在模型学习中,我们会充分利用user属性和item属性。再者,我们会添加interactive features,例如:该item的类目已经被展示给该user多少次、被给user点击多少次,它直觉上对于用户是否做继续浏览动作扮演着一个很重要的角色。AUC,是一个频繁使用的metric,被用来measure 学到的模型,结果如表1所示。

这里我们简短声明下:关于Quit Model的测试方法。由于我们确实不知道哪个item使得用户做出继续浏览行为,因而AUC不能在instance level被直接计算。在bag level中使用instance prediction来计算AUC更合理,因为我们可以假设:如果该bag包含了至少一个postive instance,该bag是positive的;如果所有instance是negative的,则该bag是negative的。

再者,我们会在Quit Model上开展一个对比实验来表明:采用MIL的必要性。由于bag labels是已知的,最直觉的想法是:使用bag的label来表示 instance的label。基于此想法,我们获取了一个\(QuitModel_{no\_MIL}\),并且AUC也在bag level进行计算。结果如表2所示,从中我们看到,采用MIL对于Quit Model learning来说可以给出一个提升。

5.4.2 Model Calibration

Calibration尝试将从models的ranking scores映mtdf到real value中。这里非常重要,error会累积,见等式(11)(12)。我们会使用普拉特扩展(platt scaling),并采用RMSE(Root Mean Square Error)作为measurement。结果如表3所示。

从表3中,可以看到,在Calibration后可以达到极大提升,接着real value和calibrated value的曲线在图4和图5中。横坐标是通过predicted scores进行排序的items,纵坐标是calibrated score和real score。real score可以从items bin中获得。

图片名称

图4

图片名称

图5

5.4.3 Discrimination

在dataset 2中,对于每个user我们会从MDP Generator(,例如:items的用户浏览session)中获得相应候选的quit probability。接着,可以获取一个user的quit probability list \(l_u = (q_1, \cdots, q_i, \cdots, q_n)\),其中\(q_i\)是当推荐item i给user u的quit probability。每个list会计算标准差(STD)和MEAN,接着dataset的统计数据如表4所示。从表中,它可以表明:对每个user,不同的candidates会做出不同的贡献来保持用户浏览(user browsing),接着他们具有一个极大的discrimination。

表4

5.4.4 弱相关

我们进一步研究:在quit probability和immediate user engagement(例如:每个step的reward)间的相关性。对于每个user,我们会获得两个item lists \(l_{u1}\)和\(l_{u2}\),它具有长度L=20. 其中,\(l_{u1}\)和\(l_{u2}\)会根据\(R_{s_t, a_t}\)以及\((1- P_{s_i, a_i, s_A}\)分别被贪婪生成。如果\((1- P_{s_i, a_i, s_A}\)和\(R_{s_t, a_t}\)完全正相关,\(l_{u1}\)和\(l_{u2}\)会是相同的,它会导致SSP和Greedy的equality。我们会使用Jaccard Index和NDCG来measure \(l_{u1}\)和\(l_{u2}\)间的相似度,dataset的平均结果如表5所示。从表中可知,我们会发现:在dataset中,quit probability和immediate user engagement会被弱相关。

表5

5.5 SSP Planner: 离线评估

5.5.1 SSP Plan。

我们会根据上面的每个策略,计算一个具有T step的序列list:\(L_{T} = (a_1, a_2, \cdots, a_T)\)。\(L_T\)的收益可以根据等式(13)-(15)进行计算。

详情如表6所示,我们可以发现:

  • Greedy会达到最佳的CTR,而SSP会达到最佳的IPV和BL。这会展示我们的思想:IPV可以通过使得用户浏览更多内容来进行提升。SSP不会最优化每一step的效率(effectiveness),它的目的是提升累积点击(cumulative clicks)的总数。
  • step数越长,IPV和BL的优化越大。见:T=20和T=50,当T乘以2.5时,从20到50,IPV和BL两者的提升会超过2.5倍(1347.57 vs. 392.97, 4045.47 vs. 1066.08)。这会产生与我们期望一致的结果:计算越多的step会导致在users中的quit probability越大。

表6

5.5.2 SSP Plan具有Duplicate Removal

在一些实践场景中,items会禁止重复展示。我们需要在三个策略上做出一个折中:

  • Greedy:在前t steps中选中的items会被移除出step t+1中的candidate set。
  • Beam Search:在前t steps中选中的items会在第step t+1中的candidate set中移除
  • SSP:当planing时,我们会根据每步\(V^*(s_t)\)的上界,从step T到step 1进行计划(plan),并在每一step保持最优的T个items作为step的候选。当进行选择时,我们会从step 1到step N做出选择。特别的,我们会选择最优的一个item并从剩余step的候选中同步移除它

从表7的详细结果看出,我们可以发现:尽管折中会伤害理想效果,但SSP仍要胜过Greedy和Beam Search。

表7

5.5.3 SSP plan with Noise

由于存在一些在offline environment和online enviroment间的一个gap,它会做出predicted ctr以及quit probability 在离线不会绝对等价于real value online,我们会在部署MDP-SSP online之前,引入一个noise 实验的集合。

实验会以如下方式开展:我们会在CTR上添加随机噪声(random noises),通过离线环境给出quit probability。假设:noise \(e \sim U(a, b)\),其中U(a, b)是一个均匀分布,我们会定义 \(a = -0.02m, b = 0.02m\),其中m是一个从0到10的整数范围。我们会根据具有noise的value进行计划,并计算具有real value的最终收益。结果如图6所示,水平轴表示noise,例如:U(a, b)中的b,竖直轴是revenue,例如:cumulative clicks。

图6

从图6中,我们可以发现,尽管SSP会对noise更敏感,它的效果会好于Greedy和Beam Search。它表明:考虑上quit probability会在IPV问题上扮演着一个十分重要的角色。

SSP Planner:在线评估

对于在线评估,我们会在真实电商APP中部署SSP和Greedy策略。对于进一步对比,我们会做一个实验,它具有quit model,它不会引入MIL,该策略命名为\(SSP_{no \_ MIL}\)。三种策略会在线运行相同的流量各一周,表8展示了结果:

  • 对于cumulative clicks,quit brobability在sequential recommendations中不会被忽略,详见SSP和Greedy
  • quit probability的accuracy会直接影响着结果,详见:SSP和\(SSP_{no\_MIL}\)

表8

6.结论

参考