首页

职称论文知识库

首页 职称论文知识库 问题

bert模型论文发表在哪个会议

发布时间:

bert模型论文发表在哪个会议

国际会议,研讨会会议等等《数学建模及其应用》是中国工业与应用数学学会的会刊自创刊以来,杂志坚持刊登以建模为主要内容的应用数学研究成果,用数学建模及方法解决科学、工程技术和经济等应用问题以及建模教学研究的成果,为从事数学建模研究和教学的广大高校师生以及工业界相关专家提供了一个学习、借鉴及交流的平台。注重于数学建模方法和理论方面的学术性研讨,针对目前数学建模竞赛中的热点问题进行专题报告,探讨数学建模的发展趋势,让更多老师参与到数学建模的理论和方法研究,提高各高等学校数学建模研究和教学水平,创新学生数学建模活动,推动数学建模的快速发展。

论文题目:Lexicon Enhanced Chinese Sequence Labeling Using BERT Adapter 论文地址: 这是一篇自表于2021 ACL(NLP顶会)的论文。论文提出将字典融入BERT网络层记作字典加强BERT(Lexicon Enhanced BERT,LEBERT) ,用于提升中文标注效果。新模型在命名实体识别、分词、成份标注实验中均达到了目前最佳水平。 由于存在分词(CWS)问题,中文面临更大的挑战,对多数任务,以字为单位比以词为单位效果更好。 目前大多优化方法都是修改上层(网络末端),而未修改核心网络。文中提出的方法利用字典得到更多可能的分词,动态计算最佳分词方法,并修改了网络的Transformers层,如图-1中的右图所示: 模型的核心结构如图-2所示,相对于BERT,LEBERT有两个明显差别: (1)输入变成了字符特征+字典特征 (2)字典适配层在Transformer层之间 文中方法将基础的字符序列扩展成字符+词对序列,设句S由字符c组成:Sc={c1,c2,c3,...,cn},在字典D中找到在句中包含字符c所有可能的词ws,如图-3所示: 最终生成序列: s_cw={(c1,ws1),(c2,ws2),...(cn,wsn)} 将字符和词信息融入BERT网络的字典适配层,方法如图-4所示: 字典适配层有两个输入:字符和词对,即上图中的h和x,其中h是前一个transformer层输出的字符向量,x是m个可能包含该字符的词组成的词嵌入,其中j是m中的第j个词: 其中e是预训练得到的词向量映射表。 为了对齐长短不一的序列,对词向量进行非线性变换如下: 其中W1是大小为dc-dw的矩阵,W2是大小dc-dc的矩阵,b1和b2是偏移,dw是词向量的维度,c是隐藏层的维度。 由图-3可知,一个字可能对应多个词,对于不同的任务,最匹配的词可能并不相同。 具体算法是使用vi表示第i个字符对应的所有词表,m是该字符可能对应的词个数,计算注意力attention如下: 其中W是注意力权重矩阵。 然后对每个词乘其权重加和,得到位置i对应的词表示: 最终,将词典信息与字符的向量相加,得到了该位置的新向量: 处理后的数据再送入dropout层和归一化层继续处理。 将字符输入词嵌入层,加入token, segment和position信息,然后将该层输出的词嵌入输入Transformer层:输出的 是第l个隐藏层的输出,LN是归一化层,HMAttn是多头注意力机制,FFN是两个前馈网络层,使用ReLU作为激活函数。 在k-th和(k+1)-th Transformer之间加入字典信息考虑到标签的前后关系,使用CRF层来预测最终的标签,将最后一个隐藏层h的输出作为输入,计算输出层O: 然后将输出层代入CRF模型,计算标签y的概率p。 训练时给出句子S和标签Y,计算全句的负对数似然作为误差。 解码时,使用维特比算法计算得分最高的序列。 论文针对命名实体识别NER,分词CWS、位置POS标注进行了实验,实验数据如表-1所示(中文NLP常用实验数据)。 图-5展示了相对于BERT和基于BERT的最新模型,文中模型误差的减少情况。 除了与其它模型比较之外,论文还比较了LEBERT方法与在组装模型的Bert+Word方法的差异。

bert论文发表时间会议

离开深度学习瞎折腾了一段时间后,我终于又回来了。

于是赶紧回顾了下18年之后NLP的发展,基本就是将迁移学习更广泛的用于NLP领域,以及把17年年底的《Attention is all you need》里的思想给发扬光大了,ELMO弥补了传统word2vec多义词表示的不足,GPT使用更强大的特征提取器Transformer取代LSTM,Bert使用双向Transformer进一步改进了GPT成为这两年发展的集大成者。

从Bert模型所带来的NLP界里程碑式的影响和所取得的成就来看,无疑Bert将会是未来两三年NLP应用发展的基石,于是有必要仔细的看看其模型的结构,数据是如何流动的,训练的和测试的。

不得不说现在的学习环境相对几年前好太多了,本文主要参考了以下几篇文章,然后加了点自己的理解:

Dissecting BERT Part 1: The Encoder

The Illustrated Transformer

Dissecting BERT Appendix: The Decoder

它的总体框架同lstm时代的MNT或者是attention is all you need中的 transformer 一样的 encoder-decoder 结构:

我们先来介绍一下Encoder部分。

为了理解这个架构,我们使用一个简单的具体的例子,来看一下 输入 的数据是怎么通过 encoder 一步一步变化让后到 输出 的。

bert的词嵌入由三个嵌入token embedding、segment embedding,和position embedding叠加而成。

这个过程跟以往的RNNs没什么区别,比如给定一个句子:

第一步是先将其标记化:

然后是数字化,将每个标记映射到语料词汇表中的唯一整数编号:

接下来就是得到序列中每个词的词嵌入,也就是将整数映射到一个 维的向量,这个向量是模型在训练时学习的,你可以将其视为一个查表的过程,这些向量的元素作为模型的参数,像其他权重一样通过反向传播进行了优化。

