论文浅尝 | 基于常识知识图谱感知和图注意力机制的对话生成

 

OpenKG 祝各位读者中秋快乐!

链接:http://coai.cs.tsinghua.edu.cn/hml/media/files/2018_commonsense_ZhouHao_3_TYVQ7Iq.pdf

动机

在以前的工作中,对话生成的信息源是文本与对话记录。但是这样一来,如果遇到 OOV 的词,模型往往难以生成合适的、有信息量的回复,而会产生一些低质的、模棱两可的回复。

为了解决这个问题,有一些利用常识知识图谱生成对话的模型被陆续提出。当使用常识性知识图谱时,由于具备背景知识,模型更加可能理解用户的输入,这样就能生成更加合适的回复。但是,这些结合了文本、对话记录、常识知识图谱的方法,往往只使用了单一三元组,而忽略了一个子图的整体语义,会导致得到的信息不够丰富。

为了解决这些问题,文章提出了一种基于常识知识图谱的对话模型(commonsense knowledge aware conversational model,CCM)来理解对话,并且产生信息丰富且合适的回复。本文提出的方法,利用了大规模的常识性知识图谱。首先是理解用户请求,找到可能相关的知识图谱子图;再利用静态图注意力(static graph attention)机制,结合子图来理解用户请求;最后使用动态图注意力(dynamic graph attention)机制来读取子图,并产生合适的回复。通过这样的方法,本文提出的模型可以生成合适的、有丰富信息的对话,提高对话系统的质量。

贡献

文章的贡献有:

(1)首次尝试使用大规模常识性知识图谱来处理对话生成问题;

(2)对知识图谱子图,提出了静态/动态图注意力机制来吸收常识知识,利于理解用户请求与生成对话;

方法

⒈Encoder-Decoder 模型

经典的Encoder-Decoder模型是基于sequence-to-sequence(seq2seq)的。encoder模型将用户输入(user post)X 用隐状态 H 来表示,而decoder模型使用另一个GRU来循环生成每一个阶段的隐状态

其中 c_t 是上下文向量,通过注意力机制按步生成。最终,decoder模型根据概率分布生成了输出状态,并产生每一步的输出token。

 

⒉模型框架:如下图1所示为本文提出的CCM模型框架。

图1 CCM模型框架

如图1所示,基于n个词输入,会输出n个词作为回复,模型的目的就是预估这么一个概率分布:

,即将图信息 G 加入到概率分布的计算中。在信息读取时,根据每个输入的词 x,找到常识知识图谱中对应的子图(若没有对应的子图,则会生成一个特殊的图Not_A_Fact),每个子图又包含若干三元组。在信息读取时,词向量与这个词对应的子图向量拼接,而子图向量是由采用静态图注意力机制生成的。当生成回复时,采用动态图注意力机制来引用图信息,即读取每个字对应的子图和子图中的实体,并且在生成当前回复时,通过概率计算应该是生成通用词还是这个子图中的相关实体。

⒊知识编译模块:如图2所示,为如何利用图信息编译post的示意图。

图2 知识编译模块

如图所示,当编译到“rays”时,会把这个词在知识图谱中相关的子图得到(图2最上的黄色高两部分),并生成子图的向量。每一个子图都包含了key entity(即这里的rays),以及这个“rays”的邻居实体和相连关系。对于词“of”,由于无法找到对应的子图,所以就采用特殊子图Not_A_Fact来编译。之后,采用基于静态注意力机制,CCM会将子图映射为向量 g_i,然后把词向量w(x_t)和 g_i 拼接为e(x_t)=[w(x_t); g_i],并将这个 e(x_t) 替换传统encoder-decoder中的 e(x_t) 进行GRU计算。

对于静态图注意力机制,CCM是将子图中所有的三元组都考虑进来,而不是只计算一个三元组,这也是该模型的一个创新点。当得到子图时,且这个子图由三元组K表示, K(g_i)={k_1,k_2,…,k_(N_G)}。在计算时,就是将当前三元组的头实体与尾实体向量通过矩阵变换后相加,再经过正切激活函数后,与经过矩阵变换的关系进行点积,得到一个值。而将这个词向量与所有三元组进行计算后,再经过softmax,就得到了一个权重。把子图中所有头实体、尾实体按对相加,再基于权重计算加权和,就得到了图向量 g_i。

 

⒋知识生成模块

如下图3所示,为如何利用图信息生成回复的示意图。

图3 知识生成模块

在生成时,不同于静态图注意力机制,模型会读取所有相关的子图,而不是当前词对应的子图,而在读取时,读取注意力最大的就是图中粉色高亮的部分。生成时,会根据计算结果,来选择是生成通用字(generic word)还是子图中的实体。

在进行decoder时,公式改为

,而

是指,将生成的词向量,以及这个词来自的三元组向量进行拼接(如果生成的是一个通用词,那么三元组就是Not_A_Fact)。在这里,可以看到GRU的输入多了两个向量 c_t^g(来自于表示图信息的向量)和 c_t^k(表示三元组信息的向量)。

对于动态图注意力机制,是一种层次型的计算,即CCM先根据post相关的所有知识图谱子图来计算一个向量 c_t^g,再根据子图中的三元组再计算一个向量 c_t^k。对于上个阶段的隐状态输出 s_t,最终的 c_t^g 是图向量 g_i 的加权和。

然后,对于每个子图中的三元组 k_j,CCM又计算了一次注意力,最终的 c_t^k 是 k_j 的加权和,权重为对应图 g_i 的注意力权重与三元组 k_j 的注意力权重之积。

最终,每一个step的输出,是根据 s_t 来选择一个通用词或者子图中的实体。

 

⒌损失函数

损失函数为预期输出与实际输出的交叉熵,除此之外,为了监控选择通用词还是实体的概率,又增加了一个交叉熵。公式如下:

其中就是选择的概率,而就是一个Boolean值,表示在实际输出Y中是选择了通用词还是实体。

实验

⑴. 实验相关细节

常识性知识图谱选用了ConceptNet,对话数据集选用了reddit的一千万条数据集,如果一个post-response不能以一个三元组表示(一个实体出现于post,另一个出现于response),就将这个数据去除。然后对剩下的对话数据,根据post的词的出现频数,分为四类。

而基线系统选择了如下三个:只从对话数据中生成response的seq2seq模型、存储了以TransE形式表示知识图谱的MemNet模型、从三元组中copy一个词或生成通用词的CopyNet。

而选用metric的时候,采用了刻画回复内容是否语法正确且贴近主题的perplexity,以及有多少个知识图谱实体被生成的entity score。

 

⑵. 实验结果

如下图4所示,为根据perplexity和entity score进行的性能比较,可见CCM的perplexity最低,且选取entity的数量最多。并且,在低频词时,选用的entity更多。这表示在训练时比较罕见的词(实体)会需要更多的背景知识来生成答复。

图4 CCM与基线系统对比结果

另外,作者还采用众包的方式,来人为审核response的质量,并采用了两种度量值appropriateness(内容是否语法正确,是否与主题相关,是否有逻辑)与informativeness(内容是否提供了post之外的新信息)。如下图5所示,为基于众包的性能比较结果。

图5 CCM与基线系统基于众包的对比结果

从图5中可见,CCM对于三个基线系统来说,都有将近60%的回复是更优的。并且,在OOV的数据集上,CCM比seq2seq高出很多,这是由于CCM对于这些低频词或未登录词,可以用知识图谱去补全,而seq2seq没有这样的知识来源。

而在case study中,当在post中遇到未登录词“breakable”时,seq2seq和MemNet都只能输出一些通用的、模棱两可的、毫无信息量的回复。CopyNet能够利用知识图谱输出一些东西,但是并不合适。而CCM却可以输出一个合理的回复。

总结

本文提出了一种结合知识图谱信息的encoder-decoder方法,引入静态/动态图注意力机制有效地改善了对话系统中response的质量。通过自动的和基于众包的形式进行性能对比,CCM模型都是优于基线系统的。

 

论文笔记整理:花云程,东南大学博士,研究方向为知识图谱问答、自然语言处理。


OpenKG.CN

中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

CCKS 2018 | 最佳论文:南京大学提出 DSKG,将多层 RNN 用于知识图谱补全

本文转载自公众号:机器之心

选自CCKS 2018

作者:Lingbing Guo、Qingheng Zhang、Weiyi Ge、Wei Hu、Yuzhong Qu

机器之心编译

参与:Panda、刘晓坤

2018 年 8 月 14-17 日,主题为「知识计算与语言理解」的 2018 全国知识图谱与语义计算大会(CCKS 2018)在天津成功举办。该会议是由中国中文信息学会语言与知识计算专委会定期举办的全国年度学术会议,并致力于成为国内知识图谱、语义技术、链接数据等领域的核心会议。本届会议的最佳英文论文来自南京大学计算机软件新技术国家重点实验室和信息系统工程重点实验室,提出了一种用于知识图谱补全的深度序列模型 DSKG。机器之心对该论文进行了摘要介绍,感谢最佳论文作者胡伟教授对本文的确认。

论文:DSKG:一种用于知识图谱补全的深度序列模型(DSKG: A Deep Sequential Model for Knowledge Graph Completion)

  • 论文下载:https://pan.baidu.com/s/1dItQ-H6bbVq5yhQ7RGJgpQ
  • 项目地址:https://github.com/nju-websoft/DSKG

摘要:知识图谱(KG)补全的目标是填补知识图谱中缺失的事实,其中每个事实都可表示成一个形式为 (主体, 关系, 客体) 的三元组。当前的知识图谱补全模型都只能通过三元组中的两个元素(比如主体和关系)来预测剩余第三个元素。我们在这篇论文中提出了一种新模型,其中使用了专门针对知识图谱的多层循环神经网络(RNN)来将知识图谱中的三元组建模成序列。我们在两个基准数据集和一个更为困难的数据集上进行了传统的实体预测任务实验,结果表明我们的方法在许多评测指标上都优于多个之前最佳的知识图谱补全模型。此外,因为我们的模型具有序列特性,所以只需给定单个实体,就能预测整个三元组。我们的实验表明我们的模型在这种三元组预测新任务上表现也较好。

1 引言

Freebase [2] 和 WordNet [12] 等知识图谱(KG)通常会使用三元组来记录数以十亿计的真实世界事实,这些三元组可写成 (主体, 关系, 客体) 的形式(可简写为 (s,r,o)),其中 s 和 o 表示实体,r 表示 s 和 o 之间的关系。因为当前的知识图谱还远没有包含所有知识,所以还需要知识图谱补全任务。之前的模型关注的重点是被称为实体预测(也即链接预测)[3] 的一般任务,其要求基于给定的 (s,r,?) 或 (?,r,o) 来预测对应的 o 或 s,从而补全知识图谱中的三元组。图 1a 展示了一个实体预测的抽象模型。输入 s 和 r 首先被投射到某些向量或矩阵上,然后再组合这些向量或矩阵,得到一个连续表征 v_o,进而预测得到 o。

图 1:用于实体预测的不同模型。白圈和黑圈分别表示输入向量和输出向量。c 表示一个 RNN 单元,h 表示一个隐藏状态。DSKG 使用 c1、c2 来处理实体 s,使用 c3、c4 来处理关系 r。它们是不同的 RNN 单元。

尽管之前的模型已在实体预测上有良好的表现,但它们仍然可能不足以补全知识图谱。让我们假设一个模型可以基于给定的关系 r 而有效地补全一个实体 s。如果我们不提供任何关系,那么这个模型就无法填补 s,因为它无法选择用于完善这个实体的关系。实际上,知识图谱的底层数据模型并不允许任何不完整的元组 (s,r) 存在。

循环神经网络(RNN)是一种神经序列模型,已经在语言建模和机器翻译 [7,16] 等许多自然语言处理(NLP)任务上取得了优良的表现。知识图谱中的三元组可被近似地看作是一个长度为 3 的简单句子。比如,三元组 (USA, contains, NewYorkCity) 可被变换成句子「USA contains New York City」。这启发了我们使用 RNN 来建模知识图谱。但是,我们依然面临着以下难题:(1)三元组不是自然语言。它们是用一种固定的表达方式 (s,r,o) 建模的复杂结构。这样短的序列可能不足以为预测提供足够的上下文信息。与此同时,由于路径数量巨大,构建有价值的长序列又具有很高的成本且难度很大。(2)在三元组中,关系和实体是以固定顺序出现的两种不同类型的元素。将它们视为同类型元素很可能是不合适的。

为了解决上述问题,我们提出了 DSKG(用于知识图谱的深度序列模型),其使用了一种新结构的 RNN,并且使用了一种专门针对知识图谱的采样方法来进行训练。为了阐释我们的想法,我们设计了一个基本的 RNN 模型作为初始版本(如图 1b 所示)。这个基本模型将输入 s 和 r 视为同类型元素并循环式地处理它们。c 表示一个 RNN 单元,其以之前的隐藏状态和当前元素为输入,预测下一个隐藏状态。实体层中的单元处理像是 s 的实体,而关系层中的单元处理像是 r 的关系。在这个模型中,仅有一个单元按顺序处理所有输入元素,所以 s 和 r 是被输入同一个单元 c 来获得它们各自的输出。然后我们使用 h_s 来预测 s 和 h_r 的关系,进而预测 s→r 的客体。

由于这个基本 RNN 模型仅使用了一个 RNN 单元来处理所有输入序列,所以可能无法很好地建模复杂结构。在 NLP 领域,研究者通常会堆叠多个 RNN 单元来改善结果。我们借用这一思想构建了一个多层 RNN 模型(参见图 1c)。但因为实体和关系的特性非常不同,这个模型仍然不能准确建模知识图谱中的三元组。

如图 1d 所示,我们提出的 DSKG 分别使用了多层 RNN 来处理实体和关系。具体而言,DSKG 为实体层和关系层使用了不同的 RNN 单元,即图中的 c1、c2、c3、c4 全都是各不相同的 RNN 单元。我们相信这种专门针对知识图谱的架构可以在关系形式多样且复杂的情况下表现得更好。因为 DSKG 将预测实体(或关系)看作是一个分类任务,所以我们还提出了一种定制的采样方法,可根据当前训练标签的类型采样负例标签。此外,DSKG 还有能力预测一个实体的关系,这启发了我们使用一种方法来通过关系预测改善实体预测的结果。举个例子,在预测 (USA, contains, ?) 时,模型可以自动滤除人或电影这样的实体,因为这些实体与关系 contains 无关。

我们在两个基准数据集上执行了实体预测实验,结果表明 DSKG 在许多评测指标上都优于多种之前最佳的模型。更进一步,我们在 FB15K-237 [14] 上对 DSKG 进行了评估,结果表明 DSKG 优于其它模型。此外,我们还设计了一种用于三元组预测的知识图谱补全新实验,可作为实体预测的补充。我们的研究表明:相比于通用的多层 RNN 模型,DSKG 能得到更优的结果。我们已在线公开我们的源代码、数据集和实验结果。

3 方法

在这一节,我们首先将描述 RNN 及多层 RNN。然后,我们会提出 DSKG,这是一种专为知识图谱设计的多层 RNN 变体。为了有效地训练 DSKG,我们还提出了一种基于类型的采样方法。最后,我们会介绍一种使用关系预测增强实体预测的方法。

3.1 RNN 及多层 RNN

我们先来看仅有一个 RNN 单元的基本 RNN 模型。给定一个序列 (x_1,…,x_T) 作为输入,基本 RNN 模型的处理方式如下:

其中 f(·) 是一个激活函数,W_h、W_x、b 是参数。h_t 是在时间步骤 t 输出的隐藏状态。

多层 RNN 已经在 NLP 领域的复杂分层架构建模上得到了出色的表现 [5]。通过堆叠多个 RNN 单元,每个元素的复杂特征都可以被分层地处理(见图 1c)。我可以将其写成如下形式:

其中 是第 i 个 RNN 单元的参数。 是第 i 个 RNN 单元在时间步骤 t 的隐藏状态。因此,每个输入元素都会被每个单元按顺序处理,这可以看作是将深度神经网络(DNN)和 RNN 的概念结合到一起。最后,我们可以使用最后一个单元的隐藏状态作为时间步骤 t 的输出 h_t。

3.2 我们提出的深度序列模型

将知识图谱中的三元组看作是序列让我们可以使用 RNN 建模这个知识图谱。但是,这些长度为 3 的序列(即三元组)非常特别:每个三元组中的实体和关系都有非常不同特性而且总是互相交错在一起。因此,我们认为分别为实体和关系 RNN 构建各自的多层 RNN 能帮助模型学习到更为复杂的结构。根据这一直觉想法,我们提出了一种针对知识图谱的多层 RNN,其使用了不同的 RNN 单元来分别处理实体和关系。如图 1d 所示,使用这一架构,整个网络实际上是非循环式的,但仍然还是序列式的。我们可以将该结构写成如下形式:

其中 E 和 R 分别表示实体集和关系集。我们可根据 x_t 的类型选择当前的多层 RNN,然后应用公式 (2) 进行计算。

// 受限于篇幅,有关基于类型的采样方法和使用关系预测增强实体预测的方法在此略过。

4 实验

4.2 实体预测

遵照 [3,14,4] 以及其它许多研究,我们使用了 4 个评测指标:(1)排名第一的结果是正确实体的百分比(Hits@1);(2)正确实体在排名前十的结果的百分比(Hits@10);(3)平均倒数排名(MRR);(4)平均排名(MR)。另外要说明,我们使用的是过滤后的排名 [3],也就是说我们仅在排名阶段保留当前测试的实体。由于 DSKG 仅需单个实体就能预测关系,所以我们报告了所谓的「级联」结果。即,给定一个测试元组 (s,r,o),DSKG 首先预测关系 (s,?) 来得到 r 的排名,然后再预测 (s,r,?) 中的实体,得到 o 的排名。最后,将这两个排名相乘,得到用于比较的结果(即最差排名)。

表 1 给出了在 FB15K 和 WN18 上的实验结果。因为这两个数据集都包含很多逆向三元组,所以仅能学习逆向关系的 InverseModel 也得到了很好的结果。此外,我们可以看到 DSKG 在多数指标上都优于其它模型。尤其是 DSKG 在 Hits@1 指标上是最佳的,这表明 DSKG 能够相当好地准确学习预测实体。即使我们以级联方式评估 DSKG,也仍然得到了相当的结果。

表 1:在两个基准数据集上的实体预测结果。† 表示我们自己使用原研究提供的源代码执行的模型,因为原文献没有使用其中某些指标;- 表示结果未知,因为原文献未报告且我们不能获得/运行源代码

表 2 给出了在 FB15K-237 上的实体预测结果。可以看到:(1)所有模型的表现都下降了。具体来看,InverseModel 完全无力处理这个数据集,这表明所有模型都再也不能通过使用逆向关系直接提升它们的表现了。(2)DSKG 在所有指标上都显著优于其它模型。DSKG(级联)还在某些指标上达到了之前最佳的表现,比如 Hits@10。

表 2:在 FB15K-237 上的实体预测结果

表 3:数据集的统计信息

4.3 三元组预测

DSKG 不仅能预测实体,而且还能预测整个三元组。为了评估 DSKG 在直接预测三元组上的表现,我们构建了一个具有较大窗口的波束搜索器。另外也还有一些能够提升序列预测结果的复杂方法 [8]。具体而言,我们首先要求模型以所有实体为输入来预测关系,然后选出前 10 万个 (实体, 关系) 对来构建出 (s,r,?) 这样的不完整三元组。然后,该模型以这些不完整三元组为输入,预测它们的最后一个实体。最后,我们选择前 100 万个三元组作为输出,并按降序方式对它们进行排序以便评估。

我们使用了精度来评测这些输出的三元组。设 为输出的最佳 n 个三元组的集合, 表示一个知识图谱的所有正确三元组的集合(包括测试集、验证集和训练集), 表示预测得到三元组的集合(包括测试集和验证集)。则与最佳 n 个输出三元组相关的精度 p_n 的计算方式为:

其中, 分别表示 中正确的、预测的和错误的三元组数量。由此,我们可绘制 p_n 随 n 变化的曲线。

我们在三个数据集上执行了实验,并将 DSKG 与两个通用模型 G2 和 G4 进行了比较。G2 是一个通用的 2 层 RNN 模型(见图 1c)。G4 是一个通用的 4 层 RNN 模型,因为 DSKG 也使用了 4 个不同的 RNN 单元。它们也都应用了 DSKG 中所用的所有功能(采样器、dropout 等)。

图 2:在三个数据集上的三元组预测结果

从图 2 上面一行可以看到,DSKG 在所有数据集上都显著优于 G2 和 G4,尤其是在 FB15K-237 上。另外,G4 的表现也比 G2 差。这可能是因为更深度的网络和更多参数会让实体和关系嵌入不适合训练。图 2 下面一行给出了 DSKG 的三元组预测的详细比例。在 FB15K-237 上,DSKG 以 0.47 的精度(前 10 万)正确预测了超过 2000 个三元组。在另外两个更简单的数据集上,DSKG 表现更好。在 FB15K 上以 0.87 的精度(前 40 万)正确预测了 34155 个三元组,在 WN18 上以 0.91 的精度(前 17 万)正确预测了 5037 个三元组。注意,DSKG 在 WN18 上的精度最后出现了陡然下降,这是因为 WN18 仅有 10000 个三元组供预测,而 DSKG 已经输出了所有其所能预测的三元组。

5 分析

5.1 与其它模型的比较

为了分析 DSKG 各个部分的贡献,我们开发了一系列仅包含部分功能的子模型:

  • NR:在训练中没有使用关系损失的 DSKG。构建这个模型的目的是评估最小化关系损失对实体预测的影响。
  • NS(非序列):我们使用了 4 个全连接层(ReLU 作为激活函数)来替换 DSKG 中的 RNN,并减少了关系层和实体层之间的连接。最后,我们添加了一个密集层来组合这两个层的输出。这个模型与 DSKG 仍有一些其它共有特性(比如 dropout 和采样器)。构建该模型的目的是了解序列特性的影响。
  • NRE:没有使用基于关系预测增强实体预测的 DSKG(3.4 节)。

图 3:DSKG 以及其它模型在 FB15K-237 上的表现

