“基于常识知识的推理问题”源代码分析-迭代得到新事实集合

本文深入剖析了DrFact模型中Fact-Follow迭代算法,详细解释了算法的共现检索、语义检索和矩阵运算步骤。同时,对add_middle_hops.py文件的源代码进行了分析,涵盖调用模块、flags参数、preprare_fact2fact_network()函数、main_find_bridge()函数及其主要功能。
摘要由CSDN通过智能技术生成

2021SC@SDUSC

这次源代码分析的内容是在概述中提到的模型算法的第二步,即对事实集合F_0进行Fact-Follow迭代,从而得到新的事实集合,然后再根据新生成的事实集合,进行Fact-Follow迭代,从而得到新的事实集合,循环往复迭代进行t跳(hop)后,得到最终的事实集合F_t

毫无疑问,这次源代码分析的主要内容便在于何谓Fact-Follow迭代。因此,这次的源代码分析共分为两部分,一部分是对抽象的Fact_Follow迭代算法的详细描述,另一部分则是对DrFact模型的源代码的具体分析。

一、 Fact-Follow迭代算法

要了解什么是Fact-Follow迭代算法,紧靠文字的三言两语很难说清,因此我们需要以下图的帮助,这能让我们更加直观的了解Fact-Follow迭代算法是如何进行的。

 1. 检索得到F_t^s

从图中可见,Fact-Follow迭代函数是一个输入参数为问题q和前一跳所得事实集合(第一轮迭代时使用初始化的事实集合F_0F_{t-1},输出本跳迭代新事实集合F_t的函数。

据此,先对前一跳所得事实集合F_{t-1}进行共现检索,即F_t^s = F_{t-1}S,得到F_t^s。具体直观体现在算法图的左下方,红色的F_{t-1}与绿色的矩阵S相乘,得到F_t^s

 2. 语义检索得到F_t^d

下一步,如算法图左上方所示, 红色的F_{t-1}与蓝色的矩阵D相乘,即z_{t-1} = F_{t-1}D,得到z_{t-1}

然后将z_{t-1}和问题q作为函数g的输入参数,即h_{t-1} = g(z_{t-1}, q_t),计算得到向量h_{t-1}

最后ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值