知识图谱 第二章(下)

常见开放域知识图谱的知识表示方法

之前提到了RDF、OWL一些概念,但是具体怎么用,在不同的知识图谱中有何不同,还是很模糊。那么接下来以三个最为典型的开放域(Freebase、Wikidata、ConceptNet)为例,尝试比较不同的知识图谱项目选用的知识表示框架。】

1.Freebase
        Freebase 是一个由元数据组成的大型合作知识库,内容主要来自其社区成员的贡献。它整合了许多网上的资源,包括部分私人wiki站点中的内容。Freebase 致力于打造一个允许全球所有人(和机器)快捷访问的资源库,由美国软件公司Metaweb开发并于2007年3月公开运营。2010年7月16日被Google收购, 2014年12月16日,Google宣布将在六个月后关闭 Freebase ,并将全部数据迁移至Wikidata。

  Freebase数据结构:
 Topic:即实例或实体,每一条信息叫做Topic,比如:姚明等。
 Type:类型或概念,每个Topic可以属于多个Type,比如:人、运动员等。
 Domain:域,对类型的分组,便于schema管理,比如:人物。
 Property:属性,每个Type可以设置多个属性,其值默认可以有多个,可通过设置unique为true限制只能有一个值。比如:出生日期、所在球队等。
  属性值类型可以是基本类型,比如:整型、文本等;也可以是另一个type,比如:所在球队、父母等,这种情况叫做CVT,compound value type 组合值类型,  比如:所在球队就是一个CVT,它有自身结构化的属性,不仅仅只是一种简单的值。
 MID:实体编号。不考虑实体合并和分裂时,一个实体和一个MID是一一对应的;当考虑实体合并和分裂时,多个MID可能指代一个实体,但是只有一个MID是master,其他的MID通过一个特殊的属性(<人.运动员.replaced_by>)指向这个MID。
 KEY:可以通过key来唯一确定一个实体,一个实体可以有多个key,每个key都属于一个namespace,比如: "/en/yao_ming"的namespace为"/en"、"/wikipedia/zh-cn_title/姚明" 的namespace为"/wikipedia/zh-cn_title"。对于平台基础模型的实体(Domain、Type、Property),Freebase会从Key中选一个值,作为该实体的ID。

 属性约束:用于约束属性的取值范围,比如:类型约束(整型、文本、浮点型、datetime、CVT等)、条件约束(是否单值、是否去重、主属性、逆属性等)


 链接:https://developers.google.com/freebase/

 说明:类似维基百科,不同的时freebase是结构化数据
2.Wikidata
    WikiData的目标是构建一个免费开放、多语言、任何人或机器都可以编辑修改的大规模链接知识库。WikiData由维基百科于2012年启动,早期得到微软联合创始人Paul Allen、Gordon Betty Moore基金会以及Google的联合资助。WikiData继承了Wikipedia的众包协作的机制,但与Wikipedia不同,WikiData支持的是以三元组为基础的知识条目(Items)的自由编辑。一个三元组代表一个关于该条目的陈述(Statements)。例如可以给“地球”的条目增加“”的三元组陈述。
 Wikidata是一个大型数据库,存储了维基百科、Freebase中的海量信息。为了便于机器识别、算法调用,在存储时Wikidata将数据结构化成了固定的格式——RDF。
 知识图谱描述了现实中的对象或抽象概念,实例(entity)。每个实例对应知识图谱中的一个项(item)。比如上图就是一个项,对应的实例是一个Linux命令“cat”。
 每个项都有标签(label)、描述(description)、别名(aliases)。比如上图中“cat”命令的描述为“Unix utility that concatenates and lists files”。
 每个项中的具体数据被称为条目(statement),一个实例可以有许多条目,表现了实例不同方面的特征。条目由属性(property)和数值(value)构成。比如上图中“cat”命令包含了两个条目,其中一个条目的属性为“part of”,数值为“GNU Core Utilities”。
 链接:https://www.wikidata.org/wiki/Wikidata:Database_download/zh
  说明:包含所有维基数据实体列表
3.ConceptNet5
 见 https://www.shangmayuan.com/a/e6290d0bcd434439a20410d9.html
 感觉写的很好,要比我总结的好

知识图谱的向量表示方法

传统知识工程(上世纪 7、80 年代)是典型的自上而下的做法,严重依赖专家和人的干预,需要领域专家先把知识表达出来,然后需要知识工程师把领域专家的语言描述为计算机可以表达和处理的形式,以及用户的反馈。受限于那个时代的存储等硬件条件,没有大数据,做不到大规模数据化留存,更谈不上自下而上的数据驱动的知识获取,所以只能靠专家去做。这导致了知识规模有限、质量存疑。具体表现为:
知识表示方面的困难:
1.隐性知识、过程知识等难以表达
2.领域知识的形式化表达较为困难
3.专家知识不可避免的存在主观性
4.不同专家之间知识可能存在不一致
5.知识表达难以完备,缺漏是常态
知识应用方面的困难:
1.应用易于超出预先设定的知识边界
2.很多应用需要常识的支持
3.难以处理异常情况
4.难以处理不确定性推理
5.知识更新困难
由于这些局限,传统知识工程只能在规则明确、边界清晰、应用封闭的应用场景取得成功。最成功的应用就是几何定理证明,因为规则是绝对明确的,边界绝对清晰,应用绝对封闭。当前 AI 领域所谓的成功应用绝大部分也都满足这样的条件,如 AlphaGo 下棋,就是个只关乎下棋规则的封闭场景应用。
在这里对于知识表示方面的困难,有几种改进的知识表示方法。

词的向量表示方法

1.独热编码
独热码,在英文文献中称做 one-hot code, 直观来说就是有多少个状态就有多少比特,而且只有一个比特为1,其他全为0的一种码制。举例如下:
假如有三种颜色特征:红、黄、蓝。 在利用机器学习的算法时一般需要进行向量化或者数字化。那么你可能想令 红=1,黄=2,蓝=3. 那么这样其实实现了标签编码,即给不同类别以标签。然而这意味着机器可能会学习到“红<黄<蓝”,但这并不是我们的让机器学习的本意,只是想让机器区分它们,并无大小比较之意。所以这时标签编码是不够的,需要进一步转换。因为有三种颜色状态,所以就有3个比特。即红色:1 0 0 ,黄色: 0 1 0,蓝色:0 0 1 。如此一来每两个向量之间的距离都是根号2,在向量空间距离都相等,所以这样不会出现偏序性,基本不会影响基于向量空间度量算法的效果。

自然状态码为:000,001,010,011,100,101
独热编码为:000001,000010,000100,001000,010000,100000

2.词袋模型
词袋模型是一个在自然语言处理和信息检索下被简化的表达模型。此模型下,像是句子或是文件这样的文字可以用一个袋子装着这些词的方式表现,这种表现方式不考虑文法以及词的顺序。最近词袋模型也被应用在电脑视觉(CV)领域。
以下使用词袋模型来模拟文本文档。以下是两个简单的文本文档:
(1)约翰喜欢看电影。玛丽也喜欢电影。
(2)约翰也喜欢看足球比赛。
根据这两个文本文档,为每个文档构建如下列表:
“John” ,“likes” ,“to” ,“watch” ,“movies” ,“Mary” ,“likes” ,“movies” ,“too”
“约翰”,“也”,“喜欢”,“到”,“观看”,“足球”,“游戏”
将每个词袋表示为JSON对象,并归因于相应的Javascript变量:
BoW1 = { “John” :1 ,“likes” :2 ,“to” :1 ,“watch” :1 ,“movies” :2 ,“Mary” :1 ,“too” :1 };
BoW2 = { “John” :1 ,“also” :1 ,“likes” :1 ,“to” :1 ,“watch” ::1 ,“游戏”:1 };
每个键都是单词,每个值都是给定文本文档中该单词的出现次数。
元素的顺序是自由的,例如{“too”:1,“Mary”:1,“movies”:2,“John”:1,“watch”:1,“likes”:2,“to”:1}也是BoW1。这也是我们对严格的JSON对象表示的期望。

