特許第6249794号(P6249794)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ KDDI株式会社の特許一覧

特許6249794ボット判定装置、ボット判定方法、およびプログラム
<>
  • 特許6249794-ボット判定装置、ボット判定方法、およびプログラム 図000004
  • 特許6249794-ボット判定装置、ボット判定方法、およびプログラム 図000005
  • 特許6249794-ボット判定装置、ボット判定方法、およびプログラム 図000006
  • 特許6249794-ボット判定装置、ボット判定方法、およびプログラム 図000007
  • 特許6249794-ボット判定装置、ボット判定方法、およびプログラム 図000008
  • 特許6249794-ボット判定装置、ボット判定方法、およびプログラム 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6249794
(24)【登録日】2017年12月1日
(45)【発行日】2017年12月20日
(54)【発明の名称】ボット判定装置、ボット判定方法、およびプログラム
(51)【国際特許分類】
   G06F 13/00 20060101AFI20171211BHJP
【FI】
   G06F13/00 560A
【請求項の数】11
【全頁数】22
(21)【出願番号】特願2014-12524(P2014-12524)
(22)【出願日】2014年1月27日
(65)【公開番号】特開2015-141456(P2015-141456A)
(43)【公開日】2015年8月3日
【審査請求日】2016年7月27日
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100122426
【弁理士】
【氏名又は名称】加藤 清志
(72)【発明者】
【氏名】小林 亮博
(72)【発明者】
【氏名】帆足 啓一郎
【審査官】 小林 義晴
(56)【参考文献】
【文献】 米国特許出願公開第2009/0044264(US,A1)
【文献】 蔵内雄貴,他4名,ベンフォードの法則を応用したbotアカウント検出,日本データベース学会論文誌,日本,日本データベース学会,2013年 6月21日,第12巻,第1号,p.19-24
【文献】 寺田吉希,斉藤文彦,動画像の周期的動作解析に基づく異常状況検出,電気学会論文誌C,日本,(社)電気学会,2007年 9月 1日,第127巻,第9号,p.1384-1391
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/00
(57)【特許請求の範囲】
【請求項1】
投稿された発言の受け付けと公開を行うSNS(Social Networking Service)において、前記発言を投稿しているユーザがボットであるか否かを判定するボット判定装置であって、
前記SNSに投稿された発言の投稿ユーザ情報および投稿日時情報を少なくとも含む発言情報を記憶する発言記憶手段と、
判定対象ユーザについて、前記発言記憶手段に記憶されている発言情報に基づいて、他ユーザと判定対象ユーザとの間における投稿タイミングの規則性を示す規則性指数を算出する規則性指数算出手段と、
前記規則性指数算出手段で算出された規則性指数と、予め設定されたしきい値とを比較することによって、前記判定対象ユーザが前記ボットであるか否かを判定するユーザ判定手段と、
を備えるボット判定装置。
【請求項2】
前記規則性指数算出手段が、
前記発言記憶手段に記憶されている発言情報に基づいて、前記判定対象ユーザの各投稿日時情報に、当該各投稿日時情報に最も近い前記他ユーザそれぞれの投稿日時情報を対応付けた最近傍投稿日時リストを取得する最近傍投稿日時リスト取得手段と、
前記最近傍投稿日時リスト取得手段で取得した前記最近傍投稿日時リストに基づいて、前記他ユーザそれぞれと前記判定対象ユーザとの投稿タイミングの関連性を示す個別相関係数を算出する個別相関係数算出手段と、
前記個別相関係数算出手段で算出された個別相関係数の中から、前記判定対象ユーザの前に発言を投稿する傾向を有する他ユーザの個別相関係数を前記最近傍投稿日時リスト取得手段で取得した最近傍投稿日時リストに基づいて抽出し、抽出した個別相関係数の最大相関係数をタイミング相関係数として決定するタイミング相関係数決定手段と、
を備え、
前記ユーザ判定手段が、前記タイミング相関係数と、前記予め設定されたしきい値との大小関係から、前記判定対象ユーザが前記ボットであるか否かを判定することを特徴とする請求項1に記載のボット判定装置。
【請求項3】
前記発言記憶手段の発言情報は、前記SNSに投稿された各発言の他発言との関係を示す発言間関係情報を更に含み、
前記規則性指数算出手段が、
前記発言記憶手段に記憶されている発言情報に基づいて、前記判定対象ユーザの応答発言の投稿日時情報のリストである応答日時リストを取得する応答日時リスト取得手段と、
前記発言記憶手段に記憶されている発言情報に基づいて、前記判定対象ユーザの応答発言の元発言の投稿日時情報のリストである元投稿日時リストを取得する元投稿日時リスト取得手段と、
前記応答日時リスト取得手段で取得した応答日時リストと、前記元投稿日時リスト取得手段で取得した元投稿日時リストとに基づいて、前記判定対象ユーザが前記応答発言を投稿するまでの応答時間を算出し、算出した応答時間の平均を前記判定対象ユーザのユーザ応答時間として決定するユーザ応答時間決定手段と、
を備え、
前記ユーザ判定手段が、前記ユーザ応答時間決定手段で取得されたユーザ応答時間と、前記予め設定されたしきい値との大小関係から、前記判定対象ユーザが前記ボットであるか否かを判定することを特徴とする請求項1または請求項2に記載のボット判定装置。
【請求項4】
前記規則性指数算出手段が、
前記発言記憶手段に記憶されている発言情報に基づいて、前記判定対象ユーザと一の前記他ユーザとの間で所定の間隔以下で連続的に発言がやり取りされている連続応答区間の発言情報を抽出する連続応答区間抽出手段と、
前記連続応答区間抽出手段で抽出された連続応答区間の発言情報に基づいて、当該連続応答区間内に含まれる各発言の応答間隔を算出し、算出した応答間隔の差分から交替潜時特徴量を算出する交替潜時特徴量算出手段と、
を備え、
前記ユーザ判定手段が、前記交替潜時特徴量算出手段で算出した交替潜時特徴量から、前記判定対象ユーザが前記ボットであるか否かを判定することを特徴とする請求項3に記載のボット判定装置。
【請求項5】
前記発言記憶手段の発言情報は、前記SNSに投稿された各発言の内容情報を更に含み、
前記規則性指数算出手段が、
前記連続応答区間抽出手段で抽出された連続応答区間の発言情報に含まれる内容情報に基づいて、当該連続応答区間内に含まれる各発言が前発言に同意するか否かを判定する同意判定手段を備え、
前記交替潜時特徴量算出手段が、当該連続応答区間内に含まれる各発言の前記同意判定手段の判定結果によって、前記応答間隔に重み付けを行うことを特徴とする請求項4に記載のボット判定装置。
【請求項6】
前記規則性指数算出手段が、
前記発言記憶手段に記憶されている発言情報に基づいて、前記判定対象ユーザの投稿日時情報のリストを取得する解析投稿日時リスト取得手段と、
前記解析投稿日時リスト取得手段で取得した前記判定対象ユーザの投稿日時情報のリストをスペクトル解析し、振幅スペクトルの最大振幅値を周期性指数として取得するスペクトル解析手段と、
を備え、
前記ユーザ判定手段が、前記スペクトル解析手段で取得された周期性指数と、前記予め設定されたしきい値との大小関係から、前記判定対象ユーザが前記ボットであるか否かを判定することを特徴とする請求項1から請求項5のいずれかに記載のボット判定装置。
【請求項7】
前記スペクトル解析手段が、離散フーリエ変換法またはpiccolo法を用いて、前記解析投稿日時リスト取得手段で取得した前記判定対象ユーザの投稿日時情報のリストを解析し、前記周期性指数を算出することを特徴とする請求項6に記載のボット判定装置。
【請求項8】
前記発言記憶手段は、前記SNSに投稿された各発言の他発言との関係を示す発言間関係情報を更に発言情報に含め、
解析投稿日時リスト取得手段が、前記発言記憶手段に記憶されている発言情報の発言間関係情報に基づいて、前記判定対象ユーザについて、応答発言以外の発言の投稿日時情報のリストを取得することを特徴とする請求項6または請求項7に記載のボット判定装置。
【請求項9】
投稿された発言の受け付けと公開を行うSNS(Social Networking Service)において、前記発言を投稿しているユーザがボットであるか否かを判定するボット判定装置であって、
前記SNSに投稿された発言の投稿ユーザ情報および投稿日時情報を少なくとも含む発言情報を記憶する発言記憶手段と、
判定対象ユーザについて、前記発言記憶手段に記憶されている発言情報に基づいて、他ユーザと判定対象ユーザ間との間における投稿タイミングの規則性を示す複数種類の規則性指数を算出する規則性指数算出手段と、
ボットであると判定されているユーザおよび当該ボットでないと判定されているユーザそれぞれの前記複数種類の規則性指数を教師データとして、所定の学習アルゴリズムを用いて、前記複数種類の規則性指数それぞれを重み付けして統合した統合モデルを学習する統合モデル学習手段と、
判定対象ユーザについて前記規則性指数算出手段で算出された前記複数種類の規則性指数と前記統合モデル学習手段で学習された統合モデルに基づいて、前記判定対象ユーザがボットであるか否かを判定する統合モデル判定手段と、
を備えるボット判定装置。
【請求項10】
投稿された発言の受け付けと公開を行うSNS(Social Networking Service)において、前記発言を投稿しているユーザがボットであるか否かを判定するボット判定装置におけるボット判定方法であって、
前記ボット判定装置が、前記SNSに投稿された発言の投稿ユーザ情報および投稿日時情報を少なくとも含む発言情報を記憶する発言記憶手段と、規則性指数算出手段と、ユーザ判定手段と、を備え、
前記ユーザ判定手段が、前記ボットか否かの判定を行う判定対象ユーザの入力を受け付ける第1のステップと、
前記規則性指数算出手段が、前記判定対象ユーザについて、前記発言記憶手段に記憶されている発言情報に基づいて、他ユーザと判定対象ユーザとの間における投稿タイミングの規則性を示す規則性指数を算出する第2のステップと、
前記ユーザ判定手段が、前記第2のステップで算出された規則性指数と、予め設定されたしきい値とを比較することによって、前記判定対象ユーザが前記ボットであるか否かを判定する第3のステップと、
を含むボット判定方法。
【請求項11】
投稿された発言の受け付けと公開を行うSNS(Social Networking Service)において、前記発言を投稿しているユーザがボットであるか否かを判定するボット判定装置におけるボット判定方法をコンピュータに実行させるためのプログラムであって、
前記ボット判定装置が、前記SNSに投稿された発言の投稿ユーザ情報および投稿日時情報を少なくとも含む発言情報を記憶する発言記憶手段と、規則性指数算出手段と、ユーザ判定手段と、を備え、
前記ユーザ判定手段が、前記ボットか否かの判定を行う判定対象ユーザの入力を受け付ける第1のステップと、
前記規則性指数算出手段が、前記判定対象ユーザについて、前記発言記憶手段に記憶されている発言情報に基づいて、他ユーザと判定対象ユーザとの間における投稿タイミングの規則性を示す規則性指数を算出する第2のステップと、
前記ユーザ判定手段が、前記第2のステップで算出された規則性指数と、予め設定されたしきい値とを比較することによって、前記判定対象ユーザが前記ボットであるか否かを判定する第3のステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、SNS(Social Networking Service)において、発言を投稿しているユーザがボットであるか否かを判定するボット判定装置、ボット判定方法、およびプログラムに関する。
【背景技術】
【0002】
インターネット上には情報検索の邪魔となる広告等の情報(スパム)が大量に存在しており、それらを取り除く様々な研究が行われている。SNS(Social Networking Service)上においても、ボット(bot)と呼ばれる、ルールに基づき自動で発言するシステムが大量に存在し、これらがユーザに代わって自動的に出力する発言が、SNSから情報収集を行う際の大きな妨げとなっている。
【0003】
既存のメール/URLのスパムフィルタでは、正例・負例が予め与えられていれば、ベイズ推定(例えば、非特許文献1参照)等の教師つき学習を用いて、スパムの判別が可能である。これらは基本的にスパムの正解例と似ているかどうかで判定するため、利用される単語が日々変化するSNS上で用いるためには、スパムの正否を人手で示した教師データを日々更新して行く必要があり、大変な労力を必要とするという問題点があった。
【0004】
この問題に対し、本文やURL参照先といったメタ情報や、ヘッダ/タグ/スクリプト等の構造情報といった、比較的変化が少ない特徴を基準として判定する手法(例えば、非特許文献2参照)が提案されているが、スパムが持つ上記の特徴が変化した場合は、やはり新たに学習データを更新する必要があった。
【0005】
一方で、文書間の類似性を評価し、類似する文書が多数あればそれをスパムとして判定することで、正/負の教師データ無しにスパムを判定する手法が提案されている(例えば、特許文献1、非特許文献3参照)。特許文献1では、メールのスパム判定をするために受信用のアカウントを複数用意し、2つのアカウントの受信した結果を比較し、類似するメールがあった場合はスパムと判定する手法が提案されている。また、非特許文献3では、この手法を更に一般化し、受け取ったメールの本文文書からハッシュ特徴量を抽出し、特徴空間内に存在するメールの密度を計算することで、類似するメール群を抽出する手法が提案されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2007−86821号公報
【非特許文献】
【0007】
【非特許文献1】Paul Graham.A plan for spam,In P.Graham,Hackers andPainters.O‘Reilly.O’Reilly,2004.
【非特許文献2】北村順平,青野雅樹“ウェブサイト間の類似度を用いたウェブスパムの検出”,DBSJ Journal,Vol.8,No.1,pp.143−148,2009.
【非特許文献3】Density−Based Spam Detector,Kenichi Yoshida,Fujimori Adachi,Takashi Washio,Hiroshi Motoda,Teruaki Homma,Akihiro Hakashima,Hiromitsu Fujikawa and Katsuyuki Yamazaki,IEICE Trans.Inf.&Syst.,Vol.E87−D, No.12,pp.2678−2688,2004年12月(特開2005−202590号公報)
【発明の概要】
【発明が解決しようとする課題】
【0008】
ところで、SNSにおいてはメールとは異なりユーザIDは使い捨てされない。そのため、スパムと判定される発言が多いユーザはボットであって、そのユーザの発言はスパムと判定されるのが正しい。しかしながら、非特許文献1から3、および特許文献1で提案されている手法では、発言(文書)1件毎にスパムの判定をしているため、ボットであるユーザの発言であっても、スパムと判定された発言と類似していなければ、スパムと判定されず、効率よくスパムを除去できないという問題点があった。
【0009】
そこで、本発明は上記課題に鑑み、SNSにおいて、発言を投稿しているユーザがボットであるか否かを、ユーザIDが使い捨てされないというSNSの特性、および発言の投稿は予めプログラムされたルールに従って行うというボットの特性を利用して、学習データを必要とせずに、効率よく判定するボット判定装置、ボット判定方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明は、上記の課題を解決するために、以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
【0011】
(1) 本発明は、投稿された発言の受け付けと公開を行うSNS(Social Networking Service)において、前記発言を投稿しているユーザがボットであるか否かを判定するボット判定装置(例えば、図1のボット判定装置100)であって、前記SNSに投稿された発言の投稿ユーザ情報および投稿日時情報を少なくとも含む発言情報を記憶する発言記憶手段(例えば、図1の発言記憶部120)と、判定対象ユーザについて、前記発言記憶手段に記憶されている発言情報に基づいて、他ユーザと判定対象ユーザとの間における投稿タイミングの規則性を示す規則性指数を算出する規則性指数算出手段(例えば、図1の規則性指数算出部130)と、前記規則性指数算出手段で算出された規則性指数と、予め設定されたしきい値とを比較することによって、前記判定対象ユーザが前記ボットであるか否かを判定するユーザ判定手段(例えば、図1のユーザ判定部110)と、を備えるボット判定装置を提案している。
【0012】
(2) 本発明は、(1)のボット判定装置について、前記規則性指数算出手段が、前記発言記憶手段に記憶されている発言情報に基づいて、前記判定対象ユーザの各投稿日時情報に、当該各投稿日時情報に最も近い前記他ユーザそれぞれの投稿日時情報を対応付けた最近傍投稿日時リストを取得する最近傍投稿日時リスト取得手段(例えば、図1の最近傍投稿日時リスト取得部141)と、前記最近傍投稿日時リスト取得手段で取得した前記最近傍投稿日時リストに基づいて、前記他ユーザそれぞれと前記判定対象ユーザとの投稿タイミングの関連性を示す個別相関係数を算出する個別相関係数算出手段(例えば、図1の個別相関係数算出部142)と、前記個別相関係数算出手段で算出された個別相関係数の中から、前記判定対象ユーザの前に発言を投稿する傾向を有する他ユーザの個別相関係数を前記最近傍投稿日時リスト取得手段で取得した最近傍投稿日時リストに基づいて抽出し、抽出した個別相関係数の最大相関係数をタイミング相関係数として決定するタイミング相関係数決定手段(例えば、図1のタイミング相関係数決定部143)と、を備え、前記ユーザ判定手段が、前記タイミング相関係数と、前記予め設定されたしきい値との大小関係から、前記判定対象ユーザが前記ボットであるか否かを判定することを特徴とするボット判定装置を提案している。
【0013】
(3) 本発明は、(1)または(2)のボット判定装置について、前記発言記憶手段の発言情報は、前記SNSに投稿された各発言の他発言との関係を示す発言間関係情報を更に含み、前記規則性指数算出手段が、前記発言記憶手段に記憶されている発言情報に基づいて、前記判定対象ユーザの応答発言の投稿日時情報のリストである応答日時リストを取得する応答日時リスト取得手段(例えば、図1の応答日時リスト取得部151)と、前記発言記憶手段に記憶されている発言情報に基づいて、前記判定対象ユーザの応答発言の元発言の投稿日時情報のリストである元投稿日時リストを取得する元投稿日時リスト取得手段(例えば、図1の元投稿日時リスト取得部152)と、前記応答日時リスト取得手段で取得した応答日時リストと、前記元投稿日時リスト取得手段で取得した元投稿日時リストとに基づいて、前記判定対象ユーザが前記応答発言を投稿するまでの応答時間を算出し、算出した応答時間の平均を前記判定対象ユーザのユーザ応答時間として決定するユーザ応答時間決定手段(例えば、図1のユーザ応答時間決定部153)と、を備え、前記ユーザ判定手段が、前記ユーザ応答時間決定手段で取得されたユーザ応答時間と、前記予め設定されたしきい値との大小関係から、前記判定対象ユーザが前記ボットであるか否かを判定することを特徴とするボット判定装置を提案している。
【0014】
(4) 本発明は、(3)のボット判定装置について、前記規則性指数算出手段が、前記発言記憶手段に記憶されている発言情報に基づいて、前記判定対象ユーザと一の前記他ユーザとの間で所定の間隔以下で連続的に発言がやり取りされている連続応答区間の発言情報を抽出する連続応答区間抽出手段(例えば、図1の連続応答区間抽出部161)と、前記連続応答区間抽出手段で抽出された連続応答区間の発言情報に基づいて、当該連続応答区間内に含まれる各発言の応答間隔を算出し、算出した応答間隔の差分から交替潜時特徴量を算出する交替潜時特徴量算出手段(例えば、図1の交替潜時特徴量算出部160)と、を備え、前記ユーザ判定手段が、前記交替潜時特徴量算出手段で算出した交替潜時特徴量から、前記判定対象ユーザが前記ボットであるか否かを判定することを特徴とするボット判定装置を提案している。
【0015】
(5) 本発明は、(4)のボット判定装置について、前記発言記憶手段の発言情報は、前記SNSに投稿された各発言の内容情報を更に含み、前記規則性指数算出手段が、前記連続応答区間抽出手段で抽出された連続応答区間の発言情報に含まれる内容情報に基づいて、当該連続応答区間内に含まれる各発言が前発言に同意するか否かを判定する同意判定手段(例えば、図1の同意判定部162)を備え、前記交替潜時特徴量算出手段が、当該連続応答区間内に含まれる各発言の前記同意判定手段の判定結果によって、前記応答間隔に重み付けを行うことを特徴とするボット判定装置を提案している。
【0016】
(6) 本発明は、(1)から(5)のボット判定装置について、前記規則性指数算出手段が、前記発言記憶手段に記憶されている発言情報に基づいて、前記判定対象ユーザの投稿日時情報のリストを取得する解析投稿日時リスト取得手段(例えば、図1の解析投稿日時リスト取得部171)と、前記解析投稿日時リスト取得手段で取得した前記判定対象ユーザの投稿日時情報のリストをスペクトル解析し、振幅スペクトルの最大振幅値を周期性指数として取得するスペクトル解析手段(例えば、図1のスペクトル解析部172)と、を備え、前記ユーザ判定手段が、前記スペクトル解析手段で取得された周期性指数と、前記予め設定されたしきい値との大小関係から、前記判定対象ユーザが前記ボットであるか否かを判定することを特徴とするボット判定装置を提案している。
【0017】
(7) 本発明は、(6)のボット判定装置について、前記スペクトル解析手段が、離散フーリエ変換法またはpiccolo法を用いて、前記解析投稿日時リスト取得手段で取得した前記判定対象ユーザの投稿日時情報のリストを解析し、前記周期性指数を算出することを特徴とするボット判定装置を提案している。
【0018】
(8) 本発明は、(6)または(7)のボット判定装置について、前記発言記憶手段は、前記SNSに投稿された各発言の他発言との関係を示す発言間関係情報を更に発言情報に含め、解析投稿日時リスト取得手段が、前記発言記憶手段に記憶されている発言情報の発言間関係情報に基づいて、前記判定対象ユーザについて、応答発言以外の発言の投稿日時情報のリストを取得することを特徴とするボット判定装置を提案している。
【0019】
(9) 本発明は、投稿された発言の受け付けと公開を行うSNS(Social Networking Service)において、前記発言を投稿しているユーザがボットであるか否かを判定するボット判定装置(例えば、図2のボット判定装置200)であって、前記SNSに投稿された発言の投稿ユーザ情報および投稿日時情報を少なくとも含む発言情報を記憶する発言記憶手段と、判定対象ユーザについて、前記発言記憶手段に記憶されている発言情報に基づいて、他ユーザと判定対象ユーザとの間における投稿タイミングの規則性を示す複数種類の規則性指数を算出する規則性指数算出手段(例えば、図2の規則性指数算出部131)と、ボットであると判定されているユーザおよび当該ボットでないと判定されているユーザそれぞれの前記複数種類の規則性指数を教師データとして、所定の学習アルゴリズムを用いて、前記複数種類の規則性指数それぞれを重み付けして統合した統合モデルを学習する統合モデル学習手段(例えば、図2の統合モデル学習部210)と、判定対象ユーザについて前記規則性指数算出手段で算出された前記複数種類の規則性指数と前記統合モデル学習手段で学習された統合モデルに基づいて、前記判定対象ユーザがボットであるか否かを判定する統合モデル判定手段(例えば、図2の統合モデル判定部230)と、を備えるボット判定装置を提案している。
【0020】
(10) 本発明は、投稿された発言の受け付けと公開を行うSNS(Social Networking Service)において、前記発言を投稿しているユーザがボットであるか否かを判定するボット判定装置におけるボット判定方法であって、前記ボット判定装置が、前記SNSに投稿された発言の投稿ユーザ情報および投稿日時情報を少なくとも含む発言情報を記憶する発言記憶手段と、規則性指数算出手段と、ユーザ判定手段と、を備え、前記ユーザ判定手段が、前記ボットか否かの判定を行う判定対象ユーザの入力を受け付ける第1のステップ(例えば、図2のステップS1)と、前記規則性指数算出手段が、前記判定対象ユーザについて、前記発言記憶手段に記憶されている発言情報に基づいて、他ユーザと判定対象ユーザとの間における投稿タイミングの規則性を示す規則性指数を算出する第2のステップ(例えば、図2のステップS2からS7)と、前記ユーザ判定手段が、前記第2のステップで算出された規則性指数と、予め設定されたしきい値とを比較することによって、前記判定対象ユーザが前記ボットであるか否かを判定する第3のステップ(例えば、図2のステップS8からS10)と、を含むボット判定方法を提案している。
【0021】
(11) 本発明は、投稿された発言の受け付けと公開を行うSNS(Social Networking Service)において、前記発言を投稿しているユーザがボットであるか否かを判定するボット判定装置におけるボット判定方法をコンピュータに実行させるためのプログラムであって、前記ボット判定装置が、前記SNSに投稿された発言の投稿ユーザ情報および投稿日時情報を少なくとも含む発言情報を記憶する発言記憶手段と、規則性指数算出手段と、ユーザ判定手段と、を備え、前記ユーザ判定手段が、前記ボットか否かの判定を行う判定対象ユーザの入力を受け付ける第1のステップ(例えば、図2のステップS1)と、前記規則性指数算出手段が、前記判定対象ユーザについて、前記発言記憶手段に記憶されている発言情報に基づいて、他ユーザと判定対象ユーザとの間における投稿タイミングの規則性を示す規則性指数を算出する第2のステップ(例えば、図2のステップS2からS7)と、前記ユーザ判定手段が、前記第2のステップで算出された規則性指数と、予め設定されたしきい値とを比較することによって、前記判定対象ユーザが前記ボットであるか否かを判定する第3のステップ(例えば、図2のステップS8からS10)と、をコンピュータに実行させるためのプログラムを提案している。
【発明の効果】
【0022】
本発明によれば、SNSにおいて、発言を投稿しているユーザがボットであるか否かを、ユーザIDが使い捨てされないというSNSの特性、および発言の投稿は予めプログラムされたルールに従って行うというボットの特性を利用して、学習データを必要とせずに、効率よく判定することができる。その結果、SNSにおいて、ボットの発言を除くことができ、効率よくスパムを除去できる。
【図面の簡単な説明】
【0023】
図1】本発明の第1の実施形態に係るボット判定装置の機能構成を示す図である。
図2】本発明の第1の実施形態に係るボット判定装置におけるタイミング相関係数を用いたボット判定処理フローを示す図である。
図3】本発明の第1の実施形態に係るボット判定装置におけるユーザ応答時間を用いたボット判定処理フローを示す図である。
図4】本発明の第1の実施形態に係るボット判定装置における交替潜時特徴量を用いたボット判定処理フローを示す図である。
図5】本発明の第1の実施形態に係るボット判定装置におけるスペクトル解析を用いたボット判定処理フローを示す図である。
図6】本発明の第2の実施形態に係るボット判定装置の機能構成を示す図である。
【発明を実施するための形態】
【0024】
以下、図面を用いて、本発明の実施形態について詳細に説明する。なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【0025】
<第1の実施形態>
<ボット判定装置の機能構成>
図1は、本発明の第1の実施形態に係るボット判定装置100の機能構成を示す図である。ボット判定装置100は、SNS(Social Networking Service)において、発言を投稿しているユーザがボットであるか否かを判定する装置であって、ユーザ判定部110、発言記憶部120、規則性指数算出部130、およびしきい値記憶部180を備える。ここで、本発明におけるボットとは、広告等の情報(スパム)を発言する、機械による自動発言システムを意味する。
【0026】
ユーザ判定部110は、ボットであるか否かを判定するユーザ(以下、判定対象ユーザという)のSNSにおけるユーザID、または判定対象ユーザの発言情報が入力されたことに応じて、処理を開始して、ユーザIDまたは判定対象ユーザの発言情報を規則性指数算出部130に送信する。判定対象ユーザの発言情報が入力された場合には、ユーザ判定部110は、判定対象ユーザの発言情報を発言記憶部120に記憶する。発言情報については、後述する発言記憶部120にて説明する。
【0027】
そして、ユーザ判定部110は、規則性指数算出部130から規則性指数を受信すると、規則性指数算出部130から受信した規則性指数と、しきい値記憶部180に記憶されているしきい値と、を比較して、判定対象ユーザがボットであるか否かを判定する。規則性指数とは判定対象ユーザの投稿タイミングの規則性をあらわす指数であって、ユーザ判定部110が規則性指数としきい値とを比較することによって、判定対象ユーザの発言タイミングに規則性があるか否かを判定する。
【0028】
ボットによる発言の投稿は予めプログラムされたルールに従って行われるために、投稿のタイミングには規則性が生じるので、ユーザ判定部110は規則性があると判定した場合には、判定対象ユーザはボットであると判定し、一方、規則性がないと判定した場合には、判定対象ユーザはボットでない非ボットと判定する。
【0029】
発言記憶部120は、SNSに投稿された発言の発言情報を記憶する。ここで、発言情報は、発言を投稿したユーザのユーザID、SNSに投稿された発言の投稿日時情報、SNSに投稿された各発言の他発言との関係を示す発言間関係情報、発言の内容を示す内容情報を含む。発言記憶部120に記憶される発言情報は、SNSのサーバから定期的に自動で取得されてもよいし、ボット判定装置100の管理者が手動で登録を行ってもよい。
【0030】
ここで、各発言の他発言との関係とは、各発言が、他ユーザが投稿した発言を再投稿(返信も含む)や引用投稿(言及も含む)している関係をいい、これらの関係にある発言を、本発明においては、応答発言という。例えば、発言間関係情報は、応答発言であるか、および応答対象の元発言を特定する情報を含み、投稿サイト内で適用される投稿ルールを利用して、「@」に続いてプレーヤの投稿サイトユーザ名が含まれる投稿を抽出すること等により実現できる。
【0031】
規則性指数算出部130は、タイミング相関係数算出部140、ユーザ応答時間算出部150、交替潜時特徴量算出部160、および周期性指数算出部170を備える。なお、規則性指数算出部130は、タイミング相関係数算出部140、ユーザ応答時間算出部150、交替潜時特徴量算出部160、および周期性指数算出部170のうち、少なくとも1つ備えていればよい。
【0032】
タイミング相関係数算出部140は、判定対象ユーザと他ユーザとの間の発言の投稿タイミングの相関関係を表すタイミング相関係数を規則性指数として算出する。ところで、ボットによる発言の投稿は予めプログラムされたルールに従って行われるために、ボットによる発言の投稿は、特定ユーザの発言の投稿に追従するという規則性があることが多い。この場合には、ボットと特定ユーザとの間の発言の投稿タイミングに相関関係が表れるので、規則性指数としてタイミング相関係数を利用して、判定対象ユーザがボットか否かを判定することができる。
【0033】
図1に示すように、タイミング相関係数算出部140は、最近傍投稿日時リスト取得部141、個別相関係数算出部142、およびタイミング相関係数決定部143を備える。
【0034】
最近傍投稿日時リスト取得部141は、発言記憶部120に記憶されている発言情報に基づいて、判定対象ユーザの各投稿日時情報に、各投稿日時情報に最も近い他ユーザそれぞれの投稿日時情報を対応付けた最近傍投稿日時リストを取得する。
【0035】
最近傍投稿日時リスト取得部141は、ユーザ判定部110から判定対象ユーザのユーザIDを取得すると、取得したユーザIDに基づいて、発言記憶部120から判定対象ユーザの投稿日時情報を取得する。最近傍投稿日時リスト取得部141は、発言記憶部120に記憶されている全投稿日時情報を取得してもよいし、期間を指定して、期間内の投稿日時情報のみを取得するようにしてもよい。
【0036】
ユーザ判定部110から発言情報を取得した場合には、最近傍投稿日時リスト取得部141は、発言記憶部120から取得する判定対象ユーザの投稿日時情報の代わりに、ユーザ判定部110から発言情報に含まれる投稿日時情報を利用してもよい。また、最近傍投稿日時リスト取得部141は、ユーザ判定部110から取得した発言情報に含まれる判定対象ユーザのユーザIDに基づいて、発言記憶部120から判定対象ユーザの投稿日時情報を取得してもよい。
【0037】
また、最近傍投稿日時リスト取得部141は、判定対象ユーザのユーザIDに基づいて判定対象ユーザ以外の他ユーザのユーザIDを発言記憶部120から取得する。なお、ユーザ判定部110から発言情報を取得した場合には、発言情報含まれる判定対象ユーザのユーザIDに基づいて、判定対象ユーザ以外の他ユーザのユーザIDを発言記憶部120から取得する。このとき、判定対象ユーザ以外であって、所定数以上の発言があるユーザのみを他ユーザとしてもよい。
【0038】
最近傍投稿日時リスト取得部141は、取得した他ユーザのユーザIDに基づいて、他ユーザ毎に投稿日時情報を取得する。そして、最近傍投稿日時リスト取得部141は、他ユーザの投稿日時情報の中から、判定対象ユーザの各投稿日時情報に最も近い投稿日時情報それぞれを抽出し、判定対象ユーザの各投稿日時情報に対応付け、同処理を全他ユーザについて行って最近傍投稿日時リストを作成する。
【0039】
個別相関係数算出部142は、最近傍投稿日時リスト取得部141で取得された最近傍投稿日時リストに基づいて、判定対象ユーザと他ユーザそれぞれとの投稿タイミングの関連性を示す、判定対象ユーザの投稿日時情報と他ユーザの投稿日時情報との個別相関係数を算出する。具体的には、以下の(1)式に最近傍投稿日時リストから判定対象ユーザのi番目の投稿日時情報と、他ユーザのi番目の投稿日時情報を代入して、判定対象ユーザと他ユーザとの個別相関係数を算出する。なお、個別相関係数算出部142は、全他ユーザについて判定対象ユーザとの相関係数を算出する。
【0040】
【数1】
【0041】
タイミング相関係数決定部143は、個別相関係数算出部142で算出された個別相関係数の中から、判定対象ユーザの前に発言を投稿する傾向を有する他ユーザの個別相関係数を最近傍投稿日時リスト取得部141で取得した最近傍投稿日時リストに基づいて抽出し、抽出した個別相関係数の最大相関係数をタイミング相関係数として決定する。
【0042】
具体的には、タイミング相関係数決定部143は、最近傍投稿日時リスト取得部141で取得された最近傍投稿日時リストに基づいて、判定対象ユーザの投稿日時情報の平均値と他ユーザそれぞれの投稿日時情報の平均値とを算出する。次に、タイミング相関係数決定部143は、判定対象ユーザの投稿日時情報の平均値よりも投稿日時情報の平均値が小さい他ユーザを特定する。判定対象ユーザの投稿日時情報の平均値よりも投稿日時情報の平均値が小さい他ユーザは、判定対象ユーザより前の投稿する傾向を有すると判断することができる。そして、タイミング相関係数決定部143は、特定した他ユーザと判定対象ユーザとの個別相関係数の最大値を、タイミング相関係数として決定する。
【0043】
ボットによる発言の投稿は他ユーザの発言の投稿に追従するので、判定対象ユーザが追従している他ユーザとの個別相関係数の最大値を、ボットか否かの判定に用いるタイミング相関係数として決定する。タイミング相関係数決定部143は、判定対象ユーザの投稿日時情報の平均値よりも投稿日時情報の平均値が小さい他ユーザを特定することができない場合は、判定対象ユーザが追従している他ユーザがいないので、判定対象ユーザはボットでないと判断できる。この場合、ユーザ判定部110に判定対象ユーザがボットでないと必ず判断させるために、タイミング相関係数を0やマイナス値に置き換えることが望ましい。
【0044】
タイミング相関係数は大きいほど、判定対象ユーザと他ユーザとの投稿タイミングに関連性があることを示す。規則性指数として算出されたタイミング相関係数としきい値記憶部180に記憶されているしきい値との大小関係を比較し、ユーザ判定部110は、タイミング相関係数がしきい値よりも大きい場合には、判定対象ユーザはボットであると判断し、一方、タイミング相関係数がしきい値以下の場合には、判定対象ユーザはボットでないと判断する。
【0045】
ユーザ応答時間算出部150は、判定対象ユーザの応答時間を規則性指数として算出する。ところで、ボットによる発言の投稿は予めプログラムされたルールに従って行われるために、ボットは人よりも応答が速いという規則性があることが多ので、規則性指数として応答時間を利用して、判定対象ユーザがボットか否かを判定することができる。
【0046】
図1に示すように、ユーザ応答時間算出部150は、応答日時リスト取得部151、元投稿日時リスト取得部152、およびユーザ応答時間決定部153を備える。
【0047】
応答日時リスト取得部151は、ユーザ判定部110から判定対象ユーザのユーザIDを取得すると、取得したユーザIDに対応付けて発言記憶部120に記憶されている発言間関係情報に含まれる応答発言であるかの情報に基づいて、判定対象ユーザの応答発言の投稿日時情報のリストである応答日時リストを、発言記憶部120から取得する。
【0048】
応答日時リスト取得部151は、ユーザ判定部110から判定対象ユーザの発言情報を取得した場合には、取得した発言情報に含まれる発言間関係情報に基づいて、判定対象ユーザの応答発言の投稿日時情報のリストである応答日時リストを取得する。なお、応答日時リスト取得部151は、ユーザ判定部110から取得した発言情報に含まれる判定対象ユーザのユーザIDに対応付けて発言記憶部120に記憶されている発言間関係情報に基づいて、応答日時リストを発言記憶部120から取得してもよい。
【0049】
元投稿日時リスト取得部152は、ユーザ判定部110から判定対象ユーザのユーザIDを取得すると、取得したユーザIDに対応付けて発言記憶部120に記憶されている発言間関係情報に含まれる応答対象の元発言を特定する情報に基づいて、判定対象ユーザの各応答発言の元発言の投稿日時情報のリストである元投稿日時リストを、発言記憶部120から取得する。なお、元投稿日時リストのi番目の投稿日時情報は、応答日時リストのi番目の投稿日時情報に対応する応答発言の元発言である。
【0050】
元投稿日時リスト取得部152は、ユーザ判定部110から判定対象ユーザの発言情報を取得した場合には、取得した発言情報の発言間関係情報に含まれる応答対象の元発言を特定する情報に基づいて、判定対象ユーザの各応答発言の元発言の投稿日時情報のリストである元投稿日時リストを取得する。なお、元投稿日時リスト取得部152は、ユーザ判定部110から取得した発言情報に含まれる判定対象ユーザのユーザIDに対応付けて発言記憶部120に記憶されている発言間関係情報に含まれる応答対象の元発言を特定する情報に基づいて、応答日時リストを発言記憶部120から取得してもよい。
【0051】
ユーザ応答時間決定部153は、応答日時リストと元投稿日時リストとにおいて対応する投稿日時情報に基づいて、判定対象ユーザが各応答発言を投稿するまでの応答時間をそれぞれ算出し、算出した応答時間の平均を判定対象ユーザのユーザ応答時間として決定する。
【0052】
応答時間が常に早いユーザはボットである可能性が高いことから、ユーザ判定部110は、ユーザ応答時間算出部150で算出されたユーザ応答時間をしきい値と比較し、しきい値よりもユーザ応答時間が小さい場合には、判定対象ユーザはボットであると判断し、一方、ユーザ応答時間がしきい値以上である場合には、判定対象ユーザは非ボットであると判断する。
【0053】
交替潜時特徴量算出部160は、判定対象ユーザの交代潜時特徴量を規則性指数として算出する。ところで、人が2者間で対話する際には交代潜時が同調するが、ボットによる発言の投稿は予めプログラムされたルールに従って行われるために、交代潜時が同調しないという規則性があることが多ので、規則性指数として交代潜時特徴量を利用して、判定対象ユーザがボットか否かを判定することができる。
【0054】
図1に示すように、交替潜時特徴量算出部160は、連続応答区間抽出部161、同意判定部162、および交替潜時特徴量決定部163を備える。
【0055】
連続応答区間抽出部161は、発言記憶部120に記憶されている発言情報に基づいて、判定対象ユーザと一の他ユーザとリアルタイムに近い間隔で互いに向かって発言の投稿を所定回数繰り返している連続応答区間の発言情報を、発言記憶部120から抽出する。
【0056】
具体的には、連続応答区間抽出部161は、まず、判定対象ユーザのユーザIDと、発言記憶部120に記憶されている発言間関係情報に含まれる応答対象の元発言を特定する情報および投稿日時情報とに基づいて、判定対象ユーザの発言と応答関係にあって、判定対象ユーザの発言との投稿間隔が所定時間以内にある発言を投稿しているユーザを連続応答ユーザ候補として抽出する。なお、ユーザ判定部110から発言情報を取得した場合には、最初に、ユーザ判定部110から取得した発言情報に含まれる判定対象ユーザのユーザIDを取得する。
【0057】
次に、連続応答区間抽出部161は、発言記憶部120に記憶されている発言間関係情報に含まれる応答対象の元発言を特定する情報に基づいて、抽出した一の連続応答ユーザ候補の発言および判定対象ユーザの発言の中から応答関係にある発言の発言情報を抽出し、抽出した発言情報に含まれる投稿日時情報に基づいて、時系列に並べた発言時系列リストを作成する。連続応答区間抽出部161は、全ての連続応答ユーザ候補について、発言時系列リストを作成する。
【0058】
そして、連続応答区間抽出部161は、作成した全発言時系列リストの中から投稿間隔が所定時間以内の発言が所定数以上続く区間を連続応答区間として特定し、全発言時系列リストから連続応答区間の発言情報を抽出する。
【0059】
同意判定部162は、連続応答区間抽出部161で抽出された発言情報に含まれる内容情報に基づいて、連続応答区間の各発言が元発言に同意か不同意かを判定する。なお、同意でも不同意でもない中立かを含めて判定を行ってもよい。判定結果は、発言情報に付与する。
【0060】
交替潜時特徴量算出部160は、連続応答区間抽出部161で抽出された連続応答区間の発言情報に含まれる投稿日時情報に基づいて、連続応答区間内に含まれる各発言の応答間隔を算出し、算出した応答間隔を以下の(2)式に代入して、交替潜時特徴量を算出する。
【0061】
【数2】
【0062】
交替潜時特徴量算出部160は、連続応答区間の発言情報に同意判定部162の判定結果が付与されている場合には、判定結果に基づいて、連続応答区間内に含まれる各発言の応答間隔に重み付けを行う。そして、重み付けをした応答間隔を上述した(2)式に代入して、交替潜時特徴量を算出する。
【0063】
相手に不同意の場合の応答時間は、同意の場合に応答時間に比べ長くなる傾向がある(非特許文献4:松山隆司,川嶋宏彰,平山高嗣,「時間と時間感覚に対する感性の情報処理」,電子情報通信学会誌 92(11),952−954,2009−11−01)。そのため、発言が同意か不同かによって応答時間に重み付けを行うことにより、より精度よく交替潜時特徴量を算出することが可能となる。
【0064】
人間は2者間で対話する際、交替潜時が同調することから、ユーザ判定部110は、交代潜時特徴量が、しきい値「0」に収束する場合には、判定対象ユーザは非ボットであると判定し、一方、しきい値「0」に収束しない場合には、判定対象ユーザはボットであると判定する。
【0065】
周期性指数算出部170は、解析投稿日時リスト取得部171、およびスペクトル解析部172を備える。
【0066】
解析投稿日時リスト取得部171は、ユーザ判定部110から判定対象ユーザのユーザIDを取得すると、取得したユーザIDに対応付けて発言記憶部120に記憶されている発言情報に基づいて、判定対象ユーザの投稿日時情報のリストを解析投稿日時リストとして取得する。解析投稿日時リスト取得部171は、発言記憶部120に記憶されている全投稿日時情報を取得してもよいし、期間を指定して、期間内の投稿日時情報のみを取得するようにしてもよい。
【0067】
ユーザ判定部110から発言情報を取得した場合には、解析投稿日時リスト取得部171は、発言記憶部120から取得する判定対象ユーザの投稿日時情報の代わりに、ユーザ判定部110から取得した発言情報から解析投稿日時リストを取得してもよい。なお、解析投稿日時リスト取得部171は、ユーザ判定部110から取得した発言情報に含まれる判定対象ユーザのユーザIDに基づいて、発言記憶部120から解析投稿日時リストを取得してもよい。
【0068】
解析投稿日時リスト取得部171は、発言記憶部120に記憶されている発言情報に含まれる発言間関係情報に基づいて、判定対象ユーザについて、応答発言以外の発言の投稿日時情報のリストを解析投稿日時リストとして取得してもよい。それにより、より精度よく周期性の有無を判定することができる。他のユーザへの応答の発言は、予め設定されたルールには依存せず投稿されるため、周期性の有無を判定するにはノイズとなるからである。
【0069】
スペクトル解析部172は、解析投稿日時リスト取得部171で取得した解析投稿日時リストをスペクトル解析する。具体的には、スペクトル解析部172は、発言の投稿を一定出力のインパルス応答信号の出力とみなして、スペクトル解析を行い、解析結果として振幅スペクトルを取得する。なお、スペクトル解析には、例えば、フーリエ変換やpiccolo法を用いる。そして、スペクトル解析部172は、取得した振幅スペクトルの最大振幅値を規則性指数として取得する。
【0070】
ユーザ判定部110は、スペクトル解析部172で取得した最大振幅値がしきい値より大きければボットと判定し、一方、最大振幅値がしきい値以下であれば非ボットであると判定する。特定周期で発言が投稿されているほど、最大振幅値が大きくなるので、最大振幅値としきい値をと比較することにより判定対象ユーザがボットであるか否かを判定することができる。
【0071】
しきい値記憶部180は、予め設定された規則性指数のしきい値を記憶する。具体的には、ボットの判定にユーザ間相関係数を用いる場合にはユーザ間相関係数のしきい値、ボットの判定に応答時間を用いる場合には応答時間のしきい値、ボットの判定に交代潜時特徴量を用いる場合には交代潜時特徴量のしきい値「0」、ボットの判定に最大振幅値を用いる場合には最大振幅値のしきい値が記憶されている。
【0072】
<タイミング相関係数を用いたボット判定処理フロー>
図2は、本発明の第1の実施形態に係るボット判定装置100における、タイミング相関係数を用いたボット判定処理フローを示す図である。
【0073】
まず、ステップS1において、ユーザ判定部110が、外部から判定対象ユーザのユーザIDまたは判定対象ユーザの発言情報が入力されたか否かを判定する。入力されたと判定した場合(YES)には、ステップS2に処理を進め、一方、入力されていないと判定した場合(NO)には、処理を終了する。
【0074】
次に、ステップS2において、最近傍投稿日時リスト取得部141は、判定対象ユーザの投稿日時情報を取得する。ユーザ判定部110から判定対象ユーザのユーザIDを受信した場合には、受信したユーザIDに基づいて投稿日時情報を発言記憶部120から取得する。一方、ユーザ判定部110から判定対象ユーザの発言情報を取得した場合には、発言情報に含まれるユーザIDに基づいて投稿日時情報を発言記憶部120から取得してもよいし、取得した発言情報から投稿日時情報を取得してもよい。
【0075】
次に、ステップS3において、最近傍投稿日時リスト取得部141は、判定対象ユーザのユーザIDに基づいて判定対象ユーザ以外の他ユーザのユーザIDを発言記憶部120から取得する。
【0076】
次に、ステップS4において、最近傍投稿日時リスト取得部141は、ステップS2で取得した判定対象ユーザの投稿日時情報と、ステップS3で取得した他ユーザそれぞれのユーザIDとに基づいて、発言記憶部120に記憶されている発言情報に基づいて、判定対象ユーザの各投稿日時情報に、各投稿日時情報に最も近い他ユーザそれぞれの投稿日時情報を対応付けた最近傍投稿日時リストを、発言記憶部120から取得する。
【0077】
次に、ステップS5において、個別相関係数算出部142は、ステップS4で取得された最近傍投稿日時リストに基づいて、判定対象ユーザと他ユーザとの投稿タイミングの関連性を示し、判定対象ユーザの投稿日時情報と他ユーザそれぞれとの投稿日時情報との個別相関係数を算出する。
【0078】
次に、ステップS6において、個別相関係数算出部142は、ステップS4で取得した最近傍投稿日時リストに含まれる全ての他ユーザについて個別相関係数を算出したか否かを判定する。全ての他ユーザの個別相関係数を算出した場合には、ステップS7に処理を進め、一方、まだ全ての他ユーザの個別相関係数を算出していない場合には、ステップS5に処理を戻す。
【0079】
次に、ステップS7において、タイミング相関係数決定部143は、ステップS5で算出された個別相関係数の中から、判定対象ユーザの前に発言を投稿する傾向を有する他ユーザの個別相関係数をステップS4で取得した最近傍投稿日時リストに基づいて抽出し、抽出した個別相関係数の最大相関係数をタイミング相関係数として決定する。
【0080】
次に、ステップS8において、ユーザ判定部110は、ステップS7で算出したタイミング相関係数がしきい値記憶部180に記憶されているしきい値より大きいか否かを判定する。タイミング相関係数がしきい値より大きいと判定した場合(YES)には、ステップS9に処理を進め、一方、タイミング相関係数がしきい値以下と判定した場合(NO)には、ステップS10に処理を進める。
【0081】
次に、ステップS9において、ユーザ判定部110は、判断対象ユーザはボットであると判定し、出力する。
【0082】
次に、ステップS10において、ユーザ判定部110は、判断対象ユーザは非ボットであると判定し、出力する。
【0083】
<ユーザ応答時間を用いたボット判定処理フロー>
図3は、本発明の第1の実施形態に係るボット判定装置100における、ユーザ応答時間を用いたボット判定処理フローを示す図である。なお、図2を用いて説明したタイミング相関係数を用いたボット判定処理フローと同一処理については、同一符号を付し、その詳細な説明は省略する。
【0084】
次に、ステップS11において、応答日時リスト取得部151は、判定対象ユーザの応答日時リストを取得する。ユーザ判定部110から判定対象ユーザのユーザIDを受信した場合には、受信したユーザIDに対応付けて発言記憶部120に記憶されている発言間関係情報に含まれる応答発言であるかの情報に基づいて、応答日時リストを発言記憶部120から取得する。一方、ユーザ判定部110から判定対象ユーザの発言情報を取得した場合には、発言情報に含まれるユーザIDに基づいて同様にして応答日時リストを発言記憶部120から取得してもよいし、ユーザ判定部110から取得した発言情報から応答日時リストを取得してもよい。
【0085】
次に、ステップS12において、元投稿日時リスト取得部152は、元投稿日時リストを取得する。ユーザ判定部110から判定対象ユーザのユーザIDを受信した場合には、受信したユーザIDに対応付けて発言記憶部120に記憶されている発言間関係情報に含まれる応答対象の元発言を特定する情報に基づいて、元投稿日時リストを発言記憶部120から取得する。一方、ユーザ判定部110から判定対象ユーザの発言情報を取得した場合には、発言情報に含まれるユーザIDに基づいて同様にして応答日時リストを発言記憶部120から取得してもよいし、発言情報に含まれる発言間関係情報に含まれる応答対象の元発言を特定する情報に基づいて、元投稿日時リストを発言記憶部120から取得してもよい。
【0086】
次に、ステップS13において、ユーザ応答時間決定部153は、ステップS11で取得した応答日時リストとステップS12で取得した元投稿日時リストとにおいて対応する投稿日時情報に基づいて、判定対象ユーザが各応答発言を投稿するまでの応答時間をそれぞれ算出し、算出した応答時間の平均を判定対象ユーザのユーザ応答時間として決定する。
【0087】
次に、ステップS14において、ユーザ判定部110は、ステップS13で算出されたユーザ応答時間がしきい値記憶部180に記憶されているしきい値より小さいか否かを判定する。ユーザ応答時間がしきい値より小さいと判定した場合(YES)には、ステップS9に処理を進め、一方、ユーザ応答時間がしきい値以上と判定した場合(NO)には、ステップS10に処理を進める。
【0088】
<交替潜時特徴量を用いたボット判定処理フロー>
図4は、本発明の第1の実施形態に係るボット判定装置100における、交替潜時特徴量を用いたボット判定処理フローを示す図である。なお、図2を用いて説明したタイミング相関係数を用いたボット判定処理フローと同一処理については、同一符号を付し、その詳細な説明は省略する。
【0089】
次に、ステップS21において、連続応答区間抽出部161は、判定対象ユーザの発言と応答関係にあって、判定対象ユーザの発言との投稿間隔が所定時間以内にある発言を投稿しているユーザを連続応答ユーザ候補として抽出する。
【0090】
次に、ステップS22において、連続応答区間抽出部161は、ステップS21で抽出した一の連続応答ユーザ候補の発言情報、および判定対象ユーザの発言情報の中から応答関係にある発言情報を抽出し、時系列に並べた発言時系列リストを作成する。
【0091】
次に、ステップS23において、連続応答区間抽出部161は、ステップS22で作成した発言時系列リストの中から投稿間隔が所定時間以内の発言が所定数以上続く区間を連続応答区間として特定し、連続応答区間の発言情報を抽出する。
【0092】
次に、ステップS24において、連続応答区間抽出部161は、ステップS21で抽出した全ての連続対応ユーザ候補ユーザについてステップS22およびS23の処理を行ったか否かを判定する。全ての連続対応ユーザ候補ユーザについて処理を行った場合(YES)には、ステップS25に処理を進め、一方、まだ全ての他ユーザの個別相関係数を算出していない場合(NO)には、ステップS22に処理を戻す。
【0093】
次に、ステップS25において、交替潜時特徴量算出部160は、ステップS23で抽出した全ての個別連続応答区間を合わせて一の連続応答区間として、連続応答区間内に含まれる各発言の応答間隔を算出し、算出した応答間隔を上述した(2)式に代入して、交替潜時特徴量を決定する。
【0094】
次に、ステップS26において、ユーザ判定部110は、ステップS25で算出された交替潜時特徴量がしきい値記憶部180に記憶されているしきい値「0」に収束か否かを判定する。交替潜時特徴量がしきい値「0」に収束すると判定した場合(YES)には、ステップS9に処理を進め、一方、しきい値「0」に収束しないと判定した場合(NO)には、ステップS10に処理を進める。
【0095】
<スペクトル解析を用いたボット判定処理フロー>
図5は、本発明の第1の実施形態に係るボット判定装置100における、スペクトル解析を用いたボット判定処理フローを示す図である。なお、図2を用いて説明したタイミング相関係数を用いたボット判定処理フローと同一処理については、同一符号を付し、その詳細な説明は省略する。
【0096】
次に、ステップS31において、解析投稿日時リスト取得部171は、判定対象ユーザの投稿日時情報を解析投稿日時リストとして取得する。ユーザ判定部110から判定対象ユーザのユーザIDを受信した場合には、受信したユーザIDに基づいて解析投稿日時リストを発言記憶部120から取得する。一方、ユーザ判定部110から判定対象ユーザの発言情報を取得した場合には、発言情報に含まれるユーザIDに基づいて解析投稿日時リストを発言記憶部120から取得してもよいし、取得した発言情報から解析投稿日時リストを取得してもよい。
【0097】
次に、ステップS32において、スペクトル解析部172は、ステップS31で取得した解析投稿日時リストをスペクトル解析する。
【0098】
次に、ステップS33において、ステップS32の解析結果として取得した振幅スペクトルの最大振幅値を規則性指数として取得する。
【0099】
次に、ステップS34において、ユーザ判定部110は、ステップS33で算出された最大振幅値がしきい値記憶部180に記憶されているしきい値より大きいか否かを判定する。最大振幅値がしきい値より大きいと判定した場合(YES)には、ステップS9に処理を進め、一方、ユーザ応答時間がしきい値以下と判定した場合(NO)には、ステップS10に処理を進める。
【0100】
以上、説明したように、本実施形態によれば、SNSにおいて、ユーザIDは使い捨てされないこと、およびボットはルールに従って発言を投稿することを利用して、他ユーザとの投稿タイミングの相関関係や応答時間、発言の交替潜時の特徴、ユーザ内の投稿間隔の周期性といった投稿タイミングの規則性から、学習データを必要とせずに、発言を投稿しているユーザがボットであるか否かを効率よく判定することができる。その結果、SNSにおいて、ボットの発言を除くことができ、効率よくスパムを除去できる。
【0101】
<第2の実施形態>
図6を用いて、本発明の第2の実施形態について説明する。なお、本実施形態におけるボット判定装置は、第1の実施形態で説明したユーザ間相関係数、応答時間、および振幅最大値を統合してボット判定を行うことにより、判定の精度を向上させた装置である。なお、第1の実施形態と同一の符号を付す構成要素については、同一の機能を有することから、その詳細な説明は省略する。
【0102】
<ボット判定装置の機能構成>
図6は、本発明の第2の実施形態に係るボット判定装置200の機能構成を示す図である。ボット判定装置200は、SNS(Social Networking Service)において、発言を投稿しているユーザがボットであるか否かを判定する装置であって、規則性指数算出部131、発言記憶部120、統合モデル学習部210、統合モデル記憶部220、および統合モデル判定部230を備える。ここで、本発明におけるボットとは、広告等の情報(スパム)を発言する、機械による自動発言システムを意味する。
【0103】
規則性指数算出部131は、タイミング相関係数算出部140、ユーザ応答時間算出部150、および周期性指数算出部170を備える。
【0104】
統合モデル学習部210は、ボットであると判定されているユーザおよび非ボットと判定されているユーザそれぞれの複数種類の規則性指数を教師データとして、所定の学習アルゴリズムを用いて、複数種類の規則性指数それぞれを重み付けして統合した統合モデルを学習する。複数種類の規則性指数には、タイミング相関係数、ユーザ応答時間、周期性指数の少なくとも2つが含まれる。
【0105】
統合モデル学習部210は、複数種類の規則性指数それぞれを重み付けする方法には、例えば、AfaBoost(非特許文献5:Yoav Freund,Robert E.Schapire.“A Decision−Theoretic Generalization of on−Line Learning and an Application to Boostion”,1995)を用いることができる。
【0106】
統合モデル記憶部220は、統合モデル学習部210で学習された統合モデルを記憶する。なお、複数種類の規則性指数の組み合わせ毎に統合モデルが記憶されてもよい。
【0107】
統合モデル判定部230は、判定対象ユーザについて規則性指数算出部131で算出された複数種類の規則性指数と統合モデル記憶部220に記憶されている統合モデルに基づいて、判定対象ユーザがボットであるか否かを判定する。
【0108】
以上、説明したように、本実施形態によれば、教師データを利用して学習した、投稿タイミングの規則性に基づく統合モデルを用いて、発言を投稿しているユーザがボットであるか否かを効率よく判定することができる。その結果、SNSにおいて、ボットの発言を除くことができ、効率よくスパムを除去できる。
【0109】
なお、ボット判定装置の処理をコンピュータシステムが読み取り可能な記録媒体に記録し、この記録媒体に記録されたボット判定装置に読み込ませ、実行することによって本発明のボット判定装置を実現することができる。ここでいうコンピュータシステムとは、OSや周辺装置等のハードウェアを含む。
【0110】
また、「コンピュータシステム」は、WWW(World Wide Web)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
【0111】
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。更に、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0112】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0113】
100,200 ボット判定装置
110 ユーザ判定部
120 発言記憶部
130,131 規則性指数算出部
140 タイミング相関係数算出部
141 最近傍投稿日時リスト取得部
142 個別相関係数算出部
143 タイミング相関係数決定部
150 ユーザ応答時間算出部
151 応答日時リスト取得部
152 元投稿日時リスト取得部
153 ユーザ応答時間決定部
160 交替潜時特徴算出部
161 連続応答区間抽出部
162 同意判定部
163 交替せん潜時特徴決定部
170 周期性指数算出部
171 解析投稿日時リスト取得部
172 スペクトル解析部
180 しきい値算出部
210 統合モデル学習部
220 統合モデル記憶部
230 統合モデル判定部
図1
図2
図3
図4
図5
図6