数据持续呈指数级增长,这种趋势促使企业纷纷大力投资人工智能 (AI) 解决方案,希望挖掘数据中潜藏的洞察。诸如 IBM Watson 之类的主要平台供应商提供了即时可用的 AI 服务,帮助开发人员为各种用例构建新颖的解决方案,通过丰富的数据使之既有价值又切实可行。但是,选择合适的 AI 服务来提供可靠且准确的分析,并不像听起来那么简单。评估机器学习解决方案可能会因个人本能而有所偏差,因此收集和使用关键的 ML 指标来评估 AI 解决方案的性能至关重要。清楚解决方案的表现情况之后,您就可以继续优化 AI 解决方案。

机器学习性能典型用例

一种常见用例模式涉及了解消费者对品牌或产品的看法。随着社交媒体平台日益流行,消费者已在利用此类平台来分享他们对品牌、产品和服务的观点、想法和看法。随着我们的团队与客户密切合作,利用 Watson Natural Language Understanding(NLU) 情感分析功能开发此类应用,我们了解到一些反复出现的问题和意见,比如:

“我们的情感分析结果并不理想。”
“情感分析并没有返回预期的结果。”
“我们如何改进情感分析结果?”

通常情况下,客户会举出一到两个例子(也可能是几个例子),说明他们认为情感分析结果不符合预期或不够准确的原因。虽然由于我们经过训练,要以一致方式预测所有示例的特定结果,这种反馈情有可原,但是建议不要使用这种方法来评估和了解 AI 服务的性能。支持这些 AI 服务的机器学习 (ML) 模型本质上是统计型的,因此,在评估性能时使用明确规定的机器学习指标非常重要,例如准确率、 查准率, 撤消率, F1 分数, AUC 以及 混淆矩阵。了解了这些指标的合理性和重要性之后,现在您就可以从数学意义上准确评估情感分析解决方案,而不是单凭直觉来判断。

评估机器学习解决方案的方法

在本篇博客的其余部分,我们提供了一种方法论,可以帮助开发人员更准确地了解 Watson AI 服务的表现情况。此外,该方法论将指导开发人员完成决策流程,了解经过预先训练的机器学习模型能否满足他们的需求,或者是否需要训练自己的模型,以便更好地为他们所在的领域服务。

该方法论将引用两种 Watson AI 服务,即 Natural Language Understanding (NLU) 和 Natural Language Classifier(NLC)。但是,通常情况下,该方法论还适用于其他 AI 服务。顺便提醒一下,NLU 提供经过预先训练的 ML 模型,用于从文本中提取多个有用的特征,包括情感、情绪、关键字、实体、关系、概念、类别、语义角色以及元数据。另一方面,NLC 还提供强大的功能,可轻松训练自定义 ML 模型来处理短文本分类。

我们推荐的方法论在图 1 中进行了说明,可概述如下:

  1. 首先,收集一系列代表性示例,至少 50 个(越多越好)。我们将此集合称之为 test。在情感用例环境中,示例由话语文本构成,它们通过社交媒体平台共享,或者通过聊天消息或电子邮件直接与企业共享。
  2. 使用正确的情感标签,对 test 集合中收集的示例进行标记。通常情况下,情感标签包括积极、消极和中立情感标签。在这一步,需要人工专家将标签与每个话语文本关联起来。如果相关人员无法就正确的标签达成一致,有时就会出现值得关注的问题。情感标签不太可能出现这种情况,但是在将标签与话语文本关联起来时,这种情况可能并不少见。当相关人员就正确的标签意见不一时,也就不难理解 AI 服务为什么可能会出现混乱了。
  3. 通过 NLU 服务,在 test 集合中运行收集的话语文本,获取情感分析结果。记录返回的结果,与第 2 步中确定的标签进行比较。根据由 NLU 返回的预测标签和由相关人员指定的真实标签,您就可以计算准确率、查准率、查全率、F1 和 AUC。我们提供 NLU 情感 Python 笔记本 样本,该样本运行这些步骤,并返回相关的机器学习指标。
  4. 根据第 3 步中计算得出的 ML 性能指标,现在我们对 NLU 中经过预先训练的 ML 模型性能有了定量认识。查看这些结果时,通常会出现以下两种情况之一:
    • 良好的性能结果:在这种情况下,我们发现尽管 NLU 没有返回所有话语文本示例的正确情感,但是 ML 指标表明了给定应用程序的性能良好;例如,我们获得 高于 70% 的准确率、查准率、查全率以及 F1 得分。
    • 欠佳的性能结果:如果计算得出的指标显示性能欠佳,则进入第 5 步进行选择。
  5. 查看 test 集合中话语文本上的特定标签。如果此服务的初始结果欠佳,第一步就要查看相关人员指定的标签。我们常常发现一些标记错误的示例,要么是拼写错误,要么是人工专家对正确标签看法不一。
  6. 为您所在领域训练自定义情感分析模型。此时,您已确定得出的性能指标不符合您的应用程序要求,您已证实人工专家给出的标签是正确的。这意味着 NLU 中经过预先训练的模型不适合您的用例所属的领域。NLU 情感分析处理一般领域的话语文本可谓驾轻就熟,因为它进行过这方面的训练。但对于医学或法律等特定领域,它可能无法提供要求的准确率。例如,在 NLU 演示应用程序上测试“My doctor was great”这句话,将返回中立情感,而大部分人则认为这更偏向于积极情感。返回中立情感的原因很可能在于“doctor”的任何引用通常都表示一种消极情感,因此整句话表现为中立情感。在这种情况下,我们的方法建议使用类似 Natural Language Classifier (NLC) 这样的服务来训练自定义情感分析模型,步骤如下:
  • 收集训练数据:NLC 需要话语文本格式的训练数据以及每句话语相应的正确标签。对于情感分析,标签可以是积极、消极和中立。训练数据的格式类似于 test 数据集,但实际的话语文本应有所不同。此外,通常情况下需要使用更多的数据进行训练;每个标签至少 30-50 个示例。
  • 使用训练数据集训练 NLC 分类器(这是一个简单的 REST API 调用)。
  • 通过重复上述步骤,测试经过训练的自定义 ML 模型的性能。我们已发布了一个 Python 笔记本,用于为经过训练的 NLC 分类器计算性能指标。
  • 更新训练数据,重复这一操作,从而进一步改善结果, 下篇博客将会对此进行概述。

结论 — 依靠既定的 ML 性能指标

在本篇博客中,我们概述了开发人员在应用程序中采用 AI 服务时通常会遇到的一些难题,提供了用于评估和改善应用程序性能的方法。在将 AI 服务整合到应用程序中时,务必要采用公认的方法来评估支持这些 AI 服务的机器学习模型的性能。这有助于指导您将最相关的 AI 服务用于应用程序,为您的 AI 解决方案交付最出色的性能。

了解 Joe Kozhaya 撰写的更多 Watson NLU 和 NLC 相关文章

本文翻译自:Improve your machine learning solution with established performance metrics(2018-04-10)

加入讨论