APP下载

注意力的端到端模型生成藏文律诗

2019-05-24色差甲华果才让才让加慈祯嘉措

中文信息学报 2019年4期
关键词:律诗藏文诗句

色差甲,华果才让,才让加,慈祯嘉措,柔 特

(1. 青海师范大学 藏文信息处理教育部重点实验室,青海 西宁 810008;(2. 青海师范大学 藏文信息处理与机器翻译省级重点实验室,青海 西宁 810008)

0 引言

文本生成在自然语言处理中是一项重要的研究内容,并具有三种生成类型,分别是:图像到文本、数据到文本以及文本到文本的生成。图像到文本的生成是计算机通过自动分析图像特征后生成相应的描述;数据到文本的生成是计算机通过自动分析数据特征后生成相应的说明;文本到文本的生成是计算机通过自动分析文本特征后生成相应的新文本。文本到文本的生成按任务可分为多个生成类型,其中比较主流的有:机器翻译[1-3]、对话生成[4-5]、律诗生成[6-7]等,本文着重讨论藏文律诗生成。

在律诗自动生成的发展中,相关研究者使用过规则法、统计法以及基于深度学习的方法等,其中前两种方法的性能会受限于特征的选择和提取。这类方法在律诗自动生成中语法(必须遵守语法规则并且可读)、意义(每句的表达与主题有密切相关)和诗意(律诗必须具有诗意的特征,如节奏,音韵等)等[8]律诗标准的泛化能力相对较弱。已使用过的方法有词语沙拉法、模板法[9]、遗传算法[10]和统计机器翻译法[11]等。目前,深度学习在自然语言处理的各个领域中都备受关注,尤其是在神经网络机器翻译中效果显著,同时在律诗自动生成中也逐渐取得理想的成绩。由中央电视台和中国科学院共同主办、中央电视台综合频道和长江文化联合制作的人工智能现象级节目《机智过人》中,清华大学的九歌自动生成的汉语诗歌震撼了所有嘉宾和观众。九歌的模型[7]建立在神经网络机器翻译模型的基础之上,这类方法可以学习更长的诗句,同时在一定的程度上确保了前后语义的连贯性。

为了通过人工智能的方式让机器更好地理解和生成藏文律诗,本文结合了浩如烟海的藏文经典律诗和不受语种局限的深度学习法来生成全新的藏文律诗。基本框架是一个双向LSTM的编码—解码模型,在此基础上逐渐引入藏文字嵌入、注意力机制和多任务学习。其中多任务学习是指使用三个相同模块去承担不同的生成任务,第一个模块的任务是由藏文主题词来生成藏文律诗的第一句,第二个模块的任务是由第一句生成第二句,第三个模块的任务是由第一句和第二句来生成第三句,或者由第二句和第三句来生成第四句。结合三个模块后能生成更加流利的藏文律诗。

本文的后续部分为:第1节介绍了端到端模型的基础知识;第2节重点阐述本文所使用的模型;第3节给出了详细的实验结果和分析,并对研究语料的整体情况进行介绍;最后对整个工作做了总结,并介绍下一步的研究计划。

1 背景知识

1.1 双向LSTM模型

1997年Schuster[12]等提出了双向RNN(BiRNN)模型,目的是解决单向RNN无法处理后文信息的问题,其基本思路是每个训练序列的前向和后向分别是两个RNN,两者的输出经过某种运算后得到最后的输出。

图1 BiRNN的结构图

图1中,隐藏层和输出层的计算如式(1)所示。

(1)

式(1)中W、U和V是权重,b是偏置,f是激活函数。

双向LSTM(BiLSTM)模型是结合BiRNN和LSTM的优点组成的新模型,可视为将模型中的RNN单元替换成LSTM单元。BiLSTM被广泛应用到自然语言处理的各项任务中,都获得更为出色的结果,比如语音识别[13]、词性标注[14]和句法分析[15]等。

1.2 编码—解码模型

上述的RNN和LSTM都是将一个输入序列映射到一个等长的输出序列,但是将一个输入序列映射到一个不等长的输出序列的应用场景特别多,比如机器翻译、语音识别和问答系统等,其中输入序列和输出序列的长度不一定相同。Bahdanau等在2014年针对这个问题提出一个可变长度序列映射到另一个可变长度序列的架构的模型[16],后来研究者们把这种构架的模型称之为编码—解码(Encoder-Decoder)模型或者序列到序列(sequence to sequence, Seq2Seq)模型。图2是编码—解码模型的结构图。

图2 编码—解码模型的结构图

图2中,编码器和解码器是两个不同的RNN或者是两个不同的LSTM。在编码器中也可用BiRNN或BiLSTM,但解码器中就不能使用双向的模型,因为该模型的任务是通过前t个时刻的信息来预测t+1时刻的信息,所以无法使用t时刻之后的信息。把输入序列X= (X1,X2,...,Xk,...,Xn-1,Xn) 编码成一个向量C,即用编码器把所有输入序列的信息压缩成一个低维的向量。这个向量就是输入序列的向量表示,然后解码器利用该向量来生成最终的输出标签序列。解码器中隐藏层和输出序列的概率计算如式(2)所示。

(2)

结合式(2)和图2可知,编码器中每时刻的隐藏层跟前一刻的隐藏层和前一时刻的输出值有关,而每时刻的输出跟当前的隐藏层、前一时刻的输出值以及量化向量C有关。

1.3 标注意力机制

上述的编码—解码模型中,无法保证在C内包含所有输入序列的信息,因此会丢失一些输入数据的重要信息。针对这种问题,2014年Bahdanau等在编码—解码模型中引入了注意力机制(attention)来处理机器翻译[16],其结果有很大的提升。基本思路是: 从输入序列中捕捉与当前输出信息密切相关的信息,从而提高输出信息的质量,即相关性较高时赋较大的权重,反则赋较小的权重。注意力机制的最终目的是帮助编码—解码模型更好地学习输入序列和输出序列之间的相互关系,从而更好地表示输出序列的信息。在编码—解码模型中引入注意力机制后的结构图如图3所示。

图3 注意力机制的结构图

其计算步骤如式(3)所示。

其中g、f和ω都是激活函数;X表示所有的输入序列;ct表示所有输入序列对解码器中第t时刻输出值的相关权重;etj表示编码器的隐藏层中第j刻隐藏状态和解码器的隐藏层中第t-1时刻隐藏状态对解码器的隐藏层中第t时刻输出值的相关权重。从中可以看出注意力机制的每个权重ct由解码器中的前一刻隐藏状态和编码器的各个隐藏状态共同决定;atj表示编码器的隐藏层中第j时刻隐藏状态对第t时刻输出值的综合影响,并需要用softmax函数进行概率化。

2 注意力的端到端模型生成藏文律诗法

本节介绍如何用注意力机制和多任务学习法来进行端到端的联合建模。在藏文律诗生成中,虽然每个诗句的长度一样,但在本文中考虑了诗句间的语义连贯度,所以每个注意力的端到端模型中,输入和输出序列需要设置不同长度。

2.1 字嵌入

在现有的基于神经网络的律诗生成中,输入向量(词向量或字向量)一般是从高斯分布中随机抽取的。该向量可视为一些符号化表示,因此几乎没有包含任何语义信息。训练模型时优化其他参数的同时优化该输入向量,而语义信息对于律诗生成而言是非常重要的。

分布式表示法是针对独热表示法(one-hot)的缺点而提出的。首先需要将某种语言视为一个固定维度的几何空间;然后通过训练把每个词映射成该空间中的一个点;最后通过两点之间的距离来判断词之间的语义相似性。通常分布式表示又称为字嵌入(embedding),或者称为字向量(word vecter)。在Mikolov等详细介绍字向量的原理并开源训练工具Word2Vec[17]后,字向量在自然语言处理中运用得越来越广泛,而且具有丰富的语义信息。该工具中有两种训练方式: 词袋模型(CBOW)和跳词模型(skip-gram)。本文中将使用训练好的藏文音节向量作为输入特征训练藏文律诗生成模型。

2.2 单任务学习

藏文律诗生成的任务类似于机器翻译任务,是通过源句来自动生成目标句,即通过第一句来生成第二句,以此类推。但不同的是在机器翻译中源句和目标句的语种是不同的,比如藏汉翻译中源句是藏语,目标句是汉语,显然在律诗生成中源句和目标句是同语种。本文借鉴基于神经网络的机器翻译(可简称NMT)模型,因此特意构建了基于注意力机制的端到端模型来生成藏文诗句。该模型的主要任务是通过当前诗句来生成下一诗句,其结构如图4 所示。

图4 注意力机制的端到端模型结构图

从图4中可以看出,该模型输入和出入序列的长度一样,并且在编码器和解码器之间使用了局部注意力机制(luong attention)[18],即不需要在全局的上下文信息中计算相关权重,而在局部的上下文信息中计算即可。同时在编码器中使用了双向的LSTM,在解码器中使用单向的LSTM。输入的藏文音节向量是预先训练好的向量。该模型虽然可以通过三次循环后得到一个藏文律诗,但无法由主题词来生成第一句,并是在生成第三句和第四句时会出现与主题漂移的现象,因此该模型只适合用于单任务,比如只适合用于由第一句来生成第二句。

2.3 多任务学习

前面已简述了只用单注意力机制的端到端模型时会出现的问题,因此针对这些问题需要引入多任务学习方法,也就是通过使用多个模型来承担不同的生成任务。本文中使用了三个注意力的端到端模型来承担三个生成任务,第一个模型的任务是由主题词来生成藏文律诗的第一句,该模型称之为诗字模型(word poems module,WPM);第二个模型的任务是由第一句来生成第二句,该模型称之为诗句模型(sentence poems model,SPM);第三个模型的任务是由第一句、第二句来生成第三句,或者是由第二句、第三句来生成第四句,该模型称之为诗块模型(context poems model,CPM);由WPM、SPM和CPM组成的模型在该文中称之为藏文律诗生成模型(generating tibetan poems model,GTPM)。

图5 GTPM的结构图

3 实验

在本实验中选用的评价指标有两种,分别为: 常用于机器翻译的BLEU值和自动文档摘要的ROUGE值[19]。两者都是计算n元词组的共同出现概率,呈现句子的词汇充分性和流利度。前者是基于精度的评价指标,后者是基于召回率的评价指标。由于藏文律诗中不会出现音节个数太多的词,所以其计算过程中语言模型被设为二元模型。

3.1 实验数据及其规模

训练神经网络模型时语料规模是一个很重要的因素,规模越大越能反映神经网络的计算性能。比如,神经网络机器翻译模型是通过对上千万个句对训练得出的,所以目前的翻译质量很流畅。而藏文律诗的获取方式有两种: 第一是通过网络爬虫技术从藏文网站中获取;第二是通过解析电子书籍来获取。从多个藏文网站和电子书籍中收集了经典藏文著作的纯本文后,通过藏文律诗抽取算法来获取其中的藏文律诗。该抽取算法如图6所示。

图6 抽取算法的伪代码

(3)培养学生的物理兴趣、实事求是的科学态度、良好的学习习惯和创新精神,结合物理教学对学生进行辩证唯物主义教育、爱国主义教育和道德教育。

通过上述的抽取算法,从已收集的藏文纯文本中共抽取了381 261首藏文律诗,其中诗句的音节个数为7到9的律诗占98%(有373 636首),因此实验的训练数据只使用了373 636首藏文律诗。从中WPM的训练句对可抽取为373 636个, SPM的训练句对可抽取为1 119 898个,CPM的训练句对可抽取为746 273个。另外单独各收集了500个藏文律诗句对分别作为验证集和测试集。

3.2 实验参数设置

通过多次试验来优化参数,最终各个参数设置如下: 模型训练次数设置为100 000; 批量处理个数设置为200;隐藏层神经单元个数设置为256;隐藏层的层数设置为4,由于是双向LSTM,所以其中两层是正向的,另两层是反向的;字嵌入向量维度设置为512;梯度截断值设置为5;优化算法设置为随机梯度下降法(stochastic gradient descent,SGD);注意力机制设置为局部注意力机制;学习率初始化为0.8,同时被设为逐渐衰减法,即循环每2 000次时衰减一次;为了防止神经网络过拟合,采用Dropout并设置为0.6,即丢弃率为0.4。表1是基本超参不变只有神经单元不同时的实验结果,调整每个超参的过程中其模型的循环次数都设置为20 000。

表1 RNN、GRU和LSTM的对比结果

由表1可知,在有限的训练次数(即20 000次)内LSTM的BLEU值和ROUGE值都优于RNN和GRU的结果,因此在该实验中选用了LSTM,而且是双向的LSTM。其他的超参也是通过这种对比法来选取的。

3.3 实验结果及其分析

前面已经介绍了数据的规模及其分布情况,同时也选好了每个超参的取值,因此GTPM的最终的实验结果如表2所示。

表2 GTPM的对比结果

表2中的“—”表示模型通过前一句来生成当前的句时,由于前一句的信息不足,会导致后续诗句的生成结果很糟糕,即表示模型不适合生成该诗句的意思。例如,SPM由主题词来生成第一句时,主题词成了SPM的输入数据,从而该词的音节个数远远少于SPM原本输入数据的音节个数,因此主题词进行向量化时需要补充很多零向量,或者是需要补充特殊向量(专门用来表示补充的向量)。显然补充后得到的向量矩阵中有很多没意义的信息,所以导致后续的生成结果不理想。

经过对比表2的实验结果可知:

(1) Word2Vec和Word2Rank分别表示模型中使用了预先训练好的藏文音节向量和随机生成的音节向量。使用Word2Vec后的结果优于Word2Rank的结果。原因是Word2Vec中具有一定的语义信息,这对藏文律诗生成结果有很大的提升。

(2) SPM的生成结果稍微劣于CPM和GTPM,同时生成到第三和第四句时诗句的流利度不如第二句。因为SPM的输入数据只有一个诗句,所以生成到第三或第四句时不仅缺乏上下文信息,而且会出现错误信息被传递的情况。通过主题词也无法有效地生成第一句。

(3) CPM生成第三和第四句的结果最好,是因为该模型中使用了更多的上下文信息。通过前两句来生成后一句,比WPM和CPM所使用的上下文信息更多。同样该模型无法有效生成第一和第二句。

(4) 总体来说,GTPM的生成结果最理想。该模型使用了多任务学习法,即WPM负责生成第一句,SPM负责生成第二句,CPM负责生成第三和第四句后,藏文律诗的整体生成结果有很大的提升,而且平均BLEU值和ROUGE值分别能达到59.27% 和62.34%。这数据足以说明GTPM生成藏文律诗的结果在流畅度和忠诚度上效果很好。

GTPM生成的部分藏文律诗如下所示:

4 总结与展望

本文主要工作有以下四点:

(1) 提出了从藏文纯文本中提取藏文律诗的抽取算法,并使用该算法共收集了373 636首藏文经典律诗。

(2) 将注意力的端到端模型运用到了藏文律诗生成中,并结合多任务学习法,由三个模块分别承担不同任务来构建了GTPM模型。

(3) 在GTPM中引入预先训练好的藏文音节向量后,其生成结果有明显提高。

(4) 首先通过实验对比法来选择最优的超参,然后训练好GTPM,最后通过实验结果分析得知,该模型的生成结果中BLEU值和ROUGE值分别能达到59.27% 和62.34%,说明GTPM所生成的藏文律诗在诗句的流利度和忠诚度上效果较好。

存在的问题有以下两点:

(1) 语料的精度上有一些瑕疵,比如部分藏文音节的部件出现了多录、少录和误录等现象。还有就是语料种类分布不均匀,例如,已收集的藏文律诗多数偏向于佛教文和民间谚语,缺乏其他类型的内容。

(2) 分析GTPM的生成结果可知,从句子层面来说生成结果很好,但从句子间连贯度的方面来说,目前还有所欠缺,仍存在可提升的空间。

下一步将使用更好的深度学习模型,如生成对抗网络(GAN)或者自注意力机制(self-attention)等,并需要收集更多的语料,进一步研究特定藏文律诗风格的生成方法。

猜你喜欢

律诗藏文诗句
敦煌本藏文算书九九表再探
可以“吃”的诗句,你见过吗
读诗句,写成语
西藏大批珍贵藏文古籍实现“云阅读”
律诗的开合结构
工而能变方有味——浅谈律诗的对仗
黑水城和额济纳出土藏文文献简介
基于条件随机场的藏文人名识别研究
巧用诗句育新人
律诗园地