⼤规模⽆监督预训练语⾔模型与应⽤(上)

文章目录

  • 1 单词作为语言模型的基本单位的缺点
  • 2 character level modeling
  • 3预训练句子向量
    • 3.1 skip-thought
    • 3.2 InferSent
    • 3.3 句子向量评价数据集
  • 4 预训练文档向量
  • 5 ELMO

1 单词作为语言模型的基本单位的缺点

单词量有限,遇到没有见过的单词只能以UNK表示。
模型参数量太大。
对于很多语⾔,例如英语来说,很多时候单词是由⼏个subword拼接⽽成的。
可能的解决方案:subword ; wordpiece

2 character level modeling

Ling et. al, Finding Function in Form: Compositional Character Models for Open Vocabulary Word Representation
⽤BiLSTM把单词中的每个字⺟encode到⼀起。

Yoon Kim et. al, Character-Aware Neural Language Models
使用CNN,将一个单词经过模型变成一堆的character。

使⽤subword作为模型的基本单元。subword是将一个单词分成几个子单词

Compositional Morphology for Word Representations and Language Modelling
在这里插入图片描述

imperfection = im + perfect + ion
perfectly = perfect + ly

Byte Pair Encoding
Neural Machine Translation of Rare Words with Subword Units
参考博客:url
1 有一张字母表。所有键盘能打印出来的,都算字母。
2 在训练数据集中,找出每一个单词。
例如:我们原始词表如下:
{'l o w e r ': 2, 'n e w e s t ': 6, 'w i d e s t ': 3, 'l o w ': 5}
每个字母中间加上空格。

3 将一个单词中经常出现在一起的字符,统计出来。key是单词拆分层字母,value是出现次数。
第一步发现 s和t同时出现次数最高,所以单词表中w i d e s t 变成了 w i d e st。(st挨在一起)
接着又发现e st 出现次数最高…
在这里插入图片描述

这样做的好处是可以控制词表大小,迭代一次,增加一个单词。
理论上来讲,所有的单词都可以使用单词表中的词查找出来。例如 happiest 可以等于 h a p p iest。过LSTM的时候,其embedding等于 emb(h), emb(a), emb§, emb§, emb(i), emb(est)。
查找代码实现:huggingface transformers,找bert相关代码。

中文词向量
腾讯有公开的版本。词向量这样的方法不再流行。
Is Word Segmentation Necessary for Deep Learning of Chinese Representations?
大牛 Jiwei Li Shannon.AI
不需要了

3预训练句子向量

文本分类:

  • 文本通过某种方式变成一个向量:wordavg,lstm,cnn
  • 最后是一个linear layer 300维的句子向量
  • 过一个softmax,做分类

训练一个和Resnet一样的东西,能够取代从文本到向量的这一段。然后应用到其他任务中。
有很多人提出了一些实现方法。

3.1 skip-thought

Kiros et. al, Skip-Thought Vectors

skip-thought与skip-gram的思想相似。两个句⼦如果总是在同⼀个环境下出现,那么这两个句⼦可能有某种含义上的联系。用中心句预测上一句和下一句。

如何把句子map成一个向量:compositional model,RNN, LSTM, CNN, WordAvg, GRU

论文中,把中心句用一个GRU作为编码器编码了,使⽤编码器最后⼀个hidden state来表示整个句⼦。然后使⽤这个hidden state作为初始状态来解码它之前和之后的句⼦。用了解码器。前一句和后一句的解码器不同。

解码器在这里是语言模型。编码器的hidden state参与了每一个门的计算。
在这里插入图片描述
我们就可以把encoder当做feature extractor了。

类似的工作还有fastsent。

3.2 InferSent

论文:Supervised Learning of Universal Sentence Representations from Natural Language Inference Data

给定两个句⼦,判断这两个句⼦之间的关系
entailment 承接关系
neutral 没有关系
contradiction ⽭盾
(non_entailment)

3.3 句子向量评价数据集

SentEval : SentEval: An Evaluation Toolkit for Universal Sentence Representations
句子任务:句子分类sentiment;句子相似度SNLI

senteval的framework:使用你的模型将句子变成向量,senteval会帮你评分。

这个方法被GLUE替换了。刷GLUE榜单。

4 预训练文档向量

