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

使用自定义文本分类的特征和限制

重要

仅为方便起见,提供非英语翻译。 请参阅 EN-US 版本以获取最终版本的此文档。

自定义文本分类模型的性能因方案和输入数据而异。 以下部分旨在帮助你了解有关自定义文本分类模型性能和评估的关键概念。

性能评估指标

查看模型评估是自定义文本分类模型开发生命周期中的一个重要步骤。 它有助于确定模型的性能,并在生产中使用模型时衡量预期性能。

在生成模型的过程中,训练集和测试集是在标记期间定义的,也可以在训练期间随机选择。 无论哪种方式,训练集和测试集都对于训练和评估自定义文本分类模型至关重要。 训练集用于训练自定义机器学习模型。 测试集用作盲集来评估模型性能。

训练成功完成后,将触发模型评估过程。 评估过程使用训练好的模型来预测测试集中各文件的用户定义类别,并将预测结果与提供的真实数据标签进行比较。 结果将返回给你,以查看模型的性能。

计算模型评估的第一步是按以下类别之一对预测标签进行分类:真正、假正或假负。 下表进一步解释了这些术语。

术语 正确/不正确 定义 示例:
真正 正确 模型预测一个类别,并且该类别与文本的标记类别相同。 对于 comedy 电影脚本,预测的类是 comedy
假正 不正确 该模型对特定文本预测了错误的类别。 对于 comedy 电影脚本,预测的类是 drama
假阴性 不正确 当人工法官返回正确的结果时,系统不会返回结果。 对于 drama 电影脚本,预测的类是 comedy。 仅在多分类情况下,对于romancecomedy电影脚本,将预测类别comedy,但不会预测类别romance

对于单标签分类,不可能有假阴性,因为单标签分类模型将始终预测每个文件的一个类。 对于多标签分类,它被计为假负和假正,对于标记类为假负,对于预测类为假正。

然后,上述类别用于计算 精度召回 率和 F1 分数。 这些指标作为服务的模型评估的一部分提供。 下面是指标定义及其计算方式:

精度:模型预测实际正类的能力的度量值。 它是预测的真正为正与实际标注为正的值之间的比率。 召回率返回正确预测的类数。

召回率:衡量模型预测实际正类的能力。 它是预测的真正为正与实际标注为正的值之间的比率。 召回率返回正确预测的类数。

F1 分数:精准率和召回率的函数。 在精准率和召回率之间寻求平衡时,需要用到 F1 分数。

注释

对于单一分类,由于假阳性和假阴性数量始终相等,因此精度、召回率和 F1 得分总是相等。

模型评估分数可能并不总是全面的,尤其是在训练数据中缺少或未代表特定类时。 如果在训练阶段提供标记的文件数量不足,则可能会出现这种情况。 这种情况会影响测试拆分的数量和质量,这可能会影响评估的质量。

任何自定义文本分类模型预计都会同时遇到假负和假正错误。 你需要考虑每种类型的错误如何影响整个系统,并仔细考虑无法识别真实事件和识别错误事件的情况。 根据你的方案,精度或召回率可能是评估模型性能的更合适的指标。 例如,如果你的方案与票证会审相关,则预测错误类可能会导致将其转发给错误的团队,导致浪费时间和精力。 在这种情况下,你的系统应该对误报更敏感,然后精度将是一个更相关的评估指标。

如果你的方案是将电子邮件分类为重要或垃圾邮件,则无法预测某个电子邮件非常重要会导致你错过它。 但是,如果垃圾邮件被错误地标记为重要,则只需忽略它。 在这种情况下,系统应更敏感于误报,召回率将是更相关的评估指标。

如果要针对常规用途方案进行优化,或者精度和召回率同样重要时,F1 分数将是最相关的指标。 评估分数取决于你的方案和验收条件。 没有适用于所有方案的绝对指标。

增强系统性能的系统限制和最佳做法

  • 了解服务限制: 对用户强制实施一些限制,例如数据或实体长度中包含的文件和类数。 详细了解 系统限制

  • 规划架构: 确定要将数据分类到的类别。 你需要规划架构以避免歧义,并考虑类的复杂性。 详细了解 建议的做法

  • 选择训练数据: 训练数据的质量是模型质量的重要因素。 使用与生产期间预期的数据类似的多样化和现实数据将使模型更加可靠,并且能够更好地处理真实场景。 请确保包含将在生产中使用的文本的所有布局和格式。 如果模型在训练期间未接触到某些场景或类别,那么在生产环境中就无法识别它。 详细了解 建议的做法

  • 准确标记数据: 标记数据的质量是模型性能的一个关键因素,它被认为是模型学习的基础事实。 准确且一致地标记。 标记特定文件时,请确保将其分配给最相关的类。 请确保数据中的类似文件始终使用同一类进行标记。 确保所有类别都能得到良好表示,并且在各个实体中具有均衡的数据分布。 检查数据分布 ,以确保所有类都充分表示。 如果某个类的标记频率低于其他类,则此类的代表性可能不足,并且无法在生产期间被模型正确识别。 在这种情况下,请考虑将来自未代表类的更多文件添加到训练数据,然后训练新模型。

  • 查看评估并改进模型: 成功训练模型后,请检查模型评估和混淆矩阵。 此评审可帮助你了解模型出错的位置,并了解性能不佳的类。 它还被视为一种最佳做法查看测试集,并将预测与标记的类别进行对比查看。 它让你更好地了解模型的性能,并帮助你确定架构或标记中是否有任何更改是必需的。 还可以查看 混淆矩阵 ,以识别哪些类别经常被错误预测,从而确定是否可以采取措施来提高模型性能。

