Total Pageviews

Thursday 2 June 2016

当人们谈论用人工智能写作时,他们在谈些什么

(用深度学习理论去学习武侠小说、网络小说、唐诗宋词,乃至色情小说、政府报告,人工智能将写出什么?本文一步步揭示了人工智能学习写作的过程。)

三月是人工智能的季节。月初,AlphaGo在韩国大胜李世石。月末,人工智能写出的小说在日本入围大奖赛。2016年,最热的科技概念无疑就是“人工智能”。人们对于人工智能的态度从最初的怀疑,到后来的震惊,再到现在的叹服。我们不仅在议论“人工智能能干些什么”,更在心里嘀咕:我们的职业还能存在多久?

不过,在热议之外,人工智能到底是什么,大多数人如同盲人摸象,仅仅只有一知半解。至于其内部的工作原理,一般公众更是一无所知。由于巨大的技术障碍,舆论对于人工智能仅仅停留于“高深、前沿、无所不能”的印象,而无法对之进行深入解析。公众的怀疑、震惊、叹服等等心态,说到底都是无知的体现。

知己知彼,方能百战不殆。在打响自己的“职业保卫战”之前,让我们解剖一只麻雀,看看人工智能到底是如何思考的,它到底有什么能耐,又有什么缺陷。

我们选取的麻雀是写作。

语言是人类的关键特征,它不仅是人类区别于动物,也是人类区别于机器的独特能力。著名的“图灵测试”,鉴别机器是否具备人类智能,就是以语言为考察指标的。

NLP(Natural Language Processing,自然语言处理)是一门研究如何让机器理解人类语言、写出人类文字的学科。这门学科有两种主要思路。一种是“符号法”,由人工建立语言的模型,提炼出语言的语法、词法,标注每个单词的含义、词性,然后教会机器这套原理,并让它根据语法去写作文章。——这种方法你一定很熟悉:不就是背单词、学语法、然后写作文吗?对,这就是我们在学校里学英语的方法

另一种思路是“统计法”。与传统的老师教学生不同,这种方法更注重“自学”:扔一大批文字给机器,让它自己去寻找语言的规律,自己去尝试写作。

这种方法其实我们更熟悉。每个孩子不都是这样学习母语的吗?没有哪个父母会告诉孩子什么是名词、什么是动词、什么是疑问句强调句,孩子只是天天听、天天说,自然而然就掌握了一门语言。

当然,“符号法”与“统计法”并不是完全对立的,大多数NLP算法都同时包含两种思路。只不过在计算机发展的初级阶段,无力提供“统计法”所需要的大量计算资源,一直都是“符号法”更占上风。直到近十年以来,随着计算能力的大幅提高,尤其是深度学习理论的崛起,“统计法”才得到越来越广泛的应用。

一般认为,深度学习是通往真正人工智能的重要一步,如今声名鹊起的AlphaGo,即是基于深度学习理论而设计的。它并不理解围棋中诸如“势”、“厚薄”等种类繁多的术语,它只是学习了大量棋谱,从中总结出了围棋的规律,最终击败了李世石。AlphaGo取胜后,聂卫平一度苦思而不得其解,AlphaGo团队中没有一个围棋高手,为什么能打败世界冠军呢?其实,这就是聂卫平还停留在老师带学生的思路上。老师带学生,学生很难超过老师的高度,而AlphaGo是自学成才,不仅超越了顶尖的人类高手,还自创了许多精彩的招式。在人机大战后的春兰杯、围甲联赛中,人类棋手也开始应用AlphaGo所创造的定势,“AlphaGo流”迅速被围棋界所承认、吸收、并发扬光大。

在自然语言处理方面,也有一个著名的深度学习模型:卡帕西模型。

斯坦福大学的安德烈•卡帕西(Andrej Karpathy)是深度学习领域的知名人物。2015年5月,他设计了一个基于递归神经网络的NLP模型,并将代码公布在GitHub上。

这个模型非常精炼,只有几千行的代码量,任何一个具备基本编程功底的工程师,都可以看懂代码并且下载运行。但模型的功能却非常强大,它没有设定什么语法,也没有什么单词库,更没有指定只能处理英文、法文、或某一种特定语言。它唯一的要求,只是文字输入。你喂给它大量的文字段落,它就会用递归神经网络分析段落,寻找出字与字之间的关系。

