动态消息过滤的制作方法

文档序号:7608392阅读:235来源:国知局
专利名称:动态消息过滤的制作方法
背景技术
1.发明领域本发明涉及动态消息过滤,诸如响应于其内容而过滤传入的消息;在一个实施例中,响应于动态过滤的结果,可投递消息或采取其它行动。
2.相关技术在计算机通信网络中,为诸如通讯、发布信息和响应请求等目的在用户中间发送和接收消息是很常见的。实现此目的的一种方法是电子邮件,也称email。本领域中出现的一个问题是一些消息是人们不想要的。此外,广告商和其它消息发送者收集相对大量的电子邮件地址,并向在那些电子邮件地址的接收者批量地发送未经请求的广告也变得很常见。当此类未经请求的批量电子邮件消息的数量相对较大时,接收者可能要花大量时间和尽力来将它们删除。还有一种可能性是接收者可能会因为积聚在他们的电子邮件收件箱中相对大量的非重要消息而错过了相对重要的消息。此类未经请求的批量电子邮件消息常用通俗词语称为“垃圾消息”,而此类消息的发送者常被称为“垃圾消息发送者”。
检测垃圾消息的第一已知方法包括所谓的“白名单”和“黑名单”,其中每个消息的发送者被过滤器标识为已知为“好的”(不是垃圾消息发送者的发送者)或是“坏的”(已知是垃圾消息发送者的发送者)。尽管这些方法一般达到了过滤消息的目的,但是它们易受需要用户来管理白名单和黑名单这一缺点、以及垃圾消息发送者常常选择新的、独特的发送地址来发送新的垃圾消息这一深层缺点的影响。
检测垃圾消息的第二已知方法包括试图从消息的内容来评估它是否是垃圾消息。已知的评估技术包括(a)搜索消息以寻找通常指示垃圾消息的已知关键词,诸如标识垃圾消息发送者普遍推销的已知产品的词语等,以及(b)通过将此类“坏”关键词的个数与诸如相对不太可能在垃圾消息中使用的可能的“好”关键词相比较来评估消息。后一种方法的一个例子是Paul Graham的“A Plan for Spam”(一种垃圾消息方案)提出、并由“Mozilla”电子邮件客户机的一些实现执行的贝叶斯过滤器。尽管这些方法一般达到了过滤消息的目的,但是它们易受用户必需训练该实现来识别“坏”关键词和“好”关键词(尤其对于用户通常接收的类型的消息)的缺点、以及垃圾消息发送者常常选择新的、独特的要推销的产品或是用来标识它们的词语(常常是拼写错误的)这一深层的缺点的影响。
由此,提供一种动态消息过滤的改良技术将会是有利的。
发明概述本发明提供一种能够动态过滤传入消息的方法和系统,其效果是将那些消息分类为以下三个类别中的至少一个好的消息、批量期刊及垃圾消息。中间类别“批量期刊”是为显然不是针对个体的接收者、但接收者仍然可能想要查看的消息保留的,诸如涉及更新用户已在使用的产品的信息等,或是涉及用户明确关注的产品或服务的信息。
在第一方面,该系统包括标识引擎,它基于度量所得的每个消息的意图来将消息分类。在一个实施例中,该引擎包括正则表达式识别器和经预先训练来将消息分类的一组人工神经网络。正则表达式识别器适用于检测拼写错误的词语、由本该是无害的词语组成的貌似垃圾消息短语(诸如“MAKE MONEY FAST”(快速赚钱))、以及垃圾消息发送者规避通过已知通常指示垃圾消息的关键词的检测而进行的其它常见的尝试。人工神经网络将消息分成“貌似好邮件”和“貌似垃圾消息”,并且使用该信息在更加详细和更高的辨别等级进行操作以区分好的消息、批量期刊及垃圾消息。起初被视为“貌似好邮件”的消息可能最终会被标识为好的消息或是批量期刊。类似地,起初被视为“貌似垃圾消息”的消息可能最终会被标识为批量期刊或是垃圾消息。这个方面解决了确定中的模糊性,并通过将被错误地标识为垃圾消息的邮件中相当大量的一部分标识为用户认为有害性较低的批量期刊来减少被错误地标记为垃圾消息的邮件的数量。
在第二方面,该系统包括动态的白名单和黑名单,当来自这些发送地址的消息数指示该发送者貌似好的发送者或是貌似垃圾消息发送者时,那些发送地址被收集到这些名单中。在一个实施例中,至少某个阈值数(较佳的是四个)的消息作为好的消息通过的任何发送者被自动添加到已知的好的发送者的白名单中,从而无需对来自那些发送者的消息进行像对来自其它发送者的消息那样彻底的检查。
在第三方面,该系统包括检查人工神经网络的输入的一组正则表达式,在一个实施例中,这组正则表达式是在安装之前选择的,其效果是这些人工神经网络能被更迅速地训练,并更迅速和准确地响应用户所接收的典型电子邮件的变化。在一个实施例中,使用遗传算法从可能使用的大约70,000个最常见的英文单词和短语中选择2,000个最有用的正则表达式(标识单词或短语)的子集。这还有一个效果是能够把人工神经网络做得更小(即,带较少的输入节点和较少的隐藏节点),并能在相对较少的主存储器中直接执行这些人工神经网络,其结果是该执行相对更快。
本发明并不限于电子邮件消息,而是还可适用于其它类型的消息或数据,诸如网页或网页高速缓存、“弹出”广告和网页Java脚本、“即时消息”、使用HTTP隧穿的消息协议等,并且适用于其它类型的过滤,诸如将电子邮件自动路由到适当的接收者,为查看(或为转发到寻呼机或无线电子邮件收件箱)目的而进行优先级自动区分,将消息分组自动收集到消息摘要中,为次级查看或法律责任目的而标记消息,以及自动检测传出的消息是否有病毒内容等。
附图简述

