Page 287 - 《软件学报》2026年第2期
P. 287
766 软件学报 2026 年第 37 卷第 2 期
n ∑(
)
T
l
h = A ij U in + A ij U out (3)
i
j=1
其中, U i 和 n U ou 分别表示第 i 个标记的入度和出度表示, T 表示转置.
t
Output
probabilities
Softmax
Feed
L 2×
forward Linear
L 3×
Arc Σ
GCN
probabilities Feed
forward
Σ Multi-head
cross- SynNAT
Feed attention encoder
L 1× β 1−β
forward
Embedding
layer Multi-head Multi-head
self-attention self-attention
Sentence Syntactic
Relation encoder encoder
labels Embedding Embedding
layer layer
Parser
Source sentence Source sentence
图 2 SynNAT 模型图
通过关系三元组 (i, j, r i, j ), 我们获取从节点 v i 到 v j 的输出表示. 其中 r i, 是可学习的关系标签. 因此, 从节点 v i
j
到 v j 的关系 (i, j, r i, j ) 的表示计算如下:
( ( ) )
U = ReLU W out h l−1 ⊕e i,j +b out (4)
out i
其中, e i, 表示从节点 i 到节点 j 的邻接标签关系 r i, 的嵌入表示. 其中, W out ∈ R d×2d 和 b out ∈ R 为模型的参数. ReLU
j
d
j
是激活函数, ⊕ 表示向量拼接操作符.
同理, 从节点 v j 到节点 v i 的输入关系 (j, i, r j,i ) 的表示计算如下:
( ( ) )
U = ReLU W in h l−1 ⊕e j,i +b in (5)
i
in
为了减少误差传播, 受到文献 [51] 的启发, 我们使用从 SuPar [16] 获得的弧概率矩阵作为邻接矩阵 A, 该矩阵提
供了更丰富的依存句法结构信息. 对于 e i,j , 使用最佳头节点 v j 的最佳关系标签. 然后, 将 GCN 子层的输出输入到
前馈 (FF) 子层, 该子层由两个线性变换组成, 并在中间使用 ReLU 激活函数, 如公式 (6) 所示:
( ) ( )
l l
FF h = ReLU W 1 h +b 1 W 2 +b 2 (6)
i i
其中, W 1 ,W 2 ∈ R d×2d , b 1 ,b 2 ∈ R 是模型参数. ReLU 是激活函数.
d
2.4 SynNAT 编码器
L 1 H . 为
L 2
考虑到我们有两个表示, 一个是来自句子编码器的上下文表示 H , 另一个是来自句法编码器的表示
了平衡句法编码器中的句法感知的词元表示 h ( L 2 ) 和句子编码器中的词元表示 h ( L 1 ) 的贡献, 我们使用它们的加权
i i
和作为最终表示, 然后将其输入到 Transformer 解码器中:
en
h = βh +(1−β)h L 2 (7)
L 1
i i i