基本不做了。事实上研究者在句⼦向量上的各种尝试是不太成功的。主要体现在这些预训练向量并不能⾮常好地提升。
模型在各种下游任务上的表现,⼈们⼤多数时候还是从头开始训练模型。
Learning Deep Structured Semantic Models for Web Search using Clickthrough Data:用文档向量和查询向量计算相关性,用搜索结果排序。

5 ELMO

ELMO paper: https://arxiv.org/pdf/1802.05365.pdf

contextualized word vectors:这是word2vector的加强版。
目前发现word2vector效果不够好。
contextualized word vectors真的有用。
Deep contextualized word representations震惊朋友圈的文章。

先说任务名称:
SQuAD:QA的任务 斯坦福大学收集的数据集
SNLI:句子相似性
SRL:
coref:一个名字一个代词,指的是不是同一个主体
NER:命名实体识别
SST-5:斯坦福,情感分类5分类数据集

baseline +ELMO之后分值大幅提升。

ELMO是什么?
是从语言模型学到的embedding。
ELMO有三层。第一层是character CNN,第二层和第三层是LSTM。
EMLO就是对三层做加权平均,得到contextural word vector。
在这里插入图片描述

在这里插入图片描述

使用方式是:
训练文本->ELMO->词向量->下游任务
γ\gammaγsss是可以作为参数,参与训练的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424009.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第一百三十二期:MySQL系列:一句SQL,MySQL是怎么工作的?

当我们在mysql窗口或者数据库连接工具中输入一句sql后,我们就可以获取到想要的数据,这中间MySQL到底是怎么工作的呢? 作者:Java架构学习交流 对于MySQL而言,其实分为客户端与服务端。 服务端,就是MySQL应…

Visual Studio 2005 Tip:编辑项目文件

原文参考自:http://blogs.msdn.com/shawnfa/archive/2006/04/26/582326.aspx很多时候我们需要手动修改VS的项目文件(.csproj/.vbproj),这时大多数人会简单的使用记事本(notepad)打开并编辑。虽然这没什么不…

transformer bert GPT(未完)

原文标题:⼤规模⽆监督预训练语⾔模型与应⽤(中) 文章目录1 transformer1.1 encoder部分1.1.1 Attention定义1.1.2 Multi-head Attention1.1.3 position-wise feed-forward networks1.1.4 positional encoding1.1.5 残差链接1.1.6 layer norm…

spring mvc学习(42):restful的编辑功能实现

上图是目录结构&#xff0c;本节是有问同学的&#xff0c;当好好总结 pom.xml <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.…

那些年用过的Redis集群架构(含面试解析)

引言 今天&#xff0c;我接到了高中同学刘有码面试失利的消息。 他面试的时候&#xff0c;身份是某知名公司的小码农一枚&#xff0c;却因为不懂自己生产上Redis是如何部署的&#xff0c;导致面试失败&#xff01; 人间惨剧&#xff0c;莫过于此。 接到他面试失利的消息&#x…

再谈BERT

三次讲到了BERT。第一次是nlp中的经典深度学习模型(二)&#xff0c;第二次是transformer & bert &GPT&#xff0c;这是第三次。 文章目录1 关于预训练模型1.1预训练概念1.2 再谈语言模型1.3 ELMo1.4 GPT2 BERT2.1 BERT特点2.2架构2.3 预训练任务2.3.1 masked language …

第一百三十三期:MySQL锁会不会,你就差看一看咯

本文章向大家介绍MySQL锁详细讲解&#xff0c;包括数据库锁基本知识、表锁、表读锁、表写锁、行锁、MVCC、事务的隔离级别、悲观锁、乐观锁、间隙锁GAP、死锁等等&#xff0c;需要的朋友可以参考一下。 作者&#xff1a;php自学中心 本文章向大家介绍MySQL锁详细讲解&#xff…

[导入][你必须知道的.NET]第十回:品味类型---值类型与引用类型(下)-应用征途...

摘要: 本文将值类型和引用类型的讨论从应用示例角度来进一步做以延伸&#xff0c;可以看作是对前两回的补充性探讨。我们从类型定义、实例创建、参数传递、类型判等、垃圾回收等几个方面来简要的对上两回的内容做以剖析&#xff0c;并以一定的IL语言和内存机制来说明&#xff0…

