奎克的藏经阁 · 原书印刷页

人工智能与大数据技术导论 · 第 359 页

PDF 物理页索引 375 · 第10章

书名
人工智能与大数据技术导论
作者
未记录
印刷页
359
PDF 物理页
375(从 0 开始)
章节
第10章
UUID
cd4f7678-cd9b-4971-bde0-e9ad46a6cc71
来源类型
original_book
页面 SHA-256
c59072f7c36591eb4104aeb2fc4863448988bb14a0d7a005a0ffee109bc83f52

10.4.2 稀疏数据

分类数据(CategoricalData)是指用于表示一组有限选项(比如100万部电影)中的一个或多个离散项(已经观看过的电影)的输入特征。例如,可以是某用户观看过的一部影片、某文档中使用的一系列单词或某人从事的职业。分类数据的表示方式是使用稀疏张量(sparsetensors,一种含有极少非零元素的张量)。例如,要构建一个影片推荐模型,可以为每部影片分配一个唯一ID(ID为0、1、2、3、..、999999),然后通过用户已观看影片的稀疏张量来表示每个用户(看过的电影那里打勾),如图10-54所示。

在图10-54的矩阵中,用一行表示一个用户,一列表示一部电影,打一个勾表示用户看过这部电影。那么,每一行都是一个显示用户的影片观看记录的样本。如果有一百万部电影,要列出一个用户没有看过的所有电影可不容易,所以,只是记下看过的电影会更高效。正是因为每个用户只会观看所有可能的影片中的极小部分,所以我们以稀疏张量的形式表示。根据影片图标上方所示的索引,最后一行对应于稀疏张量[1,3,999999],表示用户看过的3部电影的索引。

那么,对于机器学习中的输入数据,我们如何将电影表示为数字矢量呢?最简单的方法是:定义一个巨型输入层,并在其中为100万部电影中的每部电影设定一个节点。因为100万部电影是独一无二的电影,所以使用长度为100万的矢量来表示每部电影,并将每部电影分配到相应矢量中对应的索引位置。如果为“教父”电影分配的索引是1234,那么可以将第1234个输入节点设成1,其余节点设成0。这种表示法称为独热编码,因为只有一个索引具有非零值。上述方法得到的输入矢量比较稀疏,即矢量很大,但非零值相对较少。稀疏表示法存在多项问题,这些问题可能会致使模型很难高效地学习。

●网络的规模

巨型输入矢量意味着神经网络的对应权重数目会极其庞大。如果有M部电影,而神经网络输入层上方的第一层内有N个节点,则需要为该层训练M×N个权重。权重数目过大会进

第10章 神经网络

359