嵌套 (Embeddings):转换到低维度空间

要解决稀疏输入数据的核心问题,您可以将高维度数据映射到低维度空间。

通过纸上练习您已了解,即便是小型多维空间,也能自由地将语义上相似的项归到一起,并将相异项分开。矢量空间中的位置(距离和方向)可对良好的嵌套中的语义进行编码。例如,下面的真实嵌套可视化图所展示的几何关系图捕获了国家与其首都之间的语义关系。

图 4. 嵌套可产生精彩的模拟。

借助这种有意义的空间,机器学习系统能够检测出对学习任务可能有帮助的模式。

收缩网络

尽管我们需要足够的维度来编码丰富的语义关系,但我们也需要足够小的嵌套空间来更快速地训练我们的系统。实用嵌套的量级大致有数百个维度。这可能比您在自然语言任务中使用的词汇规模要小好几个数量级。

嵌套充当查询表

嵌套是一个矩阵,每列表示您词汇中的一项所对应的矢量。要获得某个词汇项的密集矢量,您可以检索该项所对应的列。

但是,如何转换字词矢量的稀疏包呢?要获得表示多个词汇项(例如,一句或一段中的所有字词)的稀疏矢量的密集矢量,您可以检索各项的嵌套,然后将它们相加。

如果稀疏矢量包含词汇项的计数,则您可以将每项嵌套与其对应项的计数相乘,然后再求和。

这些运算可能看起来很眼熟吧。

嵌套查询充当矩阵乘法

我们刚刚阐述的查询、乘法和加法程序等效于矩阵乘法。假设有一个 1 X N 的稀疏表示 S 和一个 N X M 的嵌套表 E,矩阵乘法 S X E 可以得出密集矢量 1 X M。

但首要问题是,如何获取 E 呢?我们将在下一部分介绍如何获取嵌套。