(57)【要約】【課題】行列分解の際に、データポイゾニングの影響を最小限に抑えられる学習装置、学習方法及び学習プログラムを提供すること。【解決手段】学習装置１は、評価行列及びアイテム因子行列を固定したとき、第１損失関数を最小化するようにユーザ因子行列を導出する第１行列導出部１１と、ユーザ因子行列及びアイテム因子行列を固定したとき、第２損失関数を最小化するように部分評価行列及び部分ユーザ因子行列を導出する第２行列導出部１２と、部分評価行列及び部分ユーザ因子行列を固定したとき、第２損失関数を最小化するようにアイテム因子行列を導出する第３行列導出部１３と、を備え、第１行列導出部１１、第２行列導出部１２及び第３行列導出部１３による処理を、第２損失関数が収束するまで繰り返し実行する。【選択図】図１
2020119091.tif 000002
【特許請求の範囲】
【請求項１】
評価行列をユーザ因子行列及びアイテム因子行列の積に分解する行列分解に基づく学習装置であって、
前記評価行列及び前記アイテム因子行列を固定したとき、前記評価行列、前記ユーザ因子行列及び前記アイテム因子行列をパラメータとする第１損失関数を最小化するように、前記ユーザ因子行列を導出する第１行列導出部と、
前記ユーザ因子行列及び前記アイテム因子行列を固定したとき、前記評価行列から所定数の行を除いた部分評価行列、及び前記ユーザ因子行列から前記所定数の行を除いた部分ユーザ因子行列、及び前記アイテム因子行列をパラメータとする第２損失関数を最小化するように、前記部分評価行列及び前記部分ユーザ因子行列を導出する第２行列導出部と、
前記部分評価行列及び前記部分ユーザ因子行列を固定したとき、前記第２損失関数を最小化するように、前記アイテム因子行列を導出する第３行列導出部と、を備え、
前記第１行列導出部、前記第２行列導出部及び前記第３行列導出部による処理を、前記第２損失関数が収束するまで繰り返し実行する学習装置。
【請求項２】
前記第２損失関数は、前記第１損失関数のパラメータのうち、前記評価行列を前記部分評価行列に、前記ユーザ因子行列を前記部分ユーザ因子行列に置き換えたものである請求項１に記載の学習装置。
【請求項３】
前記第１損失関数は、前記評価行列と、前記ユーザ因子行列及び前記アイテム因子行列の積との差の２次のフロベニウスノルムである請求項２に記載の学習装置。
【請求項４】
評価行列をユーザ因子行列及びアイテム因子行列の積に分解する行列分解に基づく学習方法であって、
前記評価行列及び前記アイテム因子行列を固定したとき、前記評価行列、前記ユーザ因子行列及び前記アイテム因子行列をパラメータとする第１損失関数を最小化するように、前記ユーザ因子行列を導出する第１行列導出ステップと、
前記ユーザ因子行列及び前記アイテム因子行列を固定したとき、前記評価行列から所定数の行を除いた部分評価行列、及び前記ユーザ因子行列から前記所定数の行を除いた部分ユーザ因子行列、及び前記アイテム因子行列をパラメータとする第２損失関数を最小化するように、前記部分評価行列及び前記部分ユーザ因子行列を導出する第２行列導出ステップと、
前記部分評価行列及び前記部分ユーザ因子行列を固定したとき、前記第２損失関数を最小化するように、前記アイテム因子行列を導出する第３行列導出ステップと、
を前記第２損失関数が収束するまでコンピュータが繰り返し実行する学習方法。
【請求項５】
評価行列をユーザ因子行列及びアイテム因子行列の積に分解する行列分解に基づく学習プログラムであって、
前記評価行列及び前記アイテム因子行列を固定したとき、前記評価行列、前記ユーザ因子行列及び前記アイテム因子行列をパラメータとする第１損失関数を最小化するように、前記ユーザ因子行列を導出する第１行列導出ステップと、
前記ユーザ因子行列及び前記アイテム因子行列を固定したとき、前記評価行列から所定数の行を除いた部分評価行列、及び前記ユーザ因子行列から前記所定数の行を除いた部分ユーザ因子行列、及び前記アイテム因子行列をパラメータとする第２損失関数を最小化するように、前記部分評価行列及び前記部分ユーザ因子行列を導出する第２行列導出ステップと、
前記部分評価行列及び前記部分ユーザ因子行列を固定したとき、前記第２損失関数を最小化するように、前記アイテム因子行列を導出する第３行列導出ステップと、
を前記第２損失関数が収束するまでコンピュータに繰り返し実行させるための学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データポイゾニングに耐性のある学習装置、学習方法及び学習プログラムに関する。
【背景技術】
【０００２】
教師あり学習に対する脅威の一つとして、訓練データに悪性データを混入するデータポイゾニング攻撃がある。本攻撃への対策としては、ＴＲＩＭと呼ばれる学習アルゴリズムがある（例えば、非特許文献１参照）。
一般的な教師あり学習では、訓練データから入力と出力との対応関係を表すモデルを学習する際に、最適化問題を解くことで損失関数を最小化するモデルのパラメータを決定する。一方、ＴＲＩＭでは、データポイゾニングの影響を最小限に抑えるために、悪性データが混入したＮ個の訓練データのうち正常な訓練データの数をｎ（＜Ｎ）として最適化問題を解くことで、モデルのパラメータを決定する。具体的には、ＴＲＩＭでは、交互最小化法により、訓練データとモデルのパラメータとを交互に最適化することで、Ｎ個の訓練データから損失関数を最小化するｎ個の訓練データを抽出しつつ、同時に損失関数を最小化するモデルのパラメータを決定する。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｍ．  Ｊａｇｉｅｌｓｋｉ  ｅｔ  ａｌ．，  “Ｍａｎｉｐｕｌａｔｉｎｇ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ：  Ｐｏｉｓｏｎｉｎｇ  Ａｔｔａｃｋｓ  ａｎｄ  Ｃｏｕｎｔｅｒｍｅａｓｕｒｅｓ  ｆｏｒ  Ｒｅｇｒｅｓｓｉｏｎ  Ｌｅａｒｎｉｎｇ，”  ＩＥＥＥ  Ｓ＆Ｐ  ２０１８．
【発明の概要】
【発明が解決しようとする課題】
【０００４】
行列分解ベースの協調フィルタリングでは、複数のユーザによるアイテムに対する評価行列を訓練データとし、損失関数を最小化するユーザ因子行列とアイテム因子行列とが潜在モデルとして導出される。協調フィルタリングに対するデータポイゾニング攻撃では、攻撃者が正規ユーザを装いながら不正にアイテムを評価することで、評価データに悪性データを混入する。このため、データポイゾニング攻撃への対策として、データ単位ではなく、ユーザ単位で悪性データを排除することが望まれる。
【０００５】
前述のＴＲＩＭを行列分解ベースの協調フィルタリングに応用した場合、まず、ｎ人のユーザを選択し、対応する評価行列を用いて、ユーザ因子行列とアイテム因子行列とを選択する。次いで、選択したユーザ因子行列とアイテム因子行列とを用いて、損失関数を最小化するｎ人のユーザを選択する。
しかしながら、一部のユーザの評価行列を用いて学習を行った場合、ユーザ因子行列は他のユーザの情報を含まない。また、行列分解の損失関数は、評価行列と、ユーザ因子行列及びアイテム因子行列の積との差のフロベニウスノルムで表される。したがって、ユーザ因子行列に含まれないユーザの評価データに対する損失度は計算されない。このため、ＴＲＩＭでは損失関数を最小化するｎ人のユーザを効率的に求めることはできなかった。
【０００６】
本発明は、行列分解の際に、データポイゾニングの影響を最小限に抑えられる学習装置、学習方法及び学習プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る学習装置は、評価行列をユーザ因子行列及びアイテム因子行列の積に分解する行列分解に基づく学習装置であって、前記評価行列及び前記アイテム因子行列を固定したとき、前記評価行列、前記ユーザ因子行列及び前記アイテム因子行列をパラメータとする第１損失関数を最小化するように、前記ユーザ因子行列を導出する第１行列導出部と、前記ユーザ因子行列及び前記アイテム因子行列を固定したとき、前記評価行列から所定数の行を除いた部分評価行列、及び前記ユーザ因子行列から前記所定数の行を除いた部分ユーザ因子行列、及び前記アイテム因子行列をパラメータとする第２損失関数を最小化するように、前記部分評価行列及び前記部分ユーザ因子行列を導出する第２行列導出部と、前記部分評価行列及び前記部分ユーザ因子行列を固定したとき、前記第２損失関数を最小化するように、前記アイテム因子行列を導出する第３行列導出部と、を備え、前記第１行列導出部、前記第２行列導出部及び前記第３行列導出部による処理を、前記第２損失関数が収束するまで繰り返し実行する。
【０００８】
前記第２損失関数は、前記第１損失関数のパラメータのうち、前記評価行列を前記部分評価行列に、前記ユーザ因子行列を前記部分ユーザ因子行列に置き換えたものであってもよい。
【０００９】
前記第１損失関数は、前記評価行列と、前記ユーザ因子行列及び前記アイテム因子行列の積との差の２次のフロベニウスノルムであってもよい。
【００１０】
本発明に係る学習方法は、評価行列をユーザ因子行列及びアイテム因子行列の積に分解する行列分解に基づく学習方法であって、前記評価行列及び前記アイテム因子行列を固定したとき、前記評価行列、前記ユーザ因子行列及び前記アイテム因子行列をパラメータとする第１損失関数を最小化するように、前記ユーザ因子行列を導出する第１行列導出ステップと、前記ユーザ因子行列及び前記アイテム因子行列を固定したとき、前記評価行列から所定数の行を除いた部分評価行列、及び前記ユーザ因子行列から前記所定数の行を除いた部分ユーザ因子行列、及び前記アイテム因子行列をパラメータとする第２損失関数を最小化するように、前記部分評価行列及び前記部分ユーザ因子行列を導出する第２行列導出ステップと、前記部分評価行列及び前記部分ユーザ因子行列を固定したとき、前記第２損失関数を最小化するように、前記アイテム因子行列を導出する第３行列導出ステップと、を前記第２損失関数が収束するまでコンピュータが繰り返し実行する。
【００１１】
本発明に係る学習プログラムは、評価行列をユーザ因子行列及びアイテム因子行列の積に分解する行列分解に基づく学習プログラムであって、前記評価行列及び前記アイテム因子行列を固定したとき、前記評価行列、前記ユーザ因子行列及び前記アイテム因子行列をパラメータとする第１損失関数を最小化するように、前記ユーザ因子行列を導出する第１行列導出ステップと、前記ユーザ因子行列及び前記アイテム因子行列を固定したとき、前記評価行列から所定数の行を除いた部分評価行列、及び前記ユーザ因子行列から前記所定数の行を除いた部分ユーザ因子行列、及び前記アイテム因子行列をパラメータとする第２損失関数を最小化するように、前記部分評価行列及び前記部分ユーザ因子行列を導出する第２行列導出ステップと、前記部分評価行列及び前記部分ユーザ因子行列を固定したとき、前記第２損失関数を最小化するように、前記アイテム因子行列を導出する第３行列導出ステップと、を前記第２損失関数が収束するまでコンピュータに繰り返し実行させるためのものである。
【発明の効果】
【００１２】
本発明によれば、行列分解の際に、データポイゾニングの影響を最小限に抑えられる。
【図面の簡単な説明】
【００１３】
【図１】実施形態に係る学習装置の機能構成を示すブロック図である。
【図２】実施形態に係る学習装置の処理を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態の一例について説明する。
本実施形態に係る学習方法では、悪性データが混入された評価行列をユーザ因子行列及びアイテム因子行列の積に行列分解することによる協調フィルタリングにおいて、悪性データの影響を抑制する。
なお、悪性データは、例えば全ユーザ数の２０％等、所定の割合の悪性ユーザにより混入されているものと仮定して、この所定の割合の悪性ユーザによる評価データが全体から除去される。
【００１５】
ここで、Ｍをｍ人の正規ユーザによるｎ個のアイテムに対する評価行列とする。Ｍｉ，ｊは、評価行列Ｍのｉ番目の行（ユーザ）のｊ番目の列（アイテム）の評価を示す。ただし、Ｍは疎な行列であり、評価が未観測な要素を含む。Ωを評価行列Ｍにおいて評価が観測された要素のインデックス集合とする。ＲΩ（Ａ）は、行列Ａが与えられたとき、（ｉ，ｊ）∈ΩであればＡｉ，ｊを返し、そうでなければ０を返す関数とする。
【００１６】
行列分解ベースの協調フィルタリングでは、例えば以下の式（１）又は式（２）に示すような最適化問題を解くことで、２次のフロベニウスノルムを最小化するｍ行ｋ列のユーザ因子行列Ｕ、及びｎ行ｋ列のアイテム因子行列Ｖが導出される。ただし、‖Ａ‖Ｆは行列Ａのフロベニウスノルムを示す。
ｍｉｎ（Ｕ，Ｖ）  ‖ＲΩ（Ｍ−ＵＶＴ）‖Ｆ２  ・・・（１）
ｍｉｎ（Ｕ，Ｖ）  ‖ＲΩ（Ｍ−ＵＶＴ）‖Ｆ２
＋λ｛‖Ｕ‖Ｆ２＋‖Ｖ‖Ｆ２｝  ・・・（２）
【００１７】
協調フィルタリングに対するデータポイゾニング攻撃では、攻撃者は、正規ユーザになりますし、攻撃目的に応じて不正にアイテムを評価し、学習システムに対して悪性な評価データを追加する。Ｍ’をｍ’人の悪性ユーザによるｎ個のアイテムに対する評価行列とする。Ｍ＋を正規ユーザの評価行列Ｍに悪性ユーザの評価行列Ｍ’を加えた評価行列とする。
【００１８】
Ｍ＊を、評価行列Ｍ＋から正規ユーザの想定人数であるｍ人のユーザの評価データを抽出した評価行列とする。また、Ｕ＊を、Ｍ＊に含まれるｍ人のユーザに対するユーザ因子行列とする。
本実施形態の学習方法では、例えば以下の式（３）に示す最適化問題を解くことで、データポイゾニングの影響を最小限にするパラメータＵ＊及びＶを導出する。
ｍｉｎ（Ｍ＊，Ｕ＊，Ｖ）  ‖ＲΩ（Ｍ＊−Ｕ＊ＶＴ）‖Ｆ２  ・・・（３）
【００１９】
図１は、本実施形態に係る学習装置１の機能構成を示すブロック図である。
学習装置１は、サーバ装置又はパーソナルコンピュータ等の情報処理装置（コンピュータ）であり、制御部１０及び記憶部２０の他、各種データの入出力デバイス及び通信デバイス等を備える。
【００２０】
制御部１０は、学習装置１の全体を制御する部分であり、記憶部２０に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部１０は、ＣＰＵであってよい。
【００２１】
記憶部２０は、ハードウェア群を学習装置１として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ＲＯＭ、ＲＡＭ、フラッシュメモリ又はハードディスク（ＨＤＤ）等であってよい。具体的には、記憶部２０は、本実施形態の各機能を制御部１０に実行させるためのプログラム（学習プログラム）、入力される評価行列、及び処理途中の各種パラメータ（行列）値等を記憶する。
【００２２】
制御部１０は、第１行列導出部１１と、第２行列導出部１２と、第３行列導出部１３とを備える。制御部１０は、これらの機能部を繰り返し動作させることにより、評価行列Ｍ＋に対して、悪性ユーザを除いた部分評価行列Ｍ＊及び部分ユーザ因子行列Ｕ＊と、アイテム因子行列Ｖとを導出する。
【００２３】
第１行列導出部１１は、評価行列Ｍ＋及びアイテム因子行列Ｖを固定したとき、評価行列Ｍ＋、ユーザ因子行列Ｕ＋及びアイテム因子行列Ｖをパラメータとする第１損失関数（例えば、前述の式（１））を最小化するように、ユーザ因子行列Ｕ＋を導出する。
なお、アイテム因子行列Ｖの初期値は、ランダムに決定されてよい。
【００２４】
第２行列導出部１２は、ユーザ因子行列Ｕ＋及びアイテム因子行列Ｖを固定したとき、評価行列Ｍ＋から所定数（ｍ’）の行を除いた部分評価行列Ｍ＊、及びユーザ因子行列Ｕ＋から所定数（ｍ’）の行を除いた部分ユーザ因子行列Ｕ＊、及びアイテム因子行列Ｖをパラメータとする第２損失関数（例えば、前述の式（３））を最小化するように、部分評価行列Ｍ＊及び部分ユーザ因子行列Ｕ＊を導出する。
なお、第２損失関数は、第１損失関数のパラメータのうち、評価行列Ｍ＋を部分評価行列Ｍ＊に、ユーザ因子行列Ｕ＋を部分ユーザ因子行列Ｕ＊に置き換えたものであってよい。
【００２５】
第３行列導出部１３は、部分評価行列Ｍ＊及び部分ユーザ因子行列Ｕ＊を固定したとき、第２損失関数を最小化するように、アイテム因子行列Ｖを導出する。
【００２６】
制御部１０は、第１行列導出部１１、第２行列導出部１２及び第３行列導出部１３による処理を、第２損失関数が収束するまで繰り返し実行する。
【００２７】
図２は、本実施形態に係る学習装置１の処理を示すフローチャートである。
学習装置１は、交互最小化手法を用いて前述の最適化問題を解くことで、Ｕ＊とＶとを交互に最適化する。さらに、学習装置１は、Ｕ＊を最適化する際にも交互最小化手法を用いて、Ｕ＊及び評価行列Ｍ＊の最適化を同時に行う。
【００２８】
ステップＳ１において、制御部１０は、アイテム因子行列Ｖの初期値をランダムに決定する。
【００２９】
ステップＳ２において、制御部１０（第１行列導出部１１）は、評価行列Ｍ＋とアイテム因子行列Ｖとを固定し、第１損失関数‖ＲΩ（Ｍ＋−Ｕ＋ＶＴ）‖Ｆ２を最小化するＵ＋を選択する。ただし、Ｕ＋は（ｍ＋ｍ’）行ｋ列のユーザ因子行列である。
【００３０】
ステップＳ３において、制御部１０（第２行列導出部１２）は、ユーザ因子行列Ｕ＋とアイテム因子行列Ｖとを固定し、第２損失関数‖ＲΩ（Ｍ＊−Ｕ＊ＶＴ）‖Ｆ２を最小化する部分評価行列Ｍ＊と部分ユーザ因子行列Ｕ＊とを選択する。
【００３１】
ステップＳ４において、制御部１０（第３行列導出部１３）は、部分評価行列Ｍ＊と部分ユーザ因子行列Ｕ＊とを固定し、第２損失関数‖ＲΩ（Ｍ＊−Ｕ＊ＶＴ）‖Ｆ２を最小化するアイテム因子行列Ｖを選択する。
【００３２】
ステップＳ５において、制御部１０は、第２損失関数‖ＲΩ（Ｍ＊−Ｕ＊ＶＴ）‖Ｆ２の値が収束したか否かを判定する。この判定がＹＥＳの場合、処理は終了する。一方、判定がＮＯの場合、処理はステップＳ２に戻り、制御部１０は、ステップＳ２からステップＳ４までの処理を第２損失関数‖ＲΩ（Ｍ＊−Ｕ＊ＶＴ）‖Ｆ２の値が変化しなくなるまで繰り返す。
【００３３】
この処理により第２損失関数‖ＲΩ（Ｍ＊−Ｕ＊ＶＴ）‖Ｆ２が収束すると、部分評価行列Ｍ＊と部分ユーザ因子行列Ｕ＊が最適化され、元の評価行列Ｍ＋から悪性と考えられるレコードが除去された部分評価行列Ｍ＊と、この部分評価行列Ｍ＊に対応する部分ユーザ因子行列Ｕ＊が得られる。
【００３４】
以上のように、本実施形態によれば、学習装置１は、評価行列を行列分解する際に、まず、全てのユーザに対してユーザ因子行列Ｕ＋の最適化を行う。次に、学習装置１は、最適化した全てのユーザに対するユーザ因子行列Ｕ＋を用いて損失関数を最小化するｍ人のユーザを選択し、部分ユーザ因子行列Ｕ＊を導出する。続いて、学習装置１は、部分評価行列Ｍ＊及び部分ユーザ因子行列Ｕ＊を用いてアイテム因子行列Ｖの最適化を行う。
学習装置１は、交互最小化法に基づくこれら一連の処理を繰り返すことにより、ユーザ因子行列とアイテム因子行列とを最適化すると共に、選択するユーザの最適化を同時に行う。
これにより、学習装置１は、行列分解の際に、データポイゾニングの影響を最小限に抑えられる。この結果、データポイゾニングに耐性のある行列分解ベースの協調フィルタリングが実現される。
【００３５】
また、学習装置１は、第１損失関数と第２損失関数とを共通化することで処理を効率化できる。さらに、共通の損失関数として、評価行列（又は部分評価行列）と、ユーザ因子行列（又は部分ユーザ因子行列）及びアイテム因子行列の積との差の２次のフロベニウスノルムを用いることにより、学習装置１は、既存の行列分解及び協調フィルタリングのアルゴリズムを流用することができる。
【００３６】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【００３７】
学習装置１による学習方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置（コンピュータ）にインストールされる。また、これらのプログラムは、ＣＤ−ＲＯＭのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したＷｅｂサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【００３８】
１  学習装置
１０  制御部
１１  第１行列導出部
１２  第２行列導出部
１３  第３行列導出部
２０  記憶部
【図１】
2020119091.tif 000003
【図２】
2020119091.tif 000004