自适应垃圾消息过滤系统的制作方法

文档序号:7587606阅读:132来源:国知局
专利名称:自适应垃圾消息过滤系统的制作方法
技术领域
本发明涉及识别非期望的信息(例如垃圾邮件)的系统和方法,尤其涉及帮助便于此类识别的自适应过滤器。
背景技术
诸如因特网之类的全球通信网络的出现提供了与大量潜在顾客建立联系的商业契机。电子消息通信,尤其是电子邮件(“e-mail”),作为向网络用户散布讨厌的广告与促销(也称“垃圾邮件”)的手段越来越普遍。
Radicati集团有限公司-一家咨询与市场研究公司,估计如在2002年8月,每天有20亿垃圾电子邮件消息被发送——预期此数字每两年增至三倍。个人与实体(例如公司、政府机构、……)感觉日益不便,并时常不胜垃圾邮件之烦。同样地,垃圾电子邮件如今或即将成为对于可信计算的主要威胁。
一种用于阻碍垃圾电子邮件的关键技术是使用过滤系统/方法。一种已经证实的过滤技术是基于机器学习方法——机器学习过滤器向传入消息分配该消息为垃圾邮件的概率。在此方法中,通常从两类示例消息(例如垃圾和非垃圾邮件消息)中提取特征,并应用学习过滤器在两类间进行概率区分。因为许多消息特征涉及内容(例如在消息主题和/或正文内的单词和短语),此类过滤器通常被称作“基于内容的过滤器”。
某些垃圾邮件/兜售信息过滤器是自适应的,这是重要的,因为多语言的用户及使用小语种语言的用户需要能适应其特殊需求的过滤器。此外,不是所有用户都能在什么是或不是垃圾邮件/兜售信息上取得一致。因此,通过使用可隐式地训练的(例如,经由观察用户行为)过滤器,各过滤器可被动态地度身定制以满足用户的特定消息识别需求。
过滤自适应的一种方法是请求用户将消息标记为垃圾邮件和非垃圾邮件。不幸的是,归因于与此类训练相关联的复杂性,此类手工密集训练技术是不受许多用户欢迎的,更不必说正确地实现此类训练所需的时间量。另一种自适应过滤器训练方法是使用隐式训练提示。例如,如果用户回复或转发邮件,该方法假设该邮件是非垃圾邮件。然而,仅使用此类消息提示将统计偏差引入到训练过程中,导致较低相应准确率的过滤器。
又一种方法是将所有用户的电子邮件用于训练,其中初始标签是由现有过滤器分配的,且用户有时用显式提示——例如,选择诸如“作为垃圾邮件删除”和“非垃圾邮件”等的选项——覆盖那些分配(例如“用户纠正”方法),和/或用隐式提示覆盖那些分配。尽管此类方法优于前面讨论的技术,与以下进行描述和要求保护的本发明相比,它仍是不完善的。
发明概述为了提供对本发明的某些方面的基本理解,下文给出本发明的简化概述。此概述不是本发明广泛综述。它并不试图标识本发明的关键/决定性元素,也不试图描绘本发明的范畴。它唯一的目的是以简单的形式提出本发明的一些概念,作为对稍后给出的更详尽描述的序言。
本发明提供一种便于使用最适合识别垃圾邮件/兜售信息的可用过滤器(例如种子过滤器或新过滤器)的系统和方法。本发明使用一种过滤消息的种子过滤器,它与假肯定率(例如非垃圾邮件被错误地分类为垃圾邮件)和假否定率(例如,垃圾邮件被错误地分类为非垃圾邮件)相关联。还使用一种新过滤器以过滤消息——该新过滤器是根据与种子过滤器相关联的假肯定率和假否定率来评估的。使用用于确定种子过滤器的假肯定率和假否定率的数据来根据阈值确定新过滤器的新的假肯定和假否定率。
如果对于新过滤器存在阈值,使得新假肯定率和新假否定率一起被认为优于种子过滤器的假肯定和假否定率,则使用该新过滤器以代替种子过滤器。新假肯定率和新假否定率是根据由用户标记为垃圾和非垃圾邮件(例如经由使用用户纠正过程)的消息来确定的。用户纠正过程包括覆盖消息的初始分类,初始分类是当用户接收该消息时由种子过滤器自动执行的。阈值可以是单阈值,或从多个生成的阈值中选出。如果使用了多个值,则选中的阈值可通过选择例如符合条件的阈值(例如具有最低假肯定率的阈值,或基于p*效益函数使用户的期望效益最大化的阈值)范围的中点阈值来确定。或者,仅当在选中阈值处,新过滤器的假肯定和假否定率至少和种子过滤器的假肯定和假否定率一样好,且其中一个更好时,才选中该阈值。此外,可提供选择标准,从而仅当不但在选中阈值处,而且在其它附近的阈值处,新过滤器率都优于种子过滤器率时,才选中该新过滤器。
本发明的另一方面提供便于数据过滤的图形用户界面。该界面提供同与配置过滤器有关的配置系统通信的过滤器接口。该界面提供多个用户可选过滤器级别,包括默认、增强、及专有中的至少一个。该界面提供便于实现本发明的前述系统和方法的各种工具。
为达成前述及相关目的,本文结合以下描述与附图描述了本发明的某些说明性方面。然而,这些方面仅指示了可使用本发明原理的各种方法中的少数几种,本发明旨在包括所有此类方面及其等效方面。当结合附图考虑时,本发明的其它优点与新颖的特征将从以下对本发明的具体描述中变得显而易见。
附图简述

