KGE 与推理 1(基础 + TransE)

Views: --

对应 PPT:第10讲 最核心的现代 KG 推理方法——把 KG 嵌成向量空间。重点:KGE 动机、4 类经典模型、TransE 详解、复杂关系变种、规则+路径增强、EngineKG 闭环。


1. KGE 基本概念

1.1 基于归纳的 KG 推理分类

基于图结构的推理       (第9讲:PRA、强化学习)
基于规则学习的推理     (第9讲:AMIE)
基于表示学习的推理     (KG Embedding,本讲)

1.2 传统大规模 KG 的 2 大问题

① 计算效率问题

  • 可移植性差:需要设计专门的图算法
  • 可扩展性差:基于图的算法复杂度高
  • 难满足实时计算需求

② 数据稀疏问题

  • 长尾分布:对长尾实体的计算准确率很低
  • 大量实体/关系的语义信息未被利用

1.3 KGE 核心思想

把知识图谱嵌入到低维向量空间

  • 实体 → 低维向量
  • 关系 → 低维向量或矩阵/操作
  • 通常 10/20/50 维

3 大优势

  • 显著提升计算效率
  • 有效减少数据稀疏
  • 便于多源数据融合

2. KGE 典型模型分类(必背 4 大类)

类别代表模型特点
基于翻译(TransE 系列)TransE / H / R / D / RotatE简单高效,主流
基于张量分解RESCAL / DisMult / HolE / ComplEx矩阵/张量运算
基于神经网络NTN / ConvE / ConvKB / KG-BERT深度学习
基于图神经网络R-GCN / KGAT / KBAT关系图卷积

期末最爱考:TransE、TransH、TransR、TransD、RotatE——必须能写出打分函数和损失函数。


3. 经典模型详解

3.1 TransE(最经典,NeurIPS 2013)

核心思想

把关系看成从头实体到尾实体的翻译(平移)。 几何上看:从 h 平移 r 到达 t。

打分函数(距离函数)

E(h,r,t)=h+rt2(L2 范数)E(h, r, t) = \| \mathbf{h} + \mathbf{r} - \mathbf{t} \|_2 \quad (\text{L2 范数})

平移不变量h+rt\mathbf{h} + \mathbf{r} \approx \mathbf{t}

损失函数(hinge loss + 负采样)

L=(h,r,t)T(h,r,t)Tmax(0,γ+E(h,r,t)E(h,r,t))L = \sum_{(h, r, t) \in T} \sum_{(h', r, t') \in T'} \max(0, \gamma + E(h, r, t) - E(h', r, t'))
  • TT = 正样本(KB 中的三元组)
  • TT' = 负样本(采样得到)
  • γ\gamma = 边际超参数(margin)
  • max(0,x)\max(0, x) = hinge 损失

训练流程(5 步)

① 输入:实体集合、关系集合、边际参数、向量维度
② 初始化:实体向量 e、关系向量 l
③ 从 KB 采样 minibatch
④ 负采样:构造负样本三元组
⑤ 最小化目标函数,计算梯度,更新参数

3.2 TransE 的局限

  • 简单模型,难处理一对多、多对一、多对多关系
  • 例:(中国, 有城市, 北京) 和 (中国, 有城市, 上海) → 强制北京 ≈ 上海 ❌
  • 对称关系会得到 r=0\mathbf{r} = 0(错误)
  • 无层次关系建模

3.3 RESCAL(张量分解经典,ICML 2011)

核心思想:KG = 1 个三阶张量(每种关系 1 个切片)。

打分函数

E(h,r,t)=hTMrtE(h, r, t) = \mathbf{h}^T M_r \mathbf{t}
  • MrM_r = 关系 r 的关系矩阵
  • 还原三阶张量

3.4 NTN(神经网络经典,NeurIPS 2013)

核心思想:每个关系 1 组神经网络参数。

打分函数

E(h,r,t)=urTtanh(hTWrt+Vr[ht]+br)E(h, r, t) = \mathbf{u}_r^T \tanh(\mathbf{h}^T W_r \mathbf{t} + V_r \begin{bmatrix} \mathbf{h} \\ \mathbf{t} \end{bmatrix} + \mathbf{b}_r)
  • 表达能力强,但参数多、训练慢

3.5 R-GCN(图神经网络,ESWC 2018)

核心思想:用 GCN 聚合实体邻域信息,可建模关系。

打分函数(类似 DistMult/TransE 的结合):

E(h,r,t)=score(h,r,t)E(h, r, t) = \text{score}(\mathbf{h}, \mathbf{r}, \mathbf{t})
  • 邻域信息 + 自身信息聚合

3.6 KG-BERT(Transformer,arXiv 2019)

  • 用 BERT 对三元组做分类
  • 表达力强,但不能扩展到大 KG

4. 复杂关系建模

4.1 复杂映射特性

关系类型含义例子
1-1一对一(北京, 首都, 中国)
1-N一对多(中国, 有城市, 北京) 和 (中国, 有城市, 上海)
N-1多对一(小明, 出生于, 北京) 和 (小强, 出生于, 北京)
N-N多对多(本泽马, 效力于, 皇家马德里)

4.2 TransH(AAAI 2014)

核心思想:每个关系 r 对应一个超平面(法向量 wr\mathbf{w}_r),实体向量投影到超平面再平移。

投影公式

h=hwrThwr\mathbf{h}_\perp = \mathbf{h} - \mathbf{w}_r^T \mathbf{h} \mathbf{w}_r t=twrTtwr\mathbf{t}_\perp = \mathbf{t} - \mathbf{w}_r^T \mathbf{t} \mathbf{w}_r

打分函数

E(h,r,t)=h+rt2E(h, r, t) = \| \mathbf{h}_\perp + \mathbf{r} - \mathbf{t}_\perp \|_2

优点:解决一对多问题(同一实体在不同关系下投影到不同超平面)。

4.3 TransR(AAAI 2015)

核心思想:实体和关系在不同空间——每个关系 r 有投影矩阵 MrM_r,将实体从实体空间投影到关系空间。

投影公式

hr=Mrh,tr=Mrt\mathbf{h}_r = M_r \mathbf{h}, \quad \mathbf{t}_r = M_r \mathbf{t}

打分函数

E(h,r,t)=hr+rtr2E(h, r, t) = \| \mathbf{h}_r + \mathbf{r} - \mathbf{t}_r \|_2

优点:分离实体/关系空间,表达更灵活;缺点:参数多。

4.4 RotatE(ICLR 2019)

核心思想:关系 r 看成复数空间中的旋转操作。

打分函数

E(h,r,t)=hrtE(h, r, t) = \| \mathbf{h} \circ \mathbf{r} - \mathbf{t} \|
  • \circ = 复数乘法(元素级 Hadamard 积)
  • r\mathbf{r} 的每个分量是模长为 1 的复数(纯旋转,无缩放)

RotatE 能建模的关系模式

模式含义例子
对称关系r\mathbf{r} 自身对称朋友、配偶
反对称关系r\mathbf{r} 反对称老师
逆反关系r1=rˉ2\mathbf{r}_1 = \bar{\mathbf{r}}_2球员 ↔ 效力于
组合关系r3=r1r2\mathbf{r}_3 = \mathbf{r}_1 \circ \mathbf{r}_2出生于+位于=国籍

期末最爱考 RotatE:能同时建模 4 种关系模式——这是它的核心卖点。


5. 引入路径信息的 KGE

5.1 动机

  • 传统 KG Embedding 完全依赖三元组 → 缺乏可解释性
  • 路径包含更丰富的语义关联
  • 但路径表示完全数据驱动 → 误差累积

5.2 PTransE(EMNLP 2015)

  • TransE + 多跳路径信息
  • 3 种路径组合方式:
方式含义
相加r1+r2+...+rk\mathbf{r}_1 + \mathbf{r}_2 + ... + \mathbf{r}_k
相乘r1r2...rk\mathbf{r}_1 \circ \mathbf{r}_2 \circ ... \circ \mathbf{r}_k
RNN/LSTM用 RNN/LSTM 编码路径

5.3 RPJE(Rule and Path Joint Embedding, AAAI 2020)

核心思想联合嵌入三元组、路径、规则

打分函数(3 个)

评分公式含义
三元组打分E1(h,r,t)=h+rtE_1(h, r, t) = \| \mathbf{h} + \mathbf{r} - \mathbf{t} \|评估三元组成立
路径打分E2(p,r)=R(ph,t)μiB(p)μiprE_2(p, r) = R(p \mid h, t) \cdot \sum_{\mu_i \in B(p)} \mu_i \cdot \| \mathbf{p} - \mathbf{r} \|评估路径与关系匹配
关系对打分E3(r,rR)=rrRE_3(r, r_R) = \| \mathbf{r} - \mathbf{r}_R \|评估规则中一对关系的距离

整体损失

L=L1+α1L2+α2L3L = \sum L_1 + \alpha_1 \sum L_2 + \alpha_2 \sum L_3

5.4 推理时(综合评估)

Q(h,r,t)=h+rt+α1μiB(p)μiprQ(h, r, t) = \mathbf{h} + \mathbf{r} - \mathbf{t} + \alpha_1 \sum_{\mu_i \in B(p)} \mu_i \cdot \| \mathbf{p} - \mathbf{r} \|

关键发现(PPT 实验结论):

  • 规则置信度阈值 0.7-0.8 时效果最好(trade-off)
  • 最大路径长度 2 比 3 更好
  • 引入规则置信度非常重要

6. 闭环结构:EngineKG

EngineKG:把规则学习KG 嵌入放在一个闭环里互相增强(类似四冲程发动机)。

6.1 4 冲程循环

冲程任务输入输出
进气规则增强的知识表示学习符号规则 + KG增强的 embedding
压缩规则引导的 KG 嵌入高维符号 → 低维向量嵌入表示
扩张基于 KG 嵌入和路径的规则学习嵌入 + 路径新规则
排气过滤低质量规则 + 更新规则集候选规则更新后的规则集

6.2 关键创新

  • 闭环:规则 ↔ 嵌入互相增强
  • 启动只需少量种子规则
  • 自动学出更多高质量规则

6.3 实验效果(必看数字)

方法FB15K MRRFB15K237 MRR
TransE0.5340.289
RotatE0.6120.317
PTransE0.6790.364
RPJE0.8110.443
EngineKG0.8540.555

结论:EngineKG 大幅超越所有 baseline。


7. KGE 评价指标(必背 3 个)

7.1 测试方法

测试样本:(h, r, ?)

候选三元组:(h, r, e₁), (h, r, e₂), ..., (h, r, e_N)

计算每个候选的分数

排名

7.2 3 大指标

指标公式含义
MR(Mean Rank)MR=1NirankiMR = \frac{1}{N} \sum_i \text{rank}_i正确实体的平均排名(越小越好)
MRR(Mean Reciprocal Rank)MRR=1Ni1rankiMRR = \frac{1}{N} \sum_i \frac{1}{\text{rank}_i}平均倒数排名(越大越好)
Hits@nHits@n=1NiI(rankin)Hits@n = \frac{1}{N} \sum_i \mathbb{I}(\text{rank}_i \le n)正确实体排在前 n 的比例

速记:MR 越小越好,MRR/Hits@n 越大越好。


8. OpenKE 平台(清华开源)

维度内容
开发清华 NLP 实验室(刘知远、孙茂松)
整合算法TransE/H/R/D、RESCAL、DistMult、HolE、ComplEx 等
数据集FB15K、FB15K237、WN18、WN18RR
底层C++ 多线程加速
版本PyTorch / TensorFlow / C++
主页http://openke.thunlp.org
GitHubhttps://github.com/thunlp/OpenKE

9. 知识图谱推理方法对比(必背总表)

类别子类优点缺点
基于 KG 嵌入翻译模型效率高、泛化性好不具有可解释性
张量分解
神经网络
图神经网络
Transformer
基于规则学习归纳逻辑编程精度高、可解释鲁棒性不足、效率低
神经网络规则学习
规则 + 嵌入
基于路径路径搜索多步推理能力缺乏精确路径表示
路径 + 嵌入

10. 本章脑图

KGE 与推理 1
├── KGE 动机(效率+稀疏性)
├── 4 类经典模型
│   ├── 翻译:TransE(h+r≈t)
│   ├── 张量分解:RESCAL(h^T M_r t)
│   ├── 神经网络:NTN、ConvE
│   └── GNN:R-GCN

├── 复杂关系建模
│   ├── TransH(投影到超平面)
│   ├── TransR(投影到关系空间)
│   └── RotatE(复数旋转,4 种关系模式)

├── 路径 + 规则增强
│   ├── PTransE(多跳路径)
│   ├── RPJE(联合三元组+路径+规则)
│   └── EngineKG(闭环:规则↔嵌入互相增强)

├── 3 大评价指标
│   ├── MR(越小越好)
│   ├── MRR(越大越好)
│   └── Hits@n(越大越好)

└── 工具:OpenKE(清华)