奎克的藏经阁 · MinerU 解析内容

人工智能与大数据技术导论

490 个 PDF 物理页 · 本页显示文件第 381–390 页

PDF 物理页索引 380

文件中的第 381 页 · 印刷页码:364

接下来,将构建LinearClassifier,在训练集中训练该模型,并在评估集中对其进行评估。

结果如图10-59所示。

人工智能与大数据技术导论

364

PDF 物理页索引 381

文件中的第 382 页 · 印刷页码:365

  1. 深度神经网络(DNN)模型

上述模型是一个线性模型,效果不错。我们可以使用DNN模型实现更好的效果吗?将LinearClassifier 切换为DNNClassifier,检验一下 DNN模型的效果。

结果如下:

第10章 神经网络

365

PDF 物理页索引 382

文件中的第 383 页 · 印刷页码:366

人工智能与大数据技术导论

  1. 在 DNN 模型中使用嵌套

下面我们使用嵌套列来实现DNN模型。嵌套列会将稀疏数据作为输入,并返回一个低维度密集矢量作为输出。从计算方面而言,embeddingcolumn通常用于在稀疏数据中训练模型最有效的选项。在下面的代码中,我们将数据投射到二维空间的embedding column来为模型定义特征列,并定义符合以下规范的DNNClassifier。

●具有两个隐藏层,每个包含20个单元。

●采用学习速率为0.1的AdaGrad优化方法。

●gradient\_clip\_norm 值为 5.0。

注意:在实际工作中,我们可能会将数据投射到2维以上(比如50或100)的空间中。但就目前而言,2维是比较容易可视化的维数。

366

PDF 物理页索引 383

文件中的第 384 页 · 印刷页码:367

结果如下:

上述模型使用了embeddingcolumn,而且似乎很有效,但我们并不了解内部发生的情形。如何检查该模型确实在内部使用了嵌套呢?首先,我们来看看该模型中的张量:

第10章 神经网络

classifier.get\_variable names()

367

PDF 物理页索引 384

文件中的第 385 页 · 印刷页码:368

人工智能与大数据技术导论

结果如图10-60所示。

从上面的结果中,我们可以看到这里有一个嵌套层:dnn/input\_from\_feature\_columns/inputlayer/terms\_embedding/...。嵌套是一个矩阵,将一个54维矢量投射到2维空间:

结果为:

现在,我们来看看实际嵌套空间。我们仅使用10步来重新训练该模型(这将产生一个糟糕的模型)。运行下面的嵌入可视化代码。

368

PDF 物理页索引 385

文件中的第 386 页 · 印刷页码:369

结果如图10-61所示。

下面看看能否优化该模型以改进其效果。我们可以更改超参数或使用其他优化工具,比如Adam,也可以向informative terms中添加其他术语。此数据集有一个完整的词汇表文件,其中包含30716个术语,该文件为https://storage.googleapis.com/mledu-datasets/sparse-data-embedding/terms.txt,如图10-62所示。我们可以从该词汇表文件中挑选出其他术语,也可以通过categorical\_column\_with\_vocabulary\_file特征列使用整个词汇表文件。

训练代码如下:

第10章 神经网络

369

PDF 物理页索引 386

文件中的第 387 页 · 印刷页码:370

结果如图10-63 所示。

人工智能与大数据技术导论

370

PDF 物理页索引 387

文件中的第 388 页 · 印刷页码:371

从上面的几个例子中,我们获得了比原来的线性模型更好且具有嵌套的DNN模型,但线性模型也相当不错,而且训练速度快得多。线性模型的训练速度之所以更快,是因为没有太多要更新的参数或要反向传播的层。在有些应用中,线性模型的速度可能非常关键,或者从质量的角度来看,线性模型可能完全够用。在其他领域,DNN提供的额外模型的复杂性和能力可能更重要。另外,在训练LinearClassifier或DNNClassifier时,需要根据实际情况使用稀疏列。TF提供了两个选项:embedding column 或 indicator\_column。在训练 LinearClassifier 时,系统在后台使用了embeddingcolumn。在训练DNNClassifier时,我们必须明确地选择embedding\_column 或 indicator\_column。

第10章 神经网络

371

PDF 物理页索引 388

文件中的第 389 页 · 印刷页码:未识别

第11章

