AutiDis
。本文主要汇总了论文中的四种数值特征使用方法。
该方法直接使用特征原始值或者经过转化后(非Embedding转化,通常使用归一化)的特征值,例如Google Play中的Wide&Deep
,京东的DMT
。除此之外,Youtube的DNN
对经过标准化后的特征值 x ~ j \tilde{x}_{j} x~j进行平方、开根号转换:
e YouTube = [ x ~ 1 2 , x ~ 1 , x ~ 1 , x ~ 2 2 , x ~ 2 , x ~ 2 , … , x ~ N 2 , x ~ N , x ~ N ] \mathbf{e}_{\text {YouTube }}=\left[\tilde{x}_{1}^{2}, \tilde{x}_{1}, \sqrt{\tilde{x}_{1}}, \tilde{x}_{2}^{2}, \tilde{x}_{2}, \sqrt{\tilde{x}_{2}}, \ldots, \tilde{x}_{N}^{2}, \tilde{x}_{N}, \sqrt{\tilde{x}_{N}}\right] eYouTube =[x~12,x~1,x~1,x~22,x~2,x~2,…,x~N2,x~N,x~N]
学术界常用的方法是Field Embedding,其中同一Field中的所有数值特征共享同一个Field Embedding,然后将该Field Embedding与其特征值相乘:
e F E = [ x 1 ⋅ e 1 , x 2 ⋅ e 2 , … , x N ⋅ e N ] \mathbf{e}_{F E}=\left[x_{1} \cdot \mathbf{e}_{1}, x_{2} \cdot \mathbf{e}_{2}, \ldots, x_{N} \cdot \mathbf{e}_{N}\right] eFE=[x1⋅e1,x2⋅e2,…,xN⋅eN]
对于数值特征 x j x_{j} xj,其特征嵌入 e j e_{j} ej可以通过两阶段操作获得:离散化和嵌入查找。
e j = E j ⋅ d j ( x j ) e_{j}=\mathbf{E}_{j}·d_{j}(x_{j}) ej=Ej⋅dj(xj)
其中, E j \mathbf{E}_{j} Ej表示第 j j j个数值特征的Embedding矩阵。 d j ( ⋅ ) d_{j}(·) dj(⋅)是手动设置的离散化方法,通常包含以下方法:
Criteo advertiser prediction
冠军方案中使用到的方法,先对特征值取对数,再向上取整,公式如下:为了保持高模型容量、端到端训练和独特的表示特性,我们在AutoDis中设计了三个核心模块:元嵌入(meta-embedding)、自动离散化(automatic discretization)和聚合(aggregation)。对于第 j j j个数值域特征,AutoDis可以学习每个数值特征 x j x_{j} xj的唯一表示:
e j = f ( d j Auto ( x j ) , M E j ) \mathbf{e}_{j}=f\left(d_{j}^{\text {Auto }}\left(x_{j}\right), \mathbf{M E}_{j}\right) ej=f(djAuto (xj),MEj)
AutoDis的整体框架图如下所示:
原文翻译:
一种简单的解决方案是将数值特征视为类别特征,并为每个数值特征分配一个独立的embedding。显然,该方法存在严重缺陷,例如参数爆炸,低频特征训练不足,这在实践中不可取的。相反,为了节省参数,Field Embedding方法在Field内的所有特征值之间共享一个Embedding,由于容量低,降低了模型性能。为了平衡模型容量和复杂性,对于第 j j j个字段,我们设计了一组meta-embedding M E j ∈ R H j × d \mathbf{M E}_{j} \in \mathbb{R}^{H_{j} \times d} MEj∈RHj×d 由该字段内的特征共享,其中 H j H_{j} Hj是元嵌入的数量。元嵌入有助于学习场内共享的全局知识。每个元嵌入可以被视为潜在空间中的子空间,以提高表达能力和容量。通过结合这些元嵌入,学习的嵌入比场嵌入方法信息更丰富,因此可以很好地保持高模型容量。此外,所需参数由 H j H_{j} Hj确定。因此,模型复杂度高度可控,使我们的方法具有可扩展性。
个人理解:
就是每个数值特征都预定义一个元嵌入矩阵 M E j ∈ R H j × d \mathbf{M E}_{j} \in \mathbb{R}^{H_{j} \times d} MEj∈RHj×d,不同特征的矩阵大小 H j H_{j} Hj自定义。
为了捕捉数值特征值和设计的元嵌入之间的复杂相关性,我们精心提出了一个可微自动离散化模块 d j A u t o ( ⋅ ) d_{j}^{Auto}(·) djAuto(⋅)。具体来说,利用具有跳跃连接的两层神经网络来离散特征值 x j x_{j} xj到 H j H_{j} Hj桶:
h j = LeakyReLU ( w j x j ) , x ~ j = W j h j + α h j x ^ j h = e 1 τ x ~ j h ∑ l = 1 H j e 1 τ x ~ j l x ^ j = d j Auto ( x j ) = [ x ^ j 1 , … , x ^ j h , … , x ^ j H j ] \mathbf{h}_{j}= {\text{LeakyReLU}} ( \mathbf{w}_{j} x_{j} ) , \\ \widetilde{\mathbf{x}}_{j}=\mathbf{W}_{j} \mathbf{h}_{j}+\alpha \mathbf{h}_{j} \\ \widehat{x}_{j}^{h}=\frac{e^{\frac{1}{\tau} \tilde{x}_{j}^{h}}}{\sum_{l=1}^{H_{j}} e^{\frac{1}{\tau} \tilde{x}_{j}^{l}}} \\ \widehat{\mathrm{x}}_{j}=d_{j}^{\text {Auto }}\left(x_{j}\right)=\left[\widehat{x}_{j}^{1}, \ldots, \widehat{x}_{j}^{h}, \ldots, \widehat{x}_{j}^{H_{j}}\right] hj=LeakyReLU(wjxj),x j=Wjhj+αhjx jh=∑l=1Hjeτ1x~jleτ1x~jhx j=djAuto (xj)=[x j1,…,x jh,…,x jHj]
其中, τ \tau τ表示温度系数,用于控制离散化分布。当 τ ⟶ ∞ \tau \longrightarrow \infty τ⟶∞时,离散分布 x ^ j \widehat{\mathrm{x}}_{j} x j趋近于均匀分布;当 τ ⟶ 0 \tau \longrightarrow 0 τ⟶0时,分布趋向于one-hot;所以该参数的设置至关重要。 此外,特征在不同领域的分布是相反的,因此非常有必要学习不同的 τ \tau τ 针对不同的特征。具体来说,我们提出了一种温度协同高效的自适应网络,该网络同时考虑了全局场统计特征和局部输入特征,如下所示:
τ x j = Sigmoid ( W j 2 LeakyReLU( W j 1 [ n ‾ j ∥ x j ] ) ) \left.\tau_{x_{j}}=\text { Sigmoid }\left(\mathbf{W}_{j}^{2} \text { LeakyReLU(} \mathbf{W}_{j}^{1}\left[\overline{\mathbf{n}}_{j} \| x_{j}\right]\right)\right) τxj= Sigmoid (Wj2 LeakyReLU(Wj1[nj∥xj]))
其中, n ‾ j \overline{\mathbf{n}}_{j} nj是第 j j j 个Field的全局统计特征向量,包括采样累积分布函数(CDF)和平均值。 x ^ j \widehat{\mathrm{x}}_{j} x j 表示meta-embedding中每个embedding向量的权重分布。
Max-Pooling
选择具有最高概率 x ^ j h \widehat{x}_{j}^{h} x jh 的最相关元嵌入:
e j = ME j k , where k = argmax h ∈ { 1 , 2 , . . . , H j } x ^ j h \mathbf{e}_{j}=\operatorname{ME}_{j}^{k} \text {, where } k=\operatorname{argmax} _{h \in \{1,2,...,H_{j} \} } \widehat{x}_{j}^{h} ej=MEjk, where k=argmaxh∈{1,2,...,Hj}x jh
Top-K-Sum
将相关性最高的 top-K 元嵌入 x ^ j h \widehat{x}_{j}^{h} x jh 相加 :
e j = ∑ l = 1 K M E j k l , where k l = arg top l h ∈ { 1 , 2 , … , H j } x ^ j h , \mathbf{e}_{j}=\sum_{l=1}^{K} \mathrm{ME}_{j}^{k_{l}}, \text { where } k_{l}=\underset{l}{\arg \operatorname{top}} \quad h \in\left\{1,2, \ldots, H_{j}\right\} \widehat{x}_{j}^{h}, ej=l=1∑KMEjkl, where kl=largtoph∈{1,2,…,Hj}x jh,
Weighted-Average
Meta-Embedding相当于Value,Automatic Discretization得到的 x ^ j \widehat{\mathrm{x}}_{j} x j 相当于权重。本文采用最后这种方式进行聚合。
最后,为了稳定训练过程,我们在数据预处理阶段采用特征归一化技术将数值特征值缩放为[0, 1]。