深度学习中Embedding的理解
Embedding这个概念翻译过来的意思就是嵌入,就是把一个大的东西想办法嵌入到一个小的地方。在深度学习领域,Embedding一般用于代表某个类目的全部相关信息,表现形式为一个向量。
1、Embedding常见的操作有两个:加法和拼接,含义完全不同
Embedding的加法一般用于同类目的不同物品的合集表示。这个可以按照one-hot的思维去理解。为什么用one-hot而不用二进制去表示不同物品呢?就是因为不同one-hot做加法之后得到的向量可以反过来推断出包含了哪些向量,虽然序列信息无法放到里面。因此,同类目的不同物品的Embedding加法表示同时包含这些信息。
Embedding拼接一般用于不同类目的合集,一般用拼接的方式放到神经网络去。两个物品如果属于不同类目,那么放在一起最好用拼接。换个角度理解,不同类目表示的含义可以看作Embedding的维度可以不一致。
2、对连续特征离散化后进行Embedding
此外,会在工业中发现,经常会对一些连续特征做离散化再做embedding来提升效果。例如,历史时间一般会按照1天内,7天内,30天内,一年内进行离散化再去embedding。
3、多模态Embedding融合
此外,Embedding还多用于多模态特征的融合,因为多种模态数据最后都是汇聚到向量表示。这方面相关的技术在基于内容的推荐系统中应用十分广泛。NLP中对于文本的Embedding操作技术更加成熟。
4、Embedding用于下游任务
1、直接利用Embedding计算相似度或者对比loss,那么重点会放在Embedding的学习上面,注意此时最好不要再对Embedding进行拼接等操作。
2、如果对Embedding进行了contactnation的操作,并且经过了MLP网络,那么学习出来的Embedding对分类变量的表征能力会有所损失,损失点主要在于会更为了MLP后输出的loss目标。