11-1 垃圾邮件过滤器以贝叶斯推理为基础
在进行统计推算与贝叶斯推理等概率推算时,通常需要两条以上的信息。并且,信息数量越多,推算出的结果可信度越高。后面的三讲,会讲解如何利用多条信息来进行推算的问题,而其中的要点则是上一讲中提到的“概率的乘法公式”。在这一讲,会讲解如何利用两条信息来计算出后验概率。
本讲主要探讨垃圾邮件过滤器的问题。
所谓的垃圾邮件,指的就是一些不良商家通过网络随意发送的广告邮件。而垃圾邮件过滤器的功能之一就是自动判别垃圾邮件,并把它归入“垃圾邮件”的分类中。
事实上,贝叶斯推理的实际应用中,最广为人知的正是这种垃圾邮件过滤器。而目前,垃圾邮件过滤器已经被引进更为广泛的网络邮件服务当中。读者们在使用该服务之后,都会为它在分类判断方面的准确性而惊叹不已,而这一切都要归功于贝叶斯推理。
11-2 在过滤器上设置“先验概率”
和前面的操作步骤相同,第一步是设定事前类别,并在获得一条信息之后,计算出后验概率。
在这里我们要做的,并不是“自己去判断收到的邮件是否为垃圾邮件”,而是为大家讲解“电脑会对所收到的邮件做出机械判断”的原理。
首先,电脑在对收到的邮件进行扫描之前,会为每个类别分配“这封邮件是垃圾邮件还是正常邮件”先验概率。在这里,利用“理由不充分原理”(见3-2),使双方各占0.5的概率。
这就意味着,对于接收到的邮件,过滤器会做出“垃圾邮件的概率是0.5,正常邮件的概率也是0.5”的判断。而此时如果有可信度更高的概率,也可以将其设定为先验概率,如图表11-1所示。
图表11-1 理由不充分原理的先验概率
11-3 扫描字句与条件概率的设定
接下来要做的是,设定一些在垃圾邮件里常见的字句及特征。但需要注意的是,“贴有其他网页的URL链接”这一特征,是电脑判断一封邮件疑似为垃圾邮件的关键点。实际上,大多垃圾邮件的目的确实是引诱读者访问其他网址,因而附带有URL的链接。因此,如果符合以下稳固关系,即:
垃圾邮件→URL上有链接
正常邮件→URL上无链接
那么就可以排除掉所有的垃圾邮件。当然,按照5-3推论中的解说,也可以通过逆向思维做出如下判断:
URL上有链接→垃圾邮件
URL上无链接→正常邮件
然而遗憾的是,多多少少会有那么几封垃圾邮件中并没有其他链接,而来自朋友和公司的邮件中却附带链接,这就难办了。在这种情况下,就必须使用5-3中提到的概率推论相关的“可能性”判断方法,即:
URL上有链接→可能是垃圾邮件
URL上无链接→可能是正常邮件
对于这种“可能性”进行数值评价,需要运用到贝叶斯推理。
因此,就很有必要设定:垃圾邮件中附带URL的比例,以及正常邮件中附带URL的比例各占多少。为了方便计算,以下采用虚构的数据来进行简单运算,如图表11-2、11-3所示。
图表11-2 附带链接的条件概率
图表11-3 4种互不相同的可能性
虽然之前已经进行过说明,但为了保险起见,下面,再一次对图表11-3进行讲解。
现在,过滤器要对刚刚收到的一封邮件进行检查。此时的过滤器将会面临四种情况。首先,把收到邮件的可能性分为垃圾邮件和正常邮件两类。然后,根据有无链接,再各自分为两类。所以,一共存在四种可能性。接下来,再进一步判定究竟哪一种可能性是符合实际的。
11-4 根据扫描结果,计算垃圾邮件的贝叶斯逆概率
过滤器扫描完邮件后得到的结论是“附带链接”。此时,就不必再考虑“无链接”的两种可能性,只需要考虑剩余的两种可能性,如图表11-4所示。
图表11-4 可能性被限定为两种
恢复标准化条件(相加之和为1)之后,通过这张图可以计算出后验概率为:
在有链接的情况下,
(垃圾邮件的后验概率):(正常邮件的后验概率)
=0.5×0.6:0.5×0.2
=0.6:0.2
=3:1
=3/4:1/4
所以,过滤器判断出
(附带链接的垃圾邮件的后验概率)=3/4=0.75
在扫描之前,垃圾邮件的概率被设定为0.5;而通过扫描发现链接之后,垃圾邮件的概率上升到了0.75,如图表11-5所示。
图表11-5 扫描前与扫描后
在这种情况下,“正常邮件的后验概率”为0.25,但这一概率并不为0,所以垃圾邮件的可能性增大,然而,并不能就此判定它就是垃圾邮件。例如,尽管在过滤器上设定了“如果垃圾邮件的后验概率超过0.95,就自动把它移到垃圾箱里”,但有可能这封邮件并没有被移动到垃圾箱里,而是被划分到收件箱中。
11-5 获得第2条信息后,可能性随之变为8种
通过上一节中我们了解到,即使在获得了“附带链接”的信息之后,也只能初步判断这封邮件极有可能是垃圾邮件,但不能确定它一定会被移动到垃圾箱中。因此,过滤器会通过添加其他的信息,再次进行判断。现在我们添加一个条件:把“幽会”一词作为关键词来进行检索。“幽会”一词出现的概率和不出现的概率,如图表11-6所示。
图表11-6 附带链接的条件概率
此时,过滤器在扫描邮件时,除了“附带链接”之外,又增加了含有“幽会”一词的条件,通过这两个条件来判别垃圾邮件。
首先,在图表11-2共体现了两种可能性,而在图表11-7中,这两种可能性各自又分为4种可能性,所以共计有8种可能性,这8种可能性各自的概率如图表11-7的下部所示。
图表11-7 附带链接的条件概率
要注意的是,垃圾邮件和正常邮件的概率分列在两个表中。这样做的原因是,被检查邮件是垃圾邮件或是正常邮件的两种情况下,概率是完全不同的。并且,在上述两种情况下,被扫描的特征(附带链接或不带链接、含有“幽会”或不含“幽会”)出现的概率也是完全不同的。因此,必须分开计算各自的概率。
上述两种情况下,共有8种可能性,每一种的概率分别列出,如图表11-8所示。
图表11-8 8种互不相同的可能性
图表11-8的左列(垃圾邮件列)对应图表11-7正中的概率表,右列(正常邮件列)对应图表11-7最下面的概率表。
在这里,请大家进一步确认一个问题:类别的概率0.5也要乘进去。原因在于,它是异于独立性而存在的。而这一点是条件概率的特征,具体的相关内容会在第15讲中进行讲解,此处暂且不多作讨论。
11-6 从2个信息可以消去不可能的情况
在设定上述概率的前提下,过滤器对邮件进行扫描,通过检查是否附带“链接”、是否含有“幽会”一词这两个条件,来计算该邮件为垃圾邮件的概率。图表11-8中共有8种可能性,而只有最上面的2种有可能是垃圾邮件的。于是,留下最上面的2个,排除掉下面的6个,结果如图表11-9所示。
图表11-9 扫描之后只剩下两种可能性
总之,过滤器所检查的邮件分为两种情况,一种是垃圾邮件(附带链接且含有“幽会”),一种是正常邮件(附带链接且含有“幽会”)。两者的比例关系,也就是图中的概率之比。因此,接下来通过标准化条件,可以计算出附带链接且含有“幽会”一词时的后验概率。
(垃圾邮件的后验概率):(正常邮件的后验概率)
=0.5×0.6×0.4:0.5×0.2×0.05
=0.6×0.4:0.2×0.05
=0.24:0.01
=24:1
=24/25:1/25
通过标准化条件运算,在附带链接且含有“幽会”一词的情况下,(垃圾邮件的后验概率)=24/25=0.96
假若在垃圾邮件过滤器上设定一种情况:如果垃圾邮件的后验概率超过0.95,就自动把它移到垃圾箱。那么,在这种情况下,这封邮件就会被移动到垃圾箱,而不会出现在收件箱中。
在获得以上两条信息的前提下,通过贝叶斯推理的过程,如图表11-10所示。
图表11-10 扫描之前与扫描两次之后
如图所示,使用2条信息推算出的结论,比起仅仅使用1条信息来推算,检索出垃圾邮件的概率会更高。
第11讲·小结
1.使用2条信息进行贝叶斯推理的方法与之前基本一致。
2.进行先验概率的类别设定,使用了2种情况下的2条信息,共有8种可能性。
3.利用乘法公式,可以计算出8种可能性各自的概率。
4.使用2条信息推算出的结论,比起仅仅使用1条信息来推算,检索出垃圾邮件的概率会更高。
练习题
答案参见此处
假设,有两种方法(检查方法1和检查方法2)能够检查出是否患有癌症。这两种检查方法的原理完全不同。因此,当癌症患者通过其中一种方法检查出了阳性时,采用另一种方法反而很难检测出阳性。所以,要分开进行试验。对于健康人来说,检查时也是一样的。下面我们来思考以下设定。
※类别的先验概率:患癌的概率为0.001,健康的概率为0.999
▼检查方法1的条件概率
▼检查方法2的条件概率
基于以上设定,在下面的括号中填入适当的数字。
(1)只通过检查方法1 检查出阳性的情况
(患癌症且通过检查方法1 检查出阳性)的概率
=()×()=()…(a)
(健康且通过检查方法1 检查出阳性)的概率
=()×()=()…(b)
以上(a)和(b)的比值满足标准化条件
当通过检查方法1检查出阳性时,
患癌症的后验概率=()
(2)同时采用检查方法1、2,并且两次检查结果都是阳性的情况想
(患癌症且通过检查方法1、2均检查出阳性)的概率
=()×()×()=()…(c)
(健康患癌症且通过检查方法1、2均检查出阳性)的概率
=()×()×()=()…(d)
上面的(c)和(d)的比值满足标准化条件
当通过检查方法1 、2均检查出阳性时,
患癌症的后验概率=()