嵌套是一种相对低维的空间,您可以将高维矢量映射到这种低维空间里。通过使用嵌套,可以让在大型输入(比如代表字词的稀疏矢量)上进行机器学习变得更加容易。在理想情况下,嵌套可以将语义上相似的不同输入映射到嵌套空间里的邻近处,以此来捕获输入的语义。一个模型学习到的嵌套,也可以被其他模型重用。
嵌套
协同过滤的目的
- 输入:50 万个用户已经选择观看的 100 万部影片
- 任务:向用户推荐影片
要解决这一问题,需要使用某种方法来确定哪些影片相似。
按相似度整理影片(一维)
按相似度整理影片(二维)
二维嵌套
二维嵌套
d 维嵌套
- 假设用户对影片的兴趣可大致从 d 个方面分析
- 每部影片都变成一个 d 维点,其中维度 d 中的值表示这部影片符合相应方面的程度
- 可从数据中学习嵌套
在深度网络中学习嵌套
- 无需单独的训练过程,也就是说,嵌套层只是隐藏层,每个维度一个单元
- 监督式信息(例如用户观看了两部相同的影片)针对所需任务调整学到的嵌套
- 隐藏单元直观地发现如何整理 d 维空间中的各项,才能最大限度地优化最终目标
输入表示法
- 每个样本(即该矩阵中的每行)是用户已观看的特征(影片)的稀疏矢量
- 此矩阵样本的密集表示法如下所示:(0, 1, 0, 1, 0, 0, 0, 1)
从空间和时间上来说,这种表示法并不高效。

输入表示法
- 构建一个字典,其中包含各个特征到相应整数(0 到电影数量减 1)的映射
- 将稀疏矢量高效地表示为用户观看过的影片。这可以表示为:

深度网络中的嵌套层
预测房屋售价的回归问题:
深度网络中的嵌套层
预测房屋售价的回归问题:
深度网络中的嵌套层
预测房屋售价的回归问题:
深度网络中的嵌套层
预测房屋售价的回归问题:
深度网络中的嵌套层
预测房屋售价的回归问题:
深度网络中的嵌套层
预测房屋售价的回归问题:
深度网络中的嵌套层
预测手写数字的多类别分类:
深度网络中的嵌套层
预测手写数字的多类别分类:
深度网络中的嵌套层
预测手写数字的多类别分类:
深度网络中的嵌套层
预测手写数字的多类别分类:
深度网络中的嵌套层
预测手写数字的多类别分类:
深度网络中的嵌套层
预测手写数字的多类别分类:
深度网络中的嵌套层
预测手写数字的多类别分类:
深度网络中的嵌套层
预测影片以向用户推荐的协同过滤:
深度网络中的嵌套层
预测影片以向用户推荐的协同过滤:
深度网络中的嵌套层
预测影片以向用户推荐的协同过滤:
深度网络中的嵌套层
预测影片以向用户推荐的协同过滤:
深度网络中的嵌套层
预测影片以向用户推荐的协同过滤:
深度网络中的嵌套层
预测影片以向用户推荐的协同过滤:
深度网络中的嵌套层
预测影片以向用户推荐的协同过滤:
与几何视图的对应关系
深度网络
- 每个隐藏单元都对应一个维度(潜在特征)
- 影片与隐藏层之间的边的权重是坐标值
单个影片嵌套的几何视图
选择嵌套维度个数
- 嵌套维度的个数越多,越能准确地表示输入值之间的关系
- 不过,维度个数越多,过拟合的可能性就越高,训练速度也会越慢
- 经验法则(一个不错的起点,但应使用验证数据进行微调): $$ dimensions \approx \sqrt[4]{possible\;values} $$
嵌套充当工具
- 嵌套会以相似内容彼此靠近的方式将各项内容(如影片、文字等)映射到低维实矢量
- 嵌套也可应用于密集数据(如音频),以创建有意义的相似度指标
- 联合嵌套多种类型的数据(如文字、图片、音频等),以定义这些数据之间的相似度