tx在《Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations》提出了PLE模型:

1.介绍

个性化推荐在在线应用中扮演着重要角色。RS需要包含多种用户反馈来建模用户兴趣,并最大化用户的engagement和satisfaction。然而,由于存在高维问题,用户满意度通常很难通过一个learning算法来直接解决。同时,用户satisfaction和engagement具有许多可以直接学习的主要因素,比如:点击、完成、分享、收藏、评论的概率(click likelihood)。因此,有许多尝试使用MTL多任务学习到RS中来同时建模用户的satisfaction或engagement。实际上,这在工业应用中是主流。

MTL会在单个模型中同时学习多个任务,通过在任务间共享信息来高效地提升学习。然而,在现实推荐系统中,任务经常松散相关或者有冲突,这会导致效果退化(performance deterioration),称为“negative transfer”。在一个真实的大规模视频推荐系统和真实数据集上,我们通过大量实验发现,当任务相关性很复杂时并且有样本依赖时(例如:对比起单任务模型,多个任务不能同时提升,这被称为“跷跷板效应(seesaw phenomenon )”),已存在的MTL模型通常可以提升一些任务,但会牺牲其它任务的效果。

之前的工作主要解决negative transfer,但忽略了seesaw phenomenon,例如:cross-stitch network[16]和sluice network [18]提出,学习静态线性组合 (static linear combinations)来对不同任务的表示进行融合(fuse),这不能捕获样本依赖性(sample dependent)。MMOE[13]应用gating networks来对基于input的bottom experts进行组合来处理任务差异,但忽略了在experts间的差异和交叉。因此,设计一个更强大和高效的模型来处理复杂相关性,并消除seesaw效应很关键。

为了达到该目标,我们提出了一个新的MTL模型,称为渐近层抽取 Progressive Layered Extraction (PLE),它可以很好地利用在shared network设计上的先验知识来捕获复杂的任务相关性(task correlations)。对比起在MMOE中的粗糙共享参数,PLE会显式地将shared experts和task-specific experts进行分离来缓和有害参数干扰(harmful)。再者,PLE会引入multi-level experts和gating networks,并应用progressive separation routing来从lower-layer expert抽取更深的knowledge,并在更高levels上逐渐将task-specific parameters给分离出来。

为了评估PLE的效果,我们在真实工业界推荐dataset以及主要的公开数据集上(包括census-income[5]、synthetic data[13]、以及Ali-CCP)开展了大量实验。实验结果表明:在所有数据集上,PLE的效果要好于state-of-the-art MTL模型,并展示了一致提升。另外,在tencent的大规模视频推荐系统中在线指标的极大提升,表明PLE的优点。

主要的贡献如下:

  • 在大规模视频推荐系统和公开数据集上,通过大量实验发现,一个有意思的seesaw效应已经被观察到:SOTA的MTL模型经常会提升某些任务,但同时牺牲另一些任务的效果,并不能胜过单任务模型(single-task model),因为存在复杂的内在相关性。
  • 使用新的shared learning架构的PLE模型会提升shared learning效率,并能从joint representation learning和information routing的角度,能解决seesaw现象以及negative transfer。除了推荐应用外,PLE可以灵活地应用于许多场景
  • 我们在工业和公开datasets上的大量离线实验评估了PLE的效果。在tencent的大内容推荐平台上的在线A/B test结果也显示了,PLE在SOTA的MTL模型上能有极大提升,在view-count上有2.23%的增长,在watch-time上有1.84%的提升,它可以生成极大的商业收益。PEL已经成功部署到推荐系统中,可以应用到许多其它推荐应用上。

2.相关工作

在推荐系统中,高效的多任务学习模型、以及MTL模型的应用是两个研究领域。在本节中,我们简单讨论在这两个领域的相关工作。

2.1 MTL模型

图片名称

图1 MTL模型的network routing。蓝色四边形和圆形分别表示shared layers和gating network,粉色和绿色四边形表示task-specific layers,粉色和绿色圆形表示不同任务的task-specific gating networks

图1 a)中展示的Hard parameter sharing【2】是最基础和常用的MTL结构,但经常存在negative transfer,因为参数会在多个任务间直接共享而存在任务冲突(task conflicts)。为了解决任务冲突,图 1f)的cross-stitch network[16]和图1g)的sluice network[18]同时提出学习对来自不同的tasks的representations进行选择性的线性组合加权。然而,在这些模型中,representations是通过对所有样本使用相同的static weights进行组合的,seesaw效应并没有被解决。在本工作中,提出了PLE(Progressive Layerd Extraction)模型,并使用带gate结构的progressive routing机制来对基于input的knowledge进行融合(fuse),它可以达到适配不同的inputs的组合。

使用gate结构和attention network来进行信息融合(information fusion)已经存在一些研究。MOE【8】首先提出在bottom上共享一些experts,并通过一个gating network来对experts进行组合。MMOE[13]则对MOE进行扩展,并为每个任务使用不同的gates来获取在MTL中的不同融合权重(fusing weights)。相似的,MRAN[24]会应用multi-head self-attention来学习在不同feature sets上的不同的representation子空间。expert和attention module则在所有tasks间共享,在MOE、MMOE和MRAN中不存在task-specific的概念。相反,我们提出的CGC(Customized Gate Control)和PLE模型会对task-common参数和task-specific参数进行显式分离(explicitly),并避免由复杂任务相关性导致的参数冲突。对于MMOE来说,尽管存在理论上的可能性收敛到我们的网络设计,在网络设计上的先验知识(prior knowledge)是很重要的,MMOE在实际上很难发现收敛(convergence)。Liu【10】应用task-specific attention networks来对选择性地对shared features进行融合(fuse),但不同的任务在attention network中的融合(fusion)之前仍会共享相同的representation。之前的network的研究都没有显式地解决representation learning和routing的joint optimization问题,特别是在一个 inseparable joint(非独立联合)方式,而该工作会首次在joint learning和routing的通用框架上提出一个新的progressive separation方式

存在一些工作,使用AutoML的方式来寻找一个好的network结构。SNR framework【12】通过二元随机变量来控制在sub-networks间的connections,并使用NAS来搜索最优的结构。相似的,Gumbel-matrix routing框架【15】则学习MTL模型的routing并将它公式化成一个使用Gumbel-Softmax trick的二元matrix。像MDP的Modeling routing process,会使用MARL[19]来训练routing network。在这些工作的network结构使用特定的简化猜想而设计的,不够通用。在[17]中的routing network会为每个任务在每个depth选择不超过一个function block,这会减小模型的表现力。Gumbel-matrix routing network[15]则提出在representation learning上进行constraint,因为每个任务的input需要对每个layer上的representation进行merge。另外,在这些frameworks中的fusing weights不适合对不同的inputs,对于这些方法来说寻找最优的结果带来的昂贵搜索开销是另一个挑战。

2.2 RS中的MTL

为了更好地利用多种用户行为,MTL learning已经被广泛应用到推荐系统中,并达到了大量提升。一些研究则会集成传统的推荐算法:比如:在MTL中集成CF和MF。Lu[11]和Wang[23]则引入regularization在隐表示上。

。。。

3.推荐中的seesaw效应

negative transfer是在MTL中的一个常见现象,特别是对于松散相关的任务【21】。对于复杂的任务相关性,特别是样本依赖相关模式,我们也观察到:当提升shared learning效率并达到比相应的single-task模型的极大提升时,会有seesaw现象。(对于当前MTL模型来说,在所有任务上获得提升是很难的)。在本节中,我们基于tencent的大规模视频推荐系统,介绍和调查了seesaw效应。

3.1 视频推荐的MTL ranking系统

图片名称

图2 视频推荐的一个MTL ranking系统

在本节中,我们简单引入服务tencent news的MTL ranking系统,它是世界最大的内容平台,基于用户的多样化反馈来推荐新闻和视频给用户。如图2所示,有多个目标来建模不同的用户行为:比如:在MTL ranking系统中的click、share、comment。在offline的训练过程, 我们会基于从user logs中抽取的用户行为来训练MTL ranking模型。接着,对于每个任务,基于ranking module的weighted-multiplication会将这些预测分(predicted scores)进行组合到一个最终分,通过等式1的组合函数,最终推荐top-ranked videos给用户。

\[score={p_{VTR}}^{w_{VTR}} \times {p_{VCR}}^{w_{VCR}} \times {p_{SHR}}^{W_{SHR}} \times \cdots \times {p_{CMR}}^{W_{CMR}} \times f(video\_len)\]

…(1)

其中:

  • 每个w:决定了每个predicted score的相对重要性
  • \(f(video\_len)\):是一个非线性变换函数,比如:在视频长度(video duration)上的sigmoid或log函数
  • \(w_{VTR}, w_{VCR}, w_{SHR}, w_{CMR}\):是通过在线实验搜索优化的超参数,用来最大化online metrics。(注:SHR(SHare Rate)、CMR(Comment Rate))

在所有任务之外,播放完成度VCR(View Completion Ratio)播放通过率VTR(View-Through Rate)是分别是两个重要目标建模关键在线指标:观看数(view-count)和观看时长(watch-time)。特别的:

  • VCR预测是一个回归任务(regression task),它使用MSE loss来预测每次view的完成度。
  • VTR预测是一个二分类任务,它使用cross-entropy loss来预测一个valid view的概率,它被定义成:超过一定观看时间阈值的一次播放行为

在VCR和VTR间的相关模式(correlation pattern)很复杂。

  • 首先,VTR的label是一个关于播放动作(play action)和VCR的组合因子,只有watch time超过阈值的一个play action会被看成是一个有效观看(view)
  • 第二,play action的分布也复杂,因为在wifi下来自auto-play场景的样本会高于play的平均概率,而来自显式点击场景(没有auto-play)的其它样本会具有更低的play概率

由于复杂和强样本依赖的相关性,当联合建模VCR和VTR会观察到一个seesaw效应。

3.2 在MTL中的Seesaw效应

为了更好地理解seesaw效应,我们会使用single-task模型和SOTA MTL模型来执行实验分析,在复杂相关的VCR和VTR任务组上。除了hard parameter sharing、cross-stitch、sluice network、mmoe外,我们也评估了两个独创的结构:非对称共享(asymmetric sharing)和定制共享(customized sharing)。

  • 非对称共享(asymmetric sharing):是一种新的sharing机制,用来捕获在任务间的非对称关系。根据图1b,bottom layers会在任务间的非对称共享,具体某个任务的表示需要共享依赖于任务间的关系。公共融合操作(fusion)(比如:concatenation、sum-pooling、average-pooling)可以用来组合不同任务的bottom layers的outputs
  • 定制共享(Customized Sharing):图1c会显式地将shared parameters和task-specific parameters进行分离,以避免内在冲突和negative transfer。对比起single-task模型,customized sharing会添加一个shared bottom layer来抽取sharing信息,并将shared bottom layer与task-specific layer的concatenation后feed给相应task的tower layer。

图3展示了实验结果,其中右上角的泡泡表示具有更好的效果,具有更高的AUC和更低的MSE。AUC或MSE具有0.1%的提升,会对整个系统的在线指标具有极大提升【4,6,14】。可以看到硬参数共享(hard parameter sharing)和cross-stitch network会存在极大的negative transfer问题,在VTR上效果最差。通过独创的共享机制来捕获非对称关系,asymmetric sharing可以达到在VTR上的极大提升,但在VCR上出现极大降低,这与sluice network类似。由于shared layers和task-specific layers的显式分隔,customized sharing可以在single-task模型上提升VCR,而在VTR上只有轻微的损耗。MMOE则会在两个任务上同时对single-task进行提升,但VCR的提升只有:+0.0001. 尽管这些模型会在这两个任务上具有不同的学习效率(learning efficiency),我们可以很明确地观察到seesaw效应:一个任务的提升会导致其它任务的效果退化,因为没有一个baseline MTL模型依完全落在第二象限。在公开的benchmark datasets上的具有SOTA模型的实验,也会具有明显的seesaw效应。细节会在第5.2节中提供。

图片名称

图3 在复杂任务相关性下的Seesaw现象

如前所示,VCR和VRT间的相关模式是很复杂并且样本依赖(sample depedent)的。特别的,VCR和CTR间存在一些偏序关系(partially ordered relations),不同样本表现出不同的相关度。因而:

  • cross-stitch和sluice network会为所有样本使用相同的static weights来共享representations,不能捕获样本依赖,存在seesaw效应。
  • MMOE通过使用gates获得来基于input的fusing weights,在一定程度上会处理任务差异(sample difference)和样本差异(sample difference),这会胜过其它baseline MTL模型。然而,在MMOE中experts会在所有tasks间共享,没有差异,这不能捕获复杂任务相关性,这会对某些tasks带来有害噪音。再者,MMOE会忽略在不同experts间的交叉,这会进一步限制joint optimization的效果。

除了VCR和VTR外,在工业界推荐应用中有许多复杂相关任务,因为人类行为经常微妙且复杂,例如:在在线广告和电商平台中的CTR预测和CVR预测。因此,一个强大的网络需要考虑在experts间的差异(differentiation)和交叉(interactions),这对于消除由复杂任务相关性带来的seesaw效应来说很重要。

