阅读《QAnet》QANET: COMBINING LOCAL CONVOLUTION WITH GLOBAL SELF-ATTENTION FOR READING COMPREHENSION Ad

当前端对端的QA模型主要构建在循环神经网络上并结合attention。虽然成功,但是训练速度慢。因此,提出的QANet模型,无需循环网络,其encoder=卷积+self-attention,提升了训练速度(3x->13x)和推理速度(4x->9x)。进而,可以训练更多数据。结合了翻译模型的反向翻译生成的数据,做数据增强,得到F1:84.6(原本:81.8).
数据:SQuAD 数据集
学术会议:ICLR 2018

Model:

Input embedding layer= word embedding:pre-trained GloVe.+Character embedding

将单词嵌入(Word Embedding)和字符嵌入(Character Embedding)结合在一起是一种常见的策略,通常用于自然语言处理任务。这个策略的目的是充分利用单词级别和字符级别的信息,以提高模型对文本数据的理解和表示。以下是为什么要进行这种组合的一些原因:

  • 充分捕捉语义信息:单词嵌入主要用于捕捉单词的语义信息,它会将每个单词映射到一个连续的向量表示。然而,有些单词可能在嵌入层中缺失,特别是对于不常见的或未登录词。字符嵌入则可以充分捕捉这些单词的构造信息,因为字符级别的表示能够捕获单词内部的结构和构成。
  • 处理未登录词:字符嵌入可以处理未登录词(Out-of-Vocabulary
    Words),因为它们是根据字符级别的信息构建的。这意味着,即使模型在训练数据中没有遇到某个单词,它仍然可以通过单词中的字符嵌入来理解和表示这个单词。
  • 更好的泛化能力:字符嵌入允许模型更好地泛化到不常见的单词和语言结构。这提高了模型在多样性数据上的性能,尤其在处理多语言或具有不同拼写变体的文本时。
  • 上下文信息:字符嵌入还可以用于捕获单词的上下文信息,因为字符级别的表示通常包括字符级别的上下文。这对于一些上下文相关的任务,如命名实体识别或情感分析,非常有用。

Embedding encoder layer=depthwise seperable convolutions(memory efficient and better generalization) *#+ multi-head attention mechanism self-attention +feed-forward layer

Context-query attention layer:DCN attention

Model encoder layer

Output layer

Data aumentation by backtranslation :

反向翻译(Backtranslation)是一种有效的数据增强技术,特别适用于自然语言处理任务,如机器翻译、文本摘要、对话系统等。这个技术的基本思想是将一段文本从一种语言翻译成另一种语言,然后再从目标语言翻译回原始语言,以生成与原始文本相似但不完全相同的新文本。这样可以扩充训练数据,提高模型的性能和泛化能力。

以下是使用反向翻译进行数据增强的一般步骤:

  1. 数据准备

    • 首先,需要有足够的训练数据,包括原始语言文本和对应的翻译文本。这些数据可以用于训练翻译模型,如神经机器翻译(NMT)模型。
  2. 翻译模型训练

    • 使用原始语言和目标语言的平行语料(即原文和翻译对)来训练翻译模型。这个模型可以是神经网络模型,如序列到序列(Seq2Seq)模型。
  3. 反向翻译

    • 对于要进行数据增强的原始文本,首先将其翻译成目标语言。这一步通常会使用训练好的翻译模型。
    • 接下来,将目标语言文本翻译回原始语言,生成新的文本。这个步骤使用相同的翻译模型,只是将源语言和目标语言互换。
  4. 生成新数据

    • 现在你有了原始文本和新生成的文本,你可以将它们添加到你的训练数据中,以增加训练集的大小。
    • 这样,你可以使用更多的数据来训练你的模型,提高模型的性能。

使用反向翻译进行数据增强的好处包括:

  • 扩充训练数据,有助于提高模型的性能和泛化能力。
  • 生成与原始数据略有不同的数据,有助于增加模型的多样性。
  • 帮助模型更好地处理不同语言或语言风格的文本。

然而,需要注意的是,反向翻译需要大规模的翻译数据和一个强大的翻译模型,因此可能不适用于所有任务。此外,翻译质量和生成的文本质量可能会受到翻译模型的影响,因此选择和训练合适的翻译模型非常重要。

Handling squad documents and answer

Document
paraphrasing是一种文本处理技术,用于将一个文档或文本段落重新表达成与原文含义相同或相似但用不同的语言或句子结构。这个技术通常用于以下几个方面:

  1. 消除抄袭:文档重述可以用于消除文本中的抄袭。通过将原始文档重新表达,可以确保文本不再与其他文档相似,从而降低抄袭的风险。

  2. 提高可读性:文档重述可以改进文档的可读性。原始文档可能包含复杂或难以理解的句子结构,通过重述,可以使文档更容易理解。

  3. 翻译:文档重述可以用于将文档从一种语言翻译成另一种语言。这是机器翻译领域的一个子领域,通过将文档重新表达成目标语言,可以实现翻译。

  4. 数据增强:在自然语言处理任务中,文档重述也可用于数据增强。通过创建原始文档的多个重述版本,可以扩充训练数据,提高模型性能。

文档重述通常需要保持原始文档的核心含义,但以不同的方式表达。这可以通过更改词汇、句子结构、语法等来实现。重述文档的质量取决于重述的准确性、自然度和语法正确性。

文档重述可以手工完成,也可以通过自然语言处理(NLP)技术,如神经机器翻译模型或文本生成模型,自动实现。自动重述文档的质量通常受到使用的模型和数据质量的影响。

你可能感兴趣的:(算法,python)