Embedding技术在推荐系统中的应用

到处都在谈Embedding,那么Embedding技术到底是什么呢?

1.什么是 Embedding?

Embedding 其实就是用一个低维稠密的数值向量“表示”一个对象(Object)的方法。这里的对象可以是一个词、一个商品、一个电影等。
一个物品能被向量表示,意味着Embedding向量能够表达相应对象的某些特征,所以这个向量跟其他物品向量之间的距离反映了这些物品的相似性。更进一步来说,两个向量间的距离向量甚至能够反映它们之间的关系。

1.1 词向量的例子

Embedding方法流行始于NLP领域对于词向量生成问题的研究。

在这里插入图片描述
上图是 Google 著名的论文 Word2vec 中的例子,它利用 Word2vec 这个模型把单词映射到了高维空间中,图左边,从 king 到 queen 的向量和从 man 到 woman 的向量,无论从方向还是尺度来说它们都异常接近。这就说明词 Embedding 向量间的运算能够揭示词之间的性别关系!比如 woman 这个词的词向量可以用下面的运算得出:
Embedding(woman)=Embedding(man)+[Embedding(queen)-Embedding(king)]

同样,图右的例子,从 walking 到 walked 和从 swimming 到 swam 的向量基本一致,这说明词向量揭示了词之间的时态关系!这就是 Embedding 技术的神奇之处。

在词向量空间内,甚至在完全不知道一个词的向量的情况下,仅靠语义关系加词向量运算就可以推断出这个词的词向量。Embedding就是这样从另一个空间表达物品,同时揭示物品之间的潜在关系。

同理,在电商领域,对商品进行Embedding,那么Embedding(键盘)和Embedding(鼠标)的向量距离应该比较近,而Embedding(键盘)和Embedding(帽子)的距离会相对远。

1.2 Embedding技术对于深度学习推荐系统的重要性

  • 推荐场景中大量使用one-hot编码对类别、id型特征进行编码,导致样本特征向量极度稀疏,而深度学习的结构特点使其不利于稀疏特征向量的处理,因此几乎所有深度学习推荐模型都会由Embedding层负责将高维稀疏特征向量转换成稠密低维特征向量。
  • Embedding本身就是极其重要的特征向量。相比于MF等传统方法产生的特征向量,Embedding表达能力更强。
  • Embedding对物品、用户相似度的计算是常用的推荐系统召回技术。
    特别是在局部敏感哈希等快速最近邻搜索技术应用于推荐系统后,Embedding更适用于对海量备选物品进行快速“筛选”。

2.word2vec——经典的Embedding方法

2.1 什么是word2vec

Word2vec 是“word to vector”的简称,顾名思义,它是一个生成对“词”的向量表达的模型。

想要训练 Word2vec 模型,我们需要准备由一组句子组成的语料库。假设其中一个长度为 T 的句子包含的词有   w 1 , w 2 … … w t \ w_1,w_2……w_t  w1,w2wt,并且我们假定每个词都跟其相邻词的关系最密切。
CBOW和Skip-gram
根据模型假设的不同,Word2vec 模型分为两种形式,CBOW 模型和 Skip-gram 模型。其中,CBOW 模型假设句子中每个词的选取都由相邻的词决定,因此CBOW 模型的输入是 w t w_t wt周边的词,预测的输出是 w t w_t wt。Skip-gram 模型则正好相反,它假设句子中的每个词都决定了相邻词的选取,所以你可以看到 Skip-gram 模型的输入是 w t w_t wt,预测的输出是 w t w_t wt周边的词。按照一般的经验,Skip-gram 模型的效果会更好一些。

2.2 Word2vec的训练过程

2.3 Word2vec的负采样训练方法

3.Item2vec——Word2vec在推荐系统领域的推广

在 Word2vec 诞生之后,Embedding 的思想迅速从自然语言处理领域扩散到几乎所有机器学习领域,推荐系统也不例外。 Word2vec 可以对词“序列”中的词进行 Embedding,那么对于用户购买“序列”中的一个商品,用户观看“序列”中的一个电影,也应该存在相应的 Embedding 方法。

在这里插入图片描述

参考:深度学习推荐系统,王喆编著

猜你喜欢

转载自blog.csdn.net/weixin_44127327/article/details/112602399