Embedding

8/2/2021 Embedding

# Embedding在深度学习推荐系统中有哪些应用?列举三个方向。

1)在深度学习网络中作为Embedding层,完成从高维稀疏特征向量到低维稠密特征向量的转换。

2)组我诶预训练的Embedding特征向量,与其他特征向量连接后,一同输入深度学习网络进行训练。

3)通过计算用户和物品的Embedding相似度,Embedding可以直接作为推荐系统的召回层或者召回策略之一。

# Embedding作为深度学习模型的训练会存在什么问题?

将Embedding层与整个深度学习网络整合后一同进行训练是理论上最优的选择,因为上层梯度可以直接反向传播到输入层,模型整体是自洽的。但Embedding层的参数数量巨大,因此Embedding层的加入会拖慢整个神经网络的收敛速度,所以很多工程上要求快速更新深度学习推荐系统放弃了Embedding层端到端训练,而用预训练Embedding层的方式替代。

# Embedding有哪些预训练方法,分别介绍一下.

1)通过FM模型训练得到的各特征隐向量作为Embedding层的初始化权重,例如FNN模型就是使用该预训练方法。更甚,可以直接在FNN模型的训练过程中,固定预训练好的Embedding层,而仅更新上层神经网络权重,这是更彻底的Embedding预训练方法。

2)Embedding的本质是建立高维到低维向量的映射,而映射方法并不局限于神经网络,可以是任何异构模型。比如GBDT+LR模型,其中GBDT部分在本质上就是进行了一次Embedding操作,利用GBDT模型完成Embedding预训练,再将Embedding输入单层神经网络进行CTR预估。

3)Graph Embedding技术使得Embedding本身的表达能力进一步增强,而且能够将各类补充信息全部融入到Embedding中,使Embedding成为非常有价值的推荐系统特征。

# 请简述Embedding作为召回层的过程。

以YoouTube推荐系统召回层为例,结构图如下:

模型的输入层特征全部是用户相关特征,从左往右依次是用户观看历史视频的Embedding向量,用户搜索词Embedding向量、用户地理属性特征Embedding向量、用户年龄、性别相关特征。

模型的输出层是softmax层,该模型本质上是一个多分类模型,预测目标是用户观看了哪个视频,因此softmax层的输入是经过三层ReLu全连接层生产的用户Embedding,输出向量是用户观看每一个视频的概率分布。由于输出向量的每一维对应了一个视频,该维对应的softmax层列向量就是物品Embedding。通过模型的离线训练,可以最终得到每个用户的Embedding和物品Embedding。

模型部署时,没有必要部署整个深度神经网络来完成从原始特征向量到最终输出的预测过程,只需要将用户Embedding和物品Embedding存储到内存数据库,通过内积运算再排序的方法就可以得到物品的排序,再通过取序列中TopN的物品即可得到召回的候选集合,这就是利用Embeddng作为召回层的过程。

但因为候选集量级巨大,内积运算会消耗大量计算时间,导致线上推断延迟,这时需要使用局部敏感哈希让Embedding进行快速搜索。