作者 | 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相关推荐

  1. 推荐系统中稀疏特征 Embedding 的优化表示方法

    文章作者:张俊林 新浪微博 AI Lab 负责人 内容来源:AI前线 导读:推荐或者 CTR 预估任务有一个很突出的特点:存在海量稀疏特征.海量意味着数量巨大,稀疏意味着即使在很大的训练数据里,大量特 ...

  2. KDD 2021多个奖项出炉:斯坦福博士摘得学位论文奖,北航校友胡侠获新星奖

    视学算法报道 机器之心编辑部 在 KDD 2021 线上开幕之前,多个奖项已正式公布.斯坦福博士 Aditya Grover 获得了学位论文奖,北航校友 Xia "Ben" Hu ...

  3. 【时间序列】KDD 2021丨时间序列相关研究论文汇总

    ACM SIGKDD(Conference on Knowledge Discovery and Data Mining, KDD)是全球最大规模的国际数据科学会议,将展示知识发现和数据挖掘方面的最新 ...

  4. KDD 2021 即将开幕!当线上 AI 顶会开始内卷.....

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 AI科技评论报道 作者 | 陈大鑫 还有三天,国际数据挖掘与知识发现 ...

  5. 2021谷歌学术指标出炉:CVPR总榜第4,仅次于Science,ECCV超过ICCV......

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨AI科技评论 编辑丨极市平台 导读 近日,谷歌学术更新了202 ...

  6. 用上GAN的推荐算法成精了,看完视频马上刷出相关文章丨KDD 2021

    萧箫 整理自 KDD 2021 量子位 报道 | 公众号 QbitAI 这年头,推荐算法真是越来越智能了. 举个栗子,当你热衷于东京奥运会并且刷了不少剪辑视频,APP就会根据你的品味为你推荐文章.游戏 ...

  7. KDD 2021 | 小红书推荐多样性解决方案:SSD在质量、多样性之间获得较好权衡

    ©作者 | 小红书推荐技术团队 来源 | 机器之心专栏 来自小红书的研究者在多样化推荐中,从用户体验和系统应用的视角出发,提出了一种滑动频谱分解(SSD)的方法,该方法可以捕捉用户在浏览长项目序列时对 ...

  8. 直播 | KDD 2021论文解读:基于协同对比学习的自监督异质图神经网络

    「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...

  9. KDD 2021 | 一种使用真负样本的在线延迟反馈建模

    ▐  摘要 电商场景的多目标模型预估,包括加购率,转化率,进店,时长等等.在展示广告领域,多目标体现了广告主对自己真实诉求的表达,因此,多目标模型既是技术项目,也有强烈的业务属性.广告排序系统,从上到 ...

最新文章

  1. java 怎么向串口发送指令_idea ssm项目java程序使用十六进制rxtx包向串口发送指令的方法...
  2. 2019.04.09 电商25 结算功能1
  3. vue中既可以选择又可以手动输入的文本框类型_在PPT中制作一个胖乎乎的可爱圆环图...
  4. 如何使用digiKam进行照片管理
  5. Selenium私房菜系列8 -- 玩转Selenium Server
  6. 豪宅周边5家盒马却不配送?盒马回应...
  7. 5.26 考试修改+总结
  8. C语言编译php环境,vscode中C语言编译环境的配置方法(分享)
  9. 破坏计算机系统信息罪司法解释,破坏计算机信息系统罪司法解释是怎样的的呢?...
  10. (原创)十大危险cmd命令代码总结
  11. 网站ping端口的操作方法和命令介绍
  12. 数学 - 基本初等函数导数公式及求导法则
  13. 文件夹删不掉需要管理员权限怎么办 删除需要管理员权限的办法
  14. 华纳云:香港服务器哪家比较好?
  15. 【力学】关于力学的一些基础知识
  16. padstack editor制作过孔
  17. Dnspod域名设置
  18. 高度优先左高树(HBLT) - C语言
  19. 【UVA】【11021】麻球繁衍
  20. EXCEL日月年转换成年月日

热门文章

  1. SAP License:CKMLCP运行物料帐时单个物料冲突无法运行
  2. SAP自学指南:案例公司的管理难题
  3. 风控分析秘籍R-I-S-K
  4. 天池实验室-Task02-Python入门(中)
  5. nodejs应用转换png,jpg,gif为webp图片格式
  6. 第二阶段团队冲刺第三天
  7. Centos 6.6 安装
  8. HDU 1176 免费馅饼(记忆化搜索)
  9. 测试人员眼中的问题解决策略
  10. 淘宝分布式NOSQL框架:Tair