你在使用哪种编程语言?快来投票,亲手选出你心目中的编程语言之王 了解详情
写点什么

叱咤风云的 BERT 为何败于商业环境?

2020 年 4 月 10 日

叱咤风云的BERT为何败于商业环境?

BERT 是 Google 去年发布的自然语言处理模型,它在问答系统、自然语言推理和释义检测(paraphrase detection)等任务中取得了突破性的进展。由于 BERT 是公开可用的,它在研究社区中很受欢迎。BERT 的全称是 Bidirectional Encoder Representation from Transformers,即双向 Transformer 的 Encoder。但是,在动态的商业环境中部署基于 Transformer 的大型模型 BERT,通常会产生较差的结果。这是因为商业环境通常是动态的,并且包含了推理和训练数据之间的连续域转换。Intel 人工智能实验室近日发表了一篇博文,阐述 BERT 在商用环境失败的原因以及解决对策。


本文最初发表在 Kdnuggets,经 Kdnuggets 官网授权,InfoQ 中文站翻译并分享。


基于 Transformer 的大型神经网络,如 BERT、GPT 和 XLNET,最近在许多自然语言处理任务取得了最先进的结果。这些模型之所以能够获得成功,得益于通用任务(如,语言建模)和特定下游任务之间的迁移学习。在有标记数据可用的静态评估集上,这些模型表现十分出色。然而,在动态的商业环境中,部署这些模型却通常会产生较差的结果。这是因为,商业环境通常是动态的,并且还包含推理和训练数据之间的连续域转换(例如,新主题、新词汇或新写作风格等)。


处理这些动态环境的传统方法是进行连续的再训练和验证,但这需要持续的手动数据标记,这既耗时,又昂贵,因此不切实际。在数据稀缺的商业环境中,有望实现更好的健壮性和可伸缩性的途径是,在微调阶段将与领域无关的知识嵌入预训练模型中。


预训练模型在低资源环境中表现出色

实际上,许多商业设置在多个领域中运行的是相同的任务。例如,考虑两种不同产品的情绪分析,如相机(领域 A)和笔记本电脑(领域 B),在这种情况下,用于不同领域的现有标记数据量通常很少,而且生成额外的标记数据既昂贵又不切实际。


与从头开始训练模型相比,预训练模型的一个主要优势在于,它们能够通过使用相对较少的标记数据来适应特定任务(见图 1)。这一优势在实际的多域环境中具有重要作用。



图 1:句子级情感分类任务的正确性与训练样本数的关系。基线蓝色表示从头开始训练,橙线表示对预训练 BERT 模型进行微调。来源:《将迁移学习用于小数据的自然语言处理》(Using Transfer Learning for NLP with Small Data)


但是,是什么使这种经过微调的预训练模型的增强功能在地数据环境中获得成功呢?部分原因在于,在大规模的预训练步骤中,网络学习了句法等结构化语言特征。由于语法是一种通用特性,因此它既是任务无关的,也是领域无关的。这种通用的“知识”有助于弥合不同任务和领域之间的差距,并通过微调步骤加以利用,以提高数据效率。


最近一篇题为《BERT 在看什么?》(What Does BERT Look At?) 的文章,为人们了解 BERT 在预训练期间学到的东西提供了一些线索。通过对 BERT 的自注意力机制的分析,可以看出,BERT 学到了大量的语言知识。例如,BERT 的一些注意力头(attention-heads)注意了动词的直接宾语、名词的限定词,如定冠词,甚至还有共指指称(coreferent mention)(见图 2)。值得注意的是,一个以无监督学习的方式训练的模型,在没有任何标记数据的情况下,能够学习语言的通用方面的知识。



图 2:左图:BERT 在第 8 层上的注意力头 10 注意了动词的直接宾语。右图:第 5 层上的注意力头 4 注意了共指指称。来源:《BERT 在看什么?》(What Does BERT Look At?)


预训练模型能解决动态商业环境的挑战吗?

在一些动态的商业环境中,根本不可能会生成任何有标记的数据。请考虑这样一个环境,其中新域经常被添加或更改。在这种情况下,不断标记新的训练数据,将是一项无效、且永无止境的任务。这些情况需要无监督的域适应系统,该系统使用来自一个域(源域)的现有标记数据进行训练,然后对来自另一个域(目标域)的未标记数据进行推理。


我们观察到,预训练模型在有少量目标域标记数据的情况下表现出色,但在目标语没有任何标记数据的情况下,情况会如何呢?预训练模型在这些环境表现如何?到目前为止,使用预训练模型与从头开始的训练相比,只有很小的改进(见图 3 中的蓝线和橙线)。使用标记的目标域数据(绿色条)对 BERT 进行微调,与仅使用源域数据(蓝色条和橙色条)对 BERT 进行微调,或从头开始训练 RNN ,这三者之间的巨大差距表明,在预训练期间,预训练模型学习到的信息比从头开始的训练有所增强,但是,当目标域中的标记数据不可用时,仅仅进行跨域扩展还是不够的。或者更直截了当地说,无监督领域适应问题仍然远远不能通过仅使用源域数据的微调预训练模型来解决。



图 3:在基于方面的情感分析(ABSA)任务上测量的源域数据设置与目标域数据设置,在 SemEval14 的任务 4 的子任务 1 中描述。其中:橙色条表示使用源域数据(笔记本电脑评论)从头开始训练 RNN,并使用目标域数据(餐馆评论)执行推理;蓝色条表示使用源域数据对 BERT 进行微调;绿色条表示使用目标域数据对 BERT 进行微调。


资料来源:Intel 人工智能实验室。配置:INtel Xeon E5-2600A v4 CPU @ 2.40GHz。Intel 于 2020 年 2 月 27 日完成测试。


