(57)【要約】【課題】自動生成されたスパムページであっても、スパムページの判別を適確に行うことを可能とする特徴を算出する。【解決手段】アカウント名のスパムらしさを示すスコアを算出するスパムアカウントスコア算出装置において、スパムアカウント名と非スパムアカウント名の集合から、アカウント名を分解して得られるトークン毎のスパム内頻度と非スパム内頻度を算出し、アカウント言語モデルとしてアカウント言語モデルＤＢに格納するアカウント言語モデル生成手段と、前記アカウント言語モデルＤＢに格納されたアカウント言語モデルに基づいて、予測対象アカウント名におけるトークン毎のスパムと非スパムの確率を算出し、当該確率に基づいて、前記予測対象アカウント名のスパムらしさを示すスコアを算出するアカウント評価手段とを備える。【選択図】図１
2014038392.tif 000002
【特許請求の範囲】
【請求項１】
アカウント名のスパムらしさを示すスコアを算出するスパムアカウントスコア算出装置であって、
スパムアカウント名と非スパムアカウント名の集合から、アカウント名を分解して得られるトークン毎のスパム内頻度と非スパム内頻度を算出し、アカウント言語モデルとしてアカウント言語モデルＤＢに格納するアカウント言語モデル生成手段と、
前記アカウント言語モデルＤＢに格納されたアカウント言語モデルに基づいて、予測対象アカウント名におけるトークン毎のスパムと非スパムの確率を算出し、当該確率に基づいて、前記予測対象アカウント名のスパムらしさを示すスコアを算出するアカウント評価手段と
を備えたことを特徴とするスパムアカウントスコア算出装置。
【請求項２】
前記アカウント評価手段は、スパムと非スパムのそれぞれについて、前記確率の対数値をトークン毎に加算したスコアを算出し、スパムのスコアから非スパムのスコアを引いた値を前記予測対象アカウント名のスパムらしさを示すスコアとする
ことを特徴とする請求項１に記載のスパムアカウントスコア算出装置。
【請求項３】
前記アカウント言語モデルは、n-gram言語モデルであることを特徴とする請求項１又は２に記載のスパムアカウントスコア算出装置。
【請求項４】
アカウント名のスパムらしさを示すスコアを算出するスパムアカウントスコア算出装置が実行するスパムアカウントスコア算出方法であって、
スパムアカウント名と非スパムアカウント名の集合から、アカウント名を分解して得られるトークン毎のスパム内頻度と非スパム内頻度を算出し、アカウント言語モデルとしてアカウント言語モデルＤＢに格納するアカウント言語モデル生成ステップと、
前記アカウント言語モデルＤＢに格納されたアカウント言語モデルに基づいて、予測対象アカウント名におけるトークン毎のスパムと非スパムの確率を算出し、当該確率に基づいて、前記予測対象アカウント名のスパムらしさを示すスコアを算出するアカウント評価ステップと
を備えたことを特徴とするスパムアカウントスコア算出方法。
【請求項５】
前記アカウント評価ステップにおいて、スパムと非スパムのそれぞれについて、前記確率の対数値をトークン毎に加算したスコアを算出し、スパムのスコアから非スパムのスコアを引いた値を前記予測対象アカウント名のスパムらしさを示すスコアとする
ことを特徴とする請求項４に記載のスパムアカウントスコア算出方法。
【請求項６】
前記アカウント言語モデルは、n-gram言語モデルであることを特徴とする請求項４又は５に記載のスパムアカウントスコア算出方法。
【請求項７】
前記n-gram言語モデルの単位として文字種を用いることを特徴とする請求項６に記載のスパムアカウントスコア算出方法。
【請求項８】
コンピュータを、請求項１ないし３のうちいずれか１項に記載のスパムアカウントスコア算出装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スパム文書を判別する技術の分野に属するものであり、特に、スパム判別器生成に適した特徴を算出するための技術に属するものである。
【背景技術】
【０００２】
ウェブ検索システムのような検索システムにおいては、検索対象の文書を取得し、検索可能にする際に、ユーザの満足度を下げる要因となるスパムページをあらかじめ判別し、除去を行うことがある。この際、日々大量に作成されるスパムページに対応するため、スパム、非スパムのラベルが付与された評価データセット(訓練データと呼ぶ) を元に機械学習手法を用いて判別器を自動生成する方法がある（非特許文献１）。なお本明細書では、以降、スパムページのことをspam、非スパムページのことをhamと呼ぶ。一般的なスパム判別においては、テキストの本文における単語の出現頻度やリンク情報などを特徴として用いる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】G. V. Cormack,"Content-based web spam detection", In Proceedings of AIRWeb'07, 2007.
【非特許文献２】北研二, 辻井潤一, "言語と計算(4) 確率的言語モデル", 東京大学出版会,  1999.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のスパム分類器生成手法では、主にテキストの本文における単語の出現頻度に基づく特徴を利用していたため、プログラムによって自動生成されたようなページでは、ページの内容からだけではspamかhamか分類が困難であるという課題がある。
【０００５】
本発明は上記の点に鑑みてなされたものであり、自動生成されたスパムページであっても、スパムページの判別を適確に行うことを可能とする特徴を算出する技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、本発明は、アカウント名のスパムらしさを示すスコアを算出するスパムアカウントスコア算出装置であって、
スパムアカウント名と非スパムアカウント名の集合から、アカウント名を分解して得られるトークン毎のスパム内頻度と非スパム内頻度を算出し、アカウント言語モデルとしてアカウント言語モデルＤＢに格納するアカウント言語モデル生成手段と、
前記アカウント言語モデルＤＢに格納されたアカウント言語モデルに基づいて、予測対象アカウント名におけるトークン毎のスパムと非スパムの確率を算出し、当該確率に基づいて、前記予測対象アカウント名のスパムらしさを示すスコアを算出するアカウント評価手段とを備えたことを特徴とするスパムアカウントスコア算出装置として構成される。
【０００７】
前記アカウント評価手段は、例えば、スパムと非スパムのそれぞれについて、前記確率の対数値をトークン毎に加算したスコアを算出し、スパムのスコアから非スパムのスコアを引いた値を前記予測対象アカウント名のスパムらしさを示すスコアとする。また、前記アカウント言語モデルは、例えばn-gram言語モデルである。n-gram言語モデルの単位として文字種を用いることとしてもよい。
【０００８】
また、本発明は、前記スパムアカウントスコア算出装置が実行するアカウントスコア算出方法、及び、コンピュータを、前記アカウントスコア算出装置における各手段として機能させるためのプログラムとして構成することもできる。
【発明の効果】
【０００９】
本発明によれば、hamアカウント名とspamアカウント名に基づいた言語モデルを利用することにより、spam業者によって自動生成されたようアカウントを高精度に判別することが可能となり、この情報を新たな特徴として用いることで、spam 業者によって自動生成されたアカウント名に紐づくウェブページ(例えばブログ記事) の高精度な判別が可能なスパム判別器の生成が可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態に係るスパムアカウントスコア算出装置１００の機能構成図である。
【図２】アカウント言語モデル生成機能部２０の処理の流れを示すフローチャートである。
【図３】アカウント評価機能部５０の処理の流れを示すフローチャートである。
【図４】ラベル付きアカウント名ＤＢ１０のデータ構造の例を示す図である。
【図５】アカウント名言語モデルＤＢ３０のデータ構造の例を示す図である。
【図６】予測対象アカウント名ＤＢ４０のデータ構造の例を示す図である。
【図７】予測結果ＤＢ６０のデータ構造の例を示す図である。
【図８】スパム訓練データＤＢ７０のデータ構造の例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施の形態を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【００１２】
プログラムによって自動生成されたようなページでは、自動生成したアカウント名が見受けられることから、本発明の実施の形態では、アカウント名を特徴に組み入れる技術を提案している。以下、本実施の形態を詳細に説明する。
【００１３】
＜装置構成＞
図１に、本発明の実施の形態に係るスパムアカウントスコア算出装置１００の機能構成図を示す。図１に示すように、本実施の形態に係るスパムアカウントスコア算出装置１００は、アカウント評価部１、予測対象アカウント名ＤＢ（データベース）４０、予測結果ＤＢ６０、スパム訓練データＤＢ７０、特徴付与機能部８０、特徴追加データＤＢ９０を有する。アカウント評価部１は、ラベル付きアカウント名ＤＢ１０、アカウント言語モデル生成機能部２０、アカウント名言語モデルＤＢ３０、アカウント評価機能部５０を有する。ここでの各ＤＢは、複数のテーブルからなるデータを格納する記憶手段である。
【００１４】
スパムアカウントスコア算出装置１００は、例えば、１つ又は複数のコンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、スパムアカウントスコア算出装置１００の各部が有する機能は、当該スパムアカウントスコア算出装置１００を構成するコンピュータに内蔵されるＣＰＵやメモリ、ハードディスクなどのハードウェア資源を用いて、各部で実施される処理に対応するプログラムを実行することによって実現することが可能である。より具体的には、プログラムに従って、計算対象の文字列等のデータをメモリから読み出し、ＣＰＵにより演算を行って、メモリに格納する動作を繰り返しながら処理が実行される。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【００１５】
以下、各ＤＢの内容や各機能部の処理について説明する。
【００１６】
＜アカウント言語モデル生成機能部２０＞
アカウント言語モデル生成機能部２０は、ラベル付きアカウント名ＤＢ１０からデータを読み出し、当該データを用いてアカウント言語モデル生成処理を行い、生成された言語モデルをアカウント名言語モデルＤＢ３０に格納する。
【００１７】
図４に、ラベル付きアカウント名ＤＢ１０のデータ構造の例を示す。図４に示すように、ラベル付きアカウント名ＤＢ１０はアカウント名カラムとクラスカラムを有し、アカウント名カラムはアカウントの文字列情報、クラスカラムはspamかhamかの情報を格納する。
【００１８】
言語モデルの実現にはいくつかの方法が存在するが、本実施の形態ではn-gram言語モデルを用いている。また、簡単のため、n = 2である2-gram言語モデルの例を示しているが、n > 2の場合も同様に実現が可能である。また本実施の形態では全てのアルファベットを異なる文字として扱っているが、例えば文字種(アルファベット、数字、記号)という単位のn-gram モデルでも同様にスコアを計算することができる。
【００１９】
図５に、アカウント名言語モデルＤＢ030のデータ構造の例を示す。図５に示すデータ構造において、トークンはn文字から成る文字列とn−1 文字から成る文字列として格納されている。この例の場合は2-gramであるため、2-gramトークンと1-gramトークンの２種類が格納されている。ここで^は先頭文字、$は終端文字を表す。例えばsuharaという文字列は{^s, su, uh, ha, ar, ra, a$}という７個のトークンに分割される。アカウント名言語モデルＤＢ３０では、これらのトークンについてspam内頻度とham内頻度を格納する。
【００２０】
以下、図２のフローチャートを参照して、アカウント言語モデル生成機能部２０が実行する処理の流れを説明する。
【００２１】
ステップ１−１）ラベル付きアカウント名ＤＢ１０から未処理のレコードを読み込み、アカウント名をSとする。
【００２２】
ステップ１−２）Sをn-gram トークン列に分解し、集合をTとする。例えばn = 2でS =suharaの場合、T = {^s, su, uh, ha, ar, ra, a$}である。
【００２３】
ステップ１−３）Tのうち、未処理のトークンをtとする。当該トークンの(n-1)-gram をt−1とする。例えば、t = suに対応する(n-1)-gram すなわち1-gramはt−1 = s である。
【００２４】
ステップ１−４）アカウント名言語モデルＤＢ３０にt とt−1に対応する頻度を加算する。
【００２５】
ステップ１−５）Tのうちに未処理のトークンが存在する場合、ステップ１−３に戻り、次のトークンの処理に移る。そうでなければステップ１−６に進む。
【００２６】
ステップ１−６）ラベル付きアカウント名ＤＢ１０に未処理のレコードがある場合、ステップ１−１に戻り、次のレコードの処理に移る。そうでなければ処理を終了する。
＜アカウント評価機能部５０＞
アカウント評価機能部５０は、アカウント名言語モデルＤＢ３０から読み出したデータと予測対象アカウント名ＤＢ４０から読み出したデータとを入力とし、アカウントスコアを計算し、計算結果を予測結果ＤＢ６０に格納する。
【００２７】
図６に、予測対象アカウント名ＤＢ４０のデータ構造の例を示す。図６に示すように、予測対象アカウント名ＤＢ４０は予測対象のアカウント名を格納し、データ構造のスキーマはラベル付きアカウント名ＤＢ１０（図４）からクラス情報を取り除いたものと等しい。
【００２８】
図７に、予測結果ＤＢ６０のデータ構造の例を示す。図７に示すように、予測結果ＤＢ６０にはアカウント名とスコアが格納される。
【００２９】
以下、図３のフローチャートを参照して、アカウント評価機能部５０が実行する処理の流れを説明する。
【００３０】
ステップ２−１）予測対象アカウント名ＤＢ４０から未処理のレコードを読み込み、アカウント名をStest とする。spam、hamそれぞれの言語モデルの確率を保持する変数をscorespam、scorehamとし、それぞれ1に初期化する。
【００３１】
ステップ２−２）Stestをトークン列に分解し、トークン集合をTtestとする。
【００３２】
ステップ２−３）Ttestのうち、未処理のトークンをttestとし、当該トークンに対応する(n-1)-gramをttest,−1とする。
【００３３】
ステップ２−４）アカウント名言語モデルＤＢ３０からttestとttest,−1に対応するspamとhamの頻度を取得し、それぞれをCountspam(ttest), Countspam(ttest,−1), Countham(ttest), Countham(ttest,−1) とする。言語モデルの生成確率の計算には、例えば加算スムージングを用いた推定
【数１】
2014038392.tif 000003
【００３４】
を用いることができる（非特許文献２）。ここで|V|は全てのトークン数を表しており、αはあらかじめ設定されたパラメータであり、例えばα= 0.01 を用いる。なお、この推定にその他のスムージング手法を用いることも可能である（非特許文献２）。hamとspam両方についてPspam(ttest|ttest,−1) とPham(ttest|ttest,−1) を計算し、対数の値を取ったものをscorespam、scorehamに加える。すなわち、
scorespam <-- scorespam + log Pspam(ttest|ttest,−1)     (2)
scoreham <-- scoreham + log Pham(ttest|ttest,−1)       (3)
という操作を行う。
【００３５】
ステップ２−５）未処理のトークンがある場合、ステップ２−３に戻り、次のトークンの処理に移る。そうでない場合、ステップ２−６に進む。
【００３６】
ステップ２−６）言語モデルに基づくスパムらしさのスコアscore を式(4) に従って算出し、予測結果ＤＢ６０に当該アカウント名と併せて出力する。
score = scorespam −scoreham    (4)
更に別のアカウント名についてのスコアscore を算出するには、ステップ２−１〜ステップ２−６の処理を当該アカウント名について行えばよい。
＜特徴付与機能部８０＞
特徴付与機能部８０は、予測結果ＤＢ６０のデータとスパム訓練データＤＢ７０のデータを入力とし、特徴追加スパム訓練データを特徴追加スパム訓練データＤＢ９０に格納する。この機能としては例えば非特許文献１に記載された技術を用いることができる。
【００３７】
スパム訓練データＤＢ７０のデータ構造の例を図８に示す。スパム訓練データＤＢ７０は1レコードに1 事例の情報を格納しており、事例ID、アカウント名、スパムラベルと特徴べクトルのカラムで構成されている。ここで事例とは、スパム判定の単位である文書のことを表し、判定されたスパムラベルy と、M 次元の特徴ベクトルxT =(x1, x2, ..., xM)の情報を持つ。アカウント名は当該ページを生成したアカウント名に関する情報を格納しており、予測対象アカウント名ＤＢ４０におけるアカウント名と紐づけるために用いる。スパムラベルy∈{+1, −1} は、spamの場合+1、hamの場合−1とする。図８ではspam、ham で表している。特徴ベクトルには例えば、当該ページに含まれている単語情報やリンク情報などを用いる。特徴ベクトルの各カラムは、当該事例の特徴ベクトルx の値を格納している。
【００３８】
特徴追加スパム訓練データＤＢ９０は、スパム訓練データＤＢ７０において予測結果ＤＢ６０のスコアを新たなカラムとして追加したものである。スパム訓練データＤＢ７０のアカウント名を元に該当するレコードに対して予測結果を追記する。なお、文字種単位のスコアが別途計算されていた場合には、上記カラムに加えて別のカラムとして追加が可能である。
【００３９】
特徴追加スパム訓練データＤＢ９０を用いて既存のスパム分類器生成手法を用いてスパム判別器を生成することが可能である。スパム分類器生成手法には、例えば非特許文献１に記載された技術を用いることができる。
【００４０】
（実施の形態のまとめ）
上述したように、本実施の形態では、アカウント言語モデル生成機能部２０がham アカウント名とspam アカウント名に基づいた言語モデルを生成し、当該言語モデルを利用して、アカウント評価機能部５０が予測対象アカウント名に対してスパムらしさを示すスコアを算出する。このスコアの情報を新たな特徴として用いることで、spam 業者によって自動生成されたアカウント名に紐づくウェブページ(例えばブログ記事) の高精度な判別が可能なスパム判別器の生成が可能となる。
【００４１】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００４２】
１  アカウント評価部  
１０  ラベル付きアカウント名ＤＢ
２０  アカウント言語モデル生成機能部
３０  アカウント名言語モデルＤＢ
４０  予測対象アカウント名ＤＢ
５０  アカウント評価機能部
６０  予測結果ＤＢ
７０  スパム訓練データＤＢ
８０  特徴付与機能部
９０  特徴追加データＤＢ
１００  スパムアカウントスコア算出装置
【図１】
2014038392.tif 000004
【図２】
2014038392.tif 000005
【図３】
2014038392.tif 000006
【図４】
2014038392.tif 000007
【図５】
2014038392.tif 000008
【図６】
2014038392.tif 000009
【図７】
2014038392.tif 000010
【図８】
2014038392.tif 000011