Page 286 - 《软件学报》2026年第2期
P. 286

张建新 等: 依存句法信息增强的完全非自回归翻译                                                         765


                 的翻译性能, 显著提升了翻译质量.

                  2   基于依存句法信息增强的 Fully NAT

                  2.1   符号说明
                    给定一个翻译数据集        D, 该数据集包含多个句子对, 每个句子对表示从源语言句子                   X = (x 1 , x 2 ,..., x N ) 到目标

                 语言句子   Y = (y 1 ,y 2 ,...,y M ) 的翻译关系. 其中, N  表示源语言句子的长度, M  表示目标语言句子的长度.
                    源语言句子     X  通过依存句法分析器进行分析, 生成依存句法树              G x =(V x , E x ), 其中, V x 表示一系列节点, 每个单
                 词作为一个节点. E x 表示一系列边, 表示单词之间的依存关系. 通常, 每个句子有一个虚拟根节点, 根节点连接到
                 句子的核心词     (例如谓词). 边的标签通常表示依存关系, 如主语、宾语、修饰语等. 图                   1  展示了对应于句子的依存
                 句法树.

                                                               punct
                                               root
                                                 dobj
                                           nsubj             rcomd   tmod
                                                     det     nsubj
                                         Tom  wears  the  cap  he  bought  yesterday  ·
                                               图 1 句子及其对应的依存句法树

                    我们将   R  表示为依存关系标签的集合. 依存句法树中的每一条边通过三元组                     (i, j, r i, j ) 来表示, 该三元组能够
                 有效且精确地描述给定句子中单词之间的依存关系. 父节点是连接的起始点, 边标签表示具体的连接关系类型, 而
                 子节点是连接的终点. 例如, 三元组         (i, j, r i, j ) 表示从父节点  v i 到子节点  v j 的依存关系, 边的关系标签为  r i, j   ∈ R. 如
                 图  1  所示, 三元组  (wears, Tom, nsubj) 具体表示父节点  wears 到子节点  Tom  的依存关系, 边的关系标签为        nsubj.
                 同时, 连接某个节点的弧分为输入弧和输出弧, 比如, 节点                wears 具有来自节点    root 的输入弧和指向节点       Tom  的
                 输出弧.
                  2.2   句子编码器
                    如后文图    2 所示, SynNAT  模型采用  Transformer 编码器作为句子编码器, 对输入句子进行编码. 句子编码器采
                 用  L 1 个  Transformer 编码器块, 每个块包含多头注意力机制和前馈全连接层, 以获得源句子中每个词元的上下文
                 表示:

                                                    H = Enc 0:L 1 −1 (emb(X))                         (1)
                                                     L 1
                                                                                         (          )
                 其中,  Enc 0:L 1 −1  表示句子编码器, emb(·) 为离散词元的嵌入函数, 将其映射为向量表示:          H = h ,h ,...,h L 1   为源
                                                                                             L 1
                                                                                          L 1
                                                                                      L 1
                                                                                          1  2    N
                 句子  X  在句子编码器的最后一层输出的词元表示. 我们还在句子编码器以及接下来要介绍的句法编码器和解码器
                 的每个子层周围使用了残差连接           [48] , 随后进行层归一化   [49] .
                  2.3   句法编码器
                    我们使用    DepGCN [50] 来编码依存句法树. DepGCN   由多个相同的堆叠块组成, 每个块包括一个              GCN [17] 子层和
                 一个前馈全连接子层. 在句法编码器中, 我们使用了               3  个块. 对于  GCN  子层, 考虑到输入弧和输出弧在节点中的作
                 用可能不同, 我们同时引入了依存输入弧、依存输出弧和依存关系标签.

                                                                (     )
                                                  H = SynEnc 0:L 2 −1  H , A,e                        (2)
                                                                  L 1
                                                   L 2
                 其中,  A ∈ R n×n  为依存关系标签的邻接矩阵, n    为源句子中的节点数.       e ∈ R , 表示邻接关系标签的嵌入, 其中       d  是嵌
                                                                         d
                                                                     (          )
                 入维度.  SynEnc 0:L 2 −1  表示由  DepGCN  模块组成的句法编码器.  H = h ,h ,...,h  L 2   表示从句法编码器最终层获得
                                                                       L 2
                                                                         L 2
                                                                  L 2
                                                                               N
                                                                         2
                                                                       1
                 的源句子的标记表示. 我们采用          GCN  来利用源句子    X  的依存树   G x 中的依存句法知识. 然而, GCN     原本设计用于
                 无标签无向图, 而依存树是一个有标签的有向图. 因此, 我们也将依存关系视为节点, 通过聚合邻近关系来获得每
                 个节点的表示.
                    l-th GCN  中第               h  的计算见公式    (3).
                                                l
                                                i
                                i 个标记的向量表示
   281   282   283   284   285   286   287   288   289   290   291