硬件组件数据库[Hardware component databases]是设计嵌入式系统的重要资源。由于创建这些数据库需要数十万小时的人工数据录入,它们通常是专有的,提供的数据有限,并且存在随机的数据录入错误。我们提出了一种基于机器学习的方法,直接从数据手册中创建硬件组件数据库。

直接从数据手册[datasheets]中提取数据具有挑战性,原因如下:(1) 数据本质上是关系型的,并依赖于非局部上下文[non-local context];(2) 文档中充斥着技术术语[technical jargon];(3) 数据手册是PDF格式,这种格式将视觉上的局部性与文档中的局部性分离。

传统上,解决这种复杂性依赖于人工输入,这使得扩展成本高昂。我们的方法利用丰富的数据模型、弱监督、数据增强和多任务学习,在短短几天内创建这些知识库。我们在三类组件的数据手册上评估了该方法,平均获得了77的F1分数——其质量与现有人工策划的知识库相当。

我们进行了应用研究,展示了包括数值属性和图像在内的多种数据模态的提取。我们展示了不同来源的监督(例如启发式规则和人工标签)各自具有独特的优势,这些优势可以共同利用以提高知识库的质量。最后,我们通过一个案例研究展示了这种方法如何改变从业者创建硬件组件知识库的方式。

1 INTRODUCTION

创建嵌入式系统通常需要开发新的硬件。寻找最符合系统需求的组件占据了设计时间的很大一部分。下载数据手册很容易,但弄清楚应该下载哪个数据手册却很难。通常,所需信息隐藏在数据手册本身中,而数据手册是一种复杂的文档,标准搜索引擎无法解析。需求通常是多维且定量的,因此选择合适的组件需要考虑多个属性的范围,比如电压增益,以及非文本信息,如封装响应图[packaging response graphs]。

通常,一个组件有许多(比如数千个)不同版本,它们功能等效,但在成本、能耗或尺寸上存在差异。如今,硬件工程师通过访问许多不同的网络搜索引擎[web search engines]来进行组件搜索,仔细调整每个搜索引擎的参数以获得少量(不是零,也不是数百个)结果,然后手动汇总这些结果,再查看单个数据手册以获取这些搜索引擎无法提供的信息。这种繁琐的过程意味着设计硬件需要在头脑中建立一个组件库,而这个库是通过深厚的经验积累而成的。

如果没有这种经验,硬件设计仍然是一个巨大的挑战:创客论坛上有详细讨论如何选择合适的晶体管[the right transistor] [36],甚至整篇研究论文都依赖于仔细的组件选择 [17]。硬件组件选择的挑战与选择优秀软件库的轻松形成了鲜明对比。

软件库信息易于获取和搜索:搜索可以轻松找到诸如网络服务器、图形处理或数据分析等易于使用的库。由于搜索是基于文本的,因此可以通过爬取文档、包描述或社区论坛(如 Stack Overflow)轻松得到答案。任何给定的搜索通常只为特定目的返回少量维护良好的库;不会有数百个类似于 matplotlib 的绘图包,也不会有数百个类似于 libssl 的安全套接字库。

硬件组件数据库是硬件开发者的宝贵工具。如图 1 所示,应用程序和工具可以使用这些知识库来交叉验证现有数据库,以回答诸如“我应该使用哪些运算放大器来构建这个增益电路”之类的问题,甚至可以查询非文本数据,如产品缩略图。

图1.硬件组件知识库由数据表填充,可提供有价值的应用,例如交叉验证、根据最佳电气特性选择组件或构建丰富的搜索界面。

诸如 Digi-Key、Mouser 和 Parts.io 等服务通过构建专有数据库来帮助硬件开发者;它们提供组件搜索页面,这些页面推动了数十亿美元的销售 [11]。然而,这些数据库通常是通过人工创建的。具有足够技术专长以理解数据手册的人(例如,在特定情况下 VCC 和 VDD 是否可以互换)手动输入数据。然而,人工数据录入容易产生随机错误以及基于个人偏见的错误 [14]。此外,这些数据库是不完整的。

