【经典论文阅读20】BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

本文全面解析BERT模型,涵盖其架构、预训练方法及应用,包括特征抽取、fine-tuning、与word2vec对比,以及如何利用BERT进行词嵌入。

0.前言

  • 文章来源: CSDN@说文科技
  • 本文总结了初学者对BERT的一些常见疑惑
  • BERT 的五个关键词: Pre-training、Deep、Bidirectional、Transformer、Language Understanding

1. Bert是什么?

首先要明白什么是预训练模型【这个我后面再更~】。在这个基础上,我们来看 Bert 模型。

1.1 定义

  • 标志BERT出身的那篇论文的标题是BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding论文链接
  • BERT( Bidirectional Encoder Representation from Transformers,其中文译名应该就是“基于transformers 的双向(深度)编码表示”)

Bert is a method of pretraining language representations

  • BERT是首个无监督的、深度双向预训练NLP模型,仅使用纯文本语料库进行训练。

1.2 特点

  • Bert最关键两点,一点是特征抽取器采用Transformer;第二点是预训练的时候采用双向语言模型。
  • BERT 是从大量的文本中经过半监督训练得来

2.BERT可以做什么?

You can either use these models to extract high quality language features from your text data, or you can fine-tune these models on a specific task (classification, entity recognition, question answering, etc.) with your own data to produce state of the art predictions.

主要可以用于两种用途,也就是:

  • extract feature
  • fine-tuning model

3.Embedding 有什么用?

First, these embeddings are useful for keyword/search expansion, semantic search and information retrieval.
【即使没有关键字重叠,还是可以找出比较相似的句子】

Second, and perhaps more importantly, these vectors are used as high-quality feature inputs to downstream models.
这句话说的意思就是:使用Bert得到的embedding可以为下游任务提供高质量的特征。

4.BERTword2vector

(1)word2vec 相关的内容可以参考我的另外一篇文章。word2vec 的思想是非常重要的,很多模型的背后都有这种思想。所以还需要认真阅读。
(2)这两者都是nlp发展路程上的一个里程碑,只不过word2vec很少出现在当下的论文里,而bert尚流行于世。但是二者的思想都是相通的,都是想将文本的特征映射到一个高维的向量中,并尽可能完整地保留所有特征(实际上这是很难的)。

4.1 二者的关系

BERTword2vec的高级进化版,进化的后果【用进废退】就是:BERT广泛成长,word2vec逐渐废弃。

4.2 二者的区别

Bertword2vec 的区别是:word2vec中每个单词都有一个固定的表示,而与单词出现的上下文无关;bert生成的单词表示是由单词周围的单词动态形成的。

  • 为什么使用word2vec得到的embedding 与上下文无关?
    传统的word2vec包括很多种方法,比如:cbow,skip-gram 等都是常用的基础算法。这些算法都会有一个固定大小的词表,与这个词表对应有一个相应大小的矩阵(这个矩阵可训练,根据预先得到的数据训练,训练好就停止了)。如果需要某个词的embedding,就去这个词表矩阵中获取就可以了,所以说传统的word2vec得到的向量是固定的,那么以后无论在什么上下文中得到的向量都是相同的,所以说是上下文无关。

4.3 Bert 也做 word embedding吗?

Bert 有自己的word to vector方法,可以将其看做是embed

### 关于BERT模型论文下载与阅读 #### BERT模型的核心概念 BERTBidirectional Encoder Representations from Transformers)是一种基于Transformer架构的预训练语言表示模型[^3]。它通过引入掩码语言模型(Masked Language Model, MLM)和下一句预测任务(Next Sentence Prediction, NSP),实现了深度双向的语言理解能力。 #### 论文获取方式 BERT模型的原始论文由Google Research团队发布,题目为《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》。可以通过以下途径获取该论文: 1. **arXiv**: 原始版本通常可以在arXiv网站上找到,地址为 https://arxiv.org/abs/1810.04805。 2. **学术搜索引擎**: 使用Google Scholar或其他学术资源平台搜索“BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”,可以找到PDF链接。 3. **官方文档**: Google AI Blog提供了详细的背景介绍和技术细节[^5]。 #### 阅读建议 为了更好地理解和掌握BERT模型的内容,可以从以下几个方面入手: - **基础理论**: 学习Transformer架构的工作原理以及其在自然语言处理中的应用[^1]。 - **核心创新点**: - 双向语言建模的重要性及其相对于单向模型的优势[^4]。 - 掩码语言模型的具体实现机制。 - **实验部分**: 查看作者如何验证模型的有效性,并了解其在不同NLP任务上的表现提升情况。 以下是Python代码片段用于加载并测试已有的预训练好的BERT模型: ```python from transformers import BertTokenizer, BertModel tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = BertModel.from_pretrained('bert-base-uncased') text = "Replace me by any text you'd like." encoded_input = tokenizer(text, return_tensors='pt') output = model(**encoded_input) print(output.last_hidden_state) ``` 此脚本展示了如何利用Hugging Face库快速导入标准版的小规模BERT模型来进行实际操作演示。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

说文科技

看书人不妨赏个酒钱?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值