Embedding
译为“嵌入”,被翻译为“向量化”。主要作用:将稀疏向量转化为稠密向量,便于上层神经网络的处理。
定义:用一个低维稠密的向量“表示”一个对象。 对象可以是一个词,一个商品,一部电影等等。“表示”:意味着Embedding
向量能够表达相应对象的某些特征,向量之间的距离,反应对象之间的相似性。
Embedding
对深度学习推荐系统的重要性:
- 使用
Embedding
层将高维稀疏特征向量转换成低维稠密特征向量。 - 可以引入任何信息进行编码,本身包含大量有价值的信息。
Embedding
对物品和用于相似度的计算是常用的推荐系统召回层技术。
Word2Vec
——经典的Embedding
方法
Word2Vec
:是word to vecor
的简称,是一个生成对“词”向量的表达式的模型。
独热编码one-hot
one-hot
编码就是保证每个样本中的单个特征只有一位处于状态1
,其他的都是0
。
举例:
['male', 'female']
['C++', 'C', 'Java', 'python']
转变为独热编码为:
['10', '01']
['1000', '0100', '0010', '0001']
one-hot
编码的优缺点分析:
- 优点:将特征属性转换为离散数值型模型,解决了分类器的分类问题。在一定程度上起到了扩充特征的作用。
- 缺点:不可避免的造成数据中大量
0
的特征维度,导致特征向量稀疏。
CBOW
模型:
含义: 输入 w t w_t wt周边的词,输出的是对词 w t w_t wt的预测。
输入,映射,输出:
CBOW
训练的网络结构:
训练过程:
- 输入层:上下文单词的
one-hot
编码。 - 所有
one-hot
编码乘以输入层到隐藏层的权重参数 w w w。 - 将所得到的新的向量求和作为下一层的向量。
- 将隐层向量与隐层到输出层的权重参数 w ′ w^{\prime} w′加权求和后最为输出向量。
- 通过
softmax
函数做多分类任务,将输出向量投影为概率分布。 - 概率中最大的
index
所指的单词,即为最终所预测的单词输出。 - 与真实的
one-hot
向量所对应的标签做对比,定义损失函数(交叉熵损失),通过梯度下降法优化参数 w w w和 w ′ w^{\prime} w′。
训练结束后,再有新的输入向量(单词)与训练好的参数矩阵 w w w做点积,得到的向量就是我们预测的词向量(word embedding),这个矩阵就是Word2Vec
的查找表(lookup table),任何一个单词的one-hot
表示乘以这个矩阵都将得到自己的word embedding
。
Skip-gram
模型:
含义: 与CBOW
模型相反。是给定一输入单词 w t w_t wt来预测上下文单词。
执行过程:
- 选取好语料库,选取好句子,再选取一个长度为 2 C + 1 2C+1 2C+1的滑动窗口,也就是以目标单词为中心,前后各选 C C C个单词。每滑动一次,窗口中的词组,就形成一个训练样本。
- 有了训练样本。因为每个单词 w t w_t wt都决定了其相邻单词 w t + j w_{t+j} wt+j,所以使用极大似然估计,使得样本的条件概率 p ( w t + j ∣ w t ) p(w_{t+j}|w_t) p(wt+j∣wt