机器是如何理解语言的?就像图像由像素组成,像素由RGB数值表示。我们没有办法让机器直接理解语言,需要将它们转换成机器能明白的东西,比如由数字组成的向量,为什么是向量?词语的意义之间是有关联的,距离可以表示词语词之间的关系,比如苹果和梨都是水果,它们之间的距离就会比苹果和猫咪更近,这些向量是如何得到的?
机器学习的出现,让我们不必一一为单词设计向量,而是将收集好的句子文章等数据交给模型,由它为单词们找到最合适的位置。BERT就是帮助我们找到词语位置的模型之一,它的诞生源于transformer。既然Encoder能将语言的意义很好地处理出来,那么直接将这部分独立,也许能很好地对语言做出表示。除了结构,人们还为BERT设计了独特的训练方式,其中之一是有遮挡的训练,在收集到的语料中会随机覆盖15%的词汇让BERT去猜这些字是什么?此外还会输入成组的句子,由BERT判断两个句子是否相连。前者让BERT更好的依据语境做出预测,后者让BERT对上下文关系有更好的理解。在完成不同的自然语言处理任务时,需要将已经训练好的BERT依据任务目标增加不同功能的输出层联合训练,比如文本分类就增加了分类器,输入句子输出类别。阅读理解则是增加了一个全连接层,输入问题和文章输出答案的位置。BERT只需根据任务做出微调即可。