全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
488 0
2022-08-12
大规模通用 AI 实施是解决某些 B2B 问题的重要组成部分,大多数组织已经或正在利用它们。然而,对即时投资回报、创建快速失败的原型和交付以决策为中心的结果的需求正在推动对特定领域人工智能计划的需求。

用例和主题专业知识有所帮助,但数据科学家和分析师需要调整 AI 实施周期以解决需要更多特异性和相关性的问题。在构建此类 AI 模型时,任何人都会遇到的最大障碍是寻找高质量的、特定领域的数据。以下是针对特定领域模型适应的一些最佳实践和技术,它们一次又一次地为我们工作。



数据很重要,但真的吗?


从挖掘您的组织开始,尽可能多地发现相关的特定领域数据资产。如果这是与您的业务和行业直接相关的问题,那么您的实施可能会利用未开发的数据资产。万一发现自己的数据资产不足,所有希望都不会丢失。有多种策略和方法可以帮助创建或增强特定数据集,包括主动学习、迁移学习、自我训练以改进预训练和数据增强。下面详细介绍一些。



主动学习


主动学习是一种半监督学习,具有用于选择要学习的特定实例的查询策略。使用具有人类在环机制的领域专家来标记这些选定的实例有助于在更快的时间线内改进流程以获得有意义的结果。此外,主动学习需要较少量的标记数据,从而降低人工标注成本,同时仍能实现更高水平的准确度。

以下是一些有助于在有限数据下实现主动学习的技巧:

首先,将数据集拆分为种子数据和未标记数据。
标记种子并使用它来训练学习器模型。
根据查询功能,从未注释的数据中选择用于人工注释的实例(最关键的步骤)。查询策略可以基于不确定性抽样(例如,最小置信度、边际抽样或熵)、委员会查询(例如,投票熵、平均 Kullback-Leibler 散度)等。
将新注释的数据添加到种子数据集中并重新训练学习器模型。
重复前两个步骤,直到达到停止条件,例如查询的实例数、迭代次数或性能改进。


迁移学习


该方法利用来自源域的知识来学习目标域的新知识。这个概念已经有一段时间了,但是在过去的几年里,当人们谈论迁移学习时,他们谈论的是神经网络,可能是因为那里的成功实施案例。

以 ImageNet 为例,以下是一些经验教训:

使用预训练的网络作为特征提取器。确定要导出特征的层取决于您的数据与基本训练数据集的相似或不同程度。如以下几点所述,差异将决定您的策略。
如果域不同,则仅使用神经网络的较低级别的特征。这些特征可以导出并用作分类器的输入。
如果域相似,则移除神经网络的最后一层,并使用剩余的全网络作为特征提取器。或者将最后一层替换为与目标数据集类的数量相匹配的新层。
尝试解冻基础网络的最后几层并以低学习率(例如 1e-5)进行微调。目标域和源域越接近,需要微调的层数越少。


Self-Training to Improve Pre-Training (Jingfei Du et al., 2020)


这种组合提供了一种潜在的方法,可以充分利用来自下游任务的有限标记数据。它还可以帮助充分利用大量容易获得的未标记数据。下面是它的工作原理。

使用目标下游任务的标记数据微调预训练模型(例如,RoBERTa-Large),并将微调后的模型用作教师。
使用查询嵌入从未标记的数据集任务特定数据中提取并从数据集中选择最近的邻居。
使用教师模型注释在项目符号 2 中检索到的域内数据,并从每个类别中选择得分最高的前 k 个样本。
使用步骤 3 中生成的伪数据微调新的 RoBERTa-Large 并提供学生模型。


数据增强

数据增强包括一组低成本、有效的技术,可以从现有数据中生成新的数据点。上一节中关于自我训练的要点 2 还涉及数据增强,这对整个练习至关重要。

NLP 应用的其他技术包括反向翻译、同义词替换、随机插入/交换/删除等。对于计算机视觉,主要方法包括裁剪、翻转、缩放、旋转、噪声注入、改变亮度/对比度/饱和度和 GAN(生成对抗网络)。

确定使用哪种方法取决于您的用例、初始数据集质量、到位的 SME 和可用投资。



5 个帮助特定领域 AI 优化的额外技巧


您会发现需要继续完善您的特定领域 AI。以下是我们从定制实现以满足特定用例的经验中学到的一些经验教训。

在开始概念验证 (POC) 之前,进行适当的数据探索以检查数据的质量和数量问题。了解数据是否符合实际应用场景(例如下游任务,如 NER、关系提取、QA 等)、其变化和分布以及准确度。对于分类问题的变化和分布——分类的结构、每个级别的类别数量、每个类别下的数据量、平衡与不平衡等——所有这些都很重要。您的发现将影响您的数据处理方法和方法选择,以提高特定领域的模型性能。
根据您的用例和数据特征选择适当的算法/模型。还要考虑速度、准确性和部署等因素。这些因素的平衡很重要,因为它们决定了您的开发是否可能会停止在 POC 阶段或是否具有真正应用和产品化的潜力。
例如,如果您的模型最终将部署在边缘,则不应选择大型模型(尽管它们可能具有更高的预测精度)。考虑到它们的计算能力,边缘设备运行这样的模型是不现实的。

使用强大的基线模型开始每个开发/域适应。考虑使用 AutoML 快速检查算法是否适合特定领域的数据集,然后根据观察结果进行优化。

预处理数据是任何 NLP 项目的重要组成部分。由于特定领域的要求及其选择的特征化方法和模型,应根据具体情况确定所采取的步骤。通用管道可能无法提供最佳结果。
例如,对于深度学习模型,某些步骤(例如删除停用词/标点符号和词形还原)可能并不总是必要的。它们可能会导致上下文丢失;但是,如果您使用 TF-IDF 和机器学习模型,它们会很有用。模块化管道,以便在定制以满足用例需求的同时重用一些常见步骤。

如果可用,请利用开源领域特定的预训练语言模型。一些著名的模型是 SciBERT、BioBERT、ClinicalBERT、PatentBERT 和 FinBERT。这些特定领域的预训练模型可以帮助为下游任务实现更好的表示和上下文嵌入。如果这些模型不适用于您的域,但您确实有足够的计算资源,请考虑使用域内高质量未注释数据训练您自己的预训练模型。
考虑合并特定领域的词汇和规则。对于某些场景,它们可以提供更高效、更准确的结果,并避免模型迭代问题。创建这样的词汇表和定义规则可能需要相当大的努力和领域专业知识,这需要平衡。

概括

引导人工智能来满足特定领域的需求和挑战需要自始至终的纪律,而不仅仅是方法和资源。好消息是,公司对解决特定挑战并解决它们的解决方案越来越感兴趣,这反过来又为希望为其应用程序提供更快投资回报的数据科学家和人工智能开发人员创造了最佳实践。

      相关帖子DA内容精选
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群