weibo在《FiBiNET: Combining Feature Importance and Bilinear feature Interaction for Click-Through Rate Prediction》提出了FiBiNET。

1.摘要

3.提出的模型

我们的目标是,以细粒度方式学习features的importance和feature intreactions。因此,在CTR预估任务中提出了Feature Importance and Bilinear feature Interaction NETwork(FiBiNET)。

在本节中,我们会描述在图1中所描述的模型。为了简单,我们忽略LR部分。提出的模型包含了以下部分:

  • Sparse input layer
  • embedding layer
  • SENET layer
  • Bilinear-Interaction layer
  • combination layer
  • multiple hidden layers
  • output layer

图片名称

图1 FiBiNET的结构

sparse input layer和embedding layer与DeepFM【4】中相同,它会为input features采用一个sparse representation,并将raw feature input嵌入到一个dense vector中。

SENET layer可以将一个embedding layer转换成SENET-Like embedding features,它会帮助增强feature辩别力。

随后的Bilinear-Interaction layer会分别在原始embedding和SENET-Like embedding上建模二阶特征交叉。

接着,这些交叉特征会通过一个combination layer进行拼接,它会将Bilinear-Interaction layer的输出进行合并。最后,我们会将cross features进行feed给一个DNN网络,该网络会输入prediction score。

3.1 Sparse Input和Embedding layer

sparse input layer和embedding layer会被广泛用于deep learning based的CTR模型中。sparse input layer会为原始的input features采用一个sparse representation。该embedding layer可以将sparse feature嵌入到一个低维、dense的real-value vector上。embedding layer的output是一个宽拼接的field embedding vector:

\[E = [e_1, e_2, \cdots, e_i, \cdots, e_f]\]

其中:

  • f表示fields的数目
  • \(e_i \in R^k\)表示第i个field的embedding
  • k是embedding layer的维度

3.2 SENET Layer

据我们所知,不同的features对于目标任务来说具有许多importances。例如,当我们预测一个人的收入时,feature“职业”要比feature“喜好”更重要。受计算机视觉中SENET的成功所影响,我们引入一个SENET机制,让模型更关注feature importance。对于特定的CTR预估任务,我们可以动态增加importances的权重,并通过SENET机制减少无信息量特征(uninformative features)的weights。

我们将feature embeddings作为输入,SENET会为field embeddings生成weight vector \(A = \lbrace a_1, \cdots, a_i, \cdots, a_f \rbrace\),接着将原始embedding E与vector A进行rescale,得到一个新的embedding(SENET-Like embedding):

\[V = [v_1, \cdots, v_i, \cdots, v_f]\]

其中:

  • \(a_i \in R\)是一个标量,它表示第i个field embedding \(v_i\)的weight,
  • \(v_i \in R^k\)表示第i个field的SENET-Like embedding,\(i \in [1,2, \cdots, f], V \in R^{f \times k}\),其中k是一个embedding size,f是一个fields的数目。

图片名称

图2 SENET layer

如图2所示,SENET由三个steps组成:squeeze step(压缩)、excitation step(激活)、re-weight step(调权)。这三步细节描述如下:

Squeeze

该step用于计算每个field embedding的”汇总统计信息(summary statistics)”。具体来说,我们使用pooling方法:比如max或mean来将原始embedding \(E = [e_1, \cdots, e_f]\)压缩到一个statistic vector \(Z = [z_1, \cdots, z_i, \cdots, z_f]\),其中:\(i \in [1, \cdots, f]\),\(z_i\)是一个scalar value,它表示关于第i个feature representation的全局信息。\(z_i\)可以被计算为以下的全局mean pooling:

\[z_i = F_{sq}(e_i) = \frac{1}{k} \sum\limits_{t=1}^k e_i^{(k)}\]

…(1)

在原始SENET paper[8]中的squeeze function是max pooling。然而,我们的实验结果表明:mean-pooling效果要好于max pooling

Excitation

该step可以基于statistic vector Z来学习每个field embedding的weight。我们使用两个FC layers来学习该weights。第一个FC layer是一个降维layer,它具有参数\(W_1\),使用一个超参数衰减率r,接着使用\(\sigma_1\)作为非线性函数。第二个FC layer会使用参数\(W_2\)来增加维度。正式的,field embedding的weight可以如下进行计算:

\[A = F_{ex}(Z) = \sigma_2(W_2 \sigma_1(W_1 Z))\]

…(2)

其中:

  • \(A \in R^f\)是一个vector
  • \(\sigma_1\)和\(\sigma_2\)是activation functions
  • \(W_1 \in R^{f \times \frac{f}{r}}, W_2 \in R^{\frac{f}{r} \times f}\)是学习参数,其中r是reduction ratio

Re-weight

在SENET中的最后一步是一个reweight step,它在原paper(8)中被称为re-scale。它会在原始field embedding E和field weight vector A间做field-wise乘法,并输出new embedding(SENET-Like embedding) \(V = \lbrace v_1, \cdots, v_i, \cdots, v_f \rbrace\)。SENET-Like embedding V可以计算如下:

\[V = F_{ReWeight} (A, E) = [a_1 \cdot e_1, \cdots, a_f \cdot e_f] = [v_1, \cdots, v_f]\]

…(3)

其中:

\[a_i \in R, e_i \in R^k, v_i \in R^k\]

简短来说,SENET会使用两个FCs来动态学习features importance。对于一个特定任务,它会增加important features的weights,并降低uninformative features的features。

3.3 Bilinear-Interaction Layer

该Interaction layer是一个用来计算二阶交叉的layer。在Interaction layer中经典的feature interactions是内积(inner product)和哈达玛积(Hadamard product)

  • 内积(inner product):被广泛应用于shallow models中,比如:FM、FFM,
  • 哈达玛积(Hadamard product):被广泛用于深度模型中,比如:AFM和NFM。

内积和哈达玛积的形式分别表示为:

\[\lbrace (v_i \cdot v_j) x_i x_j \rbrace_{(i,j) \in R_x} \\ \lbrace (v_i \odot v_j) x_i x_j \rbrace_{(i,j) \in R_x}\]

其中:

  • \[R_x = \lbrace (i, j) \rbrace_{i \in \lbrace 1, \cdots, f \rbrace, j \in \lbrace 1, \cdots, f \rbrace, j > i}\]
  • \(v_i\)是第i个field embedding vector
  • \(\cdot\)表示常规的内积
  • \(\odot\)表示哈达玛积,例如:\([a_1, a_2, a_3] \odot [b_1, b_2, b_3] = [a_1b_1, a_2b_2, a_3b_3]\)

在Interaction layer中的内积和哈达玛积对于有效建模在sparse dataset中的特征交叉过于简单。因此,我们提出了更细粒度的方法,它会组合内积和哈达玛积使用额外参数来学习feature interactions。如图3.c所示,在矩阵W和向量\(v_i\)间使用内积(inner product),在矩阵W和向量\(v_j\)间使用哈达玛积(Hadamard product)。特别的,我们在该layer中提出了三种类型的双线性函数(bilinear functions),我们称为“Bilinear-Interaction layer”。以第i个field embedding \(v_i\)和第j个field embedding \(v_j\)作为示例,feature interaction \(p_{ij}\)的结果可以通过如下方式计算:

a. Field-All Type

\[p_{ij} = v_i \cdot W \odot v_j\]

…(4)

其中:

  • \[W \in R^{k \times k}\]
  • \(v_i, v_j \in R^k\)是第i个和第j个field embedding,\(1 \leq i \leq f, i \leq j \leq f\)

这里,W在所有\(v_i, v_j\)的field交叉对(pair)间共享,在Bilinear-Interaction layer中存在k x k参数,因此我们称该type为“Field-ALL”。

Field-Each Type

\[p_{ij} = v_i \cdot W_i \odot v_j\]

…(5)

其中:

  • \(W_i \in R^{k \times k}, v_i, v_j \in R^k\)是第i和第j个field embedding, \(1 \leq i \leq f, i \leq j \leq f\)

这里:

  • \(W_i\)是第i个field的参数矩阵

在Bilinear-Interaction layer中存在\(f\times k \times k\),因为我们有f个不同的fields,因此,这里我们称为“Field-Each”。

c.Field-Interaction Type

\[p_{ij} = v_i \cdot W_{ij} \odot v_j\]

…(6)

其中,\(W_{ij} \in R^{k \times k}\)是field i和field j间的interaction的参数矩阵,\(1 \leq i \leq f, i \leq j \leq f\)。在该layer上的可学习参数的总数目是\(n \times k \times k\),n是field interactions的数目,它等于\(\frac{f(f-1)}{2}\)。这里我们称该type为“Field-Interaction“。

如图1所示,我们有两个embeddings(original embedding和SENET-like embedding),我们可以为任意embeddings上采用bilinear function或Hadapard product作为特征交叉操作。因此,我们在该layer上具有不同的特征交叉组合。在第4.3节中,我们讨论了bilinear function 和Hadamard product不同组合的效果。另外,我们具有三种不同类型的特征交叉方法(Field-All, Field-Each, Field-Interaction)来应用到我们的模型中。

