H好菇凉666用万字长文聊一聊 Embedding 技术


随着深度学习在工业届不断火热 , Embedding 技术便作为“基本操作”广泛应用于推荐、广告、搜索等互联网核心领域中 。 Embedding 作为深度学习的热门研究方向 , 经历了从序列样本、图样本、再到异构的多特征样本的发展过程 。 本文主要系统总结了现在主流的 Embedding 技术 , 简单介绍它们的基本原理 , 希望对大家快速整理相关知识有所帮助 。
一、引言 在提到 Embedding 时 , 首先想到的是“向量化” , 主要作用是将高维稀疏向量转化为稠密向量 , 从而方便下游模型处理 。 那什么是 embedding 呢?下面是大家对 embedding 的定义:
In mathematics, an embedding is one instance of some mathematical structure contained within another instance, such as a group that is a subgroup. -- Wikipedia
An embedding is a mapping from discrete objects, such as words, to vectors of real numbers. -- Tensorflow 社区
Embedding 是用一个低维稠密向量来表示一个对象 , 使得这个向量能够表达相应对象的某些特征 , 同时向量之间的距离能反应对象之间的相似性 。-- 王喆《深度学习推荐系统》
将一个实例(instance)从复杂的空间嵌入(投射)到相对简单的空间 , 以便对原始实例进行理解 , 或者在相对简单的空间中进行后续操作 。-- chrisyi《Network embedding 概述》
我个人比较倾向于 Tensorflow 社区给出的定义 , 即Embedding是离散实例连续化的映射 。 如下图所示 , 可以将离散型词 embedding 成一个四维的连续稠密向量;也可以将图中的离散节点 embedding 成指定维度的连续稠密向量 。
H好菇凉666用万字长文聊一聊 Embedding 技术
本文插图
H好菇凉666用万字长文聊一聊 Embedding 技术
本文插图
Embedding 作为深度学习的热门研究方向 , 经历了从序列样本、理图样本、再到异构的多特征样本的发展过程 。 此外 , 由于 embedding 技术本身具有较强的综合信息表示能力、较低的上线部署门槛 , 进一步加速了其在工业上的落地 。
Embedding 对于推荐系统中深度学习方法的主要应用可以简单总结如下:

  • 作为 Embedding 层嵌入到深度模型中 , 实现将高维稀疏特征到低维稠密特征的转换(如 Wide&Deep、DeepFM 等模型);
  • 作为预训练的 Embedding 特征向量 , 与其他特征向量拼接后 , 一同作为深度学习模型输入进行训练(如 FNN);
  • 在召回层中 , 通过计算用户和物品的 Embedding 向量相似度 , 作为召回策略(比 Youtube 推荐模型等);
  • 实时计算用户和物品的 Embedding 向量 , 并将其作为实时特征输入到深度学习模型中(比 Airbnb 的 embedding 应用) 。
对于推荐场景中 , 什么数据可以采用 Embedding 来构造特征呢?下面简单列了下我在做微信游戏中心场景游戏和内容推荐时主要采用 embedding 技术来处理的数据(本文只简单列一下主要的点 , 后续会详细文章来具体讲如何处理以及其带来的效果) 。