图 3 给出了这些模型以及 G2 和 G4 模型在 FB15K-237 的验证集上的表现。我们可从结果中观察到:

  • 序列特性是 DSKG 的关键点。对比 DSKG 和 NR 与 NS,我们可以发现:(1)尽管 NR 保有序列结构,但它的表现仍不及 DSKG,因为 NR 没有学习预测关系;(2)NS 没有使用序列结构,也没有学习预测关系。因此,它是图 3 中结果最差的。
  • 针对知识图谱的多层 RNN 架构能显著提升表现。在 FB15K-237 上,DSKG 在所有指标上都优于 G2 和 G4,即使 DSKG 没有使用关系预测增强也一样。注意,在第 4.3 节,我们已经表明 DSKG 在三元组预测上优于 G2 和 G4。因此,DSKG 中使用的架构建模知识图谱的能力比通用型多层 RNN 模型更好。
  • 关系预测增强方法能进一步优化实体预测结果。DSKG 的表现总是优于 NRE,即使在 MR 指标上也是如此,因为 DSKG 能直接去除很多不正确的实体。

5.2 层数的影响

表 4:在 FB15K-237 上,不同层数的 DSKG 的实体预测结果;‡ 一行是第 4 节所使用的主要结果

5.3 嵌入大小的影响

表 5:在 FB15K-237 上,不同嵌入大小的 DSKG 的实体预测结果 

-End-

实验室介绍:南京大学万维网软件(Websoft)研究组在瞿裕忠教授的带领下,长期从事知识图谱(语义网)及相关技术的研发,研究组成员包括胡伟副教授、程龚副教授以及30余位博士和硕士研究生,近期的研究方向主要包括:智能问答、知识融合和语义搜索。
联系方式:胡伟,whu@nju.edu.cn,微信号:whu1982
网站:http://ws.nju.edu.cn


OpenKG.CN

中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

论文浅尝 | 打通推荐系统与知识图谱: 第一个公开的大规模链接数据集合

本文转载自:RUC智能情报站,知乎专栏链接:https://zhuanlan.zhihu.com/RucAIBox

前言:近年来,知识图谱(KB)被广泛应用于推荐系统(RS),但尚未有公开将推荐系统物品链接到知识图谱实体的数据集。本文结合SIGIR2018论文《Improving Sequential Recommendation with Knowledge-Enhanced Memory Networks》所用数据集 [1],公布了相关链接数据集 [2],希望能对大家有所帮助。

一、动机/引介

近年来,学术界和工业界都致力于利用结构化的知识信息和相关领域的已知事实来提升各项应用。在众多数据形式中,知识图谱高度结构化,能够有效组织和关联相关实体,被广泛运用到各个领域。推荐任务中利用知识图谱提升推荐的质量和可解释性,相关的推荐系统被称为knowledge-aware recommender systems。

为了适应推荐系统和知识图谱相关研究需求,本工作启发式地将推荐数据中的物品链接到大型知识图谱中的实体,为推荐系统的物品提供蕴含丰富语义的结构化知识信息。本工作将其整理,发布为公开的推荐系统-知识图谱链接数据集KB4Rec v1.0。

二、数据集概况

KB4Rec v1.0数据集,构建了推荐系统数据集物品(RS item)到知识图谱实体(KB entity)的链接。在推荐系统方面,选取了三个得到广泛使用的数据集:MovieLens 20M [3]、LFM-1b [4]、Amazon book [5],分别对应电影、音乐和书籍三个领域;在知识图谱方面,选取了研究者常用的Freebase [6]。

KB4Rec v1.0数据集由链接的ID对组成,包括推荐系统的物品ID和Freebase中的实体ID。链接文件片段(电影数据集合MovieLens 20M)如下所示:

25991 m.09pglcq

25993 m.0cjwhb

25994 m.0k443

25995 m.0b7kj8

通过此链接,能够找到部分推荐系统中物品在知识图谱内对应的实体,并通过读取与该实体相关的三元组,获取相应的属性。举个例子,电影“阿凡达”通过链接找到相应实体,读出与之相关的三元组能够在知识图谱中找到相应的演员、导演等属性。

链接数据集(三个领域)的数据统计见下表:

三、链接分析

可以看到不是所有推荐系统中的物品都能够在Freebase中找到对应的实体。对于各领域链接比例(linkage ratio),本工作参照各推荐领域内物品流行度做了相关分析,其中物品流行度由推荐数据中与物品有交互记录的用户数代表。首先,将推荐系统中的物品按流行度升序排序,等分到5个桶(bin)中,展示相应部分链接比例。如下图,可以发现:流行度高的物品更倾向于被Freebase所包含。

针对MovieLens 20M数据集,还对电影的发布时间与链接比例做了分析。对所有电影按发布时间升序排序,等分到10桶(bin)中,展示相应链接比例。如下图所示,可以发现:越早发布的电影越倾向于被Freebase所包含。

四、数据获取

本工作将相关项目部署在github上,数据的获取和使用需遵照相关证书(license)。更多链接和数据集构建的细节请参照我们的相关论文 [2]。

五、相关论文

[1] Jin Huang, Wayne Xin Zhao, Hong-Jian Dou, Ji-Rong Wen, Edward Y. Chang : Improving Sequential Recommendation with Knowledge-Enhanced Memory Networks. SIGIR 2018: 505-514

[2]  Wayne Xin Zhao, Gaole He, Hongjian Dou, Jin Huang, Siqi Ouyang and Ji-Rong Wen : KB4Rec: A Dataset for Linking Knowledge Bases with Recommender Systems. Arxiv 1807.11141.

[3] F. Maxwell Harper, Joseph A. Konstan : The MovieLens Datasets: History and Context. TiiS 5(4): 19:1-19:19 (2016)

[4] Markus Schedl : The LFM-1b Dataset for Music Retrieval and Recommendation. ICMR 2016: 103-110

[5] Ruining He, Julian McAuley : Ups and Downs: Modeling the Visual Evolution of Fashion Trends with One-Class Collaborative Filtering. WWW 2016: 507-517

[6] Google : 2016. Freebase Data Dumps. https://developers.google.com/freebase/ data.

本文作者:何高乐,2018级研究生,目前研究方向为网络表示学习、深度学习,来自中国人民大学大数据管理与分析方法研究北京市重点实验室。

RUC 智能情报站由中国人民大学信息学院的赵鑫副教授 (微博 @赵鑫RUC) 所带领的研究小组维护。关注的领域是数据挖掘、社会计算和机器学习。该专栏会定期会分享相关学术内容,欢迎各位来邮件进行交流,也欢迎大家向该专栏投稿精品文章。知乎账号联系人为 窦洪健,负责资讯、投稿、宣传以及一切账号相关问题,邮箱为43404873@qq.com;企业和转载合作需求请致谢赵鑫老师,邮箱为 batmanfly@qq.com。赵鑫老师个人情况详见个人主页 http://playbigdata.com/batmanfly 和 http://info.ruc.edu.cn/academic_professor.php?teacher_id=55 。


OpenKG.CN

中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

 

论文浅尝 | 利用Lattice LSTM的最优中文命名实体识别方法

本文转载自公众号:机器之心

选自arXiv

作者:Yue Zhang、Jie Yang

机器之心编译

参与:路、王淑婷

近日,来自新加坡科技设计大学的研究者在 arXiv 上发布了一篇论文,介绍了一种新型中文命名实体识别方法,该方法利用 Lattice LSTM,性能优于基于字符和词的方法。与基于字符的方法相比,该模型显性地利用词和词序信息;与基于词的方法相比,lattice LSTM 不会出现分词错误。这篇论文已被 ACL 2018 接收。

作为信息抽取的一项基本任务,命名实体识别(NER)近年来一直受到研究人员的关注。该任务一直被作为序列标注问题来解决,其中实体边界和类别标签被联合预测。英文 NER 目前的最高水准是使用 LSTM-CRF 模型实现的(Lample et al., 2016; Ma and Hovy, 2016; Chiu and Nichols, 2016; Liu et al., 2018),其中字符信息被整合到词表征中。

