汉斯•彼得•卢恩与哈希算法的诞生

Posted 悦智网

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汉斯•彼得•卢恩与哈希算法的诞生相关的知识,希望对你有一定的参考价值。

━━━ ━━━  

当时是1958年11月,在一个为期6天的科学信息国际大会上,发明家汉斯·彼得·卢恩(Hans Peter Luhn)展示了其研制的一系列电气机械设备。这些设备看起来普普通通,与当时的其他计算机设备相似,四四方方,相当实用的样子,专门用于抓取和分类成堆的穿孔卡片,并把它们放入卡槽或卡箱中。

汉斯•彼得•卢恩与哈希算法的诞生

与其他计算机不同的是,卢恩的设备并非用来处理数字或计算,而是用来处理文字和语句的。其中一台设备尤其引人注目,它使用了一种被卢恩称为KWIC(KeyWord in Context的首字母缩写,为“文中关键字”之意)的算法。输入一大段文字(通常是500到5000个单词的文章)后,KWIC系统可以自动地快速创建一套索引。

当时,即便对最有经验的专家来说,编制索引、分类和组织书面信息也仍然是个艰苦的过程。而且很多领域的信息量增长飞快,无人能及。人们迫切需要一种更好的摘要和汇总方法。在华盛顿特区的图书管理员和信息科学家们原本沉静的集会上,KWIC系统的这场演示无异于是件惊天动地的大事,全美所有的相关报纸都在报道卢恩的这一惊人发明。

到20世纪60年代初期,KWIC已经成为数百种计算索引系统的设计核心,包括化学文摘社(ChemicalAbstracts Service)、生物学文摘(Biological Abstracts)和美国科学信息研究所(Institute forScientific Information)等使用的系统。有一位专家曾将KWIC的伟大问世等同于“化学领域试管的发明”。卢恩,这位IBM的高级工程师,还将KWIC集成到企业界的“智能系统”中,旨在识别并将相关信息传递给大型组织内特定的个人。KWIC基本上就相当于那个时代的搜索引擎,让用户能够迅速找到所需的信息。

现在,计算机可以解读信息,随时提供餐馆评价、体育比分和股票价格,而我们对此已经习以为常。然而,在卢恩那个年代,计算机仍是很原始的。他试图操纵文本的做法拓宽了人们对计算机及其能力的思路,而他的这种想法,时至今日仍是网上购物、自动翻译以及遗传研究等现代算法的基石。当然,在20世纪50年代,上述许多应用还是无法想象的。在这里,我将探讨是什么驱使卢恩为这些尚不存在的问题找到了答案——一种被称为哈希函数的解决方案。

汉斯•彼得•卢恩与哈希算法的诞生

━━━ ━━━   

第二次世界大战后的那几年,也正是电子计算机成形的那几年。战争期间建造的各种计算机,为弹道学、原子武器和密码学进行了必不可少的计算。冷战的紧张局势确保了计算机发展所需的持续资金,其结果是计算机变得更快速,更准确,更强大。但其主要用途——数字处理和存储——却变化甚微。

在这个新生的计算机世界里,卢恩展露出了锋芒。他一生穿着考究,在1941年初抵IBM时,相较计算机行业而言,他可能对纺织行业更熟悉一些。他的许多发明似乎都属于更早的前数字时代,那个有着机械计算器和计算尺的年代。20世纪50年代,数字计算机逐渐取代了他的电气机械设备,然而他的思想,虽然由于用途变化历经了变更和重组,现在却已渗透到了我们能想到的几乎所有软件之中。

卢恩1896年出生于德国巴门,他的父亲约翰(Johann)是一位印刷大师。他显然是一位对孩子们的杰作非常宽容的父亲,有一次,卢恩和他的弟弟在家中的花园里建了一条微型铁路,其中长达70米的轨道是熔掉了父亲印刷机中的铅后制成的。

高中毕业后,卢恩前往瑞士学习家族生意。但是第一次世界大战以及在德军中度过的一段岁月,中断了他的印刷业生涯,战后他开始从事纺织品贸易。卢恩于1924年来到美国,是为了寻找适合开纺织厂的厂址。在纺织业,卢恩就展现出了发明天赋。1927年,他发明了一种尺子形状的装置,可用于测量布料织数。时至今日,这种叫作纱条均匀度光学测定仪(Lunometer)的测定尺仍在由卢恩创立的工程咨询公司H.P.Luhn &Associates进行出售。

卢恩学什么都很快,涉猎了多个领域。他是一名专业的登山运动员,一名厨艺精湛的美食家,也是一名风景画大师。在20世纪30年代,他的众多发明专利包括折叠式雨衣、女士长筒袜塑形装置、一款游戏桌和“鸡尾酒神谕”,后者是一种鸡尾酒调制指南,能告诉用户如何用手头上的材料调制各种鸡尾酒。

