论文发表于自然语言处理顶会ACL-2022(原文链接)。本文引入知识神经元 (Knowledge Neuron) 的概念,初步研究了预训练Transformer中是如何存储事实知识的:

  1、通过研究预训练的BERT,本文发现预训练语言模型的知识是独立存在于中间神经元激活中的

  2、可以通过编辑FFN层权重来修改模型对相应知识的记忆,而不用进行微调。

  阅读本文请同时参考原始论文图表。

思想

  本文发现Transformer的知识在模型内部被其中的FFN模块的知识神经元所表示,所谓的知识神经元 (Knowledge Neurons) 即为输入通过第一个权重$W_1$再激活后的向量,如图1和图2所示。

  因此提出一种特征归因方法来定位能表示某个知识的知识神经元,知识通过一个事实三元组来表示$(h,r,t)$。本文使用某个包含 $h,r$ 的prompt让模型来预测 $t$ ,搞成一个完形填空任务的形式。

知识归因

  对于某个神经元$w_i^{(l)}$,当其为某个值$\hat{w}_i^{(l)}$时,根据某个待完形填空的prompt $x$,模型预测正确答案$y^*$的概率定义为文中式(4)。则这个神经元$w_i^{(l)}$的归因分数定义为文中式(5),也就是一个集成梯度 (Integrated Gradients)。可以理解为这个神经元从无到有对模型输出正确答案的平均影响程度。这个积分文中实现为求和的形式,把求和区间定义为20.

知识神经元精炼

  选择归因分数大于阈值$t$的神经元,得到神经元粗糙集作为某个prompt的答案的知识归因集合。一个prompt可能有多个归因分数大于阈值$t$的神经元被定位,但它们并不一定都是正确答案的知识神经元,也可能是其它信息。为了正确定位正确答案的知识神经元,文章使用多个有相同正确答案的prompt来得到多个知识神经元粗糙集,然后选择这些粗糙集中共享比例大于$p$的神经元作为正确答案的知识神经元,即3.3所谓的知识神经元精炼。

实验

实验设置

  实验在BERT模型上进行,每个注意力模块隐藏层元素为768,FFN隐藏层元素为3072。

  将归因分数阈值$t$设为最大归因分数的0.2倍,神经元共享比例阈值 $p$ 初始化为0.7,然后在实验过程中逐步增加或减小这个值,直到知识神经元数量在[2,5]以内。

  实验基于PARAREL数据集,PARAREL数据集由专家策划,包含来自T-REx数据集(ElSahar et al., 2018)的38个关系的各种提示模板。关系事实模板如表1所示。

实验结果

知识神经元识别结果

  图3:发现大部分与事实相关的知识神经元分布在模型的顶层,也就是最后几层。

  表2:关系事实识别出来的平均知识神经元数量,baseline是直接使用知识神经元本身$\overline{w}_i^{(l)}$作为归因结果。其中inrta-rel和inter-rel分别表示有相同关系的事实对和有不同关系的事实对,可以看出本文的归因方法能有效识别出相同关系事实对共享的知识神经元,并且不同关系的事实对没有贡献的知识神经元。

  图4:通过抑制定位的知识神经元,即直接设置为0,发现本文归因方法有效使正确答案的预测概率降低,平均降低29.03%。而beseline几乎无效。

  图5:通过增强定位的知识神经元,即将激活值加倍,发现本文归因方法有效使正确答案的预测概率提升,平均提升31.17%。而baseline几乎无效。

