其他分享
首页 > 其他分享> > Dive into BERT:语言模型与知识

Dive into BERT:语言模型与知识

作者:互联网

写在前面

最近在看的主要是跟知识相关的一些东西,包括回顾了一些知识表示模型呀,一些大规模的语言模型如何锦上添花融入外部知识的方法呀,如果你感兴趣的话可以直接去之前几篇文章里面瞄一眼。今天就以 知识 为切入点来更深入地剖析一下最近比较火的预训练模型。

√ Language Models as Knowledge Bases?

√ Linguistic Knowledge and Transferability of Contextual Representations.

√ What does BERT learn about the structure of language?

还有很多有意思的研究,可以去清华大学整理的PLMpapers仓库找找看。

1、Language Models as Knowledge Bases?(EMNLP2019)

语言模型可以当做是一种知识库吗?

知识库是一种格式化的知识存储与应用的有效方案。在实际的知识库构建或者扩充过程中,我们都会用到一系列复杂的NLP技术,例如实体抽取、指代消解、实体链接和关系抽取等等。这些pipeline的组件不可避免地会需要监督数据(大家都知道在NLP里标注数据有多难得到),而且这个过程很容易产生error propagation。相反,语言模型在pretrain阶段被喂入了大量的数据(无监督),可以从中学习到有效的关系型知识,而且像BERT这样的通过[MASK]操作可以更专注于提取类似知识库的关系知识。

图片

于是,作者通过将预训练语言模型与传统关系抽取方法获得的知识库进行对比,来探索预训练模型在何种程度上存储事实和常识知识。主要有:

为此,作者们提出了LAMA(LAnguage Model Analysis) probe来验证上述问题。用于测试的知识包括:Wikidata 中实体之间的关系;ConceptNet 概念之间的常识知识;回答 SQuAD 中自然语言问题所必需的知识。认为,如果语言模型能够通过完形填空的形式预测出正确三元组则表明其学习到了这个知识。举个栗子,对于三元组(Dante, born-in, Florence),如果语言模型可以预测出给定句子Dante was born in ____中的空格为Florence,则为正确。

语言模型

下图为本文中参选测试的语言模型(HAHA相信大家肯定都非常熟悉啦,ps. 第一个是fairseq库实现的多层门控卷积模型)。最后比较的指标是rank-based metrics,并计算每个关系的结果以及所有关系的平均值。使用precision at k (P@K)

图片

知识来源

为了验证不同的模型不同的存储知识能力,当然需要尽可能地模拟现实中多种多样的知识来源。

结论

图片

所以看下来大规模预训练模型和知识库还是可以有抗衡性的(怎么好像跟GPT-V2的思想有点异曲同工),毕竟文中参与对比的模型都是未经过特定任务领域微调的。相比于知识库而言,这种语言模型作为知识存储具有的优势主要在灵活便捷,易于扩展到更多数据,且不需要人工标注语料。但同时也仍然存在很多问题,比如N对M关系。

Code Here

PS. 最近几天新出了一篇研究 BERT is Not a Knowledge Base (Yet): Factual Knowledge vs. Name-Based Reasoning in Unsupervised QA 反对了Language Models as Knowledge Bases的观点,认为BERT等的表现是由于对实体名称(表面形式)进行推理,例如猜测具有意大利语名称的人母语为意大利语,而不是模型保存了事实知识。实验中当过滤掉某些容易猜测的事实时,BERT的精度会急剧下降。

2、Linguistic Knowledge and Transferability of Contextual Representations(NAACL2019)

预训练模型的上下文相关词向量表示(CWR)在广泛的NLP任务中取得良好的性能,表明它们编码了必要的知识。于是作者们对ELMO、GPT、BERT三种具有代表性的语言模型,设计了17种不同的探测任务来研究模型编码的语言知识及其可迁移性。

任务

先来看看都有哪些任务吧

Token Labelling

Segmentation

Pairwise Relations

探索单词之间关系的信息。

结果与讨论

图片

上图是各个模型在设计的各类任务上的表现,我们结合作者开篇提及的问题来一一分析:

CWR捕获到了哪些语言信息,又遗漏了什么?

在编码器的表示层中,可转移性如何以及为什么会发生变化?

图片

预训练任务的选择对语言捕获知识和迁移能力有何影响?

图片

作者们研究了基于ELMO模型的不同预训练任务后模型表现发现:

Code Here

3、What does BERT learn about the structure of language?(ACL2019)

看了上面那篇突然又想起尘封在to read list里面的这一篇文章,主要内容是探索BERT的每一层都编码了什么知识信息。

Phrasal Syntax

image.png

图片

Probing Tasks

为了进一步了解BERT每一层捕获的不同类型语言知识,作者们设计了三大类总共十个句子级别的探测任务:Surface(表层),Syntactic(句法)和Semantic(语义),可以发现比较浅层的信息对Surface任务会更有效,中层bert的信息对Syntactic任务比较有效,而高层的信息对semantic任务比较有效。另外,作者发现未经训练的BERT高层网络在预测句子长度任务上效果比经过训练的BERT要好,这说明untrained BERT获取更多的是表层特征知识,而训练之后的BERT获取了更多复杂知识,这是以牺牲表层信息为代价的。

图片

Subject-Verb Agreement

这是一个属于句法级别的任务,主要是根据名词单复数来预测谓语形式是否和主语一致,一般而言主语和谓语之间的名词个数越多,该任务就越难。从下表的试验结果可以看出(每一列是主谓之间的名词个数,每一行是网络层):

图片

Compositional Structure

作者使用Tensor Product Decomposition Network(TPDN)来探索BERT模型学习到的组合结构信息,发现通过注意力机制可以学习到输入的树形结构,利用attention head的权重,可以重建出dependency tree

图片

Code here


对于一个模型,按照官方README的步骤去应用它仅仅是最基础的一步,还需要去深层次地剖析它,一方面去帮助我们理解为什么它可以work可以成功,另一方面也可以让我们了解其局限性进而研究更多更有效的方法。Enjoy~

以上~
2019.11.16




本文由作者授权AINLP原创发布于公众号平台,点击'阅读原文'直达原文链接,欢迎投稿,AI、NLP均可。




关于AINLP


AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP君微信(id:AINLP2),备注工作/研究方向+加群目的。


图片


标签:BERT,知识库,语言,模型,Dive,知识,任务,into
来源: https://blog.51cto.com/15060464/2675593