从某种意义上说,垃圾邮件的历史就是互联网的历史。这是一部黑客不断探索网络能力极限的历史,他们为了实现自己的意愿,传递各种电子垃圾信息。这也是一个关于科学家的故事,他们一直在进行一场注定失败的战斗,试图阻止他们,并在这样做过程中,帮助塑造了互联网作为商业媒介的演变。
接下来是密歇根大学教授芬恩·布伦顿(Finn Brunton)的新书中的一个长章节,讲述了垃圾邮件发送者与科学家之间无休止的战斗。这本书全面详细地描述了垃圾邮件的整个历史,从早期的前商业时代(到1995年),到狂热的牛仔年代(“尼日利亚王子”诈骗和“拉高抛售”计划)直到2003年和垃圾邮件立法的出现,再到随后从2003年到2010年发生的全球化、犯罪化和军事化。
您即将阅读的章节分为四个部分,将从今天开始到星期五陆续发布,讲述了2003年之后垃圾邮件生态系统的变化。为了应对软件过滤器和新的法律禁令,垃圾邮件发送者在地球上一些最偏远的地区创建了精密的自动化网络,使他们能够不受阻碍地进行交易。事实证明,这些网络也正在成为各国政府之间正在萌芽的网络战的关键。
正如布伦顿在导言中指出的那样,垃圾邮件是我们社会的产物,“程序员、骗子、警察、律师、机器人及其操控者、科学家、药丸商人、社交媒体企业家、营销人员、黑客、身份窃贼、系统管理员、受害者、色情制品商、DIY治安维持者、政府官员和股票推销员”共同作用的产物。他在导言的其他地方用稍微不同的方式——甚至更精彩地——表达了这一点:“一群引人注目的后国家无政府主义者、封建领主般的系统管理员、有远见的协议设计师、社区建设‘流程女王’、技术自由主义工程师,以及一群愤怒的反垃圾邮件活动家。”
这本书是一颗宝石。那些充斥着赛博朋克文学的扭曲人物与垃圾邮件发送者和致力于关闭他们的科学家的巧妙阴谋诡计相比,简直不值一提。请在此处以及未来的日子里阅读关于这个迷人的奇异地下网络世界的故事。第一部分讲述了为创建垃圾邮件过滤器而进行的精细的、几乎是修道院式的学术研究。(一旦发布新材料,将提供先前节选部分的链接。)
目录
受害者云
过滤:科学家与黑客
关于支持科学新闻报道
如果您喜欢这篇文章,请考虑通过以下方式支持我们屡获殊荣的新闻报道 订阅。通过购买订阅,您正在帮助确保关于塑造我们当今世界的发现和想法的具有影响力的故事的未来。
使垃圾邮件科学化,第一部分 科学家们构建过滤器,试图通过创建用于软件分析的文本语料库来掌握垃圾邮件“词源学上不安分”的本质。寻找垃圾邮件卡路里等价物的行动正在进行中
丑闻中的战利品 研究人员使用来自声名狼藉的安然公司的内部通信,试图构建垃圾邮件过滤器
使垃圾邮件可被黑客攻击 软件大师保罗·格雷厄姆的“垃圾邮件计划”
转载自芬恩·布伦顿的垃圾邮件:互联网的阴影历史。版权所有 © 2013,麻省理工学院。经出版商 MIT Press 许可使用。
受 害 者 云: 2003 – 2010
过滤:科学家与黑客
使垃圾邮件科学化,第一部分
我们拥有能够阅读、分析和判断任何书面文本的机器。但我们必须对运行这些仪器的可靠性进行一些检查。
——伊塔洛·卡尔维诺,《如果在冬夜,一个旅人》
如果你无法通过法律、谴责和抗议来控制垃圾邮件发送者,你能否转而控制垃圾邮件本身?你如何掌握它,以及如何使其成为你可以衡量和量化、连贯地谈论、理解——并因此攻击的东西?它是一个词源学上不安分的东西,既是名词又是动词,它在我们难以清晰地定义它以排除它,并为其制定精确的规则和法律的地方蓬勃发展。它是与同样主观的真诚人类互动的对立面。你如何将其变成你可以处理的材料?你如何使垃圾邮件成为一个对象?
这些是那些寻求分析垃圾邮件并使其成为他们可以阻止的东西的人实际关心的问题。这是一个关于两类群体——科学家和黑客——的故事,以及他们如何划定垃圾邮件的界限,定义边缘和黑匣子和标准和工作流程,并将其变成他们可以应用工具的东西。这必然也是一个关于他们划定的界限中遗漏的一切的故事,以及在改变垃圾邮件形态的过程中,它如何躲避他们并发生转变,无论是作为一种技术还是一套实践,都变成了比以前远为陌生的东西:一个具有全新基础设施的新对象,由一个新的犯罪群体生产。
垃圾邮件进入计算机实验室,就像一块钫矿石一样,带着同样奇怪的光环——H.G.威尔斯的幻想材料,它可以抵抗重力,科学家们用它升上月球——并具有类似奇怪且需要创新的效果。毕竟,这个人机结合、创新-犯罪、社会-技术、令人恼火但又无法阻止的东西是什么?它是一种实践,一种共同表达的态度,但也是一种人工制品,某种以单数和指示形式存在的东西——一条“垃圾邮件消息”,这个 垃圾邮件——但 也 需要 以 复数形式 作为 垃圾邮件,这个问题,在更大的规模上进行分析。你如何指定这个概念,使其产生可重复和可证伪的结果,这些结果能够进行基准测试和测试?垃圾邮件不断波动;您收到的数量取决于您的 ISP、您的 ISP 使用的过滤器、您的操作系统和邮件应用程序、您使用的帐户的数量和类型,甚至季节和一天中的时间。 垃圾邮件起初可能看起来像是科学测试的理想主题,因为您甚至不需要费心收集果蝇或架设望远镜来获取材料——只需创建一个电子邮件帐户并观看它滚滚而来!然而,垃圾邮件的基础设施非常复杂,以至于仅仅测试任何给定电子邮件帐户的结果就像在中世纪医学中证明一种疗法一样:病人可能会好转或恶化,但很难明确地将这种变化与医生所做的事情联系起来。显然,必要的起点是某种商定的垃圾邮件对象,类似于垃圾邮件计量器或垃圾邮件卡路里,可以并且针对它来测试事物——一个语料库。
然而,垃圾邮件语料库始于隐私问题。仅仅拥有一批商定的垃圾邮件消息是不够的,因为垃圾邮件只有在上下文中才有意义,作为与合法邮件不同的东西。如果您的最终目标是生成可以阻止垃圾邮件的东西,那么您需要准确模拟用户或用户组的入站电子邮件,其中嵌入了垃圾邮件。您不仅需要垃圾邮件,还需要其非垃圾邮件的上下文(在许多科学文献中,以严肃的态度,被称为“火腿”)。垃圾邮件过滤器会根据可供其使用的数据量增加而改进,因此您需要大量的垃圾邮件,以及相应的大量合法邮件,才能让大数定律站在您这边。显然,电子邮件在很大程度上是一种私人媒介,或者至少被视为私人媒介。如何在保持隐私的同时,创建一个准确的垃圾邮件语料库,其中包含至关重要的上下文非垃圾邮件?仅仅混淆个人详细信息(电子邮件地址、电话号码、专有名称)会严重干扰结果的准确性。分析电子邮件和垃圾邮件完全是关于量化和研究消息和消息中的单词,因此拥有一个充满“尊敬的 XXXXX”和“您可以通过 XXX-XXXX 联系我”的语料库将使任何后续测试充其量是不准确的,最坏的情况是对旨在在实验室外使用的过滤器具有误导性。
如果您混淆语料库中每条消息的整个正文会怎么样?您可以拥有大量的个人消息和垃圾邮件,而不会侵犯任何人的隐私。这是一种替换方法:“发布基准,每个基准都包含特定用户收到的消息,在所有消息中用唯一编号替换每个标记后。标记和编号之间的映射不会发布,使得除了常见的单词和短语外,极难恢复原始消息。”标记是词汇分析中的一个术语,指其基本单位:文档的原子部分,通常但不一定是单词。标记化是将文档变成用于计算词汇分析的对象的过程:将我们作为读者识别的字符字符串变成一系列离散对象,这些对象具有值并且可以被计算机算法作用于 (在这种情况下,“值” 例如 是单词在整个文本中出现的次数)。在标记化文本中,单词的人类意义几乎无关紧要,因为它作为其他标记空间中的标记的价值才是最重要的:有多少个标记,它们是否经常与其他某些标记相关联出现,等等。然后,通过博尔赫斯式的策略,即用消息中每个标记的唯一编号替换来保持垃圾邮件语料库中的隐私,这并不像听起来那么奇怪:“尊敬的”用 42187 表示,“您”用 8472 表示,等等。 如果您保持一致性,它就可以工作。
然而:“原始 标记 的 丢失 仍然 施加 限制;例如,不可能尝试不同的标记器。”使用此编号的单一映射(未发布,以防止人们逆转混淆并阅读私人邮件)制作混淆语料库会将所有用户锁定到语料库的一个版本中,阻止他们尝试原始消息上的不同方法。有许多执行词汇分析、评估和解析的方法,这些方法可能会导致进一步分类和过滤实验的其他遗漏的含义和创新。与一大堆已经以特定方式预处理的消息的整数相比,从垃圾邮件和非垃圾邮件消息的自然语言语料库开始,提供了更多的实验空间。(“42187 64619 87316 73140 . . . ”)。
还有其他构建垃圾邮件语料库用于科学研究的方法,但每种方法都有其自身的缺陷。一系列语料库是从邮件列表中制作的,例如 Ling-Spam 语料库,该语料库收集了发送到学术语言学社区邮件列表的消息——一个经过审核的列表,有人在每条消息发送出去之前对其进行审查和批准,因此这是一个没有垃圾邮件的邮件列表。理论上,该语料库可用于建立合法非垃圾邮件的基准。在实践中,列表中出现的材料比任何给定人员的实际电子邮件的轮廓都更具主题性——没有来自电子商务网站的收据,没有带有色情语言的情书,没有简短的预约来回消息。它从分类和过滤程序中产生了过于乐观的结果,因为它们能够识别合法文本。(垃圾邮件一方面,关于乔姆斯基语法和语言递归的论证另一方面,构成了一种相当倾斜的安排。)SpamAssassin 语料库,收集用于测试同名垃圾邮件过滤器,使用了 从 公共 邮件列表 收集的帖子 和 志愿者捐赠的电子邮件。它遇到了完全相反的问题,一组合法文本的基准集比任何给定人员的电子邮件帐户都更加多样化,并且仅使用了那些被收件人认为可以公开展示的消息。
在早期文献中,解决方案是快速而粗略的:研究人员会简单地自愿提供自己的电子邮件收件箱用于实验,而不将其作为语料库发布。他们希望他们通过实验获得的结果可以在其他人的语料库中重现,就像科学家使用自己的身体作为实验对象一样——皮埃尔·居里用镭在自己的手臂上产生病变,或者约翰·威廉·里特将电池的两极连接到他的舌头上。我们可以称之为“我们都差不多”的方法。“据我所知,”杰森·D.M.雷尼(Jason D. M. Rennie)在 2000 年谈到他早期的电子邮件过滤器和分类器文件时写道,该文件最初于 1996 年发布,并在本章后面描述,“没有免费提供的邮件过滤数据集。. . . 我询问是否有志愿者愿意让他们的邮件集合进行此类实验;四名用户(包括作者)自愿参加。”这是一个引人注目的想法,并且在许多方面,它比制度化科学更符合黑客的敏感性:代码运行,并且是免费的,所以自己做实验。(例如,对于基因组学杂志上的一篇文章来说,如果说实质性结果取决于您,读者,启动测序仪和质谱仪并自己进行实验——而且是在您自己身上,那就太棒了。)
混淆、有问题的抽样和收集、用于一次性测试的崇高志愿者:缺乏“免费提供的邮件过滤数据集”,这些数据集准确地近似了个人和群体的邮件动态,这显然是使垃圾邮件科学化的过程中要克服的问题。除了每个人都使用不同长度的标尺造成的制度和方法论问题之外,还有一个更微妙的担忧,这是过滤电子邮件并将其分为垃圾邮件和非垃圾邮件的任务所固有的。“文献表明,不同用户之间的性能差异远大于不同分类算法之间的差异。”用户、他们的文件夹、他们居住的网络和其他行为存在独特的模式和拓扑结构。我们并非都差不多,并且认为所有电子邮件语料库都是相同的,就像化学家决定忽略温度一样。使用少量志愿者电子邮件的实验基础使得评估过滤器之间的差异变得困难,并且几乎不可能分析个人和群体的电子邮件活动概况的差异——任何过滤器都必须考虑这些差异。创建一个科学对象来研究垃圾邮件似乎陷入了僵局。
丑闻中的战利品
2003 年,美国联邦能源监管委员会 (FERC) 作为其对能源市场价格操纵进行重大调查的一部分,公开了其从能源交易公司安然公司积累的所有数据。安然公司最初被誉为能源业务领域的创新企业,但在 2001 年末和 2002 年,随着价格操纵和大规模会计欺诈的揭露,安然公司非常公开地走向破产,成为商业新闻报道的主导故事。安然公司破产案是美国历史上最复杂的案件之一,其相关调查产生了大量数据:FERC 的安然公司收藏包括交易大厅电话的音频文件、公司内部数据库的摘录、150,000 份扫描文档以及安然公司管理层内部电子邮件的大部分内容——所有内容都向公众开放(难度各不相同)。 因此,FERC 无意中产生了一个非凡的对象:一家大型公司高层管理人员的公开和私人邮件活动,像庞贝古城的遗迹一样被冻结在原地,供未来的研究人员使用。他们很快就来了。
安然公司收藏是一件非凡且略微令人恐惧的东西,它是电子邮件中公共和私人的相互作用的人工制品。作为一份人类文献,它具有一部伟大的,如果说是可悲的小说的骨架:一部关于裙带关系、贪污、傲慢姿态、办公室政治、股票交易、婚礼承包商和德克萨斯脱衣舞俱乐部的传奇,在数十万条消息中上演。人类读者辨别出一个围绕两个家庭构建的叙事,一个是生物学的,由血缘联系,另一个是公司精英,由金钱联系,走向毁灭并将他们的命运与布什/切尼竞选活动捆绑在一起。这些是嵌入在大型企业单调乏味中的叙事兴趣的脉络。一个随机的样本行,来自“entex transition”,1999 年 12 月 14 日,00:13,带有奇特的间距和小写文本,作为数据提取过程的人工制品:“howard 将继续履行他在小组内的领导职责 [原文如此],并在必要时回答问题或作为备份(感谢 howard 今年为该帐户所做的所有辛勤工作)。”这种无情的平凡琐事和偶尔具有法律诉讼价值的证据的集合,像戈壁沙漠一样浩瀚无垠,当它变成适合垃圾邮件科学分析的对象时,发生了戏剧性的转变。
在安然公司数据主体像捕鲸船“裴廓德号”旁边的抹香鲸一样被安全地保存在研究人员的计算机中后,必须将其剥成有用的部分。首先,属于 158 位用户的 619,446 条消息的庞大数据集必须进行“清理”,删除文件夹和重复消息,这些消息是邮件系统本身的人工制品,不能代表人类如何分类和整理他们的邮件。此步骤将消息数量减少到 200,399 条,这仍然是一个庞大的文本主体。为每个用户收集的数据按时间顺序排序并分成两半,以创建机器的单独训练和测试材料集。文本被标记化,并注意集合中不同类型的数据——“非结构化文本”,如主题和正文等区域,包含自由的自然语言,“分类文本”,明确定义的字段,如“收件人:”和“发件人:”,以及数字数据,如消息大小、收件人数量和字符数。
然后开始测试和评估,其自身复杂的概念协商使此过程科学化。机器学习程序针对训练和测试集运行,并分析其输出;然后将这些结果与来自卡内基梅隆大学的学生和教职员工自愿提供的消息数据集进行比较。 通过清理和解析以进行计算处理的数据集,并且与志愿者数据的结果相差不远,语料库作为适合科学探究的认知对象的创建几乎完成。此过程提出了一个进一步的问题:制作语料库的工作,特别是解决什么是被认为是垃圾邮件的问题,是否以需要实验考虑的方式改变了它?对于科学家来说,什么是垃圾邮件,对谁而言,成为了社区协商的领域,就像对于反垃圾邮件喧闹抗议者和言论自由活动家、网络工程师和系统管理员以及律师和立法者一样。
科马克和莱纳姆(Cormack and Lynam),最近垃圾邮件过滤语料库的主要框架的作者,直接解决了使用电子邮件语料库为垃圾邮件分析创建“可重复的(即可控的和统计上有效的)结果”的问题。 在为过滤器建立“黄金标准”的过程中——黄金标准本身是迭代计算处理和人类判断的有趣人工制品——他们引入了另一个改进,以 努力 定义 垃圾邮件:“我们 将 垃圾邮件 定义 为‘未经请求的、不需要的电子邮件,由与收件人没有当前关系的发送者直接或间接发送。’”根据这个定义和一系列过滤工具,他们转向我们已经看过的由卡内基梅隆大学处理和分发的安然公司语料库:“我们发现很难裁定许多消息,因为很难收集发送者和接收者之间的关系。特别是,我们发现大量体育博彩彩池公告、股市提示和宗教群发邮件被裁定为垃圾邮件,但事后我们怀疑并非如此。我们发现来自供应商的广告,我们发现他们与收件人的关系很薄弱。” 换句话说,除了某些文本问题——测试垃圾邮件过滤器的重要参数缺失,例如建立关系的消息头和附件的存在——语料库反映了垃圾邮件定义本身的持续存在的问题。学术计算机科学的电子邮件文化并没有充斥着宗教群发邮件和股票提示,除非这些消息——尤其是后者——作为垃圾邮件到达。但是,一家大型公司高层管理人员的电子邮件文化却截然不同,尤其是当该公司像安然公司一样,既具有浓厚的基督教色彩又具有浓厚的德克萨斯州色彩时。随着公司开始崩溃,FERC 数据集中的办公室内部邮件包括许多祈祷的指示,以及为彼此祈祷和其他信仰声明的承诺。同样,体育运动和体育博彩也是对话的一部分,正如人们可能从休斯顿一群竞争激烈的商人那里预期的那样。
理论上,一个足够先进和训练有素的垃圾邮件过滤器将以算法方式识别这些区别,并在安然公司企业文化中以及对于学者来说都是个人准确的,学会阻止后者的未经请求的股票提示,同时交付无休止的征稿启事。然而,在莱纳姆和科马克测试的安然公司语料库中,此类过滤器的关键细节缺失了。关于什么符合垃圾邮件标准的人为决定,加上使其难以映射关系的技术限制——“与收件人没有当前关系的发送者”是他们的垃圾邮件标准之一,因为它是一个锅炉房垃圾邮件业务的股票提示与肯·莱恩在走廊尽头的股票提示之间的区别——已使语料库成为对一种工作有意义的对象,但对另一种工作则不然。它是研究自动分类的合适对象,但不适合垃圾邮件过滤。最后,他们从 FERC 检索了原始数据库,并基本上重新开始。“为安然公司语料库构建黄金标准,以及促进构建的工具,仍然是一项正在进行的工作,”他们写道,但:“我们相信 . . . 安然公司语料库将构成比目前存在的更大的、更具代表性的公共垃圾邮件语料库的基础。”
这一切都是可靠的、被充分引用的、迭代的、铭文驱动的科学:适当的,而且缓慢。与垃圾邮件的速度相比,它确实非常缓慢。当科学界早期的一些文件解释垃圾邮件为何成为问题时,会散发出淡淡的悲剧气氛:“为了显示垃圾电子邮件问题的日益严重,这 222 条消息包含 45 条消息(超过收到的邮件的 20%),这些消息后来被用户认为是垃圾邮件。”截至本文撰写之时,在各种垃圾邮件过滤器的另一端,这个百分比已经翻了两番或三番。对正式的、科学的反垃圾邮件进展感到一定程度的不耐烦是可以理解的。
碰巧的是,联网计算机托管着一个庞大且蓬勃发展的技术亚文化,该亚文化的自我定义是不耐烦程序上的繁文缛节,抵制制度化,风格随意和即兴,并渴望速度和实践或“粗略共识和运行代码”:黑客。他们有自己的想法,并且有很多关于如何处理垃圾邮件的想法。这些想法中最重要的一种,将计算机科学、数学、黑客技术以及最终的文学围绕着客观化垃圾邮件的任务结合起来,始于黑客未能准确引用科学家。
使垃圾邮件可被黑客攻击
我以为垃圾邮件机器人会变得更加复杂——机器人会与反机器人和反反机器人作斗争,最终所有垃圾邮件机器人都会成为律师,并统治世界。但过滤器非常好,所以那个预测是错误的。
——罗伯特·劳克林
“诺伯特·维纳(Norbert Wiener)说过,如果你与奴隶竞争,你就会变成奴隶,而与垃圾邮件发送者竞争也有类似的堕落之处,”保罗·格雷厄姆(Paul Graham)写道,他是一位著名的 Lisp 语言程序员,并且作为第一个互联网泡沫的成功人士,是风险投资公司 Y Combinator 的创始人之一。他的里程碑式文章“垃圾邮件计划”是反电子邮件垃圾邮件运动历史上最有影响力的文献之一。格雷厄姆通过提出一种新的过滤形式而开始的项目,迅速被许多人接受,这很重要,原因有二:首先,因为他赢了——他推广的想法,与美国法律的意外协同作用,有效地摧毁了当时存在的电子邮件垃圾邮件发送,并且通过回避垃圾邮件利用的社会复杂性和细微差别,并从一个简单而有效的技术点对其进行攻击而实现了这一点。其次,因为他输了,以某种方式:他纯粹而优雅的技术攻击是基于一套关于垃圾邮件是什么以及垃圾邮件发送者如何工作的新假设,而电子邮件垃圾邮件发送者利用了这些假设,改变了他们的行业并发展了许多今天塑造其特征的特征。
“垃圾邮件计划”这篇文章引发了数千个编程项目,它是一系列策略,都打着一个策略的旗号。这些策略包括反垃圾邮件过滤器的经济原理,基于测量概率的过滤器,数学的试错方法,以及黑客对其他人将采用他提出的系统并为自己训练和修改它的理解——对于垃圾邮件,科学家们寻求的可能没有普遍的理解或“黄金标准”,而只有针对特定个人的具体案例。总体策略是将阅读和分类垃圾邮件的劳动从人类转移到机器——这就是诺伯特·维纳的用武之地。
维纳是一位数学家和博学家,他创造了“控制论”一词,就像我们目前理解的那样,他发现二十世纪中期人类与机器之间控制和通信的紧密耦合有很多让他担忧的地方。他担心将核武器的控制权委托给博弈论和电子计算机,以及来自机器对人类和人类社会的反馈。在 1948 年出版的著作控制论的引言中,维纳发表了一个声明,他将在后来的研究中,例如 1950 年代的人有人的用处中,间歇性地回到这个声明:“[自动化和控制论效率] 给人类提供了一系列新的、最有效的机械奴隶来完成其劳动。这种机械劳动具有奴隶劳动的大部分经济特性,尽管与奴隶劳动不同,它不涉及人类残酷的直接堕落影响。然而,任何接受与奴隶劳动竞争条件的劳动都接受奴隶劳动的条件,并且本质上是奴隶劳动。这个声明的关键是竞争。”
对于维纳来说,与奴隶竞争在某种意义上就是成为奴隶,就像苏联工人在第二个五年计划期间与不可能的斯塔汉诺夫式目标竞争一样。格雷厄姆转述维纳,因为他想表达他对垃圾邮件的感受,将其作为一个平行的案例:“统计方法的一个巨大优势是你不必阅读那么多垃圾邮件。在过去的六个月里,我确实读了成千上万的垃圾邮件,这真的很令人沮丧。. . . 要识别单个垃圾邮件特征,你必须尝试进入垃圾邮件发送者的思想,坦率地说,我希望尽可能少地花费时间在垃圾邮件发送者的思想中。”这是一个其他研究人员会重复出现的抱怨——要真正理解垃圾邮件发送过程,你必须在你的头脑和你的代码中运行垃圾邮件发送者的模拟,而由此带来的肮脏感是令人堕落的。
不过,与维纳的类比在一种信息丰富的方式上是不精确的,这概括了格雷厄姆的策略。格雷厄姆不必通过与垃圾邮件发送者竞争来处理他们。他没有反过来发送垃圾邮件,也没有试图利用他们的轻信。他的工作绝不会使他降级为垃圾邮件发送者的经济地位,因为他没有与他们竞争——他的机器正在与他们竞争。他正在做维纳预测的事情,尽管他没有明确说明:他正在构建一个系统,在该系统中,垃圾邮件发送者将被迫与机器竞争,与机械阅读器竞争,这些阅读器以无情、非人的关注、持久性和敏锐度进行过滤和丢弃。凭借他的机械奴隶,他反过来会将垃圾邮件发送业务变成奴役,从而毫无价值。正如维纳担心自动化会结束建立在“基于买卖以外的人类价值观”之上的稳定、社会民主主义社会的经济和政治基础一样,格雷厄姆旨在结束垃圾邮件最初提供的利润和少量努力的好处。
结束利润承诺的方法是格雷厄姆的技术策略:通过采用基于朴素贝叶斯统计分析的系统来过滤垃圾邮件(稍后会详细介绍)。格雷厄姆认为,垃圾邮件发送者无法隐藏的一件事是他们的文本:垃圾邮件的特征语言。他们可以伪造退回地址和消息头,并通过代理和开放中继等发送他们的消息,但那种独特的垃圾邮件语气,劝诱或恳求,必须存在才能说服远端的人类点击链接。他提出了一种将该语言变成黑客可用的对象的方法,从而有可能借助数学工具构建近乎完美的个人过滤器,这些过滤器可以根据垃圾邮件迅速改进。
格雷厄姆为此目的采用的贝叶斯概率是以托马斯·贝叶斯的名字命名的,他在 18 世纪 50 年代就勾勒出了它的轮廓。 可以用一个常见的黑白弹珠的比喻来简要概括它。 想象一下,一个刚来到这个世界的人看到了她人生中的第一个日落。 她的问题是:太阳明天还会升起吗? 在一无所知的情况下,她默认机会各占一半,并将一颗黑色弹珠和一颗白色弹珠放入袋子中。 当太阳升起时,她再放入一颗白色弹珠。 从袋子中随机抽出白色弹珠的概率——也就是根据她目前的证据,太阳升起的概率——已经从 1/2 变为 2/3。 第二天,当太阳升起时,她又加入一颗弹珠,使其变为 3/4,依此类推。 随着时间的推移,她将接近(但永远不会达到)太阳会升起的确定性。 如果在某个可怕的早晨,太阳没有升起,她就会放入一颗黑色弹珠,概率会根据她的观察历史按比例下降。 这个系统可以扩展到非常复杂的问题,其中袋子里的每个弹珠本身就是一个弹珠袋:一个由许多个体的、变化的概率组成的总体概率——这就是电子邮件和垃圾邮件进入视野的地方。
对于贝叶斯归档程序来说,文档就是一个“袋子”——一个总概率——包含着许多“小袋子”。 “小袋子”就是标记——即单词——每个“小袋子”开始时都有一颗白色弹珠和一颗黑色弹珠。 您通过向程序展示此文档应放入“邮件”文件夹,彼文档应放入“垃圾邮件”文件夹等等来训练程序。 当您对许多文档执行此操作时,贝叶斯系统会为每个重要的单词创建概率,并放入弹珠。 如果它犯了错误,无论是“误报”(将合法邮件标记为垃圾邮件)还是“误报”(将垃圾邮件标记为合法邮件),您都可以纠正它,并且程序在面对您更正的新证据时,会稍微重新权衡将来在该文档中找到的单词的概率。 它将语言转化为概率,从而创建您通信和收到的垃圾邮件的特征词汇。 它会注意到像“madam”、“guarantee”、“sexy”和“republic”这样的词几乎从不出现在合法邮件中,而像“though”、“tonight”和“apparently”这样的词几乎从不出现在垃圾邮件中。 很快,它就能拦截垃圾邮件,在垃圾邮件到达您的计算机之前将其弹回,或将其发送到垃圾邮件文件夹。 贝叶斯归档器变成了贝叶斯过滤器。
当格雷厄姆发表他的文章时,这个想法并不新鲜。 由于一些神秘的原因,朴素贝叶斯算法恰好非常擅长文档分类等归纳学习任务,并且之前已被研究并应用于邮件。 杰森·雷尼的 ifile 程序——他自愿提供自己的电子邮件进行测试的程序——在 1996 年就将朴素贝叶斯应用于电子邮件归档和丢弃“垃圾邮件”。 “随着电子邮件使用的增长,”他在 1998 年关于 ifile 的论文中写道,“出现在用户邮箱中的电子邮件类型出现了一些规律性。 特别是,未经请求的电子邮件,例如‘快速赚钱’计划、连锁信和色情广告,变得越来越普遍。 过滤掉此类不需要的垃圾被称为垃圾邮件过滤。” 同年,在格雷厄姆的文章发表前五年,有几篇关于贝叶斯过滤系统在电子邮件垃圾邮件中的应用的文章发表; 这个想法显然已经流行起来。 那么,为什么当时没有流行起来呢? 这个问题的答案解释了格雷厄姆的方法之所以如此成功的原因,以及它在最终阻止垃圾邮件方面的弱点。
理解这个答案需要深入研究过滤项目的一些技术材料。 过滤器可能存在的最大问题被称为差异损失:即过滤前面提到的“误报”,当它错误地将真实邮件识别为垃圾邮件并相应地删除它时。 电子邮件处理的是具有时间依赖性和价值导向的材料,例如工作邀请、约会和需要及时回复的个人信息,并且消息的重要性差异很大。 不同消息的潜在损失可能大相径庭。 (想想又一个自动邮件列表摘要与来自久违的朋友或客户的工作信件之间的区别。) 将合法电子邮件错误分类为垃圾邮件,并在数百封实际垃圾邮件中被丢弃或被人的眼睛忽略的可能性是如此可怕,以至于它可能威胁到整个项目的失败。 事实上,撇开金钱、时间和沟通失误的潜在损失不谈,在不确定的渠道上进行沟通的心理压力是繁重的。 他收到我的消息了吗,还是被过滤了? 她只是在忽略我吗? 我是否错过了会改变我生活的问题? 这让用户陷入了经典认识论困境——你不知道你错过了什么,但你知道你“不知道”——并且始终面临着丢失邀请、请求和报价的威胁。 如果误报率足够高,电子邮件就会变成一种完全站不住脚的媒介,始终受到沟通失败的困扰。
与误报可能造成的潜在灾难和痛苦相比,某人手动重新归档被错误分类为合法并投递的垃圾邮件所花费的时间损失是很小的——平均约四秒钟。 因此,过滤器都稍微偏向容忍度。 如果您将过滤器设置得过于严格,只允许通过非常高概率被认为是合法的邮件,那么您将面临不可接受的高误报率的风险。 您必须接受处于临界状态的消息:过滤器对此类消息持怀疑态度。 这是早期贝叶斯垃圾邮件过滤器的第一个缺陷,也是格雷厄姆提出的问题“如果人们在四年前就了解了贝叶斯过滤,为什么没有人使用它?”的部分答案。 Pantel 和 Lin 的贝叶斯系统 SpamCop 的误报率为 1.16%,而格雷厄姆的个人误报率为 0.03%。 尽管看起来微不足道,但垃圾邮件发送者可能会利用这一空间及其产生的焦虑。
或许您可以通过添加一些已知的垃圾邮件特征来稍微缩小这个比率——这些可靠的标记可以将垃圾邮件与您的邮件区分开来。 一组早期的垃圾邮件过滤器设计者尝试了这种方法,并且构建到他们的过滤器中以指定垃圾邮件的属性集合是一个引人入胜的人工制品,因为过去十年已经证明它们几乎完全错误。 他们做出了稳定性的假设,而垃圾邮件发送者将这种假设变成了弱点,格雷厄姆不断发展的系统规避了这个问题。 程序员选择了两种“特定领域属性”或将垃圾邮件标记为垃圾邮件的事物:三十五个短语(“FREE!”、“be over 21”、“only $”,如“only $21.99”)和二十个非短语特征。垃圾邮件的语言显然发生了巨大的变化——尤其是在贝叶斯过滤的影响下,我们稍后会看到——但这二十个附加特征最能体现其可变性。 它们包括非字母数字字符(如 $ 和 !)的百分比、“附件文档(大多数垃圾电子邮件没有附件)”、“收到给定消息的时间(大多数垃圾电子邮件在夜间发送)”以及发件人电子邮件地址的域类型,因为“垃圾邮件几乎从不从 .edu 域发送”。
“没有附件”规则不再成立:许多种类的垃圾邮件都包含附件,包括病毒或其他恶意软件,以文档和程序的形式(以及更巴洛克的附件,例如声称是语音邮件的 mp3 文件,充当身份盗窃利用的诱饵)。 依赖投递时间也不再有效,投递时间变得更加复杂,并且与地球自转时计算机的开启和关闭有关的有趣的昼夜周期。 地址欺骗(消息可以显示来自任何给定地址)和征用的学术地址(通常在具有高带宽连接的大学服务器上运行,非常适合快速移动数百万条消息)已使 .edu 地址变得毫无意义。 (更糟糕的是 SpamAssassin 过滤器中的一个疏忽,它给 2010 年发送的任何消息都打了非常低的分数——将其标记为可能是垃圾邮件——因为那一年“在未来非常遥远”,或者在过滤器开发时是这样。)
这些固定的过滤元素在短短几年后变得不仅无用而且具有误导性,这突显了科学反垃圾邮件项目可能面临的最大障碍:相对于其追踪目标而言,它的行动太慢了。 获得正式认可的科学家发表文章并且可以被引用,方括号中的数字将我们引向期刊中的参考文献; 黑客(自称)只是将他们的工作发布到网上,无论多么半生不熟或有漏洞,因为其他人会帮助修复它。 与科学反垃圾邮件项目中耐心的语料库构建和对朴素贝叶斯变体的讨论相比,黑客的反垃圾邮件倡议几乎是可笑的破旧、廉价、快速、半功能性和失控。 格雷厄姆的“垃圾邮件计划”是在他接触到现有的研究论文之前写的,但它解决了他们面临的问题。 (在后来的演讲中,他提出了他用于懒惰评估研究论文的算法:“只需写下你想写的东西,不要引用任何以前的工作,愤慨的读者就会给你发送你应该引用的所有论文的参考文献。”)它提供了更低的潜在误报率,以及一种完全个性化的方法来训练系统识别垃圾邮件——这种方法消除了对通用规范的需求。 从理论上讲,它可以充当垃圾邮件的纯粹、自动化的反映,其移动速度与世界上所有垃圾邮件发送者的聪明才智一样快。 随着他们尝试新消息,它会学习并阻止它们,并且靠垃圾邮件赚钱变得越来越难。 最重要的是,格雷厄姆的方法是关于速度。
他的文章反映了这种速度。 除了用编程语言 Lisp 表示的公式外,没有其他公式——问题不是“这是否推进了数学对话?”,而是“它是否运行,这是否有意义?” 没有引用,尽管他在最后感谢了一些人(“懒惰评估研究论文”的方法是在他的文章在极客新闻网站 Slashdot 上被提及后才开始的)。 过程和实验的语言完全不同:“(这里可能还有改进的空间。)……[通过]试错法,我发现一个好的方法是将good中的所有数字加倍……这里可能还有调整的空间……我再次通过试错法发现,0.4 是一个很好的使用数字。” 它提出了与之前描述的论文截然不同的智力挑战,本质上是说,“这就是我所做的。 如果你认为你可以改进它,打开一个终端窗口并开始工作。” 它是一份在类似巫师的环境中发布的文档,在这种环境中,任何人,至少在理论上,都可以凭借正确的态度和相关的技术技能成为同行——并且审查发生在事后,通过链接、评论和项目的进一步开发。
它以同样的紧迫感和亲身参与感被接受,引发了雪崩般的批评、编码、协作和评论。 许多例子之一发生在 Python-Dev 邮件列表讨论中(Python 是一种高级编程语言,碰巧以Monty Python命名)。 他们正在讨论 bogofilter,这是一种应用了格雷厄姆朴素贝叶斯模型的垃圾邮件过滤器:“有人愿意汇集语料库(corpora?)吗?” 一位程序员在格雷厄姆发表文章后几乎立即写道。 Tim Peters 为讨论带来了数学上的清晰性:“格雷厄姆凭空捏造了他的公式,并且评分设置的一部分非常可疑。 这需要详细了解”——然后他提供了详细信息,深入探讨了贝叶斯定理在格雷厄姆模型中的应用中存在的一个深刻问题。27 开源倡导者 Eric Raymond 回复了一个可能的解决方法,并在消息末尾向 Peters 提出了一个问题:“哦,你介意我使用你的代数作为 bogo-filter 文档的一部分吗?” Peters 回复道:“一点也不介意。” 几天之内,基于格雷厄姆的朴素贝叶斯思想的 bogo-filter 项目被检查到用于开发软件的测试环境中。 垃圾邮件转型的步伐似乎找到了它的对手。
要真正理解朴素贝叶斯模型对电子邮件和垃圾邮件的影响,可以将 Python bogofilter 项目的快节奏协作、社区努力扩展到几种不同的编程语言和许多竞争项目。 格雷厄姆在他撰写的“垃圾邮件计划”之后的 FAQ 中列出了一些:Death2Spam、SpamProbe、Spammunition、Spam Bully、InboxShield、Junk-Out、Outclass、Disruptor OL、SpamTiger、JunkChief。 在另一篇文章中还提到了其他一些:“现在有超过 30 个可用。 苹果有一个,MSN 有一个,据说 AOL 有一个正在测试中,你可以非常肯定雅虎正在开发一个。”28 格雷厄姆推广的朴素贝叶斯过滤模型仍然是当今反垃圾邮件过滤器的默认方法,当然,正如 Python-Dev 对话所表明的那样,它经过了许多修改、添加和调整。 经过大量修改和补充的朴素贝叶斯过滤器既在个人电子邮件程序级别运行,也在微软的 Hotmail 和谷歌的 Gmail 等超大型网络邮件提供商级别运行(与其他众多过滤技术协同运行)。
它的成功有很多原因。 其中之一是背景:格雷厄姆的文章是一篇闲聊式的文章,充满了代码示例,由一位广受欢迎的互联网企业家发布,然后在高流量新闻和讨论网站上链接和转发,而不是在关于文本分类的机器学习学术研讨会上发表的技术研究论文。 凭借其“这里可能还有改进的空间”的语言,它旨在被黑客社区(如 Python-Dev 团队)中有影响力的群体快速采用。 最重要的是,它为其优雅的技术技巧提供了经过深思熟虑且令人信服的论据,这是一个关于垃圾邮件的社会和经济结构的论据——垃圾邮件在最一般的意义上是如何运作的,以及如何打破它。 这种论据与格雷厄姆的过滤器一起被隐性和显性地采纳,并且与误报问题一起,构成了垃圾邮件做法在其转型和生存中利用的失败的缝隙。
格雷厄姆在最初的“垃圾邮件计划”中的所有论点都围绕着两点。 第一点是“垃圾邮件发送者的阿喀琉斯之踵是他们的消息”。 可靠阻止垃圾邮件的唯一一点——垃圾邮件发送者无法规避的一点——是他们需要让收件人采取某种行动的词语。 因此,使用贝叶斯过滤器来分析文本本身,并处理用于阻止它的语言本身。 第二个相关点是,这种阻止不需要完美地工作,但只需要非常好地工作,因为目标不是将垃圾邮件定为犯罪,公开羞辱垃圾邮件发送者或教育接收者,正如以前的项目试图做的那样——目标只是降低垃圾邮件的盈利能力。 “垃圾邮件发送者是商人,”他写道。 “他们发送垃圾邮件是因为它有效。 它之所以有效,是因为尽管回复率低得令人发指……但对他们来说,成本几乎为零。……发送垃圾邮件确实会给垃圾邮件发送者带来一些成本。 因此,无论通过过滤,还是通过使用过滤器迫使垃圾邮件发送者淡化他们的推销,我们都能将回复率降低得越低,就会有越少的企业认为发送垃圾邮件是值得的。” 承诺是,垃圾邮件是罕见的一类问题,当被忽视时,实际上会消失。 “如果我们足够擅长过滤垃圾邮件,它将停止工作,垃圾邮件发送者实际上将停止发送它。”
格雷厄姆认为,合法化和理论上守法的电子邮件营销尝试是垃圾邮件最危险的侧翼,是互联网的先锋,在这个互联网中,负担得起游说的垃圾邮件发送者可以逍遥法外,而电子邮件已成为一个大型营销机器。 选择加入垃圾邮件是这种合法化垃圾邮件活动最流行的形式之一,其支持者认为,他们的垃圾邮件信息的接收者已订阅——通常是通过在网站上输入他们的地址,而该网站的服务条款允许网站所有者将地址出售给营销人员。 选择加入垃圾邮件至少在理论上包括关于如何取消订阅邮件的礼貌说明。 “选择加入垃圾邮件发送者是垃圾邮件领域中更合法的一端,”格雷厄姆写道。 “更好的过滤器的到来将终结选择加入的神话,因为选择加入垃圾邮件特别容易受到过滤器的攻击[由于消息中出现的容易识别的法律和取消订阅样板文本]。……一旦统计过滤器得到广泛部署,大多数选择加入垃圾邮件将直接进入垃圾箱。 这应该将选择加入垃圾邮件发送者从他们目前的半合法性掩护中清除出来。”30 如果人们可以用他们的过滤器对什么是垃圾邮件进行投票,那么您就必须开始积极欺骗他们并从事不太合法但更有利可图的做法才能使其有利可图。 随着此类过滤器得到广泛部署,力求合法的“在线营销人员”将无法再在远程营销和直邮的模糊法律先例的庇护下。 他们要么退出业务,要么完全变成犯罪分子,随之而来的是额外的个人、社会和经济成本。 您不需要将他们定为犯罪,因为您可以让他们自己犯罪——然后您可以让法律来对付他们。
“处于更合法一端的公司会游说允许底层人士也溜过去的漏洞。……如果‘选择加入’垃圾邮件发送者消失了……[i]每个人都会清楚地知道营销在哪里结束,犯罪在哪里开始,并且不会有游说者努力模糊这种区别。”31 格雷厄姆因此制造了一个非凡的两难困境。 可以使垃圾邮件合法化的法律规范以及用于显示消息符合 CAN-SPAM 等法律的材料——免责声明、相关法律的引用、合规声明以及取消订阅链接——非常规范,因此是贝叶斯过滤的完美目标。 随着良好的过滤器到位,合法化的过程——遵守法律——使您的业务盈利能力大大降低。 你必须成为罪犯,否则就退出。
与针对 Sanford Wallace 和 Alan Ralsky 等美国垃圾邮件社区的高调逮捕和法律诉讼一起,格雷厄姆的过滤器及其论点几乎完全成功了。 法律和过滤共同消灭了合法化的在线营销人员的世界,这类人希望通过直接向世界的电子邮件地址推销来销售大量利润相对较低的产品,从而使他们陷入严重的财务困境。 在此过程中,该领域留给了敏捷、适应性强且更有计谋的罪犯。 在格雷厄姆的垃圾邮件计划中,埋下了其自身相对失败的种子。 它的成功之处在于,它扼杀了最容易受到攻击的盈利模式,并引发了垃圾邮件向一种新的、更成问题的做法的转变,这种做法更难控制。