在论文中是使用WordPiece tokenization 来将英文单词转换成768( )维的向量,转化的过程类似这样:

把每个词的向量放到一起,就得到了一个 句子长度x向量维度 ( ) 尺寸的矩阵 Z :

说明一点,我们通常使用 填充 的方式来让输入序列具有相同的长度,比如通过添加"" 标记来增加某些序列的长度,还是前面的例子,填充后可能变为:

如果设定 设定为9,那我们就把句子从5填充到了9。

但是,上面的embedding并没有包含词的位置信息。于是,我们的目标是能够根据词在句子中的位置适当调整这个向量,使它带上位置信息。

作者选择的方法是使用预定的(非学习的)正余弦函数将 之间的数字加到前面的embedding中,即通过正余弦函数将位置表示为彼此的线性组合,从而实现网络学习中标记位置之间的相对关系。在Token embedding 获得的矩阵 的基础上加上位置矩阵 。

数学上,用 表示序列中标记的位置,用 表示token embedding特征向量中的位置:

具体来说,对于给定的句子 ,其位置嵌入矩阵为:

作者解释说,使用这种确定性方法的结果和学习位置表示(就像我们对词嵌入那样)的结果差不多,因此这样反而会有一些优势:

因此,添加了位置信息之后的矩阵是:

它是第一个encoder块的输入,尺寸是

共有N个编码器块连接在一起直到生成编码器的输出,特定的块负责查找输入表示之间的关系并将编码在其输出中。

直观地,通过这些块的迭代过程将帮助神经网络捕获输入序列中的词之间的更加复杂的关系,你可以把它理解成一个整体用来捕捉输入序列的语义。

encoder中使用Transformer的多头注意力机制,这意味着它将计算 份不同权重矩阵的自注意力,然后将结果连接在一起。

这些并行注意力计算的结果称之为Head,我们用下标 来表示一个特定的head和相关的权重矩阵。

如上图所示,一旦计算了所有head,它们将被连接起来,得到一个尺寸为 的矩阵,然后将它乘以一个尺寸为 的权重矩阵 进行线性变换,就得到了一个尺寸为 的最终结果,用数学公式表示就是:

其中的 通过 乘以相应权重矩阵 获得,我们通过一个简单的例子来可视化的看一下这个过程。

这图描绘了输入标记通过 token embedding 和 positional encoding ,再输入到Encoder:

接下来,我们再来看下Encoder中的操作过程,先看一下单头的self-attention:

上图描绘了一个Head的 是怎么来的,其中的 的尺寸是 , 因为Q和K需要计算相似性,所以维度应当是相同的, 的尺寸是 , 的维度可以相同也可以不同,在论文中 .

所谓的自注意力,就是 与 的点积进行 的缩放之后通过softmax获得一个概率权重,然后用这些权重分别乘以各自的 即可:

为了加深理解,我们选择其中一个头,通过图形继续可视化的看一下这个变化过程:

然后计算self-attention,

多头的话就是同时有多个上述计算过程在进行:

假设我们有8个Head,那么我们就获得8个 :

但是,显然前馈层只需要一个矩阵 ,怎么处理呢?类似多卷积核的处理,把这8个矩阵连起来,乘以一个权重矩阵 压缩到一个矩阵。

为了有一个更加全面直观的认识,我们把上面整个过程放到一个图里,

显然,第二个encoder块是不需要embedding过程的,只要把第一个encoder块的输出作为输入即可。

经过上面的介绍,你应该对这个过程已经有了足够的了解,但是,为什么可以利用向量点积来计算注意力概率呢?

于是让我们进一步深入来了解其中的原理。

这个结构体系的关键在于:

也就是每个词的q向量与每个词的k向量的点积,套用点积公式:

这意味着 和 的方向越相似,长度越大,点积就越大。词与此之间关联越大,对于理解这个词时得到的关注越大,跟我们的本意是相同的。

我们再看一下最开头的结构示意图,每个encoder块在Multi-Head Attention之后经过一个 Add & Norm层才进入下一个块。于是我们来看一下这一层做了些什么。

Add 实际就是一个残差连接,将输出加上输入,这个在每一块的self-attenton以及FFN之后都会有,然后跟随一个Layer Norm 。

Norm 是一个Layer Normlization,将 正则化,就是把它缩放到一个均值为0方差为1的域里。因为

不过一般在这一层之前,就会有一个dropout层。

每个encoder块都由 mulit-head atteion add & Norm feed forword network add & Norm 这样一个过程,下面来介绍一下这个Feed-Forward Network。

这是一个全连接层,包含两个线性变化和一个非线性函数(实际一般就是ReLu),

对于输入的 (尺寸为 ) ,通过权重矩阵 (尺寸为 )和偏置 线性变换到隐藏层 (尺寸为 ) ,然后**ReLu **激活 ,记下来再用权重矩阵 (尺寸为 ) 和偏置 的线性变换到输出层(尺寸为 ) ,表示成数学公式就是:

在最后一个encoder块输出之后连接到decoder。

Decoder和Encoder的结构是类似的,但是因为可视信息的不同,又有所差别。

Transformer解决的是翻译的问题,将一个句子翻译成另一种语言,我们希望模型能够捕捉到输入句子中词之间的关系,并且将输入句子中包含的信息与每一步已翻译的内容结合起来。继续上面的例子,我们的目标是把一个句子从英文翻译为西班牙文,这是我们获得的序列标记:

我们同之前一样来看看输入到输出数据是如何流动的。

这是我们的解码器的输入标记:

然后这是解码器的期望输出:

但是,这里存在一个问题,比如输入这边我们已经看到了'como' 的后面是'estas', 然后再用它来预测'estas' ,这显然是不合理的,因为模型在测试的时候是看不到后面的词的。

因此,我们需要修改注意力层,防止模型可以看到预测词右边的信息,与此同时,它能利用已经预测的词,即左边的信息。

继续上面的例子,我们将输入标记转换成矩阵的形式,并添加位置信息:

和encoder一样,decoder块的输出也将是大小为 的矩阵,在逐行线性变换+softmax激活后,将生成一个举证,其中每行的最大元素表示下一个单词。也就是说,分配"" 的行负责预测“Hola”, 分配"Hola"的行负责预测"," ...以此类推。比如,为了预测"estas", 我们将允许该行直接和下图中绿色区域互动,而不能和红色区域互动:

但是,在我们使用多头注意力机制的时候,所有的行都会产生交互,因此需要在输入的时候添加遮罩,这个遮罩会在注意力计算之后进行:

这是 self-attention 的计算结果:

然后我们在此基础上添加遮掩,就是把矩阵上三角的位置全部设置为 :

于是,在进行softmax激活之后,矩阵就变成了:

恰好达到了我们的要求,那些需要在训练时忽略的右侧的词的注意力全部变成了0。

当将这个注意力矩阵与 相乘时,预测的词就是模型可以访问元素右边的元素。注意,这里的多头注意力输出将是 维的,因为它的序列长度是 。

这个就是 Decoder 从 target序列 的输入,并经过 Masked Multi-Head Attention 的一个变化得到了 ,decoder的还有一部分输入来自于源语句经过 Encoder 的最终输出 (尺寸是 )。

接下来,就是与encoder一样的 Multi-Head Attention Add and Layer Norm -> FFN 的过程。

只不过,现在的 来自于 ,而 来自于 :

计算每个query相对于key的注意力之后,得到的是一个 的矩阵, 继续咱们的例子,比如注意力矩阵为:

如上图所见,这个注意力是当前Decoder输入与Encoder输出的每个词之间的注意力,咱们用这个矩阵再乘以 ,就得到了一个 的矩阵,每一行代表了源语句相对于当前输入词汇的特征:

h个Head连接起来,尺寸变为 ,它通过 的权重矩阵 线性变换到一个 的输出。

这在多个Decoder之后,最后输出的矩阵通过乘以权重矩阵 ( ) 进行线性变换,变换之后再对每一行的向量softmax, 其中选择值最大位置对应词表索引的词就是预测的词。

损失的话只需要用预测的每个词向量与真实的词的one-hot词表示计算交叉熵即可。

写这篇文章的起因是看ALBERT的时候,对其中参数因式分解,减少参数的方式不理解,后来通过原码来了解原理。后来想到虽然平时基于bert的nlp任务做的挺多的,但对原理还是一知半解的,所以在此记录。后续有时间的话,将常见的,看过的论文做个总结,不然容易忘记。(attention is all your need,bert,albert,roberta,sentence -bert,simcse,consert,simbert,nezha,ernie,spanbert,gpt,xlnet,tinybert,distillbert)从图一可以明显看出,bert主要分为三块。embedding层,encoder层,以及pooler层,本章为embedding层的原码分析。可以看出,输入的input,会先经过tokernizer,会补上cls,sep等特殊字符。然后embedding层会获取句子的token embeddings+segment embeddings+position embeddings作为最终的句子embedding。 1 token embedding:token embedding有两种初始化方式。如果是训练预训练,随机出初始化一个30522*768的lookup table(根据wordpiece算法,英文一共有30522个sub-word就可以代表所有词汇,每个sub-word 768纬)。如果是在预训练模型的基础上finetune,读取预训练模型训练好的lookup table。假设输入的句子经过tokernized长度为16。经过lookup table就是16*768维的句子表示。 2 position embedding:position embedding的lookup table 大小512*768,说明bert最长处理长度为512的句子。长于512有几种截断获取的方式。position embedding的生成方式有两种:1 根据公式直接生成 2 根据反向传播计算梯度更新。其中,transformer使用公式直接生成,公式为: 其中,pos指的是这个word在这个句子中的位置;2i指的是embedding词向量的偶数维度,2i+1指的是embedding词向量的奇数维度。为什么这个公式能代表单词在句子中的位置信息呢?因为位置编码基于不同位置添加了正弦波,对于每个维度,波的频率和偏移都有不同。也就是说对于序列中不同位置的单词,对应不同的正余弦波,可以认为他们有相对关系。优点在于减少计算量了,只需要一次初始化不需要后续更新。 其中, bert使用的是根据反向传播计算梯度更新。 3 segment embedding:bert输入可以为两句话。[cls]....[seq]....[seq]。每句话结尾以seq分割。从embedding的大小可以看出,lookup table由两个768组成,对应第一句和第二句。该参数也由训练得到。 4 LN以及dropout:embeddings = dropout(layernorm(token embeddings+segment embeddings+position embeddings))。Normalization 有很多种,但是它们都有一个共同的目的,那就是把输入转化成均值为 0 方差为1的数据。我们在把数据送入激活函数之前进行normalization(归一化),因为我们不希望输入数据落在激活函数的饱和区,发生梯度消失的问题,使得我们的模型训练变得困难。这里不使用bn可以去除batch size对模型的影响。 下一篇为bert核心encoder模块的解析。

bert论文发表在哪

一是联系期刊。二是联系发表论文的网站。三是联系代发编辑。怎么说呢,这三种途径都可以。如果要分析的话,第一种审稿周期长(半个月一个月的才回复),稿件不容易通过,虽然在官网上放心点,但是价格有点贵。第二种进去网站就有销售跟着,问你需要什么。我曾经问过价钱,500的版面费要价1000,看来网站的广告费用都是我们自己交的啊。第三种一般都是和期刊合作的编辑,价格是最低的,审稿快,就是要小心甄别。