中文 NER 与分词相关。命名实体边界也是词边界。执行中文 NER 的一种直观方式是先执行分词,然后再应用词序列标注。然而,分割 → NER 流程可能会遇到误差传播的潜在问题,因为 NE 是分割中 OOV 的重要来源,并且分割错误的实体边界会导致 NER 错误。这个问题在开放领域可能会很严重,因为跨领域分词仍然是一个未解决的难题(Liu and Zhang, 2012; Jiang et al., 2013; Liu et al., 2014; Qiu and Zhang, 2015; Chen et al., 2017; Huang et al., 2017)。已有研究表明,中文 NER 中,基于字符的方法表现要优于基于词的方法(He and Wang, 2008; Liu et al., 2010; Li et al., 2014)。

图 1:词-字符网格。

基于字符的 NER 的一个缺陷在于无法充分利用显性的词和词序信息,而它们是很有用的。为了解决这一问题,本论文研究者利用 lattice LSTM 来表征句子中的 lexicon word,从而将潜在词信息整合到基于字符的 LSTM-CRF 中。如图 1 所示,研究者使用一个大型自动获取的词典来匹配句子,进而构建基于词的 lattice。因此,词序如「长江大桥」、「长江」和「大桥」可用于语境中的潜在相关命名实体消歧,如人名「江大桥」。

由于在网格中存在指数级数量的词-字符路径,因此研究者利用 lattice LSTM 结构自动控制从句子开头到结尾的信息流。如图 2 所示,门控单元用于将来自不同路径的信息动态传送到每个字符。在 NER 数据上训练后,lattice LSTM 能够学会从语境中自动找到更有用的词,以取得更好的 NER 性能。与基于字符和基于词的 NER 方法相比,本论文提出的模型的优势在于利用利用显性的词信息而不是字符序列标注,且不会出现分词误差。

图 2:Lattice LSTM 结构。

结果显示该模型显著优于基于字符的序列标注模型和使用 LSTMCRF 的基于词的序列标注模型,在不同领域的多个中文 NER 数据集上均获得最优结果。

模型

研究者遵循最好的英文 NER 模型(Huang et al., 2015; Ma and Hovy, 2016; Lample et al., 2016),使用 LSTM-CRF 作为主要网络结构。形式上,指定输入句子为 s = c_1, c_2, . . . , c_m,其中 c_j 指第 j 个字符。s 还可以作为词序列 s = w_1, w_2, . . . , w_n,其中 w_i 指句子中的第 i 个词,使用中文分词器获得。研究者使用 t(i, k) 来指句子第 i 个词中第 k 个字符的索引 j。以图 1 中的句子为例。如果分词是「南京市 长江大桥」,索引从 1 开始,则 t(2, 1) = 4 (长),t(1, 3) = 3 (市)。研究者使用 BIOES 标记规则(Ratinov and Roth, 2009)进行基于词和基于字符的 NER 标记。

图 3:模型。

表 4:在开发集上的结果。

表 5:在 OntoNotes 上的主要结果。

论文:Chinese NER Using Lattice LSTM

  • 论文链接:https://arxiv.org/abs/1805.02023
  • 项目链接:https://github.com/jiesutd/LatticeLSTM

摘要:我们研究了用于中文命名实体识别(NER)的 lattice LSTM 模型,该模型对输入字符序列和所有匹配词典的潜在词汇进行编码。与基于字符的方法相比,该模型显性地利用词和词序信息。与基于词的方法相比,lattice LSTM 不会出现分词错误。门控循环单元使得我们的模型能够从句子中选择最相关的字符和词,以生成更好的 NER 结果。在多个数据集上的实验证明 lattice LSTM 优于基于词和基于字符的 LSTM 基线模型,达到了最优的结果。

OpenKG.CN

中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

 

论文浅尝 | 问题生成(QG)与答案生成(QA)的结合

本文转载自公众号:徐阿衡

梳理一下 MSRA 3 篇关于 QG 的 paper:

  • Two-Stage Synthesis Networks for Transfer Learning in Machine Comprehension
  • Question Answering and Question Generation as Dual Tasks
  • A Joint Model for Question Answering and Question Generation

QG 系列其他的笔记(见徐阿衡公众号):

  • 论文笔记 – Machine Comprehension by Text-to-Text Neural Question Generation
  • 论文笔记 – Semi-Supervised QA with Generative Domain-Adaptive Nets

目前的 QA 大多是 抽取式(extractive)的任务,答案是文本中的一个连续片段,通常是命名实体这类语义概念,而 QG 是生成式的(abstractive),问句是完整句子,部分单词可能是文档中没出现过的,很多情况下,问句和答案的语言结构不同,因此甚至可以看做两种不同类型的数据。所以第 1 篇 SynNet 就把答案生成当作序列标注任务,把 QG 当作生成任务;第 3 篇 Joint Model 从另一个角度出发,把 QA 和 QG 都当作生成任务,放到同一个 encoder-decoder 框架下,用转变输入数据来实现联合训练,用 pointer-softmax 来处理抽取/生成问题。

另外,QA 和 QG 任务在概率上是有联系的,可以通过 q、a 的联合概率分布联系起来,P(q|a) 就是 QG 模型,P(a|q) 类似 QA 模型,于是第 2 篇 dual tasks 就把这两个任务当做对偶任务,用一个正则项把两个任务联合在一起。

Two-Stage Synthesis Networks for Transfer Learning in MC

我们知道 MRC 系统的输入是 (passage, question, answer) 三元组,q 和 a 依赖人工标注,这是制约 MRC 落地应用的最大问题之一,这篇 paper 提出了 SynNet,利用已有领域中可用的监督数据为基础进行训练,训练完成后迁移到新的领域中,根据新领域的文档,模型能自动合成与文档 p 相关的 (q, a) 对,替代昂贵的人工标注,为 MRC 的迁移落地提供了便利。

SynNet 把 QA 对(question-answer pair)的生成过程 P(q,a|p) 分解为条件概率 P(a|p) P(q|p,a) ,也就是下面两个步骤:

  1. 基于文档生成答案 P(a|p)
学习文档中的 potential “interestingness” pattern,包括文章中可作为常见问题答案的关键知识点、命名实体或语义概念
由于答案是文档的片段,所以看做序列标注任务
  2. 基于文档和答案生成问题 P(q|p,a)
学习生成自然语言的完整问句
作为生成任务

答案合成模块(Answer Synthesis Module),序列标注问题,训练了一个 IOB tagger (4 种标记,start, mid, end, none)来预测段落里的每个单词是不是答案。结构很简单,BiLSTM 对 p 的词向量进行编码,然后加两个 FC 层和一个 Softmax 产生每个单词的 tag likelihoods,选择连续的 span 作为 candidate answer chunks,喂给问题生成模块。

问题合成模块(Question Synthesis Module)学习的是 。模型结构是 encoder-decoder + attention + copy mechanism。通过在段落词向量中加入一个 0/1 特征来表示单词是不是出现在答案中。

训练算法:

在源领域上训练 SynNet,产生新领域的 QA 对,然后和源领域的数据一起来 finetune 源领域的 MC 模型(用 SGD),源领域和新领域的数据采样比是 k:1(paper 里设的 k=4),这主要是为了处理合成数据的噪音问题而进行的正则化操作。

测试阶段也就是用 finetune 完成的 MC 模型回答新领域的问题时,可以对不同时刻的 checkpoints 的 answer likelihoods 做平均,然后用 DP 找到最佳的 answer span ,最大化 ,复杂度是 linear,和 BiDAF 的逻辑相同。

难得的是这篇 paper 还提供了实现细节,其中一个 trick 是,在训练问题合成模块时,他们只用了 SQuAD 的训练集,但是在答案合成模块,还引入了 NER Tagger 来增强答案数据,基本假设任何命名实体都可以被当做某个问题的潜在答案。

