知行编程网知行编程网  2022-03-28 19:00 知行编程网 隐藏边栏 |   抢沙发  76 
文章评分 0 次,平均分 0.0

BERT模型在NLP中目前取得如此好的效果,那下一步NLP该何去何从?

编辑:忆臻

https://www.zhihu.com/question/320606353

本文仅作为学术分享,如果侵权,会删文处理



笔者 在知乎上发现一个名为"BERT模型在NLP中目前取得如此好的效果,那下一步NLP该何去何从?"的话题,很有意思。下面分享一些大佬们的见解,希望对你当前的研究有所帮助。


知乎高质量回答


作者:霍华德
https://www.zhihu.com/question/320606353/answer/658786633


亲,我觉得BERT只是开始。BERT是一个简洁优雅大力出奇迹的工作,我是非常欣赏的。我觉得可以把BERT比喻成NLP界“ResNet”,一系列更大的革命在等着我们。


1. 更大的BERT

一方面是BERT才十二层,相比CV的ResNet等上百层网络,把BERT提升到上百层上千层,会怎样?

一方面transformer对长文本,实际上非常不友好,计算量非常大,如何让BERT应付长文本的调整。


2. 更丰富的信息

此前BERT是基于字的,如果使用n-gram会怎么样,所以有n-gram BERT。

BERT是基于文本的,如果引入外部知识会怎么样,所以有了百度的ERNIE


3. 更快的BERT

BERT另外一大挑战是如此大,如此重的模型,如何上线?

用小模型,如三层transformer就获得十二层transformer的效果?这是模型蒸馏的角度。

用更少的参数?剪去多余无效的参数?这是模型剪枝。

用更低的精度呢?INT8行不行?三值网络行不行?二值网络行不行?

精简transformer呢?研究更高效的transformer?


作者:刘知远https://www.zhihu.com/question/320606353/answer/707354295

我总结BERT所代表的趋势是,深度学习从特定任务有监督训练数据到非特定任务无标注文本数据的推广,将触手从有监督的小数据扩展到了没有专门标注的大数据上。深度学习愈发成为从各类型文本数据中“萃取”有用信息的利器,将数据驱动的威力发挥得更加淋漓尽致。


沿着数据驱动的路线,有很多可以推进的方向。一方面,人们很自然想到在BERT基础上研究特定任务的适配Fine-Tune模型,这在进入2019年的arxiv论文已经初见端倪,特别是在Few Shot Learning等场景下的小数据任务上效果尤为明显。另一方面是在BERT思想的启发下,是否可以在Mask LM和Next Sentence Prediction之外设计更多学习任务,将文本数据中的更多有用信息学习进来,例如百度ERNIE考虑实体的边界信息,跨语言信息,文本的其他元信息或结构信息(如链接、作者、时间、标签等等),相信在未来1-2年内都会如约而至。


由于我主要从事知识图谱与自然语言处理的研究,所以对结构化知识格外感兴趣。我总觉得深度学习仅从文本数据中真正地理解人类语言。我认为,将人类知识符号化表示出来并与深度学习融合,是实现可解释、有理解能力的自然语言处理的必经之路。之前报告中经常举如下这个例子,可以一定程度说明,大规模无标注文本中除了自身蕴藏的语言知识外,还关联着各种类型的人类知识。由于这些知识并不完全在文本数据中,无法仅用数据驱动的深度学习来习得。


BERT模型在NLP中目前取得如此好的效果,那下一步NLP该何去何从?


