论文精读-Knowledge Transfer for Out-of-Knowledge-Base Entities: A Graph Neural Net workApproach

IJCAI 2017
文章简介:知识库补全(Knowledge base completion)预测知识库中缺少的信息。本文提出了KBC中的OOKB问题(Out-of-Knowledge-Base) ,即如何处理知识库中(训练样本中)没有的实体查询任务,并给出了相应的模型(是早期KBC中用到图神经网络的方法)。
原文
代码


目录:

1 Introduction

2 OOKB Entity Problem in Knowledge Base Completion

2.1 Knowledge Graph

2.2 KBC:Triplet Classifcation

2.3 OOKB Entity Problem

3 Proposed Model

3.1 Graph-NNs

3.2 Propagation Model on a Knowledge Graph

3.3 Output Model: Score and Objective Functions

4 Experiments

4.1 Implementation and Hyperparameters

4.2 Standard Triplet Classification

4.3 OOKB Entity Experiment

4.4 Stacking and Unrolling Graph-NNs

5 Conclusion


1 Introduction

知识库补全(Knowledge base completion,KBC)目的是预测知识库中缺失的信息,比如说我们的数据中有如下关系:A是B的父亲,B是C的父亲,那模型训练后就可以自动补全A是C的祖父。本文提出了OOKB(out-of-knowledge-base )实体问题即三元组中出现了新的实体(训练集中未出现,即没有这个实体的嵌入)时该如何处理。后来我查了些资料,出现未知的新实体应该是属于拓展知识库了(KBP,Knowledge base population)而不再是知识库补全(KBC),这里的话还是注重在作者解决问题的思路。


比如说Blade-Runner这部电影是一个新的实体,要处理is-a的查询我们需要从现有结构中获取信息。(图中的based-on 后文中auxiliary knowledge)

作者采用了图神经网络(GNN)的方法来建模,这样的好处是模型可以获得OOKB的嵌入。作者认为的contribution有以下三点:
1.对KBC问题中的OOKB情况提出了新的阐述。
2.对包含OOKB实体的KBC任务提出了适合的GNN模型。
3.在标准数据集以及OOKB情况下,作者实验验证了模型的有效性。

2 OOKB Entity Problem in Knowledge Base Completion

2.1 Knowledge Graph

定义

这里定义的正例是从上帝视角看所有成立的三元组,包括知识库中尚未存在的三元组,反例即是不成立的三元组。KBC任务即要找到所有正例的三元组来补全知识库。

2.2 KBC:Triplet Classification

三元组分类是目前用来评测模型KBC性能的方法。


测试集划分

作为一个机器学习的分类问题,我们把知识库G作为训练集(只包含正例,训练时候会使用负采样无监督的训练方法),H是测试集,理想情况下正例包含了所有的缺失的正例三元组,负例为各种不成立的三元组。在标准的三元组分类问题中,所有的实体和关系都在训练集(知识库)中出现过。

2.3 OOKB Entity Problem

在OOKB的情况下,训练和之前一样,但是测试集中会先提供包含新实体的三元组(auxiliary knowledge),即三元组中的实体未在训练集中出现没有嵌入,但是所有关系都是包含在训练集中的。OOKB下的KBC任务即要补全新实体(找到包含新实体的所有正例三元组)。因为新实体没有嵌入,所以我们要通过测试集中提供的包含新实体的三元组(auxiliary knowledge)来对新实体进行嵌入,再完成之后的补全任务。

3 Proposed Model

3.1 Graph-NNs

目前存在的GNN可以将整个图进行嵌入(传统的方法比如邻接矩阵),本文中的方法是把节点(实体)和边(关系)完成嵌入适应KBC。
一个GNN包含两个模型,propagation model和output model。前者通过节点的邻近节点的嵌入完成嵌入(OOKB实体通过auxiliary knowledge获得邻近节点),后者根据任务目标定下一个目标函数进行训练,本文使用的是略微改动的TransE。个人的理解在这里训练时propagation model是对每个实体嵌入做初始化

