参考链接:https://www.youtube.com/watch?v=Po38Dl-XDd4
首先什么是word embedding:
就是用低维数据(例如vector)表示 word。
流行的模型有哪些呢:
1. one hot
2. 词袋 word bags
3 NNLM😐 Neural Network language model
-
GAN: autoencoder
-
NNLM: 本身是一个由上文推下文的结构。但也可以实现word embedding
-
word2Vec: 每个单词产生一个vector。包含两个技术:1.CROW 2.skip-gram
-
CROW: back of words, 从上下文中找出单词
-
skip-gram: 给一个单词,推出它的上下文
-
-
GloVe: 和word2Vec很像,区别是GloVe可以把全局的单词放在一起。用的不多。
-
ElMo: 解决了多义词的问题。有两个LSTM 的 layer, 一个用于单独训练上文,一个用来单独训练下文。 因为两层,所以产生3个embedding。
产生了3个embedding:
-
word embedding
-
1st LSTM layer embedding
-
2st LSTM layer embedding
最后再结合起来:
pre-training: get 3 embeddings (v1,v2,v3) per word
Fine tuning: freeze embeddings and train weights( w1,w2,w3) for (v1,v2,v3) per word
final embeddings is w1v1 + w2v2 + w3v3
-
-
Bert: Bidirectional :双向的,(上下两个方向,再合起来) 。Encoder Representation: word embedding 的一个系统。Transformers:特征采集器。rnn cnn一样采集信息的特征提取器。ElMo的时候,transformer还不是很流行,所以就错失了这个机会。Bert把模型中的所有RNN换成了transformer。更加敏锐的发现单词之间的规律。站在了巨人的肩膀上。
-
基本思想:从上下文推出一个单词。(1. 随机遮挡一个单词,让encoder预测。2.两个句子放一起,encoder判断是否是原文里相邻的两个)
-
结构和ElMo很像(双层双向
-
Transformer instead of RNN - GPT(Generative Pre-training)
-
像完形填空一样。 遮住15% words of doc。
-
80% use [mask]
-
10% use origin word
-
10% use a random word
-
-