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