知识工程及语义网技术 2020-05-21 (第一节)

115 阅读1小时+

图片.png 图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png 你给可以听到呃我们之前的这个两次课呢,我们主要进行了一些这个课堂的研讨。那么呃我们在这个课堂讨论里面呢,那么主要的内容呢这个是和这个我们的这个呃第一部分知识库的构建等等相关的内容相关的。那么我们来今天再回到我们的这个教学内容上面,主要的是和我们上次讲到的这个知识融合门接着来进一步的这个开始往下讲。那么另外需要注意的是我们这个课程呢,那么在后面呢这个还会有一次这个呃课堂的资格讨论课,那么还是一样两节课的时间,那么应该来放在这学期的最后的时候,我们才会开始。那么这个课堂讨论课的内容呢我们会在呃后面我会把这个论文的放出来,其他已经整理好了一部分,还有一点这个内容呢我还在整理中。因为呃今天在这个戏里面这个服务器啊断电,所以我把这个我们课程网站的那个服务器的呃关掉了,所以在时代我们课程网站的服务器来访问不了什么,后面来等这个。呃,他恢复供电之后来呢我们可以继续来去去访问我们课程的网站,包括我们的课件等等的相关内容。哦,我们上次来讲到了这个一个这个方法,那么就是村委来一个叫奥叫实体对齐的这样一个任务。这个任务呢主要就是说我要找到两个相同的这个实体,比如说在我们的这个图片里面,那么左边的右边的这两个人,那么他们实际上指的是相同的人,这就是我们的一个任务。那么在我们的这个工作里面呢,我们主要来呃需要利用的就是各种各样的这个特征,请帮助我们去找到。他们俩是不是等价的?那么我们之前提到过我们可以基于一些字符串的这种匹配的方法。有着两个人他有这个相同的名字,你就可以去找他。另外呢我们也可以利用到一些这个深度学习的一些技术,上次讲过一个最简单的这个穿四一的这个方法。那么这个方法呢那么通过我们说的这个invading的这样的一个机子,那么把这样的一些特征呢那么压缩到一个向量空间里的向量空间里面进行这个比较。那另外来这边呢有一个相对来讲我个人觉得比较好的一个方法,作为叫一个Paris的这个方法。这个方法呢那么它是一个基于概率推断的一个方法,那么这个方法呢它的效果了。相对来讲是比较好的,并且呢它的这个从这个整个模型的设计上来讲,也是一个比较这个看起来比较优美的一个做法。那么这个方法来那么大几张是这样的一个含义。他说,我如果想知道一个实力x和一个实力xep也就是说说我们这里有个这个人和这个人,他们俩之间是等价关系的话。那么我们可以依赖于这样的一个推导的规则。这个规则说的是什么呢?说我存在一个关系啊以及两个实体y和Yep。第一个关系二上面他是一个叫称为叫反函数类型属性的加一个东西。这个反函数类型的属性才是我们之前的课堂我们讲殴打beer语言的时候提到过。也就是说比如说我们说的常见的像email box或者homepage。只写属性的,它被称为一种叫反函数类型的属性,也就是说这个里面的属性的取值比如说我们拿这个email box为例的话,那么对于一个人,但他的信箱来讲。那么一个信箱他应该对应到具体的一个人或者一个组织,也就是说不可能两个人啊拥有相同的形象。比如说大家在一些网站上注册的时候,你会发现比如说你填曲这个信箱的时候,那么如果已经有了这个信箱,那么他就会认为这个实际上你填的不对了,那么这个信箱已经被人注册过。所以你要换一些。所以这个时候来这种属性,我们把它称为一种叫反函数型的属性。那么这条推断规则说的是怎么来说的是如果我存在这样两个三元组,一个是x使用了二,那么得到了这个玩这个取值。另外一个三元组的是xc撇这个实体使用了二,这个关系得到了我还一篇这样的一个取值。那么满足了21个反函数型的属性,xr,这个y和Yep。他们俩是这个等价的。那么我通过这个反函数属性的这样一个定义,我们能反推到应该xaxep他们俩是更加也就是说假设这个y和娃衣品是两个相同的邮箱,二来是这个邮箱的这个属性。那么这表明呢x和xep这两个拥有相同邮箱的人,他们应该是个相同的人。但是这个事情这个是一个比较强的一个东西了 一天这两个拥有相同邮箱的人,他们应该是个相同的人。但是这个事情这个是一个比较强的一个东西,在我们的现实世界里面的,他不见得完全成立,他不见得是100%成立的。所以呢这个在这个过程中间呢他们就引入了一个概率了。说x和xep他们俩等价的这样的一个概率。实际上呢等于下面的这样的一个概率,这个概率就是我们把这两个相减。一个是说y和y撇等价的这个概率啊,用一减去大,就这样一个层。那么实际上表明了怎么地表明了这个我还和Yep不相似的这样那个概率?这样的结果另外呢一个男生啊这样这个属性他到底是不是板蓝根属性?他的一个判别力,他的一个权重一个概率。所以这两个呢整体上他就能推断出来x和xep它的一个情况。所以这个而如果它越接近于一个真实的反函数属性,并且呢我还和王一品的越相似的话,那么整个的x和xe片就会越小。最通过这样的一个推断的过程中间,那么他就可以把整个的我们说的这个实体等价寻找实体等价的过程呢。转换成一个我们说的概率推断的一个过程。那么更进一步的,那么他适当还处理了其他的一些情况,比如说我们说在一个本体中间,在一个知识图谱里面,这个他有这个类和类之间可能会有这个包含的关系,比如说我们说rock singer。是这个Sina的一个子类,那怎么样去处理这个问题呢?那么他会说。如果这个类c的所有实例都包含在内地了包含的所有的实力中间。那么这个类c了就属于第。所以在这个推断的过程中,觉得他又增加了一个敢做,增加了一个类型的一个包含关系的概念。他把这个概率的也会带到我们刚才的前面的整个的这个概率公式里。And另外一方面他又说了,如果一个关系a,他的每一个对呀都在关系必中。那么关系a了就是关系币的一个紫薯精。所以在这里我们说比如说这个两个人啊是这个结婚了这样的个关系。那么它是让带是这个knows的个关系的一个子属性,所以我们也会把这个子属性的下一个关系的可以带到我们的整个的这个概率推断的过程。他的过程呢是参考了我们刚才说类的这样的一个子类的关系,将一个概率方式来计算,最整体上来讲这个论文呢那么是值得大家来去看一看。这个论文呢那么他把所有的关系转换成了所有的这个对于等价实力的这个推断了。转换成了各种各样的概率的这个建模。那么在这个里面的通过概率的计算怎么获得?而且呢这个方法来和我们前面说的一些方法不太一样,那么他嘞是一个这个无监督的房。那么只要莱尼找到了这个一些初始的节点之后,那么你就完全了通过这个概率推断的来获得最终的这个结果,而不需要呢有一些像我们之前做的这个深度学习的这个技术,你需要有一个很大的训练集进行截图。哦,前面呢我们主要讲的是这个记录链接这样的一个模块,现在这个模块的前后啊还会有一些其他的这个么?在这些里面呢我们也来看一看这个相关的一些内容。那么在这个季度链接之前他一般来讲了会有一个叫分块处理的这个么?这个分块,因为呢他就要这个blocking。那么他主要关注的是我们做的一个数据规模的一个问题。因为我们的这个数据啊他可能呢很大,特别是现在的这个知识图管它越来越大了。那么如果两这个一个知识图谱有几千万的这样的一个实体在里面。那么你想进行一个记录链接实际上是比较消耗资源。所以在这个过程中间他们就进行了一个叫分块处理,这个从直观上来很容易想象。也就是说我把这个数据呀拆分成很多不同的这个快,那么我在这个快里面呢。处理,那么实现的这种并行的处理。这个分块,所以我们说他就是说从给定的知识库中的所有实体对动件,我可以去选择潜在匹配的这个记录对作为候选项。并将这个候选项的大小来尽可能的酒多少。所以从这边我可以看出来这样一个他的目的是让有两个方面。第一个方面是说我们希望啊整个我们的这个处理的时候,我们不要把一些潜在的匹配把它丢掉。也就是说假设真实的情况下a和b是一个匹配或者是一个对齐,这个实体匹配或者是一个本体概念的一个一个匹配,我们不管他是什么。我们说他如果是真实的存在的,我们希望呢我们在这个分块的过程中间,不要把他分到不同的快乐。所以这个分块的在这个地方我们要处理。第二个呢,我们要让这个候选相了大小尽可能的小。因为我们最极端的情况我们就不分快能确实我所有潜在的匹配的不会丢掉。但是的我这个候选项候选的这个空间还是很大。所以呢,那么我另外一方面的人让这个候选项这个候选的空间尽可能的要缩小。所以这时候来他们产生了一个这个我们做的优化问题,一般来讲他可能是这样对你尽这样定义,就是说我尽可能要保证这个潜在匹配的数量的前提下,我要让这个候选将来他们的这个候选的空间呢尽可能缩小。可以把它建模成的这样的一个优化的问题。那么再接下来比如说我们这儿可以看一个这样子的例子。我说我们假设有两个数据集,一个数据几代里面有m个实体,另外一个数据集带有n个实体。那么如果我不分快,我对这个记录直接进行一对一的这样个链接。我的这个时间复杂度来就是俺不存在。嗯。那不要计算这么多次,实际上我们真正的复杂度比这个要高,因为这还取决于我们说的这个一个钻吧。你就说假设我用一个很快的一个字符串匹配的算法,那么俺们成文再乘上一个小的系统。但是如果我用一个很复杂的方法去算他们俩之间是不是链接,我要考虑很多的特征的话,那么就m陈文还会存在一个很大的游戏。所以这个时候我们通过统称我们不管后续的这个具体匹配的算法的话,那我们在这就是mt了。那么现在我们下说,如果假设我现在有十的六次方条,这个季度的链接。那么我如果不分快的话,我的时间复杂度假设我就是10的12次方,就是实在六次方乘十的十六,十的六支吧。那么如果呢我假设我进行分块,我假设我分成了1000块,1000个款,那么这时候了我就会变成了十的这个三次方,乘上10的3次方,再乘了1000这样的一个过程。所以这时候我就变成了十的九次了。那么我假设如果一次链接我用一毫秒的话,那么大家可以看到第一种方法就是11.6天才能转完,第二次的我们只需要16分钟就可以刷完。最大家可以看到,虽然如果我们在一般的处理的过程中间,我们感觉到好像匹配啊一次一行表示一个很快的一个速度。这个实际上也和我们在整个知识图谱这个大数据处理上面是很这个需要关注的一个问题。特别是你写这个算法的过程中间经常会遇到。那么你这个一般来讲在一些小的运行的过程中间,你不会注重这个战法的它的效率。但是呢你如果一旦切换到大数据上面,那么我们经常说你这个算法慢一点点。最终累加起来你就会慢很多。所以在这个例子里面我们也看出来一个是十的16分钟,一个来吃,要吃将近12天的时间。会这个就差的很大。同样的我们说对于这样的一个链接来讲,那么如果你写的一个算法比较好他是选一毫秒a选一毫秒,而另外一个人写的算法来相对比较差,还需要两毫秒。那么这时候你虽然对于同样的一个处理,那么你的一个暑假他也要翻倍了。所以这个时候呢也是这个你算法上慢一点,那么你可能懂得了这个慢对这个就是我们做的这个分块处理这个这个过程它需要完成的内内。那么实际上呢带着个分块处理这边的。那么现在的这个计算也比较简单,比如说我可以基于一些这个索引的一些技术,那么我可以很快地进行封管。比如说要求两个后选的这个实体啊,他们之间比如说至少要有一个相同的单词或者等等的。那么我进行了一些很简单的策略,我就可以做份饭,当然我也可以用很多很复杂的策略区分。但总体来讲这边真快,一般来讲都会选择一些比较。亲,谅解这个算了。否则的话呢这个算法如果分块这部分都很慢的话,那就起不到我们做的优化这个目的。那么这里呢我们可以看到具体的一个方法,那么它是利用在这个本几对情侣。那么这边有一个这个例子。这个呢是别人20172007年啊有个本体匹配工具比赛的时候他的一个报告。他说嘞这个当前绝大部分的这个本体匹配方法。或者工具都是适合于这个小型本体,这个稍微本体大一点的之后了。他就不太适合。怎么在这个里面他列举了一下当年的比赛的有17个本体匹配工具啊参加这个比赛。其中那四个完成的有关大型本体匹配的一个测试。这里呢它的大型本体啊他这么顶他说大概大于ek的降一个。就认为来说这个大型本体就大于1000的1000个给但是呢另外一方面实际上我们还有许许许多多的应用嘛。在这个应用中间呢,我们需要去匹配这个大型的本体有做我们这边举了几个例子。五钻这个图书分类的目录。那么犟,brink,man等等的一些图书分类目录,它使劲呢是一个很大的这个问题。那么他嘞这个不可避免,你需要去处理这个大型分级的匹配。另外呢还有比如说生命科学领域的本体,我说像这个解剖学的本体等等的。这些本体也是一个很大型的这个问题。还有呢我们还可能呢有这个维基词典,那么这个维基词典也是需要的去处理。能,所以呢这就产生了一种两难的境地,一方面先有的这个工具啊,他不太适合做这个大型本体的匹配,而另外一方面呢,许许多多的应用了,有需要你去匹配这个大型本体。最真实后来我们就产生了这个学术研究的一个空间的。这里呢我们说常见的这个分块方法可能有几种。李总来,我们说可以基于这个哈希函数进行疯狂。有说啊,我对于一个记录x。我说啊,对x求一个他的哈希得到一个hi。则呢我们就是将x来映射到和一个关键字hi绑定的一个快c上,ci上。那么这时候就完成了得分。常见的一些哈希函数,我们可以说我们可以这么做,我说啊我可以一个字符串的前n个字。我就把它作为一个哈希。你就说不管我这个字符串多长,我现在假设这个我取前两个字符,那么前两个字符了,aa开头的ab开头的,他就会送到不同的这个身上。那么如果别的这个aa,ab了,那么他就会送到相同的这个这个这个身上,这个分快上。那么我就完成或者我们还可以使用这个ng的地方,比如说我们做3g,就以这个三个字符啊为一个阶段。那么进行了这个状况。也可以了,我结合多个简单的哈希函数进行这个疯狂,那么综合运用。那么这边的需要注意的是在这个过程中呢他并不是要求一定要求比如说某一个x只能属于一个分块。他并没有这个要求,我们从3g里面就可以看出来,有时候爱三个结的话,那么他可能会属于同样一个字符串,它可能会分到不同的饲养上,这个也没有关系。我们总体上来讲,只要要求我总体的这个分块的数量相对来讲比较少就可以。那么另外呢我还可以生成一些比如说按照最近零的一些方法生成一些方块,比如说我可以利用一些这个看到皮的这样的一个聚类算法或者了我可以进行这个邻居的精灵排序。有时候生成一些关键字,按照关键字来从大到小进行排序。然后呢我有一个移动窗口。这里的还有一个常用的算法,称为来叫一个湖南的一个集合覆盖的一个算法。那么他的要求来是这样,说我尽可能去覆盖多的这个证样本。而我在这个覆盖的过程中觉得我不应该包含这些阜阳。那么这个唻变成了我们所的一个湖南的一个集合,覆盖的价格多少?到这里了,我们还讲一个具体的工作,什么阻拦以前做的一个工作,称未来叫这个。这个分分小孔ao的这样的一个本体匹配工具里面的一个工作,那么它主要来使用一种这个分而治之的这个策略。来对了大型本体啊,关键他们的这个匹配。那么整体来讲呢,这个过程呢这个方法它分为了这个三个阶段。假设我现在第一个阶段是输入两个本体。这两个本起来我本来认为的是这个比较这个大的本机,比如说我们刚才说的超过1000个这个概念在里面。那第一步来他做的事情呢是说他需要将单个的本体。进行划分。划分成了我们说的小的这个本体分块。比如说我们说这个里面的话分成了几个本体封罐,这个里面的也划分成了几个粉底。这个地方大家需要注意的是我们在这个里面也可以看到这个本体分块里面的元素啊,他不是完全正交的,你就说有一个元素,它可能会属于不同的本体分块,这个只允许。第二步了,他需要干的事情来就是这个匹配的部分款。也就是说找到分块和分块之间的这个匹配。就形成了我们刚才说的这个blocking的过程。那比如说说这个点和这个两个新增的一个分管这个两个呢把这个三个形成了一个疯狂。第三步,我们在这个小的分块映射,想利用我们之前说的各种各样的粉底匹配方法或者实体对齐的方法的。 或者十几对齐的方法,带着那么深沉的最终的这个结果。那么这个就完成了我们说的整个的这个匹配的这个过程,那么其中第一部和第二部是我们的这边的一个关键。第三部的,那么就是我们常规的这个匹配方法。啊,具体俺们来看看第一步,这个怎么去划分呢?那么在这个过程中间呢,我们实际上来考虑了两种。两个方面,第一个方面呢是类层次关系,我们刚才在Paris的那个方法里面也看到。有着刚才说的一个这个rock,Sina是这个Sina的一个子类,那么这时候他就会形成一个树状结构,因为本体的这个层次概念经常是个树状结构。怎么梳状结构怎么样去进行一个划分,另外来是一个属性。属性也有这个层次关系也有属性的,还有这个定义域,我们俩会把它考虑起来。进行来的话,比如说有些属性啊都只能作用在这个人的身上,而另外一些属性的是作用在计算机。老,那么这时候它可以划分到不同的这个类啊,不同的这个分快。虽然在这个过程中间,我们就采用了一种基于这个结构上的这个亲近性的方法。那么这时候我们对于假设一个本体来讲,我就会反复的去计算。比如说这个哥哥这个类之间它的一个距离,也就是说我们说的清净一些,就把各个属性之间的一个字。所以呢比如说对于这个图,我们会把划分成几个小块,比如在这里这个是作者相关的一些这个来是我们做的和这个出版物相关的一些内容。而这边的属性呢是单独练,这个就是完成了我们的这种话。这个地方需要注意的是这个划分啊不是百分之百正确,并不是端午非常完美的。那么和我们所有的这个blocking方法类似的,整个的这个划分肯定会丢失一些信息。这个呢就不可避免。那么另外呢我们说之后我们在这个划分的过程中间我们是怎么做的呢?我们采用了一个叫自己向上的一个划分的算法。你说每一个聚类,那我们希望这个节点间的这个内聚度比较高。而不同的这个剧那类的它的节点间的这个耦合度了比较低。这就是我们做的一个巨累的这个过程。虽然我们用一个图来看的话,在这个过程里面他就是这样的一个。组建这样的一个这个这个行程,自己向上的价值观,假设我们刚才里面有这么多的实体在里面,只要概念和属性在里面。然后呢我们刚才已经在其上一部账,我们已经算出来她们之间的结构上的这个清净性,比如他们俩之间是0.67,他们俩之间的事0.4等等的。我做的第一步是认为每一个字体向上,所以每一个这个实体。The单独自己形成一个这样的距离。然后呢在这个过程中间,我们的这个剧累了就不停的去合并。自底向上合并成更大的一个技能。也就是说第一步我们发现啊这个monograph都book靠的比较近,author i和person靠的比较近。我们就把他们俩各自来形成一个距离。再接下来我们就要算这个聚类和合并后的这个聚类,它们之间的亲密度。这个聚类的和机械合并做的这个东西我们要重新去计算。那么这时候没有发现了,比如说also和person还是一样的,这个reference的和这个proceeding呢。那么他们合并的比较呃亲近性比较高,所以他们俩也合并。那么在接下来我们就得到这样的一个过程。那么我们在这里的选用的这个本体的这样的一个自己向上的这个划分的算法。我们选用这个方法比较偏向于的让这个累啊大小之间呢。相对来讲比较平衡。也就是说我们不希望啊出现这个一路清闲的对话,使得某一个剧烈啊,很大别的剧烈的很小。这样的这个划分方法来来讲来实际上对于我们降低这个后续计算的复杂度啊。那起不到特别好的作用,对这部过程中间大家需要那么在这个过程里面来,那么他俩划分完之后,那么还需要来去把原来的这个三元组把它还原回来。你们在这里大家看的在这个过程中间我们是把这个节点划分了,但是节点和节点之间是什么关系的?这个东西啊我们还没有把它补充上去。所以我们这两个的补充上,在这个补充的过程中间,我们特别的要考虑到的匿名节点的一个完整集。本来比如说一个节点,它涉及到一个匿名节点,我们前面做的如果就像我们这个这个在18口里面的这个describe命令一样。怎么不考虑匿名节点的完整性的话呢?那么它的终点是个匿名节点,怎么这是我信息是不矮的?所以呢在这个地方为了保证这个完整性来,你就使用了一个叫阿迪f trees的遗迹。我们这个里面的定义呢我就暂时的不想要进去讲,但是我们可以看到这个基础是这样的一个过程。对于他。对于这样的个节点,我们会把它和它相关的一些三元我的补充上去。那么补充的过程中间呢比如说我们说这个reference和这个book,他们之间呢有一条这个subclass of的关系,他们在一个三元组里面你就把他补上去。别的也是一样的,但是呢有一些情况下,如果他的这个东西啊出现带了一个三元组,是一个匿名节点。那么这个匿名节点了,我们就要向后走,一直走到一个不是匿名节点的位置为准。所以呢在这个通把一个cluster变成我们说的一个整个的划分的过的多一个block的过程中间。我可能会稍微引入一些额外的这个实体劲,使得我们刚来的这个东西啊变的稍微大一些。包含的元素更多一些。但在总体来讲,那么它虽然让规模稍微大了一点,但是呢他还是取得了一个好的效果,它保证了我们坐的这边的完整性。而这个完整性的在许多其他的一些具体的本体匹配算法里,它是需要他不希望呢这个东西不完整,使得他这个无法去做。哦,我们刚才讲了一个基本的一个分块的方法,那么怎么快完之后我们就去匹配了。疲惫的过程中觉得这样很自然的,我们就有一个称为叫这个负载均衡的这个过程。那在这个过程里面我们的操作很简单,就是我要保证所有快中间的实体这个数目来相当。从而保证在分块对性能的一个提升的这样一个程度。那么让有说我们很简单,我们常见的一个方法可以利用向map reduce的这个操作。那么我通过这个map reduce在让这个多台机器啊他的负债来达到均衡每一台机器的分别处理这些分块内的这个匹配的过程。那么这时候我就完成了这样一个附带均衡的这部分呢?因为比较直观。我不就不仔细的去讲。 而最后呢,我们还会有在记录链接结束结束之后了。我们食堂还会有一些相关的一些评价的过程,有时候在我们这里一般来讲常见的这个评价来包括精度,召回率和这个f值。精度和召回率的那么一个嘞又被称为下一个叫查准率,一个再敲门叫他全绿f之外就进入和召回率的一个这个这个平均。你们俩还有一些时候,我们如果考虑这个大型本体的匹配或者大规模的实体。对此的这个任务的时候来,我们还会在这个过程中也考虑这个算法的运行时间,因为我们不希望这个算法运行,比如说这个几星期或者一个月的时间才能跑步的节目。哦,前面呢我们主要来介绍了一些这个算法层面的一些东西,那么后面呢我们来开始介绍一些。典型的这个知识融合的一些工具,通过这些工具的大家也可以去了解到。我们这些算法他是怎么样组装在一块儿了,然后呢另外的机械工具的它在实际使用中下它的一些这个特点。帮助大家更好的去了解这个,从整体上了解这个知识融合是怎么回事。我们先看第一个我们的这个工具栏,虽然就介绍我们自己组里面以前的一个叫falcon ao的这样一个本体,对齐工具。 这个呢还是我自己的原来写的一个。那么一直在更新到大概2010年左右,后来来这个就之后呢就没有再继续维护了,但是得应该来讲这个工具的现在去使用的时候了,那么它的效果来实战还是很好的。那么它是一个自动的方法,它不是一个这个半自动的方法,那么它是用来这个Java去写。你们现在来可能大家喜欢用这个Python啊等等去写。那么我们以前的这个读书的时候来,那么这个Java里还是比较流行的,所以我们的纸过来主要是用Java学习。那么这个呢具体来讲呢大家可以到这个网站上可以去下载表格相关的程序啊,去考虑去式一式。那么这个架构上来他大题的是这样的一个架构。这个输入还是一样的,输入的是两个本体。那么他底下呢有这个相映的有几个模块。一个来称为叫这个模型池。这个模型池里面呢主要完成的是对输入的这个本体的解析的过程。在这个过程里面,我们的这个本体来会进行各种各样的解析。另外对于一些结构啊我还会做一些调整。因为这个我们之前说本体的他的表达可能会有一些多样性,那么不同的人啊会写的一些不一样的这个结构。我们这里有一些启发式的方法,那么对这个模型呢做一些这个调整,具体来讲呢,那么最主要的我们会对一些叫list的这种结构啊进行调整。因为这个list了,在这个我们坐在这个id f的这个规范里面了。他的表达来是比较繁琐,他为了表示他们list的一个陷阱关系,他会变成第一个节点,他有个头是一个元素结尾的是一个list的一个紫的一个例子。然后这个紫的历史的来又会链接出来,他的头是第二个元素,然后他的未来又是一个紫的历史的。这样一个迭代的一个方法就定义,但这种方法来由于他这样子去定义啊这个历史的深度很深,并且他有这个顺序在哪。那么就会导致啊我们说如果你使用一个基于图结构的方法去匹配的话,这个历史的因为依赖于这个历史的里面的这个结构,然后来历这个图又很深,那么会导致在这个基于结构的方法在效果不太好。所以呢比如说在我们的模型调整的这个过程里面,他就会把这个历史的变成一个平行平面的一个结果,变成那一个节点,下面挂了list里面所有元素。所以这样的一个情况下,他对于一些图匹配的算法会相对来讲更加友好。那个第二个就是磨过来,就是我们的说了一个算法匹配库,在这个匹配库里面了,我们集成了这个好几种不同的算法。等会我们会看到这些算法大概是怎么样含义。然后呢这边呢还有一个我们做映射的一个管理器,对于匹配的结果我会生成这个映射结果。而顶上呢实在是这个工具的一个核心,这个工具啊它有一个中央的控制器。那么他最主要的过程呢就是根据我们说的这边这个我们输入的本体的不同。我要去的建立不同的模型,然后来去使用不同的调用不同的算。最后来对算法的结果了积极一个组合的过程。所以这个过程里面呢这个中央控制器来,那么它实际上是一个相对来讲需要仔细设计的一个梦。哦,那么这里面匹配的算法了,又比如说基于我们之前讲过的编辑距离的一个字符串匹配的方法。基于我们坐在这个虚拟文档,也就是说我们坐的TFIDF这套方法。还有基于这个啊df图的节奏地利用了这个相似度传播的一个子图匹配的方法。你知道我们刚才看到的,如果遇到这个大型本体,怎么可以有一个分块分而治之匹配的房?这些方法了都是我们做的基础的这个本体匹配的算法的。那么具体来讲,那么这些匹配算法的每一个他都会得到一些结果。那么这个结果我们刚才说就要在这个中央控制器里面去考虑怎么样去组合了。显然最简单的一个方法就是我们把这些结果做一个这个并集作为输出。那么但是呢这个时候了谁知道这个效果会比较差,因为有一些时候,比如说我们假设两个本体,他的这个是跨语言的,一个是中文,一个是英文,那么你用相似度啊。这个语言学的方法去比较的时候,那么比如说按照这个编辑距离去比较的话,那么你这个结果肯定是不可靠,那么你把这些结果来作为最终的结果输出。我们显然是这个错误的一个方法,不太好。所以呢在这个里面我们就考虑了怎么样对这个相似度啊进行一个组合。考虑到一个称为叫可比性的一个概念,而且呢分成两个可比性。一个人是语言学的可比性,一个类式结构的东西。这个语言的可比性的说的是我这个语言学的算法可以找到的映射数目啊,对比本体的概念的是。如果假设这两个与这两个是一个跨语言的场景,或者来这两个这个语言描述啊很不太一样。The mole可能能找到的树木会比较少,那么这时候就是做语言学的可比性的会比较低易。那么语言学的可比性低就意味着我不应该啊过多的从基于这种语言学特征的这种算法里面。把他的结果来拿出来作为最终的结果。而另外一种呢称为叫结构可比性。那么他呢主要是考虑的时候这个本体里面使用的一些原语的数目的一些对比。比如说一个本体里面使用了大量的这个subclass of的这种此类的关系,而另外一个女原来很少去。那么这时候就意味着这两个本体可能他们的结构上差异会比较大。一个有比较多的这个层次结构树状结构。另外一个呢可能是比较扁平的一种结果。那么这时候你如果用一些基于结构的方法去比较的话,那么显然他们俩因为结构上这个差异很大,我们效果呢就会比较差。虽然那么这时候我们就说考虑了这两种可比性之后呢,我们就可以把这个映射单元的进行各种各样的集成。那么在这个过程中间,我们就把语言学的可比性,结构的可比性的分成的高中低三个不同的档次。那么如果来这个语言学可比性很高,那我就直接把它的结果拿来用用。同样的对于结构可比性也是这样,而另外一方面,如果他们都是这个中档的时候了。我就要让他们俩来进行一个投票,进行一个组织,看看哪一些呢是他们有着公认的。那么这时候我会把这个结果来第三个来,如果发现有一个可比性很低的话呢,我就会把基基于这套这个方特征啊生成的这个结果了,把他抛弃的。有时候我说两个本体结构很相似,那么结构的可比性很低,是这个低档的话。那么我们刚才在说的这个鸡眼猫的这个方法,也就是基于结构可比性的结构的自动匹配的方法,我就不采用它的这个匹配结果。那么而最终我们把集成后的这个结果了,我们还有个贪心悬起的一个算法。满足在这个一对一的条件下来进行这个选取,选取我们说这个之心度最高的这些结果作为这种的素质。所以这个模块来在这个中央控制上面,他的策略大体上是这样的一个过程。首先我们先看它是不是一个大型本体。如果是一个大型文体,我们首先要进行刚才我们做的分块的动。然后呢我们再增快,那我们就会使用各种各样的转,这两个来是语言学的方法,这个来事结构的包。结构的方法来会依赖于原学的一些方法找到的这个种子节点作为这个其实然后进行相似度的传播。那么最终呢不管是语言学的方法还是结构的方法,他们的结果了都会根据高中低的生成一个消失都得一个矩阵。在这个矩阵里面我们就用这个贪心方法进行选取。谭晶方法来他要满足一对一,所以这时候我们就在这个里面先看。最大的这个只是代最大的值是在这1.0。所以呢我们就会把这个值选做一个匹配的结果。同时那么意味着这一行和这一列的其他的这个元素啊我会是匹配的。所以他们俩就会被删掉,第二次选的时候了我们就会选这个剩下来的这个0.8。对,最终在我们的这个结果就是1.0的这样的一个匹配的区里面的第二个元素和on便里面的第一个元素是匹配。 另外了区里面的第二个元素和第一个元素和oe便里面的第二个元素是不是?所以这就是我不做基于贪心方法。那么我们刚才前面已经说到我们有好几种,有的在模型库里面我们使用了一个叫接纳的这样的一个解析工具。这个工具可以将这个本体的导入到模型中间,通过了一系列的这个我们刚才说了这个调整的规则。那么来取得两个本体的结构了,或者等等上面的变得要更更加这个一致一些。然后呢在这个疲惫期的模块里面的集成了各种各样的匹配方式,在这个结果生成的模块里面的生成匹配结果,并且用这个传统的这个召回率准确率的方法来进行评价,然后后来有个中央控制的这个模块。可以的,选择用这个刚才说匹配模块里面的哪一种方法,哪些方法进行匹配。并且它也允许你进行一些手动的调节的这个参数,最后呢有一个这个存储的这个东西。用来存储的这个中间结果。啊,这里面的几个具体的匹配方法来我们简单的提一下。这个第一个呢这个为doc的这个方法。但是我们说的一种语言匹配的方法看来采用的是一种虚拟文档的一种概念。那么他嘞将这个每一个实体的建立成一个虚拟文档区里文档,哎,你可以认为嘞是一种带有权重的一个。这个单词的这样的给集合。那么在之后呢我们就可以利用这个向量空间模型啊。去计算文本之间的这个相似性,这个蓄力文档来,她就通过我们做实体的名字标签评论,就是这个comment以及还有邻居实体抽取了一些单词的集合来构成。另外一个方面呢,我会利用的语言的一些这个简单的编辑具体的一些方法。比如说在这儿,我们用在一个蓝文斯坦的这个编辑距离这个id的distance,然后呢去把这个id the distance在通过这个公式我可以转换成我们所的一个编辑的这个方法。对吧,这样的也可以得到。还有来基于这个结构的这个匹配方法这个方法来,那么它使用的是一种我们说二部图来表示问题。然后呢通过我们在这个二部图中间递归的去传播这个相似性。来计算的实体和20个三元组之间的一个结构的相似性。一般来讲呢他将这个微doc和刚才的这两个本体啊,这个基于语言学的本体的结果。他的输出来作为这个鸡这个方法的他的一个书。在这里呢我们看一看这个转换的这个过程吧,把这个图结构怎么做这个转换。在这里可以看爱着。在这个呢是一个原始的啊df图,这个啊df图呢就是我们做的由三元组构成的。说这个比如说一个学者。那么它里面有两块,一块来是这个研究生你快来是他的导师,然后后来这个研究生里面呢和导师之间呢是一个这个supervise的这个关系。把这个研究生下面又有个子类叫这个博士在这样的一个东西。那么在这个这个是一般的一个图,这个图呢我们把它转换成二不出来。就会转换成这样的一个形式。这个呢这个在这个啊df的这个规范里面的也有所设计。他一般都称为叫一个replicate location下一个词。那么这个东西啊是这样的,在这里面这个节点表示的是一个三元组决定,也就是说把这样的一个三元组。我显示的增加一个节点,而这个节点呢里面有三条边。真别表示啊这个三元组的三个圆也就这个点表示,比如说我们看一下这个点的这个这个表示的是这样的一个东西,比如说这个是PhD,他是主语,因为所PhD candidate是subclass of一个graduate。博士生是研究生的一个子类,所以在这里我们增加了一个中间的节点,表示这个三元组。而三元组里面的s就是他的主语是这个博士生,他的这个位置嘞。是这个我们做姊妹儿他的这个宾语呢是我们说的这个。研究生,所以这时候就形成了我们所的一个从一个三元组啊转换成一个两种不同类型节点的家里,给这个里面一个节点一种类型的节点,是我们做三元组节点板。另外一种类型的节点是表示的是一种我们原来的主谓宾背景。那么这个图案它的主要的目的呢实在是使得我们的一个啊df图案变得更加规范一点。那么可以采用了一种称为叫相思度的一种方法来进行。这个在这个传播的过程中,也也就是说我假设知道这个节点和另外一个图里面某一个节点匹配。那么我就会把这个相似度啊不断地朝里面传播,传播到这个节点这个节点来再把他的箱子都在传播给下面两个节点。 虽然这个很正常的就使用了我们说的这种结构的相似新的这个传播的吧。那么另外呢这个量呢大家需要注意的是在这个过程中加这个原来的相似度传播了,就是一种称为叫这个message passing或者propagation的这个过程。而你现在呢可能大家基于比如说深度学习的技术,你比如说使用这个机身,按这种模型的时候也依然给力用了这些途径。就不怎么这里的实际上怎么说这个falcon air二怎么还有很多的这个测试的效果?大家可以在这个相关的一些网站上可以找到,怎么当时来,那么他在这个呃比赛中间的效果还是比较好,那么获得过很多的这个测试。这个比赛的这个冠军。那么这个界面来方面呢是比较简单的,因为他是一个资格自动化的工具,那么也不需要忍耐去制作,所以这个界面来做得很简单。就是你导入了两个本体,那么他会把这个匹配的结果给你送送出来。那么高置信度的最高的是1.0,那么到下面来或者外卖逐渐降低。那么一直的把他这个匹配完成,那么后面的这个evaluation的这个模块可以直接给出你的精度召回率讲了一些指标。哦,这个呢就是我们先建造的第一个工具,时间也差不多,我们就下课来稍微休息几分钟,等会儿来我们呃11:10的时候来再回来,大家继续用。接着这个课的内容把先休息一会儿。

