小小的飞帆
论文题目: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上的效果:
油墩子2016
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 的相关信息。
简单来说:该期刊要在国家新闻出版总署可查并且在知网、万方、维普这三个数据库(至少一个)正常、稳定更新。 在国家新闻出版总署可查”指的是在以下两个链接里可查: 1
论文题目:Lexicon Enhanced Chinese Sequence Labeling Using BERT Adapter 论文地址: 这
调整了网络结构;利用多尺度特征进行对象检测;对象分类用Logistic取代了softmax 对于多尺度检测来说,采用多个尺度进行预测,具体形式是在网络预测的最后
国内没办法直接上谷歌的网站 你可以搜索下载个E9代理加速器 这样就能上Google下载东西了
发表论文的平台如下: 1.知网 这里所说的是知网,是清华大学和清华同方共同办的这个数据库。在前些年他也叫中国期刊网,由于后来有人自己建了个网站也叫中国期刊网,自