前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >KDD'21「华为」数值型特征embedding方法

KDD'21「华为」数值型特征embedding方法

作者头像
秋枫学习笔记
发布2022-09-19 11:52:01
1.5K0
发布2022-09-19 11:52:01
举报
文章被收录于专栏:秋枫学习笔记

本文是针对数值型特征做embedding的方法。较长的公式可以左右滑动查看

背景

图1

常用的数值型embedding方法可以分为以下三类:

No Embedding

这类方法不做embedding,而是直接用原始的数值作为特征,或者在数值上面做一些改进,例如youtube对于数值型特征分别做平方和平方根得到

\mathrm{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]

例如facebook的DLRM直接用DNN对数值特征建模

e_DLRM=[DNN([x_1,x_2...,x_N])]

直接用DNN提取。以上这些No Embedding方法无法捕获数值型特征域中的高阶信息,只是粗暴的直接利用了这些特征值。

Field Embedding

Field Embedding方法将一个域(field)内的数值型特征共享一个field embedding,简单理解就是同一个域内的特征采用同一个向量来转换。公式如下:

e_{EF}=[x_1 \cdot e_1,...,x_N \cdot e_N]

其中

e_i \in R^d

表示第i个域对应的转换向量,d为转换后的维度。由于每一个域共享了单个embedding向量使得这种方式的表达能力也是受限的。

Discretization

离散化的方式就是将连续特征转换为离散特征(例如分桶)。将域内的特征进行离散化,然后在进行转换。

e_j=E_j \cdot d_j(x_j)
E_j \in R^{H_j \times d}

表示第j个域对应的embedding矩阵,

H_j

就是第j个域内离散化后的桶的个数。

d_j

就是离散化函数。常用的离散化函数有以下三种:

EDD/EFD(Equal Distance/Frequency Discretization)

等距or等频离散化。

等距就是每个区间大小一样,将原始特征划分为

H_j

个等宽的桶。找到最大、最小值,然后根据桶的个数进行等分

w_{j}=\left(x_{j}^{\max }-x_{j}^{\min }\right) / H_{j}

,通过下式得到每个区间内的值对应的离散值。

\widehat{x}_{j}=d_{j}^{E D D}\left(x_{j}\right)=\text { floor }\left(\left(x_{j}-x_{j}^{m i n}\right) / w_{j}\right)

等频就是希望每个区间内的特征数得一样。

LD (Logarithm Discretization)

log离散化也是比较常用的离散化方法,公式如下:

\widehat{x}_{j}=d_{j}^{L D}\left(x_{j}\right)=\text { floor }\left(\log \left(x_{j}\right)^{2}\right)
TD (Tree-based Discretization).

基于树模型的离散化(例如GBDT),树本身可以通过节点的划分对不同特征值划分到不同的节点,从而对其进行离散化。虽然上述方法应用很广泛,但是存在以下三个问题:

  • TPP (Two-Phase Problem):上述方法如果要用到ctr模型中都得是两阶段的,即先做离散化,然后在做模型训练,无法同模型一起优化训练。
  • SBD (Similar value But Dis-similar embedding):这些划分方法可能存在将相似的值划分到不同的组,从而导致最终的embedding表征相差很大,比如一些边界值。例如5和6,而当时的分界条件刚好是5.5的话,5和6就会被分到不同的组。
  • DBS (Dis-similar value But Same embedding):同一个桶中可能会包含两个相差很大的值,但是他们却被分到一组,导致他们的embedding表征最后就是很相似。

方法

AutoDis总体框架

AutoDis主要包含三部分:meta embeddings, automatic discretization and aggregation,将这三部分结合起来可用公式表示为

\mathrm{e}_{j}=f\left(d_{j}^{\text {Auto }}\left(x_{j}\right), \mathrm{ME}_{j}\right)

其中

ME_j

表示第j个域对应的meta embedding矩阵,

d_j^{Auto}()

表示automatic discretization自动离散化方法,最终的f()表示aggregation将他们融合到一起。

Meta Embedding

最直接的方式是将对每一个数值型特征值都赋予embedding,但是这会导致参数特别多。而field embedding的方式对每一个域内直接用单个向量进行转换,导致表达能力差。为了平衡该参数量和表达能力,本文设计了Meta embedding对第j个域内进行分桶后得到Hj个桶,对每个桶对应一个embedding。

Automatic Discretization

自动离散化。上述离散化方法我们可以称之为硬离散化(hard discretization),是完全限定好条件,然后将值固定划分到一个区域内。而本文所提方法可以称之为软离散化(soft),采用网络学习的方法。

\begin{array}{l} \left.\mathbf{h}_{j}=\text { Leaky_ReLU( } \mathbf{w}_{j} x_{j}\right) \\ \widetilde{\mathbf{x}}_{j}=\mathrm{W}_{j} \mathrm{~h}_{j}+\alpha \mathbf{h}_{j} \end{array}

将第j个特征输入到两层神经网络中,具体计算方式如上式所示,

\alpha

为超参数,控制结合比例,

w_j \in R^{1 \times H_j}

,

W_j \in R^{H_j \times H_j}

,因此计算后得到

H_j

维的向量,在通过softmax标准化得到该向量属于每一个桶的概率。

\widehat{x}_{j}^{h}=\frac{e^{\frac{1}{\tau} \widetilde{x}_{j}^{h}}}{\sum_{l=1}^{H_{j}} e^{\frac{1}{\tau} \widetilde{x}_{j}^{l}}}

其中温度系数

\tau

控制离散化后的分布情况。硬离散化后,得到的是具体分到哪一个桶中,而这里的软离散化是分到各个桶的概率

\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]

。当温度系数接近无穷大时,离散化后的整体分布接近均匀分布;而当系数接近0时,整体分布接近one-hot。因此调整到合适的温度系数对最终结果影响很大,而本文提出了自适应的方法,将温度系数的计算和模型融合到一起。

\tau_{x_{j}}=\operatorname{Sigmoid}\left(\mathbf{W}_{j}^{2} \text { Leaky_ReLU }\left(\mathbf{W}_{j}^{1}\left[\bar{n}_{j} \| x_{j}\right]\right)\right)

其中W为可学习参数,而x为特征,

n_j

表示统计特征(均值,累积分布cdf)

Aggregation Function

通过自动离散化,我们可以得到对应每个分桶的概率,而每个分桶都会对应meta embedding中的一个embedding,现在需要用一些方法将这两个部分结合起来。

  • Max-Pooling:选择概率最大的桶对应的embedding,这种就是之前的硬离散化
  • Top-K-Sum:将最大的前K个概率对应的embedding求和,无法根本上解决DBS问题,并且没有考虑到embedding之间的相互关系
  • Weighted-Average:很久分桶的概率对embedding进行加权平均,其实也很好理解,一方面,所有embedding都考虑到了;另一方面,权重大的占比大,更重要。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 秋枫学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
    • No Embedding
      • Field Embedding
        • Discretization
          • LD (Logarithm Discretization)
          • TD (Tree-based Discretization).
      • 方法
        • AutoDis总体框架
          • Meta Embedding
            • Automatic Discretization
            • Aggregation Function
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档