图片.png 图片.png

你给可以听到呃我们之前的这个两次课呢,我们主要进行了一些这个课堂的研讨。那么呃我们在这个课堂讨论里面呢,那么主要的内容呢这个是和这个我们的这个呃第一部分知识库的构建等等相关的内容相关的。那么我们来今天再回到我们的这个教学内容上面,主要的是和我们上次讲到的这个知识融合门接着来进一步的这个开始往下讲。那么另外需要注意的是我们这个课程呢,那么在后面呢这个还会有一次这个呃课堂的资格讨论课,那么还是一样两节课的时间,那么应该来放在这学期的最后的时候,我们才会开始。那么这个课堂讨论课的内容呢我们会在呃后面我会把这个论文的放出来,其他已经整理好了一部分,还有一点这个内容呢我还在整理中。因为呃今天在这个戏里面这个服务器啊断电,所以我把这个我们课程网站的那个服务器的呃关掉了,所以在时代我们课程网站的服务器来访问不了什么,后面来等这个。呃,他恢复供电之后来呢我们可以继续来去去访问我们课程的网站,包括我们的课件等等的相关内容。哦,我们上次来讲到了这个一个这个方法,那么就是村委来一个叫奥叫实体对齐的这样一个任务。这个任务呢主要就是说我要找到两个相同的这个实体,比如说在我们的这个图片里面,那么左边的右边的这两个人,那么他们实际上指的是相同的人,这就是我们的一个任务。那么在我们的这个工作里面呢,我们主要来呃需要利用的就是各种各样的这个特征,请帮助我们去找到。他们俩是不是等价的?那么我们之前提到过我们可以基于一些字符串的这种匹配的方法。有着两个人他有这个相同的名字,你就可以去找他。另外呢我们也可以利用到一些这个深度学习的一些技术,上次讲过一个最简单的这个穿四一的这个方法。那么这个方法呢那么通过我们说的这个invading的这样的一个机子,那么把这样的一些特征呢那么压缩到一个向量空间里的向量空间里面进行这个比较。那另外来这边呢有一个相对来讲我个人觉得比较好的一个方法,作为叫一个Paris的这个方法。这个方法呢那么它是一个基于概率推断的一个方法,那么这个方法呢它的效果了。相对来讲是比较好的,并且呢它的这个从这个整个模型的设计上来讲,也是一个比较这个看起来比较优美的一个做法。那么这个方法来那么大几张是这样的一个含义。他说,我如果想知道一个实力x和一个实力xep也就是说说我们这里有个这个人和这个人,他们俩之间是等价关系的话。那么我们可以依赖于这样的一个推导的规则。这个规则说的是什么呢?说我存在一个关系啊以及两个实体y和Yep。第一个关系二上面他是一个叫称为叫反函数类型属性的加一个东西。这个反函数类型的属性才是我们之前的课堂我们讲殴打beer语言的时候提到过。也就是说比如说我们说的常见的像email box或者homepage。只写属性的,它被称为一种叫反函数类型的属性,也就是说这个里面的属性的取值比如说我们拿这个email box为例的话,那么对于一个人,但他的信箱来讲。那么一个信箱他应该对应到具体的一个人或者一个组织,也就是说不可能两个人啊拥有相同的形象。比如说大家在一些网站上注册的时候,你会发现比如说你填曲这个信箱的时候,那么如果已经有了这个信箱,那么他就会认为这个实际上你填的不对了,那么这个信箱已经被人注册过。所以你要换一些。所以这个时候来这种属性,我们把它称为一种叫反函数型的属性。那么这条推断规则说的是怎么来说的是如果我存在这样两个三元组,一个是x使用了二,那么得到了这个玩这个取值。另外一个三元组的是xc撇这个实体使用了二,这个关系得到了我还一篇这样的一个取值。那么满足了21个反函数型的属性,xr,这个y和Yep。他们俩是这个等价的。那么我通过这个反函数属性的这样一个定义,我们能反推到应该xaxep他们俩是更加也就是说假设这个y和娃衣品是两个相同的邮箱,二来是这个邮箱的这个属性。那么这表明呢x和xep这两个拥有相同邮箱的人,他们应该是个相同的人。但是这个事情这个是一个比较强的一个东西了 一天这两个拥有相同邮箱的人,他们应该是个相同的人。但是这个事情这个是一个比较强的一个东西,在我们的现实世界里面的,他不见得完全成立,他不见得是100%成立的。所以呢这个在这个过程中间呢他们就引入了一个概率了。说x和xep他们俩等价的这样的一个概率。实际上呢等于下面的这样的一个概率,这个概率就是我们把这两个相减。一个是说y和y撇等价的这个概率啊,用一减去大,就这样一个层。那么实际上表明了怎么地表明了这个我还和Yep不相似的这样那个概率?这样的结果另外呢一个男生啊这样这个属性他到底是不是板蓝根属性?他的一个判别力,他的一个权重一个概率。所以这两个呢整体上他就能推断出来x和xep它的一个情况。所以这个而如果它越接近于一个真实的反函数属性,并且呢我还和王一品的越相似的话,那么整个的x和xe片就会越小。最通过这样的一个推断的过程中间,那么他就可以把整个的我们说的这个实体等价寻找实体等价的过程呢。转换成一个我们说的概率推断的一个过程。那么更进一步的,那么他适当还处理了其他的一些情况,比如说我们说在一个本体中间,在一个知识图谱里面,这个他有这个类和类之间可能会有这个包含的关系,比如说我们说rock singer。是这个Sina的一个子类,那怎么样去处理这个问题呢?那么他会说。如果这个类c的所有实例都包含在内地了包含的所有的实力中间。那么这个类c了就属于第。所以在这个推断的过程中,觉得他又增加了一个敢做,增加了一个类型的一个包含关系的概念。他把这个概率的也会带到我们刚才的前面的整个的这个概率公式里。And另外一方面他又说了,如果一个关系a,他的每一个对呀都在关系必中。那么关系a了就是关系币的一个紫薯精。所以在这里我们说比如说这个两个人啊是这个结婚了这样的个关系。那么它是让带是这个knows的个关系的一个子属性,所以我们也会把这个子属性的下一个关系的可以带到我们的整个的这个概率推断的过程。他的过程呢是参考了我们刚才说类的这样的一个子类的关系,将一个概率方式来计算,最整体上来讲这个论文呢那么是值得大家来去看一看。这个论文呢那么他把所有的关系转换成了所有的这个对于等价实力的这个推断了。转换成了各种各样的概率的这个建模。那么在这个里面的通过概率的计算怎么获得?而且呢这个方法来和我们前面说的一些方法不太一样,那么他嘞是一个这个无监督的房。那么只要莱尼找到了这个一些初始的节点之后,那么你就完全了通过这个概率推断的来获得最终的这个结果,而不需要呢有一些像我们之前做的这个深度学习的这个技术,你需要有一个很大的训练集进行截图。哦,前面呢我们主要讲的是这个记录链接这样的一个模块,现在这个模块的前后啊还会有一些其他的这个么?在这些里面呢我们也来看一看这个相关的一些内容。那么在这个季度链接之前他一般来讲了会有一个叫分块处理的这个么?这个分块,因为呢他就要这个blocking。那么他主要关注的是我们做的一个数据规模的一个问题。因为我们的这个数据啊他可能呢很大,特别是现在的这个知识图管它越来越大了。那么如果两这个一个知识图谱有几千万的这样的一个实体在里面。那么你想进行一个记录链接实际上是比较消耗资源。所以在这个过程中间他们就进行了一个叫分块处理,这个从直观上来很容易想象。也就是说我把这个数据呀拆分成很多不同的这个快,那么我在这个快里面呢。处理,那么实现的这种并行的处理。这个分块,所以我们说他就是说从给定的知识库中的所有实体对动件,我可以去选择潜在匹配的这个记录对作为候选项。并将这个候选项的大小来尽可能的酒多少。所以从这边我可以看出来这样一个他的目的是让有两个方面。第一个方面是说我们希望啊整个我们的这个处理的时候,我们不要把一些潜在的匹配把它丢掉。也就是说假设真实的情况下a和b是一个匹配或者是一个对齐,这个实体匹配或者是一个本体概念的一个一个匹配,我们不管他是什么。我们说他如果是真实的存在的,我们希望呢我们在这个分块的过程中间,不要把他分到不同的快乐。所以这个分块的在这个地方我们要处理。第二个呢,我们要让这个候选相了大小尽可能的小。因为我们最极端的情况我们就不分快能确实我所有潜在的匹配的不会丢掉。但是的我这个候选项候选的这个空间还是很大。所以呢,那么我另外一方面的人让这个候选项这个候选的空间尽可能的要缩小。所以这时候来他们产生了一个这个我们做的优化问题,一般来讲他可能是这样对你尽这样定义,就是说我尽可能要保证这个潜在匹配的数量的前提下,我要让这个候选将来他们的这个候选的空间呢尽可能缩小。可以把它建模成的这样的一个优化的问题。那么再接下来比如说我们这儿可以看一个这样子的例子。我说我们假设有两个数据集,一个数据几代里面有m个实体,另外一个数据集带有n个实体。那么如果我不分快,我对这个记录直接进行一对一的这样个链接。我的这个时间复杂度来就是俺不存在。嗯。那不要计算这么多次,实际上我们真正的复杂度比这个要高,因为这还取决于我们说的这个一个钻吧。你就说假设我用一个很快的一个字符串匹配的算法,那么俺们成文再乘上一个小的系统。但是如果我用一个很复杂的方法去算他们俩之间是不是链接,我要考虑很多的特征的话,那么就m陈文还会存在一个很大的游戏。所以这个时候我们通过统称我们不管后续的这个具体匹配的算法的话,那我们在这就是mt了。那么现在我们下说,如果假设我现在有十的六次方条,这个季度的链接。那么我如果不分快的话,我的时间复杂度假设我就是10的12次方,就是实在六次方乘十的十六,十的六支吧。那么如果呢我假设我进行分块,我假设我分成了1000块,1000个款,那么这时候了我就会变成了十的这个三次方,乘上10的3次方,再乘了1000这样的一个过程。所以这时候我就变成了十的九次了。那么我假设如果一次链接我用一毫秒的话,那么大家可以看到第一种方法就是11.6天才能转完,第二次的我们只需要16分钟就可以刷完。最大家可以看到,虽然如果我们在一般的处理的过程中间,我们感觉到好像匹配啊一次一行表示一个很快的一个速度。这个实际上也和我们在整个知识图谱这个大数据处理上面是很这个需要关注的一个问题。特别是你写这个算法的过程中间经常会遇到。那么你这个一般来讲在一些小的运行的过程中间,你不会注重这个战法的它的效率。但是呢你如果一旦切换到大数据上面,那么我们经常说你这个算法慢一点点。最终累加起来你就会慢很多。所以在这个例子里面我们也看出来一个是十的16分钟,一个来吃,要吃将近12天的时间。会这个就差的很大。同样的我们说对于这样的一个链接来讲,那么如果你写的一个算法比较好他是选一毫秒a选一毫秒,而另外一个人写的算法来相对比较差,还需要两毫秒。那么这时候你虽然对于同样的一个处理,那么你的一个暑假他也要翻倍了。所以这个时候呢也是这个你算法上慢一点,那么你可能懂得了这个慢对这个就是我们做的这个分块处理这个这个过程它需要完成的内内。那么实际上呢带着个分块处理这边的。那么现在的这个计算也比较简单,比如说我可以基于一些这个索引的一些技术,那么我可以很快地进行封管。比如说要求两个后选的这个实体啊,他们之间比如说至少要有一个相同的单词或者等等的。那么我进行了一些很简单的策略,我就可以做份饭,当然我也可以用很多很复杂的策略区分。但总体来讲这边真快,一般来讲都会选择一些比较。亲,谅解这个算了。否则的话呢这个算法如果分块这部分都很慢的话,那就起不到我们做的优化这个目的。那么这里呢我们可以看到具体的一个方法,那么它是利用在这个本几对情侣。那么这边有一个这个例子。这个呢是别人20172007年啊有个本体匹配工具比赛的时候他的一个报告。他说嘞这个当前绝大部分的这个本体匹配方法。或者工具都是适合于这个小型本体,这个稍微本体大一点的之后了。他就不太适合。怎么在这个里面他列举了一下当年的比赛的有17个本体匹配工具啊参加这个比赛。其中那四个完成的有关大型本体匹配的一个测试。这里呢它的大型本体啊他这么顶他说大概大于ek的降一个。就认为来说这个大型本体就大于1000的1000个给但是呢另外一方面实际上我们还有许许许多多的应用嘛。在这个应用中间呢,我们需要去匹配这个大型的本体有做我们这边举了几个例子。五钻这个图书分类的目录。那么犟,brink,man等等的一些图书分类目录,它使劲呢是一个很大的这个问题。那么他嘞这个不可避免,你需要去处理这个大型分级的匹配。另外呢还有比如说生命科学领域的本体,我说像这个解剖学的本体等等的。这些本体也是一个很大型的这个问题。还有呢我们还可能呢有这个维基词典,那么这个维基词典也是需要的去处理。能,所以呢这就产生了一种两难的境地,一方面先有的这个工具啊,他不太适合做这个大型本体的匹配,而另外一方面呢,许许多多的应用了,有需要你去匹配这个大型本体。最真实后来我们就产生了这个学术研究的一个空间的。这里呢我们说常见的这个分块方法可能有几种。李总来,我们说可以基于这个哈希函数进行疯狂。有说啊,我对于一个记录x。我说啊,对x求一个他的哈希得到一个hi。则呢我们就是将x来映射到和一个关键字hi绑定的一个快c上,ci上。那么这时候就完成了得分。常见的一些哈希函数,我们可以说我们可以这么做,我说啊我可以一个字符串的前n个字。我就把它作为一个哈希。你就说不管我这个字符串多长,我现在假设这个我取前两个字符,那么前两个字符了,aa开头的ab开头的,他就会送到不同的这个身上。那么如果别的这个aa,ab了,那么他就会送到相同的这个这个这个身上,这个分快上。那么我就完成或者我们还可以使用这个ng的地方,比如说我们做3g,就以这个三个字符啊为一个阶段。那么进行了这个状况。也可以了,我结合多个简单的哈希函数进行这个疯狂,那么综合运用。那么这边的需要注意的是在这个过程中呢他并不是要求一定要求比如说某一个x只能属于一个分块。他并没有这个要求,我们从3g里面就可以看出来,有时候爱三个结的话,那么他可能会属于同样一个字符串,它可能会分到不同的饲养上,这个也没有关系。我们总体上来讲,只要要求我总体的这个分块的数量相对来讲比较少就可以。那么另外呢我还可以生成一些比如说按照最近零的一些方法生成一些方块,比如说我可以利用一些这个看到皮的这样的一个聚类算法或者了我可以进行这个邻居的精灵排序。有时候生成一些关键字,按照关键字来从大到小进行排序。然后呢我有一个移动窗口。这里的还有一个常用的算法,称为来叫一个湖南的一个集合覆盖的一个算法。那么他的要求来是这样,说我尽可能去覆盖多的这个证样本。而我在这个覆盖的过程中觉得我不应该包含这些阜阳。那么这个唻变成了我们所的一个湖南的一个集合,覆盖的价格多少?到这里了,我们还讲一个具体的工作,什么阻拦以前做的一个工作,称未来叫这个。这个分分小孔ao的这样的一个本体匹配工具里面的一个工作,那么它主要来使用一种这个分而治之的这个策略。来对了大型本体啊,关键他们的这个匹配。那么整体来讲呢,这个过程呢这个方法它分为了这个三个阶段。假设我现在第一个阶段是输入两个本体。这两个本起来我本来认为的是这个比较这个大的本机,比如说我们刚才说的超过1000个这个概念在里面。那第一步来他做的事情呢是说他需要将单个的本体。进行划分。划分成了我们说的小的这个本体分块。比如说我们说这个里面的话分成了几个本体封罐,这个里面的也划分成了几个粉底。这个地方大家需要注意的是我们在这个里面也可以看到这个本体分块里面的元素啊,他不是完全正交的,你就说有一个元素,它可能会属于不同的本体分块,这个只允许。第二步了,他需要干的事情来就是这个匹配的部分款。也就是说找到分块和分块之间的这个匹配。就形成了我们刚才说的这个blocking的过程。那比如说说这个点和这个两个新增的一个分管这个两个呢把这个三个形成了一个疯狂。第三步,我们在这个小的分块映射,想利用我们之前说的各种各样的粉底匹配方法或者实体对齐的方法的。 或者十几对齐的方法,带着那么深沉的最终的这个结果。那么这个就完成了我们说的整个的这个匹配的这个过程,那么其中第一部和第二部是我们的这边的一个关键。第三部的,那么就是我们常规的这个匹配方法。啊,具体俺们来看看第一步,这个怎么去划分呢?那么在这个过程中间呢,我们实际上来考虑了两种。两个方面,第一个方面呢是类层次关系,我们刚才在Paris的那个方法里面也看到。有着刚才说的一个这个rock,Sina是这个Sina的一个子类,那么这时候他就会形成一个树状结构,因为本体的这个层次概念经常是个树状结构。怎么梳状结构怎么样去进行一个划分,另外来是一个属性。属性也有这个层次关系也有属性的,还有这个定义域,我们俩会把它考虑起来。进行来的话,比如说有些属性啊都只能作用在这个人的身上,而另外一些属性的是作用在计算机。老,那么这时候它可以划分到不同的这个类啊,不同的这个分快。虽然在这个过程中间,我们就采用了一种基于这个结构上的这个亲近性的方法。那么这时候我们对于假设一个本体来讲,我就会反复的去计算。比如说这个哥哥这个类之间它的一个距离,也就是说我们说的清净一些,就把各个属性之间的一个字。所以呢比如说对于这个图,我们会把划分成几个小块,比如在这里这个是作者相关的一些这个来是我们做的和这个出版物相关的一些内容。而这边的属性呢是单独练,这个就是完成了我们的这种话。这个地方需要注意的是这个划分啊不是百分之百正确,并不是端午非常完美的。那么和我们所有的这个blocking方法类似的,整个的这个划分肯定会丢失一些信息。这个呢就不可避免。那么另外呢我们说之后我们在这个划分的过程中间我们是怎么做的呢?我们采用了一个叫自己向上的一个划分的算法。你说每一个聚类,那我们希望这个节点间的这个内聚度比较高。而不同的这个剧那类的它的节点间的这个耦合度了比较低。这就是我们做的一个巨累的这个过程。虽然我们用一个图来看的话,在这个过程里面他就是这样的一个。组建这样的一个这个这个行程,自己向上的价值观,假设我们刚才里面有这么多的实体在里面,只要概念和属性在里面。然后呢我们刚才已经在其上一部账,我们已经算出来她们之间的结构上的这个清净性,比如他们俩之间是0.67,他们俩之间的事0.4等等的。我做的第一步是认为每一个字体向上,所以每一个这个实体。The单独自己形成一个这样的距离。然后呢在这个过程中间,我们的这个剧累了就不停的去合并。自底向上合并成更大的一个技能。也就是说第一步我们发现啊这个monograph都book靠的比较近,author i和person靠的比较近。我们就把他们俩各自来形成一个距离。再接下来我们就要算这个聚类和合并后的这个聚类,它们之间的亲密度。这个聚类的和机械合并做的这个东西我们要重新去计算。那么这时候没有发现了,比如说also和person还是一样的,这个reference的和这个proceeding呢。那么他们合并的比较呃亲近性比较高,所以他们俩也合并。那么在接下来我们就得到这样的一个过程。那么我们在这里的选用的这个本体的这样的一个自己向上的这个划分的算法。我们选用这个方法比较偏向于的让这个累啊大小之间呢。相对来讲比较平衡。也就是说我们不希望啊出现这个一路清闲的对话,使得某一个剧烈啊,很大别的剧烈的很小。这样的这个划分方法来来讲来实际上对于我们降低这个后续计算的复杂度啊。那起不到特别好的作用,对这部过程中间大家需要那么在这个过程里面来,那么他俩划分完之后,那么还需要来去把原来的这个三元组把它还原回来。你们在这里大家看的在这个过程中间我们是把这个节点划分了,但是节点和节点之间是什么关系的?这个东西啊我们还没有把它补充上去。所以我们这两个的补充上,在这个补充的过程中间,我们特别的要考虑到的匿名节点的一个完整集。本来比如说一个节点,它涉及到一个匿名节点,我们前面做的如果就像我们这个这个在18口里面的这个describe命令一样。怎么不考虑匿名节点的完整性的话呢?那么它的终点是个匿名节点,怎么这是我信息是不矮的?所以呢在这个地方为了保证这个完整性来,你就使用了一个叫阿迪f trees的遗迹。我们这个里面的定义呢我就暂时的不想要进去讲,但是我们可以看到这个基础是这样的一个过程。对于他。对于这样的个节点,我们会把它和它相关的一些三元我的补充上去。那么补充的过程中间呢比如说我们说这个reference和这个book,他们之间呢有一条这个subclass of的关系,他们在一个三元组里面你就把他补上去。别的也是一样的,但是呢有一些情况下,如果他的这个东西啊出现带了一个三元组,是一个匿名节点。那么这个匿名节点了,我们就要向后走,一直走到一个不是匿名节点的位置为准。所以呢在这个通把一个cluster变成我们说的一个整个的划分的过的多一个block的过程中间。我可能会稍微引入一些额外的这个实体劲,使得我们刚来的这个东西啊变的稍微大一些。包含的元素更多一些。但在总体来讲,那么它虽然让规模稍微大了一点,但是呢他还是取得了一个好的效果,它保证了我们坐的这边的完整性。而这个完整性的在许多其他的一些具体的本体匹配算法里,它是需要他不希望呢这个东西不完整,使得他这个无法去做。哦,我们刚才讲了一个基本的一个分块的方法,那么怎么快完之后我们就去匹配了。疲惫的过程中觉得这样很自然的,我们就有一个称为叫这个负载均衡的这个过程。那在这个过程里面我们的操作很简单,就是我要保证所有快中间的实体这个数目来相当。从而保证在分块对性能的一个提升的这样一个程度。那么让有说我们很简单,我们常见的一个方法可以利用向map reduce的这个操作。那么我通过这个map reduce在让这个多台机器啊他的负债来达到均衡每一台机器的分别处理这些分块内的这个匹配的过程。那么这时候我就完成了这样一个附带均衡的这部分呢?因为比较直观。我不就不仔细的去讲。 而最后呢,我们还会有在记录链接结束结束之后了。我们食堂还会有一些相关的一些评价的过程,有时候在我们这里一般来讲常见的这个评价来包括精度,召回率和这个f值。精度和召回率的那么一个嘞又被称为下一个叫查准率,一个再敲门叫他全绿f之外就进入和召回率的一个这个这个平均。你们俩还有一些时候,我们如果考虑这个大型本体的匹配或者大规模的实体。对此的这个任务的时候来,我们还会在这个过程中也考虑这个算法的运行时间,因为我们不希望这个算法运行,比如说这个几星期或者一个月的时间才能跑步的节目。哦,前面呢我们主要来介绍了一些这个算法层面的一些东西,那么后面呢我们来开始介绍一些。典型的这个知识融合的一些工具,通过这些工具的大家也可以去了解到。我们这些算法他是怎么样组装在一块儿了,然后呢另外的机械工具的它在实际使用中下它的一些这个特点。帮助大家更好的去了解这个,从整体上了解这个知识融合是怎么回事。我们先看第一个我们的这个工具栏,虽然就介绍我们自己组里面以前的一个叫falcon ao的这样一个本体,对齐工具。 这个呢还是我自己的原来写的一个。那么一直在更新到大概2010年左右,后来来这个就之后呢就没有再继续维护了,但是得应该来讲这个工具的现在去使用的时候了,那么它的效果来实战还是很好的。那么它是一个自动的方法,它不是一个这个半自动的方法,那么它是用来这个Java去写。你们现在来可能大家喜欢用这个Python啊等等去写。那么我们以前的这个读书的时候来,那么这个Java里还是比较流行的,所以我们的纸过来主要是用Java学习。那么这个呢具体来讲呢大家可以到这个网站上可以去下载表格相关的程序啊,去考虑去式一式。那么这个架构上来他大题的是这样的一个架构。这个输入还是一样的,输入的是两个本体。那么他底下呢有这个相映的有几个模块。一个来称为叫这个模型池。这个模型池里面呢主要完成的是对输入的这个本体的解析的过程。在这个过程里面,我们的这个本体来会进行各种各样的解析。另外对于一些结构啊我还会做一些调整。因为这个我们之前说本体的他的表达可能会有一些多样性,那么不同的人啊会写的一些不一样的这个结构。我们这里有一些启发式的方法,那么对这个模型呢做一些这个调整,具体来讲呢,那么最主要的我们会对一些叫list的这种结构啊进行调整。因为这个list了,在这个我们坐在这个id f的这个规范里面了。他的表达来是比较繁琐,他为了表示他们list的一个陷阱关系,他会变成第一个节点,他有个头是一个元素结尾的是一个list的一个紫的一个例子。然后这个紫的历史的来又会链接出来,他的头是第二个元素,然后他的未来又是一个紫的历史的。这样一个迭代的一个方法就定义,但这种方法来由于他这样子去定义啊这个历史的深度很深,并且他有这个顺序在哪。那么就会导致啊我们说如果你使用一个基于图结构的方法去匹配的话,这个历史的因为依赖于这个历史的里面的这个结构,然后来历这个图又很深,那么会导致在这个基于结构的方法在效果不太好。所以呢比如说在我们的模型调整的这个过程里面,他就会把这个历史的变成一个平行平面的一个结果,变成那一个节点,下面挂了list里面所有元素。所以这样的一个情况下,他对于一些图匹配的算法会相对来讲更加友好。那个第二个就是磨过来,就是我们的说了一个算法匹配库,在这个匹配库里面了,我们集成了这个好几种不同的算法。等会我们会看到这些算法大概是怎么样含义。然后呢这边呢还有一个我们做映射的一个管理器,对于匹配的结果我会生成这个映射结果。而顶上呢实在是这个工具的一个核心,这个工具啊它有一个中央的控制器。那么他最主要的过程呢就是根据我们说的这边这个我们输入的本体的不同。我要去的建立不同的模型,然后来去使用不同的调用不同的算。最后来对算法的结果了积极一个组合的过程。所以这个过程里面呢这个中央控制器来,那么它实际上是一个相对来讲需要仔细设计的一个梦。哦,那么这里面匹配的算法了,又比如说基于我们之前讲过的编辑距离的一个字符串匹配的方法。基于我们坐在这个虚拟文档,也就是说我们坐的TFIDF这套方法。还有基于这个啊df图的节奏地利用了这个相似度传播的一个子图匹配的方法。你知道我们刚才看到的,如果遇到这个大型本体,怎么可以有一个分块分而治之匹配的房?这些方法了都是我们做的基础的这个本体匹配的算法的。那么具体来讲,那么这些匹配算法的每一个他都会得到一些结果。那么这个结果我们刚才说就要在这个中央控制器里面去考虑怎么样去组合了。显然最简单的一个方法就是我们把这些结果做一个这个并集作为输出。那么但是呢这个时候了谁知道这个效果会比较差,因为有一些时候,比如说我们假设两个本体,他的这个是跨语言的,一个是中文,一个是英文,那么你用相似度啊。这个语言学的方法去比较的时候,那么比如说按照这个编辑距离去比较的话,那么你这个结果肯定是不可靠,那么你把这些结果来作为最终的结果输出。我们显然是这个错误的一个方法,不太好。所以呢在这个里面我们就考虑了怎么样对这个相似度啊进行一个组合。考虑到一个称为叫可比性的一个概念,而且呢分成两个可比性。一个人是语言学的可比性,一个类式结构的东西。这个语言的可比性的说的是我这个语言学的算法可以找到的映射数目啊,对比本体的概念的是。如果假设这两个与这两个是一个跨语言的场景,或者来这两个这个语言描述啊很不太一样。The mole可能能找到的树木会比较少,那么这时候就是做语言学的可比性的会比较低易。那么语言学的可比性低就意味着我不应该啊过多的从基于这种语言学特征的这种算法里面。把他的结果来拿出来作为最终的结果。而另外一种呢称为叫结构可比性。那么他呢主要是考虑的时候这个本体里面使用的一些原语的数目的一些对比。比如说一个本体里面使用了大量的这个subclass of的这种此类的关系,而另外一个女原来很少去。那么这时候就意味着这两个本体可能他们的结构上差异会比较大。一个有比较多的这个层次结构树状结构。另外一个呢可能是比较扁平的一种结果。那么这时候你如果用一些基于结构的方法去比较的话,那么显然他们俩因为结构上这个差异很大,我们效果呢就会比较差。虽然那么这时候我们就说考虑了这两种可比性之后呢,我们就可以把这个映射单元的进行各种各样的集成。那么在这个过程中间,我们就把语言学的可比性,结构的可比性的分成的高中低三个不同的档次。那么如果来这个语言学可比性很高,那我就直接把它的结果拿来用用。同样的对于结构可比性也是这样,而另外一方面,如果他们都是这个中档的时候了。我就要让他们俩来进行一个投票,进行一个组织,看看哪一些呢是他们有着公认的。那么这时候我会把这个结果来第三个来,如果发现有一个可比性很低的话呢,我就会把基基于这套这个方特征啊生成的这个结果了,把他抛弃的。有时候我说两个本体结构很相似,那么结构的可比性很低,是这个低档的话。那么我们刚才在说的这个鸡眼猫的这个方法,也就是基于结构可比性的结构的自动匹配的方法,我就不采用它的这个匹配结果。那么而最终我们把集成后的这个结果了,我们还有个贪心悬起的一个算法。满足在这个一对一的条件下来进行这个选取,选取我们说这个之心度最高的这些结果作为这种的素质。所以这个模块来在这个中央控制上面,他的策略大体上是这样的一个过程。首先我们先看它是不是一个大型本体。如果是一个大型文体,我们首先要进行刚才我们做的分块的动。然后呢我们再增快,那我们就会使用各种各样的转,这两个来是语言学的方法,这个来事结构的包。结构的方法来会依赖于原学的一些方法找到的这个种子节点作为这个其实然后进行相似度的传播。那么最终呢不管是语言学的方法还是结构的方法,他们的结果了都会根据高中低的生成一个消失都得一个矩阵。在这个矩阵里面我们就用这个贪心方法进行选取。谭晶方法来他要满足一对一,所以这时候我们就在这个里面先看。最大的这个只是代最大的值是在这1.0。所以呢我们就会把这个值选做一个匹配的结果。同时那么意味着这一行和这一列的其他的这个元素啊我会是匹配的。所以他们俩就会被删掉,第二次选的时候了我们就会选这个剩下来的这个0.8。对,最终在我们的这个结果就是1.0的这样的一个匹配的区里面的第二个元素和on便里面的第一个元素是匹配。 另外了区里面的第二个元素和第一个元素和oe便里面的第二个元素是不是?所以这就是我不做基于贪心方法。那么我们刚才前面已经说到我们有好几种,有的在模型库里面我们使用了一个叫接纳的这样的一个解析工具。这个工具可以将这个本体的导入到模型中间,通过了一系列的这个我们刚才说了这个调整的规则。那么来取得两个本体的结构了,或者等等上面的变得要更更加这个一致一些。然后呢在这个疲惫期的模块里面的集成了各种各样的匹配方式,在这个结果生成的模块里面的生成匹配结果,并且用这个传统的这个召回率准确率的方法来进行评价,然后后来有个中央控制的这个模块。可以的,选择用这个刚才说匹配模块里面的哪一种方法,哪些方法进行匹配。并且它也允许你进行一些手动的调节的这个参数,最后呢有一个这个存储的这个东西。用来存储的这个中间结果。啊,这里面的几个具体的匹配方法来我们简单的提一下。这个第一个呢这个为doc的这个方法。但是我们说的一种语言匹配的方法看来采用的是一种虚拟文档的一种概念。那么他嘞将这个每一个实体的建立成一个虚拟文档区里文档,哎,你可以认为嘞是一种带有权重的一个。这个单词的这样的给集合。那么在之后呢我们就可以利用这个向量空间模型啊。去计算文本之间的这个相似性,这个蓄力文档来,她就通过我们做实体的名字标签评论,就是这个comment以及还有邻居实体抽取了一些单词的集合来构成。另外一个方面呢,我会利用的语言的一些这个简单的编辑具体的一些方法。比如说在这儿,我们用在一个蓝文斯坦的这个编辑距离这个id的distance,然后呢去把这个id the distance在通过这个公式我可以转换成我们所的一个编辑的这个方法。对吧,这样的也可以得到。还有来基于这个结构的这个匹配方法这个方法来,那么它使用的是一种我们说二部图来表示问题。然后呢通过我们在这个二部图中间递归的去传播这个相似性。来计算的实体和20个三元组之间的一个结构的相似性。一般来讲呢他将这个微doc和刚才的这两个本体啊,这个基于语言学的本体的结果。他的输出来作为这个鸡这个方法的他的一个书。在这里呢我们看一看这个转换的这个过程吧,把这个图结构怎么做这个转换。在这里可以看爱着。在这个呢是一个原始的啊df图,这个啊df图呢就是我们做的由三元组构成的。说这个比如说一个学者。那么它里面有两块,一块来是这个研究生你快来是他的导师,然后后来这个研究生里面呢和导师之间呢是一个这个supervise的这个关系。把这个研究生下面又有个子类叫这个博士在这样的一个东西。那么在这个这个是一般的一个图,这个图呢我们把它转换成二不出来。就会转换成这样的一个形式。这个呢这个在这个啊df的这个规范里面的也有所设计。他一般都称为叫一个replicate location下一个词。那么这个东西啊是这样的,在这里面这个节点表示的是一个三元组决定,也就是说把这样的一个三元组。我显示的增加一个节点,而这个节点呢里面有三条边。真别表示啊这个三元组的三个圆也就这个点表示,比如说我们看一下这个点的这个这个表示的是这样的一个东西,比如说这个是PhD,他是主语,因为所PhD candidate是subclass of一个graduate。博士生是研究生的一个子类,所以在这里我们增加了一个中间的节点,表示这个三元组。而三元组里面的s就是他的主语是这个博士生,他的这个位置嘞。是这个我们做姊妹儿他的这个宾语呢是我们说的这个。研究生,所以这时候就形成了我们所的一个从一个三元组啊转换成一个两种不同类型节点的家里,给这个里面一个节点一种类型的节点,是我们做三元组节点板。另外一种类型的节点是表示的是一种我们原来的主谓宾背景。那么这个图案它的主要的目的呢实在是使得我们的一个啊df图案变得更加规范一点。那么可以采用了一种称为叫相思度的一种方法来进行。这个在这个传播的过程中,也也就是说我假设知道这个节点和另外一个图里面某一个节点匹配。那么我就会把这个相似度啊不断地朝里面传播,传播到这个节点这个节点来再把他的箱子都在传播给下面两个节点。 虽然这个很正常的就使用了我们说的这种结构的相似新的这个传播的吧。那么另外呢这个量呢大家需要注意的是在这个过程中加这个原来的相似度传播了,就是一种称为叫这个message passing或者propagation的这个过程。而你现在呢可能大家基于比如说深度学习的技术,你比如说使用这个机身,按这种模型的时候也依然给力用了这些途径。就不怎么这里的实际上怎么说这个falcon air二怎么还有很多的这个测试的效果?大家可以在这个相关的一些网站上可以找到,怎么当时来,那么他在这个呃比赛中间的效果还是比较好,那么获得过很多的这个测试。这个比赛的这个冠军。那么这个界面来方面呢是比较简单的,因为他是一个资格自动化的工具,那么也不需要忍耐去制作,所以这个界面来做得很简单。就是你导入了两个本体,那么他会把这个匹配的结果给你送送出来。那么高置信度的最高的是1.0,那么到下面来或者外卖逐渐降低。那么一直的把他这个匹配完成,那么后面的这个evaluation的这个模块可以直接给出你的精度召回率讲了一些指标。哦,这个呢就是我们先建造的第一个工具,时间也差不多,我们就下课来稍微休息几分钟,等会儿来我们呃11:10的时候来再回来,大家继续用。接着这个课的内容把先休息一会儿。