工业级知识图谱:方法与实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.3 商品知识建模实践

在工业应用的场景中,构建行业知识图谱的难度仍然很大,其中一项最基本和重要的工作是对行业数据的知识建模,也就是根据行业数据特点和智能知识服务需求,建立行业知识图谱的概念模型,为行业知识图谱构建和行业大数据的知识组织和服务奠定良好基础。

知识本体构建阶段分为候选术语抽取、术语置信度计算(基于图传播算法)、概念上下位关系生成、验证与纠错四个任务,后两个任务需要反复迭代,直到满足各阶段设置的结果性能指标后,最终的输出成果为结构化的分类体系。图2-4给出了本体构建流程图。

图2-4 本体构建流程图

2.3.1 术语抽取

术语抽取的研究任务是从领域语料数据中,抽取出可能成为概念或属性的候选词语并进行量化评价,图2-5所示。

图2-5 术语抽取示意图

领域术语抽取问题可形式化定义如下:给定一个特定领域的文档集D作为输入,术语抽取的目标是首先从D中抽取出候选的术语,形式化地表示为T={c1,…,ci,…cM},接着对每一个候选术语ciT,输出它的置信度得分si。置信度得分si表示ci属于语料D的领域术语的置信程度。

通过观察可以发现,术语低频问题使得语料难以提供可靠的统计信息以帮助术语抽取,是当前术语抽取相关研究中面临的一个主要挑战。考虑到通用分词很难识别术语,而且分词错误会传递,影响识别效果,我们采用基于图传播的方法[11]研究领域术语抽取问题,包括三个主要部分。

● 候选术语抽取:从输入的领域相关语料中,使用模板匹配的方法自动抽取出语料中存在的名词短语,作为候选术语集。

● 术语语义图构建:通过基于点互信息的方法,计算每个候选术语的词组性。进一步地,基于在线百科语料库,采用词向量表示学习的方法学习得到候选术语的语义向量表示。最后,基于词组性度量和候选术语间的语义关系度量,构建一个以候选术语为节点、术语间的语义相关度为边的“术语语义网络”。

● 基于置信度传播的术语排序:基于术语语义网络,提出一种置信度传播算法,对候选术语进行排序,最终筛选出排名高的候选术语作为抽取结果。

下面,依次对方法的关键模块予以介绍。

1.候选术语抽取

候选术语抽取从输入的领域语料中抽取出候选的术语。首先,对输入的文本语料进行分词处理,得到文本的词序列表示,并对该词序列进行词性标注。通用的实体词性标注工具均可用于以上的词性标注,如NLTK、PosTagger和ANSJ等。相关研究表明大多数术语是由名词、形容词和动词组成并辅以名词结尾的名词短语。因此,基于已标注词性的词序列,抽取出其中的所有k元以内的名词短语作为候选术语。具体地,采用Justeson和Katz在1995年提出的词性模板匹配名词短语,即抽取出所有k元以内并且满足以下词性模板的短语作为候选术语:((A|N+|(A|N*NP)?(A|N*N。其中,ANP分别代表形容词、名词和介词。所有抽取出的候选术语构成候选术语集T

2.术语语义图构建

得到候选术语集后,如何准确度量其术语置信度并依此排序是术语抽取的核心。除了自身的词组性,术语间还具有语义相关性,为了更好地表示和综合这些性质,对候选术语进行排序,我们采用了术语语义网络,形式化地定义如下。

领域语料D对应的术语语义网络(Terminology Semantic Graph)是一个全连通的带权无向图G=(VE),任意一个顶点集V中的顶点ci代表一个T中的候选术语,即ciT,且对应一个词组性值ph(ci),代表候选术语ci的词组性;任意一条边集E中的边(cicj)的权重ecicj)=SR(cicj),代表候选术语cicj间的语义相关度,即这两个术语在语义上的相近程度。

一个全连通的术语网络存储着每一对候选术语间的语义相关度。但是在实际操作中,我们引入超参数θ对术语网络进行剪枝操作,即只有当一条边满足条件SR(cicj)>θ时,才在术语网络中保留该边。这种剪枝操作只保留了语义相关度较高的术语间的语义相关度,主要出于以下两方面的考虑:1)在一个全连通的术语网络上实施置信度传播算法的时间复杂度太高;2)较低语义相关度的术语对在置信度传播算法的过程中会引入噪声,干扰传播过程。接下来将重点介绍术语语义网络构建的核心部分,即词组性值和语义相关度的计算。

(1)词组性值。词组性值量化地度量一个多词组合在语法和语义上为正确的词组或短语的可能性。度量多词组合的词组性值的主要思想一般为:如果几个单词搭配在一起所组成的多词组合在大规模语料中的实际出现频率,大大超出这几个单词偶然搭配在一起的理论概率,则该多词组合很有可能是一个合法的词组或短语。实际出现频率超出理论出现概率的程度越多,则该多词短语的词组性越强。我们采用一个简单易行的基于点互信息的方法度量候选术语的词组性值。

