周明作者中国人工智能学会来源

讲堂丨周明:预训练模型在多语言、多模态任务的进展

编者按:8月29日至30日,由中国科学技术协会、中国科学院、南京市人民政府为指导单位,中国人工智能学会、南京市建邺区人民政府、江苏省科学技术协会主办的主题为“智周万物”的2020年中国人工智能大会(CCAI 2020)在江苏南京新加坡·南京生态科技岛举办。在大会上,微软亚洲研究院副院长、国际计算语言学会(ACL)前任主席周明做了主题为《预训练模型在多语言、多模态任务的进展》的特邀报告。在大会上,微软亚洲研究院副院长、国际计算语言学会(ACL)前任主席、中国计算机学会副理事长周明做了主题为《预训练模型在多语言、多模态任务的进展》的特邀报告。

周明

微软亚洲研究院副院长

国际计算语言学会(ACL)前任主席

以下是周明老师的演讲实录:

自然语言处理(NLP),目的是使得计算机具备人类的听、说、读、写、译、问、答、搜索、摘要、对话和聊天等能力,并可利用知识和常识进行推理和决策,并支持客服、诊断、法律、教学等场景。自然语言理解,被认为是 AI 皇冠上的明珠。一旦有突破,则会大幅度推动 AI 在很多重要场景落地。

过去这五年,对自然语言是一个难忘的五年,它的一个标志就是神经网络全面引入到了自然语言理解。从大规模的语言数据到强有力的算力,加上深度学习,把整个自然语言带到一个新的阶段。

今天我要讲的预训练模型,它使自然语言处理由原来的手工调参、依靠 ML 专家的阶段,进入到可以大规模、可复制的大工业施展的阶段,令我们这个领域的人感到非常振奋。而且预训练模型从单语言、扩展到多语言、多模态任务。一路锐气正盛,所向披靡。那么,预训练模型到底是什么,它是怎么应用在很多产品里,未来又有哪些发展机会和挑战呢。下面我尝试由浅入深地给大家介绍一下。

一、预训练模型

先简要介绍一下预训练模型的基础技术,包括 Transformer、自监督学习、微调。然后再详细介绍预训练模型在语言、图像、文档和视频等任务中的进展,

预训练通过自监督学习从大规模数据中获得与具体任务无关的预训练模型。体现某一个词在一个特定上下文中的语义表征。第二个步骤是微调,针对具体的任务修正网络。训练数据可以是文本、文本-图像对、文本-视频对。预训练模型的训练方法可使用自监督学习技术(如自回归的语言模型和自编码技术)。可训练单语言、多语言和多模态的模型。此类模型可经过微调之后,用于支持分类、序列标记、结构预测和序列生成等各项技术,并构建文摘、机器翻译、图片检索、视频注释等应用。

为什么我们要做预训练模型?首先,预训练模型是一种迁移学习的应用,利用几乎无限的文本,学习输入句子的每一个成员的上下文相关的表示,它隐式地学习到了通用的语法语义知识。第二,它可以将从开放领域学到的知识迁移到下游任务,以改善低资源任务,对低资源语言处理也非常有利。第三,预训练模型在几乎所有 NLP 任务中都取得了目前最佳的成果。最后,这个预训练模型+微调机制具备很好的可扩展性,在支持一个新任务时,只需要利用该任务的标注数据进行微调即可,一般工程师就可以实现。

下面介绍预训练模型的三个关键技术。

首先,第一个关键技术是 Transformer。它在 NLP 各个任务中都取得了优异的性能,它是预训练语言模型的核心网络。给定一句话或是一个段落作为输入,首先将输入序列中各个词转换为其对应的词向量,同时加上每一个词的位置向量,体现词在序列的位置。然后将这些词向量输入到多层 Transformer 网络中,通过自注意力(self-attention)机制来学习词与词之间的关系,编码其上下文信息,再通过一个前馈网络经过非线性变化,输出综合了上下文特征的各个词的向量表示。每一层 Transformer 网络主要由 Multi-head self-attention 层(多头自注意力机制)和前馈网络层两个子层构成。Multi-head self-attention 会并行地执行多个不同参数的 self-attention,并将各个 self-attention 的结果拼接作为后续网络的输入,self-attention 机制会在后面中做详细介绍。此后,我们得到了蕴含当前上下文信息的各个词的表示,然后网络会将其输入到前馈网络层以计算非线性层次的特征。

在每一层 Transformer 网络中,会将残差连接(residual connection)把自注意力机制前或者前馈神经网络之前的向量引入进来,以增强自注意力机制或者前馈网络的输出结果向量。并且还做一个 layer normalization,也就是通过归一化把同层的各个节点的多维向量映射到一个区间里面,这样各层节点的向量在一个区间里面。这两个操作加入在每个子层后,可更加平滑地训练深层次网络。

