导语:本文是北京大学万小军教授在Byte Tech 2019 机器智能前沿论坛上的分享。Byte Tech 2019由中国人工智能学会、字节跳动、清华大学联合主办,清华大学数据科学研究院协办。
在演讲开始前我想和大家讨论一下,为什么要做自然语言生成(NLG),之前我们接触比较多的是自然语言理解(NLU),即理解人类的语言,这是自然语言处理的重要目标。现在我们期望设备智能化,进一步实现机器与人的沟通,我们需要做的是进一步提高NLG技术,即自然语言生成技术,真正实现机器与人类的自然交互,提升机器的智能化水平。
首先,什么是自然语言生成NLG?NLG范围很广,基于不同类型的输入有不同的子任务。输入包括图像、音频、表格、文本等等,最终都要生成文本。文本到文本的生成又可以包括多类子任务。比如基于长文本输出短文本,这就是文档摘要,而文本复述则是对文本的改写,输入输出长度相似,生成的文本与输入文本的语义相同,但文本表达会出现差异。
此外,还有对话生成、机器翻译也属于文本到文本生成的一个任务。机器翻译将一种语言的文本作为输入,输出另外一种语言的文本。对话生成则是根据上文生成回复。对话生成与机器翻译这两个领域很大,一般单独对待,而不归并到文本生成领域。
除了文本到文本的生成之外,还有数据到文本的生成,比如根据财务报表生成财务描述文本等,在商业领域具有很重要的用途,目前很多单位都在研究这一技术。
根据语义、句法表示生成语句是学术界研究较多的一个NLG任务,在实际应用中实施起来比较复杂,因为会同时涉及到NLU和NLG两个难题。
最后,输入图像或视频,生成文本,这也是NLG的重点研究方向,更多研究则集中在计算机视觉(CV)领域。我们可以看到,NLG的整个范畴非常大,我个人则是最开始做文档摘要研究,后来逐步研究其他NLG任务。
NLG的应用范围很广,包括现在非常受欢迎的对话机器人小冰、摘要生成、新闻生成、诗歌生成等。
目前,NLG的应用需求很大,市场上对NLG技术的需求也十分广泛,包括一对多文章改写、小说剧本创作等等。但目前解决这些需求的难度很大,要让计算机实现真正意义上的创作难如登天,我们要做到的是让计算机起到辅助作用即可。对于一对多的文章改写,比如生产软文,如何把文章改写为各种风格,放在网上传播,让更多人看到。如果改写得不好,对于两篇内容高度相似的文章,改写的那篇会被屏蔽掉,我们需要保持原文语义不变的前提下进行大量改写,这一过程难度很大。此外,AI做主持人、进行辩论目前都很有挑战难度,虽然暂时无法投入使用,但可以先进行研究与探索。
在深度学习流行之前,NLG有很多方法,基于规则或模板填充便是其中之一,先人工写规则,然后做数据信息填充,也能生成文本。实际上这样的方法虽然简单,但在很多商业应用中非常有用。也可以通过机器自动学习方法,自动归纳并获得写作模板。
近几年深度学习方法使用非常广泛,基于编码器解码器框架的序列到序列转换模型是最主流的一种文本生成模型,强化学习和对抗生成网络也主要是为了增强序列转换模型。我们的研究核心还是编码解码器的架构,有的研究改进编码器,有的研究则改进解码器,从而提升效果。
下面介绍针对典型NLG任务的资源和模型。不同文本生成任务的平行数据会有差别,深度学习方法特别依赖这样的平行数据。我们看到摘要生成任务的平行数据是相对较多的,但也只有几十万对而已,这个数据规模相比机器翻译训练数据而言是比较少的,所以目前生成的效果并不理想。现在很多文本生成任务都缺乏大规模的训练语料,而这个训练语料很难在短期内人工标注出来。现实情况是所有文本生成模型并不完美,其中很大问题在于数据,但是模型本身也要做相应调整。
我想强调的是,基于神经网络模型的NLG并不成功,虽然我们做了很多学术研究,发表了很多学术论文,但很多任务上只要性能提高1%-2%,都可以发论文,但是从实用性角度来看,这些技术很难达到理想的满意程度,所以我们还需要进一步在数据与模型上不断完善。
我们团队也做了很多文本生成的研究工作,研究目标定位为X-to-Text的生成,X表示各种输入,如文本、数据、图像,代码等等。而输出端的文本类型则包括句子、短摘要、文章、诗歌、评论等等。比如基于图像写古诗。一般诗的生成都是基于关键词,根据给定的主题扩展成四个相关的关键词,根据每个关键词输出一行诗,四行诗拼起来组合成一首完整的诗。考虑到古诗的特点,还要做一些处理,比如韵脚和韵律,这个对于计算机来说比较容易解决,解码文本时稍微控制一下就可以实现。我们要做的不是从单个图像生成一首诗,而是从一个图片集生成一首诗,比如旅游时拍的一组照片,如何生成一首诗来描述这个场景,实现图文并茂的表达,这也是从图像到文本的转换任务。我们基于编码器解码器框架,采用了一种选择机制与自注意力机制去处理图片集中存在噪音与冗余图片问题、古诗中一些词语与图片内容的不对应问题等。
下图是最终结果,上面是输入图片集,我们可以生成左下角的律诗和右下角的绝句,生成的诗总体效果较好。我们也会推出相关的demo。
自然语言生成领域还存在一些挑战。
第一,目前我们的评价指标例如BLEU、ROUGE等均不够准确,但人工评价缺乏稳定性,操作起来也不方便,如何找到一个精确、客观的自动化评价指标,这对本领域的贡献超过任何模型的贡献。
第二,在平行语料很少的情况下如何生成文本,甚至无监督文本生成到底可不可行,但毫无疑问的是,如果语料充足,实现有监督的文本生成效果肯定会更好。
第三,如何解码出长文本,目前的解码器能解出几十个词的文本,但是直接解码出几百词、上千词的的序列很具挑战性,如何实现这一点也是值得思考的问题。
最后,如何进行高水平的跨模态的文本生成,即看图说话。下图是2019年的邮票,大家看到这枚邮票,会说一句什么话,或写一篇什么文章呢?
一千个读者有一千个哈姆雷特,每个人思考的角度不同。 微软的看图说话工具CaptionBot生成的结果是“我觉得这是卡通人物”,这个结果也不能说完全错,但由于模型和数据的原因,机器对图像的语义理解还是很浅,也无法推理和联想。如果是人类写手来写的话,可以联想到很多事情,例如鼓励生三胎;学习压力大,孩子长出抬头纹;整天为作业上火,妈妈烧焦了;爸爸袖手旁观,依然白白胖胖等。所以我们会发现人类的想象力非常强,会结合各种各样的知识和线索,创作出丰富有趣的文章。尽管现在号称人工智能很厉害,但实际上至少对于生成文本任务而言,和人类相比还有很大差距,现在商业上只能利用AI解决重复性的简单写作需求,无法创作出有深度的文章。存在这样的差距,对于学术界而言是一种研究机遇,毕竟有差距,有不足,才有研究的必要。
谢谢大家。
编辑:文婧