首先,你要确定好自己所要发表论文的期刊,罗列好大致有那几个。1.找适合你的期刊,上面都会表明投稿邮箱、联系电话、联系方式等,可自己联系。2.各大检索数据库查找,部分期刊在被收录的数据库的页面是有征稿函的.征稿函里一般有官方的联系方式,直接按格式整理,按要求投稿即可。3.查找期刊的官方网站,注意很多网站只是代理征稿网站或者网站,并不是真正的官网,而且有些期刊是没有官方网站的,可以联系查找主办单位的联系方式进行咨询。4.用搜索引擎搜索《期刊刊名》+征稿函.少部分期刊是会有编辑对外发布征稿信息的,但是这个就需要你自己擦亮眼睛进行分辨是不是真正的征稿信息了。5.找论文代理或者代投机构.万能的某宝或者百度,搜索XX发表,提醒你擦亮眼睛,很多很多很多。其他,你可以咨询身边已经成功投稿发表的朋友,既然已成功发表,渠道肯定没问题,比你自己摸索要非常省时省力。(资料来源:中国论文网http;//)

期刊有很多,但是要看你是发表什么专业方向的论文,期刊杂志还有栏目分类,如果实在搞不清楚的话那就去找早发表网发表论文吧,那里会告诉你你论文适合投什么样的期刊。

因为杂志社都是全国各地的,所以一般发表渠道基本都是在网上投稿,这方面我比较有经验,因为每年我们单位都发很多论文,有2个渠道,一般便宜点的,就是找到想发的杂志社然后去官网投稿,这样的话第一需要自己准备好论文,第二通过率比较低,第三期刊选择单一,发的篇数多的话需要更换刊物,不过价格便宜。第二个渠道,我是找的网上的专业网站发的,叫百姓论文网,价格是我问过最便宜的了,主要省事 一般我同事没有准备好论文的话,那块也能代笔,选择刊物也多样。所以我倾向于后者,主要不用操心。具体就知道这么多,希望对你有帮助,望采纳

发表论文会议在哪个网站

发表论文的平台如下:

1.知网

这里所说的是知网,是清华大学和清华同方共同办的这个数据库。在前些年他也叫中国期刊网,由于后来有人自己建了个网站也叫中国期刊网,自己收录期刊,假李逵装真李逵。玩文字游戏,导致很多作者上当。

所以现在知网对外不称中国期刊网了,就是叫知网。从论文发表来说,知网是最权威的,最有说服力的数据库。

凡是知网收录的期刊,一定是正规的,可以放心大胆的发表的,但是最近这两年知网变得更严格,所以知网收录的期刊发表费用比较贵一些。

2.万方数据库

万方数据库,也是一个比较大的论文数据库,仅次于知网。其权威性和重要性就等于是一个弱化版的知网,但是也是比较大。

从期刊正规性来说,如果一个期刊,知网不收录,但是万方数据库收录,说明还是比较正规的,虽然不如知网收录的那么正规。但是对于一般单位来说够用。

对于大学这样的单位可能必须要求知网。而对于一些企业单位,只要万方数据库能检索到已经发表的论文,就算不错了。所以,万方数据库也是一个必须参考的标准。

3.维普网

维普网在前些年实际上假刊比较多,比较泛滥,这两年所说期刊审核严格,上面审核严格,但是维普网收录的期刊从正规性和权威性上来说,都是严重不如知网和万方数据库。

对于很多要求不高的单位,或者评一些初级职称的单位,只有维普网收录的期刊还能管点用。稍微严格一些的,就不大灵光了。

论文网站如下:1、中国知网(期刊、学位论文)2、维普资讯中文科技期刊数据库(期刊论文)3、万方数字资源系统(学位论文、会议论文、外文文献)4、读秀学术搜索5、超星数字图书馆(电子图书、讲座、读秀学术搜索)

1. 维普资讯中文科技期刊数据库(期刊论文)2. 中国知网(期刊、学位论文)(网上包库)3. 中国知网(期刊、学位论文)(本地镜像)4. 万方数字资源系统(学位论文 、会议论文、外文文献)5. 读秀学术搜索6. 超星数字图书馆(电子图书、讲座、读秀学术搜索)7. 书生之家数字图书馆(电子图书)8. 煤炭数字图书馆暨安全生产数字图书馆9. 中国资讯行高校财经数据库(统计数据、商业报告、证券消息等)10. 搜数网(统计数据)11. 国务院发展研究中心信息网(商业报告、统计数据等)12. (国泰安)中国股票市场交易数据库(股票交易数据)13. 高校教学资源库(教学课件、多媒体素材等)14. 方略学科导航(我校主要学科网络学术资源,包括煤炭经济、半岛经济)15. 爱迪科森就业库(考研、应用英语、职业认证培训、出国考试等视频课程)16. 新东方多媒体学习库17. VIPExam考试学习资源数据库(司法、财经类职业资格等考试题库)18. E线图情19. 山东高校图书馆随书光盘资源联合中心(免费资源)20. 国家精品课程资源网(免费资源,教学课件、教案、视频课程等)21. 中国大学视频公开课(免费资源,视频课程)22. 网易公开课(免费资源,中外视频课程)23. 厦门大学学术库(免费资源)24. 汉斯出版社中文学术期刊(免费资源)25. e读学术搜索

免费论文的网站有爱学术、汉斯出版社等。1、爱学术是一家专业的学术文献分享平台,覆盖各个行业期刊论文,学位论文,会议论文,标准,专利等各类学术资源,是国内最大的学术文献交流中心和论文资源免费下载网站,旨在构建一个专业的学术文献交流分享平台。2、汉斯出版社聚焦于国际开源(OpenAccess)中文期刊的出版发行,是秉承着传播文化和促进交流的理念,积极探索中文学术期刊国际化道路,并且积极推进中国学术思想走向世界。

bert是哪篇论文在哪发表的

论文题目:Lexicon Enhanced Chinese Sequence Labeling Using BERT Adapter 论文地址: 这是一篇自表于2021 ACL(NLP顶会)的论文。论文提出将字典融入BERT网络层记作字典加强BERT(Lexicon Enhanced BERT,LEBERT) ,用于提升中文标注效果。新模型在命名实体识别、分词、成份标注实验中均达到了目前最佳水平。 由于存在分词(CWS)问题,中文面临更大的挑战,对多数任务,以字为单位比以词为单位效果更好。 目前大多优化方法都是修改上层(网络末端),而未修改核心网络。文中提出的方法利用字典得到更多可能的分词,动态计算最佳分词方法,并修改了网络的Transformers层,如图-1中的右图所示: 模型的核心结构如图-2所示,相对于BERT,LEBERT有两个明显差别: (1)输入变成了字符特征+字典特征 (2)字典适配层在Transformer层之间 文中方法将基础的字符序列扩展成字符+词对序列,设句S由字符c组成:Sc={c1,c2,c3,...,cn},在字典D中找到在句中包含字符c所有可能的词ws,如图-3所示: 最终生成序列: s_cw={(c1,ws1),(c2,ws2),...(cn,wsn)} 将字符和词信息融入BERT网络的字典适配层,方法如图-4所示: 字典适配层有两个输入:字符和词对,即上图中的h和x,其中h是前一个transformer层输出的字符向量,x是m个可能包含该字符的词组成的词嵌入,其中j是m中的第j个词: 其中e是预训练得到的词向量映射表。 为了对齐长短不一的序列,对词向量进行非线性变换如下: 其中W1是大小为dc-dw的矩阵,W2是大小dc-dc的矩阵,b1和b2是偏移,dw是词向量的维度,c是隐藏层的维度。 由图-3可知,一个字可能对应多个词,对于不同的任务,最匹配的词可能并不相同。 具体算法是使用vi表示第i个字符对应的所有词表,m是该字符可能对应的词个数,计算注意力attention如下: 其中W是注意力权重矩阵。 然后对每个词乘其权重加和,得到位置i对应的词表示: 最终,将词典信息与字符的向量相加,得到了该位置的新向量: 处理后的数据再送入dropout层和归一化层继续处理。 将字符输入词嵌入层,加入token, segment和position信息,然后将该层输出的词嵌入输入Transformer层:输出的 是第l个隐藏层的输出,LN是归一化层,HMAttn是多头注意力机制,FFN是两个前馈网络层,使用ReLU作为激活函数。 在k-th和(k+1)-th Transformer之间加入字典信息考虑到标签的前后关系,使用CRF层来预测最终的标签,将最后一个隐藏层h的输出作为输入,计算输出层O: 然后将输出层代入CRF模型,计算标签y的概率p。 训练时给出句子S和标签Y,计算全句的负对数似然作为误差。 解码时,使用维特比算法计算得分最高的序列。 论文针对命名实体识别NER,分词CWS、位置POS标注进行了实验,实验数据如表-1所示(中文NLP常用实验数据)。 图-5展示了相对于BERT和基于BERT的最新模型,文中模型误差的减少情况。 除了与其它模型比较之外,论文还比较了LEBERT方法与在组装模型的Bert+Word方法的差异。

论文标题:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 论文链接: BERT(Bidirectional Encoder Representations from Transformers)通过预训练来学习无标注数据中的深度双向表示,预训练结束后通过添加一个额外的输出层进行微调,最终在多个NLP任务上实现了SOTA。 预训练语言模型在实践中证明对提高很多自然语言处理任务有效,其中包括句子层级的任务,比如自然语言推断(natural language inference)和复述(paraphrasing),还有token层级的任务,比如命名实体识别(named entity recognition)和问答(question answering)。 在下游任务中应用预训练语言模型表示的方法有两种:feature-based的方法和fine-tuning的方法。举例来说,ELMo这种预训练语言模型使用feature-based的方法,通过将ELMo的预训练的表示作为额外的特征输入到特定于任务的模型中去;GPT使用fine-tuning的方法,通过引入少量的特定于任务的参数,在下游任务中训练时所有的预训练参数。 截止BERT之前的预训练语言模型都是单向的(unidirectional),包括GPT和ELMo,这样的方法对句子层级的任务不是最优的,而且对于token层级的任务比如问答非常有害。BERT使用masked language model(MLM)的方法来预训练,这种方法能够训练一个双向的(directional)语言模型。除了masked language model的预训练的方法,BERT还使用了next sentence prediction的预训练方法。 BERT的使用分为两个阶段:预训练(pre-training)和微调(fine-tuning)。预训练阶段模型通过两种不同的预训练任务来训练无标注数据。微调阶段模型使用预训练参数初始化,然后使用下游任务(downstream task)的标注数据来微调参数。 BERT的一个显著特点是它在不同的任务上有统一的架构,使用时只需要在BERT后面接上下游任务的结构即可使用。 BERT的模型架构是一个多层双向的Transformer的encoder。我们标记模型的层数(每一层是一个Tranformer的block)为 ,模型的hidden size为 ,self-attention head的数量为 。两个比较通用的BERT架构为 和 。 对比GPT,BERT使用了双向self-attention架构,而GPT使用的是受限的self-attention, 即限制每个token只能attend到其左边的token。 BERT的输入表示能够是一个句子或者是一个句子对,这是为了让BERT能够应对各种不同的下游任务。BERT的输入是一个序列,该序列包含一个句子的token或者两个句子结合在一起的token。 具体地,我们会将输入的自然语言句子通过 WordPiece embeddings 来转化为token序列。这个token序列的开头要加上 [CLS] 这个特殊的token,最终输出的 [CLS] 这个token的embedding可以看做句子的embedding,可以使用这个embedding来做分类任务。 由于句子对被pack到了一起,因此我们需要在token序列中区分它们,具体需要两种方式: ①在token序列中两个句子的token之间添加 [SEP] 这样一个特殊的token; ②我们为每个token添加一个用来学习的embedding来区分token属于句子A还是句子B,这个embedding叫做segment embedding。 具体地,BERT的输入由三部分相加组成:token embeddings、segment embeddings和position embeddings。如下图所示: BERT使用两个无监督的任务进行预训练,分别是Masked LM和Next Sentence Prediction(NSP)。如下图所示,我们定义输入的embedding为 ,BERT最终输出的 [CLS] 的embedding为 ,最终输出的第 个token的embedding为 。 我们有理由相信一个深度双向模型比left-to-right模型和left-to-right和right-to-left简单连接的模型的效果更加强大。不幸的是,标准的条件语言模型只能够够left-to-right或者right-to-left地训练,这是因为双向条件会使每个token能够间接地“看到自己”,并且模型能够在多层上下文中简单地预测目标词。 为了能够双向地训练语言模型,BERT的做法是简单地随机mask掉一定比例的输入token(这些token被替换成 [MASK] 这个特殊token),然后预测这些被遮盖掉的token,这种方法就是Masked LM(MLM),相当于完形填空任务(cloze task)。被mask掉的词将会被输入到一个softmax分类器中,分类器输出的维度对应词典的大小。在预训练时通常为每个序列mask掉15%的token。与降噪自编码器(denoising auto-encoders)相比,我们只预测被mask掉的token,并不重建整个输入。 这种方法允许我们预训练一个双向的语言模型,但是有一个缺点就是造成了预训练和微调之间的mismatch,这是因为 [MASK] 这个token不会在微调时出现。为了缓解这一点,我们采取以下做法:在生成训练数据时我们随机选择15%的token进行替换,被选中的token有80%的几率被替换成 [MASK] ,10%的几率被替换成另一个随机的token,10%的几率该token不被改变。然后 将使用交叉熵损失来预测原来的token。 一些重要的NLP任务如Question Answering (QA)或者Natural Language Inference (NLI)需要理解句子之间的关系,而这种关系通常不会被语言模型直接捕捉到。为了使得模型能够理解句子之间的关系,我们训练了一个二值的Next Sentence Prediction任务,其训练数据可以从任何单语语料库中生成。具体的做法是:当选择句子A和句子B作为训练数据时,句子B有50%的几率的确是句子A的下一句(标签是 IsNext ),50%的几率是从语料库中随机选择的句子(标签是 NotNext )。 [CLS] 对应的最后一个隐层输出向量被用来训练NSP任务,这个embedding就相当于sentence embedding。虽然这个预训练任务很简单,但是事实上在微调时其在QA和NLI任务上表现出了很好的效果。在前人的工作中,只有sentence embedding被迁移到下游任务中,而BERT会迁移所有的参数来初始化下游任务模型。 Transformer的self-attention机制允许BERT建模多种下游任务。对于包含句子对的任务,通常的做法是先独立地对句子对中的句子进行编码,然后再应用双向交叉注意(bidirectional cross attention)。而BERT使用self-attention机制统一了这两个过程,这是因为对拼接起来的句子对进行self-attention有效地包含了两个句子之间的双向交叉注意(bidirectional cross attention)。 对于每个任务来说,我们只需要将任务特定的输入输出插入到BERT中然后端到端地微调即可。举例子来说,BERT的预训练输入句子A和句子B在微调时可以类比为: ①paraphrasing任务中的句子对; ②entailment任务中的hypothesis-premise对; ③question answering任务中的question-passage对; ④text classification或者sequence tagging任务中的text-∅对(也就是只输入一个text,不必一定需要两个句子)。 对于BERT的输出,对于一些token-level的任务,BERT的token表示将被输入到一个输出层,比如sequence tagging或者question answering任务;对于entailment或者sentiment analysis这样的任务,可以将 [CLS] 对应的表示输入到一个输出层。 我们使用 [CLS] 这个token的最后一层的隐层向量 作为聚合的表示,可以认为是sentence embedding。在微调时只引入一个新的权重 ,这里的 代表标签的数量,然后计算标准分类损失 。下图展示了BERT在GLUE上的效果: 在这个数据集上,我们将question和passage拼接起来作为一个输入序列(中间是 [SEP] )。在微调时引入一个start向量 和一个end向量 ,计算 和 的点积然后通过 函数作为word 是答案的span起始位置的概率: 。答案的终止位置也做上述类似处理。从 到 的候选区间的得分记作 ,我们挑选 的最大得分区间作为预测的结果。下图展示了BERT在SQuAD v1.1上的效果: SQuAD v2.0有的question在提供的passage中没有答案存在。在微调时我们设置没有答案的问题的span的起始和结束位置都是 [CLS] 这个token,也就是start和end的可能性空间包含进了 [CLS] 的位置。在预测时,我们比较没有答案的span得分 和最优的有答案得分 。当 时,我们预测这是一个有答案的问题,这里的 用来在dev set上选择最优的 。下图展示了BERT在SQuAD v2.0上的效果: 微调时我们为BERT构建4个输入序列,每一个是所给的句子(句子A)和一个可能的延续(句子B)。然后引入一个向量,该向量和每一个输入对应的 [CLS] 的embedding的点积再通过一个 层来得到每个选择的得分。下图展示了BERT在SWAG上的效果:

2019 年可以说是「预训练模型」流行起来的一年。自 BERT 引发潮流以来,相关方法的研究不仅获得了 EMNLP 大会最佳论文等奖项,更是在 NLP、甚至图像领域里引领了风潮。

去年也有很多 游戏 AI 取得了超越人类的水平。人工智能不仅已经玩转德州扑克、星际争霸和 Dota2 这样复杂的 游戏 ,还获得了 Nature、Science 等顶级期刊的肯定。

机器之心整理了去年全年 在人工智能、量子计算等领域里最为热门的七项研究 。让我们以时间的顺序来看:

第一个重磅研究出现在 2 月,继发布刷新 11 项 NLP 任务记录的 3 亿参数量语言模型 BERT 之后,谷歌 OpenAI 于 2019 年 2 月再次推出了一种更为强大的模型,而这次的模型参数量达到了 15 亿。这是一种 大型无监督语言模型 ,能够生产连贯的文本段落,在许多语言建模基准上取得了 SOTA 表现。此外,在没有任务特定训练的情况下,该模型能够做到初步的阅读理解、机器翻译、问答和自动摘要。

该模型名为 GPT-2,它是基于 Transformer 的大型语言模型,包含 15 亿参数、在一个 800 万网页数据集上训练而成。训练 GPT-2 有一个简单的目标:给定一个文本中前面的所有单词,预测下一个单词。GPT-2 是对 GPT 模型的直接扩展,在超出 10 倍的数据量上进行训练,参数量也多出了 10 倍。

GPT-2 展示了一系列普适而强大的能力,包括生成当前最佳质量的条件合成文本,其中我们可以将输入馈送到模型并生成非常长的连贯文本。此外,GPT-2 优于在特定领域(如维基百科、新闻或书籍)上训练的其它语言模型,而且还不需要使用这些特定领域的训练数据。在 知识问答、阅读理解、自动摘要和翻译等任务 上,GPT-2 可以从原始文本开始学习,无需特定任务的训练数据。虽然目前这些下游任务还远不能达到当前最优水平,但 GPT-2 表明如果有足够的(未标注)数据和计算力,各种下游任务都可以从无监督技术中获益。

最后,基于大型通用语言模型可能会产生巨大的 社会 影响,也考虑到模型可能会被用于恶意目的,在发布 GPT-2 时,OpenAI 采取了以下策略: 仅发布 GPT-2 的较小版本和示例代码,不发布数据集、训练代码和 GPT-2 模型权重 。

机器学习顶会的最佳论文,总会引起人们的广泛讨论。在今年 6 月于美国加州举办的 ICML 2019(国际机器学习大会)上,由苏黎世联邦理工学院(ETH)、德国马普所、谷歌大脑共同完成的《Challenging Common Assumptions in the Unsupervised Learning of Disentangled Representations》获得了其中一篇最佳论文。研究者在论文中提出了一个与此前学界普遍预测相反的观点:对于任意数据,拥有相互独立表征(解耦表征)的无监督学习是不可能的。

论文链接:

在这篇论文中,研究者冷静地审视了该领域的最新进展,并对一些常见的假设提出了质疑。

首先,研究者表示从理论上来看,如果不对模型和数据进行归纳偏置,无监督学习解耦表征基本是不可能的;然后他们在七个不同数据集进行了可复现的大规模实验,并训练了 12000 多个模型,包括一些主流方法和评估指标;最后,实验结果表明,虽然不同的方法强制执行了相应损失「鼓励」的属性,但如果没有监督,似乎无法识别完全解耦的模型。此外,增加的解耦似乎不会导致下游任务学习的样本复杂度的下降。

研究者认为,基于这些理论,机器学习从业者对于超参数的选择是没有经验法则可循的,而在已有大量已训练模型的情况下, 无监督的模型选择仍然是一个很大的挑战 。

去年 6 月,来自德国波恩-莱茵-锡格应用技术大学和谷歌大脑的研究者发表了一篇名为《Weight Agnostic Neural Networks》的论文,进而引爆了机器学习圈。在该论文中,他们提出了一种神经网络架构搜索方法, 这些网络可以在不进行显式权重训练的情况下执行各种任务 。

论文链接:

通常情况下,权重被认为会被训练成 MNIST 中边角、圆弧这类直观特征,而如果论文中的算法可以处理 MNIST,那么它们就不是特征,而是函数序列/组合。对于 AI 可解释性来说,这可能是一个打击。很容易理解,神经网络架构并非「生而平等」,对于特定任务一些网络架构的性能显著优于其他模型。但是相比架构而言,神经网络权重参数的重要性到底有多少?

来自德国波恩-莱茵-锡格应用技术大学和谷歌大脑的一项新研究提出了一种神经网络架构搜索方法,这些网络可以在不进行显式权重训练的情况下执行各种任务。

为了评估这些网络,研究者使用从统一随机分布中采样的单个共享权重参数来连接网络层,并评估期望性能。结果显示,该方法可以找到少量神经网络架构,这些架构可以在没有权重训练的情况下执行多个强化学习任务,或 MNIST 等监督学习任务。

BERT 带来的影响还未平复,CMU 与谷歌大脑 6 月份提出的 XLNet 在 20 个任务上超过了 BERT 的表现,并在 18 个任务上取得了当前最佳效果。

来自卡耐基梅隆大学与谷歌大脑的研究者提出新型预训练语言模型 XLNet,在 SQuAD、GLUE、RACE 等 20 个任务上全面超越 BERT。

作者表示, BERT 这样基于去噪自编码器的预训练模型可以很好地建模双向语境信息,性能优于基于自回归语言模型的预训练方法 。然而,由于需要 mask 一部分输入,BERT 忽略了被 mask 位置之间的依赖关系,因此出现预训练和微调效果的差异(pretrain-finetune discrepancy)。

基于这些优缺点,该研究提出了一种泛化的自回归预训练模型 XLNet。XLNet 可以:1)通过最大化所有可能的因式分解顺序的对数似然,学习双向语境信息;2)用自回归本身的特点克服 BERT 的缺点。此外,XLNet 还融合了当前最优自回归模型 Transformer-XL 的思路。