Transformer 可以用于编码,也可以用于解码。所谓解码就是根据一个句子的输入得到一个预想的结果,比如机器翻译(输入源语言句子,输出目标语言句子),或者阅读理解(输入文档和问题,输出答案)。解码时,已经解码出来的词要做一个自注意力机制,之后和编码得到的隐状态的序列再做一个注意力机制。这样可以做 N 层,然后通过一个线性层映射到词表的大小的一个向量。每个向量代表一个词表词的输出可能性,经过一个softmax 层得到每个词的输出概率。

接下来介绍一下 self-attention 机制,以一个 head 作为示例。假定当前输入包含三个词,给定其输入词向量或是其上一层 Transformer 网络的输出,将其通过三组线性变换,转换得到三组 queries、keys 和 values 向量。Query 和 key 向量用来计算两两词之间的得分,也就是其依赖关系,这个得分会同其对应的 value 向量做加权和,以得到每个词综合上下文信息的表示。给定当前第一个词的 query 向量,其首先同各个词的 key 向量通过点积操作得到这两个词的得分,这些得分用来表示这两个词的依赖或是相关程度。这些得分之后会根据 query 等向量的维度做一定比例的缩放,并将这些得分通过 softmax 操作做归一化。之后,各个得分会同其相对应的 value 向量相乘得到针对第一个词加权的各个 value 向量,这些加权的 value 向量最终相加以得到当前第一个词的上下文表示。

在得到第一个词的上下文表示后,给定第二个词的 query 向量,我们会重复之前的操作,计算当前 query 向量同各个词 key 向量的得分,对这些得分做 softmax 归一化处理,并将这些得分同其对应的 value 向量做加权和,以得到其编码上下文信息的表示。

下面是一个最简化的例子以便简单说明自注意力机制。为了简单起见,这里假设 Q、K 和 V 的变化都不起作用,也就是不变。

输入是 The weather is nice today,利用自注意力机制调整每个词的表示,比如 The。我们认为它要受到其他所有词的影响,但是影响力可大可小。那么每个词的影响力是通过计算 The 与每个词的关联度,然后通过一个 softmax 归一化得到一个权值,每个词一个权值,这样 The 的最后表示就是和每个词计算关联度的结果之和。

多头注意力机制就是对一个节点,可以设置几组 K、Q 和 V,分别计算关联度(通过 Q 和 K 计算点积)和加权调整的值(通过 V 和关联度计算)。几组结果可以拼在一起,通过一个线性变换,体现多角度的特征抽取。多头可以是16个头、12个头等。

第二个关键技术是自监督学习。在预训练的模型中,AR(自回归)LM 和 AE(自动编码器)是最常用的自监督学习方法,其中,自回归 LM 旨在利用前面的词序列预测下个词的出现概率(语言模型)。自动编码器旨在对损坏的输入句子,比如遮掩了句子某个词、或者打乱了词序等,重建原始数据。通过这些自监督学习手段来学习单词的上下文相关表示。

第三个关键技术就是微调。在做具体任务时,微调旨在利用其标注样本对预训练网络的参数进行调整。以我们使用基于 BERT(一种流行的预训练模型)为例来判断两个句子是否语义相同。输入是两个句子,经过 BERT 得到每个句子的对应编码表示,我们可以简单地用预训练模型的第一个隐节点预测分类标记判断两个句子是同义句子的概率,同时需要额外加一个线性层和 softmax 计算得到分类标签的分布。预测损失可以反传给 BERT 再对网络进行微调。当然也可以针对具体任务设计一个新网络,把预训练的结果作为其输入。

下面介绍一下预训练模型的历史沿革。预训练模型的发展虽然这几年才大热,但是我觉得源于早期的词嵌入(word embedding)的工作,比如 Word2Vec。它的训练的结果是词的嵌入,是一个静态的表示,此后 ULMFiT 是第一个使用 RNN 基于 LM 训练的上下文相关的预训练模型;CoVe 利用翻译任务来训练编码器-解码器,并使用编码器作为预训练模型;ELMo 使用双向 LSTM 合并两个方向的隐状态获得上下文相关表示;GPT 采用 LM 进行训练,它是基于 Transformer 的单向预训练模型;BERT 是基于 Transformer 的基于掩码的预训练模型;MT-DNN 基于 BERT 增加了一些任务进行多任务训练;MASS 使用编码-解码器来训练预训练模型;UniLM 尝试同时支持语言理解和生成任务。把预训练模型用于多语言任务:XLM 是一种支持多语言的 BERT 模型;Unicoder 引入若干新的任务改进了 XLM;T5 把多种自然语言任务(比如机器翻译、问答),用了更大的数据,在一个网络训练,同时支持这些任务;BART 是一种编码-解码器模型,通过还原损坏的句子训练;mBART 将 BART 理念扩展到多语言。另外还有最新的很多模型恕我这里没有全部列出。此外也扩展到多模态。

这是一个更加详细的总结。名称、用途、架构、特点,这里就不详细说明了。

