CAKE: A Scalable Commonsense-Aware Framework For Multi-View Knowledge Graph Completion 阅读笔记

文章介绍了CAKE,一个可扩展的常识感知框架,用于解决知识图谱的完整性问题。通过ACG和CANS模块改进无效负采样和事实视图链接预测的不确定性,引入常识视图以增强模型的准确性。同时,文中详细解释了概念、实体转换、负采样策略和多视图链接预测方法。
摘要由CSDN通过智能技术生成

CAKE: A Scalable Commonsense-Aware Framework For Multi-View Knowledge Graph Completion

CSDN上传图片比较麻烦, 若想获得完整阅读体验请移步原文原文链接

Field: CS, NLP
Status: Just started

参考资料

CAKE: A Scalable Commonsense-Aware Framework For Multi-View…

https://github.com/ngl567/cake

https://1drv.ms/b/s!Agt9MGedHZtOk3DEK7RFDNMdaHFY?e=K9zqDP

干货!常识和事实联合驱动的知识图谱推理框架

知识图谱顶会论文(ACL-2022) CAKE:用于多视图KGC的可扩展常识感知框架_cake:scalable commonsense-aware framework for mult-CSDN博客

I. Background

negative sampling 负采样

Local cloased-world assumption LCWA 局部世界封闭假设

Ontological Relations 本体关系

为什么说常识图谱仅包含概念, 但缺乏与其相对应的节点的连接

II. Motivation

首先是作者的目的

补全知识图谱

因为knowledge graph还不够完善, 还需要complete

这个complete就是一个KGC模型, 也就是knowledge graph complete model

那目前KGC还有什么缺点呢?

  1. invalid nagative sampling和low quality negative sampling

    什么是Invalid negative sampling?

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  2. uncertainty of fact-view link prediction

    目前的工作中link prediction仅依靠于fact-view

    什么是fact-view?

    fact-view和commonsense-view是一个相对的概念

    fact-view就是基于事实的视角, 也就是三元组中的head和tail都是一个具体的事件, 而不是一个概念

    而commonsense-view就基于常识的视角, 三元组中的head和tail都是一个concept而不是fact

    这就导致了一个问题

    完全依赖于fact-view会有一种不确定性, 预测出来的结果可能是不符合常理的

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

III. Improvement

  1. 作者为了解决Invalid negative sampling问题提出了ACG + CANS模块

    其中ACG模块能够将triple中的fact entity转化为concept

    然后CANS就可以利用ACG模块产生的concept进行commonsense aware的negative sampling

  2. 作者为了解决uncertainty of fact-view link prediction的问题, 提出了MVLK模块

    在MVLK模块中, 作者会利用常识来约束link prediction, 避免完全基于fact-view的问题

    换言之, 就是在fact-view的基础上引入了commonsense-view

IV. Method

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Commonsense Knowledge

作者在本文中设置了两种类型的commonsense knowledge

  1. individual form C 1 C_1 C1

    C 1 = { ( c h , r , c t ) } C_1 = \{(c_h, r, c_t)\} C1={(ch,r,ct)}

    其中, c h c_h ch表示一个单独的head, c t c_t ct表示一个单独的tail

    对应的 c h c_h ch c t c_t ct r r r连接

  2. set form C 2 C_2 C2

    C 2 = { ( C h , r , C t ) } C_2 = \{(C_h , r, C_t)\} C2={(Ch,r,Ct)}

    其中, C h C_h Ch表示一个head的集合, C t C_t Ct表示一个tail的集合

    集合 C h C_h Ch和集合 C t C_t Ct r r r连接, 也就是说 C t C_t Ct C h C_h Ch其中的任意一个元素都可以通过 r r r来连接

KGE Score Function

E ( h , r , t ) E(h, r,t) E(h,r,t)

什么是KGE score Function, 这个Funtion是用来做什么的?

这个function是用来打分的, 给定一个三元组 ( h , r , t ) (h,r,t) (h,r,t), 将这个三元组送入 E ( h , r , t ) E(h,r,t) E(h,r,t)中会得到一个置信度

这个三元组里面的 h , r , t h,r,t h,r,t都是embedding

TransE

E ( h , r , t ) = = ∣ ∣ h + r − t ∣ ∣ E(h, r, t) == ||h + r - t|| E(h,r,t)==∣∣h+rt∣∣

