NLP pretrained model

2024-08-24 17:58
文章标签 model nlp pretrained

本文主要是介绍NLP pretrained model,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近听了NLP pretrained model的报告,感觉挺有意思的。此处大量参考从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史

Word Embedding

词向量在自然语言处理中有着重要的角色,它将抽象的词语之间的语义关系量化成向量形式。有了良好的词向量,我们就可以做更多的工作。目前构建词向量的方式大体上分成两大类:

  1. 统计方法:通过统计词语之间的关系,定义一些显性隐性的关系,从而构建词向量。例如SVD,LSA等等。这样的做法在逻辑上不理性,效果上也不好。
  2. 语言模型:通过构建语言模型来实现对词向量的学习,在理论上可行的,并且目前大部分的工作就是基于这样的思想。从最开始的神经网络语言模型(NNLM)到后来的Word2vec,GloVe等等。
    他们最大的缺点就是词向量是固定的,也就是语义消除的问题。他们不包含上下文语义信息,因此接下来的模型就是基于解决这个问题展开的。
    在这里插入图片描述
    Word2Vec有两种训练方法,一种叫CBOW,核心思想是从一个句子里面把一个词抠掉,用这个词的上文和下文去预测被抠掉的这个词;第二种叫做Skip-gram,和CBOW正好反过来,输入某个单词,要求网络预测它的上下文单词。

ELMo

ELMO是“Embedding from Language Models”的简称,论文名称为:“Deep contextualized word representation”
在这里插入图片描述
如何预训练:给定一个句子的上文,然后预测下一个缺失的单词;或者句子的后半部分(下文),来预测缺失的单词,即对应上图两个各自独立的不同方向的LSTM

训练完如何用:
在这里插入图片描述

GPT

GPT是“Generative Pre-Training”的简称
在这里插入图片描述
和ELMo的区别

  1. 特征抽取器不是用的RNN,而是用的Transformer
  2. 预训练时采用的目标任务是单向的,即给定上文预测缺失词,而没有设定给下文反过来预测缺失词

训练完如何用:
在这里插入图片描述

BERT

在这里插入图片描述
BERT与ELMo、GPT的区别

  1. 与ELMo比,RNN换成了Transformer
  2. 与GPT比,单向的目标任务改成了和ELMo一样的双向任务
  3. 同时设计了一个Masked LM:我们不是像传统LM那样给定已经出现过的词,去预测下一个词,而是直接把整个句子的一部分词(随机选择)盖住(make it masked),这样模型不就可以放心的去做双向encoding了嘛,然后就可以放心的让模型去预测这些盖住的词是啥。这个任务其实最开始叫做cloze test

训练完如何用:
在这里插入图片描述
BERT中encoding了更多丰富的信息,因此下游任务的网络设计就变得很简单,比如直接加Softmax或者MLP就行了,不再需要复杂的attention等网络结构
在这里插入图片描述

以上四者的关系

在这里插入图片描述

Tiny BERT

Google T5

XLNet

PLM随机排列一些词来预测其他词汇

GPT2.0

把任务信息也包含进文本序列
如翻译任务:
“I am boy” is translated to “我是一个男孩”
然后随机mask掉一些词进行预测pretrain model


参考博客

  • NLP的游戏规则从此改写?从word2vec, ELMo到BERT

这篇关于NLP pretrained model的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1103197

相关文章

MVC(Model-View-Controller)和MVVM(Model-View-ViewModel)

1、MVC MVC(Model-View-Controller) 是一种常用的架构模式,用于分离应用程序的逻辑、数据和展示。它通过三个核心组件(模型、视图和控制器)将应用程序的业务逻辑与用户界面隔离,促进代码的可维护性、可扩展性和模块化。在 MVC 模式中,各组件可以与多种设计模式结合使用,以增强灵活性和可维护性。以下是 MVC 各组件与常见设计模式的关系和作用: 1. Model(模型)

diffusion model 合集

