Domain-Aware DNN介绍

Reading time ~1 minute

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

参考

Netflix关于cosine相似度的讨论

Netflix团队发了篇paper《Is Cosine-Similarity of Embeddings Really About Similarity?》,对cosine相似度做了相应的研究。# 摘要余弦相似度(cosine similarity)是指两个向量间夹角的余弦...… Continue reading

Meta AdaTT介绍

Published on January 02, 2024

SATrans介绍

Published on December 02, 2023