Few-Shot Knowledge Graph Completion阅读笔记

Few-Shot Knowledge Graph Completion

原文下载
AAAI 2020

摘要

知识图谱作为多种自然语言处理应用的有用资源。原来知识图谱的补全方法要求每种关系拥有大量的训练实例(例如头部-尾部实体)。但是在真实的场景中,对于大多数实体仅有少数的实体对可以得到。并且现有小样本学习方法对于小样本的场景缺乏一般性也没有充分利用监督信息;然而小样本知识图谱补全还没有被很好的研究。在本文工作中作者提出了一个新颖的小样本关系学习模型(FSRL)目的是为了基于给定的参考集发现新关系的实体。FSRL能够有效的从异构图结构中捕获知识,聚合小样本参考集的表示并且匹配每种关系参考集的实体对的相似性。另外作者在两种公开数据集上证实了FSRL方法的优越性。

主要贡献点

  • 提出一种新的小样本补全任务,不同于之前的方法,同时更适合实际场景
  • 提出了一种融合了一些可学习神经网络模块的小样本关系学习模型解决此问题
  • 在两个公开数据集上做了拓展实验,结果表明本文提出的模型较优

问题定义

知识图谱G被表示为一个三元组的集合:
{ ( h , r , t ) } ⊆ ε × R × ε \{(h,r,t) \} \subseteq \varepsilon \times R \times \varepsilon {(h,r,t)}ε×R×ε

其中, ε \varepsilon ε表示实体集, R R R表示关系集合。

知识图谱补全:
在给定头部实体 h h h及查询关系 r r r,预测尾部实体 t t t:{( h h h, r r r, ?)} ;或者根据头部和尾部实体预测关系 r r r
本文研究内容为前一种情况

模型

模型架构

