(57)【特許請求の範囲】
【請求項１】
方法であって、
電子通信の一部を形成するターゲット・ストリングを受け取ることに応じて、コンピューター・システムの少なくとも１つのプロセッサーを用いて、複数の候補ストリングを参照ストリングのコーパスから選択するステップであって、前記複数の候補ストリングを選択するステップは、
前記ターゲット・ストリングのストリング長を、前記コーパスのうちの１つの参照ストリングのストリング長と比較するステップと、
ストリング長の前記比較の結果に従って、前記１つの参照ストリングを選択して前記複数の候補ストリングに入れるステップと
を含む、ステップと、
前記複数の候補ストリングを選択することに応じて、前記少なくとも１つのプロセッサーを用いて、前記ターゲット・ストリングと前記複数の候補ストリングのうちの１つの候補ストリングとの間での第１の比較と、前記ターゲット・ストリングと前記１つの候補ストリングとの間での第２の比較とを行うステップと、
前記少なくとも１つのプロセッサーを用いて、前記第１の比較および前記第２の比較の結果に従って、前記電子通信がスパムであるか非スパムであるかを判定するステップと
を含み、
前記第１の比較は、複数の他とは異なる英数キャラクターの各キャラクターについて、前記ターゲット・ストリング内に存在する前記各キャラクターのカウントを、前記１つの候補ストリング内に存在する前記各キャラクターのカウントと比較することを含み、前記ターゲット・ストリング内に存在する前記各キャラクターの前記カウントは、前記各キャラクターの前記ターゲット・ストリング内の他のキャラクターに対する位置に関係なく求められ、
前記第２の比較は、前記電子通信のタイムスタンプを、前記１つの候補ストリングを含む別の電子通信のタイムスタンプと比較することを含む、方法。
【請求項２】
請求項１に記載の方法であって、参照ストリングの前記コーパスは、複数のクラスターを含み、各クラスターは、相互に類似のストリングのセットを含み、前記複数の候補ストリングの各候補ストリングは、他とは異なる１つのクラスターを表し、前記方法は更に、前記第１の比較を行うことに応じて、前記コンピューター・システムを用いて、前記複数のクラスターからクラスターを選択し、選択された前記クラスターへ前記ターゲット・ストリングを割り当てるステップを含む、方法。
【請求項３】
請求項２に記載の方法であって、複数のタイムスタンプに従って、ターゲットの前記通信がスパムであるか非スパムであるかを判定するステップを更に含み、前記複数のタイムスタンプの各タイムスタンプは、選択された前記クラスターのメンバーに対応する、方法。
【請求項４】
請求項２に記載の方法であって、
選択された前記クラスターへ前記ターゲット・ストリングを割り当てることに応じて、選択された前記クラスターのクラスター・メンバーのカウントを決定するステップと、
クラスター・メンバーの前記カウントに従って、前記電子通信がスパムであるか非スパムであるかを判定するステップと
を更に含む方法。
【請求項５】
請求項２に記載の方法であって、選択された前記クラスターに従って、前記電子通信を、選択されたスパム・ウェーブに属するものと識別するステップを更に含む方法。
【請求項６】
請求項１に記載の方法であって、前記複数の候補ストリングを選択するステップは、
前記ターゲット・ストリングのうちの異なるキャラクターの第１カウントと、前記１つの参照ストリングのうちの異なるキャラクターの第２カウントとを決定するステップと、
前記第１カウントが、所定のスレッショルドよりも小さい量だけ前記第２カウントと異なるときに、前記１つの参照ストリングを選択して前記複数の候補ストリングに入れるステップと
を更に含む、方法。
【請求項７】
請求項１に記載の方法であって、前記複数の候補ストリングを選択するステップは、
前記ターゲット・ストリングの第１ストリング・スコアを、
【数１】
0005990284.tif 000005
という関数として決定するステップであって、ｐｉは、前記ターゲット・ストリングの第ｉのキャラクターのＡＳＣＩＩコードを示し、ｗｉは、キャラクター固有の重みを示す、ステップと、
前記１つの参照ストリングの第２ストリング・スコアを決定するステップと、
前記第１ストリング・スコアが、所定のスレッショルドよりも小さい量だけ前記第２ストリング・スコアと異なるときに、前記１つの参照ストリングを選択して前記複数の候補ストリングに入れるステップと
を更に含む、方法。
【請求項８】
請求項１に記載の方法であって、前記第１の比較を行うことは、ストリング間距離を、
【数２】
0005990284.tif 000006
という関数として決定することを含み、Ｔは、前記ターゲット・ストリングのキャラクターのセットを示し、Ｃは、前記１つの候補ストリングのキャラクターのセットを示し、ＮｉＴは、前記ターゲット・ストリング内に存在するキャラクターｉのカウントを示し、ＮｉＣは、前記１つの候補ストリング内に存在するキャラクターｉのカウントを示し、ｗｉは、キャラクターｉのキャラクター固有の重みである、方法。
【請求項９】
請求項８に記載の方法であって、前記ストリング間距離は更に、
【数３】
0005990284.tif 000007
という関数として決定され、キャラクターｊは、前記ターゲット・ストリング内にあるが前記１つの候補ストリング内にはなく、ｗｊは、キャラクターｊのキャラクター固有の重みであり、ｃは、前記ターゲット・ストリングの前記ストリング長に従って選択された数である、方法。
【請求項１０】
請求項１に記載の方法であって、前記第１の比較を行うことは、ストリング間距離を、
【数４】
0005990284.tif 000008
という関数として決定することを含み、Ｔは、前記ターゲット・ストリングのキャラクターのセットを示し、Ｃは、前記１つの候補ストリングのキャラクターのセットを示し、キャラクターｉは、前記ターゲット・ストリング内にあるが前記１つの候補ストリング内にはなく、ｗｉは、キャラクターｉのキャラクター固有の重みであり、ｃは、前記ターゲット・ストリングの前記ストリング長に従って選択された数である、方法。
【請求項１１】
請求項１に記載の方法であって、前記電子通信はブログ・コメントを含む、方法。
【請求項１２】
請求項１に記載の方法であって、前記電子通信は、ソーシャル・ネットワーク・サイトへポストされるメッセージを含む、方法。
【請求項１３】
少なくとも１つのプロセッサーを含むコンピューター・システムであって、該少なくとも１つのプロセッサーは、
電子通信の一部を形成するターゲット・ストリングを受け取ることに応じて、複数の候補ストリングを参照ストリングのコーパスから選択し、前記複数の候補ストリングを選択することは、
前記ターゲット・ストリングのストリング長を、前記コーパスのうちの１つの参照ストリングのストリング長と比較することと、
ストリング長の前記比較の結果に従って、前記１つの参照ストリングを選択して前記複数の候補ストリングに入れる選択することと
を含み、
前記複数の候補ストリングを選択することに応じて、前記ターゲット・ストリングと前記複数の候補ストリングのうちの１つの候補ストリングとの間での第１の比較と、前記ターゲット・ストリングと前記１つの候補ストリングとの間での第２の比較とを行い、
前記第１の比較および前記第２の比較の結果に従って、前記電子通信がスパムであるか非スパムであるかを決定する
ようにプログラムされ、
前記第１の比較は、複数の他とは異なる英数キャラクターの各キャラクターについて、前記ターゲット・ストリング内に存在する前記各キャラクターのカウントを、前記１つの候補ストリング内に存在する前記各キャラクターのカウントと比較することを含み、前記ターゲット・ストリング内に存在する前記各キャラクターの前記カウントは、前記各キャラクターの前記ターゲット・ストリング内の他のキャラクターに対する位置に関係なく求められ、
前記第２の比較は、前記電子通信のタイムスタンプを、前記１つの候補ストリングを含む別の電子通信のタイムスタンプと比較することを含む、コンピューター・システム。
【請求項１４】
請求項１３に記載のコンピューター・システムであって、参照ストリングの前記コーパスは、複数のクラスターを含み、各クラスターは、類似のストリングのセットを含み、前記複数の候補ストリングの各候補ストリングは、他とは異なる１つのクラスターを表し、前記プロセッサーは更に、前記第１の比較を行うことに応じて、前記複数のクラスターからクラスターを選択し、選択された前記クラスターへ前記ターゲット・ストリングを割り当てるようにプログラムされた、コンピューター・システム。
【請求項１５】
請求項１４に記載のコンピューター・システムであって、前記少なくとも１つのプロセッサーは更に、複数のタイムスタンプに従って、ターゲットの前記通信がスパムであるか非スパムであるかを判定するようにプログラムされ、前記複数のタイムスタンプの各タイムスタンプは、選択された前記クラスターのメンバーに対応する、コンピューター・システム。
【請求項１６】
請求項１４に記載のコンピューター・システムであって、前記少なくとも１つのプロセッサーは更に、
選択された前記クラスターへ前記ターゲット・ストリングを割り当てることに応じて、選択された前記クラスターのクラスター・メンバーのカウントを決定し、
クラスター・メンバーの前記カウントに従って、前記電子通信がスパムであるか非スパムであるかを判定する
ようにプログラムされた、コンピューター・システム。
【請求項１７】
請求項１４に記載のコンピューター・システムであって、前記少なくとも１つのプロセッサーは更に、選択された前記クラスターに従って、前記電子通信を、選択されたスパム・ウェーブに属するものと識別するようにプログラムされた、コンピューター・システム。
【請求項１８】
請求項１３に記載のコンピューター・システムであって、前記複数の候補ストリングを選択することは、
前記ターゲット・ストリングのうちの異なるキャラクターの第１カウントと、前記１つの参照ストリングのうちの異なるキャラクターの第２カウントとを決定することと、
前記第１カウントが、所定のスレッショルドよりも小さい量だけ前記第２カウントと異なるとき、前記１つの参照ストリングを選択して前記複数の候補ストリングに入れることと
を更に含む、コンピューター・システム。
【請求項１９】
請求項１３に記載のコンピューター・システムであって、前記複数の候補ストリングを選択することは、
前記ターゲット・ストリングの第１ストリング・スコアを、
【数５】
0005990284.tif 000009
という関数であって、ｐｉは、前記ターゲット・ストリングの第ｉのキャラクターのＡＳＣＩＩコードを示し、ｗｉは、キャラクター固有の重みを示す関数として決定することと、
前記１つの参照ストリングの第２ストリング・スコアを決定することと、
前記第１ストリング・スコアが、所定のスレッショルドよりも小さい量だけ前記第２ストリング・スコアと異なるときに、前記１つの参照ストリングを選択して前記複数の候補ストリングに入れることと
を含む、コンピューター・システム。
【請求項２０】
請求項１３に記載のコンピューター・システムであって、前記第１の比較を行うことは、ストリング間距離を、
【数６】
0005990284.tif 000010
という関数として決定することを含み、Ｔは、前記ターゲット・ストリングのキャラクターのセットを示し、Ｃは、前記１つの候補ストリングのキャラクターのセットを示し、ＮｉＴは、前記ターゲット・ストリング内に存在するキャラクターｉのカウントを示し、ＮｉＣは、前記１つの候補ストリング内に存在するキャラクターｉのカウントを示し、ｗｉは、キャラクターｉのキャラクター固有の重みである、コンピューター・システム。
【請求項２１】
請求項２０に記載のコンピューター・システムであって、前記ストリング間距離は更に、
【数７】
0005990284.tif 000011
という関数として決定され、キャラクターｊは、前記ターゲット・ストリング内にあるが前記１つの候補ストリング内にはなく、ｗｊは、キャラクターｊのキャラクター固有の重みであり、ｃは、前記ターゲット・ストリングの前記ストリング長に従って選択された数である、コンピューター・システム。
【請求項２２】
請求項１３に記載のコンピューター・システムであって、前記第１の比較を行うことは、ストリング間距離を、
【数８】
0005990284.tif 000012
という関数として決定することを含み、Ｔは、前記ターゲット・ストリングのキャラクターのセットを示し、Ｃは、前記１つの候補ストリングのキャラクターのセットを示し、キャラクターｉは、前記ターゲット・ストリング内にあるが前記１つの候補ストリング内にはなく、ｗｉは、キャラクターｉのキャラクター固有の重みであり、ｃは、前記ターゲット・ストリングの前記ストリング長に従って選択された数である、コンピューター・システム。
【請求項２３】
請求項１３に記載のコンピューター・システムであって、前記電子通信はブログ・コメントを含む、コンピューター・システム。
【請求項２４】
請求項１３に記載のコンピューター・システムであって、前記電子通信は、ソーシャル・ネットワーク・サイトへポストされるメッセージを含む、コンピューター・システム。
【請求項２５】
方法であって、
コンピューター・システムの少なくとも１つのプロセッサーを用いて、電子通信を受け取るステップと、
前記電子通信を受け取ることに応じて、前記少なくとも１つのプロセッサーを用いて、前記電子通信からターゲット・ストリングを抽出するステップと、
前記少なくとも１つのプロセッサーを用いて、スパム防止サーバーへ前記ターゲット・ストリングを送るステップと、
前記少なくとも１つのプロセッサーを用いて、前記電子通信がスパムであるか非スパムであるかを示すターゲット・ラベルを受け取るステップと
を含み、前記ターゲット・ラベルは前記スパム防止サーバーで決定され、前記ターゲット・ラベルを決定することは、
前記スパム防止サーバーを用いて、複数の候補ストリングを参照ストリングのコーパスから選択するステップであって、前記複数の候補ストリングを選択するステップは、
前記ターゲット・ストリングのストリング長を、前記コーパスのうちの１つの参照ストリングのストリング長と比較するステップと、
ストリング長の前記比較の結果に従って、前記１つの参照ストリングを選択して前記複数の候補ストリングに入れるステップと
を含む、ステップと、
前記複数の候補ストリングを選択することに応じて、前記スパム防止サーバーを用いて、前記ターゲット・ストリングと前記複数の候補ストリングのうちの１つの候補ストリングとの間での第１の比較と、前記ターゲット・ストリングと前記１つの候補ストリングとの間での第２の比較とを行うステップと、
前記スパム防止サーバーを用いて、前記第１の比較および前記第２の比較の結果に従って、前記ターゲット・ラベルを決定するステップと
を含み、
前記第１の比較は、複数の他とは異なる英数キャラクターの各キャラクターについて、前記ターゲット・ストリング内に存在する前記各キャラクターのカウントを、前記１つの候補ストリング内に存在する前記各キャラクターのカウントと比較することを含み、前記ターゲット・ストリング内に存在する前記各キャラクターの前記カウントは、前記各キャラクターの前記ターゲット・ストリング内の他のキャラクターに対する位置に関係なく求められ、
前記第２の比較は、前記電子通信のタイムスタンプを、前記１つの候補ストリングを含む別の電子通信のタイムスタンプと比較することを含む、方法。
【請求項２６】
方法であって、
電子通信の一部を形成するターゲット・ストリングを受け取ることに応じて、コンピューター・システムの少なくとも１つのプロセッサーを用いて、複数の候補ストリングを参照ストリングのコーパスから選択するステップであって、前記複数の候補ストリングを選択するステップは、
前記ターゲット・ストリングのストリング長を、前記コーパスのうちの１つの参照ストリングのストリング長と比較するステップと、
ストリング長の前記比較の結果に従って、前記１つの参照ストリングを選択して前記複数の候補ストリングに入れるステップと
を含む、ステップと、
前記複数の候補ストリングを選択することに応じて、前記少なくとも１つのプロセッサーを用いて、前記ターゲット・ストリングが前記複数の候補ストリングのうちの１つの候補ストリングから離れているストリング間距離を決定するステップであって、前記ストリング間距離は、前記ターゲット・ストリング内に存在する複数の他とは異なる英数キャラクターの各キャラクターのカウントに従って、且つ、前記１つの候補ストリング内に存在する前記各キャラクターのカウントに従って決定され、前記ターゲット・ストリング内に存在する前記各キャラクターの前記カウントは、前記各キャラクターの前記ターゲット・ストリング内の他のキャラクターに対する位置に関係なく求められる、ステップと、
前記少なくとも１つのプロセッサーを用いて、前記ストリング間距離に従って、前記電子通信がスパムであるか非スパムであるかを判定するステップと
を含む方法。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  本発明は、電子通信を分類する方法およびシステムと関連し、特に、一方的に送られてくる商業的電子通信（スパム）をフィルタリングするシステムおよび方法と関連する。
【０００２】
[0002]  スパムとしても知られている一方的に送られてくる商業的電子通信は、世界中の全ての通信トラフィックの中の多くの部分を占め、コンピューターおよび電話のメッセージング・サービスに影響を及ぼしている。スパムは多くの形態をとることができ、それは、一方的に送られてくるＥメール通信から、ブログやソーシャル・ネットワーク・サイトなどのような様々なインターネット・サイトについてのユーザー・コメントを装うスパム・メッセージまである。スパムは、貴重なハードウェア・リソースを取り上げてしまい、生産性に影響を及ぼし、通信サービスおよび／またはインターネットの多くのユーザーからは不快であり邪魔であると考えられている。
【０００３】
[0003]  Ｅメール・スパムの場合、ユーザーまたはＥメール・サービス・プロバイダーのコンピューター・システムで実行されるソフトウェアを用いて、Ｅメール・メッセージをスパムまたは非スパムに分類すること、更には、様々な種類のスパム・メッセージ（例えば、製品の売り出し、アダルト・コンテンツ、Ｅメール詐欺）を区別することができる。次に、スパム・メッセージは、特別のフォルダーへ送る又は削除することができる。
【０００４】
[0004]  同様に、コンテンツ・プロバイダーのコンピューター・システムで実行されるソフトウェアを用いて、ウェブサイトへポストされた不正メッセージをインターセプトし、そのそれぞれのメッセージが表示されることを妨げることができ、また、そのそれぞれのメッセージがスパムであり得ることの警告を、ウェブサイトのユーザーに対して表示することができる。
【０００５】
[0005]  スパム・メッセージを識別するための幾つかのアプローチが提案されており、それらは、メッセージの発信元のアドレスを既知の問題のあるアドレスまたは信頼のあるアドレスのリストと突き合わせること（ブラックリスティングおよびホワイトリスティングとそれぞれ呼ばれる技術）、特定の単語や単語パターン（例えば、ｒｅｆｉｎａｎｃｉｎｇ、Ｖｉａｇｒａ（Ｒ）、ｓｔｏｃｋ（借り換え、バイアグラ（登録商標）、株））をサーチすること、およびメッセージのヘッダーを分析することを含む。特徴の抽出／突き合わせの方法は、しばしば、自動データ分類方法（例えば、ベイジアン・フィルタリング、ニューラル・ネットワーク）と関連して用いられる。
【０００６】
[0006]  スパムは、しばしば、スパム・ウェーブとしても知られる速い連続する類似のメッセージのグループで、到着する。スパムの形およびコンテンツは、１つのスパム・ウェーブから別のスパム・ウェーブへと実質的に変化し得るので、連続的な検出は、新たなスパム・ウェーブに対して迅速に認識および反応することができる方法およびシステムから利益を得られる。
【発明の概要】
【０００７】
[0007]  １つの態様によると、方法は、コンピューター・システムを用いて、電子通信の一部を形成するターゲット・ストリングを受け取ることと、ターゲット・ストリングに従ってストリング適格基準（string eligibility criterion）を決定することと、ストリング適格基準に従って参照ストリングのコーパス（corpus）をプレフィルタリングして、複数の候補ストリングを作成することとを含む。コンピューター・システムを用いて、候補ストリングを選択することに応じて、ターゲット・ストリングのキャラクター・ヒストグラムと複数の候補ストリングのうちの１つの候補ストリングのキャラクター・ヒストグラムとの間での第１の比較と、電子通信のタイムスタンプと候補ストリングのタイムスタンプとの間での第２の比較とを行う。コンピューター・システムは、第１の比較および第２の比較の結果に従って、電子通信がスパムであるか非スパムであるかを判定する。
【０００８】
[0008]  別の態様では、コンピューター・システムは少なくとも１つのプロセッサーを含み、電子通信の一部を形成するターゲット・ストリングを受け取るように、且つターゲット・ストリングに従ってストリング適格基準を決定するように、且つストリング適格基準に従って参照ストリングのコーパスをプレフィルタリングして、複数の候補ストリングを作成するように、プログラムされる。プロセッサーは更に、候補ストリングを選択することに応じて、ターゲット・ストリングのキャラクター・ヒストグラムと複数の候補ストリングのうちの１つの候補ストリングのキャラクター・ヒストグラムとの間での第１の比較と、電子通信のタイムスタンプと候補ストリングのタイムスタンプとの間での第２の比較とを行うようにプログラムされる。プロセッサーは更に、第１の比較および第２の比較の結果に従って、電子通信がスパムであるか非スパムであるかを判定するようにプログラムされる。
【０００９】
[0009]  別の態様によると、方法は、コンピューター・システムを用いて、電子通信を受け取ることと、電子通信を受け取ることに応じて、電子通信からからターゲット・ストリングを抽出することと、ターゲット・ストリングをスパム防止サーバーへ送ることと、ターゲット・ストリングを送ることに応じて、電子通信がスパムであるか非スパムであるかを示すターゲット・ラベルを受け取ることとを含み、ターゲット・ラベルはスパム防止サーバーで決定される。ターゲット・ラベルを決定することは、スパム防止サーバーを用いて、ターゲット・ストリングに従って適格基準を決定することと、適格基準に従って参照ストリングのコーパスをプレフィルタリングして、複数の候補ストリングを作成することと、候補ストリングを選択することに応じて、ターゲット・ストリングのキャラクター・ヒストグラムと複数の候補ストリングのうちの１つの候補ストリングのキャラクター・ヒストグラムとの間での第１の比較と、電子通信のタイムスタンプと候補ストリングのタイムスタンプとの間での第２の比較とを行ことと、第１の比較および第２の比較の結果に従ってターゲット・ラベルを決定することとを含む。
【００１０】
[0010]  １つの態様によると、方法は、コンピューター・システムを用いて、電子通信の一部を形成するターゲット・ストリングを受け取ることと、ターゲット・ストリングに従ってストリング適格基準を決定することと、ストリング適格基準に従って参照ストリングのコーパスをプレフィルタリングして、複数の候補ストリングを作成することとを含む。候補ストリングを選択することに応じて、方法は、コンピューター・システムを用いて、ターゲット・ストリングが複数の候補ストリングのうちの１つの候補ストリングから離れているストリング間距離を決定し、ストリング間距離は、ターゲット・ストリング内での選択されたキャラクターの発生のカウント、および候補ストリング内での選択されたキャラクターの発生のカウントに従って決定される。方法は次に、ストリング間距離に従って、電子通信がスパムであるか非スパムであるかを判定することを含む。
【００１１】
[0011]  本発明の上記の態様および利点は、後の説明を読み、図面を参照すると、より良く理解できるであろう。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の幾つかの実施形態に従った例示のスパム防止システムを示す。
【図２】図２は、本発明の幾つかの実施形態に従ったサーバー・コンピューター・システムの例示のハードウェア構成を示す。
【図３ａ】図３ａは、本発明の幾つかの実施形態に従った、クライアント・コンピューターとスパム防止サーバーとの間での例示のスパム検出トランザクションを示す。
【図３ｂ】図３ｂは、本発明の幾つかの実施形態に従った、コンテンツ・サーバーとスパム防止サーバーとの間での例示のスパム検出トランザクションを示す。
【図４】図４は、本発明の幾つかの実施形態に従ったターゲット通信の例示のターゲット・インジケーターを示し、インジケーターは、ターゲット・ストリングと、追加のスパム識別用データとを含む。
【図５】図５は、本発明の幾つかの実施形態に従ったスパム防止サーバーで実行される例示のアプリケーションのセットの図を示す。
【図６】図６は、本発明の幾つかの実施形態に従った、ターゲット・ストリングと関連しており且つ複数のキャラクター・クラスに対して計算された例示のキャラクター・ヒストグラムを示す。
【図７】図７は、本発明の幾つかの実施形態に従った、図１のスパム防止サーバーで動作する例示のスパム・デデクター・アプリケーションを示す。
【図８】図８は、本発明の幾つかの実施形態に従った複数のクラスターを示し、各クラスターは、類似のアイテムのコレクションを含み、特徴ハイパースペースで表される。
【図９】図９は、本発明の幾つかの実施形態に従った、図７のスパム検出器により行われる例示のステップのシーケンスを示す。
【図１０Ａ】図１０Ａは、コンピューター実験の結果を示し、コンピューター実験は、テスト・ストリングの異なるキャラクターの数の関数として、テスト・ストリングのコレクションに対するキャラクター・ヒストグラムを作成するための計算時間を決定することを含む。
【図１０Ｂ】図１０Ｂは、コンピューター実験の結果を示し、コンピューター実験は、テスト・ストリングのストリング長の関数として、テスト・ストリングのコレクションに対するキャラクター・ヒストグラムを作成するための計算時間を決定することを含む。
【図１０Ｃ】図１０Ｃは、コンピューター実験の結果を示し、コンピューター実験は、テスト・ストリングの異なるキャラクターの数の関数として、テスト・ストリングのコレクションに対するストリング間距離のセットを計算するための計算時間を決定することを含む。
【図１０Ｄ】図１０Ｄは、コンピューター実験の結果を示し、コンピューター実験は、テスト・ストリングのストリング長の関数として、テスト・ストリングのコレクションに対するストリング間距離のセットを計算するための計算時間を決定することを含む。
【図１１】図１１は、スパムと非スパムとの双方を含む、実際のブログ・コメントのコレクションに対しての、ストリング長対タイムスタンプ・インジケーターのプロットを示す。
【図１２】図１２は、スパムと非スパムとの双方を含む、実際のブログ・コメントのコレクションに対しての、異なるキャラクターの数対タイムスタンプ・インジケーターのプロットを示す。
【発明を実施するための形態】
【００１３】
以下の説明では、構造間での全ての記載された接続は、直接の有効な接続、または中間構造を通じての間接の有効な接続であり得ることが、理解される。エレメントのセットは１以上のエレメントを含む。エレメントの何れの詳述も、少なくとも１つのエレメントを指すことが理解される。複数のエレメントは、少なくとも２つのエレメントを含む。必要ではないかぎり、何れの説明される方法のステップも、必ずしも特定の示された順に行う必要はない。第２のエレメントから導き出される第１のエレメント（例えば、データ）に関しては、第１のエレメントが第２のエレメントと等しいことや、第１のエレメントが第２のエレメントとオプションとしての他のデータとを処理することにより作成されることを含む。パラメーターに従って決定または判断を行うことは、パラメーターに従って、また、オプションとして他のデータに従って、決定または判断を行うことを含む。指定しないかぎり、何らかの量／データのインジケーターは、量／データ自体とすることができ、また、量／データ自体とは異なるインジケーターとすることもできる。本発明の幾つかの実施形態で説明するコンピューター・プログラムは、スタンドアローンのソフトウェア・エンティティとすることも、他のコンピューター・プログラムのサブエンティティ（例えば、サブルーチン、コード・オブジェクト）とすることもできる。指定されないかぎり、スパムという用語は、Ｅメール・スパムに限定されず、とりわけ、ブログ・コメント、フォーラム議論、ウィキ（wiki）・エントリー、カスタマー・フィードバック、ソーシャル・ネットワーク・サイトへのポスト、インスタント・メッセージ、そして電話テキストやマルチメディア・メッセージの形態の、不正当であったり一方的に送られてきたりする商業的なユーザーにより作成されたコンテンツなどのような電子通信も含む。コンピューター可読媒体は、磁気、光、および半導体の媒体（例えば、ハード・ドライブ、光ディスク、フラッシュ・メモリ、ＤＲＡＭ）などのような非一時的ストレージと、導電ケーブルや光ファイバーのリンクなどのような通信リンクとを含む。幾つかの実施形態によると、本発明は、特に、ここで説明する方法を行うようにプログラムされたハードウェアを含むコンピューター・システムと、ここで説明する方法を行わせるための命令をエンコードするコンピューター可読媒体とを提供する。
【００１４】
[0028]  以下の説明は、例を用いて本発明の実施形態を示すものであり、必ずしも限定を用いて示していない。
[0029]  図１は、本発明の幾つかの実施形態に従った例示のスパム防止システムを示す。システム１０は、複数のコンテンツ・サーバー１２ａ−ｂ、スパム防止サーバー１６、および複数のクライアント・システム１４ａ−ｂを含む。コンテンツ・サーバー１２ａ−ｂは、とりわけ、個人や企業のウェブサイト、ブログ、ソーシャル・ネットワーク・サイト、およびオンライン・エンターテイメント・サイトなどのようなオンライン・コンテンツをホストする及び／又は配信するウェーブ・サーバーを表し得る。他のコンテンツ・サーバー１２ａ−ｂは、クライアント・システム１４ａ−ｂへの電子メッセージの配達を行うＥメール・サーバーを表し得る。クライアント・システム１４ａ−ｂは、エンドユーザー・コンピューターを表し得るものであり、それぞれが、プロセッサー、メモリ、およびストレージを有し、Ｗｉｎｄｏｗｓ（登録商標）、ＭａｃＯＳ（登録商標）、Ｌｉｎｕｘ（登録商標）などのようなオペレーティング・システムを実行する。幾つかのクライアント・システム１４ａ−ｂは、例えば、タブレットＰＣ、モバイル電話、パーソナル・デジタル・アシスタント（ＰＤＡ）などのような、モバイル計算デバイスおよび／または遠距離通信デバイスを表し得る。幾つかの実施形態では、クライアント・システム１４ａ−ｂは、個々の顧客を表し得るものであり、また、幾つかのクライアント・システムは同じ顧客に属し得る。スパム防止サーバー１６は、１以上のコンピューター・システムを含むことができる。ネットワーク１８は、コンテンツ・サーバー１２ａ−ｂ、クライアント・システム１４ａ−ｂ、およびスパム防止サーバー１６を接続する。ネットワーク１８は、インターネットなどのようなワイド・エリア・ネットワークとすることができ、また、ネットワーク１８の一部はローカル・エリア・ネットワーク（ＬＡＮ）を含むこともできる。
【００１５】
[0030]  図２は、スパム防止サーバー１６などのようなサーバー・コンピューター・システムの例示のハードウェア構成を示す。幾つかの実施形態では、サーバー１６は、プロセッサー２０、メモリ・ユニット２２、ストレージ・デバイスのセット２４、および通信インターフェース・コントローラー２６を含み、これらの全てはバスのセット２８により接続される。
【００１６】
[0031]  幾つかの実施形態では、プロセッサー２０は、信号および／またはデータのセットを用いて計算オペレーションおよび／または論理オペレーションを実行するように構成された物理デバイス（例えば、マルチコア集積回路）を含む。幾つかの実施形態では、そのような論理オペレーションは、プロセッサー命令のシーケンスの形態（例えば、機械コードや他のタイプのソフトウェア）で、プロセッサー２０へ届けられる。メモリ・ユニット２２は、命令を行うときにプロセッサー２０によりアクセスまたは作成されるデータ／信号を格納するコンピューター可読媒体（例えば、ＲＡＭ）を、含むことができる。ストレージ・デバイス２４はコンピューター可読媒体を含み、ソフトウェア命令および／またはデータを、不揮発に格納、読み出し、および書き込むことを可能にする。例示のストレージ・デバイス２４は、磁気ディスク、光ディスク、および半導体メモリ・デバイス（例えば、フラッシュ）を含み、また、ＣＤおよび／またはＤＶＤのディスクおよびドライブなどのような取り外し可能媒体も含む。通信インターフェース・コントローラー２６は、サーバー・システム１６がネットワーク１８および／または他の機械／コンピューター・システムへ接続することを可能にする。典型的な通信インターフェース・コントローラー２６は、ネットワーク・アダプターを含む。バス２８は、複数のシステム・バス、周辺バス、チップセット・バス、および／またはサーバー・システム１６のデバイス２０〜２６の相互接続を可能にする全ての他の回路を、集合的に表す。例えば、バス２８は、とりわけ、プロセッサー２０をメモリ２２へ接続するノースブリッジ・バス、および／またはプロセッサー２０をデバイス２４〜２６へ接続するサウスブリッジ・バスを、含むことができる。
【００１７】
[0032]  幾つかの実施形態では、クライアント・システム１４ａ−ｂのそれぞれは、ドキュメント・リーダー・アプリケーション（例えば、ウェブ・ブラウザー、Ｅメール・リーダー、メディア・プレーヤー）を含み、これは、コンテンツ・サーバー１２ａ−ｂに格納されたデータへリモートでアクセスするために用いるコンピューター・プログラムであり得る。ユーザーが、ウェブページなどのようなオンライン・ドキュメントへアクセスするとき、またはＥメールなどのような電子通信を受け取るとき、そのドキュメント／通信と関連するデータは、それぞれのコンテンツ・サーバーとクライアント・システム１４との間のネットワーク１８の一部を伝わる。幾つかの実施形態では、リーダー・アプリケーションは、ドキュメントのデータを受け取り、それを視覚的形態に変換し、それをユーザーに表示する。リーダー・アプリケーションの幾つかの実施形態はまた、表示されたコンテンツとユーザーがインタラクションすることを可能にする。Ｅメールの場合、クライアント・システム１４ａ−ｂは、入来するＥメールを複数のカテゴリー（例えば、スパム、正当、様々な他のクラスおよびサブクラス）のうちの１つに分類するように構成された専用のソフトウェアを、含むことができる。
【００１８】
[0033]  幾つかの実施形態では、コンテンツ・サーバー１２ａ−ｂは、複数のユーザーから、ユーザーの作成したコンテンツ（例えば、記事、ブログ・エントリー、メディア・アップロード、コメントなど）を受け取り、そのようなコンテンツを編成し、フォーマットし、ネットワーク１８を介して第三者へ届けるように、構成される。サーバー１２ａ−ｂで受け取ったユーザーの作成したコンテンツの一部は、一方的に送られてきたメッセージ（スパム）を含み得る電子通信を含み得る。そのような電子通信（後の説明では、ターゲット通信またはターゲット・メッセージと呼ぶ）の例は、とりわけ、Ｅメール・メッセージ、ブログ・コメント、ソーシャル・ネットワーク・サイトへのポスト、およびエンターテイメントおよび／またはニュースのウェブサイトへ送られるコメントである。
【００１９】
[0034]  幾つかの実施形態では、コンテンツ・サーバー１２ａ−ｂは、スパムを検出するために、ユーザーから受け取ったターゲット通信を処理するように構成されたソフトウェア・コンポーネントを含むことができる。スパム・メッセージ（例えば、不正ブログ・コメントなど）は、検出されると、それぞれのウェブサイトで表示することが妨げられ且つ／又は避けられる。スパム処理ソフトウェアは、サーバー側スクリプトの形態でコンテンツ・サーバー１２ａ−ｂにインプリメントすることができる。そのようなスクリプトは、例えば、Ｗｏｒｄｐｅｒｓｓ（登録商標）やＤｒｕｐａｌ（登録商標）のオンラインパブリッシング・プラットフォームのためのスパム防止プラグイク（１以上）として、大きいスクリプト・パッケージへのプラグイクとして組み込むことができる。幾つかの実施形態では、後に説明するように、サーバー１２ａ−ｂは、スパムを検出するために、スパム防止サーバー１６との共同的スパム検出トランザクションと連動するように構成することができる。
【００２０】
[0035]  幾つかの実施形態では、スパム防止サーバー１６は、コンテンツ・サーバー１２ａ−ｂおよび／またはクライアント・システム１４ａ−ｂと共同的スパム検出トランザクションを行うように構成される。図３ａは、Ｅメール・スパムを検出するように構成された実施形態における、サーバー１６とクライアント・システム１４との間での例示のデータ交換を示す。クライアント・システム１４は、ネットワーク１８を介してメール・サーバーからＥメール・メッセージを受け取ることができる。Ｅメール・メッセージを受け取った後、クライアント・システム１４は、Ｅメール・メッセージと関連するスパム識別用データを含むターゲット・インジケーター４０を、スパム防止サーバー１６へ送ることができ、それに応じて、それぞれのＥメール・メッセージがスパムであるかどうかを示すターゲット・ラベル５０を受け取ることができる。クライアント・システム１４は、続いて、そのメッセージを、適切なメッセージ・カテゴリー（例えば、スパムまたは正当なＥメール）に置くことができる。
【００２１】
[0036]  図３ｂは、サーバー１２で受け取られたユーザーの作成したスパム、とりわけ、ブログ・スパムやソーシャル・ネットワーク・サイトへポストされたスパムなどを検出するように構成された実施形態における、スパム防止サーバー１６とコンテンツ・サーバー１２との間での例示のデータ交換を示す。例えば、サーバー１２でホストされるウェブサイトへユーザーがコメントをポストした結果として、ターゲット通信を受け取った後、サーバー１２は、ターゲット通信から抽出されたスパム識別用データを含むターゲット・インジケーター４０を、スパム防止サーバー１６へ送ることができ、それに応じて、そのターゲット通信がスパムであるかどうかを示すターゲット・ラベル５０を受け取ることができる。
【００２２】
[0037]  図４は、本発明の幾つかの実施形態に従った、ターゲット通信の例示のターゲット・インジケーターを示す。ターゲット・インジケーター４０は、ターゲット通信を一意に識別するオブジェクトＩＤ４１（例えば、ラベル、ハッシュ）と、ブログ・コメントのテキスト部分などのような、ターゲット通信のテキスト部分を含むターゲット・ストリング４２とを含む。幾つかの実施形態では、ターゲット・ストリング４２は、ターゲット通信の実質的に全てのテキストを含む。ターゲット通信が幾つかのテキスト部分を含むときには、ターゲット・ストリング４２は、それらのテキスト部分が連結したものを含むことができ、代替的には、それぞれのテキスト部分が、他とは異なる１つのターゲット・ストリング４２を受けることできる。幾つかの実施形態では、ターゲット・ストリング４２は、ターゲット通信のテキスト部分の１つのセクションを含むことができ、セクションは、予め設定されたストリング長を有する（例えば、１２８の連続するキャラクター）。
【００２３】
[0038]  ターゲット・インジケーター４０の幾つかの実施形態は、ターゲット・ストリング４２以外にも、ターゲット通信に対応する他のスパム識別用データを含むことができる。図４の例では、ターゲット・インジケーター４０は、ターゲット通信の送信者により提供された名前（例えば、個人名、仮名、スクリーン名、ログイン名、アバター名、ハンドルなど）を示すユーザー名インジケーター４４と、発信元の場所（例えば、発信元ＩＰアドレス）を示すアドレス・インジケーター４６と、ターゲット通信が送られたときの実時間の時点（例えば、日付および時刻）を示すタイムスタンプ４８とを含む。
【００２４】
[0039]  幾つかの実施形態では、ターゲット・ラベル５０は、ＩＤ４１などのようなオブジェクトＩＤと、ターゲット通信のスパム・ステータスのインジケーターとを、含むことができる。ターゲット・ラベル５０は、後に詳細に説明するように、スパム防止サーバー１６により行われる評価に従って、ターゲット通信がスパムであるかどうかを有効に指定する。
【００２５】
[0040]  図５は、本発明の幾つかの実施形態に従った、スパム防止サーバー１６で実行される例示のアプリケーションのセットの図を示す。アプリケーションは、スパム検出器３２と、スパム検出器３２と接続された通信マネージャー３４とを含む。アプリケーション３２および３４は、スタンドアローンのソフトウェア・アプリケーションとすることができ、また、例えば、マルウェア検出などのようなコンピューター・セキュリティ・サービスを提供する大きいソフトウェア・スイートの一部を形成することもできる。幾つかの実施形態では、スパム防止サーバー１６はまた、スパム防止データベース３０をホストすることができる。代替的に、スパム防止データベースは、サーバー１６とは異なるがネットワーク１８を介してサーバー１６と接続されるコンピューター・システムに、また、サーバー１６と接続されるコンピューター可読媒体に、存在することができる。
【００２６】
[0041]  スパム防止データベース３０は、オンライン・スパムと関連する知識のリポジトリーを含む。幾つかの実施形態では、データベース３０はキャラクター・ヒストグラムのコーパスを含み、後に更に説明するように、それぞれのヒストグラムが１つの電子通信に対して計算される。データベース３０は、例えば、ブログ・コメント、ソーシャル・ネットワーク・サイトへポストされたコメントなどのような、スパムまたは非スパムの電子通信の双方を、含むことができる。ヒストグラムの他に、データベース３０に格納された各レコードは追加の情報を含むことができ、それらは、それぞれのターゲット通信のストリング４２、タイムスタンプ４８などのような時間インジケーター、およびストリング４２のストリング長、異なるキャラクターの数（number of distinct characters）、およびストリング・スコアのインジケーターなどであり、そのような量の使用については後に説明する。幾つかの実施形態では、各キャラクター・ヒストグラムと関連して、データベース３０は、それぞれのクラスターが現在割り当てられているメッセージのクラスターを示すクラスター割り当てインジケーターを、格納することができる。データベース３０はまた、オブジェクトＩＤ４１などのような複数の識別子を含むデータ構造を格納することができ、それぞれのオブジェクト識別子は、１つの電子通信と一意に関連付けられ、マッピングは、各キャラクター・ヒストグラムを、そのキャラクター・ヒストグラムを計算する対象とされたターゲット通信と関連付け、後に示すように、スパム検出器３２がデータベース３０からヒストグラムを選択的に取得することを可能にする。
【００２７】
[0042]  図６は、本発明の幾つかの実施形態に従った、ターゲット・ストリング４２に関して計算された例示のキャラクター・ヒストグラムを示す。ターゲット・ヒストグラム６０は数のセットを含み、それぞれの数は、ターゲット・ストリング４２内でのそれぞれの異なるキャラクターの発生のカウントを示す。例えば、「Ｍｉｓｓｉｓｓｉｐｐｉ」のターゲット・ヒストグラムは、「Ｍ」に対して１、「ｉ」に対して４、「ｓ」に対して４、および「ｐ」に対して２を含む。幾つかの実施形態では、キャラクターは幾つかの異なるキャラクター・クラス６２、例えば、とりわけ、「小文字」、「大文字」、「数字」、および「特殊文字」などへと、グループ化される。様々なキャラクター・クラスの数および構成は、実施形態により変わり得る。
【００２８】
[0043]  幾つかの実施形態では、通信マネージャー３４は、クライアント・システム１４ａ−ｂおよび／またはコンテンツ・サーバー１２ａ−ｂとの通信を管理するように構成される。例えば、マネージャー３４は、ネットワーク１８を介しての接続を確立し、クライアント・システム１４ａ−ｂおよびコンテンツ・サーバー１２ａ−ｂとの、ターゲット・インジケーターおよびターゲット・ラベルなどのようなデータの送信および受信を行うことができる。
【００２９】
[0044]  図７は、本発明の幾つかの実施形態に従った、スパム防止サーバー１６で動作する例示のスパム検出器の図を示す。スパム検出器３２は、ヒストグラム・マネージャー３６と、ヒストグラム・マネージャー３６と接続されたクラスター化エンジン３８とを含む。スパム検出器３２は、ターゲット通信のターゲット・インジケーター４０を通信マネージャー３４から（図５、図３ａ、図３ｂを参照）、また、参照ヒストグラム６４をスパム防止データベース３０から、受け取ることができ、その後、ターゲット・ラベル５０を通信マネージャー３４へ出力し、ターゲット・ラベル５０が、それぞれのスパム検出トランザクションを開始したクライアント・システム１４またはコンテンツ・サーバー１２へ送られるようにする。
【００３０】
[0045]  幾つかの実施形態では、ヒストグラム・マネージャー３６は、通信マネージャー３４からターゲット・インジケーター４０を受け取り、ターゲット・インジケーター４０のデータからターゲット・ヒストグラム６０を計算し、プレフィルタリング・プロセスを行って適格な参照ヒストグラムのセット６４を決定し、スパム防止データベース３０から参照ヒストグラム６４を選択的に取得し、ヒストグラムの比較およびクラスターの割り当てのためにヒストグラム６０および６４をクラスター化エンジン３８へ送るように、構成される。ヒストグラム・マネージャー３６の動作は、図９と関連して詳細に説明する。
【００３１】
[0046]  幾つかの実施形態では、ターゲット・メッセージ分析がメッセージ特徴ハイパースペース（feature hyperspace）で行われ、ターゲット通信に対応する特徴ベクトル（feature vector）と、代表ベクトル（representative vector）のセットとの間の距離が分析され、それぞれの代表ベクトルは、性質の異なるメッセージ・コレクション（クラスター）を定義する。図８は、ｄ１およびｄ２という２つの軸を有する単純な２Ｄ特徴空間における、特徴ベクトル７４ａ−ｃによりそれぞれ形成された３つの例示のクラスター７０ａ−ｃを示す。本発明の幾つかの実施形態では、軸ｄ１およびｄ２は、キャラクター・ヒストグラムの異なる特徴に対応する。例えば、軸ｄ１は、キャラクター「Ｍ」に対応させ、軸ｄ２は、キャラクター「ｓ」に対応させることができる。次に、「Ｍｉｓｓｉｓｓｉｐｐｉ」というストリングは、それぞれのストリング内で「Ｍ」が一回現れ「ｓ」が４回現れることを考慮し、特徴ベクトル（１，４）により表すことができる。類似のキャラクター・ヒストグラムを有する２つのストリングは、この例示の特徴ハイパースペースでは互いに近接して存在し、上記の例では、「Ｍｉｓｓｉｓｓｉｐｐｉ」と「Ｍｉｓｓｉｏｎ：ｉｍｐｏｓｓｉｂｌｅ」とは、この空間では同一の特徴を有する。幾つかの実施形態では、各メッセージ・クラスター７０は、実質的に特徴ハイパースペースの小さい領域を占有するメッセージからなり、このことは、１つのクラスターの全メンバーが類似の特徴ベクトル、即ち、類似のキャラクター・ヒストグラムを有することを、意味する。
【００３２】
[0047]  幾つかの実施形態では、クラスター化エンジン３８は、データ蓄積の歴史の間にスパム防止サーバー１６で受け取られて類似性に従ってクラスターへとグループ化された電子通信のコーパスを表す、メッセージ・クラスターのコレクション７０を維持するように構成される。幾つかのクラスター７０は、個々のスパム・ウェーブを表すことができ、それぞれは、多数のクライアントへ送られる及び／又は多数のウェブサイトへポストされる同じスパム・メッセージのコピーまたは変種を含む。理想的には、メッセージ・クラスターは、同一またはほぼ同一のターゲット・ストリングからなる。クラスター化エンジン３８は更に、ターゲット・ヒストグラム６０を受け取るように、およびヒストグラムの類似性に従って、ヒストグラム６０により表されるターゲット通信を、それの最も似ているクラスターへ割り当てるように、構成される。クラスターの割り当てを行うために、クラスター化エンジン３８は、ヒストグラム・マネージャー３６から、参照ヒストグラムのセット６４を受け取り、各ヒストグラム６４はクラスターを表すものであり、そして、クラスター化エンジン３８は、ヒストグラム６０と６４とを比較して、何れのメッセージ・クラスターがターゲット・ヒストグラム６０と最もマッチするかを決定する。クラスター化エンジン３８の動作の更なる詳細は、図９と関連して後に提供する。
【００３３】
[0048]  図９は、本発明の幾つかの実施形態に従った、スパム検出トランザクション内でスパム検出器３２（図７）により行われる例示のステップのシーケンスを示す。ステップ１０２において、スパム検出器３２は、クライアント・システム１４またはコンテンツ・サーバー１２から、通信マネージャー３４を介してターゲット・インジケーター４０を受け取る。次に、ステップ１０４において、スパム検出器は、ターゲット・インジケーター４０に従ってターゲット・ストリング４２を抽出し、ストリング４２のキャラクター・ヒストグラム６０を計算する。ステップ１０４はまた、ストリング長および／または異なるキャラクターの数などのような、ターゲット・ストリング４２の幾つかのパラメーターの計算を含むことができ、パラメーターは、ステップ１０６においてメッセージ・クラスターのコレクションをプレフィルタリングするために用いられる。幾つかの実施形態では、ステップ１０６において、スパム検出器３２は、プレフィルタリング条件のセットに従って、クラスター化エンジン３８により維持される完全なコレクションから候補メッセージ・クラスターのサブセットを選択するためのプレフィルタリング・オペレーションを行う。ヒストグラムの比較を行う際に用いるためにクラスターのサブセット（小さいサブセット）のみを選択することにより、スパム検出器３２は、計算コストを有効に低減することができる。
【００３４】
[0049]  幾つかの実施形態では、スパム検出器３２は、ストリング長に従って、候補クラスターのサブセットを選択することができる。ターゲット・ストリング４２のストリング長は、各クラスターの代表のストリング長またはそれぞれのクラスターのメンバーの平均ストリング長と、比較される。クラスターは、その典型的なストリング長がターゲット・ストリング４２のストリング長の所定のスレッショルド内にあるとき、ヒストグラムの比較のための候補として選択することができる。
【００３５】
[0050]  代替のプレフィルタリング基準は、異なるキャラクターの数（カウント）である。例えば、「Ｍｉｓｓｉｓｓｉｐｉ」というストリングは、Ｍ、ｉ、ｓ、およびｐという４つの異なるキャラクターを有する。各クラスターに関して、ターゲット・ストリング４２の異なるキャラクターの数が、それぞれのクラスターの代表メンバーの異なるキャラクターの数と、またはクラスターのメンバーの平均の異なるキャラクターの数と比較され、ターゲット・ストリング４２と類似した異なるキャラクターの数を有するクラスターが、ヒストグラムの比較のための候補として選択される。
【００３６】
[0051]  幾つかの実施形態では、プレフィルタリングは、
【００３７】
【数１】
0005990284.tif 000002
【００３８】
のように計算したストリング・スコアに従って進めることができ、ｉは、ストリングのキャラクターにインデックスを付け、ｐｉは、全キャラクターのセットの中におけるキャラクターｉ（例えば、それぞれのキャラクターのＡＳＣＩＩコード）の位置インジケーターを示し、ｗｉは、それぞれのキャラクターのキャラクター固有の重み（character-specific weight）を示す。幾つかの実施形態では、キャラクターは、幾つかのクラス、例えば、とりわけ、小文字、大文字、数字、および特殊文字といった図６に示すクラス６２などへと、分割される。重みｗ（ｉ）は、同じキャラクター・クラス内では同一であり得るが、或るクラスと別のクラスとでは異なり得る。例えば、特殊文字と関連する重みは、小文字の重みよりも高くすることができる。各クラスターに関して、ターゲット・ストリング４２のストリング・スコア［１］が、それぞれのクラスターの代表メンバーのストリング・スコアと、またはそのクラスターの平均ストリング・スコアと比較され、ターゲット・ストリング４２と類似のストリング・スコアを有するクラスターが、ヒストグラムの比較のための候補として選択される。
【００３９】
[0052]  幾つかの実施形態では、プレフィルタリング基準を組み合わせることができる。例えば、ストリング・スコアの類似性に従って、メッセージ・クラスターの第１サブセットを選択することができる。次に、クラスターの第１サブセットから第２サブセットが選択される。各クラスターはターゲット・ストリング４２と類似のストリング長および類似の異なるキャラクターの数を有する。
【００４０】
[0053]  ヒストグラムの比較のための候補のセットが選択されると、選択された各クラスターに関して、スパム検出器３２は、ヒストグラム・マネージャー３６に命令して、それぞれのクラスターの代表メッセージに対応する参照ヒストグラム６４を、スパム防止データベース３０から選択的に取得するようにできる。次に、選択された各クラスターに対して、ステップ１０８〜１１６のループ・シーケンスを実行する。ステップ１０８において、スパム検出器３２は、選択された全てのクラスターがヒストグラムの比較により評価されたかどうかを、確かめることができる。そうである場合、スパム検出器３２は、後に説明するステップ１１８へ進む。そうではない場合、ステップ１１０において、次のクラスターが評価される。ステップ１１２において、ターゲット・ヒストグラム６０が、参照ヒストグラム６４と比較される。
【００４１】
[0054]  幾つかの実施形態では、ステップ１１２は、ヒストグラム６０と６４との間の類似の度合を示すストリング間距離のセットを計算することを含む。幾つかの実施形態では、２つのストリングｓ１とｓ２との間のストリング間距離は、
【００４２】
【数２】
0005990284.tif 000003
【００４３】
という式にすることができ、ここで、ｉは、ストリングｓ１とｓ２とに共通のキャラクターのサブセットにインデックスを付け、ｗｉは、キャラクターｉのキャラクター重みであり、Ｎ１ｉは、ストリングｓ１内でのキャラクターｉの発生のカウントを示し、Ｎ２ｉは、ストリングｓ２内でのキャラクターｉの発生のカウントを示す。代替のストリング間距離は、
【００４４】
【数３】
0005990284.tif 000004
【００４５】
により求めることができ、ここで、ｉは、ｓ２内ではなくｓ１内のみに存在するキャラクターのサブセットにインデックスを付け、ｗｉは、キャラクターｉの重みであり、ｃは、予め定めたキャラクターに独立の定数である。上述のように、ｗｉは、キャラクターに固有またはクラスに固有（例えば、「特殊文字」対「小文字」）とすることができる。キャラクター固有の重みを用いる理由は、テキストを不明瞭化（obfuscation）するために、幾つかのキャラクターが他のキャラクターよりも頻繁に用いられるからであり、この不明瞭化は、スパム検出を避けるためにスパム送信者により頻繁に用いられる方法であり、テキスト内の特定のキャラクターを別のキャラクターと置換すること（例えば、Ｖｉ４ｇｒａ）を含む。不明瞭化で用いられるキャラクターに対して相対的に小さい重みを割り当てることにより、複数個の不明瞭化されたバージョンのターゲット・ストリングは、ストリング間距離に従うと互いに非常に類似して見え、従って、全てをスパムとして正しく識別することができる。ｃの値はチューニング・パラメータとして用いることができ、ｃが小さすぎる場合には、どちらかと言えば異なる２つのストリングが誤って類似と考慮され得、ｃが大きすぎる場合には、ストリング間の小さい差が過剰に増幅され得る。
【００４６】
[0055]  幾つかの実施形態は、組み合わせたストリング間距離
Ｄ３（ｓ１，ｓ２）＝Ｄ１（ｓ１，ｓ２）＋Ｄ２（ｓ１，ｓ２）      ［４］
を計算することができる。また、Ｄ２は交換可能ではないので、代替のストリング間距離は、
Ｄ４（ｓ１，ｓ２）＝Ｄ２（ｓ１，ｓ２）＋Ｄ２（ｓ１，ｓ２）      ［５］
となる。
【００４７】
[0056]  幾つかの実施形態では、ステップ１１２（図９）は、Ｄ１（Ｔ，Ｒ）および／またはＤ２（Ｔ，Ｒ）を計算することを含み、ここで、Ｔは、ターゲット・ストリング４２を示し、Ｒは、参照ヒストグラム６４と関連する参照ストリングを示す。代替的には、スパム検出器は、Ｄ３（Ｔ，Ｒ）、Ｄ３（Ｒ，Ｔ）、および／またはＤ４（Ｔ，Ｒ）を計算することができる。次に、ステップ１１４は、ターゲット・ヒストグラム６０と参照ヒストグラム６４との間での一致があったかどうかを判定する。
【００４８】
[0057]  幾つかの実施形態では、ヒストグラムの一致は、ストリング間距離が所定のスレッショルドよりも小さいことを必要とする。例えば、ヒストグラムの一致は、Ｄ１＜ｔ１またはＤ１＜ｔ２であること、またはＤ１とＤ２との双方がそれぞれのスレッショルドより低いことを、必要とし得る。代替的には、ヒストグラムの一致は、Ｄ３＝Ｄ１＋Ｄ２＜ｔ３であることを必要とする。更に別の実施形態では、一致が成立するためには、Ｄ３（Ｔ，Ｒ）とＤ３（Ｒ，Ｔ）との双方が１つのスレッショルドよりも低いこと、またはＤ４＜ｔ４であることを必要とする。スレッショルド値ｔｉは、比較されているストリングから独立させることも、ターゲット・ストリング４２のストリング長および／または異なるキャラクターの数に従って変化させることもできる。幾つかの実施形態では、比較的長いストリングや、異なるキャラクターの数が比較的大きいストリングに対しては、高いスレッショルド値が用いられる。
【００４９】
[0058]  ヒストグラム６０と６４との間に一致が見られたとき、スパム検出器３２はステップ１１６へ進み、そのステップで、それぞれのメッセージ・クラスターは、ターゲット・ストリング４２を受け取るのに適格であるとマーク付けされる。ヒストグラムが一致しない場合、スパム検出器３２はステップ１０８へ戻る。ステップ１０６において選択された全てのメッセージ・クラスターが、ヒストグラムの比較により評価されたとき、ステップ１１８は、ターゲット・ストリング４２を受け取るために何れかのクラスターが適格であるかどうかを判定する。そうである場合、ステップ１２２において、スパム検出器３２は、それぞれの適格なクラスターに対して、ターゲット・ストリング４２がそれぞれのクラスターの全メンバーにどれだけ似ているかを示すストリング対クラスター類似性インジケーター（string-to-cluster similarity indicator）を、計算することができる。それぞれの適格なクラスターの例示のストリング対クラスター類似性インジケーターは、ターゲット・ヒストグラム６０と一致する参照ヒストグラムを有するクラスター・メンバーの断片（fraction）を含む。
【００５０】
[0059]  次に、ステップ１２４は、ターゲット・ストリング４２を、それが最も似ているメッセージ・クラスターへ実際に割り当てる。幾つかの実施形態では、ターゲット・ストリング４２は、ステップ１２２で決定された最高のストリング対クラスター類似性インジケーターを持つクラスターへ、割り当てられる。クラスター化エンジン３８は、新たなクラスター・メンバーの追加を反映するように、クラスター割り当てデータを更新することができ、ターゲット・ストリング４２のレコードを、スパム防止データベース３０へ導入させることができる。幾つかの実施形態では、ステップ１２４は更に、ターゲット・メッセージを受け取るクラスターと関連するスパム識別用パラメーターのセットの決定を含む。例えば、幾つかの実施形態は、同じクラスター内で、連続するタイムスタンプ間の経過した時間間隔を計算することができる。そのようなパラメーターは、各クラスターと関連してセーブすることができ、また、特定のクラスターがスパム・メッセージを含むか正当なメッセージを含むかや、特定のクラスターがスパム・ウェーブを表す可能性があるかどうかを、自動的に（人間のオペレーターの監督無しで）判定するために用いることができる。
【００５１】
[0060]  ターゲット・ストリングを受け取るための適格なクラスターが発見されない場合（ステップ１１８）、スパム防止データベースへ格納された何れのものともターゲット・ストリング４２は異なる可能性があることを示し、ステップ１２０において、クラスター化エンジン３８は、単独のメンバーとしてそのターゲット・ストリングを持つ新たなクラスターを作成することができ、そのターゲット・ストリングのレコードをスパム防止データベース３０へセーブすることができる。
【００５２】
[0061]  ステップ１２６において、スパム検出器３２は、ターゲット通信をスパムまたは正当と識別するターゲット・ラベル５０を決定することができる。幾つかの実施形態では、ターゲット通信がスパムであるかどうかの判断は、ターゲット・ストリング４２のクラスター割り当てに従って行われる。ストリング４２が、主にスパム・メッセージからなるクラスターへ割り当てられると、ターゲット・メッセージも、スパム・ラベルを受け取り得る。
【００５３】
[0062]  幾つかの実施形態では、ラベル５０は、ターゲット・メッセージが割り当てられたクラスターのメンバーの特定のスパム識別用特徴に従って、決定される。１つのそのようなスパム識別用特徴は、タイムスタンプ４８である。短い時間間隔での多数の新たなメンバーの割り当ては、それぞれのクラスターがスパム・メッセージのウェーブからなることを示すものであり得る。幾つかの実施形態では、スパム検出器３２は、クラスターのメンバーと関連する複数のタイムスタンプの間の経過した時間間隔、例えば、そのクラスターへ６つのメンバーが割り当てられる最短時間間隔を、判定することができ、時間間隔が所定のスレッショルドより低下したとき、それぞれのクラスターをスパムとマーク付けすることができる。幾つかの実施形態では、クラスター・メンバーのカウントを、スパム識別用特徴として用いることができる。クラスターが所定数を超えたメンバーを得るときには、それぞれのクラスターはスパムとマーク付けされ得る。
【００５４】
[0063]  上述の例示のシステムおよび方法は、ブログ・コメント、ソーシャル・ネットワーク・サイトへポストされたコメントなどの形態のインターネット上のユーザーの作成したコンテンツの形態、およびＥメール・メッセージ、インスタント・メッセージ、および電話テキストおよびマルチメディア・メッセージの形態の、一方的に送られてくる通信を、スパム防止システムが検出することを可能にする。
【００５５】
[0064]  幾つかの実施形態では、コンピューター・システムは、キャラクターのターゲット・ストリングを、ブログ・コメントなどのような電子通信から抽出し、それをスパム防止サーバーへ送り、スパム防止サーバーから、それぞれの電子通信がスパムであるか非スパムであるかのインジケーターを受け取る。電子通信がスパムであるとき、コンピューター・システムは、その電子通信を、ブロック、隔離、消去することや、任意の他の方法で表示の制限を行うことができ、且つ／又はユーザーへ警告を発することができる。
【００５６】
[0065]  スパム防止サーバーは、ターゲット・ストリング内の特定のキャラクターの発生の周波数に従って、電子通信がスパムであるか非スパムであるかを決定する。ターゲット・ストリングのキャラクター・ヒストグラムが計算され、それが、スパム・メッセージと非スパム・メッセージとの双方を含み得る電子通信のコーパスに関して計算されたヒストグラムと、比較される。本発明における説明された方法およびシステムは、２つの類似のストリングは常に類似のキャラクター・ヒストグラムを有する、という観察を利用する。従って、ターゲット・ストリングのヒストグラムと、参照スペクトルに関して計算された別のヒストグラムとの間で一致を見つけることは、ターゲット・ストリングが参照ストリングと似ていることを示すものであり得る。そのような場合、スパム防止サーバーは、参照ストリングがスパムを示すかどうか、例えば、参照ストリングが、スパムとラベル付けされた電子通信のクラスターに属するかどうかに従って、電子通信がスパムであるかどうかを決定する。
【００５７】
[0066]  しかし、２つの異なるストリングが非常に似たヒストグラムを有する多くの状況がある。誤って正を示すことを避けるため、２つのストリングが類似であるかどうかの判断を行うときに、ターゲット・ストリングの他の特徴、例えば、タイムスタンプなどを考慮することができる。
【００５８】
[0067]  ストリング長が特定のスレッショルドを超えるときには、ヒストグラムの比較は、類似のストリングを識別するための信頼性のある方法ではないこともあり得る。非常に長いストリングに限定すると、全てのストリングは類似のヒストグラムを有し、それらは、単に、それぞれの言語における各キャラクターの発生の自然周波数を示す。従って、ここで説明したシステムおよび方法は、Ｆａｃｅｂｏｏｋ（登録商標）やＴｗｉｔｔｅｒ（登録商標）などのようなソーシャル・ネットワーク・サイトのブログのポストやコメントなどのような、電子通信において現れる短いストリングの分析に、特に適する。
【００５９】
[0068]  ストリングの比較によるスパム検出の更なる問題は、不明瞭化であり、スパム送信者は、検出を避けるために、メッセージ内の特定のキャラクターを他のキャラクターと置換する（例えば、Ｖｉ４ｇｒａ）。ストリングの不明瞭化は、式［２−３］のように、各キャラクターに固有な重みを用い、各キャラクターのカウントおよび重みに従ってストリング間距離を決定することにより、対処することができる。キャラクター固有の重みは、ストリングの比較の感度のチューニングを可能にする。幾つかの実施形態では、キャラクターは、カテゴリー（例えば、文字、数字、特殊文字）によりグループ化することができ、１つのカテゴリーの全キャラクターが同一のカテゴリー固有の重みを受ける。そのようなグループ化は、テキストの不明瞭化に対処することができる。なぜなら、例えば、ランダムな文字を用いる不明瞭化は、他のタイプのキャラクターを用いるテキスト不明瞭化よりも一般的であるからである。不明瞭化において、特定のキャラクターが他のキャラクターよりも多く使用されるとき、それらへ相対的に小さい重みを割り当てると、同じストリングである２つの不明瞭化されたバージョンの間のストリング間距離を好都合に低減し、その２つのストリングを更に似たものに見えるようにする。
【００６０】
[0069]  本発明の幾つかの実施形態は、コーパスを複数のクラスターへと編成し、レコードの各クラスターは類似のストリングからなる。コーパスの全てのレコードにわたってヒストグラムの比較を行うことに代えて、クラスター化は、ターゲット・ストリングを、クラスターあたりに１つのみの代表ターゲット・ストリングと比較することを可能にし、それにより、計算コストを大幅に低減する。
【００６１】
[0070]  クラスター化はまた、自動（監督無し）のスパム検出を容易にする。メッセージの分類が、一般には、例えば、複数の所定のメッセージ・クラスへと以前にソートされたトレーニングコーパスに対して、クラシファイヤー（classifier）の監督されたトレーニングにより達成される、といったような従来のクラスター化の方法とは逆に、本発明の幾つかの実施形態は、クラスターやメッセージのスパム・ステータス（スパムか非スパム）の以前の知識無しで、動的なクラスター化を行う。クラスターは、短い時間間隔に特定数のメンバーを蓄積するときには、スパムを表すものとして自動的に識別することができる。
【００６２】
[0071]  コンピューター実験では、２２０００ブログ・コメントのコーパスが、本発明の幾つかの実施形態に従ってクラスターへと分類された。計算は、３ＧＨｚのペンティアム（登録商標）４プロセッサーと、１．５ＧＢのＲＡＭとを装備し、Ｕｂｕｎｔｕ（登録商標）  ＯＳ  １０．０４を実行するコンピューター・システムで行われた。分類には約５：００分の計算時間を要し、１より多くのクラスター・メンバーを持つ１７４１のメッセージ・クラスターを作成し、平均は、クラスターあたり４．１３コメントであった。比較すると、ハッシュ・ベースのストリング突き合わせアルゴリズムを用いて同じハードウェア・プラットフォームで実行される従来のクラスター化システムは、７：０７分の計算時間で、１より多くのメンバーを持つ１６１７のクラスターを作成し、平均はクラスターあたり４．２６コメントであった。
【００６３】
[0072]  図１０Ａ〜Ｄは、ストリング長が２５キャラクターから５５００キャラクターの範囲のテスト・ストリングのコレクションを用いて行われたコンピューター実験の結果を示す。ハードウェア構成は上記と同じである。図１０Ａは、テスト・ストリングの異なるキャラクターの数の関数として、キャラクター・ヒストグラムの作成に要した時間を示す。図１０Ｂは、テスト・ストリングのストリング長の関数として、キャラクター・ヒストグラムの作成に要した時間を示す。ヒストグラムあたりの計算時間は、数ミリ秒から約１ミリ秒までと様々であり、時間とストリング長との間にはほぼ線形の相関があった。
【００６４】
[0073]  図１０Ｃは、テスト・ストリングの異なるキャラクターの数の関数として、ストリング間距離のセットの計算に要した時間を示し、図１０Ｄは、テスト・ストリングのストリング長の関数としてプロットした同じデータを示す。ストリング間距離の計算は、式［２−３］に従った、キャラクターのカウントの決定から行われ、範囲は数マイクロ秒から約５００ミリ秒であった。
【００６５】
[0074]  図１１は、スパムと非スパムとの双方を含む８６７６の実際のブログ・コメントのコレクションに関しての、タイムスタンプ・インジケーターに対してプロットされたストリング長を示す。図１２は、スパムと非スパムとの双方を含む別の５３５１の実際のブログ・コメントのコレクションに関しての、タイムスタンプ・インジケーターに対してプロットされた異なるキャラクターの数を示す。図１１と図１２との双方とも、タイムスタンプ・インジケーターに従ったスパム・メッセージのクラスター化を示し、上述の自動的スパム識別を可能にする。
【００６６】
[0075]  上記の実施形態を、本発明の範囲から離れずに多くの方法で変更でき得ることは、当業者には明らかであろう。従って、本発明の範囲は、特許請求の範囲と、それの法的等価物とにより決定されるべきである。
【図１】
0005990284.tif 000013
【図２】
0005990284.tif 000014
【図３ａ】
0005990284.tif 000015
【図３ｂ】
0005990284.tif 000016
【図４】
0005990284.tif 000017
【図５】
0005990284.tif 000018
【図６】
0005990284.tif 000019
【図７】
0005990284.tif 000020
【図８】
0005990284.tif 000021
【図９】
0005990284.tif 000022
【図１０Ａ】
0005990284.tif 000023
【図１０Ｂ】
0005990284.tif 000024
【図１０Ｃ】
0005990284.tif 000025
【図１０Ｄ】
0005990284.tif 000026
【図１１】
0005990284.tif 000027
【図１２】
0005990284.tif 000028