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

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

▶ 日本電信電話株式会社の特許一覧
<>
  • 特許6050212-データ解析装置、方法、及びプログラム 図000012
  • 特許6050212-データ解析装置、方法、及びプログラム 図000013
  • 特許6050212-データ解析装置、方法、及びプログラム 図000014
  • 特許6050212-データ解析装置、方法、及びプログラム 図000015
  • 特許6050212-データ解析装置、方法、及びプログラム 図000016
  • 特許6050212-データ解析装置、方法、及びプログラム 図000017
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6050212
(24)【登録日】2016年12月2日
(45)【発行日】2016年12月21日
(54)【発明の名称】データ解析装置、方法、及びプログラム
(51)【国際特許分類】
   G06F 17/30 20060101AFI20161212BHJP
   G06Q 30/02 20120101ALI20161212BHJP
【FI】
   G06F17/30 220Z
   G06Q30/02 300
【請求項の数】7
【全頁数】16
(21)【出願番号】特願2013-228481(P2013-228481)
(22)【出願日】2013年11月1日
(65)【公開番号】特開2015-88118(P2015-88118A)
(43)【公開日】2015年5月7日
【審査請求日】2015年10月27日
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】特許業務法人太陽国際特許事務所
(72)【発明者】
【氏名】竹内 孝
(72)【発明者】
【氏名】石黒 勝彦
(72)【発明者】
【氏名】木村 昭悟
(72)【発明者】
【氏名】澤田 宏
【審査官】 早川 学
(56)【参考文献】
【文献】 米国特許出願公開第2012/0016878(US,A1)
【文献】 成田敦博、外3名,補助情報を用いたテンソル分解,電子情報通信学会技術研究報告,社団法人電子情報通信学会,2011年 3月21日,Vol.110、No.476,pp.139〜146
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
G06Q 30/02
(57)【特許請求の範囲】
【請求項1】
入力された複数の情報源の各々の関係を示す解析対象データの各観測値を要素として含むIy×Jy×KyテンソルY(Iy、Jy、Kyは2以上の自然数であり、それぞれ予め定められた値である)を作成し、前記複数の情報源のうちのN個の情報源nの各々について入力された前記情報源nに関する補助データの各観測値を要素として含むIn×Jn×Kn補助テンソルA(n)(In、Jn、Knは2以上の自然数であり、それぞれ予め定められた値である)を各々作成するテンソル加工部であって、前記情報源nの各々について、前記補助テンソルA(n)のInの値、Jnの値、及びKnの値の何れ一つが、前記テンソルYと共通するテンソル加工部と、
前記テンソル加工部によって作成された前記テンソルYを、Iy×Rの行列Ty(Rは自然数であり、予め定められた値である)、Jy×Rの行列Uy、及びKy×Rの行列Vyに分解し、かつ、前記テンソル加工部によって作成された前記情報源nの各々の前記補助テンソルA(n)を、前記情報源nの各々に対するIn×Rの行列T(n)、Jn×Rの行列U(n)、及びK(n)×Rの行列V(n)に分解するテンソル分解部であって、前記テンソルY及び前記情報源nの各々の補助テンソルA(n)と、前記行列Ty、前記行列Uy、及び前記行列Vyに基づいて推定される前記テンソルYの推定値^Y、並びに前記情報源nの各々に対する前記行列T(n)、前記行列U(n)、及び前記行列V(n)に基づいて推定される前記情報源nの各々の補助テンソルA(n)の推定値^A(n)との距離を表す目的関数を最小化するように、前記テンソルYを、前記行列Ty、前記行列Uy、及び前記行列Vyに分解し、かつ前記情報源nの各々の前記補助テンソルA(n)を、前記情報源nの各々に対する前記行列T(n)、前記行列U(n)、及び前記行列V(n)に分解するテンソル分解部と、
を含むデータ解析装置。
【請求項2】
前記目的関数を、以下の式で表わされる目的関数^Dとした請求項1記載のデータ解析装置。
【数1】