在 Ablation Studies 和 Error Analysis 中还提到了一些有趣的发现,具体可以看论文。待解决的问题一个是 copy 机制导致的产生的问句和 paragraph 高度相似的问题,可以通过改进 cost function 在促进解码过程的多样化,另一篇 paper 有提到。还有一个问题是 SynNet 在解决比如数字、人名这种问题的效果很好,但是在需要一些推理的问题,像是 what was / what did 这些问题就很弱了,这也是后续的研究方向。

这篇 paper 个人非常喜欢,实现细节和一些结果的分析都很赞。

Question Answering and Question Generation as Dual Tasks

把 QA 和 QG 当作对偶任务。关键还是下面这个式子:

P(q|a) 即 QG 模型,和 P(a|q) 即 QA 模型可以通过联合概率联系起来,于是这里把 QA 和 QG 当作对偶任务,Seq2Seq 实现 QG,RNN 实现 QA,通过一个正则项把两个任务联系起来,联合训练一起学习 QA 和 QG 的参数,损失函数服从下面的条件:

其中 分别对应答案句和问句的语言模型。

这里 QA 任务不再是在 context 里选 answer span 的任务,而被看作是在一组候选答案句集合中选择可能性最高的 answer sentence 的一个排序任务。也就是说,这里的 a 是答案所在的句子,而不是前一篇 paper 提到的简单的语义概念/实体。

QG 任务还是一个生成任务,输入是答案句 a。要注意的是这里 QA 和 QG 的输入都没有 p,都只考虑了句子层面的信息。

和之前介绍的 GDAN 不同的是,这里 QA 和 QG 的地位是相同的,也并不需要预训练 QA。

下面看一下模型细节:QA 模型 分别用 BiGRU 对 q 和 a 进行编码,拼接 last hidden state 作为向量得到 v_q 和 v_a,question-answer pair 的表达由四个向量拼接构成 , c(q,a) 表示 q,a 的共现词,对应的词向量表达通过引入额外的 embedding 矩阵  实现,d_c 表示词共现向量的维度 |V_c| 则是词汇表大小, 也就是 qa 相关性函数通过对 v(q,a) 进行线性变换加 tanh 激活得到,最后 softmax 得到概率,损失函数还是 negative log-likelihood。

QG 模型 还是经典的 encoder-decoder + attention 模型,输入是 answer sentence,还是用 BiGRU 进行编码,连接两个方向的 last hidden state 作为 encoder 的输出以及 deocder 的初始状态。对 attention 做了改进,希望模型能记住 answer sentence 中哪些 context 被使用过了,在产生 question words 的时候就不再重复使用。

拼接 s_t 和 c_t,接一个 linear layer 和 softmax 得到输出单词在词汇表上的概率分布,一个 trick 是 softmax 输出维度取 top frequent question words,OOV 用 attention probability 最高的词替换,相当于对文档单词的一个 copy 机制,当然也可以用 pointer network 来做。

模型每次输入 m 个 QA 对正例和 m 个负例,通过 QG 和 QA 各自模型计算各自 loss,再加上一个正则化项一起计算参数梯度并更新参数。

正则化 dual 项利用了 QA 和 QG 的对偶关系:

考虑到  和 QA 模型的输出有差异,因此给定 q,sample 一系列 answer sentences A’,从中得到 

在实现细节里提到模型对 question words 和 answer words 用了不同的 emebdding 矩阵来学习特定的语义。另外 sampled answer sentence 来自其他的 passage,这降低了 QA 的难度。

结果分析再次证明了 word co-occurrence 是一个简单但非常有效的特征。

实验设计部分不大能看出模型的实际效果,不明白为什么不直接刷榜看一下结果。另外 QG 部分的评价指标也只用了 BLEU-4 分数,对 fluency 没有进行说明。

We first report results on the MARCO and SQUAD datasets. As the dataset is splitted by ourselves, we do not have pre- viously reported results for comparison.

A Joint Model for Question Answering and Question Generation

这篇和上篇都是讲怎么同时生成答案和问题,不同的是上篇通过一个 dual regularization term 将两者联合起来训练,这里把 QA 和 QG 任务都作为生成任务,模型基本结构还是 Seq2Seq + Attention + Pointer Softmax,和之前提到的一篇 论文笔记 – Machine Comprehension by Text-to-Text Neural Question Generation 差不多。输入是文档,以及一个 condition sequence,在 QA 任务里表现为 question word sequence,给定 question 生成 answer;QG 任务里表现为 answer word sequence,给定 answer 生成 qestion,condition 由一个 0/1 变量来控制,表示收到的数据是给 a-gen 还是给 q-gen。Joint training 通过对输入数据的转换实现。

Pointer-softmax 一定程度上能解决 extractive/abstractive 的混合问题,通过选择 copy 文档的单词还是生成词汇表的单词来产生下一个单词,表达了 extractive/abstractive 的切换。这带来的一个额外好处是可以产生 abstractive answer。

具体来讲,Encoder 里,词向量和字向量拼接得到 word embedding,其中字向量用 BiLSTM 产生,word embedding 经过另一个 BiLSTM 编码得到文档编码 h^d_i 和条件序列的编码 h^c_j。

条件序列的另一种编码是“抽取式的”,也就是从 document encoding 中直接抽取出出现在 condition sequence 中的单词的对应部分,这和 论文笔记 – Machine Comprehension by Text-to-Text Neural Question Generation 原理相同。然后抽取的向量经过 BiLSTM 产生对应编码 h^e_k。两种条件序列的编码 h^c_j 和 h^e_k 的 final state 分别为 h^c_J 和 h^e_K。在 a-gen mode 也就是对问句进行编码是采用 h^c_J,在 q-gen mode 也就是对答案进行编码时采用 h^e_K,相当于模拟了 extractive 和 abstractive 的特性。

Decoder 用了 pointer-softmax mechanism,比之前的工作复杂一些,具体可以戳阅读原文或者看 paper。

损失函数

实现细节里,encoder 用了整个词表,decoder 用了训练数据里 gold question 中的频率最高的 100 个单词的词表。另外一个 trick 是 decoder 保留了之前产生的单词的历史来防止输出的重复。

联合训练下,a-gen 的表现有显著提升,q-gen 略有下降。一个直观结论是,模型并没有提高 QA 任务的效果,但是增加了 QG 的能力。

过去大多模型都把 QA 当做 point to answer span within a document 而不是 NLG 任务,这一篇的创新之处就在于把 QA 也当作了生成问题,与 QG 放到同一个框架下,用 pointer-softmax 来调节生成/抽取的比率,给 QA 也增加了“生成”的能力。

一个显著优势是,和上一篇 paper 相同,这里不需要预训练 QA,可以直接用 QG 辅助 QA 的实现同时给模型提供QG 的能力。

a key distinction of our model is that we harness the process of asking questions to benefit question answering, without training the model to answer the generated questions.

MSRA 出品的 QG 系列的 paper 在各自模型及实现上有共性也有个性,一些 trick 基本是通用的,具体的实用性能还待具体领域的实践检验。


OpenKG.CN

中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

 

文章转载自公众号

徐阿衡

 

论文浅尝 | 近期论文精选

本文转载自公众号 PaperWeekly, 对我们近期的论文浅尝进行了精选整理并附上了相应的源码链接,感谢 PaperWeekly

TheWebConf 2018

■ 链接 | https://www.paperweekly.site/papers/1956

■ 解读 | 花云程,东南大学博士,研究方向为自然语言处理、知识图谱问答

动机

对于 KBQA 任务,有两个最为重要的部分:其一是问题实体识别,即将问题中的主题实体识别出来,并与 KB 做实体链接;其二是谓词映射

