深度学习的推荐模型(DLRMs):设计孪生掩码层高效学习维度自适应的Embedding...

本文提出了一种新颖的自适应孪生掩码层(AMTL)方法,用于深度推荐模型中ID类特征的表示学习。AMTL能够根据特征频率动态调整embedding维度,解决了固定维度带来的效果次优和存储开销问题。实验显示,该方法在模型精度上超过其他方法,同时节省60%的存储,并支持embedding热启动。
摘要由CSDN通过智能技术生成
猜你喜欢
0、2021年10月份热门报告免费下载1、如何搭建一套个性化推荐系统?2、从零开始搭建创业公司后台技术栈3、全民K歌推荐系统架构、算法及后台设计4、微博推荐算法实践与机器学习平台演进5、腾讯PCG推荐系统应用实践6、强化学习算法在京东广告序列推荐场景的应用7、飞猪信息流内容推荐探索8、华为项目管理培训教材9、美团大脑系列之商品知识图谱的构建和应用

▐ 摘要

在深度推荐模型中,ID类特征的表示学习是至关重要的。其中,每一个特征值将会被映射成一个特征向量。对于同一个特征域的不同特征值,传统的特征表示学习方法会固定对应特征向量的维度大小。这样设置统一维度的模式对于表示学习以及对应向量存储而言,都是次优的。尽管,现有方法尝试从基于规则或网络搜索的角度去解决这个问题,这些方法需要额外的人工知识或者不易训练,且对于特征向量的热启动也不友好。因此,在本文中,我们提出一种新颖并且高效的特征维度选择方法。具体而言,我们在每一个表示层后面,设计了一个自适应孪生掩码层(AMTL)来去除每一个特征向量中不需要的维度。这样一种掩码的方式能够灵活的应用在各个模型中,很好的支持了模型特征向量的热启动。大量实验结果表明,所提方法在模型精度上相比于其他方法取得了最好的效果,且同时节省了60%存储开销。目前,该工作已被 CIKM 2021 接收。

论文下载:

https://arxiv.org/pdf/2108.11513.pdf

▐ 1. 背景

近年来,基于深度学习的推荐模型(DLRMs)被广泛的应用在各个 web 级系统中[1-4]。在 DLRMs 中,最重要的一个模块就是 embedding layer 。其将每一个ID类特征值映射到 embedding 空间,来对该特征进行表征学习。具体来讲,给定一个特征域,对应的词典大小为(即特征值的 unique 数),embedding layer 将每一个特征值通过 embedding 矩阵映射成一个 embedding 向量[1,2],其中为预定义的 embeddig 向量的维度。

然而,这样一种对同一特征域的所有特征值赋予相同 embedding 维度的 embedding 学习方法存在着两大问题:

  • 效果: 在很多应用中,同一特征域的不同特征值的出现频率大不相同。比如高频特征,我们需要给予更多的 embedding 维度使其能够表达更丰富的信息。同时对于低频特征,太大的 embedding 维度,反而会有过拟合的风险。因此对于所有特征值赋予固定的统一的 embedding 维度会低估 embedding 学习的能力。模型的效果处于一个次优状态。

  • 存储: 存储这样一个固定 embedding 维度的矩阵会带来巨大的存储开销[5,6,7]。需要一个更加灵活的 embedding 维度调整策略来减少存储开销。

现有的学习不固定 embedding 维度的方法,大体可以分为两类:

  • 基于规则的方法 [8]: 该方法采用人工规则的方式,根据特征的不同频率给予不同的 embedding 维度(如图1(b)所示)。这样一种方法最大的问题是强依赖于人工经验,并且设置的 embedding 维度较为粗糙,往往效果不佳。

  • 基于神经网络搜索(NAS)的方法[9,10,11,12]: 该方法预先设置候选维度,然后通过 NAS 的搜索为每一个特征值寻找一个合适的特征维度(如图1(c)所示)。这类方法需要精心设计搜索空间和训练特征,并且搜索空间经常被局限于离散的 embedding 维度候选集。

eaf986c0e866782043582863737363cc.png
图1 不同方法之间的比较。

此外,上述两类方法均只能从头开始训练,不支持热启动。然而在现实的应用中,线上往往已经服务着一个训练了很久的深度学习模型。对应的 embedding 矩阵已经被训练的相对充分。如果能够利用该 embedding 矩阵蕴含的信息,就可以很好的热启动不固定维度的 embedding 学习。然而,现有的方法都不能够很好的支持这样一种热启动的模式。

在本文中,我们提出一种新颖并且高效的为每一个特征值选择合适的 embedding 维度的方法。其核心想法是在 embedding layer 之后增加一个 Adaptively-Masked Twins-based Layer (AMTL)。这样一个 layer 可以自适应的学习出一个掩码(mask)向量来去除掉对应 embedding 中不需要的维度。经过掩码后的embedding向量可以被看成是一个拥有自适应维度的 embedding,然后被送到下一层进行前向计算。这样一种方法可以带来三个好处:

  • embedding 的学习是高效的。因为 embedding 的维度可以在一个连续的整数空间进行选择,并且不需要额外的人工知识以及特定的搜索空间设计。

  • 模型的存储是高效的。因为 embedding 的维度被自适应的调整。

  • embedding 的初始化是高效的。对于 embedding 的热启动十分友好。

