(57)【特許請求の範囲】
【請求項１】
ネットワークに接続された複数のノードのユーザ属性を分類する情報処理装置であって、前記情報処理装置は、
アクセスログからスパマー報告アクションとして指定されるアクセスログを抽出し、スパマー報告アクションのアクション識別子と、発信元識別子と、スパマー報告アクションの対象となった対象識別子とを含むスパマー報告アクション履歴集合を生成するアクション履歴取得部と、
前記スパマー報告アクション履歴集合から、前記スパマー報告アクションに関連した前記ノードを要素とするノード集合および前記スパマー報告アクションに関連した前記ノードを節点とするリンクと、当該リンクに割当てられたアクション重付け値とを要素とするリンク集合を生成する関連ノード取得部と、
前記ノード集合および前記リンク集合から同一のノードの間を結合するリンクを枝とし、前記枝についての前記アクション重付け値を前記リンクについて総和したリンク重付け値とを対応付けて登録し、グラフを生成する、グラフ生成部と、
前記グラフを形成する前記ノードを、２集合へと、前記２集合の間を張る前記リンクの重付け値の総和により規定され、下記式（１）で与えられる指標値を最大化させるように分類する、最大カット計算部と、
を含む、情報処理装置。
【数１】
0005324824.tif 000008
（上記式（１）中、ｗｕｖは、現在の一般ユーザ集合Ｎに属するノードｕと、ノードｕ以外その他の一般ユーザ集合Ｎのノードｖとを結合するリンクのリンク重付け値であり、ｗｕｘは、ノードｕと現在のスパマー・ノード集合Ｓ内のノードｘとを結合するリンクのリンク重付け値である。）
【請求項２】
前記情報処理装置は、スパマー報告アクション定義部を含み、前記アクション履歴取得部は、前記スパマー報告アクション定義部が登録する前記スパマー報告アクションの前記アクション識別子を参照して、前記スパマー報告アクションを登録するレコードを抽出し、前記スパマー報告アクション履歴集合に前記レコードを登録する、請求項１記載の情報処理装置。
【請求項３】
前記最大カット計算部は、整数計画法ソルバーを使い、前記整数計画法ソルバーは、異なる前記２集合に分類される前記ノードに対して絶対値の等しい正負の値を割当て、前記指標値を最大化することによって、前記ユーザ属性を分類する最大カット計算を実行する、請求項１記載の情報処理装置。
【請求項４】
前記最大カット計算部は、半正定値計画法ソルバーを使い、前記半正定値計画法ソルバーは、前記ノードに対応する対称行列を定義し、前記対称行列の要素の値を使用して前記指標値を生成し、前記ノードの前記ユーザ属性を分類する最大カット計算を実行する、請求項１記載の情報処理装置。
【請求項５】
前記最大カット計算部は、欲張り法ソルバーを含み、前記欲張り法ソルバーは、前記２集合の間に張られる前記リンクおよび前記２集合のそれぞれに内部に局在する前記リンクの重付け値の差を使用して前記指標値を生成し最大カット計算を実行する、請求項１記載の情報処理装置。
【請求項６】
前記最大カット計算部は、整数計画法ソルバーの利用、半正定値計画法ソルバーの利用、および欲張り法ソルバーを含み、前記整数計画法ソルバーは、異なる前記２集合に分類される前記ノードに対して絶対値の等しい正負の値を割当て、前記指標値を最大化することによって、前記ユーザ属性を分類する最大カット計算を実行し、前記半正定値計画法ソルバーは、前記ノードに対応する対称行列を定義し、前記対称行列の要素の値を使用して前記指標値を生成し、前記ノードの前記ユーザ属性を分類する最大カット計算を実行し、前記欲張り法ソルバーは、前記２集合の間に張られる前記リンクおよび前記２集合のそれぞれに内部に局在する前記リンクの前記リンク重付け値の差を使用して前記指標値を生成し最大カット計算を実行し、前記情報処理装置は、処理対象のノードのノード数に応じて異なるソルバーを選択して前記最大カット計算を実行する、請求項１記載の情報処理装置。
【請求項７】
ネットワークに接続された複数のノードのユーザ属性を分類する情報処理システムであって、前記情報処理システムは、
前記ネットワークを介して前記ノードからのアクセス要求を受領し、前記アクセス要求に対して応答するアプリケーション・サーバと、
前記アプリケーション・サーバへのアクセスログを解析して複数の前記ノードを、前記ネットワークに対して善意でアクセスする一般ノードおよび前記ネットワークに対して悪意でアクセスするスパマー・ノードにユーザ属性を分類する分析サーバとを含み、前記分析サーバは、
前記アクセスログからスパマー報告アクションとして指定されるアクセスログを抽出し、スパマー報告アクションのアクション識別子と、発信元識別子と、スパマー報告アクションの対象識別子とを含むスパマー報告アクション履歴集合を生成するアクション履歴取得部と、
前記スパマー報告アクション履歴集合から、前記スパマー報告アクションに関連した前記ノードを要素とするノード集合および前記スパマー報告アクションに関連した前記ノードを節点とするリンクと、当該リンクに割当てられたアクション重付け値とを要素とするリンク集合を生成する関連ノード取得部と、
前記ノード集合および前記リンク集合から同一のノードの間を結合するリンクを枝とし、前記枝についての前記アクション重付け値を前記リンクについて総和したリンク重付け値とを対応付けて登録し、無向グラフを生成する、無向グラフ生成部と、
前記無向グラフを形成する前記ノードを、２集合へと、前記２集合の間を張る前記リンクの重付け値の総和により規定される下記式（１）の指標値を最大化させて分類する、最大カット計算部と、
前記最大カット計算部が生成した前記２集合のうち、前記スパマー・ノードを含む集合からスパマー・リストを生成し、結果出力とする、結果出力部と
を含む、情報処理システム。
【数２】
0005324824.tif 000009
（上記式（１）中、ｗｕｖは、現在の一般ユーザ集合Ｎに属するノードｕと、ノードｕ以外その他の一般ユーザ集合Ｎのノードｖとを結合するリンクのリンク重付け値であり、ｗｕｘは、ノードｕと現在のスパマー・ノード集合Ｓ内のノードｘとを結合するリンクのリンク重付け値である。）
【請求項８】
前記最大カット計算部は、整数計画法ソルバーを使い、前記整数計画法ソルバーは、異なる前記２集合に分類される前記ノードに対して絶対値の等しい正負の値を割当て、前記指標値を最大化することによって、前記ユーザ属性を分類する最大カット計算を実行する、請求項７記載の情報処理システム。
【請求項９】
前記最大カット計算部は、半正定値計画法ソルバーを使い、前記半正定値計画法ソルバーは、前記ノードに対応する対称行列を定義し、前記対称行列の要素の値から前記指標値を生成し、前記ノードの前記ユーザ属性を分類する最大カット計算を実行する、請求項７記載の情報処理システム。
【請求項１０】
前記最大カット計算部は、欲張り法ソルバーを含み、前記欲張り法ソルバーは、前記２集合の間に張られる前記リンクおよび前記２集合のそれぞれに内部に局在する前記リンクの前記リンク重付け値の差を使用して前記指標値を生成し最大カット計算を実行する、請求項７記載の情報処理システム。
【請求項１１】
前記最大カット計算部は、整数計画法ソルバーの利用、半正定値計画法ソルバーの利用、および欲張り法ソルバーを含み、前記整数計画法ソルバーは、異なる前記２集合に分類される前記ノードに対して絶対値の等しい正負の値を割当て、前記指標値を最大化することによって、前記ユーザ属性を分類する最大カット計算を実行し、前記半正定値計画法ソルバーは、前記ノードに対応する対称行列を定義し、前記対称行列の要素の値を使用して前記指標値を生成し、前記ノードの前記ユーザ属性を分類する最大カット計算を実行し、前記欲張り法ソルバーは、前記２集合の間に張られる前記リンクおよび前記２集合のそれぞれに内部に局在する前記リンクの前記リンク重付け値の差を使用して前記指標値を生成し最大カット計算を実行し、前記情報処理装置は、処理対象のノードのノード数に応じて異なるソルバーを選択して前記最大カット計算を実行する、請求項７記載の情報処理システム。
【請求項１２】
前記分析サーバは、前記アプリケーション・サーバとは独立して実装されるか、または前記分析サーバは、前記アプリケーション・サーバの管理モジュールとして実装される、請求項７記載の情報処理システム。
【請求項１３】
ネットワークに接続された複数のノードのユーザ属性を分類するために情報処理装置が実行する情報処理方法であって、前記情報処理装置が、
アクセスログからスパマー報告アクションとして指定されるアクセスログを抽出し、スパマー報告アクションのアクション識別子と、発信元識別子と、スパマー報告アクションの対象識別子とを含むスパマー報告アクション履歴集合を生成するステップと、
前記スパマー報告アクション履歴集合から、前記スパマー報告アクションに関連した前記ノードを要素とするノード集合および前記スパマー報告アクションに関連した前記ノードを節点とするリンクと、当該リンクに割当てられたアクション重付け値とを要素とするリンク集合を生成するステップと、
前記ノード集合および前記リンク集合から同一のノードの間を結合するリンクを枝とし、前記枝についての前記アクション重付け値を前記リンクについて総和したリンク重付け値とを対応付けて登録し、グラフを生成するステップと、
前記グラフを形成する前記ノードを、要素ノードが重複しない２集合へと、前記２集合の間を張る前記リンクの重付け値の総和により規定される下記式（１）の指標値を増大させるように２集合を分類するステップと
を実行する、情報処理方法。
【数３】
0005324824.tif 000010
（上記式（１）中、ｗｕｖは、現在の一般ユーザ集合Ｎに属するノードｕと、ノードｕ以外その他の一般ユーザ集合Ｎのノードｖとを結合するリンクのリンク重付け値であり、ｗｕｘは、ノードｕと現在のスパマー・ノード集合Ｓ内のノードｘとを結合するリンクのリンク重付け値である。）
【請求項１４】
前記スパマー報告アクション履歴集合を生成するステップは、スパマー報告アクション定義部が登録する前記スパマー報告アクションの前記アクション識別子を参照して、前記アクセスログの前記スパマー報告アクションを登録するレコードを抽出し、前記スパマー報告アクション履歴集合に前記レコードを登録するステップを含む、請求項１３記載の情報処理方法。
【請求項１５】
前記分類するステップは、異なる前記２集合に分類される前記ノードに対して絶対値の等しい正負の値を割当て、前記指標値を最大化することによって、前記ユーザ属性を分類する最大カット計算ステップを含む、請求項１３記載の情報処理方法。
【請求項１６】
前記分類するステップは、前記ノードに対応する対称行列を定義し、前記対称行列の要素の値を使用して前記指標値を生成し、前記ノードの前記ユーザ属性を分類する最大カット計算を実行するステップを含む、請求項１３記載の情報処理方法。
【請求項１７】
前記分類するステップは、前記２集合の間に張られる前記リンクおよび前記２集合のそれぞれに内部に局在する前記リンクの前記リンク重付け値の差を使用して前記指標値を生成し最大カット計算を実行するステップを含む、請求項１３記載の情報処理方法。
【請求項１８】
前記分類するステップは、異なる前記２集合に分類される前記ノードに対して絶対値の等しい正負の値を割当て、前記指標値を最大化することによって、前記ユーザ属性を分類する最大カット計算を実行するステップ、前記ノードに対応する対称行列を定義し、前記対称行列の要素の値を使用して前記指標値を生成し、前記ノードの前記ユーザ属性を分類する最大カット計算を実行するステップ、または前記２集合の間に張られる前記リンクおよび前記２集合のそれぞれに内部に局在する前記リンクの前記リンク重付け値の差を使用して前記指標値を生成し最大カット計算を実行するステップを、処理対象のノードのノード数に応じて選択して呼出す呼出ステップを含む、請求項１３記載の情報処理方法。
【請求項１９】
ネットワークに接続された複数のノードのユーザ属性を分類するための、情報処理装置実行可能なプログラムであって、前記プログラムは、情報処理装置を、
アクセスログからスパマー報告アクションとして指定されるアクセスログを抽出し、スパマー報告アクションのアクション識別子と、発信元識別子と、スパマー報告アクションの対象識別子とを含むスパマー報告アクション履歴集合を生成する機能手段と、
前記スパマー報告アクション履歴集合から、前記スパマー報告アクションに関連した前記ノードを要素とするノード集合および前記スパマー報告アクションに関連した前記ノードを節点とするリンクと、当該リンクに割当てられたアクション重付け値とを要素とするリンク集合を生成する機能手段と、
前記ノード集合および前記リンク集合から同一のノードの間を結合するリンクを枝とし、前記枝についての前記アクション重付け値を前記リンクについて総和したリンク重付け値とを対応付けて登録し、グラフを生成する機能手段と、
前記グラフを形成する前記ノードを、２集合へと、前記２集合の間を張る前記リンクの重付け値の総和により規定される下記式（１）の指標値を増大するように分類する機能手段と、
生成した前記２集合の前記ユーザ属性から前記スパマー・ノードを含むスパマー・リストを生成し、結果出力とする機能手段と
して機能させる、情報処理装置実行可能なプログラム。
【数４】
0005324824.tif 000011
（上記式（１）中、ｗｕｖは、現在の一般ユーザ集合Ｎに属するノードｕと、ノードｕ以外その他の一般ユーザ集合Ｎのノードｖとを結合するリンクのリンク重付け値であり、ｗｕｘは、ノードｕと現在のスパマー・ノード集合Ｓ内のノードｘとを結合するリンクのリンク重付け値である。）
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク解析技術に関し、より詳細には、ネットワークに接続し、ネットワークに対して情報を発信するユーザを、ユーザ属性に対応して分類する情報処理装置、情報処理システム、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、コンピュータ、接続装置などの処理能力の向上に伴い、インターネットやＷＡＮ(Wide Area network)などのネットワークを介して情報通信を行うのが普及している。ネットワークを介した情報通信は、通常、ネットワークに接続し、ウェブ・クライアントとして機能するコンピュータ（以下、単にノードとして参照する。）と、複数のノードからのアクセス要求を受付け、処理するウェブ・サーバ装置（以下、単にサーバとして参照する。）とを含んでいる。サーバは、ＣＧＩ、サーブレットなどを使用して記述されたサーバ・アプリケーションを使用して、メール送受信、ファイル送受信、検索、ＳＮＳ(Social Network Service)などを使用したブログ書込み、チャットなどのサービスを提供する。
【０００３】
ネットワークを介して送受信される情報の種類が増加し、またサービスの種類も増加するにつれて、ネットワークにアクセスするネットワーク・ユーザの質も広範なものとなる。例えば、サーバにアクセスし、悪意のないメールを送信するユーザ、情報検索を行い、サーバが管理する情報を専らダウンロードするユーザ、ブログ書込みを行うことで情報を発信し、また他人のブログに善意の書込みを行うユーザが存在する。以下、上述した善意のユーザが管理するユーザ・ノードを、一般ノードとして参照する。
【０００４】
一方、不必要な情報を強制的に大量送信するユーザや、チャット、ブログなどに悪意のある書込みを行なうユーザ・ノードが存在するようになってきている。以下、ネットワークに対して悪意をもってアクセスするユーザが管理するユーザ・ノードを、スパマー・ノードとして参照する。
【０００５】
上述したスパマー・ノードの活動は、スパマー・ノードではない他の善意の一般ノードが提供しているサービスの停止、ブログ閉鎖など、重大なネットワーク・アクティビティの阻害活動に発展する可能性もある。
【０００６】
また、サービスの停止やブログ閉鎖などの致命的なダメージを与えるには至らないが、ネットワークを介して希望されない大量のメールを送信することは、ネットワーク帯域幅を浪費し、一般ノードのネットワーク・アクティビティに影響を与え、またコンピュータ・ウィルスの蔓延という問題も生じる。したがって、これらのスパマー・ノードをネットワーク上で検出し、一般ノードのネットワーク・アクティビティに影響を与えないように対応することが必要とされている。さらに近年では、複数のスパマー・ノードが共同して自己がスパマー・ノードであることをカモフラージュするスパマー・グループが存在することも知られるようになってきている。
【０００７】
これまでも上述したスパマー・ノードを検出するための種々の試みがなされている。例えば、スパム・メールに対しては、スパムメール・メッセージなどを判定するために、許容可能なメール・メッセージの正解セットを作成し、機械学習させる方法が知られている。またこの他、多数のノードからのスパム通報を使用して特定ノードのスパム度を決定し、スパム度を管理者がチェックして、アクセス制御を実行することも知られている。
【０００８】
上述のポリシーを適用するスパム対策技術としては、例えば、特開２００３−１１５９２５号公報（特許文献１）、特開２００４−１７８５４１号公報（特許文献２）、特開２００４−３６２５５９号公報（特許文献３）、特開２００６−１７８９９８号公報（特許文献４）、および特開２００３−３４８１６２号公報（特許文献５）を挙げることができる。特許文献１および特許文献２では、スパム・メールの送信回数を検出し、スパム・メールの送信回数の多いユーザをスパマー・ノードとして識別する。また、特許文献３および特許文献４では、メッセージの内容を解析してスパマー・ノードを特徴付ける特性を正解セットとして構成し、含むメッセージの送信元をスパマー・ノードとして識別するものである。
【０００９】
さらに、特許文献５は、ユーザ端末装置で受信された電子メールが迷惑メールであったとき、そのメールに関する情報を迷惑メール情報としてネットワーク側に通知し、メール受信サーバで受信された受信済み電子メールを保存し、前記ユーザ端末装置からの迷惑メール情報をデータベースに登録し、前記データベースに登録された迷惑メール情報に一致又は酷似するメールが前記受信済み電子メールの中に存在したとき、その電子メールを前記メール受信サーバの配信対象から除外する技術を開示する。
【００１０】
上述したように、従来技術では、ネットワークを介して転送されるコンテンツに対して、スパマー・ノードと一般ノードとを識別させるための正解セットを予め構築しておくか、またはノードからの通知を受領して正解セットを作成するものである。正解セットを作成する技術は、スパマー・ノードがコンテンツを含んだデータ、例えばメール・メッセージなどには効果的に適用することができる。しかしながら、コンテンツを発信するという行為は、機械学習のための特徴量として規定するには、スパース過ぎ、機械学習では、無駄なデータの回収を伴うことにもなるので、サーバのオーバーヘッドを増加させる割には、学習によるスパマー・ノード抽出効率の改善に結びつかないという問題点がある。
【００１１】
さらに、一定の内容のコンテンツを有しない場合、例えばコメントなどその内容が予測できない行為には、スパマー・ノードであることを特徴付けすることができず、この結果、ブログ書込みや、チャットへの妨害などを行うスパマー・ノードについては、効果的な学習を行うことができないという問題点がある
また、ノードからの通報を使用する技術も問題があることが知られている。例えば、スパマー・ノードが、一般ユーザがスパム・メールを通報したことを検知すると、通報先に対して、スパマー・ノードを通報した当の通報主（一般ノード）も通報する、いわゆる報復行動を取ることも知られている。このような報復行動が行われると、スパマー・ノードを一意に決定するのはさらに困難となる。また、このような報復行動の故に、一般ノードが通報行為を避けることも多い。さらに、スパマー・ノードが、スパマー集団として存在する場合、通報および逆行為（評価を高くするなど）などが可能となり、スパマー集団の中でお互いに協力しあい、スパム度を低下させてしまう協動的行動も可能としてしまう、という問題点もある。
【００１２】
【特許文献１】特開２００３−１１５９２５号公報
【特許文献２】特開２００４−１７８５４１号公報
【特許文献３】特開２００４−３６２５５９号公報
【特許文献４】特開２００６−１７８９９８号公報
【特許文献５】特開２００３−３４８１６２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
すなわち、これまでネットワークに接続した複数のノードから、スパマー・ノードと、スパマーではない他ノードとを、予め正解セットを構築させることなく、識別するための技術が必要とされていた。また、さらにこれまで、ノードからの通報の有無にかかわらず、アプリケーション・サーバへのアクセスログを使用して、アプリケーション・サーバにアクセスするユーザ属性を、スパマー・ノードおよび一般ノードとして分類する汎用的技術が必要とされていた。
【課題を解決するための手段】
【００１４】
本発明は、上記従来技術の問題点に鑑みてなされたものであり、ネットワークに接続され、アプリケーション・サーバにアクセスするノードのアクセスログから、ノードのユーザ属性を、ネットワークに対して善意でアクセスする一般ノードと、ネットワークに対して悪意でアクセスするスパマー・ノードとに分類する新規な技術を提供するものである。
【００１５】
本発明において、用語「ネットワークに対して善意でアクセスする」とは、ネットワークを介して行われるトランザクションによって検索、情報収集、コミュニケーション、メール・メッセージ送信、チャット、ブログ作成、コメント、適法なｅ−コマースなどの行為を行うことを意味する。以下、本発明では、これらの行為を行うノードを、一般ノードとして参照する。
【００１６】
また、本発明において、用語「ネットワークに対して悪意をもってアクセスする」とは、ネットワークを介した一般ノードのネットワーク・アクティビティを損ねるアクセスを行うことを意味する。以下、本発明では、これらのノードを、スパマー・ノードとして定義する。スパマー・ノードが行う悪意のある行為は、例えば、ネットワークを介した以下の迷惑行為を挙げることができる。
（１）宣伝の目的などのためのメッセージや元の文書と無関係なコメントなどを送付する。
（２）内容のない宣伝のためだけのコンテンツを作成する。
（３）オークションで落札後一方的にキャンセルする。
（４）オークションで交渉成立後、代金を支払っても商品を送付しない。
（５）他人や他団体の誹謗中傷を書く。
（６）著作権侵害のコンテンツを投稿するなど違法行為を繰り返す。
（７）他ユーザに不快感を与えるコンテンツを発信する。
【００１７】
本発明では、ネットワークを介したアプリケーション・サーバへのアクセスからスパマー報告アクションとして定義されるアクセスログを抽出し、スパマー報告アクション履歴集合を生成する。スパマー報告アクション履歴集合は、関連ノード取得部が、ノード集合Ｖおよびリンク集合Ｅを生成するために利用される。
【００１８】
本発明では、ノード集合Ｖおよびリンク集合Ｅは、無向グラフ生成部により参照され、スパマー報告アクションに関連したノードを節点とし、ノード間の接続関係を枝として登録する無向グラフＧ（Ｖ、Ｅ）を生成するために使用される。
【００１９】
無向グラフＧ（Ｖ、Ｅ）は、スパマー報告アクションに関連したノード間を、スパマー報告アクションに対して割当てられたアクション重付け値ｗｓが定義されたリンクで相互接続するグラフ表現を与える。本発明の情報処理装置は、無向グラフＧ（Ｖ、Ｅ）のノードを、一般ノードを構成要素とする一般ノード集合Ｎと、スパマー・ノードを構成要素とするスパマー・ノード集合Ｓとからなる２集合に分割することで、ユーザ属性を分類する。ノードは、一般ノード集合Ｎまたはスパマー・ノード集合Ｓのいずれかに分類され、本発明では、後述の制約条件のもとで、一般ノード集合Ｎと、スパマー・ノード集合Ｓとの間を張るリンクのスパム特性を現す指標値を最大化させるように、２集合の境界を設定する。
【００２０】
スパム特性の指標値は、整数計画法、半正定値計画法、または欲張り法を使用して、特定の実施形態では、２集合の境界は、リンクについて生成されたリンク重付け値ｗｉｊのうち、後述の制約条件のもとで、一般ノード集合Ｎおよびスパマー・ノード集合Ｓの間を張るリンクのリンク重付け値ｗｉｊの総和を最大化させるようにして生成される。また、本発明の特定の実施形態で、欲張り法ソルバーとして参照されるソルバーは、上述した最大化の同値表現であり、後述の制約条件のもとで、一般ノード集合Ｎおよびスパマー・ノード集合Ｓの間を張るリンクのリンク重付け値ｗｉｊの総和と、各集合内部に局在するリンク重付け値ｗｉｊの総和との差を最大化するように、すなわち最大カット集合として、２集合の境界を生成することができる。
【００２１】
さらに、本発明の特定の実施形態では、最大カット集合は、最大カット・ソルバーを呼出すことにより実行される。最大カット・ソルバーは、整数計画法ソルバー、半正定値計画法ソルバー、または欲張り法ソルバーのいずれか、または全部を適宜選択して実装することができる。本実施形態で、整数計画法ソルバー、半正定値計画法ソルバー、または欲張り法ソルバーを複数実装する場合には、スパマー報告アクションに関連した処理対象のノード総数に対応して、最大カット・ソルバーを選択して呼出し、処理対象のノード総数とスパマー判定の精度に対応した効率的な処理を実行する。
【００２２】
本発明は、さらに上述した最大カット・ソルバーを実装する分析サーバを含む情報処理システム、および上述したユーザ属性の分類を可能とする情報処理方法、およびプログラムを提供するものである。
【００２３】
本発明によれば、ネットワークに接続した複数のノードから、スパマー・ノードと、スパマーではない他ノードとを、予め正解セットを構築させることなく、識別するための技術を提供することができる。また、本発明によれば、ノードからの直接的な通報、例えば、スパムメッセージの印付けや管理者へのスパマー・ノード通報のプログラムなどの有無にかかわらず、アプリケーション・サーバへのアクセスログを使用して、ノードのコンテンツ削除などの活動履歴からアプリケーション・サーバにアクセスするユーザ属性を、スパマー・ノードおよび一般ノードとして分類する、情報処理装置、情報処理システム、情報処理方法およびプログラムを提供することができる。
【発明を実施するための最良の形態】
【００２４】
＜セクション１：ハードウェア構成＞
以下、本発明を実施の形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。図１は、本実施形態の情報処理システム１００の実施形態を示す。情報処理システム１００は、ネットワーク１１６と、ネットワーク１１６に接続され、ネットワーク１１６を介してサーバ１２０にアクセスする複数のノード１１２、１１４を含んで構成されている。
【００２５】
複数のノード１１２、１１４のうち、ノード１１２は、ネットワークに対して善意でアクセスし、スパム行為を行うことがない一般ノードであり、ノード１１４は、ネットワーク上での一般ユーザのネットワーク・アクティビティに重大な影響を与えるスパム行為を行うスパマー・ノードである。本実施形態において、スパマー・ノードとは、例示的には、大多数の他のノードに不快感を与えるコンテンツを発信するノード、著作権侵害の画像などをアップロードする違法性の高いノード、特定の個人や団体などを中傷するコンテンツをアップロードするノード、または特定商品、サービス、ウィルスなどを含むコンテンツを承諾無しに他ノードに送付するノード、仮想ショッピングモールにおける一般ノードや出展者を欺く行為を行うノードとして定義される。本実施形態は、アプリケーション・サーバにアクセスする不特定のノードのユーザ属性を、アクセス履歴を使用してスパマー・ノードと、一般ノードとに分類するものである。なお、各ノードの固有の識別については、例えばユーザＩＤ、ＩＰアドレスなど、ノードまたはユーザを固有に識別することが可能なネットワーク識別子であればいかなる値でも使用することができる。
【００２６】
特定のノードをスパマー・ノードとして特定するためには、種々の基準を使用することができる。例えば、投稿したコンテンツがその他のノードからの要請で消されるノードは、スパム度が高いノードとすることができる。ただし、複数のスパマー・ノードが共同して、逆にアップロードされたコンテンツの評価ポイントを高めることで、スパム度を低下させるスパマー集団も存在することが知られている。さらにスパマー・ノードであってもスパマー・ノードではない他ノードをスパマーであるとして通知することができる。スパム度のみでは、適切な判断を行うことができない場合も想定され、スパマー・ノードの存在割合が高まれば高まるほど、その傾向が強くなるものと考えられる。
【００２７】
このため、スパム度のみを使用してスパマー・ノードを特定することは、一般ノードについてスパム判定を行ってしまうことになり、適切ではないか、またはスパマー集団による報復攻撃などを考慮した場合、スパム度の高さだけでのスパム分析は、有効性を実質的に失うことになる。本実施形態の情報処理システム１００は、スパマー集団が存在することによりスパム度分析が妨害される場合にでも、適切にスパマー・ノードを分析することを可能とする。
【００２８】
ネットワーク１０６に接続されたサーバ１２０は、図１に示した実施形態では、サーバ１２０の機能説明を明確にする目的で、サーバ１２０が、ウェブ・サービスを提供するアプリケーション・サーバ１２２と、スパマーを分析する分析サーバ１２６とから構成されるものとして示されている。アプリケーション・サーバ１２２は、ネットワーク１１６に接続されたノードからの検索要求、アップロード要求、ダウンロード要求などを受領して、ノードに対して要求に対応するサービスを提供する。アプリケーション・サーバ１２２が提供するサービスには特に限定はなく、検索サービス、ブログ提供サービス、ＳＮＳ、メール配信サービス、チャット・サービスなどを例示的に挙げることができる。
【００２９】
アプリケーション・サーバ１２２は、ノードからの要求に対応するために、コンテンツ記憶部１２４を管理している。用語「コンテンツ」とは、テキスト、イメージ、動画データ、音声データ、マルティメディア・データ、メールなど、コンピュータがアクセス可能な形式で作成されたデータ構造体を意味する。アプリケーション・サーバ１２２は、ノードからの要求を受領してコンテンツ記憶部１２４にアクセスし、コンテンツの検索、コンテンツのアップロード、ダウンロード、メール転送などを行っている。
【００３０】
分析サーバ１２６は、アプリケーション・サーバ１２２にアクセスするノードのアプリケーション・サーバ１２２に対するアクセスログをモニタする。アクセスログは、アプリケーション・サーバ１２２のログなどとして登録することができる。分析サーバ１２６は、定期的にアプリケーション・サーバ１２２にポーリングして、前回のポーリング以後に蓄積されたアクセスログを、分析対象データとして取得する。また、他の実施形態では、分析サーバ１２６が、独立してアプリケーション・サーバ１２２へのノードのアクセスをモニタし、スパマー報告アクションに関連するアクセスログを蓄積し、以後の処理に使用することもできる。
【００３１】
分析サーバ１２６は、スパム分析データ記憶部１２８を管理する。スパム分析データ記憶部１２８は、ノードのスパム分析を行うための各種データ、例えば、スパマー報告アクション定義、スパマー報告アクションについて統計的な観点から割当てた重付けなどを登録し、分析サーバ１２６のスパム分析処理を可能とさせている。なお、スパム分析データについては、より詳細に後述する。
【００３２】
分析サーバ１２６は、スパム分析の結果を、ノード識別値などのリストとして生成し、出力結果を生成する。サーバ１２０の管理者は、分析サーバ１２６の出力結果を参照して、アクセス履歴を有するノードを、スパマー・ノードと、スパマー・ノードではない一般ノードとしてユーザ属性を識別する。その後、管理者は、スパマー・ノードとして特定されたノードに対し、フィルタリング設定などを行うことができる。また、分析サーバ１２６は、生成したリストをアプリケーション・サーバ１２２に通知し、アプリケーション・サーバ１２２によるＩＰアドレス停止、アクセス禁止などフィルタリング処理のために使用させることもできる。
【００３３】
分析サーバ１２６は、図１に示した実施形態のように、アプリケーション・サーバ１２２と別に実装させることもできる。また、他の実施形態では、分析サーバ１２６は、アプリケーション・サーバ１２２の管理モジュールとして実装することもできる。
【００３４】
上述したサーバ１２０は、ＰＥＮＴＩＵＭ（登録商標）、ＰＥＮＴＩＵＭ（登録商標）互換チップなどのＣＩＳＣアーキテクチャのマイクロプロセッサ、または、ＰＯＷＥＲ  ＰＣ（登録商標）などのＲＩＳＣアーキテクチャのマイクロプロセッサを実装する情報処理装置または情報処理装置のクラスタとして構成することができる。また、各サーバ１２０は、ＷＩＮＤＯＷＳ（登録商標）ＳＥＲＶＥＲ２００Ｘ、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）などの適切なオペレーティング・システムにより制御される。さらにサーバ１２０は、Ｃ＋＋、ＪＡＶＡ（登録商標）、ＪＡＶＡ（登録商標）ＢＥＡＮＳ、ＰＥＲＬ、ＲＵＢＹ、ＰＹＴＨＯＮなどのプログラミング言語を使用して実装される、ＣＧＩ、サーブレット、ＡＰＡＣＨＥなどのサーバ・プログラムを実行し、ノード１１２、１１４からの要求を処理する。
【００３５】
また、アプリケーション・サーバ１２２および分析サーバ１２６は、アクセスログを取得し、スパム分析を行うため、例えばＤＢ２（登録商標）などのリレーショナル・データベースを含んで構成され、リレーショナル・データベースに対して照会処理を可能とする、ＳＱＬ(Structured Query Language)文を使用する検索が可能とされている。なお、本実施形態では、アプリケーション・サーバおよび分析サーバ１２６は、リレーショナル・データベースおよびＳＱＬによる照会処理を使用することなく、各種プログラミング言語で作成されたデータベース・アプリケーションおよび検索アプリケーションを使用して実装することもできる。
【００３６】
ノード１１２、１１４と、サーバ１２０との間は、ＴＣＰ／ＩＰなどのトランザクション・プロトコルに基づき、ＨＴＴＰプロトコルなどのファイル転送プロトコルを使用するトランザクションが確立されていて、ノード１１２、１１４は、サーバ１２０との間で、ファイルのアップロード、ダウンロード、ブログ書込み、部録読出し、感想・意見の記述、ｅ−コマース、チャット、フォーム送信、フォーム・ダウンロード、コンテンツ・アップロード、コンテンツ・ダウンロード、コンテンツ削除要求、スパマー通報などの種々のアクションを行なう。さらに、サーバ１２０は、ＳＭＴＰ(Simple Mail Transfer Protocol）を使用したメールサーバとして機能することもでき、ノード１１２間およびノード１１２と、１１４との間でメール・メッセージの送受信を可能とする。
【００３７】
一方、ノード１１２、１１４は、パーソナル・コンピュータ、ワークステーション、またはサーバなどとして実装される。ノードが、パーソナル・コンピュータやワークステーションから構成される場合、マイクロプロセッサ（ＭＰＵ）は、これまで知られたいかなるシングルコア・プロセッサまたはマルチコア・プロセッサを含んでいてもよい。さらに、ノード１１２、１１４は、ＷＩＮＤＯＷＳ（登録商標）、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、ＭＡＣ  ＯＳなど、いかなるオペレーティング・システムにより制御されてもよい。サーバ１２０がウェブ・サーバとして実装される場合には、ノード１１２、１１４は、Internet Explorer（商標）、Mozilla、Opera、Netscape Navigator（商標）などのブラウザ・ソフトウェアを実装し、サーバ１２０に対してアクセスする。
【００３８】
また、スパマー・ノード１１４は、サーバとして実装される場合もある。この場合、スパマー・ノード１１４は、実質的にサーバ１２０に使用されるハードウェア構成およびオペレーティング・システムを含んで実装することができる。
【００３９】
＜セクション２：ソフトウェア・モジュール構成＞
図２は、図１に示した分析サーバ１２６のソフトウェア・モジュール構成２００を示す。分析サーバ１２６には、プログラムおよびハードウェアが協働して複数の機能手段が実現されていて、スパム分析を可能とする機能手段を実現させている。分析サーバ１２６は、アクション履歴取得部２１０と、関連ノード取得部２２０と、無向グラフ生成部２３０と、最大カット計算部２４０と、結果出力部２５０とを含んで構成されている。以下、各機能部が実行する処理について詳細に説明する。
【００４０】
[アクション履歴取得部２１０]
アクション履歴取得部２１０は、前回アクセスの後に蓄積されたアクセスログを取得する。アクション履歴取得部２１０は、図２に示すように、アプリケーション・サーバ１２２のアクション履歴記憶部２７０にアクセスしてアクセスログを取得することもできるし、またアプリケーション・サーバ１２２へのアクションを聴取し、所定の期間内のアクセスログを取得し、適切な記憶領域に蓄積しておくこともできる。アクセスログは、アクションを要求した要求元識別子と、要求の対象となったコンテンツまたはノードを固有に示す対象識別子と、アクション内容を識別するためのアクション識別子とを含む構成として実装することができる。
【００４１】
アクション履歴取得部２１０は、アクセスログに登録されたアクション識別子を取得し、当該アクション識別子がスパマー報告アクション定義部２８０でスパマー報告アクションとして定義されているか否かを検査する。アクション履歴取得部２１０は、検査の結果、当該レコードがスパマー報告アクションに関わるものであると判断すると、該当するアクセスログのレコードを抽出し、スパマー報告アクションに関連するレコードのみを含む、スパマー報告アクション履歴集合を生成する。そして、生成したスパマー報告アクション履歴集合は、ビュー、リスト、またはテーブルとして分析サーバ１２６の適切な記憶領域に登録される。
【００４２】
[関連ノード取得部２２０]
関連ノード取得部２２０は、スパマー報告アクション履歴集合に登録されたノードを抽出し、ノード集合Ｖを生成する。ノード集合Ｖは、スパマー報告アクションに関連したノードを登録するリストのデータ構造体として表現できる。関連ノード取得部２２０は、当該アクションがコンテンツに対するものである場合、アプリケーション・サーバ１２２のコンテンツ記憶部１２４に照会を発行し、対象識別子から、対象となったコンテンツの作成元に対応する対象ノード識別子を取得する。ノード集合は、スパマー報告アクションに関連した各ノードの発信元識別子、対象ノード識別子を重複なく登録して生成することができる。関連ノード取得部２２０は、ノード集合Ｖを生成し、ビュー、リストまたはテーブルとして登録する。
【００４３】
その後、関連ノード取得部２２０は、リンク集合Ｅを作成する。リンク集合Ｅは、スパマー報告アクションに関連する発信元識別子と、対象ノード識別子と、関連ノード間に発生したスパマー報告アクションについて割当てられた重付け値とを対応付けて登録するリストとして記述することができる。生成したノード集合Ｖおよびリンク集合Ｅは、ビュー、リスト、またはテーブルとして分析サーバ１２６内のＲＡＭなどの適切な記憶領域に格納される。
【００４４】
[無向グラフ生成部２３０]
無向グラフ生成部２３０は、ノード集合Ｖおよびリンク集合Ｅのレコードを参照して、特定のノード間の嫌悪度または迷惑度を関連付ける無向グラフＧ（Ｖ、Ｅ）を生成する。無向グラフＧ（Ｖ、Ｅ）は、そのデータ構造としてスパマー報告アクションの関連ノードを節点とし、各ノードについて、当該ノードを含むリンクを、総当たり的にリストしたデータ・テーブルを使用して生成することができる。無向グラフＧ（Ｖ、Ｅ）は、上述したデータ・テーブルを使用して、リンクごとに、リンクを定義するノードおよびリンクについて計算されるリンク重付け値ｗｉｊとを登録するテーブル構造体として表現することができる。
【００４５】
本実施形態で、リンクとは、ノードを連結する枝を意味し、同一のノード間で複数回のスパマー報告アクションが登録される場合であっても、同一のリンクとして登録される。また、リンク重付け値ｗｉｊは、ノードｉおよびノードｊ間で発生したスパマー報告アクションについて、発生回数Ｔを使用して下記式（１）で定義される値である。
【００４６】
【数１】
0005324824.tif 000002
上記式（１）中、ｗｓｉｊ（ｔ）は、ノードｉおよびノードｊ間で発生した第t回のスパマー報告アクションについてスパム分析データ記憶部１２８に登録された、アクション重付け値である。
【００４７】
無向グラフ生成部２３０は、上述したデータ・テーブルを使用して、リンクを抽出する。さらに無向グラフ生成部２３０は、リンクとして指定されたリンクについて上記式（１）を使用してリンク重付け値ｗｉｊを計算し、ノード、リンク、リンク重付け値を対応付けし、無向グラフＧ（Ｖ、Ｅ）を生成する。
【００４８】
[最大カット計算部２４０]
最大カット計算部２４０は、無向グラフＧ（Ｖ、Ｅ）を参照して、無向グラフＧ（Ｖ、Ｅ）のノードのユーザ属性を、スパマー・ノードと、一般ノードとに分類するための判断処理を実行する。本実施形態では、スパマー・ノードを要素として含む集合を、スパマー・ノード集合Ｓとし、一般ノードを要素として含む集合を一般ノード集合Ｎとして、ノードを分類する。本実施形態では、最大カットとは、ノードをスパマー集合Ｓおよび一般集合Ｎに分類した場合、スパマー・ノード集合Ｓの要素と一般ノード集合Ｎとの間を連結するリンクが与えるリンク数、またはリンク重付け値の総和を最大とするように、ノード集合を２分割（カット）することとして定義される。
【００４９】
本実施形態の最大カット計算部２４０は、処理対象のノード総数に対応して最適な最大カット計算を実行させるため、異なる処理を実行する最大カット・ソルバー２４０ａ、２４０ｂ、２４０ｃを含んで実装することが好ましい。具体的には、最大カット・ソルバー２４０ａは、対象ノード数が比較的少数、例えば５００ノード以下の場合に適用される整数計画法ソルバーとして実装する。また、最大カット・ソルバー２４０ｃは、欲張り法ソルバーとして実装され、計算精度はやや低下するものの、最大カット計算のスケーラビリティを保証しつつ多数の処理ノードが存在する場合や、スパマー・ノードのダイジェストを高速に取得したい場合に使用される。
【００５０】
最大カット・ソルバー２４０ｂは、半正定値計画法を使用して最大カット計算を実行する半正定値計画法ソルバーとして実装される。本実施形態では、最大カット・ソルバー２４０ｂは、最大カット・ソルバー２４０ａに設定された第１しきい値を超えた場合に呼出され、計算スケーラビリティを確保しながら、最大カット計算を実行する。また、最大カット・ソルバー２４０ｃは、最大カット・ソルバー２４０ｂに設定された第２しきい値を超えた場合に呼出され、ノードについて総当たり的に最大カット計算を実行するが、１判断に使用する計算量が少ないことから、膨大なノードの中から限られた数のスパマー・ノードを抽出する目的では、好ましく適用することができる。
【００５１】
最大カット計算部２４０が分類したスパマー・ノード集合Ｓに分類されたノードは、当該ノードの固有識別子および当該ノードについて計算されたスパム度とともにスパマー・リスト２６０としてサーバ１２６の適切な記憶領域に登録される。本実施形態では、スパム度は、下記式（２）で計算される値を使用することができる。
【００５２】
【数２】
0005324824.tif 000003
上記式（２）、Ｗｋは、ノードｋのスパム度であり、ｗｋｌは、ノードｋとノードｌとの間をリンクし、ノードｋに集中するノードｌとの間のリンクについて計算されたリンク重付け値である。なお、各最大カット・ソルバーの処理についてはより詳細に後述する。
【００５３】
前記のスパム度は無方向のリンクから計算されるものとして与えたが、方向付きリンクからの計算もできる。例えば、スパマー報告アクション履歴集合の発信元識別子から対象識別子へとリンクの方向を与え、ノードｋのスパム度をノードｋが対象識別である方向付きリンクのリンク重付け値として計算できる。ただし，この場合発信元識別子であるノードを信頼することとなり、発信元識別子がスパマー・ノードである場合、得られたスパム度の信頼性が低下する可能性がある。
【００５４】
[結果出力部２５０]
結果出力部２５０は、スパマー・リスト２６０に登録されたスパマー・リスト２６０を照会し、スパム度の高いノードをスパム度順にソートして、アクションの内容などとともにスパム分析の出力結果として出力する。出力結果は、リストなどとして管理者が参照可能にハードコピーすることができる。他の実施形態では、出力結果は、アプリケーション・サーバに送付され、適切なＵＲＩを付してアプリケーション・サーバ１２２のアクセス解析データとして登録することもできる。さらに、結果出力部２５０は、出力結果をアプリケーション・サーバ１２２に通知し、アプリケーション・サーバ１２２における該当するＩＰアドレス、ユーザ識別値などの自動フィルタリング処理のために利用させることができる。
【００５５】
図３は、本実施形態で、スパム分析データ記憶部１２８が格納するスパム分析データ３００の実施形態を示す。スパム分析データ３００は、サーバ１２０へのアクセスログに登録されるアクションについて割当てられたアクション識別子のうち、スパマー報告アクションとして分類すべきアクションのアクション識別子を登録するフィールド３１０と、当該アクションをスパマー報告アクションとして参照する場合の重付け値を登録するフィールド３２０と、当該スパマー報告アクションの内容を登録するフィールド３３０とを含んで構成されている。例えばアクション識別子＝１０で特定されるスパマー報告アクションは、特定のノードがスパマー・ノードとして報告されたことを指定するものであり、この場合、特定のノードを、スパマー・ノードとして判断する場合の重付け値ｗｓ＝１．０が割当てられる。
【００５６】
一方、例えばアクション識別子＝６１で指定されるアクションは、そのアクションの内容が「苦情のコメントを記入した」であり、当該アクションをスパマー報告アクションとして確実に特定するにはその回数・頻度を参考する必要があるため、フィールド３２０に登録された重付け値ｗｓ＝０．５として低く設定されている。なお、図３に示したスパム分析データ３００は、例示であり、アクションについて付される重付け値は、他の値とすることができるし、アクションの内容を登録するフィールド３３０は、分析結果にアクションの内容を含ませることが必要ない場合や、アクセスログ自体から取得される場合には、スパム分析データ３００のエントリ項目として含ませなくともよい。
【００５７】
図３の通り本実施形態でリンクの重み付け値のもととなるアクション重み付け値が正の値として与えられたが、負の値として与えられてもよい。ただし、負の値として与えられたアクション重み付け値に対応するアクションの内容がスパマー報告アクションの反対、つまり、信頼報告に属するアクションとなる。ノードの信頼報告に属するアクションとはノードが他のノードを信頼できたからと思われるアクションのことで、例えば、他のノード好評価点を高くしたり、メッセージの返事を書いたりするなどがある。
【００５８】
図４は、本実施形態でアクション履歴取得部２１０によりアクセスログから生成されるスパマー報告アクション履歴集合のデータ構造を示す。アクション履歴取得部２１０は、アプリケーション・サーバ１２２が作成するアクセス履歴にアクセスし、前回取得したタイムスタンプの後に登録されたアクセス履歴を照会し、前回から現在までに蓄積されたアクセス履歴を抽出し、テーブル４００を取得する。テーブル４００は、説明する実施形態では、アクションが行われたタイムスタンプを登録するフィールド４１０、当該アクションの内容を示すアクション識別子を登録するフィールド４２０、アクション内容のダイジェストを登録するフィールド４３０、当該アクションに関連した発信元識別子を登録するフィールド４４０および対象識別子を登録するフィールド４５０を含んで構成されている。
【００５９】
アクション履歴取得部２１０は、その後、分析サーバ１２６のスパム定義データ記憶部１２８にアクセスして、スパマー報告アクションとして定義されているアクション識別子を取得し、テーブル４００を検索する。アクション履歴取得部２１０は、テーブル４００の検索により、スパマー報告アクションとして定義されているレコードを検索し、検索されたレコードをリストに登録して、スパマー報告アクション履歴集合４６０を生成する。なお、対象識別値がコンテンツ識別子である場合、スパマー報告アクション履歴集合４６０の対象識別子４５０ａ内にコンテンツ識別子が登録されている場合、関連ノード取得部２２０は、コンテンツの作成元のノードを固有に識別する対象ノード識別子を取得し、ノード集合Ｖに登録する。なお、他の実施形態では、アクション履歴取得部２１０は、関連ノード取得部２２０に渡す前に、コンテンツ識別値から対象ノード識別子を取得して、スパマー報告アクション履歴集合４６０のフィールド４５０ａを対象ノード識別子で置換する処理を行うこともできる。本実施形態では、関連ノード取得部２２０は、スパマー報告アクション履歴集合４６０から、発信元識別子、対象ノード識別子を取得してノード集合Ｖおよびリンク集合Ｅを生成する。
【００６０】
その後、関連ノード取得部２２０は、スパマー報告アクション履歴集合４６０に対してＳＱＬ(Structured Query Language)文などを使用して照会を発行し、ノード集合Ｖおよびリンク集合Ｅを生成する。
【００６１】
図５は、アクション履歴取得部２１０が実行するスパマー報告アクション履歴集合生成処理のフローチャートである。図５の処理は、ステップＳ５００から開始し、ステップＳ５０１で対象とするアクセスログの期間を指定してアクセスログを検査期間分抽出し、スパマー報告アクション履歴集合４６０を空集合に初期化する。ステップＳ５０２では、検査期間内に未処理のアクセスログが残っているかを判断する。未処理のアクセスログがない場合には（ｎｏ）、処理をステップＳ５０５に分岐させ、スパマー報告アクション履歴集合４６０を確定し、適切な記憶領域に格納し、ステップＳ５０６で処理を終了し、関連ノード取得部２２０に通知を発行する。
【００６２】
一方、ステップＳ５０２で検査期間内に未処理のアクセスログが残っている場合（ｙｅｓ）、ステップＳ５０３で現在処理対象のレコードのアクション識別子がスパマー報告アクションとして登録されているか否かを判断する。処理対象のレコードがスパマー報告アクションに対応するアクション識別子を登録されていない場合（ｎｏ）には、処理をステップＳ５０２に分岐させ、さらに残りの未処理アクセスログの有無を判断する。また、ステップＳ５０３で、処理対象のレコードがスパマー報告アクションとして定義されているアクション識別子を登録する場合（ｙｅｓ）、ステップＳ５０４で処理中のアクセスログのレコードをスパマー報告アクション履歴集合４６０に登録する。
【００６３】
さらに、対象識別値がコンテンツ識別値などの場合には、コンテンツを作成したノードを示す対象識別子を検索し、レコードの対象識別子のフィールドに対象ノード識別子として記述する。当該レコードの登録後、処理をステップＳ５０２に戻し、さらに未処理のアクセスログがあるかないかを判断し、検査期間中の全アクセスログについて処理が終了するまで、スパマー報告アクション履歴集合４６０へのスパマー報告アクションの登録を続行する。
【００６４】
関連ノード取得部２２０は、図５の処理で生成されたスパマー報告アクション履歴集合４６０を参照して、ノード集合Ｖおよびリンク集合Ｅを生成する。ノード集合Ｖおよびリンク集合Ｅのデータ構造は、テーブル、リスト、またはベクトル型式として実装することができるが、本実施形態では、ノード集合Ｖおよびリンク集合Ｅは、リスト構造として実装するものとして説明する。
【００６５】
ノード集合Ｖの作成処理は、関連ノード取得部２２０がスパマー報告アクション履歴集合４６０を参照して、発信元識別子４４０ａおよび対象ノード識別子４５０ａを抽出し、各識別子の重複を排除したリストを生成することによって実行される。なお、発信元識別子４４０ａは、特定のユーザＩＤ、ハンドルネーム、送信元メール・アドレス、ドメインネーム、またはＩＰアドレスなど、ノードを固有に識別できる限り、いかなる値でも使用することができる。
【００６６】
また、対象ノード識別子４５０ａは、メール・メッセージの場合、宛先メール・アドレス、ＩＰアドレス、またはコンテンツのアップロード・ダウンロードに関連するアクションの場合には、上述したように、当該ＵＲＩまたはＵＲＬに対してコンテンツを登録したコンテンツ作成元のユーザＩＤ、ハンドルネーム、ドメインネーム、ＩＰアドレスなどを使用することができる。関連ノード取得部２２０は、対象識別子４４０ａが、コンテンツに関連するものであると判断した場合、アプリケーション・サーバ１２２にアクセスし、コンテンツ記憶部１２４などを参照して、コンテンツ記憶部１２４の該当するコンテンツの作成者の固有識別値をユーザ・データベースなどを参照して取得し、対象ノード識別子４５０ａとしてノード集合Ｖを生成するために使用する。なお、ノード集合Ｖの例示的なデータ構造についてはより詳細に後述する。
【００６７】
さらに関連ノード取得部２２０は、ノード集合Ｖを生成した後、リンク集合Ｅを初期化する。関連ノード取得部２２０によるリンク集合Ｅの生成処理は、スパマー報告アクション履歴集合４６０に登録されているアクション識別子を登録するフィールド４２０を参照し、アクション識別子について割当てられた重付け値ｗｓを取得して、リンク集合のレコードに、アクション重みとして登録する。その後、関連ノード取得部２２０は、処理中のアクション識別子に対応する発信元識別子、および対象ノード識別子を取得し、リンク集合Ｅの該当するレコードのそれぞれ対応するフィールドに記述することで、リンク集合Ｅを生成する。
【００６８】
図６は、関連ノード取得部２２０が生成するリンク集合Ｅを、リンク・リスト６００として実装する場合の実施形態である。図６に示すように、リンク・リスト６００は、スパマー報告アクションについて割当てられたアクション重付け値ｗｓを登録するフィールド６１０と、発信元識別子を登録するフィールド６２０と、対象ノード識別子を登録するフィールド６３０とを含む構成とされる。図６に示すリンク・リスト６００では、説明の便宜上アクション重付け値ｗｓは、最高の１．０のみがリストされているが、前述のようにアクションのスパム関連性の高さに対応して、図３に示すアクション重付け値ｗｓが選択され、フィールド６１０に登録される。
【００６９】
無向グラフ生成部２３０は、図６に示したリンク・リスト６００に登録された各項目値を使用して無向グラフＧ（Ｖ、Ｅ）を生成する。図６には、例示のため、無向グラフ（Ｖ、Ｅ）のグラフィカル表現を、無向グラフ６４０として示す。無向グラフ６４０は、リンク・リスト６００の発信元識別子６２０と、対象ノード識別値６３０とをグラフのノードとし、同一のノードを連結するリンクで対応するノードを連結したグラフィカル表現として示される。また、各リンクには、上記式（１）を使用して計算された当該リンクについてのリンク重付け値ｗｉｊを示す。
【００７０】
また、リンク・リスト６００に登録されたノードは、発信元または対象ノード如何に関わらず、ノード６５０〜ノード６９０として登録され、それらの間がリンクにより連結されて無向グラフとして表現される。
【００７１】
無向グラフ生成部２３０は、関連ノード取得部２２０が生成したノード集合Ｖと、リンク集合Ｅとを使用して無向グラフを作成する。無向グラフ生成部２３０が実行する無向グラフ作成処理のフローチャートを、図７に示す。
【００７２】
図７に示す無向グラフ作成処理は、ステップＳ７００から開始する。ステップＳ７０１で、スパマー報告アクションに関わるノードを列挙したノード集合Ｖを取得し、無向グラフＧ（Ｖ、Ｅ）を初期化する。ステップＳ７０２では、ノード集合Ｖに登録されたノードに関係するリンクに関連してリンク集合Ｅ内に未処理のリンクが残っているか否かを判断し、リンク集合Ｅに未処理のリンクがない場合（ｎｏ）、処理をポイントＡに分岐させる。ポイントＡに後続する処理については後述する。
【００７３】
ステップＳ７０２で、リンク集合Ｅに未処理のリンクが残されている場合（ｙｅｓ）、ステップＳ７０３で現在処理中のリンクの発信元識別子が無向グラフＧ（Ｖ、Ｅ）のノードとして登録されているか否かを判断し、登録されていない場合、ステップＳ７０７で処理中の発信元識別子を無向グラフＧ（Ｖ、Ｅ）のノードとして登録し、処理をステップＳ７０４に分岐させる。一方、ステップＳ７０３で現在処理中のリンクの発信元識別子が無向グラフＧ（Ｖ、Ｅ）のノードとして含まれている場合（ｙｅｓ）、ステップＳ７０４に処理を分岐させる。ステップＳ７０４では、現在処理中のリンクの対象ノード識別子は、無向グラフＧ（Ｖ、Ｅ）のノードとして登録されているか否かを判断し、登録されていない場合（ｎｏ）、ステップＳ７０８で対象ノード識別子を無向グラフＧ（Ｖ、Ｅ）に登録し、処理をステップＳ７０５に渡す。
【００７４】
一方、ステップＳ７０４で現在処理中のリンクの対象ノード識別値が、無向グラフＧ（Ｖ、Ｅ）のノードとして登録されている場合（ｙｅｓ）、処理をステップＳ７０５に分岐させる。ステップＳ７０５では、無向グラフＧ（Ｖ、Ｅ）に処理中の発信元識別子と対象ノード識別子との間に、同一の組合わせ端点ノードを有する他のリンクがあるかないかを、リンク集合Ｅを検査して判断する。同一の組合わせ端点ノードを有する他のリンクがある場合（ｙｅｓ）、同一の端点ノードを有するリンクについてのアクション重付け値ｗｓを読出し、ｗｉｊ＝ｗｓ＋ｗｉｊとして既計算の同一組合わせ端点ノードを結合するリンクのリンク重付け値ｗｉｊに、処理中のアクション重付け値ｗｓを加算し、リンク重付け値ｗｉｊを更新する。
【００７５】
また、ステップＳ７０５で同一の端点ノードを有する他のリンクが先に登録されていないと判断された場合（ｎｏ）、ステップＳ７０９で処理中のリンクについて割当てられたアクション重付け値ｗｉｊ＝ｗｓとして、リンク重付け値ｗｉｊを計算する。
【００７６】
ステップＳ７０６およびステップＳ７０９の処理が終了し、リンク重付け値ｗｉｊが確定した後、ステップＳ７１０で処理中のリンク・データ（発信元識別子、対象識別子、リンク重付け値）を無向グラフＧのリンク・データとして登録し、処理をステップＳ７０２に分岐させ、リンク集合Ｅ内の未処理リンクがなくなるまで処理を繰返し実行する。図７の処理は、未処理のリンクがなくなった段階で、ポイントＡから図８の処理に処理を分岐させる。
【００７７】
図８は、図７のポイントＡに後続する無向グラフ作成処理のフローチャートである。図７のポイントＡから分岐した後、ステップＳ８０１で無向グラフＧ（Ｖ、Ｅ）を出力し、ステップＳ８０２で、無向グラフＧ（Ｖ、Ｅ）の作成処理を終了させる。無向グラフＧ（Ｖ、Ｅ）は、リスト、テーブル、またはベクトル形式など種々のフォーマットで記述することが可能であり、処理上の効率などを考慮して、いかなるフォーマットとしても登録することができる。
【００７８】
図９は、図７および図８に示した無向グラフ作成処理によって作成される無向グラフＧ（Ｖ、Ｅ）を作成するためのデータ・テーブル９００およびデータ・テーブル９００から生成される無向グラフＧ（Ｖ、Ｅ）のデータ表現９５０を示す。
【００７９】
データ・テーブル９００は、ノードをグラフの節点として登録するフィールド９１０を含んでおり、フィールド９００の登録項目は、関連ノード取得部２１０が生成したノード集合Ｖの要素に対応する。また、データ・テーブル９００には、リンク集合Ｅに対応するデータを登録するフィールド９２０が含まれている。フィールド９２０には、リンク集合Ｅに登録された発信元識別子、対象ノード識別子およびアクション重付け値ｗｓをそれぞれ登録するサブフィールドが割当てられている。なお、図９フィールド９２０では、発信元識別子および対象ノード識別子を、無向グラフのノードとして処理するものである。フィールド９２０には、ノード集合Ｖに登録されたノードを発信元識別子として含むリンク集合Ｅのリンク・リスト６００が、ノードごとに対応付けられて、例えばタイムスタンプの昇順に登録されている。
【００８０】
無向グラフ作成部２３０は、ノード集合Ｖおよびリンク集合Ｅに対応するデータ・テーブル９００から、図７および図８に示した処理を実行し、データ表現で表された無向グラフＧ（Ｖ、Ｅ）９５０を作成する。無向グラフＧ（Ｖ、Ｅ）９５０は、リンクを指定する二つのノードと、リンク重付け値ｗｉｊとを含んで構成される、グラフ・データを登録するフィールド９６０として構成されている。
【００８１】
なお、図９に示す無向グラフＧ（Ｖ、Ｅ）９５０では、リンクは、同一の発信元識別子および対象ノード識別子に対応するノード組合わせを有するリンクに集約され、集約した場合の重み付けの合計がリンク重み付け値ｗｉｊとして定義される。ノードの若い方、具体的には、説明している実施形態で、アルファベットの先頭文字に近いノードを有するリンクを上位に記述する。しかしながら、本実施形態では、リンクを識別させるためのフォーマットは、情報処理装置が識別できる限り、いかなるフォーマットでもかまわないし、その登録順も、特定の用途・目的に応じて変更することができる。
【００８２】
セクション３：スパマー・ノード判断処理
図１０は、本実施形態のスパマー・ノード判断処理の処理概念を、初期集合１０００と、スパマー・ノード判断処理で生成される過渡集合１０５０とを使用して説明した概念図である。本実施形態のスパマー・ノード判断処理は、図２に示した実施形態の最大カット計算部２４０に実装される。スパマー・ノード判断処理では、初期設定として、初期集合１０００として抽出されたスパマー報告アクションに関連するノードを、全部が一般ノードであるものとして一般ノード集合Ｎに登録し、スパマー・ノード集合Ｓを空集合として設定する。
【００８３】
初期設定時には、一般ノード集合Ｎに、ノードＡ〜ノードＦまでが登録されている。また、スパマー・ノード集合Ｓは、空集合として初期化されており、処理の進行に応答して、スパマー・ノードの推定数に達するまでを制約条件に、スパマー・ノードをスパマー・ノード集合Ｓに登録し、一般ノード集合Ｎから削除する処理を実行する。この処理によって過渡集合１０５０が生成され、一般ノード集合Ｎと、スパマー・ノード集合Ｓとの間に、リンクが張られ、各リンクに対してそれぞれリンク重付け値Ｗｓｕｂが対応付けられる。特定のノードを、一般ノード集合Ｎからスパマー・ノード集合Ｓに移動させる処理は、本実施形態では、対象となるノード総数に応じ、処理の精度および処理のスケーラビリティを考慮して、整数計画法ソルバー、半正定値計画法ソルバー、および欲張り法ソルバーを利用する。
【００８４】
いずれのソルバーについても、基本的な処理概念は、異なる属性集合間に渡って張られるリンクのリンク重付け値を上昇させ、同一の属性集合内のみに局在するリンクについてのリンク重付け値を低下させ、その差を最大にするようにノードを一般集合Ｎおよびスパマー・ノード集合Ｓにユーザ属性を分類する。本実施形態では、最大カットとは、ノードを一般ノード集合Ｎと、スパマー・ノード集合Ｓとにユーザ属性を分類する場合に、異なるユーザ属性の集合間にわたって存在するリンクのリンク重付け値に注目して、指標値を最大とするように、２つのユーザ属性のノード集合を生成させる処理を意味する。
【００８５】
本実施形態で、最大カット計算を、整数計画法ソルバーを使用して実装する場合、整数計画法ソルバーは、下記式の指標関数（３）を導入し、指標関数（３）のノードについての総和を目的関数として使用する。
【００８６】
【数３】
0005324824.tif 000004
上記式中、ｘｉおよびｘｊは、ノード集合に帰属されるノードの指標値である。一般ノード集合Ｎに分類されるノードiについては、ｘｉ＝１とし、スパマー・ノード集合Ｓに分類されるノードjについては、ｘｊ＝−１として、絶対値が同じで、符号が異なる整数を、一般ノードおよびスパマー・ノードに割当てる。ｗｉｊは、該当するリンクについて計算されたリンク重付け値である。
【００８７】
また、本実施形態で最大カット計算を、半正定値計画法ソルバーを利用して実装する場合、半正定値計画法ソルバーは、ノード集合Ｖの要素数に対応するｎ個のノードを代表するｎ×ｎの実正方行列を、下記式（４）のスパム行列Ｘとして定義する。スパム行列Ｘは、対角要素が１として設定され、それ以外の要素には、Ｘｉｊ＝Ｘｊｉを満たす、いわゆる半正定値行列として参照されるｎ×ｎの実対称行列である。
【００８８】
【数４】
0005324824.tif 000005
本実施形態では、ノード間のリンクの方向性を指定していないので、Ｘｉｊ＝Ｘｊｉとして設定することができる。
【００８９】
上述の特性を有するスパム行列Ｘは、ｎ×ｎの実対称行列となり、半正定値計画法による最適化が適用可能な行列を形成する（半正定値計画とその応用、第１回半正定値計画問題の基礎、東京工業大学大学院情報理工学研究科、小島政和著、２０００年４月、ｈｔｔｐ：／／ｗｗｗ．ｉｓ．ｔｉｔｅｃｈ．ａｃ．ｊｐ〜ｋｏｊｉｍａａｒｔｃｌｅｓＳＤＰ０５１５．ｐｄｆ）。
【００９０】
本実施形態の半正定値計画法ソルバーでは、スパマー・ノード判断処理に対して上述したスパム行列Ｘの要素を使用して下記指標関数（５）を定義する。
【００９１】
【数５】
0005324824.tif 000006
上記式中、Ｘｉｊは、スパム行列のｉ行ｊ列の要素であり、ｗｉｊは、リンク重付け値である。指標関数（５）は、半正定値計画法の目的関数として利用され、目的関数を最大化させるように、Ｘｉｊの要素を決定し、スパマー・ノード判断を実行する。
【００９２】
さらに本実施形態の最大カット計算部２４０は、欲張り法ソルバーを実装する。欲張り法ソルバーは、整数計画法ソルバーおよび半正定値計画法ソルバーが実行する処理の出力結果に比較して得られた結果の最大性の保証が低下する。しかしながら、処理対象のノードが多数の場合、スパマー報告アクション集合（リスト）の中から短時間に効率的に最大カットを与えるスパマー・ノードを抽出する点で、スパマー報告アクション集合に含まれるノード数が一定以上の場合に好ましく利用することができる。
【００９３】
欲張り法ソルバーでは、指標関数（６）を使用して最大カット計算を実行する。
【００９４】
【数６】
0005324824.tif 000007
上記式（６）中、ｗｕｖは、現在の一般ユーザ集合Ｎに属するノードｕと、ノードｕ以外その他の一般ユーザ集合Ｎのノードｖとを結合するリンクのリンク重付け値であり、ｗｕｘは、ノードｕと現在のスパマー・ノード集合Ｓ内のノードｘとを結合するリンクのリンク重付け値である。すなわち指標関数（６）は、現在一般ユーザ集合Ｎ内のノードｕは仮にスパマー・ノード集合Ｓに移動された場合、その移動に伴った張られるリンクの重みの総和の変化を表している。
【００９５】
欲張り法では、初期設定時とそれ以降の各ステップに一般ノード集合Ｎに含まれていたノードの内、指標関数（６）の値が正で、かつ、最大となるようなノードｕがスパマー・ノード集合Ｓに移動される。このようにして、各ステップでは既存の一般ノード集合Ｎから、欲張り的に指標関数（６）が最大となるように一つのノードが選ばれ、スパマー・ノード集合Ｓへと移動される。スパマー報告アクション履歴集合は、スパマー報告アクションに関連したノードとリンクを抽出して生成されるので、リンクは、当該ノード間にスパマー報告アクションが発生していることを示すものである。したがって、スパマー・ノードが完全にスパマー・ノード集合Ｓに移動された場合、一般ノード集合Ｎ内、および、スパマー集合Ｓ内に局在化するリンクは、理想的に存在しなくなるものと考えられる。このため、欲張り法では、既存の一般ユーザ集合Ｎのノードの内から、既存のスパマー・ユーザ集合Ｓへと移動されたノードｕは、指標関数（６）の値が正で、かつ，最大となるようなノードとして選ばれる。意味的には、ノードｕに対応するユーザは大多数の一般ユーザに嫌われ、スパマー・ユーザにはあまり嫌われないことに相当するので、指標関数（６）自体を目的関数として使用することが妥当である。
【００９６】
以下、図１１を使用して本実施形態のスパマー・ノード判断処理を説明する。スパマー・ノード判断処理は、ステップＳ１１００から開始し、ステップＳ１１０１で無向グラフＧ（Ｖ、Ｅ）を取得する。ステップＳ１１０２では、無向グラフＧ（Ｖ、Ｅ）内のスパマー数の推定値を、適切な記憶領域から取得する。スパマー数の推定値は、アプリケーション・サーバ１２２が提供するサービスの内容によっても異なる。例えば、ＳＮＳやブログなどをアプリケーション・サーバ１２２が提供する場合、スパマーの割合はある程度知られている。
【００９７】
ＮＩＦＴＹ株式会社（ニフティ研究所）は、「BuzzPulse」で分析対象としているブログ記事のうち、２００７年１０月〜２００８年２月の各月ごとにそれぞれ約１０万記事をサンプリングして、スパム・ブログの割合を調査した。この結果、５ヶ月間の平均で、約４０％がスパム・ブログであることが知られている（http:／／www.nifty.co.jp／cs／07shimo／detail／080326003337／1.htm）。また、メール・メッセージなど他のサービスの場合には、スパマー・ノードの推定数は、約１％〜２％といわれている。以上のように、ＳＮＳ、メール配信、ブログなど、アプリケーション・サーバ１２２が提供するサービスに応じて、スパマー・ノードの推定数（推定割合）は、一定期間の統計的解析を行い、取得することができる。取得されたスパマー・ノードの推定値は、プログラム内に記述することもできるし、またサービスに対する柔軟な適用性を付与するために、ルックアップ・テーブルなどとして格納させておき、プログラムの実行開始時に初期設定することもできる。
【００９８】
ステップＳ１１０４では、無向グラフＧ（Ｖ、Ｅ）に含まれるノードの数を、ノード集合Ｖのエントリ数などを参照して判断し、無向グラフＧ（Ｖ、Ｅ）のノード数が第１しきい値以下であるか否かを検査する。第１しきい値は、使用するサーバなどの情報処理装置のＣＰＵ能力、メモリ容量などのハードウェア・リソースに応じて適宜設定することができ、特に制限されるものではない。説明する特定の実施形態では、第１しきい値を、ノード総数＝１００として例示的に挙げることができる。ステップＳ１１０４で、無向グラフＧ（Ｖ、Ｅ）のサイズが第１しきい値以下であると判断した場合（ｙｅｓ）、ステップＳ１１０５で整数計画法ソルバーを呼出して無向グラフＧ（Ｖ、Ｅ）を２分割するＭＡＸＣＵＴ集合を生成する。
【００９９】
また、ステップＳ１１０４で、無向グラフＧ（Ｖ、Ｅ）のノード総数が第１しきい値を超えると判断された場合（ｎｏ）、ステップＳ１１０７で、無向グラフＧ（Ｖ、Ｅ）のノード総数が第２しきい値以下であるか否かを判断する。ノード総数が第２しきい値以下であると判断した場合（ｙｅｓ）、ステップＳ１１０８で半正定値計画法ソルバーを呼出して無向グラフＧ（Ｖ、Ｅ）を２分割するＭＡＸＣＵＴ集合を生成する。第２しきい値についても、使用するサーバなどの情報処理装置のＣＰＵ能力、メモリ容量などのハードウェア・リソースに応じて適宜設定することができるが、特定の実施形態では、第２しきい値を、例示的に1０００として設定することができる。
【０１００】
一方、ステップＳ１１０７で、無向グラフＧ（Ｖ、Ｅ）が第２しきい値を超えると判断した場合（ｎｏ）、ステップＳ１１０９で欲張り法ソルバーを呼出して無向グラフＧ（Ｖ、Ｅ）を２分割する最大カット集合を生成する。ステップＳ１１０５、Ｓ１１０８、Ｓ１１０９で最大カット集合を生成した後、ステップＳ１１０６では、無向グラフＧ（Ｖ、Ｅ）を２分割して、最大カット集合として生成したスパマー・ノード集合Ｓおよび一般ノード集合Ｎとを出力し、処理をステップＳ１１１０で終了させる。以下、各ソルバーの実装態様について説明する。
【０１０１】
＜整数計画法ソルバー＞
図１２は、図１１の処理で使用する整数計画法ソルバーに実装されるスパマー判定式の実施形態を示す。図１２に示すように本実施形態での整数計画法ソルバーは、指標関数（３）を含んで定式化される。また制約条件としては、処理下ノードは、一般ノードの集合Ｎとスパマー・ノード集合のＳに分割され，一般ノードの集合Ｎのサイズが（ｎ−ｎ−）以上で、スパマー・ノード集合Ｓのサイズがｎ−以下となるように，つまり集合Ｎのサイズと集合Ｓのサイズの差が値（ｎ−２ｎ−）以上となることを使用する。図１２に示した目的関数は、ノードｊがスパマー・ノードである場合、ｘｊ＝−１と設定され、ノードｉが一般ノードである場合、ｘｉ＝＋１に設定される。この結果、ノードｉとノードｊとが同一の属性集合に帰属される場合には、積ｘｉｘｊ＝１となり、指標関数（３）の値＝０となる。すなわち、図１２に示した目的関数は、ノードｉとノードｊとが異なる属性集合に帰属された場合に、２ｗｉｊの正値を返す。なお、本実施形態では、ノードｉおよびノードｊについて方向を指定しないため、ｘｉｘｊ、ｘｊｘｉが両方計算されるので、総和の正規化の目的で、図１２に示した目的関数には、正規化定数＝１／４が追加される。上述した目的関数は、制約条件の下で、最大化するようにユーザ属性分類が実行され、目的関数の値は、最大カット計算における指標値として使用される。
【０１０２】
前述した整数計画法ソルバーによるノード集合をスパマー・ノード集合Ｓと一般ノード集合Ｎに分割する中で、指標関数（３）を最大化する制約条件としては前述した集合のサイズの他に、例えば、管理者が何らかの方法で事前に特定したいくつかのスパマー・ノードをあらためて指定して、それらをスパマー・ノード集合Ｓに入るような制約でもよい。基本的にノードｉの指標値ｘｉの線形結合で表される関数であれば、指標関数（３）の最大化の制約条件として設定できる。
【０１０３】
図１２で示した実施形態では、ノード集合Ｖの処理終了時に整数計画法により、最大カットを満足する一般ノード集合Ｎおよびスパマー・ノード集合Ｓを生成することができることが保証される。しかしながら、正確にスパマー・ノードをスパマー・ノード集合Ｓに登録する処理を実行するためには、ｘｉ、ｘｊの乗算を伴い、この結果、いわゆる２次計画法並みの計算量を必要とする。このため整数計画法ソルバーは、ノード総数の増加に対して計算量が増大し、またメモリ使用量も増大する。そこで、本実施形態では、使用するハードウェア・リソースの容量に対応して設定される第１しきい値に対応して、呼出すべき最大カット・ソルバーを選択することが好ましい。
【０１０４】
＜半正定値計画法ソルバー＞
図１３には、本実施形態で、ノード総数に対応し、最大カット・ソルバーとして、整数計画法ソルバーの代わりに呼出される半正定値計画法ソルバーが実装するスパマー判定式の実施形態を示す。目的関数は、上述した指標関数（４）を含んで構成され、Ｘｉｊは、スパム行列Ｘの要素である。上述したように、スパム行列Ｘは、対角要素については、Ｘｉｉ＝１とされ、非対角要素Ｘｉｊについては、Ｘｉｊ＝Ｘｊｉを満たす実数値が設定される。半正定値計画法ソルバーは、ノード総数の増加に対して実質的にその総数の３乗以上の計算量で、整数計画法のよりも小さいが、ノード数の増大するにつれて計算時間が急激に増加する。
【０１０５】
なお、半正定値計画法ソルバーでは、全要素が１のｎ×ｎ対称行列Ｅを導入し、行列の積の次元数を考慮して、Ｔｒａｃｅ（ＥＸ）≧（ｎ−２ｎ−）２の条件を満たすように、目的関数に対する制約条件を導入することで、一般ノードの集合Ｎのサイズが（ｎ−ｎ−）以上、スパマー・ノード集合Ｓのサイズがｎ−以下となるように、つまり集合Ｎのサイズと集合Ｓのサイズの差が値（ｎ−２ｎ−）以上となるような分割を得ることができる。半正定値計画法の出力として、実数対象行列Ｘは得られるが、このｎ×ｎ解行列Ｘからノードの集合属性を抽出する必要がある。整数計画法と欲張り法ではノードｉの集合属性は変数ｘｉの値が１か−１かによって判定されるが、半正定値計画法ではノードｉの集合の属性は行列Ｘの第ｉの行、つまりＸｉによって判定される。行列の行から１または−１を抽出する方法は通称まるめ操作、または、ランダム射影と呼ばれ、標準的な手続きが多数あるが、例示的に、例えば、ノードｉの指標値に対応する第ｉの行の総和、つまり、Ｓｉ＝Ｘｉ1+Ｘｉ2+…+Ｘｉnを全ノードに対して計算し、その総和の昇順にノードをソートし、最初のｎ−個のノードをスパマー・ノード集合Ｓに、残りのノードを一般ノード集合Ｎに分類する方法がある。
【０１０６】
前述した半正定値計画法ソルバーによるノード集合をスパマー・ノード集合Ｓと一般ノード集合Ｎに分割する中で、指標関数（５）を最大化する制約条件としては前述した集合のサイズの他に、例えば、管理者が何らかの方法で事前に特定したいくつかのスパマー・ノードをあらためて指定して、それらをスパマー・ノード集合Ｓに入るような制約でもよい。基本的にノードｉの指標値Ｘｉの要素のＸｉｊの線形結合で表される関数であれば、指標関数（５）の最大化の制約条件として設定できる。
【０１０７】
＜欲張り法ソルバー＞
図１４は、最大カット・ソルバーとしての実施形態の１つである欲張り法ソルバーの処理を示すフローチャートである。図１４に示す処理は、ステップＳ１４００から開始し、ステップＳ１４０１でスパマー・ノード集合Ｓを空集合に初期化し、一般ノード集合Ｎを、ノード集合Ｖに初期化する。この時点では、全ノードは、一般ノードとして設定される。
【０１０８】
ステップＳ１４０２では、スパマー・ノード集合Ｓの要素数が、スパマーの推定数ｎ−以下か否かを判断する。スパマー・ノード集合Ｓの要素数が推定数ｎ−以下の場合（ｙｅｓ）、ステップＳ１４０３で一般ノード集合Ｎの各ノードｕに対して指標値として使用されるカット値Ｃ（ｕ、Ｓ、Ｎ）を計算し、そのカット値Ｃ（これは、式（６）の指標と同じ）が最大となるようなノードｕが特定される。ステップＳ１４０４では、このカット値Ｃが正である場合（ｙｅｓ）、ステップＳ１４０５でスパマー・ノード集合Ｓに対して処理中のノードｕを追加し、同時に一般ノード集合Ｎからノードｕを削除する。この処理は、スパマー・ノード集合Ｓおよび一般ノード集合Ｎを、最大カット集合を与えるように更新する処理に対応し、ステップＳ１４０５の処理が終了した後、処理をステップＳ１４０２に戻し、処理を繰返す。
【０１０９】
一方、ステップＳ１４０４で、カット値が負である場合（ｎｏ）、つまり、一般ノード集合からスパマー・ノードとなりそうなノードが見つからない場合、処理をステップＳ１４０６に分岐させ、ステップＳ１４０６でスパマー・ノード集合Ｓと一般ノード集合Ｎとを出力し、その後処理をステップＳ１４０７で終了させる。
【０１１０】
また、ステップＳ１４０２でスパマー・ノード集合Ｓの要素数｜Ｓ｜が推定値ｎ−を超えた場合（ｎｏ）、ステップＳ１４０６でスパマー・ノード集合Ｓと一般ノード集合Ｎとを出力し、その後処理をステップＳ１４０７で終了させる。
図１４に示す欲張り法ソルバーについては、一般ノード集合Ｎ内の任意のノードｕを抽出して順次的にカット値を最大化させる。この観点からは、欲張り法ソルバーは、計算量としては、Ｏ（ｎ２）程度で済み、計算量的には半正定値計画法よりも高速となる。
【０１１１】
前述した欲張り法ソルバーによるノード集合をスパマー・ノード集合Ｓと一般ノード集合Ｎに分割する中で、指標関数（６）を最大化する制約条件としては前述した集合のサイズの他に、例えば、管理者が何らかの方法で事前に特定したいくつかのスパマー・ノードをあらためて指定して、それらをスパマー・ノード集合Ｓに入るような制約でもよい。基本的にノードｉの指標値ｘｉで表される関数であれば、指標関数（６）の最大化の制約条件として設定できる。
【０１１２】
欲張り法ソルバーの処理の初期設定について、以下、ノードのスパム度を考慮して処理を効率化する他の実施形態について説明する。説明する他の実施形態では、初期設定で処理対象を選択するノードｕを任意に選択するのではなく、ノードｕとして、ノードとしてリンクが最も集中しているノード、すなわちスパム度の最も高いノードを初期一般ノード集合Ｎから選択する。この処理は、スパム度の最も高いノードを一般ノード集合Ｎからスパマー・ノード集合Ｓに移動させることで、カット値Ｃの最大化効率を向上させるものである。
【０１１３】
例えば、本実施形態でこのようなノードは、例えば、図６の無向グラフＧ（Ｖ、Ｅ）または図９のデータ・テーブル９００の、ノードとして登録される、ノードＢを挙げることができる。図１４に示す欲張り法ソルバーの処理で、ノードＢを優先的に選択してカット値Ｃを計算することにより、カット値Ｃを効率的に最大化の方向に反復させることができ、より効率的な最大カット集合を生成させることができる。関連するさらに他の実施形態では、ノードに対するリンクの集中数を降順に登録しておき、図１４のステップＳ１４０３での処理に選択的に投入することで、最大カット集合を、さらに効率的に生成させることができる。
【０１１４】
図１５は、欲張り法ソルバーを使用した場合のユーザ属性の判断処理を、図１４のフローチャートに対応して説明した図である。無向グラフ１５００は、ノードＡ〜ノードＥを含んで無向グラフとされている。ここで、既存の一般ノード集合Ｎの要素であるノードＡ、Ｃ、Ｄ、とＥを抽出し、これを既存のスパマー・ノード集合Ｓ（ノードＢがすでにＳに入っている）に追加する場合のカット値Ｃを計算すると、それぞれのカット値は、０−２＝−２、２−２＝０、４−０＝４、２−２＝０となる。最大のカット値が正であることから、それを実現するノードＤがスパマー・ノード集合Ｓに新たに登録されることとなる。
【０１１５】
その後、一般ノード集合Ｓの要素ノードＡ、ノードＣ、とノードＥについてカット値を計算すると、正となるものがなく、結果としてノードＢとノードＤが入っているスパマー・ユーザ集合Ｓが得られる。
【０１１６】
図１６は、スパマー・ノードが特定された後、本実施形態の分析サーバ１２６が生成するスパマー情報作成処理のフローチャートである。図１６に示す処理は、ステップＳ１６００から開始し、ステップＳ１６０１で最大カット集合のうち、スパマー・ノード集合Ｓを取得する。ステップＳ１６０２では、スパマー・ノード集合Ｓの各要素に対してスパム度Ｗｋを、上記式（２）を使用して取得する。なお、スパム度Ｗｋがすでに計算されている場合には、ステップＳ１６０２では、既計算の値をメモリから読出すことにより実行される。
【０１１７】
ステップＳ１６０３では、スパム度の高い順にスパマー・ノード集合の要素ノードをソーティングし、例えばリストに記入してスパマー・リストを作成して出力結果を生成する。その後処理は、ステップＳ１６０４で終了する。
【０１１８】
セクション４：実施例
以下、本発明についてさらに、具体的な実施例および図１７〜図２０に示した結果を参照して説明する。なお、後述する実施例は、本発明を説明する目的で記載するものであり、本発明を限定するものではない。
【０１１９】
＜ハードウェア・インプリメンテーション＞
オペレーティング・システムとしてＷｉｎｄｏｗｓ（登録商標）ＸＰを実装したインターナショナル・ビジネス・マシーンズ・コーポレーション製のパーソナル・コンピュータに、本実施形態のスパマー・ノード判断処理を実行するためのプログラムをインストールし、処理性能について検討を加えた。スパマー・ノード判断処理を実行するためのプログラムは、スクリプト言語である、ＰＹＴＨＯＮを使用して記述した。
【０１２０】
＜データ・インプリメンテーション＞
一般ユーザが記述したコンテンツ数は、検査期間の間に正規分布Ｎ（α、σ）で記述されるものとし（αは、コンテンツ数の平均値であり、σは、その標準偏差値である。）、一般ユーザのコンテンツは、その他の一般ユーザによって確率ｐｎで削除される（喧嘩などで）ことはあるものの、スパマー・ノードが記述したコンテンツが削除される確率ｐｓよりも低い。また、スパマー・ノードが記述したコンテンツはｐｎよりも顕著に高い確率ｐｓで削除され、スパマー・ノードのコンテンツ数は、検査期間中に、指数分布Ｅｘｐ（λ）（λは、コンテンツ数の平均値である。）にしたがって記述されるものとする。スパム・ユーザは、自己のコンテンツが削除された場合、コンテンツを削除した一般ノードをスパマーであるとして復讐報告するなどして、１．０、または０．５、または０．０の確率で削除した一般ノードとの間にスパマー報告アクションを生成し、一般ユーザのスパム度を増加させる。
【０１２１】
＜実施例および比較例＞
実施例として、最大カットを求める欲張り法（以下、ＳＤｗＭＣ法と呼ぶ）を実装する本発明のスパマー・ノード判断処理を使用し、スパマー・ノードの存在割合を変化させながら、下記表１の条件を使用してスパマー・ノード集合Ｓを出力させた。評価は、出力された出力結果にスパマー・ノードとして設定したノードが含まれる割合をもって判断した。各実施例の最大カット法ソルバーとして、欲張り法ソルバーを実装させた。実施例および比較例に使用したデータ・インプリメンテーションの詳細条件を、図１７に示す。
【０１２２】
また、比較例は、実施例と同様のデータ・インプリメンテーションを使用し、Ｐｏｉｎｔ法により生成されたスパマー・ノード集合Ｓに含まれるスパマー・ノードの割合を計算させた。Ｐｏｉｎｔ法は、ノードＡがノードＢを通報するか、またはノードＢのコンテンツを削除する場合、ノードＢのスパム度を１と加算してスパム度を計算する手法であり、スパム度の高いノードから順にスパマー・ノード集合Ｓに登録することで、スパマー・ノード集合Ｓを生成する。
【０１２３】
実施例および比較例について得られた結果をスパマー・ユーザが必ず報復する場合の図１８（実施例１、比較例１）、スパマー・ユーザが必ず報復しない場合の図１９（実施例２、比較例２）、およびスパマー・ユーザが確率０．５で報復する場合の図２０（実施例３、比較例３）に示す。図１８〜２０に示すように、スパマー・ノードの存在割合が高いほど、そして，報復の確率が高いほど、Ｐｏｉｎｔ法に比較して本実施形態のＳＤｗＭＣ法によるスパマー・ノードの抽出率（性能）は、増加することがわかる。
【０１２４】
また、図１９に示す実施例２および比較例２では、報復が必ずない場合、スパム割合が小さい場合にはＰｏｉｎｔ法の方が抽出率は高いものの、スパマー・ノードの存在割合が高くなるにつれ、実施例２では抽出率が増加することが示されている。なお、実施例２の場合には、スパマー・ノードからの報復がないため、スパマー・ノードと一般ノードとの間の区別が明確であることで、Ｐｏｉｎｔ法でも充分な性能を示すものと考えられるが、ＳＤｗＭＣ法では、スパマー・ノードの存在割合の高い領域では良好な検出性を示しており、例えばブログ・サービス、ＳＮＳ、掲示板、チャットなどに好適に利用できることがわかる。また、実施例２の場合には、スパム度の高いノードを優先的に処理対象として含ませることが可能な欲張り法ソルバーを併用することで、スパマー・ノードの存在割合が少ない場合における検出性の低下に対応することができると考えられる。
【０１２５】
図２０に示す実施例３および比較例３については、スパム割合が小さい場合、本発明によるＳＤｗＭＣ法とＰｏｉｎｔ法との間の性能の差には顕著な相違は見られない。しかしながら、実施例１、実施例２と同様に、スパマー・ノードの存在割合が大きくなると、本発明のＳＤｗＭＣ法の法が検出率が増加することが示される。
【０１２６】
以上の実施例および比較例に示されるように、本発明では、ブログ・サービス、ＳＮＳ、チャット、掲示板など、スパマー・ノードの存在割合が高いことが予測されるウェブ・サービスにおいて、スパマー・ノードを効率的に抽出することが可能となり、一般ユーザのネットワーク・アクティビティを阻害する悪意のあるスパマー・ノードを膨大なトランザクション内から効率的に抽出することが可能となる。また、本発明は、コンテンツのメッセージを解析することなく、また予め正解セットを作成する必要がなく、ネットワーク・トランザクションでのノード間でのアクティビティのみを使用してスパマー・ノードを検出することができるので、分析サーバ１２６のスパマー抽出の処理効率を向上させることが可能となることが示される。
【０１２７】
本実施形態では、整数計画法ソルバー、半正定値計画法ソルバー、および欲張り法ソルバーは、いずれも最大カット・ソルバーとして機能する。本発明の特定の実施形態では、整数計画法ソルバー、半正定値計画法ソルバー、および欲張り法ソルバーの３ソルバーを実装するものとして説明した。しかしながら、本発明を実装する情報処理装置のＣＰＵ能力、メモリなどのハードウェア・リソースの容量が充分である場合や、最大カットの数学的正確性よりもスパマー・ノードのダイジェストを取得することを優先させる場合などについては、ノード総数で呼出す最大カット・ソルバーを切換えることなく、整数計画法ソルバー、半正定値計画法ソルバー、および欲張り法ソルバーから選択される単独のソルバーを実装することができる。さらに他の実施形態では、最大カット・ソルバーは、上述した３ソルバーを、適切な組合わせとして選択し、情報処理装置に実装することができる。
【０１２８】
本実施形態の上記機能は、Ｃ＋＋、Ｊａｖａ（登録商標）、Ｊａｖａ（登録商標）Ｂｅａｎｓ、Ｊａｖａ（登録商標）Ａｐｐｌｅｔ、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ、Ｐｅｒｌ、Ｒｕｂｙ、Ｐｙｔｈｏｎなどのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、当該プログラムは、ハードディスク装置、ＣＤ−ＲＯＭ、ＭＯ、フレキシブルディスク、ＥＥＰＲＯＭ、ＥＰＲＯＭなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【０１２９】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【図面の簡単な説明】
【０１３０】
【図１】本実施形態の情報処理システム１００の実施形態を示した図。
【図２】図１に示した分析サーバ１２６のソフトウェア・モジュール構成２００を示した図。
【図３】本実施形態で、スパム分析データ記憶部１２８が格納するスパム分析データ３００の実施形態を示した図。
【図４】本実施形態でアクション履歴取得部２１０によりアクセスログから生成されるスパマー報告アクション履歴集合のデータ構造を示した図。
【図５】アクション履歴取得部２１０が実行するスパマー報告アクション履歴集合生成処理のフローチャート。
【図６】関連ノード取得部２２０が生成するリンク集合Ｅを、リンク・リスト６００として実装する場合の実施形態を示した図。
【図７】無向グラフ生成部２３０が実行する無向グラフ作成処理のフローチャート。
【図８】図７のポイントＡに後続する無向グラフ作成処理のフローチャート。
【図９】図７および図８に示した無向グラフ作成処理によって作成される無向グラフＧ（Ｖ、Ｅ）を作成するためのデータ・テーブル９００およびデータ・テーブル９００から生成される無向グラフＧ（Ｖ、Ｅ）のデータ表現９５０を示した図。
【図１０】本実施形態のスパマー・ノード判断処理の処理概念を、初期集合１０００と、スパマー・ノード判断処理で生成される過渡集合１０５０とを使用して説明した概念図。
【図１１】本実施形態のスパマー・ノード判断処理のフローチャート。
【図１２】図１１の処理で使用する整数計画法ソルバーに実装されるスパマー判定式の実施形態を示した図。
【図１３】本実施形態で、ノード総数に対応し、最大カット・ソルバーとして、整数計画法ソルバーの代わりに呼出される半正定値計画法ソルバーが実装するスパマー判定式の実施形態を示した図。
【図１４】最大カット・ソルバーとしての実施形態の１つである欲張り法ソルバーの処理を示すフローチャート。
【図１５】欲張り法ソルバーを使用した場合のユーザ属性判断処理を、図１４のフローチャートに対応して説明した図。
【図１６】スパマー・ノードが特定された後、本実施形態の分析サーバ１２６が生成するスパマー情報作成処理のフローチャート。
【図１７】実施例および比較例に使用したデータ・インプリメンテーションの詳細条件を示した図。
【図１８】実施例１、比較例１についての結果を示した図。
【図１９】実施例２、比較例２についての結果を示した図。
【図２０】実施例３、比較例３についての結果を示した図。
【符号の説明】
【０１３１】
１００…情報処理システム、１１２…ノード（一般ノード）、１１４…ノード（スパマー・ノード）、１１６…ネットワーク、１２０…サーバ、１２２…アプリケーション・サーバ、１２４…コンテンツ記憶部、１２６…分析サーバ、１２８…スパム分析データ記憶部、２００…ソフトウェア・モジュール構成、２１０…アクション履歴取得部、２２０…関連ノード取得部、２３０…無向グラフ生成部、２４０…最大カット計算部、２４０ａ…整数計画法ソルバー、２４０ｂ…半正定値計画法ソルバー、２４０ｃ…欲張り法ソルバー、２５０…結果出力部
【図１】
0005324824.tif 000012
【図２】
0005324824.tif 000013
【図３】
0005324824.tif 000014
【図４】
0005324824.tif 000015
【図５】
0005324824.tif 000016
【図６】
0005324824.tif 000017
【図７】
0005324824.tif 000018
【図８】
0005324824.tif 000019
【図９】
0005324824.tif 000020
【図１０】
0005324824.tif 000021
【図１１】
0005324824.tif 000022
【図１２】
0005324824.tif 000023
【図１３】
0005324824.tif 000024
【図１４】
0005324824.tif 000025
【図１５】
0005324824.tif 000026
【図１６】
0005324824.tif 000027
【図１７】
0005324824.tif 000028
【図１８】
0005324824.tif 000029
【図１９】
0005324824.tif 000030
【図２０】
0005324824.tif 000031