知识表示是对显示世界的一种抽象表达,评价知识表示的两个因素是表达能力(expressiveness)和计算效率(efficiency) 知识表示主要分为符号表示和数值表示,常用的知识表示方法是RDF,这是一种基于图的知识表示方法,另外几种是知识图谱、语义网络、实体关系图。
1. 知识图谱的图表示:
基于图的表示: 在很多场景下, 图又被成为网络(Network),一个图就是一个二元组G=G(U,V),其中v表示节点集,E表示边的集合,图表达了节点集上的二元关系。这一部分与数据结构中的图非常像,有无向图和有向图两种; 基于三元组的表示: 基于三元组的表示使用的是RDF表示方法,这是W3C标准下的用以描述信息的通用表示方法,使信息可以被计算机理解和读取。三元组是对客观世界中的概念、实体和事件的抽象。每个资源的一个属性及其属性值,或者它与其他资源的一条关系,都可以表示成为三元组。一个标准的三元组包含:主体(subject)谓词(predicate)客体(object);当三语组描述资源属性时,其结构为主体、属性(property)和属性值(propetry value)
2. 知识图谱的数值表示:
基于数值的表示的重点是:合理定义三元组
<
h
t
,
r
t
,
t
>
<h_t,r_t,t>
<ht?,rt?,t>的损失函数
f
r
(
h
,
t
)
f_r(h,t)
fr?(h,t),其中
h
h
h和
t
t
t是三元组的两个实体
h
h
h和
t
t
t的向量化表示,当三元组的关系成立时,损失函数最小。 基于距离的表示: 基于距离的表示,其代表模型是SE。其基本思想是当两个实体属于同一个三元组时,他们的向量表示在投影后的空间中也应该彼此靠近,因此定义损失函数为向量投影后的距离:
f
t
(
h
,
t
)
=
∣
∣
W
r
,
1
h
?
W
r
,
2
t
∣
∣
l
1
f_t(h,t)=||W_{r,1}h-W_{r,2}t||l_1
ft?(h,t)=∣∣Wr,1?h?Wr,2?t∣∣l1? 其中SE使用的是1-范数,
∣
W
r
,
1
|W_{r,1}
∣Wr,1?和
W
r
,
2
W_{r,2}
Wr,2?用于三元组中头实体向量
h
h
h和尾实体向量
t
t
t的投影操作。但因为引入了两个不同的投影矩阵,很难捕获实体和关系之间的语义相关性; 基于翻译的模型: **(TransE)**认为,在知识库中三元组
<
h
,
r
,
t
>
<h,r,t>
<h,r,t>可以看成头实体
h
h
h和尾实体
t
t
t利用关系
r
r
r所进行的翻译,即头实体的向量加上关系的向量,尽可能和尾实体的向量接近。在实际使用中使用了Hinge Loss函数。
f
r
(
h
,
t
)
=
∣
∣
h
+
r
?
t
∣
∣
l
1
/
l
2
f_r(h,t)=||h+r-t||{l_1/l_2}
fr?(h,t)=∣∣h+r?t∣∣l1?/l2? (TransH)认为,transe中的
h
+
r
=
t
h+r=t
h+r=t假设太强,导致在自反、一对多、多对一等关系下实体向量学习的错误,放宽了这一假设,只要求头尾实体在关系
r
r
r相对应的超平面的投影彼此接近即可
f
r
(
h
,
t
)
=
∣
∣
(
h
?
W
r
T
h
W
r
)
+
d
r
?
(
t
?
W
r
T
t
W
r
)
∣
∣
l
1
/
l
2
f_r(h,t)=||(h-W_r^ThW_r)+d_r-(t-W_r^TtW_r)||{l_1/l_2}
fr?(h,t)=∣∣(h?WrT?hWr?)+dr??(t?WrT?tWr?)∣∣l1?/l2? (TransR)解决了transe和transh无法区分相近语义实体的问题。其思想要求头尾实体在关系
r
r
r相对应的向量空间中的投影彼此接近即可。但存在矩阵计算复杂,头尾实体可能不是一类实体带来的映射不合理
f
r
(
h
,
t
)
=
∣
∣
h
r
+
r
?
t
r
∣
∣
l
1
/
l
2
f_r(h,t)=||h_r+r-t_r||{l_1/l_2}
fr?(h,t)=∣∣hr?+r?tr?∣∣l1?/l2? (TransD)认为映射函数应该与实体、关系同时相关。
|