延伸阅读:

2019 年 7 月,在无限制德州扑克六人对决的比赛中,德扑 AI Pluribus 成功战胜了五名专家级人类玩家。Pluribus 由 Facebook 与卡耐基梅隆大学(CMU)共同开发,实现了前辈 Libratus(冷扑大师)未能完成的任务,该研究已经登上了当期《科学》杂志

据介绍,Facebook 和卡内基梅隆大学设计的比赛分为两种模式:1 个 AI+5 个人类玩家和 5 个 AI+1 个人类玩家,Pluribus 在这两种模式中都取得了胜利。如果一个筹码值 1 美元,Pluribus 平均每局能赢 5 美元,与 5 个人类玩家对战一小时就能赢 1000 美元。职业扑克玩家认为这些结果是决定性的胜利优势。 这是 AI 首次在玩家人数(或队伍)大于 2 的大型基准 游戏 中击败顶级职业玩家 。

在论文中,Pluribus 整合了一种新的在线搜索算法,可以通过搜索前面的几步而不是只搜索到 游戏 结束来有效地评估其决策。此外,Pluribus 还利用了速度更快的新型 Self-Play 非完美信息 游戏 算法。综上所述,这些改进使得使用极少的处理能力和内存来训练 Pluribus 成为可能。 训练所用的云计算资源总价值还不到 150 美元 。这种高效与最近其他人工智能里程碑项目形成了鲜明对比,后者的训练往往要花费数百万美元的计算资源。

Pluribus 的自我博弈结果被称为蓝图策略。在实际 游戏 中,Pluribus 使用搜索算法提升这一蓝图策略。但是 Pluribus 不会根据从对手身上观察到的倾向调整其策略。

在人工智能之外的量子计算领域,去年也有重要的研究突破。2019 年 9 月,谷歌提交了一篇名为《Quantum supremacy using a programmable superconducting processor》的论文自 NASA 网站传出,研究人员首次在实验中证明了量子计算机对于传统架构计算机的优越性:在世界第一超算 Summit 需要计算 1 万年的实验中,谷歌的量子计算机只用了 3 分 20 秒。因此,谷歌宣称实现「量子优越性」。之后,该论文登上了《自然》杂志 150 周年版的封面。

这一成果源自科学家们不懈的努力。谷歌在量子计算方向上的研究已经过去了 13 年。2006 年,谷歌科学家 Hartmut Neven 就开始 探索 有关量子计算加速机器学习的方法。这项工作推动了 Google AI Quantum 团队的成立。2014 年,John Martinis 和他在加利福尼亚大学圣巴巴拉分校(UCSB)的团队加入了谷歌的工作,开始构建量子计算机。两年后,Sergio Boixo 等人的论文发表,谷歌开始将工作重点放在实现量子计算优越性任务上。