总体来讲,预训练模型发展趋势:第一,模型越来越大。比如 Transformer 的层数变化,从12层的 Base 模型到24层的 Large 模型。导致模型的参数越来越大,比如 GPT 110 M,到 GPT-2 是1.5 Billion,图灵是 17 Billion,而 GPT-3 达到了惊人的 175 Billion。一般而言模型大了,其能力也会越来越强,但是训练代价确实非常大。第二,预训练方法也在不断增加,从自回归 LM,到自动编码的各种方法,以及各种多任务训练等。第三,还有从语言、多语言到多模态不断演进。最后就是模型压缩,使之能在实际应用中经济的使用,比如在手机端。这就涉及到知识蒸馏和 teacher-student models,把大模型作为 teacher,让一个小模型作为 student 来学习,接近大模型的能力,但是模型的参数减少很多。

预训练模型举例说明

BERT

这里用 BERT 举例说明预训练模型训练方法。基于 Transformer,其基本模型为 12 层模型,还有一个大型模型为 24 层模型。这里说明几个关键地方。

1. tokenizer,简单地理解为词的切分,比如工具 BPE。针对一个数据集合,BPE 工具自动获得该数据集的 token 的集合,取频率最高的前 N 个 token 作为词表,其他的 token 都看作是 UNK(unknown word)。

2. 对数据集合的每个数据,通过 BPE 做 tokenize,形成 token 的序列。

3. 训练时,每个 token 有一个多维向量表示,比如1024维,随机初始化。

4. 计算预测的损失。该损失反向传播来调整各层的网络参数,也包括每个 token 的多维向量表示。

5. 最后训练的结果,包括每个 token 的多维向量表示、每层的网络参数,以及各个 attention model 的参数等。

6. 在用预训练模型时,把输入序列 tokenize 之后,对每个 token,从词典中得到多维向量表示。然后根据每层的网络参数,计算输出。

训练任务:BERT 使用了掩码语言模型(就是盖住一个单词或者多个单词,然后让模型预测),损失用来调整网络。

BERT 还使用 NSP(下一句预测),旨在预测第二句是否是第一句的下一句。

UniLM

UniLM 由微软亚洲研究院自然语言计算组开发,是一种最先进的预训练的模型,用于语言理解和生成任务。首先它是一个 Transformer 机制。用了三个任务训练:第一个任务就是掩码语言模型(就是自编码)类似于 BERT,利用左右词汇预测被盖住的词;第二个任务就是自回归语言模型,类似 GPT,利用前面的词序列预测下一个词;第三个任务就是编码-解码模型,利用输入句子和已经输出的词来预测接下来的词。这三个任务进行多任务训练,通过一个掩码矩阵控制哪些词可以用来 attention。训练得到的模型具备了理解和生成两种能力。在 GLUE 任务集合、文摘生成和答案抽取等任务上都取得了当时最好的水平。

预训练模型已广泛应用于产品,比如提高搜索的相关性等。上图显示必应搜索使用了我们预训练模型的问答系统,给定一个 NL 问题,系统提取包含答案的文本并确定答案部分。它也可以用于问题生成,给定一个文本,生成关于这个文本的若干问题,可以用于语言教育等领域。

二、预训练模型
在多语言任务的应用

有许多语言中,它们都有大量的单一语言数据,并且某些语言对之间存在一些对照数据。我们可以学习一个跨语言的预训练模型,其中来自两种不同语言的单词,如果具有相似的含义,将联系在一起。然后,基于预训练的模型要建立某个具体任务的系统。对某些语言,如果有带标注的数据,利用之经微调可以得到一个系统。所得到的模型应用于其他语言的同一个任务,即使该语言没有标注数据,也有一定效果。该语言如有标注数据也可进一部微调。这样实现了跨语言之间的迁移学习。 

下面介绍一个典型多语言预训练模型 XLM。它将 BERT 扩展到多语言理解任务。XLM 中使用了两个任务。第一个是掩码(屏蔽)语言模型,它与 BERT 中类似,输入是一个句子,可以是 A 语言、也可以是 B 语言。通过共享所有语言的模型参数和词汇,XLM 可以获得跨语言功能。第二个任务是 TLM(翻译语言模型),它叫做翻译,其实并没有考虑对译关系。输入是双语对照句对,看作一个语言,去训练掩码语言模型

我们开发的 Unicoder-1进一步增加了跨语言训练新任务。除了在单语句子上进行单词和短语层面的“掩码 LM”,以及对双语句子进行掩码 LM(称作翻译 LM)之外,我们增加一个新的训练任务:在利用了 Giza+ 做了单词对齐之后,通过预测两个单词的对译关系是否存在。这个任务可以在单词级别做、短语级别做,也可以在句子级别做。不仅用正例,也引入了反例,通过对比式学习,加强学习效果。

我们还将 Unicoder 扩展到了跨语言生成任务。这个预训练模型 Unicoder-2 做了如下任务训练:给定来自多语言语料库的输入句子,首先打乱其句子,对文本加噪音,然后通过解码器尝试恢复。解码时可以用传统方法每次仅预测一个 token,也可通过我们最近的Prophet(先知)网络一起预测两个 token 或者多个 token,然后取第一个词输出,再预测下一位置的 token。这样做预测能力有新的提高。

我们建立了多语言任务的评测数据集 XGLUE。XLGUE 中的 11 个下游任务,其中包括 NER(命名实体识别)、POS(词性标注)等。现在 XGLUE 已经发布,这些任务现在涵盖 19 种语言。

我们在 XGLUE 上评测了多个跨语言预训练模型(包括 MBERT、XLM、XLM-R 和 Unicoder),并在上表中列出比较结果。可以看到,我们的 Unicoder 在许多理解和生成任务上实现了最佳的平均性能。

多语言预训练模型可以把英语的模型应用到其他语言。英语的标注数据比较多,而其他语言往往缺少标注数据。因此,利用多语言预训练模型可以对新的语言,做 zero-shot 或者 few-shot 的学习。比如这里展示了问答系统,英文问答数据 finetune 训练的 QA 在法语、德语上也有很好的效果,也可以产生新闻的标题。同样也是在英语标注集合 finetune 训练之后的系统,也可以生成其他语言的标题。

这里总结一下多语言预训练模型。它缓解了多种语言的资源短缺问题,多语言预训练模型帮助多语言搜索、QA、广告、新闻、文本摘要、低资源神经机器翻译等取得新的提升。

多语言预训练模型仍然面临许多挑战,首先最有效的预训练任务仍然是掩码 LM(在多语种或双语语料库上),我们要拓展新的任务以便充分利用多语言/双语的特点。第二,词汇表比单语言的预训练模型(例如 BERT / RoBERTa)大得多,单语3万,多语25万。这样导致要学的模型参数就会增加很多,训练的开销更大。第三,有的语言对有词汇、语法的同源关系,迁移学习效果好,比如英语的 finetune 结果对法语、意大利语、西班牙语比较好,而对汉语的效果不太明显。下一步可以考虑在语系内部进行多语言模型训练。

三、预训练模型
在多模态任务的应用

图像-语言的预训练模型

图像-语言的预训练模型的目的,可以是用于理解或者生成。这里我们仅介绍理解用的预训练模型。做法如下:给定一个包含一幅图片和对应的 caption(就是文字描述)的数据库,比如这个例子包括图片和对应的文字描述。首先对这个数据库进行预处理,用FASTER-RCNN 得到图片每个对象 label 的分布,以及对象的输出向量表示(softmax 之前的输出向量表示)。一个图片的所有对象按照从左到右、从上到下的顺序排列,可以形成一个序列,和文本序列排列在一起。我们可以用 BERT 方式训练一个预训练模型,比如掩码的方式,盖住文字段的某个 token 来预测这个 token,或者盖住对象序列的某一个对象来预测这个对象的输出向量表示,或者直接预测这个对象的 label,另外预测对象序列和 text 是否是相互描述。

现有工作基于大致相似的网络结构。我们是最早发表工作的机构之一。我们增加了一个新的训练任务,即对象的输出向量还原为对象的 FASTER-RCNN 的原始向量,取得了改进效果。

在 Flickr30K(image retrieval和captioning的数据集),image2text和text2image 两个任务。Text2image 任务是给定 text,从 1 K 的图片(给定)排序,得到最优的匹配。MSCOCO(微软提供的数据集)任务完全与 Flick30K 一样。Pre-training dataset 是有三百万image-caption pairs 的,由谷歌提供的 Conceptual Captions。目前最好的系统:ViLBERT 来自 Facebook,UNITER 来自微软产品组。Unicoder-VL由于增加了新的训练任务(如前述),预训练模型对图片和文本的编码能力有所提升,得到了较好效果。

文档-语言的预训练模型

我们开发的多模态的预训练模型 LayoutLM,通过对扫描的文档,利用 OCR 识别之后的文字片段和文字对照的图像同时进行预训练。基于该预训练模型,抽取表格里的重要信息,包括语义类别和值。该研究获得了目前在相关任务评测集最高的水平(发表在KDD 2020)。

这是目前可用的训练数据集合,含有 11 Million 扫描文档和识别的结果。NIST 发表的,最主要的16类数据(信件、表格、收据等),包含了扫描文档及其对应的 OCR 结果。我们重新用 OCR(开源工具)https://github.com/tesseract-ocr/tesseract,以便得到识别对象的坐标信息。

我这里解释一下我们做的 LayoutLM 预训练模型。

首先一个扫描的文档(digital burned doc),进入 OCR 引擎可以得到识别的结果,就是一个个的字符(以 BPE 分词之后表示)串,以及在文档中的起始位置坐标。字符串的序列和位置坐标(四个数字)作为预训练输入。然后通过类似 BERT 的掩码方式(就是盖住其中某些 token)通过12层(或者24层)的 Transformer 来预测被盖住的 token。预测的损失回传调整网络的全部参数,当然可以增加其他的训练任务,比如判断文档的分类。通过对大规模的 OCR 识别的数据进行训练,可以得到一个预训练模型,这个预训练模型在进行下游任务时要微调。微调时,可以直接用预训练模型作为输入进行微调,也可以把文档中的对应 token 的图像编码也作为输入,增强预训练的信号。

训练任务1:掩码训练类似于 BERT。预测被盖住的 token,其损失回传,调整网络。

预训练任务2:判断图像的分类。按照原来数据集的分类标注,进行训练。

下游任务之一是表单理解。给一个文档,识别出文档中包含 key-value,就是实体语义类型(比如时间、地点、数目)和实体的值。通过标记 BIO 风格的序列,就可以得到识别结果。

我们的 LayoutLM 对几个重要的下游任务都取得了最佳的结果,比如表单理解、收据信息抽取等等。这里不再赘述。

视频-语言的预训练模型

下面介绍 Video-NL 预训练模型。我们可以对每个 Video 片段和对应的 NL 描述(语音识别的结果)建立这样的网络结构,左边 NL 的 token 序列,右边是视频按照时间序列均匀切分(1.5 秒)的 video clip 的序列,可以用 S3D 等工具,每个 video clip 对应一个输出向量表示,进入Video encoder。文本序列和 video clip 序列拼接起来进入Transformer。多层(比如三层、四层)后面跟着一个解码,利用一个 encoder-decoder 结果来做预训练。可以使用如下四个任务进行预训练。 

• Video-text alignment 任务用来判断输入的 video clip 和 text 是否相互描述。

• Masked language model 任务用来预测 transcript 里被 mask 掉的单词。

• Transcript generation 任务基于输入的 video clip,生成对应的 video transcript,这时还有 NL 段置空了。

• Masked frame model 任务用来预测被 mask 掉的 video clip 对应的 video feature vector。

Unicoder-VL 扩展到 video,与其他工作相比,我们把理解和生成集成在一个预训练模型,既可以理解也有生成能力。预训练的语料是,HowTo100M 作为 pre-train 语料。它是从 YouTube 上抓下来的 1.2 M 视频,切分成 136 M 视频片段,根据时间轴配上文字说明(YouTube 自带的)。下游任务 finetune 目前我们使用 YouCook2 的菜谱视频,以及 MSR-VTT 微软发布的(视频-caption)对的数据集合。

下游任务包括视频搜索和视频 caption 生成两个任务。首先是检索任务——给定 NL 的 query,从一个固定视频片段中搜索最匹配的视频片段。然后是 caption 任务——给定一段视频,加上 transcript,生成对应的 caption。我们的提交系统目前取得了最好的评测结果。

这样的预训练模型有很多应用。这里用 Video chaptering 来说明。它分为两个任务,一个是 video segmentation,用于对输入 video 进行 clip 切分;一个是 video captioning,用于对每个 video clip 生成一个总结性的内容。

我总结一下多模态预训练模型。目前它尚处于初期阶段,遵循大多数 NLP 预训练模型,用 Transformer 机制,从有限的图像/视频-语言数据集中学习联合表示,可以计算图像/视频片段和文字描述的距离,并实现图像/视频-文字之间的转换。多模态预训练模型虽然刚刚开始还不成熟,但是已经在图像/视频的搜索,以及生成文字描述当任务中显示出不错的前景。

当然,多模态预训练模型仍然面临许多挑战。首先,图像/视频-语言对的数据的大小仍然比自然语言语料库小得多。第二,CV 仅仅用于特征提取,目前并没有将 CV 模型和 NLP 模型共同训练。当然目前没有好的算法,而且训练的 cost 非常大。第三,与之有关的就是 CV 的物体识别,目前的类别仅限于1000类左右,对真实场景的覆盖不够,而且识别的精度也不够,导致预训练的输入信号天然带有误差。第四,对于多模态预训练模型,目前都是用 Transformer 机制,但是它的代价比较大,而且是否最合适对图像/视频-文字建立关联,还需要进一步探索。第五,图片和视频的预训练模型也不一样,由于视频有时序,因此视频的分割按照固定时长分割,缺乏逻辑意义。而且视频的 token 会比 NL 多很多,导致训练的代价比图片和文字的预训练大很多。

结束语

NLP 经历了第一代的基于规则的 NLP;第二代的基于统计的 NLP;五年前进入到基于神经网络的第三代 NLP(NN-NLP),在大数据、大模型、神经网络框架下取得了很好的进展,形成了一整套的技术。而现在更进一步,预训练+微调形成了工业化可扩展的解决方案。预训练模型把迁移学习很好地用起来了,让我们感到眼前一亮。这和小孩子读书一样,一开始语文、数学、化学都学,读书、网上游戏等,在脑子里积攒了很多。当他学习计算机时,实际上把他以前学到的所有知识都带进去了。如果他以前没上过中学,没上过小学,突然学计算机就不懂这里有什么道理。这和我们预训练模型一样,预训练模型就意味着把人类的语言知识,先学了一个东西,然后再代入到某个具体任务,就顺手了,就是这么一个简单的道理。这要感谢杨强老师做的迁移学习,真的是有效。

预训练体现出所有的自监督的训练。如果为了做预训练要标数据则失去意义,因为标不了太大数据,很多知识体现不出来。恰好自然语言有几乎无限的语料,用语言模型或者用自编码方法自监督学习。一个预训练模型,只要训出来以后,后续所有任务,都可以得到很好的处理。对一个任务,只要数据足够大的任务,预训练加微调机制基本可以搞定了。当然还需要研究 zero-shot,few-shot 等问题,这些还有研究空间。

预训练模型在多语言任务中,rich-resource 的模型会迁移到 low-resource 语言任务中,减轻了数据不足的问题。预训练模型在文本中表现出色,基本可以实用。而在多模态任务中,则方兴未艾,还有巨大探索空间。比如图片/视频的预处理、训练任务的设计都将有很多有趣的研究。

要想迈向下一个阶段也有很多问题,比如现有的预训练模型是不是最优的?有没有更好的训练任务、更好的神经网络架构?训练是否可以更快?模型是否可以更小?现在疯狂追求大模型,耗尽计算资源,同时也污染了环境,是不是我们可以接受的?还有现有的模型在利用知识、尝试、进行推理,并且提供解释等方面仍然没有看到任何清晰的解决前景。这些都是难题。我希望大家一起继续努力,把这些问题好好想想,努力把 NLP 推向一个新的高度。

致谢

本文所涉及的许多研究项目为微软亚洲研究院自然语言计算组的同事和实习生同学共同完成的,非常感谢他们的贡献。这里要特别感谢段楠对本讲座提供了丰富材料并帮助完善 PPT。同时我也感谢韦福如、崔磊和王文辉提供了部分重要内容。

(本报告根据速记整理)

微软研究院AI头条
微软研究院AI头条

专注科研19年,盛产黑科技

理论NLP周明预训练模型
相关数据
微软亚洲研究院机构

微软亚洲研究院于1998年在北京成立,是微软公司在亚太地区设立的基础及应用研究机构,也是微软在美国本土以外规模最大的一个研究院。微软亚洲研究院从事自然用户界面、智能多媒体、大数据与知识挖掘、人工智能、云和边缘计算、计算机科学基础等领域的研究,致力于推动计算机科学前沿发展,着眼下一代革命性技术的创新,助力微软实现长远发展战略。通过与微软产品部门紧密合作,微软亚洲研究院将众多创新技术转移到了微软的核心产品中,如Office、Windows、Azure、Bing、Visual Studio、Xbox Kinect以及小冰、Cortana和Microsoft Translator等人工智能产品。

https://www.msra.cn/
韦福如人物

韦福如是微软亚洲研究院机器阅读理解研究的主要负责人、微软亚洲研究院自然语言计算研究组主管研究员。《麻省理工科技评论》中国区35岁以下科技创新35人榜单入选者。

周明人物

周明博士,微软亚洲研究院副院长、国际计算语言学协会(ACL)候任主席、中国计算机学会理事、中文信息技术专委会主任、术语工作委员会主任、中国中文信息学会常务理事、哈尔滨工业大学、天津大学、南开大学、山东大学等多所学校博士导师。 周明博士1985年毕业于重庆大学,1991年获哈尔滨工业大学博士学位。1991-1993年清华大学博士后,随后留校任副教授。1996-1999访问日本高电社公司领导中日机器翻译研究。他是中国第一个中英翻译系统CEMT-I(哈工大1989年)、日本最有名的中日机器翻译产品J-北京(日本高电社1998年)的研制者。 1999年,周明博士加入微软亚洲研究院,不久开始负责自然语言研究组。他带领团队进行了微软输入法、英库词典(必应词典)、中英翻译、微软中国文化系列(微软对联、微软字谜、微软绝句)等重要产品和项目的研发,并对微软Office、必应搜索、Windows等产品中的自然语言技术做出了重要贡献。近年来,周明博士领导研究团队与微软产品组合作开发了微软小冰(中国)、Rinna(日本)、Zo(美国)等聊天机器人系统。 周明博士发表了120余篇重要会议和期刊论文(包括50篇以上的ACL文章),拥有国际发明专利40余项。他多年来通过微软与中国和亚太地区的高校合作计划,包括微软-高校联合实验室、微软实习生计划、微软-高校联合培养博士生计划、青年教师铸星培养计划,与高校和学术组织联合举办暑期学校和学术会议等多种形式,对推动自然语言处理在中国和亚太的卓越发展做出了杰出贡献。

杨强人物