图1示出用于动态消息过滤的一般化系统的框图。
图2示出在部署在防火墙之后的实施例中的用于动态消息过滤的系统的框图。
图3示出在部署为服务器的实施例中的用于动态消息过滤的系统的框图。
图4示出标识引擎的实施例的框图。
图5示出动态消息过滤的方法的流程图。
优选实施例详述在本文的描述中,将描述本发明的优选的实施例,它包括优选的过程步骤和数据结构。在熟读此申请后,本领域技术人员将会认识到,可使用没有具体描述的各种其它技术来实现本发明的实施例,而无需过多的试验或是进一步的发明,并且这些其它技术将落入本发明的范围和精神之内。
词汇以下这些术语每一个的一般意义都是旨在示例而绝不是限制。
·术语“email(电子邮件)”、“消息”及短语“电子邮件”和“电子消息”一般是描述信息从发送者被携带(或试图被携带)到接收者的任何技术,无论该技术是异步的还是同步的,是电路交换的还是分组交换的,是人类可读的还是不可读的,预期目标是个体接收者还是非个体接收者,或者是广播还是组播还是单播还是非上述方式。如本文中所使用的,术语“消息”目标宽泛。如本文中所描述的,没有特定要求要消息必须是纯文本或是原文本。
·短语“人们不想要的电子邮件”、“人们不想要的消息”和术语“垃圾消息”一般是描述并非为其实际或潜在的接收者明确想要的、或对他们而言是唐突的、或是浪费他们时间的任何消息。如本文中所使用的,术语“垃圾消息”目标宽泛,尽管它可能通常被应用于未经请求的、成批量发送的、并且常常涉及广告的消息。
·短语“批量期刊”在被应用于消息时,一般是描述显然不是针对个体的接收者、但接收者仍然可能想要查看的消息,诸如涉及用户已在使用的产品的更新的信息等,或是涉及用户明确关注的产品或服务的信息。
·短语“相对重要的消息”一般是描述被认为不是“垃圾消息”、也被认为不是诸如接收者所关注的期刊或广告等合乎需要的批量消息的任何消息。这样一来的效果是本发明提供一种能够动态过滤传入的消息的方法和系统,其作用是将那些消息分类到以下至少三个类别中的一个好的消息、批量期刊和垃圾消息。前者是相对重要的消息,后者是人们相对不想要的消息,而中间(批量期刊)是可能符合或可能不合用户需要的消息。
·术语“阻塞”和“过滤”在应用于消息时,一般是描述标记那些消息以便于用户部分采取行动的任何技术,诸如用该消息是否是垃圾消息的评估来标记它们,响应于该评估采取行动,或响应于该评估将那些消息排序或区分优先级。例如,决非旨在限制,响应于该评估而“采取行动”可包括将部分或整个消息转发给无线接收者,将消息复制到更加持久化的日志中,将消息重新分发到另一个用户,或是向反垃圾消息强制实施机制(诸如垃圾消息发送者的ISP、垃圾消息发送者发送地址的公用黑名单、或是政府代理机构等)报告消息的发送者。
·短语“假肯定”在应用于消息时,一般是描述被误标识为不是相对重要的消息而实际上是相对重要的消息的任何消息。
本领域普通技术人员在购买此申请后将会清楚本发明其它及进一步的应用,包括这些术语和概念的扩展。这些其它和进一步的应用是本发明的范围和精神的一部分,并且本领域普通技术人员无需进一步的发明或是过多的试验即能搞清楚。
本发明的范围和精神不局限于任何这些定义,或是其中所提及的特定例子,而是旨在包括这些及其它术语所包含的最为一般化的概念。
一般化的系统单元图1示出用于动态消息过滤的一般化的系统的框图。
在本发明的实施例的一般化概念中,系统100被耦合到外界网络110,并包括装置级120、服务器级130和客户机级140。
外界网络110可包括用于发送或接收包括诸如电子邮件等传入的邮件话务111及其它消息在内的消息的任何技术。在一个实施例中,外部网络110包括因特网,诸如耦合到因特网主干网的ISP等。但是,在本发明的上下文中,没有特定要求要外界网络110涉及任何特定类型的通信系统。在替换实施例中,外界网络110可包括内联网、外联网、VPN、ATM网络、诸如PSTN等专用或公用交换网络、或其某种组合或联合。
在一个实施例中,装置级120包括公司网络的入口点125,它可能涉及防火墙、路由器或网关路由器、或是诸如VPN(虚拟专用网络)等部署在更广泛的通信网络内的软件构造。装置级120包括耦合到公司网络的入口点,并还耦合到公司网络的其余部分的垃圾消息过滤器121。例如,决非旨在限制,垃圾消息过滤器121可在第一端口123被耦合到防火墙,并在第二端口124被耦合到公司网络(诸如包括LAN、WAN、VLAN、VPN等的网络)。在一个实施例中,垃圾消息过滤器121包括至少一些存储122(诸如数据库或其它存储等),在该存储中垃圾消息过滤器121可维护被垃圾消息过滤器121阻塞、保持或扣留的任何垃圾邮件(垃圾消息)。
在一个实施例中,服务器级130包括一组服务器单元。例如,决非旨在限制,服务器级130可包括以下各项中的至少一个邮件服务器、网络服务器、数据库服务器、连接网络的存储服务器、或是打印服务器。在一个实施例中,服务器级130包括至少一个邮件服务器131,它在第一端口132处被耦合到垃圾消息服务器121,并在第二端口133处被耦合到客户机级140。例如,决非旨在限制,邮件服务器131可被耦合到一组工作站,用户在这组工作站接收和操纵电子邮件消息。
在一个实施例中,客户机级140包括一组客户机设备。例如,决非旨在限制,客户机级140可包括一组工作站、打印机、无线通信设备、或诸如“Blackberry”或“Palm Pilot”设备或PDA(个人数字助理)或个人组织器等手持式设备。在一个实施例中,客户机级140包括至少一个接收者邮箱141。接收者邮箱141包括至少两个区域,“好的消息”邮箱部分142和“批量期刊”邮箱部分143。
如下文所描述的,垃圾消息过滤器121从外界网络110接收至少一些传入的邮件话务111,并将来自该传入邮件话务111的消息分类到一组类中。在一个实施例中,这组类包括“好的消息”、“批量期刊”和“垃圾电子邮件”。垃圾消息过滤器121将在装置级120被分类为垃圾电子邮件的那些消息保留在存储122中,而允许被分类为好的消息或是批量期刊的那些消息(已被适当地标记)被转发到服务器级130。在服务器级130,邮件服务器131接收被适当地标记的好的消息或是批量期刊,将好的消息投递到“好的消息”邮箱部分142,并将批量期刊投递到“批量期刊”邮箱部分143。
系统单元(在防火墙之后)图2示出部署在防火墙后的实施例中的用于动态消息过滤的系统的框图。
系统200的实施例包括外界网络210(类似于图1的外界网络110)、防火墙220(类似于关于图1的装置级120所描述的防火墙、路由器或网关路由器)、邮件服务器230(类似于图1的邮件服务器131)、管理员网络客户机241、终端用户网络客户机242、以及垃圾消息过滤器250(类似于图1的垃圾消息过滤器121)。
类似于图1的外界网络110,外界网络210可包括用于发送或接收消息的任何技术。在一个实施例中,外界网络210包括因特网,诸如被耦合到因特网主干网的ISP等。但是,在本发明的上下文中,没有特定要求要外界网络210涉及任何特定类型的通信系统。在替换实施例中,外界网络210可包括内联网、外联网、VPN、ATM网络、诸如PSTN等专用或公用交换网络、或其某种组合或联合。
类似于关于图1的装置级120所描述的防火墙,防火墙220能够从外界网络210接收诸如电子邮件和其它消息221等邮件话务,检查那些消息221以确定是否应该阻塞它们(响应于防火墙220所维护的一组防火墙规则),并将那些消息221(若未被阻塞)发送到垃圾消息过滤器250。
类似于图1的邮件服务器131,邮件服务器230能够从垃圾消息过滤器250接收消息221,并响应于那些消息的内容而将它们转发给终端用户接收者。例如,决非旨在限制,邮件服务器230可包括使用诸如IMAP、POP或SMTP等已知邮件传送协议的已知邮件服务器。
管理员网络客户机241包括处理器、程序和数据存储器、以及输入和输出设备,诸如被配置成台式工作站、笔记本计算机、“Blackberry”或“Palm Pilot”或其它手持式计算设备、或是其它设备。管理员网络客户机241能够与垃圾消息过滤器250通信,其作用是管理员能够查看、编辑或删除由垃圾消息过滤器250维护的一般使用的配置信息。
终端用户网络客户机242包括处理器、程序和数据存储器、以及输入和输出设备,诸如被配置成台式工作站、笔记本计算机、“Blackberry”或“Palm Pilot”或其它手持式计算设备、或是其它设备。终端用户网络客户机241能够与垃圾消息过滤器250通信,其作用是终端用户能够查看、编辑或删除由垃圾消息过滤器250维护的涉及该终端用户的使用的配置信息。
垃圾消息过滤器类似于图1的垃圾消息过滤器121,垃圾消息过滤器250能够接收防火墙220允许通过的消息221,检查那些消息221以确定是应将它们作为好的消息、批量广告还是垃圾消息来对待,并响应于确定的结果,采取关于那些消息221的一个或多个行动。这一个或多个行动可包括(a)在将消息221转发到邮件服务器230以进行投递以前适当地标记消息221,(b)延迟、删除、隔离或者处理消息221,(c)将消息221转发给除消息221原来被定址到的终端用户以外的用户或其它实体,以及(d)更新其自身的状态,其结果是垃圾消息过滤器250能更好地辨别哪些消息221是好的消息、哪些是批量广告、哪些是垃圾消息。
在一个实施例中,垃圾消息过滤器250包括邮件传送代理251、数据库252、标识引擎253、管理界面单元254、终端用户界面单元255、网络服务器256、网络CGI层257、操作系统层258、以及硬件平台259。
在一个实施例中,邮件传送代理251包括诸如版本1.1.11等PostFix邮件传送代理(可从IBM购买),它被修改为包括本文中所描述的能力和功能。邮件传送代理251还能使用或可改为包括Sendmail。
邮件传送代理251能够使用一般模式在设备之间传送消息221,其中用户发送者(使用用户代理)向邮件传送代理251发送消息221,由其将消息221发送到一个或多个其它的邮件传送代理,其中每一个将消息221投递给一个或多个终端用户接收者。在一个实施例中,邮件传送代理251被修改成具有它与数据库252和标识引擎253通信以检查和将消息221分类的作用。
在一个实施例中,使用数据库来存储用户和管理设置、以及统计和电子邮件日志记录和报告。被标识为垃圾消息的消息还可被存储在文件系统中,以便稍后在用户确定这些消息实际上不是垃圾消息(即,它们是被误标识的“假肯定”)的情况下检索。在替换实施例中,被标识为垃圾消息的消息也可被存储在数据库252中以便稍后在类似情况下检索。
在一个实施例中,标识引擎253包括Corvigo(专利所有)过滤引擎,诸如其版本2.4等。在此实施例中,过滤引擎使用各种人工智能技术的组合(例如包括自然语言处理等)来确定消息的意图。然后可基于所确定的意图来执行过滤。
在一个实施例中,管理界面单元254包括一个界面。管理界面单元允许管理员配置、运行和维护垃圾消息过滤器250。管理界面单元254可使用诸如HTML(超文本标记语言)和PHP等已知工具来构建。
在一个实施例中,终端用户界面单元255包括一个用户界面。用户界面单元允许用户执行以下各项操作中的一个或数个修改其垃圾消息过滤偏好,查看邮件消息以及该邮件消息被如何分类和处理的报告,以及允许用户发现和检索“假肯定”(即,被错误地标识为批量期刊或垃圾消息的好的消息)。终端用户界面单元255可使用诸如HTML(超文本标记语言)和PHP等已知工具来构建。
在一个实施例中,网络服务器256包括诸如Apache HTTP服务器许可证1.0等开放源码服务器。在此实施例中,网络服务器提供用来生成诸如网络CGI层257等网络CGI层的函数和接口。
在一个实施例中,网络CGI层257包括基于PHP(超文本预处理器)的界面,它允许用户和管理员通过诸如万维网等启用HTML的网络来与垃圾消息过滤器250交互。
在第一优选实施例中,硬件平台259和操作系统层258包括在某个版本的Linux操作系统(或是类似的操作系统,诸如某个版本的Unix或是包括Machmicrokernel在内的操作系统等)的控制下操作的Intel体系结构的处理器(或其功能等效装置)。在第二优选实施例中,硬件平台259和操作系统层258包括在某个版本的Solaris操作系统(或类似的操作系统,诸如某个版本的Unix等)的控制下操作的Sun SPARC站处理器(或其功能等效装置)。
如下所述,在一个实施例中,邮件传送代理251在垃圾消息过滤器250处可能使用例如防火墙220等来从外界网络210接收至少一些消息221。消息221被路由到标识引擎253,以便基于由标识引擎253所确定的每个消息的意图来对其进行分类。
在一个实施例中,该引擎包括正则表达式识别器、以及被预先训练成能将消息分类的一组人工神经网络。正则表达式识别器适用于检测误拼的单词、由本该是无害的单词组成的貌似垃圾消息的短语(诸如“MAKE MONEY FAST”等)、以及垃圾消息发送者规避通过已知通常指示垃圾消息的关键词的检测而进行的其它常见的尝试。人工神经网络将消息分成“貌似好邮件”和“貌似垃圾消息”,并且使用该信息在更加详细和更高的辨别等级进行操作以区分好的消息、批量期刊及垃圾消息。
起初被视为“貌似好邮件”的消息可能最终会被标识为好的消息或是批量期刊。类似地,起初被视为“貌似垃圾消息”的消息可能最终会被标识为批量期刊或是垃圾消息。
在一个实施例中,被标识为垃圾消息的消息被发送到文件系统进行存储以防它们被误标识(即,它们是“假肯定”)。在替换实施例中,可选地,可将被误标识为垃圾消息的消息发送到数据库252以便稍后的标识或其它处理。被适当地标记的好的消息和批量期刊被从邮件传送代理251发送到邮件服务器230以便投递到终端用户接收者的邮箱部分。
处理各种类型的消息也能有不同的方式。例如,决非旨在限制,垃圾消息过滤器250可被配置成将批量消息当成是垃圾消息来处理。
系统单元(被配置为服务器)在阅读此申请之后,本领域技术人员将会认识到,可替换地将该用于动态消息过滤的系统配置为便于在被部署为服务器的实施例中使用。在此类实施例中,服务器将能够与图1的邮件服务器131和垃圾消息过滤器121的组合一般类似。这样一来的效果是该服务器将能够接收消息,过滤掉垃圾消息以及可能还有批量期刊消息,并将响应于好的消息的内容而将它们转发给终端用户接收者。在一些实施例中,决非旨在限制,服务器可使用诸如IMAP、POP或SMTP等已知的邮件传送协议来工作。
标识引擎图4示出根据本发明的一个方面的标识引擎的实施例的框图。
适于作为标识引擎250或350来使用的标识引擎400的实施例包括词汇分析器410、输入矢量生成器420、规则430和神经网络分层结构440。
在一个实施例中,词汇分析器410根据因特网标准对消息进行解码和语法分析。消息被分成报头部分和正文部分。报头部分被进一步分解为个体的报头。如有必要,正文部分被解码并剥离无关标记。在此实施例中,处理了多个MIME部分及其子组件。
在一个实施例中,输入矢量生成器420包括正则表达式识别器,它使用主题报头和正文文本来生成适合神经网络分层结构440使用的输入矢量。这是通过使用单词和短语到输入矢量位置的多对一映射来实现的。在一个实施例中,该映射包括使用遗传算法从可能被使用的大约70,000个最常见的英文单词中预先选出来的2,000个最有用的正则表达式(标识单词或短语)的子集。
在一个实施例中,输入矢量生成器420扫描每个消息的文本字符,并且检查消息中出现的每个单词或短语(最长为四个单词)以寻找映射中的值。如果映射中出现对应于该单词或短语的条目,则增加输入矢量的适当值。必须要当心以便即使消息是以故意设计成规避该系统的方法来编写的也能在消息中识别出单词。
在一个实施例中,规则430对消息应用基本规则以便可能以高效的方式来确定其分类。以下枚举一组可能的此类规则。在此实施例中,一旦任何规则肯定地确定了分类,则不再发生进一步的处理。
(1)如果接收者已知的发送者列表中存在消息的发送者,则该消息被分类。
(2)如果管理员已知的IP地址列表中存在发送消息的客户机的IP地址,则该消息被分类。该列表包含客户机IP地址和预期的分类。
(3)如果管理员已知的发送者列表中存在消息的发送者,则该消息被分类。该列表包含发送者的地址和预期的分类。
(4)如果管理员已知的域列表中存在发送者地址的域部分,则该消息被分类。该列表包含发送者的地址域和预期的分类。
(5)如果主题包含后面跟着分隔符的串“adv”(或其它选定的串),则该消息被分类为垃圾。广告商有时使用此类串来警告终端用户消息是商业广告或其它批量电子邮件。
(6)如果消息使用美国英语消息不常用的字符集(或另一选定的字符集或是语言),则消息可被分类。可响应于系统配置而发生分类。
(7)如果消息的主题匹配包含正则表达式、搜索串以及响应于此的相关联的分类的表中的任何搜索串,则该消息被分类。
(8)如果消息的正文匹配包含搜索串和分类的表中的任何搜索串,则该消息被分类。
(9)如果消息的任何报头匹配包含搜索串和分类的表中的任何搜索串,则该消息被分类。
(10)如果消息包含可能引起邮件读取器自动创建新的网络浏览窗口的代码,则该消息可被分类为垃圾。
(11)如果接收者的地址没有出现在包含接收者地址列表的任何标准消息报头(诸如“To”和“CC”报头等)中,则该消息可被分类。可基于系统配置而发生分类。
(12)如果消息的报头所声明的接收者列表主要包含以相同字母开头的地址,则该消息可被分类为垃圾。
(13)如果输入矢量生成器420为消息生成了不足的输入,则它将被分类为“好的消息”。
在其它实施例中,可使用不同的规则430,它们可包括部分、全部或不包括前述示例。
就规则所使用的各个列表而言,在一个实施例中,这些列表被分为包括好的消息的标识符的“白名单”和包括垃圾消息标识符的“黑名单”。标识符的示例包括,但不限于,发送者的名称、地址、域名或IP地址。
在一个实施例中,可基于与那些标识符相关联的消息的分类来动态地维护白名单和黑名单。例如,可把至少某个阈值数(较佳的是四个)的消息作为好的消息通过的任何发送者自动添加到已知的好的发送者的白名单中,从而无需对来自那些发送者的消息进行像对来自其它发送者的消息那样彻底的检查。类似地,可把至少某个阈值数(较佳的是四个)的消息作为垃圾消息而被拒收的任何发送者自动添加到已知的垃圾消息发送者的黑名单中,从而无需对来自那些发送者的消息进行像对来自其它发送者的消息那样彻底的检查。这些分类可来自垃圾消息过滤器或垃圾消息过滤服务器的全面操作,来自用户对消息的查看,或是来自其它某个源。也可使用不同的阈值和技术来对这些列表进行动态更新。
在一个实施例中,如果规则430中没有任何一条对消息进行肯定的分类,则由神经网络440的分层结构处理输入矢量生成器所创建的矢量,将参考图3对此进行进一步的描述。神经网络包含人工智能引擎,它通过查看由所生成的输入矢量指示的消息意图来过滤消息。神经网络分层结构的一个实施例分析消息中使用了哪些单词,分析那些单词是如何被独立地和相互关联地使用的,以及(c)基于这一分析以及对其它消息的认识来考虑该消息的分类。
分层结构440的一个实施例包括至少两个神经网络。第一神经网络确定消息更像是合法的还是垃圾消息,由此将消息分为“貌似好的消息”和“貌似垃圾消息”。
基于初始分类,第二神经网络处理输入矢量以确定消息是否是批量邮件。在此实施例中,有单独的神经网络来将批量消息与垃圾消息分类,并将批量消息与合法消息分类。起初被视为“貌似好的消息”的消息可能最终被标识为好的消息或是批量期刊。类似地,起初被视为“貌似垃圾消息”的消息可能最终被标识为批量期刊或是垃圾消息。
在替换实施例中,神经网络从已处理的消息学习,以便适应于垃圾消息发送者所使用的不断进化的反过滤策略。
在本发明的其它实施例中可使用具有不同个数和目的的神经网络的不同的分层结构。
神经网络图3示出根据本发明的一个方面的一组神经网络的实施例的框图。
神经网络310A、310B和310C的系统300包括至少一个第一神经网络310A,它具有一组输入节点311、神经网络主体312、以及输出节点313。在一个实施例中,输入节点311中每一个都被耦合到对应的一个正则表达式识别器314。
来自消息的一组输入单词315被耦合到这组正则表达式识别器314。每一个正则表达式识别器314响应于这组输入单词315生成表示不存在或存在相关联的模式的值(0或1),如正则表达式所表示的。在一个实施例中,正则表达式识别器314是预先选择的。但是,在替换实施例中,可将正则表达式识别器314改为响应于关于特定的一个或多个消息是否被正确标识的用户反馈。
在阅读此申请之后,本领域技术人员将会认识到,正则表达式识别器314并非必需使用正则表达式,或必需响应于这组输入单词315而提供离散值0或1。举第一个例子来说,决非旨在限制,可用其它类型的模式匹配器或及其学习技术来替换或协助正则表达式识别器314。举第二个例子来说,决非旨在限制,正则表达式识别器314可使用模糊逻辑,或是提供0和1之间实质上连续的值(或一组离散值中的一个)。
来自正则表达式识别器314的一组输入被耦合到对应的一个输入节点311。响应于对正则表达式识别器314所标识的、并与该输入节点311相关联的正则表达式个数的计数,向每一个输入节点311赋加权值。这样一来的效果是,如果特定的正则表达式被标识两次,则对该输入节点311的输入将响应于值2,而不是对应于标识该特定正则表达式一次的1。
在一个实施例中,将被标识的每个个体的正则表达式的个数除以被标识的正则表达式的总数,这样一来的作用是被耦合到输入节点311的值实质上被归一化为总数为1。例如,决非旨在限制,如果有4个输入节点311A、311B、311C和311D,且每个输入节点的被标识的正则表达式的个数分别为3、3、6和3(因而总数为15),则归一化后的值分别将是3/15、3/15、6/15和3/15(因而总数为1.0)。
在一个实施例中,每个实质上被归一化的值被调整到最小的非零值,这样一来的效果是仅当预先归一化的被标识的正则表达式的个数确实为0时,被耦合到输入节点311的值才为0。在其它情形中,在预先归一化的被标识的正则表达式大于0,但归一化后的值非常小(例如,0.02)的场合,该归一化后的值被进位到最小的量,较佳的是0.1。在替换实施例中,也可为最大值执行相同的过程。
来自输入节点311的一组输出被耦合到完全连接的神经网络312,在一个实施例中,该神经网络312具有预选的阈值和权重。但是,在替换实施例中,可响应用户反馈来调整神经网络312的这些阈值或权重,或此两者。
来自完全连接的神经网络312的输出被耦合到输出节点313,这样一来的作用是输入节点313表示0和1之间的一个值。神经网络310A、310B或310C中的一个的结果响应于与该神经网络310A、310B或310C相关联的阈值,诸如较佳的阈值0.9。这样一来的作用是,对于第一神经网络310A,如果超过了阈值,则由第二神经网络310B重新评估消息,或如果没有超过阈值,则由第三神经网络310C重新评估消息。这样一来还有一个作用是,对于第二神经网络310B,如果超过了阈值,则确定消息是垃圾消息,或如果没有超过阈值,则确定消息是用户可能会关注的批量电子邮件。类似地,这样一来还有一个作用是,对于第三神经网络310C,如果超过了阈值,则确定消息是用户可能会关注的批量消息,或如果没有超过阈值,则确定消息是“好的消息”。
操作方法图5示出一种动态消息过滤的方法的流程图。
尽管是连续描述的,但是方法500的流程点和方法步骤可由单独的单元联合地或并行地执行,无论是异步还是同步地,是以管道方式还是其它方式。在本发明的上下文中,没有特定要求要必须按照此描述列出的流程点或方法步骤的相同顺序来执行该方法,除非有明确的说明。
在步骤501,接收消息321。
在步骤502,将消息321发送到诸如图4中的标识引擎400等标识引擎。
在步骤503,诸如图4中的词汇分析器410等词汇分析器根据诸如已知的因特网标准等已知标准来将消息解码和语法分析。消息被分成报头部分和正文部分。报头部分被进一步分解为个体的报头。如有必要,将正文部分解码,并剥离无关的标记。在一个实施例中,处理了多个MIME部分及其子组件。
在步骤504,诸如图4中的输入矢量生成器420等输入矢量生成器识别报头和正文部分的文本中的单词和表达式。输入矢量生成器使用识别出来的单词和表达式来生成输入矢量。该矢量是使用单词和短语到输入矢量位置的多对一映射来生成的。在一个实施例中,该映射包括使用遗传算法从可能使用的大约70,000个最常见的英文单词中选出来的2,000个最常用的正则表达式(标识单词或短语)的子集。
在一个实施例中,输入矢量生成器扫描每个消息的文本,并且检查消息中出现的每个单词或短语(最长四个单词)来寻找映射中的值。如果映射中出现对应于该单词或短语的条目,则增加输入矢量的适当值。必须要当心以便即使消息是以故意设计成规避该系统的方法来编写的也能在消息中识别出单词。
在步骤505,将诸如图4中的规则430等规则应用于消息。在一个实施例中,将基本规则应用于消息以便能够以高效的方式来确定其分类。
如果规则成功地将消息分类,则流程从步骤506前进至步骤507。在步骤507,垃圾消息过滤器或垃圾消息过滤服务器基于分类对消息采取行动。以下参考步骤511到513来更加详细地解释可能的分类和行动的一个实施例。
如果规则没有成功将消息分类,则流程从步骤506前进至步骤508到510。在那些步骤中,由诸如图4中的分层结构440等神经网络分层结构来分析消息。
神经网络通过查看由步骤504中所生成的输入矢量所指示的消息意图来过滤消息。神经网络分层结构的一个实施例分析消息中使用了哪些单词,分析那些单词是如何被独立地和相互关联地使用的,以及基于这一分析以及对其它消息的认识来考虑该消息的分类。
进一步地描述,在步骤508,第一级神经网络确定消息更像是合法的消息还是垃圾消息,此步骤将消息指定为可能包括好的和批量消息的“貌似好的消息”,以及可能包括批量和垃圾消息的“貌似垃圾消息”。
在步骤509,由第二级神经网络分析貌似好的消息以确定它们是好的消息还是批量消息。类似地,在步骤510,由另一个第二级神经网络分析貌似垃圾消息以确定它们是批量消息还是垃圾消息。
在一个实施例中,神经网络从经处理的(并响应于此从终端用户反馈的)消息“学习”(即,使用诸如后向传播等神经网络学习的已知技术来调整神经网络),这样一来的作用是,神经网络适应垃圾消息发送者可能使用的不断进化的反过滤策略。
在步骤511处理好的消息。这些消息被发送到终端用户接收者,或发送到终端用户接收者的邮箱。
在步骤512处理批量消息。例如,在一个实施例中,通过修改批量消息的主题来标记它们,并将它们发送到终端用户接收者,或是发送到终端用户接收者的邮箱。或者,管理员或用户可将垃圾消息过滤器或垃圾消息过滤服务器配置成把批量消息作为好的消息或是作为垃圾消息来对待。这由图5的虚线指示。
在步骤513处理垃圾消息。在一个实施例中,这些消息被阻塞(即,不向终端用户发送)。这些消息可被存储在例如数据库中,以便在把批量或好的消息误标识为垃圾消息的情形中可在稍后进行查看及可能进行检索。在一个实施例中,使用任何的错误标识(即,“假肯定”)来进一步调整(如上所述)神经网络,以便帮助防止将来出现类似的误标识。
在每个步骤511、512和513中,可基于分类的结果和消息的特征(例如,文本和所生成的输入矢量)来动态地更新和维护神经网络的规则和分层结构。
在本发明的不同实施例中可使用不同的类别和行动。
替换实施例尽管本文中揭示了优选的实施例,但是许多改变都是可能的,它们仍然落入本发明的概念、范围和精神之内。在熟读此申请后,本领域技术人员将会清楚这些改变。
·本发明的应用并不局限于检查纯文本消息、或原文本的消息的实施例。本发明包括一些实施例,其中在检查消息时考虑包括图片(诸如,静态图片或动态图片)或声音(诸如经编码的声音)、代码片段(诸如HTML、DHTML、Java、JavaScript等)及消息的其它元素的其它数据类型。
·本发明的应用并不局限于仅检查消息的报头或正文的内容的实施例。本发明包括一些实施例,其中除本发明中所描述的方面外、或替换这些方面而检查包括消息的发送或接收时间、消息的大小、消息发送的方法或路径(诸如在同一公司内还是从逻辑上远距离的位置)、消息的传送协议(诸如POP、IMAP或SMTP邮件,或其变体)、以及消息是否包括附件(若是,则这些附件的内容、大小或数据类型)在内的其它数据。
·本发明的应用并不局限于仅检查电子邮件消息的实施例。本发明包括一些实施例,其中检查包括网页或使用其它协议(诸如HTTP、HTTPS、FTP或UDP)接收的文件或完全不同类型的消息(诸如“即时消息”、使用对等协议的消息、使用HTTP隧穿的消息、或是诸如www.neopets.com上的“NeoMail”等应用程序专用的消息)等在内的其它类型的消息。例如,决非旨在限制,本发明可被配置成阻塞网页或其部分,诸如(1)嵌入在网页中的广告,(2)“弹出”(pop-up)或“隐性弹出”(pop-under)网页,或是(3)包括不适合儿童的、不适合特定场所或工作场所的、对特定用户不敬的、或仅仅是特定用户不想要的内容的网页。
·本发明的应用并不局限于仅检查人类可读的消息的实施例。本发明包括一些实施例,其中检查包括CRM或ERP系统消息在内的其它类型的消息、或者多个处理器之中和之间的其它形式的通信的其它类型的消息。例如,决非旨在限制,本发明包括一些实施例,其中检查在线拍卖或其它交易系统中的投标或订购以检查出错、欺诈、欺骗或其它因素(诸如市场极度的反复无常等)。
·本发明的应用并不局限于仅仅阻塞或过滤消息的实施例。本发明包括一些实施例,其中采取包括转发那些消息、将它们按优先级分集、将它们复制到更持久化的存储中、使用无线通信(或相关的技术,诸如发送页面或电话呼叫等)来发送它们等其它行动。例如,本发明包括确定要向无线接收者转发整个消息还是省略任何附件的实施例。
·本发明的其它应用包括将消息自动区分优先级以便向无线设备转发或便于次级检查、确定要预加载或高速缓存哪些网页、检测恶意的“弹出”广告或网页Java脚本、检测用户不想要的“即时消息”及其它消息类型、将消息分组自动收集到消息摘要中、以及自动检测传出的消息以检查病毒内容等用途。
在熟读此申请之后,本领域技术人员将会认识到,这些替换实施例是示例性的,而决非限制性的。
权利要求
1.一种用于将消息分类的方法,包括以下步骤识别消息中包括单词和词组在内的模式;响应于所识别的模式,应用多种机器学习技术以将所述消息分类。
2.如权利要求1所述的方法,其特征在于,所述机器学习技术包括神经网络。
3.如权利要求2所述的方法,其特征在于,所述神经网络被预先训练成能够将所述消息分类为好的消息、批量消息或是垃圾消息。
4.如权利要求2所述的方法,其特征在于,所述神经网络还包括至少两级神经网络。
5.如权利要求4所述的方法,其特征在于,所述两级神经网络包括用于确定所述消息是貌似好的消息还是貌似垃圾消息的第一级,以及用于确定貌似好的消息是否是好的、及貌似垃圾消息的是否是垃圾消息的第二级。
6.如权利要求4所述的方法,其特征在于,所述两级神经网络包括用于确定所述消息是貌似好的消息还是貌似垃圾消息的第一级,以及用于确定貌似好的消息是好的还是批量消息、及貌似垃圾消息的是垃圾消息还是批量消息的第二级。
7.如权利要求4所述的方法,其特征在于,对于至少一个所述分类,所述神经网络将所述消息分类到三个类别中的一个,其中对于所述消息,存在一条以上通过所述神经网络到达所述类别的路径。
8.如权利要求1所述的方法,其特征在于,还包括响应于所述消息的分类来动态地维护所述神经网络的步骤。
9.如权利要求1所述的方法,其特征在于,还包括将规则应用于所述消息来帮助将所述消息分类的步骤。
10.如权利要求9所述的方法,其特征在于,如果所述消息是用所述规则来分类的,则跳过应用所述神经网络的步骤。
11.如权利要求9所述的方法,其特征在于,所述规则使用白名单、黑名单,或是所述白名单和黑名单两者。
12.如权利要求11所述的方法,其特征在于,还包括响应于所述消息的分类而动态地维护所述白名单、所述黑名单、或是所述白名单和黑名单两者的步骤。
13.如权利要求11所述的方法,其特征在于,所述识别表达式的步骤还包括应用遗传算法来选择所要识别的一组正则表达式的步骤。
全文摘要
本发明提供了一种能够动态过滤传入消息的方法和系统,其效果是将那些消息分类为以下三个类别中的至少一个好的消息、批量期刊及垃圾消息。标识引擎基于度量所得的每个消息的意图来将消息分类。该系统包括动态的白名单和黑名单,当来自发送地址的消息数指示该发送者貌似好的发送者或是貌似垃圾消息发送者时,那些发送地址被收集到这些名单中。用一组正则表达式来训练神经网络,以响应用户所接收的典型电子邮件的变化。
文档编号H04L12/58GK101069175SQ200480028744
公开日2007年11月7日 申请日期2004年10月1日 优先权日2003年10月3日
发明者S·劳夫米勒, M·奥尔森, J·雷迪, E·梅德吉, P·怀特, J·科利尔 申请人:考维枸有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1