TransE很容易理解, h , r , t h,r,t h,r,t都是想向量, 并且理想情况下 h + r = t h+r=t h+r=t, 因此我们计算 h + r − t h+r-t h+rt的L2范数即 ∣ ∣ h + r − t ∣ ∣ ||h+r-t|| ∣∣h+rt∣∣

RotatE

E ( h , r , t ) = ∣ ∣ h ∘ r − t ∣ ∣ E(h, r,t)=||h \circ r - t|| E(h,r,t)=∣∣hrt∣∣

在上式中, ∘ \circ 表示hardmard product, 也就是两个向量按元素相乘, 也就是向量的点积dot-product

DistMult

E ( h , r , t ) = h T d i a g ( M r ) t E(h,r,t)=h^Tdiag(M_r)t E(h,r,t)=hTdiag(Mr)t

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对于上面的所有 E ( h , r , t ) E(h,r,t) E(h,r,t)来说, 值越小, 就表示三元组 ( h , r , t ) (h,r,t) (h,r,t)的置信度越高.

  • 为什么RotatE和DistMult能够实现置信度打分? 我不是很理解

Automatic Commonsense Generation ACG

作者在本文开发了一个entity-to-concept converter

这个converter能够将fact级别的knowledge转化为concept级别的knowledge

并且对于一个三元组而言, 仅转化其head和tail, 不转化relation

因为作者认为: concept级别的head和tail如果能够通过relation相连接, 那么fact级别的head和tail肯定可以通过relation相连接

通过ACG模块, 给定一个fact级别的三元组, 就能够生成一个concept级别的三元组, 也就是一个commonsense

举一个例子:

给定一个三元组 (Bob, Nationality, U.S.), ACG能够将Bob转化为对应的本体概念Person, 同理U.S.能够被转化为其本体概念Country

那么, 给定的三元组 (Bob, Nationality, U.S.) 就被ACG转化为了 (Person, Nationality, Country)

通过这种方式, 我们给定大量的fact级别的三元组, 经过ACG就能一系列的Commonsense knowledge

那么每一个Commonsense knoeledge我们都能够将其称之为 C 1 C_1 C1

将这些C_1进行归纳, 所有relation相同的C_1归纳到一起就能够得到 C 2 C_2 C2

比如说:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对于这张图, 我们给定下面所有的fact knowledge, 能够生成很多的concept knowledge

(State, LocatedIn, Country)

(Company, LocatedIn, State)

(City, LocatedIn, State)

那么, 上述的这些commonsense都是 C 1 C_1 C1, 将这些 C 1 C_1 C1集合起来就是 C 2 C_2 C2

Commonsense-Aware Negative Sampling CANS

作者认为, 在采样的时候引入Commonsense knowledge能够有效的帮助模型采样出Actually negative triples, 因此, 作者实现了Commonsense-Aware Negative Sampling

首先介绍一些知识图谱中不同的relation

知识图谱中有很多不同的relation, 可以归结到几个大类: 1-N, N-N, N-1, 1-1

这上面的这几个大类是什么意思呢? 举一个例子

因为我们之前已经把所有的fact都转化为了Concept, 那么我们就可以获得很多的triple, 这些triple在本文中就记为 C 1 C_1 C1, 然后这些 C 1 C_1 C1经过wipe out和summarize将其构建为多个 C 2 C_2 C2

比如说, 我们现在有一个 C 2 C_2 C2

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么, 对于这个C_2所表示的relation就是一个N-1的relation

对于不同的关系, 就能够引申出不同的采样方式

  • uniqueness sampling

    uniqueness表示特殊的, 也就是N-1关系中的1

    对于这种concept, 作者认为可以将其直接corrupted

    就比如上面那个例子中的stateprovince, 我们直接将其corrupted成为一个和原来不同的entity, 那么无论如何其都是一个actually negative triple

  • none-uniqueness sampling

    和上面的相反, none-uniqueness sampling表示非特殊的, 也就是一般的, 也就是N-1关系里面的N

    对于这种concept, 作者认为不能随便对其corrupted

    我们一个属于N的concept corrupted后, 输出一个entity

    这个entity肯定属于一个triple, 那么这个triple会有模型给其打分, 这个分数表示了其置信度的高低.

    作者在这里认为, 模型打的分越高 (表示置信度越高), 那么就越有可能是一个false negative triple

