system: [SYSTEM]

user: 2. 民航陆空通话文本生成模型 本文提出的基于GAN的民航陆空通话文本生成模型框架如图1所示，该模型由两部分组成：文本生成器，文本判别器。 图1. 民航陆空通话文本生成GAN模型 2.1. 文本生成器 在民航陆空通话中，为保证飞行员与管制员的通话语义清晰，通话的规则有以下特点：1) 单词发音特殊，如，1读作幺，A读作ALPHA；2) 通话用词固定，如进近：approach，终止：terminate；3) 句式固定，飞行员与管制员之间严格按照“对方–己方–内容”的固定语法通话，如飞行员(Beijing TWR， CCA123.Request start up.)，管制员(CCA123， Beijing TWR， Start up approved.)。 在民航陆空通话文本生成任务中，生成器的目标是实现文本序列的生成。本文使用RNN [ 14 ] 搭建生成模型。在生成模型中，RNN网络以输入序列 X = ( x 1 ， x 2 ， ⋯ ， x T ) 的one-hot向量为输入，通过RNN网络中隐层的语义提取，得到隐层中包含语义信息的状态序列 ，其计算公式如下(1)所示。 h t = f ( h t − 1 ， x t ) (1) 然后，生成模型中softmax层以状态序列为输入，输出输入序列X的输出标签 Z ( z 1 ， z 2 ， ⋯ ， z m ) 概率分布，计算公式如公式(2)表示。 p ( z t | x 1 ， ⋯ ， x t ) = softmax ( c + V h t ) (2) 其中，C表示偏置量，V表示权值矩阵。 2.2. 文本判别器 在民航陆空通话文本生成中，文本生成器训练需要文本判别器参与，从而生成特定的文本。对于文本生成器生成的结果序列，文本判别器的功能是判别输入的文本序列X是否为真实数据，并通过调整目标函数对生成器进行动态更新。随着深度学习的快速发展，在文本分类任务中，应用深层的CNN网络与RNN网络模型能取得令人满意的效果。本文使用CNN搭建文本判别器，并使用它判别生成器生成的结果序列是否为真实的民航陆空通话文本序列。 对于给定的输入序列 X = ( x 1 ， x 2 ， ⋯ ， x T ) ，本文首先对X进行编码，如公式(3)所示。 χ 1 : T = x 1 ⊕ x 2 ⊕ ⋯ ⊕ x T (3) 其中x t 表示一个k维的词向量，且 ， ⊕ 表示词向量间的连接处理。 χ 1 : T 表示词向量的连接矩阵，且 。对于词向量矩阵，然后使用一个长度为l的卷积核w j 进行卷积，且 w ∈ ℝ l × k ，得到一个新的特征图c i ，其中计算入公式(4)所示。 c j i = φ ( w j ⊗ χ i : i + l − 1 + b ) (4) 其中 表示卷积核与词向量矩阵进行卷积求和运算， φ 表示一个非线性函数。对于卷积神经网络，不同大小的卷积核将会提取不同的民航陆空通话文本语义特征。因此，本文参考 [ 4 ] ，选取最大池化，如公式(5)所示。 c j i = max { c j 1 ， ⋯ ， c j T − l + 1 } (5) 最后在文本生成器中，提取的特征通过一个激活函数为sigmoid函数的全连接层，得到输入文本序列X是真实民航陆空通话文本序列的概率值，其中sigmoid函数形式如公式(6)所示。本文在文本生成器的CNN网络训练中，使用交叉熵损失函数(7)作为目标函数。 sigmoid ( x ) = 1 1 + e − x (6) min { loss ( log D ( Z ) ) − loss ( log ( 1 − D ( Z ) ) ) } (7) 2.3. 模型梯度训练方法 本文参考 [ 15 ] 中模型训练方法，首先使用文本生成器生成一个文本序列，并求输出文本序列的累积期望值 J ( θ ) ，计算公式如公式(8)所示。 J ( θ ) = ∑ Z 1 : T G θ ( Z 1 : T | X ) ⋅ R D G θ ( Z 1 : T − 1 ， X ， z T ， Z ∗ ) (8) 其中， θ 表示生成器G的参数，Z 1:T 表示G生成的文本序列，X表示真实的民航陆空通话文本序列， Z ∗ 表示期望的生成民航陆空通话文本序列。 R D G θ 是一个函数，对于给定的 G θ ，它可以计算文本序列X在当前状态 s ( Z 1 : T − 1 ， X ) ，转移到下一个状态的概率 。文本生成任务的期望是能生成一个被文本判别器判别为真实数据的文本序列，在本文中，使用文本判别器 D ( Z 1 : T n ) 的值作为第n次搜索的结果序列 Z 1 : T n 是真实数据的概率值。但是在实际中，如果 Z 1 : T n 不是一个完整的民航陆空通话文本序列，本文将使用蒙特卡洛树搜索(MCTS)代替文本判别器D的输出值，并使用其输出值训练文本生成器G，在N次的MCTS搜索中有： { Z 1 : T 1 ， ⋯ ， Z 1 : T N } = Mc G θ ( ( Z 1 : t ， X ) ， N ) (9) 其中 Z 1 : T N 表示在时间T内，由MCTS生成的第N个序列。 ( Z 1 : t ， X ) = ( z 1 ， z 2 ， ⋯ ， z t ， X ) 表示当前搜索状态， Z t + 1 ， T N 表示由 G θ 生成的词。综上所述有： R D G θ ( Z 1 : T − 1 ， X ， z T ， Z ∗ ) = { 1 N ∑ n = 1 N D ( Z 1 : T n ) ， Z 1 : T n ∈ Mc G θ ( ( Z 1 : t ， X ) ， N )                   for       t < T D ( Z 1 : t )                                                                                                                                                                                                                                                                                       for         t = T (10) 在文本生成器 的训练中，使用文本判别器D的输出值可以参与 G θ 的迭代更新中，并且可以使用生成的真实文本序列重新训练文本判别器D，如公式(10)所示。 min { loss Z * ∈ P d a t a ( log D ( Z ) ) − loss Z * ∈ G θ ( log ( 1 − D ( Z ) ) ) } (11) 在更新文本判别器D后，将继续对文本生成器 G θ 的权值 θ 进行更新，其计算公式如(11)所示： ∇ J ( θ ) = 1 T ∑ t = 1 T ∑ Z t ∈ Z R D G θ ( Z 1 : T − 1 ， X ， z T ， Z ∗ ) ⋅ ∇ θ ( G θ ( z t | Z 1 : t − 1 ， X ) ) = 1 T ∑ t = 1 T loss z t ∈ G θ [ R D G θ ( Z 1 : T − 1 ， X ， z T ， Z ∗ ) ⋅ ∇ θ log p ( z t | Z 1 : t − 1 ， X ) ] (12) 2.4. 模型训练 生成式对抗网络的训练是一个生成器与判别器博弈的过程，需要生成器与判别器同时参与训练并更新参数，其训练过程具有不稳定的特点。在本文中，首先使用最大似然估计为目标函数对文本生成器进行预训练，并每隔一定的训练次数，使用生成器生成一部分数据，且以最大交叉熵函数为目标函数，使用这部分数据预训练判别器。在对抗训练中，1) 首先本文使用训练完成的文本生成器生成民航陆空通话文本序列，并使用预训练完成的文本判别器D与MCTS搜索方法，对生成的文本计算 R D G θ 值；2) 然后更新文本生成器参数；3) 最后，在规定训练次数中使用更新的文本生成器生成文本，并使用生成文本训练文本判别器。