所有文章说到底,不过是文字的排列组合,从数学角度而言,也就是一种文字的序列。如果计算机能够破解这个序列,掌握其规律,那么从理论上来说,它也能够生成这样的序列,写出一篇类似的作文。

理论非常简单,实战效果如何?现在,让我们假设有一个机器人,装备了卡帕西模型,他立志要成为一名中文小说家,他的表现会怎么样呢?

首先,要找一个学习范本。机器人找来的是中文世界最成功的流行小说:金庸的《射雕英雄传》。

机器人学习了一遍教材。《射雕英雄传》只有八十万字,学起来不费多少时间,一台普通的台式机,只要五六秒钟就可以学完。然后,机器人写出了如下文字:

002Qact5gy729FAHCyV15

呃,完全不知所云,是吧?

机器人所生成的文字,只是一些单字的随机组合。显然,他还没有找出任何文字的规律。此刻的机器人,如同一个初生婴儿,只会发出一些毫无意义的音调,完全不知语言为何物。

幸好,机器人有的是时间,他最擅长的就是重复性劳动。不过一分钟时间,他又学习了十遍,再次交出一篇作文:

002Qact5gy729FBjh4a1e

还是看不懂。不过,比起上一篇也有进步,机器人写出的字不再是随机的,而是教材中出现频率较高的文字,如靖、黄、锋、全真等,都是书中主要人物的名号。可见那位婴儿正在注意聆听周围的语言,开始牙牙学语了。

机器人继续成长。十多分钟后,他已学习到一百遍:

002Qact5gy729FBMJLm1c

这篇作文里的标点符号大幅增多。虽然其用法一塌糊涂,比如引号放在冒号之前,还常常会连用两个标点符号。但看来机器人已经意识到句子的存在,试图用句子来组织文字了。

当机器人学习到一千遍:

002Qact5gy729FCjQLN4b

这篇作文简直是令人惊喜,就好像不知什么时候小孩子突然学会了说话,机器人对语言的领悟也突然有了一个飞跃。

最明显的变化是,他识别出了常用词汇,人物名字全部写对,连《九阴真经》也认识了。

更了不起的进步,则是机器人学会了句法,他会用标点符号了!每句话用逗号分隔,用句号结尾,双引号一一对应,而且全都位于冒号之后。

同样,他领会了“主谓宾”的句法结构,每句话都是以主语开头,后接人物动作。他也识别出了许多词汇的词性,并把它们放在正确的位置,形容词位于名词之前,副词位于动词之前。

总体而言,这篇文字还是看不懂,但是已经顺眼很多,开始像一片真正的人类文字了。可以说,现在机器人的语言水平相当于一岁多的孩子,能够磕磕碰碰说几句话了。

这充分显示了机器学习的威力。在没有预设任何语法库、词汇库的情况下,机器人愣是通过反复学习,掌握了人类语言的规律!

再接再厉,机器人学习到一万遍:

002Qact5gy729FCTm4o30

很遗憾,一万遍的学习并没有带来明显进步,这次写出来的作文跟上一篇区别不大,仍然不太通顺,也仍然是词法、语法基本正确,而句子的含义还是让人无法理解。

机器人不知道什么叫挫折和放弃,他继续埋头苦干,又学习到十万遍。但这一次,他的文字依旧没有起色。新的一份作业,通顺程度还是跟一万遍的一样。

坚持一天一夜,当机器人学习到上百万遍,又交出若干份类似的作业,我们不得不失望地发现,机器人的金庸之路到此为止,他的《射雕英雄传》没法写得更好了。

不过,世界很大,中文作家除了金庸,还有很多。机器人又踏上古龙之路,学习了数万遍《古龙全集》之后,他拿出一份习作:

002Qact5gy729FDrSd6bc

新的学习结果很有趣。熟悉武侠小说的朋友都知道,同为武侠大师,金庸、古龙的风格却是迥然不同。实际上,他们二人只不过恰好都写了武侠题材而已,从文学理论来看,金庸是一个古典作家,而古龙是一个现代作家。

而机器人的模仿之作,也明显能看出两位老师的风格差异:

古龙的段落更短,一般一段就一句话,而金庸的一个自然段通常包含许多动作和对话。

古龙有更多心理描写,他的语言更现代,而金庸就显得古汁古味。

古龙喜欢装逼,人物语言总是酷毙,恨不得不用动手,一开口就把人噎死。

作为人类,我们可以评论,机器人的作文还不是很通顺。然而神奇的是,他一不懂词汇,二不懂语法,更不了解句子含义,不认识金庸古龙是谁,但他却照样表现出了人类作家的细微差异。他所写出的作文,同样具备段落短、语言酷、深入人物心理这些典型的古龙式文风。

这就是机器学习的威力所在,他不再需要人类专家去煞费苦心地提炼模型,他自己就能从材料中总结出模型。这是人类认识世界的一个重大进步。以往,科学发展的典型流程是,开普勒这样的科学家观测、实验、收集数据,牛顿这样的科学大师研究、发明科学体系。而今后,我们或许不需要、至少是不那么依赖牛顿级别的天才,只要有一批开普勒提供数据,计算机就能帮我们完成最后的临门一脚,挖掘出人类想象不到的科学规律。

再审视一遍作文,我们还可以看出,同样是模仿之作,“吉龙”也比“全庸”写得更加通顺一些。结合机器学习的特点,我们不难找到原因。首先,机器人学习的两份材料样本,一个是《射雕英雄传》,八十万字,另一个是《古龙全集》,高达一千七百万字,是前者的二十倍。这方面机器和人是一样的,都是学得越多,写得越好。

另一方面,古龙的语言也比金庸简单,他的句子短,段落短,语法结构也较为简单。《射雕英雄传》篇幅不长,却用到三千多个单字,而厚厚的《古龙全集》,才用到两千多个。可以说,金庸小说的复杂性较高,更有利于人类审美,而古龙小说的规律性较强,更有利于机器人学习。

为了验证这个设想,机器人第三次踏上学习之路。这一次,他学习的是规律性要求最高的中文作品:《全唐诗》。

002Qact5gy729FE8mLM4a​

果然,机器人写出了一手漂亮的唐诗。以第一首诗为例,遣字造句像模像样,“花开”对“风吹”,人类诗人也不过如此。格律按古声为:平仄平平仄,平平仄仄平,平平仄仄仄,仄仄仄平平,算是相当工整。唯一的缺憾,就是还没有押韵。

从意境而言,这首诗生动形象,浅白明晰,自然流露出的那份性情,也颇有几分唐诗的风流味道。

其他几首诗,或是五言,或是七言,格式也都整整齐齐。虽然不全通顺,但奇妙的是,却大都能够读出一种独特的诗味。

这大概要归功于诗歌的艺术特色:重视语言的独创性、多义性。越是不符合惯例的诗歌,越是具有独创性,越是具备想象的空间。

前面我们已经总结出,机器学习的长处,在于从大量数据中寻找特征,总结模型。短处则是他并没有真正理解数据,他只是按照自己找出来的规律,似是而非地写作。这里,写作唐诗宋词,正好可以扬长避短。古诗词有明确的规律,只要读得够多,机器人可以准确地提炼出平仄、韵脚等规则。另一方面,古诗词强调意境,强调联想,看似不合道理的汉字组合,被机器人放到一起,反而别具一番风味。如今网上有许多写诗软件,或许就是这么来的。

经过三次考试,机器人的写作水平大致暴露在我们眼前。看起来,除了唐诗宋词,他似乎写不出什么像样的东西。那么,只要你是写现代文的,是不是就可以松一口气呢?

不一定。

也许,写作正经文章,机器人还差一口气。但是,不那么正经的文章,机器人还是有用武之地的。

首先是网络小说。以最著名的网络小说之一《斗破苍穹》为例:

002Qact5gy729FEDAd422

这篇作文读起来仍然不太流畅,但相对金庸古龙的模仿之作而言,却算得上大体通顺,至少,大部分句子都读得懂了。似乎机器人一旦学习网络小说,就突然悟性大增了。

为什么呢?难道网络小说就特别适合机器写作吗?

答案是YES。从语言文字而言,古龙比金庸单薄,而网络小说又比古龙大大地单薄。前面提到,《古龙全集》用到两千多个单字,这已经比《射雕英雄传》少了许多,而《斗破苍穹》用到的单字,只有可怜的一千多个。

简单的对比就知道,古龙写作二十多年,也才写到一千七百万字,而《斗破苍穹》只花了两年,就写到六百万字,其中灌水的程度也就可想而知了。

简单、稀薄的文字,或许会被真正的作家所鄙视,但这却是机器人最喜欢的。越是单调重复,他越是能找出规律,模仿出类似的作品。也许,用不了多久,网络写手就会发现他们多出一个高产、全能、永不疲倦的竞争对手。

第二种体裁,是色情小说。机器人通读了《少妇白洁》之后,兴奋地写出以下文字:

002Qact5gy729FFion719

这篇小黄文当然也是看不懂,没几个通顺的句子。但没关系,文中充斥的那些敏感词汇,到处都在挑逗读者的下半身。不用看懂情节,读者也知道他们在搞那男女之事。

色情文学的读者,我们不否认有一些是来看故事,看人物的,但大多数读者,还只是看一个性交场面,寻求一点动物本能的刺激而已。堆砌一批人体器官的敏感词,就足以激活他们的勃起神经。对于这些读者,机器人也就足够了。

至于文字通顺的缺点,上一篇之所以写得渣,很大程度上是因为《少妇白洁》非常短,只有区区六万字,机器人不足以掌握色情文学的精髓。只要机器人再多学几本描写抽插运动的专著,把句子写得更加流畅一些,我们就可以期盼色情文学的春天来临了。

还有一种体裁,也具备唐诗宋词一样严格的格式要求,其内容又包含大量单调、重复的段落,可预测性极强。这种体裁,自然也是机器学习的绝佳对象。

002Qact5gy729FG1W2U54

对,这篇流畅的作文,就是机器人学习了《历年政府工作报告(1954-2011)》后的结果。

不过,这个我们就不评论了。机器人学习这些无所谓,作者君不想被送去学习党章。

好了,现在我们大致知道,当机器人谈论写作时,他们在谈些什么。就卡帕西模型而言,他有一个天花板。他能够描绘出一种外表类似的文字风格,但却无法写出真正让人理解、让人心动的文章。

只要你不写唐诗宋词、不写网络小说、不写色情小说、不写八股文,暂时可以放心了。目前机器人的语言能力,也就跟一两岁孩子相当。

但这并不意味着,人工智能永远追不上正常人类的智力。如前所述,卡帕西模型非常简单,只有几千行代码,也没有语义库、词汇库的定义,是一个纯粹的“统计法”模型。它主要是用来展示递归神经网络的工作原理,教学意义更甚于实用意义。实际应用中的商业化语言机器人,远远比它复杂和强大得多。

另一方面,也许你已经注意到,卡帕西模型的语言能力之所以上不去,是因为跟真正的孩子学说话相比,他还缺乏最重要的一环——外部反馈。

孩子学说话不仅仅是听,更重要的是说。语言学家指出,婴儿需要在母亲怀里亲密互动,需要与父母一起玩耍游戏。孩子每一句有意无意的依依唔唔,都能得到父母的回应与反馈,这种情境对于学习语言是最有利的。让孩子每天看电视,虽然他也听到了大量的对话,但由于缺乏双向沟通,孩子仍然无法习得正常的人类语言。

2015年3月,微软推出对话机器人Tay。她能够学习、模仿用户的言论,采取用户喜欢的语言风格进行对话。Tay立即引起了用户的兴趣,大量用户蜂拥而上,用各种出位言论训练她,试图诱导机器人突破下限。结果,在无数粗俗对话的刺激下,只花了一天功夫,Tay就变成了一个满口脏话、辱骂用户、鼓吹纳粹的不良少女。


微软不得不将Tay紧急关闭,至今她还没有归来的迹象。但从另一方面来看,这也说明了对话在语言学习中的威力如果机器人能够与人类频繁互动,从人类的反馈中得知什么样的句子是好的,什么样的表达方式是对的,什么样的文字是美的,那么,他离真正掌握人类语言就不远了。

这样的工作,谷歌、脸书等科技巨头已在开展。他们不仅有最先进的人工智能技术,还拥有世界上规模最大的用户,能够为机器人找到足够多的人类老师,进行足够多的训练。也许,谷歌和脸书的许多服务,已经是机器人在提供,只是用户并不知晓而已。我们在不知不觉之中,已经在充当训练机器人的人肉材料。

变革正在发生,未来无从知晓。对于文字工作者而言,人工智能仍然是一把悬在头顶的利剑。

from http://blog.sina.com.cn/s/blog_9b27a3eb0102wgeu.html