(2)语义相关度。候选术语间的语义相关度很难利用领域语料中的简单统计信息来捕捉,传统的基于词共现的计算语义相关度的方法通常依赖大规模的文本语料,而低频问题使得单纯的词共现无法充分捕捉到术语间的语义相关度。为了解决这一问题,采用词向量方法,利用在线百科语料提供的大规模文本信息,训练得到候选术语的低维向量语义表示。词向量将每个单词表示为低维的实值向量,两个单词之间的语义相似性可以通过其对应向量间的余弦距离来反映。

通过基于点互信息的方法计算每个候选术语的词组性。进一步地,基于在线百科语料库,采用词向量表示学习的方法学习得到候选术语的语义向量表示。最后,基于词组性度量和候选术语间的语义关系度量,构建一个以候选术语为节点、术语间的语义相关度为边的“术语语义网络”。

3.基于置信度传播的术语排序

在术语网络中,具有高置信度值的术语可以将其置信度值传播给与它具有高语义相关度的相邻节点,从而帮助发现更多潜在的其他术语。因此,我们提出一个基于术语网络的迭代算法,该算法首先为术语网络中的每个节点赋一个初始置信度值,之后通过置信度传播,迭代地更新每个节点的置信度值,并最终通过有限次的迭代得到术语的置信度结果。

如图2-6所示,在术语传播算法中,每个候选术语的初始置信度值由一个种子术语集合S决定,该集合包含一系列领域语料D中已知的术语。将顶点c在第k次迭代中的置信度值形式化表示为confkci),并将c的初始置信度值表示为conf0ci)。若候选术语c在种子集合中,即conf0ci)=1,否则令conf0ci)=0。其中,术语种子集合可以人工构建也可以自动构建。例如,对于一些武器装备等,可以自动地从维基百科相应的类别中抽取。而对于一些标准,则需要人工辅助。在执行过程中,采用人工与自动技术相结合的方法构建尽可能准确的领域种子术语集合。下面重点介绍传播过程。

图2-6 术语排序流程图

迭代传播需要解决两个关键问题:一是一个顶点应该从哪些其他顶点接收置信度值?二是一个顶点从另一顶点接收多少置信度值?相应地,首先定义如下两个函数:

● 传播集合:该函数形式化表示为Aci),它决定在每次迭代中顶点ci应该从哪些顶点接受置信度值的传播,并返回该集合。

● 传播分数:该函数形式化表示为vskcicj),代表在第k次迭代中,顶点ci传播给顶点cj的置信度值。

并设计传播算法的迭代过程如下:

式中,Z为归一化因子。核心思想为:在每一轮的迭代中,每一个在集合Aci)中的顶点都需要向顶点ci传播其置信度值,顶点ci在下一轮迭代中的置信度值取决于在本轮迭代中从Aci)中的顶点处所接受的平均传播分数。

传播分数是术语传播算法的核心,形式化地定义传播分数:

vsk(cj,ci)=ph(cie(ci,cj)·confk(ci)

vsk(cj,ci)=ph(cje(ci,cj)·confk(cj)

式中,ph(ci)·ecicj)决定了从顶点cj到顶点ci的传播“权威性”。如果传播顶点cj具有较高的词组性值(表明传播者自身的可信度高)或者传播顶点cj和被传播顶点ci的语义相关度较高(表明传播者对被传播者的了解越多),则表明相较于其他传播顶点,顶点cj在决定顶点ci是否为术语的传播中具有较高的权威性,那么顶点cj就可以将自身较多的置信度值传播给顶点ci

至于传播集合Aci),我们将其定义为ci在术语网络中的邻居节点集合。由于一个术语可能与其他术语以高语义相关度的边相连接,所以在传播过程中,与其他顶点相比,一个术语更倾向于从它的术语邻居处获得高的传播分数。

2.3.2 商品概念及上下位关系生成

概念及上下位关系生成需要解决的主要问题是概念抽取和层次关系学习,如图2-7所示。

在上文中抽取了领域语料中的所有候选术语,然后通过图传播方法对术语排序并得到其置信度,采用AC自动机将所有术语与标题进行链接(多模匹配),并根据术语排序的置信度筛选出概率最大的术语作为标题的概念。在实验过程中我们发现:1)很多父类字符串会以后缀的形式出现在子类中,如父类-酒、子类-红酒;2)在部分领域商品标题中,子类的限定词和父类字符串并不直接相连,需要单独抽取出子类限定词。因此,我们目前采用简单直观的方式生成概念的上下位关系:一是基于substring的直接方法,二是采用DBSCAN算法聚类出子类的限定词的方式,构建概念上下位关系。

图2-7 概念上下位关系生成示意图

以上算法构建分类是自动化流程,难免存在错误,最后增加人工纠错的迭代优化机制。迭代几次,以人工纠错找不到问题为终止条件。