▐ 2. 方法

在这一章,我们将介绍所提的模型。

2.1 基本想法

首先,我们回顾一下最经典的 embedding layer,其可以被表达为:

其中是特征的one-hot向量, 是embedding矩阵。 是 的embedding向量。

接下来,我们定义特征值的掩码向量为,该向量需要满足:

其中是一个可学习的整数参数,受特征的频率影响。

然后,为了能够调整不同特征值的 embedding 维度,最基本的思想是用掩码向量去mask ,

其中 表示对应位置的元素乘. 由于在中下标大于的值都为0,mask后的可以看成是一个 embedding 维度自适应调整的向量,其中中前值被保留。

下面简单介绍下,是如何节省 embedding 存储以及自适应维度的 embedding 是如何使用的。

  • 节省存储。当存储时,我们可以只存没有 mask 的前个值,然后从存储中取出 embedding 的时候,可以直接在向量后面补0来复原。

  • 自适应维度的 embedding 使用。不像现有的方法[8-12]需要额外设计一个模块使得不同的 embedding 重新映射成统一的维度来适配接下来统一长度的 MLP 层,所提方法的通过补0拥有相同的维度,可以直接输入到 MLP 层。

2.2 自适应孪生掩码层

自适应孪生掩码(AMTL)层是用来为每个特征生成掩码向量。整体的结构见图2.

707be9fff4f4a024aac874f1741069f3.png
图2 AMTL结构图

2.2.1 输入和输出

在这一节,我们介绍 AMTL 的输入和输出:

  • 输入:由于需要能够随着特征的频率的改变而改变。因此为了使得 AMTL 能够拥有特征频率的信息,我们将特征的频率信息(比如一个特征在历史中出现的次数,出现频率的排名等等)作为输入(记为)。

  • 输出:AMTL 的输出是一个 one-hot 向量(叫做选择向量)来表示 。

2.2.2 结构

我们设计了一个孪生网络结构(即两个分支子网络)来生成。每一个分支网络叫做自适应掩码层(AML)。需要注意的是这两个分支网络的参数是不共享的。具体而言,每一个 AML 都是一个MLP

其中为特征频率向量, 和 是第层的网络参数, 是激活函数,  为 AML 的最后一层的输出。

设计成孪生网络的主要目的是:如果仅采用一个分支,那么整个网络参数的更新,由于输入数据不平衡原因,将会被高频的特征所主导。具体来讲,由于高频特征在样本中出现次数更多,那么 AML 的大部分输入特征都是高频特征,这样一来,AML 的网络参数将极大的会被高频特征影响,导致AML可能会盲目的倾向于选择大维度。因此,我们提出了一个孪生网络来解决这个问题,其中 h-AML 和 l-AML 分别被用来刻画高频和低频特征。这样以来 l-AML 的网络参数可以不受高频特征影响,给出公正的特征维度选择决断。

Weighted Sum. 然而,一个最大的问题是,我们很难去卡一个阈值来事先定义哪些是高频特征哪些是低频特征。因此,我们提出了一个软选择的策略。具体而言,我们定义为特征值在历史中出现的次数,然后将分别输入到 h-AML 和 l-AML 中去,得到两个网络的输出 和 。最后将这两个输出进行加权求和,即:

其中是和相关的权重,是一个归一化函数将变成一个正态分布来使得在左右分布。不然的话,没有,所有的将会都趋近于1. 通过加权求和,对于高频样本,会有一个较大的,对应的 将会由 主导,这时在梯度传播的时候,会主要更新 h-AML 的网络参数,反之亦然。这样以来,AMTL 能够自适应的调节 h-AML 和 l-AML 的梯度更新来解决样本不平衡问题。

然后我们对使用 softmax 函数

其中, 为特征选择不同维度的概率,比如为选择维度的概率。然后选择向量可以被表达为:

对应的掩码向量可以通过来生成:

其中为预定义的掩码矩阵, 当时, 反之 。

掩码后的 embedding 向量可以通过 来获取。需要注意的是,对于不同的特征域,需要不同的 AMTL 来进行特征维度选择。

2.2.3 Relaxation 策略

然而,由于生成中需要 argmax 操作,这样一个操作使得 AMTL 的学习变得不可微,无法直接使用梯度下降的策略。为了解决这样一个问题,我们利用 temperated softmax [13,14,15]来平滑, 具体来说, 的第个值可以被近似为:

其中是 temperature 超参。当时,近似就无限接近于精确解。由于 是一个连续的向量,没有引入不可微的过程,因此可以使用梯度下降算法来训练。因此,我们并不直接去求解离散的向量,而是用 来近似。

