(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-17
(45)【発行日】2022-05-25
(54)【発明の名称】判定装置、判定方法及び判定プログラム
(51)【国際特許分類】
G06F 17/18 20060101AFI20220518BHJP
G06F 16/9532 20190101ALI20220518BHJP
G06F 12/14 20060101ALI20220518BHJP
G06F 21/60 20130101ALI20220518BHJP
【FI】
G06F17/18 D
G06F16/9532
G06F12/14
G06F21/60
(21)【出願番号】P 2019009273
(22)【出願日】2019-01-23
【審査請求日】2020-12-21
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100106002
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【氏名又は名称】林 一好
(72)【発明者】
【氏名】披田野 清良
(72)【発明者】
【氏名】清本 晋作
【審査官】三坂 敏夫
(56)【参考文献】
【文献】特開2018-197662(JP,A)
【文献】特開2012-150561(JP,A)
【文献】LI,Bo et al.,Data Poisoning Attacks on Factorization-Based Collaborative Filtering,[online],v2,米国,arXiv,2016年10月05日,pages:1-13,[令和3年10月26日検索],インターネット<URL:https://arxiv.org/pdf/1608.08182.pdf>
【文献】William H Press 著、丹慶勝市 他訳,NUMERICAL RECIPES in C(ニューメリカルレシピ・イン・シー C言語による数値計算のレシピ) ,第1版,株式会社技術評論社,1994年08月25日,第457頁-第463頁
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/00-17/18
G06F 16/9532
G06F 12/14
G06F 21/60
(57)【特許請求の範囲】
【請求項1】
ユーザ毎の複数のアイテムに対する評価値が格納される評価行列において、前記評価値の標本に関する累積確率分布を算出する算出部と、
互いに異なる二つの評価行列それぞれの前記累積確率分布の差、及び前記二つの評価行列それぞれにおけるユーザ数に基づく指標が所定の有意水準に基づく条件を満たす場合に、前記二つの評価行列の母集団が同一でないと判定する判定部と、を備え
、
前記算出部は、前記評価行列における一つ以上の特定のアイテム群に対応する部分行列を前記標本とし、当該標本における前記評価値の有無を変数としたヒストグラムから前記累積確率分布を算出する判定装置。
【請求項2】
前記算出部は、前記評価行列における前記アイテムの単位の部分行列を前記標本とする請求項
1に記載の判定装置。
【請求項3】
前記判定部は、前記二つの評価行列において、前記条件を満たす前記アイテムの個数が所定以上の場合に、前記二つの評価行列の母集団が同一でないと判定する請求項
2に記載の判定装置。
【請求項4】
ユーザ毎の複数のアイテムに対する評価値が格納される評価行列において、前記評価値の標本に関する累積確率分布を算出する算出ステップと、
互いに異なる二つの評価行列それぞれの前記累積確率分布の差、及び前記二つの評価行列それぞれにおけるユーザ数に基づく指標が所定の有意水準に基づく条件を満たす場合に、前記二つの評価行列の母集団が同一でないと判定する判定ステップと、をコンピュータが実行
し、
前記算出ステップにおいて、前記評価行列における一つ以上の特定のアイテム群に対応する部分行列を前記標本とし、当該標本における前記評価値の有無を変数としたヒストグラムから前記累積確率分布を算出する判定方法。
【請求項5】
ユーザ毎の複数のアイテムに対する評価値が格納される評価行列において、前記評価値の標本に関する累積確率分布を算出する算出ステップと、
互いに異なる二つの評価行列それぞれの前記累積確率分布の差、及び前記二つの評価行列それぞれにおけるユーザ数に基づく指標が所定の有意水準に基づく条件を満たす場合に、前記二つの評価行列の母集団が同一でないと判定する判定ステップと、をコンピュータに実行させ
、
前記算出ステップにおいて、前記評価行列における一つ以上の特定のアイテム群に対応する部分行列を前記標本とし、当該標本における前記評価値の有無を変数としたヒストグラムから前記累積確率分布を算出させるための判定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データポイゾニング攻撃を判定する装置に関する。
【背景技術】
【0002】
推薦システム等で用いられる協調フィルタリングでは、同一システム内のユーザらによる複数のアイテムに対する評価データを用いて、未評価のアイテムに対する評価値を予測する。協調フィルタリングに対する攻撃としては、攻撃者が正規ユーザを装いながら不正にアイテムを評価し、評価データに悪性データを混入させるデータポイゾニング攻撃がある。データポイゾニング攻撃は、予測性能の低下、又は特定アイテムの人気向上若しくは低下を目的とする。
【0003】
協調フィルタリングに対するデータポイゾニング攻撃への対策としては、例えば非特許文献1で提案されたt検定を用いた方法がある。この方法では、評価値の分布が正規分布であることを仮定し、t検定により分布の違いを検出することで、追加で与えられた評価データが悪性データであることを判定する。
【先行技術文献】
【非特許文献】
【0004】
【文献】B. Li, Y. Wang, A. Singh, and Y. Vorobeychik: Data Poisoning Attacks on Factorization-Based Collaborative Filtering, Proceedings of the 3rd Neural Information Processing Systems (NIPS 2016), pp. 1-13, 2016.
【発明の概要】
【発明が解決しようとする課題】
【0005】
前述の方法では、正規ユーザ及び悪性ユーザの評価値の分布が正規分布であることを仮定しているが、評価値の分布は必ずしも正規分布に従うとは限らない。このため、追加で与えられた悪性データを正しく検出できない場合が多かった。
【0006】
本発明は、評価データの分布によらず、悪性データを判定できる判定装置、判定方法及び判定プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明に係る判定装置は、ユーザ毎の複数のアイテムに対する評価値が格納される評価行列において、前記評価値の標本に関する累積確率分布を算出する算出部と、互いに異なる二つの評価行列それぞれの前記累積確率分布の差、及び前記二つの評価行列それぞれにおけるユーザ数に基づく指標が所定の有意水準に基づく条件を満たす場合に、前記二つの評価行列の母集団が同一でないと判定する判定部と、を備える。
【0008】
前記算出部は、前記評価行列に格納された前記評価値の集合を前記標本とし、前記評価値のヒストグラムを表す前記累積確率分布を算出してもよい。
【0009】
前記算出部は、前記二つの評価行列における互いに対応する部分を前記標本とし、当該標本における前記評価値の有無のヒストグラムを表す前記累積確率分布を算出してもよい。
【0010】
前記算出部は、前記評価行列における前記アイテムの単位の部分行列を前記標本としてもよい。
【0011】
前記判定部は、前記二つの評価行列において、前記条件を満たす前記アイテムの個数が所定以上の場合に、前記二つの評価行列の母集団が同一でないと判定してもよい。
【0012】
本発明に係る判定方法は、ユーザ毎の複数のアイテムに対する評価値が格納される評価行列において、前記評価値の標本に関する累積確率分布を算出する算出ステップと、互いに異なる二つの評価行列それぞれの前記累積確率分布の差、及び前記二つの評価行列それぞれにおけるユーザ数に基づく指標が所定の有意水準に基づく条件を満たす場合に、前記二つの評価行列の母集団が同一でないと判定する判定ステップと、をコンピュータが実行する。
【0013】
本発明に係る判定プログラムは、ユーザ毎の複数のアイテムに対する評価値が格納される評価行列において、前記評価値の標本に関する累積確率分布を算出する算出ステップと、互いに異なる二つの評価行列それぞれの前記累積確率分布の差、及び前記二つの評価行列それぞれにおけるユーザ数に基づく指標が所定の有意水準に基づく条件を満たす場合に、前記二つの評価行列の母集団が同一でないと判定する判定ステップと、をコンピュータに実行させるためのものである。
【発明の効果】
【0014】
本発明によれば、評価データの分布によらず、悪性データを判定できる。
【図面の簡単な説明】
【0015】
【
図1】実施形態に係る判定装置の機能構成を示すブロック図である。
【
図2】実施形態に係る第1の判定方法の手順を示すフローチャートである。
【
図3】実施形態に係る第2の判定方法の手順を示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、本発明の実施形態の一例について説明する。
本実施形態に係る悪性データの判定方法では、強調フィルタリングに用いられる正規の評価行列に対して、追加で与えられた評価行列が悪性データであることを、コルモゴロフ・スミルノフ検定を用いて判定する。
コルモゴロフ・スミルノフ検定は、正規分布を仮定するt検定と異なり、分布によらないノンパラメトリックな検定手法の一つであり、これにより、評価値に関する分布の形状を仮定せずに、正規ユーザによる評価行列と悪性ユーザによる評価行列とが区別される。
【0017】
ここで、Mをm人の正規ユーザによるn個のアイテムに対する評価行列とする。Mi,jは、評価行列Mのi番目の行(ユーザ)のj番目の列(アイテム)の評価を示す。ただし、Mは疎な行列であり、評価が未観測な要素を含む。
協調フィルタリングでは、評価行列Mを分析することで、Mにおける未観測な要素の値を推定する。
【0018】
協調フィルタリングに対するデータポイゾニング攻撃では、攻撃者は、正規ユーザになりますし、攻撃目的に応じて不正にアイテムを評価し、学習システムに対して悪性な評価データを追加する。M’をm’人の悪性ユーザによるn個のアイテムに対する評価行列とする。
本実施形態の判定装置1は、正規ユーザの評価行列Mに対して、評価行列M’が追加で与えられたときに、この評価行列M’が正規ユーザによるものか、悪性ユーザにより混入されたものかを判定する。
【0019】
図1は、本実施形態に係る判定装置1の機能構成を示すブロック図である。
判定装置1は、サーバ装置又はパーソナルコンピュータ等の情報処理装置(コンピュータ)であり、制御部10及び記憶部20の他、各種データの入出力デバイス及び通信デバイス等を備える。
【0020】
制御部10は、判定装置1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部10は、CPUであってよい。
【0021】
記憶部20は、ハードウェア群を判定装置1として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスク(HDD)等であってよい。具体的には、記憶部20は、本実施形態の各機能を制御部10に実行させるためのプログラム(判定プログラム)、及び処理途中の各種データ等を記憶する。
【0022】
制御部10は、算出部11と、判定部12とを備える。制御部10は、これらの機能部を動作させることにより、新たに追加された評価行列M’が既存の評価行列Mと同一の母集団に由来するものか否か、すなわち、正規の評価データか悪性の評価データかを判定する。
【0023】
算出部11は、ユーザ毎の複数のアイテムに対する評価値が格納される評価行列M及びM’において、評価値の標本に関する累積確率分布を算出する。
算出部11は、例えば、評価行列M及びM’に格納された観測された評価値の集合を標本とし、評価値のヒストグラムを表す累積確率分布を算出する。
また、算出部11は、例えば、二つの評価行列M及びM’における互いに対応する部分を標本とし、これらの標本における評価値の有無のヒストグラムを表す累積確率分布を算出する。具体的には、算出部11は、評価行列M及びM’におけるアイテムの単位の部分行列を標本としてよい。
【0024】
判定部12は、互いに異なる二つの評価行列M及びM’それぞれの累積確率分布の差、及び評価行列M及びM’それぞれにおけるユーザ数m及びm’に基づく指標が所定の有意水準に基づく条件を満たす場合に、二つの評価行列M及びM’の母集団が同一でないと判定する。
また、判定部12は、二つの評価行列M及びM’において、条件を満たす部分集合の数(アイテムの個数)が所定以上の場合に、二つの評価行列M及びM’の母集団が同一でないと判定してもよい。
【0025】
次に、判定装置1による悪性データの判定方法の手順を詳述する。
判定装置1は、例えば、以下に示す第1の判定方法又は第2の判定方法を採用する。また、判定装置1は、第1の判定方法及び第2の判定方法を共に実行し、いずれの方法においても母集団が同一でないと判定される場合に、評価行列M’が悪性な評価データであると判定してもよい。
【0026】
[第1の判定方法]
第1の判定方法では、判定装置1は、コルモゴロフ・スミルノフ検定を用いて、評価行列M及びM’のそれぞれに含まれる観測された評価値の累積確率分布の差に基づいて、M’が悪性ユーザの評価行列であるかどうかを判定する。
【0027】
図2は、本実施形態に係る第1の判定方法の手順を示すフローチャートである。
なお、コルモゴロフ・スミルノフ検定を用いるにあたって、Xを正規ユーザの評価値の標本とし、X’を悪性ユーザの評価値の標本とする。また、帰無仮説を「XとX’の母集団が同一である」とする。
【0028】
ステップS1において、算出部11は、正規ユーザの評価行列Mを用いて標本Xの累積確率分布P(x)を算出する。また、算出部11は、悪性ユーザの評価行列M’を用いて標本X’の累積確率分布Q(x)を算出する。
ここで、xは、評価行列M及びM’に含まれる観測された評価値である。例えば、評価行列M及びM’の要素として、各アイテムに対する実際の評価値1~5と、無評価を示す0とが混在する場合、算出部11は、無評価の0を除く評価値x(=1~5)のヒストグラムから、累積確率分布を算出する。
【0029】
ステップS2において、判定部12は、累積確率分布P(x)及びQ(x)に基づいて、以下の式によりコルモゴロフ・スミルノフ統計量Dを計算する。
D=maxx|P(x)-Q(x)|
【0030】
ステップS3において、判定部12は、正規ユーザ数m、悪性ユーザ数m’、及び統計量Dから、悪性データを判定するための指標としてD[mm’/(m+m’)]1/2を計算する。
【0031】
ステップS4において、判定部12は、有意水準αに対して、D[mm’/(m+m’)]1/2の値がKαより大きいか否かを判定する。ただし、Kαは、Pr[D[mm’/(m+m’)]1/2≦Kα]=1-αを満たす数とする。この判定がYESの場合、処理はステップS5に移り、判定がNOの場合、処理はステップS6に移る。
【0032】
ステップS5において、判定部12は、帰無仮説を棄却し、XとX’の母集団が同一でない、すなわち、評価行列M’が悪性ユーザにより混入された悪性データであると判定する。
【0033】
ステップS6において、判定部12は、XとX’の母集団が同一であり、評価行列M’が正規ユーザにより与えられた正規データであると判定する。
【0034】
[第2の判定方法]
第2の判定方法では、判定装置1は、コルモゴロフ・スミルノフ検定を用いて、評価行列M及びM’のそれぞれにおける各アイテムに対する評価の付け方の違いに基づいて、M’が悪性ユーザの評価行列であるかどうかを判定する。
【0035】
図3は、本実施形態に係る第2の判定方法の手順を示すフローチャートである。
なお、コルモゴロフ・スミルノフ検定を用いるにあたって、X
jを正規ユーザによるj番目のアイテムに対する評価値の標本とし、X
j’を悪性ユーザによるj番目のアイテムに対する評価値の標本とする。ただし、評価値は、0又は1の2値、すなわち、ユーザがj番目のアイテムを評価していれば評価の高低に関わらず1、評価していなければ0とする。また、帰無仮説を「X
jとX
j’の母集団が同一である」とする。
【0036】
ステップS11において、制御部10は、n個のアイテムのインデックスj、及び悪性データの判定用アイテム数kを、0に初期化する。
【0037】
ステップS12において、判定部12は、インデックスjをカウントアップ(j=j+1)する。
【0038】
ステップS13において、算出部11は、正規ユーザの評価行列Mを用いて標本Xjの累積確率分布P(x)を求める。また、算出部11は、悪性ユーザの評価行列M’を用いて標本Xj’の累積確率分布Q(x)を求める。
ここで、xは、前述の0又は1の評価値である。例えば、評価行列M及びM’の要素として、各アイテムに対する実際の評価値1~5と、無評価を示す0とが混在する場合、算出部11は、評価なし(x=0)と評価あり(x=1)のヒストグラムから、累積確率分布を求める。
【0039】
ステップS14において、判定部12は、累積確率分布P(x)及びQ(x)に基づいて、以下の式によりコルモゴロフ・スミルノフ統計量Dを計算する。
D=maxx|P(x)-Q(x)|
【0040】
ステップS15において、判定部12は、正規ユーザ数m、悪性ユーザ数m’、及び統計量Dから、悪性データを判定するための指標としてD[mm’/(m+m’)]1/2を計算する。
【0041】
ステップS16において、判定部12は、有意水準αに対して、D[mm’/(m+m’)]1/2の値がKαより大きいか否かを判定する。ただし、Kαは、Pr[D[mm’/(m+m’)]1/2≦Kα]=1-αを満たす数とする。この判定がYESの場合、処理はステップS17に移り、判定がNOの場合、処理はステップS18に移る。
【0042】
ステップS17において、判定部12は、帰無仮説を棄却し、XjとXj’の母集団が同一でないと判定し、判定用アイテム数kをカウントアップ(k=k+1)する。
【0043】
ステップS18において、判定部12は、判定用アイテム数kが閾値t以上か否かを判定する。この判定がYESの場合、処理はステップS19に移り、判定がNOの場合、処理はステップS20に移る。
【0044】
ステップS19において、判定部12は、評価行列M’が悪性ユーザにより混入された悪性データであると判定し、処理を終了する。
【0045】
ステップS20において、判定部12は、インデックスjがアイテム数nと等しい、すなわち、全てのアイテムに関して検定を行ったか否かを判定する。この判定がYESの場合、処理はステップS21に移り、判定がNOの場合、処理はステップS12に戻る。
【0046】
ステップS21において、判定部12は、評価行列M’が正規ユーザにより与えられた正規データであると判定する。
【0047】
本実施形態によれば、判定装置1は、ノンパラメトリックな検定手法の一つであるコルモゴロフ・スミルノフ検定を用いて、二つの評価行列に格納された評価値の標本に関する累積確率分布に基づき、二つの評価行列が同一の母集団に由来かどうかを判定する。これにより、判定装置1は、正規ユーザ及び悪性ユーザの評価値の分布の形状を仮定せずに、追加された評価行列が悪性データであるかどうかを判定できる。
したがって、判定装置1は、正規分布等の特定の分布形状に従わない評価データを扱う協調フィルタリングシステムにおいても、データポイゾニング攻撃の影響を抑えられる。
【0048】
判定装置1は、評価行列に格納された評価値の集合を標本とし、観測された評価値毎のヒストグラムを表す累積確率分布を算出することにより、評価値の分布の類似性に基づいて、悪性データを適切に判定できる。
【0049】
判定装置1は、二つの評価行列における互いに対応する部分を標本とし、当該標本における評価値の有無のヒストグラムを表す累積確率分布を算出することにより、評価行列における特定の部分(例えば、アイテム群)に着目した標本の類似性に基づいて、悪性データを適切に判定できる。
【0050】
判定装置1は、評価行列におけるアイテムの単位の部分行列を標本とすることにより、評価データ全体の分布だけでなく、アイテム毎の評価値の分布に対してもコルモゴロフ・スミルノフ検定を適用できる。これにより、判定装置1は、攻撃者が正規ユーザの評価値の分布と同一の又は類似の分布を持つように悪性な評価値を決定していても、例えば、悪性ユーザが特定のアイテムだけを評価するようなデータポイゾニング攻撃を検知し、悪性データを排除できる。
このとき、判定装置1は、母集団が同一でないと判定されたアイテムの個数が所定以上の場合に、二つの評価行列の母集団も同一でなく、悪性ユーザの評価データが追加されたと判定してもよい。これにより、判定装置1は、特定のアイテムのみで判定することによる誤検出を抑制し、悪性データを適切に判定できる。
【0051】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0052】
判定装置1による判定方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【0053】
1 判定装置
10 制御部
11 算出部
12 判定部
20 記憶部