社会计算实例:10秒钟验证码能干什么?

        你一定见识过这种情况:电脑提示——“请输入验证码”,然后是几个数字,或者一个字符串,你得小心辨认,然后把辨认出来的字符,输进去,让机器判断你到底是真人,还是计算机软件。
  这种情形叫做“验证码”,英文名字比较长,叫做CAPTCHA,Completely Automated Public Turing test to tell Computers and Humans Apart,意思是“全自动区分计算机和人类的图林测试”,据说最早是在2000年,由卡内基梅隆大学的Luis von Ahn提出的。
  图林测试的妙用
  使用验证码,是为了杜绝通过软件设计的“注册机器人”恶意注册信息,产生大量的垃圾用户(或者僵尸用户)、垃圾点评信息的行为。图灵测试,是计算机科学的奠基人阿兰•图林,在1950年提出的一种测试方法,该方法的目的是回答这样一个基础问题:如何判断人机对话的另一端,到底是人还是机器?
  这个问题换个角度,就是:如何判定一台电脑,是否具备智能?或者说,看上去“像一个人”。
  图林的办法很朴素:他设想把一台机器摆在一间空屋子里,人通过连线与这台电脑交互;人可以提出任何的问题,假如电脑对答如流,令人看不出任何破绽的话,就可以断定这台机器“具有像人一样的智能”。
  图林测试成为检验机器是否具备智能的著名测试方法。不过,真正通过图林测试的电脑,严格说还遥不可及(这么说很不严谨,准确说法请参考各种百科)。
  半个世纪以来,图林测试除了确立了一种直观、苛刻的机器智能检验标准,惹得众多计算机科学家、发烧友一试身手外,一直没找到什么实际用途。这种情况在10年前出现了转变。
  让多余的动作有价值
  话题回到验证码。雅虎公司最早受到机器注册的困扰。大量通过机器程序自动注册的行为,给雅虎带来了无尽的烦扰,他们找到了21岁的Luis von Ahn,这个刚从杜克大学获得数学学位,进入卡内基•梅隆大学硕博连读的小伙子,研究了一种通过强制用户输入某个适当变形的字符串,来检验注册者到底是机器还是人。按照现有的计算机技术,还没有哪台电脑能通过这种测试——人为扭曲变形的验证码毫无规律可言,而且是以图形方式呈现,注册者必须通过肉眼辨识,才能通过验证。
  事情并未就此止步。Ahn是个追求完美的计算机天才。他发现,输入验证码固然可以把机器注册行为挡在系统门外,但这毕竟是“多此一举”。能不能给这个“多余的动作”找到点用处呢?假如每次人们输入验证码需要花费10秒钟的话,按照每天6千万次使用,这可是15万小时的劳动力资源啊!
  2005年,在Ahn拿到博士学位之后,他的努力有了结果。他把这种验证方式叫做reCAPTCHA,基本原理是这样的:注册者输入验证码时,提供两个字符串,一个是真正的验证码,另一个字符串则来自某个古老文献中难以辨识的单词或者词组。注册者需要根据自己的辨识,输入这两个字符串,奥妙就在第二个字符串上。
  其实从验证码的角度说,有第一个字符串就足够了;但是,为了让这种“多余的动作”产生价值,第二个字符串就很有用了——这个通过扫描仪、OCR软件,甚至古籍整理者都难以辨识的古老文献中的字符串,竟然可以通过大量注册者“举手之劳”的辨认,很快得到解决!
  有人曾作过这样的计算,如果要把互联网档案馆的文本校对一遍,按照每天处理100万个单词的速度,需要400年!采用reCAPTCHA方法,每天可以校对160本书,精度可以超过99%。
  2009年9月17日,Google购买了这项技术,作为书籍扫描中难以辨认字符的识别工作。
  Louis von Ahn的办法,构思精妙,而且简单易行。这是典型的“社会计算”的成功范例。
  群体智慧:社会计算的精髓
  作为一门日益受到重视的计算机学科,人机交互(HCI)一直是计算机学科最具生命力的代表。近些年人机交互成绩斐然,已经大大突破了狭义的、线性的、基于键盘、打印、屏幕等传统交互方式的樊篱。
  苹果公司的iPhone、iPad,让触摸屏技术风靡全球,下一代体感游戏(如Kinect)正引起游戏发烧友的青睐,3D虚拟场景、数字头盔、数字手套,甚至可穿戴电脑,植入式芯片技术,无一不在重新定义着人机交互的边界,不断改写着用户体验。
  但是,Ahn的方法具有更加深刻的意义。他所使用的办法,可称之为“社会计算”。
  “社会计算”,简单说就是通过“群体智能”的方式,让众多网民表面上看似无关的计算行为,总体上产生有序的、有意义的结果。目前最为流行的社会计算模式,是所谓“推荐算法”(参见2011年1月21日,财经网周末版技术专栏文章《推荐引擎:未来互联网的发动机》,http://www.caijing.com.cn/2011-01-21/110625040.html)。
  据说,最近Ahn又提出了一款新产品的创意,名字叫做Duolingo,它最初的设想,是把互联网的网页翻译成多语版本,这可是浩大的社会工程。Ahn的创意又一次显现出独特的视角:他看到,全世界有10亿人在学习外语,这么大的群体通过协作,或者就在阅读网页的过程中,通过举手之劳,自然地贡献自己的点滴力量,就能把网页转换成更多的语种。
  这种“聚沙成塔、集腋成裘”的办法,是社会计算的精髓,也是未来计算模式变迁的核心动力。
  顺便说,Ahn当年的博士论文,就是“Human Computation”。

你可能感兴趣的:(社会计算实例:10秒钟验证码能干什么?)