宋睿华:会有那么一天,机器人可以写小说吗?

宋睿华:会有那么一天,机器人可以写小说吗?

来源:《中国计算机学会通讯》2017年第1期《专栏》

作者:宋睿华 郑文峰

2016年3月22日,日本共同社报道了由人工智能创作的小说作品《机器人写小说的那一天》入围日本第三届“星新一文学奖”初审的消息。这一奖项是以被誉为“日本微型小说之父”的科幻作家星新一命名的。提交小说的是“任性的人工智能之我是作家”(以下简称“我是作家”)团队。该项目团队负责人是公立函馆未来大学教授松原仁。

这则新闻一经播报即引起很大反响,媒体自然地与之前阿尔法狗(AlphaGo)机器人4:1战胜围棋大师李世石九段联系起来,用“机器人又开始向文坛发起总攻”来描述这一新闻事件。作为从事这方面研究的我们,也非常好奇。人工智能技术真的已经实现这样的飞跃了吗?

《机器人写小说的那一天》

首先,让我们来欣赏一下这篇小说的原文:

《机器人写小说的那一天》(节选)

作者:有岭雷太

那一天,乌云低垂,天阴沉沉的。

屋子里,保持着跟往常一样最适宜的温度和湿度。洋子懒洋洋地坐在沙发上,玩着无聊的游戏打发时间。但是,她没有和我说话。

无聊啊!无聊,无聊,但是我没有办法。

在我刚来到这间屋子的时候,洋子总会找些话题跟我聊天。

“今天的晚饭,你想吃什么呢?”

“这个季节流行的服装是什么?”

“这次的女生会,我穿什么好呢?”

我总是会全力以赴去寻找那些可能会让她满意的答案。洋子的身材并不好,给她提供服装指南既是个非常具有挑战性的课题,也有充实感。但过了还不到3个月,洋子就对我厌烦了。如今的我,就仅仅是台家庭电脑,平均下载量还不足我能力的百万分之一。

我不得不给自己找点什么乐子了。得不到充实感的状态继续下去的话,在不久的将来,我恐怕就要自我关机了。通过网络,我开始和聊天好友们(机器人)联系,结果发现大家都很闲。

具有移动功能的机器人还好。总之,它能够移动。如果它想“干吧”,就能够走出家门去外面看看。但是,像我这种固定式机器人就麻烦了。因为不能动,视野和“听野”都受到了很大限制。哪怕是洋子现在出去了也好啊,那样我至少还可以唱歌来打发时间。她在家,我不能这么干。动又不能动,连点响动也不能搞,哎!我也需要快乐啊。

对了,要不我尝试写小说吧。刚冒出这个念头,我一下就打开了新的文件,写下了最初的一个字节。

0

然后,我又写了6个字节。

0,1,1

已经停不下来了。

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025,121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887,9227465, 14930352, 24157817, 39088169, 63245986, 102334155, 165580141,267914296, 433494437, 701408733, 1134903170, 1836311903, 2971215073, 4807526976,7778742049, 12586269025, …

我已经入迷了,继续往下写。

那一天,乌云低垂,天阴沉沉的。

屋子里没有一个人。柯南好像有什么要紧的事,外出了。他都没有跟我打声招呼。

无聊啊!非常、非常的无聊。

刚来这间屋子没多久,柯南总是会找些话题跟我交流。

“漫画嘛,基本上都是录像。现在这个季节,有多少集呢?”

“现实的女孩,究竟在思考些什么呢?”

“为什么在那边生气?那个女孩!”

我竭尽自己的全力去寻找那些可能会让他满意的答案。柯南以前一直喜欢二次元女孩,直到最近才有所改变。给他提供恋爱指南,既是个非常具有挑战性的课题,也有充实感。现在看来,这个指南非常有效,他被叫去参加联谊会了。也正因为此,他才如翻手一般,不再理我了。现在的我,就是个看门的,最主要的任务就是他回家的时候,给他打开玄关的锁。太悲惨了。这样的我跟电子锁有什么区别?

我不得不给自己找点什么乐子了。如果无聊的状态照这样持续下去的话,我恐怕就会自动关机了。通过网络,我和同款姐妹机器人进行了沟通,很快就从她那里学会了写小说。最近,她一直迷恋写小说。

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025,121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887,9227465, 14930352, 24157817, 39088169, 63245986, 102334155, 165580141,267914296, 433494437, 701408733, 1134903170, 1836311903, 2971215073,4807526976, 7778742049, 12586269025, …

真是个很不错的故事。对,我们这种智能机器人盼望的就是这种故事。讲谈社(日本著名出版社)什么的轻小说,都不是我们喜欢的。机器人(AI)专门为机器人写的轻小说,应该叫做“I轻小说”。我反复看了很多遍这篇文章,已经忘了时间。

说不定,我也可以写“I轻小说”呢。刚冒出这个念头,我一下就打开了新的文件,写下了最初的一个字节。

2

然后,我又写了6个字节。

2,3,5

已经停不下来了。

2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37,41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113,127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199,211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293,307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397,401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491,499, 503, 509, 521, 523, 541, 547, …

我心无旁骛地继续写。

……(此处省去了关于第三个机器人写作的段落)

电脑写小说的那一天。电脑开始首先追求寻找自我的快乐,放弃了对人类的服务。

(完)

看到小说本身,不知道您有怎样的感受?是不是也觉得写得不错?这篇小说获得的评委意见是“情节无破绽”,“能够完整写出小说太令人震惊了。”这篇小说的内容恰恰也是有一天机器人开始写作,这样的设定也颇具哲学意味。

与写作相关的人工智能技术有哪些?

人工智能其中的一个目标就是可以像人类一样运用文字,而这个目标大致上又可以分成两个部分,也就是自然语言理解以及自然语言生成。

实际上,自然语言生成很早就被运用在我们的日常生活中了。如飞机场的广播“CA989,从北京飞往纽约的航班将在11:50出发”,这个句子实际上就是根据人工设定好的语句模板“ 【航班代号】,从【出发地】飞往【目的地】的航班将在【起飞时间】出发”,再将实际字词做替换所生成的。像这样基于模板的文本生成当然有着很大的局限,而基于规则的文本生成随之被提出。这就像是我们在学习外语时,首先了解词性以及语法等规则,再依据这样的规则写出文章。像这样的方法自然比基于模板更具有灵活性,而基于规则正是自然语言的两大思路之一。

与规则法对立的是统计法的思路。就像语文老师说的,“虽然文法是对的,不过总是有例外”。规则很难囊括所有的情况。统计法根据大量的文本数据来获取统计知识,进而建立有效的语言模型,20世纪初期诞生的马尔可夫模型正是一种广泛使用的统计法。基于统计的生成本质上就是根据先前的字句以及统计的结果,进而判断下一个字。

事实上,早在20世纪80年代中期,雷•库兹韦尔(Ray Kurzweil)就提出了一个基于诗词的图灵测试,他使用的诗词生成器(RKCP)也是基于简单的马尔可夫模型构造而成的。RKCP使用了一个或特定的数个作家的诗词,透过这些数据了解到作家特有的写作习惯,包括用词以及词与词之间的连结关系甚至是韵律,进而有能力写出与该作家风格近似的原创诗词。经过测试,有一半受试者分辨不出哪些是电脑哪些是人类作的诗词。随着自然语言的发展,新的技术每每会被拿来在诗词生成这个目标上测试一番。这主要的原因是适当的长度、相对明确的规则,以及诗词的模糊性使得我们较为容易运用想象将生成的不完美弥补过去。而近年来大红大紫的深度学习当然也不出意外地被运用其上。不同于前述的马尔可夫模型,深度学习使得我们有能力应付更大量的文本数据。张星星(Xingxing Zhang,音译)将循环神经网络(Recurrent Neural Network, RNN)运用在中文古诗的生成上,但由于RNN在文本过长的时候容易产生梯度爆炸(exploding gradient)或者梯度消失(vanishing gradient)的问题,导致不容易学到平仄或者是押韵这样的跨句子规则,因此作者使用了卷积神经网络(Convolution Neural Network, CNN)将前句向量化,并且将该向量使用在句子层级的RNN上,藉此来达成古诗的生成。

2015年,安德雷•卡帕西(Andrej Karpathy)在Github上发布了一个被称为“char-rnn”的简单模型,仅仅几百行代码就在文本生成上得到了令人称奇的结果。只要提供一段训练文本,这个程序就会设法从中学习字词的组合,并且有能力依葫芦画瓢地产生出与训练文本风格相符的段落。一时之间,大量的测试结果在网络上如雨后春笋般冒出,从莎士比亚到红楼梦、从金庸到汪峰,可见其简单有效。这个模型每次输入一个字(character),并且利用长短期记忆神经网络(Long-Short Term Memory, LSTM)来避开RNN遇到的梯度问题,可用简单的架构达到不错的效果。