聚焦到以BERT为代表的文本预训练模型而言,当务之急是如何将大规模的外部知识图谱(如语言知识、常识知识、世界知识、行业知识等)融合进来,提升模型的可解释性和鲁棒性。我们在ACL 2019上的ERNIE(https://arxiv.org/abs/1905.07129)是非常初步的尝试(这里还有个与百度ERNIE重名的小插曲,详情参见我在另一个问题下的回答:https://www.zhihu.com/question/324223170/answer/686289852)。


总之,我深信知识图谱+深度学习大有可为,我目前设想的技术体系如下图所示,希望能够吸引更多朋友的兴趣,共同探索这个充满未知的领域。


BERT模型在NLP中目前取得如此好的效果,那下一步NLP该何去何从?



作者:Towser
https://www.zhihu.com/question/320606353/answer/706802508


上面 @霍华德 说的『更大(堆层数)的 BERT、更小(蒸馏、量化等)的 BERT、不同的建模层次(char/subword/word/n-gram/entity)』其实都是针对 BERT 模型本身的改进,但其实把眼光放在整个 NLP 领域,可做的事情还有很多。


1、一个趋势是做语言生成。NLP 分为 NLU(理解) 和 NLG(生成)两部分,BERT 只做了 NLU 的部分,NLG 依然有广阔的探索空间。(注:严格来讲 BERT 可以用来做生成,Cho 有一些这方面的探索,但是从实用的角度讲我不是很看好用 BERT 做生成)

GPT 确实是一个生成模型,但是 free generation 的价值也有限。conditional generation 可能会更重要,例如机器翻译、文本摘要都是在某些约束条件下的生成。

所以,如何在条件生成任务上更好地利用 BERT 的能力依然是一个值得探索的方向。这方面的工作例如微软的 MASS 和 UNILM(其中后者统一了理解和生成)。


2、随着语言生成的进展,测评指标的重要性又会再次回到人们的视野。做语言理解的测评相对简单,计算一下 F-score/Accuracy 就可以;但是语言生成怎么评价呢?BLEU 在机器翻译领域的推动作用有目共睹,如果做一些全新的语言生成任务(例如命题作文,给几个关键词写出来一篇文章)又该怎么评价呢?SJTU Apex Lab 做的 Texygen 是关于这方面的很好的探索,伴随着 SeqGAN 的影响力,其中一些评价方法已经被很多文章用到了。


3、同样,做生成也会涉及到新的解码方法。不管是 RNN/CNN seq2seq 还是 Transformer,大部分模型的解码方法都是 autoregressive decoding,一方面严重制约了生成的速度,另一方面 teacher forcing 引入了 train-test skewness/exposure bias。有没有可能用其他方式来解码?@Jiatao Gu 在这方面有很多很好的工作,例如 Non-autoregressiver Transformer, INDIGO, Levenshtein Transformer。尤其是最后一项工作,很可能更好地辅助人类翻译的工作过程,实现 human-in-the-loop 的干预。


4、探索非 MLE 的训练目标,进一步加深对 RL/GAN 的理解。3 中所说的 train-test skewness 的问题主要是由 teacher forcing 带来的,除了并行解码以外,GAN + RL 也可以解决这个问题。

SeqGAN 和 RAML 是这方面影响比较大的工作。总的来说文本上 GAN 的训练很困难,很多都依赖于 MLE 预训练,不过现在已经有了一些无需预训练的工作,例如 ScratchGAN 和 CoT。严格来讲,后者其实不能算是 GAN,他用的不是 discriminator 而是 mediator,用来辅助 generator 的学习(补一个八卦:作者本来想给模型起名叫 generative cooperative network,可惜这个名字已经被别的论文占了)。但是 GAN 中的 D 难道真的就是 discriminator 吗?GAN 被研究了这么多年,现在大家都知道需要平衡 G 和 D 的能力,如果 D 太强会导致 G 学不到有用的东西,GAN 中的 D 必须做一个引导者(提供有用的梯度信息给 G)而非仅仅是一个评判者。


不过,这个研究方向的主要问题在于,目前为止我们并不清楚这个领域真正要解决的问题是什么:train-test skewness 其实并没有那么严重,GAN 生成的文本也没有期望中的 diversity。所以真正重要的问题到底是什么?只有想清楚这个问题,才能做出更有价值的研究。


5、最后就是留给后端框架/硬件厂商的机会了:BERT 出来这么久了,大家跑 BERT 一般都还是用 BERT-base,因为 BERT-large 在常规的 12~16 GB 显存的卡上实在是跑不动。然而神奇的是,每个 TPUv3 core 也只有 16 GB 存储,却能够用来训练 BERT-large,只能说 TPU 后端存储优化得足够好(事实上很可能是 XLA 相关的优化)。


各大深度学习框架愿意对此做出什么样的优化?此处疯狂暗示 MXNet 和 TVM,弯道超车的机会要抓住啊。@陈天奇,@李沐

batch size 会显著影响模型训练效果,这一点在 BERT 和 ScratchGAN 都非常明确地被指出了。PyTorch 还好,可以做 gradient accumulation 来缓解;TF 做 gradient accumulation 何止是一个难写可以概括的,不知道 TF 的开发团队对此有什么想法?


对硬件厂商来说,随着大模型越来越多,是否准备出更大显存的显卡(FLOPS 略低一些甚至都关系不大)来占领一部分市场?此处疯狂暗示 AMD(32GB 显存的 V100 好贵啊= =)。当然,ASIC 也有一定的发展空间。我个人不太看好大模型在端上部署,但是专用的深度学习训练芯片可能还是值得一做的。



作者:周杰
https://www.zhihu.com/question/320606353/answer/655856613


目前可以尝试的方向:

  1. Multi-task

  2. Multi-model (多模态,NLP结合图片,知识,语音等)

  3. 领域相关的预训练

  4. BERT在不同领域,不同任务的尝试,每一层学习知识的理解。

  5. GNN(Graph Neural Network: GNN, GCN and GAT), RL (Reinforcement Learning),meta learning and few-shot learning. 结合知识图谱,常识等内容。

  6. 模型可解释性。

  7. NLP与其他任务的结合,如情感分类与问答,检索,推荐等的结合,甚至结合图像情感分类。

以下摘抄自:

阿里云云栖社区:通用句子向量漫谈

  1. 引入领域知识、语法句法知识、业务知识、常识,训练更好的句子表征。领域知识包含知识图谱等结构化数据,给定一个知识图谱和一个自然语言问题,如何将该问题转化为机器能够理解和执行的语义表示,受到了来自全世界研究者的广泛关注和深入探索。

  2. Meta-learning。对于低资源的语言或长尾问题,样本稀缺,Meta-learning作为解决Few-shot问题的方法之一已在CV领域取得了诸多进展,而在NLP领域仍存在广阔的空间。

  3. 图神经网络。图作为一个可推理,研究人员开始研究如何将卷积神经网络迁移到图数据上,涌现出ChevNet、MoNet、GCN、GAT等一系列方法,在基于图的半监督分类和图表示学习等任务中表现出很好的性能。句子本身是具有语法结构信息的,基于图神经网络的句子表征已经在一些特定的任务如事件抽取、关系抽取取得了不错的效果,是否有进一步的扩展空间值得研究。

  4. 多模态。婴儿在掌握语言功能前,首先通过视觉、听觉和触觉等感官去认识并了解外部世界。语言并不是人类在幼年时期与外界进行沟通的首要手段。因此,构建通用人工智能也应该充分地考虑自然语言和其他模态之间的互动,并从中进行学习,这就是多模态学习。

  5. 可解释性。词、句子表征一直都是大黑盒,虽然存在一些学者对向量维度进行可解释信性研究,然而如何平衡可解释和性能,如何将NLP模型预测结果解释给客户是一个方向。


目前的尝试:

本人主要目前主要做一些Aspect Based Sentiment Classification的工作,也就对目前BERT结合该任务进行的一些尝试,实验可以发现目前在这个任务中,只要把Sentence和aspect看成两句话,然后得到768维的表示输入到一个MLP就可以在Restaurant14和Laptop14获得84.5和79的准确率(直接在test上取最好),而目前没有BERT的模型效果差不多只有80-82和72-76之间。同时在BERT获得词向量基础上叠加复杂的网络对效果的提升很小,目前ASC结合BERT的论文有三个:

  • AEN_BERT / BERT_SPC: Attentional Encoder Network for Targeted Sentiment Classification. arXiv preprint 2019.

  • BERT_PT: BERT Post-Training for Review Reading Comprehension and Aspect-based Sentiment Analysis. NAACL 2019. 

  • BERT-pair: Utilizing BERT for Aspect-Based Sentiment Analysis via Constructing Auxiliary Sentence. NAACL 2019. 

— 完 —

为您推荐

五月GitHub最热机器学习项目都在这里

PyTorch内部机制,来自核心开发者的全面解读

AI高数解题神器:轻轻一拍,答案就来 

Pythia:Facebook最新开源的多任务学习框架

机器学习必学10大算法

本篇文章来源于: 深度学习这件小事

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享