返回介绍

数学基础

统计学习

深度学习

工具

Scala

三十一、USE [2018]

发布于 2023-07-17 23:38:25 字数 12841 浏览 0 评论 0 收藏 0

  1. 对于许多 NLP 任务来说,可用的训练数据数量有限。这给 data hungry 的深度学习方法带来了挑战。鉴于标注监督训练数据的成本很高,对于大多数 NLP 任务来说,通常无法获得非常大的训练集。许多模型通过使用预训练的 word embedding (如 word2vecGloVe 产生的 word embedding),隐式地进行有限的迁移学习来解决这个问题。然而,最近的工作表明,使用 pre-trained sentence level embedding 在下游任务有很强的表现。

    在论文 《Universal Sentence Encoder》 中,作者提出了两个用于产生 sentence embedding 的模型,这些模型显示了对其他一些 NLP 任务的良好迁移。作者在下游任务上包含不同数量的训练数据进行实验,作者发现,所提出的 sentence embedding 可以用非常少的 task specific 训练数据来获得令人惊讶的良好任务表现。

    此外,作者还讨论了关于内存需求、以及 CPU/GPU 上的计算时间的 trade-off 。作者还对不同长度的句子进行了资源消耗比较。

31.1 模型

  1. 我们提供了两个新的模型来将句子编码为 embedding 向量。一个利用了 Transformer 架构,另一个为深度平均网络 deep averaging network: DAN 。这两个模型都是在 TensorFlow 中实现的,并可从 TF Hub 下载。这两个模型将英语字符串作为输入,并产生固定维度的 embedding representation 作为输出。

    这里提供了一个最小的 code snippet ,将一个句子转换成一个 sentence embedding

    
    import tensorflow_hub as hub
    embed = hub.Module("https://tfhub.dev/google/universal-sentence-encoder/1")
    embedding = embed(["The quick brown fox jumps over the lazy dog."])

    所得到的 embedding tensor 可以直接使用,也可以纳入更大的 model graph 中从而用于特定的任务。如下图所示, sentence embedding 可以很简单地用于计算 sentence level 的语义相似性分数,在semantic textual similarity: STS 基准上取得优异的表现。当被包含在更大的模型中时, sentence encoding model 可以为特定任务进行微调。

  2. 这里介绍了我们两个编码模型的模型结构。这两个编码器有不同的设计目标:基于 Transformer 架构的编码器以高准确性为目标,代价是更大的模型复杂性和资源消耗;基于 DAN 架构的编码器以高效推理为目标,代价是略低的准确性。

    • Transformer:在Transformer 中,我们通过对句子中每个 word representation 进行相加,从而得到 sentence representation 。具体而言,编码器将小写的 PTB tokenized string 作为输入,并输出一个 512 维的向量来作为 sentence embedding

      编码器模型被设计为尽可能的通用,这是通过使用多任务学习来实现的:单个编码器模型被用来支持多个下游的任务。支持的任务包括:

      • 类似 Skip-Thought 的任务,用于从任意的文本中进行无监督学习。Skip-Thought 任务用一个基于 Transformer 架构的模型取代了原始论文中使用的 LSTM

      • 对话式的 input-response 任务,用于包含对话数据。

      • 分类任务,用于监督数据的训练。

      正如实验部分所示,基于 Transformer 的编码器实现了最佳的整体迁移性能。然而,这是以计算时间和内存用量随句子长度急剧增加为代价的。

    • Deep Averaging Network: DAN:针对 wordbi-graminput embedding 首先进行平均,然后馈入一个深度前馈神经网络来产生 sentence embedding 。同样地,DAN encoder 将小写的 PTB tokenized string 作为输入,并输出一个 512 维的向量来作为 sentence embeddingDAN encoder 的训练方式与 Transformer-based encoder 类似。我们利用多任务学习,即用一个 DAN encoder 来为多个下游任务提供 sentence embedding

      DAN encoder 的主要优点是计算时间与输入序列的长度成线性关系。与 《Deep unordered composition rivals syntactic methods for text classification》 类似,我们的结果表明,DAN 在文本分类任务上取得了强大的 baseline 性能。

    Transformer-based encoder 是在最后融合多个 wordrepresentation,然后融合结果直接输出;DAN encoder 是首先融合多个 wordrepresentation,融合结果通过深度前馈神经网络进行非线性变换并最后输出。

    这两个模型都需要从头开始训练,而没有使用 pre-trained model 来初始化。

