一些写在前面的话:学习的笔记记录罢了
一、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 个单词都一样重要。你首先会注意到单词 ball
,on
和 field
,因为这些单词你是觉得最“重要”的。
单一“上下文向量”的缺点:输入有不同的重要程度
2.Bahdanau
注意力机制:为解码器网络提供了在每个解码步骤查看整个输入序列的功能;解码器可以在任何时间点决定哪些输入单词是重要的。
附加注意力
而是根据单词的不同赋予不同的权重
输出不再是一个固定长度的中间语义,而是一个由不同长度向量构成的序列
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是正逐渐对社会产生巨大影响力,使偏差和安全等问题越来越重要
总结
泛读+精读很重要,一定要沉下心来阅读,英文,提升自身水平,清楚明白自己想要的是什么,现实点的目标。