那么, 作者是如何实现CANS的, 分为两步

  1. 首先从 C 2 C_2 C2中获取candidate concept
  2. 将这些candidate concept进行currupted, 对这些currupted的结果赋予权重
    • 对于none-uniqueness sampling的currupted采用如下公式赋予权重

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

      上式表示一个N-1的relation, head是N, tail是1

      h i ′ h_i^\prime hi表示currupted后的第i个head

      r表示realtion

      t表示tail

      α \alpha α表示一个temperature

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

      E ( h i ′ , r , t ) E(h_i^\prime, r, t) E(hi,r,t)表示模型给这个三元组打的分, 也就是置信度

      e x p α E ( h j ′ , r , t ) ∑ i e x p α E ( h i ′ , r , t ) \frac{\mathrm{exp}\alpha E(h_j^\prime, r, t)}{\sum_i{\mathrm{exp}\alpha E(h_i^\prime, r, t)}} iexpαE(hi,r,t)expαE(hj,r,t)

      这个公式本质上就是一个softmax, 对所有currupted的结果做一个归一化, 得出每一个结果的概率

      P ( ( h j ′ , r , t ) ∣ { h i , r i , t i } ) = e x p α E ( h j ′ , r , t ) ∑ i e x p α E ( h i ′ , r , t ) P((h_j^\prime, r, t) | \{h_i, r_i, t_i\}) =\frac{\mathrm{exp}\alpha E(h_j^\prime, r, t)}{\sum_i{\mathrm{exp}\alpha E(h_i^\prime, r, t)}} P((hj,r,t){hi,ri,ti})=iexpαE(hi,r,t)expαE(hj,r,t)

      这个公式里面的 P ( ( h j ′ , r , t ) ∣ { h i , r i , t i } ) P((h_j^\prime, r, t) | \{h_i, r_i, t_i\}) P((hj,r,t){hi,ri,ti})代表了一个条件分布, 也就是给定所有的currupted输出, 得出特定的currupted输出的结果, 可以认为这个 P ( ( h j ′ , r , t ) ∣ { h i , r i , t i } ) P((h_j^\prime, r, t) | \{h_i, r_i, t_i\}) P((hj,r,t){hi,ri,ti})就代表了三元组 ( h j ′ , r , t ) (h_j^\prime, r, t) (hj,r,t)为positive的概率

      ω ( h j ′ , r , t ) = 1 − P ( ( h j ′ , r , t ) ∣ { h i , r i , t i } ) \omega(h_j^\prime, r, t) = 1 -P((h_j^\prime, r, t) | \{h_i, r_i, t_i\}) ω(hj,r,t)=1P((hj,r,t){hi,ri,ti})

      这个 ω ( h j ′ , r , t ) \omega(h_j^\prime, r, t) ω(hj,r,t)表示一个三元组是Negative三元组的概率, 本文中将其称之为一个权重, weight

      为什么权重需要这样表示呢?

      很简单, 按照上面讲的, P ( ( h j ′ , r , t ) ∣ { h i , r i , t i } ) P((h_j^\prime, r, t) | \{h_i, r_i, t_i\}) P((hj,r,t){hi,ri,ti})表示一个三元组为positive的概率, 那么其为positive的概率越小, 其为negative的概率就越大.我们就将其权重置的更大

    • 对于uniqueness sampling的currupted采用如下公式赋予权重

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

以下面这个例子来具体来看

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们可以很明显的看到, 对于N类concept的currupted和1类的currupted的weight是不同的, 对于N类concept的currupted, weight是和propability是完全相反的, 对于1类concept的currupted, weight和probability顺序相同的

Traning the KGE model

如何训练KGEmodel? 损失函数是什么?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

上图中

γ \gamma γ是一个边界, margin

E E E表示一个三元组送给模型, 模型给其打的分. 可以理解为模型输出的置信度

( h , r , t ) (h,r,t) (h,r,t)表示一个positive triple

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

上图中

( h i ′ , r , t ) (h_i^\prime, r, t) (hi,r,t)是一个negative triple

其中 ω ( h i ′ , r , t ) \omega(h_i^\prime, r,t) ω(hi,r,t)表示CANS模块为这个triple赋予的权重

