预训练模型对实体的表示能力差?一个简单有效的解法来了(开源)

本文转载自公众号夕小瑶的卖萌屋,专业带逛互联网算法圈的神操作

-----》我是传送门

关注后,回复以下口令:

回复【789】 :领取深度学习全栈手册(含NLP、CV海量综述、必刷论文解读)

回复【入群】:加入卖萌屋深度学习/NLP/CV/搜广推等方向的技术交流与内推社群(大V、顶会审稿人云集)

回复【0511】:领取算法岗面试手册(刷offer神器)

回复【0424】:领取刷论文神器(挖掘每日、每月必刷重磅论文)

文 | 小轶

今天给大家介绍一篇 ACL'22 的论文,来自清华大学刘知远老师组。本文解决的问题是如何在预训练语言模型中引入任务所需的实体知识。此前常见的解决方法大致可以分为两种。

一种是在领域相关的语料上再做 further pretraining,比如 BioBERT。这种方法的缺点主要在于需要大量的额外训练,V100 上的训练时长可达数千小时。

另一种是直接引入知识图谱,比如 ERNIE。本文则认为:使得预训练模型具备实体知识,可以不完全依赖于引入外部知识图谱。已经有许多相关工作证明预训练模型自身就具备存储知识的能力,我们需要的只是一种调用出模型知识存储的方法。于是本文就提出了一种轻量的方法 PELT,能够非常简单有效的达到引入实体知识的效果。

论文标题
A Simple but Effective Pluggable Entity Lookup Table for Pre-trained Language Models

论文链接
https://arxiv.org/pdf/2202.13392.pdf

代码链接
https://github.com/thunlp/PELT

db03b94384090e9310b28996261bb8dd.png方法1ee376a89e2cd228bbec3775d0182756.png

本文方法的核心在于如何获取一个好的实体嵌入(entity embedding),使得这个中包含该实体必要的相关知识。获得实体嵌入后,在下游任务使用预训练模型时,只需要在输入中该实体出现的位置加入其相应的 embedding,即可达到引入相关知识的效果。

接下来我们逐步看一下,本文的方法是如何构造实体嵌入的,以及如何在使用预训练模型时加入实体嵌入。最后,简单从理论角度分析一下本文方法的合理性。

构建实体嵌入

假定我们需要在某个下游任务使用某个预训练语言模型,而该下游任务中可能会出现一些其所在领域所特有的实体。我们当前的目标就是:为这些实体构建一个高质量的实体嵌入。

608d3f14334dccf44b1758fb264a4296.png
▲PELT 构建实体嵌入信息的过程

本文获取实体嵌入的方法非常简单。上图以实体 COVID-19 为例,说明了构建其嵌入的过程:

  1. 找到语料库中 所有出现 COVID-19 的句子集合 (这个语料库是 domain-specific 的)

  2. 把这些句子中出现 COVID-19 的位置 MASK 掉。

  3. 保留预训练语言模型把 MASK 位置对应的 output 表示向量,记为 ()

  4. 最后得到实体嵌入表示如下:

其中, 是一个常数。原文中说,这个常数 具体取什么值对于结果影响不大(“has little effect on the input feature of the encoder in use”)。

实际操作时,作者将所有实体嵌入的长度都设置为,即。然后在实验中,尝试了多个 的值(=1,2,..,10),看哪一个在下游任务上效果好就用哪个。

在预训练模型中融入实体知识

接下来的问题就是,在得到实体嵌入后,在预训练模型做下游任务时使用它。方法也非常简单。

加入某个样本输入中出现了实体。还是假设该实体为 COVID-19,然后原始输入样本为:

Most people with COVID-19 have a dry...

在本文所提出的方法中,我们只需要在那个实体后面加个括号,括号中重复一遍该实体

Most people with COVID-19COVID-19) have a dry...

在映射到 embedding layer 的时候,不在括号里的实体COVID-19采用普通的词嵌入处理方式(切成 subword,然后映射到预训练模型所学的 word embedding);而括号中的实体 COVID-19映射为相应的实体嵌入

方法合理性的理论支持

原文有从理论分析的角度解释所提出方法的合理性。整个证明过程也比较简单,可以一看(不过我其实还没太想清楚这个证明过程是否足够完善...)。

假设我们把某个实体加入了预训练模型的原有词表中。如果我们用预训练任务 MLM 来学习它的实体嵌入 ,它的损失函数如下所示:

733345bfd5f371394a7209d0756bc733.png

其中,是语料库中所有出现该实体的句子, 为实体被 MASK 后对应位置的输出表示向量。这个公式可以进一步展开,变为:

733817d68822989a2164b0d98f37d5e9.png

其中,。

然后我们分析一下减号前后的两项。前一项中的 是对项求和,所以实体嵌入的变化对前一项的值影响很小,可以将这一项视作一个常数。因此,如果要让损失 尽可能小,我们只需要让后一项为一个尽量大的正数就行了。于是我们可以将设置为:

其中, 是一个常数。这样就能使得后一项始终是一个正数。至于 ,具体取什么值,原文里的说法是:由于输入给 Transformer 编码器时会过一层 layer normalization,所以||的长度变化影响不大。所以作者就直接把||当做超参数来处理了。

