transE
1.TransE作用
TransE模型的核心作用就是将知识图谱中的三元组翻译成embedding向量
2.TransE模型的设计思想
如果一个三元组(h,r,t)成立,那么他们需要符合h+r≈t的关系
我们也可以这样理解
1 | h 表示知识图谱中的头实体的向量。 |
用图的方式描述如下:
如果一个三元组不满足上述关系,那么则认为他们不成立.
3.TransE的目标函数
根据我们上面介绍的Trans中的假设,我们可以知道,对于一个三元组而言,头实体向量和关系向量之和与尾实体向量越接近,那么说明该三元组越接近一个正确的三元组,差距越大,那么说明这个三元组越不正常。那么我们可以选择L1或者L2范数来衡量三个向量的差距。而我们的目标就是使得争取的三元组的距离越小越好,错误的三元组距离越大越好,也就是其相反数越小越好。数学化的表示就是:
其中
(h,r,t)表示正确的三元组
(h’,r’,t’):表示错误的三三元组
γ :表示正样本和负样本之间的间距,一个常数
4.目标函数的迭代过程
我们将欧氏距离作为distance函数,则损失函数即为
对于损失函数的求偏导:
LOSS<=0时 偏导为0,
LOSS>0时 很易求得
5.获得负样本
对于一个知识图谱而言,其中保存的全部都是正样本时肯定的了。那么,我们应该如何获取负样本呢?
具体的可以通过随机替换头实体的方式来实现一个错误的三元组,或者采用随机替换一个错误的尾实体的方式来形成一个错误的三元组。
同时,为了避免,我们替换形成的三元组也存在于知识图谱中,我们需要在替换之后进行过滤。