one-hot编码和embedding

one-hot编码

一个特征有几个取值one-hot就有几维,比如英文字母有26个,那个一个字母a的one-hot编码有26维。

什么是embedding?

先来看看什么是embedding,我们可以简单的理解为,将一个特征转换为一个向量。在推荐系统当中,我们经常会遇到离散特征,如userid、itemid。对于离散特征,我们一般的做法是将其转换为one-hot,但对于itemid这种离散特征,转换成one-hot之后维度非常高,但里面只有一个是1,其余都为0。这种情况下,我们的通常做法就是将其转换为embedding。

embedding的过程是什么样子的呢?它其实就是一层全连接的神经网络,如下图所示:
one-hot编码和embedding_第1张图片
假设一个特征共有5个取值,也就是说one-hot之后会变成5维,我们想将其转换为embedding表示,其实就是接入了一层全连接神经网络。由于只有一个位置是1,其余位置是0,因此得到的embedding就是与其相连的图中红线上的权重
参考文章:https://zhuanlan.zhihu.com/p/85802954

你可能感兴趣的:(python,深度学习,神经网络,自然语言处理)