在本paper中,我们提出了一个PLE(Progressive Layered Extraction)模型来解决seesaw效应和negative transfer。PLE的关键思想是:

  • 首先,它会显示地将shared experts和task-specific experts进行分离,来避免有害的参数干扰。
  • 第二,multi-level experts和gating networks会被引入来对多个抽象表示(abstract representations)进行融合。
  • 最后,它会采用一个新的progressive separation routing来建模在experts间的交互,并达到在复杂相关任务间更高效的知识迁移。

如图3所示,PLE在多个任务上要比MMOE取得更好的提升。结构设计和实验的细节在第4节。

4.PLE(PROGRESSIVE LAYERED EXTRACTION)

为了解决seesaw效应和negative transfer,我们提出了一个Progressive Layered Extraction(PLE)模型,它使用一个新的sharing结构设计。

  • 首先,一个CGC(Customized Gate Control)模型显式地对提出的shared experts和specific experts进行分离
  • 第二,CGC被扩展到一个通用的PLE模型中,它使用multi-level gating networks和progressive separation routing来进行更高效的信息共享和joint learning。
  • 最终,对于MTL模型来说,loss function会被最优化以便更好地处理joint training的实际挑战。

4.1 CGC(customized Gate Control)

受customized sharing的启发,它在single-task上,通过显式分离shared layers和task-specific layers来达到与single-task模型相似的效果。如图4所示,在bottom有一些experts modules,在顶部有一些task-specific tower networks上。每个expert module由多个称为experts的子网络(sub-networks),在每个module中的experts的数目是一个用来tune的超参数。相似的,一个tower network也是一个multi-layer network,宽和高是超参数。特别的,在CGC中的shared experts负责学习共享模式(shared patterns),而对于specific tasks的模式会由task-specific experts来抽取。每个tower network会从shared experts和它自己的task-specific experts中吸收知识,这意味着shared experts的参数会被所有任务影响,而task-specific experts的参数具受相应specific task的影响。

图片名称

图4 CGC模型(Customized Gate Control)

在CGC中,对于选择性融合(selective fusion),shared experts和task-specifc experts通过一个gating network进行组合。如图4所示,gating network的结构是基于一个使用softmax作为activation function、input会作为selector的single-layer feedforward network,用来计算选中vectors的weighted sum,例如:experts的outputs。更精准的,task k的gating network的output可以公式化为:

\[g^k(x)= w^k(x) S^k(x)\]

…(2)

其中:

  • x是input representation
  • k表示task k
  • \(w^k(x)\)是一个weighting function,通过线性变换和一个Softmax layer来计算task k的weight vector:
\[w^k(x) = Softmax(W_g^k x)\]

…(3)

其中:

  • \(W_g^k \in R^{(m_k + m_s) \times d}\)是参数矩阵
  • \(m_s\)和\(m_k\)分别是shared experts以及第k个specific experts的数目,d是input representation的维度。
  • \(S^k(x)\)是一个selected matrix,它由所有selected vectors组成,包括shared experts和第k个specific experts:
\[S^k(x) = [E_{(k,1)}^T, E_{(k,2)}^T, \cdots, E_{(k,m_k)}^T, E_{(s,1)}^T, E_{(s,2)}^T, \cdots, E_{(s,m_s)}^T ]^T\]

…(4)

最后,第k个任务的prediction是:

\[y^k(x) = t^k (g^k(x))\]

…(5)

其中:

  • 第\(t^k\)表示任务k的tower network。

对比起MMOE,CGC会移除在一个任务的tower network与其它任务的task-specific experts间connections,允许不同类型的experts来集中高效学习不同的知识,无需干扰。结合gating networks的好处,来基于input动态融合representations,CGC会达到在tasks间更灵活的balance,更好处理任务冲突和样本依赖相关性。

4.2 PLE(Progressive Layered Extraction)

CGC会显示对task-specific和shared components进行分离。然而,在deep MTL中,learning会随着越来越深的语义逐渐走形,通常对于立即表示(intermediate representations)是否应该被看成是shared或task-specific来说是不清晰的。为了解决该问题,我们使用PLE将CGC进行泛化。如图5所示,在PLE中有multi-level extraction networks来抽取higher-level的共享信息。除了对task-specific experts的gates外,extraction network也会为shared experts使用一个gating network来组合来自该layer的所有experts的知识。因而,在PLE中不同任务的参数在像CGC这样的early layer上不会完全分离,但会在upper layers上会逐渐分离。在higher-level extraction network中的gating networks会采用gates的融合结果作为selector,而非raw input,这是因为它可以提供更好的信息来选择从更高level experts中抽取到的知识。

图片名称

图5 Progressive Layered Extraction (PLE) Model

在PLE中weighting function、selected matrix、以及gating network的计算与CGC中的相同。特别的,任务k在第j个extraction network中的gating network的公式为:

\[g^{k,j}(x) = w^{k,j}(g^{k,j-1}(x))S^{k,j}(x)\]

…(6)

其中:

  • \(w^{k,j}\):是task k的weight function,它使用\(g^{k,j-1}\)作为input,
  • \(S^{k,j}\):是选中task k在第j个extraction network的matrix。

值得注意的是,在PLE的shared module的selected matrix与task-specific modules非常不一样,因为它在该layer中包括了所有shared experts和task-specific experts。

在计算所有gating networks和experts后,我们可以最终获得在task k的prediction:

\[y^k(x) = t^k(g^{k,N}(x))\]

…(7)

有了multi-level experts和gating networks,PLE可以为每个task抽取和组合更深的语义表示来提升泛化性(generalization)。如图1所示,对于MMOE来说,routing策略是完全连接的,对于CGC来说则是早期分离的(early separation)。不同的是,PLE会采用一个progressive separation routing来从所有更低layer的experts抽取信息,抽到更高level的shared knowledge,并渐近地将task-specific参数分离出来。progressive separation的过程与此类似:从化学药品中为期望产品抽取化合物的抽取过程。在PLE的知识抽取和转换的过程期间,更低level的表示会jointly extracted/aggregated,并在更高level的shared experts上进行routed,获取共享知识和渐进地分发给特定的tower layers,以便达到更高效和灵活的joint representation learning和sharing。尽管MMOE的full connection routing看起来像是CGC和PLE的一个通用设计,在第5.3节中的实际研究表明,MMOE不能收敛到CGC或PLE的结构,尽管存在可能性。

4.3 MTL的joint loss optimization

当设计高效的网络结构时,我们接着关注于以end-to-end的方式联合训练task-specific和shared layers,一种常用的joint loss公式是:对每个单独的task的losses的加权求和:

\[L(\theta_1, \cdots, \theta_K, \theta_s) = \sum\limits_{k=1}^K w_k L_k(\theta_k, \theta_s)\]

…(8)

其中:

  • \(\theta_s\)表示共享参数,K表示任务数
  • \(L_k, w_k, \theta_k\):分别是任务k的loss function、loss weight、task-specific parameters

然而,由于存在许多问题,在实际中对MTL models做出joint optimization很具挑战。在本paper中,我们会对joint loss function进行最优化来解决在真实推荐系统中遇到的两个问题。

第一个问题是:由于顺序的用户动作产生的不同类的样本空间(heterogeneous sample space)。例如,用户在点击一个item后只会分享或评论。这会导致如图6所示的不同样本空间。

图片名称

图6 不同任务的training space

为了联合训练这些任务,我们会考虑所有任务的样本空间的联合(union)作为整个训练集,而当计算每个任务的loss时,会忽略在它之外样本空间的样本:

\[L_k(\theta_k, \theta_s) = \frac{1}{\sum_i \sigma_k^i} \sum\limits_i \sigma_k^i loss_k(\hat{y}_k^i (\theta_k, \theta_s), y_k^i))\]

…(9)

其中:

  • \(loss_k\)是任务k基于prediction \(\hat{y}_k^i\)、以及ground truth \(y_k^i\)的样本i的的loss
  • \(\sigma_k^i \in \lbrace 0, 1 \rbrace\)表示的是:样本i是否位于task k的样本空间

第二个问题是:一个MTL模型的效果对于在训练过程中loss weight的选择是否敏感【9】,因为它决定了在joint loss上每个任务的相对重要性。实际上,这会观察到:每个任务在不同的训练过程会具有不同的重要性。因此,我们会为每个task考虑loss weight作为一个动态权重(dynamic weight),而非一个static权重。首先,我们会为task k设置一个初始的loss weight \(w_{k,0}\),接着在每个step后基于updating ratio \(\gamma_k\)更新它的loss weight:

\[w_k^{(t)} = w_{k,0} \times \gamma_k^t\]

…(10)

其中:

  • t表示training epoch
  • \(w_{k,0}\)和\(\gamma_k\)是模型的超参数

5.实验

在这部分,会在腾讯大规模推荐系统以及公开benchmark datasets上执行大量离线和在线实验来评估提出模型的有效性。我们也在所有gate-based MTL模型上分析了expert的使用,以便理解gating networks的工作机制,并验证CGC和PLE的结构。

5.1 在视频推荐上的评估

在本节中,我们会使用复杂和正常相关的任务组作为在视频推荐系统上的多个任务,来评估提出模型的效果。

5.1.1 Dataset

我们通过在腾讯新闻从视频推荐系统上抽样用户日志,收集了一个工业界dataset,它具有8天连续。它具有4.69亿用户,268w个视频,并在数据集上具有9.95亿样本。如前所述,VCR、CTR、VTR、SHR(share rate)、CMR(comment rate)是在该dataset中建模的任务。

5.1.2 Baseline模型

在该实验中,我们在单任务、asymmetric sharing、customized sharing上对比了CGC和PLE,其中SOTA MTL模型包括:cross-stitch network、sluice network,MMOE。由于multi-level experts会在PLE中共享,我们会将MMOE扩展到ML-MMOE(multi-layer MMOE),如图1所示,通过添加multi-level experts来进行公平对比。在ML-MMOE中,更高level的experts会对来自更低level的experts的representations进行组合,所有gating networks会共享相同的selector。

5.1.3 实验setup

在该实验中,VCR prediction是一个regression task,它使用MSE loss进行训练和评估;在其它动作上的任务建模都是二分类任务,它们使用cross-entropy loss进行训练,并使用AUC进行评估。在首个7天的样本会用来进行训练,其余样本是test set。对于在MTL模型和single-task模型中,对于每个task,我们采用一个3层的MLP network,它使用RELU activation和hidden layer size为[256,128,64]。对于MTL模型,我们实现了expert作为一个single-layer network,并对以下的model-specific超参数进行调参:shared layers的数目、在hard parameter sharing和cross-stitch network上的cross-stitch units,在所有gate-based模型中的experts数目。对于公平比较,我们实现了所有multi-level MTL模型作为two-level models来保持相同深度的模型。

图片名称

表1

基于公平的评估指标(比如:AUC和MSE),对于一个特定任务,我们定义了一个MTL gain的指标来量化评估多任务学习要比单任务模型的好处。如等式11所示,对于一个给定的task group以及一个MTL模型q,在任务A上q的MTL gain被定义成MTL模型q对比相同网络结构和训练样本的single-task model的效果提升。

\[MTL gain = f(n) = \begin{cases} M_{MTL} - M_{single}, & \text{M is a positive metric} \\ M_{single} - M_{MTL}, & \text{M is a negative metric} \end{cases}\]

…(11)

5.1.4 复杂相关性的任务评估

为了更好捕获主要的在线engagement metrics,例如:view count和watch time,我们首先在VCR/VTR的任务组上开展实验。表1展示了实验结果,我们会以粗体表示最好得分,效果下降则以灰色。在VTR上,CGC和PLE可以极大胜过所有其它baseline模型。由于在VTR和VCR间复杂相关系,我们可以很明显地观察到seesaw效应,它使用zigzag灰色分布,一些模型提升VCR但会伤害VTR;而一些则提升VTR但伤害VCR。特别的,MMOE会同时提升在single-task上的任务,但这些提升是不大的,而ML-MMOE则会提升VTR但会伤害VCR。对比MMOE和ML-MMOE,CGC会提升VTR更多,提升VCR很少。最后,PLE会收全省到相同的一步,并在上述模型上达到极大的提升,它具有最好的VCR MSE,以及其中一个最好的VTR AUCs。

图片名称

表2

5.1.5 在正常相关性的任务上评估

由于CGC和PLE在处理真实复杂相关性的任务上表现很好,我们会进一步在具有正常相关性模式的CTR/VCR的一个通用任务组上进行验证。由于CTR和VCR的目标是建模不同的用户动作,在它们间的相关性更简单些。如表2所示,事实上,除了cross-stitch之外的所有模型,在两种任务上都表现出正向的MTL gain,这表明:在CTR和VCR间的相关性模式并不复杂,不会具有seesaw效应。在该场景中,CGC和PLE仍能在两种任务上极大地胜过所有SOTA模型,并具有显著的MTL gain,这验证了CGC和PLE的收益是通用的,可以有效达到更好的共享学习,并能在多个任务场景下一致提供增量的效果提升,不仅仅是那些具有复杂相关性的任务,同时也包括普通相关的任务。

图片名称

表3

5.1.6 online A/B testing