ただし、yijkは前記テンソルYのijk要素であり、^yijkは、前記テンソルYの推定値^Yのijk要素であり、d()は、距離を表す関数であり、aijk(n)は前記補助テンソルA(n)のijk要素であり、^aijk(n)は、前記補助テンソルA(n)の推定値^A(n)のijk要素であり、^η(n)は、前記補助テンソルA(n)に対して予め定められた重み係数であり、tiryは、前記行列Tyのi行r列の要素であり、ujryは、前記行列Uyのj行r列の要素であり、tkryは、前記行列Tyのk行r列の要素であり、tir(n)は、前記行列T(n)のi行r列の要素であり、ujr(n)は、前記行列U(n)のj行r列の要素であり、tkr(n)は、前記行列T(n)のk行r列の要素である。
【請求項3】
前記入力された補助データは、3個の情報源n(n=1,2,3)の各々について入力された前記情報源nに関する補助データであって、
前記テンソル分解部は、
前記行列Ty、前記行列Uy、及び前記行列Vyと、前記情報源nの各々の前記行列T(n)、前記行列U(n)、及び前記行列V(n)との各要素を初期化する初期化部と、
前記初期化部によって初期化された、または前回更新された前記行列Ty、前記行列Uy、及び前記行列Vyと、前記情報源nの各々の前記行列T(n)、前記行列U(n)、及び前記行列V(n)とに基づいて、以下の式に従って、前記行列Ty、前記行列Uy、及び前記行列Vyと、前記情報源nの各々の前記行列T(n)、前記行列U(n)、及び前記行列V(n)との各要素を更新する行列更新部と、
予め定められた計算終了条件を満たしたか否かを評価し、予め定められた計算終了条件を満たすまで、前記行列更新部による更新を繰り返す計算終了評価部と、
を含む請求項2記載のデータ解析装置。
【数2】
【請求項4】
テンソル加工部によって、入力された複数の情報源の各々の関係を示す解析対象データの各観測値を要素として含むIy×Jy×KyテンソルY(Iy、Jy、Kyは2以上の自然数であり、それぞれ予め定められた値である)を作成し、前記複数の情報源のうちのN個の情報源nの各々について入力された前記情報源nに関する補助データの各観測値を要素として含むIn×Jn×Kn補助テンソルA(n) (In、Jn、Knは2以上の自然数であり、それぞれ予め定められた値である)を各々作成するステップであって、前記情報源nの各々について、前記補助テンソルA(n)のInの値、Jnの値、及びKnの値の何れ一つが、前記テンソルYと共通するステップと、
テンソル分解部によって、前記テンソル加工部によって作成された前記テンソルYを、Iy×Rの行列Ty(Rは自然数であり、予め定められた値である)、Jy×Rの行列Uy、及びKy×Rの行列Vyに分解し、かつ、前記テンソル加工部によって作成された前記情報源nの各々の前記補助テンソルA(n)を、前記情報源nの各々に対するIn×Rの行列T(n)、Jn×Rの行列U(n)、及びK(n)×Rの行列V(n)に分解するステップであって、前記テンソルY及び前記情報源nの各々の補助テンソルA(n)と、前記行列Ty、前記行列Uy、及び前記行列Vyに基づいて推定される前記テンソルYの推定値^Y、並びに前記情報源nの各々に対する前記行列T(n)、前記行列U(n)、及び前記行列V(n)に基づいて推定される前記情報源nの各々の補助テンソルA(n)の推定値^A(n)との距離を表す目的関数を最小化するように、前記テンソルYを、前記行列Ty、前記行列Uy、及び前記行列Vyに分解し、かつ前記情報源nの各々の前記補助テンソルA(n)を、前記情報源nの各々に対する前記行列T(n)、前記行列U(n)、及び前記行列V(n)に分解するステップと、
を含むデータ解析方法。
【請求項5】
前記目的関数を、以下の式で表わされる目的関数^Dとした請求項4記載のデータ解析方法。
【数3】

