当前位置:   article > 正文

NLP和Transformer学习笔记(一)_nltk和transformers

nltk和transformers

参考文章:Hello! · Transformers快速入门

在此感谢文章作者

学习时建议使用gpt辅助学习,不会的就问gpt,很多知识都在之前的《智能计算机系统》

一书中有详细说明

一.发展历程

上世纪 50 年代到 70 年代,人们对用计算机处理自然语言的认识都局限在人类学习语言的方式上,用了二十多年时间苦苦探寻让计算机理解语言的方法,最终却一无所获。

70 年代,随着统计语言学的提出,基于数学模型和统计的方法开始兴起,基于统计方法的核心模型是“通信系统加隐马尔可夫模型”,其输入和输出都是一维的符号序列,而且保持原有的次序(例如语音识别、词性分析),但是面对输出为二维树形结构的句法分析以及次序会有很大变化的机器翻译等任务,这种方法就难以解决了

80 年代以来,随着硬件计算能力的不断提高,以及互联网发展产生的海量数据,越来越多的统计机器学习方法被应用到自然语言处理中。

2006 年,随着 Hinton 表明深度信念网络可以通过逐层预训练策略有效地训练,基于神经网络和反向传播算法进行训练的深度学习方法开始兴起,越来越多之前由于缺乏数据、计算能力以及有效优化方法而被忽视的神经网络模型得到了复兴。

2017 年,Google 在前人工作的基础上提出了 Attention 注意力模型,为大家提供了另一种编码思路,论文中提出的 Transformer 结构更是引导了后续 NLP 模型的发展。

二.经典模型

1. N 元 (N-Gram) 模型

20 世纪 70 年代IBM 实验室的 Jelinek提出一个文字序列是否合理,就看这个句子 出现的概率 如何,出现概率越大的句子越合理任意一个词语 的出现概率都取决于它前面出现的所有词(理论上也可以引入后面的词语共同预测单词的出现概率)。

但是,随着文本长度的增加,条件概率 会变得越来难计算,因而实际计算时会假设每个词语  的出现概率仅与它前面的 n-1 个词语有关,这种假设被称为马尔可夫假设,对应的语言模型被称为 N 元 (N-Gram) 模型.

优点:为了研究语音识别问题换了一个思路,用一个非常简单的统计模型就解决了这个问题。

局限:但是在在自然语言中,上下文之间的相关性可能跨度非常大,比如从一个段落跨到另一个段落,这是马尔可夫假设解决不了的。此时就需要使用 LSTM、Transformer 等模型来捕获词语之间的长程依赖性 (long distance dependency) 了。

2.NNLM

2003 年,Bengio 提出了神经网络语言模型 (NNLM, Neural Network Language Model),NNLM 的思路非常接近于前面介绍的统计语言模型,它通过输入前面的 n−1 个词来预测当前词。

首先通过查表得到要预测词语前面n−1 个词对应的词向量词向量(Word Vectors)是自然语言处理领域中一种常用的技术,用于将单词表示为向量形式,以便计算机能够更好地理解和处理文本数据。词向量的主要思想是将单词映射到一个高维向量空间中,使得语义相近的单词在向量空间中距离较近,而语义不相近的单词距离较远。 然后将这些词向量拼接后输入到带有激活函数的隐藏层中,最后通过 Softmax 函数预测概率。

优点:NNLM 不仅能够能够根据上文预测后接的词语是什么,同时获得了所有词语的词向量 (Word Embedding)。

局限:严格参照统计语言模型设计每个词语的出现概率只与它前面的词语有关结构上不够自由具有语言模型的固定思维

3.Word2Vec

 2013 年 Google 提出的 Word2Vec,这个模型提供的词向量在很长一段时间里都是 NLP 模型的标配

Word2Vec 的模型结构和 NNLM 基本一致,只是训练方法有所不同,分为 CBOW (Continuous Bag-of-Words) 和 Skip-gram 两种。其中 CBOW 使用待预测词语周围的词语  来进行预测 该词语,Skip-gram 则正好相反,它使用当前词语 来预测它的周围词语。

优点:它提出的同时通过上文和下文来预测当前词语的 CBOW 训练方法,打破了语言模型的固定思维,为后续一系列神经语言模型的发展奠定了基础。

局限:多义词问题。一词多义正是语言灵活性和高效性的体现,但 Word2Vec 却对此束手无策,无论词语的上下文如何,Word2Vec 对于一个词语只能提供一个词向量,即多义词被编码到了完全相同的参数空间。

解决方法:上世纪 90 年代初,Yarowsky 就给出了一个非常简单又有效的解决方案——运用词语之间的互信息即通过上下文来判断这个词语当前表达的语义。

4.ELMO

2018 年 ELMO 模型的提出,直接在词向量端给出了一种简洁优雅的解决方案。

具体地,ELMO 首先利用语言模型进行预训练,然后在实际使用时,从预训练网络中提取各层的词向量拼接起来作为新的词向量。ELMO 采用双层双向 LSTM 作为网络结构,从两个方向编码词语的上下文信息来进行预测,相当于将编码层直接封装到了语言模型中。训练完成后不仅学习到了词语的词向量,还训练好了一个双层双向的 LSTM 网络结构。对于每个词语,可以从第一层 LSTM 中得到包含句法信息的词向量,从第二层 LSTM 中得到包含语义信息的词向量……最终通过加权求和就可以得到每一个词语最终的词向量。

优点:ELMO 会自动地根据词语的上下文信息去动态调整词语的词向量,解决了多义词问题。

