当前位置:   article > 正文

NLP的学习笔记

NLP的学习笔记

一些写在前面的话:学习的笔记记录罢了


一、Seq2Seq与神经翻译系统

一个用来处理下述问题的深度学习框架

  • Translation :将一种语言的一个句子作为输入,然后输出是另外一种语言的相同的意思的句子。
  • Conversation :以陈述或问题作为输入并作出回应。
  • Summarization :将大量文本作为输入并输出其摘要

1.发展史简介

基于概率模型构建

  • 翻译模型 ,告诉我们源语言基于翻译概率最可能被翻译的一些结果候选。
  • 语言模型 ,结合语句的通顺度等综合评估最优的翻译结果。

 基于短语的翻译系统可以根据短语序列考虑输入和输出

Seq2Seq ,使用 LSTM现代翻译系统:观测到整个输入后生成任意的输出序列

2.序列到序列模型

Seq2Seq:有两个RNN组成的端到端模型

  • 一个 encoder 编码器,将模型的输入序列作为输入,然后编码固定大小的“上下文向量”。
  • 一个 decoder 解码器,使用来自编码器生成的上下文向量作为从其生成输出序列的“种子”

编码器:

读取输入序列到我们的 Seq2Seq 模型,生成一个固定维度的上下文向量C

LSTM每个时间步读取一个输入单词,将一个任意长度序列压缩到一个单一固定大小的向量是很困难的,堆叠的 LSTM 组成,

反向处理输入序列?通过这样做,编码器看到的最后的信息(粗略地)对应于模型输出的开始信息

对最后一层的输出放到 softmax 函数中计算,并生成我们第一个输出单词。这个单词作为网络下一个时间步的输入,并且以这种方式解码句子comment t’appelles tu的剩余部分。

3.基础神经翻译系统

Seq2Seq 模型在输入句子很长的情况下效果会变得很差,LSTM 在实际使用中有一系列的限制。

  • Encoder:逐层运行,每一层的输出是下一层的输入
  • Decoder:逐时间步运行,每一个时间步的最后一层的输出是下一个时间步的第一层的输入

4.双向RNN

一个单词可以依赖它前面或者后面的单词。Seq2Seq 模型并没有考虑到这一点

双向 RNN 通过遍历序列的两个方向并连接所得到的输出

添加另一个神经元,但是以相反的方向向其放入输入,输入被输入到两个不同的LSTM层中,但是方向不同,隐藏状态被连接起来以得到最终的上下文向量。

二、注意力机制

1.动机与想法

当你听到句子 the ball is on the field,你不会认为这 6 个单词都一样重要。你首先会注意到单词 ballon 和 field,因为这些单词你是觉得最“重要”的。

单一“上下文向量”的缺点:输入有不同的重要程度

2.Bahdanau 

注意力机制:为解码器网络提供了在每个解码步骤查看整个输入序列的功能;解码器可以在任何时间点决定哪些输入单词是重要的。

附加注意力

Neural Machine Translation using Bahdanau Attention Mechanism | by Yash Marathe | Analytics Vidhya | Medium

而是根据单词的不同赋予不同的权重

输出不再是一个固定长度的中间语义,而是一个由不同长度向量构成的序列

Step 1: Generating the Encoder Hidden States

decoder hidden state are used to generate the Context vector.

隐藏层---》文本向量

Step2:Calculating the Alignment vector

利用这些权重,解码器决定每个时间步要关注的内容。

Step 3: Calculating the Context vector

Step 4: Decoding the output

Step 5: Training the dataset using Encoder-Decoder Model

Pass the input and initial hidden states through the Encoder which will return Encoder output sequence and Encoder Hidden state. 

Step 6: Predictions

Attention Mechanism (floydhub.com)

3.对齐与机器翻译“对齐”的关联

基于注意力模型的主要优点是能够有效地翻译长句,注意力机制是一个聪明的方式来解决这个问题,并且现在很多实验也证实了确实如此。

4.Google的新神经翻译系统

仅有日语-英语的翻译数据和韩语-英语的翻译数据,Google 团队发现多语言 NMT 系统对这些数据进行训练后的实际上可以产生合理的日语-韩语翻译。

该模型实际上维持一个了 独立于所涉及的实际语言的输入/输出句子的内部表示

  • Show, Attend and Tell: Neural Image Caption Generation with Visual Attention
    • 这篇论文是提出单词/图像对齐的方法
  • Modeling Coverage for Neural Machine Translation
    • 他们的模型使用覆盖向量,考虑到使用注意力的历史以帮助计算将来的注意力。
  • Incorporating Structural Alignment Biases into an Attentional Neural Translation Model
    • 这篇论文通过引入其他传统语言学的思想来提高注意力表现。

评估机器学习翻译的质量已经自成体系为一个研究领域,已经提出了许多评估的方法 TER, METEOR, MaxSim, SEPIA 和 RTE-MT 。我们将重点关注两个基准评估方法和 BLEU。

