Pytorch——BERT 预训练模型及文本分类

BERT 预训练模型及文本分类 介绍

如果你关注自然语言处理技术的发展,那你一定听说过 BERT,它的诞生对自然语言处理领域具有着里程碑式的意义。本次试验将介绍 BERT 的模型结构,以及将其应用于文本分类实践。

知识点

语言模型和词向量

BERT 结构详解

BERT 文本分类

BERT 全称为 Bidirectional Encoder Representations from Transformer,是谷歌在 2018 年 10 月发布的语言表示模型。BERT 通过维基百科和书籍语料组成的庞大语料进行了预训练,使用时只要根据下游任务进行输出层的修改和模型微调训练,就可以得到很好的效果。BERT 发布之初,就在 GLUE、MultiNLI、SQuAD 等评价基准和数据集上取得了超越当时最好成绩的结果。但在深入了解 BERT 结构之前,先需要了解一下什么是语言模型,以及在 BERT 诞生之前人们是如何进行文本向量化的。

语言模型和词向量

语言模型 是用于计算文本序列概率的模型。在自然语言处理的发展中,应用较为广泛的语言模型有两种:统计式语言模型和神经网络语言模型。接下来就将分别介绍一下它们。

统计式语言模型

统计式语言模型(Statistical Language Model)是根据概率分布,计算字词所组成的字符串的几率的模型,即公式 (1)(1):P(ω1,⋯,ωm)(1)(1)P(ω1,⋯,ωm)

简单来说,统计式语言模型就是计算一句话符不符合语言规律。比如,使用语言模型计算出「我今天吃了一个苹果」的概率,一定比「苹果个我今天吃了一」的概率大,所以前者比后者存在的可能性更大。

在具体构建统计式语言模型时,需要使用统计的方法计算公式 (1)(1),为了便于计算,公式 (1)(1)可转化为公式 (2):P(ω1,ω2,…,ωm)=P(ω1)P(ω2|ω1)P(ω3|ω1,ω2)…P(ωi|ω1,ω2,…,ωi−1)…P(ωm|ω1,ω2,…,ωm−1)

但是在实践中,通常文本的长度较长,所以公式 (2)(2) 的估算会非常困难,因此,研究者们根据 马尔可夫链式法则 提出了 N 元模型(N-Gram Model)。于是得到公式 (3):P(ωi|ω1,ω2,...,ωi−1)≈P(ωi|ωi−n+1,...,ωi−1)

在 N 元模型中,一般采用字词的出现频率来估计 N 元条件概率。可以想像,当 N 值非常大时,计算频率时会存在数据稀疏问题,所以 N 的取值一般为 3 。统计式语言模型可以使用在许多自然语言处理方面的应用上,如语音识别、机器翻译、词性标注、句法分析和资讯检索。不过统计式语言模型也有其局限性,IBM 曾进行过一次信息检索评测,发现二元语言模型需要数以亿计的词汇才能达到最优表现,而三元语言模型则需要数十亿级别的词汇。

神经网络语言模型

近年来随着深度学习的发展,研究者们设计出了基于神经网络的语言模型,神经网络语言模型(Nerual Network Language Model)的结构如下图所示:

img

来源

现在来根据上图分析一下模型的结构。首先,最下层的是输入模型的语句所对应的在词表中的编号,然后通过编号在查找表(Look-Up Table)中找到对应的词向量。接下来输入全连接层,激活函数为 tanh,将这一层的输出与原词向量结合输入到最后的全连接层中。最后使用 Softmax 计算在前文语境中下一个词的预测结果。

可以看到,神经网络语言模型主要是使用了全连接层与激活函数代替了统计语言模型的概率计算。在神经网络中有一个副产品:第二个全连接层参数,它就是我们接下来要讲到的词向量。

词向量

受到神经网络语言模型的启发,研究者们发现了进行分布式表示词向量的方法,即通过一个词的上下文语境来表示这个词的含义。并且,对比生成基于稀疏表示(Sparse Representation)的词向量的统计方法,例如词袋模型,神经网络生成的分布式表示(Distributed Representation)词向量获得了更好的效果。

但这个方法也存在弊端,即无法表示多义词,并且这个多义词的含义会受到训练语料的影响。例如,「苹果」这个词,在「我爱吃苹果」和「我喜欢苹果公司」中表示的含义是不同的。但如果在训练语料中,大量的语料表示的是苹果的水果的语义,那训练出的词向量中的「苹果」则会包含水果的语义,结果就会导致模型出现理解偏差。

为了解决这个问题,出现了基于上下文的表示(Contextualized Representation)生成词向量的语言模型,这类模型在对句子进行编码时会结合每个词所在语句的前后文语境,这种基于上下文的词向量就成功解决了区分多义词的问题。BERT 就是这样一种生成基于上下文表示词向量的语言模型,接下来了解一下 BERT 的具体结构。

BERT 结构详解

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwxssf.html