diffusion model 整理 DDPM: 前向一步到位,从数据集里的图片加噪声,根据随机到的 t t t 决定混合的比例,反向要慢慢迭代,DDPM是用了1000步迭代。模型的输入是带噪声图和 t,t 先生成embedding后,用通道和的方式加到每一层中间去: 训练过程是对每个样本分配一个随机的t,采样一个高斯噪声 ϵ \epsilon ϵ,然后根据 t 对图片和噪声进行混合,将加噪

【python 走进NLP】两两求相似度,得到一条文本和其他文本最大的相似度

应用场景: 一个数据框里面文本,两两求相似度,得到一条文本和其他文本最大的相似度。 content source_id0 丰华股份军阀割据发生的故事大概多少w 11 丰华股份军阀割据发生的故事大概多少 22 丰华股份军阀割据发生的故事大概多少 33 丰华股份军阀割据发生的故事大概多少

【Python 走进NLP】NLP词频统计和处理停用词,可视化

# coding=utf-8import requestsimport sysreload(sys)sys.setdefaultencoding('utf-8')from lxml import etreeimport timetime1=time.time()import bs4import nltkfrom bs4 import BeautifulSoupfrom

【java 走进NLP】simhash 算法计算两篇文章相似度

python 计算两篇文章的相似度算法simhash见: https://blog.csdn.net/u013421629/article/details/85052915 对长文本 是比较合适的(超过500字以上) 下面贴上java 版本实现: pom.xml 加入依赖 <dependency><groupId>org.jsoup</groupId><artifactId>jsoup</a

【python 走进NLP】simhash 算法计算两篇文章相似度

互联网网页存在大量的重复内容网页,无论对于搜索引擎的网页去重和过滤、新闻小说等内容网站的内容反盗版和追踪,还是社交媒体等文本去重和聚类,都需要对网页或者文本进行去重和过滤。最简单的文本相似性计算方法可以利用空间向量模型,计算分词后的文本的特征向量的相似性,这种方法存在效率的严重弊端,无法针对海量的文本进行两两的相似性判断。模仿生物学指纹的特点,对每个文本构造一个指纹,来作为该文本的标识,从形式上来

【python 走进NLP】文本相似度各种距离计算

计算文本相似度有什么用? 1、反垃圾文本的捞取 “诚聘淘宝兼职”、“诚聘打字员”…这样的小广告满天飞,作为网站或者APP的运营者,不可能手动将所有的广告文本放入屏蔽名单里,挑几个典型广告文本,与它满足一定相似度就进行屏蔽。 2、推荐系统 在微博和各大BBS上,每一篇文章/帖子的下面都有一个推荐阅读,那就是根据一定算法计算出来的相似文章。 3、冗余过滤 我们每天接触过量的信息,信息之间存在大量

【python 走进NLP】句子相似度计算--余弦相似度

余弦相似度,又称为余弦相似性,是通过计算两个向量的夹角余弦值来评估他们的相似度。余弦相似度将向量根据坐标值,绘制到向量空间中,如最常见的二维空间。 github 参考链接:https://github.com/ZhanPwBibiBibi/CHlikelihood # -*- coding: utf-8 -*-import jiebaimport numpy as npimpor

【python 走进NLP】从零开始搭建textCNN卷积神经网络模型

无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。人工智能教程 1、众所周知,tensorflow 是一个开源的机器学习框架,它的出现大大降低了机器学习的门槛,即使你没有太多的数学知识,它也可以允许你用“搭积木”的方式快速实现一个神经网络,即使没有调节太多的参数,模型的表现一般还

NLP文本相似度之LCS

基础 LCS(Longest Common Subsequence)通常指的是最长公共子序列,区别最长公共字串(Longest Common Substring)。我们先从子序列的定义理解: 一个序列S任意删除若干个字符得到新的序列T,则T叫做S的子序列。 子序列和子串的一个很大的不同点是,子序列不要求连接,而子串要求连接。 两个序列X和Y的公共子序列中,长度最长的那个,定义为X和Y