知识图谱是组织和表示结构化知识的强大工具,但其符号化的离散表示在很多计算任务中存在局限性。为了克服这些局限,并使其能更好地融入现代机器学习流程,知识图谱嵌入(Knowledge Graph Embedding, KGE)技术应运而生。它旨在将知识图谱中的实体(如人、地点、概念)和关系(如“出生于”、“属于”)映射到低维、稠密的连续向量空间中,从而保留图谱的结构和语义信息。
是什么:知识图谱嵌入的本质与构成
知识图谱嵌入的核心思想,是将知识图谱中由三元组(头实体,关系,尾实体)构成的离散符号信息,转化为可以在数学上进行运算和比较的连续数值向量。
其主要构成包括:
- 实体嵌入(Entity Embeddings):每个实体都被表示为一个唯一的低维向量。例如,实体“爱因斯坦”可能被表示为一个100维的向量[0.1, -0.5, …, 0.8]。这些向量通常被称为实体向量或实体表示。
- 关系嵌入(Relation Embeddings):每种关系类型(如“出生于”、“职业是”)也被表示为一个低维向量或矩阵。这个向量(或矩阵)捕捉了该关系所蕴含的语义转换或模式。
- 评分函数(Scoring Function):这是一个核心组件,它定义了如何衡量一个给定三元组(h, r, t)的“真实性”或“可能性”。通过组合头实体向量、关系向量和尾实体向量,评分函数会输出一个实数值,通常是越大代表三元组越可能成立。
- 损失函数(Loss Function):用于衡量模型预测结果与真实值之间的差距。在训练过程中,模型的目标是最小化这个损失,从而学习到高质量的实体和关系嵌入。
- 负采样策略(Negative Sampling Strategy):由于知识图谱通常只包含真实的三元组(正样本),为了训练模型区分真实和虚假三元组,需要生成“负样本”(即不真实的三元组)。负采样策略决定了如何从现有实体和关系中随机替换头实体或尾实体来构造负样本。
简而言之,知识图谱嵌入就是将图谱的离散符号转化为连续向量,使得语义相似的实体在向量空间中距离相近,而通过关系向量的转换,能够从头实体向量准确地“抵达”尾实体向量。
为什么:知识图谱嵌入的必要性与优势
将知识图谱进行嵌入表示,并非无的放矢,而是为了解决传统符号表示方法在数据处理、计算效率和应用拓展方面的固有局限,并带来诸多显著优势:
1. 解决知识图谱的稀疏性问题:
大型知识图谱尽管包含大量事实,但对于任何特定实体或关系而言,其连接数量相对于所有可能连接而言仍然是极其稀疏的。符号表示难以捕捉实体间潜在的、间接的关联。嵌入将离散符号转化为稠密向量,能够捕捉更深层次的语义关联,有效缓解稀疏性问题。
2. 提升计算效率与可扩展性:
在大型知识图谱上直接执行推理或查询操作,通常涉及复杂的图遍历和模式匹配,计算成本极高。将实体和关系映射到低维向量空间后,许多复杂操作可以转化为简单的向量运算(如点积、距离计算),大大提升了计算效率,并使得处理亿级甚至更大规模的知识图谱成为可能。
3. 赋能统计学习与深度学习模型:
传统的机器学习和深度学习模型主要处理数值型数据。知识图谱的符号表示无法直接输入这些模型。通过嵌入,知识图谱得以转换为连续的数值向量,可以直接作为特征输入到各种机器学习算法(如分类器、回归模型)和深度神经网络(如卷积神经网络、循环神经网络、图神经网络)中,从而极大地拓展了知识图谱的应用范围。
4. 支持知识图谱的补全与推理:
知识图谱往往是不完整的,存在大量缺失的事实。知识图谱嵌入能够根据已有的事实,通过向量运算来预测缺失的链接(链接预测),从而实现知识图谱的自动补全。此外,它还能支持更复杂的推理任务,例如预测实体类型、关系归纳等。
5. 捕捉更丰富的语义信息:
嵌入向量能够学习到实体和关系的深层语义特征。例如,在向量空间中,“巴黎”和“法国”之间的关系向量可能与“柏林”和“德国”之间的关系向量非常相似,这体现了“首都”这一抽象概念。这种语义相似性在符号表示中难以直接衡量和利用。
总而言之,知识图谱嵌入是将知识图谱从“符号层面”提升到“数值层面”的关键桥梁,它使得知识图谱能够与现代数据驱动的智能技术无缝对接,从而释放其在各种复杂应用场景中的巨大潜力。
哪里:知识图谱嵌入的典型应用场景
知识图谱嵌入的强大能力使其在多个领域和应用中发挥着不可替代的作用:
1. 推荐系统:
- 个性化推荐: 通过嵌入用户、物品以及它们之间的复杂关系(如用户购买过某类物品、物品属于某种品类、物品由某个品牌生产),推荐系统能够更深入地理解用户兴趣和物品特征,从而提供更精准、更具解释性的推荐。例如,可以利用嵌入来推荐与用户历史上购买物品“相似”但在更高语义层面上关联的新物品。
- 冷启动问题: 对于新用户或新物品,由于缺乏交互数据,传统推荐方法难以生效。知识图谱嵌入可以利用其丰富的属性和关系信息,为冷启动实体生成有意义的嵌入,从而缓解冷启动问题。
2. 问答系统(Question Answering):
- 语义理解: 将问题中的实体和关系映射到嵌入空间,与知识图谱中的实体和关系嵌入进行匹配,从而理解问题的意图。
- 答案抽取: 辅助从大型知识库中高效地找到与问题相关的事实三元组,并提取出准确的答案。例如,对于“爱因斯坦的职业是什么?”,系统可以通过实体“爱因斯坦”和关系“职业是”的嵌入来定位答案“物理学家”。
3. 信息抽取与知识图谱构建:
- 实体识别与关系抽取: 将文本中的实体和它们之间的关系嵌入化,可以辅助从非结构化文本中自动识别实体并抽取它们之间的关系,从而不断扩充和完善知识图谱。
- 知识图谱补全(Knowledge Graph Completion): 预测知识图谱中缺失的链接或属性,这是知识图谱嵌入最直接的应用之一,极大提高了图谱的完整性和可用性。
4. 药物发现与生物信息学:
- 药物-疾病关联预测: 嵌入药物、蛋白质、基因和疾病等实体,预测它们之间潜在的相互作用或关联,加速新药研发和疾病治疗研究。
- 蛋白质相互作用预测: 通过嵌入蛋白质序列和结构信息,预测蛋白质之间是否会相互作用。
5. 金融风险控制:
- 反欺诈: 识别金融交易中的异常模式和隐藏关系,例如通过嵌入客户、交易、账户等信息,发现欺诈团伙中的关联关系。
- 信用评估: 综合考虑用户在多维度上的关联信息,构建更全面的信用风险评估模型。
6. 智能助手与聊天机器人:
- 通过理解用户提问中的实体和关系,结合嵌入式知识,提供更智能、上下文感知的响应和建议。
这些应用都得益于知识图谱嵌入将离散符号转化为连续向量的能力,使得复杂的知识推理和模式识别能够通过高效的数值运算实现。
多少:规模、资源与维度考量
知识图谱嵌入涉及的“多少”维度,主要体现在以下几个方面:
1. 知识图谱的规模:
- 实体与关系数量: 现代知识图谱的规模从数百万实体和数千万三元组到数十亿实体和数千亿三元组不等。例如,Freebase、DBpedia、Wikidata等公开知识图谱都拥有庞大的体量。嵌入模型需要能够有效处理如此大规模的数据。
- 关系类型的多样性: 知识图谱可能包含数百到数千种不同的关系类型,这要求嵌入模型能够学习和区分这些关系的细微语义差异。
2. 嵌入向量的维度:
- 典型范围: 实体和关系嵌入向量的维度通常在50到1000之间。常见的维度有50、100、200、500。
- 维度选择: 维度并非越大越好。较低的维度可以减少过拟合风险和计算开销,但可能无法捕捉所有复杂语义。较高的维度可以捕捉更丰富的语义信息,但会增加模型复杂性、存储需求和计算时间,并可能导致过拟合。最佳维度通常通过实验和验证来确定。
3. 计算资源需求:
- 内存: 存储实体和关系嵌入向量本身就需要大量内存。例如,一个包含1000万实体、100维嵌入的知识图谱,仅实体向量就需要1000万 * 100 * 4字节(浮点数)≈ 4GB内存。大规模图谱可能需要数十GB甚至TB级的内存。
-
计算力(CPU/GPU): 训练知识图谱嵌入模型是计算密集型任务,尤其涉及大量的矩阵乘法和梯度计算。
- CPU: 对于小型图谱或探索性研究,CPU可以胜任。
- GPU: 对于中大型知识图谱,利用GPU进行并行计算是必不可少的,可以显著缩短训练时间,从几天缩短到几小时。通常需要至少一块高性能GPU(如NVIDIA V100, A100)甚至多块GPU集群。
- 存储: 原始知识图谱数据和训练过程中生成的中间文件也需要大量磁盘空间。
4. 训练时间:
- 训练时间取决于知识图谱的规模、嵌入维度、模型复杂度、负采样率、批处理大小以及可用的计算资源。
- 对于小型图谱(百万级三元组),可能只需要几分钟到几小时。对于大型图谱(亿级三元组),训练可能需要数小时到数天。
综上所述,知识图谱嵌入是一个资源密集型任务,尤其在处理大规模真实世界知识图谱时,需要仔细权衡模型选择、嵌入维度和硬件投入。
如何:知识图谱嵌入的原理与主流模型
知识图谱嵌入的核心在于设计一个有效的评分函数,使得真实三元组的得分高于虚假三元组。主流模型可分为几大类:
1. 基于平移的模型(Translational Models)
这类模型将关系视为从头实体向量到尾实体向量的“平移操作”。
TransE(Translating Embeddings for Knowledge Graph Embedding)
- 核心思想: 假设对于一个正确的三元组(h, r, t),头实体向量 h 加上关系向量 r 应该近似等于尾实体向量 t,即 h + r ≈ t。
- 评分函数: 衡量 ‖h + r – t‖ 的大小,通常使用L1或L2范数。得分越小,表示三元组越真实。
- 优势: 简单、直观、计算效率高。
- 局限性: 难以处理复杂关系,如一对多(one-to-many)、多对一(many-to-one)和多对多(many-to-many)关系,以及对称关系。例如,如果A-R->B且A-R->C,TransE会倾向于使B≈C,这在现实中可能不成立。
TransH、TransR、TransD等改进模型
-
针对TransE的局限性,后续模型引入了更复杂的转换机制:
- TransH: 为每种关系定义一个特定的超平面,将实体投影到该超平面上再进行平移操作,以区分不同关系下实体的语义。
- TransR: 为每种关系定义一个关系特定的投影矩阵,将实体投影到关系空间再进行平移,使得实体和关系可以在不同空间中表示。
- TransD: 进一步为实体和关系定义投影向量,使投影过程更灵活。
2. 基于语义匹配的模型(Semantic Matching Models)
这类模型通过衡量实体和关系向量之间的匹配程度来评估三元组的真实性,通常使用点积或双线性形式。
DistMult(Diagonal Matrix Factorization for Knowledge Graph Embedding)
- 核心思想: 对于一个正确的三元组(h, r, t),通过实体向量 h、关系向量 r(对角矩阵形式)和实体向量 t 的点积来衡量其真实性。
- 评分函数: f(h, r, t) = hT diag(r) t = Σi hi ri ti (元素级乘积求和)。
- 优势: 计算高效,对于对称关系表现良好。
- 局限性: 只能处理对称关系,无法很好地处理非对称关系,因为它强制要求关系向量 r 的元素与 -r 的元素效果相同。
ComplEx(Complex Embeddings for Simple Link Prediction)
- 核心思想: 将实体和关系嵌入到复数向量空间中。通过复数点积操作,能够自然地处理对称和非对称关系。
- 评分函数: f(h, r, t) = Re(<h, r, conj(t)>),其中conj表示共轭,< , , >表示复数向量的三线性乘积。
- 优势: 能够同时处理对称和非对称关系,在许多数据集上取得了优秀性能。
3. 基于卷积神经网络的模型(Convolutional Neural Network Models, CNNs)
这类模型将三元组的嵌入向量视为图像,利用CNNs提取更复杂的特征。
ConvE(Convolutional 2D Knowledge Graph Embeddings)
- 核心思想: 将头实体向量 h 和关系向量 r 拼接后重塑成一个2D矩阵,然后应用卷积层提取特征。提取的特征与尾实体向量 t 进行点积计算得分。
- 优势: 能够捕捉实体和关系之间更复杂的非线性交互模式,性能通常优于平移和语义匹配模型。
- 局限性: 训练所需计算资源相对较高。
4. 基于图神经网络的模型(Graph Neural Network Models, GNNs)
GNNs能够直接在图结构上进行消息传递和特征聚合,更自然地捕获图的拓扑信息和多跳邻居信息。
R-GCN(Relational Graph Convolutional Networks)
- 核心思想: 为不同类型的关系定义不同的转换矩阵,通过在图上进行多层消息传递来更新实体嵌入。每个实体的新嵌入是其邻居实体嵌入经过关系特定转换后的聚合。
- 优势: 能够更好地利用图的结构信息,捕捉高阶邻居特征,适用于链接预测和节点分类等任务。
- 局限性: 模型参数数量随关系类型增多而快速增长,可能存在过拟合问题。
CompGCN(Compositional Graph Convolutional Networks)
- 核心思想: 结合了GNN和Compositional模型(如ComplEx)的优点,在消息传递过程中同时考虑实体和关系的嵌入,并使用类似ComplEx的组合操作来更新实体表示。
- 优势: 在多个知识图谱基准数据集上表现出色,有效地融合了结构和语义信息。
5. 基于旋转的模型(Rotational Models)
这类模型将关系视为在复数平面上的旋转,具有很好的数学解释性。
RotatE(Rotational Embedding for Knowledge Graph Embedding)
- 核心思想: 假设关系 r 是将头实体 h 旋转到尾实体 t 的一个操作,即 h ○ r ≈ t,其中 ○ 表示在复数域上的逐元素乘法(Hadamard积),关系向量的模长为1。
- 评分函数: 衡量 ‖h ○ r – t‖ 的大小。
- 优势: 能够自然地处理对称关系、逆关系以及复合关系,理论基础坚实,在链接预测任务上表现优异。
除了上述模型,还有许多其他变体和混合模型,例如NodePiece等利用Transformer架构的模型,以及结合文本、图像等多模态信息的模型。模型的选择通常取决于具体任务、知识图谱的特性(规模、稠密性、关系类型分布)以及可用的计算资源。
怎么:知识图谱嵌入的训练与评估
成功应用知识图谱嵌入需要理解其训练过程、评估方法以及可能面临的挑战。
1. 训练过程:
知识图谱嵌入模型的训练是一个迭代优化过程,旨在学习高质量的实体和关系向量。
a. 数据准备:
- 三元组集合: 将知识图谱转化为(h, r, t)三元组列表。通常会将其划分为训练集、验证集和测试集。
- 实体/关系ID映射: 将文本形式的实体和关系名称映射为唯一的整数ID。
b. 模型初始化:
- 实体和关系向量通常使用随机值(如服从均匀分布或正态分布的小数值)进行初始化。
c. 负采样(Negative Sampling):
- 这是训练的关键步骤。由于知识图谱只包含正样本(真实存在的三元组),为了学习区分真假,需要构造负样本。
- 生成方式: 对于每个真实三元组(h, r, t),随机替换头实体h或尾实体t(或两者)来生成一个或多个虚假三元组(h’, r, t)或(h, r, t’)。
- 策略: 简单的随机替换可能生成“假阴性”(实际上是真实但未被收录的三元组),因此出现了更复杂的策略,如Bernoulli负采样(根据关系是否是“一对多”等特性调整替换概率),或基于实体的度进行采样等。
d. 损失函数定义:
-
最常用的是基于边际的排名损失(Margin-based Ranking Loss):
L = Σ(h,r,t)∈S+ Σ(h’,r’,t’)∈S- max(0, γ + f(h,r,t) – f(h’,r’,t’))
其中,S+ 是正样本集,S- 是负样本集,γ是正边际参数(margin),f是评分函数。目标是使得真实三元组的得分f(h,r,t)显著高于虚假三元组的得分f(h’,r’,t’),至少要高出γ。
- 一些模型也会使用二元交叉熵损失(Binary Cross-Entropy Loss),将三元组的真实性视为二分类问题。
e. 优化器:
- 使用标准优化算法(如随机梯度下降SGD、Adam、Adagrad等)来最小化损失函数,更新实体和关系向量。
f. 批处理与迭代:
- 训练数据通常以小批量(mini-batches)的形式输入模型。训练过程会迭代多轮(epochs),直到模型收敛或达到预设的训练步数。
2. 评估方法:
知识图谱嵌入模型的性能主要通过以下任务和指标来评估:
a. 链接预测(Link Prediction):
- 任务: 给定一个不完整的三元组(h, r, ?)或(?, r, t),预测缺失的实体。
-
评估过程:
- 对于测试集中的每个真实三元组(h, r, t),分别预测缺失的尾实体和头实体。
- 预测尾实体: 将头实体和关系固定,遍历所有可能的尾实体e,计算f(h, r, e)的得分,并根据得分对所有实体进行排序。
- 预测头实体: 类似地,固定关系和尾实体,遍历所有可能的头实体e,计算f(e, r, t)的得分并排序。
- “Filtered”设置: 在排名时,会从候选实体列表中移除训练集中已存在的真实三元组,以确保评估的是模型真正的泛化能力。
-
评估指标:
- 平均排名(Mean Rank, MR): 所有正确答案在排序列表中的平均排名。越低越好。
- 平均倒数排名(Mean Reciprocal Rank, MRR): 所有正确答案排名倒数的平均值。越高越好,因为它更重视高排名。
- Hits@k: 正确答案排在前k位(例如,Hits@1、Hits@3、Hits@10)的比例。越高越好。
b. 三元组分类(Triple Classification):
- 任务: 判断一个给定的三元组是真实事实还是虚假事实。
-
评估过程:
- 为每个三元组计算得分f(h, r, t)。
- 设定一个阈值γt,如果f(h, r, t) > γt,则预测为真实;否则为虚假。
- 通过验证集寻找最优的阈值γt。
- 评估指标: 准确率(Accuracy)、F1分数、精确率(Precision)、召回率(Recall)等。
3. 实施挑战与考量:
- 超参数调优: 嵌入维度、学习率、边际参数、负采样率、批处理大小等对模型性能影响巨大,需要仔细调整。
- 长尾问题: 知识图谱中存在大量只参与少量三元组的实体(长尾实体),难以学习到高质量的嵌入。
- 动态性: 知识图谱是动态变化的,如何高效地更新现有嵌入以反映新知识,是一个开放性问题。
- 可解释性: 嵌入向量是稠密数值,其内部含义不易直接解释,使得模型决策过程难以理解。
- 异构性与多模态: 整合不同类型的信息(如文本描述、图像特征)到统一的嵌入空间中,是提高模型能力的趋势,但也增加了模型的复杂性。
为了应对这些挑战,研究人员不断提出新的模型架构、训练策略和优化算法,例如引入注意力机制、图增强技术、对抗训练等,以期学习到更鲁棒、更具表达力的知识图谱嵌入。