知识图谱

构建知识图谱(KnowledgeGraph/Vault)的主要目的是获取大量的、让计算机可读的知识。在互联网飞速发展的今天,知识大量存在于非结构化的文本数据、大量半结构化的表格和网页以及生产系统的结构化数据中。知识图谱的工作的本质上是对知识体系的工程化建设,谷歌的野心是打造全人类知识的全景图,那么各行业、各企业的知识图谱就是各自领域的知识工程。虽然解决的终极问题都是降本增效,知识图谱和其他信息技术的不同在于,它是从知识结构化的角度提升现有业务的效率和用户的体验,在不同业务场景下提供分析洞察和自动化的服务。一般来说,就是通过对信息的结构化、语义化、立体化处理,找到正确的信息,发现隐含的知识,形成优化的决策,提供结构化知识框架和方法辅助自动化地解决信息过载和不全的问题。如图11-1所示为一个知识图谱实例。

11.1 什么是知识图谱

构建知识图谱主要分为三部分,第一部分是知识获取,主要是如何从非结构化、半结构化以及结构化数据中获取知识;第二部分是数据融合,主要是如何将从不同数据源获取的知识进行融合,构建数据之间的关联:第三部分是知识计算及应用,这一部分关注的是基于知识图谱

PDF 物理页索引 389

文件中的第 390 页 · 印刷页码:373

的计算功能以及基于知识图谱的应用。我们首先来看一下知识图谱的定义,再看其架构。

11.1.1 知识图谱的定义

在维基百科的官方词条中,知识图谱是谷歌用于增强其搜索引擎功能的知识库。本质上,知识图谱旨在描述真实世界中存在的各种实体或概念及其关系,其构成一张巨大的语义网络图,节点表示实体或概念,边则由属性或关系构成。现在的知识图谱已被用来泛指各种大规模的知识库。知识图谱中包含以下几类节点和边。

实体:指的是具有可区别性且独立存在的某种事物,如某一个人、某一个城市、某一种植物、某一种商品等。世界万物由具体的事物组成,就是实体,如图11-1中的“中国”“美国”“日本”等。实体是知识图谱中最基本的元素,不同的实体间存在不同的关系。

●语义类(概念):具有同种特性的实体构成的集合,如国家、民族、书籍、电脑等。概念主要指集合、类别、对象类型、事物的种类,例如人物、地理等。

●内容:通常作为实体和语义类的名字、描述、解释等,可以由文本、图像、音视频等来表达。

属性(值):从一个实体指向它的属性值。不同的属性类型对应不同类型属性的边。属性值主要指对象指定属性的值。如图11-1所示的“面积”“人口”“首都”是几种不同的属性。属性值主要指对象指定属性的值,例如960万平方公里等。

●关系:形式化为一个函数,它把几个点映射到一个布尔值。在知识图谱上,关系则是一个把几个图节点(实体、语义类、属性值)映射到布尔值的函数。

基于三元组是知识图谱的一种通用表示方式。三元组的基本形式主要包括(实体1-关系实体2)和(实体-属性-属性值)等。如图11-1的知识图谱例子所示,中国是一个实体,北京是一个实体,“中国-首都-北京”是一个(实体-关系-实体)的三元组样例;北京是一个实体,人口是一种属性,2069.3万是属性值。“北京-人口-2069.3万”构成一个(实体-属性-属性值)的三元组样例。知识图谱是知识库中的实体集合,共包含E|种不同实体;知识图谱也是知识库中的关系集合,共包含|R种不同关系。每个实体(概念的外延)可用一个全局唯一确定的ID来标识,每个属性-属性值对(Attribute-ValuePair,AVP)可用来刻画实体的内在特性,而关系可用来连接两个实体,刻画它们之间的关联。

11.1.2 知识图谱的架构

知识图谱的架构包括自身的逻辑结构以及构建知识图谱所采用的技术(体系)架构。

  1. 知识图谱的逻辑结构

知识图谱在逻辑上可分为模式层与数据层两个层次,数据层主要是由一系列的事实组成的,而知识将以事实为单位进行存储。如果用(实体1-关系-实体2)、(实体-属性-属性值)这样的三元组来表达事实,可选择图数据库作为存储介质,例如开源的Neo4j等。模式层构建

第11章 知识图谱

373