局限:首先它使用 LSTM 作为编码器,而不是特征提取能力更强的 Transformer,其次直接通过拼接来融合双向抽取特征的方法也不够优美。

4.1.GPT

优点:将 ELMO 中的 LSTM 更换为 Transformer 

局限:追随了 NNLM 的脚步只通过词语的上文来进行预测,这在很大程度上限制了模型的应用场景。例如阅读理解这种任务,如果预训练时候不把词语的下文嵌入到词向量中,会白白丢掉很多信息。

5.BERT

2018 年底随着 BERT 的提出,这一阶段神经语言模型的发展终于出现了一位集大成者,它在 11 个 NLP 任务上都达到了最好性能。

优点:BERT 在模型大框架上采用和 GPT 完全相同的两阶段模型,首先是语言模型预训练,然后使用微调模式解决下游任务。BERT 不仅像 GPT 模型一样采用 Transformer 作为编码器,而且在预训练阶段采用了类似 ELMO 的双向语言模型。BERT 不仅编码能力强大,而且对各种下游任务,Bert 都可以简单地通过改造输入输出部分来完成。

局限:由于 BERT 构建的是双向语言模型,因而无法直接用于文本生成任务。

5.1.MASS

MASS(Masked Sequence to Sequence Pre-training)是一种用于自然语言处理任务的预训练模型,由微软提出。MASS与传统的语言模型预训练方法(如BERT)不同,其主要目标是解决机器翻译中的预训练问题。

在MASS中,模型通过使用自编码器来进行预训练。具体而言,输入序列被随机mask(部分被隐藏)后,模型需要根据上下文信息来预测被mask的部分。这样的预训练过程可以帮助模型学习双语之间的对齐和语义表示,从而在翻译任务中取得更好的性能。

MASS的预训练包括两个阶段:

1.Masked Language Model(MLM):类似于BERT的预训练方式,模型需要根据上下文信息来预测被mask的单词。

2.Masked Sequence to Sequence Pre-training:该阶段是MASS特有的部分,模型需要根据被mask的源语言序列来生成目标语言序列,同时保留输入序列的其他部分。这有利于模型学习双语之间的语义对应关系。

优点:MASS模型在机器翻译任务上表现出色,能够有效地改进翻译质量。同时,MASS的预训练框架也为其他基于预训练的自然语言处理任务提供了新的思路和启发。

5.2.ALBERT

ALBERT(A Lite BERT)是由Google提出的一种基于BERT的轻量级预训练模型。ALBERT旨在解决BERT在参数规模庞大、训练和推理效率低下等方面的挑战,通过一系列创新来提高预训练模型的效率和性能。

ALBERT相较于BERT的主要改进和特点包括:

1.参数共享机制:ALBERT使用跨层参数共享的方式,将原本每一层独立的参数共享给所有层,从而显著减少了参数数量,提高了模型的效率。

2.Factorized Embedding Parameterization:ALBERT采用了分解的嵌入参数化方式,将嵌入层的参数拆分成两部分,进一步降低了参数规模。

3.Sentence-order prediction(SOP)任务:ALBERT引入了SOP任务,要求模型根据输入的两个句子来判断它们在原始文档中的顺序,从而帮助模型学习文本中更深层次的语义关系。

4.更轻量级的结构:通过参数共享和其他优化策略,ALBERT在保持高性能的同时,大大减少了参数量,提高了训练和推理的效率。

5.3.RoBERTa

RoBERTa(A Robustly Optimized BERT Pretraining Approach)是由Facebook提出的一种基于BERT的预训练模型。它旨在通过优化BERT的预训练方法和超参数设置来提高模型的性能和鲁棒性。

RoBERTa相较于BERT的主要改进和特点包括:

1.动态masking:RoBERTa采用了动态掩码长度的方式,即每次迭代时都会随机选择掩码长度,以增加输入文本的多样性,有助于提高模型的泛化能力。

2.更大的训练数据:RoBERTa使用了更大规模的文本数据进行预训练,包括网页文本和BookCorpus等,以提升模型对语言的理解能力。

3.移除NSP任务:RoBERTa移除了原始BERT中的下一句预测(Next Sentence Prediction, NSP)任务,而专注于Masked Language Model(MLM)任务,这有助于模型更好地学习文本的表示。

4.训练策略的优化:RoBERTa采用了更长的训练时间、更大的批量大小和更小的学习率等优化策略,以提高模型的性能和鲁棒性。

5.4.UNILM

UNILM(Unified pre-trained Language Model)是一种多层Transformer网络,它在大量文本上进行了联合的预训练,并针对三种类型的无监督语言建模目标进行了优化

UNILM旨在通过集成多种不同任务和多模态信息,实现对多种自然语言处理任务的统一建模,提高模型的泛化能力和适用性。

UNILM相较于传统的单一任务的预训练模型,如BERT,具有以下特点和优势:

1.多任务学习:UNILM同时考虑了多个任务的预训练目标,包括单句子的单项填空、双句子关系判断、下游任务指导等,从而使得模型学习到更加丰富的语言表示。

2.多模态信息融合:UNILM将文本信息与其他模态信息(如图像、视频等)进行融合,实现3.多模态信息的联合建模,有助于提升模型在多模态任务上的性能。

4.双向和单向编码器结构:UNILM引入了双向和单向编码器结构,同时考虑了上下文信息和未来信息,帮助模型更好地理解文本序列的语义。

5.跨领域应用:UNILM的设计目标是实现跨领域、多模态的通用语言模型,可以适用于多种自然语言处理任务和应用场景。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/725790
推荐阅读
相关标签
  

闽ICP备14008679号