模块介绍

  • E n c o d i n g   H e t e r o g e n e o u s   N e i g h b o r s {\color{red} Encoding \ Heterogeneous \ Neighbors} Encoding Heterogeneous Neighbors
    在这里插入图片描述
    此模块功能为一个关系可感知的异构邻居编码器。基于给定头实体 h h h的关系邻居的集合被表示为:
    N h = { ( r i , t i ) ∣ ( h , r i , t i ) ∈ G ′ } N_h= \{(r_i,t_i)|(h,r_i,t_i)\in G'\} Nh={(ri,ti)(h,ri,ti)G}
    其中, G ′ G' G表示背景知识图谱, r i , t i r_i,t_i ri,ti分别表示第 i i i个关系和相应的 h h h的尾部实体。
    f θ ( h ) = σ ( ∑ i α i e t i ) α i = e x p { u r t T ( W r t ( e r i ⊕ t i ) + b r t ) } ∑ j e x p { u r t T ( W r t ( e r j ⊕ t j ) + b r t ) } f_\theta(h)=\sigma(\sum_{i} \alpha_i e_{t_i}) \\[8pt] \alpha_i=\frac{exp\{u_{rt}^{T} (\mathcal{W}_{rt}(e_{r_i}\oplus_{t_i})+b_{rt})\}} {\sum_jexp\{u_{rt}^{T} (\mathcal{W}_{rt}(e_{r_j}\oplus_{t_j})+b_{rt})\}} fθ(h)=σ(iαieti)αi=jexp{urtT(Wrt(erjtj)+brt)}exp{urtT(Wrt(eriti)+brt)}
    其中, σ \sigma σ表示激活函数, e t i , e r i e_{t_i},e_{r_i} eti,eri分别表示 t i , r i t_i,r_i ti,ri的预训练的embedding。 u r t ∈ R d × 1 , W r t ∈ R d × 2 d , b r t ∈ R d × 1 u_{rt}\in \R^{d\times1},\mathcal{W}_{rt}\in \R^{d\times2d},b_{rt}\in \R^{d\times1} urtRd×1,WrtRd×2d,brtRd×1均为可学习参数, d d d为预训练的embedding的维度。

  • A g g r e g a t i n g   F e w − S h o t   R e f e r e n c e   S e t {\color{red}Aggregating \ Few{-}Shot \ Reference \ Set} Aggregating FewShot Reference Set
    在这里插入图片描述
    此模块功能为: 对参考集中 R r R_r Rr每个关系 r r r的embedding进行聚合。
    f ϵ ( R r ) = A G ( h k , t k ) ∈ R r { ε h k , t k } ε h k , t k = [ f θ ( h k ) ⊕ f θ ( t k ) ] f_\epsilon(R_r)=\mathcal{AG}_{(h_k,t_k)\in R_r}\{ \varepsilon_{h_k,t_k}\} \\[8pt] \varepsilon_{h_k,t_k}=[f_\theta(h_k)\oplus f_{\theta}(t_k)] fϵ(Rr)=AG(hk,tk)Rr{εhk,tk}εhk,tk=[fθ(hk)fθ(tk)]
    其中, A G \mathcal{AG} AG是一个聚合函数。 ⊕ \oplus 表示连接操作。
    基于图的embedding,作者设计了一个循环自编码聚合器。更具体来说,实体对embeddings ε h k , t k ∈ R r \varepsilon_{h_k,t_k}\in R_r εhk,tkRr被顺序喂到循环自编码器:
    ε h 1 , t 1 → m 1 → . . . → m K → d K → . . . → d 1 \varepsilon_{h_1,t_1} \rightarrow m_1\rightarrow...\rightarrow m_K \rightarrow d_K \rightarrow...\rightarrow d_1 εh1,t1m1...mKdK...d1
    其中, K K K是参考集的大小(小样本的大小)。编码与解码阶段的隐藏状态 m k m_k mk d k d_k dk计算公式如下:
    m k = R N N e n c o d e r ( ε h k , t k , m k − 1 ) d k − 1 = R N N d e c o d e r ( d k ) m_k=RNN_{encoder}(\varepsilon_{h_k,t_k},m_{k-1}) \\[8pt] d_{k-1}=RNN_{decoder}(d_k) mk=RNNencoder(εhk,tk,mk1)dk1=RNNdecoder(dk)
    其中, R N N e n c o d e r 与 R N N d e c o d e r RNN_{encoder}与RNN_{decoder} RNNencoderRNNdecoder分别表示循环编码器与解码器。
    优化自编码器的重构损失如下:
    L r e ( R r ) = ∑ k ∣ ∣ d k − ε h k , t k ∣ ∣ 2 2 \mathcal{L}_{re}(R_r)=\sum_k ||d_k-\varepsilon_{h_k,t_k}||_2^2 Lre(Rr)=kdkεhk,tk22
    为了形成参考集的embedding,作者聚合了所有编码的隐层状态并通过残差连接与注意力权重机制进行拓展。因此, f ϵ ( R r ) f_\epsilon(R_r) fϵ(Rr)的计算公式如下:
    m k ′ = m k + ε h k , t k β k = e x p { u R T ( W R m k ′ + b R ) } ∑ k ′ e x p { u R T ( W R m k ′ ′ + b R ) } f ϵ ( R r ) = ∑ k β k m k ′ m_{k}^{'}=m_k+\varepsilon_{h_k,t_k} \\[8pt] \beta_k=\frac{exp\{u_{R}^{T} (\mathcal{W}_{R}m_{k}^{'}+b_{R})\}} { \sum_{k'}exp\{u_{R}^{T} (\mathcal{W}_{R}m_{k'}^{'}+b_{R})\}} \\[8pt] f_{\epsilon}(R_r)=\sum_k \beta_k m_{k}^{'} mk=mk+εhk,tkβk=kexp{uRT(WRmk+bR)}exp{uRT(WRmk+bR)}fϵ(Rr)=kβkmk
    u R ∈ R d × 1 , W R ∈ R d × 2 d , b R ∈ R d × 1 u_{R}\in \R^{d\times1},\mathcal{W}_{R}\in \R^{d\times2d},b_{R}\in \R^{d\times1} uRRd×1,WRRd×2d,bRRd×1均为可学习参数, d d d为聚合的embedding的维度。

  • M a t c h i n g   Q u e r y   a n d   R e f e r e n c e   S e t {\color{red}Matching \ Query \ and \ Reference \ Set} Matching Query and Reference Set
    在这里插入图片描述
    在前两个模块的基础上,现在可以基于参考集 R r R_r Rr有效的对每个查询实体对 ( h l , t l ) (h_l,t_l) (hl,tl)进行匹配操作。首先通过对查询实体对 ( h l , t l ) (h_l,t_l) (hl,tl)和参考集 R r R_r Rr分别进行 f θ f_{\theta} fθ f ϵ f_{\epsilon} fϵ操作,从而分别得到两个embedding向量: ε h l , t l = [ f θ ( h l ) ⊕ f θ ( t l ) ] \varepsilon_{h_l,t_l}=[f_{\theta}(h_l)\oplus f_{\theta}(t_l)] εhl,tl=[fθ(hl)fθ(tl)].
    为了衡量两个向量的相似性,作者采用了一个循环处理器 f μ f_\mu fμ去完成多步匹配。第 t t t个过程步的如下:
    g t ′ , c t = R N N m a t c h ( ε h l , t l , [ g t − 1 ⊕ f ϵ ( R r ) ] , c t − 1 ) g t = g t ′ + ε h l , t l g_{t}^{'},c_t=RNN_{match}(\varepsilon_{h_l,t_l},[g_{t-1}\oplus f_{\epsilon}(R_r)],c_{t-1}) \\[8pt] g_t=g_{t}^{'}+\varepsilon_{h_l,t_l} gt,ct=RNNmatch(εhl,tl,[gt1fϵ(Rr)],ct1)gt=gt+εhl,tl
    其中,输入为 ε h l , t l \varepsilon_{h_l,t_l} εhl,tl,隐藏状态为 g t g_t gt,细胞状态为 c t c_t ct T T T过程步后的隐层状态 g T g_T gT记为: ε h l , t l = g T \varepsilon_{h_l,t_l}=g_T εhl,tl=gT

  • O b j e c t i v e   a n d   M o d e l   T r a i n i n g {\color{red}Objective\ and\ Model\ Training} Objective and Model Training
    对于每一个关系r,我们随机选择一些正样本实体对 { ( h k , t k ) ∣ ( h k , r , t k ) ∈ G } \{ (h_k,t_k)|(h_k,r,t_k)\in G\} {(hk,tk)(hk,r,tk)G}并把它们作为参考集 R r R_r Rr。剩余的实体对 P ε r = { ( h l , t l ) ∣ ( h l , r , t l ) ∈ G ∩ ( h l , t l ) ∉ R r } \mathcal{P}\varepsilon_r=\{(h_l,t_l)|(h_l,r,t_l)\in G \cap (h_l,t_l) \not \in R_r\} Pεr={(hl,tl)(hl,r,tl)G(hl,tl)Rr}作为正样本查询对。此外,也构建了负样本实体对 N ε r = { ( h l , t l − ) ∣ ( h l , r , t l − ) ∉ G } \mathcal{N}\varepsilon_r=\{(h_l,t_{l}^{-})|(h_l,r,t_{l}^{-})\not \in G\} Nεr={(hl,tl)(hl,r,tl)G}。排列损失记为:
    L r a n k = ∑ r ∑ ( h l , t l ) ∈ P ε r ∑ ( h l , t l − ) ∈ N ε r [ ξ + s ( h l , t l − ) − s ( h l , t l ) ] + ( 9 ) \mathcal{L}_{rank}=\sum_r \sum_{(h_l,t_l)\in \mathcal{P}\varepsilon_r} \sum_{(h_l,t_{l}^{-})\in \mathcal{N}\varepsilon_r}[\xi+s_{(h_l,t_{l}^{-})}-s(h_l,t_l)]_+ \qquad (9) Lrank=r(hl,tl)Pεr(hl,tl)Nεr[ξ+s(hl,tl)s(hl,tl)]+(9)
    其中, [ x ] + = m a x [ 0 , x ] [x]_+=max[0,x] [x]+=max[0,x]为标准的hinge 损失, ξ \xi ξ表示安全边界距离(本文取值为5)。
    最终优化函数如下:
    L j o i n t = L r a n k + γ L r e ( 10 ) \mathcal{L}_{joint}=\mathcal{L}_{rank}+\gamma \mathcal{L}_{re} \qquad(10) Ljoint=Lrank+γLre(10)
    其中, L r e \mathcal{L}_{re} Lre表示参考集聚合的重构损失。 γ \gamma γ表示两者的权衡因子(本文取值为0.0001)。

FSRL算法过程如下:
在这里插入图片描述

数据集

在这里插入图片描述
训练集/验证集/测试集划分:
NELL:51/5/11
WiKi:133/16/34

实验结果

在这里插入图片描述
在这里插入图片描述
Ablation Study
在这里插入图片描述
其中AS_1表示使用mean pooling layer代替heterogeneous neighbor encoder;AS_2a使用mean pooling来代替 recurrent autoencoder aggregation ;AS_2b使用mean pooling代替attention weight;AS_2c移除decoder,只是使用encoder;AS_3移除了匹配网络中的LSTM。

Impact of Few-Shot Size
在这里插入图片描述
Embedding Visualization
在这里插入图片描述

** 如有错误欢迎各位批评指正!大家共同进步~ **

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值