2018 BERT:Pre-training of Deep Bidirectional Transformers forLanguage Understanding

摘要

        我们引入一种新的语言表示模型-BERT,代表来自于Transformers的双向编码器表示。与最近的语言表示模型不同(Peters等人,2018a;Radford等人,2018),BERT的设计是从未标签的文本中通过联合调节所有层的左右上下文来预训练深度双向表示,因此,预训练过的BERT模型可以只需一个额外的输出层来微调,从而为各种任务创建最先进的模型,如问题回答和语言推理,而不需要大量特定于任务的体系结构修改。

        BERT概念简单,经验强大,在11个自然语言处理任务上获得了最先进的结果,包括将GLUE评分推至80.5%(7.7%绝对改善),MultiNLI准确率达到86.7%(4.6%绝对改善%,SQuADv1.1问题回答测试F1至93.2(1.5分绝对改善)和SQuADv2.0测试F1至83.1(5.1分绝对改善)。

一、介绍

        语言模型预训练已被证明可以有效地改善许多自然语言处理任务,这些任务包括句子级任务,如自然语言推理,和释义,目的是通过整体分析句子来预测句子之间的关系,以及标记级任务,如命名实体识别和问题回答,模型需要在标记水平上产生细粒度输出。

        现有两种策略将预训练过的语言表示应用到下游任务中:基于特征和微调。如ELMo(使用特定任务的架构,包括预训练的表示作为附加特征)和生成性的预训练的Transformer(引入最小特定任务参数,通过简单微调所有预训练的参数,在下游任务上进行训练),这两种方法都使用单向语言模型学习语言表示。

        我们认为,目前的技术限制了预训练的表示的能力,特别是对于微调方法。主要限制是标准语言模型是单向的,限制了在预训练中可以使用的体系结构。这种限制对句子级任务是次优的,并且在对诸如问答等应用基于微调的标记级任务时可能非常有害,在问题回答中,合并从两个方向的上下文是至关重要的。

        本文我们提出BERT改善基于微调的方法:来自Transformers的双向编码器表示。BERT通过使用“掩蔽语言模型”(MLM)预训练目标,减轻了前面提到的单向性约束,该目标受到Cloze任务的启发(Taylor,1953)。掩蔽语言模型从输入中随机掩蔽一些标记,目标是只基于上下文来预测掩蔽的单词的原始词汇id。与左到右语言模型的预训练不同,MLM目标使表示能够融合左右上下文,这允许我们对深度双向Transformer进行预训练。除了掩蔽语言模型,我们还使用了一个“下一个句子预测”任务,联合预训练句子对表示。

        我们的论文的贡献如下:1.论证了双向预训练对语言表示的重要性,BERT使用掩蔽语言模型来实现预训练的深度双向表示。2. 我们表明,预训练的表示减少了对大量精心设计的特定任务的体系结构的需求BERT是第一个基于微调的表示模型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Sentence-transformers是一种基于深度学习的工具,用于将自然语言句子转换为向量表示。以下是该工具的帮助文档: 1. 安装 要安装Sentence-transformers,请使用以下命令: pip install sentence-transformers 2. 使用 使用Sentence-transformers很简单。只需导入相应的模型和tokenizer,并将文本传递给模型即可。以下是一个示例: from sentence_transformers import SentenceTransformer, util model = SentenceTransformer('bert-base-nli-mean-tokens') sentences = ['This is an example sentence', 'Each sentence is converted to a vector'] sentence_embeddings = model.encode(sentences) 3. 模型 Sentence-transformers包括许多不同的模型,包括基于BERT、RoBERTa和DistilBERT的模型。您可以使用以下命令查看所有可用的模型: from sentence_transformers import SentenceTransformer models = SentenceTransformer.models print(models) 4. 相似度计算 Sentence-transformers还包括一些实用程序函数,可用于计算句子之间的相似度。以下是一个示例: from sentence_transformers import SentenceTransformer, util model = SentenceTransformer('bert-base-nli-mean-tokens') sentences = ['This is an example sentence', 'Each sentence is converted to a vector', 'Sentence embeddings are useful for many NLP tasks'] sentence_embeddings = model.encode(sentences) # 计算第一句话和第二句话之间的余弦相似度 cosine_scores = util.pytorch_cos_sim(sentence_embeddings[0], sentence_embeddings[1]) print(cosine_scores) 5. 参考文献 如果您想了解有关Sentence-transformers的更多信息,请参阅以下文献: - Reimers, N., & Gurevych, I. (2019). Sentence-BERT: Sentence embeddings using siamese BERT-networks. arXiv preprint arXiv:1908.10084. - Devlin, J., Chang, M. W., Lee, K., & Toutanova, K. (2019). BERT: Pre-training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值