今天给大家介绍阿里在CIKM2021上发表的一篇关于Embedding的论文,本文的标题是从阿里妈妈技术复制过来的(共有6篇论文入选,可参考https://zhuanlan.zhihu.com/p/401520358)。论文设计了孪生的自适应掩码层(AMTL)来计算每个特征保留的Embedding长度的大小,在提升精度的同时,还能有效节省Embedding的存储空间并很好的支持模型特征向量的热启动,一起来看一下。
1、背景
大多数的推荐系统模型遵循Embedding + MLP的范式,其中Embedding层的参数往往占模型参数量的90%以上,因此Embedding层对于效果的提升非常重要。
标准的Embedding层将每个离散特征映射为相同长度的向量,这种方法主要存在两方面的问题。一方面,离散特征的不同取值在数据中的出现频次是相差巨大的,对于高频次的特征取值,应当使用长度更长的Embedding向量来表示更丰富的信息,而对于低频次的特征取值,如果Embedding向量过长,则容易导致过拟合。因此,如果对所有特征取值采用相同的长度会降低Embedding学习的有效性。另一方面,相较于灵活的Embedding长度处理方式,定长的方式需要的存储空间也是更大的。
针对标准的定长Embedding处理方式存在的问题,有一些工作开始研究不定长的处理方式。这些方法主要可以分为两类。第一类是基于规则的方法,对于频次高的特征,设置更长的Embedding长度,对于频次低的特征,设置较低的Embedding长度。这类方法的主要问题是较为依赖人工经验。第二类是基于神经架构搜索(Neural architecture search ,简称NAS)的方法,这种方法从候选的Embedding长度中寻找每个特征最适合的Embedding长度,但候选集往往会被限制在有限的范围内。同时,上述说的两类方法都需要从头开始训练来找到最适合的Embedding长度,对于模型特征向量的热启动(warm starting)并不友好。
针对上述方法的问题,论文设计了孪生的自适应掩码层(AMTL)来计算每个特征保留的embedding长度的大小,在提升精度的同时,还能有效节省embedding的存储空间并很好的支持模型特征向量的热启动,下面一张图概括了现有的处理方式以及本文提出的方法,本文的方法将在第二节进行介绍。
2、方法介绍
2.1 基本思路
论文提出的基本思路是在定长Eembdding的基础上,针对每一个特征取值对应的Embedding,学习一个掩码向量,掩码向量的定义如下:
也就是说,在实际应用时,对特征fi的Embedding向量ei,其0到ki的索引下对应的取值保留,大于ki的索引下对应的值置0。这种方式有以下几点优势:
1)存储时,对特征fi的Embedding向量ei,只需要存储ki+1长度的向量即可,线上应用时用0补齐为相同的长度,可减少存储空间
2)由于Embedding的初始化是定长长度的向量,掩码向量通过其他部分的网络单独学习,可以通过warm starting的方式对Embedding进行初始化。
那么接下来的问题是,如何学习掩码向量?论文设计了孪生的自适应掩码层(Adaptively-Masked Twins-based Layer,以下简称AMTL),咱们在下一小节进行介绍。
2.2 AMTL介绍
AMTL的架构如下图所示:
对AMTL来说,学习方向主要是基于特征的出现频次,因此输入特征主要是频次相关特征,输出为one-hot向量,其中1位置所在的索引,其实就是上一小节中所提到的ki。那么基于ki,就可以生成对应的掩码向量mi。
从上到下来介绍一下AMTL的计算过程。对于频率向量,分别输入到两个孪生的自适应掩码层,分别计作h-AML和l-AML,输出和Embdding相同长度的向量。这种设计思路的主要原因是考虑到如果只是用单一的AML,参数的学习会受频率高的特征的主导,因此设计h-AML和l-AML,分别用于高频特征和低频特征的掩码向量的学习。可以看到,两个AML的输出,会进行加权,而权重基于特征的出现频次,如果出现频次高,权重α大于0.5,h-AML的输出占据主导,如果出现频次低,权重α<0.5,则l-AML的输出占主导。
两个AML的输出结果加权后,首先通过softmax,再通过argmax和one-hot操作,得到ont-hot向量计作ti,最后乘上事先定义好的矩阵M(对矩阵的元素Mi,j来说,如果j<=i,则Mi,j=1,否则等于0),得到掩码向量mi。
上述过程中存在的主要问题是argmax是无法进行梯度传导的,因此使用Temperated Softmax,如果将温度系数设置很小的话,可以达到近似argmax的效果:
进一步,借鉴直通估计器的思路( Straight Through Estimator,简称STE),巧妙的能在前向计算的时候使用argmax得到的one-hot向量,以及在梯度计算的时候对Temperated Softmax得到的向量进行更新,减小二者的gap,具体计算公式如下:
好了,AMTL的整体结构介绍到这里,接下来看下实验结果。
3、实验结果
论文对比了AMTL和一些现有方法的比较,从AUC和存储消耗两份面进行比较,可以看到,AMTL无论是在模型精度还是存储空间上,都取得了不错的提升:
好了,本文就介绍到这里,论文设计了孪生的自适应掩码层(AMTL)来计算每个特征保留的embedding长度的大小,在提升精度的同时,还能有效节省embedding的存储空间并很好的支持模型特征向量的热启动,感兴趣的同学可以阅读原文~
网友评论