云开发新能力,支持 HTTP 调用 API

今天来上班打开电脑&#xff0c;总感觉微信开发文档哪里有点不太一样&#xff0c;研究了半天原来是云开发又多了神级功能——HTTP API&#xff01; HTTP API是什么&#xff1f;简单来说就是通过云开发HTTP API&#xff0c;可以不需要通过微信小程序或云开发控制台&#xff0c;就…

mac下pip install 安装只能选择python2.7的问题

mac自带python2.7。 我用brew install安装过python3:brew install python3 我安装了anaconda3。因为它自带了很多包。所以我无论是用pycharm编程还是jupyter notebook一直都用的是anaconda3带的python。 后来发现用pip install 安装的包&#xff0c;在pycharm工程中用不了。更有…

第一百三十四期:MySQL分页查询方法及优化

在MySQL中&#xff0c;分页查询一般都是使用limit子句实现&#xff0c;limit子句声明如下&#xff1a;LIMIT子句可以被用于指定 SELECT 语句返回的记录数。 作者&#xff1a;青芽草 分页查询方法&#xff1a; 在MySQL中&#xff0c;分页查询一般都是使用limit子句实现&#x…

One2One主键关联的实现

主键关联&#xff0c;产生主键的是A类&#xff0c;与A相同主键的是B类 主键对应的A类&#xff0c;hbm.xml文件与.cs文件均无任何特别&#xff0c;与单表相同 与A相同的主键B类&#xff0c; Hbm.xml文件&#xff1a; <id name"Id"column"ID"type"Gu…

scroll

因为想赶紧开始敲考核任务的&#xff0c;所以就跳着来学 1. window.pageYOffset可以获取滚动了的高度 2.转载于:https://www.cnblogs.com/lijingjaj/p/11206841.html

第一百三十五期:如何模拟一次阿里双11秒杀场景的实现?程序员必看

秒杀活动可以说在互联网上随处可见&#xff0c;从12306抢票&#xff0c;到聚划算抢购&#xff0c;我们生活的方方面面都可以看到秒杀的身影。 作者&#xff1a;IT技术管理那些事儿 秒杀活动可以说在互联网上随处可见&#xff0c;从12306抢票&#xff0c;到聚划算抢购&#xf…

什么是“中台”

“中台”概念起源于军事范畴&#xff0c;其精髓是“大平台支撑精兵作战”&#xff0c;即前线小团队作战&#xff0c;后方建设强大的火力平台和信息化指挥系统机动支撑。企业中台战略随着Supercell、阿里巴巴、腾讯、华为等国内外科技巨头的应用和宣传&#xff0c;近年来在国内被…

第一百三十六期:详细讲解 Redis 的两种安装部署方式

Redis 是一款比较常用的 NoSQL 数据库&#xff0c;我们通常使用 Redis 来做缓存&#xff0c;这是一篇关于 Redis 安装的文章&#xff0c;所以不会涉及到 Redis 的高级特性和使用场景&#xff0c;Redis 能够兼容绝大部分的 POSIX 系统。 作者&#xff1a;平头哥 Redis 是一款比…

知识图谱需要解决的问题

1 知识图谱应用场景 1、数据可视化 2、基于图谱的问答系统 3、基于图谱的关系推理 4、便捷的关系查询&#xff0c;给模型提供更多数据特征 2 知识图谱的构建 非结构化数据源中的实体识别&#xff1a;一般来说是一个sequence labeling的任务。 非结构化数据源中的关系抽取&am…

spring mvc学习(43):处理静态资源

上图是目录结构&#xff0c;本节是有问同学的&#xff0c;当好好总结 pom.xml <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.…

每天学一点flash(14) as3.0 处理xml (官方)

把官方的教程贴上来&#xff0c;我觉得还是不错的说得很有条理&#xff1a; 转载于:https://www.cnblogs.com/guoyiqi/archive/2007/08/21/2069585.html

Spring AOP学习笔记

需明确的几个概念: l 通知(Advice)&#xff1a;用于告知系统将有哪些新的行为。l 切入点(Pointcut):定义了通知应该在应用到那些连接点。l 目标对象(Target)&#xff1a;被通知的对象。l 代理(Proxy)&#xff1a;将通知应用到目标对象后创建的…