如今,该团队已经构建起世界上第一个超越传统架构超级计算机能力的量子系统,可以进行特定任务的计算。

量子优越性实验是在一个名为 Sycamore 的 54 量子比特的完全可编程处理器上运行的。该处理器包含一个二维网格,网格中的每个量子比特与其他四个相连。量子优越性实验的成功归功于谷歌改进了具有增强并行性的双量子比特门,即使同时操作多个门,也能可靠地实现记录性能。谷歌使用一种新型的控制旋钮来实现这一性能,该旋钮能够关闭相邻量子比特之间的交互。此举大大减少了这种多连通量子比特系统中的误差。此外,通过优化芯片设计来降低串扰,以及开发避免量子比特缺陷的新控制校准,谷歌进一步提升了性能。

虽然 AI 没有打败最强人类玩家 Serral,但其研究的论文仍然登上了 Nature。2019 年 10 月底,DeepMind 有关 AlphaStar 的论文发表在了当期《Nature》杂志上,这是人工智能算法 AlphaStar 的最新研究进展,展示了 AI 在「没有任何 游戏 限制的情况下」已经达到星际争霸Ⅱ人类对战天梯的顶级水平,在 Battle.net 上的排名已超越 99.8%的活跃玩家 。

回顾 AlphaStar 的发展历程,DeepMind 于 2017 年宣布开始研究能进行即时战略 游戏 星际争霸Ⅱ的人工智能——AlphaStar。2018 年 12 月 10 日,AlphaStar 击败 DeepMind 公司里的最强玩家 Dani Yogatama;12 月 12 日,AlphaStar 已经可以 5:0 击败职业玩家 TLO 了(TLO 是虫族玩家,据 游戏 解说们认为,其在 游戏 中的表现大概能有 5000 分水平);又过了一个星期,12 月 19 日,AlphaStar 同样以 5:0 的比分击败了职业玩家 MaNa。至此,AlphaStar 又往前走了一步,达到了主流电子竞技 游戏 顶级水准。

