AWS 个性化项目属性

Era*_*lpB 1 amazon-web-services amazon-personalize

我正在尝试实现个性化,但在项目架构方面遇到问题。

想象一下我是亚马逊,我有他们的品牌和类别的产品。我应该在哪种项目架构中包含此信息?

我应该将品牌名称作为字符串包含为分类字段吗?我应该将品牌 ID 作为字符串还是数字包含在内?或者我应该包括两者?

那么类别呢?我也有同样的疑问。

元数据字段 元数据包括不需要或不使用保留关键字的字符串或非字符串字段。元数据模式具有以下限制:

用户和项目模式至少需要一个元数据字段,

用户和交互数据集最多可以包含五个元数据字段。项目数据集最多可以包含 50 个元数据字段。

如果您添加自己的字符串类型元数据字段,则它必须包含分类属性。否则,Amazon Personalize 在训练模型时不会使用该字段。

https://docs.aws.amazon.com/personalize/latest/dg/how-it-works-dataset-schema.html

Pat*_*ski 5

有两种方法可以将元数据包含在项目/用户数据集中:

  1. 如果它可以表示为数值,则在有意义的情况下提供实际值。
  2. 如果它可以表示为字符串,则提供字符串值并确保该分类设置为 true。

但是让我们看一下“为什么他们需要我来对我的字符串元数据进行分类?”。答案很简单。

让我们从一个例子开始。如果您将商品作为 Amazon.com 产品并且希望提供费率元数据字段,则:

  1. 您可以获取所有费率,包括客户发送的完整评论文本,并将其简单地放入元数据字段。
  2. 您可以只获取星级,计算平均值并将其作为元数据字段。

一般来说,第二个可能更有意义。将产品作为元数据进行随机、长时间的评论,几乎不会改变任何事情。Personalize 不了解评论本身是好是坏,或者作者是否还推荐了其他产品,因此它几乎不会在推荐中添加任何内容。

但是,如果您只是“剪切”数据集并计算平均评分(如第 2 点所示),那么它就更有意义。也许我们的一些客户喜欢劣质产品?也许他们想购买它们,因为他们是著名的 YouTuber,并且制作了相关视频?根据他们之前的交互以及更多信息,Personalize 的表现将稍好一些,因为现在它知道该产品的评分为 5/5 或 3/5。

我想向您展示,在某些情况下,以字符串形式提供项目元数据是没有意义的。这就是为什么您的字符串元数据必须是分类的。这意味着它应该是有限的值集,因此它为个性化添加了一些关于给定项目的知识以及为什么有些人可能想要与其交互。

回到你的问题:

我应该将品牌名称作为字符串包含为分类字段吗?我应该将品牌 ID 作为字符串还是数字包含在内?或者我应该包括两者?

我会简单地使用品牌 ID 作为字符串。您也可以使用品牌名称,但当它仍然是同一品牌时,可能可以重命名单个品牌,因此选择 ID 会更加稳定。此外,两个不同的品牌可能具有相同的名称,因为它们存在于不同的市场,因此获取 ID 可以解决这个问题。

"categorical": true模式中的开关只是告诉 Personalize :

嘿,你看到那个字符串字段了吗?它是经过分类的、有限的值集。如果你为我训练一个模型,请在训练过程中包含这个模型,这很重要!

正如文档中所述,如果您提供未标记为分类的字符串元数据字段,那么 Personalize 将“认为”:

嗯..这个字段是一个字符串,它有相当随机的值,并且没有标记为分类。这可能只是项目导出工作的剩余部分。让我们忽略这一点。