(本文阅读时间:16分钟)
论文链接:
https://arxiv.org/abs/2108.12987
代码链接:
https://github.com/DeepSoftwareAnalytics/CAST
代码摘要生成任务旨在理解真实的代码片段,并自动生成自然语句,进而实现描述这段代码的功能。由于摘要能够精简地描述代码的功能、可读性强,所以良好的摘要可以帮助开发者更便捷地理解、重用和维护代码,大大提高生产效率。然而,现实中的摘要却存在着缺失、错误和未及时更新等问题,而且人为标注代码的摘要需要具有一定的专业知识背景,整个过程耗时耗力。因此,自动为代码生成摘要尤为重要。
近年来,很多研究人员使用各种技术建模富含语法和结构信息的抽象语法树(AST), 以此来更好地生成代码摘要。但是,由于程序的复杂性,抽象语法树一般又大又深、难以建模。现有方法也存在着树的结构被破坏、训练代价大、信息丢失等诸多限制。为此,微软亚洲研究院的研究员们提出了一种层次化切分和重组 AST 的方法——CAST。其核心在于将 AST 层次化地切分成合适粒度的子树,使得每个子树包含相对完整的语义;独立建模子树后再按照切分前子树的相对位置,重新聚合子树的表征。这样可以使 AST 的结构更容易被建模,代码的语义能够更加完整地被构建,生成的摘要体现的语义也更加全面。
图1:代码及其抽象语法树(AST),切分的子树以及结构树的示意图
CAST 模型选择了常用的序列到序列的架构,主要包含三个模块:AST 的编码器、代码编码器和摘要解码器。AST 的编码器用来建模代码的语义和结构信息;代码编码器用来建模变量名层面的词汇和语义信息;解码器则结合两个编码器得到的代码表征以及复制机制来生成代码摘要。
图2:CAST 模型的架构示意图
研究员们在两个公开的数据集、四种衡量指标下进行了自动化测试,并且开展了人工测评实验。大量实验结果证明了该方法的有效性。
表2:人工评价下的实验结果,括号外为均分(满分4分),括号内为方差
论文链接:
https://arxiv.org/abs/2109.00271
作为现代自然语言处理(NLP)中一个重要技术分支,多语言 NLP 旨在使现有 NLP 技术摆脱语言种类的限制,能够使用一个模型同时处理上百种语言的任务。目前多语言预训练模型的核心挑战在于:现存的许多数据集都仅有英语训练数据,而其他众多使用人数较少的低资源语言上仅有测试数据。如果使用英语数据对多语言模型进行微调,在其他语言上测试,所得到的结果和英语上的结构存在较大的差距。面对上述挑战,微软亚洲研究院的研究员们从语言学理论中的 Sprachbund 受到启发,设计出了如下图所示的多语言 NLP 新范式。
图3:嵌入语言联盟发现与预训练的流程
Sprachbund 是一个德语语言学术语,表示没有亲属关系的语言,由于长期共处于一个地区而在语言结构上产生共同区域特征的现象。研究员们认为预训练时语言之间较大的差异性是导致跨语言模型表现较差的原因。因此,研究员们提出了 Representation Sprachbund 的概念,用来指一系列具有相似嵌入表示的语言。研究员们通过跨语言预训练模型提取出语言的嵌入表示,将语言表示进行聚类为多个 Representation Sprachbund,针对每一类嵌入表示相似的 Representation Sprachbund 语言进行预训练。在 XGLUE 和 XTREME 等多个跨语言基准任务上开展的实验表明,本文的方法能够在基线模型基础上取得显著提升。
表3:在跨语言基准任务上的结果
本文另一个重要的贡献是探索了预训练语言模型得到的语言嵌入表示分布与语言学理论的关系,包括 Language Family, Sprachbund 和语言语法。
图4:语言嵌入表示的可视化分析
本文通过可视化分析揭示了语言嵌入表示丰富的语言学性质。研究员们希望未来进一步探索基于深度学习的多语言 NLP 与经典语言学理论的联系。
论文链接:
https://arxiv.org/abs/2109.05446
如今,隐私保护对于 AI 系统变得日益重要。由于推荐系统(如新闻推荐)需要使用大量用户的行为数据进行模型训练和推理,因此满足用户数据隐私保护的需求也十分迫切。联邦学习是一种可以实现隐私保护的模型训练框架,能够在用户数据不离开本地的前提下,联合大量用户进行协同模型训练。
FedRec[1] 就是一种基于联邦学习的隐私保护新闻推荐方法,如图5所示。该方法会在每个用户端上基于用户本地存储的行为数据,来训练得到本地新闻推荐模型的梯度,然后再将其上传到服务器端进行聚合,并更新服务器端上的全局新闻推荐模型,进而再分发给用户端。由于推荐系统采用的模型越来越大,并且该方法的模型训练主要在用户端上进行,因此会给用户端(如手机)带来巨大的计算负担。同时,用户端和服务器端还需要对所有模型的参数进行多轮交互,这也使得通信的开销非常巨大。
图5:FedRec[1]框架
为了解决这一问题,微软亚洲研究院的研究员们提出了高效的新闻推荐隐私保护框架 Efficient-FedRec。与联邦学习在用户端上训练全部模型的做法不同,研究员们提出将计算任务进行划分和均衡,让用户端和服务器端同时参与到模型训练中来,如图6所示。
图6:Efficient-FedRec 框架
具体来说,研究员们将新闻推荐的模型拆分为用户模型和新闻模型。用户模型的目标是从用户行为中建模用户兴趣,一般模型较为轻量,但是涉及隐私敏感的用户行为数据。新闻模型的目标则是从新闻文本中建模新闻的语义内容,模型通常比较大,但是处理的新闻文本数据在隐私上不敏感。所以,研究员们将轻量级的、隐私敏感的用户模型放在用户端上训练;将重量级的、隐私不敏感的新闻模型放在服务器端上训练,从而能够显著降低用户端的计算开销以及用户端和服务器端之间的通信开销。
Efficient-FedRec 的每一轮模型训练由以下4步组成:
(1)服务器端随机选取一部分用户,并向他们发送全局用户模型和他们交互过的新闻表示。
(2)每个用户端使用自己本地的隐私数据进行训练,计算出用户模型和新闻表示的梯度。
(3)服务器端聚合用户模型和新闻表示的梯度。
(4)服务器端使用聚合后的用户模型梯度来直接更新用户模型,使用新闻表示梯度计算新闻模型的梯度来更新新闻模型。更新后的新闻模型将被用于计算出新的新闻表示。
此外,为了不暴露用户交互历史,研究员们使用了 Secure Aggregation 来计算不同用户间交互新闻的并集。用户通过请求并集中的新闻表示来保护自己的交互历史记录。同时,Secure Aggregation 也被用于聚合不同用户的梯度来保护用户本地梯度中的隐私信息。
研究员们基于 MIND 和 Adressa 数据集进行了实验。表4中的结果显示,Efficient-FedRec 能够取得与依赖中心化数据存储的新闻推荐方法相似的推荐性能。
表4:不同方法在 MIND 和 Adressa 数据集上的性能比较
图7进一步比较了 Efficient-FedRec 和其他隐私保护新闻推荐方法的计算和通讯开销。实验结果表明 Efficient-FedRec 可以有效地减小用户端的计算和通讯负担。
图7:不同隐私保护方法在 MIND 数据集上的计算和通讯开销比较
论文链接:
https://arxiv.org/abs/2102.09206
近年来,在搜索、推荐以及问答等多种场景中,Dense retrieval 技术受到了越来越多的关注。在这些场景的第一阶段检索中,Dense retrieval 模型通常采用双塔结构,利用编码器模型首先将用户侧(查询、浏览历史或问题)和语料库侧(文档或文章)分别编码为学习表示空间中的独立向量,然后采用简单的相似度计算(例如点积或余弦相似度)来进行高效检索。但以往的研究表明,常用的预训练语言模型在 Dense retrieval 场景中,对文本的编码并不是十分有效,尤其是当文本序列大多长于128个词时。
对此,本文提出了一种生成高质量文本表示的预训练语言模型 SEED-Encoder,用于大规模密集向量检索的场景。SEED-Encoder 采用自编码器结构,利用一个编码器生成文本表示,以及一个解码器基于该文本表示重构原始文本,从而促使编码器生成更有信息量的文本表示。
然而理论分析和实验说明,由于强大的解码器自身可能学习到一定的语言范式,因此解码效果越好并不一定意味着生成的表示越好。具体来说,将解码器的重构文本的损失期望拆解为解码器预测的词分布与真实分布之间的 KL 散度,和预测词与之前已知的文本内容的条件熵之后,微软亚洲研究院的研究员们发现当解码器的拟合能力足够强大或者当前词与之前可见的文本内容依赖性足够强时,即使编码器生成的文本表示没有任何信息,解码器的解码损失也可以很小。
因此本文提出限制解码器的参数以及注意力可见范围,构造弱解码器来解决这个问题。在预训练过程中,本文的训练目标除了 MLM loss 之外还有基于编码器生成的文本表示的弱解码器重构损失。由于弱编码器参数量较少,不会在预训练过程中增加过多开销,同时在下游任务中只需要保留编码器,因此在下游任务上微调的开销与其他预训练语言模型一致,如 BERT。
图8:模型框架
大量实验表明,相比于其他预训练语言模型,SEED-Encoder 的效果有显著的提升;同时也减少了在下游任务上微调所需要的训练轮次,证明了本文所提出方法的有效性。
表5:实验效果
图9:BERT 与 Seed-Encoder 收敛过程对比
论文链接:
https://arxiv.org/abs/2104.08692.pdf
多语言文本到文本 Transformer(mT5)模型在多语言自然语言理解评测基准的各项任务上都表现优异。它继承了 T5 的特点,将自然语言处理任务统一建模为文本到文本问题,又展现了强大的跨语言迁移能力,提升了多语言自然语言处理任务上的效果。然而,如何利用翻译句对来提升 mT5 仍需要进一步研究。
在本篇论文中,微软亚洲研究院的研究员们提出 mT6,即利用翻译句对的多语言预训练文本到文本 Transformer。研究员们提出了三种文本到文本的跨语言预训练任务:机器翻译(Machine Translation, MT)、翻译对完形填空(Translation Pair Span Corruption, TPSC)、翻译完型填空(Translation Span Corruption, TSC)。不同于传统的完型填空任务,在 TPSC 和 TSC 任务中,模型学习会根据双语上下文进行完形填空,以此鼓励模型学习通用跨语言文本表示。
图10:该论文提出的三种跨语言预训练任务
相较于 mT5,mT6 在训练目标上也有所不同。研究员们提出了部分非自回归解码(如图11所示),将原目标文本分割为若干组,在解码过程中要预测的单词依赖于输入文本和仅在同组的目标文本,而不是全部已生成的目标文本。
图11:部分非自回归解码
mT6 在 XTREME 多语言理解评价基准的6项任务上均超越 mT5,并且联合使用 SC+TSC 和部分非自回归解码得到了最好的效果,如表6所示。
表6:mT6 在 XTREME 多语言理解评价基准上的表现
如表7所示,对于 Gigaword 多语言文本摘要任务,mT6 在3个语言上超越了 mT5,并且在低资源的场景下展现了更好的效果。
表7:mT6 在 Gigaword 多语言文本摘要任务上的表现
论文链接:
https://arxiv.org/abs/2104.08757
多语言预训练编码器(MPE)如 XLM-R 在诸多自然语言理解任务上表现出了出色的零资源跨语言迁移能力。然而,如何利用 MPE 实现机器翻译任务上的零资源跨语言迁移仍需要进一步研究。在本文中,微软亚洲研究院的研究员们探索并提出了提升利用 MPE 的机器翻译模型的零资源跨语言迁移能力的方法。仅仅利用一个多语言预训练编码器和一种语言对的平行语料,就可以使训练后的机器翻译模型支持100种源语言的翻译。大量实验表明,如果采用合适的微调训练的方式,利用 XLM-R 训练的翻译模型要比利用 mBART 具有更好的零资源跨语言迁移能力。
图12:机器翻译任务上的零资源跨语言迁移。
图中 NMT 模型只需要一个训练好的 MPE 和英德双语语料,训练后便可将100种源语言翻译到英语,而无需利用Fi, Hi, Zh等语言的单语或双语信息。
通过对比利用 MPE 训练 NMT 模型的不同方案,研究员们提出利用 MPE 初始化 NMT 模型的编码器和解码器 embedding 层,并在训练中保持固定;同时从零开始训练解码器。为了进一步提升模型的跨语言迁移能力,研究员们采用了两阶段的训练策略,并引入了增强模型容量的解码器和位置解耦型编码器。训练得到的模型编码器所产生的基于上下文的表示,含有更少的语言和位置相关的信息,从而获得了更强的跨语言迁移能力。
如表8所示,在利用多语言预训练模型 XLM-R 的诸多方法中,SixT 取得了最好的零资源跨语言迁移能力,在与训练数据的源语言距离较远的语言上也有较大的提升。
表8:不同方法在机器翻译任务上的零资源跨语言迁移能力比较(表中为 BLEU 分数)
SixT 比微调 mBART 的方法具有更强的跨语言迁移能力。CRISS 和 m2m-100 分别是当前先进的无监督和监督的多到多(many-to-many)机器翻译模型。在更少的训练数据下,SixT 在表中的多种语言到英语的翻译测试集上取得了与 CRISS 和 m2m-100 更好或相当的性能,如表9所示。
表9:本文提出的方法与其他多语言机器翻译模型的比较
如表10所示,一般来说,SixT 在与训练数据集源语言类似的语言上的迁移能力更强。在本文中,研究员们还提出利用 SixT 的零资源跨语言迁移能力实现低资源机器翻译的两个建议:一是更大的训练数据集迁移效果更好;二是尽量在与迁移的目标语言更相近的训练数据上训练。
表10:模型训练数据集语言对与跨语言迁移能力的关系
[1] Privacy-Preserving News Recommendation Model Learning, EMNLP 2020 Findings
你也许还想看: