Momenta公司在《Squeeze-and-Excitation Networks》提出了一种SENet的结构。我们来看下paper介绍:

1.介绍

CNNs已经被证明在解决许多视觉任务中是有用的模型。在CNN网络中的每个conv layer上,所使用的filters的集合可以用来表示:沿着input channels—的相邻空间连接模式(neighbourhood spatial connectivity patterns)——会在局部感受野(local receptive fields)内将空间信息channel-wise信息融合(fusing)在一起。通过使用非线性激活函数和下采样操作符,与一系列conv layers进行交叉,CNNs可以生成图片表示(image representations),同时能捕获层级模式并获得global theoretical receptive fields。计算机视觉研究的一个中心主题是:关于许多强大的representations探索,只会对于一个给定任务,通过捕获一张图片的最显著属性来提升效果。对于视觉任务广泛使用的模型族来说,新的NN结构设计的发展,是一个前沿领域。最近研究表明,由CNNs生成的representations可以通过将学习机制(learning mechanisms)集合到网络中的方式来得到增强,可以捕获features间的空间相关性。这样的研究有:Inception家族,它会包含multi-scale过程到网络模块中,来达到效果提升。最近一些研究工作则会更好地建模空间依赖,并将spatial attention包含到网络结构中。

在本paper中,我们研究了【network设计-—channels间的关系】的不同方面。我们会引入一个新的结构单元,术语称为“Squeeze-andExcitation (SE) block”,它会通过显式建模convolutional features间的相互依赖,生成的representations会提升quality。为了这个结果,我们提出了一个机制,它允许该网络执行特征再校准(feature recalibration),尽管它可以学习使用全局信息来选择性地增强有信息量的features,并消除更少信息量的features。

SE building block的结构如图1所示。对于任意给定的transformation \(F_{tr}\),会将input X映射到feature maps U上,其中:\(U \in R^{H \times W \times C}\),例如:一个convolution,我们可以构建一个相应的SE block来执行feature recalibration

  • squeeze operation(\(F_sq(\cdot)\)):首先features U会通过一个squeeze operation进行传递,它会通过将沿着它们的空间维度(H X W)的feature maps进行聚合来生成一个channel descriptor。该descriptor的函数会生成一个关于channel-wise feature responses的全局分布,他允许来自该网络的global receptive field的信息通过所有它的layers来被使用。
  • excitation operation(\(F_ex(\cdot,W)\)):接着跟一个excitation operation来进行聚合,它会采用一个简单的self-gating机制的形式,会将该embedding作为input,并生成一个关于per-channel modulation weights的集合。该weights会被应用到feature maps U来生成SE block的output,它可以被直接feed到该network的后续layers上。

图片名称

图1 一个Squeeze-and-Excitation block

通过简单地将一个关于SE blocks的collection进行stacking,可以构造一个SE network(SENet)。另外,在网络结构的深度范围内,这些SE blocks可以被用来作为一个对于original block的简易替换(drop-in replacement)。而该building block的模板是通用的,它会在不同的depths上进行执行,而非贯穿该network。在更早的layers中,它会以一个分类不可知(class-agnostic)的方式来激发有信息量的features,增强共享的low-level representations。在更后的layers中,SE blocks会变得更专业,来以一个高度class-secific的方式响应不同的inputs。因此,通过SE blocks进行feature recalibration的好处是:效果可以通过network进行累积

新的CNN结构的设计和开发是一个非常难的工程任务,通常需要许多新超参数以及layer配置的选择。相反的,SE block的结构非常简单,可以直接用在state-of-the-art的结构中,通过将组件替换成SE部分即可,其中:效果可以被有效增强。SE blocks的计算非常轻量,只会在模型复杂性和计算开销上引入一个轻微的增加。

为了提供证据,我们开发了许多SENets,并在ImageNet dataset上进行评估。我们的方法在ILSVRC 2017分类比赛中得到第一。在top-5 error上达到了2.251%的提升。

2.相关工作

3. SQUEEZE-AND-EXCITATION BLOCKS

