【论文阅读】HIP network: Historical information passing network for extrapolation reasoning on temporal knowledge graph
authors:: Yongquan He, Peng Zhang, Luchen Liu, Qi Liang, Wenyuan Zhang, Chuang Zhang
container:: Proceedings of the thirtieth international joint conference on artificial intelligence, IJCAI-21
year:: 2021
DOI:: 10.24963/ijcai.2021/264
rating:: ⭐
share:: false
comment:: 时间知识图谱TKG,时间片上采用CompGCN,顺序关系上同时考虑时间片的顺序关系和实体对的顺序关系,并以三个得分函数为辅助进行推理。
前言
关于时间知识图谱的论文:HIP Network: Historical Information Passing Network for Extrapolation Reasoning on Temporal Knowledge Graph ,IJCAI,2021
问题描述
时间知识图谱(TKG)由一系列带有时间戳的子图组成,即G = { G ( 1 ) , G ( 2 ) , ⋯ , G ( T ) } \mathcal{G}=\{\mathcal{G}^{(1)},\mathcal{G}^{(2)},\cdots,\mathcal{G}^{(T)}\} G = { G ( 1 ) , G ( 2 ) , ⋯ , G ( T ) } ,其中G ( t ) = { E , R , O t } \mathcal{G}^{(t)}=\{\mathcal{E},\mathcal{R},\mathcal{O}^t\} G ( t ) = { E , R , O t } ,E \mathcal{E} E 和R \mathcal{R} R 分别表示实体和关系,O t \mathcal{O}^t O t 表示在t t t 时刻的事件集合。每个事件可以表示为( s , r , o , t ) (s,r,o,t) ( s , r , o , t ) ,其中s , o ∈ E , r ∈ R s,o\in\mathcal{E}, r\in\mathcal{R} s , o ∈ E , r ∈ R 。
本文的任务是根据历史KG序列{ G ( t ′ ) } ( t ′ ≤ t ) \{\mathcal{G}^{(t')}\}(t'\le t) { G ( t ′ ) } ( t ′ ≤ t ) ,预测给定的query ( s , r , ? , t + Δ t ) (s,r,?,t+\Delta t) ( s , r , ? , t + Δ t ) (或者( ? , r , o , t + Δ t ) (?,r,o,t+\Delta t) ( ? , r , o , t + Δ t ) )中的缺失实体。
OverView
本文提出了Historical Information Passing (HIP) network。在结构信息传递部分,基于CompGCN,以解构的方式更新结构表示,充分利用关系嵌入并有选择地聚合邻域信息。对于时间部分,模型为特定的实体生成关系嵌入来捕捉时间信息,并通过时间自注意力机制获得当前实体的嵌入。此外,论文从历史实体中考虑重复性信息。
本文的主要贡献如下:
论文提出了一个新的学习框架来处理TKG上的推理问题,它从时间、结构和重复性的角度传递历史信息。
论文特别考虑了信息传递过程中关系嵌入的更新,并提出了一种具有三个评分函数的多步骤推理算法,可以按顺序推断未来的事件。
HIP Network
模型架构如下图所示:
首先论文根据最近的历史KG G ( t − 1 ) \mathcal{G}^{(t-1)} G ( t − 1 ) ,更新实体和关系的信息,来捕获邻居的相互作用。考虑到在时间知识图谱中,随着新邻居的出现/消失,需要更新相关的部分以保留有用的信息,因此论文使用了CompGCN,以解构的方式更新结构表示。
具体来说,对于实体s s s ,论文将它的解构表示x x , t − 1 \boldsymbol{x}_{x,t-1} x x , t − 1 投影到K K K 个空间中:
h s , k = U k T x s , t − 1 \boldsymbol{h}_{s,k}=\boldsymbol{U}_k^T\boldsymbol{x}_{s,t-1}
h s , k = U k T x s , t − 1
其中U k ∈ R d i n × d i n K \boldsymbol{U}_k\in\mathbb{R}^{d_{in}\times\frac{d_{in}}{K}} U k ∈ R d in × K d in 为第k k k 个空间的参数,K K K 为超参数。可以得到K K K 个不同的分量的节点嵌入,即h s = { h s , 1 , h s , 1 , h s , 1 } \boldsymbol{h}_s = \{ \boldsymbol{h}_{s,1},\boldsymbol{h}_{s,1},\boldsymbol{h}_{s,1} \} h s = { h s , 1 , h s , 1 , h s , 1 }
其中U k ∈ R d i n × d i n K \boldsymbol{U}_k\in\mathbb{R}^{d_{in}\times\frac{d_{in}}{K}} U k ∈ R d in × K d in 为第k k k 个空间的参数,K K K 为超参数。可以得到K K K 个不同的分量的节点嵌入,即h s = { h s , 1 , h s , 1 , h s , 2 , ⋯ , h s , k , ⋯ , h s , K } \boldsymbol{h}_s = \{ \boldsymbol{h}_{s,1},\boldsymbol{h}_{s,1},\boldsymbol{h}_{s,2},\cdots,\boldsymbol{h}_{s,k},\cdots,\boldsymbol{h}_{s,K}\} h s = { h s , 1 , h s , 1 , h s , 2 , ⋯ , h s , k , ⋯ , h s , K } 。
与大多是GNN只对节点进行嵌入不同,CompGCN在聚合时使用关系R \mathcal{R} R 而不是矩阵,因此对于每个四元组( s , r , o , t − 1 ) ∈ G ( t − 1 ) (s,r,o,t-1)\in\mathcal{G}^{(t-1)} ( s , r , o , t − 1 ) ∈ G ( t − 1 ) ,还需要将实体-关系投射到K K K 个空间上,如下所示:
c o , k = V k T ϕ ( x r , t − 1 , x o , t − 1 ) \boldsymbol{c}_{o,k}=\boldsymbol{V}_k^T\phi(\boldsymbol{x}_{r,t-1},\boldsymbol{x}_{o,t-1})
c o , k = V k T ϕ ( x r , t − 1 , x o , t − 1 )
其中V k ∈ R d i n × d i n K \boldsymbol{V}_k\in\mathbb{R}^{d_{in}\times\frac{d_{in}}{K}} V k ∈ R d in × K d in 为第k k k 个空间的参数;ϕ ( x r , x o ) \phi(\boldsymbol{x}_r, \boldsymbol{x}_o) ϕ ( x r , x o ) 表示组合操作(例如加,减,循环)。
CompGCN同时生成实体和关系嵌入,而不仅仅生成实体嵌入:
接下来计算K K K 个Attetnion权重,其中第k k k 个权重α k \alpha_k α k 表示消息ϕ ( x r , x o ) \phi(\boldsymbol{x}_r, \boldsymbol{x}_o) ϕ ( x r , x o ) 与第k k k 个分量h s , k \boldsymbol{h}_{s,k} h s , k 之间的关系:
α k = exp ( ReLU ( W [ c o , k ; h s , k ] ) ) ∑ k ′ = 1 K exp ( ReLU ( W [ c o , k ′ ; h s , k ′ ] ) ) \alpha_k=\frac{\exp(\text{ReLU}(\boldsymbol{W}[\boldsymbol{c}_{o,k};\boldsymbol{h}_{s,k}]))}{\sum_{k'=1}^{K} \exp(\text{ReLU}(\boldsymbol{W}[\boldsymbol{c}_{o,k'};\boldsymbol{h}_{s,k'}]))}
α k = ∑ k ′ = 1 K exp ( ReLU ( W [ c o , k ′ ; h s , k ′ ])) exp ( ReLU ( W [ c o , k ; h s , k ]))
其中W ∈ R 1 × 2 d i n K \boldsymbol{W}\in\mathbb{R}^{1\times\frac{2d_{in}}{K}} W ∈ R 1 × K 2 d in 为可学习的转移矩阵。结构信息的更新方程可以表示为:
x s , k l = ∑ ( r , o ′ ) ∈ N ( s ) α k W λ ( r ) l , k c o ′ , k l − 1 \boldsymbol{x}_{s,k}^l = \sum_{(r,o')\in\mathcal{N}(s)} \alpha_k \boldsymbol{W}_{\lambda(r)}^{l,k} \boldsymbol{c}_{o',k}^{l-1}
x s , k l = ( r , o ′ ) ∈ N ( s ) ∑ α k W λ ( r ) l , k c o ′ , k l − 1
其中W λ ( r ) l , k ∈ R o u t K × i n K \boldsymbol{W}_{\lambda(r)}^{l,k}\in\mathbb{R}^{\frac{out}{K}\times\frac{in}{K}} W λ ( r ) l , k ∈ R K o u t × K in 。
最后根据K K K 个分量的输出x s , k L \boldsymbol{x}_{s,k}^L x s , k L 可以得到实体s s s 在t t t 时刻的结构嵌入表示x s , t \boldsymbol{x}_{s,t} x s , t 。由于CompGCN可以在聚合过程中考虑关系的嵌入,因此也可以得到关系r r r 的嵌入x r , t \boldsymbol{x}_{r,t} x r , t 。
结构模块:将实体和关系投影到K K K 个空间,计算关系和实体的attention,使用CompGCN进行聚合。
时间模块旨在对实体对之间的事件演变模式进行建模,并整合跨时间的信息,以生成实体和关系的时间嵌入。
对每个实体s s s ,它的输入为X = { x s , t − m + 1 , x s , t − m + 2 , ⋯ , x s , t } \boldsymbol{X}=\{\boldsymbol{x}_{s,t-m+1},\boldsymbol{x}_{s,t-m+2},\cdots,\boldsymbol{x}_{s,t}\} X = { x s , t − m + 1 , x s , t − m + 2 , ⋯ , x s , t } ,m m m 为时间窗口大小。论文使用时间自注意层对时间维度中实体表示进行集成,并将输出嵌入序列定义为Z = { z s , t − m + 1 , z s , t − m + 2 , ⋯ , z s , t } \boldsymbol{Z}=\{\boldsymbol{z}_{s,t-m+1},\boldsymbol{z}_{s,t-m+2},\cdots,\boldsymbol{z}_{s,t}\} Z = { z s , t − m + 1 , z s , t − m + 2 , ⋯ , z s , t } :
e i j = ( ( X W q ) ( X W k ) T ) i j d + M i j e_{ij} = \frac{((\boldsymbol{XW}_q)(\boldsymbol{XW}_k)^T)_{ij}}{\sqrt{d}} + \boldsymbol{M}_{ij}
e ij = d (( XW q ) ( XW k ) T ) ij + M ij
β i j = exp ( e i j ) ∑ j ′ = 0 m exp ( e i j ′ ) \beta_{ij} = \frac{\exp(e_{ij})}{\sum_{j'=0}^{m}\exp(e_{ij'})}
β ij = ∑ j ′ = 0 m exp ( e i j ′ ) exp ( e ij )
Z = β ( X W v ) \boldsymbol{Z} = \boldsymbol{\beta}(\boldsymbol{XW}_v)
Z = β ( XW v )
其中X , Z ∈ R m × d \boldsymbol{X},\boldsymbol{Z}\in\mathbb{R}^{m\times d} X , Z ∈ R m × d ;β ∈ R m × m \boldsymbol{\beta}\in\mathbb{R}^{m\times m} β ∈ R m × m 为注意力权重矩阵;W q , W k , W v ∈ R d × d \boldsymbol{W}_q,\boldsymbol{W}_k,\boldsymbol{W}_v\in\mathbb{R}^{d\times d} W q , W k , W v ∈ R d × d 均为可学习参数矩阵;mask矩阵M ∈ R m × m \boldsymbol{M}\in\mathbb{R}^{m\times m} M ∈ R m × m 为:
M i j = { 0 , i ≤ j , − ∞ , o t h e r w i s e . \boldsymbol{M}_{ij} =
\begin{cases}
0&, \quad i\le j, \\
-\infty&, \quad otherwise.
\end{cases}
M ij = { 0 − ∞ , i ≤ j , , o t h er w i se .
另外一方面,由于SIP模块被用来模拟邻居之间的相互作用,TIP模块更关注细粒度的变化,即在整个时间步骤中特定实体对之间发生的事件(关系)。对于每一个实体对( s , o ) (s,o) ( s , o ) ,因此论文使用关系序列{ r s o 0 , r s o 1 , ⋯ , r s o n , ⋯ , r s o N } ( 1 ≤ n ≤ N ) \{r_{so}^0,r_{so}^1,\cdots,r_{so}^n,\cdots,r_{so}^N\}(1\le n\le N) { r so 0 , r so 1 , ⋯ , r so n , ⋯ , r so N } ( 1 ≤ n ≤ N ) ,N N N 为当前时间窗口的事件数,使用GRU来获取实体对之间的关系( s , o ) (s,o) ( s , o ) :
z s o , n = GRU ( x s o , n , z s o , n − 1 ) \boldsymbol{z}_{so,n}=\text{GRU}(\boldsymbol{x}_{so,n}, \boldsymbol{z}_{so,n-1})
z so , n = GRU ( x so , n , z so , n − 1 )
其中x s o , n ∈ R d \boldsymbol{x}_{so,n}\in\mathbb{R}^d x so , n ∈ R d 为关系r s o n r_{so}^n r so n 在对应时间的结构关系表示。考虑到一个实体对在同一时间可能有多个事件,这里按照原始数据集中的顺序进行操作。
时间模块:主要有两个部分:1)根据SIP的结果进行时间维度上的Attention;2)对一个时间窗口内的实体对应用GRU。
History Forward Module
在本节中,论文通过评分函数,从结构、时间和重复的角度来评估一个事件。并提出了一种多步推理算法来处理推理问题。
时间得分函数 用于预测可能发生的事件,使用来自TIP模块的输出:
I t ( s , r , o , t ) = softmax ( W t [ z s , t ; z s o , t ; z o , t ] ) r I_t(s,r,o,t) = \text{softmax}(\boldsymbol{W}_t[\boldsymbol{z}_{s,t};\boldsymbol{z}_{so,t};\boldsymbol{z}_{o,t}])_r
I t ( s , r , o , t ) = softmax ( W t [ z s , t ; z so , t ; z o , t ] ) r
其中W t ∈ R p × 3 d \boldsymbol{W}_t\in\mathbb{R}^{p\times 3d} W t ∈ R p × 3 d ,p p p 为关系的种类数量。论文通过这种方法关注特定实体对之间事件的时间演化来预测下一个事件。
结构得分函数 基于结构表示来评估事件,以考虑在同一时间步长中它们之间的交互作用。这里,论文使用DistMult来为四元组打分:
I s ( s , r , o , t ) = σ ( ⟨ x s , t , x r , t , x o , t ⟩ ) I_s(s,r,o,t) = \sigma(\langle \boldsymbol{x}_{s,t},\boldsymbol{x}_{r,t},\boldsymbol{x}_{o,t} \rangle)
I s ( s , r , o , t ) = σ (⟨ x s , t , x r , t , x o , t ⟩)
其中σ \sigma σ 为sigmoid激活函数,⟨ ⋅ ⟩ \langle\cdot\rangle ⟨ ⋅ ⟩ 表示点积操作。
考虑到实体和事件是对时间敏感的,这可能会导致某些实体在时间窗口中可用的信息较少。因此论文对每个实体和关系建立历史词汇表,对于query( s , r , ? , t ) (s,r,?,t) ( s , r , ? , t ) ,计算重复历史得分 :
I h ( s , r , o , t ) = softmax ( W h [ e s , t ; e r , t ] + V t ( s , r ) ) o I_h(s,r,o,t) = \text{softmax}(\boldsymbol{W}_h[\boldsymbol{e}_{s,t};\boldsymbol{e}_{r,t}] + \boldsymbol{V}_t^{(s,r)})_o
I h ( s , r , o , t ) = softmax ( W h [ e s , t ; e r , t ] + V t ( s , r ) ) o
V t ( s , r ) = v 1 ( s , r ) + v 2 ( s , r ) + ⋯ + v t − 1 ( s , r ) \boldsymbol{V}_t^{(s,r)} = \boldsymbol{v}_1^{(s,r)} + \boldsymbol{v}_2^{(s,r)} + \cdots + \boldsymbol{v}_{t-1}^{(s,r)}
V t ( s , r ) = v 1 ( s , r ) + v 2 ( s , r ) + ⋯ + v t − 1 ( s , r )
其中W h ∈ R q × 2 d \boldsymbol{W}_h\in\mathbb{R}^{q\times 2d} W h ∈ R q × 2 d ,q q q 为实体数量;e s , t , e r , t ∈ R d \boldsymbol{e}_{s,t},\boldsymbol{e}_{r,t}\in\mathbb{R}^d e s , t , e r , t ∈ R d 分别表示实体和关系的嵌入;v t − ( s , r ) \boldsymbol{v}_{t^-}^{(s,r)} v t − ( s , r ) 为实体s s s 和关系r r r 的多热指示向量;o o o 为1表示G ( t − ) \mathcal{G}^{(t^-)} G ( t − ) 中存在( s , r , o , t − ) (s,r,o,t^-) ( s , r , o , t − ) 。
Training Objective
论文的损失函数为:
L = ∑ ( s , o , r , t ) ∈ G ( t ) ∑ ∗ − log ( I ∗ ( s , r , o , t ) ) \mathcal{L} = \sum_{(s,o,r,t)\in\mathcal{G}^{(t)}} \sum_{*} -\log(I_{*}(s,r,o,t))
L = ( s , o , r , t ) ∈ G ( t ) ∑ ∗ ∑ − log ( I ∗ ( s , r , o , t ))
其中I ∗ ( ⋅ ) I_{*}(\cdot) I ∗ ( ⋅ ) 分别为之前定义的得分函数。
论文算法如下:
实验
Datasets
ICEWS14,ICEWS18
GDELT
WIKI
YAGO
Result
Ablation Study
Sensitivity Analysis
总结
基于时间片的时间知识图谱,以解构的方式更新表示每个时间片上的结构信息,时间维度上不仅考虑时间片之间的顺序信息,还考虑了时间窗口内的事件对顺序信息。不同维度分别配对了不同的得分函数,此外的历史重复信息也有一定的道理。
参考资料