对于主题实体识别任务,之前的做法多为依靠字符串相似度,再辅以人工抽取的特征和规则来完成的。但是这样的做法并没有将问题的语义与实体类型、实体关系这样的实体信息考虑进来。

实体类型和实体关系,很大程度上,是与问题的上下文语义相关的。当只考虑实体关系时,会遇到 zero-shot 的问题,即测试集中某实体的关系,是在训练集中没有遇到过的,这样的实体关系就没法准确地用向量表达。

因此,为了解决上述问题,本文首先利用 entity type(实体类型)的层次结构(主要为实体类型之间的父子关系),来解决 zero-shot 的问题

如同利用 wordnet 计算 word 相似度的做法一般,文章将父类型的“语义”视为所有子类型的“语义”之和。一个实体总是能够与粗颗粒的父类型相关,例如一个实体至少能够与最粗颗粒的 person、location 等类型相连。这样,利用实体所述的类型,在考虑实体上下文时,就可以一定程度上弥补实体关系的 zero-shot 问题。

此外,本文建立了一个神经网络模型 Hierarchical Type constrained Topic Entity Detection (HTTED),利用问题上下文、实体类型、实体关系的语义,来计算候选实体与问题上下文的相似度,选取最相似的实体,来解决 NER 问题。

经过实验证明,HTTED 系统对比传统的系统来说,达到了目前最优的实体识别效果

贡献

文章的贡献有:

  • 利用父子类型的层次结构来解决稀疏类型训练不充分的问题;
  • 设计了基于 LSTM 的 HTTED 模型,进行主题实体识别任务;
  • 提出的模型通过实验验证取得了 state-of-art 的效果。

方法

本文首先对于父子类型的层次结构进行解释和论述,也是 HTTED 的核心思想。

本文认为,父类型的语义视为接近于所有子类型的语义之和。例如父类型 organization 的语义,就相当于子类型 company、enterprise 等语义之和。如果类型是由定维向量表示,那么父类型的向量就是子类型的向量之和。

此外,由于在数据集中,属于子类型的实体比较稀疏,而父类型的实体稠密,如果不采用文中的方法,那么稀疏的子类型将会得不到充分的训练。若将父类型以子类型表示,那么父子类型都可以得到充分地训练。

▲ 图1:HTTED模型图

其次是对文中模型的解释。如上图 1 所示,HTTED 使用了三个编码器来对不同成分编码。

其一,是问答上下文编码器,即将问题经过分词后得到的 tokens,以预训练得到的词向量来表示,并依次输入双向 LSTM 进行第一层的编码;此后,将双向 LSTM 得到的输出拼接,再输入第二层的 LSTM 进行编码,即得到表示问题上下文的 d 维向量 q。

其二,是实体类型编码器,即对于某个候选实体 e,得到其连接的类型,并将父类型以所有子类型向量之和表示,再将这些类型对应的向量输入一个 LSTM 中进行编码,得到实体类型的 d 维向量 et。

其三,是实体关系编码器,即对于某个候选实体 e,得到其所有实体关系,并表示成向量。此外,对于实体关系,将其关系名切割为 tokens,并以词向量表示。然后将实体关系和实体关系名这两种向量,输入一个 LSTM 中进行编码,得到实体关系的d维向量 er。

得到三个向量后,文章认为实体的语义可以由实体类型、实体关系近似表达,所以有:

而在训练时,设置一个 margin,则 ranking loss 为:

其中 γ 为超参数。

实验结果

文章使用单关系问答数据集 SimpleQuestions 和知识图谱 FB2M,并有 112 个具有层次父子关系的实体类型。

HTTED 的词向量为经过预训练的,关系向量是初始随机的,而类型向量中,叶子类型初始随机,父类型的向量由子类型的向量累加得到。如下图 2 所示,为 HTTED 与其他系统的效果对比,其中 -Hierarchy表示 HTTED 去除了实体类型的层次结构表示。

▲ 图2:主题实体识别效果对比图

由图 2 可见,HTTED 为 state-of-art 的效果。并且,将实体类型的层次结构去除,HTTED 的准确性下降很多。可见层次类型约束对于该模型的重要性。

由下图 3 可见,由于使用了层次结构的类型,同名的实体被识别出来,但是与问题上下文更相关的实体都被挑选出来,所以能够正确识别到主题实体。

▲ 图3:主题实体识别示例图

总结 

这篇文章,主要有两个主要工作:其一,是引入了层次结构的实体类型约束,来表达实体的语义,使得与问题上下文相关的实体,更容易被找到;其二,是建立了基于 LSTM 的 HTTED 模型,提高了主题实体识别的效果。

AAAI 2018

■ 链接 | https://www.paperweekly.site/papers/1957

■ 解读 | 张文,浙江大学博士生,研究方向知识图谱的分布式表示与推理

动机

知识图谱的分布式表示旨在将知识图谱中的实体和关系表示到连续的向量空间中,本文考虑的问题是如何将知识库的分布式表示和逻辑规则结合起来,并提出了一个新的表示学习方法 RUGE (Rule-Guided Embedding)

贡献

1. 本文提出了一种新的知识图谱表示学习方法 RUGE,RUGE 在向量表示 (embeddings) 的学习过程中迭代地而非一次性地加入了逻辑规则的约束;

2. 本文使用的是已有算法自动挖掘的规则,RUGE 的有效性证明了算法自动挖掘的规则的有效性;

3. 本文提出的方法 RUGE 具有很好的通用型,对于不同的逻辑规则和不同置信度的规则的鲁棒性较好。

方法 RUGE 

RUGE 方法的输入有三个部分:

  • 已标记的三原组:知识库中已有三元组;
  • 未标记的三元组:知识库中不存在的三元组。在这篇论文中未标记的三元组只考虑了能够由逻辑规则推导出的三元组;
  • 概率逻辑规则:本文主要考虑了一阶谓词逻辑规则,每一个逻辑规则都标有一个成立的概率值。实验中使用的概率规则来自于规则自动挖掘系统 AMIE+。

模型核心想法如下:

三元组表示:

本文采用了 ComplEx 作为基础的知识库分布式表示学习的模型,在 ComplEx中,每一个实体和关系都被表示为一个复数向量,一个三元组 (e_i,r_k,e_j) 的得分函数设计如下:

其中 Re<x> 表示取 x 实部的值,bar{e}_j 为 e_j 的共轭向量。正确的三元组得分函数值会较高而不正确的三元组得分函数的值会较低。

逻辑规则的表示:

本文借鉴了模糊逻辑的核心思想,将规则的真值看作其组成部件真值的组合。例如一个已经实例化的规则 (e_u, e_s,e_v) =(e_u, e_t,e_v) 的真值将由 (e_u, e_s,e_v) 和 (e_u, e_t,e_v) 的真值决定。根据(Guo et al. 2016)的工作,不同逻辑算子的真值计算如下:

由上三式可推出规则真值计算公式:

此规则计算公式是后面规则应用的一个重要依据。

未标记三元组标签预测:

这一步是整个方法的核心,目的在于对未标记三元组的标签进行预测,并将这些三元组添加到知识图谱中,再次进行知识图谱的分布式表示学习训练,修正向量结果。

标签预测的过程主要有两个目标:

目标一:预测的标签值要尽可能接近其真实的真值。由于预测的三元组都是未标记的,本文将由当前表示学习的向量结果按照得分函数计算出的结果当作其真实的真值。

目标二:预测的真值要符合对应逻辑规则的约束,即通过规则公式计算出的真值要大于一定的值。其中应用的规则计算公式如下:

其中 φ(e_u, e_s,e_v) 是当前向量表示计算的结果,s(e_u, e_t,e_v) 是要预测的真值。真值预测的训练目标如下:

