BERT 应用

2025年7月10日 | 阅读 6 分钟

引言

在本文中,我们将讨论 BERT 的应用。Transformer 已席卷了自然语言处理(NLP)领域。目前的研究已证明,Transformer 及其衍生架构(如 BERT、RoBERTa、XLNET)已被用于解决许多问题——情感分类、欺诈检测、神经机器翻译或问答系统。虽然这一切都是真实的,但其中仍存在一些神秘感和困惑。一些最常被问到的问题是:(1) 是否应该仅使用 CLS token 或所有 token 的输出来表示句子?(2) 微调模型是否会提高准确性?如果您问过这些问题,或者刚开始使用 BERT,那么本文就是为您准备的。我们将首先介绍 BERT 模型,然后尝试通过实验来解决这些问题。

BERT 是什么意思?

BERT 是“Transformer 的双向编码器表示”的缩写。它是 Transformer 的一种变体,我们只保留编码器部分,去掉解码器部分。发布时,它在 11 项自然语言处理任务上取得了行业领先的成果。BERT 的主要动机是解决现有单向语言模型的局限性。这意味着它们仅考虑从左到右的文本进行句子级推理。而 BERT 允许 token 在自注意力层的两侧进行交互。

BERT Applications

这是其整体性能高的主要原因之一。BERT 最吸引人的特点是它非常容易应用于大量的 NLP 任务。其思想是采用预训练的 BERT 模型,然后对其进行微调以适应特定任务。预训练模型在大型语料库上以无监督的方式进行训练。之后,模型从大量的文本语料库中学习 token 的通用表示。这使得以后更容易对其他 NLP 任务进行微调,因为模型已经预先学习了关于语言、语法和语义表示的丰富上下文。

训练 BERT 本身就是一种令人兴奋的范式。原始论文提出了两种无监督的训练方法:

掩码语言模型 (MLM):其中输入 token 的一定比例(15%)被随机掩码;然后模型尝试预测这些被掩码的 token。为此,他们创建了一个特殊的 token [MASK]。

下一句预测 (NSP):其中选择句子 A 和句子 B,使得 50% 的情况下,B 是紧随 A 的真实下一句(标记为 IsNext),50% 的情况下,它是语料库中的一个随机句子(标记为 NotNext)。模型被训练来预测第二个句子是否跟随第一个句子。最后,我们应该了解的关于 BERT 的是模型的输入和输出。因此,与 NLP 模型一样,BERT 将句子(在分词方向上)作为输入。由于它只使用 Transformer 的编码器部分,因此会产生两个有趣的输出;pooler_output 是 [CLS] 特殊 token 的嵌入。在许多情况下,它被认为是整个句子的有效表示。

last_hidden_state 包含来自最后一个隐藏状态的句子中所有 token 的最终嵌入。我们可以应用不变置换技术(例如 max、mean 或 sum)将嵌入组合成单个句子表示。

BERT 的实际应用?

BERT(双向编码器 Transformer 表示)是自然语言处理领域中最先进、最出色的预训练模型发现。这种学习模型的转变使得针对特定领域(科学/技术/商业/等)人类兴趣的 NLP 任务变得更容易进行微调。本文旨在研究 BERT 的不同应用实例,以及如何通过应用它来解决 NLP 问题。

BERT 有什么用?

在微调过程中,预训练模型被馈送到标记数据中,以用于特定的 NLP 任务,从而对所有 BERT 参数进行微调。经过微调过程后,每个 NLP 任务都会有一个特定的 BERT 模型。因此,正如我们所见,BERT 的实际可用性主要归功于以下特性:

  1. 预训练的迁移模型,随时可用。无需从头开始训练。
  2. 微调过程可以使模型适用于诸如问答、命名实体识别、自动摘要等特定 NLP 任务。
  3. 微调速度非常快。

BERT 应用

以下是一些使用 BERT 模型开发的应用程序:

