【数据应用技巧】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

相关文章

SpringBoot使用GZIP压缩反回数据问题

《SpringBoot使用GZIP压缩反回数据问题》:本文主要介绍SpringBoot使用GZIP压缩反回数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot使用GZIP压缩反回数据1、初识gzip2、gzip是什么,可以干什么?3、Spr

Python结合PyWebView库打造跨平台桌面应用

《Python结合PyWebView库打造跨平台桌面应用》随着Web技术的发展,将HTML/CSS/JavaScript与Python结合构建桌面应用成为可能,本文将系统讲解如何使用PyWebView... 目录一、技术原理与优势分析1.1 架构原理1.2 核心优势二、开发环境搭建2.1 安装依赖2.2 验

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Java Optional的使用技巧与最佳实践

《JavaOptional的使用技巧与最佳实践》在Java中,Optional是用于优雅处理null的容器类,其核心目标是显式提醒开发者处理空值场景,避免NullPointerExce... 目录一、Optional 的核心用途二、使用技巧与最佳实践三、常见误区与反模式四、替代方案与扩展五、总结在 Java

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

SpringShell命令行之交互式Shell应用开发方式

《SpringShell命令行之交互式Shell应用开发方式》本文将深入探讨SpringShell的核心特性、实现方式及应用场景,帮助开发者掌握这一强大工具,具有很好的参考价值,希望对大家有所帮助,如... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1

MySQL 分区与分库分表策略应用小结

《MySQL分区与分库分表策略应用小结》在大数据量、复杂查询和高并发的应用场景下,单一数据库往往难以满足性能和扩展性的要求,本文将详细介绍这两种策略的基本概念、实现方法及优缺点,并通过实际案例展示如... 目录mysql 分区与分库分表策略1. 数据库水平拆分的背景2. MySQL 分区策略2.1 分区概念

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2