在VTR和VCR的任务组上我们进行仔细的online A/B test,达4周。我们在c++深度学习框架上实现了所有MTL模型,随机分配用户给不同的buckets,并在每个分桶上部署一个模型。最后的ranking score通过多个predicted scores的组合函数来获得(如第3节所示)。表3展示了MTL models在single-task模型上的提升(total view count per user/ total watch time per user)。它表明:对比baseline models,CGC和PLE能在online metrics上能达到极大的提升。另外,在所有在线指标上,PLE都要极大好于CGC,这表明:在MTL中,AUC或MSE上的小提升可以为在线metrics带来极大提升。PLE已经部署在tencent平台上。

5.1.7 多任务上的评估

最后,我们在多个挑战性场景上探索了CGC和PLE的可扩展性。除了VTR和VCR外,我们会引入SHR(share rate)和CMR(comment rate)来建模user feedback actions。可以很灵活地扩展CGC和PLE到多任务cases中,只要为每个task添加一个task-specific expert module、gating network、tower network即可。如表4所示,对比起single-task model,CGC和PLE几乎在所有task group上会达到极大提升。这表明CGC和PLE仍展示了促进任务协同的好处,对于超过2个任务的通用场景,仍可以阻止negative transfer和seesaw效应。PLE的效果在所有cases上都要极大好于CGC。因此,PLE展示了在跨不同sizes的task groups上提升shared learning efficiency的更强的收益。

图片名称

表4

图片名称

图7

5.2 public datasets上的评估

5.3 Expert使用分析

为了探索experts是如何通过不同gates间进行聚合的,我们在工业界dataset上的VTR/VCR task group上,研究了所有gate-based models的expert utilization。出于简洁性和公平对比,我们会考虑将每个expert看成是一个single-layer network,在CGC和PLE的每个expert module上保持一个expert,而在MMOE和ML-MMOE的每个layer则会保持三个experts。图8展示了在所有testing data上每个gate使用的experts的权重分布,其中:bars的高度以及垂直short lines分别表示weights的均值和标准差。它表明:VTR和VCR在CGC中会使用极不同的weights来组合experts,而在MMOE中则使用非常相似的weights,这表明:CGC的良好设计结构可以帮助达到在不同experts间更好的区分度。另外,在MMOE和ML-MMOE中所有experts都有非零权重,这进一步表明:对于MMOE和ML-MMOE来说,在没有先验知识的情况下,很难去收敛CGC和PLE的结构,尽管存在理论可能性。对比起CGC,在PLE中的shard experts对tower networks的input具有更大的影响,特别是在VTR任务上。实际上,PLE的效果要好于CGC,这表明在更高level上共享更深的representations的价值。换句话说,需要在任务间共享的更深语义表示,因此 一个progressive separation routing可以提供一个更好的joint routing和learning scheme。

图片名称

图8

6.

参考

youku在《Deep Time-Stream Framework for Click-Through Rate Prediction by Tracking Interest Evolution》提出了一个兴趣演进的框架。

摘要

CTR预测在像视频推荐等工业应用中是一个必要的任务。最近,deep learning模型被用来学习用户的整体兴趣表示(overall interests),然而会忽略兴趣可能会随时间动态变化的事实。我们认为:有必要在CTR模型中考虑上连续时间信息(continuous-time information)来从丰富的历史行为中跟踪用户兴趣。在本paper中,我们提出了一个新的Deep Time-Stream framework(DTS),它会通过一个常微分方程(ODE: ordinary differential equation)来引入time information。DTS会使用一个neural network来持续建模兴趣的演化,它可以来解决用户兴趣会随它们的历史行为动态表征带来的挑战。另外,我们的框架可以通过利用额外的Time-Stream Module,无缝地应用到任意deep CTR模型上,对原始CTR模型不会做任何变改。在公开数据集的实验、以及工业数据集的表现看,可以达到很好的效果。

介绍

CTR预测目标是估计一个用户在一个给定item上的概率,在学习界和工业界这是一个备受关注的问题。以在线视频为例,一个CTR算法会提供给用户数千个不同类目的视频,因此,精准捕获用户的兴趣很重要,可以提升用户的留存和收益。

为了达到该目标,基于用户历史点击进行建模用户兴趣会影响用户偏好。为了抽取用户兴趣的表示,提出了许多传统模型、以及deep模型。尽管这些模型在建模用户整体兴趣时达到了极大成功,它们会忽略用户兴趣的动态变化。为了进行一个更精准的结果,RNN-based方法提出捕获在user-item interaction序列中的依赖。然而,这些方法只考虑用户行为的顺序,忽略在行为间的时间间隔(time interval),它对于预测用户行为是很重要的信息。在图1中,作为示例,Mike通常会在白天观看关于Donald Trump的视频,在晚上享受Taylor Swift的音乐视频,根据他的行为的timestamps。因而,将Mike的playlog看成一个点击视频序列,会忽略他的潜在兴趣随时间的变化。不幸的是,现有的CTR模型不能建模在连续时间上的模式,因为大多数模型不知道时间间隔(time interval)。

图片名称

图1

另外,在inference阶段,只预测下一次点击(next click)而不考虑执行action时的时间会有问题。将用户行为的时间合并进去,比如:建模在行为间的逝去时间间隔(elapsed time interval)的效果,这对于精准建模用户兴趣非常重要。例如,在图1中,如果Mike在9 p.m.(下午)观看了Taylor的视频,很可能他会在几小时内观看另一个Taylor的视频(而非Donald),而在半天后观看Donald的视频概率会更大些。然而,传统方式总是在任意时刻上获得相同的精准预测。

基于前面的观察,我们认为在CTR模型上考虑上time-stream信息(比如:连续时间信息:constinous-time info)很重要。因此,我们提出了一种新的Deep Time-Stream framework(DTS),它会将time-stream信息引入到CTR模型中。因此,我们提出了一种新的Deep Time-Stream框架(DTS)。Time-stream信息可以通过常微分方程(ODE)进行公式化,它指的是一个描述在依赖变量的导数和独立变量间的关系的函数。特别的,DTS会使用ODE来建模用户潜在兴趣的演化,它会将用户在兴趣状态随时间进行求导参数化,比如:ODE的解会描述用户兴趣的动态演化。另外,DTS会具有以下能力:统一在time-stream(通过点击的timestamp进行)上的用户历史行为(已点击什么)和target items(将点击什么),因而根据给定的下一时间(next time)做出inference,并提供一个更加精准的CTR预测。为了达到最小的模型变更代价(model-altering cost),ODE会被打包成一个Time-Stream Module,它可以应用到任意的deep CTR模型上。该paper的贡献如下:

  • 提出了一个新的DTS框架,会将用户的latent interest evolution建模成一个ODE,它会极大提升模型的表达能力,可以更好地捕获用户兴趣的演进
  • DTS可以在任意时间生成用户的feature,因而对于适配评估很灵活
  • Time-Stream Module可以轻易地转成已存在的CTR模型,无需对原始框架做变化

1.背景

在机器学习中,有效管理一类hypotheis(线性或非线性),可以表示data patterns。ODEs可以被用于一个hypothesis。考虑在\(R^d\)中的微分方程:\(\frac{dz}{dt} = f(z, t), z(0)=z_0\),z在time t上的解被定义成\(z(t)\)。在监督学习中的ODE方法背后的基本思想是,调整f,使得z(t)可以生成拟合该数据所需的非线性函数。

实际上,Chen 2018的DNN被看成是discrete ODE,他们的迭代更新可以被看成是关于一个连续转换(continuous transformation)的Euler discretization。在另一方面,neural ODEs是一组DNNs模型的family,可以被解释成一个关于ResNets或RNN的continous等价。为了观察该现象,我们会将在ResNets或RNNs中的一个layer t到t+1的hidden state看transformation看成是:

\[h_{t+1} = h_t + f_t(h_t)\]

…(1)

在ResNets中,\(h_t \in R^d\)是在layer t的hidden state;\(f_t: R^d \rightarrow R^d\)是一个差值函数(differentiable function),它会保留\(h_t\)的维度。在RNNs中,\(h_t \in R^d\)是第t个RNN cell上的hidden state,它更新时会抛出一个函数\(f_t: R^d \rightarrow R^d\)。\(h_{t+1} - h_t\)的差可以看成是一个在timestep \(\Delta t = 1\)上的导数\(h'(t)\)的离散化(discretization)。假设:\(\Delta t \rightarrow 0\),我们可以看到:动态的hidden state可以通过一个ODE进行参数化:

\[\underset{\Delta t \rightarrow 0}{limit} \frac{h_{t+\Delta t} - h_t}}{\Delta t} = f(h, t)\]

z(t)的解或h(t)可以使用一个ODE solver进行求解,会使用许多复杂数值方法来选择:比如:linear multi-step方法、RUnge-kutta methods或adaptive time-stepping。以上方法在deep learning中很有用,因为他们可以自适应地选择network的layers。这里要注意的不是solver本身,而是数据的表示。因此我们将solver看成是一个黑盒的differential equation solver:

\[z_{t_1}, ..., z_{t_N} = ODE_{solver}( z_{t_0}, f, \theta_f, t_1, \cdots, t_N)\]

…(2)

其中,\(\theta_f\)是关于f的参数。

在下一节中,我们会展示,ODEs是如何被用来建模用户兴趣演化的动态性的,以及如何让ODEs在训练时能够稳定。

2.Deep Time-Stream Framework

在本节中,我们会描述DTS。首先将CTR公式化成一个二分类问题。给定数据样本:

\[x = (x^U, x^V, x^P) \in X\]

其中: \((x^U, x^V, x^P)\)分别表示来自User behavior、target Video以及user Profiles这些不同字段的one-hot vectors的concatenate。

再者,每个字段包含了一个关于点击行为的列表:

\[x^U = [(v_1, c_1); (v_2, c_2); \cdots; (v_N, c_N)]\]

其中:

  • \(x_i^U = (v_i, c_i)\)表示发生在time \(t_i\)的第i个行为上
  • video \(v_i\)以及相应的category \(c_i\),其中N是user的历史行为的数目;
  • \(x^V\)表示target video和它的category \(x^V = (v_{N+1}, c_{N+1})\),等式的成立是因为:target video会随着第(N+1)的用户点击而发生,potential click的预测时间被看成是next time \(t_{N+1}\)。

因而,我们会统一在time stream上的用户历史行为和target video,通过timestamps来表示t:

\[t = [t_1, t_2, \cdots, t_N, t_{N+1}]\]

User Profile \(x^P\)包含了有用的profile信息,比如:gender、age等。Label \(y \in Y\)表示用户是否点击是指定的视频,\(y=1\)表示点击,\(y=0\)表示未点击。CTR的目标是学习一个从X到Y的mapping \(h \in H\),其中,\(H\)表示hypothesis space,\(h: X \rightarrow Y\)表示预测用户是否将点击该视频。预测函数h可以通过以下objective function进行最小化学到:

\[\underset{h}{min} \sum\limits_{(x,y) \in X \times Y} L(h(x;t), y)\]

…(3)

其中,L是epmirical loss,它会在以下子部分引入。

2.1 通用框架

我们提出的框架DTS可以看成是一个Base-Model加上Time-Stream Module,如图2所示。BaseModel被看成是一个已经存在的deep CTR模型,比如:DNN,PNN,DIN等。除了base model外,Time-Stream Module会收集所有events的timestamps,包括:一个用户在过去的历史点击时间、以及在预测时的用户潜在点击时间。注意,后半部分在已存在的CTR模型中会被忽略。另外,Time-Stream Module会通过一个ODE来跟踪潜在兴趣演进,来计算一个增强型输入(enhanced input),它会引入continuous-time信息,并保留base inputs的维度。因此,在DTS框架中,任意的deep CTR模型可以被用于BaseModel,无需做任何更改。对比BaseModel,它会输入在用户点击item事件上的一个点击概率,DTS可以通过在给定时间上用户点击item事件的点击概率,从而对output做出提升。

图片名称

图2

在面,我们会介绍BaseModel,并引入Time-Stream Module来捕获兴趣,并建模兴趣演进。

2.2 BaseModel

2.3 Time-Stream Module

用户兴趣会随时间动态变化。BaseModel会通过一个在点击item feature上的pooling操作获取一个表示向量,但会忽略时间信息。动态pattern的缺失会限制用户行为特征的能力,这对于建模用户兴趣很重要,因为用户点击items是一个用户在对应时间上对兴趣的表示。对于BaseModel,如果对continous pattern的能力缺失会导致在建模动态用户兴趣时的inaccuracy。

是否存在优雅的方式来表示一个用户的real-time兴趣,并建模动态兴趣演化的pattern?continous-time evolving激发我们设计了一个称为Time-Stream Framework的方法,它会利用ODE来建模动态兴趣。ODE在物理、生物、化学、工程和电子领域被广泛应用,如果ODE可解,会给出一个初始点(initial point),它可以决定所有它的future positions,这些points被称为“trajectory或orbit”。本文中我们使用ODEs作为hypothesis class,其中trajectory表示一个潜在的兴趣演化轨迹(lantent interst evolution trace)。在等式1中,ODE可以是通用的RNNs形式,RNNs可以被认为是continuous ODE的一个离散版本。continous ODE具有一些优点,比如:评估很灵活,相应的可以自适应地选择RNN的长度。另外,我们也可以使用高级数值方法来训练,比如:multi-grid方法、parallel shooting方法。图3展示了Time-Stream Module的架构。

图片名称

图3 Time-Stream Module的结构。DTS会保持BaseModel的基本框架,可以继承原先的效果。另外,DTS会扩展Time-Stream module,将latent time state \(z_t\)建模成一个ODE。Decoder \(\phi\)会将\(z_t\)映射到embedded space,并混合上embedding来增强embedding的quality。Guide loss被设计用来帮助hidden state的收敛

为了通过ODE的一个latent trajectory来表示兴趣演进,会使用一个可微函数,\(\frac{d z(t)}{dt} = f(z(t), t; \theta_f)\)来表示兴趣演化率,其中:\(\theta_f\)是关于f的参数。因此,给定一个initial state \(z_{t_0}\),ODE的trajectory可以使用等式(2)提到的一个solver来进行求解:

\[z_{t_1}, \cdots, z_{t_N}, z_{t_{N+1}} = ODE_{solver}(z_{t_0}, f, \theta_f, t_1, \cdots, t_N, t_{N+1})\]

…(5)

其中,\(z_{t_1}, \cdots, z_{t_N}, z_{t_{N+1}}\)是ODE的解,它可以描述dynamics f在每个观察时间\(t_1, \cdots, t_N, t_{N+1}\)的latent state。由于相似的人可能会有相近的兴趣兴趣演进pattern,我们会构建一个mapping g,它可以将user profile embedding \(e^P\)转化成latent time-stream space来获取initial value:\(z_{t_0} = g(e^P; \theta_g)\),mapping g是一个具有参数\(\theta_g\)的线性转换,它会当成是一个将profile embedding space转化latent time-stream space的encoder。

另一方面,\(\phi\)是一个decoder,它可以将latent time-stream feature \(z_{t_i}\)转成video embedding-spaned space。\(\phi(z_{t_i}; \theta_{\phi}\)是behavior feature的adujstment或supplementary,它可以携带额外的行为演化patterns。 对于user behavior feature的adujstment,我们有:\(\bar{e_i} = e_i + \phi(z_{t_i}; \theta_{\phi})\),其中:\(i=1, 2, \cdots, N\)。fuse operation可以被设置成像concatenation的operation,但在本工作中,add操作会被用来保证adujstment以及original feature具有相同贡献。对于target video feature,我们有:\(\bar{e}^V = e_{N+1} + \phi(z_{t_{N+1}; \theta_\phi)\)

增强行为特征(enriched behavior feature) \(\bar{e}^U = (\bar{e}_1, \bar{e}_2, \cdots, \bar{e}_N)\),video vector \(\bar{e}^V\)和profile feature \(e^P\)会接着被发送到Base CTR模型的其余部分。

使用ODE作为一个generative model,允许我们在任意时间做出预测,不管是过去或是将来,因为在timeline上是连续的。ODE的output可以通过一个黑盒的差分等式solver进行计算,它会来评估hidden unit dynamics是否需要来决定有期望的accuracy的solution。

function f的选择

latent function f需要被指定,使用不同类型的函数来满足不同需求。接着,我们会引入一些方法来利用不同类型的ODE function f来建模intrest evolution的过程。

Simple form

function f的最简单形式是,f是一个关于独立变量t的函数:

\[f(z, t) = \frac{dz}{dt} = A(t), z(t)=\int_{t_0}^t A(\lambda) d{\lambda} +C\]

…(6)

其中,A是control function,C是一个constant。该类型的问题可以通过直接计算z(t)具有一个解析解。如果这样,数值形求解ODE不存在额外开销。一个特例是具有常系数的linear differential equation \(f(z, t) = A(t) = \alpha\),它意味着在rate \(\alpha\)时有latent state discount。因此,对于所有的t会有\(z_{t_i} = \alpha (t_i -t_0) + z_{t_0}\)。这里的看法是,f的单调trajectory会模拟用户兴趣的特性:主要被最近兴趣所影响,因此会减小较早兴趣的影响,并增加用户最近行为的影响。特例相当简单,但在实验中达到很好的效果。

复杂形式

f的简单形式不能表达用户diverse的time-searies的pattern。为了解决该限制,另一个选择是:使用一个neural network参数化dynamics f的导数,它可以极大提升模型的表示能力。在本paper中,会使用一个带sogmoid activation unit的双层neural network:\(f(z) = \sigmoid(w_2 \cdot \sigmoid(w_1 \cdot z + b_1) + b_2)\)

其中:\(w_1, w_2, b_1, b_2\)是线性参数,\(\sigmoid(\cdot)\)是activate unit。在该形式下的f很难获得一个解析解 ,在\(z_{t_1}, \cdots, z_{t_N}, z_{t_{N+1}}\)下的解可以使用一个数值形ODE solver来计算。

Guide Loss

前面的函数在单次调用ODE toolbox上可以被求解,现代ODE solvers会在approx error的增长上会有保障。然而我们有以下需要注意的事项:

1) 当function形式变得复杂时,ODE的行为可能会遇到expolodes的情形,收敛到稳态或者展示混乱行为。这可以解释一些难点:比如:在DNN训练中遇到的梯度vanishing或explosion。

2) 另一方面,由于target item的行为会由用户兴趣演进所触发,该label只表示\(z_{t_{N+1}}\)的最后点击行为,而历史state \(z_t\)不会获得合适的监督(supervision)。

为了缓解这些问题,我们提出了guide loss,它会使用behavior embedding \(e_i\)来监督latent function的学习。为了这样做,受word2vec的启发,我们构建了一个小网络,它会将decoded hidden state \(\phi(z_{t_i})\)推至更接近下一行为\(e_{i+1}\),而非一个随机负采样实例\(e^{rand}\)。Guide loss可以公式化为:

\[L_{guide}(p,v,n)=- \frac{1}{N} \sum_i (v_i \cdot p_i + v_i \cdot n_i - log(\frac{v_i \cdot p_i}{v_i \cdot n_i})) \\ p_i = FC(e_{i+1}), v_i = FC(\phi(z_{t_i})), n_i = FC(e^{rand})\]

其中,FC(x)是一个将PRelu作为activation的fully connected layer。模型的整个loss如下:

\[L = L_{target} + \lambda L_{guide}\]

…(7)

其中,L是overall loss function,\(L_{target}\)由等式(4)引入,\(\lambda\)是hyper-parameter,它会对兴趣表示和CTR预测进行balance。

整体上,guide loss的引入有一些优点:

  • 1) 从兴趣学习的角度,guide loss的引入会帮助ODE的每个hidden state更丰富地表示兴趣
  • 2) 对于ODE的最优化,当ODE会建模长历史行为序列时,guide loss会减小BP的难度
  • 3) 对于embedding layer的学习,Guide loss会给出更多语义信息,这会产生一个更好的embedding matrix

training和inference

在训练阶段,我们的模型会具备重新加载BaseModel参数的能力。接着,所有weights会进行finetuned来获得一个快速收敛。我们会通过初始化f的参数以及初始值为0来达到一个safe-start,比如:ODE的trajectory是一个0常数。这样,在训练的开始,整个模型会与original CTR base model保持相同。

在inference阶段,我们可以在任意的推荐时间\(t_{N+1}\)来预测用户兴趣演进,因为我们会利用ODE solver来在下一时间\(t_{N+1}\)来集成f的函数。在工业界,DTS会更有效:当预测在\(t_{N+1}, t_{N+2}, t_{N+n}\)的多个CTR时,没有必要从头计算hidden trajectory。很容易集成从\(t_N\)到\(t_{N+n}\)的function,它们的计算很cheap。

4.实验

参考

youku在《Multi-objective Optimization for Guaranteed Delivery in Video Service Platform》提出了一种方法:

1.介绍

对于在线视频提供商,例如:Netflix、Youku等,这里通常是一个widget/drawer,需要分发最新发布 或者 热门视频内容(通常是:TV综艺和电视剧)。在一天内访问该drawer的所有用户不会过多变化,因为一个视频服务平台的日活用户总数在一定期限内是相当稳定的。因此,该widget的一个非常重要的问题是,如何对给定的视频内容分配有限的曝光(impressions),以便确保对他们来说有足够的曝光并且相对公平。该drawer应关注那些新/热视频的商业化需求或合同需求;例如:保证每个内容的固定数目的曝光。这就是一个典型的保量分发系统(Guaranteed-Delivery system)。如果只依赖推荐系统是不够的,因为它是面向个人的。为了解决该问题,一个有效的曝光资源分配系统,会规划(plans)一个特定周期内的曝光资源(impression resources)。总之,操作周期可以是一天或者数小时,这依赖于特定需求。曝光资源首先会对每个内容在周期开始时考虑所有需求,接着分发系统(通常是推荐系统)会获得分配给每个内容的曝光量作为参考,然后尝试寻找最合适的用户。因而,整个系统可以平衡商业化需求和用户的个性化需求。

然而,在每个操作周期前的曝光分配是很复杂的,因为涉及到许多约束(constraints)。当前的曝光系统(impression system)是靠人工操作的,它高度依赖于人的经验,因而这是次优的。另一方面,在该widget中的一个视频内容的实际曝光分发,大多情况是由它的ctr来决定的,但是人工分配策略不能精准预测这些内容在一个给定曝光下的点击(CLICK)。另一方面,对人类来说设计这样一个分配策略:它对于每个视频来说,可以达到高点击量 & 不与所有约束冲突下的公平性(对于该场景来说是个常见目标),是很困难的。一个常见的场景是,不同的视频内容行为,在PV和VV上很不同,因为内容属性的不同。一些视频内容使用很少的曝光就可以达到高点击,而另一些可能会消耗更多曝光。如果我们分配太多曝光给这些内容,总CTR会在一个更低的水平。尽管有一些广告的曝光分配算法(也称为:保量分发系统: guaranteed delivery algorithm)提出,但对于内容曝光分配问题并没有提出这样的一些算法。内容的保量分配(GD allocation)问题具有它的独特之处,主要有两点:

  • 1)对于视频分发,特别是IP视频,内容平台需要重复曝光这些内容给定向消费者,因为对比起广告和商品来说,内容的数目很有限。再者,内容通常对于具有大量的潜在消费者,对比起广告,重复曝光过多会具有更大的概率带来更多潜在消费者来看视频。因此,跟随PV的CTR(有效指标)是一个内容分发要考虑的关键因素;
  • 2) 建模内容的曝光分配问题时考虑上CTR动态趋势(trends)作为约束,这对于模型和解决方案来说都是个新挑战。

在本paper中,为了解决上述挑战,我们设计了一个two-stage框架。第一个stage是预估(forecasting),第二个stage是分配(allocating)。在预估stage,我们会寻找开发有效的预估模型,它的目标是:预测用户在给定历史PV和点击记录的前提下预测用户的行为点击。特别的,为了描述随不同PV变化的CTR趋势,我们基于ODE(ordinal differential equation)提出了一个预测模型(称为:pv-click-ctr模型)。接着,在分配stage,我们提供了一个多目标非线性规划模型(multiple objective nonlinear progammming),它遵循CTR趋势及其它约束。

通过组合CLICK预估模型以及分配模型,它提供给我们一个解决方案来处理内容的保量分发问题。我们会执行离线和在线实验,表明我们提出的解决方案,在模型性能和效果上都比较好。据我们所知,这是第一个工业界解决方案来处理保量分发问题。应该承认的是,存在许多其它相关因素,比如:在widget内的曝光影响位置(location)、推荐系统对每个内容的性能,等。当前我们不会考虑这些因子,因为他们会让问题变得更难处理,后续我们将进一步解决。主要的贡献有:

  • 提出了一种参数化的pv-click-ctr预估模型来描述CTR trends with PV。
  • 设计了一个框架,它会在考虑上每个内容的CTR趋势以及曝光资源限制等约束下的保量下,最大化特定目标,比如:内容的VV、每个内容的公平性(fairness)。
  • 在线和离线实验:验证了pv-click-ctr model和保量分发策略的效果

2.相关工作

2.2 保量分发策略

最优化(Optimization)技术已经成功被应用到解决许多决策问题上,比如:广告分配问题。 通常,一个广告分配问题与一个数学运输问题(mathematical transportation)相似,它可以被建模成一个二部图(bipartite graph),供应节点、需求节点表示观看者类型(viewer types)和广告活动(ad campaigns)。【19】研究了发现对于一个广告的最可能安置组合的问题。该问题被建模成一个整数规划问题(integer program(IP)),目标是:在遵循有限广告预算下,具有最高的rating。【3,4】考虑上了单个广告主的商业计划问题(commercial scheduling problem)。为了满足所有通过自动化进行商业计划的需求,问题被公式化为一个Integer Program问题。【2】研究了在一个可能的slots集合中计划一个商业集合的问题。。。【15】描述了在一个广播公司的一个计划问题,广告主会为广告放置顺序,它们的预定播出时间不固定。。。【22】开发了一个decision support系统来计算对于一个主要TV电视台的周播空间的最佳安排。。。【9】提出了一个差分game model来进行媒介预算和分配。【8】使用层次化线性规划。。。【27】定义了一个Guaranteed Targeted Display Advertising。。。 【1】。。。

3.内容的曝光分配模型