有关了解和改进性能的一般准则

以下指南将帮助你了解和改进自定义文本分类的性能。

了解置信度分数

标记数据并训练模型后,需要将其部署到生产环境中使用。 部署模型意味着通过 运行时 API 使用它来预测提交的文本的类。 API 返回一个 JSON 对象,该对象包含预测的类或类和置信度分数。 置信度分数是介于零(0)和 1(1)之间的十进制数。 它作为系统预测信心的指标。 较高的值表示对结果准确性的置信度更高。 返回的分数直接受生成自定义模型时标记的数据的影响。 如果用户的输入类似于训练中使用的数据,则可以预期更高的分数和更准确的预测。 如果某个类以低置信度分数一致预测,则可能需要检查标记的数据并为此类添加更多实例,然后重新训练模型。

设置置信度分数阈值

可以根据方案调整置信度分数阈值。 可以根据系统返回的置信度分数在方案中自动执行决策。 还可以设置特定的阈值,以便置信度分数高于或低于此阈值的预测类受到不同的处理。 例如,如果返回的预测的置信度分数低于阈值,则可以将文件标记为进行其他评审。

不同的方案要求采用不同的方法。 如果基于预测类的行动将产生重大影响,您可能会决定设置更高的阈值以便确保分类的准确性。 在这种情况下,你会期望假正更少,但假负更多,从而获得更高的精度。 如果方案中不会根据预测类做出高影响决策,则可能接受较低的阈值,因为你想要预测可能应用于提交文本的所有可能类(在多标签分类情况下)。 在这种情况下,你会期望假正更多,但假负更少。 结果是更高的召回率。

必须使用系统将在生产环境中处理的实际数据根据设置的阈值评估系统,以确定对精准率和召回率的影响。

不同的培训课程和评估中的变化

重新训练同一模型而不对标记数据进行任何更改将导致相同的模型输出,因此,相同的评估分数。 如果添加或删除标记,模型性能会相应地更改。 如果标记期间未添加新文件,则可以将评估分数与模型的早期版本进行比较,因为训练集和测试集中的文件都相同。

添加新文件或通过随机集拆分来训练不同模型,会导致训练集和测试集中的文件有所不同。 尽管评估分数可能会变化,但由于测试集使用了不同的拆分方式来计算性能,它们无法直接与其他模型进行比较。

查看不正确的预测以提高性能

训练模型后,可以查看 模型评估详细信息 ,以确定改进领域。 模型级指标提供有关总体模型性能的信息。 通过观察类级别性能指标,可以确定特定类中是否存在任何问题。

如果发现特定类的性能较低,则表示模型在预测该类时遇到问题。 此问题可能是由于架构不明确,这意味着该类无法与其他类区分开来。 也可能是由数据不平衡引起的,这意味着此类的代表性不足。 在此实例中,需要为模型添加更多标记的示例,以便更好地预测此类。

还可以查看 混淆矩阵 ,以识别哪些类别经常被错误预测,从而确定是否可以采取措施来提高模型性能。 如果发现特定类通常预测为另一个类,则表明这两个类彼此相似,这是一个强指标。 可能需要重新思考架构。 或者,可以向数据集添加更多标记的示例,以帮助模型区分这些类。

查看模型的评估详细信息后,可以 改进模型。 此过程使你可以并排查看预测的和标记的类,以确定模型评估过程中出现的问题。 如果发现某些类可以互换重复,请考虑将它们全部添加到表示多个类别的更高顺序中,以实现更好的预测。

性能因功能和语言而异

使用自定义文本分类,可以选择使用多种语言的数据。 可以在不同语言的数据集中有多个文件。 此外,还可以使用一种语言训练模型,并用它来查询其他语言的文本。 如果要使用多语言选项,则必须在 创建项目期间启用此选项。

如果发现特定语言的分数较低,请考虑将此语言中的更多数据添加到数据集。 若要详细了解支持的语言,请参阅[此网站/azure/ai-services/language-service/custom-text-classification/language-support)。

后续步骤