1基于贝叶斯技术的垃圾邮件处理研究易均,李晖,王歆(江西省科学院,江西南昌330029)摘要:本论文首先对垃圾邮件进行了简要的描述,并叙述了反垃圾邮件技术的研究现状,介绍贝叶斯过滤技术的工作原理及技术原理,最后给出贝叶斯技术研究的发展方向。关键词:贝叶斯技术;反垃圾邮件1、前言随着因特网应用的快速发展,电子邮件也逐步成为因特网的最大一个应用之一,给我们生活带来很大的方便,而且电子邮件的发展也代表了我国进入信息业高速发展的阶段。但是也同时产生了一个新的问题,即大量的垃圾邮件出现。如何把电子邮件中的垃圾邮件过滤掉,已经成为电子邮件用户此刻最关心的一大问题,这也就是所谓的“反垃圾邮件”问题。反垃圾邮件是具有相当难度的事情,垃圾邮件每天都在增加和变化。据Radicati估计2007年,垃圾邮件的比例将达到70%。现在的垃圾邮件发送者变得更加狡猾,采用静态反垃圾邮件技术很难防范。垃圾邮件发送者只要简单的研究一下现在采用了哪些静态反垃圾邮件,然后相应的改变一下邮件的内容或发送方式,就可以逃避检查了,因此,必须采用一种新的技术来克服静态反垃圾邮件的弱点,这种技术应该对垃圾邮件发送者的各种伎俩了如指掌,还要能适应不同用户对于反垃圾邮件的个性化需求。这种技术就是贝叶斯过滤技术。2、垃圾邮件概述以及反垃圾邮件技术的研究现状2.1、垃圾邮件的概述我国至今对垃圾邮件的定义有很多种,包括如下几种:①收件人没有提出要求或者同意接收的广告、及其各种形式的宣传品等宣传性的电子邮件;②在邮件中,隐藏了发件人身份、地址、标题等信息的电子邮件:③含有虚假的发件人的身份、地址等信息源的电子邮件;④收件人无法拒收或者无法删除的电子邮件。目前,垃圾邮件的定义被扩大了,除了上述对垃圾邮件定义外,病毒、反动、色情等等无用的邮件,也被包括在垃圾邮件的定义中。22.2、反垃圾邮件技术的研究现状目前影响较大的主流反垃圾邮件技术有以下二种:⑴协议改进类的方法,重新构建SMTP协议,加入安全认证机制。针对垃圾邮件问题对SMTP协议进行改进和完善是许多研究人员关注的重点问题所在。因为就SMTP协议改进而言面临着很多棘手之处,因此目前新协议没有得到广泛的使用,相信未来随着网络结构的进一步发展,在这方面的研究成果会成为解决垃圾邮件问题的有力措施。⑵在当今的邮件系统中载入其它处理程序来阻断垃圾邮件,其中包含了垃圾邮件过滤技术、邮件服务器的安全管理技术两部分内容。对过滤技术的应用主要集中在利用IP或者域名“黑名单”进行邮件过滤或中断;基于数据挖掘技术进行的过滤垃圾邮件,利用文本分类与统计算法进行垃圾邮件检测。比较有代表性的包括结合DNS的实时黑名单过滤、贝叶斯过滤器等,其中贝叶斯过滤器以较高的准确率在垃圾邮件过滤技术中占据了很重要的地位。3、贝叶斯过滤技术3.1、贝叶斯过滤技术的工作原理根据贝叶斯理论,根据已经发生的时间可以预测未来事件发生的可能性。将该理论运用到反垃圾邮件上:若已知某些字词经常出现在垃圾邮件中,却很少出现在合法邮件中,当一封邮件含有这些字词时,那么他是垃圾邮件的可能性就很大。⑴创建基于字词符号的贝叶斯数据库用户首先需要对贝叶斯进行培训,即将邮件分类为垃圾邮件(用户不想要的)和正常邮件(用户想要的),贝叶斯将提取这些邮件样本中主题和信体中的独立字串,包括字词(word)和符号(token)(如$,IP地址,域名等),并建立相应的数据库。⑵创建贝叶斯概率库统计出每个字串在垃圾邮件中出现的概率以及在正常邮件中出现的概率,然后根据公式计算出邮件中含某字串则为垃圾邮件的概率。例如:在3000封垃圾邮件样本中mortgage(抵押)出现了400次,而在300封正常邮件中这个词出现了5次,那么其对应的垃圾概率为0.8889([400/3000]/[5/300+400/3000])。⑶创建个性化的贝叶斯库由于每个单位对所收到的邮件偏好是不同的,例如,某个金融类单位在正常3邮件中可能经常用到mortgage这个词,如果使用静态的关键词过滤,就可能产生很多误判。如果采用贝叶斯过滤,在对贝叶斯进行培训的时候,将该单位的合法邮件(自然,很多都包含了mortgage这个词)分类为正常邮件。这样,垃圾邮件的识别率将更高,同时也使得误判率变得很低。贝叶斯过滤算法的主要思想是在已知的大量垃圾邮件中,邮件中包含一些特征串(token),这些特征串可以简单的理解为一个完整的单词,但实际上它不仅仅限于单词,它们一般出现在邮件中的频率特别高,而在一些合法邮件中,另一些特征串出现的频率也很高。一般而言,对于同一个特征串出现在垃圾邮件和合法邮件中的概率是不同的。因此,对于出现的每一个特征串,都会生成一个“垃圾邮件指示性概率”(spamratio)。所以我们就可以判断文本消息的整体“垃圾邮件概率”。在垃圾邮件的处理中,对token的定义方法有很多种,如字母、数字、破折号、撇号、美元号等,还有在收件人,发件人和主题等这些栏中出现的token作为相应的标记。根据一些划分方法从邮件中提取标识时,得到标识的数量比较大时,这样处理工作带来了较大的计算开销,使整个处理过程的效率下降。另外,有些标识,例如a、the、of、for等,这些词出现的频率虽然很高,但它们在一封邮件中频繁出现我们并不能说明这封邮件是垃圾邮件还是合法邮件。因此,必须对标识进行必要的细化处理,找出这些非用词放入一个表中,保留其他的标识为以后工作使用。3.2、贝叶斯方法过滤垃圾邮件的基本技术原理⑴收集大量的垃圾邮件和非垃圾邮件,建立垃圾邮件集和非垃圾邮件集。⑵提取邮件主题和邮件体中的独立字串作为TOKEN串,并统计提取它的TOKEN串出现的次数,即字频。⑶每一个邮件集对应一个哈希表,设hashtable_good对应非垃圾邮件集而hashtable_bad对应垃圾邮件集。表中存储TOKEN串到字频的映射关系。⑷计算每个哈希表中TOKEN串出现的概率P=(某TOKEN串的字频)/(对应哈希表的长度)。⑸综合考虑hashtable_good和hashtable_bad,推断出当新来的邮件中出现某个TOKEN串时,该新邮件为垃圾邮件的概率。数学表达式为:A事件----邮件为垃圾邮件;2,,nttt1代表TOKEN串,则)/(itAP表示在邮4件中出现TOKEN串it时,该邮件为垃圾邮件的概率。设:1_iiPtthashtablegood在中的值)_()(2中的值在badhashtablettPii则)/(itAP)()()(211iiitPtPtP;⑹建立新的哈希表hashtable_probability存储TOKEN串it到)/(itAP的映射。⑺此时垃圾邮件集和非垃圾邮件集的学习过程结束。根据建立的hashtable_probability估计一封新到的邮件为垃圾邮件的可能性。当新到一封邮件时,按照步骤2生成TOKEN串。查询hashtable_probability得到该TOKEN串的键值。假设由该邮件共得到N个TOKEN串,1,2,nttt,hashtable_probability中对应的值为12,,nPPP,),/(,21ntttAP表示在邮件中同时出现多个TOKEN串12,nttt时,该邮件为垃圾邮件的概率。由复合概率公式得:)1()1()1(),,/(21212121nnnnPPPPPPPPPtttAP当),/(,21ntttAP超过预定阈值时,就可以判断邮件为垃圾邮件。3.3、贝叶斯过滤的优点⑴贝叶斯过滤技术对邮件的所有内容进行分析,不仅仅是其中的某个关键词,而且他能判别邮件是垃圾邮件还是正常邮件。例如:包含“free”“cash”“发票”字样的邮件不一定是垃圾邮件,如果采用关键字过滤技术,显然难以达到理想的效果。而贝叶斯呢,即考虑了这些词在垃圾邮件中出现的概率又考虑了它在正常邮件中的概率,综合考虑这些因素才做出判断。可以说,贝叶斯具有一定的智能,它对邮件中的关键词汇能综合的进行评判,可以把握“好”与“坏”之间的平衡。显然,这种技术远远高于非1即0的静态过滤技术。⑵贝叶斯过滤技术具备自适应功能――通过学习新的垃圾邮件及正常邮件样本,贝叶斯将能对抗最新的垃圾邮件。并且对变体字有奇效。比如,垃圾邮件5发送者开始使用f-r-e-e来代替“free”这样能够绕过关键字检查,除非f-r-e-e被加到新的关键字中。对贝叶斯而言,当它发现邮件中含有f-r-e-e时,由于正常邮件中从来没有发现这个词,因此他是垃圾邮件的可能性将急剧增加,f-r-e-e这个新词无疑成了垃圾邮件的指示器。在比如,垃圾邮件中用5e代替se,贝叶斯也推算出他是垃圾邮件的可能性也急剧增加。⑶贝叶斯过滤技术更加个性化。他能学习并理解用户对邮件的偏好。如前所述,‘mortgage’抵押一词对软件单位而言意味者垃圾,但对金融类单位则意味着好邮件。贝叶斯能根据用户的这种偏好进行处理。⑷贝叶斯过滤技术支持多语种或者说与编码无关。对于贝叶斯而言,他分析的是字串,无论他是字、词、符号、还是别的什么,当然更与语言无关。⑸贝叶斯过滤器很难被欺骗。垃圾邮件发送高手通常通过减少垃圾词汇(如free、viagra、发票)或者在信中多掺一些好的词汇(如合同、文件)来绕过检查一般的邮件内容检查,但由于贝叶斯具有的个性化色彩,要想成功的绕过贝叶斯的检查,他就不得不对每个收件人的偏好进行研究,这简直是“不可能完成的任务”。垃圾邮件发送者无法容忍的。若采用变化字,则如前所述贝叶斯判断其为垃圾邮件的可能性反而增加。4、结束贝叶斯网络具有悠久的历史,很久以前贝叶斯就提出了基于统计方法的贝叶斯网络的概念。贝叶斯网络为因果信息提供了一种自然直观的表达方式。贝叶斯网络具有概率推理能力强、语义清晰、易于理解等特点。近年来,研究热点在推理的各种方法和从数据中进行贝叶斯网络学习的各种方法,并且它对于网络模型的构建和智能推理的应用均具有重要的意义。参考文献[1]王理冬,汪光阳,程泽凯,朱孝宇,贝叶斯网络的发展与展望[J].安徽工业大学学报.2006(4).[2]黄解军.贝叶斯网络结构学习及其在数据挖掘中的应用研究[M].2005(2).[3]王利民.贝叶斯学习理论中若干问题的研究[M].2005(4).[4]闫龙,王文杰.基于贝叶斯方法的一种垃圾邮件过滤的实现[J].微电6子学与计算机.2006,23(2):86—88.[5]徐松浦.反垃圾邮件中贝叶斯方法的应用研究[M].2005(6).[6]张健,陈拓,韩益亮、畅雄杰、李彩霞、潘峰.最小风险的NaiveBayes技术在反垃圾邮件系统中的应用[J].2005,22,(12):139—141.