Glove、Word2vec、ELMO、OpenAI GPT、BERT总结

**Glove:**基于共现矩阵和Glove模型训练得到

Word2vec:2013年谷歌提出的词向量训练工具。基于CBOW(连续词袋模型)或Skip-Gram(跳字模型)训练得到

优势:

  • 无监督训练
  • 训练较快
  • 可以表征词的上下文信息
  • 可以表示语义相似度

劣势:

  • 是一个静态词向量训练工具。不可表示多义词,也就是不能表示动态词向量。
  • word2vec训练是选择滑动窗口进行训练,学习范围不是基于整个句子,学习范围不够大,表征能力有所欠缺
  • Word2vec训练是直接将随机初始化的词向量求和放入全连接层预测标签求损失更新。网络层数不够深,不能处理词的复杂特征(比如句法和语义等

ELMO:Feature-based pre-train。2018年提出。先在大文本语料库上训练一个BILM(双向lstm语言模型),然后加载预训练好的模型和参数,在下游任务的数据集中domain transfer,然后将得到的word embedding和两层lstm的隐藏层加权求和作为词向量,其中权重可在不同的下游任务中自己训练。

优势:

  • 相对word2vec来说可以表示动态词向量
  • 在大文本语料库上预训练,可以处理词的复杂特征(比如句法和语义等)
  • 基于整个句子来学习,表征能力相对word2vec更好

劣势:

  • 双向lstm提取的特征只是简单拼接,这种拼接表征能力不够强
  • lstm相对transformer来说无法很好解决长程依赖问题
  • 训练很慢

OpenAI GPT:Fine-tuning pre-train。2018年提出,不能表示动态词向量。致力于训练更通用的表示,先在大文本语料库上用单向transformer进行训练语言模型,然后加载好预训练好的模型和参数进行微调。微调过程:在下游任务中,将下游任务的数据集输入预训练好的模型中进行标签分类和语言模型辅助微调

优势:

  • 采用transformer而不是lstm,可以很好解决长程依赖问题
  • 计算速度比循环神经网络更快,易于并行化

劣势:

  • 单向transformer,无法利用下文信息

BERT::Fine-tuning pre-train.2018年提出,不能表示动态词向量,致力于训练更通用的表示,先在大文本语料库上用双向transformer训练两个任务:屏蔽语言模型和下个句子预测。然后加载好预训练好的模型和参数进行微调。微调过程:在下游任务中,将下游数据集输入预训练好的模型中进行标签分类

优势:

  • 双向transformer,充分利用上下文信息,很好解决长程依赖问题
  • 易于并行化

劣势:

  • 训练很慢

猜你喜欢

转载自blog.csdn.net/zhdywdl/article/details/88609936