【论文阅读】Temporal knowledge graph reasoning based on evolutional representation learning
authors:: Zixuan Li, Xiaolong Jin, Wei Li, Saiping Guan, Jiafeng Guo, Huawei Shen, Yuanzhuo Wang, Xueqi Cheng
container:: Proceedings of the 44th international ACM SIGIR conference on research and development in information retrieval
year:: 2020
DOI:: 10.1145/3404835.3462963
rating:: ⭐⭐⭐
share:: true
comment:: 时间知识图谱TKG推理,时间片上采用GCN,顺序关系上采用GRU,并融合静态信息,同时预测实体和关系。
前言
这次是一篇关于时间知识图谱(TKG)的论文,现在有很多论文把知识图谱(KG)放到POI预测里,也是想了解尝试一下。
SIGIR 2021:Temporal Knowledge Graph Reasoning Based on Evolutional Representation Learning
问题描述
一个时间知识图谱TKG可以定义为带时间戳的知识图谱KGs序列,即G = { G 1 , G 2 , ⋯ , G t , ⋯ } G=\{G_1,G_2,\cdots,G_t,\cdots\} G = { G 1 , G 2 , ⋯ , G t , ⋯ } 。对于每个KG,G t = ( V , R , E t ) G_t=(\mathcal{V},\mathcal{R},\mathcal{E}_t) G t = ( V , R , E t ) 表示一个在t t t 时刻的有向的多关系图,其中V \mathcal{V} V 表示实体,R \mathcal{R} R 表示关系,E t \mathcal{E}_t E t 表示在t t t 时刻的事实集。事实集中的事实(fact)可以用四元组表示( s , r , o , t ) , s , o ∈ V , r ∈ R (s,r,o,t), s,o\in\mathcal{V}, r\in\mathcal{R} ( s , r , o , t ) , s , o ∈ V , r ∈ R ,在传统KG的基础上加上时间戳。此外,对于每个四元组( s , r , o , t ) (s,r,o,t) ( s , r , o , t ) ,其逆四元组( o , r − 1 , s , t ) (o,r^{-1},s,t) ( o , r − 1 , s , t ) 也加入数据集。
文中的静态图表示为G s = ( V s , R s , E s ) G^s=(\mathcal{V}^s,\mathcal{R}^s,\mathcal{E}^s) G s = ( V s , R s , E s ) ,对应实体集合,关系集合和事实集合。
Task 1. Entity Prediction. 给定query ( s , r , ? , t + 1 ) (s,r,?,t+1) ( s , r , ? , t + 1 ) ,根据实体s s s ,关系r r r 和历史KG序列G t − m + 1 : t G_{t-m+1:t} G t − m + 1 : t 计算对象实体概率:
p ⃗ ( o ∣ s , r , G t − m + 1 : t ) = p ⃗ ( o ∣ s , r , H t , R t ) \vec{p}(o\vert s,r,G_{t-m+1:t})=\vec{p}(o\vert s,r, \mathbf{H}_t, \mathbf{R}_t)
p ( o ∣ s , r , G t − m + 1 : t ) = p ( o ∣ s , r , H t , R t )
Task 2. Relation Prediction. 给定query ( s , ? , o , t + 1 ) (s,?,o,t+1) ( s , ? , o , t + 1 ) ,根据实体s , o s,o s , o 和历史KG序列G t − m + 1 : t G_{t-m+1:t} G t − m + 1 : t 计算关系概率:
p ⃗ ( r ∣ s , o , G t − m + 1 : t ) = p ⃗ ( r ∣ s , o , H t , R t ) \vec{p}(r\vert s,o,G_{t-m+1:t})=\vec{p}(r\vert s,o, \mathbf{H}_t, \mathbf{R}_t)
p ( r ∣ s , o , G t − m + 1 : t ) = p ( r ∣ s , o , H t , R t )
除了把序列关系作为一个个时间切片之外,另一种考虑序列的方式是把时间信息放到关系中表示。
OverView
论文认为现有的方法主要有三个限制:
主要关注给定查询的实体和关系,忽略每个时间戳KG中所有事实之间的结构依赖性;
为每个查询单独编码历史记录,效率低下;
忽略实体的某些静态属性(如实体类型)的作用;
现有方法仅关注实体预测,无法同时解决关系预测问题。
本文将时间知识图谱作为一个序列考虑,并通过同时建立整个序列的模型,将所有历史事实编码为实体和关系的表示。提出了GCN-based Recurrent Evolution network(RE-GCN),学习每个时间戳实体和关系的演化表示。对于每个演化单元,使用关系感知GCN来捕获KG中的结构依赖性,此外通过加入静态图约束,将实体静态属性合并进来以获得更好的实体表示。论文的主要贡献如下:
论文提出了一种演化表示学习模型 RE-GCN,用于时间推理,考虑了KG中并发事实之间的结构依赖性、时间相邻事实之间的序列模式以及实体的静态属性。
从KG序列角度描述TKG,RE-GCN有效地将TKG中的所有历史信息建模为演化表示,可同时用于实体和关系预测。
RE-GCN
模型架构如下图所示:
The Evolution Unit
演化单元由三部分组成:一个关系感知的GCN,两个门控循环组件以及一个静态图约束组件。
关系感知的GCN在每个时间戳捕捉KG内部的结构性依赖关系。两个门控循环组件对历史KG序列进行回归建模,包括一个时间门控循环组件和一个GRU。静态图约束组件通过在静态嵌入和实体的演化嵌入之间添加一些约束,将静态属性集成到演化嵌入中。
具体来说,演化单元将长度为m m m 的KG序列{ G t − m + 1 , ⋯ , G t } \{G_{t-m+1},\cdots,G_t\} { G t − m + 1 , ⋯ , G t } ,映射为实体序列{ H t − m + 1 , ⋯ , H t } \{\mathbf{H}_{t-m+1},\cdots,\mathbf{H}_t\} { H t − m + 1 , ⋯ , H t } 和关系序列{ R t − m + 1 , ⋯ , R t } \{\mathbf{R}_{t-m+1},\cdots,\mathbf{R}_t\} { R t − m + 1 , ⋯ , R t } 。
Structural Dependencies among Concurrent Facts
论文使用一个ω \omega ω 层的关系感知的GCN来捕获结构依赖关系。具体来说,对于t t t 时刻的KG,对象实体o o o 通过消息传递获取主体实体以及关系的信息:
h ⃗ o , t l + 1 = f ( 1 c o ∑ ( s , r ) , ∃ ( s , r , o ) ∈ E t W 1 l ( h ⃗ s , t l + r ⃗ t ) + W 2 l h ⃗ o , t l ) \vec{h}_{o,t}^{l+1} = f \left( \frac{1}{c_o} \sum_{(s,r),\exists(s,r,o)\in\mathcal{E}_t} \mathbf{W}_1^l(\vec{h}_{s,t}^l + \vec{r}_t) + \mathbf{W}_2^l\vec{h}_{o,t}^l \right)
h o , t l + 1 = f c o 1 ( s , r ) , ∃ ( s , r , o ) ∈ E t ∑ W 1 l ( h s , t l + r t ) + W 2 l h o , t l
其中h ⃗ s , t l , h ⃗ o , t l , r ⃗ t \vec{h}_{s,t}^l, \vec{h}_{o,t}^l, \vec{r}_t h s , t l , h o , t l , r t 分别表示l l l 层t t t 时刻的实体s , o s,o s , o 和关系r r r ;W 1 l , W 2 l \mathbf{W}_1^l,\mathbf{W}_2^l W 1 l , W 2 l 为参数矩阵;h ⃗ s , t l + r ⃗ t \vec{h}_{s,t}^l + \vec{r}_t h s , t l + r t 通过向量加法连接实体和关系;c o c_o c o 为实体o o o 的入度;f ( ⋅ ) f(\cdot) f ( ⋅ ) 表示RReLU激活函数。
Sequential Patterns across Temporally Adjacent Facts
对于一个实体o o o ,其历史事实中所包含的顺序模式反映了其行为趋势和偏好。为了尽可能多地涵盖历史事实,论文利用了一个时间门控循环组件来缓解over-smoothing problem和vanishing gradient problem,具体来说,将实体矩阵H t \mathbf{H}_t H t 分为两部分,H t ω \mathbf{H}_t^\omega H t ω 和H t − 1 \mathbf{H}_{t-1} H t − 1 ,分别表示关系感知的GCN在t t t 时刻最后一层的输出和前一个时刻的信息:
H t = U t ⊗ H t ω + ( 1 − U t ) ⊗ H t − 1 \mathbf{H}_t = \mathbf{U}_t \otimes \mathbf{H}_t^{\omega} + (1-\mathbf{U}_t)\otimes \mathbf{H}_{t-1}
H t = U t ⊗ H t ω + ( 1 − U t ) ⊗ H t − 1
其中⊗ \otimes ⊗ 表示点乘。U t ∈ R d × d \mathbf{U}_t\in\mathbb{R}^{d\times d} U t ∈ R d × d 表示为:
U t = σ ( W 4 H t − 1 + b ) \mathbf{U}_t = \sigma(\mathbf{W}_4\mathbf{H}_{t-1}+\mathbf{b})
U t = σ ( W 4 H t − 1 + b )
其中σ ( ⋅ ) \sigma(\cdot) σ ( ⋅ ) 表示sigmoid激活函数。除了实体关系之外,论文使用GRU对关系的顺序模式进行建模。GRU在t t t 时刻的输入为进行平均池化后的t − 1 t-1 t − 1 时刻与r r r 相关的实体:
r ⃗ t ′ = [ p o o l i n g ( H t − 1 , V r , t ) ; r ⃗ ] \vec{r}_t' = [pooling(\mathbf{H}_{t-1,\mathcal{V}_{r,t}});\vec{r}]
r t ′ = [ p oo l in g ( H t − 1 , V r , t ) ; r ]
其中r ⃗ \vec{r} r 关系r r r 的embedding表示,[ ; ] [;] [ ; ] 表示拼接操作。
R t = G R U ( R t − 1 , R t ′ ) \mathbf{R}_t = GRU(\mathbf{R}_{t-1}, \mathbf{R}_t')
R t = GR U ( R t − 1 , R t ′ )
其中R t ′ ∈ R ∣ R ∣ × d \mathbf{R}_t'\in\mathbb{R}^{\vert\mathcal{R}\vert\times d} R t ′ ∈ R ∣ R ∣ × d 由关系r ⃗ t ′ \vec{r}_t' r t ′ 组成。
Static Properties
除了历史KG序列中包含的信息外,实体的一些静态属性,可以看作是TKG的背景知识,可以帮助进行更准确的实体的进化表示。这里,论文使用了一个单层的R-GCN获取静态实体嵌入表示:
h ⃗ i s = Υ ( 1 c i ∑ ( r s , j ) , ∃ ( i , r s , j ) ∈ E s W r s h ⃗ i ′ s ( j ) ) \vec{h}_i^s=\varUpsilon \left( \frac{1}{c_i} \sum_{(r^s,j),\exists(i,r^s,j)\in\mathcal{E}^s} \mathbf{W}_{r^s}\vec{h}_i'^{s}(j) \right)
h i s = Υ c i 1 ( r s , j ) , ∃ ( i , r s , j ) ∈ E s ∑ W r s h i ′ s ( j )
其中h ⃗ i s , h ⃗ j ′ s \vec{h}_i^s,\vec{h}_j'^{s} h i s , h j ′ s 分别表示H s \mathbf{H}^s H s 和H ′ s \mathbf{H}'^s H ′ s 的第i i i 和第j j j 行;W r s \mathbf{W}_{r^s} W r s 表示关系矩阵;Υ ( ⋅ ) \varUpsilon(\cdot) Υ ( ⋅ ) 表示ReLU函数;c i c_i c i 表示与实体i i i 相关的实体数量。
为了学习实体矩阵H t − m , H t − m + 1 , ⋯ , H t \mathbf{H}_{t-m},\mathbf{H}_{t-m+1},\cdots,\mathbf{H}_t H t − m , H t − m + 1 , ⋯ , H t 中的静态关系,论文设定了一个演化表示和静态表示之间的角度,它会随着时间的推移而增加,实体演化的允许的可变范围也不断拓展。
可以理解为近期的动态偏好这种概念。
θ x = min ( γ x , 9 0 ∘ ) \theta_x = \min(\gamma x,90^\circ)
θ x = min ( γ x , 9 0 ∘ )
其中γ \gamma γ 表示角度增加幅度,x ∈ [ 0 , 1 , ⋯ , m ] x\in[0,1,\cdots,m] x ∈ [ 0 , 1 , ⋯ , m ] 。两个嵌入表示的最大角度为9 0 ∘ 90^\circ 9 0 ∘ 。
接着计算两个嵌入实体之间的余弦值cos ( h ⃗ i s , h ⃗ t − m + x , i ) \cos(\vec{h}_i^s, \vec{h}_{t-m+x,i}) cos ( h i s , h t − m + x , i ) ,可以得到t t t 时刻静态图的损失函数:
L x s t = ∑ i = 0 ∣ V ∣ − 1 max { cos θ x − cos ( h ⃗ i s , h ⃗ t − m + x , i ) , 0 } L_x^{st} = \sum_{i=0}^{\vert\mathcal{V}\vert-1} \max\{\cos\theta_x - \cos(\vec{h}_i^s, \vec{h}_{t-m+x,i}),0\}
L x s t = i = 0 ∑ ∣ V ∣ − 1 max { cos θ x − cos ( h i s , h t − m + x , i ) , 0 }
因此静态图的损失函数为:L s t = ∑ x = 0 m L x s t L^{st} = \sum_{x=0}^m L_x^{st} L s t = ∑ x = 0 m L x s t 。
可以理解为利用余弦函数控制两个嵌入表示的比例问题。
Score Functions for Different Tasks
论文使用ConvTransE作为解码器,它包含一个一维卷积层和一个全连接层,分别得到实体和关系的概率:
p ⃗ ( o ∣ s , r , H t , R t ) = σ ( H t ConvTransE ( s ⃗ t , r ⃗ t ) ) \vec{p}(o\vert s,r, \mathbf{H}_t, \mathbf{R}_t) = \sigma(\mathbf{H}_t \text{ConvTransE}(\vec{s}_t,\vec{r}_t))
p ( o ∣ s , r , H t , R t ) = σ ( H t ConvTransE ( s t , r t ))
p ⃗ ( r ∣ s , o , H t , R t ) = σ ( R t ConvTransE ( s ⃗ t , o ⃗ t ) ) \vec{p}(r\vert s,o, \mathbf{H}_t, \mathbf{R}_t) = \sigma(\mathbf{R}_t \text{ConvTransE}(\vec{s}_t,\vec{o}_t))
p ( r ∣ s , o , H t , R t ) = σ ( R t ConvTransE ( s t , o t ))
其中σ ( ⋅ ) \sigma(\cdot) σ ( ⋅ ) 表示sigmoid函数,ConvTransE ( s ⃗ t , r ⃗ t ) , ConvTransE ( s ⃗ t , o ⃗ t ) ∈ R d × 1 \text{ConvTransE}(\vec{s}_t,\vec{r}_t), \text{ConvTransE}(\vec{s}_t,\vec{o}_t)\in\mathbb{R}^{d\times 1} ConvTransE ( s t , r t ) , ConvTransE ( s t , o t ) ∈ R d × 1 。
Parameter Learning
实体预测任务和关系预测任务都可以看作是多标签学习问题,因此实体和关系的损失函数为:
L e = ∑ t = 0 T − 1 ∑ ( s , r , o , t + 1 ) ∈ E t + 1 ∑ i = 0 ∣ V ∣ − 1 y t + 1 , i e log p i ( o ∣ s , r , H t , R t ) L^e = \sum_{t=0}^{T-1}\sum_{(s,r,o,t+1)\in\mathcal{E}_{t+1}}\sum_{i=0}^{\vert\mathcal{V}\vert-1} y_{t+1,i}^e \log p_i(o\vert s,r, \mathbf{H}_t, \mathbf{R}_t)
L e = t = 0 ∑ T − 1 ( s , r , o , t + 1 ) ∈ E t + 1 ∑ i = 0 ∑ ∣ V ∣ − 1 y t + 1 , i e log p i ( o ∣ s , r , H t , R t )
L r = ∑ t = 0 T − 1 ∑ ( s , r , o , t + 1 ) ∈ E t + 1 ∑ i = 0 ∣ R ∣ − 1 y t + 1 , i r log p i ( r ∣ s , o , H t , R t ) L^r = \sum_{t=0}^{T-1}\sum_{(s,r,o,t+1)\in\mathcal{E}_{t+1}}\sum_{i=0}^{\vert\mathcal{R}\vert-1} y_{t+1,i}^r \log p_i(r\vert s,o, \mathbf{H}_t, \mathbf{R}_t)
L r = t = 0 ∑ T − 1 ( s , r , o , t + 1 ) ∈ E t + 1 ∑ i = 0 ∑ ∣ R ∣ − 1 y t + 1 , i r log p i ( r ∣ s , o , H t , R t )
最终的损失函数为:
L = λ 1 L e + λ 2 L r + L s t L = \lambda_1L^e + \lambda_2L^r + L^{st}
L = λ 1 L e + λ 2 L r + L s t
其中λ 1 , λ 2 \lambda_1,\lambda_2 λ 1 , λ 2 为超参数。
实验
Datasets
ICEWS18,ICEWS14,ICEWS05-15:综合危机预警系统,监测、评估和预测国家、地方和内部危机
WIKI:维基百科
YAGO:开源知识数据库
GDELT:全球事件、语言和语气数据库
Results
Prediction Time
Ablation studies
Case study
总结
论文主要通过时间知识图谱进行建模,在每个时间片上采用GCN,在时间维度上采用GRU,并补充静态关系信息,同时对实体和关系进行预测。总体下来感觉对TKG进行处理的过程可以参考,但是能不能应用到POI,以及TKG该如何很好地建立还是一个问题。
参考资料