数据录入的成本导致数据库仅包含可用信息的一个有限子集(例如,单个数据手册[a single datasheet]中几十个特性中的几个)。

1.1 Learning to Construct Component Databases

本文提出通过使用最先进的机器学习技术从数据手册中创建数据库,从而使硬件组件信息既易于获取又经济实惠。这个问题需要机器学习,因为数据手册是复杂且格式丰富的文档,它们依赖许多隐含的信号和结构来传达信息。解决数据手册的复杂性传统上需要人工手动干预。

图2.一个突出显示从PDF数据表中提取信息的挑战的示例文档。

从数据手册中提取信息受到三个主要挑战的复杂影响:关系型数据、术语以及输入格式。图 2 展示了从一个示例数据手册中提取的这些挑战的例子。首先,硬件组件信息本质上是关系型[relational]。以用户想要搜索各种电气特性的定量值的情况为例(图 2(a))。

这类查询使得传统搜索工具无效,因为仅靠基于文本的搜索无法充分表达这些复杂的关系。此外,关键词搜索通常会匹配到数千个文档。其次,数据手册以多种方式使用技术细节和术语来描述组件(见图 2(b))。提取它们的数据需要在学习系统中捕捉这一领域知识,并排除了依赖未经训练的众包服务[untrained crowdsourcing services](如 Amazon Mechanical Turk)的可能性。

第三,数据手册以便携式文档格式(PDF)分发,而不同供应商在如何使用文本、结构、表格和视觉提示来展示数据方面存在显著差异(图 2(c))。这些提示对人类来说是可以理解的,但对机器来说却难以解读。此外,这些提示的多样性和不统一性使得仅仅依靠启发式规则无法准确地处理它们。

1.2 Proposed Approach

我们提出了一种构建硬件组件知识库[hardware component knowledge bases]的方法。我们的方法通过将数千份多种类型组件的PDF数据手册[PDF datasheets]作为输入进行读取,并以填充关系型数据库[populates relational databases]作为输出,从而构建硬件组件知识库。

我们使用了三种机器学习技术来解决硬件数据手册的挑战。首先,我们没有将输入建模为非结构化文本,而是使用了一个丰富的数据模型,该模型能够捕捉PDF文档中提供的多种信息模态[the multiple modalities of information]。这使得我们能够基于文本、结构和视觉信息来编码特征。其次,我们采用系统化的训练数据生成方式,即通过弱监督和数据增强,将领域知识高效地转化为训练该任务机器学习模型所需的大量数据。弱监督和数据增强提供了多种方式来结合并利用各种信号,例如启发式规则和专家人工标注[heuristics and expert human annotations]

第三,我们训练了一个对硬件数据手册中数据多样性具有鲁棒性的多任务学习模型。这将使数据库错误从随机的人为错误转向更系统化的错误,而这类错误可以通过机器学习方法进行迭代式地处理和减少。此外,使用多任务学习方法通过在共享特征空间中共同训练这些提取任务,提高了从数据手册中提取多个特性的效率(第4.2.3节)。

其他领域已经采用自动化方法来创建知识库,以此作为使信息易于获取的解决方案 [28, 44]。然而,这些领域选择的自动化方法仅专注于非结构化文本。相比之下,硬件数据手册是为技术读者编制的,并包含大量通常以密集的数字、图形和图像格式呈现的数据。Fonduer 框架 [41] 提供了一个适用于格式丰富文档的通用数据模型,它对不同类型的文档一视同仁,试图将它们强行纳入单一框架[a single framework]中。

在这项工作中,我们基于 Fonduer,但采取了相反的方法。我们没有试图将文档强行纳入统一框架,而是在一开始就深入研究硬件数据手册的特性,然后仔细定制我们的方法以响应这些发现。例如,在一个数据手册中,不同的电气特性以高度相似的方式表达(例如,在具有相似表头和结构的表格[in tables with similar headers and structure]中);这从根本上符合多任务学习方法 [42]。因此,我们利用 Fonduer 作为捕捉多模态信息的工具,但我们对其进行修改以应对硬件数据手册的独特挑战,从而提取文本和非文本信息。

此外,我们使用多任务学习包 Emmental [40] 对其进行扩展,以利用数据的根本特性。关于这项工作相较于先前工作的完整贡献描述,请参见第2节。

1.3 Contributions

本文做出了以下主要贡献:

(1) 一种利用丰富的数据模型、弱监督、数据增强和多任务学习来创建硬件组件知识库的方法(第3节)。

(2) 在多种硬件组件上对该方法进行评估,在提取文本和非文本信息方面平均达到77 F1分数。我们在现有人工策划的知识库基础上平均提升了12个F1分数(第4节)。

(3) 应用研究,突出展示了这些数据库如何使硬件组件选择变得更加容易(第4.3节)。

2 BACKGROUND AND RELATED WORK

组件数据库是嵌入式硬件开发中的关键资源。创建这些数据库既费力又容易出错[error-prone],通常需要具备技术知识的专业人员阅读数据手册并录入数据。因此,这些数据库规模较小,除非它们是由大型组件搜索公司拥有的专有数据库.
它们的小规模限制了许多工具的实际效用 [2, 19, 29]。例如,Drew 等人提出了一种用于自动检查面包板电路的工具,但其底层知识库仅支持六种类型的组件 [12]。同样地,Ramesh 等人展示了利用组件数据库,可以从软件自动生成嵌入式设备的硬件设计;然而,他们将创建足够丰富的库推迟到了未来的工作中 [31]。机器学习和知识库构建领域的最新进展已经在古生物学、电子学和基因组学等领域中成功实现了可查询知识库的自动化创建 [41]。我们基于这些先前的工作,并通过聚焦于硬件组件知识库,将这些技术扩展到支持嵌入式系统开发的领域;硬件组件知识库具有巨大价值,但其生成过程容易出错且费力。

2.1 Knowledge Base Construction

知识库构建以文档作为输入,并输出一个带有用户定义模式的数据库,该数据库通过从输入文档中提取的信息进行填充。

我们将这一过程描述如下:

A mention,记为 m,代表一个名词,即现实世界中的一个人、地点或事物,它可以通过其提及类型 T 进行分组和识别。例如,“part number”(部件编号)是一个提及类型,而“BC546”是一个对应的提及。n 个提及[mention]之间的关系是一个 n-ary relation,记为 R(m_1,m_2,...,m_n),它对应于一个模式(schema),记为 S_R(T_1,T_2,...,T_n)

一个候选项是一个 n-ary tuple,记为c = (m_1,m_2,...,m_n),它表示关系 R 的一个可能正确的实例。例如,“part number”(部件编号)和“price”(价格)表示一个具有模式S_R(T_1,T_2)的关系,其中“BC546”和“$1.00”表示一个 2 元关系 R(m_1,m_2)的候选项 c = (m_1,m_2)

为了实现知识库构建的自动化,基于机器学习的系统将这一过程建模为一个分类任务。从输入文档中提取候选项,并为每个候选项分配一个布尔随机变量[a Boolean random variable],其中真值[ a true value signals]表示该候选项是关系的有效实例。为了做出这一判断,每个候选项都被分配了一组特征,这些特征作为分类器应赋予哪个布尔值的信号。

然后,这些系统根据候选项的特征以及一组称为训练数据的示例,最大化正确分类每个候选项的概率。最终,一个监督式机器学习算法需要三个输入:(1) 候选项,(2) 它们的特征,以及 (3) 训练数据。然后,它为每个输入候选项输出一个边际概率[a marginal probability]

最后,我们对输出概率设置一个阈值,使得概率超过阈值的候选项被分类为真,反之则为假。

2.2 Training Data Generation

