前言
推荐算法的效果离不开embedding的使用,embedding是推荐算法中很重要的一个组成部分,不过也是根据不同的业务需求和数据采取不同的embedding方式,在这里我也是稍微总结常用的几种embedding方法吧。
用一句话来总结一下embedding就是将稀疏矩阵向量,变成稠密矩阵向量。
1、word2vec和item2vec
word2vec这是一款很经典的embedding方法了,源自于nlp中。在nlp中CBOW( Continuous Bagof-Words)和 Skip-gram 语言模型的工具就是Word2vec。在这里我是用skip-gram来引出word2vec。
在一个语言数列中,Skip-gram的目的是推测当前单词可能的前后单词。我们设想一下滑动窗在训练数据时如下图所示(绿框中的词语是输入词,粉框则是可能的输出结果):
不断地移动滑动窗口我们可以得到一批样本。在推荐系统中也就是我们的特征向量。在训练过程开始之前,我们预先处理我们正在训练模型的文本。在这一步中,我们确定一下词典的大小(我们称之为vocab_size,比如说10,000)以及哪些词被它包含在内。在训练阶段的开始,我们创建两个矩阵——Embedding矩阵和Context矩阵。这两个矩阵在我们的词汇表中嵌入了每个单词(所以vocab_size是他们的维度之一)。第二个维度是我们希望每次嵌入的长度,即embedding的长度。
<