在本节中Bilinear-Interaction layer可以:

  • 从original embedding E输出一个interaction vector \(p = [p_1, \cdots, p_i, \cdots, p_n]\),
  • 从SENET-like embedding V输出一个SENET-Like interaction vector \(q = [q_1, \cdots, q_i, \cdots, q_n]\),

其中:

  • \(p_i, q_i \in R^k\)均是vectors

3.4 Combination Layer

combination layer会将在interaction vector p和q进行拼接,并将concatenated vector输入到在FiBiNET的后续layer上。它可以表示成以下形式:

\[c = F_{concat}(p, q) = [p_1, \cdots, p_n, q_1, \cdots, q_n] = [c_1, \cdots, c_{2n}]\]

…(7)

如果我们将在vector c中的每个element进行求和,接着使用一个sigmoid function来输出一个prediction value,我们具有一个shallow CTR模型。为了更进一步拿到效果收益,我们会将shallow组件和一个经典的DNN进行组合到一个统一模型中来构成deep network结构,该统一模型被称为deep model。

图片名称

图3 用于计算feature interactions的不同方法。 a) 内积(Inner product) b) Hadamard product c) 我们提出的bilinear interaction。这里在inner product中的\(p_{ij}\)是一个标量,它是在Hadamard product以及bilinear function中的一个vector

3.5 Deep Network

deep network由许多FC layers组成,它会隐式捕获高阶特征交叉。如图1所示,deep network的输入是combination layer的输出。假设:\(a^{(0)} = [c1, c_2, \cdots, c_{2n}]\)表示combination layer的输出,其中:\(c_i \in R^k\),n是field interactions的数目。接着,\(a^{(0)}\)被输入到DNN中,feed forward过程如下:

\[a^{(l)} = \sigma(W^{(l)} a^{(l - 1)} + b^{(l)})\]

…(8)

其中:

  • l是depth,\(\sigma\)是activation function
  • \(W^{(l)}, b^{(l)}, a^{(l)}\)是第l个layer上的模型weight、bias、output

在这该后,一个dense real-value feature vector会被生成,它最终输入到CTR预估的sigmoid function中:\(y_d = \sigma(W^{\mid L \mid + 1} a^{\mid L \mid} + b^{\mid L \mid +1})\),其中:\(\mid L \mid\)是DNN的depth。

3.6 Output Layer

为了简洁,我们给出模型输出的整个公式:

\[\hat{y} = \sigma(w_0 + \sum\limits_{i=0}^m w_i x_i + y_d)\]

…(9)

其中:

  • \(\hat{y} \in (0, 1)\)是CTR的predicted value
  • \(\sigma\)是sigmoid function
  • m是feature size
  • x是一个input
  • \(w_i\)是linear part的第i个weight
  • \(\lbrace w_0, \lbrace w_i\rbrace_{i=1}^m, \lbrace e_i \rbrace_{i=1}^2, \lbrace W^{(i)} \rbrace_{i=1}^{\mid L \mid} \rbrace\)。学习过程的目标是最小化以下的目标函数(cross entropy):
\[loss = - \frac{1}{N} \sum\limits_{i=1}^N (y_i log(\hat{y}_i) + (1 - y_i) * log(1 - \hat{y}_i))\]

…(10)

其中:

  • \(y_i\)是第i个样本的ground truth
  • \(\hat{y}_i\)是predicted CTR
  • N是样本的total size

3.6.1 与FM和FNN的关系

假设我们将SENET layer和Bilinar-Interaction layer移除,不难发现我们的模型可以被看成是FNN。当我们进一步移除DNN part,同时使用一个constant sum,接着该shallow FiBiNET会被降级到传统的FM模型。

4.实验

略.

参考

语音识别领域《Learning Hidden Unit Contributions for Unsupervised Acoustic Model Adaptation》中提出了一种方法LHUC,我们来看下它的实现:

摘要

本研究广泛探讨了通过学习隐藏单元贡献(LHUC:learning hidden unit contributions)的方法来调整神经网络声学模型的自适应能力——该方法以说话人依赖(speaker-depdent)或环境依赖(environment-dependent)的方式,使用少量无监督自适应数据线性重新组合隐藏单元。我们还把LHUC扩展到说话人自适应训练(SAT)框架中,从而得到一个更加可适应的DNN声学模型,该模型既能以说话人依赖的方式工作,也能以说话人独立的方式工作,无需维护辅助的说话人依赖特征提取器,也无需引入显著的说话人依赖的DNN结构变化。通过在四个不同的语音识别基准测试(TED演讲、Switchboard、AMI会议和Aurora4)上的一系列实验,这些测试涵盖了270名测试说话人,我们展示了无论是在仅限测试的LHUC还是在SAT变体中,都能实现一致的字错误率降低,降幅范围从5%到23%不等,具体取决于任务以及训练和测试数据之间的不匹配程度。此外,我们还研究了每个说话人的自适应数据量、无监督自适应目标的质量、与其他自适应技术的互补性、一次性自适应,以及扩展到以序列判别方式训练的DNN的自适应。

1.介绍

语音识别的准确性在过去几年中通过使用(深度)神经网络(DNN)声学模型得到了显著提高。Hinton等人[1]报告称,与基于区分性训练的高斯混合模型(GMM)系统相比,各种任务的字错误率(WER)降低了10-32%。这些结果利用神经网络作为混合DNN/HMM(隐马尔可夫模型)系统[1]-[5]的一部分,在这些系统中,神经网络提供缩放的可能性估计以替代GMM;以及作为串联或瓶颈特征系统[6]、[7],在这些系统中,神经网络被用作基于GMM的系统的判别特征提取器。对于许多任务,观察到已经适应说话人的基于GMM的系统(带有串联或瓶颈特征)比未适应的混合DNN/HMM系统[8]-[10]更准确,这表明DNN声学模型的适应是一个值得研究的重要课题。

声学模型自适应[11]旨在通过规范化训练和运行时数据分布之间的不匹配,这种不匹配是由说话人之间的声学变异性以及信道或声学环境引入的其他失真造成的。在本文中,我们研究了使用一种称为学习隐藏单元贡献(LHUC)[12]-[14]的新近引入的方法,对DNN声学模型进行无监督的基于模型的说话人和声学环境自适应。我们分别在仅限测试的自适应和说话人自适应训练(SAT)的扩展上下文中,介绍了LHUC方法,后者被称为SAT-LHUC[14]。我们使用四个标准语料库进行了广泛的实验分析:TED演讲[15]、AMI[16]、Switchboard[17]和Aurora4[18]。这些实验包括:交叉熵和序列训练的DNN声学模型的自适应(第VI-A至VI-C节);基于自适应目标的质量、自适应数据的质量和自适应数据量分析(第VI-D节);与基于最大似然线性回归[19]的特征空间自适应技术的互补性(第VI-E节);以及应用于结合说话人和环境自适应(第VII节)。

2.NEURAL NETWORK ACOUSTIC ADAPTATION回顾

3.LEARNING HIDDEN UNIT CONTRIBUTIONS (LHUC)

一个neural network可以被看成是一个关于自适应基函数(adaptive basis functions)的集合。在关于目标函数族(target function family)\(f^*\)的某些假设下,neural network可以看成是一个通用逼近器(universal approximator)。也就是说,在给定关于输入随机变量\(x \in R^d\)的一些vector的情况下,存在一个nueral network \(f_n(x): R^d \rightarrow R\)的形式:

\[f_n(x) = \sum\limits_{k=1}^n r_k \phi(w_k^T x + b_k)\]

…(1)

它可以逼近\(f^*\),具有一个特别小的error \(\epsilon\),对应于这样的mean square error的一个distance measure(提供n是足够大的):

\[|| f^*(x) - f_n(x) ||_2 \leq \epsilon\]

…(2)

在(1)中的\(\phi: R \rightarrow R\)是一个element-wise 非线性操作(non-linear operation),它在一个仿射变换(n affine transformation)后使用,这会形成一组由一个biases set \(b_k \in R\)和一个weight vectors \(w_k \in R^{d_x}进行参数化的自适应基函数(adaptive basis function)\)。接着目标近似(target approximation)会被构建成一个关于基函数的线性组合,每个基函数的权重为\(r_k \in R\)

该公式可以扩展到m维映射上:\(f_n^m(x): R^d \rightarrow R^m\),只需将(1)中的模型拼接m次得到。当考虑更深的模型(嵌套)时,这些性质仍然成立[51](推论 2.6 和 2.7)。

深度神经网络(DNN)训练的结果是:隐单元(hidden units)会学习一个关于目标函数的联合表示,并变得专门化并互补。从基函数组合中学到的组合泛化性,在应用于看不见的测试数据时,会继续逼近似目标函数。这种解释激发了使用LHUC——学习隐藏单元贡献——进行测试集自适应的思想。在LHUC中,网络中的基函数,先前是使用大量训练数据估计的,保持固定。自适应(Adaptation)涉及修改隐藏单元的组合,以便根据自适应数据最小化自适应损失。图1展示了这种方法在回归问题中的应用,其中自适应通过基函数的线性重新组合执行,只改变等式(1)中的r参数。

图1

LHUC的核心思想是:使用一个说话人依赖的幅值函数(speaker-dependent amplitude function),来显式参数化每个隐单元(在每个在max-pooling之后的FC或convolutional layers中)的幅度(amplitudes)。假设:

  • \(h_j^{l,s}\):表示在layer l中的第j个hidden unit activation(basis)
  • \(r_j^{l,s} \in R\):表示第s个speaker-dependent amplitude function:
\[h_j^{l,s} = \epsilon(r_j^{l,s}) \odot \phi_j(w_j^{lT} x + b_j^l)\]

…(3)

幅度使用一个函数:\(\epsilon : R \rightarrow R^+\)——通常是一个范围在(0,2)以内的sigmoid【13】,但也可以使用一个identity function。

  • \(w_j^l\)是相应的weight矩阵\(W^l\)的第j列
  • \(b_j^l\)表示bias
  • \(\phi\)是hidden unit activation function(除非声明,否则是sigmoid)
  • \(\odot\)表示是一个Hadamard product
  • \(\epsilon\)限制了hidden unit amplitude scaling的范围(对比图1),直接影响adaptation transform capacity——当适配潜在的noisy unsupervised targets时,我们希望有这样的能力。

图片名称

图1 示例展示了LHUC是如何执行adaptation的(见颜色)。上:一个“bump” model(等式1),具有两个hidden units,可以逼近”bump” functions。中:为了在给定训练数据\(f_1\)下学习\(f_1\),我们将两个“bump” functions拼接在一起(4个hidden units,一个input/output)来学习一个关于function \(f_1\)的近似。底:模型的LHUC adaptation对\(f_1\)最优,适配到f2使用LHUC scaling参数。

LHUC adaptation会通过设置speaker-specific amplitude参数\(r_j^{l,s}\),并对由adaptation data提供的targets使用gradient descent来进行。

直接学习hidden unit amplitudes的思想在[55]中提出,接着由[12]应用到supervised speaker adaptation中。【13】中该方法会被扩展到unspervised adaptation上,non-sigmoid non-linearities,大的vocabulary speech recognition。等等

IV. SPEAKER ADAPTIVE TRAINING LHUC (SAT-LHUC)

当LHUC被应用到一个test-only adaptation中时,它会假设:在训练数据上估计的speaker-independent basis function的集合,会提供一个良好的起点,可以进一步对adaptation data的底层数据分布进行调参。然而,你可以生成一个counter-example,其中该假设会失败:图2的top plot展示了example training data会从两个竞争的分布\(f_1(a)\)和f_1(b)中均匀抽取出,其中:在平均模型(图2底部)中的结果basis的线性重组合,提供了一个对adaptation data的较差近似。

图片名称

图2 一个4-hidden-unit模型,训练\(f1(a)\)和\(f1(b)\),

这启发了:使用speaker adaptive training(SAT)与LHUC进行组合,其中:hidden units会被训练用来捕获好的average representations以及speaker-specific representations,通过为每个training speaker估计speaker-specific hidden unit amplitudes。在给定来自所在分布的数据点的先验知识后,这在图3中会被可视化,我们会估计一个并行的LHUC transforms(每个分布一个)的集合,同时有一个额外的transform会负责建模平均属性(average properties)。图3的top展示了在图2中的相同实验,但有了三个LHUC transforms——你可以看到:以给定LHUC transform下,该场景中的4-hidden-unit MLP可以捕获每个底层分布以及平均表现。同时,生成的basis function(图3 bottom)会是一个对于adaptation更好的starting point(图3 middle)。

图2和图3中的示例可以通过对每个function的训练数据样本数目进行rebalance来打破对称来解决,这会导致在平均模型中更少的trivial并且更多adaptable的basis functions。然而,我们会在后续展示实验,在高维语音数据上呈现相似的效果,SAT-LHUC训练允许构建更可调节的标准语音模型,通过适配可以对指定speakers进行更好的裁减。

SAT-LHUC 的Test-only adaptation与LHUC相同:每个test speaker都会插入speaker-dependent LHUC参数集合 \(\theta_{LHUC}^s=\lbrace r_j^{l,s} \rbrace\),他们的值可以从无监督adaptation data进行最优化。我们也会使用一个LUHC变换\(\theta_{LHUC}^s\)的集合,其中:\(s = 1 \cdots S\),对于training speakers,它会与speaker-independent参数\(\theta_{SI} = \lbrace W^l, b^l \rbrace\)一起联合优化。这是一个额外的speaker-independent LHUC变换,表示为\(\theta_{LUHC}^0\),这会允许模型以speakerindependent的方式被使用,例如:为了生成first pass adaptation targets。关于hidden units with speaker-dependent LHUC标量的的联合学习过程是很重要的,它会产生一个更加可调的标准语音模型,可以更好的适应在测试时未见过的speakers,正如我们如图3所示,会在下面展示adaptation任务。

为了执行SAT-LHUC的 training,我们会使用negative log likelihood,并最大化在给定t时刻observation vector \(x_t\)下获得正确context-dependent tied-state \(c_t\)后验概率:

\[L_{SAT}(\theta_{SI}, \theta_{SD}) = - \sum\limits_{t \in D} log P(c_t | x_t^s; \theta_{SI}; \theta_{LHUC}^{m_t})\]

…(4)

其中:s表示第s个speaker,\(m_t \in \lbrace 0, s \rbrace\)会从基于一个Bernoulli分布的\(\theta_{SD} \lbrace \theta_{LHUC}^0, \cdots, \theta_{LHUC}^S \rbrace\)选择SI或DS LHUC变换:

\[k_t \sim Bernoulli(\gamma) \\ m_t = ...\]

…(5)(6)

其中:\(\gamma\)是一个超参数,它表示给定样本的概率,被看成是\(SI\)。SI/SD会在speaker、utterance或frame level上被执行。我们会进一步研究:在VI-B上的该方面。SAT-LHUC模型结构如图4所述,对于不同的speakers来说,注意forward和backward passes的alternative routes。

\(\partial{L_{SAT}}/\partial{h_j^{l,s}}\)表示第l层第j个unit的error BP。为了通过transform进行BP,我们需要将transform自身进行element-wise乘法,如下:

\[\frac{\partial{L_{SAT}}}{\partial \phi_j^l} = \frac{\partial {L_{SAT}}}{\partial h_j^{l,s}} \odot \epsilon (r_j^{l,s})\]

…(7)

为了获得对\(r_j^{l,s}\)的gradient:

\[\partial(L_{SAT}){\partial r_j^{l,s}} = \frac{\partial L_{SAT}}{\partial h_j^{l,s}} \odot \frac{\partial \epsilon(r_j^{l,s})}{\partial r_j^{l,s}} \odot \phi_j^l\]

…(8)

当执行mini-batch SAT training时,你需要显式说明这样的事实:不同data-points会通过不同的transforms进行流动:因为这会产生对于第s个speaker对于\(r_j^{l,s}\)产生的梯度,是属于speaker s的partial gradients的sum:

\[\frac{\partial L_{SAT}}{\partial r_j^{l,s}} = \sum\limits_{t, m_t=s} \frac{\partial L_{SAT}}{\partial h_j^{l,s}} \odot \frac{\partial epsilon(r_j^{l,s})}{\partial r_j^{l,s}} \odot \phi_j^l\]

…(9)

或者对于在给定mini-batch中第s个speaker没有data-points被选中时为0。在本paper中所有adaptation方法需要first-pass decoding来获取adaptation targets,对于unseen test speakers会估计fMLLR变换,或者来执行DNN speaker-dependent参数更新。

#

阿里在《Personalized Bundle List Recommendation》中提出了一种BGN的推荐思路:

摘要

产品捆绑销售(Product bundling)是在线电商和线下零售商常用的营销策略之一,它提供了一种将多个商品组合销售给顾客的方式。高质量的捆绑销售组合包含了顾客感兴趣的常购商品,而在不同的捆绑销售组合中提供多样性可以提升用户体验,最终增加交易量。本文将个性化捆绑销售列表推荐问题形式化为结构化预测问题,并提出了一种基于捆绑生成网络(BGN: bundle generation network)的解决方案,该方案通过行列式点过程(DPPs)将问题分解为质量和多样性两个部分。BGN采用了典型的编码器-解码器(encoder-decoder)框架,提出了一种特征感知(feature-aware)的softmax方法来缓解传统softmax方法的不足,并集成了掩码束搜索(masked beam search)和DPP选择,以生成具有适当捆绑大小的高质量和多样化的捆绑销售列表。我们在三个公共数据集和一个工业数据集上进行了广泛的实验,其中包括两个基于共同购买记录生成的数据集和两个从真实的在线捆绑销售服务中提取的数据集。BGN在所有数据集上的质量、多样性和响应时间方面都显著优于现有的最先进方法。特别是,在维持四个数据集上的最高多样性的同时,BGN平均提高了最佳竞争对手的精度16%,并在捆绑销售列表推荐问题中使响应时间提高了3.85倍。

1.介绍

一个捆绑包(bundle)是一组作为整体出售的产品或服务,而捆绑包列表(bundle list)推荐则是推荐一个个性化的捆绑包列表。在传统商业领域,如通信服务、线下零售商和超市等,都将捆绑销售视为关键的市场营销策略,并且他们通常通过人工洞察或非个性化的挖掘方法来制作捆绑包[2]。在现代电子商务网站和在线服务业务中,如亚马逊、淘宝、Steam和Netflix等,也部署了新的应用[22,32],这些应用推荐和销售捆绑包列表而非单个商品。

客户、卖家以及推荐平台都可以从个性化的捆绑包推荐服务中受益。对于客户来说,高质量的捆绑包可以拓宽用户兴趣,并在购买后的最短路径上直接显示互补产品。经典营销研究表明,精心设计的捆绑包可以带来相互促进的效果

  • 对于卖家来说,捆绑销售可以增加每位客户的交易量。沃尔玛官网的平均订单规模为2.3[36]。通过附加一些高度相关的产品,卖家可以推出更多产品并增加毛利润(GMV)
  • 对于客户和卖家来说,购买捆绑包的成本可能低于单独购买每个产品的成本。例如,在电子商务网站中,如果一个订单中的商品金额超过一定数额,通常会免收运费。

对于推荐系统来说,捆绑销售是一种更有效的组织和展示产品的方式。推荐列表由高度相关的捆绑包组成,与商品列表形成对比,多个多样化的捆绑包避免了用户选择单一。推荐系统将捆绑包作为一个整体展示,从而在单位面积内展示更多产品。对于移动应用程序来说,减少向上滑动操作以改善用户体验至关重要。

图片名称

图1

在图1中,我们展示了一个捆绑包列表的例子。捆绑包中的商品应具有高度相关性。此外,捆绑包间的多样性成为了一个关键指标,这是一个可解释的、面向业务的目标,独立于点击率(CTR)和精确度,试图避免单调的选择并量化捆绑推荐系统中的用户体验。相同的高质量商品往往出现在不同的捆绑包中[22],这构成了令人困惑且单调的捆绑包列表,因此在精确度/似然度和多样性之间存在权衡。其他有意义的问题,例如如何设置价格折扣以最大化利润,如何组合捆绑包的图片等,超出了本文的范围,可以作为未来的工作。本文关注于如何生成高质量且多样化的捆绑包

针对个性化捆绑推荐问题,存在几个挑战。首先,推荐系统应该在没有人工干预的情况下自动、灵活地生成高质量捆绑包。频繁项集挖掘算法提供了高质量的捆绑,但不具有个性化。为了模拟捆绑包的分布,我们使用共同购买数据或预定义的捆绑包来监督具有用户上下文的捆绑包质量。然而,序列生成方法在捆绑推荐场景中对于丰富特征的表示不足,因为传统softmax的权重矩阵仅考虑商品ID。此外,在实践中,我们可能需要更大规模的捆绑包以达到卖家的促销目的,但seq2seq通常难以生成短序列[14]。

其次,捆绑包间的多样性成为了捆绑推荐的一个关键指标。具有相同高质量商品的捆绑包可能同时获得高分排名,因此重复的商品往往出现在生成的捆绑包列表中[22]。除了重复之外,由于特征的相似性导致的相似商品可能会产生令人困惑且单调的捆绑包列表,降低用户兴趣。捆绑推荐系统应考虑跨捆绑包间的多样性,同时考虑商品的重叠和相似性。在这里,多样性是一个显式指标,而不是从数据中学到的某些隐藏相似关系。由辅助信息和先验知识预先定义的显式相似性为测量和调整提供了确切的信号。我们使用行列式点过程(DPPs)作为目标函数,该函数在推理过程中考虑全局负相关性,以分解质量和多样性。

最后,与传统item列表推荐相比,捆绑推荐的搜索空间是item的双重指数级数量,因为理论上一个bundle可以包含任意长度的组合,并且一个list包含多个捆绑[9]。应谨慎考虑捆绑稀疏性(Bundle sparsity),因为在共同购买形式下的训练数据中,相对于整个搜索空间而言,只包含了少量的bundle的ground truth。搜索空间中的大多数bundles都是低质量的,因此我们需要一种方法为每个用户高效地生成高质量候选bundles,而不是在所有可能的bundles中应用ranking方法

在本文中,我们旨在解决个性化bundle list推荐问题,并提出了一种捆绑生成网络(BGN)。

我们将本论文的贡献总结如下:

  • • 这是首次尝试通过考虑质量和多样性的序列生成方法来解决捆绑列表推荐问题。我们基于行列式点过程(DPP)分解生成模型,并将神经网络与DPP选择相结合,以产生高质量且多样化的捆绑列表。
  • • 我们提出了一种捆绑推荐场景中的特征感知softmax,用于弥补传统seq2seq对丰富特征表示的不足,从而显著提高了质量建模。特征感知softmax的损失是在每个步骤上优化BPR损失的泛化。
  • • 我们在真实世界数据集和公共数据集上进行了大量实验。我们的模型在四个数据集上平均提高了最佳基线的精度16%,同时保持了最高的多样性,并在捆绑列表推荐问题中显示出最快的响应时间。此外,BGN可以在可容忍的精度降低范围内控制捆绑大小。

3.个性化bundle list推荐

符号表示。设:

  • I为可供选择的所有商品集合,
  • $\mid N \mid$为所有商品的数量。
  • b:一个bundle ,是由I中的商品组成的任意组合
  • T:表示bundle中商品的数量

在bundle中,商品的顺序是无序的。当将bundle视为一个序列时,通常按照商品价格从高到低的顺序对捆绑销售中的商品进行排序,因为价格较低的商品更容易被替换为bundle中的其他商品,同时在序列生成模型中更容易受到曝光偏差(exposure bias)的影响。假设:B为所有可能的bundle集合,$\mid B \mid$等于 :

\[\sum_{t=1}^T \binom{N}{t}\]

其中:

  • T为最大捆绑销售大小,
  • $\binom{N}{t} = \frac{N!}{t! (N−t)!}$ 表示从N个商品中选择t个商品的组合数。
\[I = {1, 2, \cdots, N},|I| = N \\ B = {b = \lbrace i_1,i_2, \cdots, i_T \rbrace | i \in I},|b|=T,|B|=\sum\limits_{t=1}^T \binom{N}{t} \\ Y = {y = \lbrace b_1,b_2, \cdots, b_K \rbrace | b \in B},|y|=K,|Y|=|B|^K\]

在这里:

  • K:是推荐bundle list y的大小。然而,我们认为在bundle list中的顺序并不重要。
  • Y:为所有可能的bundle list集合。
  • $C_u$:用户上下文,通常表示他/她在历史记录中点击/购买的商品序列。

问题公式化。假设:

  • $\widehat{P}(\cdot, \cdot): Y \times {C_u} \rightarrow R^+$为一个通用的兼容性函数,用于衡量bundle list y和用户上下文$C_u$之间的得分(兼容性),
  • $\widehat{P}(y \mid C_u)$ :表示为给定$C_u$时y的非标准化条件概率

因此,个性化bundle list推荐问题可以形式化为一个结构化预测问题[3],试图找到满足以下条件的bundle list $\widehat{y}$:

\[\widehat{y} = \underset{y \in Y}{argmax} \widehat{P}(y = {b_1, b_2, \cdots,b_K }|C_u)\]