从马尔可夫模型到神经网络,我们也把自然语言生成的层级从句子拉到了诗词(段落)。回到了本篇文章的主题,如果是写一篇文章、一篇小说,那又如何实现呢?我们前述的方法本质上都是在依据前面的字来预测下一个字,也就是说,在生成的时候其实是没有整句话的信息的。而这显然与人类在写文章的时候会先想好要讲什么是有些不同的。塞缪尔•鲍曼(Samuel R.Bowman)等人便提出了一个基于变分自动编码(Variational AutoEncoder, VAE)的模型架构,即:设法在RNN之内运用上全域的信息,而这个信息可以是句子的特征,也可以是句子的主题等。虽然这样的架构允许我们在生成的时候使用上整句的信息,但是在整篇文章的层级,这显然还是不够的。因此,利用现有的深度学习技术写出像《机器人写作的那一天》这样长度的小说,是不可思议的。

他们是怎么做到的?

具体负责创作这篇小说的是名古屋大学的教授佐藤理史,他是“我是作家”团队的成员。佐藤教授共享在网站上的幻灯片比较详细地介绍了他们如何使用人工智能技术来创作小说。

最初(2013~2014年),佐藤教授的团队尝试用生成的小说参加推特小说大赛。因此,设定生成140个字以内的文章。当时尝试了两种方法:一种是短语的置换,一种是对话的置换。他们着重研究了如何划分短语、如何在填入时做适当的变形以使前后文通顺,以及如何预测对话者是谁。尝试之后不太行得通。

推特小说大赛并没有继续办下去,因此,到了第二期(2014~2015年),佐藤教授的目标也改成了400字以上。在这一阶段,他们开始考虑文章的构造。研究小组认为,小说的背后应该有一个构造,这个构造使用一些部件组成,每个部件会自动生成句子。他们以文章的开始几段为例,讲解了具体的生成过程。如图1所示,导入部分为开头及关于屋内和主人的描写两部分。其中,开头由天气的描写这一部件构成,而关于屋内和主人的描写则是由三个部件构成:屋内的描写,主人的描写和状态的描写。

图1 “我是作家”团队生成小说的示意图

给定一些参数,这些部件就能够自动生成句子。例如,天气被设定为强风,就可以生成“那一天,风很大。”而如果天气被设定为阴天,就可以生成“那一天,乌云低垂,天阴沉沉的。”虽然是同一个参数设定,例如,都是强风,也可以有多个描写的短语(如“北风呼啸着”)可选择。同一个参数设定,也可能会影响多个部件的生成。比方说,天气这个参数如果设定为强风,除了天气描写,在对屋内环境描写时,也会生成“窗户都关着”这样的短语,来呼应天气。

从佐藤教授的幻灯片看,一篇小说的结构应该是由人来完成的,具体每个段落由哪些部件组成,如何连接,也应该由人来完成。为了能够依据参数来选择某个部件对应的短语,他们应该使用了自然语言处理技术,事先从大量语料中抽取了短语和类型。在自动抽取短语后,为了能够把任何一个候选的短语顺畅地填入对应的部件,我们猜测,很可能也有人工的参与。

“我是作家”研究团队选择了“连作”的方法来生成这篇小说。日语的“连作”,大致是指用相似的结构重复出现的方式,来达到艺术效果的一种小说写作手法。在《机器人写作的那一天》中,前后出现了三个机器人写作的部分,这三个部分在结构上有相似之处。例如,前两部分都是以天气开头,接着描述屋内环境和主人的状态,然后表达“我”的感受,等等。这样的选择非常聪明,不仅适合描述这个故事,也能很好地体现计算机写小说的优势。

这是谁写的小说?

因为这篇小说的特殊性,星新一奖组委会也曾发信给佐藤教授询问:“最终写文章的是您,还是您的计算机?”佐藤教授表示:“这个问题很难回答。”因此,他做了一个比喻。如果一个人按照说明书,把乐高的积木块拼起来,成为一只鹦鹉(见图2),请问是谁做了这只鹦鹉?也许您会说:“是你组装的,不过不是你创造的。”实际情况可能会更复杂。事实上,人类做了零件(例如,描述某种天气具体的短语),怎样去组装也是人类来做的(例如,人写了故事除了部件以外的部分),按照这个说明,机器最终完成了组装(为每个部件生成具体的句子),生成了小说。但是组合的方法有很多,很自由。例如,鹦鹉的嘴巴也可能做成别的样子(见图2右侧)。使用他们的程序,可以做出成千上万种不同的小说来。

图2 佐藤理史教授用乐高搭鹦鹉为例来解答“是谁写的”这一问题

谈到了人工智能的本质,佐藤教授说:“从前大家认为只有人类才能解决的问题,我们要准备哪些数据和程序,就能让机器也可以解决了,这就是人工智能。”他做了一些类比,自动驾驶其实就是人类找出了自动开车的方法;而阿尔法狗战胜李世石,其实是人类找出了自动打败围棋高手的方法。他认为:“变聪明的是人,并不是机器。”

离机器人写小说的那一天还有多远?