训练数据是基于机器学习的知识库构建系统的重要输入。然而,获取训练数据通常成本高昂,因为它需要领域专家繁琐地对数据进行标注。弱监督[Weak supervision]数据增强[data augmentation]最近已成为生成训练数据的流行技术。弱监督利用多个可能质量较低的标签来源(如众包 [20, 45]、现有知识库 [25] 或启发式规则 [32]),从未标注的输入中生成训练数据。数据增强[Data augmentation]通过对现有的已标注种子数据应用变换,从已标注的输入中生成训练数据。这两种技术可以单独使用,也可以结合使用,从各种输入(标注或未标注的、文本或非文本的[ labeled or unlabeled, textual or non-textual])中生成训练数据。
在弱监督中,用户以标注函数的形式编码领域专业知识。每个标注函数接收一个候选项作为输入,并将其标记为真、假或不投票(弃权)。标注函数[Labeling functions]可以使用任意启发式规则,从而使其能够涵盖多种弱监督方法。由于每个标注函数都可以弃权,因此它们可能会覆盖输入数据的不同子集,并且由于弱监督来源的质量参差不齐,它们之间可能会产生冲突。我们遵循数据编程范式 [33],并使用一个生成式概率模型来估计每个标注函数的准确性。
这些估计值[estimates]被用作每个标注函数输出的权重,从而为每个候选项生成一个最终的概率标签,该标签将作为训练数据。与仅依赖人工标签的方法不同,我们通过这种方法将人工标签与程序化启发式规则相结合,并迭代地生成大量训练数据。然而,当可用于未标注数据的标注函数中的显式信号有限时,仅靠弱监督是不够的。
例如,在非文本数据(如图像)中就是这种情况。使用数据增强来处理这些具有挑战性的数据集,是一种从有限数量的已标注示例中生成大量训练数据的有效方法。数据增强允许用户通过变换函数对领域知识进行编码,从而生成新的训练数据样本。这些函数通过应用标签变化或不变的变换,将一个已标注的数据样本映射为变换后的已标注样本。
例如,一个变换函数[a transformation function]可能以多种方式旋转给定的已标注图像(一种标签不变的变换[a label-invariant transformation]),从而从单个已标注样本[a single labeled sample]生成多个已标注样本。
对于任何一个给定的数据元素,都可以应用大量的可能变换。然而,虽然有些变换能提高质量,但也有些变换会产生负面影响。因此,数据增强策略会影响可扩展性和质量 [8, 9]。在本文中,我们采用文献 [43] 提出的方法,以高效地在变换空间[the space of transformations]中进行搜索。

2.3 Multi-task Learning

每个学习任务(例如提取单个电气特性)都需要候选项、特征和训练数据[candidates, features, and training data]来训练一个分类器[classifier]。传统的单任务学习方法将每个任务视为独立的,因此每个任务都有其自己的特征空间[feature space]表示方式[representation]
相比之下,多任务学习是一种较新的机器学习范式,它同时利用来自相关任务的监督数据,为多个任务创建一个共享的单一表示。与独立处理每个任务相比,同时学习多个相关任务通常可以提高性能 [4, 10, 22, 24, 39]。多任务学习方法通过允许多个相关任务的数据被“汇集”在一起,从而带来优势,并形成一个更高效的共享特征空间[ shared feature space]
并非所有任务都能从多任务学习中受益。在某些情况下,使用多任务学习方法可能会由于任务及其数据之间的干扰而导致性能下降 [1, 5]。然而,在硬件组件信息领域,提取不同电气特性的任务高度相关(例如,提取不同的特性,但依赖于数据手册中的相似模式)。
图3.创建硬件组件知识库的方法概览。

2.4 The Fonduer Framework

我们使用 Fonduer 作为工具,从格式丰富的文档(如 PDF 数据手册)中捕获多模态信息 [41]。具体来说,Fonduer 为每个文档提供了一个丰富的数据模型,我们利用该模型以标注函数的形式实现弱监督,并提供了一个特征库[a feature library],用于捕捉来自多种信息模态(如文本、结构、表格和视觉[textual, structural, tabular, and visual])的信号。
虽然文献 [41] 表明,通过从晶体管数据手册[transistor datasheets]中提取少量数值信息,可以从 PDF 数据手册中提取信息,但本文在四个方面超越了他们的工作。
首先,在文献 [41] 表明从格式丰富的文档中提取信息通常是可行的基础上,我们提供了一种实用的方法,详细说明了如何为硬件数据手册执行此操作;我们首先研究了这类数据的特性,并据此仔细定制技术和实现方式。
其次,我们通过从三种不同类型的组件中提取硬件组件信息,并同时提取图形和文本数据[graphical and textual data],证明了我们的方法是可推广的;而文献 [41] 仅展示了从单一组件中提取文本信息。
第三,在文献 [41] 使用单任务学习的基础上,我们将他们的框架扩展为支持多任务学习方法,从而更好地利用硬件数据手册中关系之间的基本相似性[the fundamental similarities];随着提取更多数据,这在运行时间和内存利用率方面提高了效率和可扩展性。
第四,我们展示了从数据集创建到使用这些知识库的应用研究的全流程应用,而文献 [41] 仅专注于知识库的创建本身。

3 METHODOLOGY

我们将创建硬件组件知识库的过程分为三个阶段:(1) 收集数据集,(2) 将候选项和特征作为静态输入预处理为机器学习模型的输入,以及 (3) 迭代处理直到达到期望的质量(图 3)。虽然这些阶段普遍适用于一般的文档解析,但在本节中,我们重点介绍了从硬件数据手册中提取信息时所产生的特定挑战和来之不易的最佳实践。该流程中每个模块(例如解析、候选项提取、特征化)的实现细节在文献 [41] 中有详细说明。

3.1 Phase 1: Gathering Datasets

创建硬件组件知识库始于高质量的文档语料库[a high-quality corpus of documents]。由于数据手册以 PDF 文档的形式分发,这一阶段需要额外的准备工作,以获取每个文档的元数据[metadata],从而构建一个能够捕捉非文本信号[non-textual signals](如文档结构)的语料库。此外,由于理解数据手册需要技术专业知识,从像 Amazon Mechanical Turk 这样的未经培训的服务中打上的众包真实标签会导致知识库的质量显著下降。
获取 PDF 文档元数据[Acquiring PDF Document Metadata.]。制造商将硬件数据手册作为包含关系型信息表格的 PDF 文档进行分发。然而,与包含结构化元数据的 HTML 或 XML 文档不同,PDF 文档仅包含字符、矢量和图像,以及它们的渲染坐标。
虽然数据手册严重依赖结构化表格来呈现数据,但其底层数据格式并不包含关于文档结构(如表格)的显式元数据[explicit metadata]。因此,除了文档中包含的原始字符、矢量和图像之外,我们还需要补充元数据。为了满足这一需求,我们使用 Adobe Acrobat 为每个 PDF 文档生成 HTML 表示来获取元数据。
尽管转换过程可能会引入噪声,但 HTML 元数据提供了关于文档结构的宝贵信息,这些信息可以补充后续阶段中使用的 PDF 文档中的视觉信息[the visual information]
收集用于评估的标签[Gathering Labels for Evaluation.]。为了评估最终知识库的质量,我们必须拥有金标准标签(即真实标签[ground truth labels]),可以与之进行比较(例如通过计算 F1 分数)。传统的数据提取流程可能会求助于众包来获取金标准标签。然而,由于理解这些数据手册需要技术专业知识或培训,我们发现从未经培训的服务(如 Amazon Mechanical Turk)进行众包不仅成本高昂,而且由于必须纠正各种不一致和错误,通常并不可行 [15]。
相反,我们建议让领域专家为输入语料库中的一个小型但具有代表性的子集标注数据[representative subset of the input corpus]该子集进一步划分为用于开发过程中错误检查的一组数据,以及用于最终验证过程中泛化评估的一组数据。与领域专家合作还为后续阶段带来好处,在这些阶段中,领域专家的见解可以直接用作过滤器或标注函数[filters or labeling functions]