… (1)

  • $P(y \mid C_u)$:为$\widehat{P}$关于y的归一化条件概率。$P(y \mid C_u)$实际上是对N的双指数级数量的分布进行建模,因此在给定$C_u$的情况下,有 $\binom{(\sum\limits_{t=1}^T \binom{N}{t}}{K}$ 种可能的y结构,这带来了极大的计算挑战。

在本文中,我们考虑与质量和多样性相关的$\widehat{p}$兼容性函数。 bundle list推荐是单个bundle list推荐问题和单个item list推荐问题的一般化。当给定用户上下文时,每个bundle是独立的,我们有:

\[P(y = {b_1,b_2, \cdots,b_K} | C_u) = \prod_k P(b_k |C_u)\]

在这种情况下,bundle list之间没有相关性,问题变成了单个bundle推荐问题[36],有时被认为是个性化bundle的ranking问题[22]。此外,当bundle大小T等于1时,它是单个item list推荐问题。

4. Bundle Generation Network

在这里,我们提出了一个基于捆绑销售生成网络(BGN)的解决方案,以解决考虑质量和多样性的个性化bundle list推荐问题。 在下面的子节中,我们介绍如何通过SDPP将bundle list概率分解为质量/多样性部分,并分别分解它们。然后,我们介绍如何测量多样性,并设计具有特征感知softmax的改进型神经网络来学习质量部分。此外,我们提出了一种masked-beam search方法来控制bundle list大小并避免重复商品。最后,我们演示如何将这些部分集成到BGN中,以处理bundle推荐的生成过程。

4.1 基于SDPP的捆绑销售生成模型

我们在概率空间(B,Y,P)上定义了一个结构化行列式点过程(SDPP: structured determinantal point proc)[15]。当Y是根据概率质量函数(PMF)P绘制的bundle推荐列表的随机变量时,分布如下:

\[P(Y = y) \triangleq det(L_y)/Z\]

…(2)

这里:

  • L是SDPP的对称正半定核,大小为$|B| * |B|$
  • $L_y$:表示L限制为y元素索引的条目,$Z = \sum\limits_{y′ \in Y} det(L_{y′})$是归一化常数。

核L有一个直观的几何解释,即$det(L_y)$是其相关特征向量展开体积(volumn)的平方[16]。请注意,y的每个元素都指向具有特定结构的bundle,因此我们认为DPP是有结构的。定义DPP概率模型的一个好处是我们可以以非常自然的方式分解质量和多样性。对于任何正半定矩阵L的元素$L_{ab}$,我们总是可以找到一个质量/多样性分解

\[L_{ab} = q(a)ϕ(a)^T ϕ(b)q(b) = q(a) S(a,b) q(b)\]

…(3)

其中:

  • $a,b \in B$
  • $L_{ab}$:表示由bundle a和b索引的元素
  • $q(b) \in R$:表示bundle的质量项
  • $ϕ(b) \in R^D$:表示具有$||ϕ(b)||_2 = 1$的归一化多样性特征

这里我们定义一个相似度函数/度量: $S(a,b) : B × B → R$,满足:$S(a,b) = ϕ(a)^T ϕ(b)$,并保持相应的相似度矩阵S半正定。我们将方程(3)重新形式化为矩阵方式

\[L = QSQ\]

… (4)

其中:

  • Q:表示对角矩阵diag $\lbrace q(b)_{b \in B} \rbrace$

该分解平衡了质量和多样性。然后,个性化bundle list推荐的优化准则是找到一个最大化给定用户上下文$C_u$时$P(y \mid C_u;\theta)$的 bundle list y:

\[\underset{y}{argmax} \ det(S_y) \cdot \prod\limits_{b \in y} q^2 (b|C_u; \theta)\]

…(5)

解决个性化bundle list推荐的一个主要挑战是:bundle list的优化准则具有N的双指数级数量的复杂度。根据等式(5)中的分解,我们将复杂度降低到了测量空间B上的质量项q和测量空间B × B上的多样性项S。然而,这两个项仍然具有指数级空间,这是无法处理的。

SDPP认为测量空间B中的任何元素都可以分解为一组因子F [15],其中因子α ∈ F是结构部分的一个小子集。然后,我们分别继续分解质量项和多样性项:

\[q(b) = \prod\limits_{α \in F} q_α(b_α ) \\ ϕ(b) = \sum\limits_{α \in F} ϕ_α(b_α)\]

…(6)

这种分解定义了我们如何解释模型结构,并使模型易于处理。然后,我们将分别为多样性和质量指定分解,并将它们集成在一起,以生成高质量和多样化的bundle list。

4.2 多样性的测量和分解

我们在工作中测量的多样性是一种可解释的指标/目标,试图量化bundle推荐系统中的用户体验,与来自数据的似然性无关。从数据中学习的这种隐式关系可能不是我们所追求的“多样性”,并且数据中物品之间的相关性已经被考虑到了质量部分中。然而,由侧面信息和先验知识定义的显式相似性为测量和调整提供了准确的信号。此外,推荐系统通常缺乏多样性标记的基准列表,这使得监督完整的似然性变得困难。 利用方程(3)和方程(6),我们将bundle的相似度函数分解为物品相似度函数:

\[S(a,b) = ϕ(a)^T ϕ(b) \\ = ( \sum\limits_{α \in F} \phi_α (a_α)^T )(\sum\limits_{β \in F} ϕ_β (b_β)) \\ = \sum\limits_{α, β} ϕ_α(a_α)^T ϕ_β(b_β) \\ = \sum\limits_{i \in a,j \in b} s_{a,b} (i, j)\]

…(7)

在这里, $s_{a,b} (i, j)$测量的是物品而不是bundle的相似性,这与用户上下文无关。相似度函数通常应与根据领域知识预定义的多样性度量一致。例如,在我们的实验中,$s_{a,b}(i, j)$由bundle的Jaccard相似度给出:

\[s_{a,b}(i, j) = \frac{1}{|a \cup b|} δ(i = j)\]

…(8)

其中:

  • δ(·)表示指示函数。请注意,bundle不包含内部重复的物品。该函数可以维护L的半正定性[4],并防止在不同捆绑销售中显示相同的物品。该函数与等式(19)保持一致的局部测量,并且SDPP优化全局负相关性。此外,多样性的度量也可以通过计算属性的相似性来定义,从而提供属性的细粒度多样性。

4.3 用特征感知Softmax建模质量部分

在这里,我们重点研究质量部分$q(b \mid C_u ; θ)$的建模,采用典型的编码器-解码器框架,其中:编码器从用户上下文中提取信息,解码器使用提出的特征感知softmax生成高质量的候选捆绑销售列表。

  • 对于编码器,用户上下文可以表示为物品的购买历史。我们使用TextCNN [13]提取信息,最近已经显示出在文本分类和信息提取方面的有效性[33, 34]。我们在图2中展示了基本的网络架构,并省略了细节的讨论,因为它不是我们的主要贡献之一。TextCNN是可并行化的,比双向LSTM更快,并且可以通过基于自注意力架构的Transformer [27]在未来的工作中轻松改进。
  • 对于解码器,bundle的质量$q(b \mid C_u;θ)$是一个未归一化的联合概率,其参数化为通用的$\theta$,因此我们按照贝叶斯公式进行分解。请注意,贝叶斯公式始终成立并对质量的完整分布进行建模,这里的假设是以序列方式共享参数。
\[q(b|C_u; θ) \propto p(b = {i_1,i_2, \cdots, i_T} | C_u; θ) \\ = \prod\limits_{t=1}^T p(i_t | i_1, \cdots, i_{t−1}, C_u; θ)\]

… (9)

在等式(9)中,我们通过乘以每个元素的所有条件概率来分解任何bundle的联合概率。通过共享这些条件概率的相同权重,我们使用具有(堆叠的)LSTM单元和众所周知的Luong Attention [19]的序列生成模型来计算概率。 设:

  • $x_t$:为解码器的输入
  • t:为bundle中的物品位置

我们使用编码器的输出初始化$h_0$。然而,我们省略了LSTM和attention的常见细节。

\[h0 = text-CNN(C_u) \\ x_t = [item\_emb(i_t), cate\_emb(i_t), \cdots] \\ h_t = stacked-LSTM-attention(h_{t−1}, x_{t−1}, C_u) \\ p(i_t | i_1, \cdots, i_{t−1}, C_u; θ) = feature-aware-softmax(h_t)_{i_t}\]

…(10)

传统的softmax层包含一个权重矩阵$W^{(h+1)*N} = [w_1,w_2, \cdots,w_N]$,其中:$w_i$可以被认为是i的item_id的嵌入。请注意,这里我们省略了偏置项,只是为了方便书写。

\[softmax(h_t ,W)_j = \frac{exp(h_t^T w_j)}{\sum\limits_{\widehat{j}=1}^N exp(h_t^T w_{\widehat{j}}) }\]

…(11)

然而,在推荐系统中的物品候选项通常具有更多的归属特征,而不仅仅是item_id。传统的softmax由于缺乏特征而可能导致权重矩阵表示不充分。

受到指针网络 [28] 的启发,我们提出了特征感知(FA)softmax: 它使用特征感知的权重矩阵修改softmax操作符,而不是使用固定的权重矩阵,使softmax对动态信息敏感。特征感知softmax使用由$F(x_i)$构建的动态权重矩阵,其中F是所有特征的非线性变换函数,因此softmax除了item_id之外还可以对特征敏感。

\[E^{(h+1)* N} = [e_1, e_2, \cdots, e_N]^1, e_i=F(x_i) \\ feature-aware-softmax(h_t)_j = softmax(h_t, E)_j\]

…(12)

我们使用共同购买的数据$D = {b,C_u }_{1:\mid D \mid}$来指导学习过程。loss可以定义为每个步骤softmax层的平均交叉熵,这保证了与等式(9)相同的形式,模型的目标是最大化单个bundle的似然性。

\[L_{MLE}= −\frac{1}{T} \sum\limits_{t=1}^T logp(i_t | i_1, \cdots, i_{t−1}, C_u; θ)\]

…(13)

然而,由于动态构建权重矩阵E,特征感知softmax在训练过程中可能会耗时较长。因此,我们采用带有采样softmax损失的特征感知softmax,称为采样特征感知softmax损失,以加速训练过程。

当采样数量为1时,采样的特征感知softmax的损失由以下公式给出:

\[L_{sample-1}= −\frac{1}{T} \sum_{t=1}^T log \frac{exp(h_t^T e_{i_t})} {exp(h_t^T e_{i_t}) + exp(h_t^T e_{s_t})} + λ_θ ||θ||^2 \\ = −\frac{1}{T} \sum\limits_{t=1}^T log σ(h_t^T(e_{i_t} − e_{s_t})) + λ_θ||θ||^2 \\ = −\frac{1}{T} \sum\limits_{t=1}^T logp(θ |≥t,C_u)=\frac{1}{T} \sum\limits_{t=1}^T L_{BPR}(t)\]

…(14)

其中:

  • σ(·)是逻辑sigmoid函数
  • ≥t,Cu 是每个步骤中的成对偏好,[24]

因此,具有一个负样本的特征感知softmax相当于在每个时间步长优化方程(14)中的平均BPR。

4.4 bundle生成过程概述

bundle list推荐的目标是通过生成高质量和多样化的bundle list y 来最大化等式(5)中的 $p(y \mid C_u)$。在本小节中,我们将整合并总结捆绑生成的整体过程。

图片名称

  • 图2(a)显示了BGN的整体推理过程。我们使用文本-CNN的输出来初始化h0,然后通过在每个步骤扩展生成的bundle前缀来生成bundle列表
  • 图2(b)显示了bundle list $y_t$在每个生成步骤中如何扩展。每个小形状图标表示一个item,矩形块的每一行是一个生成的bundle前缀,t表示生成的bundle前缀的对齐大小。在每个生成步骤中,我们使用beam search生成K * N个候选bundle。beam search[30]是一种启发式搜索算法,通过在有限集中扩展最有希望的item来探索搜索空间,广泛应用于序列生成方法中[26]。在这里,我们使用beam search将低质量的bundle修剪到宽度为M的$y_{cand}$,这对于效率至关重要。DPPs的子模假设[16]在实际应用中广泛使用,包括推荐系统[6,10],可以在多项式时间内找到解决方案。根据等式(5),我们从$y_{cand}$中选择一个bundle b,一次最大化$P(y \cup \lbrace b \rbrace)$,如下所示:
\[\underset{b \in y_{cand}}{argmax} log det S_{y \cup \lbrace b \rbrace} + \sum\limits_{\beta \in y \cup \lbrace b \rbrace} log q^2(\beta|C_u)\\ <=> \underset{b \in y_{cand}}{argmax} logp(b|C_u) + \lambda log det S_{y \cup \lbrace b \rbrace}\]

…(15)

这里,λ是一个超参数,用于控制生成bundle的质量和多样性之间的权衡。当我们增加λ时,我们在生成的bundle之间更加关注多样性,而不是最终列表的准确性,反之亦然。

此外,我们需要避免bundle中出现重复的item,并且在实践中希望生成更大规模的bundle。通常,我们会添加一个特定的项目结束标记来标记bundle生成的结束,这样我们就可以产生不同长度的bundle。然而,BGN使用共同购买数据或预定义的bundle来监督质量部分。ground truth bundle大小的概率分布可能与目标应用的预期分布不一致。在实践中,由于卖家的促销活动,可能需要更大的bundle尺寸。此外,传统的束搜索通常存在显著的长度偏差,并将bundle大小的分布压缩到一个更偏向于较短大小的分布,正如我们在实验中的图4(b)中所示。如果我们简单地选择具有较大bundle尺寸的数据集进行训练,可能会由于训练集的减少而导致更多的稀疏性问题。

为了解决这个问题,我们可以采用一些策略,例如对较大的bundle尺寸进行数据增强,或者在训练过程中引入对bundle尺寸的惩罚项,以鼓励模型生成更大规模的bundle。这些策略可以帮助缓解稀疏性问题,并提高模型在生成大规模bundle时的性能。

阿里在《Adaptive Domain Interest Network for Multi-domain Recommendation》中提出了一种思路来解决multi-domain推荐问题:

摘要

工业界推荐系统通常会持有来自多个商业场景的数据,并同时为这些场景提供推荐服务。在检索阶段,topK的高质量items会从大量corpus中选出,通常对于多个场景来说是多样的。以alibaba展示广告系统为例,不仅因为淘宝用户的行为模式很多样,同时广告主对场景的竞价分配也非常多样。传统方法会针对不同场景独立训练模型,忽略掉user groups和items的cross-domain overlapping,或者简单将所有样本进行混合并使用一个共享模型(它很难捕获不同场景上的多样性)。在本paper中,我们提出Adaptive Domain Interest network,它会自适应处理不同场景的共性和差异,在训练期充分利用多场景数据。接着,在在线inference期间,通过对不同场景给出不同的topK候选,提出的方法能够提升每个business domain的效果。特别的,我们提出的ADI会通过共享网络以及domain-specific networks来建模不同domains的共性和差异。另外,我们会应用domain-specific batch normalization并设计domain interest adaptation layer进行feature-level domain adaptation。一个自训练策略(self training strategy)也会被包含进来捕获跨domains的label-level connections。ADI已经被部署到Alibaba的展示广告系统中,并且获得了1.8%的提升。

1.介绍

2.相关工作

3.前提

3.1 问题公式

在本节中,我们会对multi-domain retrieval任务进行公式化定义。Multi-domain retrieval task的目标是:从一个非常大的corpus中,为multiple domains检索high-quality items。更特别的,online multi-domain retrieval任务可以被公式化:

\[S_{u,d} = \underset{v \in V}{arg \ Topk} \ f_{\theta}(v | u, d)\]

…(1)

其中:

  • U和V: 分别表示user set 和item set
  • d: 表示domain indicator
  • \(f_{\theta}(v \mid u, d)\): 是使用可训练参数\(\theta\)的estimated matching function,给定user u和domain indicator d后,用于measuring u到V的quality
  • \(S_{u,d}\): 是一个set,它包含了对应于\(f_{\theta}(v \mid u, d)\)的topK items的set

在neural-based retrieval模型中,学习这样的一个模型 \(f_{\theta}(v \mid u, d)\)可以看成是一个instance-level的分类问题。从V中胜出的postive item v的分布基于softmax function:

\[s_{\theta}(v | u, d) = \frac{exp(f_{\theta}(v |u, d))}{\sum_{v' \in V} exp(f_{\theta}(v' \mid u, d))}\]