在本节中,首先给出内容的保量分发策略的一些概念关于:内容的保量分发策略、pv-click-ctr预估模型的公式化。接着我们导出PV分配策略,并讨论分配策略的特性。

3.1 前提

我们只考虑需要GD策略的抽屉或者模块(drawers),它被表示为:

\[S = \lbrace s_j, j \in Z_n \rbrace\]

其中:

  • \(Z_n\)表示从1到n的整数集合

在drawer \(s_j\)的位置集合被表示为:

\[D_{s_j}=\lbrace d_{jk}, j \in Z_n, k \in Z_{\Theta(s_j)}\rbrace\]

其中:

  • \(\Theta_{s_j}\)表示在drawer \(s_j\)的位置数目

假设需要考虑在这些drawer的内容集合被表示为:

\[Q=\lbrace q_i, i \in Z_m \rbrace\]

其中:m是内容数目

在每个位置\(d_{jk}\)的整体天级PV限制被表示为\(C(d_{jk})\)。不失一般性,后面章节,我们将PV value表示为x,将CLICK value表示为y

考虑到每个drawer和position的资源容量(resource capacity),以及每个内容的CTR趋势,我们的目标是:为每个内容发现合适的天级PV,它可以最大化整个频道的VV,同时尽可能避免”过曝光(over-exposure)”和“欠曝光(under-exposure)”。因此,GD策略的主要问题是:给定一个内容的PV value x,我们估计它的click value值y。正式的,点击预估模型是一个”mapping”函数,它可以根据历史天级PV和CLICK数据来学到相应的patterns,并能预测一天的click value。

3.2 pv-click-ctr预估模型

每个内容的CTR趋势(trend)涉及到许多因素,很难对这些因素枚举并基于它的历史数据进行模型构建。因而,我们从其它视角对该问题进行研究。

总的来说,点击来自于曝光。在大多数case下,越多的曝光会带来越多点击数。然而,每个内容的目标消费者的总数目是有限的。当曝光量过大时,对同一消费者进行重复曝光在统计上不能带来更多的点击。这种“饱和”现象可以在我们的产品中通过历史数据观察到,这与经济学系统中的人口模型相似。受[13]的启发,我们引入一个参数化模型(parametric model)来捕获以上的观点。

特别的,假设:

  • y(x)表示点击值,它与在一天内某一内容的一个PV value x一一对应
  • \(\Delta x\)是PV增量
  • \(\Delta y\)是对应于\(\Delta x\)的点击增量
  • r是相对增长率系数。不同内容的相对增长率是不同的,因为它主要依赖于内容质量

如果PV值x很小,我们可以将CLICK增长率看成是与PV成比例关系,因为越多的曝光通常会带来越多的点击:

\[\frac{y(x+\Delta x) - y(x)}{\Delta x} \approx r * y(x)\]

…(1)

然而,当PV value x很大时,点击会具有“饱和”效应,增长率会递减。正式的,它可以写成:

\[\frac{y(x+\Delta x) - y(x)}{\Delta x} < 0\]

…(2)

与paper[13]相类比,我们使用一个关于y(x)的线性递减函数,来描述“饱和”效应,例如:

\[\frac{y(x+\Delta x) - y(x)}{\Delta x} = r(1 - \frac{y(x)}{y_m}) y(x)\]

…(3)

其中:\(y_m\)被称为中心点击值(pivot CLICK value)。

当PV超过对应于\(y_m\)的PV量时,相对增长率会为负,例如:如果\(y(x) > y_m, 1-\frac{y(x)}{y_m} < 0\)。其中:r和pivot CLICK \(y_m\)是核心content-based参数,表示内容的属性

假设:\(\Delta x \rightarrow 0\),那么等式(3)将是一个在CLICK和PV值间的ODE常微分方程模型:

\[\frac{dy}{dx} = r ( 1 - \frac{y}{y_m}) y\]

…(4)

等式(4)的解为:

\[y = \frac{y_m y_0}{y_0 - (y_0 - y_m) e^{-r(x - x_0)}}\]

…(5)

其中:

  • \(x_0\)和\(y_0\)表示初始PV和初始CLICK。

  • 如果\(y_0 < y_m\),CLICK value会增长,随着\(x \rightarrow \infty\)时会渐近逼近\(y_m\);
  • 如果\(y_0 > y_m\),CLICK value会递减,随着\(x \rightarrow \infty\)仍会渐近逼近\(y_m\)

事实上\(y = y_m\)是等式(4)的平衡点(equilibrium)。

因而,\(y = y_m\)的均衡点(equilibrium)。因而,等式(4)的正均衡点\(y=y_m\)是全局稳定的,也就是说,对等式(4)的y(x)求解\(\lim_{n \rightarrow \infty} y(x) = y_m\),其中任意初始值\(x_0\)。

为了描述每个视频内容的CTR趋势,在等式(5)中的参数r和\(y_m\)需要通过历史PV和CLICK数据来拟合。我们将所有内容相关的因子归属为这些参数,期望它们来表示内容自己的CTR趋势。我们使用least square fitting方法来估计这些参数。

3.3 曝光分配公式

基于3.2节提出的pv-click-ctr预估模型,该子部分目标是,开发一个最优化程序模型来解决PV分配问题。假设:

  • \(x_{ijk}\)表示内容\(q_i\)从位置\(d_{jk}\)获得的PV value
  • \(f(x_{ijk})\)是对应于\(x_{ijk}\)对应的CLICK value,它可以使用等式(5)进行计算

我们的目标是:通过最优化\(x_{ijk}\)来最大化总视频观看数(video views: VV),以及最小化CTR的方差(variance)。通过分析最优化目标和约束,分配问题可以被定义如下:

\[max \sum\limits_{i=1}^m \sum\limits_{j=1}^n r_{ij} f(x_{ijk}), k \in Z_{\Theta(s_j)} \\ min \frac{\sum\limits_{i=1}^m (p_i - P)^2}{m - 1} \\ p_i = \frac{\sum_{j=1}^n f(x_{ijk})}{\sum_{j=1}^n x_{ijk}}, \forall i \in \lbrace 1, 2, \cdots, m \rbrace, \forall k \in Z_{\Theta(s_j)} \\ P = \frac{\sum\limits_{i=1}^m \sum\limits_{j=1}^n f(x_{ijk})}{\sum\limits_{i=1}^m \sum_{j=1}^n x_{ijk}}, \forall k \in Z_{\Theta(s_j)}\]

….(6)(7)(8)(9)

约束条件为:

s.t.

\[\sum\limits_{i=1}^m x_{ijk} < C(s_j), \forall j \in \lbrace 1, 2, \cdots, n \rbrace, \forall k \in Z_{\Theta(s_j)}\]

…(10)

\[\sum\limits_{i=1}^m \sum_{j=1}^n x_{ijk} < R, \forall k \in Z_{\Theta(s_j)}\]

…(11)

\[x_{ijk} < max \lbrace C(d_{jl}), l \in Z_{\Theta(s_j)} \rbrace, \\ \forall i \in \lbrace 1,2, \cdots, m\rbrace, \forall j \in \lbrace 1,2, \cdots, n\rbrace, \forall k \in Z_{\Theta(s_j)}\]

…(12)

\[|C_{jk}| \leq k, C_{jk} = \lbrace x_{ijk} | x_{ijk} \geq C(d_{jk}), 1 \leq i \leq m \rbrace, \\ \forall j \in \lbrace 1, 2, \cdots, n \rbrace, \forall k \in Z_{\Theta(s_j)}\]

…(13)

其中:

  • \(r_{ij}\):是对于内容\(q_i\)在drawer \(s_j\)中CLICK和VV间的正相关系数
  • \(C(s_j)\):是drawer \(s_j\)的总PV资源数
  • R:是drawer set S的总可供资源数

等式(6)的最优化目标是在所有drawers上最大化总VVs。其它最优化目标是,在最小化等式(7)-(9)描述的的不同内容间的CTR variance。

  • 等式(10)描述的约束意味着:内容集合Q在drawer \(s_j\)中的资源分配不能超过它的资源容量(capacity)
  • 等式(11)表示drawer set S的资源约束
  • 等式(12)是位置资源约束,它表示资源分配给在任意drawer中的一个内容,不能超过它的最大位置资源容量
  • 等式(13)可以确保它们必须是一个drawer的一且只有一个位置分配给一个内容,也就是说:我们不能在相同时间展示相同内容给用户。

4.GA-based内容分配算法

为了获得在第3节中建模的分配问题的最优或次优解,提出了一个遗传算法(Genetic Algorithm)GA分配算法,它是一个迭代算法,其中会嵌入pv-click-ctr预测模型。

注意,等式(6)-(13)中表示的PV分配问题,对应于一个多目标约束优化问题(MCOP: Multi-objective Constrained Optimization Problem),它的最优解是很难找出的。通常,一个MCOP可以通过加权法( weighting)被转化成一个单目标最优化问题,接着PV分配问题定义如下:

\[max \ g(X | \lambda) = \sum\limits_{i=1}^m \sum\limits_{j=1}^n r_{ij} f(x_{ij}) + \lambda \frac{1} {\frac{\sum\limits_{i=1}^m (p_i - P)^2}{m-1}} \\ p_i = \frac{\sum\limits_{j=1}^n f(x_{ij})}{\sum\limits_{j=1}^n x_{ij}}, \forall i \in \lbrace 1,2, \cdots, m \rbrace \\ P = \frac{\sum\limits_{i=1}^m \sum\limits_{j=1}^n f(x_{ij})}{\sum\limits_{i=1}^m \sum\limits_{j=1}^n x_{ij}}\]

…(14)(15)(16)

\[s.t. X \in \Omega\]

…(17)

其中:

  • \(\lambda\)表示weight参数
  • \(\Omega\)是等式(10)-(13)描述的决策(变量)空间
  • \(g(X \mid \lambda)\)是目标函数

应该注意的是,通过等式(14)-(17)建模的分配问题是一个组合优化问题,并且它是非线性和非平滑的。组合优化问题是,它的可行解集合是离散的。该问题是NP-hard完全问题,它在多项式时间内全局最优的求解是相当难的。像branch和bound的搜索算法可以退化成完全枚举,并且CPU时间需要求解,可能会在最坏情况下指数级增长。为了实际求解这样的问题,必须合理寻找合适的近似最优解。作为搜索一个近似最优解的经典算法,GA提供了一个可选的方法。不同于通用的GA,我们提出的GA框架包含了以下主要两个部分:

  • coding scheme考虑上ODE约束
  • 局部搜索操作(带elitist策略的选择、交叉和突变)

4.1 Coding Scheme和ODE-based Fitness

根据GA的常用框架,分配问题的解是一个染色体(chromosome)或个体(individual)。特别的,在我们问题中的chromosome是一个矩阵,其中,elements是从drawers的相应位置分配的PV value。chromosome会以两步生成:

  • 1) 对于任意内容\(q_i\),会生成一个关于PV values的排列\(x_i = [x_{i,1}, x_{i,2}, \cdots, x_{i,n}]\),其中\(x_i\)的长度为n (注:n为drawer模块数)
  • 2) 对于不同内容合并所有的排序,是为了形成关于chromosome的最终形式\(X= [x_1, x_2, \cdots, x_m]\). (注:m是内容数目)

在GA中,每个个体(individual)的适应度(fitness)函数的值,例如(fitness),是与生存(survival)概率是高度相关的。高适应度的个体相对于整体人口来说具有一个较高概率的被选中进行交配(mating),而低适应度的个体具有一个较低概率被选中。特别的,在该问题中的个体X的适应度(fitness)函数等于在等式(14)中定义的目标函数。需要注意的是,等式(14)的主要部分是\(f(x_{ij})\)。如上所述,\(f(x_{ij})\)是一个对应于PV value \(x_{ij}\)的CLICK value,它可以通过第3.2节提到的pv-click-ctr模型来获得。假设个体X的fitness函数是F(X),假设:\(U=\lbrace u_1, u_2, \cdots, u_l \rbrace\),以及\(V=\lbrace v_1, v_2, \cdots, v_l\rbrace\)分别表示历史天级PV数据和CLICK数据的集合。由于在等式(4)中定义的两个参数通过使用U和V的数据进行fit,假设\(l \geq 4\)。对于一个PV value \(x_{i,j} \in X\),寻找一个element \(u_k \in U\)如下:

\[u_k = argmin || u_{\bar{k}} - x_{i,j} ||, u_{\bar{k}} \in U\]

…(18)

根据等式(3),我们可以获得\(x_{i,j}\)的一个相应CLICK value:

\[f(x_{i,j}) = v_k + r(1 - \frac{v_k}{v_{max}}) v_k(x_{i,j} - u_k)\]

…(19)

其中,r和\(v_{max}\)是通过将来自U和V的数据作为input来fit的参数。接着根据等式(14),fitness function F(X)可以获得:

\[F(X) = g(X|\lambda)\]

…(20)

4.2 Elitist策略的局部搜索操作

局部搜索操作(local selection operation)涉及到一系列操作,比如:选择(selection)、突变(mutation)、交叉(crossover)。主要目标是,继承高质量基因到下一代中,并进一步提升计算效率以及全局收全敛的概率。

