李宏毅机器学习(八)ELMo、BERT、GPT、XLNet、MASS、BART、UniLM、ELECTRA、others

怎么得到这个pre-train好的模型呢?

Pre-training by Translation(翻译)

Context Vector(CoVe)
Embedding的words必须要考虑上下文! 有一个方法是用基于Translation的Model! 就是用Translation这个任务间接的训练model! 为什么不用Summary等任务作为工具呢,因为summary是提取某些word的重要性,那么不能做到对所有的word一视同仁! 同时该任务的缺点也在于需要大量的成对的数据,我们不可能有很多的数据!

在这里插入图片描述

Self-supervised Learning

就是我们不再用无监督作为名字了,而是使用自监督学习! 自监督就是用输入的一部分来预测自己的另一部分! 是没有标记的哦!

Predict Next Token

我们不能让W2W_2W2学习到不应该学习的知识,如果将W2W_2W2放入到h1h_1h1,那么就可以预测出W2W_2W2。而且右边就是整个的预测过程!

LM、ULMFiT、ELMo

都是使用的是LSTM!

GPT、GPT-2、Megatron、Turing NLG

使用的是自监督! 其中要留心attention的范围! 有限制的!
比如我们不能让模型看到后面的答案! 所以取attention的时候只能是前面所有!而不是整个句子!

这有什么应用呢?
就是自己编一个文章! 比如独角兽新闻! GPT-2!
我们需要考虑左边的上下文,但是有右边的上下文呢!

Predict Next Token-Bidirectional

ELMO! 双向考虑! 但是也有问题,你这样两个LSTM是单独处理的,你只是考虑了单边,而不是整个句子! 两个LSTM也是单独训练的!

Masking Input

将某个Token进行Mask或者Random Token! 我们在学习W1W_1W1的时候要考虑W3W_3W3W4W_4W4,相反W3W_3W3的时候也是这样! 由于W2W_2W2是被盖住了,所以不用担心学习到W2W_2W2的信息! 最终的目的就是学习到W2W_2W2

CBOW
和BERT不同: 左右看的范围是有一个Window,而BERT是有多少就计算多少! 第二个不同: BERT在Encoder之后输出Vector后可以连接头不同的向量,但是在CBOW中是直接相加的!
总结一下就是CBOW和BERT的训练方式基本都是一样的,只是模型的复杂度没有那么高!

Is random masking good enough?
怎么覆盖呢? 比如黑龙江中,我们盖住“龙”字!还是整个黑龙江
两种不同的mask:

  • Whole Word Masking(WWW)
    WWW: 也就是把整个单词遮盖住! 而不是单个字!
    而phrase-level是短语,多个单词;
    Entity-level呢,则是更特定,就是特定的地名、组织名等! 也就是我们ERNIE

SPanBert
按照几率该不同长度的Token!
提出的方法一般不可能在所有具体的方法都好! 下面的表格中,横坐标是不同的具体的任务!

  • SpanBert——Span Boundary Objective(SBO)
    一种新的训练方法!
    这里我们认为一个跨度两边的Word Embedding就可以包含这个跨度所有的信息! 为什么呢? 之后再说,在coreference中会更加详细的介绍!
    我们通过两边的Word Embedding通过SBO来预测出一个数字,该数字代表了预测出了跨度中第几个单词!

XLNet

Transformer-XL:
要解决的问题: 作者声称是发现了BERT的缺点,就是你只会预测顺序的,不会预测倒序的! 比如New York City! 你盖住York他可以预测,但是如果盖住New ,没把饭根据York来预测New!
怎么理解XLNet呢? 可以从两个方向来看:
第一个方向是language Model的方向:
predicts token的角度来看,你只能看看到left content!
而Transformer-XL中,打乱句子!

第二个方向是BERT的方向:
BERT中我们可以自定义窗口来对mask进行预测!

但是在XLNet中声明的是,不给Model看mask Token! 但是你还是要告诉model要预测哪一个位置的word! 后面的详细的自己看论文喽 !

BERT cannot talk?

给出部分的句子来预测下一个token!在LM-style中是可以的,但是BERT中我们训练的时候看的是左右,现在你给出左边,那么右边没有给,所以效果不会很好

但是上面的讨论只是局限在autoregressive model! 我们在生成句子时,是从左至右的!
non-autoregressive,不用从左向右生成!

MASS/BART
由于BERT泛化能力比较差,所以它可能不太适合作为seq2seq的pre-trian model! 所以如果是Seq2Seq任务,那么BERT可能只能充当encoder的任务! decoder的地方你可能没有pre-train到! 那么有没有办法去pre-trian一个seq2seq的模型呢? 是有的! 思想是cycle-loss,也就是经过decoder后和encoder有一样的输出! 但是也有一个问题,如果是这样的话模型是学习不到什么的,因为可能decoder只是复制一下输入! 所以需要将输入破坏! 有两种方法: MASS/BART