…(2)

接着\(\theta\)会训练在训练数据上用来最小化negative log likelihood:\(log s_{\theta}(v \mid u, d)\):

\[\theta^{*} = \underset{\theta}{argmin} \sum\limits_d \sum\limits_u \sum\limits_{v \in B_{u,d}} - log s_{\theta}(v \mid u, d)\]

…(3)

其中:

  • \(B_{u,d}\)是在给定user u和domain indicator d后,与u的交叉items的集合

实际上,由于V通常相当大,sub-sampling被广泛用来减小等式(2)分母的计算复杂度。根据[3,6],我们会使用sampled softmax loss[33],并将等式(2)中的\(f_{\theta}(v \mid u, d)\)替换成:

\[\bar{f}_{\theta} (v | u, d) = f_{\theta}(v | u, d) - log Q(v)\]

…(4)

有了sub-sampling,我们有等式(5)。\(N_{u,d}\)是不相关items的集合,它从V中根据分布\(Q: V \rightarrow R\)进行采样,以便它的size可以满足\(\mid N_{u,d} \mid << \mid V \mid\)。

\[\theta^{*} = argmin_{\theta} \sum_{d,u,v \in B_{u,d}} - \bar{f}_{\theta}(v | u, d) + log(exp(\bar{\theta}(v | u, d)) + \sum_{v' \in N_{u,t}} exp(\bar{f}_{\theta} (v' |u, t))\]

…(5)

4.方法论

在本节中,我们会引入我们提出的方法来解决multi-domain retrieval问题。整个模型结构如图1所示。总模型结构被设计成:对于来自三个角度(angles)的不同domains的共性和不同。

  • 首先,后端网络(backbone network)会从来自不同domains收集到的数据来抽取参数级共性(parameter-level)和多样性
  • 第二,domain adaptation方法会学到feature-level diversities
  • 第三,self-training策略会捕获label-level的共性

图片名称

图1 ADI的整体架构展示。根据灰色箭头,一个样本会首先进行embedded,接着feed到Domain Interest Adaptation Layer,Shared Domain-Specific Network, Fusion Layer和Domain-Specific Forward Network。在通过user/item tower获得user/ item representations后,inner product会被生成,在最后会计算sampled softmax loss。domain indicator会被用来选择:使用哪个domain-related network

4.1 Backbone Network

为了有效学习来自不同domains的数据分布的共性与不同,我们会在底部使用设计shared networks和domain-specific networks,在顶部使用domain-specific forward networks。当处理multi-domain retrieval问题时,对比起普通DNN【3】、share-bottom network【28】以及MMoE【29】,这样的架构效果更好。它会在下面实验中证明。

4.1.1 Shared Embedding Layer

如表1所示,training/testing samples包含了丰富的feature信息。因此,第一阶段是,将这样的高维稀疏one-hot vectors转化成低维embedding vectors,所有domains会共享相同的embedding layers。

\[F_i = EMBED(f_i) \\ F = concat(F_1 | \cdots | F_n)\]

…(6)(7)

其中:

  • \(F_i\)表示第i个embedded feature,F表示user/item inputs。

4.1.2 Shared Network & Domain-Specific Network

在获得encoded user representations和item representations后,我们会引入shared network和domain-specific network,如图1所示。受[18]启发,我们设计了shared network来学习由所有domains共享的representations,以及domain-specific network来在每个domain上学习domain-specific representations:

\[\begin{align} & a_k = \frac{W_{shared}^k (f_{domain}) + b_{shared}^k}{\sum\limits_{n=1}^K (w_{shared}^n(f_{domain}) + b_{shared}^n)} \\ & E_{shared} = \sum\limits_{k=1}^K a_k MLP_{shared}^k (F) \\ & E_{spec}^{(d)} = MLP_{spec}^{(d)} (F^{(d)}) \end{align}\]

…(8)(9)(10)

