贝叶斯垃圾邮件过滤

贝叶斯垃圾邮件过滤

译自From Wikipedia, the free encyclopedia

 

        贝叶斯垃圾邮件过滤是一种筛选电子邮件的统计技术。在它的基本形式中,它使用天真贝叶斯分类器在词特征包上识别垃圾电子邮件,这是一种在文本分类中常用的方法。

        天真贝叶斯分类器通过使用令牌(典型的词或有时其他的东西)与垃圾电子邮件和非垃圾电子邮件的关联,然后使用贝叶斯推理来计算一封电子邮件是或不是垃圾邮件的概率。

        天真贝叶斯垃圾邮件过滤是处理垃圾邮件时可以把自身定制进个别用户的电子邮件需求中并给出一般用户可接受的垃圾邮件的低的假阳性检测率的基线技术。它是根在1990年代的最古老的做垃圾邮件过滤的方式之一。

1 历史

        已知第一次使用天真贝叶斯分类器邮件过滤的程序的是佳森·任涅(Jason Rennie) 1996年发行的ifile程序。该程序被用来把邮件排序到文件夹中。贝叶斯垃圾邮件过滤的第一个学术出版物是萨哈米(Sahami et al)等1998年发表的。紧接着部署了商业垃圾邮件过滤器。然而,2002年保罗·格雷厄姆(Paul Graham大大地减少了假阳性率,以致它本身可以作为一个单一的垃圾邮件过滤器。

        基本技术的变形被实施在大量的研究工作和商业软件产品中。许多现代的邮件客户端执行贝叶斯垃圾邮件过滤。用户也可以安装单独的电子邮件过滤程序。服务器端电子邮件过滤器,如CRM114、DSPAM、SpamAssassin、SpamBayes、Bogofilter 和ASSP,利用了贝叶斯垃圾邮件过滤技术和功能性有时被嵌入在邮件服务器软件本身。

2 过程

        在垃圾邮件和合法的电子邮件中特定的词有特定的发生概率。例如,大多数电子邮件用户经常会在垃圾邮件的电子邮件中遇到的单词"伟哥(Viagra",但很少会在其它电子邮件中看到它。过滤器事先并不知道这些概率,首先必须接受训练这样可以建立起它们。要训练过滤器,用户必须手动指示一个新的电子邮件是否是垃圾邮件。对每个电子邮件中训练的所有词,过滤器将调整在其数据库中每个单词在垃圾邮件或合法的电子邮件出现的概率。例如,贝叶斯垃圾邮件筛选器通常已经学知了词"伟哥"和"再融资"的一个非常高的垃圾邮件的概率,但在合法的电子邮件中只看到一个非常低的垃圾邮件的概率,如朋友和家庭成员的名称。

        经过训练后,单词概率(也称为似然函数)被用来计算有属于任一类别的特定词集的电子邮件的概率。电子邮件中的每个单词有助于电子邮件的垃圾邮件的概率或只是最有趣的词。这方面的贡献被称为后验概率,使用贝叶斯定理进行计算。然后,对该电子邮件中的所有单词进行垃圾邮件概率计算,如果总数超过某一阈值(说95%),该过滤器将把这个电子邮件标记为垃圾邮件。

        如同任何其他垃圾邮件过滤技术一样,标记为垃圾邮件的电子邮件然后能被自动移到"垃圾件"的电子邮件文件夹,或甚至彻底删除。一些软件执行定义一个时间框架的期间允许用户审查的软件决定的隔离机制。

        通常当软件的错误判断(伪阳或伪阴)被标识时初始训练被精练。这允许软件来动态地适应不断演变性质的垃圾邮件。

        一些垃圾邮件过滤器组合贝叶斯垃圾邮件过滤和其他启发式的结果(有关内容、看邮件的信封等预定义的规则),导致更高的过滤准确性,有时以适应性为代价的。

3 数学基础

        贝叶斯电子邮件过滤器利用贝叶斯定理。贝叶斯定理在垃圾邮件的上下文中使用了几次:

        第一次,计算信息是垃圾的概率,知道一个给定的单词出现在此信息中;

        第二次,计算信息是垃圾的概率,考虑到所有的它的词(或它们的一个相关子集);

        有时有第三次,处理罕见的词。

3.1计算包含一个给定的单词的信息是垃圾邮件的概率

        让我们假设怀疑的信息中包含单词"副本"。大多数习惯接收电子邮件的人知道这个信息很可能是垃圾邮件,更精确地卖假冒知名品牌的手表的建议。不过,垃圾邮件检测软件并不"了解"这类事实,它能做的只是计算概率。

        软件用来确定的的公式就是从贝叶斯定理得来的

        

其中:

        是信息是垃圾邮件的概率,知道"副本"一词在它之中;

        是任何给定的信息是垃圾邮件的总体概率;

       是"副本"一词出现在垃圾邮件信息中的概率;

        是任何给定的信息不是垃圾邮件 (是"火腿")的总体概率;

        是"副本"一词出现在火腿信息中的概率。

                                  (充分地展示,见叶斯定理 #Extended_form

3.2 一个词的垃圾性

        最近的统计学显示当前的任何可能是垃圾邮件的信息的概率是80%,至少在:

       

        然而,大多数贝叶斯垃圾邮件检测软件都假设对任何输入的不是火腿而是垃圾邮件的信息是不会有先验理由的,并考虑这两种情况有相等的50%的概率:

       

        使用这种假设的滤波器据说是"没有偏见"的,也就是说它们对于输入的电子邮件没有偏见。这种假设允许简化一般的公式为:

       

        这个量被称为"副本"一词的"垃圾性(spamicity) "(或"垃圾(spaminess)"),并可以计算出。在这个公式中使用的数字近似为在学习阶段标识为垃圾邮件的信息中包含"副本"的信息的频度。同样地, 近似为在学习阶段标识为火腿的包含"副本"的信息中的频度。要让这些近似有意义,学到的信息集需要足够大和足以代表的。另一个忠告,学到的信息集符合垃圾邮件和火腿之间重新分区的50%的假定,即垃圾邮件和火腿的数据集是大小相同的。

        当然,确定一个信息是垃圾邮件还是火腿仅基于"副本"一词的存在是易出错的,这正是为什么贝叶斯垃圾邮件软件尝试考虑几个词并结合其垃圾性来确定一个信息是垃圾邮件的总体概率的。

3.3 结合个别概率

        大多数贝叶斯垃圾邮件过滤算法基于严格有效(从概率的角度看)的只有仅出现在信息中的词都是独立事件的公式之上的。这种条件一般不是满意(例如,在像英语一样的自然语言中发现一个形容词的概率受有一个名词的概率影响的)的,但它是非常有用的理想化,尤其是个别单词之间的统计相关性通常都是不知的。在此基础上人们可以从贝叶斯定理派生下面的公式:

       

 

其中:

        p是可疑信息是垃圾邮件的概率;

        p1是知道它包含第一个单词(例如"副本")是垃圾邮件的 的概率;

        p2是知道它包含第二个单词(例如"手表")是垃圾邮件的的概率 ;

        等等...

        pn知道它包含第n个单词(例如"家")是垃圾邮件的的概率 。

        这是由保罗·格雷厄姆在他2002年的文章中引用的公式。一些早期的评论家指出"格雷厄姆从稀薄的空气拉出他的公式",但是格雷厄姆实际上引用了他的源,其中包括公式的详细说明和它理想化的基础。

        基于此公式的垃圾邮件过滤软件有时被称为天真贝叶斯分类器。结果p通常与给定的阈值比较来决定是否该信息是垃圾邮件。如果p低于阈值,该信息被考虑作为可能的火腿,否则它被考虑作为可能的垃圾邮件。

3.4 结合个别概率其他公式的表达

        通常由于浮点下溢p不直接用上述公式计算。相反,p可以通过重写原始方程在对数域中计算,如下所示:

       

两边取对数:

       

        令 。因此,

       

        因此得出计算结合的概率的替换公式:

       

 3.5 处理罕见的词

        在一个单词在学习阶段从未遇到的情况下,在一般和垃圾性公式中分子和分母都等于零。该软件可以决定放弃这样的词,因为没有任何这种词的可用信息。

        更一般地说,学习阶段仅遇到了几次的词造成一个问题,因为盲目地信任它们提供的信息将是一个错误。一个简单的解决方案也只是避免说明这种不可靠的词。

        再次应用贝叶斯定理,并假设其中包含给定的单词 ("副本")的电子邮件的垃圾邮件和火腿之间的分类是一个贝塔(beta)分布的随机变量,一些程序决定使用一个已更正的概率:

 

       

其中

        是知道它包含给定的单词该信息是垃圾邮件的更正概率;

        是我们给有关输入的垃圾邮件有关的背景信息的强度

        是的任何输入的为垃圾邮件的概率

        n是这个词在学习阶段出现的次数;

        是这个词的垃圾性。

        这个更正后的概率被用来在组合公式中代替垃圾性。

        可以再次取等于0.5,以避免过于怀疑输入的电子邮件。3是s的一个良好值,意味着学知的语料库必须包含超过该单词的3个信息,在垃圾性值中要比在默认值投入更多的信心。

        这个公式可以扩展到其中n等于零(没有定义垃圾性的)的情况,并在这种情况下估值为

3.6 其他的启发式

        "中性的"词像"冠词","一个"、"一些",或"是"(英语中),或它们在其他语言中的等效词可以被忽略。更一般地说,某些贝叶斯过滤筛选器完全忽略所有下一个靠近垃圾性0.5的词,因为它们对一个好的决定带来不了什么。考虑到的词是那些其垃圾性是0.0(合法邮件的显著性标志)的下一个的,或1.0 (垃圾邮件的显著性标志)的下一个的。一种方法可以在审查的信息中仅保持那些十个有最大绝对值|0.5 pI|的字的例子。

        某些软件产品考虑到了一个给定的单词在被审查的信息中出现几次的事实,其他的没有考虑。

        某些软件产品使用模式(词的序列)替代孤立的自然语言词汇。例如,用一个四个字的"上下文窗口",他们计算"伟哥对...是好的"的垃圾性,而不是计算"伟哥"、"对..." 、"是"和"好"的垃圾性。这种方法在更大的数据库的代价上对上下文给出更多的敏感性,并更好消除了贝叶斯噪音。

3.7 混合的方法

        有一些对不同的词结合个别的概率而不使用"天真"的方法的其他的方法。这些方法不同于"天真"的方法之处在于它们对输入数据的统计性质的假设上。这些不同的假说导致从根本上结合个别的概率的不同公式。

        例如,假设个别概率遵循有2N自由度的χ²分布,人们可以使用公式:

       

        其中C1是χ²函数的反函数。

        个别概率也可结合马克维安差异(Markovian discrimination的技术。

4 讨论

4.1 优点

(本节的事实的准确性有争执。(2013年5月))

        贝叶斯垃圾邮件过滤的主要优势之一是它可以在每用户基础上训练。

        一个用户收到的垃圾邮件通常有关在线用户的活动。例如,用户可能已订阅一个用户认为是垃圾邮件的在线的新闻通讯。这个在线通讯很可能包含通用的所有通讯的词,如通讯的名称和其来源的电子邮件地址。贝叶斯垃圾邮件过滤器将会基于用户的特定模式最终分配一个更高的概率。

        一个用户接收到的合法的电子邮件的倾向是不同的。例如,在企业环境中,公司名称和客户端或客户的名称将经常提到。过滤器将对包含这些名称的电子邮件分配一个很低的垃圾邮件概率。

        对于每个用户单词概率都是唯一和能够随着时间和每当过滤器不正确地进行分类一封电子邮件时的纠正训练演变的。其结果是,训练后的贝叶斯垃圾邮件过滤准确性往往是优于预定义的规则的。

        它可以特别好的执行避免伪阳性,合法的电子邮件错误地归为垃圾邮件的情况。例如,如果电子邮件中包含单词"尼日利亚",这往往用在提前费用欺诈垃圾邮件,一个预定义的规则过滤器可能会彻底拒绝它。贝叶斯过滤器将词"尼日利亚"标志成可能是垃圾邮件的单词,但会考虑到其他重要的通常表明合法的电子邮件的词语。例如,配偶的姓名可能强烈表明电子邮件不是垃圾邮件,这可以克服"尼日利亚"一词的使用。

4.2 缺点

        取决于执行,贝叶斯垃圾邮件过滤功能可能敏感于贝叶斯中毒,这是垃圾邮件发送者尝试使用降低依赖贝叶斯过滤的垃圾邮件过滤器的效力的一种技术。一个实行贝叶斯中毒的垃圾邮件发送者将发送大量合法文本(从合法新闻或文学来源收集)电子邮件。垃圾邮件发送者的策略包括插入通常与垃圾邮件无关的随机无害字,从而降低电子邮件的垃圾邮件分数,使得它更有可能悄悄越过贝叶斯垃圾邮件过滤器。但是(例如)保罗·格雷厄姆的计划使用唯一的最有意义的概率,这样文本填充与非垃圾邮件有关的词语并不显著影响检测概率。

        在垃圾邮件中通常会出现的大量的词也可能被垃圾邮件发送者转变。例如,«伟哥» 在垃圾邮件中将替换成«Viaagra»或者 «V!阿格拉»。邮件的收件人仍可以读取已更改的词语,但这些词的每个被贝叶斯过滤器更很少的遇见而阻碍了它的学习进程。作为一般规则,这种垃圾邮件的技术不能很好工作,因为衍生的词最终被过滤器像正常的认知的。

        另一个想要打败贝叶斯垃圾邮件筛选器的技术是使用图片替换文本,直接包括或链接。整个信息文本或它的某些部分,将在相同的文本的地方被替换为"画"的图片。垃圾邮件过滤器通常无法分析这张图片,其中会包含«伟哥»这样的敏感字眼的。然而,因为很多邮件客户端出于安全的原因禁用链接图片的显示,垃圾邮件发送者发送到遥远的图片的链接可能会达到较少的目标。此外,字节为单位的图片大小比等效文本的大,所以垃圾邮件发送者需要更多的带宽来发送信息直接包括图片。一些过滤器更倾向于决定邮件如果有过多图形的内容是垃圾邮件。最后,一个可能更有效的解决方案由谷歌提议并用于其Gmail电子邮件系统,对每一中到大尺寸图像使用执行OCR(光学字符识别),分析里面的文本。

5 贝叶斯过滤的广泛应用

        贝叶斯过滤被广泛用于标识垃圾邮件的电子邮件,这种技术可以分类(或者"群集")几乎任何类型的数据。在科学、医学和工程中有用途。一个例子是一个叫做AutoClass的分类程序,其最初按照光谱特征来对行星进行分类,不这样做太微妙就不会引起注意。最近有推测,甚至大脑对感官刺激和行为反应的决定使用贝叶斯方法进行分类。

http://en.wikipedia.org/wiki/Bayesian_spam_filtering

Text is available under theCreative Commons Attribution-ShareAlike License

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值