5. BLEU标准

在 2002 年,IBM 的研究者提出了 Bilingual Evaluation Understudy(BLEU),时至今日,该方法的很多变体,是机器翻译中最可靠的评估方法之一。

BLEU 算法通过参考人工翻译来评估机器翻译的精确度分数。参考人工翻译被假定为是一个翻译的模型样例,然后我们使用 n-gram 匹配候选翻译与人工翻译之间的相似程度作为度量标注。考虑一个参考句子 A 和候选翻译 B:

BLEU 分数是查找在机器翻译中是否有 n-grams 也出现在参考翻译中。以下彩色的翻译是参考翻译和候选翻译之间共享的不同大小的 n-grams 的一些示例。

6.处理大词汇库情况下的输出部分

1 缩放softmax

2 压缩词汇量

3 处理罕见词:学习从源文本中“复制”ShowMeAI知识社区

又:Sennrich 等人提出了一种通过将罕见和未知的单词作为一个 subword units 的序列来实现开放词汇翻译的方法。

Byte Pair Encoding 的压缩算法

混合词字模型来处理未知词

n-gram语言模型

计算这些概率,每个 n-gram 的计数将与每个单词的频率进行比较,这个称为 n-gram 语言模型

RNN的优缺点及应用

RNN 有以下优点

  • 它可以处理任意长度的序列
  • 对更长的输入序列不会增加模型的参数大小
  • 对时间步 t 的计算理论上可以利用前面很多时间步的信息
  • 对输入的每个时间步都应用相同的权重,因此在处理输入时具有对称性

但是 RNN 也有以下不足

  • 计算速度很慢——因为它每一个时间步需要依赖上一个时间步,所以不能并行化
  • 在实际中因为梯度消失和梯度爆炸,很难利用到前面时间步的信息

RNN可以应用在很多任务,例如:

  • 标注任务 (词性标注、命名实体识别)
  • 句子分类 (情感分类)
  • 编码模块 (问答任务,机器翻译和其他很多任务)

Gated Recurrent Units (GRU模型)

长短时记忆网络 (LSTM)

  • 5年前的深度学习和NLP
    • No Seq2Seq
    • No Attention
    • No large-scale QA / reading comprehension datasets
    • No TensorFlow or Pytorch
  • 扩展能力 (模型和数据大小) 是深度学习近些年来成功的原因
  • 过去受到计算资源和数据资源的规模限制
  •  为什么无监督会有效

  • 跨语言嵌入和共享编码器为模型提供了一个起点
  • 使用 cross-lingual 的词嵌入来初始化,即其中的英语和法语单词应该看起来完全相同
  • 共享编码器
  • 例如我们以一个法语句子作为模型的输入
  • 由于嵌入看起来非常相似,并且我们使用的是相同的 encoder
  • 因此 encoder 得到的法语句子的 representation 应该和英语句子的 representation 非常相似
  • 所以希望能够获得和原始的英语句子相同的输出
  • 越来越感兴趣用 NLP 帮助高影响力的决策
    • 司法判决
    • 招聘
    • 等级测试
  • 一方面,可以快速评估机器学习系统某些偏见
  • 然而,机器学习反映了训练数据
    • 甚至放大偏见…这可能导致更偏向数据的创建
    • AI模型 偏见
    • 在男女平等和法律领域

三、跨语言BERT

  • 常规的 BERT ,有一系列的英语句子,并且会 mask 一部分单词
  • 谷歌实际上已经完成的是训练好的多语言的 BERT
  • 基本上是连接一大堆不同语言的语料库,然后训练一个模型
  • masked LM training objective
  • 由Facebook 提出的
  • 联合了 masked LM training objective 和翻译
  • 给定一个英语句子和法语句子,并分别 mask 一部分单词,并期望模型填补

大模型和GPT

计算机视觉中的大模型

.BERT解决了什么?接下来做什么

再也不用在神经网络模型设计技巧上反复琢磨?

  •  attention is all you need 之下,这些结构不再热门

  • 花费六个月来研究 体系结构的设计,得到了1个点 F1 的提升
  • 只是让 BERT 扩大3倍,得到了 5个点 F1 的提升
  • SQuAD 的 TOP20 参赛者都是用了 BERT
  • 阅读理解
    • 在长文档或多个文档
    • 需要多跳推理
    • 在对话中定位问答
  • 在过去的5年里,由于深度学习,进步很快
  • 随着有能力训练更大的模型和更好地使用无监督数据,在去年有了更大的进展
    • 是在NLP领域的激动人心的时刻
  • NLP是正逐渐对社会产生巨大影响力,使偏差和安全等问题越来越重要

总结

泛读+精读很重要,一定要沉下心来阅读,英文,提升自身水平,清楚明白自己想要的是什么,现实点的目标。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/474993
推荐阅读
相关标签
  

闽ICP备14008679号