基于变换器的双向编码器表示技术(英语:Bidirectional Encoder Representations from Transformers,BERT)是用于自然语言处理(NLP)的预训练技术,由Google提出。2018年,雅各布·德夫林和同事创建并发布了BERT。Google正在利用BERT来更好地理解用户搜索语句的语义。
最初的英语BERT发布时提供两种类型的预训练模型:(1)BERTBASE模型,一个12层,768维,12个自注意头(self attention head),110M参数的神经网络结构;(2)BERTLARGE模型,一个24层,1024维,16个自注意头,340M参数的神经网络结构。两者的训练语料都是BooksCorpus以及英语维基百科语料,单词量分别是8亿以及25亿。
BERT在以下自然语言理解任务上的性能表现得最为卓越:
有关BERT在上述自然语言理解任务中为何可以达到先进水平,目前还未找到明确的原因。目前BERT的可解释性研究主要集中在研究精心选择的输入序列对BERT的输出的影响关系,通过探测分类器分析内部向量表示,以及注意力权重表示的关系。
BERT起源于预训练的上下文表示学习,包括半监督序列学习(Semi-supervised Sequence Learning),生成预训练(Generative Pre-Training),ELMo(英语:ELMo)和ULMFit。与之前的模型不同,BERT是一种深度双向的、无监督的语言表示,且仅使用纯文本语料库进行预训练的模型。上下文无关模型(如word2vec或GloVe(英语:GloVe))为词汇表中的每个单词生成一个词向量表示,因此容易出现单词的歧义问题。BERT考虑到单词出现时的上下文。例如,词“水分”的word2vec词向量在“植物需要吸收水分”和“财务报表里有水分”是相同的,但BERT根据上下文的不同提供不同的词向量,词向量与句子表达的句意有关。
2019年10月25日,Google搜索宣布他们已经开始在美国国内的英语搜索查询中应用BERT模型。2019年12月9日,据报道,Google搜索已经在70多种语言的搜索采用了BERT。
在2019年计算语言学协会(英语:Association for Computational Linguistics)北美分会(NAACL(英语:North American Chapter of the Association for Computational Linguistics))年会上,BERT获得了最佳长篇论文奖。