9.1 嵌入方法简介

词嵌入方法最早在自然语言处理领域得到了大规模的使用(见本章参考文献[1][2][3][4]),可以通过学习词的低维向量表示,解决词的句法和语义相关的NLP问题,如词性标注、关键词提取、句子相似度等,并且取得了非常好的效果。这种嵌入技术吸引了很多其他领域的研究者进行尝试,并用于更多的业务场景,如搜索(本章参考文献[11][21])、推荐等,也取得了很好的效果。

熟悉深度学习的读者肯定知道,深度学习模型中隐含层的向量可以作为一种生成嵌入表示的方法。自编码器和表示学习的一些方法和技术可以很好地用作嵌入,随着深度学习技术的发展壮大,嵌入方法得到大量使用。Word2vec本身也是一种浅层的神经网络模型。

嵌入方法有很强的数学背景,在数学领域大量采用,几何学中有所谓的嵌入存在定理,像PCA(Principal Components Analysis)本质上是一种高维空间到低维空间的嵌入。在数学上有所谓的射影几何学,研究的就是图形的射影性质,即它们经过射影变换后,依然保持不变的图形性质。可以说从高维空间到低维空间的任何一种映射其实就是一种嵌入。

这里给嵌入方法下一个很形式化的数学定义,以帮助读者更好地理解。假设(S,F)是n维空间中的一个二元组,S是由向量组成的集合,F是S中元素满足的某种关系。那么嵌入方法就是需要我们找到一个映射:Φ:Rn→Rm(mn),使得Φ(S)在Rm中也大致满足(可能有一定的信息损耗)关系F。

现实生活中嵌入的案例很多,比如我们在平面中画三维物体其实是一种嵌入,我们需要保持物体之间的相对距离、位置以及遮挡关系,这种关系保持得越好,那么画得就越逼真。

霍夫曼编码就是一种采用最小信息量来编码的方式,我们也可以将从一种可行的长编码到最短霍夫曼编码的映射关系看成是一种嵌入。

通过嵌入,我们可以在更低的维度解决问题,人类的大脑是比较善于处理低维(三维以下)问题的,对高维问题较难理解,所以嵌入方法也是一类方便我们理解和认知的方法。为什么嵌入方法在机器学习中有很好的效果呢?因为高维空间表达能力太强,现实生活中的样本数量一般是较小的(相比于高维空间强大的表达能力),只能“占据”高维空间很小的一个区域(这个区域一般等价于一个很低维的空间),所以我们可以将这些样本投影到等价的低维空间中,也能让它们有一定的区分度。

总结一下,嵌入方法是指通过数学变换(机器学习算法)将高维空间的对象映射到低维空间并保持相关性质的一种方法。除了方便人类理解外,通过嵌入我们至少可以获得如下好处:

·嵌入到低维空间再处理,可以减少数据存储与计算成本(高维空间有维数灾难)。

·嵌入到低维空间,虽有部分信息损耗,但是这样反而可能提升模型的泛化能力(样本一般含有噪声,通过嵌入低维空间,其实可以“过滤掉”部分噪声)。

本章主要讲解嵌入方法在推荐系统上的应用,下面从嵌入方法的基本原理开始介绍。