图1所示是根据本发明的过滤器系统的通用框图。
图2所示是关于捕获率的性能折衷的图表。
图3所示是根据本发明的方法的流程图。
图4A和4B示出根据本发明,用于配置自适应垃圾邮件过滤系统的示例性用户界面。
图5所示是使用本发明的消息处理体系结构的通用框图。
图6示出根据本发明的技术,具有便于多用户登录和过滤传入消息的一个或多个客户计算机的系统。
图7示出根据本发明,在消息服务器上执行初始过滤,并在一个或多个客户上执行二次过滤的系统。
图8所示是用于大规模实现的自适应过滤系统的框图。
图9所示是用于执行所揭示的体系结构的计算机的框图。
发明详细描述现参考附图描述本发明,图中始终用相同的参考标号指相同的元素。在以下描述中,为解释起见,阐述了大量具体细节,以提供对本发明的彻底理解。然而,显然可以不用这些具体细节来实施本发明。在其它例子中,为了便于描述本发明,以框图形式示出公知的结构和设备。
如在本发明中所用的,术语“组件”和“系统”指的是计算机有关的实体,它们或者是硬件、硬件和软件的组合、软件、或者执行中的软件。例如,组件可以是,但不限于,运行于处理器上的进程、处理器、对象、可执行码、执行线程、程序和/或计算机。作为说明,在服务器上运行的应用程序及该服务器都可以是组件。一个或多个组件可驻留在进程和/或执行线程内,且组件可位于一台计算机上和/或分布在两台或多台计算机之间。
本发明可结合各种与垃圾邮件过滤有关的推论方案和/或技术。如本文中所用的,术语“推论”一般指从一组经由事件和/或数据捕捉的观察中推理或推断系统、环境、和/或用户的状态的过程。例如,推论可用于识别具体上下文或行为,或可生成状态的概率分布。推论可以是概率性的——即,基于对数据和事件的考虑计算感兴趣的状态的概率分布。推论也可指用于从一组事件和/或数据组成高级事件的技术。此类推论导致从一组所观察的事件和/或所存储的事件数据中构造新事件或行动,无论各事件是否在时间上紧密相关,也无论各事件和数据是来自一个还是数个事件和数据源。
应当理解,尽管贯穿此说明书大量使用术语消息,此类术语不限于电子邮件本身,而是可被恰当地改编以包括可分布在任何适当的通信体系结构上的任何形式的电子消息。例如,便于两人或多人之间的会议的会议应用程序(例如,交互式聊天程序,以及即时消息通信程序)也可利用本文所揭示的过滤的益处,因为讨厌的文本可在用户交换消息时被电子地散布到正常的聊天消息中,和/或作为开始消息、结束消息或以上所有消息被插入。在此特定应用程序中,为了捕捉非期望的内容(例如商业广告、推销、或广告)并将其标记为垃圾邮件,可将过滤器配置成自动过滤特定消息内容(文本和图像)。
现参考图1,示出根据本发明的垃圾消息检测系统100。系统100接收传入消息流102,可过滤该消息流以便于垃圾消息检测和移除。消息102被接收到过滤器控制组件104内,该组件可取决于根据依照本发明自适应方面确定的过滤标准,在第一过滤器106(例如种子过滤器)和第二过滤器108(例如,新过滤器)间路由消息。因此,如果确定第一过滤器106在检测垃圾消息时足够有效,将不会使用第二过滤器108,且过滤器控制104将继续将消息102路由到第一过滤器106。然而,如果确定第二过滤器108至少和第一过滤器106一样有效,过滤器控制104可决定将消息102路由到第二过滤器108。用于作出此类确定的标准在下文详细描述。最初使用时,过滤器系统100可被配置成预定的默认过滤器设置,从而消息102将被路由到第一过滤器106以供过滤(例如,常见于当第一过滤器106是随特定产品发货的显式训练的种子过滤器时)。
基于第一过滤器106的设置,将询问接收到第一过滤器106中的消息,以找出与垃圾数据相关联的垃圾信息。垃圾信息可包括,但不限于以下诸如源IP地址、发信人名字、发信人电子邮件地址、发信人域名、以及标识符字段中莫名其妙的字母数字串等的发信人信息(来自因发送垃圾邮件而出名的发信人);诸如“loan(租借)”、“sex(性)”、“rate(估价)”、“limited offer(有限出售)”、“buy now(现在购买)”等的常用于垃圾邮件中的消息文本词语和短语;诸如字体大小、字体颜色、特殊字符使用等的消息文本特征;以及弹出广告的嵌入链接。可至少部分地基于预定及动态确定的垃圾邮件标准来确定垃圾数据。还询问消息以找出“好”数据,诸如“weather(天气)”和“team(团队)”等通常不出现在垃圾邮件,或来自因只发送好邮件而出名的发信人或发信人IP的电子邮件中的单词。应当理解,如果最初产品在不带种子过滤器的情况下发货,没有任何确定的过滤标准,则所有消息未经标记地通过第一过滤器106进入用户收件箱112(亦指示第一过滤器的输出)。应当理解,收件箱112可以仅是驻留在各种位置(例如,服务器、大容量存储单元、客户计算机、分布式网络……)的数据存储。此外,应当理解,第一过滤器106和/或第二过滤器108可由多个用户/组件使用,且收件箱112可被分区以为各用户/组件单独存储消息。此外,系统100可使用多个次级过滤器108,从而对于特定任务使用各次级过滤器中最合适的一个。本发明的这些方面在下文详细讨论。
当用户审阅邮箱消息时,某些消息会被确定为垃圾邮件,而其它不会。这是部分地基于由用户例如通过按某个按钮,来显式地标记垃圾邮件或非垃圾邮件,以及经由通过与特定消息相关联的用户行动,隐式地标记消息。可基于例如以下用户行动或消息处理,来隐式地确定消息不是垃圾邮件消息被阅读且留在收件箱中;消息被阅读并被转发;消息被阅读并放在除垃圾文件夹以外的任何文件夹中;消息被回复;或者用户打开并编辑该消息。其它用户行动也可被定义成与非垃圾消息相关联。可基于例如一周时间未阅读消息,或者未阅读即将消息删除,来隐式地确定消息是垃圾邮件。从而系统100经由用户纠正组件114监视这些用户行动(或消息处理)。这些用户行动或消息处理可被预配置到用户纠正组件114中,从而当用户起初审阅消息并对其执行行动时,系统100可开始为第一过滤器106逐渐形成假肯定率和假否定率数据。实质上任何未预配置到用户纠正块114的用户行动(或消息处理)将自动允许“未知”消息未经标记地通到过滤器输出112,直到系统100自适应以针对此类消息类型。应当理解,本文中所用的术语“用户”旨在包括一个人、一群人、一个组件以及人和组件的组合。
当用户收件箱112中的消息被当作未标记的消息接收,但实际上是垃圾消息时,系统100将此作为假否定数据值处理。用户纠正组件114随即将此假否定信息反馈给过滤器控制组件104,作为用于确定第一过滤器106效率的数据值。另一方面,如果当消息实际不是垃圾消息时第一过滤器106将其标记为垃圾邮件,则系统100将此作为假肯定数据值处理。用户纠正组件114随即将此假肯定信息反馈给过滤器控制104,作为用于确定第一过滤器106的有效性的数据点。因而,当用户纠正用户收件箱112中收到的消息时,就为第一过滤器106逐渐形成了假否定和假肯定数据。
系统100判定对第二过滤器108是否存在阈值,从而其假肯定和假否定率低于(例如,在可接受概率内)第一过滤器106的假肯定和假否定率。假如这样的话,则系统100选择可接受的阈值之一。当假肯定率一样好,且假否定率较佳时,或当假否定率一样好,且假肯定率较佳时,系统也可选择第二过滤器。因而,本发明可判定对第二过滤器108是否存在阈值(及该阈值应为何值),该阈值在可接受概率内,保证第二过滤器提供关于垃圾邮件检测的相等或较佳效用,而不论特定用户的效用函数及用户是否确实纠正了第一过滤器106的错误。
基于由于用户对假肯定和假否定率的确认而对新训练的需求,系统100训练新(或第二)过滤器108。更具体地,系统100使用经由用户纠正方法确定的,以垃圾邮件和非垃圾邮件标签标记的数据。使用此数据,为第一(例如,现有或种子)过滤器106确定假肯定(例如,非垃圾消息被错误地标记为垃圾)率和假否定(例如,垃圾消息被错误地标记为非垃圾)率。同样的数据用于学习(或“训练”)新(例如,第二)过滤器108——该数据也用于根据阈值确定第二过滤器的假肯定和假否定率。因为评估数据和用于训练第二过滤器的数据是一样的,较佳地使用如以下详细讨论的交叉确认方法——交叉确认对本领域技术人员是公知的。如果确定第二组数据至少和第一组一样好,则启用第二过滤器108。控制组件104随即将所有传入消息路由到第二过滤器108,直到率比较过程确定应将过滤转移回目前有较佳过滤效用的第一过滤器106。
本发明一个特定方面依赖于两个前提。第一前提是第一验证(例如,用户纠正)不包含错误(例如,用户未将非垃圾消息当作垃圾删除)。在此前提下,数据标签尽管不总是正确的,但“至少”和由第一过滤器106所分配的标签“一样正确”。因而,如果根据此类标签,第二过滤器108具有不低于现有过滤器的效用,则第二过滤器108真正的期望效用不可能劣于第一过滤器106的效用。第二前提是期望较低的假肯定和假否定率。根据此类前提,如果第二过滤器108的两个差错率都不大于第一过滤器106的两个差错率,那么对于垃圾邮件检测,第二过滤器108至少和第一过滤器106一样好,而不管用户的特定效用函数如何。
第二过滤器108可能不总是和第一过滤器一样有效的原因之一是与第一过滤器106相比,第二过滤器基于较少的数据。第一过滤器106可以是具有从其它用户的数据生成的种子数据的“种子”过滤器。本质上,大多数(如果不是所有)自适应过滤器都带有种子过滤器发货,从而提供给用户能识别典型垃圾电子邮件消息的过滤器配置,而不会要求用户配置过滤器——这为缺乏经验的计算机用户提供了很好的“脱离困境”的体验。第二过滤器108可能不总是和第一过滤器106一样有效的另一个原因更为微妙。它取决于两个事实过滤器不是完美的,且可能未被校准。将依次讨论这些事实,然后将回到确定第二过滤器108是否较佳的问题上。
现参考图2,所示是关于捕获率(被正确标记的垃圾邮件的百分比,等于1减去假否定率)和假肯定率(被标记为垃圾邮件的非垃圾邮件的百分比)的性能折衷的图表。如本文所指出,并应为本领域技术人员所理解的,没有一个过滤器是完美的。因此在识别与捕获更多垃圾消息与偶然将非垃圾邮件消息误标记为垃圾邮件之间存在折衷。在称作接收者-操作者曲线(ROC)200的附图内描绘了此性能折衷(本文也称准确率)。该曲线上的每个点对应于一不同折衷。用户通过调整概率阈值来选择过滤器的“操作点”,或者该概率阈值可以是预设的。当消息是垃圾邮件(如过滤器所认为的)的概率p超过此阈值,则该消息被标记为垃圾邮件。因而,如果用户决定以准确率高的方式(例如,与被正确地标记的消息相比,假肯定的数量很低)操作,那么曲线200上的操作点离原点较近。例如,如果用户选择ROC200上的操作点A,则假肯定率大约为0.0007,且关于被正确地标记的消息的数量的对应y轴值大约为0.45。用户将有0.45/0.0007=643的四舍五入的过滤器准确率,即,大约每643个被正确地标记的消息中有1个假肯定消息。另一方面,如果操作点在点B,则计算出较低准确率在大约0.72/0.01=72,或者说大约每72个被正确标记的消息中有1个假肯定。
不同的用户将以决策论的语言,对于他们个人的唯一偏好集来不同地作出此类折衷,不同的人对于垃圾消息过滤有不同的效用函数。例如,一类用户可能不关心非垃圾消息的不正确标记,并且未能捕获N个垃圾消息。对于此类中的用户,可经由以下关系式定义对于垃圾邮件的最优概率阈值(p*)p*=N/(N+1)其中,N是消息数量,且N可在每类用户间变化。
因而,称此类中的用户有“p*效用函数”。有了这一理解,如果用户有p*效用函数,且如果第二过滤器被校准,那么可自动选择最优阈值——即,该阈值应被设为p*。另一类用户可能不希望超过他/她的X%的非垃圾电子邮件被标记为垃圾邮件。对于这些用户,最优阈值取决于第二过滤器108分配给消息的概率的分布。
第二个观点是可能可以被校准,也可能不能被校准。校准的过滤器有如下性质当它以概率p确定一组电子邮件消息是垃圾邮件时,那么那些消息中的p个将会是垃圾邮件。许多机器学习方法生成校准的过滤器,前提是用户严谨地纠正了现有过滤器的错误。如果用户仅仅有时(例如少于80%)纠正错误,则过滤器很可能未被校准——这些过滤器对于不正确的标签是已校准的,但对于正确的标签则是未校准的。本发明另一方面提供判定对第二过滤器108是否存在阈值(及该阈值应为何值)的手段,该阈值保证与第一过滤器相比,第二过滤器向用户提供相等或更好的效用,而不论用户的效用函数及用户是否严谨地纠正了现有过滤器106的错误。
现参考图3,所示是根据本发明一个方面的过程的流程图。尽管为解释简单起见,该方法被示意并描述为一系列动作,然而应当理解,本发明不受动作次序的限制,因为根据本发明,某些动作可按不同顺序发生,和/或与本文示出及描述的其它动作同时发生。例如,本领域技术人员将理解,方法能被替换地表示成诸如状态图中的一系列相互关联的状态或事件。并且,并非所有示出的行为都是实现根据本发明的方法所必须的。
该基本方法依赖于两个假定。一个假定是用户的纠正不包含错误(一个错误的例子是用户将非垃圾邮件的消息当作垃圾邮件删除)。在此类假定下,数据上的标签,尽管不总是正确的,但“至少”和由第一/种子过滤器所分配的标签“一样正确”。因而,如果根据这些标签,第二过滤器具有不低于现有过滤器的效用,则第二过滤器真正的期望效用不劣于第一过滤器的效用。第二假设是所有用户都更喜欢较低的假肯定和假否定率。在此假设下,如果第二过滤器的两个差错率都不高于第一过滤器的两个差错率,那么第二过滤器不劣于第一过滤器,而不管用户的特定效用函数如何。
在300,向第一和第二过滤器提供与其接口(例如,改变设置、及全面控制过滤器的设置和配置)的手段。在302,第一过滤器被配置成根据一个或多个过滤器设置来自动过滤传入消息。这些设置可包括由制造商提供的默认设置。一旦收到了经过滤的消息(例如,到收件箱中),则在304审阅这些消息,并判定(例如经由用户纠正方法)哪些非垃圾消息被错误地标记为垃圾邮件(例如,假肯定)及哪些垃圾消息未被标记为垃圾邮件(例如假否定)。在304,可通过隐式或显示地将假否定消息标记为垃圾邮件,以及移除假肯定消息的标签使之成为非垃圾邮件,来执行用户纠正功能。此类用户纠正功能通过确定其假肯定和假否定率数据,来为第一过滤器提供准确率。在308,根据第一过滤器106的用户纠正数据来训练第二过滤器。同样的数据随即被用于根据阈值确定第二过滤器的假肯定和假否定率,如310所示。在312,确定阈值。判定对第二过滤器是否存在阈值,从而相关联的假肯定和假否定率低于第一过滤器的假肯定和假否定率(在某一合理概率内)。即,如在314所示,确定第二过滤器的准确率(准确率SF)是否高于第一过滤器的准确率(准确率FF)。如果是,则选中该适当的阈值,并使用第二过滤器来过滤传入消息,如在316所示。如果否,该过程前进至318,在那里保留第一过滤器来执行传入消息的过滤。该过程按需动态地循环通过前述各个动作。
准确率分析过程可在每次用户纠正功能发生时发生,从而可基于阈值确定,在任何时候使用或停用第二过滤器。因为第一过滤器的评估数据和用于训练第二过滤器的数据是相同的,所以使用了交叉确认方法。即,对于每个用户纠正过程,数据被分割成k个存储桶(bucket)(k是整数),且对于每个存储桶,使用在另外k-1个存储桶中的数据来训练第二过滤器。随后对从该k-1个存储桶中选中的一个存储桶评估第二过滤器的性能(或准确率)。另外一种可能性是等待直到分别累积了N1个具有垃圾邮件标签的消息和N2个具有非垃圾邮件标签的消息(例如N1=N2=1000),然后每当累积N3个额外垃圾消息及N4个额外非垃圾邮件消息时(例如N3=N4=100)重新运行。另一个替换方法是基于日历时间来调度该过程。
如果有一个以上使第二过滤器不劣于第一过滤器的阈值,则对于选择哪些阈值来使用,存在若干替换方法。一个替换方法是在用户有p*效用函数的假设下,选择使用户期望效益最大化的阈值。另一个替换方法是选择具有最低假肯定率的阈值。又一个替换方法是选择符合条件阈值范围的中点。
谈到所测得的错误率的不确定性,令k1和k2分别为第一和第二过滤器的非垃圾邮件(或垃圾邮件)误标错误的数量。简单的统计分析指出,如果k1-k2≥(k1+k2)]]>
那么可以假定能够近似~x%地确定第二过滤器的错误率不劣于第一过滤器的错误率(例如,当f=2,x=97.5;当f=0,x=50)。保守地,如果k1或k2等于0,那么应在平方根(sqrt)项中使用为1的值。注意,x是保守调整——当x接近100,在使用第二过滤器前,第二过滤器优于第一过滤器的确定性应较高。此确定性(或不确定性)计算包括第一和第二过滤器间的之间的误差是独立的假设。避免此假设的一个方法是估算公共的误差数量,即,在独立假设下应有的误差数量。如果找到比此数量多K个的误差,则在上面计算中用(k1-k)和(k2-k)取代k1和k2。此外,随着训练数据中的消息数量增长,第二过滤器比第一过滤器更准确(在任何阈值)的可能性越来越大。上面的不确定性估算忽略了此类“先验知识”。熟悉贝叶斯概率/统计的本领域技术人员将意识到,存在将此先验知识结合到不确定性估算中的原则性方法。
在该基本方法的一个方面,设想第一过滤器将垃圾邮件消息标记为非垃圾邮件。此外,假设用户未纠正此错误,因而系统默认地确定此消息不是垃圾邮件。具有更准确的训练数据的第二过滤器可将此消息标记为垃圾邮件。因而,第一过滤器的假肯定率将被低估,而第二过滤器的假肯定率被高估。此效果被以下事实放大大多数垃圾电子邮件过滤器在许多垃圾消息被标记为未非垃圾邮件的阈值操作,从而保持假肯定率较低。
有若干种方法可组合使用,来解决该基本方法的此方面。第一种方法是假设用户有例如N=20的p*效用函数,并且只要可找到使第二过滤器不劣于第一过滤器的阈值就使用第二过滤器。此处,即使例如第二过滤器的假肯定率大于第一过滤器的假肯定率,也可使用第二过滤器。即,在此方法下,使用第二过滤器的可能性更大。
第二种方法是限制测试组,从而以高度确定性确知被标记为非垃圾邮件的消息不是垃圾邮件。例如,测试组仅包括通过用户选则“非垃圾邮件”按钮;来标记的消息、被阅读且未被删除的消息、被转发的消息、以及用户回复的消息。
第三种方法是系统可使用由已校准的过滤器(例如第一过滤器)生成的概率,来为第二过滤器生成更优的假肯定率估算。即,并非简单地对数据中具有非垃圾邮件标签的消息及来自第一过滤器的垃圾邮件标签计数,而是系统能够对每个此类消息是正常(非垃圾邮件)的概率(根据已校准过滤器)求和。此和将小于计数,且会是在用户彻底纠正所有消息情况下,对计数的更好估算。
在更简单的第四种方法中,监视用户用“非垃圾邮件”和“垃圾邮件”按钮来纠正标签的期望次数。此处,对于已知为已校准的过滤器(例如第一/种子过滤器)采用期望值。如果实际的纠正次数落到指望次数之下(绝对次数或百分比),那么系统不训练第二过滤器。
在实践中,用户界面可提供多个阈值,用户可从中选择一个。在此情况中,仅当新过滤器在用户选定的阈值处优于种子过滤器才使用新过滤器。然而,此外,期望新过滤器在其它阈值设置处也优于种子过滤器,尤其是哪些接近用户当前选择的那些设置。以下算法是帮助实现此方法的一个这样的方法。输入例如称为SliderHalfLife(SHL)的参数,它是有默认值0.25的实数。对于每个阈值,判定新过滤器是否和第一过滤器一样好,或优于第一过滤器。然后使用当前选中的阈值。然而,如果新过滤器在当前阈值设置处优于第一/种子过滤器,而且如下描述的TotalWeight值(w)大于或等于0,则进行切换。起初,TotalWeight=0。对于每个非当前的阈值设置\\基于其到当前设置的距离,向每一个分配权重d=abs[(IS-ICS)(IMAX-IMIN)]]]>d=距离IS=设置的索引ICS=当前设置的索引IMAX=最大设置的索引IMIN=最小设置的索引w=.5(d/SHL)如果新过滤器在此设置表现更好,那么将其权重加到TotalWeight;否则,从TotalWeight减去其权重。
注意,此算法仅判定新过滤器是否在每个阈值设置都较优。它并未虑及新过滤器比第一/种子过滤器优或劣多少。可用新与旧假否定率、假肯定率、假否定的数量和/或假肯定的数量的函数,来修改此算法以虑及进步或退步的程度。
现参考图4a,示出可向用户呈现用于本文所揭示的自适应垃圾邮件过滤器系统及用户信箱的基本配置的示例性用户界面400。界面400包括垃圾邮件页面(或窗口)401,以及菜单栏402,该菜单栏包括,但不限于,以下下拉菜单标题File(文件)、Edit(编辑)、View(视图)、Sign Out(退出)、及Help&Settings(帮助和设置)。窗口401还包括链接栏404,该链接栏便于向前和向后导航,以允许用户导航到其它页面、工具、以及界面400的功能,包括Home(主页)、Favorites(收藏夹)、Search(搜索)、Mail&More(邮件和更多)、Messenger(消息通信程序)、Entertainment(娱乐)、Money(财产)、Shopping(购物)、People&Chat(人和聊天)、Learning(学习)、及Photos(照片)。菜单栏406便于选择垃圾电子邮件配置窗口401的一个或多个配置窗口。如图所示,Settings(设置)子窗口408允许用户为垃圾电子邮件过滤选择多个基本配置。第一选项410允许用户启用垃圾电子邮件过滤。用户也可选择各种电子邮件保护的等级。例如,第二选项412允许用户选择仅捕捉最明显的垃圾邮件的默认(Default)过滤器设置。第三选项414允许用户选择更高级的过滤,从而更多垃圾电子邮件被捕获并丢弃。第四选项416允许用户只从可信方(例如在用户地址簿(Address Book)中及在安全列表(Safe List)上列出的各方)接收电子邮件。Related Settings(相关设置)区域418提供导航到那些列出区域的手段,那些区域包括Junk Mail Filter(垃圾邮件过滤器)、Safe List(安全列表)、Mailing List(邮件发送列表)、以及Block Sender List(阻塞发件人列表)。
现参考图4b,示出呈现用户信箱特征的用户界面400的用户信箱窗口420。该信箱窗口420包括菜单栏402,该菜单栏包括,但不限于,以下下拉菜单标题File、Edit、View、Sign out、及Help&Setting。信箱窗口420还包括链接栏404,该链接栏便于向前和向后导航,以允许用户导航到其它页面、工具、以及界面400的功能,包括Home、Favorites、Search、Mail&More、Messenger、Entertainment、Money、Shopping、People&Chat、Learning、及Photos。窗口420还包括电子邮件控制工具栏422,该工具栏包括以下用于允许用户创建新消息的Write Message(写消息)选项;用于删除消息的Delete(删除)选项;用于将消息标记为垃圾邮件的Junk(垃圾邮件)选项;用于回复消息的Reply(回复)选项;用于将消息移动到不同文件夹的Put in Folder(放入文件夹)选项;以及用于转发消息的转发图标。
窗口420还包括文件夹选择子窗口424,它向用户提供了选择显示Inbox(收件箱)、Trash Can(废件箱)、及Junk Mail(垃圾邮件)文件夹中的内容的选项。用户还可访问各文件夹(包括Stored Messages(储存的消息)、Outbox(发件箱)、Sent Messages(已发送消息)、Trash Can(废件箱)、Drafts(草稿)、Demo(演示)程序、及Old Junk Mail(旧垃圾邮件)文件夹)的内容。在Junk Mail(垃圾邮件)和Old Junk Mail(旧垃圾邮件)文件夹的每一个中的消息数量也被列在相应文件夹标题旁边。根据文件夹选择子窗口424中的文件夹选择,在消息列表子窗口426中,呈现了接收到的消息的清单。在消息预览子窗口428中,向用户呈现选中消息的一部分内容供预览。可修改窗口420以包括在用户偏好子窗口(未示出)中呈现的用户偏好信息。偏好子窗口可被包括在所示窗口420右边的一个部分中,如图4a所示。这包括,但不限于,天气信息、股票市场信息、最喜欢的网站链接、等等。
所示界面400不局限于所示出的,而是可包括其它可常规图形、图像、指导文本、菜单选项、等等,它们可被实施以进一步帮助用户选择过滤器及导航到界面的其它非电子邮件过滤器最高配置所需的页面。
现参考图5,所示是使用所揭示的过滤技术的体系结构的通用框图。提供网络500以便于电子邮件与一个或多个客户机502、504和506(也记为客户机1、客户机2、……、客户机N、)之间的通信。网络500可以是诸如因特网等全球通信网络(GCN)、或WAN(广域网)、LAN(局域网)、或任何其它网络体系结构。在此特定实现中,SMTP(简单邮件传输协议)网关服务器508连接到网络500,以向LAN510提供SMTP服务。操作上安置在LAN510上的电子邮件服务器512连接到网关508以控制和处理客户机502、504和506的传入及传出的电子邮件,其中客户机502、504和506也安置在LAN510上以至少访问其上提供的邮件服务。
客户机502包括控制客户机进程的中央处理单元(CPU)514——应当理解,CPU514可由多个处理器组成。CPU514执行关于提供在上文描述的一个或多个过滤功能中任何一个的指令。这些指令包括,但不限于已编码指令,它们至少执行上述基本方法的过滤方法、能与其结合使用的至少任何或所有方法、以及用户交互选择,这些方法用于解决处理用户进行用户纠正、使用假肯定和假否定率数据的不确定性的确定、阈值的确定、正确率的计算的失败。提供用户界面518以便于与CPU514和客户机操作系统的通信,从而用户能够交互以配置过滤器设置以及访问电子邮件。
客户机502还至少包括可根据上文所提供的过滤器描述操作的第一过滤器520(类似于第一过滤器106)及第二过滤器522(类似于第二过滤器108)。客户机502还包括电子邮件收件箱存储位置(或文件夹)524,该位置用于从第一过滤器520和第二过滤器522中的至少一个接收已过滤的电子邮件-预期被正确地标记的电子邮件的消息。可提供第二电子邮件存储位置(或文件夹)526,该位置用于容纳用户判定为垃圾邮件、并选择将其存储在其中的垃圾邮件,尽管这也可以是废件文件夹。如上所示,取决于是否用第二过滤器取代第一过滤器以提供对传入电子邮件的相等或更优的过滤,收件箱文件夹524可包括由第一过滤器520或第二过滤器522过滤的电子邮件。
一旦用户从电子邮件服务器512接收到电子邮件,用户随后将细读收件箱文件夹524的电子邮件,以阅读并确定经过滤的收件箱电子邮件消息的实际状态。如果垃圾电子邮件通过了第一过滤器520,用户随即将执行向系统指示该消息实际上是垃圾电子邮件的显式或隐式用户纠正功能。然后基于此用户纠正数据,来训练第一和第二过滤器(520和522)。如果确定第二过滤器522有比第一过滤器520更好的准确率,将使用它以代替第一过滤器520,来提供相等或更优的过滤。如在上文所指出的,如果第二过滤器522有和第一过滤器520实质上相等的准确率,它可被使用或不被使用。过滤器训练可以是用户根据若干如上所指出的预定标准来选择发生的。
现参考图6,示出具有一个或多个客户计算机602的系统600,该客户计算机便于多用户登录,并且根据本发明的过滤技术来过滤传入消息。客户机602包括多种登录能力,从而第一过滤器604和第二过滤器606分别为登录到计算机602的每一不同用户提供消息过滤。因而,提供了用户界面608,该用户界面将登录屏幕呈现为计算机操作系统启动进程的部分,或按照所要求的,在用户能访问他或她的传入消息之前使用相关联的用户概况。因而,当第一用户610(也记为用户1)选择访问消息时,第一用户610经由用户界面608的登录屏幕612,通过输入通常为用户名和用户密码形式的访问信息,来登录到客户计算机602。CPU514处理该访问信息,来允许第一用户经由消息通信应用程序(例如,邮件客户端)仅访问第一用户收件箱位置614(也记为用户1收件箱)和第一用户垃圾消息邮件位置616(也记为用户1垃圾消息)。
当CPU514接收到用户登录访问信息,CPU514访问第一用户偏好信息,以利用第一过滤器604和第二过滤器606,用于随后过滤可被下载到客户计算机602的传入消息。允许登录到该计算机的所有用户(用户1、用户2、……、用户N)的过滤器偏好信息可本地地存储在过滤器偏好表中。当第一用户登录到计算机602,或者使用相关联的第一用户概况时,过滤器偏好信息可由CPU514访问。因而,处理第一和第二过滤器(604和606)的第一用户610假否定和假肯定率数据,以使用第一过滤器604或第二过滤器606来过滤要下载的消息。如根据所揭示的本发明在上文所指出的,假否定和假肯定率数据是至少从用户纠正过程中导出的。一旦第一用户610下载了消息,可根据被错误地标记的消息来更新假否定和假肯定率数据。在另一个用户登录到计算机602之前的某个时间点,第一用户的已更新率数据随即被存回过滤器偏好表中以供将来参考。
当第二用户618登录,假否定和假肯定率可根据与其相关联的过滤偏好而改变。在第二用户618输入他或她的登录信息后,CPU514访问第二用户过滤器偏好信息,并依此使用第一过滤器604或第二过滤器606。计算机操作系统连同计算机消息通信应用程序,将第二用户618的消息通信服务限于只能访问第二用户收件箱620(也记为用户2收件箱)和第二用户垃圾消息位置622(也记为用户2垃圾消息)。处理第一和第二过滤器(604和606)的第二用户假否定和假肯定率数据,以使用第一过滤器604或第二过滤器606来过滤要下载的第二用户618的消息。如根据所揭示的本发明在上文指出的,假否定和假肯定率数据是至少从用户纠正过程中导出的。一旦第二用户618下载了消息,可根据被错误地标记的消息来更新假否定和假肯定率数据。
以类似于第一和第二用户(610和618)的操作的方式提供第N用户624(记为用户N)的操作。当使用该消息通信应用程序时,和所有其它用户一样,第N用户624被限于仅与第N用户624相关联的用户信息,因而只允许其访问用户N的收件箱626和用户N的垃圾消息位置628,再无其它收件箱(614和620)和垃圾消息位置(616和622)。
计算机602被恰当地配置成与LAN510上其它客户机通信,并通过使用客户机网络接口630来访问在其上安置的网络服务。因而提供了用于从SMTP(或消息)网关508接收消息以控制和处理客户机(602和632(也记为客户机N))以及用于经由LAN510传递消息到消息服务器512的任何其它有线或无线设备的传入和传出消息的消息服务器512。将客户机(602和632)部署成可与LAN510进行操作上的通信以至少访问其上提供的消息服务。SMTP网关508连接到GCN500,以在GCN500的网络设备与LAN510上的消息实体间提供兼容的SMTP消息服务。
应当理解,如上所述的率-数据平均可用于确定使用过滤器(604和606)的最佳平均设置。类似地,允许登录到计算机602的用户的最佳率数据也可用于为登录到其上的所有用户配置过滤器。
现参考图7,示出系统700,其中在消息服务器702上执行初始过滤,并且在一个或多个客户机上执行二次过滤。提供GCN500以便于消息(例如电子邮件)与一个或多个客户机(704、706和708)(也记为客户机1、客户机2、……、客户机N)之间的通信。SMTP网关服务器508连接到GCN500,以在GCN500的网络设备和LAN510的消息实体间提供兼容的消息服务。
消息服务器702操作上安置在LAN510上,且连接到网关508以控制和处理客户机704、706和708,及用于经由LAN510传递消息到消息服务器702的任何其它有线或无线设备的传入与传出的消息。客户机(704、706和708)(例如有线或无线设备)被安置成可与LAN510在操作上通信以至少访问其上提供的消息服务。
根据本发明的一个方面,消息服务器702通过使用第一过滤器710(类似于第一过滤器106)来执行初始过滤,客户机使用第二过滤器712(类似于第二过滤器108)来执行二次过滤。因而,当第一过滤器710处理消息以判定它们是垃圾邮件还是非垃圾消息时,传入消息从网关508接收到消息服务器702的传入消息缓冲区714中临时存储。缓冲区714可以是简单的FIFO(先进先出)体系结构,从而基于先来先服务来处理所有消息。然而应当理解,消息服务器702可根据标记的优先级来过滤处理被缓冲的消息。因而,缓冲区714被恰当地配置成提供消息优先级排序,从而由发送者以较高优先级标记的消息先于以较低优先级标记的其它消息从缓冲区714转发。优先级标记可基于与发件人优先级标签不相关的其它标准,包括但不限于消息的大小、消息发送的日期、消息是否有附件、附件的大小、消息已在缓冲区714中多久,等等。
为了逐渐形成第一过滤器710的假肯定和假否定率数据,管理员可采样第一过滤器710的输出,以确定多少正常消息被误标为垃圾邮件,及多少垃圾消息被误标为正常。如根据本发明一个方面在上文指出的,第一过滤器710的这个率数据随即被用作确定第二过滤器712的新假肯定和假否定率数据的基础。
在任一情况下。一旦第一过滤器710过滤了消息,就基于客户机目的地IP地址,将其从服务器702通过服务器网络接口716越过网络510路由到适当的客户机(例如,第一客户机704)。第一客户机704包括控制所有客户机进程的CPU514。CPU514与消息服务器702通信以获取第一过滤器710的假肯定和假否定率数据,并进行与第二过滤器712的假肯定和假否定率数据的比较,以确定何时应使用第二过滤器712。如果比较的结果是使得第二过滤器的率数据目前劣于第一过滤器710的率数据,则使用第二过滤器712,且CPU514与消息服务器702通信以允许目的地为第一客户机704的消息不被过滤地通过服务器702。
当第一客户机704的用户审阅所接收的消息并执行用户纠正时,第二过滤器712的新假肯定和假否定率数据被更新了。如果新的率数据变得劣于第一率数据,则第一过滤器710随即将被重新使用,以向第一客户机704提供过滤。为了对该特定客户机704确定何时在第一和第二过滤器(710和712)间来回切换过滤,CPU514继续进行率数据的比较。
CPU514执行可根据用于提供本文所描述的一种或多种过滤功能中的任何一种的指令来操作的算法。该算法包括,但不限于已编码指令,该指令至少执行上述基本方法的过滤方法、能与其结合使用至少任何或所有方法、以及用户交互选择,这些方法用于处理用户进行用户纠正、使用假肯定和假否定率数据的不确定性确定、阈值确定、正确率的计算的失败。提供用户界面518,以便于与CPU514和客户机操作系统的通信,从而用户可交互,以配置过滤器设置以及访问消息。
客户机502还至少包括可根据在上文所提供的过滤器描述操作的第二过滤器712。客户机502还包括消息收件箱存储位置(或文件夹)524,该位置用于从第一过滤器710和第二过滤器712中的至少一个接收已过滤的消息-预期被正确地标记的消息。可提供第二消息存储位置(或文件夹)526,该位置用于容纳用户判定为垃圾邮件、并选择将其存储在其中的垃圾邮件,尽管这也可以是废件文件夹。如上所示,取决于是否用第二过滤器712取代第一过滤器710以提供对到传入消息的相等或更优的过滤,收件箱文件夹524可包括由第一过滤器710或第二过滤器712过滤的消息。
如在上文中所指出的,一旦用户从消息服务器702下载了消息,用户随后将细读收件箱文件夹524的消息,以阅读并确定经过滤收件箱消息的实际状态。如果垃圾消息通过了第一过滤器710,用户随即将执行向系统指示该消息实际上是垃圾电子邮件的显式或隐式的用户纠正功能。然后基于此用户纠正数据,来训练第一和第二过滤器(710和712)。如果判定第二过滤器712有比第一过滤器710更好的准确率,将使用它以代替第一过滤器710,来提供相等或更优的过滤。如果第二过滤器712有和第一过滤器710实质上相等的准确率,它可被使用或不被使用。过滤器训练可以是用户根据如上文指出的若干预定标准来选择发生的。
应当理解,因为其它客户机(706和708)使用消息服务器702来过滤消息,因此各个客户(706和708)的新的率数据会影响第一过滤器710的过滤操作。因而各个过滤器(706和708)也和消息服务器702通信,以根据那些客户机(706和708)的第二过滤器的相应新的率数据来启用或禁用第一过滤器710。消息服务器702可包括涉及各个客户机过滤器要求的客户机偏好的过滤器偏好表。因而,向每个被缓冲的消息询问目的地IP地址,并根据存储在该过滤器表中的与该目的地地址相关联的过滤器偏好来处理它们。因而,尽管根据第一客户机704的率数据的比较结果,可能要求目的地为第一客户机704的广播垃圾消息由第一客户机704的第二过滤器712来处理,但是根据该处所获的率数据比较结果,可能也要求目的地为第二客户机706的同样的垃圾消息由消息服务器702的第一过滤器710来处理。
还应当理解,个别客户机(704、706和708)的个别新率数据可由服务器702同时接收和处理,以确定其平均值。此平均值随后可用于判定是单独地还是成组地来回切换使用各客户机的第一过滤器710或第二过滤器712。或者,各客户机(704、706和708)的最佳新率数据可由服务器702确定,并用于单独地或成组地在第一过滤器710和客户机过滤器712间来回切换。
现参考图8,示出使用本发明的过滤方面的大规模过滤系统800的替换实施例。在由系统范围邮件系统(例如,因特网服务供应商)大规模执行消息过滤的更健壮的实施例中,可使用多重过滤系统来过滤大量的传入消息。大量传入消息802被接收并定址到许多不同的用户目的地。消息802经由例如SMTP网关进入供应商的系统,随后被发送到系统消息路由组件806,以路由到各个过滤器系统808、810和812(也分别记为过滤器系统1、过滤器系统2、……、过滤器系统N)。
每个过滤器系统(808、810和812)包括路由控制组件、第一过滤器、第二过滤器及输出缓冲区。因而,过滤器系统808包括用于在第一系统过滤器816和第二系统过滤器818间路由消息的路由控制组件814。第一和第二过滤器(816和818)的输出被连到用于在消息被发送到用户收件箱路由组件822之前暂时存储消息的输出缓冲区820。用户收件箱路由组件822向每个从过滤器系统808的输出缓冲区820收到的消息询问用户目的地地址,并将消息路由到多个用户收件箱824(也记为收件箱1、收件箱2、……、收件箱N)中适当的用户收件箱。
系统消息路由组件806包括负载平衡性能,以根据过滤器系统(808、810和812)可用的带宽,在过滤器系统(808、810和812)间路由消息,以容纳消息处理。因而,如果第一过滤器系统808的传入消息队列(未示出,但为路由组件814的一部分)被备份,且无法容纳系统800所需的吞吐量,则该队列的状态信息从路由控制组件814反馈给系统路由组件806,使得传入消息802随后被路由到其它过滤器系统(810和812),直到系统814的传入队列能接收更多消息。剩余过滤器系统(810和812)中的每一个包括此传入队列反馈能力,从而系统路由组件806能处理所有可用过滤器系统-过滤器系统1、过滤器系统2、……、过滤器系统N间的消息负载处理。
现在将详细描述第一系统过滤器808的自适应过滤器能力。在此特定系统实现中,系统管理员将被分派通过提供关于过滤器准确率的反馈以提供经标记/未标记消息,来为系统800确定什么组成了垃圾邮件的任务。即,为了为相应系统(808、810和812)的每一个生成FN和FP信息,管理员执行用户纠正。由于大量传入消息,这可根据统计采样方法来执行,该采样方法数学地提供了所取的样本反映由相应过滤器系统(808、810和812)在判断什么是垃圾消息和非垃圾消息时执行的过滤的准确性的高度可能性。
此外,管理员可经由系统控制组件826,从缓冲区820中取消息的一个样本,并验证标记在该样本上的消息的准确性。系统控制组件826可以是与过滤器系统(808、810和812)互联以对其进行监视和控制的硬件和/或软件处理系统。任何被错误地标记的消息将用于建立第一过滤器816的假否定(FN)和假肯定(FP)率数据。此FN/FP率数据随后被用于第二过滤器818。如果第一过滤器816的率数据落在某阈值之下,可启用第二过滤器818以提供至少和第一过滤器816一样好的过滤。当管理员再次执行从缓冲区820采样的用户纠正,如果第二过滤器818的FN/FP数据劣于第一过滤器816的FN/FP,路由控制组件814将处理此第二过滤器818的FN/FP数据,并确定消息路由应被切换回第一过滤器816。
系统控制组件826连接到系统消息路由组件806以在之间交换数据,并提供管理员对其的管理。系统控制组件826还连接到剩余系统-过滤器系统1、过滤器系统2、……、过滤器系统N的输出缓冲区,以提供那些系统的采样能力。管理员还可经由系统控制组件826来访问用户收件箱路由组件822,来检查其操作。如在上文关于图1所述,过滤器的准确性可被扩展到多个过滤系统的准确性。第一系统808的FN/FP率数据随即可用于训练第二系统810和第三系统812的过滤器,以进一步增强整个系统800的过滤能力。类似地,可根据特定系统的FN/FP数据来执行负载控制。即,如果第一系统808的总FN/FP数据劣于第二系统810的FN/FP数据,则可向第二系统810路由比第一系统808更多的消息。
应当理解,过滤器系统(808、810和812)可以是单独的过滤器算法,其每一个运行在专用计算机、或计算机的组合上。或者,在存在硬件能力时,各算法可在单个计算机上一同运行,从而所有的过滤在单个健壮机器上执行。
现参考图9,所示是用于执行所揭示的体系结构的计算机的框图。为了向本发明的各个方面提供额外的环境,图9和以下讨论旨在提供其中可实现本发明的各方面的合适的计算环境900的简要的概述。尽管上文中在可在一个或多个计算机上运行的计算机可执行指令的通用环境中描述本发明,然而本领域技术人员将意识到,本发明也可结合其它程序模块实现和/或作为硬件与软件的组合来实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构、等等。此外,本领域技术人员将理解,本发明的方法可用其它计算机系统配置来实施,包括单处理器或多处理器计算机系统、微型计算机、大型计算机、以及个人计算机、手持计算设备、基于微处理器或可编程的消费者电子设备、等等,其每一个都可操作上耦合到一个或多个相关联的设备。本发明所示出的方面也可在分布式计算环境中实施,其中特定任务由通过通信网络连接的远程处理设备实施。在分布式计算环境中,程序模块可位于本地及远程记忆存储设备中。
再次参考图9,用于实现本发明各个方面的示例性环境900包括计算机902,计算机902包括处理单元904、系统存储器906和系统总线908。系统总线908将包括,但不限于系统存储器906的系统组件耦合到处理单元904。处理单元904可以是各种市场上可购买的处理器中的任何一种。双微处理器及其它多处理器体系结构也可用作处理单元904。
系统总线908可以是若干种总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用多种市场上可购买的总线体系结构中的任一种的局部总线。系统存储器包括只读存储器(ROM)910和随机存取存储器(RAM)912。包含诸如在启动时帮助在个人计算机902内部各元件间传递信息的基本例程的基本输入/输出系统(BIOS)储存在ROM910中。
计算机902还可包括硬盘驱动器914、磁盘驱动器916(例如,读或写可移动磁盘918)、及光盘驱动器920(读CD ROM盘922或者读或写其它光介质)。硬盘驱动器914、磁盘驱动器916和光盘驱动器920可分别由硬盘驱动接口924、磁盘驱动接口926及光盘驱动接口928连到系统总线908。这些驱动器及其相关联的计算机可读介质提供数据、数据结构、计算机可执行指令等的非易失性存储。对于计算机902,各驱动器和介质容纳合适的数字格式的广播编程的存储。尽管上文对计算机可读介质的描述指硬盘、可移动磁盘和CD,本领域技术人员应当理解,诸如zip驱动器、磁带盒、闪存卡、数字视频盘、盒式磁带等的其它类型的计算机可读介质也可用于该示例性操作环境中,并且任何此类介质可包含用于执行本发明各方法的计算机可执行指令。
许多程序模块可存储在这些驱动器和RAM912中,包括操作系统930、一个或多个应用程序932、其它程序模块934及程序数据936。应当理解,本发明可用各种市场上可购买的操作系统或其组合来实现。
用户可通过键盘938和诸如鼠标940等定位设备来将命令和信息输入到计算机902中。其它输入设备(未示出)可包括话筒、IR遥控器、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、等等。这些及其它输入设备常通过耦合到系统总线908的串行端口接口942连接到处理单元904,但也可由诸如并行端口、游戏端口、通用串行总线(USB)、IR接口等的其它接口连接。监视器944或其它类型的显示设备也经由诸如视频适配器946等的接口连到系统总线908。除了监视器944之外,计算机通常包括诸如扬声器、打印机等的其它外围输出设备(未示出)。
计算机902可用到诸如远程计算机948等的一个或多个远程计算机的逻辑连接在联网环境中运行。远程计算机948可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其它普通网络节点,且通常包括相对于个人计算机902所描述的许多或全部元件,尽管出于简明的目的,只示出了记忆存储设备950。所描绘的逻辑连接包括局域网(LAN)952及广域网(WAN)954。诸如此类的网络环境常见于办公室、企业范围计算机网络、内联网及因特网。
当用于LAN网络环境中时,计算机902通过网络接口或适配器956连到局域网952。当用于WAN网络环境中时,计算机902通常包括调制解调器958,或被连到LAN上的通信服务器,或有用于通过诸如因特网等广域网954建立通信的其它装置。调制解调器958可以是内置或外置的,它通过串行端口接口942连到系统总线908。在联网环境中,相对于个人计算机902所描述的程序模块或其部分可储存在远程记忆存储设备950中。应当理解,示出的网络连接是示例性的,也可使用在计算机间建立通信链路的其它装置。
根据本发明的一个方面,过滤器体系结构自适应到使用该过滤的系统的特定用户所期望的过滤程度。然而,应当理解,此“自适应”方面可以从本地用户系统环境向后扩展到该系统销售商的制造过程,其中可选择用于特定用户类的过滤程度以在该厂生产销售的系统中实现。例如,如果购买者决定第一批购买的系统要提供给不应需要访问任何垃圾邮件的用户,则对于这批系统,在厂的默认设置可设置为高,而给第二类用户的第二批系统可被配置成较低设置,以允许审阅更多垃圾邮件。在任一情形中,可以本地启用本发明的自适应特性,以允许任何用户类的个别用户然后调整过滤的程度,或者如果被禁用,可根本防止变更默认设置。还应当理解,行使可比较访问权限以配置用所揭示的过滤器体系结构适当地配置的一个或多个系统的网络管理员也可在本地实现这一类配置。
上文所描述的包括本发明的各个示例。当然,不可能为描述本发明的目的而描述组件或方法的每个可想到的组合,但本领域的普通技术人员会意识到,本发明的许多其它组合与变换是可能的。因此,本发明旨在包括落入所附权利要求书的范畴内的所有此类改变、修改与变体。并且,在详细描述或权利要求书中使用术语“包括”的意义上,此类术语意图如术语“包含”那样为包含性的,如“包含”在权利要求书中用作过渡词所解释的。
权利要求
1.一种数据过滤系统,其特征在于,包含用于过滤消息的第一过滤器,所述第一过滤器有与其相关联的假肯定率和假否定率;以及用于过滤消息的第二过滤器,所述第二过滤器根据所述第一过滤器的假肯定率和假否定率进行评估,使用用于确定所述第一过滤器的假肯定率和假否定率的数据来根据阈值确定与所述第二过滤器相关联的新假肯定率和新假否定率,其中,如果对第二过滤器存在阈值,使得所述新假肯定率和新假否定率被一同认为优于所述第一过滤器的假肯定和假否定率,则使用所述第二过滤器以取代所述第一过滤器。
2.如权利要求1所述的系统,其特征在于,所述假肯定率和假否定率是根据经由用户纠正过程的使用被标记为垃圾和非垃圾的消息来确定的。
3.如权利要求2所述的系统,其特征在于,所述用户纠正过程包括覆盖消息的初始分类,所述初始分类是由所述第一过滤器在一收到该消息时就自动执行的。
4.如权利要求1所述的系统,其特征在于,所述假肯定率和假否定率是从各消息中的至少一个的内容中导出的。
5.如权利要求1所述的系统,其特征在于,所述假肯定率和假否定率是从其它用户的电子邮件消息中导出的。
6.如权利要求1所述的系统,其特征在于,所述第二过滤器是当所述新假肯定率劣于所述第一过滤器的假肯定率时使用的。
7.如权利要求1所述的系统,其特征在于,所述假肯定率和假否定率是在预定数量的垃圾和非垃圾消息被标记,以及预定时间已发生两者的至少一种之后确定的。
8.如权利要求1所述的系统,其特征在于,所述阈值是从多个所生成的阈值中选出的,所述各阈值是通过选择符合条件的阈值的平均阈值、具有最低假肯定率的阈值、及使基于p*效用函数的用户期望效益最大化的阈值中的至少一个来确定的。
9.如权利要求1所述的系统,其特征在于,所述阈值是从多个阈值中选出的,仅当在该阈值处,所述新假肯定率和新假否定率优于所述第一过滤器的假肯定率和假否定率时,使用所述第二过滤器。
10.如权利要求1所述的系统,其特征在于,还包含多个次级过滤器,所述多个次级过滤器组成了所述第二过滤器,如果对于至少一个次级过滤器存在阈值,使得所述新假否定率和假肯定率被一同认为优于所述第一过滤器的假肯定和假否定率,则所述系统使用所述至少一个次级过滤器以取代所述第一过滤器。
11.如权利要求10所述的系统,其特征在于,所述次级过滤器包含M个过滤器(M是整数),所述系统为一特定消息选择过滤器M1以取代所述第一过滤器,为另一消息选择过滤器M2以取代所述第一过滤器。
12.一种计算机可读介质,其上存储有实现权利要求1所述的系统的计算机可执行组件。
13.一种包含权利要求1所述的系统的计算机。
14.一种包含权利要求1所述的系统的网络。
15.一种包含权利要求1所述的系统的便携式计算设备。
16.如权利要求15所述的设备,其特征在于,它是下列中的一个个人数字助理、电话机或膝上计算机。
17.一种数据过滤器,其特征在于,包含用于过滤消息的第一过滤器,所述第一过滤器具有与其相关联的第一准确性数据;以及用于过滤消息的第二过滤器,所述第二过滤器具有与其相关联的第二准确性数据,所述第二过滤器用所述第一准确性数据来评估,使用用于确定所述第一准确性数据的数据来根据阈值确定所述第二准确性数据,其中,如果对所述第二过滤器存在阈值,使得所述第二准确性数据被认为优于所述第一准确性数据,则使用所述第二过滤器。
18.如权利要求17所述的过滤器,其特征在于,以结合所述第一过滤器,和取代所述第一过滤器中至少一种形式来使用所述第二过滤器。
19.如权利要求17所述的过滤器,其特征在于,当所述第二准确率至少和所述第一准确率相同时,使用所述第二过滤器。
20.如权利要求17所述的过滤器,其特征在于,所述第一准确性数据和所述第二准确性数据中至少一项包含一假肯定率和一假否定率。
21.如权利要求17所述的过滤器,其特征在于,所述第一准确性数据和所述第二准确性数据是基于消息文本和消息内容中的至少一个来确定的。
22.如权利要求17所述的过滤器,其特征在于,所述第一过滤器是从处理其它用户电子邮件数据中导出的种子过滤器。
23.如权利要求17所述的过滤器,其特征在于,所述第一准确性数据是根据一用户纠正过程来确定的,在该过程中用户审阅数据,所述数据是消息,并将该消息标记为垃圾消息和非垃圾消息中的一项。
24.如权利要求23所述的过滤器,其特征在于,所述用户纠正过程包括覆盖消息的初始分类,所述初始分类是在该消息被接收时由所述第一过滤器自动执行的。
25.如权利要求17所述的过滤器,其特征在于,当基于p*效用函数,用于使用所述第二过滤器的阈值至少和所述第一过滤器一样有效时,使用所述第二过滤器,其中N至少是20。
26.如权利要求17所述的过滤器,其特征在于,所述第一准确性数据是根据已知具有正确的高度确定性的一组预定数据来确定的。
27.如权利要求26所述的过滤器,其特征在于,所述一组预定的数据包括由用户标记为非垃圾消息的消息、由用户阅读并删除的消息、由用户转发的消息、及由用户回复的消息中至少一个。
28.如权利要求17所述的过滤器,其特征在于,所述第一准确性数据是由从已校准过滤器接收的概率值来确定的,所述概率值用于估算所述第一准确性数据的假肯定率。
29.如权利要求17所述的过滤器,其特征在于,所述第一准确性数据用于生成期望值。
30.如权利要求29所述的过滤器,其特征在于,仅当用户纠正的实际次数至少和期望值一样时,使用所述第二过滤器。
31.如权利要求17所述的过滤器,其特征在于,所述阈值是从多个阈值中选出的,仅当在该阈值处,所述第二准确性数据优于所述第一准确性数据时,使用所述新过滤器。
32.一种便于数据过滤的方法,其特征在于,包含确定与种子过滤器相关联的假肯定率和假否定率;使用与所述种子过滤器相关联的种子数据来训练新过滤器,所述种子数据用于根据阈值来确定所述新过滤器的新假肯定率和新假否定率;以及如果对所述新过滤器存在阈值,使得所述新假肯定和假否定率被一同认为优于所述种子过滤器的假肯定和假否定率,则使用所述新过滤器以取代所述种子过滤器。
33.如权利要求32所述的方法,其特征在于,基于经由用户纠正过程的使用将消息标记为垃圾和非垃圾,来部分地生成所述种子数据。
34.如权利要求32所述的方法,其特征在于,所述用户纠正过程包括覆盖消息的初始分类,所述初始分类是由接收该消息的种子过滤器自动执行的。
35.如权利要求32所述的方法,其特征在于,还包含从电子邮件消息的内容中导出所述种子数据。
36.如权利要求32所述的方法,其特征在于,还包含从其它用户的电子邮件消息中导出所述种子数据。
37.如权利要求32所述的方法,其特征在于,还包含当所述新假肯定率劣于所述种子过滤器的假肯定率时,使用所述新过滤器。
38.如权利要求32所述的方法,其特征在于,还包含在预定数量的垃圾和非垃圾消息被标记,及预定时间已发生两者中的至少一个之后,确定所述假肯定率和假否定率。
39.如权利要求32所述的方法,其特征在于,如果在当前阈值设置,所述新假肯定和新假否定率被一同认为优于所述种子过滤器的假肯定和假否定率,且一加权值至少为0时,使用所述新过滤器。
40.如权利要求39所述的方法,其特征在于,当所述新过滤器在当前阈值设置的性能优于在非当前阈值设置的性能时,增加所述加权值,其中,非当前阈值设置是不同于当前阈值的阈值,并且当所述新过滤器的性能在当前阈值设置劣于在非当前阈值设置时,减少加权值。
41.一种过滤数据的方法,其特征在于,包含至少接收第一过滤器和第二过滤器;确定所述第一过滤器的第一准确性数据;用所述第一准确性数据训练所述第二过滤器;根据阈值确定所述第二过滤器的第二准确性数据;以及当达到预定阈值时使用所述第二过滤器。
42.如权利要求41所述的方法,其特征在于,以结合所述第一过滤器,以及取代所述第一过滤器中的至少一种形式来使用所述第二过滤器。
43.如权利要求41所述的方法,其特征在于,当所述第二准确率至少和所述第一准确率相同时,使用所述第二过滤器。
44.如权利要求41所述的方法,其特征在于,所述第一准确性数据和所述第二准确性数据中的至少一项包含一假肯定率和一假否定率。
45.如权利要求41所述的方法,其特征在于,所述第一准确性数据和所述第二准确性数据是基于电子邮件文本和电子邮件内容中的至少一个来确定的。
46.如权利要求41所述的方法,其特征在于,所述第一过滤器是从处理其它用户电子邮件数据中导出的种子过滤器。
47.如权利要求41所述的方法,其特征在于,所述第一准确性数据是根据用户纠正过程来确定的,在该过程中用户审阅数据,所述数据是消息,并将该消息标记为垃圾消息和非垃圾消息中的一项。
48.如权利要求47所述的方法,其特征在于,所述用户纠正过程包括覆盖消息的初始分类,所述初始分类是在该电子邮件消息被接收时由所述第一过滤器自动执行的。
49.如权利要求41所述的方法,其特征在于,还包含,当基于p*效用函数用于生成所述第二过滤器的阈值至少和所述第一过滤器一样有效时,使用所述第二过滤器,其中N至少是20。
50.如权利要求41所述的方法,其特征在于,所述第一准确性数据是根据已知具有正确的高度确定性的一组预定数据来确定的。
51.如权利要求50所述的方法,其特征在于,所述一组预定数据包括由用户标记为非垃圾消息的消息、由用户阅读并删除的消息、由用户转发的消息、及由用户回复的消息中至少一个。
52.如权利要求41所述的方法,其特征在于,所述第一准确性数据是由从已校准过滤器接收的概率值来确定的,所述概率值用于估算所述第一准确性数据的假肯定率。
53.如权利要求41所述的方法,其特征在于,还包含基于所述第一准确性数据生成期望值。
54.如权利要求55所述的方法,其特征在于,仅当用户纠正的实际次数至少和期望值一样时,使用所述第二过滤器。
55.一种便于数据过滤的图形用户界面,其特征在于,包含适用于与配置系统通信以配置过滤器的过滤器界面;所述过滤器界面的至少一个输入,用于接收用于配置所述过滤器的过滤器配置信息;以及所述过滤器界面的至少一个输出,用于将所述过滤器配置信息提交给所述配置系统用于生成。
56.如权利要求55所述的界面,其特征在于,可用于提交所述过滤器配置信息用于处理,以生成更新的消息过滤器。
57.如权利要求55所述的界面,其特征在于,可用于提供多个用户可选择过滤器级别,包括默认、增强和专有中的至少一项。
58.如权利要求55所述的界面,其特征在于,还包含便于将消息标记为垃圾的用户信箱界面。
59.如权利要求58所述的界面,其特征在于,所述用户信箱界面便于访问垃圾邮件文件夹和旧垃圾邮件文件夹中的至少一个。
60.一种具有用于配置消息过滤器的计算机可执行指令的计算机可读介质,其特征在于,包含用于过滤消息的第一过滤器,所述第一过滤器有与其相关联的假肯定率和假否定率;以及用于过滤消息的第二过滤器,所述第二过滤器根据所述第一过滤器的假肯定率和假否定率进行评估,使用用于确定所述第一过滤器的假肯定率和假否定率的数据来根据阈值确定所述第二过滤器的新假肯定率和新假否定率,其中,如果对第二过滤器存在阈值,使得所述新假肯定率和新假否定率被一同认为优于所述第一过滤器的假肯定和假否定率,那么使用所述第二过滤器以取代所述第一过滤器。
61.如权利要求60所述的计算机可读介质,其特征在于,所述假肯定率和假否定率是根据用户纠正过程来确定的,在该过程中,用户审阅数据,所述数据是电子邮件消息,并将该电子邮件消息标记为垃圾消息和非垃圾消息中的一个。
62.如权利要求60所述的计算机可读介质,其特征在于,当所述第二准确率至少和所述第一准确率一样时,使用所述第二过滤器。
63.一种数据过滤系统,其特征在于,包含用于接收消息的装置;用于过滤消息的第一装置,所述用于过滤的第一装置有与其相关联的假肯定率和假否定率;以及用于过滤消息的新装置,所述用于过滤的新装置是根据所述用于过滤的第一装置的假肯定率和假否定率来训练的,使用用于确定所述第一过滤器的假肯定率和假否定率的数据来根据阈值确定与所述新过滤装置相关联的新假肯定率和新假否定率,其中,如果对所述新过滤装置存在阈值,使得所述新假肯定率和新假否定率被一同认为优于所述第一过滤装置的假肯定和假否定率,则使用所述新过滤装置。
全文摘要
本发明涉及一种用于过滤消息的系统——该系统包括一种子过滤器,它具有与其相关联的假肯定率和假否定率。还提供用于过滤消息的新过滤器,该新过滤器是根据种子过滤器的假肯定率和假否定率来评估的,使用用于确定种子过滤器假肯定率和假否定率的数据,来根据阈值确定新过滤器的新假肯定率和新假否定率。如果对该新过滤器存在阈值,使得新假肯定率和新假否定率被一同认为优于种子过滤器的假肯定和假否定率,则使用该新过滤器。
文档编号H04L12/58GK1742266SQ200380109194
公开日2006年3月1日 申请日期2003年12月31日 优先权日2003年2月25日
发明者R·L·朗特瓦特, J·T·古德曼, D·E·黑克尔曼, J·C·普拉特, C·M·卡迪厄 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1