上两周主要完成树形解码器的框架分析以及节点类预测模块的代码编写。既然完成了节点类预测,即符号预测,那么就可以进行分支预测代码的编写,即空间关系的预测,下面记录一下空间关系预测模块的结构
分支预测模块
分支预测模块的总体结构与节点类预测模块基本相同,只在空间注意力机制方面稍微有所不同。在分支预测模块,首先将分支预测模块上一步的隐藏状态 s t − 1 b r \mathbf{s}_{t-1}^{\mathrm{br}} st−1br作为 G R U 1 b r \mathrm{GRU}_{1}^{\mathrm{br}} GRU1br层的上一个隐藏状态,节点的上下文向量 c t node \mathbf{c}_{t}^{\text {node }} ctnode 作为 G R U 1 b r \mathrm{GRU}_{1}^{\mathrm{br}} GRU1br的输入,然后可以得到 G R U 1 b r \mathrm{GRU}_{1}^{\mathrm{br}} GRU1br的隐藏状态 S ~ t b r \widetilde{\mathbf{S}}_{t}^{\mathrm{br}} S
tbr:
s ~ t b r = G R U 1 b r ( c t n o d e , s t − 1 b r ) \widetilde{\mathbf{s}}_{t}^{\mathrm{br}}=\mathrm{GRU}_{1}^{\mathrm{br}}\left(\mathbf{c}_{t}^{\mathrm{node}}, \mathbf{s}_{t-1}^{\mathrm{br}}\right) s
tbr=GRU1br(ctnode,st−1br)
接着分支预测模块 f att b r f_{\text {att }}^{b r} fatt br被用来计算特征映射A上的注意可能概率 α t b