这是一篇非常有趣的工作,看完会觉得眼前一亮。
论文标题:Reasoning on Knowledge Graphs with Debate Dynamics
发表于AAAI,2020
动机
很多机器学习的任务都是通过将节点与关系嵌入,并计算三元组置信度得分,然后最大化正例的得分得到嵌入向量,但究竟哪一部分对最终的得分起作用是难以解释的,本文模型有个三个模块,分别是两个agent和 judge,对于待查询三元组: q = ( s q , p q , o q ) q=\left(s_{q}, p_{q}, o_{q}\right) q=(sq,pq,oq),两个agent分别寻找证据链证明此三元组为True和False,并有Judge整合所有证据,得到最终结果。(听起来有点像GAN,但看下去会发现并不是)
Agent模块
定义状态States: 记 e t ( i ) e_t^{(i)} et(i)为第i个agent在t时刻查询的位置,则目前的状态可记为: S t ( i ) = ( e t ( i ) , q ) ∈ S = E 2 × R × E S_{t}^{(i)}=\left(e_{t}^{(i)}, q\right) \in \mathcal{S} = \mathcal{E}^{2} \times \mathcal{R} \times \mathcal{E} St(i)=(et(i),q)∈S=E2×R×E
定义行动Actions:从状态 S t ( i ) = ( e t ( i ) , q ) S_{t}^{(i)}=\left(e_{t}^{(i)}, q\right) St(i)=(et(i),q)出发,所有可能到达的节点集合(即 e t ( i ) e_t^{(i)} et(i)的邻居集),记做 A S t ( i ) \mathcal{A}_{S_{t}^{(i)}} ASt(i):
A S t ( i ) = { ( r , e ) ∈ R × E : S t ( i ) = ( e t ( i ) , q ) ∧ ( e t ( i ) , r , e ) ∈ K G } \mathcal{A}_{S_{t}^{(i)}}=\left\{(r, e) \in \mathcal{R} \times \mathcal{E}: S_{t}^{(i)}=\left(e_{t}^{(i)}, q\right) \wedge\left(e_{t}^{(i)}, r, e\right) \in \mathcal{K} \mathcal{G}\right\} ASt(i)={
(r,e)∈R×E:St(i)=(et(i),q)∧(et(i),r,e)∈KG}
定义转移过程:若在状态 S t ( i ) = ( e t ( i ) , q ) S_{t}^{(i)}=\left(e_{t}^{(i)}, q\right) St(i)=(et(i),q)时选择行动