MASS

和BERT的思想类似。
尝试了很多方法,最好的方法是Text Infilling!

UniLM:
该模型可以充当各种模型! encoder、decoder或者是

Replace or Not?
ELECTRA: Efficiently learning an Encoder that Classifies Token Replacements Accurately
前面的都是预测下一个Token,但是ELECTRA不回答预测问题,只回答binary的问题,ELECTRA怎么解决binary问题呢?
让一句话作为输入,我mask后观察该词是不是被mask了!

但是你如果给定一个很明显的单词替换,那么就很容易分析出来,所以需要增加难度! 所以我们就增加一个small BERT用来生成单词! 这个small BERT不用太大,要有缺陷! 不能是完美的!

Sentence Level

表示整个句子! 用来预测下一个句子是不是ok! skip Thought是将第一个句子输入Encoder,通过Decoder来预测下一个句子; 而Quick Thought则是利用了相似度的度量,如果两个句子相似度高,那么就会被预测!

在普通BERT中,我们可以使用NSP来预测下一个句子。 两个句子中间有SEP分隔符,需要通读整个句子,提取整个句子的特征,才能做好两个句子的分类!

T5-Comparison
总得有人做pre-train的,你得有硬件资源! 不是人人都可以做的!
T5和C4! 自己可以读一读

Knowledge
另一个ERNIE!

原来的都是文字的BERT! 还是有语音版的BERT!
Audio BERT

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

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

相关文章

LeetCode 712. 两个字符串的最小ASCII删除和(DP,类似编辑距离)

1. 题目 给定两个字符串s1, s2,找到使两个字符串相等所需删除字符的ASCII值的最小和。 示例 1: 输入: s1 "sea", s2 "eat" 输出: 231 解释: 在 "sea" 中删除 "s" 并将 "s" 的值(115)加入总和。 在 "eat…

正则研究

到目前为止,许多的编程语言和工具都包含对正则表达式的支持,当然.NET也不例外,.NET基础类库中包含有一个名称空间和一系列可以充分发挥规则表达式威力的类。 正则表达式的知识可能是不少编程人员最烦恼的事儿了。如果你还没有规则表达式方面的…

python3字节转化字符_捋一捋字符串与字节序列的关系

Python3的一个新特性算是把文本和二进制数据清晰地区分开来了。我们看到的文本其实就是一连串的Unicode字符组成的str(下文文无特殊说明均指Unicode字符),最后计算机以二进制数据的形式存储起来。Python内置了两种二进制数据类型,分别是bytes和bytearray…

李宏毅机器学习(九)Multi-lingual BERT

Multi-lingual BERT 输入多种语言来训练BERT Zero-shot Reading Comprehension 首先模型是在104种语言上进行训练的! 并且以English的QA来training我们的模型,最后在回答问题的时候使用中文! 可以看到如果在104种语言pre-train,…

[转]详细介绍如何做关联

如何在脚本中做关联 (Correlation)当录制脚本时,VuGen会拦截client端(浏览器)与server端(网站服务器)之间的对话,并且通通记录下来,产生脚本。在VuGen的Recording Log中,您可以找到浏…

zillow房价预测比赛_Kaggle竞赛 —— 房价预测 (House Prices)

这个比赛总的情况就是给你79个特征然后根据这些预测房价 (SalePrice),这其中既有离散型也有连续性特征,而且存在大量的缺失值。不过好在比赛方提供了data_description.txt这个文件,里面对各个特征的含义进行了描述,理解了其中内容…

【转】RNN、LSTM、Transformer、BERT简介与区别

几者的主要参考文章: https://blog.csdn.net/weixin_41089007/article/details/96474760 RNN与LSTM的区别参考文章: https://blog.csdn.net/hfutdog/article/details/96479716 RNN和LSTM的区别如下: RNN没有细胞状态;LSTM通过细…

LeetCode 812. 最大三角形面积(坐标面积公式)

1. 题目 给定包含多个点的集合&#xff0c;从其中取三个点组成三角形&#xff0c;返回能组成的最大三角形的面积。 示例: 输入: points [[0,0],[0,1],[1,0],[0,2],[2,0]] 输出: 2 解释: 这五个点如下图所示。组成的橙色三角形是最大的&#xff0c;面积为2。注意: 3 < po…

孩子感冒发烧怎么办

