咋形象理解embedding这个概念

我觉得 @邱锡鹏 老师的《神经网络与深度学习》里对这个的解释比较容易理解——实际上对颜色的RGB表示法就属于一种典型的分布式表示:
咋形象理解embedding这个概念

对于颜色,我们可以把它拆成三个特征维度,用这三个维度的组合理论上可以表示任意一种颜色。同理,对于词,我们也可以把它拆成指定数量的特征维度,词表中的每一个词都可以用这些维度组合成的向量来表示,这个就是Word Embedding的含义。
当然,词跟颜色还是有很大的差别的——我们已经知道表示颜色的三个维度有明确对应的物理意义(即RGB),直接使用物理原理就可以知道某一个颜色对应的RGB是多少。但是对于词,我们无法给出每个维度所具备的可解释的意义,也无法直接求出一个词的词向量的值应该是多少。所以我们需要使用语料和模型来训练词向量——把嵌入矩阵当成模型参数的一部分,通过词与词间的共现或上下文关系来优化模型参数,最后得到的矩阵就是词表中所有词的词向量。
这里需要说明的是,有的初学者可能没绕过一个弯,就是“最初的词向量是怎么来的”——其实你只要知道最初的词向量是瞎JB填的就行了。嵌入矩阵最初的参数跟模型参数一样是随机初始化的,然后前向传播计算损失函数,反向传播求嵌入矩阵里各个参数的导数,再梯度下降更新,这个跟一般的模型训练都是一样的。等训练得差不多的时候,嵌入矩阵就是比较准确的词向量矩阵了。

■网友
不知道大家有没有这种感受,在学习推荐系统算法模型时,少不了embedding的应用,有的推荐算法模型甚至可以说就是在做embedding的过程,可见embedding在推荐系统中的重要性。
这篇文章就专门把embedding单独提出来,梳理一下embedding在推荐系统中的应用。以下内容主要从深度学习方法和传统的协同过滤方法两个方面加深和理解在推荐系统领域对embedding的认识,感受下“embedding”这一重要思想。
▌深度学习方法先拿一篇推荐系统领域中最为经典的论文之一“Deep Neural Networks for YouTubeRecommendations”来讲,Youtube的这篇视频推荐模型框架基本上奠定了后面推荐系统的主要步骤:召回和排序,如下图所示:
咋形象理解embedding这个概念

其中召回阶段(candidate generation)就是要从推荐的百万级别的视频库中筛选出用户可能感兴趣的视频,把推荐的视频库量级从百万级降到几百个。但是到底怎样才能快速高效的完成筛选呢?
要知道youtube是非常活跃的视频网站,每秒同时访问的人数成千上万,要同时实现每秒对每个用户都个性化的从百万视频候选集中挑出几百个用户感兴趣的视频,想想都不容易,因此每次做用户召回都跑一遍模型是不可能的,其解决方法就和接下来要介绍的embedding应用相关。如下图 1 所示为youtube召回阶段的模型:
咋形象理解embedding这个概念

▲ 图1. YouTube召回模型在离线的模型训练阶段,采用的是简单粗暴的softmax来对视频库中的所有视频进行分类,label为用户Next watched video的那个视频,因此整个召回阶段构建模型的思想就是预测某一时刻某一用户在对百万级以上的视频库哪个视频感兴趣,它最想点击和观看的视频是哪一个。
这里有一个很重要的问题就是百万级别以上的视频做softmax是很费计算资源和时间的,因此在召回模型的离线训练阶段采用了word2vec中的Negative Sample思想。可是即便是这样,面对百万级别的视频库,以及每秒成千上万的召回请求,在线上还是无法满足需求,不能直接使用模型去对视频做softmax,按照概率大小选取TopN来做召回,因此就有了embedding做召回的方法。


推荐阅读