《Few-Shot and Zero-Shot Learning for Historical Text Normalization》阅读笔记

一、介绍

历史文本规范化(Historical text normalization):许多历史文档是在没有标准拼写约定的情况下编写的,并且注释数据集很少且很小,由于历史文本由于拼写演化不同,导致人们不能很好的分辨其具体含义。

目标:将使这些文件通过NLP models处理,转换成当今学者们可以查到的,并且外行人士也能看懂的文本。在之前关于这一主题的大量工作之后,我们将自我限制为逐字归一化,忽略了现代文本与历史文本之间的语境模糊或语法差异问题。

MTL:多任务学习(MTL)是一种通过在一组相关任务上联合训练模型来改进概括的技术。

二、解决的问题

问题提出:历史文本规范化通常依赖于小型训练数据集。最近的工作表明,通过利用相关数据集的协同作用,多任务学习有时可以带来显着的改进,但是没有对来自不同语言的不同数据集的多任务学习策略进行系统研究。

解决策略:使用自动编码,字形到字音映射和词形还原作为辅助任务,对来自八种语言的十个数据集中的基于序列到序列的历史文本标准化的63个多任务学习策略进行评估。当针对目标任务的训练数据有限时,我们观察到跨语言的一致的,有意义的改进,但是当训练数据丰富时,我们会进行微小的改进或没有改进。

实验设想:我们尝试用八种不同语言进行历史文本规范化:英语,德语,匈牙利语,冰岛语,葡萄牙语,斯洛文尼亚语,西班牙语和瑞典语。

实验重点:主要重点是分析多任务学习策略的有用性

(a)评估有监督能否用在所讨论的语言问题

(b)彻底消除目标语言对有监督的​​需求(零样本学习)。

三个辅助任务:字形到音素映射;自编码;词形还原

Autoencoding:我们使用从Wikipedia中提取的数据并训练我们的模型来重新创建输入单词。在规范化任务中,输入单词的大部分通常保持相同,因此自动编码可能有助于在模型中强制执行此行为。

Grapheme-to-phoneme mapping:该任务使用Deri和Knight(2016)的数据将单词映射到音素序列.Bollmann等(2017)之前表明,这项任务可以改善历史正规化,可能是因为变更检查通常是由语音过程推动的,这也是其他标准化系统的假设(Porta等,2013; Etxeberria等,2016)。

Lemmatization:我们使用UniMorphdataset来学习从影像形式到它们的引理的映射。此任务类似于规范化,因为它将一组不同的单词形式映射到单个目标形式,这通常与输入单词具有高度相似性。

三、模型结构

我们使用标准的注意编码器-解码器结构(Bahdanau等,2014),其中输入序列和单个字符作为输入符号。我们的模型由以下部分组成:

Source embedding layer:将输入字符转换为密集向量

Encoder:单个双向LSTM对嵌入的输入序列进行编码

Attender:使用多层感知器计算编码输入和当前解码器状态的注意力

Target embedding layer:将输出字符转换为密集向量

Decoder:单个单向LSTM,使用注意向量和嵌入的先前输出字符作为输入,将编码序列一次编码为一个字符

Prediction layer:最终的前馈层,线性转换解码器输出并执行softmax以预测所有可能的输出字符的分布

四、实验

文章一共做了4个实验,但本文只关注Zero-Shot learning的相关内容即实验四:

Zero-Shot Learning:据我们所知,之前所有关于历史文本规范化的工作都集中在一个有监督的场景中,其中一些标记的数据可用于目标域,即您感兴趣的特定历史语言。由于在没有规范的拼写指导原则的情况下,拼写变化具有高度的特殊性,因此模型不应超越特定的语言阶段,甚至有时是手稿集。这意味着许多历史文本规范化项目需要资源来注释新数据。本文首次尝试零样本学习场景,该场景利用了其他语言的现有数据,但假设目标语言没有标记数据。

对于零样本实验,我们使用与单个任务基线相同的模型;换句话说,所有层在所有任务和语言之间共享。相反,为了让模型能够区分语言和任务,我们为所有模型输入准备了两个额外的符号:语言标识符和任务标识符。然后,对于每种语言,我们对所有任务的规范化、引理化、自动编码和从图形到音素的转换以及所有语言(目标语言的规范化任务除外)训练一个单一的模型。这样,模型可以观察来自规范化任务(尽管使用其他语言)和目标语言(仅从辅助任务)的数据,但看不到来自目标语言的任何规范化数据。在这些情况下,如果有来自同一语言的两个数据集,那么在训练步骤中我们将它们都省略。

和以前一样,我们只包含1,000个令牌(tokens)历史数据集用于培训。在每次训练更新中,我们使用来自每个数据集/任务组合的相同数量的样本,并且定义一个 epoch由来自每个组合的1,000个样本组成。由于我们不希望在训练期间从目标语言向模型提供任何标准化数据,我们不能使用早期停止,而是训练固定数量的10个epoch。

 

 

你可能感兴趣的:(paper)