财新传媒
位置:博客 > 集智俱乐部 > 为人类编程

为人类编程

文 | 张江
 
既然我们可以将人类的脑力视为一种计算资源来替代计算机做一些难度很高的工作,那么我们有没有可能将这个过程自动化呢?也就是我们能不能像调用一段程序一样来调用人这种特殊的计算资源呢?答案是肯定的,首先让我们来介绍一下土耳其机器人市场。
 
土耳其机器人市场
 
18世纪,有一个叫作沃尔夫冈•冯•肯佩伦(Wolfgang von Kempelen)的匈牙利商人曾经游离欧洲。他随身携带的是他那神奇的宝贝:土耳其机器人(Turk)——一台会说话、会下棋的机器人(如图1所示)。要知道,早在18世纪的时候,计算机都还没有发明呢,人工智能机器就更不用说了,那么这个神奇的匈牙利商人怎么可能做出这样会说话、会下棋的机器人呢?
 
原来,这是一个骗局。这并不是一个完全自动化的装置,它的内部藏着一个真正的人,是这个人在操纵着机器,让观众以为是这台机器自己会下棋和说话一样。尽管这个骗局最终被揭穿,但是它却启发了科学家们思考如何构造真正的智能机器[1]。
 
 
2005年,就在人工智能突飞猛进地发展时,著名电子商务公司亚马逊却建立了一个土耳其机器人市场(Amazon Mechanical Turk Market)[2],招募了一堆“人类机器人”。
 
事实上,这是一个众包和人类计算的平台。它与其他众包和人类计算项目最大的不同之处就在于,这是一个通用平台,并且对于使用者来说是完全透明的。也就是说,无论你有什么样的工作需要大量的真人去做,你只需要提交一个任务(被称为HIT,Human Intelligence Task,即人类智能任务),并支付一笔酬金就可以了。接下来,这个土耳其机器人市场将会自动帮你去找工人(被称为Turkers,我们翻译为托客)来实现它,直到完成工作再把结果提交给你。整个过程对于用户来说全部是自动化的。所以,用户在这个平台上就像是在使用机器人一样,只不过这些机器人其实不是机器而是真人。
 
那么对于托客来说,他们可以通过领取微任务(micro task)而从这个平台上赚取一定的酬金。他们有可能是失业者、大学生,或者任何闲暇时间充裕的人。由于这样的工作方式轻松而有趣,同时还有一定的收入,所以他们也是乐此不疲。所以,土耳其机器人市场也可以看作一个网络上的劳动力市场,它可以快速而定制化地雇佣到你要找的人。
 
在土耳其机器市场上完成的工作则是无花八门,多种多样。既有图像贴标签、翻译、校对文章、图片排序等微任务,也有社会学、心理学实验等。
 
Turkit——为人类编程
 
土耳其机器人平台上的任务大多是可以分解成微任务的,并且可以让工人们并行操作。然而,现实生活中的很多问题是需要复杂的流程的,一部分人需要先完成一定的任务之后才去做下一步的任务,也有可能有一些任务需要反复地去做。也就是说,真正的任务可能会像计算机程序一样需要一个复杂的流程。那么,我们能不能将人类计算任务看作子程序,从而通过写代码而编排出复杂的流程,完成对人类的程序调用呢?答案是肯定的。
 
Turkit就是这样一个为人类进行编程的平台[3]。在这个平台上,你可以像写普通Java程序一样写下你的代码。只不过,在这些代码中,有一些语句实际上是在调用人类计算。例如图2所示的这段代码。
 
其中黑体部分就是要由人类计算完成的任务。一旦运行到mturk.prompt这个函数, Turkit系统就会自动调用你在土耳其机器人市场上的账号,并提交一个任务让托客们去做。例如prompt这句提交的任务就是让这群土耳其机器人给出纽约市哪里好玩的若干建议,然后把这些建议串起来作为这一句人类计算命令的返回值。系统会自动等待,直到土耳其机器人市场的任务完成,再返回一个值给这个程序。接下来,这段程序才开始继续执行,然后到了mturk.vote这句则再一次调用土耳其机器人市场上的托客们,让他们进行投票。注意,第二次调用的托客们很可能和第一句调用的完全不同。
 
下面,我们举一个例子来看看Turkit平台是如何解决手写体识别问题的。图3是一张手写的纸条,测试者为了增加测试的难度故意写得比较模糊。
 
之后,我们给Turkit平台编写脚本,让系统调用土耳其机器市场的人类计算来识别这些字符,之后再做一个循环,让托客们反复矫正这段识别的句子。得到的迭代结果如图4所示。
 
 
这里展现的是第一个版本,以及迭代6次后3次的版本,我们看到经过迭代,这段文本的识别已经相当靠谱了。这就是人类机器人强大能力的展现。
 
当然,这个Turkit平台也有很多弊端,比如人类计算的实时性往往得不到满足,于是后来又有人提出了各种各样的改进方案,我们在这里不再赘述了。我们也可以预期,如果把游戏化也作为一种全新的激励方式引入进来,会进一步拓展Turkit平台的使用范围。
 
总之,Turkit平台以及土耳其机器人市场是了不起的发明,它们开启了人类计算和众包的新篇章。可以预期,随着各种自动化设施以及人类计算的发展,对人类的调用也会越来越便利。Turkit加土耳其机器人市场也是一台名副其实的使用人类占意资源来做功的机器,在未来,我们可以将人类的占意流加以引用,来完成更丰富的工作。
 
小结
 
从简单到复杂,从众包到为人类编程序,我们利用人类占意资源的方式不断地进化。2016年的1月,《自然》杂志刊登了一篇文章:《大众的力量》(The power of crowd)[5],系统地梳理了从众包到人类计算的几种组织模式,列举了大量的实例以充实内容,并指出,由人参与的计算基本可以分成以下三种模式。
 
● 第一种模式称为微任务模式。如图5所示。早期的众包例如Clickworkers、ReCAPTCHA,还包括大部分的土耳其机器人市场完成的任务都属于这种分散的、相互独立的小微任务的模式,这种模式最适合用众包的方式来完成,但是它所能处理的任务复杂度有限。
 
 
● 第二种方式则是所谓的工作流模式,有很多环节都需要串行地处理,即一部分人处理完成之后再由下一拨人来处理。我们在Turkit平台中讲解的一些例子就是这种工作流模式,如图6所示。当然,在现实中,我们还可以编制更加复杂的流程图,将不同人的计算能力串联起来。而且在这种模式中,我们还常常区分完成任务的专业背景和水平,我们会根据不同任务的难易程度来适当地加以区分和利用。
 
 
● 第三种模式是所谓的问题求解生态系统的模式。如图7所示。为了完成任务,我们需要搭建一个共享工作空间,并且需要调集、整合各种不同人的意见、评估结果,从而完成高度复杂的相互协调。事实上,Polymath这个项目以及APPAR红气球挑战赛中的若干获胜团队就采用了这样一种问题求解模式。可以相信,随着工具和组织方式的不断演化,还会有越来越多的工作模式出现。
 
 
如果我们将人比喻成一台计算机,那么占意就是这台计算机的CPU计算操作,它拥有着非常强大的信息处理能力。在开放式的进化计算中,我们利用单一的占意处理比较简单的任务:点击选择。在众包中,大量的参与者将占意汇聚起来求解大规模的问题。更有趣的是,用户形成的大规模社群就好像蓄电池一样将人类的占意资源“储存”了起来,并形成复杂的反馈回路和流动结构。于是,集体占意可以完成从图像处理到维基百科的编写,再到数学定理的证明等不同级别的任务。而人类计算以及有目的的游戏则展示了我们原则上可以通过间接的方式把占意吸引住,并通过软件将占意中的计算能力进行传递。人可以像构造电路系统一样为人类集体占意流编写程序,让它做各种各样的工作。
 
试验板
 
以前的社会学实验都是在特定的实验室进行,碍于线下实验的各种局限,如人员、成本、场地等各种因素,对实验的设计和对数据的收集都存在着很多问题。但是随着网络的发展,线上实验成为了一个重要的社会学途径。耶鲁大学的实验室就研发了一个叫做试验板的软件平台(BreadBoard)[6]。试验板是一个用于在网络上开发和设计实验,并利用在线人员参与实验,从而进行收集数据的软件平台,如图8所示。在计算社会学,行为经济学和社会心理学等领域,研究人员进行实验,用自己设计好的交互规则,让参与者在他们自己设定的实验网络中将参与者设计在自己设计的网络中,以便于在重复实验时,参与者的行为能够影响到他们所关联的人。使用试验板,研究人员使用一个灵活地特定的语言就能够快速的设计新的实验。代码存储在数据库中,可以预览更改,也可以立即测试,而无需重新编译和重新部署软件。网络可实时显示,管理员可以轻松查看整个网络的全局行为。当实验准备就绪时,管理员可以使用试验板将试验发布到在线众包市场Amazon Mechanical Turk。 Amazon Mechanical Turk为我们提供了来自世界各地的各种参与者的即时访问。在发布实验的几分钟内,我们可以收集一大群参与者来玩游戏。
 
(我们将会在以后的推送的详细的讲解如何使用试验板进行设计实验,敬请期待)
 
 
参考文献
 
[1] The Turk:https://en.wikipedia.org/wiki/The_Turk
[2] Amazon Mechanical Turk:https://en.wikipedia.org/wiki/Amazon_Mechanical_Turk
[3] Little G, et al. TurKit: Human Computation Algorithms on Mechanical Turk, UIST '10 Proceedings of the 23nd annual ACM symposium on User interface software and technology, 57-66 , 2010.
[4] Little G, et al. TurKit: Tools for Iterative Tasks on Mechanical Turk, HCOMP '09: Proceedings of the ACM SIGKDD Workshop on Human Computation, 29-30, 2009.
[5] Michelucci P, Dickinson J L. The power of crowds. Nature, 351, 32-33, 2016.
[6] McKnight, Mark E., and Nicholas A. Christakis. Breadboard. Computer software. Breadboard: Software for Online Social Experiments. Vers. 2. Yale University, 1 May 2016. Web.
 
本篇节选自《走近2050——注意力、互联网与人工智能》的第五章“众包与人类计算”。
推荐 2