曹 娟,龚隽鹏,张鹏洲
(1.中国传媒大学 新媒体研究院,北京 100024;2.中国传媒大学 理工学部,北京 100024)
自从腾讯2015年推出Dream writer,机器新闻写作开始受到国内研究者的关注,并迅速成为学界和业界研究的热点。机器新闻写作是指基于数据统计和机器学习,运用算法,从可识别的数据中提取具有新闻价值的信息,形成新闻报道角度,自动选择语词样本、新闻报道模板生成新闻故事[1]。国外的研究者称机器新闻为机器人新闻(robot journalism)或自动化新闻(automated journalism)。目前国外已经投入市场的产品包括美国Automated Insights公司的Wordsmith和Narrative Science公司的Quill,国内企业也做了一系列探索和尝试,包括腾讯公司的Dream writer、新华社的快笔小新、今日头条的Xiaoming bot、第一财经的DT稿王、南方都市报的“小南”和广州日报的“阿同”[2]。当前适合通过机器或算法进行的新闻写作,一般是以各种数据、图表的引用和分析为基础的硬新闻,具有明显的数据处理色彩,主要用于财经、体育、气象地质和健康等领域[3]。
机器新闻写作的核心在于自然语言生成(natural language generation,NLG)技术。自然语言生成中一个典型技术就是使用恰当而流畅的文本来描述结构化的数据,即数据到文本生成(data-to-text generation;data-to-document generation)。数据到文本生成可以归结为两大任务:说什么(what to say)和怎么说(how to say it)。说什么是从输入的数据中选择合适的子集用于表达,也叫做内容选择(content selection);怎么说就是用自然语言描述这个子集,也叫做表层实现(surface realization)[4]。文中对近年来数据到文本生成的发展脉络和研究方法进行梳理,对已有数据集和评价方法进行总结,分析当前存在的问题并探讨其未来发展方向。
数据到文本生成主要使用了基于规则(rule-based)的方法和数据驱动(data-driven)的方法。基于规则的方法,通常需要将内容选择和表层生成看作两个独立的子任务来完成;数据驱动的方法,可以单独用于内容选择,也可以将内容选择和表层生成看作一个整体来完成。下面介绍近年来数据到文本生成在这两种方法上的发展过程。
Sripada等在2001年提出了针对时间序列数据的两阶段内容选择模型(two-stage model for content selection)[5]。该模型基于人类专家对时间序列数据总结的观察,第一阶段构建数据集的定性概述,第二阶段结合实际数据生成总结。
Hallett等在2006年针对医疗病史的总结提出一种内容选择方法[6]。他们将一系列概念和事件联系在一起,在内容选择的过程中,将事件根据相关性聚在一起,假设小的集群不包含重要事件,因此在总结中只提到大的集群事件。依据总结的类型和长度,在基于规则的方式里决定内容的属性。
Turnertt等在2008年使用决策树(decision tree)方法解决了在地理坐标参照(geo-referenced)数据描述领域中的内容选择问题[7]。其中,树的叶子代表内容,节点代表事件,文本从叶子中的内容产生。在同样的领域,Thomas等于2012年使用文档模式(document schemas)为盲人用户解决了地理坐标参照数据文本描述的文档规划(document plan)问题[8]。其中,模式的选择受到空间数据分析的影响。
Gatt等在2009年BabyTalk系统中使用了Hallet等在2006年提出的算法,用于内容规划(content plan),生成新生儿重症监护室数据的文本总结[9]。这些数据包括:传感器数据(心率、血压和血氧饱和度);实验室结果和观察;事件如护士行为、医疗诊断和治疗等信息;自由文本。
Black等在2010年为了帮助孩子解决复杂的沟通需求(complex communication needs)构建了一个工具,基于孩子可自编辑的传感数据使用NLG技术创造他们每天在学校的故事[10]。输入的传感数据主要由孩子的位置、活动和与人或物体的交互构成。他们使用了无线射频识别技术(radio frequency identification,RFID),识别和监控位置和交互,用麦克风记录事件,还提供了可视化窗口。学校的老师和工作人员也可以访问孩子的活动信息。Tintarev等于2016年进一步完善了该系统,根据位置、时间和语音对事件进行聚类分类,来决定叙述的内容,还使用规则定义意想不到或不平常的事件[11]。
Banaee等在2013年介绍了一种用于总结生理传感器数据例如心率和呼吸率的内容选择方法[12]。从数据分析得到的抽象数据会被分成三种消息类型之一:全局信息、基于事件的消息和基于总结的消息,对于每个类型的消息都有一个单独的排名函数评估文本中消息的重要性,最后根据消息的重要性和事件之间的依赖性对消息进行排序。同年,Schneider等介绍了跨学科MIME项目,即一个移动医疗监测系统,帮助进入医院前现场第一人和救护医生交接事务[13]。他们使用NLG总结医疗传感器的数据和护理员的观察和操作随时生成文本交接报告。其中,内容选择模块结合语料分析和专家咨询获得的规则使用树列关联被选信息,类似于修辞结构理论[14](rhetorical structure theory,RST)。
Soto等在2015年描述了一种使用模糊集生成短天气预报的方法[15]。方法中,内容选择部分由模糊算子进行操作,从所有可用数据中选出有用数据并转化成数据对象。最后,创建事件列表用于生成。
Gkatzia等在2016年提出两种基于规则的方法实现天气预报的生成[16]。第一种方法使用了Kootval2008年针对天气预报中不确定信息推荐的准则,第二种方法模拟了专家在天气预报中选择内容的方式。相比第一种方法映射到不确定性,第二种方法在语言解释上更加自然。
通过与专家合作或从专家生成的语料中获取知识是推导规则的主要方式,因此基于规则的方法通常适用于特定领域,生成的文本可读性较强,工业界大部分使用这种方式。但规则的数量也会随着领域复杂度的增加而增加,开发维护系统的开销可能会很大。
数据驱动的方法也被称作可训练(trainable)的方法。尽管NLG使用数据驱动方法比NLP的其他子领域起步晚,但数据驱动的方法已经在NLG中占据了主导地位。
2003年Duboue和McKeown提出一种内容选择方法,从文本语料中自动学习内容选择规则和获取相关语义,并用于人物传记的短文本生成[17]。他们把内容选择当作分类任务,目标是判定一个数据库条目是否应该出现在输出中。
2005年Barzilay和Lapata提出一种协作内容选择方法(collective content selection),从语料和相关数据库中自动学习内容选择规则,并用于足球赛事报道中[18]。与Duboue和McKeown在2003年提出的方法不同的是,他们把内容选择看作协作分类问题,考虑了数据库条目之间的依赖性。
Liang等在2009年解决了数据记录和给定文本描述子句匹配的问题,提出一种半隐马尔可夫(hidden semi-Markov)匹配生成模型,统一实现了分割文本到话语并关联话语到每个对应记录的任务[19]。
Angeli等在2010年提出一种将内容选择和表层生成统一且与领域无关的实现方法[20]。该方法在2009年Liang等的基础上,加入了对数线性(log-linear)模型,将生成过程细化成一系列本地决策(local decision),先选择事件记录,再选择记录属性,最后选择一系列属性对应的模板。
Konstas等在2012年展示了将内容选择和表层生成统一的无监督且与领域不相关的模型[21]。该模型没有将生成过程分割成本地决策,而是使用了概率上下文无关语法(probabilistic context-free grammar,PCFG),全局地描述了输入数据的固有结构。该模型还用了超图(hypergraph)结构来获得最好的推导。
Kondadadi等在2013年使用基于模板的统计NLG框架将内容选择和表层生成的任务联合成一个统计学习过程[22]。其中,支持向量机(support vector machine,SVM)是构建该模型的主要方法。
Sowdaboina等在2014年使用机器学习(machine learning)方法解决了对时序数据总结的内容选择问题[23]。机器学习方法被用来学习产生文本总结的潜在规则,目的是更加接近人类生成文本总结的规则。
Gkatzia等在2014年展示并对比了两种实现内容选择的可训练的方法[24]。第一种使用多标签分类方法学习被选择的内容;第二种使用强化学习方法总结时序数据,内容选择被看作马尔可夫决策问题[25]。
Mahapatra等在2016年提出一种从表格形式的非文本数据实现统计自然语言生成的方法[26]。该方法使用了多分区图(multi-partite graphs)用于天气预报的生成,每个分区由数据集中的每个属性创建,内容从图中有概率性地被选出。
近年来,深度学习在NLG中得到越来越多的关注。Mei等在2016年提出一种端到端(end-to-end)的与领域无关的基于编解码(encoder-decoder)框架的神经网络模型[27],其中用到了基于长短期记忆网络(long short-term memory,LSTM)的循环神经网络(recurrent neural network,RNN)。Lebret等在2016年介绍了一种建立在文本生成的条件神经语言模型(conditional neural language models)基础上的神经模型,用于根据维基百科人物传记数据集中的事实表格生成人物传记的初始句子[28]。
相比基于规则的方法,数据驱动的方法使得数据到文本生成更可能与领域无关,不需要专家参与,并且更容易优化,也更容易扩展。但是数据驱动的方法需要庞大的训练数据,而且训练数据的质量直接影响到训练模型的结果。
目前在特定领域已经公开了一些数据到文本生成的数据集,如表1所示。例如天气预报和体育比赛等领域,这些数据集基本都是由数据库记录和对应文本组成。天气预报领域的数据集有SUMTIME-METEO[29]和WEATHERGOV[19],体育比赛领域的数据集有ROBOCUP[30]、NFL[18]、ROTOWIRE 和SBNATION[4],航空领域的数据集有ATIS[31],人物传记领域的数据集有WIKIBIO[28]。数据集的使用方法在此不再赘述,详情请查阅相关文献。
表1 可供下载的数据集
对于数据到文本生成来说,主要有两类评价:一类是内在评价(intrinsic evaluation),通常和文本质量、输出正确性和可读性等问题相关;另一类是外在评价(extrinsic evaluation),通常和任务完成有关,即系统在做出决策时是否真正达到了目的。
内在评价主要有两种方法,一种依赖人类的判断即主观评价,另一种基于语料。
人类判断的方法是通过专家根据某些标准评价系统输出。通常的标准有流畅性(fluency)或可读性(readability),即语篇的语言质量,还有与输入有关的准确性(accuracy)、充分性(adequacy)、相关性(relevance)或正确性(correctness),反映了系统对内容的再现[32]。
基于语料的评价方法是通过一些度量标准对比人类的输出和系统的输出。这种方式相对廉价,常见的自动度量指标有BLEU、NIST、ROUGE、F-measure等。
与内在评价不同,外在评价衡量实现目标的有效性,而有效性取决于应用领域和系统用途。通常基于问卷调查或者自我报告的研究可以解决外在评价,但许多情况下评价需要依赖一些性能的客观衡量标准。外在评价又分为用户任务成功性度量(user task success measure)和系统目的成功性度量(system purpose success measure)[33]。
用户任务成功性度量衡量的是任何与用户从系统输出获得的有关的东西,比如决策和理解准确性等。例如2009年Gatt等的BabyTalk[9]使用了这种评价方法,给用户展示两个输出,用户做出决策,以此来衡量哪个输出在决策中更有效。
系统目的成功性度量衡量一个系统是否能满足最初的目的。Reiter等在1999年设计的STOP系统[34]为了帮助人们戒烟而生成简短的戒烟信,使用这种评价方法来确定系统目的是否达到,即用户是否戒烟。
外在评价对于判断一个数据到文本生成系统是否成功或者用户能否得到想要的东西来说非常重要,也更有说服力。但这种评价方式在时间和费用上花费得更多,而且依赖足够的用户基础,并且必须有在现实中开展研究的可能性。
目前数据到文本生成存在一些问题,需要在未来的研究中解决:
(1)数据集缺乏。可训练的数据集主要集中在天气和体育等几个专业领域,数据集的建立需要人工收集数据甚至标注,因此公开可用的数据集比较缺乏。
(2)生成文本短,数据简单。数据集中生成的文本长度较短,用到的数据记录也较少,因此在这些数据集上效果好的方法并不一定能满足复杂数据和生成长文本的需求。
(3)评价方法不独立。适用于数据到文本生成的评价方法大多借鉴于机器翻译和文本摘要等领域,没有单独完整的一套评价标准,除了人类评价之外,需要在自动度量标准上设计针对数据到文本生成的评价体系,体现出内容的完整性、相关性、顺序结构以及表达性等等方面。
(4)无法满足商业应用。用于商业的写作方法基本都是基于模板的方法,成文较为固定,虽然神经网络方法在实验阶段效果不错,但在很多方面仍然不成熟,暂时无法在商业中使用。
数据到文本生成虽然还存在很多问题,但未来的发展方向仍然是不可限量的。比如,结合视觉信息比单一使用图像或文字效果更好[16];在领域之间或者语言之间转移学习方法[35];研究处理不确定数据的方法,大量数据是不确定的,比如股票数据、天气数据或者网络数据等。近两年在数据到文本生成的研究中开始出现深度学习的方法并且获得了不错的效果,相信随着神经网络的发展,未来在该领域会有更多的研究者投入到使用神经网络的方法实现数据到文本生成的研究中来。
随着人工智能的发展,数据到文本生成也越来越重要,很多领域都在尝试使用机器代替部分人工,完成自动文本的生成。国内外尤其是新闻行业,在自动撰写新闻的尝试探索中竞争激烈,但没有竞争就没有进步,数据到文本生成需要各个领域的共同发展,需要软硬件技术的不断推动,只有存储和处理数据的能力越来越强,神经网络方面的研究开展的更迅速,数据到文本生成的研究和应用才能有更多的可能性。