TransR 论文阅读 19年记录的

本文探讨了知识图谱完成中的TransR和CTransR模型,提出将实体和关系嵌入到不同空间以解决关系关注实体属性差异问题。TransR通过关系投影实现翻译,而CTransR则通过聚类和分段线性回归细化关系向量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论文题目

Learning Entity and Relation Embeddings for Knowledge Graph Completion——AAAI2015

论文链接

https://www.aaai.org/ocs/index.php/AAAI/AAAI15/paper/view/9571/9523https://www.aaai.org/ocs/index.php/AAAI/AAAI15/paper/view/9571/9523

文章背景:    

    近年来,一些模型像TransE和TransH通过把关系作为从head实体到tail实体的翻译来建立实体和关系嵌入。这些模型仅仅简单地假设实体和关系处于相同的语义空间。事实上,一个实体是多种属性的综合体,不同关系关注实体的不同属性,仅仅在同一个空间下对它们进行建模是不够的。

解决问题:      

  TransE和TransH都假设实体和关系嵌入在相同的空间Rk中。然而,一个实体是多种属性的综合体,不同关系关注实体的不同属性。直觉上一些相似的实体在实体空间中应该彼此靠近,但是同样地,在一些特定的不同的实体在对应的关系空间中应该彼此远离。

创新点:      

为了解决这个问题,提出了一种新的方法,将实体和关系投影到不同的空间中,也就是实体空间和多元关系空间(也即是特定关系的实体空间),在对应的关系空间上实现翻译。    

解决方案:      

提出了TransR,分别在实体空间和关系空间构建实体和关系嵌入。然后,学习嵌入,首先将实体投影到对应的关系空间中,然后在建立从头实体到尾实体的翻译关系,在对应的关系空间上实现翻译。

以及通过将不同的头尾实体对聚类成组来扩展TransR,并为每个组学习不同的关系向量,称为基于聚类的TransR(C-TransR)。

 1. transR:      

 基本思想如图所示。对于每个元组(h,r,t),首先将实体空间中的实体通过映射矩阵Mr(每个关系都会构建一个Mr)向关系r投影得到hr和tr,然后使hr+r≈tr。特定的关系投影(彩色的圆圈表示)能够使得头/尾实体在这个关系下真实的靠近彼此,使得不具有此关系(彩色的三角形表示)的实体彼此远离。

 

对每个元组(h,t,r),实体嵌入设置为 关系嵌入设置为 对每个关系,构建映射矩阵Mr:

利用映射矩阵,将实体的投影向量定义为

分数函数: 

2. CTransR:

此外,在一个特定的关系下,头-尾实体对通常展示出不同的模型。仅仅通过单个的关系向量还不足以建立实现从头实体到尾实体的所有翻译。例如,具有关系“location location contains”头-尾实体有很多模式,如country-city,country-university,continent-country等等。沿着分段线性回归的思想,通过对不同的头-尾实体对聚类分组和学习每组的关系向量,进一步提出了基于聚类的TransR(CTransR)。

做法:

(1)对于一个特定的关系r,训练数据中的所有实体对(h,t)被聚为多个组,并且每个组中的实体对被期望呈现相似的r关系。

(2)所有实体对(h,t)用它们的向量偏移量(h-t)表示,以便进行聚类,其中h和t用TransE表示。

(3)分别为每个簇和每个关系分别学习了一个独立的关系向量rc和矩阵Mr。

(4)                                                         

   确保聚类特定关系向量rc离原始关系向量r不太远。 

训练目标

 总结与思考:

本文提出了一种新的知识图嵌入模型TransR。TransR将实体和关系嵌入在不同的实体空间和关系空间中,并通过投影实体之间的翻译来学习嵌入。此外,还提出了基于分段线性回归思想的CTransR,其目的是对每种关系类型内的内部复杂相关性进行建模。