通过对上式对求 s(x_u) 导等于 0 可得到 s(x_u) 的计算公式:

向量表示结果的修正:

将预测了标签的三元组添加到知识图谱中,和已由的三元组一起进行训练,来修正向量学习,优化的损失函数目标如下:

上式前半部分是对知识图谱中真实存在的三元组的约束,后半部分为对预测了标签的三元组的约束。

以上步骤在模型训练过程中迭代进行。

实验

链接预测:

从实验结果可以看出,规则的应用提升了表示学习的结果

EMNLP 2017

■ 链接 | https://www.paperweekly.site/papers/713

■ 解读 | 刘兵,东南大学在读博士,研究方向为自然语言处理

动机

近年来基于深度学习方法的远程监督模型取得了不错的效果,但是现有研究大多使用较浅的 CNN 模型,通常一个卷基层加一个全连接层,更深的 CNN 模型是否能够更好地解决以有噪声的标注数据为输入的远程监督模型没有被探索。

为了探索更深的 CNN 模型对远程监督模型的影响,本文设计了基于残差网络的深层 CNN 模型。实验结果表明,较深的 CNN 模型比传统方法中只使用一层卷积的简单 CNN 模型具有较大的提升。

方法

本方法的模型结构如下图所示:

输入层:每个单词使用词向量和位置向量联合表示;

卷基层:为了得到句子更高级的表示,采用多个卷基层堆叠在一起。为了解决训练时梯度消失的问题,在低层和高层的卷基层之间建立捷径连接;

池化层和 softmax 输出层。

实验

实验在远程监督常用的数据集 NYT-Freebase 上进行。实验结果表明:

本文提出的方法采用 9 个卷基层时达到最好的效果,这时不适用注意力机制和 piecewise pooling 性能也接近了使用注意力和 piecewise pooling 的方法。结果如下表所示。

不使用残差网络的深层 CNN 模型,当层数较深时效果变差。使用残差网络可以解决其无法传播的问题,效果改善很多;结果如下图所示。

EMNLP 2017

■ 链接 | https://www.paperweekly.site/papers/1960

■ 源码 | http://github.com/LiyuanLucasLiu/ReHession

■ 解读 | 刘兵,东南大学博士,研究方向为自然语言处理

动机

现有的关系抽取方法严重依赖于人工标注的数据,为了克服这个问题,本文提出基于异种信息源的标注开展关系抽取模型学习的方法,例如知识库、领域知识。

这种标注称作异源监督(heterogeneous supervision),其存在的问题是标注冲突问题,即对于同一个关系描述,不同来源的信息标注的结果不同。这种方法带来的挑战是如何从有噪声的标注中推理出正确的标签,以及利用标注推理结果训练模型。

例如下面的句子,知识库中如果存在 <Gofraid,born_in, Dal Riata> 这个三元组,则将下面的句子标注为 born_in 关系;而如果使用人工模板“* killed in*”进行匹配,则会将该句子标注为 kill_in 关系。

Gofraid(e1) died in989, said to be killed in Dal Riata(e2).

为了解决这个问题,本文提出使用表示学习的方法实现为关系抽取提供异源监督

创新点

本文首次提出使用表示学习的方法为关系抽取提供异源监督,这种使用表示学习得到的高质量的上下文表示是真实标签发现和关系抽取的基础。

方法

文章方法框架如下:

▲ 关系描述表示方法

1. 文本特征的向量表示。从文本上下文中抽取出文本特征(基于pattern得到),简单的one-hot方法会得到维度非常大的向量表示,且存在稀疏的问题。为了得到更好的泛化能力,本文采用表示学习的方法,将这些特征表示成低维的连续实值向量;

2. 关系描述的向量表示。在得到文本特征的表示之后,关系描述文本依据这些向量的表示生成关系描述的向量表示。这里采用对文本特征向量进行矩阵变换、非线性变换的方式实现;

3. 真实标签发现。由于关系描述文本存在多个可能冲突的标注,因此发现真实标签是一大挑战。此处将每个标注来源视为一个标注函数,这些标注函数均有其“擅长”的部分,即一个标注正确率高的语料子集。本方法将得到每种标注函数擅长的语料子集的表示,并以此计算标注函数相对于每个关系描述的可信度,最后综合各标注函数的标注结果和可信度,得到最终的标注结果;

4. 关系抽取模型训练。在推断了关系描述的真实标签后,将使用标注的语料训练关系抽取器。

值得指出的是,在本方法中,每个环节不是各自独立的,真实标签发现与关系抽取模型训练会相互影响,得到关系上下文整体最优的表示方法。

实验结果

本文使用 NYT 和 Wiki-KBP 两个数据集进行了实验,标注来源一方面是知识库,另一方面是人工构造的模板。每组数据集进行了包含 None 类型的关系抽取,和不包含 None 类型的关系分类。

结果如下表所示,可见本文的方法相比于其他方法,在两个数据集的四组实验中均有较明显的性能提升。

ACL 2017

■ 链接 | https://www.paperweekly.site/papers/1961

■ 源码 | https://github.com/stanfordnlp/cocoa

■ 解读 | 王旦龙,浙江大学硕士,研究方向为自然语言处理

本文研究了对称合作对话(symmetric collaborative dialogue)任务,任务中,两个代理有着各自的先验知识,并通过有策略的交流来达到最终的目标。本文还产生了一个 11k 大小的对话数据集

为了对结构化的知识和非结构化的对话文本进行建模,本文提出了一个神经网络模型,模型在对话过程中对知识库的向量表示进行动态地修改。

任务

在对称合作对话任务中,存在两个 agent,每个代理有其私有的知识库,知识库由一系列的项(属性和值)组成。两个代理中共享一个相同的项,两个代理的目标是通过对话找到这个相同的项。

数据集

本文建立了一个对称合作对话任务数据集,数据集中知识库对应的 schema  中包含 3000 个实体,7 种属性。数据集的统计信息如下所示:

模型

针对对称合作对话任务,本文提出了 DynoNet (Dynamic Knowledge GraphNetwork),模型结构如下所示:

Knowledge Graph 

图谱中包含三种节点:item 节点,attribute 节点,entity 节点。图谱根据对话中的信息进行相应的更新。

Graph Embedding 

t 时刻知识图谱中每个节点的向量表示为 V_t(v),向量表示中包含了以下来源的信息:代理私有知识库的信息,共享的对话中的信息,来自知识库中相邻节点的信息。

Node Features 

这个特征表示了知识库中的一些简单信息,如节点的度(degree),节点的类型。这个特征是一个 one-hot 编码。

Mention Vectors 

Mentions vector M_t(v) 表示在 t 时刻的对话中与节点 v 相关的上下文信息。对话的表示 u_t 由个 LSTM 络计算得到(后文会提到),为了区分 agent 自身产生的对话语句和另一个代理产生的对话语句,对话语句表示为:

Mentions Vector 通过以下公式进行更新:

Recursive Node Embeddings 

一个节点对应的向量表示也会受到相邻其他节点的影响:

其中 k 表示深度为 k 的节点,R 表示边对应的关系的向量表示。

最后节点的向量表示为一系列深度的值的连接结果。

本文中使用了:

Utterance Embedding 

对话的向量表示 u_t 由一个 LSTM 网络计算得到。

其中 A_t 为实体抽象函数,若输入为实体,则通过以下公式计算:

若不为实体,则为文本对应的向量表示进行 zero padding 的结果(保证长度一致)。

使用一个 LSTM 进行对话语句的生成:

输出包含字典中的词语以及知识库中的实体:

实验结果


OpenKG.CN

中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

转载须知:转载需注明来源“OpenKG.CN”、作者及原文链接。如需修改标题,请注明原标题。