1. 谷歌智能搜索

通过 BERT 研究,谷歌现在能够理解搜索文本的意图并提供相关结果。这成为可能,因为 BERT 使用 Transformer 并发处理多个 token 和句子,并具有最大的自注意力。

2. 文本摘要或 BERTSUM

BERT 可用于文本摘要,并支持用于抽取式和生成式模型的流行框架。抽取式摘要系统通过识别(并最终连接)文档中最重要的句子来创建摘要。神经网络编码器创建句子表示,然后分类器预测哪些句子应该被选为摘要。

而生成式摘要则是一种通过生成新句子来创建摘要的方法,这些新句子是通过改写或使用新词生成的,而不仅仅是提取重要句子。用于生成式摘要的神经网络方法将该任务概念化为一个序列到序列的问题。

3. BioBERT

随着生物医学文献数量的快速增长,生物医学文本挖掘变得越来越重要。随着自然语言处理(NLP)的进步,从生物医学文献中提取有价值的信息在研究人员中越来越受欢迎。深度学习推动了有效生物医学文本挖掘模型的开发。然而,由于通用领域语料库与生物医学语料库的词语分布存在差异,直接将 NLP 的进步应用于生物医学文本挖掘常常会产生不令人满意 results。

BioBERT 是一个在大型生物医学语料库上预训练的特定领域的语言表示模型。BioBERT 在以下三项代表性生物医学文本挖掘任务上显著优于它们:生物医学命名实体识别(F1 分数提高 0.62%)、生物医学关系提取(F1 分数提高 2.8%)和生物医学问答(MRR 提高 12.24%)。评估结果表明,在生物医学语料库上预训练 BERT 有助于识别复杂的生物医学文本。

4. ClinicalBERT

该 BERT 模型通过上下文文本/临床笔记集成来处理临床笔记和医院再入院预测。ClinicalBERT 揭示了人类尝试过的医学概念之间的高质量关系。Clinical Bert 使用出院摘要和 ICU 前几天的评分来预测基线的 30 天再入院率。它节省了金钱、时间和生命。

5. SciBERT

随着时间的推移,临床文献的指数级增长使得 NLP 成为大规模知识提取和这些文档的机器学习的重要工具。SCIBERT 专注于与医学 NLP 相关的任务,而不是通用语言模型。该模型是通过从 Semantic Scholar 提取的 140 万篇论文开发的。语料库包括 18% 的计算机科学论文和 82% 的广泛医学领域论文。SciBERT 在多项医学和临床 NLP 任务上优于 BERT。

6. 问答和聊天机器人

BERT 在 Stanford Question Answering Dataset (SQuAD) v1.1 测试中取得了 93.2 分(绝对提高 1.5 分),在 SQuAD v2.0 测试中取得了 83.1 分(绝对提高 5.1 分)。SQuAD 是一个阅读理解数据集,包含由外包工人向一组维基百科文章提出的问题,其中每个问题的答案是相应段落中的文本片段或范围,或者可能没有答案(v2.0)。BERT 的相同功能可以扩展到作为小型到大型文本的聊天机器人。

结论

因此,在本文中,我们将讨论 BERT 的应用。正如我们在之前的文章中所述,BERT 可用于多种 NLP 任务,例如文本分类或句子分类、句子对之间的语义相似性、带段落的问答项目、文本摘要等。然而,由于其双向信息检索特性,BERT 不能用于某些 NLP 任务。某些任务是机器翻译、文本生成器、通用问答项目等。它需要从两侧获取信息。此应用通常通过对我们的项目微调 BERT 模型来完成。微调有点类似于迁移学习,即我们采用一个预训练模型,并在我们的小数据集上对其进行重新训练,冻结一些特定层并添加一些新层。但是,在微调中需要有一个关于添加或冻结层的概念。我们只是在类似的数据集上训练模型;这是一种迁移学习。


下一主题全局优化导论