老大感冒发烧三天刚好&#xff0c;老二开始咳嗽鼻塞&#xff0c;孩子们生病忙的就是父母&#xff0c;几天下来&#xff0c;连自己也病了。终于一切恢复常态&#xff0c;想想也该总结一下孩子们生病的经历。 1月1号夜里&#xff0c;老大开始咳嗽&#xff0c;以为是气候干燥&…

李宏毅机器学习(十)GPT-3

前情提要 论文名称&#xff1a; Language Models are Few-shot learners 但是GPT-3的缺点在于&#xff0c;太过巨大&#xff01; 它有多大呢&#xff1f; 原来最大的时候是Turing NLG&#xff0c;有17B&#xff0c;而GPT-3是它的10倍&#xff01; 对GPT-3的评价&#xff1a; …

ipython是免费的吗_IPython技巧

IPython是一个python的交互式shell&#xff0c;比python自带的shell好用得多&#xff0c;支持变量自动补全、自动缩进、直接运行shell命令、内置了许多很有用的功能和函数&#xff0c;让我们可以用更高的效率来使用python&#xff0c;同时也是利用Python进行科学计算和交互可视…

LeetCode 985. 查询后的偶数和

1. 题目 给出一个整数数组 A 和一个查询数组 queries。 对于第 i 次查询&#xff0c;有 val queries[i][0], index queries[i][1]&#xff0c;我们会把 val 加到 A[index] 上。 然后&#xff0c;第 i 次查询的答案是 A 中偶数值的和。 &#xff08;此处给定的 index quer…

C#正则表达式判断输入日期格式是否正确

/// <summary> /// 是否为日期型字符串 /// </summary> /// <param name"StrSource">日期字符串(2008-05-08)</param> /// <returns></returns> public static bool IsDate(string StrSourc…

知识图谱论文阅读(八)【转】推荐系统遇上深度学习(二十六)--知识图谱与推荐系统结合之DKN模型原理及实现

学习的博客&#xff1a; 推荐系统遇上深度学习(二十六)–知识图谱与推荐系统结合之DKN模型原理及实现 知识图谱特征学习的模型分类汇总 知识图谱嵌入(KGE)&#xff1a;方法和应用的综述 论文&#xff1a; Knowledge Graph Embedding: A Survey of Approaches and Application…

thinkphp用来做什么项目_thinkphp第1课:使用thinkphp创建一个项目

一、thinkphp第一课&#xff1a;1、在网站根目录下&#xff0c;建立一个项目名称orange&#xff1b;2、在orange目录下&#xff0c;创建一个入口文件index.php&#xff1a;define(APP_DEBUG,true); //开启调试模式require(../TP/ThinkPHP.php);?>3、下载thinkphp核心包并解…

LeetCode 1005. K 次取反后最大化的数组和

1. 题目 给定一个整数数组 A&#xff0c;我们只能用以下方法修改该数组&#xff1a; 我们选择某个个索引 i 并将 A[i] 替换为 -A[i]&#xff0c;然后总共重复这个过程 K 次。&#xff08;我们可以多次选择同一个索引 i。&#xff09; 以这种方式修改数组后&#xff0c;返回数…

Server操作Mxd文件详细讲解

Server操作Mxd文件详细讲解Server发布地图都是基于Mxd去发布的&#xff0c;这点与IMS使用axl文件差不多。一般来说&#xff0c;发布后mxd尽可能不要修改&#xff0c;或者在通过使用arcMap进行编辑后在重新发布。修改mxd会导致地图服务发生变化&#xff0c;因此&#xff0c;相对…

知识图谱入门知识(五)【转】秒懂词向量Word2Vec的本质

博文&#xff1a; 秒懂词向量Word2Vec的本质 什么是Word2Vec&#xff1f; 词性标注&#xff1a;是动词还是名词&#xff0c;样本&#xff08;x&#xff0c;y&#xff09;中&#xff0c;x是词语&#xff0c;y是它们的词性 f&#xff08;x&#xff09;->y 中的f&#xff08;…

af_netlink_2、netlink简介

Netlink 是一种特殊的 socket&#xff0c;它是 Linux 所特有的&#xff0c;类似于 BSD 中的AF_ROUTE 但又远比它的功能强大&#xff0c;目前在最新的 Linux 内核(2.6.14)中使用netlink 进行应用与内核通信的应用很多&#xff0c;包括&#xff1a;路由 daemon(NETLINK_ROUTE)&am…

LeetCode 819. 最常见的单词

1. 题目 给定一个段落 (paragraph) 和一个禁用单词列表 (banned)。 返回出现次数最多&#xff0c;同时不在禁用列表中的单词。 题目保证至少有一个词不在禁用列表中&#xff0c;而且答案唯一。 禁用列表中的单词用小写字母表示&#xff0c;不含标点符号。段落中的单词不区分…