黄石 林政
(中国传媒大学动画与数字艺术学院 北京市 100024)
自然语言文本生成的核心问题是自然语言如何在计算机中进行表示。常见的方式是使用NLTK等分类词库进行分析,分类词库存储大量词汇,并对每个词分别存储其上位词、同义词等。但这种方法存在数据主观化、无法准确计算词语相似度等问题。如将词语转换为one-hot向量表示,则存在向量长度过长等问题。
2003年,Bengio等人以J.R.Firth的理论为基础,提出在神经网络中词嵌入的思想[1]。2013年,Mikolov等人提出word2vec向量模型、Skip-gram和Continuous Bag of Words方法[2]。2014年,Rong X对word2vec模型提供了理论推导和解释[3]。随后,斯坦福大学提出词向量模型GloVe[4],该模型以“预测”为主,对共现矩阵进行降维从而学习词向量。2018年,Peters.M.E等人提出词向量模型ELMo[5],该模型为双层双向的LSTM(长短期记忆网络),可通过上下文计算同一个词汇在不同语境下的表达。随着Transformer架构的流行,出现基于此架构的GPT和BERT模型。
本文采用GPT-2模型,通过Top-k采样及核采样方法,基于《唐才子传》的样本数据集,生成若干古代汉语文本,并对LSTM、Sequence to sequence、Sequence to sequence+attention等其它方法进行了比较研究,初步验证了GPT-2在古代汉语环境中的表现。
GPT-2语言模型是由OpenAI发布的GPT模型的改进版本,其核心思想指明语言模型是无监督的多任务学习者。相比于GPT模型,GPT-2的模型规模更大,表现更加优异。
自然语言通过上文以预测的方式生成下一个词汇的解码过程,通常使用求最大似然、贪婪算法和束搜索等方法,然而生成的文本质量并不理想。实践证明,Top-k[6]方法更加有效,通过对概率分布进行截断,选取概率较大的前k个字符,再根据概率,从中抽取生成字符。
更正式地说,给定一个概率分布P(x|x1:i-1),选取其中的某k个字,使得取得最大值,其中令将初始概率分布进行按式(1)进行重新缩放,后按照新的概率分布P'(x|x1:i-1)进行抽样,作为下一个生成字。
通过分析人类文本和束搜索生成文本的概率分布发现,人类文本中每个词的困惑度上下起伏波动,而机器生成文本中的困惑度呈现出不自然的平缓,并且其困惑度相对较高。在此基础上,Top-p采样方法对概率分布进行截断,通过定义阈值p,选取累积概率超过阈值p的前n个字符,从中抽取生成字符。
更正式地说,给定一个概率分布P(x|x1:i-1),按从大到小的顺序选取前n个字,使得式(2)成立,其中V(n)⊂V。
Top-p方法可以在有效截断分布中不可靠的尾部的同时,允许文本的多样性,从而在不牺牲流畅性和连贯性的前提下,增强生成文本的多样性。
本文使用的数据集取自《唐才子传》。该文集收唐、五代诗人传记278篇,写作风格一致,适合作为神经网络的输入数据进行训练。本文数据集共76769个字符。
本文同时采用了LSTM、Sequence to sequence、Sequence to sequence加上注意力机制,与GPT-2模型进行了对比实验。实验详情如下:
LSTM模型采用双层的构架模型,每层包含512个LSTM单元。
Sequence to sequence模型包含编码器和解码器两部分,编码器和解码器均为双层架构,每层包含1024个LSTM单元。
Sequence to sequence加注意力机制模型的编码器部分采用双向LSTM单元,在解码器部分添加了注意力(Attention)机制。
本文选择了GPT-2模型的“345M”版本,并使用稀疏softmax交叉熵计算损失,使用Adam计算梯度下降,学习率为0.0002。
模型训练完成后,使用Top-k采样(超参数k为40)和核采样方法(超参数p为0.9)生成文本。
表1:Top-k方法的部分生成样本
表2:问卷调查结果:语句通顺度
表3:问卷调查结果:内容一致度
表4:问卷调查结果:整体质量
本文采用调查问卷的评估形式,分别从4个模型的8种分类中随机挑选16个样本,与数据集的2个样本,共计18个样本作为评测对象。问卷分别从语句通顺度、内容一致度、整体质量3个方面对文本进行评估,分数范围为1-10。
参与问卷调查的100名用户均为在读研究生,其中有35名为文学类相关专业硕士。其中有10份表示不熟悉文言文,最终选取其余90份作为有效问卷并进行分析。分析结果如表2、表3、表4所示。结果证明GPT-2生成的样本质量较高。
但GPT-2生成文本也存在一些问题。如生成“善善善”,“TONYÖSKÖ”等无意义的字段。其原因在于GPT-2模型的预训练数据以英文为主,且微调训练集数据过小(仅有233KB),因此预训练数据的影响较大,容易生成英文字段或无意义的重复文字。
实验证明,在自然语言生成中,GPT-2模型适用于古代汉语文本生成,且生成质量较好。但会小概率生成无意义文本和英文文本。在后续研究中,希望增大微调的训练集并增长训练时间,并进一步分析Transform架构在古代汉语环境的表现。