3.2 Phase 2: Pre-process Static Inputs

机器学习算法需要两个静态输入:候选项及其特征[candidates and their features]

第三个输入,即训练数据,将在第三阶段中迭代生成并优化。为了生成候选项和特征,我们必须:(1) 将输入语料库[the input corpus]解析为一个格式丰富的数据模型[formatted data model],(2) 提取候选项[extract candidates],以及 (3) 对每个候选项进行特征化[featurize each of these candidates]。在硬件数据手册领域,我们还必须考虑隐式信息,谨慎避免候选项的组合爆炸,并利用多模态特征。

Parsing.

制造商将数据手册以格式丰富的 PDF 文档形式分发,这些文档通过文本、结构、表格和视觉提示来传达信息。因此,在将这些文档解析为数据模型时,尽可能保留这些丰富的元数据至关重要。本方法中的每个后续步骤都依赖于该数据模型。如果输入文档被解析为非结构化文本[unstructured text],那么将缺少诸如表格或视觉对齐之类[tabular or visual alignments]的信息,而这些信息对于判断候选项是否正确至关重要。

Candidate Extraction. 

回顾第 2 节,我们将candidates定义为提及(mention)的 n-ary tuple,其中每个提及都属于特定的提及类型。为了提取候选项,我们首先为候选项中的每个提及定义提及类型[mention types],然后提取每种类型的所有提及的笛卡尔积,以形成候选项。由于这种笛卡尔积,候选项可能会出现组合爆炸,其中大多数候选项都是错误的。在处理硬件数据手册时尤其如此,因为其中的提及通常只是文档中的简单数值。为了应对这种类别不平衡并提高性能,我们在提及级别和候选项级别都应用了过滤器[filters]

例如,如果某个提及类型[mention type]数值[numerical value],则我们可以在提及级别通过将数值限制在特定范围内来进行过滤,但这需要领域专业知识来理解有效的数值范围。

在候选项级别,我们可以基于整个候选项进行过滤,例如,丢弃那些其所有组成部分提及[component mentions]都未出现在文档同一页上的候选项。这凸显了在优化系统性能与优化端到端质量之间的根本矛盾。

如果我们不过滤任何候选项,就会出现对负类候选项[negative candidates]的极端类别不平衡,从而降低端到端质量。通过减少考虑的候选项数量,过滤可以提高性能,并有助于减少类别不平衡。但是,在某一点之后,进一步的过滤会降低整体召回率,并因此也会降低端到端质量[end-to-end quality]

此外,硬件数据手册中通常包含应作为候选项提取的隐式信息。例如,文档标题可能仅包含“BC546...8”,而不是明确列出“BC546、BC547、BC548”作为部件编号。我们扩展了 Fonduer 框架以支持隐式候选项,因此对于这种简单模式,我们可以将文本扩展为隐式候选项,这些候选项只有在通过所有过滤器后才会被存储。然而,更复杂的隐式信息仍然是一个挑战(第 6.2 节)。

Featurization.

接下来,我们使用 Fonduer [41] 提供的所有模态特征对每个提取的候选项进行特征化。Fonduer 利用其数据模型来计算捕捉多种信息模态信号的特征,例如结构、表格和视觉特征,以及标准的自然语言特征,如词性标注和命名实体识别标签。然后,它为每个候选项创建一个向量[a vector],指示该候选项表达了哪些特征[features]

在较简单的领域(如纯文本文章)中,超出文本特征的内容可能是不必要的。然而,在处理硬件数据手册时,我们发现当所有模态的特征都存在时,最终的端到端质量最佳。

3.3 Phase 3: Iterative Knowledge Base Construction