3.2 Propagation Model on a Knowledge Graph

节点v通过邻接的节点(下图公式中分为进入的节点集合head和出去的节点集合tail)获得。


嵌入过程

本文使用的方法是(2),(3),(4),函数T将三元组的两个向量映射为剩下的那个向量,池化函数P将一个集合的向量映射为一个向量。


transition functions

本文使用的transition functions,BN为batch normalization

几种不同的pooling

可以看出如果采用sum pooling,那公式(4)会退化成公式(1)。
接下来是GNN传播信息的方式,分为 stacking和unrolling。大致意思后者的图是静态的参数共享,前者是动态的传播的每一步参数都不同,见下图。这里作者说的很简略我也没太看明白,也没去查更多的资料以后有机会再补吧。我猜测意思就是计算节点嵌入时如果用到不同深度的邻近节点,则T函数会有不同的参数。


stacked GraphNN

stacked GraphNN

3.3 Output Model: Score and Objective Functions

本文略微修改了TransE的损失函数,原本的公式(7)优化正例得分比负例得分低γ以上,而本文提出的公式(8)优化则是让正例得分靠近0,负例得分至少γ。
作者也没有从数学的层面上解释,只是这样的修改效果更好。


Pairwise-Margin Objective Function

Absolute-Margin Objective Function

4 Experiments

4.1 Implementation and Hyperparameters

本文使用了框架chainer,Adam,α1=0.01,α2= 0.0001,batchsize=5000,标准任务嵌入200维,使用了max pooling,OOKB情况嵌入100维,三种pooling都做了实验。γ取300通过验证集来定的。同时对于一个节点有超过64个邻近节点的情况,考虑到显存限制我们随机取64个。

4.2 Standard Triplet Classification

数据集WN11和FB13通过http://cs.stanford.edu/people/danqi 下载,训练集中不存在负样本,采用负采样来训练(这里用到了TransH中的Bernoulli trick来负采样)。验证集和测试集包含负样本。这里实验没有做广泛使用的Link Prediction,而是Triplet Classification,参数是准确率。数据集及实验结果见下图。

实验结果

4.3 OOKB Entity Experiment

由上文可以知道,在标准情况下测试集中的实体和关系在训练集中都需要出现过(获得嵌入)。在OOKB的情况下实体可以是从未出现过的未知实体,并且引入了auxiliary knowledge所以训练集,验证集,测试集都需要重新划分。划分大致有两个步骤:
1.选定OOKB实体
这里首先从WN11的测试集中抽出N=1000,3000,5000个三元组,用(Head,Tail,Both)三种方法:Head方法表示N个三元组中头实体都是OOKB实体,Tail表示尾实体是,Both表示都是,所以下图中可以看到Both的OOKB实体数量约等于Head和Tail的OOKB实体之和(略小于,因为实体重复的关系)。这样就出现了九种可能的OOKB实体列表。
2.划分数据集
对于WN11中的训练集三元组,若没有出现OOKB实体则保留在训练集中,若出现了1个OOKB实体则加入auxiliary knowledge,若出现了2个OOKB则直接丢弃。测试集则是在第一步的N个三元组中移除掉不包含OOKB实体的(不太懂,不是就是由这N个决定OOKB实体列表的?难道是因为训练集中2个都是OOKB所有被丢弃了),验证集则是在WN11验证集中去除掉包含OOKB实体的。


划分后的数据集情况以及实验结果

Baseline为图神经网络中没有使用T函数直接将邻近节点池化,并且没有修改TransE的结果。

4.4 Stacking and Unrolling Graph-NNs

得出的结果是不要用图神经网络来传播节点信息,使用一次获得节点嵌入就够了。个人理解为初始化的时候只通过一阶近邻计算嵌入足矣。


尴尬

5 Conclusion

我自己的感觉是,文章的思路很有趣,而且是在2017年的时候那时使用图神经网络的尝试还较少。但是结果有些差强人意感觉自圆其说,没有用大的数据集也没有使用更广泛接收的Link prediction作为实验。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容