一个Squeeze-and-Excitation block是一个计算单元,它可以在一个transformation \(F_{tr}\)上构建,该转换会将一个input \(X \in R^{H' \times W' \times C'}\)映射成feature maps \(U \in R^{H \times W \times C}\)。接着,我们将\(F_{tr}\)看成是一个convolutional operator,并使用\(V = [v_1, v_2, \cdots, v_C]\)来表示关于filter kernals的learned set,其中:\(v_c\)指的是:第c层filter的参数。我们接着将outputs写为 \(U = [u_1, u_2, \cdots, u_C]\),其中:

\[u_c = v_c * X = \sum\limits_{s=1}^{C'} v_c^s * x^s\]

…(1)

其中:

  • \(*\)表示convolution
  • \(v_c = [v_c^1, v_c^2, \cdots, v_c^{C'}], X = [x^1, x^2, \cdots, x^{C'}], u_c \in R^{H \times W}\)。
  • \(v_c^s\)是一个2D spatial kernel,表示\(v_c\)的一个单通道(single channel),扮演着X的相应channel。

为了简化该概念,bias项会被忽略。由于该output会通过一个关于所有channels的总结来生成,channel dependencies会隐式地嵌入在\(v_c\)中,但会与由filters捕获的local spatial correlation牵连在一起。通过convolution建模的channel relationships,天然就是隐式(implicit)和局部的(local),除了在top-most layers上。我们期望,convolutional features的学习可以通过显式建模channel间的相互依赖性来进行增强,因此,该network可以增加对informative features的感知,它们可以通后续的转换所利用。因此,我们希望在两个steps中提供访问全局信息和对filter responses进行recalibrate:squeeze和excitation,在它们被feed到下一transformation前。SE block的结构如图1所示。

3.1 Squeeze: Global Information Embedding

为了解决利用channel dependencies的问题,我们首先考虑在output features中每个channel的信号。每个learned filters会与一个local receptive field进行操作,相应的,该transformation output U的每个unit不能利用在该区域外的contextual information。

为了消除该问题,我们提出将全局空间信息(global spatial information)进行压缩(squeeze)到一个channel descriptor中。通过使用global average pooling来生成channel-wise statistics的方式来达到。正式的,一个statistic \(z \in R^C\)通过对U在它的空间维度\(H \times W\)上进行收缩(shrinking)来生成,以使z的第c个element可以被计算:

\[z_c = F_{sq}(u_c) = \frac{1}{H \times W} \sum\limits_{i=1}^H \sum\limits_{j=1}^W u_c(i, j)\]

…(2)

讨论:transformation U的output可以被解释成一个关于local descriptors的集合,它的statistics对于整个image来说表达力强。利用这样的信息在之前的feature engineering工作中很盛行。我们选择最简单的聚合技术,global average pooling,注意:最复杂的策略在这也可以使用。

3.2 Excitation:自适应再校准(Adaptive Recalibration)

为了利用在squeeze操作中聚合的信息,我们会接着使用一个二级操作符(second operation),它的目标是完全捕获channel-wise dependencies。为了满足该目标,该函数必须满足两个准则:首先,它必须是灵活的(特别的,它必须能学习一个在channels间的非线性交叉);第二,它必须学习一个非相互排斥(non-mutually-exclusive)关系,由于我们会确保:多个channels会被允许强调(非而强制一个one-hot activation)。为了满足这些准则,我们选择采用一个使用sigmoid activation的简单gating机制:

\[s = F_{ex}(z, W) = \sigma(g(z, W)) = \sigma(W_2 \sigma(W_1 z))\]

…(3)

其中,\(\sigma\)指的是ReLU function,\(W_1 \in R^{\frac{C}{r} \times C}\)和\(W_2 \in R^{C \times \frac{C}{r}}\)。为了限制模型复杂度,以及aid generalisation,我们会对gating机制进行参数化,通过在非线性周围构建一个具有两层FC layers的瓶颈来达到:例如,一个具有reduction ratio为r的降维层(dimensionality-reduction layer)(该参数选择可以在第6.1节中讨论)、一个ReLU、接着一个增维层(dimensionality-increasing layer),它会返回transformation output U的channel维度。该block的最终output可以通过使用activations s,并对U进行rescaling来获得:

\[\bar{x}_c = F_{scale}(u_c, s_c) = s_c u_c\]

…(4)

其中,\(\bar{X} = [\bar{x}_1, \bar{x}_2, \cdots, \bar{x}_C]\)以及\(F_{scale}(u_c, s_c)\)指的是在标量\(s_c\)和feature map \(u_c \in R^{H \times W}\)间的channel-wise乘法。

讨论:excitation operator会将input-specific descriptor z映射到一个关于channel weights的set上。就这一点而言,SE blocks内在会基于input上引入动态性(dynamics),它会被看成是在channels上的一个self-attention function,它的关系会受限于convolutional filters所响应的local receptive field。

3.3 实例化

SE block可以被集成到如VGGNet的标准结构中,在每个convolution的非线性之后通过插方式实现。再者,SE block的灵活性意味着,它可以被直接应用到在标准卷积之外的转换上。为了说明这一点,我们开发了SENets,通过将SE blocks包含到许多更复杂结构的实例中,来描述。

我们首先考虑,对于Inception networks上SE blocks的构建。这里,我们简单地将transformation \(F_{tr}\)看成是一整个Inception module(如图2所示),并且通过对于在结构上的每个module做出这种变更,我们可以获得一个SE-Inception network。SE blocks可以被直接与residual networks一起使用(图3描述了SE-ResNet module的schema)。这里,SE block transformation \(F_{tr}\)被看成是一个residual module的非正定分支(non-identity branch)。Squeeze和Excitation会在使用identity branch进行归纳前同时起作用。更进一步,使用ResNeXt、Inception-ResNet、MobileNet和ShuffleNet集成SE blocks的变种,可以通过遵循相应的schemes来构建。对于SENet结构的具体示例,如表1有给出:SE-ResNet-50、SE-ResNeXt-50的详细描述。

图片名称

图2

图片名称

图3

SE block的灵活性的一个结果是,有许多变种方式,可以很容易集成到其它结构中。因此,为了对所使用的集成SE blocks到网络结构中的策略评估敏感性,我们可以提供消融实验(ablation experiments)来探索关于block的不同设计。

4.模型和计算复杂度

对于提出的SE block设计,它必须提供一个在效果和模型复杂度间的较好tradeoff。为了说明与module相关的计算开销,我们会考虑在ResNet-50和SE-ResNet-50间的一个对比作为示例。ResNet-50在单个forward pass上对于一个224 x 224 pixel input image上需要~3.86 GFLOPs。每个SE block会在squeeze阶段利用一个global average pooling操作符,而在excitation阶段会使用两个小的FC layers,接着跟一个昂贵的channel-wise scaling操作。在聚合时,当设置reduction ratio r到16时,SE-ResNet-50需要~3.87 GFLOPs,对比起原始ResNet50,对应有一个0.26%的相对提升。除了增加轻微的额外开销外,SE-ResNet-50的accuracy要超过ResNet50,可以达到一个更深的ResNet-101网络的效果,而它需要~7.58 GFLOPs(表2)。

在实际项中,通过ResNet-50的单个pass forwards和backwards会花费190ms…

阿里在《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.结论

参考