| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 【论文研读】Translating Embeddings for Modeling论文理解 -> 正文阅读 |
|
[人工智能]【论文研读】Translating Embeddings for Modeling论文理解 |
一、embedding首先,我们得知道什么是embedding?他有什么优点?他为什么要被开发出来?传统的one-hot编码不可以吗?接下来让我们一一进行解决 1、什么是embedding? ① 维基百科的官方回答: 首先,embedding在pytorch或者tf中会被经常使用,m代表的是单词的数目,n代表的是词语嵌入的维度。其次,词嵌入(word embedding)是一个大矩阵,一行代表的是一个单词。 例子:因为皇帝和公主一定有血缘关系,所以为1,皇帝和王妃没有直系血缘关系,但是他俩在一起,所以为0.6;公主15岁结婚出宫,所以她与宫殿的关系是0.25,王妃15岁嫁入宫里,所以她与宫的关系是0.75;公主和王妃都是女的,所以说和女的关系是1。然后假设,每一个字都是占一个二字短语的一半比例,便有了下面这张转换图。 根据上方的图,我们假设皇宫为特征①,宫里为特征②,女性为特征③,就会得到下方的关系式子 2、embedding为什么会出现? 首先,每一个独立的词语都设定独立的数值,会导致最后得到的矩阵格外的稀疏,太占据空间位置了。 二、知识图谱这一块不准备细讲,因为网上资源还是很多的,这里就贴一个手写图,然后稍微解释一下,我们经常看见的知识图谱图片那些。 比如小明的爸爸是大明,那么小明和他爸就是一个实体,这俩个实体被在图片中显示的是俩个圈圈,那个线表示的是“父子关系”,所以说,小明与大明存在父子关系。 三、L0,L1,L2
四、transE的理解前面的部分我们属于一个基础知识的回顾,其实也就是我这种小白才需要进行查看,我在很多论文解读的文章里面都没有发现他们对论文的代码进行推导或者深入的研究,我猜想一个是因为他的算法确实很简单,其次就是这个方法有一点点点老了,大家觉得研究没有必要性。 话不多说,开始。 首先,这篇论文主要讲的是TransE的形成,也就是这个算法提出的第一篇鼻祖文章。那我们来看一下,transE到底是什么?它又是怎样去进行算法实现的? 我们知道,知识图谱是由实体和关系组成,一般实体和关系都是以矩阵的形式存在与出现的,实体矩阵(n×d)中,一行代表的就是一个实体的词向量,n代表的是实体的数量,d代表的是实体的维度;同理关系矩阵也是一样的。下面举了一个简单易懂的例子: transE在知识图谱嵌入技术中优化的是哪一部分的内容? 下面这一张图可以很清楚的展示,正样本与负样本一起通过一个打分函数,得到正负loss,然后将总loss计算出来放入优化器中优化,再修改实体和关系的embedding矩阵,然后再进入打分函数进行操作。 然而我们的transE运用的地方就是在打分函数这一块,具体如何运用的,请看后文详细讲解部分。 在论文中频繁的出现 正常的三元组应该是h、l、t之间的关系是对应的,没有差错的。 论文中还有一种损坏三元组(corrupted triplets),它是头部实体或者尾部实体被随机替换形成的新的三元组,但是需要注意的是,头部和尾部不能同时替换。(原因:损坏三元组就是我们所说的负样本,如果头尾都进行替换,万一替换成为一个正确的三元组,那就失去了负样本的意义) 在论文中,h,l,t表示的都是向量,所以三元组的关系就是下方这个图片中的对应关系: 图片部分文字说明:假设,有一个学生叫做小明,他大学毕业于湖北师范大学,那么他的h代表的就是小明,l代表的是毕业,t代表的是湖北师范大学,这就是构成了一个三元组。 一般我们会采用L1范数或者L2范数进行归一化,在本论文中采用的是L2范数(||e||) 论文中的代码的loss function,分数之间差距越大越好。对于错误的三元组,越大越好;对于正确的三元组,越小越好。
举一个简单的例子: 现在有一个头实体head:张艺谋;一个关系实体label:导演;有三个尾实体tail:分别是英雄,十面埋伏,金陵十三钗。 现在我们根据论文中的意思:h+l-t → 0,也就是h+l → t,最后导致我们三个tail实体无限的趋近于相同。可是我们明显的知道,这三个实体并不是完全相同的。 所以这就就transE在一对多或者多对一的关系上的一个弊端,后来的科学家根据这些弊端研究出transH,transD等等,最后形成了Trans系列算法。 五、参考文献3、transE算法解析① 5、实际应用代码资源(这个好像要c币,我下载了以后还在运行代码,感觉没什么错误) |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 12:49:00- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |