知识表示学*(KG Embedding)?? TransX系列

发布时间:2021-12-05 07:39:02



文章目录
前言TransETransHTransRTransD总结参考资料


前言

知识表示学*是针对于知识图谱三元组所做的word embedding,*常所做的都是基于完整的文本表述比如一句话去产生word2vec这种副产物,但是KG中的embedding是更为直接的构建实体与关系之间的语义联系。在知识图谱相关任务中,相比使用普通的词向量,知识表示更能反映相*的实体、关系之间的相似程度,知识表示可以被用于信息检索、知识图谱补全、自动问答等领域,还有像今年清华也有用知识表示和BERT相结合得到的具有先验知识信息的预训练模型ERINE
TransX系列的做法都是之前一些比较经典的做法算法简单实用,最*主要在做KBQA时考虑到看一下这些东西,下面会结合清华开源KG Embedding框架OpenKE(Tensorflow版)来学*。
OpenKE是一个集成多种KG Embedding算法的框架,tensorflow、pytorch、C++ 版本都有,可以使用GPU进行训练,具体可以参考OpenKE: An Open Toolkit for Knowledge Embedding这篇文章,由于只是初步了解,所以以下实验没有调参可能和论文中有差距,使用的数据是FB15k

评价指标主要是两项:
1、Link Prediction
给定缺失了h或者t的三元组让训练的模型去检测KG中所有实体契合这个缺失实体的得分并做排序。


MR : mean rank of correct entities;MRR: the average of the reciprocal ranks of correct entities;Hit@N : proportion of correct entities in top-N ranked entities.

2、Triple Classification
对于测试三元组判断是不是正确的三元组的二分类准确率


TransE

其实从图中可以很明显的看出TransE的基本思想就是让h+r??>t,目标函数就使用 max margin 损失函数:





L


(


h


,


r


,


t


)


=


max


?



(


0


,



d



p


o


s




?



d



n


e


g




+


margin


?


)




mathrm{L}(h, r, t)=max left(0, d_{p o s}-d_{n e g}+operatorname{margin} ight)


L(h,r,t)=max(0,dpos??dneg?+margin)
其中:




d


=





h


+


r


?


t






mathrm{d}=|h+r-t|


d=∥h+r?t∥ 表示L1或L2范式,negative sampling是将头实体和尾实体替换为随机实体


OpenKE中的代码写的也很清晰:

然后就是运行结果:

TransE模型很简单也带来一个很大的问题就是他只适合处理一对一的关系,举例来说当(华科,地点,武汉)和(黄鹤楼,地点,武汉)出现在KG中时,TransE的表示会将“华科”和“黄鹤楼”的向量表示计算的很接*,但实际上这两者之间关系并不大。


TransH

为解决TransE的问题,后来又提出了TransH这个模型,它解决了一对多和多对一的关系问题,基本思想是针对每个关系r,将头实体h和尾实体t向量表示投影到一个由





w


r




w_r


wr?确定的超*面上,得到h⊥和t⊥,后面对h⊥和t⊥做和TransE一样的操作:









h












=


h


?



w


r


T



h



w


r











t












=


t


?



w


r


T



t



w


r








egin{aligned} h_{perp} &=h-w_{r}^{T} h w_{r} \ t_{perp} &=t-w_{r}^{T} t w_{r} end{aligned}


h⊥?t⊥??=h?wrT?hwr?=t?wrT?twr??



代码中也就是多了一步投影的代码:

这样就是对于头实体和尾实体的表示向量进行了分解,所以在使用h和r计算t的时候相当于只使用h的一个分量,从而解决了一对多和多对一的问题。
以下是代码结果:


TransR

TransE和TransH模型都假设实体和关系是在同一个语义空间的向量,这样相似的实体会在空间中相*的位置,然而每一个实体都可以有很多方面,而不同的关系关注的是实体不同的方面。所以TransR对每个三元组,首先应将实体投影到对应的关系空间中,然后再建立从头实体到尾实体的翻译关系。
对于每个关系,有一个变换矩阵





M


r




M_r


Mr?和一个在它自己的关系空间的表示向量r。通过变换矩阵将头实体和尾实体的表示向量映射到关系空间,后面还是和TransE一样的目标函数。









h


r









=


h



M


r











t


r









=


t



M


r








egin{aligned} h_{r} &=h M_{r} \ t_{r} &=t M_{r} end{aligned}


hr?tr??=hMr?=tMr??
同时后续研究进一步发现关系里面可以做更细致的划分,从而产生了一个变体CTransR。它是对于某关系的全部三元组(h,r,t)用h-t得到关系的表示,再对r进行聚类,对于每一个子关系学*变换矩阵





M


r




M_r


Mr?和r,后面就和TransR一样了。

代码中相较于TransE也就多了矩阵的那一步:

代卖结果如下:

不知道为啥效果很差…


TransD

TransR还有几个问题并没有解决:
1、在同一个关系r下,头、尾实体共享相同的变换矩阵,然而,一个关系的头、尾实体的类型或属性可能差异巨大。例如,对于三元组(美国,总统,奥巴马),美国和奥巴马的类型完全不同,一个是国家,一个是人物;
2、从实体空间到关系空间的投影是实体和关系之间的交互过程,因此TransR让变换矩阵仅与关系有关是不合理的;
3、与 TransE和TransH相比,TransR由于引入了空间投影,使得TransR模型参数急剧增加,计算复杂度大大提高。
于是就有了TransD这个模型。TransD模型对每个实体或关系使用两个向量进行表示,一个向量表示语义,另一个用来构建映射矩阵。









M



r


h










=



r


p




h


p


T



+


I










M



r


t










=



r


p




t


p


T



+


I







egin{aligned} M_{r h} &=r_{p} h_{p}^{T}+I \ M_{r t} &=r_{p} t_{p}^{T}+I end{aligned}


Mrh?Mrt??=rp?hpT?+I=rp?tpT?+I?
这样映射矩阵就由实体和关系共同决定了,其中




I



I


I为单位阵,即通过向量相乘生成的矩阵对单位阵(代表不做变换)进行调整。后面的映射和训练过程和TransR相同。此外,该模型将TransR的矩阵运算转换成了向量间的运算,运算速度会大幅提升,具体公式如下,补0是因为这里假设关系空间维度比实体空间维度高。









h












=



M



r


h




h


=



h


p


T



h



r


p



+




[



h


T



,



0


T



]



T











t












=



M



r


h




t


=



t


p


T



t



r


p



+




[



t


T



,



0


T



]



T








egin{aligned} h_{perp} &=M_{r h} h=h_{p}^{T} h r_{p}+left[h^{T}, 0^{T} ight]^{T} \ t_{perp} &=M_{r h} t=t_{p}^{T} t r_{p}+left[t^{T}, 0^{T} ight]^{T} end{aligned}


h⊥?t⊥??=Mrh?h=hpT?hrp?+[hT,0T]T=Mrh?t=tpT?trp?+[tT,0T]T?

代码中多了每个实体、关系由两个向量表示的步骤以及解决实体和关系之间维数不一致的问题



最后测试的结果如下:


总结

以上四种TransX系列都是最早的几篇代表性的工作,后面还有TransSparse、TransA、TransG以及最*两年的更复杂的模型,可以看出他们基本都是在TransE这个基础上的改进,用头实体和关系向量之和来预测尾向量,这样定义实体关系之间的信息作用是一种方案,但是不一定就是唯一最好的,如果后续有必要会再跟进KG Embedding的工作。最后放一张知乎上一个投稿中的图


参考资料

[1] 知识表示学*研究进展-刘知远
[2] Translating Embeddings for Modeling Multi-relational Data
[3] Knowledge Graph Embedding by Translating on Hyperplanes
[4] Learning Entity and Relation Embeddings forKnowledge Graph Completion
[5] Knowledge Graph Embedding via Dynamic Mapping Matrix
[6] 知识图谱向量化表示
[7] Trans系列知识表示学*方法梳理

