KDD 2021 | 谷歌DHE:不使用embedding table的类别型特征embedding
作者 | Chilia
哥伦比亚大学 NLP搜索推荐
整理 | NewBeeNLP
类别型特征(用户ID/物品ID)的embedding在推荐系统中扮演着重要的作用,标准的方式是用一个(巨大的)embedding table为每个类别特征分配一个embedding。然而这种方式在推荐系统中存在以下几个挑战:
参数量巨大(Huge vocabulary size):推荐系统通常包含几百万的用户ID/视频ID,如果每个特征都指定一个embedding会占据大量空间。
特征是动态的(Dynamic nature of input):推荐系统中经常会出现全新的用户ID/视频ID,固定的embedding table不能解决OOV(out-of-vocabulary)问题.
特征分布高度倾斜(Highly-skewed data distribution):推荐数据中低频特征的训练实例数量较少,因此该特征的embedding在训练阶段就很少更新,对训练的质量有显著影响。
这篇文章提出一个「Deep Hash Embeddings (DHE)」 的方式来缓解以上问题。
论文:Learning to Embed Categorical Features without Embedding Tables for Recommendation[1]
1. 已有的类别特征embedding方法
1.1 One-hot Full Embedding
这种方式就是最常见的方法,即把所有类别特征进行编号,假设共 个特征。特征 首先通过one-hot进行编码 , 其中只有第 ! 项为1,其他都为0。接着通过一个可学习的线性变换矩阵(说白了就是embedding table,可以看作一层神经网络,但没有bias项)得到对应的embedding表示:
优点:简单
缺点:embedding table随特征数量线性增长(即内存问题);无法处理新出现的特征(OOV)。
1.2 One-hot Hash Embedding
为了解决One-hot Full Embedding中的内存消耗巨大的问题,可以使用「哈希函数」对类别特征进行「映射分桶」,将原始的 维的 one-hot 特征编码映射为 维的 one-hot 特征编码(即m个桶,$m<<n$ )。这样,embedding="" table只用存储m项,大大降低了参数量。<="" p="">
相比One-hot Full Embedding,编码部分变为: , 其中只有 项为1,其他为0。接着还是通过embedding table得到embedding表示:。
优点:能有效缓解One-hot Full Embedding方式的内存问题。
缺点:只要是哈希,就会有「冲突」!哈希冲突导致多个ID共用一个embedding, 这会伤害模型性能。
为了解决哈希冲突的问题,可以做如下改进:
取k个不同的哈希函数 , 按照上述方法生成k个one-hot编码: (分到了k个桶), 每个one-hot编码都去查一下embedding table,并且把最后的结果concat到一起/或者做avg-pooling。
2. Deep Hash Embeddings
DHE将整个特征嵌入分为「编码阶段(encoding)「和」解码阶段(decoding)」。下图是One-hot Embedding与DHE的整体区别:
可以看到:
One-hot Embedding的编码阶段将特征表示为one-hot的稀疏向量,解码阶段通过巨大的embedding look-up table(可看作一层神经网络)得到该特征的唯一表示。
DHE编码阶段通过多个(k=1024个)哈希函数将特征表示为稠密的Identifier vector, 解码阶段通过多层神经网络得到该特征的唯一表示。
2.1 Encoding阶段
2.1.1 一个好的encoding应该有哪些特性?
唯一性(Uniqueness):每个不同特征值的编码应该是唯一的。
同等相似性( Equal Similarity):只有唯一表示是不够的。例如二进制编码中:9表示为1001,8表示为1000:,7表示为0111。我们发现8的表示和9的表示更相似,这会引入bias,让编码器以为id = 8 与 id = 9比起id = 7 与 id = 9更相似,然而id类特征是没有顺序的,因此它们应该是同等相似的。
高维(High dimensionality):我们希望这些编码便于后续解码函数区分不同的特征值。由于高维空间通常被认为是「更可分的」 (回忆一下SVM中的kernel方法...),我们认为编码维度也应该相对较高。
高香农熵(High Shannon Entropy):香农熵(以bit为单位)测量一个维度中所携带的信息。从信息论的角度来看,高香农熵的要求是为了防止冗余维数。例如,一个编码方案可能满足上述三个属性,但在某些维度上,所有特征值的编码值是相同的。所以我们希望通过最大化每个维度的熵来有效地利用所有维度。例如,one-hot编码在每个维度上的熵都很低,因为对于大多数特征值来说,每个维度上的编码都是0。因此,one-hot编码需要非常高的维度(即),而且效率非常低。高香农熵就是要让encoding更加高效。
2.1.2 DHE编码阶段(encoding)的设计
提出的DHE运用 个哈希函数把每个类别特征映射为一个 维的稠密向量。
具体的,每个哈希函数 都将一个正整数 映射到{1,2,...m},本实验中取 。因此,k个哈希函数就把一个正整数 映射成了k维的向量 , 向量中的每个元素都取自{1,2,...m}。实验中取k=1024.
然而,直接用上面得到的编码表示是不合适的,因此作者进行了两个变换操作来保证数值稳定性:
均匀分布(Uniform Distribution):把 中的每个值映射到[-1,1]之间
高斯分布(Gaussian Distribution):把经过均匀分布后的向量转化为高斯分布 。
(作者说,这里是受到GAN网络的启发,用服从高斯分布的随机变量做GAN网络的输入。)
作者在文章中验证了这样设计的encoding满足3.1.1的四个条件。
2.2 Decoding 阶段
Decoding阶段需要把Encoding阶段得到的 维向量映射为 维。如上面的图所示,作者用多层神经网络来实现。但是,由于参数量明显比embedding table降低很多,这种多层神经网络会导致「欠拟合」。因此,作者尝试了Mish激活函数 来代替ReLU激活函数,引入更多的非线性,从而提升表征能力。
作者还考虑了batch normalization (BN)等训练技巧。但是不能使用dropout,因为我们的问题是欠拟合而不是过拟合。
2.3 加入辅助信息以增强泛化性(解决OOV问题)
记忆性(memorization): 例如one-hot编码的每个id embedding都是独立的,因此只有记忆性没有泛化性
泛化性(generalization): 本文提出的DHE方法,embedding network中的参数变化会影响所有特征的embedding结果。
对于物品ID/用户ID的特征embedding,可以考虑「拼接」上它们属性(年龄、品牌等)的表示,然后输入到DHE「解码」阶段来生成最终的特征嵌入。这样能够增强泛化能力。
3. 实验对比
作者首先对比了one-hot的方式以及多种hash的方法:
DHE取得了和one-hot相近的性能,但参数了极大的减小了。
其他方法虽然减小了参数量,但性能都下降了
一起交流
想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定o要备注信息才能通过)
本文参考资料
[1]
Learning to Embed Categorical Features without Embedding Tables for Recommendation: https://arxiv.org/abs/2010.10784v2
- END -
聊一聊搜索推荐中的 Position Bias
2021-12-10
关于逻辑回归,面试官都怎么问
2021-12-06
继续!从顶会论文看对比学习的应用!
2021-11-30
京东:个性化语义搜索在电商搜索中的应用
2021-11-24
KDD 2021 | 谷歌DHE:不使用embedding table的类别型特征embedding相关推荐
- 推荐系统中稀疏特征 Embedding 的优化表示方法
文章作者:张俊林 新浪微博 AI Lab 负责人 内容来源:AI前线 导读:推荐或者 CTR 预估任务有一个很突出的特点:存在海量稀疏特征.海量意味着数量巨大,稀疏意味着即使在很大的训练数据里,大量特 ...
- KDD 2021多个奖项出炉:斯坦福博士摘得学位论文奖,北航校友胡侠获新星奖
视学算法报道 机器之心编辑部 在 KDD 2021 线上开幕之前,多个奖项已正式公布.斯坦福博士 Aditya Grover 获得了学位论文奖,北航校友 Xia "Ben" Hu ...
- 【时间序列】KDD 2021丨时间序列相关研究论文汇总
ACM SIGKDD(Conference on Knowledge Discovery and Data Mining, KDD)是全球最大规模的国际数据科学会议,将展示知识发现和数据挖掘方面的最新 ...
- KDD 2021 即将开幕!当线上 AI 顶会开始内卷.....
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 AI科技评论报道 作者 | 陈大鑫 还有三天,国际数据挖掘与知识发现 ...
- 2021谷歌学术指标出炉:CVPR总榜第4,仅次于Science,ECCV超过ICCV......
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨AI科技评论 编辑丨极市平台 导读 近日,谷歌学术更新了202 ...
- 用上GAN的推荐算法成精了,看完视频马上刷出相关文章丨KDD 2021
萧箫 整理自 KDD 2021 量子位 报道 | 公众号 QbitAI 这年头,推荐算法真是越来越智能了. 举个栗子,当你热衷于东京奥运会并且刷了不少剪辑视频,APP就会根据你的品味为你推荐文章.游戏 ...
- KDD 2021 | 小红书推荐多样性解决方案:SSD在质量、多样性之间获得较好权衡
©作者 | 小红书推荐技术团队 来源 | 机器之心专栏 来自小红书的研究者在多样化推荐中,从用户体验和系统应用的视角出发,提出了一种滑动频谱分解(SSD)的方法,该方法可以捕捉用户在浏览长项目序列时对 ...
- 直播 | KDD 2021论文解读:基于协同对比学习的自监督异质图神经网络
「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...
- KDD 2021 | 一种使用真负样本的在线延迟反馈建模
▐ 摘要 电商场景的多目标模型预估,包括加购率,转化率,进店,时长等等.在展示广告领域,多目标体现了广告主对自己真实诉求的表达,因此,多目标模型既是技术项目,也有强烈的业务属性.广告排序系统,从上到 ...
最新文章
- java 怎么向串口发送指令_idea ssm项目java程序使用十六进制rxtx包向串口发送指令的方法...
- 2019.04.09 电商25 结算功能1
- vue中既可以选择又可以手动输入的文本框类型_在PPT中制作一个胖乎乎的可爱圆环图...
- 如何使用digiKam进行照片管理
- Selenium私房菜系列8 -- 玩转Selenium Server
- 豪宅周边5家盒马却不配送?盒马回应...
- 5.26 考试修改+总结
- C语言编译php环境,vscode中C语言编译环境的配置方法(分享)
- 破坏计算机系统信息罪司法解释,破坏计算机信息系统罪司法解释是怎样的的呢?...
- (原创)十大危险cmd命令代码总结
- 网站ping端口的操作方法和命令介绍
- 数学 - 基本初等函数导数公式及求导法则
- 文件夹删不掉需要管理员权限怎么办 删除需要管理员权限的办法
- 华纳云:香港服务器哪家比较好?
- 【力学】关于力学的一些基础知识
- padstack editor制作过孔
- Dnspod域名设置
- 高度优先左高树(HBLT) - C语言
- 【UVA】【11021】麻球繁衍
- EXCEL日月年转换成年月日