BERT是transformer的Encoder
所以注意位置
BERT需要训练Encoder就好了,训练时候不需要Label
BERT,给句子,每个句子都会输出一个Embedding
encoder中self-attention
字为单位训练更为格式
因为词的数量级别太大,实际使用上会方便很多。
Transformer
google在2017年发表的一篇论文《Attention is all you need》
Attention机制
什么是Attention
1、深度学习中的注意力可以被广义的理解为表示重要性的权重向量。
2、为了预测或推断一个元素,例如图像中的像素或句子中的单词,我们使用注意力权重来估计其他元素与相关的强度,<br>并将由注意力权重加权的值的总和作为计算最终目标的特征。
Attention的步骤:<br>1、计算其他元素与待预测元素的相关性权重 。<br>2、根据相关性权重对其他元素进行加权求和。
常见问题可以作为面试题目
1、bert和transformer的关系:BERT是transformer的Encoder
2、中文的训练BERT的时候用词合适还是用字合适为什么
输入one-hot vector因为太长
3、bert如果有24层,可以抽取出24个vector。bert的不同层抽取的vector作用不一样。
1、文字的特征提取器
1-of-N Encoding
无法看出词和词的关系
Word Embedding
每个词汇用一个向量表示它,向量的某一个纬度表示了一个词的一些含义,<br>相似的向量对应实例比较相似<br>
抽feature的方法<br>已经广泛的应用的NLP的任务中来了。<br>
但是同一个词汇可能有不同的意思,过去的word embedding是一模一样的,但是同一个词语在不同上下文中会有细微的差异。<br>总结:过去的embedding的方式,无法区分一词多义的问题、有些 比较 含糊。<br>
Contextualized Word Embedding
2、什么是ELMO<br>
Embeddings from language model,是用来产生Contextualized Word Embedding的
基于RNN-based language models,要训练一个RNN based的models不需要label,训练任务的目的就是预测下一个词。
训练过程中就可以产生,当前token的embedding会根据前面的数据产出Contextualized Word Embedding
不光考虑前向还要考虑后向的任务
begin of sentence
考虑deep任务的rnn
产生了一个问题,如何选择合适的embedding
ELMO如何将deeprnn产出个各种embedding做融合。
ELMO进行加权的融合,权重是学习出来的,<br>但是会根据不同的使用任务设置不同的权重。<br>
down stream tasks指的是不同的embedding的任务。
3、如何训练BERT
1、masked LM
挖空15%percent的词汇。
把mask部分,丢进去是linear multi class classifier
因为linear表征能力非常弱,经过24层,所以BERT必须抽出一个非常好的repredicting
2、next sentence prediction
预测两个句子是否需要拼接在一起。
CLS放在开头或者结尾影响不大,因为不是基于 RNN的架构。
[SEP]:the boundary of two sentences 两个句子的边界
[CLS]:the position that outputs classification results是一个分类的任务
在论文中,approaches 1 and 2 used at the same time<br>
4、如何使用BERT
1、输入句子,输出一个class(文章分类)
给出【CLS】分类的符号,和句子
BERT的参数和Linear Classifier参数一起进行学习。
Linear Classifier从头学、bert进行微调
3、输入两个句子,输入一个 分类
输入前提和假设。让BERT
子主题
4、Queation Answering,输入文章可以得到答案。
子主题
训练需要准备问题、文章已经问题的答案在文章的第几个单词到第几个单词。
把BERT当做一种抽取feature的工具
5、GPT
GPT-2的参数量
Zero-shot Learning
reading comprehension结果 很好
summarization 结果很差
translation 结果很差
最大模型的参与量1500M
Self-Attention layer
RNN和CNN的弊端
RNN不能进行并行化
CNN可以并行计算,但是需要叠加很多层,才能看的懂依赖
输入和输出和RNN是一样,input是一个seq,输出是一个seq
self-attention可以并行化,可以取代rnn
attention的本质,输入两个向量,输出两个向量有多像。
d是q和k的dim,得到b1的vector
子主题
整体矩阵的表示方法
O就是输出
整理工作流程,可以通过GPU进行计算。