1 知识图谱介绍
- 一条知识图谱可以表示为一个三元组(sub,rel,obj)。
- 举个例子:小明的爸爸是大明,表示成三元组是(小明,爸爸,大明)。
- 前者是主体,中间是关系,后者是客体。
- 主体和客体统称为实体(entity)。
- 关系有一个属性,不可逆,也就是说主体和客体不能颠倒过来。
- 知识图谱的集合,链接起来成为一个图(graph)
- 每个节点是一个一个实体
- 每条边是一个关系,或者说是一个事实(fact)
- 有向图,主体指向客体。
- 正式地,使用(h,r,t)来表示三元组
- h表示头实体
- r表示关系
- t表示尾实体
2 知识表示
- 知识表示是让知识图谱的实体和关系向量化
- 将知识库中所有的实体、关系表示成一个低维度、稠密的向量
3 TransE
- TransE算法认为,一个正确的三元组的embedding(h,r,t)会满足矢量的加法
- 如果是一个错误的三元组,那么它们的embedding之间就不满足这种关系
- ——>定义一个距离来表示两个向量之间的距离
- 对一个正确的三元组(h,r,t)来说,距离越小越好
- 对于一个错误的三元组(h',r,t'),距离越大越好
- 所以目标函数为:
-
- S——正确的三元组集合
- S'——错误的三元组集合
- γ——正负样本距离的间距(一个常数)
- [x]+——max(0,x)
- 通常为了方便训练并避免过拟合,会加上约束条件
-
参考内容:TransE算法详解_MonkeyDSummer的博客-CSDN博客