浅谈BERT

浅谈BERT

本文将主要介绍BERT模型以及BERT相关的一些东西。

过去在NLP的领域通常是一个任务对应一个model,但是今年来已经发展到可以让机器先了解人类的语言再来解决各式各样的NLP任务。可以通过给机器大量的文字,让机器读懂,这个过程叫预训练(pre-train),然后再根据特定的任务给机器特定的有限的有关数据对pre-train的model进行微调(fine-tune)。浅谈BERT_第1张图片
这种pre-train的做法类似于人类学习一门语言的过程,比如评价一个人的英语水平往往可以通过考托福,雅思等,做一些列的口语,写作,听力各种各样的题型。但是在学习英语的过程中却不是靠做题,而是靠阅读大量的文字了解了每一个单词的意思,然后针对不同的体型采取相应的方法就可以通过考试了。那这些pre-train的model里面最知名的就是BERT了。

1. What is pre-trained model?

其实在BERT,ELMO出现之前就已经有pre-trained model了,总的来说就是给每一个词一个embedding vector,vector的某一些维度会代表某些语义相关的意思,寓意相近的词之间的vector的相似度会比较高。这样的pre-trained model就是输入一个token然后得到一个embedding(把vector和token对应到一起的表是提前训练好的)这样的技术有很多像是Word2vec,Glove等。

这种model的一个缺点就是如果有新加入的词汇则无法找到对应的embedding。对于英文来说,一种解决方式是把token换成字母,来训练字母对应的embedding。这种做法最出名的叫FastText。
浅谈BERT_第2张图片
对于中文来说,由于中文的特殊性(不同的偏旁部首有不同的意思)可以把方块字当作图片来处理,用CNN的model来处理。浅谈BERT_第3张图片
然而这种模型最大的缺点就是,不管在什么样的语境下,同样的token得到的一定是同样的embedding,没有考虑上下文的信息。比如说“单身狗”的“狗”和“养只狗”的“狗”明明意思不同但是得到的却是一样的embedding。

你可能感兴趣的:(笔记,自然语言处理,nlp)