(57)【要約】【課題】  ログデータに一般的に用いることができ、かつ、少ないデータ量からも得られるような特徴量として分布を用いた異常（botアカウント）検出を行う。また、少ないサンプル数であっても数値集合の分布推定を行う。【解決手段】  本発明は、投稿から抽出した投稿間隔の数値集合、単語の使用頻度の数値集合を格納した数値集合記憶手段を有し、数値集合記憶手段から数値集合を取得し、該数値集合の最上位桁の分布を求め、数値集合の最上位桁の分布が、bot判定のための所定の条件に従うか否かを判定する。また、数値集合記憶手段から数値集合を取得して、最上位桁の分布Aを求め、予め複数の数値集合の最上位桁の分布に該当するかどうかの判定結果を与えて正解学習した判定器を用いて、最上位桁の分布Aが予め定めた分布に該当するか否かを判定する。【選択図】  図５
2014160344.tif 000002
【特許請求の範囲】
【請求項１】
与えられた数値集合の分布からbotアカウントを判定するためのbot判定装置であって、
投稿から抽出した、投稿間隔の数値集合、単語の使用頻度の数値集合を格納した数値集合記憶手段と、
前記数値集合記憶手段から前記数値集合を取得し、該数値集合の最上位桁の分布を求める特徴量算出手段と、
前記数値集合の最上位桁の分布が、bot判定のための所定の条件に従うか否かを判定する判定手段と、
を有することを特徴とするbot判定装置。
【請求項２】
前記判定手段は、
べき乗則であるか否かを前記所定の条件として判定する手段を含む
請求項1記載のbot判定装置。
【請求項３】
前記判定手段は、
予め分布がどの様な特徴量を有するかの正解学習によって得られた判定器を用いる
請求項１または２記載のbot判定装置。
【請求項４】
与えられた数値集合の分布からbotアカウントを判定するためのbot判定方法であって、
投稿から抽出した、投稿間隔の数値集合、単語の使用頻度の数値集合を格納した数値集合記憶手段と、
特徴量算出手段と、判定手段とを有する装置において、
前記特徴量算出手段が、前記数値集合記憶手段から前記数値集合を取得し、該数値集合の最上位桁の分布を求める特徴量算出ステップと、
前記判定手段が、前記数値集合の最上位桁の分布が、bot判定のための所定の条件に従うか否かを判定する判定ステップと、
を行うことを特徴とするbot判定方法。
【請求項５】
与えられた数値集合の分布を判定する数値集合分布判定装置であって、
投稿から抽出した、投稿間隔の数値集合、単語の使用頻度の数値集合を格納した数値集合記憶手段と、
前記数値集合記憶手段から前記数値集合を取得して、最上位桁の分布Aを求める分布算出手段と、
予め複数の数値集合の最上位桁の分布に該当するかどうかの判定結果を与えて正解学習した判定器を用いて、前記最上位桁の分布Aが予め定めた分布に該当するか否かを判定する判定手段と、
を有することを特徴とする数値集合分布判定装置。
【請求項６】
コンピュータを、
請求項1乃至３のいずれか1項に記載のbot判定装置の各手段として機能させるためのbot判定プログラム。
【請求項７】
コンピュータを、
請求項５に記載の数値集合分布判定装置の各手段として機能させるための数値集合分布判定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、bot判定装置及び方法及びプログラムに係り、特に、与えられた数値集合から、Twitter(登録商標）上の自動で投稿や返信を行うようにプログラムされたbotアカウントを判定するためのbot判定装置及び方法及びプログラムに関する。
【０００２】
また、本発明は、数値集合分布判定装置に係り、単語頻度、投稿文字数、投稿間隔、システムログ頻度、システムログ間隔、株価変動額、会計額等の数値集合を入力とし、そのログデータがどのような分布から生成されているかを判別するための数値集合分布判定装置に関する。
【背景技術】
【０００３】
従来の分布の判定方法としては、先ず分布を仮定し、その分布であるとした場合の最適な分布パラメタを推定し、与えられた数値集合がどの程度その推定した分布に沿っているか（尤度）を求める、という処理を繰り返すことによって判断する方法がある（例えば、非特許文献1参照）。
【０００４】
一方、最もシンプルな異常値検出方法は、対象とするデータの値が閾値や予測値を超ええると異常と判断する方法である。しかし、対象とするデータの値そのものが意味をもたない場合には、意味を持つ特徴量への射影が行われる。例えば、音響信号における音圧の値そのものは意味を持たないため、フーリエ変換などを用いることで、各周波数の音の強さ（周波数スペクトル）といった周波数領域の特徴量へと射影変換される、などである。また、高次元のデータなどで複数の値を考慮する必要がある場合などには、各次元における閾値や予測ルールを人手で設定することが難しいため、機械学習によって異常かどうかの判断が行われる（例えば、非特許文献２参照）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Fujimaki, R. and Sogawa, Y. and Morinaga, S.: Online heterogeneous mixture modeling with marginal and copula selection. Proceedings of the 17th SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD), pp645-653, 2011
【非特許文献２】相場亮人，伊藤仁，伊藤彰 and 牧野正三．:多段GMMおよびセグメントモデルを用いた異常音検出の検討．電子情報通信学会技術研究報告. EA, 応用音響．volume.109, number.166, pages71-75, 2009.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非特許文献１では、仮定した分布のパラメタを推定するという処理を行っている。しかし、サンプル数が少ない場合、サンプルが正確に分布を構成できないため、この処理の精度が下がるという問題がある。
【０００７】
また、非特許文献２では、音響信号を入力として、周波数領域の特徴量へと変換し、機械学習によって異常の検出を行っている。しかし、対象とするデータや、検出したい異常の種類によって用いるべき特徴量は異なるため、それぞれにおいて異常の検出が可能であるような特徴量を見つけ出す必要があるという問題がある。また、特徴量を見つけ出せたとしても、特徴量を得るために十分な量のデータが必要であるという問題がある。例えば、あるユーザの単語分布を特徴量として抽出しようとしても文章の量が足りない、ユーザ集合の平均や分散などの統計量を特徴量として抽出しようとしてもユーザ数が足りないなど、頻出する問題である。
【０００８】
本発明は、上記の点に鑑みなされたもので、ログデータに一般的に用いることができ、かつ、少ないデータ量からも得られるような特徴量として分布を用いた異常（botアカウント）検出を行うことが可能なbot判定装置及び方法及びプログラムを提供することを目的とする。
【０００９】
また、少ないサンプル数であっても数値集合の分布推定を行うことが可能な数値集合分布判定装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するため、本発明（請求項１）は、与えられた数値集合の分布からbotアカウントを判定するためのbot判定装置であって、
投稿から抽出した、投稿間隔の数値集合、単語の使用頻度の数値集合を格納した数値集合記憶手段と、
前記数値集合記憶手段から前記数値集合を取得し、該数値集合の最上位桁の分布を求める特徴量算出手段と、
前記数値集合の最上位桁の分布が、bot判定のための所定の条件に従うか否かを判定する判定手段と、を有する。
【００１１】
また、本発明（請求項２）は、請求項1の前記判定手段において、べき乗則であるか否かを前記所定の条件として判定する手段を含む。
【００１２】
また、本発明（請求項３）は、請求項１または２の前記判定手段において、予め分布がどの様な特徴量を有するかの正解学習によって得られた判定器を用いる。
【００１３】
本発明（請求項４）は、与えられた数値集合の分布からbotアカウントを判定するためのbot判定方法であって、
投稿から抽出した、投稿間隔の数値集合、単語の使用頻度の数値集合を格納した数値集合記憶手段と、
特徴量算出手段と、判定手段とを有する装置において、
前記特徴量算出手段が、前記数値集合記憶手段から前記数値集合を取得し、該数値集合の最上位桁の分布を求める特徴量算出ステップと、
前記判定手段が、前記数値集合の最上位桁の分布が、bot判定のための所定の条件に従うか否かを判定する判定ステップと、を行う。
【００１４】
本発明（請求項５）は、与えられた数値集合の分布を判定する数値集合分布判定装置であって、
投稿から抽出した、投稿間隔の数値集合、単語の使用頻度の数値集合を格納した数値集合記憶手段と、
前記数値集合記憶手段から前記数値集合を取得して、最上位桁の分布Aを求める分布算出手段と、
予め複数の数値集合の最上位桁の分布に該当するかどうかの判定結果を与えて正解学習した判定器を用いて、前記最上位桁の分布Aが予め定めた分布に該当するか否かを判定する判定手段と、を有する。
【発明の効果】
【００１５】
本発明によれば、ベンフォードの法則を応用した特徴量を用いることで、ある数値集合が与えられた際に、その数値集合の量が少なかったとしても、その数値集合が生成された分布を推定することができる。
【００１６】
また、機械学習等により、ある数値集合が生成される分布が事前にわかっていれば、ある数値集合の分布を推定したとき、この２つの分布が異なる場合、なんらかの異常があることを示していることがわかる。ここで、自然界に存在する数値集合の多くがべき乗分布（パレート分布、zipf分布）や指数分布などの対数的な分布や、正規分布に従っていることがわかっており、事前に生成分布がわかっていることは一般的である。すなわち、与えられた数値集合の分布を判別することにより、与えられた数値集合の生成過程に異常が発生していることを、多くのログデータに対して一般的に検知できる。
【図面の簡単な説明】
【００１７】
【図１】指数分布に対してベンフォードの法則を適用した場合における各最上位桁の出現確率である。
【図２】本発明の第1の実施の形態における分布判定装置の構成図である。
【図３】本発明の第1の実施の形態における数値集合記憶部に格納されるデータ例である。
【図４】本発明の第１の実施の形態における分布判定装置の動作のフローチャートである。
【図５】本発明の第２の実施の形態における異常検出装置の構成図である。
【図６】本発明の第２の実施の形態におけるログデータ記憶部に格納されるデータ例である。
【図７】本発明の第２の実施の形態における異常検出装置の動作のフローチャートである。
【発明を実施するための形態】
【００１８】
以下、図面を参照して本発明の実施の形態を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【００１９】
[第1の実施の形態]
本発明における第１の実施の形態の概要について説明する。本実施の形態では、ベンフォードの法則を応用した特徴量を用いることで、ある数値集合が与えられた際に、その数値集合が生成された分布の推定を行う。
【００２０】
図１は、指数分布に対してベンフォードの法則を適用した場合における各最上位桁の出現確率である。
【００２１】
ベンフォードの法則とは、ある数値集合が対数的な分布に従って生成されている場合、その各数値における最上位桁の出現確率には偏りがあり、例えば指数分布であった場合には、図２のような確率分布になるという法則である。すなわち、ベンフォードの法則を利用することで可能となるのは、ある数値集合が与えられた際にその数値集合が対数的な分布から生成されているかを判別するのみである。しかし、このベンフォードの法則を拡張し、対数的な分布だけでなく、正規分布などにおいても特徴的な出現確率であることを利用すると、対数的な分布だけでなく、様々な分布において特徴的な最上位桁の出現確率の分布を得ることができる。しかし、対数的な分布においては、分布のパラメタによらず最上位桁の出現確率は固定であるのに対し、正規分布などにおいては、分布のパラメタによって最上位桁の出現確率が変化するという問題がある。
【００２２】
そのため、ある数値集合が与えられた際に、その数値集合における最上位桁の出現確率の分布を算出し、機械学習を用いて最上位桁の出現確率の変化を吸収することによって、その確率分布が図２の確率分布と類似していれば指数分布に従って生成されていると判断でき、類似していなければ対数的な分布に従って生成されていないと判断することができる。同様に、各分布の確率分布と比較することで、与えられた数値集合の生成された分布を推定することができる。
【００２３】
さらに、ベンフォードの法則の特徴として、最上位桁の出現分布は9次元と低次元であるために、その出現分布が収束する速度が速く、与えられた数値集合が少数であってもある程度正確な出現分布を得られることがあげられる。すなわち、数値集合の量が少なかったとしても、その数値集合が生成された分布を判別することができる。例えば単語分布の場合、3000字程度の文章でも900単語程度を含んでおり、その特徴量は900次元となることを考えれば、単純計算でも100分の1の量で済むと言える。さらに、文字数が多くなればなるほど単語の数は増えるため、さらに提案法の優位性が強まる。
【００２４】
以下に本発明の分布判定装置について説明する。
【００２５】
図２は、本発明の第1の実施の形態における分布判定装置の構成を示す。
【００２６】
同図に示すように、分布判定装置は、数値集合記憶部１０、特徴量算出部２０、判定部３０、出力部４０を有する。
【００２７】
数値集合記憶部１０に格納されるデータの例を図３に示す。
【００２８】
数値集合記憶部１０では、投稿から抽出された単語頻度、投稿文字数、投稿間隔、システムログ頻度、システムログ間隔、株価変動額、会計額…といったべき乗則に従う、または、どのような確率分布でも同じものを多数集めて平均を取ると正規分布になるという中心極限定理に従う分散を持つ数値集合Nを格納する。
【００２９】
以下に分布判定装置の各構成・動作をより詳細に説明する。図４は、分布判定装置の動作のフローチャート例であり、以下の説明において、対応する図４のステップ番号を適宜示す。
【００３０】
ステップ１０１）特徴量算出部２０では、数値集合記憶部１０から数値集合Nを入力として受け付ける。そして、ベンフォードの法則を応用した特徴量Fを算出し、判定部３０へと出力する。特徴量Fは具体的には、数値集合Nにおける各数値nの最上位の桁を抽出し、数値集合Nにおいてその最上位の桁が1から9それぞれである割合とし、9次元のデータとする。なお、最上位桁は十進数に限定されることなく、３進数以上の任意の位取り基数法（基底）とすることも可能である。
【００３１】
ステップ１０２）判定部３０では、特徴量算出部２０から特徴量Fを入力として受け付ける。そして、予め決められた条件に従うかについて分布の判定を行い、判定結果を出力部４０へと出力する。この判定には検定や機械学習によって得られた判定器を用いてもよい。用いる機械学習としては、二値分類手法が一般的に利用できる。例えば、SVM(Support Vector Machine)、ブースティング、決定木、ナイーブベイズなどがあげられる。この際、教師あり手法を用いる場合には、事前にどの分布がどのような特徴量を持つかの学習を行っておく。
【００３２】
上記の「予め決められた条件に従うかについての分布の判定」の具体的な判定方法について説明する。
【００３３】
数値集合Nから最上位桁の分布Aを求め、前もって複数の数値集合の最上位桁の分布について、予め定めた分布に該当するかどうかの判定結果（正解）を与えて正解学習した判定器を用いて、最上位桁の分布Aが予め定めた分布に該当するか否かの判定を行う。
【００３４】
出力部４０では、判定部３０から判定結果を入力として受け付ける。そして、判定結果を可視化するなどして出力する。
【００３５】
ここで、出力とは、ディスプレイへの表示、プリンタへの印字、音出力、外部装置への送信等を含む概念である。出力部は、ディスプレイやスピーカ等の出力デバイスを含むと考えても含まないと考えてもよい。出力部は、出力デバイスのドライバソフトまたは、出力デバイスのドライバソフトと出力デバイス等で実現され得る。
【００３６】
上記のステップ１０１において、最上位桁（１〜９）の分布を考慮するだけであるので、1つの数値集合につき、9次元の値を考慮すればよいため、入力となるサンプル数が少なくても、有効な判定を行うことができる。
【００３７】
また、単語に基づく特徴量を求めるなどの多次元の処理に比べて、処理負荷が軽減される。
【００３８】
[第２の実施の形態]
本発明における第２の実施の形態の概要について説明する。本発明では、ベンフォードの法則を応用した特徴量を用いることで、あるログデータが与えられた際に、そのログデータに含まれる数値集合に異常があるかの検知を行う。
【００３９】
自然界において、多くの数値集合はある特定の分布に従うことがわかっている。例えば、単語の出現回数、電気料金の請求額、住所の番地、株価、人口の数値、死亡率、川の長さ、物理・数学定数…などの、逆二乗の法則、パレートの法則、ジップの法則に代表されるようなべき乗則に従う数値集合は対数的な分布に従うことが知られており、一方、テストなどの点数、身長、体重、毎年の雨量…などの中心極限定理に従う分散を持つ数値集合は正規分布に従うことが知られている。そのため、これらのようなある分布から生成されているはずの数値集合が、その分布から生成されていないとすれば、その生成過程になんらかの異常があることを示している。
【００４０】
以上から、多くのログデータにおいて、ベンフォードの法則を用いてそのログデータに含まれる数値集合の生成分布を判別することにより、与えられた数値集合が少数であっても異常検知を行うことができる。
【００４１】
以下に本発明の異常検出装置について説明する。
【００４２】
図５は、本発明の第２の実施の形態における異常検出装置の構成を示す。
【００４３】
同図に示すように、異常検知装置は、ログデータ記憶部１００、数値集合抽出部２００、特徴量算出部３００、判定部４００、出力部５００を有する。
【００４４】
ログデータ記憶部１００に格納されるデータの例を図６に示す。
【００４５】
ログデータ記憶部１００では、文書集合、システムログ、株価、会計額等といったログデータ集合Dを格納する。あるログデータdには、ユーザやサーバや商品などログの主体に対するidであるi、および、ログの内容cが含まれる。ログの内容cには、文書に含まれる単語、システムログ、金額などが含まれるとする。また、各ログが発生した時刻tを含んでもよい。
【００４６】
図７は、本発明の第２の実施の形態における異常検出装置の動作のフローチャートである。
【００４７】
ステップ２０１）  数値集合抽出部２００では、ログデータ記憶部１００からログデータ集合Dを入力として受け付ける。そして、単語頻度、投稿文字数、投稿間隔、システムログ頻度、システムログ間隔、株価変動額、会計額…といった数値集合Nを抽出し、特徴量算出部３００へと出力する。 
ステップ２０２）特徴量算出部３００は、第1の実施の形態と同様に、ベンフォードの法則を応用した特徴量Fを算出する。特徴量Fには、ベンフォードの法則を応用した特徴量に加え、既存の異常値検出手法で用いられる特徴量を含めても良い。その場合、ベンフォードの法則を応用した特徴量と組み合わせることによる精度向上が期待できる。
【００４８】
ステップ２０３）  判定部４００では、特徴量算出部３００から特徴量Fを入力として受け付ける。そして、異常であるかどうか、すなわち、数値集合が事前知識として知られている分布に従っているかの判定を行い、判定結果を出力部５００へと出力する。
【００４９】
以下、具体的な例を用いて本実施の形態の処理について説明する。ここでは、下記の条件における具体例を説明する。
・装置は異常検出装置とする
・ログデータ記憶部１００には、あるSNSにおけるあるユーザiの投稿文書集合がログの内容cとして格納されている
・ログの内容cには、文書に含まれる単語w、投稿時間tが含まれる
・判定部３００では機械学習を用いる
・botアカウントの検出を目的とする
利用単語と投稿時間の2つに着目すると、botアカウントと人間アカウントには、下記のような違いがある。まず、利用単語については、botアカウントの場合、投稿内容が特定のトピックに偏ったり、テンプレート文書を含むなどのため、一部の単語を集中的に利用する傾向がある。一方で人間アカウントの場合、様々なトピックについて、テンプレートを持たずに投稿するなどのため、多様な単語を用いる傾向がある。次に、投稿時間については、botアカウントの場合、投稿がプログラムによって制御され、投稿時間のルールや周期性を持つなどのため、投稿間隔がばらつかず固定される傾向がある。一方で人間アカウントの場合、睡眠を含む様々な行動の合間に投稿を行うため、投稿間隔にばらつきが生じる傾向がある。以上から、単語分布と投稿間隔の両方において、人間アカウントがzipfの法則に従うのに対し、botアカウントはzipの法則に従わないという特徴を持つ。
【００５０】
数値集合抽出部２００では、ログデータ記憶部１００からログデータ集合Dを入力として受け付け、文書に含まれる単語wと、投稿時間tをもとに数値集合Nを抽出する。まず、それぞれの単語wの利用回数を数え、最終的な各単語の利用回数を数値集合Naとする。次に、それぞれの投稿時間tから投稿間隔Δtを求め、このΔtの集合を数値集合Nbとする。そして、数値集合NaおよびNbを特徴量抽出部へと出力する。
【００５１】
特徴量抽出部３００では、例えば、数値集合Naが、
{1032, 458, 187, 123, 71, 53, 33, 29, 27, 18, 12, 3, 2, 2, 2, 1, 1, 1, 1, 1}
であったとすれば、最上位が1なのは20個中10個なので、50%である。同様に、各桁の出現確率は、
{50%, 25%, 10%, 5%, 5%, 0%, 5%, 0%, 0%}
である。同様に、数値集合Nbについても確率分布が求められる。そして、この二つを統合した18次元の特徴量Fを判定部４００へと出力する。
【００５２】
判定部４００では、予め特徴量Fとその分布のユーザiがbotであるか人間であるかを与えておき、学習を行っておく。そして、特徴量Fが入力された際に、botと人間であるかのどちらであるかを判定し、判定結果を出力部５００へと出力する。
【００５３】
また、図２に示す分布判定装置の各構成要素をプログラムとして構築し、数値集分布判定装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【００５４】
また、図５に示す異常検出装置の各構成要素をプログラムとして構築し、botアカウント検出のための異常検出装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【００５５】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００５６】
１０  数値集合記憶部
２０  特徴量算出部
３０  判定部
４０  出力部
１００  ログデータ記憶部
２００  数値集合抽出部
３００  特徴量算出部
４００  判定部
５００  出力部
【図１】
2014160344.tif 000003
【図２】
2014160344.tif 000004
【図３】
2014160344.tif 000005
【図４】
2014160344.tif 000006
【図５】
2014160344.tif 000007
【図６】
2014160344.tif 000008
【図７】
2014160344.tif 000009