本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Object2Vec 算法
Amazon SageMaker Object2Vec 算法是高度可自定义的通用神经嵌入算法。它可以学习高维对象的低维密集嵌入。将以某种方式学习嵌入,以便在嵌入空间中保留原始空间中的对象对之间的关系语义。例如,您可以使用学到的嵌入有效地计算对象的最近邻点,以及可视化低维空间中的相关对象的自然聚类。您还可以将嵌入用作下游指导式任务中相应对象的功能,例如分类或回归。
Object2Vec 概括了众所周知的 Word2Vec 嵌入技术,用于 SageMaker 中优化的单词。BlazingText 算法. 有关论述如何将 Object2Vec 应用到一些实际使用案例的博客文章,请参阅Amazon SageMaker Object2VEC 简介
主题
Object2Vec 算法的 I/O 接口
您可以在很多输入数据类型上使用 Object2Vec,包括以下示例。
输入数据类型 | 示例 |
---|---|
语句-语句对 |
“一款有多个男性玩的足球比赛。” “有些男人在玩运动。” |
标签-序列对 |
电影 “泰坦尼克号” 的流派标签,例如 “浪漫” 和 “戏剧” 以及简短描述:“詹姆斯·卡梅隆的泰坦尼克号是一个史诗般的,动感十足的浪漫,背对 R.M.S. Titanic. She was the most luxurious liner of her era, a ship of dreams, which ultimately carried over 1,500 people to their death in the ice cold waters of the North Atlantic in the early hours of April 15, 1912.” |
客户-客户对 |
Jane 的客户 ID 和 Jackie 的客户 ID。 |
产品-产品对 |
足球的产品 ID 和篮球的产品 ID。 |
项审查用户-项对 |
用户的 ID 以及她购买的商品,例如苹果、梨和橙子。 |
要将输入数据转换为支持的格式,必须对其进行预处理。目前,Object2Vec 本身支持两种类型的输入:
-
离散标记,它表示为单个
integer-id
的列表。例如:[10]
。 -
离散标记序列,它表示为
integer-ids
列表。例如:[0,12,10,13]
。
每个对中的对象可以是不对称的。例如,这些对可以是 (标记, 序列)、(标记, 标记) 或 (序列, 序列)。对于标记输入,该算法支持简单嵌入作为兼容编码器。对于标记向量序列,该算法支持以下编码器:
-
平均池化嵌入
-
分层卷积神经网络 (CNN)
-
多层双向长短期记忆 (BiLSTM)
每个对的输入标签可以是以下内容之一:
-
分类标签,表示对中的对象之间的关系
-
分数,表示两个对象之间的相似性强度
对于分类中使用的分类标签,该算法支持交叉熵损失函数。对于回归中使用的基于评级/分数的标签,该算法支持均方误差 (MSE) 损失函数。在创建模型训练作业时,请使用 output_layer
超参数指定这些损失函数。
Object2Vec 算法的 EC2 实例建议
您使用的 Amazon Elastic Compute Cloud (Amazon EC2) 实例的类型取决于是训练还是运行推理。
用于训练的实例建议
在 CPU 上使用 Object2Vec 算法训练模型时,请从 ml.m5.2xlarge 实例开始。要在 GPU 上进行训练,请从 ml.p2.xlarge 实例开始。如果该实例上的训练时间太长,您可以使用更大的实例,例如 ml.m5.4xlarge 或ml.m5。12xlarge实例目前,Object2Vec 算法只能在单个机器上训练。但是,它提供对多个 GPU 的支持。
用于推理的实例建议
对于使用经过训练的 Object2Vec 模型(具有深层神经网络)的推理,我们建议使用 ml.p3.2xlarge GPU 实例。由于 GPU 内存稀缺,可以指定 INFERENCE_PREFERRED_MODE
环境变量来优化是将 GPU 优化:GPU 优化 分类或回归还是将 GPU 优化:GPU 优化 嵌入编码器推理网络加载到 GPU 中。
Object2Vec 示例笔记本
要在笔记本实例上运行笔记本,请参阅示例笔记本. 要在 Studio 上运行笔记本电脑,请参阅创建或打开亚马逊 SageMaker Studio Notebook.