### TransH 和 TransR 的关系与区别 #### 背景介绍 TransH 和 TransR 是两种基于翻译距离的知识图谱嵌入模型,旨在通过向量空间中的几何运算来表示三元组 (头实体, 关系, 尾实体)。这两种模型都试图解决原始 TransE 模型中存在的局限性。 --- #### TransH 特点 TransH 提出了将实体映射到特定于关系的超平面的思想。具体来说,在处理某个关系 \( r \) 时,它会将头实体 \( h \) 和尾实体 \( t \) 投影到该关系对应的超平面上,然后再计算它们之间的欧几里得距离。这种方法可以更好地捕捉不同关系下的语义差异[^1]。 - **核心思想**: 使用投影操作将实体从全局空间映射到局部超平面。 - **优点**: - 更灵活地适应不同类型的关系。 - 参数数量相对较少,适合中小规模数据集。 - **缺点**: - 对某些复杂的跨领域关系可能仍然不够精确。 --- #### TransR 特点 TransR 则进一步扩展了这一思路,不仅引入了关系特异性的超平面,还允许每个实体被映射到多个潜在的空间中。这意味着对于同一个实体,它可以有不同的表现形式取决于所涉及的具体关系。这种设计使得 TransR 可以更细致地区分不同类型的实体及其相互作用[^2]。 - **核心思想**: 实体和关系分别位于独立的空间内,并通过线性变换矩阵实现两者间的交互。 - **优点**: - 明确区分了实体空间与关系空间,增强了表达能力。 - 支持更加丰富的语义建模。 - **缺点**: - 计算成本较高,因为需要维护额外的转换矩阵。 - 当面对非常庞大的知识库时可能会遇到性能瓶颈。 --- #### 主要对比分析 | 方面 | TransH | TransR | |---------------|-------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------| | **基本原理** | 将实体投影至关系定义的超平面后再做差值匹配 | 分别构建实体空间和关系空间并通过转换矩阵连接 | | **适用场景** | 中小型知识图谱 | 复杂多样的大型知识图谱 | | **参数复杂度** | 较低 | 较高,需存储大量转换矩阵 | | **灵活性** | 高效但有限 | 极具弹性,能应对更多样化的模式 | 尽管如此,正如前面提到过的那样,TransR 存在一个显著缺陷——即假设所有的头部节点以及尾部节点共享同样的转化机制这并不总是合理的实际情况当中往往存在很大差异比如一个人类个体作为主体而一家企业充当客体二者显然属于完全不同的范畴因此应当采用各自独特的方式加以调整优化. 另外值得注意的是虽然理论上讲增加更多的自由度有助于提升准确性然而与此同时也会带来其他负面效应诸如过拟合风险增大训练时间延长等问题所以在实际应用过程中还需要综合考虑各方面因素做出权衡取舍. --- ```python import numpy as np def transh_projection(entity_vector, relation_normal_vector): """ Perform projection of an entity onto the hyperplane defined by a given normal vector. Args: entity_vector (np.ndarray): The original embedding of the entity. relation_normal_vector (np.ndarray): Normal vector defining the hyperplane associated with the relationship. Returns: np.ndarray: Projected version of the input entity within this specific relational context. """ norm_sq = np.dot(relation_normal_vector, relation_normal_vector) proj_component = np.dot(entity_vector, relation_normal_vector) / norm_sq * relation_normal_vector return entity_vector - proj_component def transr_mapping(entity_embedding, transformation_matrix): """ Map entities into another space via linear transformations specified per each type of connection between nodes. Args: entity_embedding (np.ndarray): Initial representation form of some node inside KG structure. transformation_matrix (np.ndarray): Matrix used to alter representations according different connections types. Returns: np.ndarray: Altered state after applying corresponding mapping rule based on link category information provided beforehand. """ mapped_entity = np.matmul(transformation_matrix, entity_embedding[:, None]).flatten() return mapped_entity ``` 上述代码片段展示了如何利用 NumPy 库去执行 TransH 和 TransR 所必需的核心数学运算过程其中包括了简单的矢量减法还有更为复杂的矩阵乘积操作这些正是构成这两个算法骨架的重要组成部分之一. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值