缩小差距的一步:嵌入结构信息

那么,为了缩小域内环境和完全跨域环境之间的差距,我们可以做些什么呢?在 Yann LeCunChristopher Manning 之间的公开讨论中,Manning 认为,与缺乏结构信息的系统相比,提供结构信息可以使我们设计出从较少的数据中学到更多信息的系统,并且具有更高的抽象级别。这一观点,得到了自然语言处理社区的广泛支持。


事实上,最近的一系列的研究表明,使用结构信息(即句法信息),可以改进泛化模型。这种改进的泛化增强了域内设置模型的健壮性,对于跨域设置更是如此。例如,在介绍 LISA(基于语言学的自注意力,Linguistically-Informed Self-Attention)模型的最新著作中,作者表明,在跨域设置中,嵌入句法依存解析信息可以显著提高 SRL 任务的正确性。作者将句法信息直接嵌入到 Transformer 网络的注意力头中,并从头开始进行训练。


最近的另一项研究表明,在完形填空测试任务中,使用依存关系和共指链作为辅助监督嵌入自注意力模型比最大的 GPT-2 模型表现得更好。其他研究表明,对共指消解(coreference resolution)和神经机器翻译(Neural Machine Translation,NMT)等任务具有更好的泛化能力。


最近的这些进步,使我们离在数据稀缺的商业环境中实现更好的健壮性和可伸缩性更近了一步,但仍然存在一些有待解决的问题和挑战,需要自然语言处理社区来解决。应该使用什么类型的外部信息?这些信息应该如何嵌入预训练模型?


结 语

大型基于 Transformer 的预训练模型最近在许多自然语言处理任务取得了最先进的结果。这些模型是为一般的语言建模任务而训练的,它们学习语言的一些基本结构特征,这些特征使它们能够更好地跨域泛化。当给定少量标记的目标域数据时,它们在跨域设置中表现得非常好。但是,处理没有标记的目标域数据的动态跨域设置的挑战仍然存在。在微调阶段,将外部领域无关的知识(即句法信息),嵌入到预训练模型中,有望在数据稀缺的商业环境中实现更好的健壮性和可伸缩性。


作者介绍:


Oren Pereg、Moshe Wasserblat 与 Daniel Korat,供职于 Intel 人工智能实验室。


原文链接:


https://www.kdnuggets.com/2020/03/bert-fails-commercial-environments.html


2020 年 4 月 10 日 14:161556
用户头像
陈思 InfoQ编辑

发布了 576 篇内容, 共 209.7 次阅读, 收获喜欢 1206 次。

关注

评论

发布
暂无评论
发现更多内容

“海外同步优惠”与“中国专享折扣”十大必败榜抢先放送

爱极客侠

古北水镇的夜

张晓楠

生活 摄影

内存条的讲解

亚兰—硅的传奇official

原创 内存 硬件 计算机 哔哩哔哩

典型的大型互联网应用系统的技术方案和手段

架构师训练营第1期第四周作业二

道长

极客大学架构师训练营

记一次MySQL日期范围查询优化

Lin

MySQL SQL优化

讲一讲我所认为的「人生三最」,你或许能够参悟到什么

非著名程序员

程序员 个人成长 时间管理 精力管理

做好分库分表其实很难之二

架构师修行之路

微服务 分库分表

对不起,学会这些 Linux 知识后,我有点飘

cxuan

Linux 后端 操作系统 计算机

全屋智能2020第十三届(南京)国际智能家居展览会

InfoQ_caf7dbb9aa8a

从联想ThinkStation工作站,窥见工具文明的新纪元

脑极体

JDK 中的栈竟然是这样实现的?

王磊

Java 数据结构和算法

关于国际化语言 Intl

西贝

Java 前端 国际化 格式化

用NOSql给高并发系统加速

架构师修行之路

nosql redis 分布式 微服务

产品分析

时间是一个人最好的证明

产品经理 产品设计

2020第十三届(南京)智慧城市技术与应用产品展览会

InfoQ_caf7dbb9aa8a

架构师训练营第三周作业

Wee权

快讯2020第十三届亚洲国际物联网展览会-南京站

InfoQ_caf7dbb9aa8a

2020第十三届南京国际智慧新零售暨无人售货展览会

InfoQ_caf7dbb9aa8a

架构师训练营第 1 期 - 第四周学习总结

Anyou Liu

极客大学架构师训练营

java安全编码指南之:lock和同步的正确使用

程序那些事

java安全编码 java安全 java安全编码指南 java编码

MySQL事务隔离级别

长沙造纸农

MySQL 事务隔离级别 mysql事务 事务 MySQL 运维

震精,京东T8工程师每天熬夜到天明,竟只是为一套编程实战文档

周老师

Java 编程 程序员 架构 面试

LeetCode题解:111. 二叉树的最小深度,递归,JavaScript,详细注释

Lee Chen

前端进阶训练营

Apache Doris在云真信智能决策分析平台的应用实践

DorisDB

数据库 数据仓库 金融科技

LeetCode题解:104. 二叉树的最大深度,递归,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

架构师作业第三周学习总结

Wee权

20年开源老司机手把手教你玩开源——openEuler入门指南

openEuler

Linux 开源 系统操作

坚持写技术博客一年能有多少收获!

小傅哥

Java 面试题 架构师 编程经验 技术博客

2020南京国际工业互联网及工业通讯展览会

InfoQ_caf7dbb9aa8a

手把手教你AspNetCore WebApi:Serilog(日志)

AI代笔

ASP.NET Core web api serilog

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

叱咤风云的BERT为何败于商业环境?-InfoQ