上一篇文章《人肉搜索、人肉语言及人肉程序设计》说到人肉计算的问题。前几日在圈子看到朋友在谈“云计算”,遂想是否有“人计算”这种概念。百度一下,果然发现Luis Von Ahn2005年提出的“人计算”(human computation),甚至早于“云计算”。只不过“云计算”、“框计算”具有更多商业煽动性目的,而“人计算”却是很实用的设计方法。
人计算(human computation)也可以称为人本计算、人群计算。这两个名称分别描述其两个重要计算特性:用户参与及群体参与。人计算属于群体系统的一个特例,采用人类活动来实现群体系统中个体运算,将用户作为具有计算功能的人肉CPU。
人计算不是一种新技术,而是系统设计观念的改变。
人计算案例
Luis Von Ahn于2000年发明验证码(CAPTCHA)使用机制。(网站登录时常用扭曲图片作为校验码)设计初衷为了防止密码被盗用或者反垃圾邮件。现在几乎所有的网站都采用这个技术来校验用户身份,保证信息安全。
后来,Luis进一步拓展这项技术,利用网络的分众性和协同性,完成很多计算机不可能完成的事情。当所有人考虑让计算机替代人的时,Luis Von Ahn却在想利用互联网,利用社会化的协同工作模式,实现计算机根本不可能完成的事情,以达成群体智能的效果。
《纽约时报》有158年的历史,想把所有的报纸电子化,一般OCR的技术不能实现百分之百的准确。人工录入的方式,整个工作耗时耗力。Luis给出的解决方案,把扫描的《纽约时报》通过简单的分词形成,然后入库编码,作为校验码的素材提供给用户,用户每一次填注校验码的过程就是对文字的一次录入,当所有的人都对一个图片给出相同的单词结果时,这个结果就是正确的。每天有2亿个校验码被使用,无数的用户输入的内容整合起来,就是一个完整的数字化的《纽约时报》。
Luis Von Ahn利用人的群体智慧和集体计算的模式,做了很多开创性的事情。他利用SNS的互动游戏的模式,实现传统模式识别与计算科学中。他的主要应用成果在www.gwap.com上可以体验获得(Game With A Purpose)。基于内容的图像识别与搜索中,样本的标注是一个很繁琐的问题。谷歌推出的产品Google Image Labeler中,使用的方式就是通过游戏互动的方式来实现图像标注,之后用户谷歌的图片检索引擎。人们在游戏中,为科学与商业过程做出来贡献。
Luis将这种思想用到了歌曲识别的样本标注上。一首歌曲,听到的人可以在上面进行标注,如“摇滚”“迈克尔杰克逊”“颤栗”……这样进行音乐搜索的时候,标注的人越多,搜索识别结果越精确。
2006年,Luis推出ESP Game。之后的游戏还有用于计算机视觉的Squigl(涂鸦)的游戏,还有用于收集语言网语料的Verbosity(唠叨)的游戏。Luis在他的研究中总结了三种常见的GWAP方式:1,Output-agreement games。2,Inversion-problem games。3,Input-agreement games。这三种方式,都是通过互动游戏的方式,利用协同计算或人计算模式,解决了计算机不可能准确实现的问题。Luis Von Ahn利用人擅长做而计算机不擅长的能力,并通过游戏把这方面的资源尽可能开发收集起来,服务与科学过程。【郭斌,http://www.sciencenet.cn/m/user_content.aspx?id=284714】
搜蚁网(www.soyiii.com)也是人计算的一个典型应用。搜索已成为互联网的主要入口,互联网每日搜索次数达到数亿计。如果将每个用户搜索行为加以利用,能产生大量的知识。用户搜索过程一般包括:关键字、关键字变化、查询搜索结果页面,这些过程具有时序特性。一般搜索引擎总将一些质量较高的页面排在后面,但用户往往不会看五页以后的搜索结果。人计算程序可将原本排序靠后的页面,按照一定比例随机出现,如有大量用户查看,则可认为页面具有价值,再次搜索时将此索引位置提前。还可将关键字、相关联的页面按照一定逻辑出现,通过大量用户是否关联查看,来推断俩个页面之间是否具有关系。如上图,当系统逻辑较为合理,有大量用户使用时,可产生不可估量的知识。通过关键词和页面可以组成知识网路,利用知识不确定性度量关系(贝叶斯网络),进行知识验证与融合。
人机交互关系的转变
人计算是传统意义上人机交互颠覆性用法。以往意义上,人机交互目的在于使系统理解人类操作意图。人计算则是从系统层面利用人类的思维活动,实现将部分信息处理内容交由用户执行,从而达到人类的思维活动为系统服务,实现人与系统真正融合。
上图所述,传统人机交互是请求、应答模型,用户向系统发出请求,系统理解用户意图,按相应逻辑处理,将结果应答给用户。人计算则是系统将部分处理逻辑交由用户处理,然后提取用户行为特征,通过大量用户行为特征,推导出结论。
系统设计时,我们往往会陷入一个误区,为追求某些特殊特性而影响整体性能。用二八定律来表述:既80%的精力用于处理20%的事件,导致资源分布不平衡。比较牛X的软件设计师常说:“电脑是死的,人是活的”。将一些难以处理的功能,交由用户操作,可以大大降低系统设计难度及开发成本。
随机数及不确定性
程序员已经很习惯使用随机数,但随机数实现在计算机中较为复杂。因为计算机特性决定:程序相同,相同的输入应产生相同的输出。光用代码很难产生一个高质量的随机数。计算机不会产生绝对随机的随机数,只能产生“伪随机数”。绝对随机的随机数只是一种理想的随机数,即使计算机怎样发展,它也不会产生一串绝对随机的随机数。计算机只能生成相对的随机数,即伪随机数。计算机产生的随机数一般和它运行的时间有关系,而且随机数呈一定规律。在计算机安全上,规律性反而成了缺点,从密码破解的角度,只要有规律的都可能被破解。后来的加密算法和随机算法,加上硬件标示作为随机种子,但是同一批号的硬件就不可避免出现连续性。“道高一尺,魔高一丈”,只要随机数呈时间或其它规律性,就不会安全。总的来说计算机在处理模糊逻辑,至少在短时间内难有大的突破,人计算可以很好的弥补这一缺陷。
随机数对于计算机来说还不是最难以解决问题,不确定性才是最复杂的问题。人类生活依赖知识。知识必定限于特定的历史阶段和特定的社会条件。知识的前提、生成过程、结论均存在有不确定性。一个不确定推理机制要处理以下一些问题: (1) 不确定性的度量;(2) 对不确定性度量随推理过程而做的合成、传播和修正。(3) 根据对不同可能性的不同的不确定性度量做出相应的决策。
人计算的优势
人计算的优势包括不确定性和并行计算能力。在于对不确定性问题的主观判断。如购买行为、决策行为等等。很多时候,人类的判断并没有很多理由,甚至仅依赖直觉就能作出判断。
很多认为混沌只是一种无序的状态,是一种没有任何规律可循的现象。或许没有人能够解释清楚什么是混沌。然而,尽管混沌看起来一团糟,但实际上还是有一定规律可循的。 很多人认为,不确定性就是当你对某些应该知道的东西感到茫然时候的那种感觉。事情是有结论的,只不过你忘记罢了。人们也许觉得,没有人能测量不确定性。的确,生活中确实存在这样的事情,你永远都不会感到有把握。虽然很多事情永远无法确定,但可以对不确定性进行度量。知识的不确定性可通过概率及统计方法证实,如可用概率测度来表述一个事物出现的可能性。
人类大约有120亿个脑细胞,虽然最多不到10%是充分发展了的并常加以运用的,其余的仍处在未充分发展或完全没有发展的原始状态。但每个脑细胞都具有并行计算能力。大脑可以很轻松处理图片、场景、生活片段,通过并行计算快速识别及反映它们。
专家系统也是一种利用知识的系统方法,其内部含有大量的某个领域专家水平的知识与经验,能够利用人类专家的知识和解决问题的方法来处理该领域问题。它应用人工智能技术和计算机技术,根据某领域一个或多个专家提供的知识和经验,进行推理和判断,模拟人类专家的决策过程,以便解决那些需要人类专家处理的复杂问题。专家系统的缺点是,依赖于已有知识,缺乏新知识产生能力。人计算系统则可将专家的思维活动迅速反馈到群体系统中,尤其是专家创新性思维。
人计算动机
人计算最大原则是不改变用户行为,或轻微改变用户行为,将系统意图隐藏在人机交互过程,实现人计算目的。实现人计算,需要首先了解用户参与计算的动机。一般包括:
1, 物质奖励。如有奖问答、积分送礼等等,通过物质奖励调动用户积极性。
2, 精神参与。包括志愿者、趣味游戏,将用户参与意愿和系统结合起来。
3, 活动需要。本身工作及需求,如将人计算目的隐藏在工作过程中,在处理中加入少量不影响工作,但具有人计算目的数据或操作。
人计算系统流程
人计算系统是一种特殊群体系统,它遵循一定设计流程及设计方式。人计算流程包括:
1, 分析人肉计算逻辑。既然是假设用户为具有计算能力的人肉CPU,必然有指令集。人计算一定要关注用户的思维活动及行为特征,只有基于这些行为特征才能设计出较为合理的业务逻辑。
2, 设计系统业务。系统业务需要兼顾一般业务需求,同时需要考虑人计算,能够为人计算提供相应空间、入口及出口。
3, 设计用户处理逻辑。人性化的用户处理逻辑是人计算是否可行的根本,用户知识思维参与,用户无意识或潜意识的参与能最大程度提高人计算的不确定性处理能力。
4, 分析及收集用户处理特性。通过分析大量用户间对相同计算的处理结果,提取相关性、相似性和共同特征,得出有价值结论。
人计算主要特征
1, 关注用户的思维活动及行为特征。
2, 通过群体共同行为分析,推导结论。
3, 良好的人机交互体验,不改变或轻微改变用户行为。
4, 不同于数据挖掘与专家系统,设计时需有目的引导用户参与。
5, 简单性原则,群体中的个体处理尽量简单。
6, 自组织性,假设系统具有自组织能力。群体中的每个个体都能够改变环境,具有很好扩展性。
7, 较强的鲁棒性,不会因某一个或几个个体出现故障而影响群体对整个问题的求解。
8, 通过分布式控制,实现中心控制。
百足之虫,死而不僵