(57)【特許請求の範囲】
【請求項１】
第１のオブジェクトｉ（１≦ｉ≦Ｉ，Ｉは１以上の整数）と第２のオブジェクトｊ（１≦ｊ≦Ｊ，Ｊは１以上の整数）との関係の特徴量を表すスコアとなる要素ｘijを持つＩ×Ｊのオブジェクトスコア情報行列Ｘ、及び第３のオブジェクトｋ（１≦ｋ≦Ｋ，Ｋは１以上の整数）と前記第２のオブジェクトｊとの関係の特徴量を表す計数データとなる要素ｙkjを持つＫ×Ｊのオブジェクト計数情報行列Ｙを、前記第１のオブジェクトｉが、クラスタｒ（１≦ｒ≦Ｒ，Ｒは１以上の整数）に所属することを表す要素ａｉｒを持つＩ×Ｒの第１のオブジェクト特徴行列Ａと、前記第２のオブジェクトｊが、前記クラスタｒに所属することを表す要素ｂjrを持つＪ×Ｒの第２のオブジェクト特徴行列Ｂと、前記第３のオブジェクトｋが、前記クラスタｒに所属することを表す要素ｃkrを持つＫ×Ｒの第３のオブジェクト特徴行列Ｃと、に分解するデータ解析装置であって、
前記オブジェクトスコア情報行列Ｘ、前記オブジェクト計数情報行列Ｙ、前記第１のオブジェクト特徴行列Ａ、前記第２のオブジェクト特徴行列Ｂ、及び前記第３のオブジェクト特徴行列Ｃに基づいて、前記オブジェクトスコア情報行列Ｘと、前記第１のオブジェクト特徴行列Ａ及び前記第２のオブジェクト特徴行列Ｂに基づいて推定されるオブジェクトスコア情報行列＾Ｘとのユークリッド距離、並びに前記オブジェクト計数情報行列Ｙと、前記第２のオブジェクト特徴行列Ｂ及び前記第３のオブジェクト特徴行列Ｃに基づいて推定されるオブジェクト計数情報行列＾Ｙとの一般化カルバックライブラーダイバージェンス距離の和で表わされる目的関数を最小化するように、前記第１のオブジェクト特徴行列Ａ、前記第２のオブジェクト特徴行列Ｂ、及び前記第３のオブジェクト特徴行列Ｃを推定する特徴行列推定部と、
予め定められた反復終了条件を満足するまで、前記特徴行列推定部による推定を繰り返す反復判定部と、
を含み、
前記特徴行列推定部は、前記第１のオブジェクト特徴行列Ａ、及び前記第２のオブジェクト特徴行列Ｂに基づいて、補助変数を利用して定義される前記目的関数の上界を最小化する補助関数法により前記第１のオブジェクト特徴行列Ａの各要素ａｉｒを更新し、
前記オブジェクトスコア情報行列Ｘ、前記オブジェクト計数情報行列Ｙ、前記第１のオブジェクト特徴行列Ａ、前記第２のオブジェクト特徴行列Ｂ、及び前記第３のオブジェクト特徴行列Ｃに基づいて、前記補助関数法により前記第２のオブジェクト特徴行列Ｂの各要素ｂｊｒを更新し、
前記オブジェクト計数情報行列Ｙ、前記第２のオブジェクト特徴行列Ｂ、及び前記第３のオブジェクト特徴行列Ｃに基づいて、前記補助関数法により前記第３のオブジェクト特徴行列Ｃの各要素ｃｋｒを更新する、データ解析装置。
【請求項２】
第１のオブジェクトｉ（１≦ｉ≦Ｉ，Ｉは１以上の整数）と第２のオブジェクトｊ（１≦ｊ≦Ｊ，Ｊは１以上の整数）との関係の特徴量を表すスコアとなる要素ｘijを持つＩ×Ｊのオブジェクトスコア情報行列Ｘ、及び第３のオブジェクトｋ（１≦ｋ≦Ｋ，Ｋは１以上の整数）と前記第２のオブジェクトｊとの関係の特徴量を表す計数データとなる要素ｙkjを持つＫ×Ｊのオブジェクト計数情報行列Ｙを、前記第１のオブジェクトｉが、クラスタｒ（１≦ｒ≦Ｒ，Ｒは１以上の整数）に所属することを表す要素ａｉｒを持つＩ×Ｒの第１のオブジェクト特徴行列Ａと、前記第２のオブジェクトｊが、前記クラスタｒに所属することを表す要素ｂjrを持つＪ×Ｒの第２のオブジェクト特徴行列Ｂと、前記第３のオブジェクトｋが、前記クラスタｒに所属することを表す要素ｃkrを持つＫ×Ｒの第３のオブジェクト特徴行列Ｃと、に分解するデータ解析装置であって、
前記オブジェクトスコア情報行列Ｘ、前記オブジェクト計数情報行列Ｙ、前記第１のオブジェクト特徴行列Ａ、前記第２のオブジェクト特徴行列Ｂ、及び前記第３のオブジェクト特徴行列Ｃに基づいて、前記オブジェクトスコア情報行列Ｘと、前記第１のオブジェクト特徴行列Ａ及び前記第２のオブジェクト特徴行列Ｂに基づいて推定されるオブジェクトスコア情報行列＾Ｘとのユークリッド距離、並びに前記オブジェクト計数情報行列Ｙと、前記第２のオブジェクト特徴行列Ｂ及び前記第３のオブジェクト特徴行列Ｃに基づいて推定されるオブジェクト計数情報行列＾Ｙとの一般化カルバックライブラーダイバージェンス距離の和で表わされる目的関数を最小化するように、前記第１のオブジェクト特徴行列Ａ、前記第２のオブジェクト特徴行列Ｂ、及び前記第３のオブジェクト特徴行列Ｃを推定する特徴行列推定部と、
予め定められた反復終了条件を満足するまで、前記特徴行列推定部による推定を繰り返す反復判定部と、
を含み、
前記特徴行列推定部は、以下の式に従い前記第１のオブジェクト特徴行列Ａの各要素ａｉｒを更新し、
【数１】
0006383688.tif 000045
以下の式に従い、前記第２のオブジェクト特徴行列Ｂの要素ｂjrを更新し、
【数２】
0006383688.tif 000046
以下の式に従い、前記第３のオブジェクト特徴行列Ｃの要素ｃkrを更新するデータ解析装置。
【数３】
0006383688.tif 000047
【請求項３】
前記オブジェクトスコア情報行列Ｘの要素ｘijは非負値であり、前記オブジェクト計数情報行列Ｙの要素ｙkjは非負値であり、前記第１のオブジェクト特徴行列Ａの要素ａｉｒは非負値であり、前記第２のオブジェクト特徴行列Ｂの要素ｂjrは非負値であり、前記第３のオブジェクト特徴行列Ｃの要素ｃkrは非負値であり、
前記特徴行列推定部は、前記目的関数を最小化するように、非負値分解により、前記第１のオブジェクト特徴行列Ａ、前記第２のオブジェクト特徴行列Ｂ、及び前記第３のオブジェクト特徴行列Ｃを推定する請求項１又は２記載のデータ解析装置。
【請求項４】
特徴行列推定部及び反復判定部を含み、第１のオブジェクトｉ（１≦ｉ≦Ｉ，Ｉは１以上の整数）と第２のオブジェクトｊ（１≦ｊ≦Ｊ，Ｊは１以上の整数）との関係の特徴量を表すスコアとなる要素ｘijを持つＩ×Ｊのオブジェクトスコア情報行列Ｘ、及び第３のオブジェクトｋ（１≦ｋ≦Ｋ，Ｋは１以上の整数）と前記第２のオブジェクトｊとの関係の特徴量を表す計数データとなる要素ｙkjを持つＫ×Ｊのオブジェクト計数情報行列Ｙを、前記第１のオブジェクトｉが、クラスタｒ（１≦ｒ≦Ｒ，Ｒは１以上の整数）に所属することを表す要素ａｉｒを持つＩ×Ｒの第１のオブジェクト特徴行列Ａと、前記第２のオブジェクトｊが、前記クラスタｒに所属することを表す要素ｂjrを持つＪ×Ｒの第２のオブジェクト特徴行列Ｂと、前記第３のオブジェクトｋが、前記クラスタｒに所属することを表す要素ｃkrを持つＫ×Ｒの第３のオブジェクト特徴行列Ｃと、に分解するデータ解析装置におけるデータ解析方法であって、
前記特徴行列推定部が、前記オブジェクトスコア情報行列Ｘ、前記オブジェクト計数情報行列Ｙ、前記第１のオブジェクト特徴行列Ａ、前記第２のオブジェクト特徴行列Ｂ、及び前記第３のオブジェクト特徴行列Ｃに基づいて、前記オブジェクトスコア情報行列Ｘと、前記第１のオブジェクト特徴行列Ａ及び前記第２のオブジェクト特徴行列Ｂに基づいて推定されるオブジェクトスコア情報行列＾Ｘとのユークリッド距離、並びに前記オブジェクト計数情報行列Ｙと、前記第２のオブジェクト特徴行列Ｂ及び前記第３のオブジェクト特徴行列Ｃに基づいて推定されるオブジェクト計数情報行列＾Ｙとの一般化カルバックライブラーダイバージェンス距離の和で表わされる目的関数を最小化するように、前記第１のオブジェクト特徴行列Ａ、前記第２のオブジェクト特徴行列Ｂ、及び前記第３のオブジェクト特徴行列Ｃを推定し、
前記反復判定部が、予め定められた反復終了条件を満足するまで、前記特徴行列推定部による推定を繰り返す
データ解析方法であり、
前記特徴行列推定部によって推定することでは、前記第１のオブジェクト特徴行列Ａ、及び前記第２のオブジェクト特徴行列Ｂに基づいて、補助変数を利用して定義される前記目的関数の上界を最小化する補助関数法により前記第１のオブジェクト特徴行列Ａの各要素ａｉｒを更新し、
前記オブジェクトスコア情報行列Ｘ、前記オブジェクト計数情報行列Ｙ、前記第１のオブジェクト特徴行列Ａ、前記第２のオブジェクト特徴行列Ｂ、及び前記第３のオブジェクト特徴行列Ｃに基づいて、前記補助関数法により前記第２のオブジェクト特徴行列Ｂの各要素ｂｊｒを更新し、
前記オブジェクト計数情報行列Ｙ、前記第２のオブジェクト特徴行列Ｂ、及び前記第３のオブジェクト特徴行列Ｃに基づいて、前記補助関数法により前記第３のオブジェクト特徴行列Ｃの各要素ｃｋｒを更新する、データ解析方法。
【請求項５】
特徴行列推定部及び反復判定部を含み、第１のオブジェクトｉ（１≦ｉ≦Ｉ，Ｉは１以上の整数）と第２のオブジェクトｊ（１≦ｊ≦Ｊ，Ｊは１以上の整数）との関係の特徴量を表すスコアとなる要素ｘijを持つＩ×Ｊのオブジェクトスコア情報行列Ｘ、及び第３のオブジェクトｋ（１≦ｋ≦Ｋ，Ｋは１以上の整数）と前記第２のオブジェクトｊとの関係の特徴量を表す計数データとなる要素ｙkjを持つＫ×Ｊのオブジェクト計数情報行列Ｙを、前記第１のオブジェクトｉが、クラスタｒ（１≦ｒ≦Ｒ，Ｒは１以上の整数）に所属することを表す要素ａｉｒを持つＩ×Ｒの第１のオブジェクト特徴行列Ａと、前記第２のオブジェクトｊが、前記クラスタｒに所属することを表す要素ｂjrを持つＪ×Ｒの第２のオブジェクト特徴行列Ｂと、前記第３のオブジェクトｋが、前記クラスタｒに所属することを表す要素ｃkrを持つＫ×Ｒの第３のオブジェクト特徴行列Ｃと、に分解するデータ解析装置におけるデータ解析方法であって、
前記特徴行列推定部が、前記オブジェクトスコア情報行列Ｘ、前記オブジェクト計数情報行列Ｙ、前記第１のオブジェクト特徴行列Ａ、前記第２のオブジェクト特徴行列Ｂ、及び前記第３のオブジェクト特徴行列Ｃに基づいて、前記オブジェクトスコア情報行列Ｘと、前記第１のオブジェクト特徴行列Ａ及び前記第２のオブジェクト特徴行列Ｂに基づいて推定されるオブジェクトスコア情報行列＾Ｘとのユークリッド距離、並びに前記オブジェクト計数情報行列Ｙと、前記第２のオブジェクト特徴行列Ｂ及び前記第３のオブジェクト特徴行列Ｃに基づいて推定されるオブジェクト計数情報行列＾Ｙとの一般化カルバックライブラーダイバージェンス距離の和で表わされる目的関数を最小化するように、前記第１のオブジェクト特徴行列Ａ、前記第２のオブジェクト特徴行列Ｂ、及び前記第３のオブジェクト特徴行列Ｃを推定し、
前記反復判定部が、予め定められた反復終了条件を満足するまで、前記特徴行列推定部による推定を繰り返す
データ解析方法であり、
前記特徴行列推定部によって推定することでは、以下の式に従い前記第１のオブジェクト特徴行列Ａの各要素ａｉｒを更新し、
【数４】
0006383688.tif 000048
以下の式に従い、前記第２のオブジェクト特徴行列Ｂの要素ｂjrを更新し、
【数５】
0006383688.tif 000049
以下の式に従い、前記第３のオブジェクト特徴行列Ｃの要素ｃkrを更新するデータ解析方法。
【数６】
0006383688.tif 000050
【請求項６】
前記オブジェクトスコア情報行列Ｘの要素ｘijは非負値であり、前記オブジェクト計数情報行列Ｙの要素ｙkjは非負値であり、前記第１のオブジェクト特徴行列Ａの要素ａｉｒは非負値であり、前記第２のオブジェクト特徴行列Ｂの要素ｂjrは非負値であり、前記第３のオブジェクト特徴行列Ｃの要素ｃkrは非負値であり、
前記特徴行列推定部によって推定することは、前記目的関数を最小化するように、非負値分解により、前記第１のオブジェクト特徴行列Ａ、前記第２のオブジェクト特徴行列Ｂ、及び前記第３のオブジェクト特徴行列Ｃを推定する請求項４又は５記載のデータ解析方法。
【請求項７】
ユーザｉ（１≦ｉ≦Ｉ，Ｉは１以上の整数）による映画ｊ（１≦ｊ≦Ｊ，Ｊは１以上の整数）のレーティングを表すスコアとなる要素ｘijを持つＩ×Ｊのユーザ映画行列Ｘ、及びタグ情報ｋ（１≦ｋ≦Ｋ，Ｋは１以上の整数）が前記映画ｊに付与された数を表す計数データとなる要素ｙkjを持つＫ×Ｊのタグ映画行列Ｙを、前記ユーザｉが、クラスタｒ（１≦ｒ≦Ｒ，Ｒは１以上の整数）に所属することを表す要素ａｉｒを持つＩ×Ｒのユーザ特徴行列Ａと、前記映画ｊが、前記クラスタｒに所属することを表す要素ｂjrを持つＪ×Ｒの映画特徴行列Ｂと、前記タグ情報ｋが、前記クラスタｒに所属することを表す要素ｃkrを持つＫ×Ｒのタグ特徴行列Ｃと、に分解するデータ解析装置であって、
前記ユーザ映画行列Ｘ、前記タグ映画行列Ｙ、前記ユーザ特徴行列Ａ、前記映画特徴行列Ｂ、及び前記タグ特徴行列Ｃに基づいて、前記ユーザ映画行列Ｘと、前記ユーザ特徴行列Ａ及び前記映画特徴行列Ｂに基づいて推定されるユーザ映画行列＾Ｘとのユークリッド距離、並びに前記タグ映画行列Ｙと、前記映画特徴行列Ｂ及び前記タグ特徴行列Ｃに基づいて推定されるタグ映画行列＾Ｙとの一般化カルバックライブラーダイバージェンス距離の和で表わされる目的関数を最小化するように、前記ユーザ特徴行列Ａ、前記映画特徴行列Ｂ、及び前記タグ特徴行列Ｃを推定する特徴行列推定部と、
予め定められた反復終了条件を満足するまで、前記特徴行列推定部による推定を繰り返す反復判定部と、
を含み、
前記特徴行列推定部は、前記ユーザ特徴行列Ａ、及び前記映画特徴行列Ｂに基づいて、補助変数を利用して定義される前記目的関数の上界を最小化する補助関数法により前記ユーザ特徴行列Ａの各要素ａｉｒを更新し、
前記ユーザ映画行列Ｘ、前記タグ映画行列Ｙ、前記ユーザ特徴行列Ａ、前記映画特徴行列Ｂ、及び前記タグ特徴行列Ｃに基づいて、前記補助関数法により前記映画特徴行列Ｂの各要素ｂｊｒを更新し、
前記タグ映画行列Ｙ、前記映画特徴行列Ｂ、及び前記タグ特徴行列Ｃに基づいて、前記補助関数法により前記タグ特徴行列Ｃの各要素ｃｋｒを更新する、データ解析装置。
【請求項８】
ユーザｉ（１≦ｉ≦Ｉ，Ｉは１以上の整数）による映画ｊ（１≦ｊ≦Ｊ，Ｊは１以上の整数）のレーティングを表すスコアとなる要素ｘijを持つＩ×Ｊのユーザ映画行列Ｘ、及びタグ情報ｋ（１≦ｋ≦Ｋ，Ｋは１以上の整数）が前記映画ｊに付与された数を表す計数データとなる要素ｙkjを持つＫ×Ｊのタグ映画行列Ｙを、前記ユーザｉが、クラスタｒ（１≦ｒ≦Ｒ，Ｒは１以上の整数）に所属することを表す要素ａｉｒを持つＩ×Ｒのユーザ特徴行列Ａと、前記映画ｊが、前記クラスタｒに所属することを表す要素ｂjrを持つＪ×Ｒの映画特徴行列Ｂと、前記タグ情報ｋが、前記クラスタｒに所属することを表す要素ｃkrを持つＫ×Ｒのタグ特徴行列Ｃと、に分解するデータ解析装置であって、
前記ユーザ映画行列Ｘ、前記タグ映画行列Ｙ、前記ユーザ特徴行列Ａ、前記映画特徴行列Ｂ、及び前記タグ特徴行列Ｃに基づいて、前記ユーザ映画行列Ｘと、前記ユーザ特徴行列Ａ及び前記映画特徴行列Ｂに基づいて推定されるユーザ映画行列＾Ｘとのユークリッド距離、並びに前記タグ映画行列Ｙと、前記映画特徴行列Ｂ及び前記タグ特徴行列Ｃに基づいて推定されるタグ映画行列＾Ｙとの一般化カルバックライブラーダイバージェンス距離の和で表わされる目的関数を最小化するように、前記ユーザ特徴行列Ａ、前記映画特徴行列Ｂ、及び前記タグ特徴行列Ｃを推定する特徴行列推定部と、
予め定められた反復終了条件を満足するまで、前記特徴行列推定部による推定を繰り返す反復判定部と、
を含み、
前記特徴行列推定部は、以下の式に従い前記ユーザ特徴行列Ａの各要素ａｉｒを更新し、
【数７】
0006383688.tif 000051
以下の式に従い、前記映画特徴行列Ｂの要素ｂjrを更新し、
【数８】
0006383688.tif 000052
以下の式に従い、前記タグ特徴行列Ｃの要素ｃkrを更新するデータ解析装置。
【数９】
0006383688.tif 000053
【請求項９】
コンピュータを、請求項１、請求項２、請求項３、請求項７、又は請求項８項記載のデータ解析装置を構成する各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ解析装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
ＰＯＳ（Point of Sales）データに代表される購買履歴などの構造化されたデータのみならず、テキストデータや画像データなどの構造化されていないデータの多くも前処理によって行列形式により表現できることが知られている。これら行列表現されたデータ中に存在するクラスタを発見するための手法として、非負値行列分解（Non-negative Matrix Factorization, NMF）と呼ばれる手法の有用性がこれまで示されている（例えば非特許文献１を参照）。
【０００３】
NMFの適用により入力となる行列データはそれより低次のランクの行列の積に分解される。この各低次行列がそれぞれ各行、各列に対応する事物のクラスタへの寄与度を表しており, クラスタ発見が可能となる。したがって例えば映画のレーティング履歴の適用によっておすすめ映画リストを作成したり、ニュース記事文書集合に対する適用から記事の自動分類を行うなどが可能となる。上記のようなNMFの適用例を図１２に示す。ユーザ映画行列Ｘ＝｛ｘij｝は行列中の第i行目に対応するユーザの第j列目に対応する映画に対するレーティング（評価値）がｘijの値となるI行J列の行列である。ここでレーティング（評価値）の取りえる値は有限の範囲の正の値であり、例えば０以上５以下の値などである。レーティングの値が大きいほどその映画が高い評価をされたことを表す。したがって, ユーザ映画行列Ｘは行と列がそれぞれ特定のユーザと映画に対応していることになる。このユーザ映画行列にNMFを適用することで、
【０００４】
【数１】
0006383688.tif 000002
【０００５】
となるI行R列のユーザ特徴行列Ａ＝｛ａｉｒ｝とJ行R列の映画特徴行列Ｂ＝｛ｂjr｝が求まる。ただし記号
【０００６】
【数２】
0006383688.tif 000003
【０００７】
で両者が類似していることを表し、記号の上付きの記号Tは行列の転置を表す。記号
【０００８】
【数３】
0006383688.tif 000004
【０００９】
の意味については後述する。NMFの結果から、ユーザ特徴行列Aのクラスタ１に対応する列に着目すると、ユーザ１とユーザ２、ユーザ３に対応する1行目と2行目、3行目の値が０より大きい値となっていることが分かる。これはユーザ１とユーザ２、ユーザ３がクラスタ１に所属することを示している。また映画特徴行列Bのクラスタ１に対応する行に着目すると、1列目の映画１と2列目の映画２、3列目の映画３という映画に該当する列の値が２列目のそれより大きい値となっていることが分かる。これは映画１と映画２、映画３が同じユーザに良い評価をされやすいというクラスタ１のもつ特徴を表しているといえる。したがって、この映画１と映画２、映画３という映画をまとめてクラスタ１の映画特徴と呼ぶ。同様に、ユーザ特徴行列Aのクラスタ１に所属するユーザのことをクラスタ１のユーザ特徴と呼ぶ。クラスタ１の映画特徴とユーザ特徴をまとめてクラスタ１の特徴と呼ぶこととする。このようにNMFの適用によって得られたユーザ特徴行列Aと映画特徴行列Bをもとに図１３のようなクラスタ抽出が可能となる。
【００１０】
なお、クラスタの総数に相当する映画特徴行列のランク数は、解析する前に予め決定しておくものとする。一般的にランク数は、ユーザ数、総映画数よりは十分小さな値を用いる。
【００１１】
また、NMFはクラスタ抽出だけでなく欠損値の補完にも利用できることが知られている。その例を図１４に示す。図１４のユーザ映画行列Ｘ＝｛ｘij｝の定義は図１２と同じである。ただし、図１２のユーザ映画行列との違いはユーザ１の映画３のレーティングを表す要素が欠損（×印で表示した要素で、データが存在しない要素）していることにある。このような場合であってもNMFは他の観測されている値をもとにユーザ特徴行列Aと映画特徴行列Bを求めることができる。ここで求めたユーザ特徴行列Aと映画特徴行列Bを利用することで元のユーザ映画行列Ｘ＝｛ｘij｝の欠損成分を補完したユーザ映画行列の推定値
【００１２】
【数４】
0006383688.tif 000005
【００１３】
が求まり、欠損していた要素の値も求めることができる。
【００１４】
ここで、記号
【００１５】
【数５】
0006383688.tif 000006
【００１６】
で表現した類似の尺度の意味について補足する。非特許文献１にも記述されているように、行列の類似の尺度には、ユークリッド距離ＤEUに基づくものや一般化カルバックライブラーダイバージェンス(ＫＬ距離)ＤKLにより定義される距離尺度などが用いられ、採用した尺度のもとで値が小さいほど両者が類似していることを表す。したがってNMFは採用した尺度を最小化する行列A, Bを求める手法として定式化される。
【００１７】
なお、行列Ｘと＾Ｘのユークリッド距離ＤEUとＫＬ距離ＤKLはそれぞれ次の（１）式、（２）式で定義される。
【００１８】
【数６】
0006383688.tif 000007
【００１９】
どの距離を利用するかは、データが持つ性質を考慮して決定される。例えばこのようなNMFを適用して分析を行う事象の要素として、前述した映画のレーティングのような実数値（スコア）を持つ行列の場合には、ユークリッド距離が利用されている。また、行列の要素が文書中に含まれる単語の出現数やユーザの購入した商品の購入数のような離散値をもつ場合には、ＫＬ距離が利用されている。この使い分けは次のような知見に基づく。ユークリッド距離が採用される時は行列の各要素ｘijは平均
【００２０】
【数７】
0006383688.tif 000008
【００２１】
の正規分布
【００２２】
【数８】
0006383688.tif 000009
【００２３】
に従っていると仮定していることに相当し、KL距離が採用される時は行列の各要素ｘijはパラメタ
【００２４】
【数９】
0006383688.tif 000010
【００２５】
のポアソン分布ＰＯ（ｘij｜λ）（平均^ｘij、分散^ｘij）に従っていると仮定していることに相当する。実数値の従う確率分布として正規分布、頻度を表す離散値の従う確率分布としてポアソン分布が有用であることは広く認識された事実である。
【先行技術文献】
【非特許文献】
【００２６】
【非特許文献１】澤田宏、「非負値行列因子分解ＮＭＦの基礎とデータ／信号解析への応用」、電子情報通信学会誌、2012、Vol. 95, No. 9, p.829-833
【非特許文献２】K．Takeuchi、K．Ishiguro、A．Kimura、and H．Sawada、「Non-negative Multiple Matrix Factorization」、Proceedings of 23rd International Joint Conference on Artificial Intelligence (IJCAI2013)、2013、p.1713-1720
【発明の概要】
【発明が解決しようとする課題】
【００２７】
本発明で考える問題は、単一の行列を解析する非特許文献１の技術では行うことができない、複数の行列を解析する、という問題である。先ほどと同じくユーザ映画行列をXと書き、さらにタグ映画行列をYという２つの行列からクラスタ抽出を行うという問題である。なお、タグ映画行列Yは要素ｙkjが映画jに付与されたタグkの数を表す行列である。各タグはその映画の情報(監督、出演者)や、その映画に関する感想を表す単語などであり、同一タグでも複数回付与されうるものである。
【００２８】
複数の行列を解析する技術としては、上記の非特許文献２の方法があげられる。類似の尺度としてKL距離を利用し、要素が離散の頻度の値をとる行列Ｘと行列Ｙを図１に示すように
【００２９】
【数１０】
0006383688.tif 000011
【００３０】
という行列分解と、
【００３１】
【数１１】
0006383688.tif 000012
【００３２】
という行列分解を行うことで図２に示すようにクラスタ抽出結果を得ることが可能である（Ｃ＝｛ｃkr｝はK行R列のカテゴリ特徴行列を表す）。しかしながら、この非特許文献２は行列X、Yの双方が離散の頻度の値であることから、X、Yの両方の行列分解を行う際の類似の尺度にKL距離を利用している。すなわち、
【００３３】
【数１２】
0006383688.tif 000013
【００３４】
を最小化する行列A, B, Cを求めている(ただし、行列Yの推定値を
【００３５】
【数１３】
0006383688.tif 000014
【００３６】
と書いた)。本発明ではXはスコアの一例であるレーティングを表すユーザ映画行列、Yは離散値のタグ付与数を表すタグ映画行列であるから、Xの類似の尺度にKL距離を利用することは望ましくない。なお、スコアは、「レーティングやテストの点数のような範囲の定まった値」や「同難易度のテストを複数回受験した際の平均点など、一般に正規分布に従っていると仮定される値」である。
【００３７】
望ましくない理由をさらに詳しく説明する。図３にそれぞれパラメタλ＝１，３，５の時のポアソン分布の確率密度関数と平均μ＝２，４標準偏差σ＝０．５の正規分布の確率密度関数を示す。ポアソン分布はその性質から平均の値と分散の値が等しくなり、λ＝５のように平均の値が大きい場合、ポアソン分布から得られる乱数のとりうる値の範囲は広く、２や３の値をとる確率も比較的大きい値となっている。これはつまりレーティングの値である行列ｘijのとる値をポアソン分布によってモデリングすると、同じく図３中の平均μ＝４の正規分布のように安定して平均周辺の値をとるようにモデリングはできず、平均λの値が大きいほど実際に観測されるレーティングの値はばらつきやすいという直観に反したモデリングを行っていることになる。したがってXの類似の尺度にポアソン分布でモデリングしていることに相当するKL距離を利用することは望ましくない。
【００３８】
本発明は、上記の点に鑑みなされたもので、複数の行列データのそれぞれの行列において各要素の性質（離散値／連続値の違い、分布傾向の違い等）が異なることを認めたうえで、それぞれの行列のデータに適した距離尺度を利用して複数の行列の同時分解を行うことで、より正確な欠損値予測やクラスタ抽出が可能なデータ解析装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００３９】
上記の目的を達成するために第１の発明に係るデータ解析装置は、第１のオブジェクトｉ（１≦ｉ≦Ｉ，Ｉは１以上の整数）と第２のオブジェクトｊ（１≦ｊ≦Ｊ，Ｊは１以上の整数）との関係の特徴量を表すスコアとなる要素ｘｉｊを持つＩ×Ｊのオブジェクトスコア情報行列Ｘ、及び第３のオブジェクトｋ（１≦ｋ≦Ｋ，Ｋは１以上の整数）と前記第２のオブジェクトｊとの関係の特徴量を表す計数データとなる要素ｙkjを持つＫ×Ｊのオブジェクト計数情報行列Ｙを、前記第１のオブジェクトｉが、クラスタｒ（１≦ｒ≦Ｒ，Ｒは１以上の整数）に所属することを表す要素ａｉｒを持つＩ×Ｒの第１のオブジェクト特徴行列Ａと、前記第２のオブジェクトｊが、前記クラスタｒに所属することを表す要素ｂjrを持つＪ×Ｒの第２のオブジェクト特徴行列Ｂと、前記第３のオブジェクトｋが、前記クラスタｒに所属することを表す要素ｃkrを持つＫ×Ｒの第３のオブジェクト特徴行列Ｃと、に分解するデータ解析装置であって、前記オブジェクトスコア情報行列Ｘ、前記オブジェクト計数情報行列Ｙ、前記第１のオブジェクト特徴行列Ａ、前記第２のオブジェクト特徴行列Ｂ、及び前記第３のオブジェクト特徴行列Ｃに基づいて、前記オブジェクトスコア情報行列Ｘと、前記第１のオブジェクト特徴行列Ａ及び前記第２のオブジェクト特徴行列Ｂに基づいて推定されるオブジェクトスコア情報行列＾Ｘとのユークリッド距離、並びに前記オブジェクト計数情報行列Ｙと、前記第２のオブジェクト特徴行列Ｂ及び前記第３のオブジェクト特徴行列Ｃに基づいて推定されるオブジェクト計数情報行列＾Ｙとの一般化カルバックライブラーダイバージェンス距離の和で表わされる目的関数を最小化するように、前記第１のオブジェクト特徴行列Ａ、前記第２のオブジェクト特徴行列Ｂ、及び前記第３のオブジェクト特徴行列Ｃを推定する特徴行列推定部と、予め定められた反復終了条件を満足するまで、前記特徴行列推定部による推定を繰り返す反復判定部と、を含んで構成されている。
【００４０】
第２の発明に係るデータ解析方法は、特徴行列推定部及び反復判定部を含み、第１のオブジェクトｉ（１≦ｉ≦Ｉ，Ｉは１以上の整数）と第２のオブジェクトｊ（１≦ｊ≦Ｊ，Ｊは１以上の整数）との関係の特徴量を表すスコアとなる要素ｘijを持つＩ×Ｊのオブジェクトスコア情報行列Ｘ、及び第３のオブジェクトｋ（１≦ｋ≦Ｋ，Ｋは１以上の整数）と前記第２のオブジェクトｊとの関係の特徴量を表す計数データとなる要素ｙkjを持つＫ×Ｊのオブジェクト計数情報行列Ｙを、前記第１のオブジェクトｉが、クラスタｒ（１≦ｒ≦Ｒ，Ｒは１以上の整数）に所属することを表す要素ａｉｒを持つＩ×Ｒの第１のオブジェクト特徴行列Ａと、前記第２のオブジェクトｊが、前記クラスタｒに所属することを表す要素ｂjrを持つＪ×Ｒの第２のオブジェクト特徴行列Ｂと、前記第３のオブジェクトｋが、前記クラスタｒに所属することを表す要素ｃkrを持つＫ×Ｒの第３のオブジェクト特徴行列Ｃと、に分解するデータ解析装置におけるデータ解析方法であって、前記特徴行列推定部が、前記オブジェクトスコア情報行列Ｘ、前記オブジェクト計数情報行列Ｙ、前記第１のオブジェクト特徴行列Ａ、前記第２のオブジェクト特徴行列Ｂ、及び前記第３のオブジェクト特徴行列Ｃに基づいて、前記オブジェクトスコア情報行列Ｘと、前記第１のオブジェクト特徴行列Ａ及び前記第２のオブジェクト特徴行列Ｂに基づいて推定されるオブジェクトスコア情報行列＾Ｘとのユークリッド距離、並びに前記オブジェクト計数情報行列Ｙと、前記第２のオブジェクト特徴行列Ｂ及び前記第３のオブジェクト特徴行列Ｃに基づいて推定されるオブジェクト計数情報行列＾Ｙとの一般化カルバックライブラーダイバージェンス距離の和で表わされる目的関数を最小化するように、前記第１のオブジェクト特徴行列Ａ、前記第２のオブジェクト特徴行列Ｂ、及び前記第３のオブジェクト特徴行列Ｃを推定し、前記反復判定部が、予め定められた反復終了条件を満足するまで、前記特徴行列推定部による推定を繰り返す。
【００４１】
第１の発明及び第２の発明によれば、オブジェクトスコア情報行列Ｘの推定値とのユークリッド距離、並びにオブジェクト計数情報行列Ｙの推定値との一般化カルバックライブラーダイバージェンス距離の和で表わされる目的関数を最小化するように、第１のオブジェクト特徴行列Ａ、第２のオブジェクト特徴行列Ｂ、及び第３のオブジェクト特徴行列Ｃを推定することにより、複数の行列データのそれぞれの行列において各要素の性質（離散値／連続値の違い、分布傾向の違い等）が異なることを認めたうえで、それぞれの行列のデータに適した距離尺度を利用して複数の行列の同時分解を行うことで、より正確な欠損値予測やクラスタ抽出が可能となる。
【００４２】
第３の発明に係るデータ解析装置は、ユーザｉ（１≦ｉ≦Ｉ，Ｉは１以上の整数）による映画ｊ（１≦ｊ≦Ｊ，Ｊは１以上の整数）のレーティングを表すスコアとなる要素ｘijを持つＩ×Ｊのユーザ映画行列Ｘ、及びタグ情報ｋ（１≦ｋ≦Ｋ，Ｋは１以上の整数）が前記映画ｊに付与された数を表す計数データとなる要素ｙkjを持つＫ×Ｊのタグ映画行列Ｙを、前記ユーザｉが、クラスタｒ（１≦ｒ≦Ｒ，Ｒは１以上の整数）に所属することを表す要素ａｉｒを持つＩ×Ｒのユーザ特徴行列Ａと、前記映画ｊが、前記クラスタｒに所属することを表す要素ｂjrを持つＪ×Ｒの映画特徴行列Ｂと、前記タグ情報ｋが、前記クラスタｒに所属することを表す要素ｃkrを持つＫ×Ｒのタグ特徴行列Ｃと、に分解するデータ解析装置であって、前記ユーザ映画行列Ｘ、前記タグ映画行列Ｙ、前記ユーザ特徴行列Ａ、前記映画特徴行列Ｂ、及び前記タグ特徴行列Ｃに基づいて、前記ユーザ映画行列Ｘと、前記ユーザ特徴行列Ａ及び前記映画特徴行列Ｂに基づいて推定されるユーザ映画行列＾Ｘとのユークリッド距離、並びに前記タグ映画行列Ｙと、前記映画特徴行列Ｂ及び前記タグ特徴行列Ｃに基づいて推定されるタグ映画行列＾Ｙとの一般化カルバックライブラーダイバージェンス距離の和で表わされる目的関数を最小化するように、前記ユーザ特徴行列Ａ、前記映画特徴行列Ｂ、及び前記タグ特徴行列Ｃを推定する特徴行列推定部と、予め定められた反復終了条件を満足するまで、前記特徴行列推定部による推定を繰り返す反復判定部と、を含んで構成されている。
【００４３】
第３の発明によれば、スコアとなる要素を持つユーザ映画行列Ｘの推定値とのユークリッド距離、並びに計数データとなる要素を持つタグ映画行列Ｙの推定値との一般化カルバックライブラーダイバージェンス距離の和で表わされる目的関数を最小化するように、ユーザ特徴行列Ａ、映画特徴行列Ｂ、及びタグ特徴行列Ｃを推定することにより、複数の行列データのそれぞれの行列において各要素の性質（離散値／連続値の違い、分布傾向の違い等）が異なることを認めたうえで、それぞれの行列のデータに適した距離尺度を利用して複数の行列の同時分解を行うことで、より正確な欠損値予測やクラスタ抽出が可能となる。
【００４４】
第４の発明に係るプログラムは、コンピュータを、上記のデータ解析装置を構成する各部として機能させるためのプログラムである。
【発明の効果】
【００４５】
以上説明したように、本発明のデータ解析装置、方法、及びプログラムによれば、複数の行列データのそれぞれの行列において各要素の性質（離散値／連続値の違い、分布傾向の違い等）が異なることを認めたうえで、それぞれの行列のデータに適した距離尺度を利用して複数の行列の同時分解を行うことで、より正確な欠損値予測やクラスタ抽出が可能となる、という効果が得られる。
【図面の簡単な説明】
【００４６】
【図１】行列分解の例を示す概略図である。
【図２】行列分解を適用して得られるクラスタリング結果の例を示す図である。
【図３】ポアソン分布と正規分布の確率密度関数である。
【図４】本発明の一実施の形態におけるプログラムの概要動作のフローチャートである。
【図５】本発明の一実施の形態におけるプログラムの構成例である。
【図６】本発明の一実施の形態におけるユーザ映画情報テーブルの例である。
【図７】本発明の一実施の形態におけるタグ映画情報テーブルの例である。
【図８】本発明の一実施の形態におけるユーザ特徴テーブルの例である。
【図９】本発明の一実施の形態における映画特徴テーブルの例である。
【図１０】本発明の一実施の形態におけるタグ特徴テーブルの例である。
【図１１】本発明の一実施の形態におけるユーザ特徴テーブル、映画特徴テーブル、タグ特徴テーブル更新時のフローチャートである。
【図１２】非負値行列分解(NMF)の適用例である。
【図１３】非負値行列分解(NMF)を適用して得られるクラスタリング結果の例である。
【図１４】非負値行列分解(NMF)を適用することによる欠損値補完の例である。
【発明を実施するための形態】
【００４７】
以下、図面を参照して本発明の実施の形態を詳細に説明する。なお、本実施の形態では、非負値行列分解において、ユーザ映画行列及びタグ映画行列から各特徴行列を得ることができるデータ解析装置に、本発明を適用した場合を例に説明する。
【００４８】
＜本発明の実施の形態の概要＞
【００４９】
本発明の実施の形態では、上記の非特許文献２の方法と同じく
【００５０】
【数１４】
0006383688.tif 000015
【００５１】
という行列分解形を考える。
【００５２】
ただし、本発明の実施の形態ではそれぞれの類似の尺度にユークリッド距離とKL距離という異なる尺度を利用し、
【００５３】
【数１５】
0006383688.tif 000016
【００５４】
を最小化する行列A, B, Cを求める。これによって、より正確な欠損値予測やクラスタ抽出を行うことが可能となり、図２に示すようなクラスタ結果を得ることが可能となる。
【００５５】
まず、本発明の概要動作を説明する。
【００５６】
図４は、本発明の一実施の形態におけるデータ解析装置の概要動作のフローチャートである。
【００５７】
ステップ１）  ユーザ映画行列、タグ映画行列を入力する
ステップ２）  各特徴行列を推定する
ステップ３）  各特徴行列を出力する
【００５８】
＜データ解析装置１００の構成＞
図５に示すように、本発明の実施の形態に係るデータ解析装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、後述するデータ解析処理ルーチンを実行するためのプログラムを記憶したＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）とを備えたコンピュータで構成され、機能的には次に示すように構成されている。データ解析装置１００は、ユーザ映画情報処理部１０、タグ映画情報処理部２０、特徴行列推定部３０、反復判定部３２、特徴行列処理部４０、記憶部５０と、入出力部６０と、を備えている。
【００５９】
入出力部６０は、外部装置２００から出力されたユーザ映画行列及びタグ映画行列を受け付ける。また、入出力部６０は、特徴行列処理部４０による特徴行列の推定結果を、外部装置２００へ出力する。
【００６０】
記憶部５０は、ユーザ映画情報テーブル５１、タグ映画情報テーブル５２、ユーザ特徴テーブル５３、映画特徴テーブル５４、タグ特徴テーブル５５を有する。
【００６１】
以下に各テーブルについて説明する。なお、テーブル形式のデータは行列形式にて表現できることから、以下では、各テーブルと各特徴行列を同一視し、区別せずに用いる。
【００６２】
＜ユーザ映画情報テーブル５１＞
ユーザ映画情報テーブル５１は、図６に示すように、ユーザIDフィールド、映画IDフィールド、レーティングフィールドを有する。ユーザIDフィールドは、ユーザ映画情報処理部１０により追加されたユーザを特定する識別子が設定される。映画IDフィールドは、ユーザ映画情報処理部１０により追加された映画を特定する識別子が設定される。レーティングフィールドは、ユーザ映画情報処理部１０により当該映画の当該ユーザのつけたレーティングを表すスコアである値が設定される。なお、レーティングの値には０または有限の範囲の正の値を設定できるが、負の数を設定することはできない。
【００６３】
＜タグ映画情報テーブル５２＞
タグ映画情報テーブル５２は、図７に示すように、タグIDフィールド、映画IDフィールド、付与数数フィールドを有する。タグIDフィールドは、タグ映画情報処理部２０により追加されたタグを特定する識別子が設定される。映画IDフィールドは、タグ映画情報処理部２０により追加された映画を特定する識別子が設定される。付与数フィールドは、タグ映画情報処理部２０により当該タグの当該映画における付与数が設定される。なお、付与数の値には離散値として０または正の整数値を設定できるが、負の数を設定することはできない。
【００６４】
＜ユーザ特徴テーブル５３＞
ユーザ特徴テーブル５３は、図８に示すように、ユーザIDフィールドと、クラスタIDフィールドと、ユーザ特徴値フィールドを有する。ユーザIDフィールドには特徴行列推定部３０によりユーザを特定する識別子が設定される。クラスタIDフィールドには、特徴行列推定部３０によりクラスタを特定する識別子が設定される。ユーザ特徴値フィールドには、特徴行列推定部３０により算出された当該ユーザの当該クラスタに所属することを表す特徴値が設定される。
【００６５】
＜映画特徴テーブル５４＞
映画特徴テーブル５４は、図９に示すように、映画IDフィールドと、クラスタIDフィールドと、映画特徴値フィールドを有する。映画IDフィールドには特徴行列推定部３０により商品を特定する識別子が設定される。クラスタIDフィールドには、特徴行列推定部３０によりクラスタを特定する識別子が設定される。映画特徴値フィールドには、特徴行列推定部３０により算出された当該映画の当該クラスタに所属することを表す特徴値が設定される。
【００６６】
＜タグ特徴テーブル５５＞
タグ特徴テーブル５５は、図１０に示すように、タグIDフィールドと、クラスタIDフィールドと、タグ特徴値フィールドを有する。タグIDフィールドには特徴行列推定部３０によりタグを特定する識別子が設定される。クラスタIDフィールドには、特徴行列推定部３０によりクラスタを特定する識別子が設定される。タグ特徴値フィールドには、特徴行列推定部３０により算出された当該タグの当該クラスタに所属することを表す特徴値が設定される。
【００６７】
上記の構成における動作を説明する。
【００６８】
本実施の形態では、ユーザ映画行列、タグ映画行列を入力として特徴行列を推定し、特徴行列を出力することを考える。以下に具体的な動作を説明する。
【００６９】
＜ユーザ映画情報処理部１０＞
ユーザ映画情報処理部１０は、入力されたユーザ映画行列に基づき、ユーザID毎および映画ID毎のレーティングをユーザ映画情報テーブル５１に格納する。
【００７０】
また、ユーザ映画情報テーブル５１の更新時の処理を説明する。
【００７１】
ユーザ映画情報処理部１０によるユーザ映画情報更新のタイミングは、例えば、システム管理者が外部装置２００から供給されるデータをもとに手動で管理できるようにしてもよいし、新たなレーティングが発生した場合に外部装置２００が自動的に処理を起動するようにしてもよい。
【００７２】
ユーザ映画情報テーブル５１の更新時に、ユーザ映画情報処理部１０は、ユーザ映画情報テーブル５１に、追加されたユーザ映画、レーティングに応じて、ユーザIDフィールド、映画IDフィールド、レーティングフィールドの値を設定した行を挿入する。
【００７３】
＜タグ映画情報処理部２０＞
タグ映画情報処理部２０は、入力されたタグ映画行列に基づき、ユーザID毎およびカテゴリID毎のタグ付与数をタグ映画情報テーブル５２に格納する。
【００７４】
また、タグ映画情報処理部２０によるタグ情報更新時の処理について説明する。
【００７５】
タグ映画情報処理部２０によるタグ映画情報更新のタイミングは、例えば外部装置２００から供給されるPOSデータをもとにシステム管理者が手動で管理できるようにしてもよいし、新たなレーティングが発生した場合に外部装置２００から自動的に処理を起動するようにしてもよい。
【００７６】
タグ情報更新時に、タグ映画情報処理部２０は、タグ映画情報テーブル５２に、追加されたタグ、映画、付与数に応じて、ユーザIDフィールド、タグIDフィールド、付与数フィールドの値を設定した行を挿入する。
【００７７】
＜特徴行列推定部３０、反復判定部３２＞
特徴行列推定部３０は、後述する方法で特徴行列を推定し、記憶部５０のユーザ特徴テーブル５３、映画特徴テーブル５４、タグ特徴テーブル５５に格納する。
【００７８】
反復判定部３２は、予め定められた反復終了条件を満足するまで、特徴行列推定部３０による更新処理を繰り返す。
【００７９】
図１１に、特徴行列推定部３０及び反復判定部３２による特徴行列推定時の更新フローチャートを示す。
【００８０】
ここで、ユーザ映画情報テーブル５１中に存在する全データを
【００８１】
【数１６】
0006383688.tif 000017
【００８２】
と書き、ユーザ映画行列Ｘを表す。タグ映画情報テーブル５２中に存在する全データを
【００８３】
【数１７】
0006383688.tif 000018
【００８４】
と書き、タグ映画行列Ｙを表す。ユーザ特徴テーブル５３に格納されているユーザ特徴行列Ａ、映画特徴テーブル５４に格納されている映画特徴行列Ｂ、タグ特徴テーブル５５に格納されているタグ特徴行列Ｃをそれぞれ
【００８５】
【数１８】
0006383688.tif 000019
【００８６】
と書く。Iが全ユーザ数、Jが全商品数、Kが全タグ数を表す。iがユーザを特定する識別子、jが商品を特定する識別子、kがタグを特定する識別子、rがクラスタを特定する識別子に対応する。
【００８７】
まず、ステップＳ４１０において、ユーザ特徴テーブル５３に格納されているユーザ特徴行列Ａ、映画特徴テーブル５４に格納されている映画特徴行列Ｂ、及びタグ特徴テーブル５５に格納されているタグ特徴行列Ｃをそれぞれ初期化する。同様に終了条件の閾値ε、最大繰り返し回数を設定する。
【００８８】
そして、ステップＳ４２０において、反復終了条件に用いる変数として特徴更新の最大変化幅を示す変数δを初期化する。
【００８９】
ステップＳ４３０において、特徴行列推定部３０は、ユーザ映画情報テーブル５１に格納されたユーザ映画行列Ｘ、ユーザ特徴テーブル５３に格納されたユーザ特徴行列Ａ、及び映画特徴テーブル５４に格納された映画特徴行列Ｂに基づいて、以下の（３）式に従いユーザ特徴行列Ａの各要素ａｉｒを更新し、ユーザ特徴テーブル５３に格納する。
【００９０】
【数１９】
0006383688.tif 000020
【００９１】
＾ｘijはユーザ特徴行列A、映画特徴行列Ｂによるｘijの推定値と見なせる。
【００９２】
その後、ユーザ特徴テーブル５３に格納されていた更新前のユーザ特徴行列Ａの要素の値と更新後のユーザ特徴行列Ａの要素の値の差の絶対値の最大値
【００９３】
【数２０】
0006383688.tif 000021
【００９４】
がδより大きければ、
【００９５】
【数２１】
0006383688.tif 000022
【００９６】
と更新する。なお記号「←」は右辺の計算結果を左辺の変数に代入する処理を意味する。なお、代入処理前のユーザ特徴行列Ａの要素の値を
【００９７】
【数２２】
0006383688.tif 000023
【００９８】
、代入処理後の値を
【００９９】
【数２３】
0006383688.tif 000024
【０１００】
として記述した。
【０１０１】
ステップＳ４４０では、特徴行列推定部３０は、ユーザ映画情報テーブル５１に格納されたユーザ映画行列Ｘ、タグ映画情報テーブル５２に格納されたタグ映画行列Ｙ、ユーザ特徴テーブル５３に格納されたユーザ特徴行列Ａ、映画特徴テーブル５４に格納された映画特徴行列Ｂ、及びタグ特徴テーブル５５に格納されたタグ特徴行列Ｃに基づいて、以下の（４）式〜（６）式に従い、映画特徴行列Ｂの要素ｂjrを更新し、映画特徴テーブル５４に格納する。
【０１０２】
【数２４】
0006383688.tif 000025
【０１０３】
＾ｙkjは映画特徴行列B、タグ特徴行列Ｃによるｙkjの推定値であると見なせる。
【０１０４】
その後、映画特徴テーブル５４に格納されていた更新前の映画特徴行列Ｂの要素の値と更新後の映画特徴行列Ｂの要素の値の差の絶対値の最大値
【０１０５】
【数２５】
0006383688.tif 000026
【０１０６】
がδより大きければ、
【０１０７】
【数２６】
0006383688.tif 000027
【０１０８】
と更新する。代入処理前の映画特徴行列Ｂの要素の値を
【０１０９】
【数２７】
0006383688.tif 000028
【０１１０】
、代入処理後の値を
【０１１１】
【数２８】
0006383688.tif 000029
【０１１２】
として記述した。
【０１１３】
ステップＳ４５０において、特徴行列推定部３０は、タグ映画情報テーブル５２に格納されたタグ映画行列Ｙ、映画特徴テーブル５４に格納された映画特徴行列Ｂ、及びタグ特徴テーブル５５に格納されたタグ特徴行列Ｃに基づいて、以下の（７）式に従い、タグ特徴行列Ｃの要素ｃkrを更新し、タグ特徴テーブル５５に格納する。
【０１１４】
【数２９】
0006383688.tif 000030
【０１１５】
その後、タグ特徴テーブル５５に格納されていた更新前のタグ特徴行列Ｃの要素の値と更新後のタグ特徴行列Ｃの要素の値の差の絶対値の最大値
【０１１６】
【数３０】
0006383688.tif 000031
【０１１７】
がδより大きければ、
【０１１８】
【数３１】
0006383688.tif 000032
【０１１９】
と更新する。代入処理前のタグ特徴行列Ｃの要素の値を
【０１２０】
【数３２】
0006383688.tif 000033
【０１２１】
、代入処理後の値を
【０１２２】
【数３３】
0006383688.tif 000034
【０１２３】
として記述した。
【０１２４】
ステップＳ４６０において、反復判定部３２は、計算繰り返し回数を更新する。
【０１２５】
ステップＳ４７０において、反復判定部３２は、反復終了条件を満足するか否かを判定する。本実施の形態では、計算繰り返し回数があらかじめ定めた最大繰り返し数を超えるか、特徴更新による最大変化幅を表すδがあらかじめ定めた閾値εより小さければ、反復終了条件を満たすと判断し、処理ルーチンを終了する。そうでなければδ←０と更新した後ステップＳ４２０に戻る。
【０１２６】
ここで、上記（１）式〜（４）式の各更新式は全てのユーザi、商品j, タグkについて＾ｘij＝ｘij、＾ｙkj＝ｙkjが成立する時、左辺と右辺が一致し、更新の最大変化幅を示す変数δの値が閾値ε以下となるため、更新が停止することが分かる。
【０１２７】
また、あるユーザiについて、全てのi,jについて＾ｘij＜ｘijであるときに上記（３）式による更新を行うと、右辺の分子が右辺の分母より大きくなるために、ａijを現在の値よりも大きくなるように更新することとなり、＾ｘijの値が大きくなるように特徴ａijを更新することになる。
【０１２８】
なお、上記（３）式〜（７）式の更新式は次に記すとおりに導出されている。
【０１２９】
本実施の形態における目的関数を（８）式に示す。
【０１３０】
【数３４】
0006383688.tif 000035
【０１３１】
上記（８）式に示す、ユーザ映画行列Ｘと、ユーザ特徴行列Ａ及び映画特徴行列Ｂに基づいて推定されるユーザ映画行列＾Ｘとのユークリッド距離、並びにタグ映画行列Ｙと、映画特徴行列Ｂ及びタグ特徴行列Ｃに基づいて推定されるタグ映画行列＾Ｙとの一般化カルバックライブラーダイバージェンス距離の和で表わされる目的関数を最小化する、ユーザ特徴行列Ａ、映画特徴行列Ｂ、及びタグ特徴行列Ｃの推定を目指して、上記（３）式〜（７）式の更新式は導出されている。
【０１３２】
導出には補助関数法と呼ばれる、新たに導入する補助変数を利用して定義できる上記（８）式の目的関数の上界を、最小化するパラメタ更新則を導くアプローチをとる。
【０１３３】
目的関数の第一項、第二項から推定する行列に依存しない項を除くと、第一項目は以下の（９）式、第二項目は（１０）式を用いて表現される。
【０１３４】
【数３５】
0006383688.tif 000036
【０１３５】
次に補助変数
【０１３６】
【数３６】
0006383688.tif 000037
【０１３７】
を導入する。ただし、補助変数は全てのi, j, r についてｓijr＞０、全てのi, jについて
【０１３８】
【数３７】
0006383688.tif 000038
【０１３９】
全てのk, j, r についてｔkjr＞０、全てのk, jについて
【０１４０】
【数３８】
0006383688.tif 000039
【０１４１】
を満たす。
【０１４２】
この補助変数を用いて上記（９）式、（１０）式の上界をそれぞれ導出すると(例えば非特許文献１を参照)、それぞれ以下の（１１）式、（１２）式のように表現される。
【０１４３】
【数３９】
0006383688.tif 000040
【０１４４】
上記（１１）式が上界であるのは明らかである。上記（１２）式の導出にはJensenの不等式を用いている。
【０１４５】
これらの和を
【０１４６】
【数４０】
0006383688.tif 000041
【０１４７】
と定義し、Lの最小化を各行列ごとに交互に行うことで更新則が求まる。明らかにユーザ特徴行列Ａの最適化を行う際には
【０１４８】
【数４１】
0006383688.tif 000042
【０１４９】
の最適化だけを考えればよく、またタグ特徴行列Ｃの最適化を行う際には
【０１５０】
【数４２】
0006383688.tif 000043
【０１５１】
の最適化だけを考えればよいことが分かる。したがって、ユーザ特徴行列Ａとタグ特徴行列Ｃの更新則はそれぞれユークリッド距離を用いたNMFとKL距離を用いたNMFによるパラメタ更新則と同じとなる。それゆえ本技術の既存技術との本質的な違いは映画特徴行列Ｂの更新則にある。Ｌを最小化する映画特徴行列Ｂを求めるために微分して０とおくと、（１３）式が求まる。
【０１５２】
【数４３】
0006383688.tif 000044
【０１５３】
これはｂjrに関する２次方程式であるから、２次方程式の解の公式を用いて上記（１３）式を満たすｂjrの値が求まる（ｂjr≧０であるから解が一意に定まる）。この結果より、上記（４）式、（５）式に示す更新則が求まる。
【０１５４】
＜特徴行列処理部４０＞
特徴行列処理部４０は、以下に説明するように、ユーザ特徴テーブル５４、映画特徴テーブル５４、タグ特徴テーブル５５を参照し、外部装置２００からのリクエストの引数に対応する特徴を出力する。
【０１５５】
出力処理は、例えば、外部装置２００から特徴出力のリクエストが入力された場合に実行すればよい。出力は全特徴を出力する場合には、ユーザ特徴テーブル５３、映画特徴テーブル５４、タグ特徴テーブル５５の全ての行を出力すればよいし、 クラスタの映画特徴のみを利用する場合には、例えばリクエストの引数をクラスタＩＤとして、映画特徴テーブル５４から、該クラスタＩＤを持つ行の映画IDフィールド、映画特徴値フィールドを出力した後、映画特徴値フィールドの値の大きい順に映画ID１０件を特定することでクラスタの映画特徴を求めることができる。
【０１５６】
以上説明したように、本発明の実施の形態に係るデータ解析装置によれば、スコアとなる要素を持つユーザ映画行列Ｘの推定値とのユークリッド距離、並びに計数データとなる要素を持つタグ映画行列Ｙの推定値との一般化ＫＬ距離の和で表わされる目的関数を最小化するように、ユーザ特徴行列Ａ、映画特徴行列Ｂ、及びタグ特徴行列Ｃを推定することにより、より正確な欠損値予測やクラスタ抽出が可能となる。
【０１５７】
また、非負値行列分解において、ユーザ映画行列Xの行列分解における尺度にはユークリッド距離、タグ映画行列Yの行列分解における尺度にはKL距離を用いて、それぞれの行列X, Yの分解に共通の映画特徴行列Bを用いて行列分解を行うことで、より正確な欠損値予測やクラスタ抽出が可能となる。すなわち、非負値行列分解において、複数の行列データのそれぞれの行列において各要素の性質（離散値／連続値の違い、分布傾向の違い等）が異なることを認めたうえで、それぞれの行列のデータに適した距離尺度を利用して複数の行列の同時分解を行うことで、より正確な欠損値予測やクラスタ抽出が可能となる。
【０１５８】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０１５９】
例えば、上記の実施の形態では、ユーザ映画行列とタグ映画行列を表現した行列からクラスタを抽出する例を示しているが、この例に限定されることはない。第１のオブジェクトをユーザ以外のものとし、第２のオブジェクトを映画以外のものとし、第３のオブジェクトをタグ以外のものとし、第１のオブジェクトｉ（１≦ｉ≦Ｉ，Ｉは１以上の整数）と第２のオブジェクトｊ（１≦ｊ≦Ｊ，Ｊは１以上の整数）との関係の特徴量を表すスコアとなる要素ｘijを持つＩ×Ｊのオブジェクトスコア情報行列Ｘ、及び第３のオブジェクトｋ（１≦ｋ≦Ｋ，Ｋは１以上の整数）と前記第２のオブジェクトｊとの関係の特徴量を表す計数データとなる要素ｙkjを持つＫ×Ｊのオブジェクト計数情報行列Ｙを、前記第１のオブジェクトｉが、クラスタｒ（１≦ｒ≦Ｒ，Ｒは１以上の整数）に所属することを表す要素ａｉｒを持つＩ×Ｒの第１のオブジェクト特徴行列Ａと、前記第２のオブジェクトｊが、前記クラスタｒに所属することを表す要素ｂjrを持つＪ×Ｒの第２のオブジェクト特徴行列Ｂと、前記第３のオブジェクトｋが、前記クラスタｒに所属することを表す要素ｃkrを持つＫ×Ｒの第３のオブジェクト特徴行列Ｃと、に分解するようにしてもよい。
【０１６０】
例えば、店舗と店舗の紹介文書中の単語を出現数を表現する行列、店舗のユーザによるレーティングを表現する行列の組など、ユーザ、店舗、タグのように１つ１つにID番号を付与して識別可能な項目ごとに、レーティング値のように項目間の関連性をスコアの要素で表す事物と、付与回数のように項目間の関連性を計数データで表す事物とが同時に存在し、それぞれの事物を行列形式としてデータで表現することが可能であるならば、あらゆるものが本装置を適用することによって共通の因子を抽出するクラスタ抽出が可能となる。
【０１６１】
また、入力となる行列が３つ以上存在する場合にも本発明による方法は適用可能である。
【０１６２】
また、上記の実施の形態で説明したデータ解析装置の各構成要素の動作をプログラムとして構築し、データ解析装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【符号の説明】
【０１６３】
１０   ユーザ映画情報処理部
２０   タグ映画情報処理部
３０   特徴行列推定部
３２   反復判定部
４０   特徴行列処理部
５０   記憶部
５１   ユーザ映画情報テーブル
５２   タグ映画情報テーブル
５３   ユーザ特徴テーブル
５４   ユーザ特徴テーブル
５４   映画特徴テーブル
５５   タグ特徴テーブル
６０   入出力部
１００ データ解析装置
２００ 外部装置
【図１】
0006383688.tif 000054
【図２】
0006383688.tif 000055
【図３】
0006383688.tif 000056
【図４】
0006383688.tif 000057
【図５】
0006383688.tif 000058
【図６】
0006383688.tif 000059
【図７】
0006383688.tif 000060
【図８】
0006383688.tif 000061
【図９】
0006383688.tif 000062
【図１０】
0006383688.tif 000063
【図１１】
0006383688.tif 000064
【図１２】
0006383688.tif 000065
【図１３】
0006383688.tif 000066
【図１４】
0006383688.tif 000067