ただし、yijkは前記テンソルYのijk要素であり、^yijkは、前記テンソルYの推定値^Yのijk要素であり、d()は、距離を表す関数であり、aijk(n)は前記補助テンソルA(n)のijk要素であり、^aijk(n)は、前記補助テンソルA(n)の推定値^A(n)のijk要素であり、^η(n)は、前記補助テンソルA(n)に対して予め定められた重み係数であり、tiryは、前記行列Tyのi行r列の要素であり、ujryは、前記行列Uyのj行r列の要素であり、tkryは、前記行列Tyのk行r列の要素であり、tir(n)は、前記行列T(n)のi行r列の要素であり、ujr(n)は、前記行列U(n)のj行r列の要素であり、tkr(n)は、前記行列T(n)のk行r列の要素である。
【請求項6】
前記入力された補助データは、3個の情報源n(n=1,2,3)の各々について入力された前記情報源nに関する補助データであって、
前記テンソル分解部によって分解するステップは、
初期化部によって、前記行列Ty、前記行列Uy、及び前記行列Vyと、前記情報源nの各々の前記行列T(n)、前記行列U(n)、及び前記行列V(n)との各要素を初期化するステップと、
行列更新部によって、前記初期化部によって初期化された、または前回更新された前記行列Ty、前記行列Uy、及び前記行列Vyと、前記情報源nの各々の前記行列T(n)、前記行列U(n)、及び前記行列V(n)とに基づいて、以下の式に従って、前記行列Ty、前記行列Uy、及び前記行列Vyと、前記情報源nの各々の前記行列T(n)、前記行列U(n)、及び前記行列V(n)との各要素を更新するステップと、
計算終了評価部によって、予め定められた計算終了条件を満たしたか否かを評価し、予め定められた計算終了条件を満たすまで、前記行列更新部による更新を繰り返すステップと、
を含む請求項5記載のデータ解析方法。
【数4】
【請求項7】
請求項1〜請求項3の何れか1項に記載のデータ解析装置を構成する各部として、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ解析装置、方法、及びプログラムに係り、特に、複数の情報源の各々の関係を示す解析対象データを解析するデータ解析装置、方法、及びプログラムに関する。
【背景技術】
【0002】
近年、オンラインアイテム評価サービス(Yelp(登録商標)、Amazon(登録商標)、Netflix(登録商標)など)では、ユーザにアイテム(店舗、日用品、映像作品など)の評価点数を公開する機能が提供されている。これらのサービスでは、あるアイテムにある点数を与えたユーザに、その評価に合わせたアイテムを推薦する技術の研究開発が進められている。この技術ではアイテムとユーザのクラスターを解析するテンソル分解法が多く用いられている。しかし、この手法はユーザの評価するアイテム数が少ない場合に性能が低下する問題を持つため、解析が困難な問題がある。
【0003】
非特許文献1では、ユーザがアイテムに付与したタグ情報を利用することで、ユーザごとのタグ付与傾向の類似性や、アイテムごとのタグの被付与傾向の類似性と、タグとユーザとアイテムの関係性を用いた、アイテムとユーザとタグのクラスターを解析するテンソル分解法の技術が提案されている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】S. Rendle and L. Schmidt-Thieme, “Pairwise interaction tensor factorization for personalized tag recommendation,” in Proc. WSDM, 2010.
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記の非特許文献1の技術は、単一のテンソル形式のデータを解析して因子を発見する技術である。しかし、この技術には解析対象テンソルに含まれるデータが少ない場合には性能が低下する課題を持つ。また、複数テンソルを同時に解析し、これらのテンソルに共通する因子を発見することは出来ない。
【0006】
本発明は、上記の事情を鑑みてなされたもので、複数の情報源から得られた解析対象データを解析して、精度よく因子を発見することができるデータ解析装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記の目的を達成するために本発明に係るデータ解析装置は、入力された複数の情報源の各々の関係を示す解析対象データの各観測値を要素として含むIy×Jy×KyテンソルY(Iy、Jy、Kyは2以上の自然数であり、それぞれ予め定められた値である)を作成し、前記複数の情報源のうちのN個の情報源nの各々について入力された前記情報源nに関する補助データの各観測値を要素として含むIn×Jn×Kn補助テンソルA(n)(In、Jn、Knは2以上の自然数であり、それぞれ予め定められた値である)を各々作成するテンソル加工部であって、前記情報源nの各々について、前記補助テンソルA(n)のInの値、Jnの値、及びKnの値の何れ一つが、前記テンソルYと共通するテンソル加工部と、前記テンソル加工部によって作成された前記テンソルYを、Iy×Rの行列Ty(Rは自然数であり、予め定められた値である)、Jy×Rの行列Uy、及びKy×Rの行列Vyに分解し、かつ、前記テンソル加工部によって作成された前記情報源nの各々の前記補助テンソルA(n)を、前記情報源nの各々に対するIn×Rの行列T(n)、Jn×Rの行列U(n)、及びK(n)×Rの行列V(n)に分解するテンソル分解部であって、前記テンソルY及び前記情報源nの各々の補助テンソルA(n)と、前記行列Ty、前記行列Uy、及び前記行列Vyに基づいて推定される前記テンソルYの推定値^Y、並びに前記情報源nの各々に対する前記行列T(n)、前記行列U(n)、及び前記行列V(n)に基づいて推定される前記情報源nの各々の補助テンソルA(n)の推定値^A(n)との距離を表す目的関数を最小化するように、前記テンソルYを、前記行列Ty、前記行列Uy、及び前記行列Vyに分解し、かつ前記情報源nの各々の前記補助テンソルA(n)を、前記情報源nの各々に対する前記行列T(n)、前記行列U(n)、及び前記行列V(n)に分解するテンソル分解部と、を含んで構成されている。
【0008】
本発明に係るデータ解析方法は、テンソル加工部によって、入力された複数の情報源の各々の関係を示す解析対象データの各観測値を要素として含むIy×Jy×KyテンソルY(Iy、Jy、Kyは2以上の自然数であり、それぞれ予め定められた値である)を作成し、前記複数の情報源のうちのN個の情報源nの各々について入力された前記情報源nに関する補助データの各観測値を要素として含むIn×Jn×Kn補助テンソルA(n) (In、Jn、Knは2以上の自然数であり、それぞれ予め定められた値である)を各々作成するステップであって、前記情報源nの各々について、前記補助テンソルA(n)のInの値、Jnの値、及びKnの値の何れ一つが、前記テンソルYと共通するステップと、テンソル分解部によって、前記テンソル加工部によって作成された前記テンソルYを、Iy×Rの行列Ty(Rは自然数であり、予め定められた値である)、Jy×Rの行列Uy、及びKy×Rの行列Vyに分解し、かつ、前記テンソル加工部によって作成された前記情報源nの各々の前記補助テンソルA(n)を、前記情報源nの各々に対するIn×Rの行列T(n)、Jn×Rの行列U(n)、及びK(n)×Rの行列V(n)に分解するステップであって、前記テンソルY及び前記情報源nの各々の補助テンソルA(n)と、前記行列Ty、前記行列Uy、及び前記行列Vyに基づいて推定される前記テンソルYの推定値^Y、並びに前記情報源nの各々に対する前記行列T(n)、前記行列U(n)、及び前記行列V(n)に基づいて推定される前記情報源nの各々の補助テンソルA(n)の推定値^A(n)との距離を表す目的関数を最小化するように、前記テンソルYを、前記行列Ty、前記行列Uy、及び前記行列Vyに分解し、かつ前記情報源nの各々の前記補助テンソルA(n)を、前記情報源nの各々に対する前記行列T(n)、前記行列U(n)、及び前記行列V(n)に分解するステップと、を含む。
【0009】
本発明に係るプログラムは、上記のデータ解析装置の各部としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【0010】
以上説明したように、本発明のデータ解析装置、方法、及びプログラムによれば、解析対象データのテンソルYを作成し、情報源nの各々の補助データについて、Inの値、Jnの値、及びKnの値の何れ一つが、テンソルYと共通する補助テンソルA(n)を各々作成し、目的関数を最小化するように、テンソルYを、行列Ty、行列Uy、及び行列Vyに分解し、かつ情報源nの各々の補助テンソルA(n)を、行列T(n)、行列U(n)、及び行列V(n)に分解することにより、複数の情報源から得られた解析対象データを解析して、精度よく因子を発見することができる、という効果が得られる。
【図面の簡単な説明】
【0011】
図1】本発明の実施の形態に係るデータ解析装置の構成を示す概略図である。
図2】テンソルを分解した行列を示す図である。
図3】本発明の実施の形態に係るデータ解析装置のテンソル分解部の構成を示す図である。
図4】本発明の実施の形態に係るデータ解析装置におけるデータ解析処理ルーチンの内容を示すフローチャートである。
図5】実験結果を示す図である。
図6】実験結果を示す図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【0013】
<概要>
まず、本発明のポイントは、以下の(1)、(2)である。
【0014】
(1)解析対象データを加工したテンソルに加えて、補助的なデータを加工した補助テンソルを利用して因子の解析を行う。
【0015】
(2)複数の解析対象データを同時に解析するため、Nonnegative Tensor Factorization(NTF)技術を拡張し、複数の補助情報を利用したテンソル分解を行えるようした。このために、テンソル間のインデクスの共有と補助テンソル毎の重み係数を導入した。
【0016】
テンソル形式に加工したデータからの因子を発見する解析方法として、非負値テンソル因子分解(NTF)が知られている(参考文献1を参照)。
【0017】
(参考文献1):A. Shashua & T. Hazan, “Non-Negative Tensor Factorization with Applications to Statistics and Computer Vision,” ICML, 2005.
【0018】
NTFは、ある非負値のテンソルYを非負値の因子行列U、T、Vに分解する手法である。例えば、テンソルYは、あるユーザがあるアイテムにある曜日に与えた評価点数からなるテンソルとする。このようなテンソルYを分解すると、複数のアイテムに類似した点数を同じ曜日に与えやすいユーザ集団が、因子行列Uの基底、類似した店舗が、因子行列Tの基底(例:IKEA(登録商標), Apple Store(登録商標)など)、また、上記のレビューがどの程度ある曜日に書かれるか(例:日曜日に)を表す指標が、因子行列Vの基底に抽出される。しかし、このようなデータでは、ユーザ毎の評価数は限られている場合が多いため、テンソルYは非常にデータ数が少なくなりNTFにより因子行列の発見は困難になる。
【0019】
本発明では、レビューの点数と評価された曜日データだけでなく、アイテムカテゴリとレビューのテキスト、店舗の位置情報と来客数などの補助データも入力として利用し、これらを同時に解析する必要がある。これらの情報を1つのテンソル(Y)にまとめることはできないため、NTFをそのまま適用することはできない。そこで本発明では、非負値テンソル因子分解(NTF)を拡張し複合非負値テンソル因子分解(NMTF)を提案する。
【0020】
<システム構成>
図1は、本発明の実施の形態に係るデータ解析装置100の模式図の一例である。データ解析装置100は、CPUと、RAMと、後述するデータ解析処理ルーチンを実行するためのプログラムを記憶したROMとを備えたコンピュータで構成され、機能的には、データ解析装置100は、入力部10と、演算部20と、出力部30と、を備えている。
【0021】
入力部10は、複数の情報源の各々の関係(ユーザ、アイテム、曜日の関係)を示す観測値(評価点)の集合である解析対象データの入力を受け付けると共に、各情報源について、当該情報源に関する観測値(アイテムカテゴリとレビューのテキスト、又は店舗の位置情報と来客数)の集合である補助データの入力を受け付ける。入力される解析対象データ、補助データは、テンソル形式に加工可能なデータであり、補助データは、例えば、3つまでの補助データとする。
【0022】
演算部20は、テンソル加工部21、及びテンソル分解部22を備えている。
【0023】
〔テンソル加工部〕
テンソル加工部21は、入力部10により受け付けた解析対象データと、補助データ1、2、3とを読み込み、以下の加工を行う。ただし、補助データのいずれかが入力されない場合も許し、その場合は該当する補助データの加工を省略する。
【0024】
解析対象データを表現する、Iy×Jy×KyテンソルYを作成し、出力する。yijkは、テンソルYのijk要素に対応する数値とする。
【0025】
補助データ1が入力された場合は、補助データ1を表現する、I1×J1×K1テンソルA(1)を作成し、出力する。a(1)ijjは、補助テンソルA(1)のijk要素に対応する数値とする。
【0026】
補助データ2が入力された場合は、補助データ2を表現する、I2×J2×K2テンソルA(2)を作成し、出力する。a(2)ijjは、補助テンソルA(2)のijk要素に対応する数値とする。
【0027】
補助データ3が入力された場合は、補助データ3を表現する、I3×J3×K3のテンソルA(3)を作成し、出力する。a(3)ijjは、補助テンソルA(3)のijk要素に対応する数値とする。
【0028】
このように、情報源nに関する補助データが入力されない場合は、補助テンソルA(n)の作成と出力を行わない。
【0029】
また、等式I1= Iy、J2 =Jy、K3=Kyが満たされない場合はエラーとなり計算を終了する。この処理は、テンソル間のインデクスの共有の仮定を満たさない場合にはNMTFがテンソル分解を行えないため、テンソル分解前に必要なエラー検出である。
【0030】
〔テンソル分解部〕
テンソル分解部22は、テンソル加工部21から入力されたテンソルY、A(1)、A(2)、A(3)を、以下の(1)式に示す目的関数Dを最小化するように、因子集合Θ={Ty、Uy、Vy、T(n)、U(n)、V(n) (n=1…N)}へ分解する。ただし、いずれかの補助テンソルA(n) (n=1…N)が入力されなかった場合は、T(n)、U(n)、V(n) への分解は省略する。ここで、Ty、Uy、Vy、T(n)、U(n)、V(n) (n=1…N)は、図2に示すように、それぞれIy×R行列、Jy×R行列、Ky×R行列、In×R行列、Jn×R行列、Kn×R行列(n=1…N)である。Iy、Jy、Ky、In、Jn、Kn(n=1…N)は解析対象のデータで用いたものと同じであり、Rは任意の自然数であり、予め設定される。
【0031】
ここで入力されたテンソルを同時に分解するために、以下の処理を行う。I1=Iy、J2=Jy、K3=KyであるからT(1)=Ty、U(2)=Uy、V(3)=Vyと定める。この処理は、テンソル間のインデクスが共有される場合に、テンソル間で因子行列が共有されると定めている。
【0032】
【数1】
【0033】
ここで、η(n)は、補助テンソルA(n)に対して予め定められた重み係数である。重み係数を導入することによって、複数のテンソルの間のスケールの異なりを緩和し、同時解析を可能にしている。
【0034】
ここで、d()は次の一般化KL距離である。
【0035】
【数2】
【0036】
テンソル分解部22の詳細構成を図3に示す。テンソル分解部22は、初期化部221、行列更新部222、及び計算終了評価部223を備え、以下の手順で行列Uy、Vy、Ty、U(1)、V(1)、T(2)、V(2) 、T(3)、U(3)を求める。
【0037】
〔初期化部〕
初期化部221は、因子行列Ty、Uy、Vy、U(1)、V(1)、T(2)、V(2)、T(3)、U(3)の各要素を乱数によって初期化する。
【0038】
〔行列更新部〕
行列更新部222は、初期化部221によって初期化された、又は前回更新された因子行列Ty、Uy、Vy、U(1)、V(1)、T(2)、V(2)、T(3)、U(3)に基づいて、下記式により因子行列Ty、Uy、Vy、U(1)、V(1)、T(2)、V(2)、T(3)、U(3)の各要素を更新する。
【0039】
【数3】
【0040】
ここで、tiryは行列Tyのi行r列の要素、ujryは行列Uyのj行r列の要素、tkryは行列Tyのk行r列の要素、tir(n)は行列T(n)のi行r列の要素、ujr(n)は行列U(n)のj行r列の要素、tkr(n)は行列T(n)のk行r列の要素である。また、^yijkは、テンソルYの推定値^Yのijk要素であり、aijk(n)は前記補助テンソルA(n)のijk要素であり、^aijk(n)は、補助テンソルA(n)の推定値^A(n)のijk要素であり、以下の式で表わされる。
【0041】
【数4】
【0042】
〔計算終了評価部〕
行列更新部222の最大繰り返し数をLとする。l回目の行列更新部222の計算から得られた因子行列の集合をΘlと置く。初期化部221から出力される初期化された因子行列はΘ0とする。
【0043】
計算終了評価部223では、行列更新部222の繰り返し数がLに到達した場合、もしくは、以下の基準を満たした場合に、予め定められた計算終了条件を満たしたと評価し、計算を終了し、Θlを出力する。
【0044】
【数5】
【0045】
これは、上記の(1)式の目的関数Dの変化分(t回目の計算結果と前回のt-1回目の計算結果の差分の絶対値)が、予め定めた誤差ε以下になった場合に、因子行列集合が収束した(上記(1)式の目的関数Dが最小化された)と評価し、計算を終了することを意味する。
【0046】
<データ解析装置の動作>
次に、本発明の実施の形態に係るデータ解析装置100の作用について説明する。まず、複数の情報源の間の関係を示す観測値の集合である解析対象データの入力を受け付けると共に、当該複数の情報源のうちのN個の情報源の各々に関する補助データが、入力部10を介してデータ解析装置100に入力されると、データ解析装置100において、図4に示すデータ解析処理ルーチンが実行される。
【0047】
まず、ステップS101において、入力部10により入力された解析対象データに基づいて、テンソルYを作成すると共に、入力部10により入力された各情報源nの補助データに基づいて、補助テンソルA(n)を各々作成する。
【0048】
そして、ステップS102において、上記ステップS101で作成されたテンソルY、及び各情報源nの補助テンソルA(n)に基づいて、因子行列Ty、Uy、Vy、U(1)、V(1)、T(2)、V(2)、T(3)、U(3)を作成し、因子行列Ty、Uy、Vy、U(1)、V(1)、T(2)、V(2)、T(3)、U(3)の各要素を乱数によって初期化する。
【0049】
次のステップS103では、上記ステップS102で初期化された、又は前回更新された因子行列Ty、Uy、Vy、U(1)、V(1)、T(2)、V(2)、T(3)、U(3)に基づいて、因子行列Ty、Uy、Vy、U(1)、V(1)、T(2)、V(2)、T(3)、U(3)の各要素を更新する。
【0050】
ステップS104では、予め定められた計算終了条件を満たしたか否かを評価し、計算終了条件を満たしていないと評価された場合には、上記ステップS103へ戻り、計算終了条件を満たしたと評価された場合には、計算を終了し、上記ステップS103で最終的に更新された因子行列の集合Θlを出力する。
【0051】
<実施例>
本発明の効果を示すために、人工的に生成したデータセットと、アイテム評価オンラインサービスであるYelp(登録商標)(URL:http://www.yelp.com/)から得られたデータセットとに対して、NTFとNMTFを用いて解析を行った結果について、定量的な評価と定性的な評価を行った。なお、NTFの場合は、本発明の分解対象であるテンソルのうちYを入力データとしてNTFにより因子行列に分解した。
【0052】
平均対数尤度という指標を用いて定量的な評価を行った。平均対数は、モデルとデータの間の誤差を表し、良いモデルほど平均対数尤度の値が増加する。行列更新終了時の平均対数尤度を以下に示す。
【0053】
【表1】
NMTF(本発明)によって、平均対数尤度の改善が確認できた。
【0054】
次に定性的な評価を行った。Yelp(R)データの行列更新終了時の因子行列の一部を図5図6に示す。ここで、図5、6の説明を行う。図5、6の上段左部は店舗因子を可視化してあり、棒グラフの値は該当店舗の影響力の大きさを示している。上段右部には、来客数因子を可視化してあり、線グラフの値はある曜日のある時間での来客数の統計値を示している。中段左部にはカテゴリ因子を可視化してあり、棒グラフの値は該当カテゴリの影響力の大きさを示している。中段右部には単語因子を可視化してあり、棒グラフの値は該当単語の影響力の大きさを示している。下段の図は位置因子を可視化してあり、円の半径は該当地点の影響力の大きさを示している。
【0055】
図5ではCamelback MountainやSouth Mountain Parkなどの公共施設が強い影響力を持ち、来客者は休日の来客数が多い。さらにカテゴリとしてはActive LifeやParksなどが、単語としてはparkやhikeなどが影響力をもち、影響する地区は地図上の市街地に存在している。休日のレジャー活動に関する因子が抽出されたと言える。
【0056】
図6ではRoka AkorやSakana Sushi & Grill、Hana Japanese Eateryなどの飲食店舗が強い影響力を持ち、来客者は全日を通して12時付近と18時付近が多い。さらにカテゴリとしてはSushi BarやRestaurantなどが、単語としてはsushiやrollなどが影響力をもち、影響する地区は地図上の市街地に存在している。日本食の飲食に関する因子が抽出されたと言える。
【0057】
以上説明したように、本発明の実施の形態に係るデータ解析装置によれば、解析対象データのテンソルYを作成し、情報源nの各々の補助データについて、Inの値、Jnの値、及びKnの値の何れ一つが、テンソルYと共通するIn×Jn×Kn補助テンソルA(n)を各々作成し、目的関数を最小化するように、テンソルYを、行列Ty、行列Uy、及び行列Vyに分解し、かつ情報源nの各々の補助テンソルA(n)を、行列T(n)、行列U(n)、及び行列V(n)に分解することにより、複数の情報源から得られた解析対象データを解析して、複数のテンソルに共通する因子を精度よく発見することができる。
【0058】
また、解析対象テンソルと補助的なテンソルのデータを同時解析することで、解析対象テンソルに含まれるデータが少ない場合に性能が低下する課題を解決し、定量的にも定性的にも、より高い精度で、複数のテンソルに共通する因子の発見を実現することができる。
【0059】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【0060】
例えば、補助データが、4つ以上であってもよい。その場合には、4つ以上の情報源nの各々の補助データについて、Inの値、Jnの値、及びKnの値の何れ一つが、テンソルYと共通するIn×Jn×Kn補助テンソルA(n)を各々作成すればよい。また、因子行列の各要素の更新式についても、4つ以上の補助データに対応した更新式を用いればよい。
【0061】
また、上述のデータ解析装置は、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
【0062】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【0063】
10 入力部
20 演算部
21 テンソル加工部
22 テンソル分解部
30 出力部
100 データ解析装置
221 初期化部
222 行列更新部
223 計算終了評価部
図1
図2
図3
図4
図5
図6