最后,为了生成用于训练机器学习分类器的数据,我们采用两种系统化的方法。首先,我们使用标注函数来统一多种监督来源,例如启发式规则和人工标签[heuristics and human labels]。这使得我们能够系统地捕捉领域专业知识,从而从未标注的来源生成训练数据。当显式的数据信号决定具体的标签分配时,这种方法尤其有用。为了减轻这些来源的质量差异性,我们对其进行迭代优化,同时也优化我们的训练数据,最终达到可接受的数据质量。
其次,在数据缺乏可用于弱监督[weak supervision]显式信号[explicit signals]的情况下(例如对于图像等非文本数据),我们使用变换函数[transformation functions]从已标注的来源生成训练数据。应用数据增强使我们能够将少量的已标注样本扩展为更大规模的训练数据集。
我们采用了 Dauphin [43] 提出的数据增强策略。利用这个通过迭代生成的大规模训练数据集,我们随后训练一个多任务判别模型来创建最终的知识库。通过这种方法,我们面临一个经典的分类问题,可以应用逻辑回归来进行基于文本的关系提取,并应用卷积神经网络来进行基于图像的关系提取。
为了帮助这一过程,我们提供了四条关于为硬件数据手册开发标注函数和变换函数的最佳实践。首先,使用作用于多种信息模态的标注函数[labeling functions]。例如,不要仅依赖使用表格信息来确定对齐的标注函数;也应使用视觉对齐。使用多种模态有助于利用底层数据中的冗余信息,从而实现更鲁棒的监督。其次,类别不平衡(即负类候选项[ negative candidates]远多于正类候选项[positive candidates])是一个普遍存在的挑战。
由于这种不平衡,我们建议标注函数[labeling functions]输出“真否则弃权[true-else-abstain]”或“假否则弃权[false-else-abstain]”,而不是输出“真否则假[true-else-false]”或反之。不弃权的标注函数会对整个输入集进行标注,从而产生大量具有冲突标签的候选项,这会降低该标注函数的计算权重。相反,可以将那些标注“真否则假”的准确标注函数重新用作候选项提取过程中的过滤器。第三,在调试和开发标注函数时,应在开发集上评估其有效性,而不是在测试集上。
通过检查真正例、假正例和假负例候选项来调整和优化标注函数。与领域专家合作,以了解如何最好地捕捉他们的专业知识。优先选择有助于减少类别不平衡的标注函数[Labeling functions];我们建议仅包含准确率超过 50% 的标注函数。
通常,使用少于 20 个准确的标注函数[labeling functions]即可实现高质量。第四,使用从多种不同角度捕捉领域知识的变换函数。这些变换函数的目标是生成尽可能具有代表性的训练数据。例如,用户可以在变换函数中捕捉关于图像的领域知识,通过应用旋转、镜像、缩放和模糊等操作,以更好地表示图像可能呈现的样子。由于变换函数通常会被组合在一起使用,因此更多样化的变换函数可以生成更完整地代表数据集的训练数据。
我们还观察到,硬件组件数据集中的许多关系以相似的方式表达,因此它们的指示信号[indicating signals]可能从其他相似关系中受益。例如,最大和最小存储温度通常以相似的格式在表格中表示。因此,由于硬件领域的独特特性,我们用一个多任务模型替代了 Fonduer 的单任务判别模型,该多任务模型可以同时从多个关系中学习。
对于我们的多任务模型,我们通过使用具有硬参数共享[hard parameter sharing] [35] 的模型,在多个关系之间实现共享的特征空间,即每个任务使用单独的分类器,但所有任务共享相同的特征空间和权重。该架构如图 4 所示,其中每个关系的训练数据都输入到多任务判别模型中。
图4.多任务判别模型架构,其中所有任务共享一个特征空间,但使用单独的分类器。
在模型中,所有关系都使用共享的特征空间,然后分别进行分类(在我们的案例中,使用逻辑回归)以产生每个关系的概率预测。我们通过集成 Emmental [40](一个多任务学习包)来实现多任务学习。
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