基于百科数据的实体分类算法的研究与实现分析研究 软件工程(嵌入式培养)专业_第1页
基于百科数据的实体分类算法的研究与实现分析研究 软件工程(嵌入式培养)专业_第2页
基于百科数据的实体分类算法的研究与实现分析研究 软件工程(嵌入式培养)专业_第3页
基于百科数据的实体分类算法的研究与实现分析研究 软件工程(嵌入式培养)专业_第4页
基于百科数据的实体分类算法的研究与实现分析研究 软件工程(嵌入式培养)专业_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录21879_WPSOffice_Level1摘要 18694_WPSOffice_Level1Abstract 229709_WPSOffice_Level1前言 321827_WPSOffice_Level1第一章绪论 48694_WPSOffice_Level21.1研究背景及意义 429709_WPSOffice_Level21.2国内外研究现状 521827_WPSOffice_Level21.2论文主要工作 58694_WPSOffice_Level3(1)百科数据的爬取: 629709_WPSOffice_Level3(2)数据预处理: 621827_WPSOffice_Level3(3)构建异质网络以及Wordembedding: 621661_WPSOffice_Level3(4)卷积: 612616_WPSOffice_Level3(5)准确性评估 621661_WPSOffice_Level21.3本文组织结构 621661_WPSOffice_Level1第二章相关知识介绍 812616_WPSOffice_Level22.1神经网络 815_WPSOffice_Level23.2wordembedding 815_WPSOffice_Level33.2.1表示学习 818070_WPSOffice_Level33.2.1数学意义上的embedding 830427_WPSOffice_Level32.2.2wordembedding 918070_WPSOffice_Level22.3metapath2vec 930427_WPSOffice_Level22.4卷积神经网络 1017709_WPSOffice_Level32.4.1前馈神经网络 1015561_WPSOffice_Level32.4.2CNN 1028270_WPSOffice_Level32.4.3Logistic分类器 1117709_WPSOffice_Level22.5启发式规则(HeuristicAlgorithm) 1115561_WPSOffice_Level22.6本章总结 1212616_WPSOffice_Level1第三章具体算法介绍 1328270_WPSOffice_Level23.1百科数据资源分析 133973_WPSOffice_Level23.2算法大致流程 1419425_WPSOffice_Level23.3词向量生成 1513014_WPSOffice_Level23.4模型输入 1630986_WPSOffice_Level23.5模型详细介绍 1815_WPSOffice_Level1第四章实验 201959_WPSOffice_Level24.1概述 20208_WPSOffice_Level24.2baseline 214941_WPSOffice_Level34.3.1参数设定 235999_WPSOffice_Level34.3.2实验结果 2318070_WPSOffice_Level1第五章总结 2630427_WPSOffice_Level1参考文献 2717709_WPSOffice_Level1致谢 29摘要 随着互联网技术的发展,在互联网上流转的数据信息量与日俱增。那么不可避免的,从这些数据中提取可用部分并且构建有效的知识,形成知识图谱,用于准确表达各个实体的语义和相互关系成为了十分重要的问题。 分类体系在构建知识图谱时是无法绕过的基础工作,为保证知识图谱的连贯性,可用性以及准确性,实体的分类任务将成为知识图谱构建的首要工作。然而,现在的分类工作大部分都只能为实体进行粗粒度的标注,诸如:{“自然”;“科学”;“人物”;“历史”;“生活”;“社会”;“艺术”;“经济”;“体育”;“地理”}这种程度的分类.虽然能够解决部分在构建知识图谱时的问题,但是由于粒度过大,不够精准,也有其缺陷。在本文中,我们主要提出并实验了使用卷积神经网络对实体进行细粒度划分的方法。 实体的来源为百科词条,我们首先通过网络爬虫获取到百科中词条的相关信息,对词条数据进行预处理后得到结构化的信息并将其存入到数据库中。考虑到拥有相同类型的实体的info-box可能会拥有类似的attribute-value对,我们将构成一个包含attribute-value信息异质网络并从中抽取出路径作为神经网络的输入,最终训练出一个path-CNN的二分类模型用于预测对于一个实体判断其是否属于给定的分类。 关键词:细粒度分类,实体,百科数据,卷积神经网络,异质网络Abstract AsthedevelopmentofInternettechnology,thedatainformationtransferringontheInternetisgrowingataterriblerate.Soinevitably,extractingtheusefulpartsfromthesedataandbuildingavalidknowledgemapforaccuratelyexpressingthesemanticsandinterrelationshipsofeachentityhavebecomeaveryimportantproblem. Theclassificationsystemisthebasicworkthatcannotbepassedwhenconstructingtheknowledgemap.Inordertoensurethecoherence,availabilityandaccuracyoftheknowledgemap,classificationwillbecometheprimarytask.However,mostoftoday'sclassificationworkcanonlybecoarse-grainedforentitiessuchas:{"nature";"Science";"Characters";"History";"Life";"Society";"Art";"Economy";"Sports"};Althoughitispossibletosolvesomeproblemsintheconstructionoftheknowledgemap,duetothecoarsenessandlackofprecision,It'sstillflawed.Inthispaper,wemainlyproposeandexperimentthemethodofusingconvolutionalneuralnetworktodividethefinegrainoftheentity.Thesourcesoftheentityareencyclopediaarticles.Wefirstobtaintherelevantinformationabouttheentryintheencyclopediathroughthewebcrawler,thenpreprocesstheentrydataandobtainthestructuredinformationandstoreitinthedatabase.Consideringtheinfo-boxofentitywiththesametypemayhavesimilarattribute-valuepairs,wewillmakeaheterogeneousnetworkswhichcontainstheattribute-valueinformationandextractthepathasneuralnetwork’sinput,finallywewillgiveapath-CNNbinaryclassificationmodelwhichisusedtopredictforanentitywhetheritbelongstoagivencategory.Attributewords:fine-grainedclassification,entity,encyclopediadata,convolutionalneuralnetwork,heterogeneousnetwork.前言 随着互联网技术的发展,人工智能已经成为了时下最热门的话题。计算机在实现智能化的道路上正在经历从感知智能到认知智能的过渡发展期。认知智能中最难解决的问题即为自然语言的语义理解问题。为了让计算机可以正确理解人类的语言,我们需要预先让计算机掌握足够充分的人类社会及各个领域的知识。正所谓“知识是智能的前提”,由此知识图谱的概念应运而生。知识图谱的构建是一项非常复杂的工程,其中建立知识的分类体系是知识图谱构建中最为基础的工作。已经有无数的学者在这个领域上做出了贡献,然而目前对于中文的实体分类工作目前仍然处于较为粗粒度的阶段,我们缺乏一个可行的准确的方案对于细粒度的分类要求进行处理。以百科词条为例,百科数据都有info-box(以键值对的形式表现出词条实体所拥有的主要属性,比如中国这个词条就有着诸如“主要语言-汉语”,“文字-汉字”,“首都-北京”等attribute-value对),由于具有相同类别的实体大多数的attribute应当是重复的,故而现有的分类算法大都选择attribute作为特征进行训练。在进行粗粒度的划分时,这种特征十分有效,但是当进行细粒度划分时,由于特征太少会导致分类结果很模糊,比如一本悬疑小说和一本武侠小说,会具有九成一样的attribute,在使用原有的方法进行分类就容易导致一本只属于武侠小说的书被同时分类到“悬疑小说”和“武侠小说”上。所以特征需要重新抽取。 在本文中,我们研究并实现了将卷积神经网络应用到实体分类中,以实现细粒度划分的目的。主要工作如下: (1)从互动百科以及百度百科上获得实体数据(主要爬取部分包括:实体名,info-box,开放分类,简介)。 (2)获取训练集:部分的实体的title具有人工标注的标签,抽取出人工标注的标签后与开放分类中已经存在的分类作比对,如果开放分类中存在此标签,那么将这个标签作为当前实体的分类并将此实体加入正训练集。 (3)对数据进行预处理并构建卷积神经网络的第一层后,设定卷积核大小等参数进行卷积操作。 第一章 绪论 本章节首先介绍了细粒度的实体分类算法的研究背景和意义,随后简单介绍了算法实现过程中的主要工作,在最后概括了下本篇论文的架构。1.1研究背景及意义 随着计算机技术的发展,近年来,人工智能已经成为了炙手可热的话题。计算机需要一个算法去帮助它理解事物和判断人类意图。然而计算机若是想要拥有智能,一个好的知识图谱时必不可少的。百度的技术副总裁王海峰在演讲时说过:知识与人工智能的价值就在于,让机器具备认知能力。每个人都有自己的知识面,这些本质上都是知识图谱。而对于人工智能来说,知识图谱是机器获得认知的前提。现如今,诸如Dbpedia[9]、Freebase[10]、Yago[11]和Probase[12]等知识图谱已经广泛应用于许多实际应用中,如知识推理、实体链接[14]和问答等。 分类体系是建立知识图谱的基石,在各大知识图谱的应用场景中,比如:从百度搜索结果时,在右侧的联想推荐同类搜索;旅游搜索地图时,为你自动推荐的附近景点和商家……这些都是建立在对知识进行分类的基础上。然而现有的搜索算法还是十分粗糙。在保证准确度的前提下最多只能进行200个分类。这显然并不够,以百度搜索的实际场景为例:若是一位用户在搜索《福尔模式探案集》这本悬疑小说的时候,搜索结果界面右侧的联想部分,若是图谱中分类的颗粒度不够小,则可能出现一本武侠小说和这本悬疑小说被归为一类,在假设这本武侠小说的搜索热度高一点的话,最终的结果就会是这本武侠小说出现在了联想推荐中。显然这个并不是推荐算法设计者想要的结果。这就是研究细粒度的分类算法的意义所在。 本文主要研究的是对于百科数据的实体分类。百科数据所拥有的info-box在两个词条所处的分类一样的时候,info-box中的attribute也会具有相似性,所以现有的很多算法都是通过attribute来进行训练。然而info-box中只出现了实体的主要属性,这代表着特征的充分性不够。在进行粗粒度的划分的时候行之有效,但是一旦分类数量一旦超过百个就会出现准确度大幅降低的问题。本文主要研究的内容就是扩充特征以及将卷积神经网络应用到实体分类中。能够有效提高分类的准确度以及降低粒度。1.2国内外研究现状由于大数据时代下,构建知识图谱的信息大都隐藏在非结构化的文本数据中,如何从这些文本数据中抽取满足特定需求的信息是第一步需要解决的目标。信息抽取从20世纪60年代于美国率先启动直到80年代步入繁荣期,近些年仍有学者不断对其研究改善,其中最为经典的Python的Scrapy爬虫以及Java中的Jsoup包。同时实体分类其实已然成为了一个较为成熟的算法,已经有很多学者就此作出了研究[1]。较为成熟的有:Toral和Mu等人提出了一种将百科全书归类为三种类型(位置、组织、人)的方法,使用了文章正文中包含的词,以及在WordNet中使用单词的hypernym信息作为外部知识库。最后,他们采用加权投票算法来确定每篇文章的类型[5]。Dakka和Cucerzan等人使用了监督机器学习算法的算法:SVMs和naiveBayes将百科全书分为四种类型(PER,ORG,LOC,MISC),由ACE定义。他们为每一篇文章使用了几个不同的特性:单词袋、文章结构、摘要、标题和实体[6]。在最近的一项研究中,Suzuki等人提出了一种基于神经网络的多任务学习方法[7],该方法将百科全书的文章分类为由Sekine等人提出的200种类型的文章。他们使用两组特性来构建模型,其中一个是Higashinaka等人提出的基线特征集。另一个是文章向量(即wordembedding)还有早些年有人对于基于半监督学习的多特征大规模实体分类[15],尝试解决了在大规模的数据下扩充训练正样本以提高分类准确度的目的,同时也尝试了对于样本中的长数据进行处理。近些年还有人尝试基于中文百科知识进行分类体系的构建[2],剖析实体和分类之间的从属以及分类之间的父子关系。也有将MLU联合推断方法应用到人物实体识别中[3]。这些都是对于分类算法的贡献。但大多数研究假设的是一组相对较小的粗粒度类型,在现有的研究中最多可达200种。1.2论文主要工作 本文以互动百科以及百度百科的数据为基础,从现有的实体名的人工标注的标签中抽取出细粒度的分类,随后构建训练集并通过卷积神经网络进行分类。主要工作如下:百科数据的爬取:从互动百科以及百度百科中爬取到实体数据,主要包括:info-box,实体名以及括号后的人工标注标签,简介以及开放分类。数据预处理:抽取出每个分类对应的attribute等数据并对现有数据进行梳理分表统计等工作,随后将其存入CSV文件,这将成为之后进行卷积神经网络的数据基础。构建异质网络以及Wordembedding:梳理entity(实体名)-value-attribute-category(分类)之间的 关系并构建相应的异质网络异质网络,随后采用metapath2vec的方 式生成词向量。这些词向量将成为之后path-CNN模型的输入的节点。卷积:使用path-CNN训练模型。对于每一个entity,判断其是否属于某个category。构造最多五百个entity->type的路径并将每一个路径作为向量作为模型的输入,最后对这些向量集进行卷积操作。最终输出应当为当前entity是否属于该category。准确性评估 采用类似Yago的方式对于试验结果的准确度进行评估,选取数个志 愿者以及抽取数量足够的检测集,使用投票的方法获得准确度评估结 果。1.3本文组织结构 本文主要分为六个章节,具体的章节结构如下:第一章为绪论。介绍了本次毕设算法的研究背景和意义,并对本毕业设计所做的主要工作做出简介。第二章大致描述了算法的主体流程以及训练出的模型的作用第三章是算法涉及到的相关技术的介绍,主要包括卷积神经网络,wordembedding等。第四章本章主要是对模型以及其中用到的核心算法进行详细说明和解释。介绍了相对于原本的分类算法,如何用卷积神经网络来降低分类的颗粒度。介绍了对于已有的传统算法是如何进行改进的。第五章本毕业设计的实验过程,了解了核心算法之后,就进行算法的开发与实现。第六章为总结与展望。总结并归纳算法的实验结果并对实体分类算法的未来工作进行了展望。相关知识介绍2.1神经网络“神经网络(neuralnetworks)是由具有适应性的简单单元组成的广泛并行互联的网络,它的组织能够模拟生物神经系统对真实世界所作出的交互反应”[Kohonen,1998]。下图为最为简单的神经网络模型:在这个模型中,神经元接受来自神经元a1到an的输入,每一个输入都带有一个权值表达该输入的重要性,其后对于每一个输入乘以权值并且进行累加。f代表当前神经元的操作函数,换句话说当前神经元的输出内容。3.2wordembedding 3.2.1表示学习所谓的表示学习,在深度学习领域指的是:以自然语言处理(NaturalLanguageProcessing,NLP)对于某一个模型样本输入,由于计算机难以直接得理解自然语言中的单词和语句的语义,表示学习的工作就是将原本对于计算机来说晦涩难懂的输入变成某个特定的,能被计算机理解的形式的输入,比如讲一个图形信息转化为点阵图,将词语转化成为词向量等。 3.2.1数学意义上的embedding从数学意义上来说embedding是这样的定义:若要将某个对象映射到另一个对象中。embedding就是一个单射的,结构保持(structure-preserving)的映射。所谓的结构保持就是指保留基本属性,需要根据X和Y所属的具体类型来定,比如现在需要将整数映射到有理数集中,最终依旧要保持这样的属性以及其他整数所具有的属性。那么我们定义;这样的一个映射就能被称为embedding。 2.2.2wordembedding在机器学习领域上的wordembedding(词嵌入)和在数学意义上的embedding有着很多不同之处。Wordembedding的目的在于将一个单词表示为一个能够代表当前的单词的属性的向量。这个所谓的当前的属性主要体现在近义词是否能够通过将两个词对应的词向量在cos距离上相近。比如单词“苹果”可能被表达为<0.6,0.8>,香蕉可能被表达为<0.55,0.75>这样一来将这两个向量作为坐标映射到一个x-y平面坐标系后就会发现。这两个点与原点相连形成的线的夹角非常小。这就代表着两个词比较相近。2.3metapath2vecMetapath2vec是一片发布在KDD-2017上的一片论文的工作。主要内容为对于一个HeterogeneousNetwork(异质网络)的表示学习算法的研究。在这个算法之前已经有了Deepwalk以及node2vec两种模型提出了对于网络的表示学习。而Metapath2vec主要的创新点为使用元路径(metapath)来指导寻找一个节点的相邻节点的集合时的游走,这也是这种算法命名的由来。所谓的元路径就是指一组连接多个节点的路径,但是这个路径包含着不同类型的节点,换句话说它可以表示出不同类型的节点相互联结的语义。这样解决了在就要有不同类型节点的异质网络中的节点表示问题。2.4卷积神经网络 2.4.1前馈神经网络前馈神经网络(FeedforwardNeuralNetwork)是神经网络的一种。在这种神经网络中,网络的每一层只会接受来自上一层的输入同时将自己的输出作为输入给下一层直到整个网络的输出为止,而不存在任何的反馈。直观的来说,这是一个有向无环图。2.4.2CNN卷积神经网络(ConvolutionalNeuralNetwork,CNN)[4]是一种经典的前馈神经网络。它的历史可以追溯到上个世纪五十年代,然而真正将卷积神经网络发扬光大的是在20世纪90年代出现的一种多层的人工神经网络:LeNet-5。当时是用作手写数字的分类,虽然LeNet-5难以处理复杂问题,但是已经趋近于现在的用于图像识别的成熟的CNN了。直到06年起,CNN的发展迎来了巅峰期,在图像识别领域取得了巨大的突破。卷积神经网络在进行图像识别的时候会有一个卷积核用于扫描图像中的像素点,对于每一次扫描都是输出层输入的一部分。以30*30的像素图为例,若是卷积核的大小为5*5,那么就会出现26*26个扫描结果,随后每一个扫描结果会在隐藏层中经过一个共享的权重(这个权重应当是一个5*5的权重矩阵)进行最后得到26*26个同一种特征。在实际的应用中会不止一个权重矩阵来学习到更加丰富的特征。下一步的操作为池化:对于每一个输出的26*26的特征矩阵,对其进行简化操作,最为经典的max-pooling方法为将矩阵中的每一个2*2的小块中的最大值作为代表输出。一个26*26的特征矩阵经过池化后会得到13*13的结果矩阵。最终将上述的一系列结果连接在一起输入最终的输入层,一个用于图像识别的卷积神经网络模型就完成了。而应用于文本的卷积网络主要的变化在于输入层,输入层不再是一个图像的矩阵而是由一个个词向量组成的向量矩阵,而卷积核的最小粒度也从像素点变为了一个词向量。 2.4.3Logistic分类器本次实验中,在Path-CNN模型最后获得的特征矩阵,我们采用了逻辑回归对于特征矩阵进行二分类。在逻辑回归中,逻辑函数的最为常用的是一个Sigmoid函数。Sigmoid函数是一个将向量映射到(0,1)区间的函数,在分类问题中,这个输出代表的是:对于一个特征向量的输入,其输出的是当前分类对象为当前分类的可能性。在最终的输出中,将可能性大于0.5的结果输出为1,否则输出0。我们定义为逻辑回归的输入,g代表曲线函数(Sigmoidfunction),g的表达式如下:该函数具有优美的S型曲线,并且输出是一个位于区间(0,1)的值,曲线效果如下图:我们用h表示逻辑回归的函数,带入Sigmoid函数后得到:其中代表参数向量,通过训练得出。代表矩阵的转置。经由该函数,我们将特征向量变换为一个0-1之间的值,最终和0.5作比较后输出二分类结果。2.5启发式规则(HeuristicAlgorithm)所谓启发式规则是一种思想,在各个专业领域有着截然不同的体现。直接的解释为:基于经验的技巧,用于解决问题,学习和探索。他基本等同于:实际经验估计,有依据的猜测以及常识。在解决问题的时候,首先采用过往的经验规则进行发现。特点在于利用过去的经验来选择行之有效的方法而不是系统的,以确定的过程来寻求解决方案。这种规则是和算法的思想相对立。所谓的算法是将所有的可能性进行尝试并且从中选择可行的答案。但是面对一个复杂的问题,算法的思想带来的只会是工作量的大幅度提升。而启发式规则的目的则是在有限的资源下,依据已有的历史经验选择进行的尝试,以减少寻找解决方案消耗的资源。当然人力有未逮之时,启发式规则也有失败的可能性,然而很多科学家的重大发现,都是使用简单的启发式规则。启发式规则在本文中的体现为发现细粒度分类同时标明训练集以及在最后的验证的过程中作为一种验证的方案。我们对于上述问题基于经验提出了两种方案:(1)从title-label中发现分类以及验证分类(2)从info-box中和类型相关的属性对中发现分类以及验证。这两种方式在下文中会分别在第三章和第五章进行详细的介绍。2.6本章总结 本章主要简要介绍了文本分类以及本次试验用到的相关技术。包括知识图谱,神经网络,中文文本的向量化(WordEmbedding以及Metapath2vec),卷积神经网络以及其中涉及的分类函数和启发式规则等内容。让人对本文所用技术有大致的了解,以及对之后的问题展开描述进行铺垫具体算法介绍3.1百科数据资源分析在在线百科全书中,基本上有四个地方可以为我们提供每个实体的类型信息。为了在百科全书的页面中区分不同的实体和相同的名称,每个实体都有标签,称为title-label。例如,哈利波特的页面有以下几个标题:哈利波特(J.K.罗琳的魔法系列小说),哈利波特(华纳兄弟制作的系列电影)和哈利波特(小说哈利波特的主角)。Info-box包含关于这个页面实体的一些结构化信息。Info-box中的内容的格式是属性和属性值。例如,周杰伦的信息盒包含了诸如(国籍、中国)、(职业、歌手)、(代表工作、双节棍)等信息摘要是用自然语言对页面的实体进行简要描述。通常,抽象中的第一个句子包含实体的类型信息。例如,周杰伦的第一句话是周杰伦(生于1979年1月18日)是台湾的音乐家、歌手、演员和导演。我们可以从摘要中得到一些关于周杰伦的细粒度信息,当然这可能产生一定的噪声,这些噪音是由错误的提取结果引起的。志愿者给页面的实体提供了大量的标签。例如,周杰伦有歌手、音乐家、音乐等志愿者的标签,我们把这些标签称为“群体标签”。显然,群体标签为实体提供了大量的候选类型信息,但许多标签并不是应该删除的类型信息,比如周杰伦的标签音乐。3.2算法大致流程图(1)算法工作流程图(1)所示为本次试验的主要工作流程:步骤1.获取正训练集:首先从百度百科等百科中抽取数据,其中数据的info-box将是重要的信息。随后选取正训练集。在百科数据中,同名实体为了区分会在标题给予其标签,就比如“张伟-花儿乐队主唱”由于有很多同名同姓的张伟,为了表明是这个张伟,词条的编辑人员会人工为其在标题上添加标签。这种带标签的词条就可以当做以后训练的正集。同时部分的词条的info-box中会有类型或者其同义词这样的attribute,比如有的游戏词条会有“游戏类型”这样的attribute。带有这样信息的词条也可以做为训练正集使用。随后将出现次数少于3次的弱类型以及未在开放分类中出现的词条过滤掉后得到的就为最终的细粒度类型(大约4000个)以及对应的已经拥有类型实体将作为正训练集。步骤2.统计类型及其关联的attribute:对于在前文提取的正训练集中出现类型,若是有个属性名(attribute)被三个属于当前类的实体所拥有,则称该类型拥有该attribute。步骤3.构建信息图:在为类型生成属性之后,我们将每个实体、它的属性和值、每种类型及其属性相关联构造成为一个信息图,如图(2):定义1:数据存储结构被定义为一个异质网络,其中:是节点集合,包括:所有的实体名的集合,:实体在info-box中的属性值(value),:实体在info-box中的属性名(attribute),:所有抽取出的类型的集合。是边的集合,其中指的是连接实体以及其拥有的属性值的边,指的是对于每一个attribute与其可能拥有的value之间的连接的边。代表类型以及归属于该类型的attribute之间的连线。步骤4.获取负训练集:我们定义了一些规则来生成负训练集(例如从信息图中得到的一对没有从属关系的实体和类型的配对)。实体和类型的属性可能相互重叠。如果有更多重叠的部分,它们之间的关系也应该更紧密。因此,一旦实体和类型之间的重叠属性的数量是当前实体拥有属性的30%-50%,我们就将这个<实体,类型>对作为负训练样本。步骤5.训练path-CNN模型:我们通过上两个步骤获得的训练集来生成路径,以作为训练CNN的输入,更多关于卷积神经网络的细节将在第四章介绍。步骤6.识别实体类型:最后,我们使用path-CNN模型为每个实体识别更多类型。例如,给定一个实体周杰伦有许多候选类型,如人、音乐家、歌手等,我们可以确定<周杰伦,人>,<周杰伦,音乐家>和<周杰伦,歌手>是正确的类型信息。图(2)异质网络示意图3.3词向量生成在由Dong等人提出的mate2path模型中,是通过基于元路径(MetaPath)的随机游走来获得节点的邻居节点集合,之后再使用异质的skip-gram模型进行节点embedding。元路径是一种通过一组关系连接多个节点类型的路径,可以用来描述异质网络中不同类型对象之间各种连接的不同语义关系。比如图(2)中:e1和e2具有相同的attribute(a1),则通过a1将两个entity连接在一起形成一条元路径,两个entity所语句的属性值被填充到entity和a1之间。下一条则是通过相同的type来形成元路径,原理与第一条类似。3.4模型输入根据图(2)中的异质网络示意图,定义两种路径的生成方案:方案1的形式为:实体名(e)->属性值(v)->属性名(a)->分类(t)。这种形式下,属性名a既出现在了当前实体的info-box中,同时也归属于给定的分类。即:分类(t)和实体(e)拥有相同的属性名(a)。方案2的形式为:实体名(e1)->属性值(v1)->属性名(a1)->属性值(v2)->实体名(e2)->属性值(v3)->属性名(a3)->分类(t)。考虑到一个实体的info-box中持有的attribute-value属性对是有限的,故而方案1可以给出的路径也是有限且远不够的,同时或许同当前实体拥有着同一个attribute的实体拥有着类似的特征。故而提出了方案2:在寻找路径的时候从当前实体(e1)出发,经由某个属性值(v1)走向其持有的一个一个属性名(a1)。寻找a1属性名另一个可能值(v2),通过v2寻找到另一个实体(e2)。e2需满足“与给定分类(t)有着相同属性名(v3)”。路径的后半段就是从e2走向t,类似方案1。生成模型输入的伪代码如下: 输入为目标要生成路径的entity-type对以及以及各个数据集。输出为最终生成的路径集合。最开始的时候抽取entity包含的attribute以及type包含的attribute,从中选择交集后将交集中的所有attribute以及其所对应的value以(entity->value->attribute->type)的格式输出。随后从第9行开始为按照方案2来寻找路径:在数据集中寻找到一个新的实体e2,该实体满足与旧实体有一个共享的attribute(a1),并且与目标类有一个共享的与a1不同的attribute(a3),随后将这些节点连接形成一个新的路径。路径示意图如下图中从e1出发走向t的红线部分(e1->v1->a1->v2->e2->v3->a3->t).图(4)方案二路径选取示意图在上一节中,我们已经介绍了如何通过metapath2vec模型生成词向量,在本次试验中,生成的词向量维度为128。对于每一个给定entity-type我们寻找500条路径。现在假设集合为一个给定entity-type的所有路径。那么对于任一,应当有着两种可能的形式,一种长度为4,来自方案1,一种长度为8,来自方案2。现在我们将一个拥有n个节点的路径做如下表示:其中n为路径长度。那么由方案一形成的路径应当表示为:,由方案2形成的路径应当表示为,为了保证输入的一致性,我们将方案1生成的路径也扩展为长度为8的路径,将空白处填0,结果如下。其中的0在真正输入的时候应当为一个有着128个元素的一维向量,每一个元素都为0。最终我们输入到cnn模型的数据应当为一个128*8*500的三维向量。其中128代表词向量长度,8为路径长度,500为路径数量。图(3)CNN模型示意图3.5模型详细介绍总的来说,模型使用三个卷积核从中提取特征,随后将所有的特征整合成为一个向量,经由分类器获得结果并输出。下面将介绍这个模型的详细信息。集合中包含着entity-type是否确实存在关联的重要信息。因此使用卷积网络提取所有的局部特征用于全局的预测。这个是卷积层完成的工作。在开始的时候选取三个不同长度的卷积核对输入的三维向量进行滑动操作。卷积核大小分别为6*128*1,4*128*1,2*128*1。随后将获取到的特征经由max-pooling操作整合到三个长度为500的向量中,向量的每一个元素都代表一条路径在该卷积核下提取出的特征。卷及操作涉及一个filter,代表大小为的实数矩阵,其中代表卷积核包含的节点的数目,代表的是节点向量的长度,以大小为6*128*1的卷积核为例,则。我们现在为500层的输入的每一层的词向量从上至下标记为,并定义为卷积核滑动过程中得到的小窗口,其中为最上面的向量的下标,为最下面的向量的下标。即表示这样的一个子路径:。卷积核每一次滑动都将获得一个小窗口,就以6*128*1的卷积核为例,滑动第i次时获得的小窗口为,随后我们使用生成一个特征:,其中是偏移量,而是非线性函数,比如双曲正切函数。每一个路径经由卷积核为6*128*1的卷积操作后将生成的特征,500个路径最终生成3*500个特征,在池化层经由最大池化处理后获得一个长度为500的特征向量。所谓的最大池化处理就是一种简单的从三个待选特征中选择最大值作为池化后的输出。即:,选用最大池化的理由是:经由如此的操作,能够过滤掉0项。我们已经描述了通过一个卷积核获得特征的方法,为了使获取的特征更加全面,我们又设计了多个不同大小的卷积核来捕获多种特征。最终生成了三个长度为500的特征向量。最后我们将三个特征向量进行全连接获得一个新的一维向量,经由sigmoid分类函数获得最终的结果。实验4.1概述首先我们获取到中国最大的百科全书中的词条信息约800万条,对其中的info-box,title中的label等属性进行抽取整合后获得数据集如下:图(5)抽取百度百科数据预处理结果随后如同第三章的描述那样通过title-label来获取正训练集。由于现在大部分的研究并没有做到细粒度下的分类,经过筛选我们选择了TianXingWu于14年提出的一种关于百科词条分类的一种算法(InstanceTypeRanker)作为我们实验的baseline。该算法使用的是一种基于统计学的思想,并且在文章的末尾,作者指出该算法在试用于细粒度的分类下也有可观的效果,故而我们选取了这种算法。在实现baseline后我们再使用metapath2vec算法将存于异质网路中的分类,实体以及info-box属性节点转换成可以被计算机存取处理的节点向量,并根据第四章所描述的算法构成卷积神经网络的输入。将模型训练完成后进行验证并且评估准确度并与baseline做对比。4.2baseline图(6)Baseline:InstanceTypeRanker示意图上图所示为baseline的示意图。简单的来说,baseline在获取到数据集后,对于每一种分类所关联的attribute进行了统计,对于每一个attribute来说,若其关联到的分类越少,那么该attribute在那些分类中越有话语权。体现到结构化的数据上就是一个概率。随后对于一个实体,其拥有数个attitude,每一个attribute都会对其关联到的分类有个概率,将所有的attribute-type的概率按type相加,最终得到entity-type的概率。随后将概率高于某个阈值的分类作为当前实体的分类。图(7)InstanceTypeRanker权值计算上图为baseline的概率计算方式示意图。显然一个attribute所属的类别越少,其在那几种类别中越具有代表性故而对于,其中为attribute的集合。我们定义的权重:其中指的是具有的类型的数量。随后我们定义权值实体I1通向其各个attribute之间的权值如下:其中N为i1所具有的的attribute的编号的最大值,编号从1开始,指的是编号为k的attribute。而每一个attribute指向其所具有的的分类的权值为:其中指的是含有下标为k的attribute的数量。那么对于给定的实体,其属于给定类的概率为公式为:其中M为和所拥有的attribute的数量。t为attribute的编号,从1开始,最大为M。经过试验后获得的baseline的结果如下:图(8)Baseline分类结果我最后将概率统计结果高于0.2的分类作为当前entity的分类结果。上图中的每一行的第一项为entity,第二项为分类,第三项为概率。可以看到分类的结果准确度十分的不理想,经常将其真正分类分到相似分类中,也就是说该算法依旧无法区分相近分类的实体。4.3Path-CNN实验情况 4.3.1参数设定WordEmbedding的参数:在第四节中提到我们使用metapath做词向量的生成。它通过meta-path来指导随机路径的游走随后根据kip-gram来生成词向量。我们选取了两种meta-path的节点构成,分别为:“EVATAVE”以及“EVAVE”。同时算法中还使用了如下的参数设定:平均每个节点的游走次数W:100;游走步数长度L:500;生成的词向量的最终长度D:128;其他的参数都采用默认值。卷积神经网络模型参数:每一次输入是固定维度的词向量集合,其中path的选取在第四章有详细的介绍。最终的输入结果为一个8*128*500的矩阵。其中128为WordEmbedding的结果的长度;8为选取的路径长度;500为随机选取的路径数量。此外还有其他的参数设定如下:卷积核大小:分为三个,分别为2*128*1,4*128*1,6*128*1;抽取数据集中的80%作为训练集以及将剩下的20%作为验证集;filters数量n:32;路径向量矩阵个数s:500;Optimizer(优化器)f:Adam;Learningrate(学习率):1e-5;mini-batchsizeb:64。 4.3.2实验结果 通过来自标题标签(title-label)和info-box的分类数据,我们最终筛选出4518种细粒度分类。随后通过训练的path-cnn模型为7,976,064个实体键入类型。平均每一个实体被识别到三种类型。准确度评估:我们主要从三个方面来评估是否正确分类分类:启发式规则,摘要和群体标签。其中群体标签在百度百科中每一个词条有一个专门的词条标签栏作标注。下图为词条“中国”在百度百科中的群体标签。图(10)百度百科中中国词条群体标签由于个人无法对于所有的已分类实体给出其可信的分类准确度评估,为了评估模型的准确性,我们采用了类似Yago的标注方式。我们邀请3个志愿者来参与此次对于分类结果的正确性的标注过程。随机抽取1000条分类数据,对于分抽取结果中每一个给出的entity-type对(这些都是分类结果),志愿者需要给出‘正确’,‘错误’以及‘不确定’三种结果中的一个。 随后对于现有的baseline的分类结果采用相同的评估过程来评估准确性。 表(1)显示了准确度评估的结果结果表明我们的模型我们的模型生成的分类数量高于InstanceTypeRanker,精度也获得了提高,这表明了我们的模型在准确性上的有效提高。模型类型数量来源分类结果数量准确度InstanceTypeRanker1078info-box191,77090.51%摘要732,35273.39%群体标签3,159,48268.95%Path-CNN模型4,518title-labels300,31592.43%info-box191,77090.51%摘要9,008,44584.79%群体标签18,990,84480.46%表(1)当前存在的模型和我们的模型的准确度对比和DBpedia的重合度比较:DBpedia是一个已有的知识图谱,它从维基百科中获取结构化的资料,并将其他渠道的资料相结合后与维基百科相连接,其中提供了为样本标注的功能,为对于实体也有其标注。我们将生成的类型信息(25,651,022不同类型的信息)和中文DBpedia[13]作比较图(2)显示了比较结果以及我们获得的类型信息和DBpedia的重合程度。(a)数据数量 (b)数据重合度我们的数据DBpedia重合度分类数量4,518170类型重合数82实体数量7,976,064876,725实体重合数425,422分类结果数量25,651,0221,534,268分类结果重合数153,642表(2)重合度比较根据比较结果,我们模型获得的类型信息的数量明显高于已有的知识图谱(DBpedia),重叠部分教少。类型信息粒度的比较:高质量的类型信息不仅需要高精确度,而且需要更细粒度的类型。如表(2)所示,DBpedia有中国版本的实体,但是由于类型的数量非常少,所以大量的实体被键入为粗粒度类型。例如,周杰伦在DBpedia只是被判断为实体“人类”,但更精细的音乐家或歌手类型将更合适、更有用。在这里,我们比较了从DBpedia中获得的实体类型的粒度。我们从重叠的实体中随机选择了1000个实体,并将实体及其相应类型作为样本交给三个志愿者进行手动比较。对于每一个样本,志愿者都将其标记为‘更精细’(Better)、‘更粗糙’(Poorer)和‘相似’(Similar)。例如,对于周杰伦的实体,我们获得的类型是人、音乐家和歌手,而在DBpedia中只有一种类型的人。在这种情况下,所有的志愿者都会选择“更精细”的标签。图(11)显示了比较结果。与DBpedia相比,我们百分之七十以上的实体都有更细粒度的类型。图(11)和DBpedia进行粒度对比 总结在本文中,我们介绍了一种基于卷积神经网络(名为Path-CNN)的二分类模型,为来自在线百科全书(百度百科)的实体提供了一种高粒度的分类信息的输入。我们构建了一个异质网络,用于对于数据中的每一个节点进行wordembedding。与其他现有的知识图谱和实体分类模型相比,我们提供的方法有着更加高质量,更加全面的数据以及更加细粒度的分类结果。未来展望:我们将继续尝试将实体的文本信息加入到特征提取的候选集当中,同时考虑为当前已有的分类构建一个层次模型,从类型之间的关系上发掘更多的信息:例如将‘歌手’分类并入‘人类’分类的子集。同时我们还发现提取出的四千多中的分类中粒度分布很不均匀,有的分类粒度很细(比如‘古罗马皇帝’这样的分类,就太过细了,但是在模型训练的过程中依旧会有不少实体分为这个本不属于它的分类)导致在分类的时候很容易产生噪声,在未来的工作中可以考虑对分类本身进行清洗工作。参考文献郭喜跃.面向开放领域文本的实体关系抽取[C].武汉.2016[2]RenjieLou.TaxonmyInductionResearchonKnowledgeBasefromChineseEncyclopedia.浙江.浙江大学.2016.[3]Liwei,XiaoYanghua,WangWei.PeopleEntityRecognitionBasedonChineseKnowledgeGraph[J].ComputerEngineering,2017,43(3):225-231,240.[4]Kim,Yoon.Convolutionalneuralnetworksforsentenceclassification[C].InProceedingsofthe2014ConferenceonEmpiricalMethodsinNaturalLanguageProcessing(EMNLP).2014[5]AntonioToral,RafaelMunoz.AproposaltoautomaticallybuildandmaintaingazetteersforNamedEntityRecognitionbyusingWikipedia[C].Eacl.2006[6]Dakka,W.,Cucerzan,S.:AugmentingWikipediawithNamed

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论