ML = Representation + Objective + Optimization
# Typical representation for KG
最早的知识一般通过三元组的形式 (symbolic triples) 来表示。
# TransE
最基本的想法,从 word2vec 论文中出现。其核心是 , 即头实体和关系的嵌入向量和就是尾实体的向量。这里的优化目标是
但这是一个病态的最优函数,因为很容易学习到所有表示均为 . 于是引入负样本
其中 , 是知识图谱中的三元组,也就是正样本。 是负样本。
负样本的选取包括如下方式:
- 随机选取 (random negative): 只要不在正样本中,就是负样本。这样头实体和尾实体之间可能毫无关系,从而导致学习的难度非常简单。
- 困难的负样本 (hard negative): 选取那些最有可能是正例的负样本。例如选择 作为负例。但是这样可能会采集到假的负样本。例如 A 的朋友是 B 没有出现在知识图谱中,但是两人可能真的是朋友。
# Semantic Matching
与 TransE 相同年代 (2013) 年,另一派方法是 semantic matching. 其核心思想是衡量头实体和尾实体之间的距离。代表方法是 RESCAL 和 DistMult.
RESCAL 主张计算头实体和尾实体下的某种意义上的 distance:
这里表示头实体按矩阵 所对应的方向进行旋转,是否会落在尾实体点上。
DistMult 是对 RESCAL 的进一步优化:
这里相比于 RESCAL 进一步降低了复杂度,同时保证了矩阵的秩不变。
进一步的改进是 Scoring funtion: circular correlation:
# TransE 改进
国内数得上号的 NLP 选手都搞过 TransE 的改版。
# Complex Relations
知识图谱中包括多种关系,分别是一对一、一对多、多对一多对多等。这样,如果将 TransE 的模型优化到最优,那么一对多、多对一、多对多等中,很多节点可能都会重合,但是其本质上有所不同。比如如果学习美国总统是谁这个关系时,奥巴马和川普容易发生重合。
解决方法包括:
- 投影
- 改变模型的嵌入空间
- 使用更加复杂的编码模型
# Projection
代表性的工作是 TransH 和 TransR.
# TransH
优化目标是
也就是需要学习其在超平面上的投影。
# TransR
相比于 TransH, TransR 更加稳定。
# TransD
TransD 没有将头实体和尾实体投影到相同空间中,提高了模型的学习灵活度。但是在物理空间上不好理解。
# Change Embedding Space
ComplEx: 认为向量不仅有实部的 embedding, 还有虚部的 embedding.
也可以嵌入到双曲空间中。但是似乎没有那么 work.
ATTH.
KG2E.
Gaussian Distribution
# 使用复杂的编码模型
# MLP(NTN)
cdq 做的。
# MLP(CNN)
ConvE: 把图像领域的 CNN 挪到 NLP 上。
# Transformer
CoKE 尝试用 Transformer 对三元组建模。
# GNN
R-GCN: Relation-spectific GNN.
早期的 GCN 是面向同质图的,但是 KG 中需要边具有不同的属性。于是出现了 R-GCN.
# Evaluation
# Dataset
- FB15k, FB15k237
- WN18, WN18RR
# Metric
- Hits@N
- MeanRank
- MRR