(57)【特許請求の範囲】
【請求項１】
データフィルタリング装置であって、
偽陽性率および偽陰性率が関連付けられていて、メッセージに関連したジャンク情報に少なくとも部分的に基づいて前記メッセージにジャンクとタグ付けするように構成されている第１のフィルタと、
前記第１のフィルタの前記偽陽性率および前記偽陰性率に最初は関連していて、前記メッセージに関連したジャンク情報に少なくとも部分的に基づいて前記メッセージにジャンクとタグ付けするように構成されている１つ又は複数の第２のフィルタと、
前記第１のフィルタと前記１つ又は複数の第２のフィルタとからタグ付けされたメッセージ及びタグ付けされていないメッセージを受け取るように構成されたフィルタ出力と、
前記フィルタ出力へ送られた前記タグ付けされたメッセージ及びタグ付けされていないメッセージに関連したユーザのアクションを受け取り、前記フィルタ出力へ送られた前記タグ付けされたメッセージ及びタグ付けされていないメッセージに関連したユーザのアクションに基づいて、偽陽性データおよび偽陰性データを出力するように構成されたユーザ訂正構成要素と、
偽陽性データおよび偽陰性データを受け取り、その偽陽性データ又は偽陰性データ又は両方に基づいて前記１つ又は複数の第２のフィルタの前記偽陽性率および前記偽陰性率を調節し、そしてその後受け取ったメッセージを前記第１のフィルタと前記１つ又は複数の第２のフィルタの間の経路に、閾値とそれらの偽陽性率および偽陰性率に応じて配信するように構成されたフィルタコントロールと、
を含むことを特徴とするデータフィルタリング装置。
【請求項２】
前記ユーザのアクションは前記メッセージを黙示的にタグ付けすることを含むことを特徴とする請求項１に記載の装置。
【請求項３】
前記ユーザのアクションは前記メッセージをジャンクと明示的にタグ付けすることを含むことを特徴とする請求項１に記載の装置。
【請求項４】
前記第１のフィルタと前記１つ又は複数の第２のフィルタは、良いデータに少なくとも一部は基づいて前記メッセージをジャンクとタグ付けするように構成されていることを特徴とする請求項１に記載の装置。
【請求項５】
前記フィルタコントロールはさらに、他のユーザのメッセージの内容に基づいて、前記１つ又は複数の第２のフィルタの内の少なくとも１つの偽陽性率および偽陰性率を調節するように構成されていることを特徴とする請求項１に記載の装置。
【請求項６】
前記フィルタコントロールが、その後受け取ったメッセージを前記第１のフィルタと前記１つ又は複数の第２のフィルタの間の経路に、閾値とそれらのそれぞれの偽陽性率、偽陰性率、又はそれらの両方に応じて配信するように構成されていることは、前記メッセージを最良の偽陽性率を持つフィルタの経路に配信することを含むことを特徴とする請求項１に記載の装置。
【請求項７】
前記フィルタコントロールは、予め定められた数のメッセージがタグ付けされた後、又は予め定められた時間になった後、又はその両方の後で、前記１つ又は複数の第２のフィルタの偽陽性率、偽陰性率、又はそれらの両方を調節するようにさらに構成されていることを特徴とする請求項１に記載の装置。
【請求項８】
前記閾値は複数の生成された閾値から選択され、前記選択された閾値は、対象となる閾値にわたる平均閾値、最も低い偽陽性率の閾値、ｐ＊効用関数またはそれらの組合わせに基づいてユーザの期待効用を最大にする閾値のうちの少なくとも１つを選択することによって決定されることを特徴とする請求項１に記載の装置。
【請求項９】
前記閾値は複数の閾値から選択されるように構成されていることを特徴とする請求項１に記載の装置。
【請求項１０】
請求項１に記載の前記装置を含むことを特徴とするポータブルコンピューティングデバイス。
【請求項１１】
ＰＤＡ、電話、またはラップトップコンピュータのうちの１つであることを特徴とする請求項１０に記載のポータブルコンピューティングデバイス。
【請求項１２】
データのフィルタリングを容易にするためにコンピュータにより実施される方法であって、前記コンピュータはプロセッサと該プロセッサのためのデータ及びプログラムを格納する記憶装置を含み、
シードフィルタの偽陽性率および偽陰性率に従い、前記プロセッサにより自動的に受け取ったメッセージをフィルタリングするステップと、
少なくとも１つのフィルタリングされたメッセージに関するユーザ訂正データを前記プロセッサにより受け取るステップと、
前記プロセッサにより、少なくとも１つのフィルタリングされたメッセージに関する前記ユーザ訂正データに基づいて前記シードフィルタの正確性を決定するステップと、
前記プロセッサにより、前記ユーザ訂正データを使用して新しいフィルタを訓練するステップであって、
前記プロセッサにより、前記新しいフィルタの偽陽性率および偽陰性率の決定するステップと、
前記プロセッサにより、前記新しいフィルタの前記偽陽性率および前記偽陰性率に基づいて前記新しいフィルタの正確性を決定するステップと、
前記プロセッサにより、もし前記新しいフィルタの前記正確性が前記シードフィルタのそれよりも良い場合、前記シードフィルタの変わりに前記新しいフィルタを使用するステップと、
を含むことを特徴とするデータのフィルタリングを容易にする方法。
【請求項１３】
前記ユーザ訂正データは、前記少なくとも１つのフィルタリングされたメッセージの最初の分類を書き換えることに関するユーザ訂正データを含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記新しいフィルタの前記偽陽性率および前記偽陰性率を決定するステップは、予め定められた数のジャンクメッセージ及び非ジャンクメッセージがユーザによりラベル付けされた後、又は予め定められた時間になった後、又はその両方の後で、前記新しいフィルタの偽陽性率および偽陰性率を決定することを含む請求項１２に記載の方法。
【請求項１５】
請求項１２に記載の前記方法を実現するために前記コンピュータにより使用されるコンピュータプログラムを格納することを特徴とするコンピュータ可読記録媒体。
【請求項１６】
請求項１に記載の前記装置を、コンピュータがコンピュータプログラムを使用することによって実現するために前記コンピュータプログラムを格納していることを特徴とするコンピュータ可読記録媒体。
【請求項１７】
請求項１に記載の前記データフィルタリング装置を含むことを特徴とするコンピュータシステム。
【請求項１８】
請求項１に記載の前記データフィルタリング装置を含むことを特徴とするコンピュータネットワーク。
【請求項１９】
メッセージをフィルタリングするための第１の手段であって、関連付けられた偽陽性率および偽陰性率を有するメッセージをフィルタリングするための前記第１の手段と、
前記メッセージをフィルタリングするための前記第１の手段と関連付けられた前記偽陽性率および前記偽陰性率に従って訓練されたメッセージをフィルタリングするための新しい手段と、
閾値に基づいて前記メッセージをフィルタリングするための新しい手段と関連した新しい偽陽性率および新しい偽陰性率を決定する手段と、
前記メッセージをフィルタリングするための前記新しい手段の閾値を決定するための手段と、
前記メッセージをフィルタリングするための前記新しい手段と関連した前記新しい偽陽性率および前記新しい偽陰性率が共に、前記メッセージをフィルタリングするための前記第１の手段と関連した前記偽陽性率および前記偽陰性率よりも良いと考えられるように、もし前記メッセージをフィルタリングするための前記新しい手段のための閾値が存在する場合、前記フィルタリングするための前記第１の手段の代わりに前記メッセージをフィルタリングするための前記新しい手段を使用する手段と、
を備えることを特徴とするデータフィルタリング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不要な情報（ジャンクメールなど）を識別するシステムおよび方法に関し、より詳細にはこうした識別を容易にする適応型フィルタに関する。
【背景技術】
【０００２】
本出願は、次の特許および特許出願、「TECHNIQUE WHICH UTILIZES A PROBABILISTIC CLASSIFIER TO DETECT JUNK E-MAIL BY AUTOMATICALLY UPDATING A TRAINING AND RE-TRAINING THE CLASSIFIER BASED ON THE UPDATING TRAINING SET」という名称の米国特許第６，１６１，１３０号明細書、１９９９年１１月２３に出願した「CLASSIFICATION SYSTEM TRAINER EMPLOYING MAXIMUM MARGIN BACK-PROPAGATION WITH PROBABILISTIC OUTPUTS」という名称の米国特許出願第０９／４４８，４０８号明細書、および２００２年１０月２３に提出した「METHOD AND SYSTEM FOR IDENTIFYING JUNK E-MAIL」という名称の米国特許出願第１０／２７８，５９１号明細書に関連する。
【０００３】
インターネットなどのグローバル通信ネットワークの到来は、膨大な数の潜在的な顧客と接触するビジネスチャンスをもたらした。電子メッセージング、および特に電子メール（「Ｅメール」）は、ネットワークユーザに不要な広告および宣伝を広める手段（「スパム」とも呼ぶ）として、ますます浸透してきている。
【０００４】
コンサルティングおよびマーケットリサーチ会社であるＲａｄｉｃａｔｉ  Ｇｒｏｕｐ，Ｉｎｃは、２００２年８月の時点で、毎日２０億のジャンクＥメールメッセージが送信されていると推定しており、この数は、２年ごとに３倍になると予想される。個人およびエンティティ（会社、政府関係機関など）は、ジャンクメッセージによって次第に不便を感じ、しばしば気分を害するようになってきている。したがって、ジャンクＥメールは今や信頼できるコンピュータ処理の大きな脅威であり、あるいはまもなく大きな脅威となる。
【０００５】
ジャンクＥメールの阻止に使用される主な技術は、フィルタリングシステム／方法の使用である。定評のあるフィルタリング技術の１つは、機械学習手法に基づいている。機械学習フィルタは、受信メッセージに、そのメッセージがジャンクである確率を割り当てる。この手法では、一般に、２つのクラスのメッセージ例（例えばジャンクメッセージと非ジャンクメッセージなど）から特徴が抽出され、２つのクラスの間を確率的に区別するために学習フィルタが適用される。多くのメッセージの特徴は内容（例えばメッセージの件名および／または本文の単語および句など）に関連しているため、こうしたタイプのフィルタは、一般に「内容ベースのフィルタ」と呼ばれる。
【０００６】
いくつかのジャンク／スパムフィルタは順応性がある。これは、多言語のユーザおよび珍しい言語を話すユーザがその固有の必要性に適応できるフィルタを必要とするという点で重要である。さらに、何がジャンク／スパムで何がそうでないかにすべてのユーザが同意するとは限らない。したがって、（例えばユーザの挙動を観察することを介して）暗黙的に(implicitly)訓練することができるフィルタを使用することによって、ユーザの特定のメッセージ識別の必要性を満たすようにそれぞれのフィルタを動的に調整することができる。
【０００７】
フィルタリングの適応の１つの手法は、メッセージをジャンクおよび非ジャンクとラベル付けするようユーザに要求することである。残念ながら、手動による労力を要するこうした訓練技術は、こうした訓練を適切に行うのに必要な時間量はもちろんのこと、こうした訓練に関連付けられている複雑性のため、多くのユーザにとっては好ましくない。別の適応型フィルタ訓練手法は、暗黙的な(implicit)訓練キューを使用することである。例えば、ユーザがメッセージに返信するか、メッセージを転送する場合、この手法は、メッセージを非ジャンクであると見なす。しかし、この種類のメッセージキューのみを使用することは、訓練プロセスに統計上の偏りをもたらし、その結果、それぞれの精度がより低いフィルタがもたらされる。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
さらに別の手法は、すべてのユーザのＥメールを訓練に使用することである。この場合、最初のラベルが既存のフィルタによって割り当てられ、ユーザはこうした割当を、例えば「ジャンクとして削除」および「非ジャンク」などのオプションを選択する明示的なキュー（例えば「ユーザ訂正」方法など）、および／または暗黙的なキューで時々オーバーライドする。こうした手法は上述した技術よりは良いが、以下で説明し、主張する本発明と比べて依然として不十分である。
【課題を解決するための手段】
【０００９】
次に、本発明の一部の態様を基本的に理解できるようにするために、本発明の簡略化された要約を示している。この要約は、本発明の広範な概要を示すものではない。本発明の主な／重要な要素を識別するためのもの、または本発明の範囲を画定するためのものではない。単に、後述するより詳細な説明の前置きとして、本発明の一部の概念を簡略化した形式で提示するためのものである。
【００１０】
本発明は、ジャンク／スパムメッセージの識別に最適な使用可能なフィルタ（例えばシードフィルタ(seed filter)または新しいフィルタなど）の使用を容易にするシステムおよび方法を提供する。本発明は、メッセージをフィルタ処理し、偽陽性率(false positive rate)（例えば誤ってジャンクとして分類された非ジャンクメール）および偽陰性率(false negative rate)（例えば誤って非ジャンクとして分類されたジャンクメール）が関連付けられているシードフィルタを使用する。新しいフィルタもメッセージのフィルタリングに使用される。新しいフィルタは、シードフィルタに関連付けられている偽陽性率および偽陰性率に従って評価される。シードフィルタの偽陽性率および偽陰性率の決定に使用されるデータは、閾値に応じて新しいフィルタの新しい偽陽性率および偽陰性率の決定に使用される。
【００１１】
新しいフィルタの閾値が存在し、したがって新しい偽陽性率および新しい偽陰性率がともにシードフィルタの偽陽性率および偽陰性率より良いとみなされる場合、シードフィルタの代わりに新しいフィルタが使用される。新しい偽陽性率および新しい偽陰性率は、（例えばユーザ訂正プロセスの使用により）ユーザによってジャンクおよび非ジャンクとラベル付けされたメッセージに従って決定される。ユーザ訂正プロセスは、メッセージの最初の分類をオーバーライドするステップを含み、最初の分類は、ユーザがメッセージを受信すると、シードフィルタによって自動的に実行される。閾値は、単一の閾値とする、または生成された複数の閾値から選択することができる。複数の値を使用する場合、選択された閾値は、例えば、対象となる閾値（例えば最も低い偽陽性率の閾値、またはｐ＊効用関数に基づいてユーザの期待効用を最大にする閾値など）の範囲の中間の閾値を選択することによって決定することができる。あるいは、閾値は、新しいフィルタの偽陽性率および偽陰性率がその選択された閾値で少なくともシードフィルタのものと同程度に良い場合にのみ選択することができ、１がより良い。さらに、新しいフィルタ率が選択された閾値だけではなく、他の近くの閾値でもシードフィルタ率より良い場合のみ新しいフィルタが選択されるように、選択基準を提供することができる。
【００１２】
本発明の別の態様は、データのフィルタリングを容易にするグラフィカルユーザインターフェースを提供する。インターフェースは、フィルタの構成に関して構成システムと通信するフィルタインターフェースを提供する。インターフェースは、デフォルト、高度、専用のうちの少なくとも１つを含むユーザが選択可能な複数のフィルタレベルを提供する。インターフェースは、本発明の上記のシステムおよび方法の実行を容易にする様々なツールを提供する。
【００１３】
上記および関連の目的を達成するために、本発明のいくつかの態様例を、次の説明および添付の図面との関連で本明細書に記載している。しかし、これらの態様は、本発明の原理を使用し得る様々な方法のほんの一部を示しているにすぎず、本発明は、こうしたすべての態様およびその均等物を含むものとする。本発明の他の利点および新規の特徴は、本発明の次の詳細な説明を図面と併せ読めば明らかになる。
【発明を実施するための最良の形態】
【００１４】
次に、図面を参照して本発明を説明する。図中、同様の参照番号を使用して同様の要素を指す。次の説明では、説明上、本発明を完全に理解できるようにするために様々な特定の詳細を記載している。しかし、こうした特定の詳細なしに本発明を実施できることは明らかである。他の例では、本発明の説明を容易にするために、よく知られている構造および装置をブロック図の形式で示している。
【００１５】
本出願で使用する場合、「構成要素」および「システム」という用語は、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかのコンピュータ関連のエンティティを指すものとする。例えば、構成要素は、それだけには限定されないが、プロセッサ上で稼働するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および／またはコンピュータとすることができる。例として、サーバ上で稼働するアプリケーションおよびサーバはいずれも構成要素である。１つまたは複数の構成要素がプロセスおよび／または実行スレッド内に存在していてよく、１つの構成要素を１つのコンピュータ上に配置する、および／または２つ以上のコンピュータの間に分散することができる。
【００１６】
本発明は、ジャンクメッセージのフィルタリングに関して様々な推論方式および／または技術を組み込むことができる。本明細書で使用する場合、「推論」という用語は一般に、イベントおよび／またはデータを介して捕捉された１組の観察結果からシステム、環境、および／またはユーザの状態について推理または推論する過程を指す。例えば、推論を使用して特定の内容または動作を識別したり、状態にわたる確率分布を生成したりすることができる。推論は、確率的、つまりデータおよびイベントの考慮に基づいた対象の状態にわたる確率分布の計算とすることができる。また推論は、１組のイベントおよび／またはデータから上位レベルのイベントを構成するために使用する技術も指す。こうした推論は、複数のイベントが時間的にごく近接して相関していようといまいと、またイベントおよびデータが１つ又は複数のイベントおよびデータソースから派生しようとしまいと、１組の観察されたイベントおよび／または格納されたイベントデータから新しいイベントまたは動作を構築する。
【００１７】
メッセージという用語は本明細書を通じて広範にわたって使用されているが、こうした用語は、電子メールだけに限定されるものではなく、任意の適した通信アーキテクチャに分散することができる任意の形式の電子メッセージ通信を含むように、適切に構成することができることを理解されたい。例えば、２人以上の間での会議を容易にする会議アプリケーション（例えば対話型チャットプログラム、インスタントメッセージングプログラムなど）も、ユーザがメッセージを交換する間に不要なテキストを通常のチャットメッセージに電子的に散りばめ、かつ／または先頭メッセージ、終わりのメッセージ、または上記のすべてとして挿入することができるため、本明細書に開示されたフィルタリングの利点を使用することができる。この特定のアプリケーションでは、望ましくない内容（コマーシャル、宣伝、広告など）を捕捉し、ジャンクとしてタグ付けするために、フィルタは、特定のメッセージの内容（テキストおよび画像）を自動的にフィルタ処理するよう構成することができる。
【００１８】
次に図１を参照すると、本発明によるジャンクメッセージ検出システム１００を示している。システム１００は、受信メッセージのストリーム１０２を受信し、ジャンクメッセージの検出および削除を容易にするために、これをフィルタ処理することができる。メッセージ１０２は、本発明の適応性のある態様に従って決定されるフィルタ基準に応じて、メッセージ１０２を第１のフィルタ１０６（例えばシードフィルタ）と第２のフィルタ１０８（例えば新しいフィルタ）との間に経路指定することができるフィルタ制御構成要素１０４内に受信される。したがって、第１のフィルタ１０６がジャンクメッセージの検出に十分効率的であると決定された場合、第２のフィルタ１０８は使用されず、フィルタ制御１０４は、メッセージ１０２を引き続き第１のフィルタ１０６に経路指定する。しかし、第２のフィルタ１０８が少なくとも第１のフィルタ１０６と同程度に効率的であると決定された場合、フィルタ制御１０４は、メッセージ１０２を第２のフィルタ１０８に経路指定することを決定することができる。こうした決定に使用される基準については、以下で詳述する。最初に使用するとき、フィルタシステム１００は、メッセージ１０２が第１のフィルタ１０６に経路指定されてフィルタ処理されるように（例えば、通常第１のフィルタ１０６が特定の製品とともに出荷された明示的に訓練されたシードフィルタであるときなど）、予め定められたデフォルトのフィルタ設定に構成することができる。
【００１９】
第１のフィルタ１０６の設定に基づいて、第１のフィルタ１０６内に受信されたメッセージは、ジャンクデータに関連付けられているジャンク情報について問い合わせが行われる。ジャンク情報は、それだけには限定されないが、ソースＩＰアドレス、送信者名、送信者のＥメールアドレス、送信者のドメイン名、識別子フィールド内のでたらめな英数文字列などの（ジャンクメールを送信することで知られている送信者からの）送信者情報、「ローン」、「セックス」、「レート」、「限定商品」、「今すぐ購入」などジャンクメールで一般に使用されるメッセージテキスト用語および句、文字のサイズ、文字の色、特殊文字の使用などのメッセージテキストの特徴、ポップアップ広告への埋め込みリンクなどを含み得る。ジャンクデータは、予め定められた、また動的に決定されたジャンク基準に少なくとも部分的に基づいて決定することができる。メッセージは、一般にジャンクメール、または適切なメールのみを送信することで知られている送信者または送信者ＩＰからのメールには現れない「天気」や「チーム」などの「適切な」データについての問い合わせも行われる。製品が最初にシードフィルタ無しで、フィルタ基準の設定無しで出荷された場合、すべてのメッセージは、タグが付けられずに第１のフィルタ１０６を通過してユーザのインボックス１１２（第１のフィルタ出力とも呼ぶ）に入ることを理解されたい。インボックス１１２は、単に、様々な場所（サーバ、大容量記憶装置、クライアントコンピュータ、分散ネットワークなど）に存在するデータストアとすることができることを理解されたい。さらに、第１のフィルタ１０６および／または第２のフィルタ１０８は、複数のユーザ／構成要素によって使用することができ、インボックス１１２は、メッセージをそれぞれのユーザ／構成要素ごとに別々に格納するように区分することができることを理解されたい。さらに、システム１００は、二次的フィルタのうちの最も適切なものが特定のタスクに関して使用されるように、複数の二次的フィルタ１０８を使用することができる。本発明のこうした態様については、以下で詳述する。
【００２０】
ユーザがメールボックスのメッセージを調べるとき、一部のメッセージは、ジャンクであり、他のメッセージは非ジャンクであると決定される。これは、一部には、例えばボタンを押すことによって、または特定のメッセージに関連付けられているユーザアクションを介してメッセージに暗黙的にタグ付けすることを介して、ユーザによってジャンクメールまたは非ジャンクメールに明示的にタグ付けすることに基づいている。メッセージは、例えばメッセージが読まれインボックスの中に残されている、メッセージが読まれ転送される、メッセージが読まれごみ箱フォルダ以外の任意のフォルダに入れられる、メッセージに返信する、またはユーザがメッセージを開き編集するなどのユーザアクションまたはメッセージプロセスに基づいてジャンクではないことを暗黙的に決定することができる。他のユーザアクションも非ジャンクメッセージに関連付けられるように定義することができる。メッセージは、例えば１週間の間メッセージを読んでいない、メッセージを読むことなく削除することなどに基づいてジャンクであると暗黙的に決定することができる。したがってシステム１００は、ユーザ訂正構成要素１１４を介してこれらのユーザアクション（またはメッセージプロセス）を監視する。これらのユーザアクションまたはメッセージプロセスは、ユーザが最初にメッセージを調べ、それに対するアクションを実行する間に、システム１００が第１のフィルタ１０６の偽陽性率および偽陰性率のデータの開発を開始することができるように、ユーザ訂正構成要素１１４内に予め構成しておくことができる。ユーザ訂正ブロック１１４内に予め構成されていないほぼすべてのユーザアクション（またはメッセージプロセス）は、システム１００がこうしたメッセージタイプに対処するよう適応するまで、「未知の」メッセージをフィルタ出力１１２まで自動的にタグ無しで到達させることができる。「ユーザ」という用語は、本明細書で使用する場合、人間、人間のグループ、構成要素、および人間と構成要素との組合せを含むものとすることを理解されたい。
【００２１】
ユーザのインボックス１１２内のメッセージがタグ無しメッセージとして受信され、しかし実際にはジャンクメッセージである場合、システム１００は、これを偽陰性データ値として処理する。ユーザ訂正構成要素１１４は、次いでこの偽陰性情報をフィルタ制御構成要素１０４に、第１のフィルタ１０６の有効性を確認するために使用するデータ値として戻す。一方、実際にはメッセージはジャンクメッセージではない場合に、第１のフィルタ１０６がそれをジャンクメールとしてタグ付けした場合、システム１００は、これを偽陽性データ値として処理する。ユーザ訂正構成要素１１４は、次いでこの偽陽性情報をフィルタ制御構成要素１０４に、第１のフィルタ１０６の有効性の決定に関して使用するデータポイントとして戻す。したがってユーザがユーザのインボックス１１２内で受信されたメッセージを訂正するとき、第１のフィルタ１０６のための偽陰性データおよび偽陽性データが開発される。
【００２２】
システム１００は、その偽陽性率および偽陰性率が第１のフィルタ１０６のものより低い（例えば許容可能な確率内）第２のフィルタ１０８の閾値が存在するかどうかを決定する。存在する場合、システム１００は、許容可能な閾値のうちの１つを選択する。システムは、偽陽性率が同程度に良く、偽陰性率がより良い場合、または偽陰性率が同程度に良く、偽陽性率がより良い場合に第２のフィルタを選択することもできる。したがって、本発明は、特定のユーザの効用関数、およびユーザが第１のフィルタ１０６の誤りを間違いなく訂正したかどうかに関係なく、許容可能な確率以内で、第２のフィルタがジャンクの検出に関して同等以上の有用性を提供することを保証する第２のフィルタ１０８の閾値があるかどうか（およびその閾値が何であるか）を決定することを提供する。
【００２３】
システム１００は、偽陽性識別および偽陰性識別のユーザ確認を考慮して、新しい訓練の必要性に基づいて新しい（または第２の）フィルタ１０８を訓練する。より具体的には、システム１００は、ユーザ訂正方法を介して決定されたジャンクラベルおよび非ジャンクラベルでタグ付けされたデータを使用する。このデータを使用して、第１の（例えば既存のまたはシード）フィルタ１０６の偽陽性（例えば誤ってジャンクとラベル付けされた非ジャンクメッセージなど）率および偽陰性（例えば誤って非ジャンクとラベル付けされたジャンクメッセージなど）率を決定する。同じデータを使用して、新しい（例えば第２の）フィルタ１０８を学習（または「訓練」）する。このデータは、閾値に応じて、第２のフィルタの偽陽性率および偽陰性率の決定に関しても使用される。評価データは第２のフィルタの訓練に使用されるものと同じであるため、以下で詳述するように、クロス確認(cross-validation)手法が使用されることが好ましい。クロス確認は、当業者にはよく知られている技術である。第２の組のデータが少なくとも第１の組と同程度に良いと決定されると、第２のフィルタ１０８が実行可能になる。次いで、率比較プロセスが、現在より良いフィルタリング効用を有している第１のフィルタ１０６にフィルタリングを戻すべきであることを決定するまで、制御構成要素１０４はすべての受信メッセージを第２のフィルタ１０８に経路指定する。
【００２４】
本発明の特定の一態様は、２つの前提に依存する。第１の前提は、第１の確認（例えばユーザ訂正など）がエラーを含んでいない（例えばユーザは非ジャンクのメッセージをジャンクとして削除しない）ことである。この前提に基づいて、データラベルは、常に正しいとは限らないが、少なくとも第１のフィルタ１０６によって割り当てられたラベルと同程度に「正しい」。したがって、こうしたラベルに従って第２のフィルタ１０８が既存のフィルタに劣らないほどの有用性を有している場合、第２のフィルタ１０８の真の期待効用は、第１のフィルタ１０６のものに劣らないはずである。第２の前提は、より低い偽陽性率および偽陰性率が望まれることである。こうした前提によれば、第２のフィルタ１０８の両方のエラー率が第１のフィルタ１０６のものより大きくない場合、第２のフィルタ１０８は、ユーザの特定の効用関数に関係なく、第１のフィルタ１０６としてのジャンク検出に関して、少なくとも第１のフィルタと同程度に良い。
【００２５】
第２のフィルタ１０８が常に第１のフィルタと同程度に効率的であるとは限らない１つの理由は、第２のフィルタが第１のフィルタ１０６より少ないデータに基づいているからである。第１のフィルタ１０６は、他のユーザのデータから生成されたシードデータを有している「シード」フィルタとすることができる。実質的に、ユーザがフィルタを構成する必要なく一般のジャンクＥメールメッセージを識別するフィルタ構成がユーザに提供されるように、全部ではないがほとんどの適応型フィルタがシードフィルタを備えて出荷されている。このことは、経験の浅いコンピュータユーザに良い「びっくり箱」の経験を提供する。第２のフィルタ１０８が常に第１のフィルタ１０６と同程度に効率的であるとは限らない別の理由は、より複雑だからである。これは、フィルタは完璧ではない、また校正されない場合があるという２つの事実に依存している。次にこれらの事実について説明し、次いで第２のフィルタ１０８がより良いかどうかを決定する問題に戻る。
【００２６】
次に図２を参照すると、キャッチ率（１マイナス偽陰性率に等しい、正しくラベル付けされたスパムの割合）、および偽陽性率（非ジャンクとラベル付けされたジャンクの割合）に関しての性能のトレードオフのグラフを示している。本明細書で示し、当業者にも理解できるように、フィルタは完璧ではない。したがって、より多いジャンクメッセージを識別し、キャッチすることと、非ジャンクメッセージをジャンクとして誤って間違ったラベルを貼ることとの間にトレードオフがある。この性能のトレードオフ（本明細書では精度率とも呼ぶ）は、受信者動作曲線（ＲＯＣ）２００として知られているもので示している。曲線上の各点は異なるトレードオフに対応している。ユーザが確率閾値を調整することによってフィルタの「動作点」を選択するか、確率閾値が予め設定されていてもよい。メッセージがジャンクである（フィルタによってみなされた）確率ｐがこの閾値を超えるとき、メッセージはジャンクとラベル付けされる。したがって、ユーザが精度率が高い（例えば正しくラベル付けされたメッセージの数に対して偽陽性の数が低いなど）体制で動作することを決定した場合、曲線２００上の動作点は原点に近づく。例えば、ユーザがＲＯＣ２００上の動作点Ａを選択した場合、偽陽性率は約０．０００７であり、正しくラベル付けされたメッセージの数の対応するｙ軸値は約０．４５である。ユーザは、端数を切り捨てたフィルタ精度率０．４５／０．０００７＝６４３、つまり正しくラベル付けされた約６４３個のメッセージごとに１つの偽陽性メッセージを有する。一方、動作点が点Ｂである場合、約０．７２／０．０１＝７２でより低い精度率が算出される。すなわち、正しくラベル付けされた約７２個のメッセージごとに１つの偽陽性がある。
【００２７】
異なるユーザがそれぞれに固有の選好の組に関してこうしたトレードオフを異なるように作り出す。決定理論の言葉で言えば、異なる人間はジャンクメッセージのフィルタリングに関して異なる効用関数を有する。例えば、あるクラスのユーザは、非ジャンクメッセージの誤ったラベリング、およびＮ個のジャンクメッセージをキャッチできないことに無頓着であり得る。このクラスのユーザの場合、ジャンクの最適な確率閾値（ｐ＊）は、次の関係を介して定義することができる。
【００２８】
【数１】
0004524192.tif 000002
【００２９】
式中、Ｎはメッセージの数であり、Ｎはクラスごとのユーザ間で異なり得る。
【００３０】
したがって、このクラスのユーザは「ｐ＊効用関数」を有すると言われる。このことを了解した上で、ユーザがｐ＊効用関数を有しており、第２のフィルタが校正される場合、最適な閾値は、自動的に選択することができる。つまり、閾値はｐ＊に設定されるはずである。別のクラスのユーザは、ジャンクとラベル付けされた非ジャンクＥメールをＸ％以下にしたい可能性がある。こうしたユーザの場合、最適な閾値は、第２のフィルタ１０８がメッセージに割り当てる確率の分布によって決まる。
【００３１】
第２の概念は、フィルタを校正することができる場合もできない場合もあることである。校正されたフィルタは、１組のＥメールメッセージがジャンクであることを確率ｐで決定するとき、こうしたメッセージのｐがジャンクであるという性質を有する。多くの機械学習方法は、ユーザが既存のフィルタの誤りをきちんと修正することを前提に、校正されたフィルタを生成する。ユーザが誤りを時々（例えば８０％未満）しか訂正しない場合、フィルタは校正されない可能性がある。こうしたフィルタは、誤ったラベルを基準にして校正され、真のラベルを基準にしては校正されない。一方、本発明は、ユーザの効用関数、およびユーザが既存のフィルタ１０６の誤りをきちんと訂正したかどうかに関係なく、（何らかの確率以内で）第２のフィルタ１０８が第１のフィルタ１０６以上の有用性をユーザに提供することを保証する第２のフィルタ１０８の閾値があるかどうか（およびその閾値が何であるか）を決定する手段を提供する。
【００３２】
次に図３を参照すると、本発明の一態様によるプロセスのフロー図を示している。説明を簡潔にするために、方法を一連の動作として示し、説明しているが、一部の動作は、本発明によれば、本明細書に示し説明したものとは異なる順序で、かつ／または他の動作と同時に行うことができるため、本発明は動作の順序によって限定されないことを了解され、理解されたい。例えば、方法を、代わりに相互に関係のある一連の状態またはイベントとして、例えば状態図などで表すことができることを当業者であれば了解され、理解されよう。さらに、本発明による方法を実施するのに示したすべての動作が必要であるとは限らない。
【００３３】
基本的な手法は２つの前提に依存する。１つの前提は、ユーザ訂正がエラーを含んでいないことである（エラーの一例は、ユーザがジャンクではないメッセージをジャンクとして削除したときなどである）。こうした前提に基づいて、データ上のラベルは、常に正しいとは限らないが、少なくとも第１の／シードフィルタによって割り当てられたラベルと同程度に「正しい」。したがって、これらのラベルに従って第２のフィルタが第１のフィルタに劣らないほどの有用性を有している場合、第２のフィルタの真の期待効用は、第１のフィルタのものに劣らない。第２の前提は、すべてのユーザがより低い偽陽性率および偽陰性率を好むということである。この前提に基づいて、第２のフィルタの両方のエラー率が第１のフィルタのものより高くない場合、ユーザの特定の効用関数に関係なく、第２のフィルタは第１のフィルタに劣らない。
【００３４】
３００で、第１および第２のフィルタに（例えば設定を変更し、一般にフィルタのセットアップおよび構成を制御するために）それとインターフェースする手段が提供される。３０２で、第１のフィルタは、１つまたは複数のフィルタ設定に従って受信メッセージを自動的にフィルタ処理するように構成される。設定は、製造業者によって提供されるデフォルトの設定を含み得る。フィルタ処理されたメッセージが（例えばインボックスなどに）受信されると、３０４で、メッセージが調べられ、（例えばユーザ訂正方法を介して）どの非ジャンクメッセージが誤ってジャンクとタグ付けされた（例えば偽陽性）か、またどのジャンクメッセージがジャンクとしてタグ付けされていない（偽陰性）かに関する決定が行われる。３０４で、ユーザ訂正機能は、偽陰性メッセージを明示的または暗黙的にジャンクメールとしてタグ付けし、偽陽性メッセージの非ジャンクとしてのタグを削除することによって実行することができる。こうしたユーザ訂正機能は、その偽陽性率データおよび偽陰性率データの決定を介して第１のフィルタの精度率を提供する。３０８で、第２のフィルタは、第１のフィルタ１０６のユーザ訂正済みデータに従って訓練される。次いで３１０に示すように、同じデータを使用して、閾値に応じて第２のフィルタの偽陽性率および偽陰性率が決定される。３１２で、閾値が決定される。関連の偽陽性率および偽陰性率が第１のフィルタのこうした率より低い（何らかの妥当な確率以内）ように、第２のフィルタの閾値が存在するかどうかに関する決定が行われる。つまり、３１４に示すように、第２のフィルタの精度率（精度ＳＦ）が第１のフィルタの精度率（精度ＦＦ）より良いかどうかを決定するためである。ＹＥＳの場合、３１６に示すように、適切な閾値が選択され、受信メッセージをフィルタ処理するために第２のフィルタが配置される。ＮＯの場合、プロセスは３１８に進み、第１のフィルタが受信メッセージのフィルタリングを行うように保持される。このプロセスは、必要に応じて上記の動作を動的に繰り返す。
【００３５】
精度分析プロセスは、ユーザ訂正機能が行われるたびに行うことができ、したがって閾値の決定に基づいていつでも第２のフィルタを使用し、または非稼働にすることができる。第１のフィルタの評価データは、第２のフィルタの訓練に使用されるものと同じであるため、クロス確認手法が使用される。つまり、データは、ユーザ訂正プロセスごとにｋ（ｋは整数）個のバケット(bucket)にセグメント化され、バケットごとに、第２のフィルタは、他のｋ−１個のバケットのデータを使用して訓練される。次いでｋ−１個のバケットから選択された１個のバケットについて第２のフィルタの性能（または精度）が評価される。別の可能性は、それぞれジャンクラベルおよび非ジャンクラベル付きのＮ１およびＮ２のメッセージが蓄積（例えばＮ１＝Ｎ２＝１０００）されるまで待ち、次いでＮ３およびＮ４の追加のジャンクメッセージおよび非ジャンクメッセージが蓄積（例えばＮ３＝Ｎ４＝１００）されるたびに再度実行することである。別の選択肢は、こうしたプロセスをカレンダー時間に基づいてスケジュールすることである。
【００３６】
第２のフィルタを第１のフィルタに劣らないようにする閾値が複数ある場合、どの閾値を使用すべきかを選択するための選択肢がいくつか存在する。１つの選択肢は、ユーザがｐ＊効用関数を有するという前提に基づいてユーザの期待効用を最大にする閾値を選択することである。別の選択肢は、最も低い偽陽性率の閾値を選択することである。さらに別の選択肢は、対象となる閾値の範囲の中間点を選択することである。
【００３７】
測定されたエラー率の不確実性に対応して、ｋ１およびｋ２がそれぞれ第１のフィルタおよび第２のフィルタからの非ジャンク（またはジャンク）の誤ったラベルを貼ったエラーの数と仮定する。簡単な統計分析は、
【００３８】
【数２】
0004524192.tif 000003
【００３９】
の場合、（例えばｆ＝２ｘ＝９７．５の場合、ｆ＝０、ｘ＝５０の場合など）第２のフィルタのエラー率が第１のフィルタに劣らないことを約ｘ％の確信が持てると断定することができることを示している。控えめにするために、ｋ１またはｋ２がゼロに等しい場合、１の値を平方根（ｓｑｒｔ）の項で使用すべきである。ｘは保守的な調整であり、ｘが１００に近い場合、第２のフィルタが第２のフィルタを配置する前の第１のフィルタより良いという確実性が高いはずであることに留意されたい。この確実性（または不確実性）の計算は、第１のフィルタと第２のフィルタとの間のエラーが独立しているという前提を含む。この前提を回避する１つの手法は、共通のエラーの数、つまり独立性の前提に基づいて存在するエラーの数を評価することである。この数よりｋ個多いエラーが見つかった場合、上記の計算においてｋ１およびｋ２を（ｋ１−ｋ）および（ｋ２−ｋ）と置き換える。さらに、訓練データ内のメッセージの数が増えるにつれて、第２のフィルタが（任意の閾値で）第１のフィルタより正確である可能性が高くなる。上記の不確実性の推定値は、こうした「予備的知識」を無視する。この予備的知識を不確実性の推定値に組み込むための理に適った方法があることをベイズ確率／統計に精通している当業者であれば理解されよう。
【００４０】
基本的な手法の一態様では、ジャンクメッセージが第１のフィルタによって非ジャンクとしてラベル付けされると仮定する。さらに、ユーザはこの誤りを訂正せず、そのためシステムは、デフォルトではこのメッセージをジャンクではないと決定すると仮定する。より正確な訓練データを有する第２のフィルタは、このメッセージにジャンクとラベル付けし得る。その結果、第１のフィルタの偽陽性率は実際より低く評価されたことになり、第２のフィルタの偽陽性率は実際より高く評価されたことになる。この結果は、ほとんどのジャンクＥメールフィルタは、偽陽性率を低く保つために多くのジャンクメッセージが非ジャンクとラベル付けされる閾値で動作するという事実によって増幅される。
【００４１】
基本的な手法のこの態様に取り組むために組み合わせて使用することができるいくつかの手法がある。第１の手法は、ユーザが例えばＮ＝２０のｐ＊効用関数を有しており、第２のフィルタを第１のフィルタに劣らないようにする閾値を見つけることができるたびに第２のフィルタを配置すると仮定することである。ここでは、例えば第２のフィルタの偽陽性率が第１のフィルタのものより大きい場合でさえ、第２のフィルタを配置することができる。つまり、この手法では、第２のフィルタが配置される可能性が高い。
【００４２】
第２の手法は、非ジャンクとラベル付けされたメッセージが実際に高い確実性でジャンクではないとわかっているものであるように、テストセットを制限することである。例えば、テストセットは、ユーザが「非ジャンク」ボタンを選択することによってラベル付けされたメッセージ、読まれ、削除されていないメッセージ、転送されたメッセージ、およびユーザが返信したメッセージのみを含む。
【００４３】
第３の手法は、第２のフィルタの偽陽性率のより良い推定値を生成するために、システムが校正されたフィルタ（例えば第１のフィルタ）によって生成された確率を使用することができることである。つまり、データ内の非ジャンクラベルおよび第１のフィルタのジャンクラベルの付いたメッセージの数を単に数えるのではなく、システムは、こうした各メッセージが正常（非ジャンク）である（校正されたフィルタによる）確率を合計することができる。この合計はその数より少なくなり、ユーザがすべてのメッセージを完全に訂正していれば、数のより良い推定値となる。
【００４４】
かなり簡単な第４の手法では、ユーザが「非ジャンク」および「ジャンク」のボタンを使用してラベルを訂正する期待回数が監視される。ここでは、校正されるのがわかっているフィルタ（例えば第１／シードフィルタ）に関して予想が得られる。実際の訂正数が期待数（絶対数または割合）を下回る場合、システムは第２のフィルタを訓練しない。
【００４５】
実際には、ユーザインターフェースは、複数の閾値を提供する場合があり、ユーザはそこから１つを選択することができる。この状況で、新しいフィルタは、ユーザによって選択された閾値でシードフィルタより良い場合のみ配置される。しかし、さらに、新しいフィルタが他の閾値設定、特にユーザの現在の選択に近い設定でシードフィルタより良いことが望ましい。次のアルゴリズムは、この手法を容易にするこうした方法の１つである。例えば、デフォルト値０．２５の実数であるＳｌｉｄｅｒＨａｌｆＬｉｆｅ（ＳＨＬ）と呼ばれるパラメータを入力する。閾値ごとに、新しいフィルタが第１のフィルタと同等以上かどうかを決定する。次いで現在選択されている閾値を使用する。しかし、新しいフィルタが現行の閾値設定で第１／シードフィルタより良く、次に記載するＴｏｔａｌＷｅｉｇｈｔ値（ｗ）がゼロ以上である場合は切り替える。最初は、ＴｏｔａｌＷｅｉｇｈｔ＝０である。非現行の閾値設定ごとに
＼＼現行の設定からのその距離に基づいてそれぞれ重みを割り当てる
【００４６】
【数３】
0004524192.tif 000004
【００４７】
ｄ＝距離
ＩＳ＝設定のインデックス
ＩＣＳ＝現行の設定のインデックス
ＩＭＡＸ＝最大設定のインデックス
ＩＭＩＮ＝最小設定のインデックス
ｗ＝．５（ｄ／ＳＨＬ）
この設定で新しいフィルタがより良い場合、その重みをＴｏｔａｌＷｅｉｇｈｔに追加する。そうでない場合、その重みをＴｏｔａｌＷｅｉｇｈｔから差し引く。
【００４８】
このアルゴリズムは、各閾値設定で新しいフィルタがより良いかどうかを決定するだけであることに留意されたい。第１の／シードフィルタと比べて新しいフィルタがどれだけ良いか悪いかを考慮に入れない。このアルゴリズムは、新しいおよび古い偽陰性率、偽陽性率、偽陰性の数および／または偽陽性の数の関数を使用して、上げ下げの度合いを考慮に入れるように変更することができる。
【００４９】
次に図４ａを参照すると、ユーザに提示することができるユーザインターフェース４００の例を、本明細書に開示した適応型ジャンクフィルタシステムおよびユーザメールボックスの基本的な構成について示している。インターフェース４００は、それだけには限定されないが、Ｆｉｌｅ、Ｅｄｉｔ、Ｖｉｅｗ、Ｓｉｇｎ  Ｏｕｔ、Ｈｅｌｐ＆Ｓｅｔｔｉｎｇｓのドロップダウンメニューの見出しを含むメニューバー４０２を備えるジャンクメールページ（またはウィンドウ）４０１を含む。また、ウィンドウ４０１は、ユーザが、Ｈｏｍｅ、Ｆａｖｏｒｉｔｅｓ、Ｓｅａｒｃｈ、Ｍａｉｌ＆Ｍｏｒｅ、Ｍｅｓｓｅｎｇｅｒ、Ｅｎｔｅｒｔａｉｎｍｅｎｔ、Ｍｏｎｅｙ、Ｓｈｏｐｐｉｎｇ、Ｐｅｏｐｌｅ＆Ｃｈａｔ、Ｌｅａｒｎｉｎｇ、およびＰｈｏｔｏｓを含めて、インターフェース４００の他のページ、ツール、および機能にナビゲートできるように、ナビゲーションの前進および戻りを容易にするリンクバー４０４も含む。メニューバー４０６は、ジャンクＥメール構成ウィンドウ４０１の１つまたは複数の構成ウィンドウの選択を容易にする。示したように、設定サブウィンドウ４０８は、ユーザがジャンクＥメールのフィルタリングのいくつかの基本的な構成オプションを選択できるようにする。第１のオプション４１０は、ユーザがジャンクＥメールのフィルタリングを実行可能にできるようにする。ユーザは、様々なレベルのＥメール保護を選択することを選択することもできる。例えば、第２のオプション４１２は、ユーザが、最も明白なジャンクメールのみをキャッチするデフォルトのフィルタ設定を選択できるようにする。第３のオプション４１４は、より多くのジャンクＥメールがキャッチされ、破棄されるように、ユーザがより高度なフィルタリングを選択できるようにする。第４のオプション４１６は、信頼されている相手、例えばユーザのアドレス帳および安全リストに列挙されている相手からのＥメールのみの受信をユーザが選択することができる。関連設定エリア４１８は、ジャンクメールフィルタ、安全リスト、メーリングリスト、および送信者のブロックリスト（Ｂｌｏｃｋ  Ｓｅｎｄｅｒ  Ｌｉｓｔ）を含めて、こうした列挙されているエリアにナビゲートする手段を提供する。
【００５０】
次に図４ｂを参照すると、ユーザメールボックスの特徴を示すユーザインターフェース４００のユーザメールボックスウィンドウ４２０を示している。メールボックスウィンドウ４２０は、それだけには限定されないが、Ｆｉｌｅ、Ｅｄｉｔ、Ｖｉｅｗ、Ｓｉｇｎ  Ｏｕｔ、Ｈｅｌｐ＆Ｓｅｔｔｉｎｇｓのドロップダウンメニューの見出しを含むメニューバー４０２を含む。また、メールボックスウィンドウ４２０は、ユーザが、Ｈｏｍｅ、Ｆａｖｏｒｉｔｅｓ、Ｓｅａｒｃｈ、Ｍａｉｌ＆Ｍｏｒｅ、Ｍｅｓｓｅｎｇｅｒ、Ｅｎｔｅｒｔａｉｎｍｅｎｔ、Ｍｏｎｅｙ、Ｓｈｏｐｐｉｎｇ、Ｐｅｏｐｌｅ＆Ｃｈａｔ、Ｌｅａｒｎｉｎｇ、およびＰｈｏｔｏｓを含めて、インターフェース４００の他のページ、ツール、および機能にナビゲートできるように、ナビゲーションの前進および戻りを容易にするリンクバー４０４も含む。また、ウィンドウ４２０は、ユーザが新しいメッセージを作成できるようにするＷｒｉｔｅ  Ｍｅｓｓａｇｅ選択、メッセージを削除するＤｅｌｅｔｅオプション、メッセージをジャンクとしてタグ付けするＪｕｎｋオプション、メッセージに返信するＲｅｐｌｙオプション、メッセージを異なるフォルダに移動させるＰｕｔ  ｉｎ  Ｆｏｌｄｅｒオプション、およびメッセージを転送する転送アイコンを含むＥメール制御ツールバー４２２も含む。
【００５１】
ウィンドウ４２０は、ユーザにＩｎｂｏｘフォルダ、Ｔｒａｓｈ  Ｃａｎフォルダ、およびＪｕｎｋ  Ｍａｉｌフォルダの内容を表示するために選択するオプションを提供するフォルダ選択サブウィンドウ４２４も含む。ユーザは、Ｓｔｏｒｅｄ  Ｍｅｓｓａｇｅｓフォルダ、Ｏｕｔｂｏｘフォルダ、Ｓｅｎｔ  Ｍｅｓｓａｇｅｓフォルダ、Ｔｒａｓｈ  Ｃａｎフォルダ、Ｄｒａｆｔｓフォルダ、Ｄｅｍｏ  ｐｒｏｇｒａｍフォルダ、Ｏｌｄ  Ｊｕｎｋ  Ｍａｉｌフォルダなど、様々なフォルダの内容にアクセスすることもできる。Ｊｕｎｋ  ＭａｉｌフォルダおよびＯｌｄ  Ｊｕｎｋ  Ｍａｉｌフォルダのそれぞれの中のメッセージの数は、それぞれのフォルダ名の隣にも列挙される。メッセージリストサブウィンドウ４２６では、フォルダ選択サブウィンドウ４２４内のフォルダ選択に従って、受信したメッセージのリストが提示される。メッセージプレビューサブウィンドウ４２８では、選択されたメッセージの内容の一部がプレビューのためにユーザに提示される。ウィンドウ４２０は、ユーザ選好サブウィンドウ（図示せず）に提示されるユーザの選好情報を含むように変更することができる。選好サブウィンドウは、図４ａに示すように、ウィンドウ４２０例の右側の一部に含めることができる。これは、それだけには限定されないが、天気情報、株式市場情報、お気に入りのＷｅｂサイトのリンクなどを含む。
【００５２】
インターフェース４００例は、示されているものに限定されず、ユーザがフィルタ選択を行うのをさらに助け、Ｅメールフィルタの構成に必要ではないインターフェースの他のページにナビゲートするために実装することができる他の従来のグラフ、画像、説明文、メニューオプションなどを含むことができる。
【００５３】
次に図５を参照すると、開示されたフィルタリング技術を使用するアーキテクチャの概略図を示している。１つまたは複数のクライアント５０２、５０４、および５０６（クライアント１、クライアント２、．．．クライアントＮとも呼ぶ）との間のＥメールの通信を容易にするネットワーク５００が提供されている。ネットワーク５００は、インターネットまたはＷＡＮ（広域ネットワーク）などのグローバル通信ネットワーク（ＧＣＮ）、ＬＡＮ（ローカルエリアネットワーク）、または他の任意のネットワークアーキテクチャとすることができる。この特定の実装形態では、ＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）ゲートウェイサーバ５０８は、ＳＭＴＰサービスをＬＡＮ５１０に提供するためにネットワーク５００とインターフェースする。ＬＡＮ５１０に動作可能に配置されているＥメールサーバ５１２は、ゲートウェイ５０８とインターフェースして、クライアント５０２、５０４、および５０６の受信Ｅメールおよび発信Ｅメールを制御し、処理する。クライアント５０２、５０４、および５０６も、少なくともそこに備えられているメールサーバにアクセスするように、ＬＡＮ５１０に配置されている。
【００５４】
クライアント５０２は、クライアント処理を制御する中央処理装置（ＣＰＵ）５１４を含む。ＣＰＵ５１４が複数のプロセッサを含むことができることを理解されたい。ＣＰＵ５１４は、上記に記載した１つまたは複数のフィルタリング機能のうちの任意のものを提供することに関する命令を実行する。命令は、それだけには限定されないが、少なくとも上記の基本的な手法のフィルタリング方法を実行する符号化された命令、それとともに使用することができ、ユーザがユーザ訂正を行わないことに対処するための手法の少なくともいずれかまたはすべて、不確実性の決定、閾値の決定、偽陽性率データおよび偽陰性率データを使用した精度率の計算、およびユーザの対話性の選択を含む。ユーザが対話してフィルタ設定を構成したり、Ｅメールにアクセスしたりすることができるように、ＣＰＵ５１４およびクライアントオペレーティングシステムとの通信を容易にするためにユーザインターフェース５１８が提供される。
【００５５】
クライアント５０２は、上記に示したフィルタの説明に従って動作可能な少なくとも第１のフィルタ５２０（第１のフィルタ１０６と類似）および第２のフィルタ５２２（第２のフィルタ１０８と類似）も含む。クライアント５０２は、フィルタ処理されたＥメールであり、適切にタグ付けされたＥメールであると予想されるメッセージを第１のフィルタ５２０および第２のフィルタ５２２のうちの少なくとも一方から受信するＥメールインボックス格納場所（またはフォルダ）５２４も含む。第２のＥメール格納場所（またはフォルダ）５２６は、ユーザがジャンクメールであると決定し、そこに格納することを選択したジャンクメールを収納するために提供されるが、これはゴミ箱フォルダでもよい。上述したように、インボックスフォルダ５２４は、受信Ｅメールの同等以上のフィルタリングを提供するために第１のフィルタ５２０より第２のフィルタ５２２が使用されたかどうかに応じて第１のフィルタ５２０または第２のフィルタ５２２のいずれかによってフィルタ処理されたＥメールを含むことができる。
【００５６】
ユーザがＥメールサーバ５１２からＥメールを受信すると、ユーザは、次いでインボックスフォルダ５２４のＥメールを詳細に調べて、フィルタ処理されたインボックスのＥメールメッセージの実際の状況を読み取り、決定する。ジャンクＥメールが第１のフィルタ５２０を通過した場合、ユーザは、メッセージが実際にジャンクＥメールであったことをシステムに知らせるユーザ訂正機能を明示的または暗黙的に実行する。次いで第１および第２のフィルタ（５２０および５２２）は、このユーザ訂正データに基づいて訓練される。第２のフィルタ５２２の精度率が第１のフィルタ５２０より良いと決定されると、同等以上のフィルタリングを提供するために、第２のフィルタ５２２が第１のフィルタ５２０の代わりに使用される。上述したように、第２のフィルタ５２２の精度率が第１のフィルタ５２０と実質的に等しい場合、第２のフィルタ５２２を使用してもしなくても良い。フィルタ訓練は、上述したように、予め決定されているいくつかの基準に従って行われるように、ユーザ選択とすることができる。
【００５７】
次に図６を参照すると、本発明のフィルタリング技術に従って、複数ユーザのログインを容易にし、受信メッセージをフィルタ処理する１つまたは複数のクライアントコンピュータ６０２を有するシステム６００を示している。クライアント６０２は、第１のフィルタ６０４および第２のフィルタ６０６がそれぞれコンピュータ６０２にログインする異なるユーザごとにメッセージのフィルタリングを提供するように、複数のログイン機能を含む。したがって、コンピュータオペレーティングシステムの起動プロセスの一部としてログイン画面を提示する、または必要に応じて、ユーザが各自の受信メッセージにアクセスできる前に関連のユーザプロフィールを連動させるためのユーザインターフェース６０８が提供される。したがって、第１のユーザ６１０（ユーザ１とも呼ぶ）は、メッセージにアクセスすることを選択したとき、一般にユーザ名およびユーザパスワードの形でアクセス情報を入力することによって、ユーザインターフェース６０８のログイン画面６１２を介してクライアントコンピュータ６０２にログインする。ＣＰＵ５１４は、メッセージ通信アプリケーション（例えばメールクライアントなど）を介して、第１のユーザインボックス場所６１４（ユーザ１インボックスとも呼ぶ）、および第１のユーザジャンクメッセージ場所６１６（ユーザ１ジャンクメッセージとも呼ぶ）のみへの第１のユーザアクセスを可能にするアクセス情報を処理する。
【００５８】
ＣＰＵ５１４がユーザログインアクセス情報を受信すると、ＣＰＵ５１４は、クライアントコンピュータ６０２にダウンロードすることができる受信メッセージをフィルタ処理する第１のフィルタ６０４および第２のフィルタ６０６を使用するための第１のユーザフィルタ選好情報にアクセスする。コンピュータにログインすることができるすべてのユーザ（ユーザ１、ユーザ２、．．．ユーザＮ）のフィルタ選好情報は、フィルタ選好テーブルにローカルに格納することができる。第１のユーザがコンピュータ６０２にログインしたとき、または関連の第１のユーザプロフィールを連動させたとき、フィルタ選好情報は、ＣＰＵ５１４によってアクセス可能である。したがって、第１のユーザ６１０の第１および第２のフィルタ（６０４および６０６）についての偽陰性率データおよび偽陽性率データが、ダウンロードされるメッセージのフィルタリングのために、第１のフィルタ６０４または第２のフィルタのいずれかを連動させるよう処理される。開示した本発明に従って本明細書に上述したように、偽陰性率データおよび偽陽性率データは、少なくともユーザ訂正プロセスから導出される。第１のユーザ６１０がメッセージをダウンロードすると、偽陰性率データおよび偽陽性率データを、誤ってタグ付けされたメッセージに従って更新することができる。次いで、別のユーザがコンピュータ６０２にログインする前のある時点で、第１のユーザの更新された率データが、将来の参照のためにフィルタ選好テーブルに格納される。
【００５９】
第２のユーザ６１８がログインすると、偽陰性率データおよび偽陽性率データは、それに関連付けられているフィルタリング選好に従って変わり得る。第２のユーザ６１８がそのログイン情報を入力した後、ＣＰＵ５１４は、第２のユーザフィルタ選好情報にアクセスし、それに応じて第１のフィルタ６０４または第２のフィルタ６０６のいずれかを連動させる。コンピュータオペレーティングシステムは、コンピュータメッセージングアプリケーションとともに、第２のユーザ６１８のメッセージングサービスを、第２のユーザインボックス６２０（ユーザ２インボックスとも呼ぶ）および第２のユーザジャンクメッセージ場所６２２（ユーザ２ジャンクメッセージとも呼ぶ）のみにアクセスするよう制限する。第２のユーザ６１８の第１および第２のフィルタ（６０４および６０６）についての偽陰性率データおよび偽陽性率データが、ダウンロードされる第２のユーザ６１８のメッセージのフィルタリングのために、第１のフィルタ６０４または第２のフィルタ６０６のいずれかを連動させるよう処理される。開示した本発明に従って本明細書に上述したように、偽陰性率データおよび偽陽性率データは、少なくともユーザ訂正プロセスから導出される。第２のユーザ６１８がメッセージをダウンロードすると、偽陰性率データおよび偽陽性率データを、誤ってタグ付けされたメッセージに従って更新することができる。
【００６０】
ユーザＮとも呼ぶＮ番目のユーザ６２４の動作が、第１および第２のユーザ（６１０および６１８）のものと同じように提供される。他のすべてのユーザと同様に、Ｎ番目のユーザ６２４は、Ｎ番目のユーザ６２４に関連付けられているユーザ情報のみに限定され、したがって、メッセージングアプリケーションを使用しているとき、ユーザＮインボックス６２６およびユーザＮジャンクメッセージ場所６２８のみにアクセスすることができ、他のインボックス（６１４および６２０）およびジャンクメッセージ場所（６１６および６２２）にはアクセスできない。
【００６１】
コンピュータ６０２は、クライアントネットワークインターフェース６３０を使用することによって、ＬＡＮ５１０上の他のクライアントと通信し、そこに配置されるネットワークサービスにアクセスするように適切に構成される。したがって、ＳＭＴＰ（またはメッセージ）ゲートウェイ５０８からのメッセージを受信し、クライアント（６０２および６３２（クライアントＮとも呼ぶ））、およびＬＡＮ５１０を介してメッセージをメッセージサーバ５１２に伝えるよう動作可能な他の任意の有線または無線装置の受信メッセージおよび発信メッセージを制御し、処理するためのメッセージサーバ５１２が提供されている。クライアント（６０２および６３２）は、そこに備えられている少なくともメッセージサービスにアクセスするためにＬＡＮ５１０と動作可能に通信するように配置される。ＳＭＴＰゲートウェイ５０８は、ＧＣＮ５００とインターフェースして、ＧＣＮ５００のネットワーク装置とＬＡＮ５１０上のメッセージングエンティティとの間に互換性のあるＳＭＴＰメッセージングサービスを提供する。
【００６２】
上述したように、率データの平均を使用して、フィルタ（６０４および６０６）の使用の最高平均設定値を決定することができることを理解されたい。同様に、コンピュータ６０２にログインすることができるユーザの最高率データを使用して、そこにログインするすべてのユーザのフィルタを構成することもできる。
【００６３】
次に図７を参照すると、最初のフィルタリングがメッセージサーバ７０２上で行われ、二次的フィルタリングが１つまたは複数のクライアント上で行われるシステム７００を示している。１つまたは複数のクライアント（７０４、７０６、および７０８）（クライアント１、クライアント２、．．．クライアントＮとも呼ぶ）との間のメッセージ（Ｅメールなど）の通信を容易にするＧＣＮ５００が提供されている。ＳＭＴＰゲートウェイサーバ５０８は、ＧＣＮ５００とインターフェースして、ＧＣＮ５００のネットワーク装置とＬＡＮ５１０上のメッセージングエンティティとの間に互換性のあるＳＭＴＰメッセージングサービスを提供する。
【００６４】
メッセージサーバ７０２は、ＬＡＮ５１０上に動作可能に配置されており、ゲートウェイ５０８とインターフェースして、クライアント７０４、７０６、７０８、およびＬＡＮ５１０を介してメッセージをメッセージサーバ７０２に伝えるよう動作可能な他の任意の有線または無線装置の受信メッセージおよび発信メッセージを制御し、処理する。クライアント（７０４、７０６、７０８）（例えば有線または無線の装置）は、そこに備えられている少なくともメッセージサービスにアクセスするためにＬＡＮ５１０と動作可能に通信するように配置される。
【００６５】
本発明の一態様によれば、メッセージサーバ７０２は、第１のフィルタ７１０（第１のフィルタ１０６と類似）を使用することによって最初のフィルタリングを実行し、クライアントは、第２のフィルタ７１２（第２のフィルタ１０８と類似）を使用して二次的フィルタリングを実行する。したがって、第１のフィルタ７１０がメッセージがジャンクメッセージであるか非ジャンクメッセージであるかを決定するためにそれらを処理する間、受信メッセージは、ゲートウェイ５０８からメッセージサーバ７０２の受信メッセージバッファ７１４に受信されて一時的に格納される。バッファ７１４は、すべてのメッセージが先着順ベースで処理されるように、簡単なＦＩＦＯ（先入れ先出し）アーキテクチャとすることができる。しかし、メッセージサーバ７０２は、タグ付きプロパティに従ってバッファに入れられたメッセージをフィルタ処理することができることは理解できよう。したがって、送信者によって優先順位が高いタグが付けられたメッセージが、優先順位が低いタグが付けられた他のメッセージの前にバッファ７１４から転送されてフィルタ処理されるように、バッファ７１４は、メッセージの優先順位を提供するように適切に構成される。プロパティのタグ付けは、それだけには限定されないが、メッセージのサイズ、メッセージが送信された日付、メッセージに添付があるかどうか、添付のサイズ、メッセージはバッファ７１４内にどのぐらいの期間あるかなどを含めて、送信者の優先順位タグに関連のない他の基準を基にすることができる。
【００６６】
第１のフィルタ７１０の偽陽性率データおよび偽陰性率データを開発するために、管理者は、第１のフィルタ７１０の出力をサンプリングして、どれだけ多くの正常なメッセージが誤ってジャンクとラベル付けされているか、どれだけ多くのジャンクメッセージが誤って正常とラベル付けされているかを決定することができる。本発明の一態様に従って本明細書に上述したように、次いで第１のフィルタ７１０のこの率データは、第２のフィルタ７１２の新しい偽陽性率データおよび偽陰性率データを決定する基礎として使用される。
【００６７】
どんな場合でも、第１のフィルタ７１０がメッセージをフィルタ処理すると、メッセージはサーバ７０２からサーバネットワークインターフェース７１６を通ってネットワーク５１０を横切り、クライアント宛先ＩＰアドレスに基づいて適切なクライアント（例えば第１のクライアント７０４）に経路指定される。第１のクライアント７０４は、すべてのクライアントプロセスを制御するＣＰＵ５１４を含む。ＣＰＵ５１４は、メッセージサーバ７０２と通信して第１のフィルタ７１０の偽陽性率データおよび偽陰性率データを取得し、第２のフィルタ７１２を使用すべきときを決定するために、第２のフィルタ７１２の偽陽性率データおよび偽陰性率データとの比較を行う。比較の結果が第２のフィルタ率データが第１のフィルタ７１０の率データより劣らないというような場合、第２のフィルタ７１２が使用され、ＣＰＵ５１４は、メッセージサーバ７０２と通信して、第１のクライアント７０４向けのメッセージがフィルタ処理されずにサーバ７０２を通過できるようにする。
【００６８】
第１のクライアント７０４のユーザが受信メッセージを調べ、ユーザ訂正を行うと、第２のフィルタ７１２の新しい偽陽性率データおよび偽陰性率データが更新される。新しい率データが第１の率データより悪くなった場合、第１のフィルタ７１０が第１のクライアント７０４のフィルタリングを提供するために再度使用される。ＣＰＵ５１４は、その特定のクライアント７０４について第１のフィルタと第２のフィルタ（７１０および７１２）との間でフィルタリングをいつ切り替えるかを決定するために、引き続き率データ比較を行う。
【００６９】
ＣＰＵ５１４は、本明細書に記載した１つまたは複数のフィルタリング機能のうちの任意のものを提供する命令に従って動作可能なアルゴリズムを実行する。アルゴリズムは、それだけには限定されないが、少なくとも上記の基本的な手法のフィルタリング方法を実行する符号化された命令、それとともに使用することができ、ユーザがユーザ訂正を行わないことに対処するための手法の少なくともいずれかまたはすべて、不確実性の決定、閾値の決定、偽陽性率データおよび偽陰性率データを使用した精度率の計算、およびユーザの対話性の選択を含む。ユーザが対話してフィルタ設定を構成したり、メッセージにアクセスしたりすることができるように、ＣＰＵ５１４およびクライアントオペレーティングシステムとの通信を容易にするためにユーザインターフェース５１８が提供される。
【００７０】
クライアント５０２は、少なくとも上記に示したフィルタの説明に従って動作可能な第２のフィルタ７１２も含む。クライアント５０２は、フィルタ処理されたメッセージであり、適切にタグ付けされたメッセージであると予想されるメッセージを第１のフィルタ７１０および第２のフィルタ７１２のうちの少なくとも一方から受信するメッセージインボックス格納場所（またはフォルダ）５２４も含む。第２のメッセージ格納場所（またはフォルダ）５２６は、ユーザがジャンクメールであると決定し、そこに格納することを選択したジャンクメールを収納するために提供されるが、これはゴミ箱フォルダでもよい。上述したように、インボックスフォルダ５２４は、受信メッセージの同等以上のフィルタリングを提供するために第１のフィルタ７１０より第２のフィルタ７１２が使用されたかどうかに応じて第１のフィルタ７１０または第２のフィルタ７１２のいずれかによってフィルタ処理されたメッセージを含むことができる。
【００７１】
上述したように、ユーザは、メッセージをメッセージサーバ７０２からダウンロードすると、インボックスフォルダ５２４のメッセージを詳細に調べて、フィルタ処理されたインボックスメッセージの実際の状況を読み取り、決定する。ジャンクメッセージが第１のフィルタ７１０を通過した場合、ユーザは、メッセージが実際にジャンクメッセージであったことをシステムに知らせるユーザ訂正機能を明示的または暗黙的に実行する。次いで第１および第２のフィルタ（７１０および７１２）は、このユーザ訂正データに基づいて訓練される。第２のフィルタ７１２の精度率が第１のフィルタ７１０より良いと決定されると、同等以上のフィルタリングを提供するために、第２のフィルタ７１２が第１のフィルタ７１０の代わりに使用される。また、第２のフィルタ７１２の精度率が第１のフィルタ７１０と実質的に等しい場合、第２のフィルタを使用してもしなくても良い。フィルタ訓練は、上述したように、予め決定されているいくつかの基準に従って行われるように、ユーザ選択とすることができる。
【００７２】
他のクライアント（７０６および７０８）がメッセージをフィルタ処理するためにメッセージサーバ７０２を使用するため、それぞれのクライアント（７０６および７０８）の新しい率データは、第１のフィルタ７１０のフィルタ動作に影響を与えることを理解されたい。したがって、それぞれのクライアント（７０６および７０８）は、メッセージサーバ７０２との通信も行い、これらのクライアント（７０６および７０８）の第２のフィルタのそれぞれの新しい率データに従って、第１のフィルタ７１０を使用可能または使用不可にする。メッセージサーバ７０２は、それぞれのクライアントフィルタ要件に関連するクライアント選好のフィルタ選好テーブルを含み得る。したがって、バッファに入れられたすべてのメッセージは、宛先ＩＰアドレスについての問い合わせが行われ、フィルタテーブルに格納されているその宛先アドレスに関連付けられているフィルタ選好に従って処理される。したがって、第１のクライアント７０４向けにブロードキャストされたジャンクメッセージは、第１のクライアント７０４の率データ比較結果に従って、第１のクライアント７０４の第２のフィルタ７１２によって処理される必要があり、第２のクライアント７０６向けの同じジャンクメッセージも、それとともに取得された率データ比較の結果に従って、メッセージサーバ７０２の第１のフィルタ７１０によって処理される必要がある。
【００７３】
個々のクライアント（７０４、７０６、および７０８）の個々の新しい率データをサーバ７０２によって同時に受信し、その平均を決定するように処理することができることをさらに理解されたい。次いでこの平均値を使用して、クライアントの第１のフィルタ７１０または第２のフィルタ７１２を別々に、またはグループとして切り替えて使用するかどうかを決定することができる。あるいは、クライアント（７０４、７０６、および７０８）の最高の新しい率データをサーバ７０２によって決定し、別々にまたはグループとして第１のフィルタ７１０とクライアントフィルタ７１２との間で切り替えるために使用することができる。
【００７４】
次に図８を参照すると、本発明のフィルタリングの態様を使用する大規模なフィルタリングシステム８００の代替の実施形態を示している。メッセージのフィルタリングが例えばインターネットサービスプロバイダなどシステム全般にわたるメールシステムによって大規模に行われるより頑強な実装では、複数のフィルタリングシステムを使用して、大量の受信メッセージを処理することができる。大量の受信メッセージ８０２が受信され、異なる多くのユーザの宛先にアドレス指定される。メッセージ８０２は、例えばＳＭＴＰゲートウェイ８０４を介してプロバイダシステムに入り、次いで様々なフィルタシステム８０８、８１０、および８１２に経路指定するシステムメッセージ経路指定構成要素８０６（それぞれフィルタシステム１、フィルタシステム２、．．．フィルタシステムＮとも呼ばれる）に送信される。
【００７５】
各フィルタシステム（８０８、８１０、および８１２）は、経路指定制御構成要素、第１のフィルタ、第２のフィルタ、および出力バッファを含む。したがって、フィルタシステム８０８は、第１のシステムフィルタ８１６と第２のシステムフィルタ８１８との間でメッセージを経路指定する経路指定制御構成要素８１４を含む。第１のフィルタおよび第２のフィルタ（８１６および８１８）の出力は、メッセージがユーザインボックス経路指定構成要素８２２に送信される前に一時的にメッセージを格納する出力バッファ８２０に接続される。ユーザインボックス経路指定構成要素８２２は、フィルタシステム８０８の出力バッファ８２０から受信された各メッセージに、ユーザ宛先アドレスについて問い合わせを行い、メッセージを複数のユーザインボックス８２４（インボックス１、インボックス２、．．．インボックスＮとも呼ぶ）の中の適切なユーザインボックスに経路指定する。
【００７６】
システムメッセージ経路指定構成要素８０６は、メッセージ処理に対応するフィルタシステム（８０８、８１０、および８１２）の帯域幅の可用性に従ってフィルタシステム（８０８、８１０、８１２）間でメッセージを経路指定するために、負荷バランシング機能を含む。したがって、第１のフィルタシステム８０８の受信メッセージキュー（図示してはいないが、経路指定構成要素８１４の一部）は、バックアップされ、システム８００に必要なスループットに対応できない場合、このキューの状況情報は、システム８１４の受信キューが他のメッセージを受信できるようになるまで受信メッセージ８０２が他のフィルタシステム（８１０および８１２）に経路指定されるように、経路指定制御構成要素８１４からシステム経路指定構成要素８０６にフィードバックされる。残りのフィルタシステム（８１０および８１２）のそれぞれは、システム経路指定構成要素８０６が使用可能なすべてのフィルタシステム、フィルタシステム１、フィルタシステム２、．．．フィルタシステムＮの間のメッセージ負荷処理（ｍｅｓｓａｇｅ  ｌｏａｄ  ｈａｎｄｌｉｎｇ）を処理することができるように、この受信キューフィードバック機能を含む。
【００７７】
次に、第１のシステムフィルタ８０８の適応型フィルタ機能について詳しく説明する。この特定のシステムの実装では、システム管理者は、タグ付け／非タグ付けメッセージを提供するためにフィルタの精度に関するフィードバックを提供することによって、システム８００のジャンクメールを何が構成しているかを決定するのにタスクが課される。つまり、管理者は、それぞれのシステム（８０８、８１０、８１２）のそれぞれのＦＮおよびＦＰ情報を生成するためにユーザ訂正を行う。受信メッセージが大量であるため、これは、何がジャンクメッセージで何が非ジャンクメッセージであるかを決定する際に、取得されたサンプルがそれぞれのフィルタシステム（８０８、８１０、８１２）によって実行されるフィルタリングの精度を反映する高度の確率を数学的に提供する統計的なサンプリング方法に従って行うことができる。
【００７８】
それを促進するのに、管理者は、システム制御構成要素８２６を介してバッファ８２０からメッセージのサンプルを取得し、サンプル上のメッセージのタグ付けの精度を確認する。システム制御構成要素８２６は、その監視および制御のためにフィルタシステム（８０８、８１０、８１２）に相互接続するハードウェアおよび／またはソフトウェア処理システムとすることができる。誤ってタグ付けされた任意のメッセージを使用して、第１のフィルタ８１６の偽陰性（ＦＮ）率データおよび偽陽性（ＦＰ）率データを設定する。次いでこのＦＮ／ＦＰ率データを第２のフィルタ８１８で使用する。第１のフィルタ８１６の率データが閾値を下回る場合、第２のフィルタ８１８を使用可能にして、少なくとも第１のフィルタ８１６と同程度のフィルタリングを提供することができる。管理者がバッファ８２０から再度ユーザ訂正のサンプリングを行うとき、第２のフィルタ８１８のＦＮ／ＦＰデータが第１のフィルタ８１６のものより劣る場合、経路指定制御構成要素８１４は、第２のフィルタ８１８のこのＦＮ／ＦＰデータを処理し、メッセージ経路指定が第１のフィルタ８１６に戻されることを決定する。
【００７９】
システム制御構成要素８２６は、その間でデータを交換するためにシステムメッセージ経路指定構成要素８０６とインターフェースし、管理者によるその管理を提供する。また、システム制御構成要素８２６は、これらのシステムのサンプリング機能を提供するように、残りのシステム、フィルタシステム２、．．．フィルタシステムＮの出力バッファとインターフェースする。管理者は、その動作を監視するために、システム制御構成要素８２６を介してユーザインボックス経路指定構成要素８２２にアクセスすることもできる。
【００８０】
図１を参照して上述したように、フィルタの精度を、複数のフィルタリングシステムの精度に拡大することができる。次いで第１のシステム８０８のＦＮ／ＦＰ率データを使用して、第２のシステム８１０および第３のシステム８１２のフィルタを訓練して、システム８００全体のフィルタリング機能をさらに向上させることができる。同様に、特定のシステムのＦＮ／ＦＰデータに従って負荷制御を実行することができる。つまり、第１のシステム８０８のＦＮ／ＦＰデータ全体が第２のシステム８１０のＦＮ／ＦＰデータより劣る場合、より多くのメッセージを第１のシステム８０８より第２のシステム８１０に経路指定することができる。
【００８１】
フィルタシステム（８０８、８１０、および８１２）を、それぞれ専用のコンピュータまたはコンピュータの組合せ上で稼働する個別のフィルタアルゴリズムとすることができることを理解されたい。あるいは、ハードウェア機能が存在する場合、すべてのフィルタリングが単一の頑強なマシン上で行われるように、アルゴリズムを単一のコンピュータ上でともに稼働させることができる。
【００８２】
次に図９を参照すると、開示されたアーキテクチャを実行するよう動作可能なコンピュータのブロック図を示している。本発明の様々な態様に関する状況をさらに提供するために、図９および次の説明は、本発明の様々な態様を実施するのに適した動作環境９００の概略説明を提供するものである。本発明は、１つまたは複数のコンピュータ上で稼働し得るコンピュータ実行可能命令の一般的な文脈で説明してきたが、本発明を他のプログラムモジュールとの組合せで実施する、かつ／またはハードウェアおよびソフトウェアの組合せとして実施することもできることを当業者であれば理解されよう。一般にプログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実装するルーチン、プログラム、構成要素、データ構造などを含む。さらに、本方法は、単一のプロセッサまたはマルチプロセッサのコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、パーソナルコンピュータ、ハンドヘルドコンピューティング装置、マイクロプロセッサベースおよびプログラム可能家庭用電化製品など、１つまたは複数の関連の装置に操作可能にそれぞれ結合することができる他のコンピュータシステム構成で実施できることを当業者であれば理解されよう。また、本発明の態様例は、いくつかのタスクが通信ネットワークによってリンクされているリモート処理装置によって実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールを、ローカルおよびリモートのメモリ記憶装置に置くことができる。
【００８３】
再度図９を参照すると、本発明の様々な態様を実施するための環境９００例は、コンピュータ９０２を含んでおり、コンピュータ９０２は、処理ユニット９０４、システムメモリ９０６、システムバス９０８を含む。システムバス９０８は、それだけには限定されないが、システムメモリ９０６を含むシステム構成要素を処理ユニット９０４に結合する。処理ユニット９０４は、市販の様々なプロセッサのうちのどんなものでもよい。デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを処理ユニット９０４として使用することもできる。
【００８４】
システムバス９０８は、市販の様々なバスアーキテクチャのうちの任意のものを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のうちどんなものでもよい。システムメモリ９０６は、読取り専用メモリ（ＲＯＭ）９１０およびランダムアクセスメモリ（ＲＡＭ）９１２を含む。基本入出力システム（ＢＩＯＳ）は、例えば起動中など、コンピュータ９０２内の要素間での情報の転送を助ける基本ルーチンを含み、ＲＯＭ９１０に格納されている。
【００８５】
コンピュータ９０２は、ハードディスクドライブ９１４、磁気ディスクドライブ９１６（例えば取外式ディスク９１８から読み取り、またはそこに書き込む）、光ディスクドライブ９２０（例えばＣＤ−ＲＯＭディスク９２２を読み取る、あるいは他の光媒体から読み取り、またはそこに書き込むなど）をさらに含む。ハードディスクドライブ９１４、磁気ディスクドライブ９１６、および光ディスクドライブ９２０は、それぞれハードディスクドライブインターフェース９２４、磁気ディスクドライブインターフェース９２６、および光ドライブインターフェース９２８によってシステムバス９０８に接続することができる。ドライブおよびその関連のコンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令などの不揮発性の記憶域を提供する。コンピュータ９０２では、ドライブおよび媒体は、ブロードキャストプログラミングの適したデジタル形式での保管に対応する。上記のコンピュータ可読媒体の説明は、ハードディスク、取外式磁気ディスク、およびＣＤを指しているが、ｚｉｐドライブ、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、カートリッジなど、コンピュータによって読み取ることができる他のタイプの媒体を動作環境例で使用することもできること、およびこうした任意の媒体は、本発明の方法を実行するためのコンピュータ実行可能命令を含み得ることを当業者であれば理解されたい。
【００８６】
オペレーティングシステム９３０、１つまたは複数のアプリケーションプログラム９３２、他のプログラムモジュール９３４、およびプログラムデータ９３６を含めて、いくつかのプログラムモジュールをドライブおよびＲＡＭ９１２に格納することができる。本発明は、市販の様々なオペレーティングシステムまたはオペレーティングシステムの組合せとともに実施できることを理解されたい。
【００８７】
ユーザは、コマンドおよび情報をキーボード９３８およびマウス９４０などのポインティング装置を介してコンピュータ９０２に入力することができる。他の入力装置（図示せず）には、マイクロフォン、ＩＲリモートコントロール、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどがある。これらおよび他の入力装置は、しばしばシステムバス９０８に結合されているシリアルポートインターフェース９４２を介して処理ユニット９０４に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）、ＩＲインターフェースなど他のインターフェースで接続してもよい。モニタ９４４または他のタイプの表示装置もまた、ビデオアダプタ９４６などのインターフェースを介してシステムバス９０８に接続される。コンピュータは一般に、モニタ９４４に加えて、スピーカやプリンタなどの他の周辺出力装置（図示せず）を含んでいる。
【００８８】
コンピュータ９０２は、リモートコンピュータ９４８など１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク式環境で動作することができる。リモートコンピュータ９４８は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースのエンターテイメント装置、ピア装置または他の共通のネットワークノードとすることができ、一般に、コンピュータ９０２に関連して記載した多くの、またはすべての要素を含むが、簡潔にするためにメモリ記憶装置９５０のみを示している。示した論理接続は、ＬＡＮ９５２およびＷＡＮ９５４を含む。こうしたネットワーキング環境は、オフィス、全社規模のコンピュータネットワーク、イントラネット、およびインターネットではごく一般的である。
【００８９】
ＬＡＮネットワーキング環境で使用する場合、コンピュータ９０２は、ネットワークインターフェースまたはアダプタ９５６を介してローカルネットワーク９５２に接続される。ＷＡＮネットワーキング環境で使用する場合、コンピュータ９０２は一般に、モデム９５８を含む、ＬＡＮを介して通信サーバに接続される、またはインターネットなどＷＡＮ９５４を介して通信を確立する他の手段を有する。モデム９５８は、内蔵のものでも外付けのものでもよく、シリアルポートインターフェース９４２を介してシステムバス９０８に接続される。ネットワーク式環境では、コンピュータ９０２に関連して示したプログラムモジュール、またはその一部をリモートメモリ記憶装置９５０に格納することができる。図示したネットワーク接続は例であり、コンピュータ間の通信リンクを確立する他の手段を使用してもよいことは理解されよう。
【００９０】
本発明の一態様によれば、フィルタアーキテクチャは、フィルタリングが使用されるシステムの特定のユーザによって望まれるフィルタリングの度合いに適応する。しかし、この「適応」の側面は、ローカルユーザシステム環境からシステムベンダーの製造プロセスまで拡大することができ、そこでは、特定のクラスのユーザのフィルタリングの度合いを工場で売り物として生成されるシステムに実装するために選択することができることを理解されたい。例えば、購入者が、購入された第１のシステム群はいかなるジャンクメールへのアクセスも必要としないユーザに提供されることを決定した場合、このシステム群の工場でのデフォルトの設定は高く設定することができ、第２のクラスのユーザの第２のシステム群は、より多くのジャンクメールを調べることができるようにより低い設定に構成することができる。いずれのシナリオでも、本発明の適応の性質は、任意のクラスのユーザの個々のユーザがフィルタリングの度合いを調整することができるように、ローカルに実行可能とすることができ、または使用不可の場合、デフォルトの設定をまったく変更できないようにすることができる。開示されたフィルタアーキテクチャで適切に構成された１つまたは多くのシステムを構成する匹敵するアクセス権を行使するネットワーク管理者は、こうしたクラスの構成をローカルに実施することもできることを理解されたい。
【００９１】
上記で説明してきたことは、本発明の例を含む。当然、本発明を説明するために構成要素または方法の予想されるすべての組合せについて説明することは不可能であり、本発明の他の多くの組合せおよび置換えが可能であることを当業者であれば理解できよう。したがって、本発明は、添付の特許請求の範囲の意図および範囲内のこうしたすべての代替形態、変更形態、および変形形態を含むものとする。さらに、「含む」という用語が詳細な説明または特許請求の範囲で使用されている限り、こうした用語は、請求項で移行語として使用されるときに「含む」が解釈される「含む」という用語と同じように包含的であるものとする。
【図面の簡単な説明】
【００９２】
【図１】本発明によるフィルタシステムを示す概略ブロック図である。
【図２】キャッチ率に関する性能のトレードオフを示すグラフである。
【図３】本発明による方法を示すフローチャートである。
【図４Ａ】本発明による適応型ジャンクメールフィルタリングシステムの構成のユーザインターフェース例を示す図である。
【図４Ｂ】本発明による適応型ジャンクメールフィルタリングシステムの構成のユーザインターフェース例を示す図である。
【図５】本発明を使用するメッセージ処理アーキテクチャを示す概略ブロック図である。
【図６】本発明の技術による、複数ユーザのログインを容易にし、受信メッセージをフィルタ処理する１つまたは複数のクライアントコンピュータを有するシステムを示す図である。
【図７】本発明による、最初のフィルタリングがメッセージサーバ上で行われ、二次的なフィルタリングが１つまたは複数のクライアント上で行われるシステムを示す図である。
【図８】大規模な実装の適応型フィルタリングシステムを示すブロック図である。
【図９】開示されたアーキテクチャを実行するよう動作可能なコンピュータを示すブロック図である。
【図１】
0004524192.tif 000005
【図２】
0004524192.tif 000006
【図３】
0004524192.tif 000007
【図４Ａ】
0004524192.tif 000008
【図４Ｂ】
0004524192.tif 000009
【図５】
0004524192.tif 000010
【図６】
0004524192.tif 000011
【図７】
0004524192.tif 000012
【図８】
0004524192.tif 000013
【図９】
0004524192.tif 000014