你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

评估特征重要性

重要

从 2023 年 9 月 20 日开始,将无法创建新的个性化体验创建服务资源。 个性化体验创建服务将于 2026 年 10 月 1 日停用。

通过对历史日志数据进行特征评估,你可以评估每个特征对个性化体验创建服务的机器学习模型的重要性。 特征评估可用于:

  • 了解哪些特征对模型的重要程度最高或最低。
  • 通过从模型中当前重要的特征中获得灵感,集思广益,对学习有益。
  • 确定可能不太重要或不太有用的特征,这些特征应考虑进一步分析或删除。
  • 对设计特征并将其发送到个性化体验创建服务时可能发生的常见问题和错误进行故障排除。 例如,使用 GUID、时间戳或其他通常稀疏的特征可能会出现问题。 详细了解如何改进特征

什么是特征评估?

特征评估的执行方法是:在指定时间段内对历史收集的日志数据训练和运行当前模型配置的副本。 一次忽略一个特征,以测量使用和不使用每个特征时模型性能的差异。 由于特征评估是针对历史数据执行的,因此不能保证将来的数据中会观察到这些模式。 但是,如果记录的数据捕获了数据的足够可变性或非固定属性,这些见解可能仍与将来的数据相关。 运行特征评估不会影响当前模型的性能。

特征重要性分数是特征在评估期内对奖励的相对影响的度量。 特征重要性分数是介于 0(重要性最低)和 100(重要性最高)之间的数字,并显示在特征评估中。 由于评估是在特定的时间段内运行的,因此随着将其他数据发送到个性化体验创建服务以及用户、方案和数据随时间的变化,特征重要性可能会发生变化。

创建特征评估

要获得特征重要性分数,你必须在一段记录的数据期间内创建特征评估,以生成包含特征重要性分数的报表。 此报表可在 Azure 门户中查看。 要创建特征评估:

  1. 转到 Azure 门户网站
  2. 选择个性化体验创建服务资源
  3. 从侧面导航窗格中选择“监视器”部分
  4. 选择“特征”选项卡
  5. 选择“创建报表”,此时会显示一个新屏幕
  6. 为报表选择名称
  7. 选择评估期间的开始时间和结束时间
  8. 选择“创建报表”

Screenshot that shows how to create a Feature Evaluation in your Personalizer resource by clicking on

Screenshot that shows in the creation window and how to fill in the fields for your report including the name, start date, and end date.

接下来,你的报表名称应该出现在下面的报表表中。 创建特征评估是一个长时间运行的过程,其中完成时间取决于评估期间发送到个性化体验创建服务的数据量。 生成报表时,“状态”列将为你的评估显示“正在运行”,并在完成后更新为“成功”。 定期检查评估是否已完成。

可以在个性化体验创建服务资源具有日志数据的不同时间段内运行多个特征评估。 请确保数据保留期设置足够长,以便能够对较旧的数据执行评估。

解释特征重要性分数

重要性分数较高的特征

与其他特征相比,重要性分数较高的特征在评估期间对模型的影响更大。 重要特征可以为设计模型中包含的其他特征提供灵感。 例如,如果你看到上下文特征“isWeekend”或“isWeekDay”对于杂货店购物非常重要,则可能是假期或长周末也是重要因素,因此你可能需要考虑添加捕获此信息的特征。

重要性分数较低的特征

重要性分数较低的特征是很值得进一步分析的候选对象。 并非所有低得分特征都一定是坏的或无用的,因为低得分可能由于一个或多个原因而出现。 下面的列表可以帮助你开始分析为什么特征得分较低的可能原因:

  • 在评估期间的数据中很少观察到该特征。

    • 如果与其他特征相比,该特征的出现次数较低,则可能表明该特征出现的频率不足以让模型确定其是否有价值。
  • 特征值没有太多的多样性或变化。

    • 如果此特征的唯一值的数量低于你的预期,这可能表明该特征在评估期间变化不大,并且不会提供重要的见解。
  • 特征值噪声太大(太过随机)或独特性太强,提供的价值很小。

    • 检查特征评估中唯一值的数量。 如果此特征的唯一值的数量高于你的预期,或者与其他特征相比较高,这可能表明该特征在评估期间噪音过大。
  • 存在数据或格式问题。

    • 检查以确保功能已按预期的方式格式化并发送到个性化体验创建服务。
  • 如果特征分数低并且上述原因不适用,则该特征对于建模学习和性能可能没有价值。

    • 请考虑删除该功能,因为它无助于模型最大化平均奖励。

删除重要性分数较低的特征可以减少学习所需的数据量,从而帮助加快模型训练速度。 这还可以潜在地提高模型的性能。 但无法保证这一点,可能需要进一步分析。 了解有关设计上下文和操作特征的更多信息。

改进特征的常见问题和步骤

  • 发送具有高基数特征。 具有高基数的特征是指具有许多不同值的特征,这些值不太可能在许多事件中重复。 例如,特定于个人的私人信息(例如姓名、电话号码、信用卡号、IP 地址)不应与个性化体验创建服务配合使用。

  • 发送用户 ID:对于大量用户,此信息不太可能与个性化体验创建服务学习以便最大程度获得平均奖励分数相关。 发送用户 ID(即使不是个人信息)可能会给模型增加更多的噪音,因此不建议这样做。

  • 特征过于稀疏。 值各不相同,并且只会出现几次。 精确到秒的时间戳可能非常稀疏。 例如,通过将时间分组为“上午”、“中午”或“下午”,可以使其更密集(因此更有效)。

位置信息通常也受益于创建更广泛的分类。 例如,经纬度坐标(如纬度:47.67402° N,经度:122.12154° W)过于精确,会强制模型将纬度和经度作为不同的维度来学习。 尝试基于位置信息进行个性化设置时,将位置信息分组到更大的扇区可能会很有帮助。 实现此目标的一种简单方法是为经纬度数字选择适当的舍入精度,并通过将纬度和经度合并到一个字符串中来将它们合并为“区域”。 例如,在区域大约有几千米的情况下,表示北纬:47.67402°,西经 122.12154° 的好方法是 "location":"34.3 , 12.1"。

  • 通过推理信息扩展特征集。评估可从已有信息派生的未探索属性也可以获得更多的特征。 例如,在科幻电影列表个性化设置中,周末和工作日是否可能引发用户的不同行为? 可将时间扩展为包含“周末”或“工作日”属性。 国家/地区的文化节假日是否会推动观众对某类电影的兴趣? 例如,在相关的场合中,可以使用“万圣节”属性。 雨天是否会明显影响许多人选择观看电影? 如果使用时间和地点,则天气服务可以提供此类信息,你可以将此信息添加为额外的特征。

后续步骤

使用个性化体验创建服务进行离线评估来分析策略性能