研究什么样的prompt能激活知识神经元

  通过在Bing上爬取,构建了一个新的更广泛的数据集BINGREL,抓取数据如下:

  1、限制特定头尾实体对的句子,每个对最多抓取10句。共抓取210217句。

  2、仅限制头实体的句子,每个头实体最多抓取10句。共抓取266020句。

  根据远程监督假设,第一类文本通常包含完整的关系事实,而第二类不一定包含。实验分为三组:

  $\mathcal{T}_1$:mask第一类文本的尾实体获得表达知识的prompt。

  $\mathcal{T}_2$:随机mask第二类文本部分单词,作为对照组。

  $\mathcal{T}_3$:使用随机采样的prompt,作为另一个对照组。

  表4:展示了三个组的知识神经元定位结果,发现知识神经元更容易被表达知识的prompt即$\mathcal{T}_1$激活。此外,由于知识神经元是通过PARAREL数据集提取的,而没见过BINGREL,所以展现了提取的知识神经元的泛化能力,它的确表达了某种知识。

  表3:展示了在相应知识神经元上平均激活值(注意不是归因值)最大和最小的prompt,发现表达相应知识的prompt能使相应的知识神经元激活值更大。

事实更新与关系擦除

  表6:将$<h,r,t>$对应的知识神经元选定的FFN的第二个线性权重的slots,修改为$<h,r,t'>$对应的slots时的结果:将原始预测的$t$修改为$t'$的比例 (Change rate)、使$t'$的预测概率最大的成功率 (Success rate)、有相同关系$r$的其它prompt的PPL的提升(Delta Intra-rel. PPL)、不同关系的其它prompt的PPL的提升 (Delta Inter-rel. PPL)。后面两个表示了这样的修改操作对无关事实的影响程度,越小越好。其中修改操作就是5.1的Methods,但是为什么要用词嵌入来修改,还不太清楚。PPL (Perplexity)就是模型正确预测一个句子的概率的倒数的表征,越小越好。

  表5:展示了将某个关系的知识神经元对应的$FFN^{(val)}$擦除(直接设置为0向量)后,模型对有该关系的知识的预测的PPL大幅增加,而没有该关系的知识的预测的PPL增加不大。说明定位到的知识神经元的确能独立地表征相应的关系概念,并且删除后不会影响其它概念。定位方法如5.2 Methods所示。

未来工作

  1、弄清楚知识神经元在多语言预训练模型中的工作机制。感觉可以用有相同事实的不同语言prompt来归因。(本文指出)

  2、归因方法还可以进一步改进,毕竟文中的结果指标并不高。

  3、大模型中的知识神经元机制研究。

  4、知识神经元仅仅出现在FFN中吗?自注意力层是否也存在?两者是否有某种交互作用?

