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

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 γ s s s是可以作为参数,参与训练的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值