前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >推荐系统遇上深度学习(一二二)-[阿里]通过孪生掩码层来高效的学习特征表示向量

推荐系统遇上深度学习(一二二)-[阿里]通过孪生掩码层来高效的学习特征表示向量

作者头像
石晓文
发布2021-09-17 14:53:44
9660
发布2021-09-17 14:53:44
举报
文章被收录于专栏:小小挖掘机小小挖掘机

今天给大家介绍阿里在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的存储空间并很好的支持模型特征向量的热启动,感兴趣的同学可以阅读原文~

推荐系统遇上深度学习(一二一)-基于用户行为检索的点击率预估模型

2021-08-22

推荐系统遇上深度学习(一二零)-[微博]使用上下文信息来优化特征嵌入的CTR预估框架

2021-08-01

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小小挖掘机 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、背景
  • 2、方法介绍
    • 2.1 基本思路
      • 2.2 AMTL介绍
      • 3、实验结果
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档