论文解读:Knowledge Neurons in Pretrained Transformers的更多相关文章

  1. 【论文翻译】KLMo: Knowledge Graph Enhanced Pretrained Language Model with Fine-Grained Relationships

    KLMo:建模细粒度关系的知识图增强预训练语言模型 (KLMo: Knowledge Graph Enhanced Pretrained Language Model with Fine-Graine ...

  2. 自监督学习(Self-Supervised Learning)多篇论文解读(上)

    自监督学习(Self-Supervised Learning)多篇论文解读(上) 前言 Supervised deep learning由于需要大量标注信息,同时之前大量的研究已经解决了许多问题.所以 ...

  3. 论文解读丨基于局部特征保留的图卷积神经网络架构(LPD-GCN)

    摘要:本文提出一种基于局部特征保留的图卷积网络架构,与最新的对比算法相比,该方法在多个数据集上的图分类性能得到大幅度提升,泛化性能也得到了改善. 本文分享自华为云社区<论文解读:基于局部特征保留 ...

  4. 自监督学习(Self-Supervised Learning)多篇论文解读(下)

    自监督学习(Self-Supervised Learning)多篇论文解读(下) 之前的研究思路主要是设计各种各样的pretext任务,比如patch相对位置预测.旋转预测.灰度图片上色.视频帧排序等 ...

  5. 论文解读第三代GCN《 Deep Embedding for CUnsupervisedlustering Analysis》

    Paper Information Titlel:<Semi-Supervised Classification with Graph Convolutional Networks>Aut ...

  6. 论文解读(IDEC)《Improved Deep Embedded Clustering with Local Structure Preservation》

    Paper Information Title:<Improved Deep Embedded Clustering with Local Structure Preservation>A ...

  7. 论文解读(KP-GNN)《How Powerful are K-hop Message Passing Graph Neural Networks》

    论文信息 论文标题:How Powerful are K-hop Message Passing Graph Neural Networks论文作者:Jiarui Feng, Yixin Chen, ...

  8. itemKNN发展史----推荐系统的三篇重要的论文解读

    itemKNN发展史----推荐系统的三篇重要的论文解读 本文用到的符号标识 1.Item-based CF 基本过程: 计算相似度矩阵 Cosine相似度 皮尔逊相似系数 参数聚合进行推荐 根据用户 ...

  9. CVPR2019 | Mask Scoring R-CNN 论文解读

    Mask Scoring R-CNN CVPR2019 | Mask Scoring R-CNN 论文解读 作者 | 文永亮 研究方向 | 目标检测.GAN 推荐理由: 本文解读的是一篇发表于CVPR ...

  10. AAAI2019 | 基于区域分解集成的目标检测 论文解读

    Object Detection based on Region Decomposition and Assembly AAAI2019 | 基于区域分解集成的目标检测 论文解读 作者 | 文永亮 学 ...

随机推荐

  1. 如何限制goroutine的数量

    为什么要控制goroutine的数量? 在我们开发过程中,如果不对goroutine加以控制而进行滥用的话,可能会导致服务整体崩溃.比如耗尽系统资源导致程序崩溃,或者CPU使用率过高导致系统忙不过来. ...

  2. 创建的容器都是没有指定 volume的,为什么docker volume ls命令会看到很多volume列表?

    有那么一天,停止了世界所有的容器(在你电脑上),执行以下命令 docker volume ls docker volume ls | wc -l 哎呦,我去,怎么这么多啥玩意,再执行以下命令看占了我多 ...

  3. 从客户端(XXX)中检测到有潜在危险的 Request.Form 值

    维护别人的某功能模块的时候,页面返回如下错误信息: [HttpRequestValidationException (0x80004005): 从客户端(TextBox1="<?xml ...

  4. 记一个.NET AOT交叉编译时的坑

    记一个.NET AOT交叉编译时的坑 背景: 使用.NET9开发的Avalonia项目需要部署到Linux-arm64 踩坑: 根据官方AOT交叉编译文档配置后执行打包 dotnet publish ...

  5. 一次windows下使用cmake遇到的问题

    背景 在windows下的cmake和mingw提供的make,在windows环境下进行了简单尝试,结果发现make的时候失败: #include <iostream> int main ...

  6. MongoDB导出/导入操作

    1.从测试环境数据库导出数据 2.导入数据到本地数据库 mongoimport --host localhost --port 27017 --username root --password 123 ...

  7. MySQL的并发问题的解决方案

    怎么解决脏读.不可重复读.幻读这些问题呢?其实有两种可选的解决方案 方案一.读操作利用MVCC(多版本并发控制),写操作进行加锁. 所谓的MVCC,就是生成一个ReadView,通过ReadView找 ...

  8. Spring Cloud Gateway网关

    一.Spring Cloud Gateway组件的核心是一系列的过滤器,通过这些过滤器可以将客户端发送的请求由(路由)转发到对应的微服务 网关的执行过程:当一个请求到达网关,网关利用断言,查看该请求是 ...

  9. @Scheduled 定时任务自定义

    简介 @Scheduled 定时任务自定义可以通过SchedulingConfigurer实现. SchedulingConfigurer 是 Spring Framework 中的一个接口,用于配置 ...

  10. 如何应对ADAS/AD海量数据处理挑战?

    随着软件定义汽车的发展,车辆生成的数据量也以前所未有的速度不断增加.这些数据包含广泛的信息,包括传感器数据.遥测数据.诊断数据等.在开发过程中,有效处理这些数据并从中获得见解至关重要. 对于原始设备制 ...