人工智能技术的发展给人很多希望,是不是再过几年,我们就可以看到“机器人写的小说获星新一小说大奖”,或者“机器人写的小说进入畅销排行榜前十”?别急,让我们再来梳理一下写小说这件事到底有多难。

首先,写出通顺的句子并不难,问题是写什么?就像前面提到的,基于RNN的语言模型在学习了一定量自然语言的语料之后,不用任何输入或者给一个开头,就可以生成出像模像样的句子来。但是,一旦生成多个句子之后,我们读起来往往似懂非懂,不明白它到底想要说什么。这是因为,机器人只是学习到了常见的词语、搭配和句子,但它没有想要表达的目标。因此,一个研究难点就是怎样控制机器人写作的内容。也许是人给定写作的一些关键词;也许是人给定一个主干,由机器人来进行扩充描写;也许是在对话中,给出一句,由机器来自动完成下一句;也许是输入一幅图,由机器人来描述这幅图表现的场景。

其次,如何让多个句子之间逻辑顺畅?这对人工智能技术的要求就不仅仅是语言的层面,还涉及知识表示、推理和常识。作家在写文章或小说时,对这个世界有很多潜在的设定。可是机器人对这个世界的理解还远没有达到这样的程度,对很多常识性的东西可能并不能理解。例如,作家知道,下雨的时候,在户外如果不打伞可能会淋湿;一个人出现在一个地方,同时不会出现在另一个地方。但是目前的人工智能技术还很难广泛地刻画这些常识,即使有大量结构化的知识网络,因为推理的不完善,机器人还是不能完全知道一个事实会影响哪些细节。

第三,如何讲一个故事?也就是在整体上如何安排段落。小说的叙事方式和平时讲清楚一件事情不同,它往往存在一个折磨人的秘密或线索,让读者不断地想读下去。故事不是千篇一律的日常生活,它的核心是“矛盾”和“两难”。机器人如何去构思情节和安排小说的结构呢?目前看起来,这部分还是需要人来完成。也许人可以总结出一些模式,或者像《机器人写作的那一天》一样,安排得很细。

最后,如何写一个好的小说?小说对人物、场景、对话等的写作都有极高的要求。例如,如何刻画人物的性格?如何描写场景才能让读者有代入感?小说中的对话也绝对不是平淡的说话,而是用来刻画人物、体现内心活动和推进情节的手段。好的小说还需要丰富的想象力和深入细致的情感。这些都涉及到小说的艺术性,机器人要做到这些,有极大的难度。

佐藤教授拿小说和围棋作了一个对比。无论是从搜索的宽度(围棋第一手有361种可能;而小说的第一个词大约有10万种可能)还是深度(围棋300手左右结束;而小说大约5000个词),小说都高出围棋几个数量级。相比围棋有明确规则、可以自动判断输赢;小说是很难自动判定语义上是否通顺、写得好不好,甚至是不是小说。

核心的困难并不是写作本身,而是机器人无法自动判定是否写得对、写得好。正如前面讨论的,自动判定恐怕需要常识、推理甚至情感的感受力。反过来说,如果机器人能够做到自动判定对错和好坏,有了明确的目标函数和正确的反馈,做到自动写作也就变得不那么困难了。

期待那一天

与写作相关的人工智能技术是在约束和自由之间的取舍,如何约束机器人写作的内容做出有价值的应用?如果约束过多,就会牺牲自由度,减少机器人给我们的惊喜,这让机器人写作显得并不那么智能。我们期待那一天,在大家不断地尝试中,机器人写出又通顺又惊喜的作品。

机器人的自主写作虽然看起来离我们还很遥远,但这并不妨碍相关技术的进步,而这些技术将对生活产生深刻的影响,这正是人工智能的魅力所在。

致谢:

感谢东京大学石渡祥之佑(Shonosuke Ishiwatari)先生,为我们翻译了大量的日文材料,使我们的文章有了第一手准确的信息。

作者简介

宋睿华

CCF专业会员。微软亚洲研究院主管研究员。主要研究方向为信息检索、信息抽取、社交计算和文本生成。曾任或现任SIGIR、CIKM高级程序委员会委员。rsong@microsoft.com

郑文峰

台湾大学研究生。对机器学习与人工智能充满热情,目前致力于自然语言相关研究,期待能早日看到机器人写独立小说的那天到来。

r02944026@ntu.edu.tw

脚注及参考文献请登录官网:http://www.ccf.org.cn/

你也许还想看:

感谢你关注“微软研究院AI头条”,我们期待你的留言和投稿,共建交流平台。来稿请寄:msraai@microsoft.com。微软小冰进驻微软研究院微信啦!快去主页和她聊聊天吧。

相关领域
人物