在选择阶段,我们会使用elitism策略来保留“好”基因到下一代中。具体的,假设\(X_u^k\)是在第k代的个体,对应\(X_u^k\)的下一代如下:

\[X_i^k = \begin{cases} X_u^k, & F(X_u^k) \geq F(X_i^{k-1}) \\ X_i^{k-1}, & \text{otherwise} \end{cases}\]

…(21)

这意味着,我们只要保留具有高fitness value的个体到下一代即可。

交叉操作会随机将高质量个体的基因片段进行随机交叉。交叉概率的范围推荐0.4-0.99. 我们使用Order Crossover(OX) strategy。

突变(mutation)操作在GA中具有探索效应,这被期望可以达到大概率的全局最优。通过突变操作,一个新的染色体会通过在交叉之后在染色体中变更某些基因的编码来生成。为了确保人口演进的稳定性,突变概率通常会设得更小的值。本paper使用一种自适应突变概率,如下所示:

\[p_m = \begin{cases} \frac{p_{max} \ (p_{max} \ - p_{min} \ )(F - F_{avg} \ )}{(F_{max} \ - F_{avg}\ )}, & F \geq F_{avg} \\ p_{max}, & F < F_{avg} \end{cases}\]

…(22)

其中\(p_{max}\)和\(p_{min}\)表示最大和最小突变概率,其中在本paper分别采用0.05和0.01. F是fitness function,\(F_{max}\)和\(F_{avg}\)是对于当前人口的fitness function的最大值和平均值。

5.实验

本节中,我们会基于以下的问题开展实验:

  • 提出的pv-click-ctr模型效要会好于在CLICK预测问题中的“smoothing CTR方法”吗?
  • GA中的elitist策略影响是如何的?
  • 曝光分配算法对比SOTA的人工策略效果如何?

为了回答上述问题,我们通过在线、离线实验进行验证。

5.1 实验Settings

为了测试ODE模型和提出的GA分配算法,我们会执行offline/online实验。offline和online实验会在Youku.com的电视剧频道的“最新热门(Latest Hits)”模块进行。对于离线实验,来自“Latest Hits”模块的真实流量日志会进行收集。由于在线数据非常大,我们只用了一个月的数据。对于在线实验(A/B testing),我们在线部署模型服务于30%的PVs,并使用60%的人工分配作为控制组。表1总结了关于配置的统计。

图片名称

表1: 离线和在线实验的基础信息

5.1.1 参数settings

表2展示了所有参数的settings,缺省通过粗体高亮。

图片名称

表2 参数settings

  • R:这里的模块总资源通过R来表示
  • Pop: 表示GA中使用的size
  • \(\theta\)用来控制终止条件
  • \(\lambda\)是GA中的参数,用来平衡两个目标

特别的,参数\(\alpha\)用于最小平方拟合法中,来减少overfitting. 在所有的实验中,我们会调节一个参数,并保持其余参数不变。

5.1.2 评估指标和对比方法

为了评估pv-click-ctr模型的效果,我们会利用Root Mean Square Error(RMSE)、以及绝对百分比误差(APE:)来作为评估指标。

\[RMSE(y, \hat{y}) = \sqrt{\frac{1}{N} \sum_{i=1}^N (y_i - \hat{y_i})^2} \\ APE(y_i, \hat{y_i}) = \frac{|| y_i - \hat{y_i}||}{y_i}\]

…(23)(24)

其中:

  • \(\hat{y_i} \in \hat{y}\):表示一天内一个视频内容的预测PV值 或者 预测CLICK值
  • \(y_i \in y\)是相应的实际PV值 或 CLICK值
  • N:表示测试天的数目

5.2 离线实验结果

5.2.1 pv-click-ctr模型效果

为了回答第1个问题,我们使用表1中的9个在线视频内容来测试pv-click-ctr模型的效果。我们选择[29]中提出的“smoothing CTR方法”作为baseline。这里的“smoothing CTR方法”使用一个empirical Bayes方法来处理层次化的天然数据。实验结果如表3所示。

图片名称

表3 pv-click-ctr模型与smoothing CTR方法在在线数据上的对比

在参数拟合pv-click-ctr模型之前,会预处理历史天级PV和CLICK数据以及参数。

  • (i) 采样过滤(Sample filtering)。我们在天级历史PV和CLICK数据序列中分别选择最大的增量子序列。
  • (ii) 参数预处理(Parameter preprocessing)。由于CLICK的饱和值\(y_m\)的幅度通常很大,相关系数r通常是一个很小的值,为了避免“大数吃掉小数(cecimals)”,需要在两个参数上分别执行数据转换。比如:\(y_m \rightarrow log_{10} y_m, r \rightarrow e^r\)
  • (iii) 样本预处理(Sample preprocessing)。为了避免当执行参数拟合时落入局部最优解,,可以在历史样本上进行数据转换:\(x \rightarrow log_{10} x, y \rightarrow log_{10} y\)

9个内容的点击预测曲线如图1所示,其中“REAL”意味着true value,“MEAN”是从smoothing CTR方法获得的预测结果。我们可以清楚看到,CTR具有与PVs的趋势,我们的模型可以定性捕获该模式。定性评估如表3所示,对比起在给定内容上的smoothing CTR方法,pv-click-ctr会执行更好。

图片名称

图1 9个内容在pv-click-ctr模型与smoothing CTR方法上的点击预测曲线

5.2.2 超参数灵敏度

我们会评估:使用离线数据,根据超参数\(\alpha\)的不同选择来影响pv-click-ctr模型在参数拟合中的效果。这里我们使用初始的5天数据来评估每个内容的初始参数,接着评估接着n天的结果。在该天之前该内容的所有数据会被预测,也会被使用。参数\(\alpha\)的选择为:

\[\alpha \in \lbrace 0.006, 0.008, 0.01, 0.05, 0.1 \rbrace\]

我们可以看到在表4中,RMSE的最佳平均值对于所有测试内容为\(\alpha=0.01\)。

图片名称

表4 超参数敏感度分析结果

5.2.3 GA算法的评估

我们在VV和PV上,对比了GA离线实验结果和在线数据。在线效果如表5所示,其中“REAL”是在线数据。如表5所示,对于5个给定的内容,GA在VV上达到了3.836%的平均APE,这表明在GA中pv-click-ctr模型的功效。

图片名称

表5 在线数据和GA结果对比

5.2.4 GA中elitist策略的影响

为了回答第二个问题,我们开展实验表明了在GA上elitist策略的影响。下面,GA/E指的是没有elitist策略的GA。我们会通过使用在线历史数据来运行提出的算法GA和GA/E各十次。实验结果如表6所示,其中obj、vv和var分别意味着objective function、内容的total VV和CTR variance。从结果中,我们观察到:elitist策略对于GA具有一个重要影响,因为在10次运行中,GA在obj values和vv values上要胜过GA/E。GA也会获得一个比GA/E更好的CTR variance,因为它会在6/10中获得更小的var values。这是合理的,因为elitist策略会保留最好的解给下一代,这会让GA提升到一个更大的扩展上。这也表明elitist策略的潜力,它的效果可以进一步通过更多良好设计的模型而增强。

图片名称

表6 不同搜索策略的实验结果

表6中的index 1的objective value的evolution process如图2给出。从图2中,我们发现,当前最好的解会随着genreations的数目而增加。这在经验上意味着我们的算法会朝着最优解收敛。

图片名称

图2 当前最好解的变化趋势

5.3 在线实验结果

为了回答第3个问题,需进行在线实验。我们部署了pv-click-ctr模型,以及最优化框架到在线系统中,与已存在的GD系统(它可以通过操作专家进行人工操作)并列存在。我们在在线实验中主要关注两个指标:CTR variance和total CTR,它与3.3节中的公式一致,其中total CTR由下式给定:

\[CTR = \frac{\sum_{i=1}^m (click_i)}{\sum_{i=1}^m (pv_i)}\]

…(25)

其中,\(pv_i\)和\(click_i\)分别表示内容\(q_i\)的天级PV和CLICK。该系统会一直运行直到现在,我们只展示了在系统部署后的头7周的在线效果。

为了详细演示对比,表7展示了前30天结果的一个snapshot。出于数据安全性的目的,会使用一些转换来进行数据脱敏,无需影响结果比较。从表7所示,我们观察到GA在CTR variance和total CTR上在30天内要胜过人工策略。注意,GA在total CTR上达到了巨大提升,这表明了pv-click-ctr模型的优点。

图片名称

表7 30天内对于最优化策略和人工策略的A/B test结果

我们也提供了在7周内的统计对比结果,如表8所示。可以观察到,在CTR variance上的提升是巨大的(平均超过50%)。详细结果和整体结果两者都表明,在本paper中提出的内容的GD模型可以帮助我们比现有的GD系统做出更有效的决策,它要比当前解决方案更好。

图片名称

表8 最优化策略与人工策略在7周内的A/B test结果

# 6.结论

参考

1.介绍

最近几年,DNNs已经在推荐任务预测上达到了非常好的效果。然而,大多数这些工作集中在模型本身。只有有限的工作把注意力放到输入的特征方面,而它可以决定模型表现的上界(upper-bound)。在本工作中,我们主要关注于特征方面,特别是在电商推荐中的features。

为了确保offline training与online serving的一致性,我们通常在真实应用的两个enviorments中我们使用相同的features。然而,有一些有区分性的特征(discriminative features)会被忽略(它们只在训练时提供)。以电商环境中的CVR预测(conversion rate)为例,这里我们的目标是:估计当用户点击了该item后购买该item概率。在点击详情页(clicked detail page)上描述用户行为的features(例如:在整个页面上的dwell time)相当有用。然而,这些features不能被用于推荐中的online CVR预测,因为在任意点击发生之前预测过程已经完成。尽管这样的post-event features确实会在offline training记录。为了与使用privildeged information的学习相一致,这里我们将对于预测任务具有区分性(discriminative)、但只在训练时提供的features,称为priviledged features

使用priviledged features的一种简单方法是:multi-task learning,例如:使用一个额外的任务来预测每个feature。然而,在multi-task learning中,每个任务不必满足无害保障原则(no-harm guarantee)(例如:priviledged features可能会伤害原始模型的学习)。更重要的是,由于估计priviledged features比起原始问题[20]更具挑战性,很可能会与no-harm guarantee原则相冲突。从实际角度看,当一次使用数十个priviledged features,对于调整所有任务来说是个大挑战。

受LUPI(learning using priviledged information)【24】的启发,这里我们提出priviledged features distillation(PFD)来使用这些features。我们会训练两个模型:一个student和一个teacher模型。

  • student模型:与original模型相同,它会处理offline training和online serving的features。
  • teacher模型:会处理所有features,它包括:priviledged features。

知识会从teacher中distill出来(例如:在本工作中的soft labels),接着被用于监督student的训练,而original hard labels(例如:{0, 1})它会额外用来提升它的效果。在online serving期间,只有student部分会被抽出,它不依赖priviledged features作为输入,并能保证训练的一致性。对比起MTL,PFD主要有两个优点:

  • 一方面,对于预测任务,priviledged features会以一个更合适的方式来进行组合。通常,添加更多的priviledged features会产生更精准的预测
  • 另一方面,PFD只会引入一个额外的distillation loss,不管priviledged features的数目是多少,很更容易进行平衡

PFD不同于常用的模型萃取(model distillation:MD)[3,13]。

  • 在MD中,teacher和student会处理相同的inputs,teacher会使用比student更强的模型。例如,teachers可以使用更深的network来指导更浅的students。
  • 而在PFD中,teacher和student会使用相同的模型,但会在inputs上不同。PFD与原始的LUPI【24】也不同,在PFD中的teacher network会额外处理regular features。

图1给出了区别。

在本工作中,我们使用PFD到taobao推荐中。我们在两个基础预测任务上,通过使用相应的priviledged features进行实验。主要贡献有4部分:

  • 在taobao推荐中定义了priviledged features,并提出了PFD来使用它们。对比起MTL来独立预测每个priviledged feature,PFD会统一所有的模型,并提供一个一站式(one-stop)的解。
  • 不同于传统的LUPI,teacher PFD会额外使用regular features,它会更好地指导student。PFD与MD互补。通过对两者进行组合,例如:PFD+MD,可以达到更进一步的提升
  • 我们会通过共享公共输入组件(sharing common input components)来同步训练teacher和student。对比起传统的异步使用独立组件进行训练,这样的训练方式可以达到更好的效果,而时间开销会进一步减小。因此,该技术在online learning中是可用的,其中real-time计算需要。
  • 我们会在taobao推荐的两个基础预测任务上进行实验,例如:粗排中的CTR预测,以及粗排中的CVR预测。通过对interacted features(交叉特征)进行distill是不允许的,因为在粗排中的效率问题,以及在精排CVR中的post-event features,我们可以对比baseline达到极大的提升。在on-line A/B tests中,在CTR任务上点击指标可以提升+5%。在CVR任务中,conversion指标可以提升+2.3%。

2.相关distillation技术

在给出我们的PFD的详细描述前,首先介绍下distillation技术。总体上,该技术的目标是,帮助non-convex的student models来更好地训练。对于model distillation,我们通常会按如下方式写出objective function:

\[\underset{W_s}{min} (1-\lambda) * L_s(y, f_s(X; W_s)) + \lambda * L_d (f_t(X; W_t), f_s(X; W_s))\]

