转载自| PaperWeekly
1
『研究背景』
常识在各种语料库中很少被明确表达,但对于机器理解自然语言非常有用。与传统的知识库(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
2
『网络结构』
如图1 所示,本文提出的 CKBC 模型框架主要由 Encoder 和 Decoder 组成。在 Encoder 中,我们提出了一个序列分类任务来对 BERT 进行微调,以此生成 CKG 中三元组各元素的上下文表示。接下来,使用本文提出的 RGAT 学习三元组的结构表示,然后与上下文表示相连接,在 Decoder 中用于预测给定三元组的得分。
2.1 Encoder模型
2.1.1 BERT微调模型
我们提出了序列分类任务来微调模型中的BERT,因为它更适合于 CKBC 目标。给定一个三元组 ,我们将 与特殊标记 [CLS] 连接起来作为 BERT 的输入,通过判断输入序列是否正确,BERT 可以充分融合三元组的语义信息,这个分类任务的概率分布表示为:
其中 hcls是[CLS] 的最终的隐藏层表示,而WB是分类层的参数矩阵。然后我们使用交叉熵损失函数作为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 作为目标函数:
3
『实验结果』
本文在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 模型。
4
『案例分析』
本文分别替换了 中的头实体和尾实体,然后获得以下五个模型排名前十的预测结果。
可以看到Ours-SIM 表现最好,因为有更多的正确实体被预测出来且排名较高。头实体预测结果中有 9 个正确的实体,其中原始头实体 city 和原始尾实体 place 均排在第一位。MalaviyaModel 也正确地预测了原始头实体 city 和尾实体 place,并与 Ours-SIM 一样排名第一,但它所预测的正确实体数比 Ours-SIM 少。InductivE 正确预测了原始头实体和尾实体,但预测的正确实体较少,且排名低于上述两个模型。Ours-RGAT-SIM 预测正确的实体数量虽然与 InductivE 相同,但未能预测到原始头实体 city。Ours-BERT-SIM 在五个模型中预测结果最差,但它仍然预测了原始尾实体 place。
5
『总结』
本文提出了一个新的CKBC 模型,它结合了 RGAT 和通过序列分类任务微调后的 BERT。融合 RGAT 学到的结构表示和 BERT 学到的上下文表示,本文模型中三元组的各元素表示得到了增强,从而提高了 CKBC 的性能。