综上所属, 整个loss函数的脉络就很清楚了, 第一个部分 − l o g σ ( γ − E ( h , r , t ) ) -log\sigma(\gamma - E(h,r,t)) logσ(γE(h,r,t))的目的是为了使positive triple的输出得分远小于 γ \gamma γ. 第二个部分 − ω ( h i ′ , r , t ) l o g σ ( E ( h i ′ , r , t ) − γ ) -\omega(h_i^\prime, r,t)log\sigma(E(h_i^\prime, r, t) - \gamma) ω(hi,r,t)logσ(E(hi,r,t)γ)是为了让negative triple的输出得分远大于 γ \gamma γ

简单一点理解, 就是聚类, 将positive triple得分和negative triple的score分开, 分的越远越好

Multi-View Link Prediction MVLK

Multi-View Link Prediction就是inference阶段的行为

即: 如何利用常识知识来帮助模型进行节点预测

( h , r , ? ) (h,r,?) (h,r,?)为例, MVLK分为了两个阶段

  1. 粗粒度阶段

    粗粒度阶段会从借助常识, 来filter一些entity, 攻击后面细粒度阶段使用

    C 1 t = { c t i ∣ ( c h i , r , c t i ) ∈ C 1 } \mathrm{C}_{1t} = \{c_{ti}|(c_{hi}, r, c_{ti}) \in C_1\} C1t={cti(chi,r,cti)C1}

    C 1 t \mathrm{C_{1t}} C1t表示的就是我们根据一个常识 C 1 C_1 C1过滤出来的tail entity

    ( c h i , r , c t i ) ∈ C 1 (c_{hi}, r, c_{ti}) \in C_1 (chi,r,cti)C1

    这里表示我们先给定一个commonsense C 1 C_1 C1, 然后根据这个 C 1 C_1 C1找到一系列的triple

    这些triple即 ( c h i , r , c t i ) (c_{hi}, r, c_{ti}) (chi,r,cti), 表示一个集合形式的commonsense knowledge.

    其中 c h i c_{hi} chi c t i c_{ti} cti都是concept, c h i c_{hi} chi表示head的第i个concept, c t i c_{ti} cti表示tail的第i个concept

    C 1 t = { c t i ∣ ( c h i , r , c t i ) ∈ C 1 } \mathrm{C}_{1t} = \{c_{ti}|(c_{hi}, r, c_{ti}) \in C_1\} C1t={cti(chi,r,cti)C1}

    后面, 我们根据找到的一系列的triple, 获取这些triple的 c t i c_{ti} cti

    然后, 再根据这些 c t i c_{ti} cti获取一些列的entity, 这些entities就构成了集合 C 1 t \mathrm{C}_{1t} C1t

    举例来说

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    我们给定一个Query: (David, Nationality, ?)

    然后可以从常识图谱中获取一个常识 C 1 C_1 C1 (Person, Nationality, Country)

    后面我们根据这个 C 1 C_1 C1就可以过滤得到一些列的entity C 1 t \mathrm{C}_{1t} C1t

  2. 细粒度阶段

    在细粒度阶段会对 C 1 t \mathrm{C}_{1t} C1t中的每个元素 e i e_i ei拼接到原始的Query中进行打分, 选取分数最高的作为我们的输出

    s c o r e ( e i ) = E ( h , r , e i ) score(e_i) = E(h,r,e_i) score(ei)=E(h,r,ei)

    如图所示

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    将我们之前在粗粒度阶段获取得到的 C 1 t \mathrm{C}_{1t} C1t拼接到Query中进行打分, 选取分数最高的作为inference阶段的输出

V. Experiment

一些实验的配置

作者使用的实验数据集:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者使用的Baselines

  • TransE

    Translating embeddings for modeling multirelational data

  • RotatE

    RotatE: Knowledge graph embedding by relational rotation in complex space

  • HAKE

    Learning hierarchy-aware knowledge graph embeddings for link prediction.

作者的超参数设置

优化器使用的是Adam优化器

negative sample size is 2

learning rate is chosen from 1e-4 to 1e-2

margin is tuned in {9, 12, 18, 24, 30}

sampling temperature is adjusted in {0.5, 1.0}

作者使用的评价指标

作者在不同模型上应用不同的框架做横向对比

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这里可以看到, 作者在不同的模型上应用了多个框架 CANS, MVLP, CAKE, CKAE 的结果在绝大多数实验条件下都很好

作者使用不同的NS技术, 做横向对比

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

上图中, Unifo, NoSamp, NSCach, Domain, SAdv, CANS都是不同的NS技术, 可以发现, 这些技术中CANS总是能取得sota成绩

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值