编码机

你身边的写作助手智能写作全景介绍下

发布时间:2023/4/9 10:59:08   

智能写作全景介绍(上)篇从智能写作的常见应用形态和样例入手,结合百度实践经验,介绍智能写作,并讨论智能写作的未来发展方向。智能写作全景介绍(下)篇将为大家介绍智能写作的核心技术。

在了解智能写作的各种应用形态之后,我们继续探讨智能写作背后的核心技术。需要说明的是,智能写作和自然语言生成、自然语言理解、知识图谱、多模算法等各类人工智能算法都有紧密的关联,在百度的智能写作实践中,常根据实际需求将多个相关算法集成为具体的解决方案。接下来介绍在各种智能写作中占有核心地位的几种核心算法:经典自然语言生成算法、神经网络序列生成算法和文本分析技术。

1、经典自然语言生成算法

在深度神经网络算法出现之前,经典自然语言生成(NLG,NaturalLanguageGeneration)算法[1]可以抽象为一个流水线,其中包括三个核心步骤:篇章规划、微观规划和表层实现。下面以一场百度自动写作撰写的中超足球比赛战报为例,描述经典NLG算法过程。

步骤1——篇章规划:这一步骤解决“写什么”的问题,对于一场足球比赛,有大量的比赛数据、技术统计、文字直播等,其中只有最重要的部分需要在最终的写作结果中体现。因此,篇章规划步骤需要决定最终写作结果的标题、段落布局,以及每个文章部分对应的输入素材。在这个例子中,一个完整的战报可以分为四个段落:

综述:包括比赛时间、地点、轮次、对阵双方、比赛结果、历史战绩等上半场:包括上半场的关键比赛事件下半场:包括下半场的关键比赛事件技术统计:包括双方的重要技术统计和对比步骤2——微观规划:这一步骤解决“如何写”的问题,利用输入素材具体生成每个句子,在经典NLG算法中,常用模板写作(Template-basedGeneration)完成这一步骤。在缺乏训练数据,或对写作结果可控性有强要求的场景下,基于人工挖掘或定义的模板,结合数据即可得到写作结果。最简单的模板可以是句子+槽位的组合,但通常需要借助形式语言技术,基于完备的语法树定义对模板做规范化,以支持多样性和丰富的模板写作结果。

步骤3——表层实现:微观规划得到的结果通常不是自然语言,而是语法树等包含语法结构信息的结果。因此,“表层实现”步骤解决“如何形成符合人类习惯的自然语言”的问题。例如,将微观规划结果直接转换为自然语言,常会残存一些算法的痕迹,即不完全符合人类写作习惯的细节,例如:“特谢拉接到队友横传”、“特谢拉右脚推射破门”这两个句子都是由数据素材生成的正确句子,但是直接组合成一个长句就会存在问题。而在表层实现中,要将已生成的结果,按照符合人类表达习惯的方式进一步完善。表层实现步骤根据要处理的问题不同,会对应很多具体算法,其中比较典型的一个例子是指代生成(ReferringExpressionGeneration),这类方法可以识别需要替换为代词的实体,从而更符合人类的写作习惯。

经典NLG算法在自动写作的几种应用形态中均有使用,特别在结构化数据写作中,经典NLG算法因其良好的可解释性和可控性,是当前实际工业生产环境中最常用的方法。

2、神经网络序列生成算法

深度神经网络技术为人工智能带来的技术变革,在智能写作技术中的集中体现是神经网络序列生成算法(以下简称:序列生成算法)。这种算法能够有效利用语料中包含的统计规律,按特定要求产出符合人类语言特性的文本结果。粗略来说,以文本、图片、视频等为输入,并且以文本为输出的场景,都可以尝试使用序列生成算法,因此它在智能写作中有多种实际应用形式。下面分别介绍三种智能写作中使用的序列生成算法:智能写诗算法、标题生成算法和自动摘要算法。

智能写诗是机器创作的常用例子,也是序列生成算法的一个典型例子,如下图所示:

该图取自百度NLP发表于学术会议COLING的学术论文[2],从图中的流程可以看到:根据用户给定的query,算法在抽取和扩展出关键词集合后,根据关键词和已生成的诗句,逐句生成诗歌,其中每一句诗歌的生成过程,即对应序列生成算法的一次实际执行。

上图是序列生成模型的细节,在生成每一句诗歌时,关键词和上一句的信息会经过循环神经网络结构计算,作为生成诗歌中每一个字的依据。模型在学习过大量诗歌语料之后,能够具备概率统计意义上输出“像诗歌的字序列”的能力,这种能力即对应机器创作型智能写作,能够根据需求生成诗歌。虽然机器的创作“思路”和人类有本质的不同,但是机器生成的诗歌与人写的诗歌效果相当,因此能够帮助人类分担相应的工作量。

标题生成是在辅助写作中有广泛的应用:完成写作之后,如果能够快速确定一个优质的标题,不仅节省作者的人力投入,也有利于写作结果的分发,让写作结果更好地触及有对应需求和兴趣的读者。

上图是百度百家号创作大脑中标题生成算法的示意,标题生成也是一个序列生成模型,但与写诗的序列生成模型有几点不同:

需要处理较长的输入:标题生成的输入是篇章,较长的输入序列长度对序列生成模型的循环神经网络结构提出了巨大的挑战。技术上可以通过内容选择、层次化等方式改造序列生成模型的输入端,提升对篇章输入的理解能力。图中示例的利用内容选择机制,对原文计算内容权重概率分布,帮助模型从长篇幅的内容中选择核心内容并体现在标题中。需要确保标题相对原文的忠实度:序列生成的本质是概率模型,在不加控制的情况下,模型更倾向于生成概率意义上“安全”的结果,这可能导致生成的标题和原文关联性弱甚至偏离原文。为了解决这个问题,引入了图中示例的Copy机制,对于原文中最关键的信息,用复制代替基于词表概率预测的生成。自动摘要是序列生成中较困难的问题,因为自动摘要算法通常需要处理长篇幅的输入,而输出也比上面提到的标题、诗句更长。因此,需要采用额外的技术手段解决这些难题,下图介绍了两种自动摘要算法,是百度NLP发表在EMNLP会议上的探索工作[3][4]。

上方左图论文提出的方法,强化了摘要生成过程中的结构信息刻画。具体而言,首先将输入的篇章视为若干句子集合,设计了两种摘要生成的约束项:第一,摘要结果的每一个句子,应该能够对应原文的某一个句子集合;第二,摘要结果中不同的句子,应该覆盖到原文中不同的句子集合。在序列生成模型的编码器和解码器部分,均采用了层次化的方式建模。从模型中句子级别注意力(Attention)分布的情况可以看到,和基线方法相比,强化结构信息约束的方法预测的注意力分布更接近真实情况。

上方右图论文提出的方法,以摘要生成中的信息选择作为针对性建模对象。具体而言,可以从全局语义和局部语义两个层面优化信息选择:第一,全局语义层面上筛选掉不重要的信息;第二,在生成每一个摘要句的时候,增加了局部信息选择的网络层,利用注意力机制,计算所需信息应该

转载请注明:http://www.aideyishus.com/lkzp/3992.html

------分隔线----------------------------