汉斯•彼得•卢恩与哈希算法的诞生

但是卢恩真正的兴趣在于信息(特别是文本)的存储、通信和检索,这也是他加入IBM的主要原因。卢恩被授予了“发明家”的称号,成果颇丰,最终为IBM提供了70项专利。虽然他可以随心所欲地选择攻克任何他喜欢的问题,但他的许多发明都集中在使用包括电子计算机在内的各种设备来处理信息。

比如,在1946年和1947年,卢恩曾致力于创建一种机器可读的打字机打印文件。设备上有一条金属条带可插入打字机,能够将有磁性的图案印在纸上,然后可用机器读取这些磁性图案。不久之后,他开始与麻省理工学院的两位化学家马尔科姆·戴森(MalcolmDyson)和詹姆斯·佩里(James Perry)一起工作,研制一种可以使用穿孔卡片自动搜索化学化合物的机器。每张穿孔卡片上都编码有一种特定化合物的信息。用户在机器中插入一张“提问卡片”,上面列出一组搜索条件,机器将对照这组条件对所有的化合物卡片进行比对和分类。卢恩的这台扫描机器是高度专业化的,但他仍然在寻找更通用的方法来自动处理信息。

人们对信息非常痴情。战后的几年间,科学和工程论文发表数量激增。许多专家担心“信息超载”会压垮研究人员和商务人员。范内瓦·布什是美国庞大的战时官方科学机构的领袖,也是美国国家科学基金会的创建人之一,他也曾提出过一种写字台大小的电子机械设备Memex,用于存储和关联信息。

布什的想法未曾实现,但卢恩的想法却走进了现实。1954年1月6日,他申请了一项美国专利:“用于验证号码的计算机”。这种手持机械装置旨在解决一项简单的实际问题。当时,各种各样的识别号码(如信用卡号码和社会保险号码)开始在人们的公共和私人生活中发挥重要作用。但这些数字难以记忆,而且有可能被错误地转录或被人故意伪造。所以迫切需要一种能够快速验证识别号码是否有效的手段。

卢恩的掌上电脑实现了这一功能,这台电脑使用了他开发的一种校验算法。对一串有10位数字的号码,电脑将执行以下操作步骤: 

  • 将每隔一位的数字翻倍

  • 如果结果为10及以上的数字,则将该结果的各位数字加起来得到一位数字(例如“16”将变成1+ 6 = 7)

  • 将新号码的全部10个数字相加

  • 乘以9

  • 取这个结果的最后一个数字 

更重要的是,卢恩设备的这些原理和部件成为数字时代最重要的算法之一——哈希算法的基础。这种被广泛使用的算法,为我们提供了一种组织信息的强大手段,很容易被计算机找到。就像烹饪切碎的牛肉和土豆一样,哈希算法用各种方法切割和混合数据,这种数据混合如果能够巧妙部署,将可以加速多种类型的计算机操作。

几十年来,计算机科学家和程序员们对卢恩的方法进行了改进,并推出了新的用法。但基本的思想仍然是一致的:使用数学方法将数据组织成易于搜索的桶。由于组织和搜索数据是计算中普遍存在的问题,因此哈希算法对密码学、图形学、电信和生物学都是至关重要的。每当你通过网络发送一个信用卡号码或使用文字处理器里的字典功能时,哈希函数都在发挥作用。

━━━ ━━━    

卢恩的计算思想远远超出了简单的查找。他认为计算机可以是一种复杂的文本操纵器,能够用于阅读和理解书面语言,然后建立索引并组织信息,以解决科学和商业中的实际问题。到1958年,他的化学卡片分类器已经演变成了通用卡片扫描仪和9900专业索引分析仪,他曾在华盛顿特区的会议上对它们进行展示。这些电子机械设备可以根据用户的搜索条件,对打孔卡片进行搜索和分类。

然而,卢恩真正引起轰动的发明是用于构建用词索引的计算方法KWIC。词语索引是按字母顺序排列的书或文稿中用到的关键词列表,它就像是一个索引,但只列出文本中出现的实词,而不是概念(并且排除了诸如a和the这样无关紧要的词汇)。长期以来,词语索引一直被应用于神学和语言学领域。举例来说,《圣经》的词语索引就会显示使用了“love”(爱)这个词的所有实例,包括各种引用、章节和诗句等。在全文自动检索出现之前,构建词语索引是一项艰巨的工作,而且通常只会对《圣经》或莎士比亚文集这样的重要作品进行。