3.词向量
以上对词的表示方法没有考虑语义层面的信息,为了更多地表示词与词之间的语义相似程度,提出词的分布式表示,也是基于上下文的稠密向量表示法,通常称为词向量或词嵌入(Word Embedding)。产生词向量的手段主要有三种

  • Count-based:基于计数的方法,简单说就是记录文本中词的出现次数。
  • Predictive:基于预测的方法,既可以通过上下文预测中心词,也可以通过中心词预测上下文。
  • Task-based:基于任务的,也就是通过任务驱动的方法。通过对词向量在具体任务上的表现效果对词向量进行学习。
    下面呢简单介绍经典的开源工具word2vec中包含的CBoW和Skip-gram两个模型。
  • 什么是 Word2vec?
    在聊 Word2vec 之前,先聊聊 NLP (自然语言处理)。NLP 里面,最细粒度的是词语,词语组成句子,句子再组成段落、篇章、文档。所以处理 NLP 的问题,首先就要拿词语开刀。
    举个简单例子,判断一个词的词性,是动词还是名词。用机器学习的思路,我们有一系列样本(x,y),这里 x 是词语,y 是它们的词性,我们要构建 f(x)->y 的映射,但这里的数学模型 f(比如神经网络、SVM)只接受数值型输入,而 NLP 里的词语,是人类的抽象总结,是符号形式的(比如中文、英文、拉丁文等等),所以需要把他们转换成数值形式,或者说——嵌入到一个数学空间里,这种嵌入方式,就叫词嵌入(word embedding),而 Word2vec,就是词嵌入( word embedding) 的一种
    大部分的有监督机器学习模型,都可以归结为:
    f(x)->y
    在 NLP 中,把 x 看做一个句子里的一个词语,y 是这个词语的上下文词语,那么这里的 f,便是 NLP 中经常出现的『语言模型』(language model),这个模型的目的,就是判断 (x,y) 这个样本,是否符合自然语言的法则,更通俗点说就是:词语x和词语y放在一起,是不是人话。
    Word2vec 正是来源于这个思想,但它的最终目的,不是要把 f 训练得多么完美,而是只关心模型训练完后的副产物——模型参数(这里特指神经网络的权重),并将这些参数,作为输入 x 的某种向量化的表示,这个向量便叫做——词向量(这里看不懂没关系,下一节我们详细剖析)。
    我们来看个例子,如何用 Word2vec 寻找相似词:
    对于一句话:『她们 夸 吴彦祖 帅 到 没朋友』,如果输入 x 是『吴彦祖』,那么 y 可以是『她们』、『夸』、『帅』、『没朋友』这些词
    现有另一句话:『她们 夸 我 帅 到 没朋友』,如果输入 x 是『我』,那么不难发现,这里的上下文 y 跟上面一句话一样
    从而 f(吴彦祖) = f(我) = y,所以大数据告诉我们:我 = 吴彦祖(完美的结论)(来自https://zhuanlan.zhihu.com/p/26306795)
  • Skip-gram 和 CBOW 模型
    上面我们提到了语言模型
    如果是用一个词语作为输入,来预测它周围的上下文,那这个模型叫做『Skip-gram 模型』
    而如果是拿一个词语的上下文作为输入,来预测这个词语本身,则是 『CBOW 模型』
    Skip-gram 和 CBOW 的简单情形
    我们先来看个最简单的例子。上面说到, y 是 x 的上下文,所以 y 只取上下文里一个词语的时候,语言模型就变成:
    用当前词 x 预测它的下一个词 y
    但如上面所说,一般的数学模型只接受数值型输入,这里的 x 该怎么表示呢? 显然不能用 Word2vec,因为这是我们训练完模型的产物,现在我们想要的是 x 的一个原始输入形式。

答案是:one-hot encoder

所谓 one-hot encoder,其思想跟特征工程里处理类别变量的 one-hot 一样(参考我的前作『数据挖掘比赛通用框架』、『深挖One-hot和Dummy背后的玄机』)。本质上是用一个只含一个 1、其他都是 0 的向量来唯一表示词语。

我举个例子,假设全世界所有的词语总共有 V 个,这 V 个词语有自己的先后顺序,假设『吴彦祖』这个词是第1个词,『我』这个单词是第2个词,那么『吴彦祖』就可以表示为一个 V 维全零向量、把第1个位置的0变成1,而『我』同样表示为 V 维全零向量、把第2个位置的0变1。这样,每个词语都可以找到属于自己的唯一表示。

OK,那我们接下来就可以看看 Skip-gram 的网络结构了,x 就是上面提到的 one-hot encoder 形式的输入,y 是在这 V 个词上输出的概率,我们希望跟真实的 y 的 one-hot encoder 一样。
首先说明一点:隐层的激活函数其实是线性的,相当于没做任何处理(这也是 Word2vec 简化之前语言模型的独到之处),我们要训练这个神经网络,用反向传播算法,本质上是链式求导,在此不展开说明了,
当模型训练完后,最后得到的其实是神经网络的权重,比如现在输入一个 x 的 one-hot encoder: [1,0,0,…,0],对应刚说的那个词语『吴彦祖』,则在输入层到隐含层的权重里,只有对应 1 这个位置的权重被激活,这些权重的个数,跟隐含层节点数是一致的,从而这些权重组成一个向量 vx 来表示x,而因为每个词语的 one-hot encoder 里面 1 的位置是不同的,所以,这个向量 vx 就可以用来唯一表示 x。

注意:上面这段话说的就是 Word2vec 的精髓!!

此外,我们刚说了,输出 y 也是用 V 个节点表示的,对应V个词语,所以其实,我们把输出节点置成 [1,0,0,…,0],它也能表示『吴彦祖』这个单词,但是激活的是隐含层到输出层的权重,这些权重的个数,跟隐含层一样,也可以组成一个向量 vy,跟上面提到的 vx 维度一样,并且可以看做是词语『吴彦祖』的另一种词向量。而这两种词向量 vx 和 vy,正是 Mikolov 在论文里所提到的,『输入向量』和『输出向量』,一般我们用『输入向量』。

需要提到一点的是,这个词向量的维度(与隐含层节点数一致)一般情况下要远远小于词语总数 V 的大小,所以 Word2vec 本质上是一种降维操作——把词语从 one-hot encoder 形式的表示降维到 Word2vec 形式的表示。

Skip-gram 更一般的情形
上面讨论的是最简单情形,即 y 只有一个词,当 y 有多个词时,网络结构如下:
知识图谱 第二章(下)_第1张图片

可以看成是 单个x->单个y 模型的并联,cost function 是单个 cost function 的累加(取log之后)

CBOW 更一般的情形
跟 Skip-gram 相似,只不过:

Skip-gram 是预测一个词的上下文,而 CBOW 是用上下文预测这个词
网络结构如下
知识图谱 第二章(下)_第2张图片

更 Skip-gram 的模型并联不同,这里是输入变成了多个单词,所以要对输入处理下(一般是求和然后平均),输出的 cost function 不变。
以上来自https://zhuanlan.zhihu.com/p/26306795 讲的真的好好呀

知识图谱嵌入

知识图谱 (Knowledge Graphs) 是大规模语义网络知识库,采取符号化的知识表示方式,利用三元组来描述具体的知识,并以有向图的形式对其进行表示和存储,具有语义丰富、结构友好、易于理解等优点。由于在表达人类先验知识上具有优良的特性,知识图谱近年来在自然语言处理、问答系统、推荐系统等诸多领域取得了广泛且成功的应用。

然而,知识图谱通常存在链接缺失问题,这限制了知识图谱在相关下游任务中的应用。为解决该问题,知识图谱补全任务应运而生。知识图谱补全旨在根据知识图谱中已有事实推断出新的事实,从而使得知识图谱更完整。
知识图谱嵌入 (Knowledge Graph Embedding) 是解决知识图谱补全问题的重要方法之一,它通过将知识图谱中的实体 (Entity) 和关系 (Relation) 嵌入到连续向量空间,从而在方便计算的同时保留知识图谱中的结构信息。

  • 知识图谱嵌入的方法有以下:
    1.平移距离模型
    平移距离模型主要是运用基于距离的评分函数来对关系进行打分,该模型将事实的合理性视为在经过关系的解释之后头实体和尾实体在向量空间的距离。主要是TransE模型及其扩展方法。
    TransE模型
    TransE模型由Antoine Bordes等人提出,他们将知识图谱中的关系看作实体间的某种平移向量,即对于每个事实三元组(h,r,t),TransE模型首先将实体和关系表示在同一个向量空间中,然后把关系向量r看作是头实体向量h和尾实体向量t之间的平移,即h+r≈t。即比如冯小刚+导演≈私人定制。其中,也可将关系向量r看作是从h到t的翻译,所以TransE模型也被称作翻译模型。如下图所示。
    图片来自https://zhuanlan.zhihu.com/p/112222319
    知识图谱 第二章(下)_第3张图片

模型的打分函数为:

在这里插入图片描述

,如果事实(h,r,t)存在,打分应该趋于大。
TransE模型的参数较少,计算的复杂度较低,并且其在大规模稀疏知识库上也依然具有较好的性能和可扩展性,但是TransE模型在处理复杂关系上效果欠佳,复杂关系通常是指一对多、多对一,多对多三种关系模型。举个例子给定两个事实(冯小刚,导演,芳华),(冯小刚,导演,私人定制),那么网络的目的便是优化嵌入表达使得:冯小刚+导演≈芳华,冯小刚+导演≈私人定制,这样一来会使得芳华≈私人定制,但这两部电影是不同的实体,应该用不同的向量表示。

2.语义匹配模型

语义匹配模型是利用基于相似性的评分函数。他们主要是通过匹配实体的潜在语义和向量空间表示中包含的关系来度量事实的可信度。
Rescal模型
M. Nickel等人提出了Rescal模型,Rescal模型又称为双线性模型,该模型使用向量来表示每个实体,从而获得他的潜在语义,而每个关系使用一个矩阵来表示,来对实体间的潜在关系来建模。模型如下图。
图片来自:https://zhuanlan.zhihu.com/p/112222319
知识图谱 第二章(下)_第4张图片
事实(h,r,t)的打分被Rescal模型表示为:

在这里插入图片描述
其中h和t都是d维的向量,表示实体,关系矩阵是一个d*d的矩阵。
3.神经网络模型
神经网络模型将 [公式] 同时输入神经网络,来判断三元组的打分。早期的工作如 MLP [9] 使用全连接神经网络来对给定的三元组进行打分。近年来,ConvE [10] 等工作使用卷积神经网络 (Convolutional Neural Network) 来定义打分函数。由于知识图谱是一种图结构的数据,近期也有一些工作将图神经网络 (Graph Neural Network) 应用于知识图谱嵌入。

知识图谱 第二章(下)_第5张图片

  • 知识图谱嵌入的应用:
  • 下游任务应用
    在对当前可用的KG嵌入技术进行了系统的回顾之后,本节将探索如何将学习到的实体和关系嵌入应用到各种下游任务中,并从中获益。我们将这些任务分为(i) in-KG应用和(ii) out-of- KG应用,讨论如下。

1.In-KG 应用
In-KG应用是在KG范围内进行的应用,在此范围内学习实体和关系嵌入。我们将介绍四个这样的应用程序,即链接预测、三元组分类、实体分类和实体解析。所有的这些应用都是从不同的角度和应用上下文对KG输入进行各种细化(例如补全或去重)。

(1)链接预测
链接预测通常指的是预测与给定实体有特定关系的实体的任务,即,给定(r,t)预测h或给定(h,r)预测t; ,前者可以表示为(?,r,t),后者为(h,r,?)。这本质上是一个KG补全的任务,即将缺失的知识添加到图谱中。这个链接预测任务有时也称为实体预测或实体排序。类似的也可以用来预测两个给定实体之间的关系,即(h,?,t)通常称为关系预测。

通过事先学习实体和关系表示,链接预测可以通过一个简单的排序过程来实现。预测任务以(?,r,t)为例。为预测头实体,可以将KG中每个实体h作为候选答案,然后为每个实体计算f(h,t)分数。一旦对KG进行了嵌入模型的训练,就可以使用所学习的嵌入和评分函数轻松地实现这一点。

例如,如果使用TransE进行KG嵌入,则使用f(h,t)=-||h+r-t||1/2。将这些分数按下降顺序排列将得到一个候选答案的排序列表。例如,对于预测任务(?,DirectorOf,Psycho) ,可以使用这个排序过程生成一个有序列表{JamesCameron, AlfredHitchcock, GeorgeLucas,QuentinTarantino}。预测任务(h,r,?)或(h,?,t)也可以以同样的方式进行。

为了进行评估,通常的做法是将正确答案的排列顺序记录在有序列表中,以便查看是否可以将正确答案排列在错误答案之前。在前面提到的 (?, DirectorOf, Psycho)正确答案AlfredHitchcock排在第2。

正确答案排序数越小表示性能越好。基于这些排序设计了各种评价标准,如平均排序(预测的排序数字的平均值)、平均倒数排序(倒数排序的平均值)、Hits@n(n个正确排序所占的比例)、AUC-PR(准确率-召回率曲线下的面积)。

(2)三元组分类
三元组分类在于验证三元组表示的事实(h,r,t)真假,例如, (AlfredHitchcock,DirectorOf, Psycho)归类为一个真的事实,而 (JamesCameron, DirectorOf, Psycho)则归类一个假的事实。同样,这个任务也可以看作是对KG输入的补全。

回想一下,一旦在KG上学会了一个嵌入模型,我们可以计算任何三元组(h,r,t)的得分,只要h,t E IE和r E R,例如,假设使用TransE学习KG嵌入,则可以使用f(h,t)=-||h+r-t||1/2 计算得分。三元组分类可以简单地在三元组得分的基础上进行。

分数高的三元组往往是真的事实。具体地说,我们为每一个关系r引入一个阈值d。然后从任何的事实关系,说(h,r,t),如果它的分数f(h,t)高于d则视为真的,否则则视为假的。通过这种方法,我们得到了每一个关系的三元组分类器。

传统的分类指标可以用来评估这个任务,例如,微观和宏观的平均精度。因为对于每一个三元组实值分数都将与二进制标签一起输出,排序指标也可以在这里使用,例如,平均精度均值。

(3)实体分类
实体分类的目的是将实体划分为不同的语义类别,例如,AlfredHitchcock是一个人,Psycho是一部创造作品。由于在大多数情况下,关系编码实体类型(表示为IsA)包含在KG中,并且已经包含在嵌入的过程中,因此实体分类可以看作是一个具体的链接预测任务,即(x,IsA,?)。类似的预测和评估方法的具体细节可以看链接预测那一节,实体分类显然也是一个KG补全问题。

(4)实体解析
实体解析包括验证两个实体是否指的是同一个对象。在一些KGs中,许多节点实际上指的是相同的对象,例如,在Cora 数据集中,包含了作者、标题和地点字段的引用,作者或地点的名称可以用不同的方式编写。实体解析是删除这些重复的节点的任务。

Bordes等人考虑了这样一种场景,其中KG已经包含了一个关系,该关系声明两个实体是否相等(表示为EqualTo),并且已经学习了该关系的嵌入。

在这种情况下,实体解析退化为三元组分类问题,即,判断三元组(x,EqualTo,y)是否成立或者这个三元组成立有多大的可能性。通过嵌入模型输出的三元组评分可以直接用于这种预测(详见三元组分类)。

然而,这种直观的策略并不总是有效,因为并非所有的KG都编码EqualTo关系。Nickel等人提出仅基于实体表示来执行实体解析。具体地,给定两个实体x, y和它们的向量表示x, y, 则x和y之间的相似性为:

请输入标题

这个相似度评分用于度量x和y指向同一实体的可能性。即使在KG输入中没有编码EqualTo关系,新策略也可以起作用。AUC-PR是对于这种任务应用最广泛的评价指标。

2.Out-of-KG应用
Out-of-KG应用是那些突破KG输入边界并扩展到更广泛领域的应用。本文介绍了三种应用实例,包括关系抽取、问答和推荐系统。我们不寻求对这些任务进行系统性地概述或介绍最新的技术。相反,我们特别关注如何将KG嵌入应用于这些领域。我们希望它们能为KG嵌入的未来的应用提供新的视角。

(1)关系抽取
关系抽取的目的是从已经检测到实体的纯文本中抽取关系事实。例如,从给定“Alfred Hitchcock directed Psycho”(Psycho)中可以检测到h=AlfredHitchcock和t=Psycho两个实体,一个关系抽取器应该预测这两个实体之间的关系是DirectorOf。

关系抽取长期以来一直是自然语言处理中的一项重要任务,为扩展KGs提供了有效的方法。许多研究都试图利用KGs来完成这一任务,但通常作为远程监督来自动生成标记数据。但是这些方法仍然是基于文本的抽取,而忽略了KG自身推理新事实的能力。

最近,Weston等人提出将TransE与基于文本的抽取器相结合的方法,以便更好地进行关系抽取。具体来说,在训练阶段,他们从文本语料库中学习一个基于文本的抽取器,并从与该语料库对齐的KG中学习一个TransE模型。基于文本的抽取器对每个关系r与其文本提及m之间的相似性进行评分,即Stext(m,r)。

这些评分可以用来预测它们的文本提及的关系,即证据来自文本语料库。与此同时,TransE模型对在KG中的每个缺失的的事实(h,r,t)的合理性进行打分。这些分数可以用来预测它们与KG中实体的交互关系,即证据来自KG。在测试阶段,给定两个实体h, t,以及所有与它们相关的关系Mht,首先使用基于文本的抽取器对进行预测得到r,然后对候选事实进行一个复合的评分计算,即
在这里插入图片描述

这个复合模型支持的预测不仅与文中提到的一致,而且与KG一致。实验结果进一步表明,与传统的基于文本的抽取器相比,采用TransE模型可以成功地改进传统的基于文本的抽取器。加入TransH和TransR后也观察到类似的改善。
知识图谱 第二章(下)_第6张图片

文本和KGs的编码矩阵

Riedel et al.设计了一个不同的框架,通过将纯文本和KGs联合嵌入,来实现关系提取,在他们的工作中,文本和KGs被表示在同一个矩阵中。矩阵的每一行代表一对实体,每一列代表一个提及的文本或KG关系。

如果两个实体与纯文本中的一个提到或与KGs中的关系同时出现,则将相应的条目设置为1,否则设置为0。对于训练实例(实体对),我们可以同时观察文本提及和KG关系,而KG关系作为重要的监督。但是对于测试实例,只有文本提到是可用的。

然后,关系提取用于预测测试实例缺少的KG关系。图7给出了这个场景的一个简单插图。本文提到,这项任务使用了协作过滤技术,它分解输入矩阵来学习实体对的向量嵌入和公斤关系。该框架还改进了传统的基于文本的提取器。

Fan等也提出了类似的观点关系提取方法。但在他们的工作中,第一矩阵中的一组列对应于文本特性并采用矩阵补全技术代替矩阵分解技术。Chang等人后来设计了一种基于张量的变体用三模张量编码纯文本和KGs,然后利用RESCAL模型分解张量。

(3)问答
本文考虑一个具体的问题回答任务,即给定一个用自然语言表达的问题,任务是从一个KG[11]、[12]中检索由三元组或三元组支持的正确答案。这里我们展示了一些问题、答案和支持三元组的例子:
知识图谱 第二章(下)_第7张图片
KGs的使用简化了问题的回答,以结构化的格式组织了各种各样的答案。然而,由于自然语言的较大的变化性和KGs的巨大的规模,这仍然是一个具有挑战性的任务。
Bordes等人为这项任务引入了一个基于嵌入式的框架。该方法的核心思想是学习单词和KG成分的低维向量嵌入,使问题的表示和相应的答案在嵌入空间中相互接近。具体地说,让q表示一个问题和a表示一个候选答案。函数S(q,a),基于向量映射进行,目的是给问题答案之间的相似性进行评分,即
在这里插入图片描述

上式中W是一个包含单词、实体和关系嵌入的矩阵;Φ(q)和ψ(a)是两个稀疏向量,前者表示问题中出现的单词,后者表示答案中出现的实体和关系。

WΦ(q)和Wψ(a)分别是问题和答案在嵌入空间中的向量表示。两者都是各自成分的嵌入组合,即词汇、实体和关系。如果问题问的是正确答案,S(.,.)生成一个高分,否则和较低的评分。

给定一组由问题和正确答案配对组成的训练集,可以通过使用典型的成对排序优化来学习嵌入W,这使得一对正确的得分高于任何一对错误的得分。训练集可以通过众包机制创建,也可以通过在KGs上自动生成种子模式来创建。通过对W训练,在测试时,对于给定的问题q,预测答案为
在这里插入图片描述

上式中A(q)是候选答案集。Bordes等人经验表明,这种直观的方法实现了较好的的结果,在不使用任何词典,或额外的步骤词性标注规则,语法或依赖项解析在训练最传统的问答系统。

(4)系统推荐
系统推荐向用户提供关于他们可能希望购买或检查的商品的建议。在不同的推荐策略中,将用户与商品之间的交互建模为用户与商品之间的即时表示的产品的协同过滤技术取得了显著的成功。然而,这样的技术并不总是有效,因为用户-项目交互可能非常稀疏。
在这种情况下,将用户-物品交互和用户或物品的辅助信息相结合的混合推荐系统通常可以获得更好的性能。

Zhang等人最近提出了一种混合推荐框架,该框架利用KG内的异构信息来提高协同过滤的质量。具体地说,他们使用存储在KG的三种类型的信息,包括结构性知识(事实三元组),文本知识(例如,一本书或一部电影的文本性的总结),和视觉知识(例如,一本书的封面或电影海报图片),为每项生成语义表示。
为了对结构知识进行建模,采用了一种典型的KG嵌入技术,即TransR应用,它为每项学习结构表示。对于另外两种信息,采用叠加去噪自动编码器和叠加卷积自动编码器分别提取每项的文本表示和视觉表示。然后,为了进行协同过滤,将每个用户i表示为一个潜在向量u i,每一项j表示为一个潜在向量
在这里插入图片描述

其中,sj、tj和vj分别是与该项相关联的结构表示、文本表示和视觉表示,而hj是一个偏移向量。然后将用户i对item j的偏好建模为两个潜在向量的乘积,即 uT_i*e_j。利用对优先级的排序优化来学习这些潜在向量。最后,在测试时,给定目标用户i,可以根据下面的排序标准进行item推荐:
在这里插入图片描述

上式中i:js>jt表示用户i更喜欢项目js而不是jt。实验结果证明了从KG中学习的三种类型的表示方法在推荐系统中的有效性。
以上来自:https://zhuanlan.zhihu.com/p/80149671

你可能感兴趣的:(知识图谱学习笔记)