什么是Embedding?

说起 Embedding,我想你肯定不会陌生,至少经常听说。事实上,Embedding 技术不仅名气大,而且用 Embedding 方法进行相似物品推荐,几乎成了业界最流行的做法,无论是国外的 Facebook、Airbnb,还是在国内的阿里、美团,我们都可以看到 Embedding 的成功应用。因此,自从深度学习流行起来之后,Embedding 就成为了深度学习推荐系统方向最火热的话题之一。
但是 Embedding 这个词又不是很好理解,你甚至很难给它找出一个准确的中文翻译,如果硬是翻译成“嵌入”“向量映射”,感觉也不知所谓。所以索性我们就还是用 Embedding 这个叫法吧。
简单来说,Embedding 就是用一个数值向量“表示”一个对象(Object)的方法,我这里说的对象可以是一个词、一个物品,也可以是一部电影等等。但是“表示”这个词是什么意思呢?用一个向量表示一个物品,这句话感觉还是有点让人费解。这里,我先尝试着解释一下:一个物品能被向量表示,是因为这个向量跟其他物品向量之间的距离反映了这些物品的相似性。更进一步来说,两个向量间的距离向量甚至能够反映它们之间的关系。

Embedding技术在NLP领域的应用

Embedding方法的流行始于自然语言处理领域对于词向量生成问题的研究。 这里以词向量为例进一步解释Embedding的含义。
什么是Embedding?_第1张图片
如图所示为使用Word2vec方法编码的几个单词(带有性别特征)的Embedding向量在Embedding空间内的位置,可以看出从Embedding(king)到 Embedding(queen),从 Embedding(man)到 Embedding(woman)的距离向量几乎一 致,这表明词Embedding向量之间的运算甚至能够包含词之间的语义关系信息。同样,Embedding (walking) 到 Embedding(walked)和 Embedding(swimming)到 Embedding(swam)的距离向量一致,这表明walking-walked和swimming-swam的词性关系是一致的。
在有大量语料输入的前提下,Embedding技术甚至可以挖掘出一些通用知识,如图 ©所示,Embedding(Madrid)—Embedding(Spain)—Embedding(Beijing)—Embedding(China),这表明Embedding之间的运算操作可以挖掘出“首都-国家” 这类通用的关系知识。
通过上面的例子可以知道,在词向量空间内,甚至在完全不知道一个词的向量的情况下,仅靠语义关系加词向量运算就可以推断出这个词的词向量。 Embedding就是这样从另外一个空间表达物品,同时揭示物品之间的潜在关系的, 某种意义上讲,Embedding方法甚至具备了本体论哲学层面上的意义。

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

回到深度学习推荐系统上,为什么说Embedding技术对于深度学习如此重 要,甚至可以说是深度学习的“基础核心操作”呢?原因主要有以下三个:
(1)推荐场景中大量使用one-hot编码对类别、id型特征进行编码,导致样本特征向量极度稀疏,而深度学习的结构特点使其不利于稀疏特征向量的处理, 因此几乎所有深度学习推荐模型都会由Embedding层负责将高维稀疏特征向量转换成低维稠密特征向量。因此,掌握各类Embedding技术是构建深度学习推荐 模型的基础性操作。
(2) Embedding本身就是极其重要的特征向量。相比MF等传统方法产生的 特征向量,Embedding的表达能力更强,特别是Graph Embedding技术被提出后, Embedding几乎可以引入任何信息进行编码,使其本身就包含大量有价值的信息。 在此基础上,Embedding向量往往会与其他推荐系统特征连接后一同输入后续深度学习网络进行训练。
(3)Embedding对物品、用户相似度的计算是常用的推荐系统召回层技术。 在局部敏感哈希等快速最近邻搜索技术应用于推荐系统后,Embedding更适用于对海量备选物品进行快速“初筛”,过滤出几百到 几千量级的物品交由深度学习网络进行“精排”。 所以说,Embedding技术在深度学习推荐系统中占有极其重要的位置,熟悉并掌握各类流行的Embedding方法是构建一个成功的深度学习推荐系统的有力武器。

你可能感兴趣的:(深度学习推荐系统,深度学习,推荐算法)