…(1)

其中:

  • \(f_t\)和\(f_s\)分别是teacher模型和student模型
  • \(L_s\)表示student pure loss,它具有已知的hard label y
  • \(L_d\)表示使用soft labels的loss,它由teacher产生
  • \(\lambda \in [0, 1]\)是超参数,用于对两个loss进行balance

对比起单独最小化\(L_s\)的original function,我们会期待在等式(1)中的additional loss \(L_d\)会帮助更好地训练\(W_s\),通过从teacher中对knowledge进行distilling得到。在[29]中,Pereyra et.将distillation loss看成是在student model上进行regularization。当单独以最小化\(L_s\)的方式训练\(f_s\)时,它被证明是获得overconfident preditions(过拟合的预测),会对training set过拟合。通过添加distillation loss,\(f_s\)也会逼近来自\(f_t\)的soft predictions。通过对outputs进行softening,\(f_s\)更可能会达到更好的泛化效果。

通常,teacher model会比student model更强大。teachers可以是一些models的ensembles,或者具有比student更多neurons、更多layers、或更广数值精度的DNNs。但也有些例外,比如,在[1]中,两个模型都会使用相同的结构,它们会相互学习,不同之处在于initialization以及处理训练数据的orders。

如等式(1)所示,teacher的参数\(W_t\)会在最小化期间fix住。我们可以将distillation技术划分成两个steps:首先使用已知的labels y训练teacher,接着通过最小化等式(1)来训练student。在一些应用中,模型会花费相当长的时间才收敛,等待teacher像等式(1)一样准备好是不实际的。作为替代,一些工作会尝试同步训练teacher和student【1,38,39】。除了像等式(1)那样从final output进行distilling之外,也可以从middle layer上进行disitll,例如:[30]尝试从intermediate feature maps进行distill,可以帮助训练一个deeper和thinner network。

除了从更复杂模型中对knowledge进行distill外,[24]提出从previledged information \(X^*\)上进行distill,它被认为是使用priviledged information(LUPI)进行学习。loss function接着变为:

\[\underset{W_s}{min} (1-\lambda) * L_s (y, f(X; W_s)) + \lambda * L_d (f(X^*; W_t); f(X; W_s))\]

…(2)

在[37]中,wang et使用LUPI来image tag推荐。除了teacher和student网络外,他们会额外学习一个discriminator,它会确认student更快地学习真实数据分布。Chen 使用LUPI来review-based 推荐。他们也会使用advrsarial training来选择informative reviews。另外,为了达到更好的效果,许多工作会在相对小的数据集上进行验证。但在工业级数据集上,仍有许多未知,这些技术需要在min-max game中达到均衡。

3.taobao推荐中的Priviledged features

图片名称

图2 taobao推荐总览。我们采用一个cascaded learning框架来select/rank items。在粗排中, interacted features(通常也是discriminattive)会被禁止,因为他们会在serving时极大增加时耗。一些有表征性的features会在下面部分演示

为了更好地理解priviledged features,我们首先如图2所示给出taobao推荐的一个总览。在工作推荐中通常这么做,我们采用cascaded 学习框架。在items呈现给用户前,有3个stages来select/rank items:candidate generation、coarse-grained ranking、fine-grained ranking。为了在效率和accuracy间做出一个好的trade-off,越往前的cascaded stage,会采用复杂和高效的模型,对items进行scoring会具有更高的时延。在candidate generation stage,我们会选择\(10^5\)个用户可能会点击或购买的items。总之,candidate genreation会从多个sources进行混合而来,比如:协同过滤、DNN模型等。在candidate generation之后,我们会采用两个stage进行ranking,其中PFD会在这时使用

在coarse-grained ranking stage中,我们主要会通过candidate generation stage来估计所有items的CTRs,它们接着被用来选择top-k个最高的ranked items进入到下一stage。预测模型的input主要包含了三个部分。

  • 第一部分:用户行为,它会记录用户点击/购买items的历史。由于用户行为是有序的,RNNs或self-attention会通常被用来建模用户的long short-term interests。
  • 第二部分:user features,例如:user id、age、gender等。
  • 第三部分:item features,例如:item id、category、brand等。

通过该工作,所有features都会被转换成categorical type,我们可以为每个feature学习一个embedding。

在粗排阶段,prediction model的复杂度会被严格限制,以便让上万候选在ms内完成。这里,我们使用inner product模型来对item scores进行measure:

\[f(X^u, X^i; W^u, W^i) \triangleq <\phi_{W^u}(X^u), \phi_{W^i}(X^i)>\]

…(3)

其中:上标u和i分别表示user和item。

  • \(X^u\):表示user behavior和user features的一个组合
  • \(\phi_W(\cdot)\)表示使用学到参数的非线性映射
  • \(W_{\cdot}<\cdot, \cdot>\)是内积操作

由于user侧和item侧在等式(3)中是独立的。在serving期,我们会事先离线计算关于所有items的mappings \(\phi_{W^i}(\cdot)\)。当一个请求到来时,我们只需要执行一个forward pass来获得user mapping \(\phi_{W^u}(X^u)\),并计算关于所有candidates的inner product,它相当高效。细节如图4所示。

如图2所示,粗排不会使用任何交叉特征,例如:用户在item category上在过去24小时内的点击等。通过实验验证,添加这样的features可能大大提高预测效果。然而,这在serving时会极大地增加时延,因为交叉特征依赖user和指定的item。换句话说,features会随着items或users的不同而不同。如果将它们放到等式(3)中的item或user侧。mappings \(\phi_w(\cdot)\)的inference需要执行和候选数一样多的次数,例如:\(10^5\)次。总之,non-linear mapping \(\phi_W(\cdot)\)的计算开销要比简单的inner product大许多阶。在serving期间使用交叉特征是不实际的。这里,我们将这些交叉特征看成是:在粗排CTR预测的priviledged features

在精排阶段,除了在粗排中也会做的CTR预估外,我们也为所有候选预估CVR,例如:如果用户点击某个item后会购买该item的概率。在电商推荐中,主要目标是最大化GMV(商品交易总量),它可以被解耦成CTR x CVR x Price。一旦为所有items估计CTR和CVR,我们可以通过expected GMVs来对它们进行排序来最大化。在CVR的定义中,很明显,用户在点击item详情页上的行为(例如:停留时长、是否观看评论、是否与卖者进行交流等),对于预测来说相当有用。然而,在任何future click发生前,CVR必须要对ranking进行估计。描述在详情页上用户行为的features在inference期间并没有提供。这里,我们可以将这些features表示成priviledged features来进行CVR预测。为了更好地理解它们,我们给出图3进行演示。

图片名称

图3 描述了clicked item的详情页上的用户行为。包括没有展示的dwell time,这些features对于CVR预测来说是相当有信息量的(informative)。然而,在serving时,如左子图所示,在任意item被点击之前,我们不必使用CVR来对所有candidate items进行rank。对于CVR预测,我们将这些features表示成priviledged features

4.Priviledged Feature Distillation

如等式(2)所示,在原始的LUPI,teacher依赖于priviledged information \(X^*\)。尽管信息量大,在本工作中的priviledged featues只能部分描述用户的偏好。使用这些features的表现要比使用常规特征(regular features)要差。另外,基于priviledged features的预测可能有时会被误导(misleading)。例如,对于顾客来说,通常会在昂贵item上花费更多时间来最终决定,而这些items的转化率相当低。当进行CVR估计时,LUPI的teacher会依赖于priviledged features(例如:停留时间)做出预测,但不考虑regular features(例如:item price),这会导致在昂贵items上做出false positive predictions。为了缓和它,我们会额外将常规features feed给teacher model。等式(2)的原始function可以修改如下:

\[\underset{min}{W_s} (1-\lambda) * L_s (y, f(X; W_s)) + \lambda * L_d( f(X, X^*; W_t), f(X; W_s))\]

…(4)

通常,添加更多信息(例如:更多features),会得到更精准的predictions。teacher \(f(X, X^*; W_t)\)这里期望会比sutdent \(f(X; W_s)\)、或者LUPI \(f(X^*; W_t)\)的teacher更强。在上述场景上,通过考虑上priviledged features和regular features,可以使用停留时长(dwell time)来区分在不同昂贵items上的偏好程度。teacher会有更多的知识来指导student,而非误导它。通过以下实验进行验证,添加regular features到teacher中是non-trivial的,它可以极大提升LUPI的效果。从那以后,我们将该技术表示成PFD来区别LUPI。

如等式(4)所示,teacher \(f(X, X^*; W_t)\)会优先训练。然而,在我们的应用中,单独训练teacher model会花费一个较长时间。使用像等式(4)这样的distillation是相当不实际的。更可行的方式是,像[1,38,39]的方式同步地训练teacher和student。objective function接着被修改如下:

\[\underset{W_s, W_t}{min} (1-\lambda) * L_s(y, f(X;W_s)) + \lambda * L_d(f(X,X^*;W_t), f(X;W_s)) + L_t(y, f(X, X^*; W_t))\]

…(5)

尽管会节省时间,同步训练可能不稳定(un-stable)。在early stage时,teacher模型没有被well-trained,distillation loss \(L_d\)可能会使student分心(distract),并减慢训练。这里我们通过一个warm up scheme来缓和它。在early stage时我们将等式(5)的\(\lambda\)设置为0,从那以后将它固定到一个pre-defined value,其中swapping step可以是个超参数。在我们的大规模数据集上,我们发现,这种简单的scheme可以良好地运转。不同于相互学习(mutual learning),我们只允许student来从teacher那进行学习。否则,teacher会与student相互适应,这会降低效果。当根据teacher参数\(W_t\)分别计算gradient时,我们会触发distillation loss \(L_d\)。算法1使用SGD更新如下。

根据该工作,所有模型都会在parameter server系统上进行训练,其中,所有参数都会存储在servers上,大多数计算会在workers上执行。训练速度主要决取于在workers上的计算负载以及在workers和servers间的通信量。如等式(5)所示,我们会一起训练teacher和student。参数数目和计算会加倍。使用PFD进行训练可能会比在student上单独训练更慢,这在工业界是不实际的。特别是对于在线学习,会要求实时计算,采用distillation会增加预算。这里我们会通过共享在teacher和student的所有公共输入部分来缓和该问题。由于所有features的embeddings会占据在servers上的大多数存储,通过共享通信量可以减小一半。该计算可以通过共享用户点击/购买行为的处理部分来减小,它的开销较大。正如以下实验所验证的,我们可以通过sharing来达到更好的表现。另外,对比起单独训练student,我们只会增加一些额外的时间,对于online learning来说这会使得PFD更适应些(adoptable)。

扩展:PFD+MD

如图1所示,PFD会从priviledged features中distill知识。作为对比,MD会从更复杂的teacher model中distill知识。两个distillation技术是互补的。一个天然扩展是,将它们进行组合来构成一个更复杂的accurate teacher来指导student。

图片名称

图1 MD与PFD。在MD中,knowledge会从更复杂的模型中distill出来。在PFD中,knowledge会同时从previledged和regular features中进行distill。PFD也会与使用priviledged information(LUPI)的original learning有所不同,其中teacher只处理priviledged features

在粗排的CTR prediction中,如等式(3)所示,我们使用inner product模型来在serving上增加效率。事实上,inner product模型会被认为是泛化的MF(gnerelized matrix factorization)。尽管我们正使用非线性映射\(\Phi_W(\cdot)\)来转移user和item inputs,该模型能力天然受限于内积操作的bi-linear结构。DNNs,它可以逼近任意函数,被认为是对于在teacher中的inner product模型的一个替代。事实上,如【22】中的定义1所示,乘积操作可以通过一个two-layers的NN(在hidden layer上只有4个neurons)来逼近任意小。因此,使用DNN的表现被认为是inner-product模型的下界(lower-bounded)。

图片名称

图4

在PFD+MD中,我们也采用DNN模型作为teacher network。事实上,这里的teacher model与我们在精排CTR预测使用的模型相同。本任务中的PFD+MD可以被认为是从精排中distill知识,来提升粗排。为了更好地演示,我们在图4中给出了整个框架。在serving期间,我们会只抽取student部分,它依赖于priviledged features。由于所有items的mappings \(\phi_{W^i} (X^i)\)是与users相互独立的,我们会事先对它们进行离线计算。当一个请求过来时,user mapping \(\phi_{W^u}(X^u)\)会首先计算。这之后,我们会使用所有items的mappings(它们从candidate generation阶段生成)来计算inner-product。top-k得分最高的items接着被选中并被feed给精排。基本上,我们只要执行一个forward pass来获得user mapping,并在user和所有candidates间执行高效地inner product操作,它在计算方面相当友好。

图片名称

图5

5.实验

在taobao推荐上做了实验,目标是回答以下的研究问题:

  • RQ1: PFD在粗排的CTR任务上的表现,以及在精排CVR上的表现?
  • RQ2: 对于独立的PFD,我们可以通过将PFD与MD进行组合来达到额外的提升?
  • RQ3: PFD对于等式(5)中的超参数\(\lambda\)敏感吗?
  • RQ4: 通过共享公共输入部件(),同时训练teacher和student的效果是什么?

