ToVec家族

关键词:Word2Vec、User2Vec、Item2Vec,自编码,隐向量,降维,cbow、skip-gram,embedding,相似词

Word2Vec

word2vec输入输出不一样,cbow的输入是上下文,输出是词c出现的概率。skip-gram模型的输入是c,输出是上下文每个词出现的概率,隐藏层的维度一般低于输入输出,隐藏层神经元没有激活函数,是线性 变化,输出层使用了sotfmax,最终的输出是一个概率分布。损失函数是softmax loss。

ToVec家族_第1张图片

 以下内容是以skip-gram为例,整体模型的逻辑如下:

ToVec家族_第2张图片

样本的构建为:

ToVec家族_第3张图片

这里的window_size=2

 在整个模型生成的过程中,如果词表的量较大,整体比较稀疏,计算成本就会比较大,可以通过以下方法进行简化计算:

  1. 将常见的单词组合(word pairs)或者词组作为单个“words”来处理。
  2. 对高频次单词进行抽样来减少训练样本的个数。
  3. 对优化目标采用“negative sampling”方法,这样每个训练样本的训练只会更新一小部分的模型权重,从而降低计算负担。

Item2Vec

如果Item是一个序列,类似一句话那样,具有前后顺序,如用户的浏览记录,那这样Item2Vec跟Word2Vec没有区别,如果没有顺序关系,取而代之的是item set中两两之间的条件概率,而不是上下一个item。

自编码

自编码是输入输出都是相同维度的数据,隐藏层一般是低于输入输出的维度,损失函数是输入输出的均方差,隐藏层的激活函数一般是sigmoid、relu,自动编码器只能压缩那些与训练数据类似的数据。

ToVec家族_第4张图片

参考资料:

理解 Word2Vec 之 Skip-Gram 模型 - 知乎

基于TensorFlow实现Skip-Gram模型 - 知乎

万物皆Embedding,从经典的word2vec到深度学习基本操作item2vec - 知乎

你可能感兴趣的:(机器学习原理,机器学习)