知识图谱补全模型与超参数整理

本篇整理几种常见的知识图谱补全模型的原理以及对应的超参数。

RESCAL

论文出处:A three-way model for collective learning on multi- relational data, ICML 2011

这是一种基于张量分解方法的嵌入模型。发表的年份非常早。原文中并没有提及学习率等超参数。

TransE

论文出处:Translating Embeddings for Modeling Multi-relational Data

TransE模型算是最经典被使用最多的基于嵌入技术的知识图谱补全模型。基本假设也非常优美,以$\Vert h+r-t \Vert_p$ 作为评分函数。如果$(h, r,t)$ 能够成为三元组,那么这个评分应该足够低。

可调超参数:

  • 学习率:在原文中,学习率对数据集Wordnet, FB15k, FB1M 均为0.01。
  • KG向量的维度
  • margin:因为TransE使用了margin ranking loss,因此margin是一个重要超参数。原文给出的搜索范围是${1, 2, 10}$
  • p:使用范数作为打分函数,那么使用1范数还是2范数这也是一个可以调整的超参数

DistMult

论文出处:Embedding Entities And Relations For LearnIng And Inference In Knowledge Bases

这是一种双线性模型。将头尾实体表示成向量之后,把关系表示成一个对角矩阵,并且有对应的打分函数$s = \textbf{y}{e1}^T\textbf{M}{r} \textbf{y}_{e2}$

依然使用MarginLoss来优化。

超参数:

  • Learning Rate:0.1
  • Optimizer: AdaGrad
  • L2正则化因子:0.0001
  • Training Epoch:300 for WordNet,100 for FB15k and FB15k-401

ComplEx

论文出处:Complex Embeddings for Simple Link Prediction

ComplEx将实体和关系嵌入到复数空间中,并且开发了一个相应的打分函数。同时,提出了一个基于Softplus和$L_2$正则化的Loss函数

$$
min\sum_{r(s, o)\in \Omega} \log(1+\exp(-\textbf{Y}_{rso}(\phi(s, r, o;\Phi))))+\lambda\Vert\Theta\Vert_2^2
$$

$\lambda$ 作为两部分loss的平衡因子。原文在${0.1, 0.03, 0.01, 0.003, 0.001, 0.0003, 0.00001, 0.0}$ 之间进行调整。

在模型训练方面,使用SGD优化器,但并没有提供相应的学习率信息。

SimplE

论文出处:SimplE Embedding for Link Prediction in Knowledge Graphs

这是一种基于CP分解(Canonical Polyadic (CP) decomposition)的嵌入模型。

训练的Loss和ComplEx类似

超参数

  • Epoch:1000
  • batch size:100
  • Learning Rate:0.1 for WN18 and 0.05 for FB15k
  • Optimizer: AdaGrad
  • Embedding Size: 200 for WN18RR, FB15k
  • $\lambda$ search from ${0.1, 0.001, 0.03}$

RotatE

论文出处:Rotate: Knowledge Graph Embedding By Relational Rotation In Complex Space

这是一种将头尾实体之间的关系建模为旋转操作的KGE模型

训练loss形式:

$$
\mathcal{L} = -\log\sigma(\gamma-d_r(v_h, v_t))-\sum p(h’{i}, r, t’i)\log\sigma (d{r}(v{h’}, v_{t’})-\gamma)
$$

超参数主要跟loss有关系:

  • Embedding Dimension: ${125, 250, 500, 1000}$
  • Batch Size: ${512, 1024, 2048}$
  • self-adversarial sampling temperature $\alpha \in {0.5, 1.0}$
  • margin $\gamma \in {3, 6, 9, 12, 18, 24, 30}$
### 关于时序知识图谱补全模型 TTransE 的信息 #### 研究论文背景 TTransE 是一种针对时序知识图谱 (Temporal Knowledge Graph, TKG) 补全的任务而设计的嵌入模型。该模型扩展了经典的 TransE 模型,通过引入时间维度来处理三元组中的时间戳信息[^1]。 #### 实现方法 为了适应时间变化的信息,TTransE 对传统的静态知识图谱嵌入进行了改进: - **时间感知距离函数**:对于每一个事实 `(h,r,t)` 和其对应的时间戳 `τ` ,TTransE 定义了一个新的评分函数 \( f_r(h, t; τ) \),其中不仅包含了头实体 h 和尾实体 t 之间的关系 r 的影响,还加入了时间因素的影响。 - **动态演化机制**:考虑到随着时间推移某些关系可能会发生变化甚至消失,TTransE 提出了基于历史数据的学习框架,允许模型捕捉到这些潜在的变化模式并预测未来的状态转换。 ```python import torch.nn as nn class TTransE(nn.Module): def __init__(self, num_entities, num_relations, embedding_dim): super(TTransE, self).__init__() self.entity_embeddings = nn.Embedding(num_entities, embedding_dim) self.relation_embeddings = nn.Embedding(num_relations, embedding_dim) def forward(self, head, relation, tail, timestamp): # 获取实体和关系的嵌入向量 e_head = self.entity_embeddings(head) e_relation = self.relation_embeddings(relation) e_tail = self.entity_embeddings(tail) # 计算带有时效性的得分 score = -(e_head + e_relation - e_tail).norm(p=2, dim=-1) time_score = ... # 这里应该加入具体计算时间分数的方式 final_score = score * time_score return final_score ``` 上述代码片段展示了如何构建一个简单的 TTransE 模型结构,在实际应用中还需要进一步完善时间部分的具体实现细节以及优化训练过程。 #### 应用案例 TTransE 可应用于多个领域内的时序数据分析任务,比如社交网络分析、金融风险预警等场景下涉及随时间演变的关系建模问题。例如在一个企业间的合作关系网络中,利用 TTransE 不仅能有效识别当前存在的合作联系,还能对未来可能出现的新合作伙伴做出合理推测;同样地,在医疗健康领域内也可以用来追踪疾病传播路径和发展趋势[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值