基于知识图谱嵌入(Knowledge Graph Embedding, KGE)的关系推理算法详解
题目描述
知识图谱通常以三元组(头实体,关系,尾实体)的形式表示事实,例如(北京,是首都,中国)。然而,现实中的知识图谱往往不完整,存在大量缺失的关系。知识图谱嵌入(KGE)算法的核心目标是将实体和关系映射到低维连续向量空间,使得在这个空间中,已有事实三元组能够通过某种评分函数得到高分,而错误或未知的三元组得到低分。这样,通过学习到的向量表示,我们可以进行链接预测(即预测缺失的三元组),从而补全知识图谱,并支持关系推理。本题将详细讲解经典的TransE算法及其核心思想、优化过程与变体。
解题过程循序渐进讲解
第一步:问题形式化与核心思想
- 知识图谱定义: 设知识图谱为 \(G = \{ (h, r, t) \}\),其中 \(h\) 是头实体,\(r\) 是关系,\(t\) 是尾实体,所有实体集合为 \(E\),关系集合为 \(R\)。
- 链接预测任务: 给定不完整的三元组(如(北京,是首都,?)),预测缺失的实体(如“中国”)。这本质上是一个排序问题,即对所有候选实体计算分数,分数越高,成为正确答案的可能性越大。
- TransE的核心直觉: TransE(Translating Embeddings)模型的基本思想非常简单直观。它将关系 \(r\) 解释为在向量空间中从头实体向量 \(\mathbf{h}\) 到尾实体向量 \(\mathbf{t}\) 的一个平移(Translation)。换句话说,对于一个正确的三元组 \((h, r, t)\),在嵌入空间里,我们希望: \(\mathbf{h} + \mathbf{r} \approx \mathbf{t}\)。这里的 \(\mathbf{h}, \mathbf{r}, \mathbf{t}\) 分别是 \(h, r, t\) 对应的 \(d\) 维向量表示。
第二步:模型构建与评分函数
- 评分函数: 为了衡量三元组 \((h, r, t)\) 的合理性,TransE使用一个基于距离的评分函数。最常用的是L1或L2范数。
\[ f(h, r, t) = - \| \mathbf{h} + \mathbf{r} - \mathbf{t} \|_p \]
其中,\(p\) 可以是1或2,表示L1距离或L2距离。分数越高(即负的距离值越大,实际距离越小),表示三元组越可能是正确的。模型的目标是让正确三元组的分数尽可能高,错误三元组的分数尽可能低。
2. 向量空间几何解释: 在理想情况下,如果 \((h, r, t)\) 正确,那么向量 \(\mathbf{t}\) 应该非常接近 \(\mathbf{h} + \mathbf{r}\) 这个点。这形成了一个简单的几何约束。
第三步:损失函数与优化
模型通过优化一个损失函数来学习所有实体和关系的向量表示。常用最大间隔损失(Margin-based Ranking Loss)。
- 损失函数公式:
\[ L = \sum_{(h,r,t) \in S} \sum_{(h',r,t') \in S'} \max(0, \gamma + f(h', r, t') - f(h, r, t)) \]
其中:
- \(S\) 是正确的三元组集合(正样本)。
- \(S'\) 是“损坏”的三元组集合(负样本)。通常通过将正样本中的头实体或尾实体随机替换为其他实体来生成,例如,从(北京,是首都,中国)可以生成(上海,是首都,中国)或(北京,是首都,美国)。
- \(\gamma\) 是一个大于0的间隔超参数,用来控制正负样本得分的最小差距。
- 优化目标: 最小化损失函数 \(L\)。这意味着,对于一个正样本 \((h,r,t)\) 和一个对应的负样本 \((h',r,t')\),我们希望正样本的分数 \(f(h,r,t)\) 至少比负样本的分数 \(f(h',r,t')\) 高出 \(\gamma\)。如果已经满足这个条件,该样本对的损失为0;否则,模型参数(即向量)将被更新以满足这个间隔要求。
- 训练技巧: 通常使用随机梯度下降(SGD)或其变体(如Adagrad)进行优化。训练前需要对所有实体和关系向量进行随机初始化。
第四步:模型局限性与主要变体
尽管TransE简单高效,但它难以处理复杂关系,如一对多、多对一、多对多以及对称/反对称关系。例如:
- 一对多:关系“首都”,一个尾实体“中国”可能对应多个头实体“北京”、“南京”?这在实际知识中不成立,但在“有作家”关系中,一个尾实体“《红楼梦》”可能对应多个头实体“曹雪芹”、“高鹗”。在TransE中,对于(曹雪芹, 有作家, 《红楼梦》)和(高鹗, 有作家, 《红楼梦》),会强制 \(\mathbf{曹雪芹} + \mathbf{有作家} \approx \mathbf{t}\) 且 \(\mathbf{高鹗} + \mathbf{有作家} \approx \mathbf{t}\),这会导致 \(\mathbf{曹雪芹} \approx \mathbf{高鹗}\),无法区分两个不同实体。
- 对称关系: 如果关系 \(r\) 是对称的(如“同事”),则应有 \((h, r, t)\) 和 \((t, r, h)\) 同时成立。TransE要求 \(\mathbf{h} + \mathbf{r} = \mathbf{t}\) 且 \(\mathbf{t} + \mathbf{r} = \mathbf{h}\),这迫使 \(\mathbf{r} = \mathbf{0}\) 且 \(\mathbf{h} = \mathbf{t}\),同样无法区分实体。
主要变体算法:
- TransH: 为了解决一对多/多对一问题,TransH让每个关系拥有一个超平面。在计算时,先将头尾实体向量投影到这个关系的超平面上,然后在超平面内进行平移。即: \(\mathbf{h}_{\perp} = \mathbf{h} - \mathbf{w}_r^\top \mathbf{h} \mathbf{w}_r\), \(\mathbf{t}_{\perp} = \mathbf{t} - \mathbf{w}_r^\top \mathbf{t} \mathbf{w}_r\),然后要求 \(\mathbf{h}_{\perp} + \mathbf{d}_r \approx \mathbf{t}_{\perp}\)。这样,同一个实体在不同关系中会有不同的投影表示,缓解了表示冲突。
- TransR: 更进一步,认为实体和关系应处于不同语义空间。TransR为每个关系 \(r\) 学习一个投影矩阵 \(\mathbf{M}_r\),将实体从实体空间投影到关系空间: \(\mathbf{h}_r = \mathbf{h} \mathbf{M}_r\), \(\mathbf{t}_r = \mathbf{t} \mathbf{M}_r\),然后在关系空间中要求 \(\mathbf{h}_r + \mathbf{r} \approx \mathbf{t}_r\)。
- DistMult/ComplEx: 这些模型使用乘法交互而非加法平移。例如,DistMult的评分函数为 \(f(h,r,t) = \mathbf{h}^\top \text{diag}(\mathbf{r}) \mathbf{t}\),能很好建模对称关系。ComplEx在复数域推广了DistMult,能够同时建模对称和反对称关系。
第五步:评估与应用
- 评估指标: 链接预测任务常用平均排名和命中率进行评估。具体流程是:对于每个测试三元组,将头实体或尾实体替换为所有候选实体,用模型计算分数并排序。记录正确实体的排名。平均排名越小越好。命中率@K(Hits@K)看正确实体是否排在前K名,K通常取1,3,10。
- 应用场景: 知识图谱嵌入不仅用于链接预测补全知识图谱,其学到的实体和关系向量还可以作为下游任务(如问答系统、信息检索、推荐系统)的高质量特征输入,增强模型对世界知识的理解。
总结
TransE算法以其“平移”的直观思想,为知识图谱嵌入奠定了基础。其核心在于通过简单向量运算的评分函数和间隔损失来学习表示。尽管存在处理复杂关系能力不足的局限,但其启发的TransH、TransR、RotatE等众多变体不断推动着该领域的发展。理解TransE是深入掌握知识图谱表示学习和关系推理算法的关键起点。