相关文档

  • 中国四大无人区分别是什么
  • 会议室日语怎么说
  • 大学生工作能力自我鉴定
  • 三星平板电脑开机就显示英文怎么办
  • 2020年个人工作总结暨2020年工作计划
  • 局域网共享连接提示无权限访问此计算机
  • 夏季冷饮西米的做法介绍
  • 害怕与紧张
  • 同上一堂课观后感汇总20篇
  • 一年级语文下册《14荷叶圆圆》教学设计设计反思
  • 应聘文职人应聘书模板
  • 记一次活动小学作文
  • 温馨的感恩节祝福语1500字
  • mac地址泛洪攻击的防御措施和具体配置
  • 以我的一个朋友为题目的作文
  • java中求素数的程序,java 求素数
  • 新学期开始了黑板报资料
  • 请问北京印刷学院艺术设计专业怎么样
  • 企业人事个人年终总结范文
  • 有关爱情失意的句子
  • 《人类简史》《未来简史》读后感作文5000字
  • 恐龙的友谊七年级作文
  • 破解登录手机验证码思路
  • 一维数组与二维数组的区别
  • 自驾游后检查汽车保安全
  • 读给家乡孩子的信启示
  • 生活启示文章
  • 生气——长寿的天敌|爱生气的人能长寿吗
  • linux服务器下部署Spring Boot项目启动报错xxx.jar中没有主清单属性解决
  • 染发的错误说法
  • 猜你喜欢

  • 高考文言文中重要的文化常识整理总结2
  • 首都经济贸易大学会计硕士专业学位_MPAcc_研究生学位论文写作规范
  • 简单基的础经济常识题
  • 江苏省内燃机及配件制造行业企业排名统计报告
  • 招录培养体制下公安院校人才培养质量评价刍议
  • 节能减排策划书
  • [推荐]幼儿美术教师总结
  • 金融技术风险管理
  • 论地质公园硬质景观设计
  • 2020冀教版四年级数学教案:第五单元 第4课时 探索3的倍数的特征
  • 2016年春节过后先考托福还是GRE?
  • 六年级下册语文试题漂亮老师和坏小子课外阅读练* 苏教版_00002
  • 2019年幼儿教师德育期末工作总结
  • 脑卒中病人的护理ppt课件
  • 国投企业党建工作总结
  • (部编版)五年级语文下册11军神教案教学设计
  • 誓死读死书学生作文600字
  • 一例初产蛋鸡肾型传染性支气管炎的诊治
  • 人教版数学七年级下册第9章第3课9.2一元一次不等式(1)测试(学生版).docx
  • 一天中最有效的学*时间是这4个时段!家长们知道吗?
  • 《冰糖炖雪梨》黎语冰知道棠雪受伤是第几集棠雪为什么受伤
  • *潭综合实验区与台湾自由经济示范区对接合作——两岸自贸区合作
  • 全国测量仪器检定机构汇总
  • JAVA接口总结及注意事项
  • thymeleaf判断符号
  • 2019届高考化学考前选择题冲刺训练——电化学专题(含答案)
  • Swagger2访问静态页面出现404错误
  • 2019年最新大学生入党思想报告范文:积极向党组织靠拢思想汇报文档【五篇】 (4)
  • 交感神经型颈椎病的预防措施有哪些
  • (完整word版)个人师德工作总结
  • 江西省临川区七年级历史下学期期中试题新人教版
  • 中国保险监督管理委员会山西监管局关于同意中国大地财产保险股份
  • JJ冀教版 六年级英语 下册第二学期春(教学设计 教案)Unit 2 Lesson 9 Eat More Vegetables and Fruit!
  • 云课堂智慧职教网页版登录入口_纳米智能化黑板为教学添“云”翼
  • 浅析水泵节能技术途径
  • 浙教版2019-2020学年七年级下学期科学期中考试试卷D卷
  • 浅谈桥梁加固中粉喷桩施工技术要点
  • 关于班长的竞选稿五篇
  • 支气管镜精美图谱
  • BT3篇馕尴咄?缱EP
  • 江苏省邳州市第二中学高中生物一轮总复* 光合作用名师优质课件3 新人教版
  • 《趵突泉》读后感范文5篇
  • 电脑版