其中:

  • MLP表示multilayer perceptron,
  • \(f_{domain}, F^{(d)}\)表示domain相关的features,数据从domain d中收集到。在我们的实践中,我们会使用domain indicator embedding作为\(f_{domain}\)。
  • \(W_{shared}^n, b_{shared}\):是一个one-layer shallow neural network的weights和bias。

从所有domains中的数据会feed到shared networks中,而从domain d中的数据会feed到第d个domain-specific network中。更特别的,假设,存在来自D个domains的训练数据,我们会构建K个shared network以及D个specific network。FCs的总数是D+K

4.1.3 Fusion Layer

fusion layer的目标是学习一个来自Domain-Specific Network和Shared Network的最优化组合,它可以描述如下:

\[\beta_1^{(d)} = \sigma (W_{fusion\_spec}^{(d)} (f_{domain})) \\ \beta_2^{(d)} = \sigma (W_{fusion\_shared}^{(d)} (f_{domain})) \\ E_{fusion}^{(d)} = concat(\beta_1^{(d)} E_{spec}^{(d)} | \beta_{1}^{(d)}E_{spec}^{(d)} \odot \beta_2^{(d)} E_{shared} | \beta_2^{(d)} E_{shared})\]

…(11)(12)(13)

其中:

  • \(\sigma\)表示sigmoid函数
  • \(\odot\)表示hadamard product
  • \(\beta_1^{(d)}, \beta_2^{(d)}\)表示分配给\(E_{spec}^{(d)}, E_{shared}\)feature weights。

我们将提出的fusion layer命名为:CONCAT version。因此,shared和specific network会为每个domain生成domain-related \(E_{fusion}^{(d)}\)。另外,我们会引入两个变种,它们是由MMoE、SAR-NET使用的SUM version,以及由STAR【11】提出的Network-Mul version。对于SUM version,我们会使用MMoE的gating network作为fusion layer。\(W_{gate}, b_{gate}\)表示gating network的weights和bias:

\[a^{(d)} = \sigma(W_{gate}^{(d)}(f_{domain}) + b_{gate}) \\ E_{fusion}^{(d)} = \alpha^{(d)} E_{spec}^{(d)} + (1 - \alpha^{(d)}) E_{shared}\]

…(14)(15)

对于Network-Mul version,我们使用STAR-Topology FCN作为fusion layer。\(W_{shared}, b_{shared}, W_{spec}^{(d)}, b_{spec}^{(d)}\)分别表示在\(FC_{shared}\)和\(FC_{spec}\)中的参数:

\[FC_{Net-Mul}(X) = (W_{shared} \odot W_{spec}^{(d)}) \cdot X + b_{shared} + b_{spec}^{(d)} \\ E_{fusion}^{(d)} = FC_{Net-Mul} (F^{(d)})\]

在第5.3.1节中的实验表明,我们提出的CONCAT version会达到最好的效果,它会被用作fusion layer。

4.1.4 Domain-Specific Forward Network

在获得domain-related \(E_{fusion}^{(d)}\)后,最后outputs会feed到domain-related forward network中,描述如下:

\[E = FC_{forward}^{(d)} (E_{fusion}^{(d)})\]

…(18)

由user tower以及item tower生产的output E会被用作随后的inner product和sampled softmax计算。

4.2 Domain Adaptation

在multi-domain推荐任务中,我们提供了两种方法来解决domain adaptation问题:domain-specific batch normalization和domain intereset adaptation layer。

图片名称

图2

4.2.1 Domain-Specific Batch Normalization

batch normalization技术已经广泛被用于训练非常深的neural network。假设:\(\mu\)表示input X的均值,而\(\sigma^2\)表示方差。batch normalization方法可以描述如下:

\[\hat{X} = \alpha \frac{X-\mu}{\sqrt{\sigma^2 + \epsilon}} + \beta\]

…(19)

其中:\(\alpha\)和\(\beta\)是可学习的参数,\(\epsilon\)是非常小的quantity,以避免分母为0. BN假设input X会满足i.i.d的假设,它会在单个场景上有效。然而,multi-domain retrieval问题会面临着一个混合数据分布的问题。计算全局的BN参数,并忽略在不同domain间的静态差异,可能会损伤最终效果。受[35]的启发,我们会使用domain-specific batch normalization(DSBN)来解决提到的问题:

\[\hat{X}^{(d)} = \alpha^{(d)} \frac{X^{(d)} - \mu^{(d)}}{\sqrt{(\sigma^{(d)})^2 + \epsilon}} + \beta^{(d)}\]

…(20)

其中:

  • \(X^{(d)} \in X\) 表示:来自domain d的样本。

通过估计在batch normalization中的domain-specific batch统计:\(\mu^{(d)}, (\sigma^{(d)})^2, \alpha^{(d)}, \beta^{(d)}\),我们相信:该模型可以捕获domain-specific信息。

4.2.2 Domain Interst Adaptation Layer

domain interest adaptation layer来自直觉,不同domains假设只关注在raw features的不同部分。我们实现了三种类型的domain interest adaptation layer:linear domain transformation, vanilla domain attention,以及SE-Block-based domain attention:

Linear domain transformation:[14]使用的Linear domain transformation会将original features映射到domain-related features中。假如:\(F_i^{(d)}\)表示来自domain d的embedded input的第i个feature,\(W^{(d)}, b^{(d)}\)共享着与input \(F^{(d)}\)相同的维度。Linear domain transformation方法的描述如下:

\[\alpha_i^{(d)} = \sigma(Q_i^{(d)} F_i^{(d)}) \\ \hat{F}^{(d)} = concat(\alpha_1^{(d)} F_1^{(d)} | \cdots | \alpha_n^{(d)} F_N^{(d)})\]

…(23)(24)

SE-Block based domain attention:Squeeze-and-Excitation Network (SE-Net) 【36】在许多计算机视觉任务上达到了SOTA的结果。我们会讨论SE-Block是另一种形式的attention机制,它可以捕获在不同domains下的特征重要性差异。\(F_{se}\)表示一个(FC, Relu, FC) block和\(F_{avg}\)表示average pooling操作符。\(\alpha^{(d)}\)表示domain d下的N维的SE attention scores vector。

\[F^{(d)} = concat(F_1^{(d)} | \cdots | F_N^{(d)}) \\ \hat{F}^{(d)} = \alpha^{(d)} \odot concat(F_1^{(d)} | \cdots | F_N^{(d)})\]

…(25)(26)

SE-Block based domain adaptation layer会为不同domains学习不同domain attention weights,并以一种轻量且高效的方式来迁移cross-domain知识。

通过添加domain interest adaptation layer给backbone network,raw features会迁移到domain-related features中。在第5.3节中的实验和可视化表明:提出的domain interest adaptation layer。

4.3 Self Training

self training方法已经证明是一种有效的学习策略,可以在模型训练期利用unlabeled data。我们会应用该技术在multi-domain推荐的retrieval step中,有两个原因:

  • 1) 在训练数据中,当在domains间存在数据重合时,有一个潜在的label-level connection。为了更准确,在一个domain中的与user交叉的一个item,在另一个domain中仍会被相同的一个user进行交叉。该假设是有效的,特别是当更大的domain会帮助那些labeled data有限的小domains或新domains。
  • 2) 添加pseudo-labeld data到训练中,必然会变更原始的数据分布,然而,我们会讨论我们提出的self-training方法更适合于召回模型(retrieval models),而非ranking models. 在广告系统中的ranking models需要预测准确的CTR scores】【38】,添加额外的pseudo-labeled data可能会导致未知的效果,因为数据分布已经变化,CTR模型对数据分布非常敏感。然而,广告系统的retrieval models的目标是提供candidates set给下流任务。换句话说,对于retrieval models不需要精准的CTR score,因为多个candidates会平等的生成。因此,额外的潜在兴趣信号可以添加到model中,即使对于生成高质量topK candidates来说数据分布会发生微弱变化。已经存在的方法主要关注sample-level【32】,feature level【14】,parameter level【11】转换,从而忽略label-level transferring。因此,我们提出这种有效的self training方法,通过domains来挖掘潜在的label-level transferring knowledge,它被证明是有效的。

给定一个item v与user u在domain d上交叉,self training方法遵循以下两个steps:

  • a) 对于在除了domain d外的其它domains v,freeze住模型来生成pseudo-labels
  • b) freeze住pseduo-labels,接着fine-tune模型。

根据算法 1,对于每个step,我们会选择具有最高置信分的pseudo-labels,并且在训练期间选择部分(selection portion)会渐近增加。最后对于在其它domains中的v获得pseudo-labels,等式(3)中的\(\theta\)被训练来最小化在训练数据和pseudo-labeled data上的negative log likelihood:\(log s_{\theta}(v \mid u, d)\):

\[\theta^* = argmin_{\theta} \sum_d \sum_u \sum_{v \in B_{u,d}} - (log s_{\theta} (v | u, d) + log s_{\theta}(\bar{v} | u, d))\]

…(27)

其中,\(\bar{v}\)是在给定user u和domain d下,选中的潜在postive pseudo-items。

表3

5.实验

ali在《ATNN: Adversarial Two-Tower Neural Network for New Item’s Popularity Prediction in E-commerce》中提出了ATNN。