卢恩的数据桶方案是针对数字进行的,而他的KWIC词语索引系统的目标则是文本。两者都使大量的信息能够被容易地搜索到。举一个非常简单的例子,假设你想为以下4本书的英文名称创建一个词语索引:《飘》(Gone with the Wind),《战争与和平》(War and Peace),《风之影》(The Shadow of the Wind),《战争之影》(Shadows of War)。

这些书名的KWIC一致性列表会生成为: 

                              Gone            With the Wind

War and                Peace   

The                      Shadow         of the Wind

                            Shadows       of War

                                 War           and Peace

Shadows of               War      

Gone With the          Wind    

The Shadow of the   Wind   

KWIC算法按照所有可能的顺序重新排列标题中的单词,然后再按字母顺序将每种可能列出。其结果是一个完整的关键词列表(包括除介词、连词和冠词以外的所有词汇)。

科学界迅速采用了卢恩的KWIC系统。卢恩知道这一系统对商业用户也非常有用。1958年,他为《IBM研究与发展杂志》撰写了一篇题为《一种商业智能系统》的文章,其中他提出了一种可以自动生成文章摘要并从摘要中提取“行动要点”,然后将结果分发给组织内相应人员的系统。卢恩认为解决信息超载问题意味着要设计一种快速进行信息分类的方法,让人们免受无关材料的负担。

《纽约时报》在卢恩1964年的讣告中这样描述了他的自动摘要系统:

“卢恩先生在一次演示中,将《科学美国人》杂志中一篇有2326个单词的关于神经系统荷尔蒙的文章,以磁带的形式插入到一台IBM计算机中,并按下一个按钮。3分钟后,计算机的自动打字机打出了4个句子,这4个句子给出了文章的要点,也就是说,机器已经自动生成了摘要。”

卢恩的自动摘要程序首先会计算一篇文章中所有单词出现的频率,在舍去非常常见的单词之后,系统会自动锁定高频词汇集中出现的一些句子。这样的句子会被系统认定为文章整体内容的代表,因此会被放入摘要中。这是一种纯粹的统计方法,而非试图去理解文章中的词汇或它们之间的关系。但是,就像KWIC系统展示的这样,计算机能够富有成效地将文本组织成人们更易理解的形式。

━━━ ━━━     

卢恩1961年从IBM退休,3年后因白血病离开人世,未能目睹互联网和网页带来的深刻变革。除了在一些信息专家、纺织品制造商和历史学家的有限圈子外,他的名字早已被人遗忘。但是,卢恩的思想是永恒的。今天,哈希算法在管理和保护我们的数字生活方面扮演着重要的角色。当你在网站上输入密码时,服务器可能会存储密码的哈希版本。当你使用安全连接访问网络(网址以“https”开头)或使比特币买东西时,哈希算法也发挥着作用。对于Dropbox和谷歌Drive等云服务来说,哈希算法使得存储和共享文件的效率更高。在遗传学和其他数据密集型研究中,哈希算法则大大减少了筛选大量数据所需的计算时间。

哈希算法已经将计算机变成可以用字母和单词进行推理的文本工具。谷歌翻译、谷歌N-gram、谷歌关键字广告和谷歌搜索都致力于以某种方式确定文本的含义。网络上的信息爆炸已经使自动阅读和理解对商业、科学、和每个人来说都至关重要。哈希算法的发展与文本相联系,体现了卢恩对文字、句子、关键词、摘要、索引和文摘的思考。

这是卢恩留给我们的遗产:他向我们展示了电脑和计算不仅仅是数学、统计和逻辑的天下,而且也是语言、语言学和文学的疆土。在他那个时代,这是一种关于机器的革命性的想法。

技术史学家迈克尔·马奥尼(MichaelMahoney)称计算机是 “一台千变万化的机器”:它们一机千面,静待打造,用途多样。即便是现在,我们也往往把计算机狭义地看作是一个每秒能够执行多项计算和操作的大型数字计算器。汉斯·彼得·卢恩对计算机的看法则更有远见。在展望计算机的多样性时,他帮助我们开拓了诸多前景光明的全新探索领域。


IEEE Spectrum

《科技纵览》

官方微信公众平台




>>>本文为原创,转载请回复。<<<

往期推荐



以上是关于汉斯•彼得•卢恩与哈希算法的诞生的主要内容,如果未能解决你的问题,请参考以下文章

算法哈希表的诞生(Java)

哈希加密算法

区块链黑板报 | 哈希算法

币点学堂:一直挂在嘴边的哈希算法你真的了解吗?

哈希表与哈希(Hash)算法

一致性哈希算法的理解与实践