然而,这样的操作会使得训练和推断之间存在信息差。具体来讲,我们使用的是 作为训练,然后在推断阶段,使用的是离散向量。为了解决这样一种差异,受 Straight-Through Estimator (STE) [16]启发,我们重构为

其中 stop_gradient 使用来阻断梯度传播的。由于前向计算的过程不受 stop_gradient 影响,在该阶段(与推断时,所用向量一致)。在反向传播是,通过 stop_gradient 来避免不可微过程的梯度更新。

▐ 3. 实验

3.1 实验设置

  • 数据集

    • MovieLens

    • IJCAI-AAC

    • Taobao

  • Baseline

    • Standard:传统的固定维度的embedding(FBE)

    • 基于规则的:MDE [8]

    • 基于NAS的:AutoEmb [11]

3.2 CTR预估任务

我们通过 CTR 预估任务来比较不同方法的效果。如表1所示,不论是和传统的FBE方法,还是维度选择的 MDE 和 AutoEmb 方法相比,AMTL 在所有数据集均取得更好的效果。

08fb78156376a5dd4f56b589b3de01cc.png
表1 CTR预估任务结果

3.3 存储开销比较

在这里,我们比较不同方法的 embedding 存储开销。由于 embedding 存储开销与 embedding 的维度成正比,在这里,简单起见,我们比较了,不同方法下,特征 User ID 的平均维度。如表2所示,可以看到由于 AMTL 采用了更加灵活的特征维度选择方式,其最能节省存储开销。相比于 FBE,节省约60%。

4e7d780570baca3dbabe5016e07e46d6.png
表2 存储开销比较

3.4 Embedding热启动评估

这里,我们评估 AMTL 在 embedding 热启动上的优越性。具体讲,在 DLRM 中有两类参数,一个是 MLP 层的参数,一个是 embedding 层的参数。在热启动的设置中,由于 MDE 和 AutoEmb 都不支持 embedding 的热启动,所以我们仅用线上服务模型的 MLP 的参数来初始化 MDE 和 AutoEmb 的 MLP 层。对于 AMTL 和 FBE 而言,其 MLP 层和 embedding 层均可用线上模型初始化。热启动后的 CTR 效果如表3所示,可以看到,由于能够自然的支持 embedding 的热启动,AMTL 取得了极大的提升。这样一种性质,为 AMTL 在实际应用提供了极大的便利。

dbd640a997f0b6bbf3716f06d80e403d.png
表3 热启动效果比较

3.5 Embedding维度评估

我们可视化了不同频率特征的embedding维度选择的平均大小,如图3(a)所示,到分别表示不同频率的特征集,下标越大,频率越大。可以看到,高频特征值倾向于选择高维度,低频特征选择低维度。表明,AMTL能够为不同频率的特征值选择合适的维度。

e2b7af62e95a1990dcb27b6fd9515dd8.png
图3 Embedding纬度评估

3.6 消融实验

孪生结构的评估:我们分别比较 AMTL 和 AML 的效果。如表4所示,AMTL 能够取得更好的效果。同时我们也可视化了 AML 的维度选择,如表图3(b)所示,由于样本不平衡问题,低频特征盲目的选择了高维度。

STE有效性评估:我们设置了一个不采用STE的模型,记为 AMTL-nSTE 。通过比较 AMTL 和 AMTL-nSTE 来评估 STE 的有效性。如表4所示,采用了 STE 的 AMTL 取得了更好的效果。

06cceddae22f6fff27235817abb10f65.png
表4 消融实验

3.7 时间开销比较

我们比较了不同模型之间的时间开销,如表5所示,AMTL 的方法相比于 FBE,在时间开销上略有增加。不过,需要指出的是,在推断阶段,我们可以直接存储 mask 后的 embedding 向量,而不需要再过 AMTL 层,以此来节省时间。

5f510292fe0ccf92c21cfa85ba9a651c.png
表5 时间开销比较

结语

AMTL 是我们团队在 embedding 优化上,从维度角度出发的一篇工作。同时也是继 FCN-GNN[17] 之后,在模型瘦身上的又一次探索。我们后续在此方向继续发力,也期待与从事相同领域的同学交流探讨。

 
 
 
 

「 更多干货,更多收获 」

cef478bb9304389fd5700bd39399daed.gif

 
 

2021年10月份热门报告盘点

推荐系统工程师技能树

美团大脑系列之:商品知识图谱的构建及应用

【干货】2021社群运营策划方案.pptx

大数据驱动的因果建模在滴滴的应用实践

联邦学习在腾讯微视广告投放中的实践如何搭建一个好的指标体系?如何打造标准化的数据治理评估体系?

【干货】小米用户画像实践.pdf(附下载链接)

推荐系统解构.pdf(附下载链接)

短视频爆粉表现指南手册.pdf(附下载链接)

 
 
推荐系统架构与算法流程详解某视频APP推荐策略详细拆解(万字长文)

关注我们

智能推荐

个性化推荐技术与产品社区

长按并识别关注

d2a57613e12a37efe3944f702b02b89a.png

您的「在看」,我的动力👇
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值