{"resolved":true,"match_type":"uuid","source_type":"original_book","book_id":"cd4f7678-cd9b-4971-bde0-e9ad46a6cc71","title":"人工智能与大数据技术导论","author":null,"edition":null,"publisher":null,"year":null,"isbn":"9787302517986","requested_by":"printed_page","book":{"source_type":"original_book","book_id":"cd4f7678-cd9b-4971-bde0-e9ad46a6cc71","id":"cd4f7678-cd9b-4971-bde0-e9ad46a6cc71","uuid":"cd4f7678-cd9b-4971-bde0-e9ad46a6cc71","title":"人工智能与大数据技术导论","normalized_title":"人工智能与大数据技术导论","author":null,"edition":null,"publisher":null,"year":null,"isbn":"9787302517986","isbns":["9787302517986"],"parsed":true,"ai_readable":true,"document_type":"book","page_count":490,"navigation_url":"https://workshop.closeclaw.top/ai/book/cd4f7678-cd9b-4971-bde0-e9ad46a6cc71","title_url":"https://workshop.closeclaw.top/ai/title/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E4%B8%8E%E5%A4%A7%E6%95%B0%E6%8D%AE%E6%8A%80%E6%9C%AF%E5%AF%BC%E8%AE%BA","fixed_page_url_template":"https://workshop.closeclaw.top/ai/book/cd4f7678-cd9b-4971-bde0-e9ad46a6cc71/page/{printed_page}","path_api_url_template":"https://workshop.closeclaw.top/api/ai/book/cd4f7678-cd9b-4971-bde0-e9ad46a6cc71/page/{printed_page}","read_url":"https://workshop.closeclaw.top/api/ai/read/cd4f7678-cd9b-4971-bde0-e9ad46a6cc71","page_url":"https://workshop.closeclaw.top/api/ai/books/cd4f7678-cd9b-4971-bde0-e9ad46a6cc71/page","search_url":"https://workshop.closeclaw.top/api/ai/books/cd4f7678-cd9b-4971-bde0-e9ad46a6cc71/search"},"page":{"printed_page":359,"pdf_page":375,"physical_index":375,"physical_index_base":0,"printed_page_status":"recognized","page_sha256":"c59072f7c36591eb4104aeb2fc4863448988bb14a0d7a005a0ffee109bc83f52"},"chapter":"第10章","content":"10.4.2 稀疏数据\n\n分类数据（CategoricalData）是指用于表示一组有限选项（比如100万部电影）中的一个或多个离散项（已经观看过的电影）的输入特征。例如，可以是某用户观看过的一部影片、某文档中使用的一系列单词或某人从事的职业。分类数据的表示方式是使用稀疏张量（sparsetensors，一种含有极少非零元素的张量）。例如，要构建一个影片推荐模型，可以为每部影片分配一个唯一ID（ID为0、1、2、3、..、999999），然后通过用户已观看影片的稀疏张量来表示每个用户（看过的电影那里打勾），如图10-54所示。\n\n在图10-54的矩阵中，用一行表示一个用户，一列表示一部电影，打一个勾表示用户看过这部电影。那么，每一行都是一个显示用户的影片观看记录的样本。如果有一百万部电影，要列出一个用户没有看过的所有电影可不容易，所以，只是记下看过的电影会更高效。正是因为每个用户只会观看所有可能的影片中的极小部分，所以我们以稀疏张量的形式表示。根据影片图标上方所示的索引，最后一行对应于稀疏张量[1,3,999999]，表示用户看过的3部电影的索引。\n\n那么，对于机器学习中的输入数据，我们如何将电影表示为数字矢量呢？最简单的方法是：定义一个巨型输入层，并在其中为100万部电影中的每部电影设定一个节点。因为100万部电影是独一无二的电影，所以使用长度为100万的矢量来表示每部电影，并将每部电影分配到相应矢量中对应的索引位置。如果为“教父”电影分配的索引是1234，那么可以将第1234个输入节点设成1，其余节点设成0。这种表示法称为独热编码，因为只有一个索引具有非零值。上述方法得到的输入矢量比较稀疏，即矢量很大，但非零值相对较少。稀疏表示法存在多项问题，这些问题可能会致使模型很难高效地学习。\n\n●网络的规模\n\n巨型输入矢量意味着神经网络的对应权重数目会极其庞大。如果有M部电影，而神经网络输入层上方的第一层内有N个节点，则需要为该层训练M×N个权重。权重数目过大会进\n\n第10章 神经网络\n\n359","previous_page":358,"next_page":360}