5.1 实验setting

5.2 粗排CTR

5.3 精排CVR

5.4 RQ3-4

6.结论

参考

微信在《Deep Feedback Network for Recommendation》提出了DFN。

摘要

显式与隐式反馈可以影响关于items的用户意见,这对于学习用户偏好来说是必要的。然而,大多数当前的推荐算法主要关注于隐式正反馈(implicit positive feedbacks: 例如:click),忽略了其它有信息的用户行为。在本paper中,我们的目标是:联合考虑explicit/implicit以及positive/negative feedbacks来学习用户的无偏偏好。特别的,我们提出了一种新的Deep feedback network(DFN)来建模click、unclick和dislike行为。DFN具有一个内部feedback interaction组件,它可以捕获用户行为间的细粒度交叉(fine-grained interactions),一个额外的feedback interaction组件可以使用精准但相对少的feedbacks(click/dislike)来从丰富但带噪声的feedbacks(unclick)中抽取有用信息。在实验中,我们在wechat top stories的推荐系统上,对数百万用户做了实验。DFN带来了极大的提升。源代码为:https://github.com/qqxiaochongqq/DFN

1.介绍

个性化推荐系统的目标是,为用户根据它们的偏好提供定制的items。它们在视频和电商业被广泛使用。

推荐系统中大量使用user-item interactions来进行个性化。这些重要的信息主要有两大类:显式反馈(explicit feedback)和隐式反馈(implicit feedback):

  • 显式反馈(explicit feedback)来自于用户对items的直接意见(比如:评分、like/dislike等)。它可以很精准地表示用户的真实偏好,而收集这样的feedback相当不容易。
  • 隐式反馈(implicit feedback)主要来自于具有暗示非直接意见的用户行为(例如:click或unclick)。在真实推荐系统中,很容易从大量用户行为中收集这样的隐式反馈。隐式反馈(implicit feedbacks)会混杂着许多其它内在的noises,以及少量的真实负反馈,这会损害学习用户的无偏偏好.

最近,推荐系统通常会将个性化推荐看成是一个CTR预测任务。因此很自然地,大多数推荐算法主要关注于隐式正反馈(点击),这在实际中很容易获取。这些模型会直接使用点击行为和CTR目标进行最优化,它会产生以下的问题:

  • 首先,CTR目标的objectives通常关注于:用户喜欢什么,忽略掉用户不喜欢什么。简单依赖于这些隐式正反馈(implicit positive feedbacks)会使得模型趋向于提供均匀的(homogeneous)、短视(myopic)的结果,这会伤害用户体验。因此,negative feedbacks应在推荐中被考虑
  • 第二,除了被动地接受由模型选中的信息外,用户也需要有效和高效的反馈机制来激活与推荐系统的交互。再者,由于用户的implicit feedbacks与它的真实偏好(点击并不总是意味着喜欢)间存在gap。它也证实了explicit feedbacks的必要性。

多个explicit/implicit和positive/negative feedbacks可以互补,并影响用户的无偏偏好。有一些工作:使用隐式反馈和显式反馈的CF(Liu 2010)、多任务学习(Hadash 2018)。然而,这些工作中,negative feedbacks通常会被忽略,或者只存在显式反馈(这很精准、但量很少)。一些工具会考虑unclick或missing行为作为隐式负反馈来乘上负信号(negative signals)。不幸的是,在这些隐式负反馈(implicit negative feedbacks)中的noises会严格限制效果表现,因此,这些隐式负反馈会由许多除了dislike之外的原因造成。

图片名称

图1

。。。

2.相关工作

。。。

3.方法

我们的目标是,将多个explicit/implicit和positive/negative feedbacks进行联合考虑来学习用户无偏偏好。特别的,我们提出了DFN模型,它会收集用户历史行为中的三种类型的feedbacks:

  • 隐式正反馈(implicit positive feedbacks):implicit positive feedbacks是在大规模推荐中被广泛使用的feedbacks,它在量级和质量上均比较满意。根据大多数conventional模型,我们考虑点击行为序列 \(\lbrace c_1, \cdots, c_{n_1}\rbrace\)作为在DFN中使用的implicit positive feedback。
  • 显式负反馈(explicit negative feedbacks):Explicit feedbacks是高质量的,但在真实推荐中很少。我们会使用与每个item相关的dislike按钮来收集explicit negative feedback序列 \(\lbrace d_1, \cdots, d_{n_2}\rbrace\)
  • 隐式负反馈(implicit negative feedbacks):我们会将曝光未点击(impressed but unclick)的行为序列\(\lbrace u_1, \cdots, u_{n_3}\rbrace\)作为implicit negative feedbacks。这种未点击行为在所有feedbacks类型中占绝大多数,而它会与噪声和false-negative信号相混杂。

CFN尝试使用高质量的click和dislike behaviors作为instructors来从未点击行为中抽取有用信息。在DFN中很容易添加其它类型的feedbacks

3.1 整体架构

Deep feedback network主要包含两个模块,称为:deep feedback interaction模块与feature interaction模块。首先,deep feedback interaction模块会采用多个feedbacks作为inputs,使用内部和外部的feedback interactions来抽取用户无偏的positive和negative偏好。第二,refined feedback features会与其它有信息特征(比如:user profiles、item features以及contexts)进行组合。我们会实现Wide、FM和Deep组件来进行特征聚合(feature aggregation)。最终,feature interaction模块的outputs会feed给full connected和softmax layers来进行positive和negative losses的模型最优化。图2(a)展示了DFN的整体架构。

图片名称

图2

3.2 DFN module

图2(b)中的deep feedback interaction模块会采用对于target item的implicit positive(click),explicit negative(dislike)以及implicit negative(unclick) feedbacks作为inputs。我们会使用两个components来从inside和between不同类型的feedbacks的交叉中进行学习。

Internal Feedback Interaction Component

对于一个特定类型的feedback,该component会关注target item和individual behaviors间的交叉。我们会根据Vaswani[2017]的行为使用一个multi-head self-attention。所有的行为特征包含了它们的item embeddings和position embeddings,会被投影到一个联合语义空间(joint semantic space)中来形成behavior embeddings。以点击行为为例,我们会将target item t与点击序行的behavior embeddings进来组合来形成输入矩阵 \(B_c = \lbrace t, c_1, \cdots, c_{n_1} \rbrace\)。query, key, value矩阵可以通过如下进行计算:

\[Q = W^Q B_c, K=W^K B_c, V=W^V B_c\]

…(1)

其中,\(W^Q, W_K, W^V\)是投影矩阵。我们接着通过下面方式计算self-attention:

\[Attention(Q, K, V) = softmax(\frac{Q^T K}{\sqrt{n_h}}) V\]

…(2)

其中,\(n_h\)是query、key、value的维度。总共h个multi-heads的第i个head可以通过如下进行计算:

\[head_i = Attention(W_i^Q Q, W_i^K K, W_i^V V)\]

…(3)

\(W_i^Q, W_i^K, W_i^V \in R^{n_k \times n_k / h}\)是第i个head的weighting矩阵。self-attention的最终输出矩阵是:

\[F_c = concat(head_1, \cdots, head_h) \cdot W^O\]

…(4)

\(W_O \in R^{n_h \times n_h}\)是投影矩阵。最终,我们通过在\(F_c\)中所有n+1的output embeddings上进行一个average pooling来生成implicit positive feedback embedding \(f_c\):

\[f_c = Average_pooling(F_c), f_c \in R^{n_h}\]

…(5)

我们也会使用相同的带type-specific hyper-params的transformer来生成explicit negative feedback embedding \(f_d\)以及从dislike和unclick behaviors中的implicit negative feedback embedding \(f_u\)。internal feedback interaction component可以很好地捕获在每种类型的feedback序列中target item和behaviors的behavior-level interactions。它可以提供与target item相关的user positive和negative偏好。

External Feedback Interaction Component

隐式负反馈(implicit negative feedbacks)是够多的,但有非常noisy。总之,unclick behaviors看起来暗示着negative signals,而曝露给用户的items则需通过特定策略进行选择,它也会包含来自粗粒度的用户兴趣。external feedback interaction组件的目标是,根据在click和dislike行为上的强反馈,来区别用户在未点击行为(unclick behaviors)上的真实喜欢(like)和不喜欢(dislike)。特别的,我们通过两个vanilla attentions,它会考虑隐式正反馈和隐式负反馈的embeddings \(f_c\)和\(f_d\)作为instructors来指导来自unclick序列\(u_1, \cdots, u_{n_3}\)。我们将unclick-dislike interaction embedding \(f_{ud}\)使用dislike和unclick行为公式化:

\[f_{ud} = \sum\limits_{i=1}^{n_3} \alpha_i u_i, \alpha_i = \frac{f(f_d, u_i)}{\sum_{j=1}^{n_3} f(f_d, u_j)}\]

…(6)

其中,weighting score function \(f(a,b)\)定义如下:

\[f(a, b) = MLP(concat(a, b, a-b, a\odot b))\]

…(7)

我们将\(\odot\)看成是element-wise product,并使用一个2-layer Multi-layer perceptron (MLP)。\(f_d\)包含了user的强的negative偏好,它从与target item相关的显式负反馈(explicit negative feedbacks)进行重定义得到。它会帮助vanilla attention来抽取用户真实dislike和unclick行为的items。我们也会使用隐式正反馈(implicit positive feedback)的embedding \(f_c\)来放大在unclick行为中positive的声音。

\[f_{uc} = \sum\limits_{i=1}^{n_3} \beta_i u_i, \beta = \frac{f(f_c, u_i)}{\sum_{j=1}^{n_3} f(f_c, u_j)}\]

…(8)

最后,我们将所有5种feedback features组合来构建最终的refined feedback feature \(f_{Feed}\):

\[f_{Feed} = \lbrace f_c, f_d, f_u, f_{uc}, f_{ud}\rbrace\]

…(9)

隐式正反馈与显式负反馈\(f_c\)和\(f_d\)被看成是强的positive和negative信号,而其余unclick-related feedbacks则被看成是弱信号(weak signals)。

3.3 Feature Interaction Module

在feature interaction中,我们将refined feedback feature与其它features(包括:user profiles、item features、以及context)进行refined。根据Guo[2017],我们将这些sparse features进行group到m个fields中 \(\lbrace x_1, \cdots, x_m \rbrace\)包括:continuous fields(例如:age)和categorical fields(例如:location)。所有的fields被表示成one-hot embeddings。一个lookup table被用于生成所有fields的dense feature:\(\lbrace f_1, \cdots, f_m \rbrace\)。我们为feature interaction实现了Wide, FM以及Deep components。

Wide Component

Wide component是一个泛化的linear model,它在推荐中被广泛使用。Wide component \(y^{Wide}\)的output是一个m-dimensional的vector,其中,第i个element被计算成:

\[y_i^{Wide} = w_i^T x_i + b_i, w_i, x_i \in R^{n_{f_i}}\]

…(10)

\(w_i\)是第i个one-hot fields embedding \(x_i\)的weighting vector,\(b_i\)是bias,\(n_{f_i}\)是\(x_i\)的维度。

FM Component

FM component会捕获所有features间的二阶交叉。FM的input embeddings是所有dense features的组合,最终的refined feedback feature为:\(F' = \lbrace f_1, \cdots, f_m, f_{Feed}\rbrace\)。我们根据Bi-interaction layer,并根据下面方式生成output embedding \(y^{FM}\):

\[y^{FM} = \sum\limits_{i=1}^{m+5} \sum\limits_{j=i+1}^{m+5} f_i^' \odot f_j^', f_i^', f_j^' \in F'\]

…(11)

Deep component

在Deep component中,我们实现了一个2-layer MLP来学习高阶feature interactions。input是dense features和feedback features的concatenation,可以表示成:\(f^{(0)} = concat(f_1, \cdots, f_m, f_{Feed})\)。我们有:

\[y^{Deep} = f^{(2)}, f^{(i+1)} = ReLU(W^{(i)} f^{(i)} + b^{(i)})\]

…(12)

其中,\(f^{(i)}\)是第i个layer的output embedding。\(W^{(i)}\)是weighting matrix,\(b^{(i)}\)是第i个layer的bias。

最终,我们从三个components中将所有outputs进行concat起来来生成aggregated feature embedding y:

\[y = concat(y^{Wide}, y^{FM}, y^{Deep})\]

…(13)

3.4 Optimization Objective

我们使用click、unclick以及dislike行为来进行监督训练。预测的点击概率与aggregated feature embedding y通过下式计算:

\[p(x) = \sigma(w_p^T y)\]

…(14)

\(w_p\)是weighting vector,\(\sigma(\cdot)\)是sigmoid function。DFN的loss function包含了三个部分:click、unclick、dislike行为:

\[L = -\frac{1}{N} (\lambda_c \sum\limits_{S_c} log p(x) + \lambda_u \sum\limits_{S_u} log(1 - p(x)) + \lambda_d \sum\limits_{S_d} log(1-p(x)))\]

…(15)

该训练集具有N个实例,分组成:click set \(S_c\),dislike set \(S_d\)以及unclick set \(S_u\)。\(\lambda_c, \lambda_d, \lambda_u\)是不同losses的weights来measure不同feedbacks的重要性。

4.实验

参考