我们期望机器可以像人一样撰写高质量的新闻,虽然目前有已经实现了新闻的自动生成,但大多是使用既定的数据,对人工设定的新闻模板进行自动填充,这种方式拓展性较差,也无法实现智能化。真正的智能新闻写作应该可以汇总和归纳给定数据和信息,自动产生符合相关标准的新闻,自动文本生成是实现这一目标的关键技术。
本文调研了常用的智能化生成文本的方法,鉴于文本数据具有序列性的特点,循环神经网络在文本生成任务上卓有成效,常用的循环神经网络模型主要是LSTM,GRU。本文首先对这两个模型进行了简要介绍,然后应用这两个模型到文本生成中,包括的方法有:1)将训练语料数据经过语言模型生成具有语义特性的分布式词表示,作为LSTM或者GRU的输入,训练得到神经网络模型,将新的数据也使用词表示的方法输入到已经得到的模型中,得到新的文本输出;2) 使用深度生成模型变分自编码,对语料数据学习到一个生成模型,使用该生成模型得到新的文本输出。最后提出这两种方法在实际应用中的困难。
所谓“机器写作”,又称“机器人写作”,是指运用算法对输入或搜集的数据自动进行加工处理,从而自动生成完整新闻报道的一整套计算机程序[1],核心在于自然语言生成。“机器新闻写作”则指用这种技术进行新闻写作,是人工智能学科在新闻领域的应用。
机器写作要追溯到 20 世纪 50 年代,源自机器内容翻译的研究。 20 世纪 60 年代,为了验证指定的语论的正确性和转换生成语法的有效性,学者开始研究使用机器生成与上下文无关语法的句子;20 世纪 70 年代,计算机技术应用领域的拓展催发了其他领域机器写作的研究,如在游戏中利用机器写作生成游戏说本,同时学者开始尝试机器生成孤立句和复述自然语言;20 世纪 80 年代,机器写作技术得到了突飞猛进的发展,并逐步开始应用于段落、篇章的生成,文本规划的概念首次提出;20 世纪 90 年代,文本规划器和语言实现器的提出与实现促使机器写作开始应用到更多的领域中,如在军事上生成军事报告,气象局生成天气预报等等;21世纪初,机器写作技术基本成熟,各个领域也开始加快研究步伐,在医疗、新闻、 教育等领域开始实现机器写作系统,机器新闻写作甚至于投入市场,对新闻行业产生了极大的冲击与挑战[2]。如今,人工智能在各个领域大放异彩,新闻界也不可避免的接受人工智能的重塑,其中以机器人写作最具代表性。随着深度学习的发展,机器写作的新闻也开始变得更加多元化,更符合用户的需求。
从2010年起,叙述科学公司开发了一个名为Quill的系统撰写了“十大联盟”数千项大大小小体育赛事的新闻,它几乎是在比赛中进行实时报道,不管是在数量还是时效上都远超以往。为了更好地把数据通过算法成文字,叙述科学公司雇佣了一批记者来“训练”计算机,使其能够从数据中发现各种各样的“角度”,并计算机如何组织文章的“架构”。此外,叙述科学公司的团队还为客户提供了报道语气风格的多样化选择。经过几年的发展,叙述科学公司的技术有了更强大的提升。2014年3月,该公司发布了Quill Engage平台,也就是谷歌分析(Google Analytics)应用。
国内采用机器撰写新闻起步较晚,但后续发展势头强劲。2015年11月,宣布“快笔小新”投入使用,这台机器可以快速完成体育财经类的新闻自动写作。但这并不是国内第一个写作机器人。早在9月,腾讯财经发表的一篇题为《8月CPI同比上涨2.0%创12个月新高》的消息就由自动新闻写作软件Dreamwriter完成,在一分钟内将重要信息进行解读并送达客户。在2016年的里约奥运上,一个名叫Xiaomingbot(张小明)的机器人开始崭露头角。“张小明”的核心写稿模块由大学计算机研究所万小军团队和今日头条实验室联合研发。这是国内第一款可以报道奥运赛事的机器人,在结合了最新的语言处理机器学习和视觉图像处理的技术之后,通过语法合成与排序完成新闻写作。在奥运会开始后的13天内,机器人“张小明”通过对接奥组委的数据库及时更新信息,配选图片,在短时间内完成消息写作和赛事汇总等工作,共撰写了457篇关于羽毛球、乒乓球、网球的消息和赛事报道,每一篇生成的时间大约是两秒,每天可以撰写30篇以上,其发稿速度几乎与电视直播同时。
机器新闻写作作为一种新的智能工作为新闻领域注入了新的动力,它的实现彻底改变了传统新闻创作的模式。机器写作将代替我们去重复撰写基本新闻,记者更多地去做更高深有意义的工作。 机器写作主要有以下几个优势促进新闻的创作:
第一,实时快速。目前,由于新的出现,新闻消息的速度得到了很大的提升。作为新闻行业的竞争者,新闻报道的快速和实时成为占领头条的重要法宝。
第二,低成本。在信息时代,新闻报道的需求量不断增加,但大量报道的撰写其实是一种机械性的重复的工作,这大大加重了撰写者的负担,浪费了很多的劳动力。机器新闻写作在一定程度上把人力解放出来,使得人们有更多的精力去做更重要的事情。
第三,客观。毋庸置疑,人在撰写新闻的时候会不可避免地把个人的主观情感带入其中,导致人们对新闻的理解出现偏差。机器新闻写作在一定程度上可以完全做到客观性, 机器新闻写作实质上就是对信息的一种结构化输出,这样传达到身边的信息就是客观的。
自然语言生成包括文本到文本的生成(text-to-text generation)、意义到文本的生成(meaning-to-text generation)、数据到文本的生成(data-to-text generation) 以及图像到文本的生成(image-to-text generation)等,新闻写作的核心技术就是自然语言生成技术(NLG),自然语言生成(NLG)一直处于人工智能和计算语言学的影响之下,属于交叉学科。意在构建高效的基于语言信息处理的计算机模型,通过将抽象概念和一定的语义、语法规则的结合来生成文本。经典的自然语言生成模型包括内容规划、句子规划和表层生成三个基本功能模块[3],在人机对话、机器翻译、自动摘要等自然语言处理任务中都有着广泛的应用。
传统的自然生成方法依赖于规则和专家,移植性很差,近些年,更多学者开始使用神经网络的方法处理NLG任务,Sutskere[4] 提出sequence to sequence模型解决英语到法语的翻译问题,使用两个LSTM 模型,一个用于编码,一个用于解码。该模型允许输入可变长度,因为来自编码器的输出总是映射到固定大小的向量。实施的结果表明与SMT系统相当。
近些年随着深度神经网络(Deep Neural Network, DNN)的兴起,学者们开始尝试使用循环神经网络(Recurrent Neural Networks,RNNs)处理自然语言生成任务。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,假设所有的输入是相互的,所以每层之间的节点是无连接的,但这对于许多NLP任务来说并不是一个好的假设,例如,预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是的。RNNs可以对前面的信息进行记忆并应用于当前输出的计算中,这样隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出,RNNs已经被证明对NLP常成功的,如词向量表达、语句性检查、词性标注等。
文本生成本身是一个序列输出问题,RNN可以很好地刻画词汇与词汇之间的前后关联关系,本节介绍基本的RNN模型以及常见RNNs的拓展和改进模型。
理论上,RNN能够对任何长度的序列数据进行处理。但是在实践中,它能记忆的长度是有限的,简单的RNN模型存在梯度消减以及梯度爆炸的问题,往往难以训练,这个问题的本质是由BP误差反向算法引起的,反向算法使用链式,在求导的链上梯度会连乘,当输入有轻微变化时,训练出的梯度有时会有剧烈变化,通常情况下大于 1 的数连乘会变大,极端时会引起梯度爆炸;小于1 的数连乘会变小,极端时会引起梯度消失。梯度消失也会令在循环神经网络中,后面时间步的信息会覆盖前面时间步的信息。
如果 t时刻隐藏层状态依赖于 t 之前所有时刻,梯度需要通过中间所有隐藏层回传,如图2-2所示,这会形成一个很深的求导链:
在许多实际问题中,t时刻可能只依赖之前的有限时刻, 除此之外,简单的RNN模型无法辨别不同时间的信息的是否有价值。RNNs的很多变种就是为了解决这些问题。
近些年,研究者们已经提出了多种方法改进vanilla RNN模型的缺点,大致可以分为两类:一类是以新的方法改善或者代替传统的S方法,如Bengio[5]提出的clip gradient;另一种则是设计更加精密的recurrent unit,如LSTM,GRU。本节主要介绍常见的改进的RNNs模型包括LSTM,GRU。
由于Vanilla RNN 具有梯度消失问题,对长关系的依赖的建模能力不够强大,很长的时刻以前的输入,对现在的网络影响非常小,后向时那些梯度,也很难影响很早以前的输入,就会出现梯度消失的问题。而 LSTM[6] 通过构建一些门(Gate),让网络能记住那些非常重要的信息,这个核心的结构,就是 cell state。LSTM也有许多变种,本文只介绍基本的LSTM模型。
LSTM和传统的RNN结构基本相同,不同点在于隐藏单元的构建,隐藏单元主要由三个门构成,分别对应不用的功能,如图,公式中h_t表示神经元的输出值,W表示权重。
语言模型是一个概率分布模型,简单来说,就是用来计算一个句子的概率的模型,是自然语言处理领域里一个重要的基础模型。它的基本任务是给定一条文字序列,判定在给定之前字的情况下,当前字出现的概率,用于评估一条文字序列是通顺句子的概率,语言模型在训练的过程中可以得到副产物词向量,可以作为很多NLP任务的基础,词向量是单词子在向量空间的表示,和传统的one-hot相比,词向量表示法具有以下优点:
一个n 维向量,如果每个维度仅能取 0、1 两个值,这个n维向量只能编码2^n种信息。如果每个维度能够在整个实数域 R 取值,n位实向量可以编码无穷种信息。嵌入实向量空间使用更少的维度,编码更丰富的信息。
词语,短语,句子,篇章等等自然语言信息都可以嵌入同一个实向量空间,得到统一的表达形式。比起 one-hot 向量空间,嵌入了语义信息的实向量空间紧凑了很多,但依然存在很多未知的空洞,很难知道,空间中的每一个点到底表示了什么。
更好地刻画语义信息,相近意义的词语、短语、句子,在向量空间中有着相近的,这个空间就蕴含了语义信息,这一点是可以做到的。
词向量的训练可以使用Word2Vec[8],Word2Vec包含两种训练方法:Continuous Bag of Words(CBOW)和Skip-gram。CBOW的目标是根据上下文来预测当前词语的概率。Skip-gram刚好相反,根据当前词语来预测上下文的概率。这两种方法都利用人工神经网络作为它们的分类算法。起初,每个单词都是一个随机N维向量。训练时,该算法利用CBOW或者Skip-gram的方法获得了每个单词的最优向量。
这个思想很多学者已经有所尝试,Andrej Karpath[9]使用莎士比亚的作品作为训练集,生成具有莎士比亚风格的文章,布尔诺科技大学Tomas Mikolov[11]等人提出一种新的基于Recurrent Neuarl Networks的语言模型(RNN LM),模型如图2-5,使用最简单的RNN模型,用context来预测下一个目标词。 网络有三层,输入层x,隐藏层s(context layer),输出层y。在时刻t的输入为x(t),隐藏层输出为s(t),输出层输出y(t)。输入是当前词(one-hot编码,词表长度V)和t-1时刻的隐藏层输出s(t-1)的联合,输出是词表长度的预测词概率,不同层的计算方法是:
总结来说,语言模型生成文本的输入通常是词的序列,输出是预测得到的词的序列,对应到新闻文本的生成,给出某一主题的新闻或者具有相似结构的新闻作为训练数据集,得到一个可以写出类似主题的新闻模型,基本如下:
4. 以词向量序列作为输入,使用RNN模型,计算输入序列在下一时刻的编码,一般使用LSTM,GRU或者是深层RNN模型可以得到对序列更好的编码。
文本生成常用的生成模型主要是变分自动编码[10](Variational Autoencoder ,VAE),变分自动编码器比起传统自动编码器,对于隐变量层有条件,使得隐变量层的结构更加紧凑。同时,这个条件的引入使得变分自动编码器实际上成为一种生成模型,可以从隐变量空间中根据先验分布采样一个点,然后由该点演化生成为一个目标输出。变分自动编码器优化的目标方程如下:
该模型的训练过程为:对于一句输入的纯文本,左侧RNN依次读入每一个单词,并输出一个当前的状态。当最后一个单词读入完毕后,最后输出的这个状态被输入到多层机linear的模型中,输出两个参数μ,σ这两个参数即为q_θ (z│x) (采用高斯分布)中的两个对应参数。随即模型从q_θ (z│x)中随即采样出一个点z, 这个z 向量将作为右侧RNN的初始状态向量,参与到最终输出文本的生成中。
模型在训练过程中,输入文本和输出文本是相同的,在测试过程中,则根据标准正态分布采样出一个点z, 然后再由训练好的右侧RNN生成文本。
一方面,神经网络对输入信息往往会有一定的要求:我们通常希望输入信息足够的原始,但却要包含了足够多和最终任务有关的信息,这个要求对图像和语音来说相对容易实现。图像和语音是一类原始的输入信号,输入的微小改变并不影响本来意义,可以连续变化,这对优化算法帮助很大,而自然语言是人类创造出的、对所认知世界的二次编码,是离散变化的,语言之上承载了人们对世界的认知,常识,推理等等。至今还没有找到合适的方式对这一类信息进行编码,我们的目标是找到的编码要足够原始,同时对语言所描述信息的损失足够小。
另一方面,模型虽然可以根据语料生成对应的文本内容,但是文本生成的质量无法,人类在评价一篇新闻的时候,常常会考虑语句的通顺程度,语言的表达是否清晰或者新闻内容是否真实等,但模型的优化目标都是基于词的,真正的文本生成任务最终的目标应该是衡量整句话的质量,由于训练和生成的文本质量之间没有关联,训练时总是根据正确的当前词预测下一个词,而生成时只能引用训练好的模型生成词,一旦生成错误的词,内容会越来越错,导致生成错误的新闻。
文本生成技术在机器翻译、句子生成、对话生成等方面已经取得了成功,在新闻的自动生成上还没有相对成熟的技术方案,技术上,生成多句话,到一段话,再到一篇新闻,常常涉及到很多复杂的语言理解,记忆,推理等等,这些都是目前远未解决的难题,目前可行的方法还是利用现有的技术做更多的尝试,尝试新的词表示方法,一体化地学习词、句子的表示,更好的建模了句子的上下文,包括源序列和目标序列的上下文以及解码编码中的上下文。