TransE算法详解

TransE算法详解TransE 算法详解 机器学习 知识图谱 知识表示 TransE 文章目录 TransE 算法详解算法背景知识图谱是什么知识表示是什么基本思想算法描述梯度参考文献算法背景知识图谱是什么一条知识图谱可以表示为一个三元组 sub rel obj 举个例子 小明的爸爸是大明 表示成三元组是 小明 爸爸 大明 前者是主体 中间是关系 后者是客体 主体和客体统称为实体 entity 关

TransE 算法详解


算法背景

知识图谱是什么

(姚明,出生于,上海)

(姚明,职业, 篮球运动员)

(姚明,性别,男)

为了简化起见,我们使用(h,r,t)来表示三元组。其中:

  • h表示头实体
  • r表示关系
  • t表示尾实体

知识表示是什么

[0.01, 0.04, 0.8, 0.32, 0.09, 0.18]

基本思想

算法描述

TransE算法认为,一个正确的三元组的embedding(h,r,t)会满足 h ⃗ + r ⃗ = t ⃗ \vec h + \vec r = \vec t h
+
r
=
t

Alt text

也就是说,头实体embedding加上关系embedding会等于尾实体embedding。同理,如果是一个错误的三元组,那么它们的embedding之间就不满足这种关系。

于是我们认为定义一个距离 d ( x ⃗ , y ⃗ ) d(\vec x , \vec y) d(x
,y
)
来表示两个向量之间的距离,一般情况下,我们会取L1,或者L2 normal 。那么我们需要的是对一个正确的三元组 ( h , r , t ) (h, r, t) (h,r,t)来说,其距离 d ( h ⃗ + r ⃗ , t ⃗ ) d(\vec h + \vec r , \vec t) d(h
+
r
,t
)
越小越好,相反对于一个错误的三元组 ( h ′ , r , t ′ ) (h’, r, t’) (h,r,t)来说距离 d ( h ′ ⃗ + r ⃗ , t ′ ⃗ ) d(\vec {h’} + \vec r , \vec {t’}) d(h
+
r
,t
)
越大越好,因此给出目标函数:

min ⁡ ∑ ( h , r , t ) ∈ S ∑ ( h ′ , r , t ′ ) ∈ S ′ [ γ + d ( h + r , t ) − d ( h ′ + r , t ′ ) ] + \min {\sum _ {(h,r,t) \in S} \sum _{(h’, r, t’) \in S’} [\gamma + d(h + r, t) – d(h’ + r , t’)]_+} min(h,r,t)S(h,r,t)S[γ+d(h+r,t)d(h+r,t)]+

其中

  • Δ \Delta Δ 表示正确的三元组集合
  • Δ ′ \Delta ‘ Δ 表示错误的三元组集合
  • γ \gamma γ 表示正负样本之间的间距, 是一个常数
  • [ x ] + [x]_+ [x]+ 表示 max ⁡ ( 0 , x ) \max(0,x) max(0,x)

论文中的算法描述

blob:https://maxiang.io/b610c1d3-7d27-4ec6-b0e5-6e3e56adeba6

梯度

其他参数的偏导求解方式与 h i h_i hi的求导方式差异不大,这里不再赘述。

参考文献

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217194.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午10:08
下一篇 2026年3月18日 上午10:08


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号