基础知识(四)——TransR和决策树
Trans
简介
TransR(Translation in Relation Space)是一种知识图谱嵌入(Knowledge Graph Embedding, KGE)模型、它是TransE模型的扩展、通过将实体和关系映射到不同的向量空间、显著提升了多类型关系(如1-to-1、1-to-N、N-to-1、N-to-N)的建模能力。
核心思想
- 将实体嵌入到实体空间、关系嵌入到关系空间(实体空间的维数与关系空间的维数不相等)
- 每个关系对应一个投影矩阵、将实体从实体空间投影到关系空间、再进行语义计算
例:假设实体对(h,r,t) 、首先根据当前的关系r 将头尾实体分别映射到关系空间中hr、tr、然后在关系空间中建模。
其中hr、tr的计算公式分别为。投影矩阵的评价函数为
,得分越高(越接近0),则投影矩阵的质量越高。
训练方法
负采样:生成错误三元组(如随机替换头或尾实体)。
损失函数(边际函数):
γ为边际超参数,控制真样本和负样本的区分度, 表示负样本。
优化算法:随机梯度下降。
向量和矩阵
初始化
1)初始随机化
实体向量(维度d)和关系向量(维度k),从均匀分布或正态分布对向量进行初始化,例如:
import torch entity_embedding = torch.randn(num_entities, d) # 实体向量 relation_embedding = torch.randn(num_relations, k) # 关系向量
关系投影矩阵()
每个关系r都对应一个初始化矩阵,例如:
projection_matrices = torch.randn(num_relations, k, d) # 所有关系的投影矩阵
2)预训练初始化
TransE等简单模型的预训练结果初始化实体和关系向量,加速收敛。
训练过程
目标:正样本三元组得分高于负样本三元组。
1)定义损失函数(边际函数)
实体向量,梯度
;关系向量
,梯度
,投影矩阵
,梯度
2)更新步骤(α为学习率)
更新实体向量,更新关系向量
更新投影矩阵
直到损失函数不再发生变化。
决策树