49cbfd0313236ed8dc876a4ed683eceb.png实验4dc261bc09db71918e00c2fffc2cf362.png

实验中,PELT 的提升效果也是比较显著的。这里我们简单展示一组实验:d73c5df171e1916ee2fc68807e941abe.png

比较表格最后两行可以看到,在 RoBERTa 上采用了本文方法后,获得了非常明显的提升。另外,和第一行的 ERNIE 相比,在一个数据集上效果相当,在另一个数据集上本文方法明显占优。值得注意的是,ERNIE 在模型使用时是引入外部知识图谱的,而本文方法没有。

d3781a8134ec2d48888643ccdd87146c.png小结b25d0386222d71e31d43e25bfdbde9f1.png

本文提出了一种非常简单有效的方法,使得预训练模型中融入实体知识。并且,相关代码已经开源,大家不妨一试。

本文转载自公众号夕小瑶的卖萌屋,专业带逛互联网算法圈的神操作

-----》我是传送门

关注后,回复以下口令:

回复【789】 :领取深度学习全栈手册(含NLP、CV海量综述、必刷论文解读)

回复【入群】:加入卖萌屋深度学习/NLP/CV/搜广推等方向的技术交流与内推社群(大V、顶会审稿人云集)

回复【0511】:领取算法岗面试手册(刷offer神器)

回复【0424】:领取刷论文神器(挖掘每日、每月必刷重磅论文)

529c0e778c2029ae09f82e4411e67572.png萌屋作者:小轶

是小轶,不是小秩!更不要叫小铁!高冷的形象是需要大家共同维护的!作为成熟的大人,正在勤俭节约、兢兢业业,为成为一名合格的(但是仍然发量充足的)PhD而努力着。日常沉迷对话系统。说不定,正在和你对话的,并不是不是真正的小轶哦(!?)

“高冷?那是站在冰箱顶端的意思啦。”  ——白鹡鸰

作品推荐:

  1. 写了一篇关于 NLP 综述的综述!

  2. 全球44家机构,55位大佬,历时两年,打造最强NLG评测基准!

  3. 谷歌重磅:可以优化自己的优化器!手动调参或将成为历史!?

  4. ACL20 Best Paper揭晓!NLP模型评价体系或将迎来重大转折

4c04642fca238b989e47ac13fcbc40dc.png后台回复关键词【入群

加入卖萌屋NLP、CV与搜推广与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

6e33017aec350276173e9361ebffdd3c.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/477493.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图谱实战 | 深度应用驱动的医学知识图谱构建

分享嘉宾:徐美兰 浙江数字医疗卫生技术研究院 数字医学知识中心主任编辑整理:李杰 京东出品平台:DataFunTalk导读:数研院这些年在知识图谱建设上取得了丰硕成果,今天我们将图谱构建过程中的经验、心得分享给大家&#…

朴素贝叶斯法(Naive Bayes,NB)

文章目录1. 朴素贝叶斯法的学习与分类1.1 基本方法2. 参数估计2.1 极大似然估计2.2 学习与分类算法2.2.1 例题2.2.2 例题代码2.3 贝叶斯估计(平滑)2.3.1 例题2.3.2 例题代码3. 自编程实现NB4. sklearn.naive_bayes1. 朴素贝叶斯法的学习与分类 1.1 基本…

《Easy RL:强化学习教程》出版了!文末送书

作为人工智能里最受关注的领域之一,强化学习的热度一直居高不下,但它的学习难度也同样不低。在学习强化学习的过程中,遇到了有无数资料却难以入门的问题,于是发起了Datawhale强化学习项目,希望自学的同时帮助更多学习者…

Spring Cloud构建微服务架构:服务消费(基础)【Dalston版】

通过上一篇《Spring Cloud构建微服务架构:服务注册与发现》,我们已经成功地将服务提供者:eureka-client或consul-client注册到了Eureka服务注册中心或Consul服务端上了,同时我们也通过DiscoveryClient接口的getServices获取了当前…

论文浅尝 | Temporal Knowledge Graph Completion Using Box Embeddings

笔记整理:杨露露,天津大学硕士论文链接:https://www.aaai.org/AAAI22Papers/AAAI-6210.MessnerJ.pdf动机时态知识图谱补全(TKGC)中的主要挑战是额外学习时间戳嵌入,以便嵌入模型根据关系、实体和时间戳嵌入…

别再无脑wwm了,在下游任务中不一定有效

本文转载自公众号“夕小瑶的卖萌屋”,专业带逛互联网算法圈的神操作 -----》我是传送门 关注后,回复以下口令: 回复【789】 :领取深度学习全栈手册(含NLP、CV海量综述、必刷论文解读) 回复【入群】&#xf…

逻辑斯谛回归模型( Logistic Regression,LR) 最大熵模型(Max Entropy,ME)

文章目录1. Logistic Regression 模型1.1 logistic 分布1.2 二项逻辑斯谛回归模型1.3 模型参数估计1.4 多项逻辑斯谛回归1.5 Python代码2. Maximum Entropy 模型2.1 最大熵原理2.2 最大熵模型的定义2.3 最大熵模型的学习2.4 例题3. 模型学习的最优化算法4. 鸢尾花LR分类实践1. …

Spring Cloud构建微服务架构:服务注册与发现(Eureka、Consul)【Dalston版】

已经有非常长的时间没有更新《Spring Cloud构建微服务架构》系列文章了,自从开始写Spring Cloud的专题内容开始就获得了不少的阅读量和认可,当然也有一些批评,其中也不乏一些很中肯的意见和深度的问题,对我来说也是进一步提高的契…

虚拟专辑丨知识图谱

虚 拟 专 辑 “武大学术期刊”的“虚拟专辑” 旨在将已发表在武汉大学科技期刊中心旗下期刊的论文以时下热点领域按主题重新组合,集中推送,以方便不同专业领域的读者集中查阅、追踪最新研究成果。此次推送的“知识图谱”虚拟专辑,为近几年发…

prompt你到底行不行?

文 | 马杀鸡三明治 源 | 知乎 很久之前老板下任务要试试prompt这个大风,但是玩完后发现太菜了所以连文章都没写,刚好今天工作比较闲就来写写了。 先上结论,连续prompt为运用大模型提供了一种思路,其实这种思路早就见过不少了。。。…

LeetCode 1323. 6 和 9 组成的最大数字

1. 题目 给你一个仅由数字 6 和 9 组成的正整数 num。 你最多只能翻转一位数字,将 6 变成 9,或者把 9 变成 6 。 请返回你可以得到的最大数字。 示例 1: 输入:num 9669 输出:9969 解释: 改变第一位数字…

Spring Cloud实战小贴士:Zuul统一异常处理(二)

在前几天发布的《Spring Cloud实战小贴士:Zuul统一异常处理(一)》一文中,我们详细说明了当Zuul的过滤器中抛出异常时会发生客户端没有返回任何内容的问题以及针对这个问题的两种解决方案:一种是通过在各个阶段的过滤器…

论文浅尝 | Explainable Link Prediction in Knowledge Hypergraphs

笔记整理:陈子睿,天津大学硕士论文链接:https://dl.acm.org/doi/10.1145/3511808.3557316动机知识超图链接预测已被认为是各种知识使能下游应用的关键问题。然而,大多数现有方法主要以黑盒方式执行链接预测,它们学习实…

吴恩达入驻知乎,涨粉秒过万!知乎首答:如何系统学习机器学习

文 | 卖萌酱大家好,我是卖萌酱。昨天在知乎timeline上刷到一个问题:虽然卖萌酱已经不需要系统学习机器学习了,但无意间发现最高赞的id竟然叫“吴恩达”??好家伙,看了看回答日期,是4月8号。戳进去…

学术会议|第六届知识图谱论坛CNCC-知识图谱赋能大数据大算力

CNCC2022将于12月8日至10日在贵州省贵阳市国际生态会议中心举办,今年CNCC技术论坛数量达到122个,内容涵盖了“计算行业、人工智能、云计算、教育、安全”等30个方向。本文特别介绍将于12月9日举行的【第六届知识图谱论坛-知识图谱赋能大数据大算力】。报…

LeetCode 第 18 场双周赛(188/587,前32%)

文章目录1. 比赛结果2. 题目LeetCode 1331. 数组序号转换 easyLeetCode 1328. 破坏回文串 mediumLeetCode 1329. 将矩阵按对角线排序 mediumLeetCode 1330. 翻转子数组得到最大的数组值 hard1. 比赛结果 做出来了1, 2, 3题,第4题提交超时 2. 题目 LeetCode 1331.…

Spring Cloud实战小贴士:Zuul统一异常处理(一)

在上一篇《Spring Cloud源码分析(四)Zuul:核心过滤器》一文中,我们详细介绍了Spring Cloud Zuul中自己实现的一些核心过滤器,以及这些过滤器在请求生命周期中的不同作用。我们会发现在这些核心过滤器中并没有实现error…

ACL’22 | 为大模型定制的数据增强方法FlipDA,屠榜六大NLU 数据集

本文转载自公众号“夕小瑶的卖萌屋”,专业带逛互联网算法圈的神操作 -----》我是传送门 关注后,回复以下口令: 回复【789】 :领取深度学习全栈手册(含NLP、CV海量综述、必刷论文解读) 回复【入群】&#xf…

技术动态 | 面向可解释性的知识图谱推理研究

导读:本次演讲的主题是面向可解释性的知识图谱推理研究,报告分为以下 5 个部分:研究背景前沿进展研究动机近期研究研究展望分享嘉宾|万国佳 武汉大学 计算机学院 博士后编辑整理|xiaomei出品平台|DataFunTa…

LeetCode 1332. 删除回文子序列

1. 题目 给你一个字符串 s,它仅由字母 ‘a’ 和 ‘b’ 组成。每一次删除操作都可以从 s 中删除一个回文 子序列。 返回删除给定字符串中所有字符(字符串为空)的最小删除次数。 「子序列」定义:如果一个字符串可以通过删除原字符…