杨强现任香港科技大学新明工程学讲席教授、计算机科学和工程学系主任,大数据研究所所长 。他是人工智能研究的国际专家和领军人物,在学术界和工业界做出了杰出的服务和贡献,尤其近些年为中国人工智能(AI)和数据挖掘(KDD)的发展起了重要引导和推动作用。

深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

自动编码器技术

自动编码器是用于无监督学习高效编码的人工神经网络。 自动编码器的目的是学习一组数据的表示(编码),通常用于降维。 最近,自动编码器已经越来越广泛地用于生成模型的训练。

自然语言理解技术

自然语言理解是人工智能的核心课题之一,也被广泛认为是最困难和最具标志性的任务。最经典的两个人工智能思想实验——图灵测试和中文房间,都是围绕自然语言理解来构建的。自然语言理解在人工智能技术体系中的重要性不言而喻,它一方面承载着机器和人的交流,另一方面直达知识和逻辑。自然语言理解也是人工智能学者孜孜以求的圣杯,机器学习的巨擘 Michael I. Jordan 就曾经在 Reddit 上的 AMA(Ask Me Anything)栏目中畅想用十亿美元建立一个专门用于自然语言理解的实验室。

神经机器翻译技术

2013 年,Nal Kalchbrenner 和 Phil Blunsom 提出了一种用于机器翻译的新型端到端编码器-解码器结构 [4]。该模型可以使用卷积神经网络(CNN)将给定的一段源文本编码成一个连续的向量,然后再使用循环神经网络(RNN)作为解码器将该状态向量转换成目标语言。他们的研究成果可以说是神经机器翻译(NMT)的诞生;神经机器翻译是一种使用深度学习神经网络获取自然语言之间的映射关系的方法。NMT 的非线性映射不同于线性的 SMT 模型,而且是使用了连接编码器和解码器的状态向量来描述语义的等价关系。此外,RNN 应该还能得到无限长句子背后的信息,从而解决所谓的「长距离重新排序(long distance reordering)」问题。

自注意力技术

自注意力(Self-attention),有时也称为内部注意力,它是一种涉及单序列不同位置的注意力机制,并能计算序列的表征。自注意力在多种任务中都有非常成功的应用,例如阅读理解、摘要概括、文字蕴含和语句表征等。自注意力这种在序列内部执行 Attention 的方法可以视为搜索序列内部的隐藏关系,这种内部关系对于翻译以及序列任务的性能非常重要。

词嵌入技术

词嵌入是自然语言处理(NLP)中语言模型与表征学习技术的统称。概念上而言,它是指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

词性标注技术

词性标注是指为分词结果中的每个单词标注一个正确的词性的程序,也即确定每个词是名词、动词、形容词或其他词性的过程。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

数据库技术

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

语料库技术

语料库一词在语言学上意指大量的文本,通常经过整理,具有既定格式与标记;事实上,语料库英文 "text corpus" 的涵意即为"body of text"。

命名实体识别技术

命名实体识别(NER)是信息提取(Information Extraction)的一个子任务,主要涉及如何从文本中提取命名实体并将其分类至事先划定好的类别,如在招聘信息中提取具体招聘公司、岗位和工作地点的信息,并将其分别归纳至公司、岗位和地点的类别下。命名实体识别往往先将整句拆解为词语并对每个词语进行此行标注,根据习得的规则对词语进行判别。这项任务的关键在于对未知实体的识别。基于此,命名实体识别的主要思想在于根据现有实例的特征总结识别和分类规则。这些方法可以被分为有监督(supervised)、半监督(semi-supervised)和无监督(unsupervised)三类。有监督学习包括隐形马科夫模型(HMM)、决策树、最大熵模型(ME)、支持向量机(SVM)和条件随机场(CRF)。这些方法主要是读取注释语料库,记忆实例并进行学习,根据这些例子的特征生成针对某一种实例的识别规则。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

噪音技术

噪音是一个随机误差或观测变量的方差。在拟合数据的过程中,我们常见的公式$y=f(x)+\epsilon$中$\epsilon$即为噪音。 数据通常包含噪音,错误,例外或不确定性,或者不完整。 错误和噪音可能会混淆数据挖掘过程,从而导致错误模式的衍生。去除噪音是数据挖掘(data mining)或知识发现(Knowledge Discovery in Database,KDD)的一个重要步骤。

迁移学习技术

迁移学习是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进迁移学习的算法的开发是机器学习社区持续关注的话题。 迁移学习对人类来说很常见,例如,我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。

特征抽取技术

语音识别技术

自动语音识别是一种将口头语音转换为实时可读文本的技术。自动语音识别也称为语音识别(Speech Recognition)或计算机语音识别(Computer Speech Recognition)。自动语音识别是一个多学科交叉的领域,它与声学、语音学、语言学、数字信号处理理论、信息论、计算机科学等众多学科紧密相连。由于语音信号的多样性和复杂性,目前的语音识别系统只能在一定的限制条件下获得满意的性能,或者说只能应用于某些特定的场合。自动语音识别在人工智能领域占据着极其重要的位置。

