【模型】什么是伯特模型?
双向模型在自然语言处理领域应用已久。这些模型涉及两种文本查看顺序:从左到右和从右到左。BERT的创新在于借助Transformer学习双向表示,这是一个深度学习组件,不同于递归神经网络?(RNN)依赖于序列,可以并行处理整个序列。因此,可以分析更大的数据集,并且可以加快模型训练速度。Transformer可以利用注意力机制来收集关于单词上下文的信息,并用代表上下文的丰富向量对其进行编码,从而同时(而不是分别)处理句子中与其他单词相关的所有单词。该模型可以学习子句段落中的每一个其他单词是如何推导出给定单词的含义的。
以前的单词嵌入技术(如GloVe和Word2vec)在没有上下文的情况下运行,生成序列中每个单词的表示。比如不管是指运动器材还是夜行动物,“蝙蝠”这个词都会用同样的方式表达。ELMo通过双向长时和短时记忆模型?(LSTM),它基于句子中的其他单词引入了句子中每个单词的深层情景表示。但与BERT不同,ELMo分别考虑从左到右和从右到左的路径,而不是将其视为整个情况的单一统一视图。
因为大多数BERT参数致力于创建高质量的上下文单词嵌入,所以该框架非常适合迁移学习。通过用语言建模等自我监控任务(不需要人工标注的任务)训练BERT,我们可以使用WikiText和BookCorpus等大型未标记数据集,这些数据集包含超过33亿个单词。要学习其他任务(如问答),可以用适合相应任务的内容替换并微调最后一层。
下图中的箭头表示三种不同NLP模型中从一层到下一层的信息流。
BERT模型可以更精细地理解表达的细微差别。例如,处理序列“鲍勃需要一些药。他的胃不舒服。能不能给他带点抗酸剂?”伯特更能理解“鲍勃”、“他的”、“他的”都是指同一个人。此前,在查询“如何填写Bob的处方”时,模型可能不理解第二句中引用的人是Bob。应用BERT模型后,模型可以理解所有这些相关点之间的关系。
双向训练很难实现,因为默认情况下,每个词都是在前一个词和下一个词的基础上调整为包含多层模型中预测的词。BERT的开发人员通过屏蔽语料库中的预测词和其他随机词解决了这个问题。BERT还使用一种简单的训练技术来尝试预测给定的两个句子A和B: B和A是顺序的还是随机的。