【数据应用技巧】NLP领域的预训练之风

2024-09-06 04:08

本文主要是介绍【数据应用技巧】NLP领域的预训练之风,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

案例来源:@AI科技评论 @集智翻译组 @人工智能LeadAI

案例地址:https://mp.weixin.qq.com/s/NCLkZqdmqY9lm5BhyEcLXQ;https://www.sohu.com/a/233269391_395209;https://arxiv.org/pdf/1801.06146.pdf;http://wemedia.ifeng.com/64207141/wemedia.shtml;https://baijiahao.baidu.com/s?id=1607601183904724013&wfr=spider&for=pc;http://www.igeek.com.cn/article-1176781-2.html

 

0. 背景:ImageNet带来了数据预训练的风,通过在ImageNet数据集上训练得到的网络权重,可以迁移学习到较少标注集较高标注成本的领域。这股思想也进入了NLP领域,本文介绍几种预训练方法。

目前NLP领域的预训练方法有:

    1)word2vec

    2)ULMFit

    3)ELMo

    4)Open AI Transformer

    对标ImageNet,目前NLP领域的主流标注数据集有:

    1)斯坦福问答数据集(SQuAD):10万多对问答对

    2)斯坦福自然推理语料库(SNLI):57万对英语句子对

    3)WMT:4千万对 英语-法语 翻译句子对

    4)WikiTest-2:维基百科文本

    这些语料库都有一定的缺陷(如人工标注员倾向于通过否定的方式创造新的句子对),不一定同ImageNet一样,可以表征所有自然语言处理的问题空间,削弱了使用这些语料库提取特征的泛化能力

 

1. word2vec

    1)预训练获得词嵌入,然后将词嵌入作为特征输出神经网络的第一层。是一种浅层网络的特征表示方法,类比于cv中对浅层神经元对物体边缘的表示

 

2. ULMFit(Universal Language Model Fine-tuning)

    1)LM pre-training:在大型语料库上训练word的表达

    2)LM fine-tuning:在特定语料上训练word在深层网络中的表达

    3)Classifier fine-tuning:上层分类器

 

3. ELMo(Embeddings from Language Models,深层语境化词表征)

    1)特点:

        a. 输入是字符而不是词,因此可以利用子字词单元来计算有意义的表征,即使对于词典外的词也是如此

        b. 词向量不是一成不变的,而是根据上下文不同而变化。如“我买了富士康生产的苹果”与“我吃了一个富士苹果”中“苹果”并不是一个事物

    2)方法:首先在大文本语料库上预训练了一个深度双向语言模型(biLM),然后把根据它的内部状态学到的函数作为词向量。语言模型的不同层对单词上的不同类型信息进行编码(例如,词语标注由biLSTM的较低层完成预测,而词义消歧在较高层中更好地编码)。 把所有层连接起来,可以自由组合各种文字表征,以提高下游任务的性能表现

 

4. Open AI Transformer

    1)在大规模数据集上用无监督的方式训练一个transformer模型(参:https://blog.csdn.net/allwefantasy/article/details/50663524)

    2)在小规模有监督数据集上进行微调

 

5. NLP预训练展望:

    1)可以用主流语言语料库做预训练,迁移学习到标注资源特别匮乏的小语种

    2)文本中的常识性信息,有一些不能从文本上下文中获得,而是要结合外部额外信息,这也是进一步优化预训练能力的点

 

这篇关于【数据应用技巧】NLP领域的预训练之风的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

90%的人第一步就错了! 顺利登录wifi路由器后台的技巧

《90%的人第一步就错了!顺利登录wifi路由器后台的技巧》登录Wi-Fi路由器,其实就是进入它的后台管理页面,很多朋友不知道该怎么进入路由器后台设置,感兴趣的朋友可以花3分钟了解一下... 你是不是也遇到过这种情况:家里网速突然变慢、想改WiFi密码却不知道从哪进路由器、新装宽带后完全不知道怎么设置?别慌

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

Java 缓存框架 Caffeine 应用场景解析

《Java缓存框架Caffeine应用场景解析》文章介绍Caffeine作为高性能Java本地缓存框架,基于W-TinyLFU算法,支持异步加载、灵活过期策略、内存安全机制及统计监控,重点解析其... 目录一、Caffeine 简介1. 框架概述1.1 Caffeine的核心优势二、Caffeine 基础2

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl