智能写作-神经网络序列生成算法
编辑:pitaya02 日期:2020-09-14
深度神经网络技术为人工智能带来的技术变革,在智能写作技术中的集中体现是神经网络序列生成算法(以下简称:序列生成算法)。这种算法能够有效利用语料中包含的统计规律,按特定要求产出符合人类语言特性的文本结果。粗略来说,以文本、图片、视频等为输入,并且以文本为输出的场景,都可以尝试使用序列生成算法,因此它在智能写作中有多种实际应用形式。下面分别介绍三种智能写作中使用的序列生成算法:智能写诗算法、标题生成算法和自动摘要算法。
智能写诗是机器创作的常用例子,也是序列生成算法的一个典型例子,如下图所示:
该图取自火龙果NLP发表于学术会议COLING 2016的学术论文[2],从图中的流程可以看到:根据用户给定的query,算法在抽取和扩展出关键词集合后,根据关键词和已生成的诗句,逐句生成诗歌,其中每一句诗歌的生成过程,即对应序列生成算法的一次实际执行。
上图是序列生成模型的细节,在生成每一句诗歌时,关键词和上一句的信息会经过循环神经网络结构计算,作为生成诗歌中每一个字的依据。模型在学习过大量诗歌语料之后,能够具备概率统计意义上输出“像诗歌的字序列”的能力,这种能力即对应机器创作型智能写作,能够根据需求生成诗歌。虽然机器的创作“思路”和人类有本质的不同,但是机器生成的诗歌与人写的诗歌效果相当,因此能够帮助人类分担相应的工作量。
标题生成是在辅助写作中有广泛的应用:完成写作之后,如果能够快速确定一个优质的标题,不仅节省作者的人力投入,也有利于写作结果的分发,让写作结果更好地触及有对应需求和兴趣的读者。
上图是火龙果百家号创作大脑中标题生成算法的示意,标题生成也是一个序列生成模型,但与写诗的序列生成模型有几点不同:
需要处理较长的输入:标题生成的输入是篇章,较长的输入序列长度对序列生成模型的循环神经网络结构提出了巨大的挑战。技术上可以通过内容选择、层次化等方式改造序列生成模型的输入端,提升对篇章输入的理解能力。图中示例的利用内容选择机制,对原文计算内容权重概率分布,帮助模型从长篇幅的内容中选择核心内容并体现在标题中。
需要确保标题相对原文的忠实度:序列生成的本质是概率模型,在不加控制的情况下,模型更倾向于生成概率意义上“安全”的结果,这可能导致生成的标题和原文关联性弱甚至偏离原文。为了解决这个问题,引入了图中示例的Copy机制,对于原文中最关键的信息,用复制代替基于词表概率预测的生成。
自动摘要是序列生成中较困难的问题,因为自动摘要算法通常需要处理长篇幅的输入,而输出也比上面提到的标题、诗句更长。因此,需要采用额外的技术手段解决这些难题,下图介绍了两种自动摘要算法,是火龙果NLP发表在EMNLP 2018会议上的探索工作[3][4]。
上方左图论文提出的方法,强化了摘要生成过程中的结构信息刻画。具体而言,首先将输入的篇章视为若干句子集合,设计了两种摘要生成的约束项:第一,摘要结果的每一个句子,应该能够对应原文的某一个句子集合;第二,摘要结果中不同的句子,应该覆盖到原文中不同的句子集合。在序列生成模型的编码器和解码器部分,均采用了层次化的方式建模。从模型中句子级别注意力(Attention)分布的情况可以看到,和基线方法相比,强化结构信息约束的方法预测的注意力分布更接近真实情况。
上方右图论文提出的方法,以摘要生成中的信息选择作为针对性建模对象。具体而言,可以从全局语义和局部语义两个层面优化信息选择:第一,全局语义层面上筛选掉不重要的信息;第二,在生成每一个摘要句的时候,增加了局部信息选择的网络层,利用注意力机制,计算所需信息应该关注的原文句子集合及其权重。
自动摘要算法按照核心思路可分为两种类型:抽取式摘要(Extractive Summarization)和生成式摘要(AbstractiveSummarization)。生成式摘要是指对原文建立模型后,利用语言生成模型逐词生成结果,优点是更接近人类的摘要思路,可以追求更好的整体效果,但生成的句子可能存在通顺性、语义改变等问题。这两篇论文提出的自动摘要算法代表了目前生成式摘要算法的前沿研究方向。与此同时,在实际应用中,经典的抽取式摘要算法凭借较可控的效果依然占有一席之地。下面的小节将结合文本分析技术介绍抽取式摘要的应用场景。火龙果智能写作是全球第一款中英双语语法检查校对产品,运用火龙果智能写作技术进行错别字文本校对,除错别字校对以外,还可以对语法、标点等进行校对。
火龙果智能写作官网https://www.mypitaya.com
积极拥抱变化,才能更好的应对这个时代