©作者 | 巨锦浩
单位 | 复旦大学硕士生
来源 | 知识工场
研究背景
常识在各种语料库中很少被明确表达,但对于机器理解自然语言非常有用。与传统的知识库(KG)不同,常识库(CKG)中的节点通常由自由格式的文本表示,并且比传统的 KG 规模更大,更稀疏。因此,这对传统的知识库补全(KBC)方法造成了挑战。最近,一些学者致力于开发常识库补全(CKBC)模型,通过预测和推断缺失的实体来提高 CKG 的覆盖率。Malaviya 等人于 2020 年提出了一个 CKBC 模型,图卷积网络(GCN)和预训练语言模型(PLM)的结合帮助他们的模型达到了最先进的性能。然而,该模型存在以下缺点:1. 在 GCN 的信息传播和聚合过程中,一个节点的所有邻居节点都被同等看待。但事实上,CKG 中的所有邻居节点应该被赋予不同的权重。此外,GCN 的表示学习忽略了不同边的语义信息。2. 为了实现从 PLM 到 CKG 的迁移学习,Malaviya 等人采用了一个掩码任务来微调 BERT。然而,掩码任务只是针对 PLM 预训练的通用要求而提出的,并不十分适用于 CKBC。为了解决这些问题,本文提出了一个新的 CKBC 模型。首先提出了一种关系图注意力网络的变体——RGAT,将边信息和不同邻居节点的权重编码到三元组的结构表示中。其次利用序列分类任务而不是掩码任务来微调 BERT,使得 BERT 中的外部知识能被更好地提炼为三元组的上下文表示,从而提高 CKBC 的性能。本文研究成果已被 CIKM 2022 Short Paper 接收,并被评为 Best Paper,文章和代码链接如下。
Commonsense Knowledge Base Completion with Relational Graph Attention Network and Pre-trained Language Model论文链接:
https://dl.acm.org/doi/10.1145/3511808.3557564代码链接:
https://github.com/DeqingYang/CKBC
网络结构
如图 1 所示,本文提出的 CKBC 模型框架主要由 Encoder 和 Decoder 组成。在 Encoder 中,我们提出了一个序列分类任务来对 BERT 进行微调,以此生成 CKG 中三元组各元素的上下文表示。接下来,使用本文提出的 RGAT 学习三元组的结构表示,然后与上下文表示相连接,在 Decoder 中用于预测给定三元组的得分。
2.1 Encoder模型
2.1.1 BERT微调模型
我们提出了序列分类任务来微调模型中的 BERT,因为它更适合于 CKBC 目标。给定一个三元组 ,我们将 与特殊标记 [CLS] 连接起来作为 BERT 的输入,通过判断输入序列是否正确,BERT 可以充分融合三元组的语义信息,这个分类任务的概率分布表示为:
其中 是 [CLS] 的最终的隐藏层表示,而 是分类层的参数矩阵。然后我们使用交叉熵损失函数作为 BERT 的损失函数:
通过微调 BERT,我们从 BERT 的最后一个隐藏层获得了三元组的上下文表示。2.1.2 CKG致密化
为了更好地捕捉语义相近的实体之间的潜在关系,我们在将知识库 G 输入到后续的 RGAT 之前,首先将一些辅助边添加到 G 中,但在 Decoder 中不会使用这些辅助边。具体来说,两个节点之间的语义相似性是根据它们从微调的 BERT 中获得的上下文表示来计算的,如果这两个节点的语义相似度大于阈值 τ,我们就在它们之间添加一条辅助边。在本文,τ 被设定为 0.95,因此,122,618 条辅助边被添加到 CKG 中。2.1.3 RGAT模型
我们提出了基于图注意网络(GATs)的 RGAT,它考虑到了邻居节点的权重和关系嵌入,以学习节点的结构表示。给定一个三元组 ,该三元组在第 h 层中的向量表示通过下面的线性变换得到:
其中 为第 h 层的线性变换矩阵,|| 为连接符。以节点 作为当前节点,其与第 h 层邻居节点 的注意力可以计算为:
然后,RGAT 中节点 在第 h 层的结构表示为:
值得注意的是,在 RGAT 中进行结构表示的学习后,节点可能会失去其初始信息。为了解决这个问题,我们在 RGAT 的最后一层表示中添加了所有节点的初始嵌入:
为了学习 RGAT 中第 h 层中关系的结构表示,我们只使用如下所述的线性变换:
为了训练 RGAT,我们使用了 hinge loss 作为损失函数:
2.2 Decoder模型
本论⽂使⽤ ConvKB 作为 Decoder 解码器,给定三元组 ,ConvKB 的评分函数可以描述为:
其中, 和 是共享的参数,独立于 ; 表示卷积算子;concat 表示一个拼接操作符。为了训练 ConvKB 模型,本文使用带有 正则项的 soft-margin loss 作为目标函数:
本文在 CN-100K 数据集上进行了实验,采用 MR、MRR 和 HIT@1/3/10 作为评价指标。并且我们选取 DistMult、ComplEx、ConvE、ConvTransE、ConvKB、IndectivE 以及 MalaviyaModel 作为 baseline 模型。为了做消融实验,使用 -BERT 和 -RGAT 分别表示没有上下文表示和没有结构表示的模型变体,-SIM 表示没有图致密化的模型变体。具体结果如下表所示:
Ours 的模型性能优于 Ours-BERT 表明将 BERT 的外部知识纳入到 CKBC 的上下文表示中是非常重要的。Ours 的模型优于 SOTA 基线 MalaviyaModel,不仅验证了本文模型中使用的 RGAT 比 MalaviyaModel 中的 GCN 更有效,而且还证明了我们 BERT 微调中的序列分类任务比 MalaviyaModel 中的掩码任务更好。
事实上,Ours-BERT-SIM 只是在 ConvKB 中加入了 RGAT,而 Ours-BERT-SIM 比 ConvKB 有明显的性能改进,证明了加入 RGAT 的意义。同时我们的模型又优于 Ours-RGAT-SIM,表明由 RGAT 学习的结构表示可以补充上下文信息,从而产生更好的 CKBC 模型。
案例分析
本文分别替换了 <city, IsA, place> 中的头实体和尾实体,然后获得以下五个模型排名前十的预测结果。
可以看到 Ours-SIM 表现最好,因为有更多的正确实体被预测出来且排名较高。头实体预测结果中有 9 个正确的实体,其中原始头实体 city 和原始尾实体 place 均排在第一位。MalaviyaModel 也正确地预测了原始头实体 city 和尾实体 place,并与 Ours-SIM 一样排名第一,但它所预测的正确实体数比 Ours-SIM 少。InductivE 正确预测了原始头实体和尾实体,但预测的正确实体较少,且排名低于上述两个模型。Ours-RGAT-SIM 预测正确的实体数量虽然与 InductivE 相同,但未能预测到原始头实体 city。Ours-BERT-SIM 在五个模型中预测结果最差,但它仍然预测了原始尾实体 place。
本文提出了一个新的 CKBC 模型,它结合了 RGAT 和通过序列分类任务微调后的 BERT。融合 RGAT 学到的结构表示和 BERT 学到的上下文表示,本文模型中三元组的各元素表示得到了增强,从而提高了 CKBC 的性能。
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:[email protected]
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