本文主要是介绍RecSys - DHE (Deep Hash Embedding),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
论文:Learning to Embed Categorical Features without Embedding Tables for Recommendation
1. Introduction
embedding learning 很重要,是模型的奠基石。本文面向类别特征(如id类)。但在RecSys中面临很多挑战:
- huge vocabulary size:RecSys 中类别特征高基数维(翻译无能,原文high-cardinality)
- Dynamic nature of input:user 和 item 对应词表实时变化,新出现老消失
- Highly-skewed data distribution: 高倾向度的分布,对于长尾表现欠佳
one-hot编码再查找embedding矩阵是常规操作,但词表巨大且难适应表外词,而hash会导致碰撞。而Deep Hash Embedding = multi-hash + dense抽取网络,contribution:
- 多头hash获得编码向量取代one-hot
- dense抽取取代embedding矩阵查找,更参数有效,且解决了可训练和表达性问题。
- 通过在编码中集成side feature,来泛化特征值
2. one-hot编码演进
类别特征的编码通用框架: e → = T ( v ) = F ∘ E ( v ) \overrightarrow{e} = \mathscr{T}(v) = F\circ E(v) e=T(v)=F∘E(v),其中,E将特征值映射到某特定空间中,F解码生成embedding向量 e → \overrightarrow{e} e
演化:
1. one-hot编码 + lookup:矩阵随vocabulary线性增长;新词问题
2. hash降维 + one-hot + lookup:冲突问题
3. multi-hash(一般k=2) + one-hot + lookup
本质上都是基于one-hot编码和浅层神经网络(lookup <=> 1 layer)
3. DHE
3.1 Encoding Design
需要满足以下条件:
- 独一性:不冲突
- 同等相似性:尤其对于id类特征,必须保证相似程度是同等的;如8二进制编码 100 0 ( 2 ) 1000_{(2)} 1000(2)与9的 100 1 ( 2 ) 1001_{(2)} 1001(2)比与7的 011 1 ( 2 ) 0111_{(2)} 0111(2)看起来更等价,容易误导后续解码阶段
- 高维:高维空间更易划分,便于后续解码
- 高Shannon信息熵:简单来说每一维都要有用
3.2 Dense Hash Encoding
- 用多个hash func 讲特征值s转为k维向量 E ( s ) = [ H ( 1 ) ( s ) , H ( 2 ) ( s ) . . . , H ( k ) ( s ) ] E(s) = [H^{(1)}(s), H^{(2)}(s)..., H^{(k)}(s)] E(s)=[H(1)(s),H(2)(s)...,H(k)(s)],每个 H ( i ) H^{(i)} H(i)将s映射到{1,2…,m}
- 为了numeric stability,神经网络input必须是典型的实值和归一化的。因此受GANs引入随机噪声生成图片启发,找到合适的转化:Uniform Distribution 和 Gaussian Distribution
- k取很大保证高维性。计算可即时并行完成,不需要存储
3.3 Deep Embedding Network
用神经网络来拟合框架中F的映射过程,存储在隐层参数中。不同与deep network易过拟合,deep embedding network欠拟合:
- ReLU激活函数是分段线性的,表达不足,更换为Mish (𝑓 (𝑥)=𝑥 · tanh(ln(1 + 𝑒𝑥 )))
- BN使训练更稳定表现更好,但dropout等正则化无效
3.4 Side Features Enhanced Encodings for Generalization
类别特征不同值潜在特征表示不包含任何内在的相似性,因此很难扩展到其余值
one-hot编码形式对于各特征表示的更新是独立的,视为分散结构;而DHE任何特征值表示权重更新都会影响其与特征值表示,这种集中结构能泛化的可能性更大。因此,引入side features(如泛化特征)组合起来作为模型input
(如对于每个电影,引入其影片分类,评分等)
3.5 Summary
DHN = dense hash encoding + deep embedding network
- dense hash encoding:完全确定的,不可学习,实时计算,不许存储
- deep embedding network:用NN代替词表查找,缺陷在于计算。而由于网络的可变,DHE还能很好适应于online learning场景和power-law distributions (越流行模型记忆越深刻)
4. Experiment
4.1 评估
对于每种embedding分别用浅层网络GMF(Generalized Matrix Function)和MLP作为推荐模型,接受embedding作为输入,进行CTR预测。
4.2 baseline
model | 说明 |
---|---|
Full Embedding | – |
The Hashing Trick | hash降维 |
Bloom Embedding | multi-hash 生称二进制编码 + 1 linear layer |
Hash Embedding (HashEmb) | multi-hash + weight sum(权重学习获得) |
Hybrid Hashing | 常见特征值用one-hot编码,其余的用double hash |
CompositionalEmbedding | 两种互补的hash来避免冲突 |
5. Conclusion
future work:
- 处理multivalent特征,如词袋
- 用DHE联合建模多个特征
- 词表和NN结合平衡效率和表现
这篇关于RecSys - DHE (Deep Hash Embedding)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!