3.ADVERSARIAL TWO-TOWER NEURAL NETWORK

本节中,首先描述了new arrivals预估问题。CTR被认为是该问题的最重要的indicator。接着我们描述了ATNN,它会根据它们的流行度(popularity)对所有new arrivals进行排序。

A.问题描述

我们的目标是解决在电商平台上预估关于new arrivals的流行度的冷启问题。由于对于new arivals的流行度(popularity)没有公共评估,我们会使用CTR预估作为一个关键任务来解决该cold-start问题。在平台上有新items发出时,我们会利用模型根据CTR预估来做出个性化推荐。精准的CTR预估可以让购买者(buyers)看到它们更偏好的items,这会满足buyers对于new arrivals的消费期望,增强用户体验。同时,卖家(sellers)也愿意在该平台上提供更新的items,因为增加new arrivals的交易数可以获得利润。

另外,我们的主要目标是,在new arrivals间发现潜在的流行items。然而,对于一个模型来说,评估item流行性是很难的。我们会采用:如果一个item对于大多数购买者(buyers)具有较高CTR,那么它会具有一个高可能性是吸引人的。因此,我们会基于大规模工业界数据,将模型进行扩展,以获得new arrivals在所有用户上的流行度。在new items放到平台上前,该模型能获得关于new items的流行度

特别的,我们会使用item被释放到平台上的前30天信息作为训练数据。我们接着收集这些items的静态数据,包括:Page Views(PV)、UV(Unique Visotors)、用户行为序列(比如:点击、加购物车、加收藏、购买)。我们也会获得item profiles和user profiles作为训练数据的features。Item profiles包含了买家信息、产品名、产品图片、类别。User profiles包含了私人数据,经如:用户名、性别、位置信息、购买偏好、购买力等级等。New arrivals只有item profiles没有item统计信息。我们的目标是对所有new arrivals对在所有用户上的流行度进行排序。

B.普通pairwise user-item CTR预估的双塔模型

DNNs被广泛用来进行普通CTR预估,自动学习feature表示和高阶特征交叉。由DNNs获得的Item vectors可以被用于多个任务,包括new arrivals的流行度估计。

图2展示了一个标准的DNN model,用于pairwise user-item CTR预估。这是一个经典的方法,会首先将一个item embedding和一个user embedding进行concatenate在一起。通过该模型我们不能获得item vector和user vector。

图片名称

图2

为了显式捕获对new item流行度预估的item vectors,我们会构建一个two-tower网络,如图3所示。左塔会从item profiles和item统计信息中抽取信息,来达到item vectors;右塔会利用user profiles来获得user vectors。我们可以显式捕获item vector和user vector,可以用来训练其它模型,并求解与pairwise CTR预估相关的其它任务。我们使用ATNN获得的item vectors来训练一个generator,它会在后描述。

我们会训练模型,通过将每个item,user pair给到network中,包括它们的交叉。一条input样本如下:

\[[itemID, x_{i1}, x_{i2}, x_{i3}, \cdots, userID, x_{u1}, x_{u2}, x_{u3}, \cdots, y]\]

其中:

  • itemID和user ID是唯一标识符
  • \(x_i\)和\(x_u\)表示一个item和一个user的features
  • \(y\)是label

图片名称

图3

C.对new arrivals进行ATNN预估

New arrivals CTR预估与普通CTR预估不同,因为缺少user-item交叉。对于平台新上的items,对比起普通item,通常在它们之上具有少量的用户行为。用户行为非常稀疏,很难训练。另外,对于还没有上的new arrivals,还不存在item统计数据。所有经典方法面临着item统计信息(包括:PV、UV、用户行为预行)的缺失。

受GANs思想的启发,我们设计了一个item generator以及一个discriminator,它可以更好学习只有item profiles的item vectors。如上所述,一个原始的two-tower DNN模型能达到item vectors和user vectors,因为在item encoder和user encoder间存在一个显式层(explicit layer)。我们会利用由双塔网络生成的item vectors来增强generator的feature extraction能力。生成的item vector和user vector的quality会影响CTR预估的精准度。

我们提出在双塔结构中引入一个对抗网络(adversarial network)来进行CTR预估,称为:Adversarial Two-tower Neural Network (ATNN)。ATNN结论如图4所示。左部分是对抗组件,它使用没有任何item统计信息的item profiles来学习更好抽取item vectors。

图片名称

图4

generator设计的目的是:用来从item profiles生成item vectors,以便生成的item vectors与由item encoder生成的item vectors很相似,其中:item encoder从item profile和item统计数据中学习得到。discriminator被设计用来区分:由item generator生成的item vectors、由item encoder生成的item vectors。该generator和discriminator会做一个极大极小博弈(minimax game)来提升效果。discriminator的loss function会基于两类item vectors间的相似度,被定义为\(L_s\)。

另外,我们会使用由generator和encoder两者生成的所有item vectors来训练CTR预估模型。原始two-tower模型的loss function被定义为:\(L_i\)。generated item vectors和user vectors间的CTR预估的loss function被定义为\(L_g\):

\[L_i = - \frac{1}{N} (y_i log\hat{y}_i + (1-y_i) log(1-\hat{y}_i)) \\ L_g = - \frac{1}{N} (y_i log\hat{y}_i^{(g)} + (1-y_i) log(1-\hat{y}_i^{(g)}))\]

其中:

  • \(y_i \in \lbrace 0, 1\rbrace\)是label indicator,表示用户是否对该item有点击
  • \(\hat{y} \in (0,1)\):是基于item vector和user vector的预估label
  • \(\hat{y}^{(g)} \in (0,1)\):是基于generated item vector和user vector的预估label
  • N表示训练样本数

我们会feed每对item\user pair、以及每个user-item pair的交互信息给网络来训练该模型。我们会迭代式最小化loss的方式来最优化ATNN。生成能力以及CTR的预估质量可以被增强。

在gnerators和encoders中会使用DCN。略

另外受transfer learning和multi-task learning的启发,我们让两个item embedding layers共享它们的embeddings。embedding layers会将large-scale sparse features映射到low-rank vectors中,需要大量input样本来训练一个更好模型。在embedding layers间共享features会改善generator组件的能力,以便将item profiles映射到vectors中。

我们在算法1中将ATNN的训练过程进行总结。

图片名称

算法1

在每轮迭代,我们会首先通过以下的loss function来最优化ATNN:

\[L_i(H(f_i(X_i), f_u(X_u)), y)\]

其中,

  • \(X_i\)和\(X_u\)分别表示一个item和一个user的features
  • \(f_i(X_i)\)和\(f_u(X_u)\)表示由item encoder和user encoder获得的item vector和user vector
  • \(H(\cdot)\)函数表示在一个item和一个user间的CTR预估得分

\(L_i\)会使用LR从item profiles和item统计信息,根据给定labels来进行CTR预估。在该步,我们会通过使用item tower和user tower来最优化CTR prediction。

接着,我们会通过以下的loss function来最优化ATNN:

\[L_g(H(g(X_{ip}), f_u(X_u)), y) + \lambda L_s(S(g(X_{ip}), f_i(X_i)))\]

其中:

  • \(X_{ip}\)是一个item profiles的features
  • \(g(X_{ip})\)是generated item vector
  • \(\lambda\)是一个weighting参数,用来对两个loss进行balance
  • \(S(\cdot)\)函数表示在一个generated item vector和一个普通item vector间的相似度

根据给定labels,\(L_g\)使用logistic regression从只有item profiles信息中来评估CTR预估,\(L_s\)会使用mean squared error,如下:

\[L_s(X) = mean((1 - x_i)^2)\]

其中,\(L_s\)会评估在generated item vectors和normal item vectors间的平均相似度。在该step中,我们会最小化在来自generator的generated item vector与item encoder的item vector间的差异。

D.基于ATNN进行大规模new arrivals的流行度预估

我们的目标是:通过对所有items进行流行度排序,来发现潜在的流行new arrivals。然而,对于items流行度的打分没有通用评估。基于合理假设:如果一个item对于大量买家来说具有一个较高CTR,我们认为该商品很可能更吸引人,我们可以利用ATNN来估计new arrivals的流行度。

然而,使用一个pairwise user-item CTR预估模型来完成new arrivals流行度,面临着高时间复杂度的挑战。实际上,对于new arrivals的排序,我们需要获得所有new arrivals流行度。在预估阶段,我们需要构建一个关于所有new arrivals和所有users的笛卡尔积 ( Cartesian product)。因此,预估阶段的时间复杂度是\(O(N_u * N_{NA})\),其中:\(N_{NA}\)表示new arrivals的数目。在电商平台上,每天会来数百万已存在用户和数百万新items。在实际系统中\(O(N_u * N_{NA})\)复杂度的算法是不用运转的。

为了对new arrivals进行排序,没必要获得所有user-item pairs。作为替代,我们选择top 2000w偏好new arrivals的活跃用户,将他们看成一个用户组。我们在训练阶段学习和存储它们的mean user vector。当预估一个item的流行度时,我们只需要使用存储好的mean user vector来做出预估,它可以减少时间复杂度:每个item从\(O(N_u)\)到\(O(1)\)。图5展示了ATNN模型对于new arrivals流行度预估的效率。

图片名称

图5

参考