目录
导读:发展是平台永恒的话题,以电商平台为例,在基于用户身份、历史行为挖掘偏好,以实现精准搜索和推荐结果展示之外,为了激励用户在平台进行更多采购,需要专门构建强化采购激励、拓宽采购品类的场景。本文以知识图谱为切入点,重点讲解了阿里巴巴B2B在电商结构化信息挖掘和场景应用等方面的经验。
知识图谱并不是一个全新的概念,它经历了知识工程、专家系统、语义网络等多种形式。
01、知识工程与专家系统
在1977年第五届国际人工智能会议上,美国斯坦福大学计算机科学家Edward A. Felgenbaum发表的文章The art of artificial intelligence. 1. Themes and case studies of knowledge engineering,系统性地阐述了“专家系统”的思想,并且提出了“知识工程”的概念。他认为:“知识工程利用了人工智能的原理和方法,为那些需要专家知识才能解决的应用难题提供求解的一般准则和工具。在1984年8月全国第五代计算机专家讨论会上,史忠植教授提出:“知识工程是研究知识信息处理的学科,提供开发智能系统的技术,是人工智能、数据库技术、数理逻辑、认知科学、心理学等学科交叉发展的结果。”
专家系统最成功的案例是DEC的专家配置系统XCON。1980年,XCON最初被用于DEC位于新罕布什尔州萨利姆的工厂,它拥有大约2500条规则。截至1986年,它一共处理了80 000条指令,准确率达到95%~98%。据估计,通过减少技师出错时送给客户的组件以加速组装流程和增加客户满意度,它每年为DEC节省2500万美元。
一个典型的专家系统如图1所示,其特点主要包括:
-
在特定领域里要具有和人一样或者超出人的高质量解决困难问题的能力;
-
拥有大量、全面的关于特定领域的专业知识;
-
采用启发的方法来指导推理过程,从而缩小解决方案的搜索范围;
-
能够提供对自己的推理决策结果进行解释的能力;
-
引入表示不同类型知识(如事实、概念和规则)的符号,专家系统在解决问题的时候用这些符号进行推理;
-
能够提供咨询建议、修改、更新、拓展能力,并能处理不确定和不相关的数据。
图1 专家系统架构
可以看到,专家系统大量依靠领域专家人工构建的知识库。在数据量激增、信息暴涨的当下,人工维护知识库的方式在效率和覆盖率上都难以达到令人满意的水平。另外,推理规则的增加也增加了系统的复杂度,从而导致系统非常难以维护。
02、语义网络与知识图谱
1. 语义网络
伴随着Web技术的不断发展,人类先后经历了以网页的链接为主要特征的Web 1.0时代到以数据的链接(Linked Data)为主要特征的Web 2.0时代,目前Web技术正逐步朝向Web之父Berners Lee在2001年提出的基于知识互联的语义网络(semantic Web),也就是Web 3.0时代迈进。
在Web 2.0时代,互联网发展迅猛,数据的规模呈爆发式增长,基于统计的机器学习方法占据主流,并且在各个领域取得不错的成果。例如搜索引擎,搜索的流程大致可拆分为基于用户查询、召回、L2R这3个过程,一定程度提升了用户获取信息的效率。但是这种服务模式仍然是把一系列信息抛给用户,用户最终还是需要对数据进行筛选、甄别,才能拿到自己最需要的信息。因此这种服务方式在效率、准确率上都有缺陷。
语义网络的目标是构建一个人与机器都可理解的万维网,使得网络更加智能化,在解析用户查询意图的基础上,提供更加精准和快速的服务。传统的语义网络要做到这一点,就需要把所有在线文档构成的数据都进行处理并存放在一起,形成一个巨大、可用的数据库。
这么做需要强大的数据处理和Web内容智能分析能力:首先就需要对这些Web数据进行语义标注,但是由于Web数据具有体量巨大、异质异构、领域范围大等特点,所以如何自动给Web上的网页内容添加合适的标签成为技术痛点之一。另外,面对已经标注过的Web数据,机器如何进行思考和推理也是亟待解决的问题。
由于上述问题的存在,在语义网络提出后的10年间,其没有得到大规模应用,但是在对其研究的过程中,积累沉淀了成熟的本体模型建模和形式化知识表达方法,例如RDF(Resource Description Framework)和万维网本体语言(Web Ontology Language,OWL),这为后续知识图谱的出现奠定了基础。
2. 知识图谱
① 知识图谱概述
知识图谱由Google公司于2012年5月16日第一次正式提出并应用于Google搜索中的辅助知识库。谷歌知识图谱除了显示其他网站的链接列表,还提供结构化及详细的相关主题的信息。其目标是提高搜索引擎的能力,希望用户能够使用这项功能来解决他们遇到的查询问题,从而提高搜索质量和用户体验。
知识图谱是结构化的语义知识库,用于以符号形式描述物理世界中的概念及其之间的关系。其基本组成单位是“实体-关系-实体”三元组,以及实体及其相关属性-值对,实体间通过关系相互连接,构成网状的知识结构。随着知识图谱构建规模越来越大,复杂度越来越高,开始出现实体、类别、属性、关系等多颗粒度、多层次的语义单元,这些关联关系通过统一的知识模式(Schema)抽象层和知识实例(Instance)层共同作用构成更加复杂的知识系统。
从定义中可以看到,知识图谱是一个语义知识库,具备足够的领域知识,其最重要的组成成分是三元组。三元组通常可以表示为G=<Eh,R,Et>,其中R表示知识图谱中实体间所有关系的集合,例如关系“is_a”。一般情况下,关系都是带方向且有明确语义的,反之则关系不能成立,例如“阿里巴巴is_a公司”。也有一些关系是双向的,例如“张三is_friend_of李四”,反之亦然。对于这种双向关系,通常情况会对调实体位置,拆分为2个三元组分别存储。实体Eh、Et⊆E={e1,e2,...,e|E|}分别表示头实体(Head Entity)、尾实体(Tail Entity),两个实体共同用于表征关系的方向。
实体及其属性可以用一种特殊的关系三元组表示,例如“has_a”。实体和属性的界线比较模糊,一般从业务角度出发,在设计Schema的时候,如果认为某类属性具有一类概念的共性,同时在后面的推理(例如路径游走时新关系发现)中能够发挥作用,就可以把它作为实体对待。还有一类属性,比如年龄、身高,这类单纯描述实体特征的最细粒度属性,则一般被设计为属性。
② 常见开放知识图谱
WordNet是由普林斯顿大学认知科学实验室于1985年构建的一个英文电子词典和本体知识库,采用人工标注的方法构建。WordNet主要定义了名词、形容词、动词和副词之间的语义关系,包括同义关系、反义关系、上下位关系、整体部分关系、蕴含关系、因果关系、近似关系等。比如,其中的名词之间的上下位关系,“水果”是“苹果”的上位词。
Freebase是由创业公司MetaWeb于2005年启动的一个以开放、共享、协同的方式构建的大规模链接数据库语义网络项目,2010年被谷歌收购并成为谷歌知识图谱中的重要组成部分。Freebase主要数据源有Wikipedia、世界名人数据库(NNDB)、开放音乐数据库(Music-Brainz)以及社区用户的贡献。它主要通过三元组构造知识,并采用图数据存储,有5800多万个实体和30多亿个实体间关系三元组。2016年正式关闭,数据和API服务都迁移至Wikidata。
Yago是由德国马普研究所研发的链接知识库,主要集成了Wikipedia、WordNet和GeoNames这3个数据库中的数据。Yago将WordNet的词汇定义与Wikipedia的分类体系进行融合,从而使得Yago相对于DBpedia有更加丰富的实体分类体系,同时Yago还考虑了时间和空间知识,为知识条目增加了时间和空间维度属性描述。目前Yago已经包含1.2亿条三元组知识,是IBM Watson的后端知识库之一。
OpenKG是一个面向中文领域的开放知识图谱社区项目,主要目的是促进中文领域知识图谱数据的开放与互联。OpenKG上已经收录了大量开放中文知识图谱数据、工具及文献。目前开放的知识图谱数据包括百科类的zhishi.me(狗尾草科技、东南大学)、CN-DBpedia(复旦大学)、XLore(清华大学)等。
当然,还有一些垂直领域知识图谱,这类知识图谱不像上述通用领域知识图谱那样所涉内容广而全。垂直领域知识图谱主要面向特定领域的特定知识、应用场景进行构建,比如医疗领域的Linked Life Data、电商领域的阿里巴巴商品知识图谱和场景导购知识图谱。
03、知识图谱构建
知识图谱构建是一个系统工程,涵盖多种信息处理技术,用于满足图谱构建过程中的各种需要。典型的图谱构建流程主要包括:知识抽取、知识推理和知识存储。
知识表示贯穿于整个知识图谱构建和应用的过程,在不同阶段知识表示具有不同的体现形式,例如在图谱构建阶段,知识表示主要用于描述知识图谱结构,指导和展示知识抽取、知识推理过程;在应用阶段,知识表示则主要考虑上层应用期望知识图谱提供什么类型的语义信息,用以赋能上层应用的语义计算。
本节重点讲述面向应用的知识图谱表示。
1. 知识抽取
知识抽取是知识图谱构建的第一步,是构建大规模知识图谱的关键,其目的是在不同来源、不同结构的基础数据中进行知识信息抽取。按照知识在图谱中的组成成分,知识抽取任务可以进一步细分为实体抽取、属性抽取和关系抽取。
知识抽取的数据源有可能是结构化的(如现有的各种结构化数据库),也有可能是半结构化的(如各种百科数据的infobox)或非结构化的(如各种纯文本数据)。针对不同类型的数据源,知识抽取所需要的技术不同,技术难点也不同。通常情况下,一个知识图谱构建过程面对的数据源不会是单一类型数据源。
本节重点介绍针对非结构化文本数据进行信息抽取的技术。如上文所述,实体和属性间的界线比较模糊,故可以用一套抽取技术实现,所以下文如果不做特殊说明,实体抽取泛指实体、属性抽取。
① 实体抽取
实体抽取技术历史比较久远,具有成体系、成熟度高的特点。早期的实体抽取也称为命名实体识别(Named Entity Recognition,NER),指的是从原始语料中自动识别出命名实体。命名实体指的是具有特定意义的实体名词,如人名、机构名、地名等专有名