知识图谱表示学习 TransH: Knowledge Graph Embedding by Translating on Hyperplanes

知识图谱表示学习 TransH: Knowledge Graph Embedding by Translating on Hyperplanes

表示学习是深度学习的基础,将数据用更有效的方式表达出来,才能让深度学习发挥出更强大的作用。表示学习避免了手动提取数据特征的繁琐,允许计算机学习特征的同时,也学习如何提取特征。尽管举例基于翻译(translation)的知识图谱表示学习已经过去了五六年的时间,但是仍不可忽略其重要意义。本文聚焦于TransH模型。

1. 摘要和引言

TransE模型简单有效的方法,在链接预测达到了state-of-the-art的效果。但在知识图谱中,关系的属性在嵌入时也应当被考虑,如一对多,多对一,和多对多的关系。本文注意到TransE不能很好地处理这些类型的关系。有些模型可以保留不同类别的关系,但是牺牲了处理的效率。为了达到一个效率和模型能力的权衡,本文提出了TransH。利用一对多,多对一的关系,本文提出了一个简单的技巧,可以帮助减少负采样过程中假负例的出现概率。

在TransH中,每一个关系使用两个向量来刻画,其中一个单位向量 w r w_r wr用来表示超平面,另外一个向h量 d r d_r dr用来将向量投影到此超平面。

2. 相关工作

(1)TransE详情请点击

(2)非结构化表示 Unstructured:将不同实体用嵌入方式表示,得分函数为 ∣ ∣ h − t ∣ ∣ ||h-t|| ht。显然这种方式不能区分不同的关系。

(3)距离模型 Distant Model:将头实体和尾实体用两个不同的矩阵 W r h W_{rh} Wrh W r t W_{rt} Wrt投影,相似程度用 W r h h W_{rh}h Wrhh W r t t W_{rt}t Wrtt L 1 L_1 L1距离来度量。此模型不能很好捕捉实体和关系的相关性。

(4)双线性模型 Bilinear Model:模型认为实体之间是二阶相关的,用 h t W r t h^tW_rt htWrt来建模。

(5)单层网络模型 Single Layer Model:使用神经网络的非线性变换,将 h , t h, t h,t作为输入,并加以非线性层,最后用线性单元计算得分 u r f ( W r h h + W r t t + b r ) u_r f(W_{rh}h+W_{rt}t+b_r) urf(Wrhh+Wrtt+br)

(6)神经张量网络 Neural Tensor Network:在此篇文章中的神经张量网络之后加入了非线性单元。

3. TransH

为了克服TransE在对一对多,多对一和多对多的关系上的不足,我们提出了一种针对不同关系的分布式表示方法,TransH。如图所示,对于一个关系 r r r,设置一个关系翻译向量 d r d_r d

### 关于 TransH 的算法原理 TransH 是一种用于知识图谱补全的任务模型,其主要目标是通过嵌入向量表示实体和关系来预测缺失的关系。具体来说,TransH 将每种关系建模为超平面上的翻译操作[^1]。 #### TransH 的核心思想 TransH 假设不同的关系可能存在于不同的语义空间中,因此引入了一个超平面 \( w_r \) 来定义每个关系的空间。对于给定的关系 \( r \),实体 \( h \) 和 \( t \) 投影到该关系对应的超平面后,满足以下条件: \[ h + d_r = t, \] 其中 \( d_r \) 是关系 \( r \) 对应的翻译向量,\( h \) 和 \( t \) 分别经过投影操作得到它们在超平面中的表示形式。这种设计使得 TransH 能够更好地处理一对多、多对一或多对多的关系模式[^2]。 #### 数学表达式 假设 \( e_h \), \( e_t \) 分别代表头实体和尾实体的原始向量,则它们被映射到关系特定的超平面后的表示可以写成如下形式: \[ e_h' = e_h - (w_r^\top e_h) w_r,\quad e_t' = e_t - (w_r^\top e_t) w_r. \] 这里 \( w_r \) 是关系 \( r \) 所对应超平面的法向量。最终的目标是最小化损失函数以优化这些参数[^3]: \[ L = \| e_h' + d_r - e_t'\|^2_2. \] #### 实现代码示例 以下是基于 PyTorch 的简单实现片段,展示了如何构建 TransH 模型的核心部分: ```python import torch import torch.nn as nn class TransH(nn.Module): def __init__(self, num_entities, num_relations, embedding_dim): super(TransH, self).__init__() self.entity_embeddings = nn.Embedding(num_entities, embedding_dim) self.relation_embeddings = nn.Embedding(num_relations, embedding_dim) self.normal_vectors = nn.Embedding(num_relations, embedding_dim) def project(self, entity_embedding, normal_vector): return entity_embedding - torch.sum(entity_embedding * normal_vector, dim=1, keepdim=True) * normal_vector def forward(self, head, relation, tail): head_emb = self.entity_embeddings(head) rel_emb = self.relation_embeddings(relation) tail_emb = self.entity_embeddings(tail) norm_vec = self.normal_vectors(relation) proj_head = self.project(head_emb, norm_vec) proj_tail = self.project(tail_emb, norm_vec) score = torch.norm(proj_head + rel_emb - proj_tail, p=2, dim=1) return score ``` ### 如何获取 TransH 论文? 如果需要下载 TransH 的原版论文《Knowledge Graph Embedding by Translating on Hyperplanes》,可以通过以下方式获得: - **学术数据库**: 使用 Google Scholar 或者访问 IEEE Xplore、ACM Digital Library 等平台搜索论文标题。 - **开源资源**: 如果无法直接访问付费墙内的内容,可以在 arXiv 上尝试寻找是否有公开版本。 - **机构库**: 很多大学图书馆提供免费访问权限,登录学校账户即可下载所需文献[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值