前馈神经网络技术

前馈神经网络(FNN)是人工智能领域中最早发明的简单人工神经网络类型。在它内部,参数从输入层经过隐含层向输出层单向传播。与递归神经网络不同,在它内部不会构成有向环。FNN由一个输入层、一个(浅层网络)或多个(深层网络,因此叫作深度学习)隐藏层,和一个输出层构成。每个层(除输出层以外)与下一层连接。这种连接是 FNN 架构的关键,具有两个主要特征:加权平均值和激活函数。

物体识别技术

计算机视觉领域的一个分支,研究物体的识别任务

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

知识蒸馏技术

Hinton 的工作引入了知识蒸馏压缩框架,即通过遵循“学生-教师”的范式减少深度网络的训练量,这种“学生-教师”的范式,即通过软化“教师”的输出而惩罚“学生”。为了完成这一点,学生学要训练以预测教师的输出,即真实的分类标签。这种方法十分简单,但它同样在各种图像分类任务中表现出较好的结果。

信息抽取技术

信息/数据抽取是指从非结构化或半结构化文档中提取结构化信息的技术。信息抽取有两部分:命名实体识别(目标是识别和分类真实世界里的知名实体)和关系提取(目标是提取实体之间的语义关系)。概率模型/分类器可以帮助实现这些任务。

问答系统技术

问答系统是未来自然语言处理的明日之星。问答系统外部的行为上来看,其与目前主流资讯检索技术有两点不同:首先是查询方式为完整而口语化的问句,再来则是其回传的为高精准度网页结果或明确的答案字串。以Ask Jeeves为例,使用者不需要思考该使用什么样的问法才能够得到理想的答案,只需要用口语化的方式直接提问如“请问谁是美国总统?”即可。而系统在了解使用者问句后,会非常清楚地回答“奥巴马是美国总统”。面对这种系统,使用者不需要费心去一一检视搜索引擎回传的网页,对于资讯检索的效率与资讯的普及都有很大帮助。从系统内部来看,问答系统使用了大量有别于传统资讯检索系统自然语言处理技术,如自然语言剖析(Natural Language Parsing)、问题分类(Question Classification)、专名辨识(Named Entity Recognition)等等。少数系统甚至会使用复杂的逻辑推理机制,来区隔出需要推理机制才能够区隔出来的答案。在系统所使用的资料上,除了传统资讯检索会使用到的资料外(如字典),问答系统还会使用本体论等语义资料,或者利用网页来增加资料的丰富性。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

ELMo技术

ELMO 是“Embedding from Language Models”的简称, ELMO 本身是个根据当前上下文对 Word Embedding 动态调整的思路。ELMO 采用了典型的两阶段过程,第一个阶段是利用语言模型进行预训练;第二个阶段是在做下游任务时,从预训练网络中提取对应单词的网络各层的 Word Embedding 作为新特征补充到下游任务中。

GPT-2技术

GPT-2是OpenAI于2019年2月发布的基于 transformer 的大型语言模型,包含 15 亿参数、在一个 800 万网页数据集上训练而成。据介绍,该模型是对 GPT 模型的直接扩展,在超出 10 倍的数据量上进行训练,参数量也多出了 10 倍。在性能方面,该模型能够生产连贯的文本段落,在许多语言建模基准上取得了 SOTA 表现。而且该模型在没有任务特定训练的情况下,能够做到初步的阅读理解、机器翻译、问答和自动摘要。

语言学技术

每种人类语言都是知识和能力的复合体,语言的使用者能够相互交流,表达想法,假设,情感,欲望以及所有其他需要表达的事物。语言学是对这些知识体系各方面的研究:如何构建这样的知识体系,如何获取,如何在消息的制作和理解中使用它,它是如何随时间变化的?语言学家因此关注语言本质的一些特殊问题。比如: 所有人类语言都有哪些共同属性?语言如何不同,系统的差异程度如何,我们能否在差异中找到模式?孩子如何在短时间内获得如此完整的语言知识?语言随时间变化的方式有哪些,语言变化的局限性是什么?当我们产生和理解语言时,认知过程的本质是什么?语言学研究的就是这些最本质的问题。

MT-DNN技术

MT-DNN 是微软提出的在多种自然语言理解任务上学习表征的多任务深度神经网络。与 BERT 模型类似,MT-DNN 分两个阶段进行训练:预训练和微调。与 BERT 不同的是,MT-DNN 在微调阶段使用多任务学习,在其模型架构中具有多个任务特定层。

自监督学习技术

一个例子中的内容特别多,而用一个例子做一个任务,就等于把其他的内容浪费了,因此我们需要从一个样本中找出多个任务。比如说遮挡图片的一个特定部分,用没遮挡部分来猜遮挡的部分是一个任务。那么通过遮挡不同的部分,就可以用一个样本完成不同任务。Yann Lecun描述的这个方法被业界称作「自监督学习」

暂无评论
暂无评论~