根据《Nature》论文描述,DeepMind 使用通用机器学习技术(包括神经网络、借助于强化学习的自我博弈、多智能体学习和模仿学习)直接从 游戏 数据中学习。AlphaStar 的 游戏 方式令人印象深刻——这个系统非常擅长评估自身的战略地位,并且准确地知道什么时候接近对手、什么时候远离。此外,论文的中心思想是将 游戏 环境中虚构的自我博弈扩展到一组智能体,即「联盟」。

联盟这一概念的核心思想是:仅仅只是为了赢是不够的。相反,实验需要主要的智能体能够打赢所有玩家,而「压榨(exploiter)」智能体的主要目的是帮助核心智能体暴露问题,从而变得更加强大。这不需要这些智能体去提高它们的胜率。通过使用这样的训练方法,整个智能体联盟在一个端到端的、完全自动化的体系中学到了星际争霸Ⅱ中所有的复杂策略。

2019 年在 AI 领域的各个方向上都出现了很多技术突破。新的一年,我们期待更多进展。

此外,机器之心于 2019 年 9 月底推出了自己的新产品 SOTA 模型,读者可以根据自己的需要寻找机器学习对应领域和任务下的 SOTA 论文,平台会提供论文、模型、数据集和 benchmark 的相关信息。

相关百科

热门百科

首页
发表服务