论文阅读记录 DeepPath: A Reinforcement Learning Method for Knowledge Graph Reasoning(强化学习+知识图谱+路径推理)

这是EMNLP 2017年的一篇会议论文,创新点在于将强化学习应用在实体关系路径推理上,在此论文之前,该方向常用的方法是PRA(Path Ranking Algorithm)或者基于知识图谱的编码方法。

下面介绍该论文算法的主要思路:

目标:训练一个神经网络,将实体对的状态映射为关系,在知识图谱中的表现就是将节点对的信息映射为它们之间的路径,从而实现路径推理。

训练过程:

一、随机生成一个三层全连接神经网络,如图:

 其中输入向量200维,编码着要推理的源节点和目标节点的知识图谱上下文信息(编码方法是TransR模型,引用自

Yankai Lin, Zhiyuan Liu, Maosong Sun, Yang Liu, and Xuan Zhu. 2015. Learning entity and relation embeddings for knowledge graph completion. In AAAI, pages 2181–2187.)

 输出向量400维,每个维度代表一个关系的概率,400是关系空间的大小,即KG中共有400种关系。

神经网络初始的参数是随机生成的。

二、采用监督信息训练神经网络

1. 监督信息:三元组(E1, E2, relation);

2. 在知识库KB中使用BFS算法搜索(E1, Emid),(Emid, E2)之间的路径. ① Emid在KB中随机选择,加快搜索速度; ② KB中提前删除E1, E2之间的路径; ③ 每个实体对,最多搜索5条路径;

3. 删除搜索结果的路径中的回路;

4. 使用预训练向量表TransR (Lin et al., 2015)编码路径,例如,对于路径

{([(Esrc,E2),(E2,E3),(E3,E4),....,(Ek,Etarget)],

[relation1, relation2,relation3, ...., relationk] )},

编码为 :

{([(EsrcVEC,EtarVEC), (E2VEC,EtarVEC),  ..., (EkVEC, EtarVEC)],

[r1id, r2id, ..., rkid] )}

5. 将路径输入神经网络,

输入:路径节点(EiVEC, EtarVEC),

输出:动作概率[p1, p2, ..., pk]

期望输出:对应动作[0,0,...1,..,0]

层数:3层

损失函数:L2正则损失

优化方法:Adam梯度下降

三、使用强化学习算法训练神经网络

使用与“一”中相同的监督信息,对于实体对(Esrc, Etar):

1. 以E1为起点;

2. 将(EiVEC, EtarVEC)输入神经网络;

3. 将神经网络的输出用softmax函数处理,取最大概率对应的动作作为下一步动作;

4. 重复步骤2.3.,若在最大步数范围(50步)内找到了Etar,认为成功;若在最大步数范围内没有找到,认为失败;

5. 若成功,则使用找到的路径结果更新神经网络,给予+1的reward;若失败,则给予-1的reward来更新神经网络。(reward作用于loss函数)。

四、结果

论文代码提供的训练是分任务的,一个任务对应一个关系,即经过一个任务训练的神经网络只可以推理单一的关系,并没有提及综合训练的效果。

NELL数据集说明:

文章采用的数据集是NELL数据集(第995次迭代结果),如图:

其中,kb_env_rl.txt是全部的知识图谱信息,其中有75,492个实体,200个关系, 154,213个三元组。论文研究中将200个关系的反转关系也加入进了数据集,所以是400个关系。

 数据集下设有12个任务,文件名即为关系名称,各个任务文件夹下的数据都是为训练该关系路径推理模型而设置的。

任务文件夹内,graph.txt文件中存储着知识图谱三元组,但相比kb_env_rl.txt,这里面将任务需要推理的关系路径对应的三元组删除掉了。

train.pos文件是训练集,也就是对神经网络做监督训练时的使用的监督信息,其中的三元组都是相同的关系,都是该任务对应的要推理的关系。

test.pairs文件是测试集,其中的三元组也都是任务对应要推理的关系。

其余的***2id、***2vec等文件都是编码关系或者实体所需要的信息,论文的实验中比较了多种编码方式,不同的文件存储着不同的编码表。

/*****************************************20240415更新**********************/

关于论文中公式(2)的这个约等于是怎么成立的,我的想法是:

当前的策略网络θ推理出来了路径p,那么这条路径p的概率就是最大的。有一种极大似然的思想,事实上发生的事情概率是最大的。所以在计算的时候,属于路径中的边r_t的概率是最大的,别的关系的概率都可以看作0,因此才有了这步约等于。也就是在累加的过程中,\pi(a|s_t;\theta) 这一项,除了 a=r_t,r_t\in path 的情况,别的情况下都几乎等于0

然后关于蒙特卡洛策略梯度的理解,参考这个帖子:REINFORCE 核心思想介绍 - 知乎

deeppath论文公式(1)中的目标优化函数和蒙特卡洛策略梯度论文中的目标优化函数,也就是这里的公式(5),形式并不一样,但所表达的意思都是一样的。公式5中的τ是表示得到的状态转移轨迹,服从策略π。deeppath公式1中把τ换成了a,也服从策略π,两个变量的效果都是对应不同的轨迹

  • 24
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值