31.2 实验

  1. 训练 Encoder 的训练数据:

    • sentence encoding model 的无监督训练数据来自各种网络资源,包括维基百科、网络新闻、网络问答网页和讨论区。

    • 我们通过对 Stanford Natural Language Inference: SNLI 语料库中的监督数据进行训练来增强无监督学习。与InferSent的发现类似,我们观察到对 SNLI 的训练提高了迁移性能。

  2. Transfer Task (即,下游任务):这里介绍了用于迁移学习实验的数据,还介绍了描述 model biasWord Embedding Association Test: WEAT 数据。下表总结了每个数据集的测试集大小,还总结了验证集大小和训练集大小(如果有的话)。

    • Movie Review: MR:电影评论片段的情绪,以五星评级为标准。

    • Customer Review: CR:从客户评论中挖掘出来的句子的情感。

    • SUBJ:从电影评论和剧情摘要中挖掘的句子的主观感受 subjectivity

    • MPQA:来自新闻数据的短语级别的意见的极性 polarity

    • TREC:来自 TREC 的细粒度的 question classification

    • SST:二元短语级别的情感分类 sentiment classification

    • STS Benchmark:句子对之间的 semantic textual similarity: STS ,通过与人类判定的皮尔逊相关性进行评分。

    • WEAT:来自心理学文献的隐性关联测试(implicit association test: IAT )的 word pair ,用于描述模型的 bias

  3. 迁移学习方法:

    • 对于 sentence classification 迁移任务,Transformer sentence encoderDAN sentence encoder 的输出被馈入一个 task specific DNN

    • 对于 pairwise semantic similarity 迁移任务,我们通过以下公式直接评估由Transformer sentence encoderDAN sentence encoder 产生的 sentence embedding 的相似性:

      (1)sim(u,v)=(1arccos(uvu×v)/π)

      我们首先计算两个 sentence embedding 的余弦相似度,然后使用 arccos 将余弦相似度转换成角度距离。

      为什么不能直接使用余弦相似度,反而转换成角度?作者并未解释原因。实际上,余弦相似度更为常见。

  4. baseline:对于每个下游任务,我们包括只利用 word level transferbaseline,以及完全不利用迁移学习的 baseline

    • word level transfer:我们使用在新闻数据语料库上训练的 word2vec skip-gram 模型的 word embeddingpretrained word embedding 被作为两种模型的输入:convolutional neural network: CNN 模型、DAN 模型。

    • 完全不利用迁移学习:直接用 CNNDAN 在不使用任何 pretrained word embeddingpretrained sentence embedding 的情况下训练。

  5. 结合 sentence level 迁移和 word level 迁移(Combined Transfer):我们将这两种方法结合起来,将 combined representation 馈入下游任务的分类层。

    此外,我们我们还探讨了将 sentence level 的迁移学习的 representation 、以及不使用 word level 的迁移学习的 baselinerepresentation 拼接起来。

  6. 下游任务的超参数用 Vizier 和轻度的人工调优相结合的方式来调优。模型超参数在任务的验证集(如果有的话)上调优,否则在训练集(如果有的话)上交叉验证来调优。如果既没有训练集也没有验证集,那么通过测试集来调优。每个下游任务的模型用不同的随机初始化权重重复训练 10 次,我们报告平均结果。

    当下游任务的训练数据有限时,迁移学习是至关重要的。我们探讨了在使用和不使用迁移学习的情况下,改变下游任务可用的训练数据量对该任务性能的影响。对比 Transformer-based encoderDAN-based encoder ,我们展示了模型的复杂度、以及所需的数据量之间的 tradeoff 从而达到任务的目标准确性。

    为了评估我们的 encoder模型的 bias ,我们评估了我们的模型在 WEAT 单词列表上学到的各种关联的强度。我们将我们的结果与《Semantics derived automatically from language corpora contain human-like biases》的结果进行了比较,他们发现 word embedding 可以用来重现人类在隐式关联任务上的表现,包括良性的关联和潜在的不良关联。

  7. 下表给出了下游任务的表现。可以看到:

    • Transformer-based encoder 的迁移学习通常表现得和 DAN-based encoder 的迁移学习一样好或更好。

    • 对于某些任务来说,使用更简单、更快的 DAN encoder 的迁移学习,可以和更复杂的 Transformer encoder 的表现一样好甚至更好。

    • 利用 sentence level 的迁移学习的模型,往往比只使用 word level 的迁移学习的模型表现更好。

    • 大多数任务的最佳表现是由同时使用 sentence levelword level 迁移学习的模型获得的。

  8. 下表说明了不同数量的训练数据的下游任务性能。可以看到:

    • 对于较少的数据量,sentence level 的迁移学习可以获得令人惊讶的任务表现。

    • 随着训练集规模的增加,不使用迁移学习的模型接近于使用迁移学习的模型的性能。

  9. 下表对比了 GloVe embeddingbiasDAN embeddingbias

    • GloVe 类似,我们的模型再现了在 flowers vs. insectspleasantness vs. unpleasantness 之间的 human association

    • 然而,我们的模型在针对揭示年龄歧视、种族主义、以及性别歧视的 probe 方面显示出比 GloVe 更弱的关联。

    word association pattern 的差异可归因于训练数据构成的差异、以及 task mixture (这些任务用于训练 sentence embedding)。

  10. 资源使用:这里给出了在不同的句子长度下,Transformer encoderDAN encoder 的内存用量和计算资源,如下图所示。

    • 计算资源:Transformer encoder 的时间复杂度是句子长度的O(n2)$ O(n^2) $ ,而 DAN encoderO(n)$ O(n) $ 。

      • 对于短句子,Transformer encoder 只比简单得多的 DAN encoder 慢一些。然而,随着句子长度的增加,Transformer encoder 的计算时间明显增加。

      • 相反,DAN encoder 的计算时间随着句子长度的增加几乎保持不变。由于 DAN encoder 的计算效率非常高,对于 Transformer encoder来说,使用 GPU 而不是 CPU 往往会有更大的实际影响。

    • 内存用量:与计算资源类似,Transformer encoder 的内存用量随着句子长度的增加而迅速增加,而 DAN encoder 的内存用量保持不变。

      我们注意到,对于 DAN encoder 来说,内存的使用主要是由用于存储模型的 unigram embeddingbigram embedding 的参数所支配。由于 Transformer encoder 只需要存储 unigram embedding ,因此对于短句来说,Transformer encoder 需要的内存几乎是 DAN encoder 的一半。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文