(57)【要約】【課題】  網羅的な観測が不可能であっても、テンソルを補完し、一部の観測から全体像を捉えること、及び、欠損値予測を用いて詳細かつ広範囲にユーザの商品への興味を推定することを実現する。【解決手段】  本発明は、複数次元の関係を示す観測データと、各次元の背景知識となるクラス階層構造であるタクソノミを入力とし、各次元のタクソノミに基づき各次元のクラスの粒度を調整し、記憶手段に格納する粒度調整手段と、記憶手段に格納された粒度調整された結果からテンソルを構築するテンソル構築手段と、テンソルをテンソル分解法により分解及び復元することで未観測データに対する欠損値を推定する欠損値推定手段と、を有する。【選択図】  図１
2014096118.tif 000002
【特許請求の範囲】
【請求項１】
複数次元の関係を表現するテンソル上の欠損値の予測を行う欠損値予測装置であって、
複数次元の関係を示す観測データと、各次元の背景知識となるクラス階層構造であるタクソノミを入力とし、各次元のタクソノミに基づき各次元のクラスの粒度を調整し、記憶手段に格納する粒度調整手段と、
前記記憶手段に格納された粒度調整された結果から前記テンソルを構築するテンソル構築手段と、
前記テンソルをテンソル分解法により分解及び復元することで未観測データに対する欠損値を推定する欠損値推定手段と、
を有することを特徴とする欠損値予測装置。
【請求項２】
複数次元の関係を表現するテンソル上の欠損値の予測を行う欠損値予測方法であって、
記憶手段、粒度調整手段、テンソル構築手段、欠損値推定手段と、を有する装置において、
前記粒度調整手段が、複数次元の関係を示す観測データと、各次元の背景知識となるクラス階層構造であるタクソノミを入力とし、各次元のタクソノミに基づき各次元のクラスの粒度を調整し、前記記憶手段に格納する粒度調整ステップと、
前記テンソル構築手段が、前記記憶手段に格納された粒度調整された結果から前記テンソルを構築するテンソル構築ステップと、
前記欠損値推定手段が、前記テンソルをテンソル分解法により分解及び復元することで未観測データに対する欠損値を推定する欠損値推定ステップと、
を行うことを特徴とする欠損値予測方法。
【請求項３】
コンピュータを、
請求項１記載の欠損値予測装置の各手段として機能させるための欠損値予測プログラム。
【請求項４】
ユーザが次に購入する商品を予測する商品推薦装置であって、
個人ユーザの商品に対する消費頻度からなるユーザの消費履歴と、情報源から得られる商品クラス階層構造であるタクソノミ上の末端クラスを入力として、ユーザ、商品、クラスからなる３次元のテンソルを構築するテンソル構築手段と、
前記テンソルをテンソル分解法により分解及び復元することでユーザが関心を持ち得る商品を予測する商品予測手段と、
を有することを特徴とする商品推薦装置。
【請求項５】
ユーザが次に購入する商品を予測する商品推薦装置であって、
個人の商品に対する消費頻度からなるユーザの消費履歴と、情報源から得られる商品クラスの階層構造であるタクソノミを入力として、該商品クラスの粒度を調整し、記憶手段に格納する粒度調整手段と、
前記記憶手段に格納された粒度調整された結果からユーザ、商品、クラスからなる３次元のテンソルを構築するテンソル構築手段と、
前記テンソルをテンソル分解法により分解及び復元することで前記ユーザが関心を持ち得る商品を予測する商品予測手段と、
を有することを特徴とする商品推薦装置。
【請求項６】
ユーザが次に購入する商品を予測する商品推薦方法であって、
テンソル構築手段と、商品予測手段とを有する装置において、
前記テンソル構築手段が、個人ユーザの商品に対する消費頻度からなるユーザの消費履歴と、情報源から得られる商品クラス階層構造であるタクソノミを入力として、ユーザ、商品、クラスからなる３次元のテンソルを構築するテンソル構築ステップと、
前記商品予測手段が、前記テンソルをテンソル分解法により分解及び復元することでユーザが関心を持ち得る商品を予測する商品予測ステップと、
を行うことを特徴とする商品推薦方法。
【請求項７】
ユーザが次に購入する商品を予測する商品推薦方法であって、
記憶手段、粒度調整手段、テンソル構築手段、欠損値推定手段と、を有する装置において、
前記粒度調整手段が、個人の商品に対する消費頻度からなるユーザの消費履歴と、情報源から得られる商品クラスの階層構造であるタクソノミ上の末端クラスを入力として、該商品クラスの粒度を調整し、前記記憶手段に格納する粒度調整ステップと、
前記テンソル構築手段が、前記記憶手段に格納された粒度調整された結果からユーザ、商品、クラスからなる３次元のテンソルを構築するテンソル構築ステップと、
前記商品予測手段が、前記テンソルをテンソル分解法により分解及び復元することで前記ユーザが関心を持ち得る商品を予測する商品予測ステップと、
を有することを特徴とする商品推薦方法。
【請求項８】
コンピュータを、
請求項４または５記載の商品推薦装置の各手段として機能させるための商品推薦プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、欠損値予測装置及び方法及びプログラム及び商品推薦装置及び方法及びプログラムに係り、テンソル(tensor)分析の精度向上のためにテンソル上の欠損値の予測を行うための欠損値予測装置及び方法及びプログラムと、その応用としての協調フィルタリングに基づく商品推薦を行う商品推薦装置及び方法及びプログラムに関する。
【０００２】
複数次元のデータ間の関係を表現するテンソルを分析し、有用な関係集合などを抽出するテンソル分析においては、各次元をクロスしたデータ間の取り得る関係の数が非常に多いが、観測されているデータ数は少なく、その場合、分析の結果に悪影響を与えることがわかっている。本発明は、そうした関係を予測するという、テンソル分析の精度向上のための、テンソル上の欠損値の予測を扱うものである。
【０００３】
また、本発明は、応用として、特に、商品、ユーザの２次元の行列を分解する方法による商品推薦方法を発展させ、商品、ユーザ、ユーザの商品消費コンテクストの３次元からなるテンソルを分解する方法による商品推薦を行うものである。
【背景技術】
【０００４】
Web／ネットワーク上において、ユーザによる対象の意味や概念に対する参照要求が大きくなるにつれ、WikiPedia(登録商標)などの体系化された辞書が普及するようになってきている。また、こうしたユーザの要求を人手ではなく、人の代わりにサービスが処理し、ユーザにカスタマイズして提示可能とするため、機械処理可能な概念参照API(Application Programming Interface)が急速に普及しており、DBPedia（登録商標）、WordNet（登録商標）、FreeBase(登録商標)など様々な情報プロバイダが、自身の持つ情報を体系化しAPIを通じ安価、無料で提示するようになってきている（例えば、非特許文献１参照）。
【０００５】
一方、ユーザの興味のある概念を推測し、ユーザに代わり情報を収集提示するような推薦システムも必要とされ、研究されてきた。特に、商品、ユーザの２次元の行列を分解する方法による商品推薦方法が普及しつつあり、特に、商品にユーザが与える評点の予測などの分野への応用や実用化が行われるようになってきている。こうした推薦手法の研究に、商品の属する概念を適用することができれば、より詳細かつ広範囲にユーザの興味を推定できる可能性がある。
【０００６】
現在、ユーザが商品に与える［ユーザ，商品］という関係と、その関係の示す値である「評点」と言う関係からなる行列を生成し、その行列を分解することで、ユーザがまだ購入していない商品に対する評価を予測するという行列分解による欠損値の予測が行われている（例えば、非特許文献２参照）。
【０００７】
それに対し、ユーザが商品に与えるタグを基に、［ユーザ，タグ，商品］という関係とその関係を示す値である「評点」という関係からなるテンソルを生成し、そのテンソルを分解することで、ユーザがまだ購入していない商品に対する評価を予測するという研究も行われている（例えば、非特許文献３参照）。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】Linked Open Data Project (htt://linkeddata.org/)
【非特許文献２】Ruslan Salakhutdinouv, Andriy Minh, Probabilistic Matrix Factorization using Markov Hain Monte Carlo, ICML 08.
【非特許文献３】Liang Xiong, Xi chen, Tzu-kuo Huang, Jeff Schneider, and Jaime Carbonell, Temporal Collaborative Filtering with Bayesian Probabilistic Tensor Factorization, SIAM Data Mining 2010.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記の非特許文献３の技術は、タグはキーワードであり、例えば、［ユーザＡ，クラシック，ビートルズ］という関係がある場合、クラシックというのが、ロックにおけるクラシックであるという意味が把握できない。そうすると、この関係は［ユーザＢ，クラシック，バッハ］という関係と親しい関係となり得る。しかし、実際は［ユーザＡ，クラシック，ビートルズ］は、［ユーザＡ，ロック／クラシック，ビートルズ］という意味であり、それは［ユーザＡ，ロック／クラシック，ローリング・ストーンズ］の方が［ユーザＢ，クラシック，バッハ］よりも関係としては近いと常識的には考えられる。こうした商品を分類するタグの曖昧性を回避しなければ、テンソル分解の精度に問題を残すと考えられる。
【００１０】
また、［ユーザＡ，ロック／クラシック，ビートルズ］と［ユーザＢ，ロック／ギター，エリック・クラプトン］は、子ジャンルは異なっているが大ジャンルは等しい。そのことから、ロックつながりで関係が近いということも考えられ、末端のクラスのみでなく、上位クラスから生まれる関係もテンソル上で取り扱えるようにすると、テンソル分野の精度がよくなる可能性もあると考えられる。
【００１１】
様々な出来事が、いくつかの物事同士の関わりによって表される。対象が２種類であれば２次元の配列としての行列によってデータを表すことができるが、より多くの対象が同時に関わってくるのなら、高次元の配列、つまりテンソルという形で表すことができる。誤差が大きい、実験にコストが掛かるために一部しか観測できない、などといった理由でデータに欠損が生じるといった状況は様々に発生する。欠損の生じたデータはそのままでは解析に適さないといった理由で多くの場合満足に利用することができず、そのまま無駄になってしまうことになる。このような場合には未知のデータを推定することができれば、初めから一部しか観測を行わないことでコストや手間を軽減することができる。組み合わせの数が膨大なためにそもそも網羅的な観測が不可能な場合であっても、一部の観測から全体像を捉えるといったことも考えられる。そのような目的のためにテンソルを補完する手法が重要になってくる。
【００１２】
本発明は上記の点に鑑みなされたもので、網羅的な観測が不可能であっても、テンソルを補完し、一部の観測から全体像を捉えることが可能な欠損値予測装置及び方法及びプログラムと、欠損値予測を用いて詳細かつ広範囲にユーザの商品への興味を推定することが可能な商品推薦装置及び方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記の課題を解決するため、本発明は、複数次元の関係を表現するテンソル上の欠損値の予測を行う欠損値予測装置であって、
複数次元の関係を示す観測データと、各次元の背景知識となるクラス階層構造であるタクソノミを入力とし、各次元のタクソノミに基づき各次元のクラスの粒度を調整し、記憶手段に格納する粒度調整手段と、
前記記憶手段に格納された粒度調整された結果から前記テンソルを構築するテンソル構築手段と、
前記テンソルをテンソル分解法により分解及び復元することで未観測データに対する欠損値を推定する欠損値推定手段と、を有する。
【００１４】
また、本発明は、ユーザが次に購入する商品を予測する商品推薦装置であって、
個人ユーザの商品に対する消費頻度からなるユーザの消費履歴と、情報源から得られる商品クラス階層構造であるタクソノミ上の末端クラスを入力として、ユーザ、商品、クラスからなる３次元のテンソルを構築するテンソル構築手段と、
前記テンソルをテンソル分解法により分解及び復元することでユーザが関心を持ち得る商品を予測する商品予測手段と、を有する。
【００１５】
また、本発明は、ユーザが次に購入する商品を予測する商品推薦装置であって、
個人の商品に対する消費頻度からなるユーザの消費履歴と、情報源から得られる商品クラスの階層構造であるタクソノミを入力として、クラスの粒度を調整し、記憶手段に格納する粒度調整手段と、
前記記憶手段に格納された粒度調整された結果からユーザ、商品、クラスからなる３次元のテンソルを構築するテンソル構築手段と、
前記テンソルをテンソル分解法により分解及び復元することで前記ユーザが関心を持ち得る商品を予測する商品予測手段と、を有する。
【発明の効果】
【００１６】
上記のように本発明によれば、クラスの背景知識（タクソノミ）を活用し、テンソル分解に基づく欠損値の予測精度を向上させることが可能となる。広く普及するmatlab（登録商標）のtensor tool boxなど既存のツールとも相性もよく、簡易に精度を上げることができるため、今後の産業面での活用が期待できる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第1の実施の形態における欠損値推定装置の構成図である。
【図２】本発明の第1の実施の形態におけるタクソノミとアイテムの例である。
【図３】本発明の第２の実施の形態における商品推薦装置の構成図である。
【発明を実施するための形態】
【００１８】
以下、図面と共に本発明の実施の形態を説明する。
【００１９】
まず、本発明の概要を説明する。
【００２０】
商品の背景知識である商品のタクソノミを用い、ユーザ、タグ、アイテムではなく、ユーザ、クラス、アイテムという関係を構築する。また、クラスの関係における、クラスの粒度を調整することで、ユーザ、クラス、アイテムの取り得るパターンの数を減らし、テンソルがスパースになることを防ぐことも行う。クラスは同種のアイテムを纏めているため、語彙が異なるが同じ意味のものを纏める効果がある。その上でテンソル分解を実施する。これにより、商品の背景知識を用い、疎なテンソルを密にすることができ、また、タグの曖昧性を回避しているため、結果として、商品の予測精度が向上する。なお、複数粒度のクラスをテンソル上に同時に混入させることで詳細なクラスを用いて詳細なユーザ、アイテム、クラスの関係を学習しつつ、簡素なクラスを用いて粗いユーザ、アイテム、クラスの関係も学習し、両者の良い点を補完しあってもよい。
【００２１】
［第１の実施の形態］
本実施の形態では、欠損値推定について説明する。
【００２２】
図１は、本発明の第１の実施の形態における欠損値推定装置の構成を示す。
【００２３】
同図に示す欠損値推定装置は、粒度調整部１、テンソル構築部２、欠損値推定部３、記憶部４を有する。
【００２４】
粒度調整部１は、複数次元の関係を示す観測データとタクソノミ（クラスの階層構造）が入力されると、タクソノミ上でのクラス、子クラスの関係を用い（ユーザ、タクソノミ上のクラス、インスタンス）という関係と、その関係に対する評価値を記憶部４に設定する。その際、「タクソノミ上のクラス」に設定するクラスとしてどの粒度のクラスを選択するかを調整する。
【００２５】
ここで、「クラスの粒度」とは、タクソノミ上のクラスの親子関係で調整できる。タクソノミにおいては、子クラスは親クラスよりも粒度が細かく設定されている。粒度調整部１で実施するのは、テンソルへの入力として、テンソル構築部２で与えるクラスの粒度をどの階層のクラスを用いるかを決定することである。例えば、［音楽／ロック／グランジ／ホップグランジ］という４階層からなるタクソノミがあったとすると、粒度を細かく４階層目のレベルに設定する場合は、「ホップグランジ」というクラスを用いて［ユーザ，アイテムＡ，ホップグランジ］という座標にユーザのアイテムＡに対する評価値を設定する。一方、粒度を若干粗く３階層目のレベルに設定する場合は、［ユーザ，アイテムＡ，グランジ］という座標にユーザのアイテムＡに対する評価値を設定する。評価値は、「食べログ（登録商標）」などでも用いられているユーザが与えるアイテムの評価の値である。アイテムは、図２に示すように、複数のクラスに属することがある。同じアイテムに対応するインスタンスは同じユーザからの評価としては、同じ評価値を持つものとする。
【００２６】
テンソル構築部２は、記憶部４からアイテムに対する評価値を読み込み、ユーザ(u)、インスタンス(i)、クラス(c）の３モードからなるテンソルＸを構成する。ここで座標（u,i,c）にセットする値の中で、cは粒度調整部１で決定されたクラスを基に用いる。
【００２７】
なお、本発明の特徴として、ｃにセットするクラスとしては、複数通りセットしてもよい。例えば、末端クラスがc1であり、上位クラスがc2である場合、(u,i,c1)，(u,i,c2)の２通りの関係を同時にセットしても良い。その場合、その座標にセットされる値は、粒度調整部１で計算された評価値を用いる。関数の数は２倍になるが問題ない。なお、複数通りセットする理由であるが、末端クラスのみでは繋がりえない関係を上位クラスでは繋げ得る可能性があること、とは云え、やはり末端で繋がるほど精度が良いということ、という２つの知見から考案した方法である。例えば、「グランジホップ」は、ユーザＡとユーザＢは繋がらないが、「グランジ」というジャンルでユーザＡとユーザＢが繋がることがある、という知見から行う操作である。
【００２８】
欠損値推定部３は、テンソル分解法を用いてテンソルを分解及び復元することで未観測のデータに対する欠損値を推定し、復元されたテンソルを出力する。本実施の形態では、テンソル分解法としてテンソルＸの低ランク性を仮定したtucker分解を用いる。tucker分解を用いると、下記のようにコアテンソルｇと因子行列Ｕ，Ｖ，Ｗに分解できる。ここで因子行列の列ベクトルは正規直交である。
【００２９】
【数１】
2014096118.tif 000003
ここで、テンソルＸのサイズが|u|×|ｉ|×|ｃ|とし、コアテンソルｇのサイズは|ｇ|×|ｇ|×|ｇ|とする。また、因子行列Ｕ，Ｖ，Ｗのそれぞれのサイズは、|ｕ|×|ｇ|，|ｖ|×|ｇ|，|ｗ|×|ｇ|となる。
【００３０】
補足であるが、テンソル分解の方法としては、繰り返し最適化による準最適化を行うのが一般的である。基本的には与えられたテンソルを２乗誤差の意味で最適近似するような分解を求める。
【００３１】
【数２】
2014096118.tif 000004
この最適解を求めるのに多く用いられるのは、最小２乗回帰的か特異値分解の繰り返し計算である。特にtucker分解では、n-mode展開行列を計算し、通常の特異値分解を繰り返し行い、コアテンソルを計算するという手続をとる。詳しくは、非特許文献４『Yahoo! Music Recommendations：Modeling Music Ratings with Temporal Dynamics and Item Taxonomy, Gideon, RecSys'11,2011』を参照されたい。当該手法は、テンソル分解ではなく、行列分解において、タクソノミを用い、アーチスト、アルバム、ジャンルにバイアスを掛けて学習することで予測精度を上げる技術である。
【００３２】
なお、tucker分解ではなく、その確率的発展版のptuckerを用いてもよい。実際、後述する実験ではptuckerを用いている。
【００３３】
［第２の実施の形態］
本実施の形態では、ユーザが次に購入する商品を予測する商品推薦装置について説明する。
【００３４】
図３は、本発明の第２の実施の形態における商品推薦装置の構成を示す。
【００３５】
同図において、図１の構成と同一部分には同一符号を付し、その説明を省略する。
【００３６】
商品推薦装置は、粒度調整部１、テンソル構築部２、商品予測部５を有する。
【００３７】
粒度調整部１には、複数次元の関係を示す観測データとタクソノミ（クラスの階層構造）が入力され、前述の第１の実施の形態と同様の処理を行う。複数次元の関係を示す観測データとしては、個人（ユーザ）の商品に対する消費頻度からなるユーザの商品の消費履歴が入力される。また、タクソノミとして、FreeBase(登録商標)やWikiPedia（登録商標）、商品販売元の品番情報等の情報源から得られる商品のクラス階層構造が入力される。
【００３８】
テンソル構築部２は、前述の第1の実施の形態と同様の方法で、ユーザ、商品、クラスからなる３次元のテンソルを構築する。
【００３９】
商品予測部５は、テンソルをテンソル分解法により分解及び復元することでユーザが関心を持ち得る推薦アイテム集合（商品）を予測する。商品の予測値は、基本的には、ユーザid（u）とアイテムid(i)の関係のみを用いるのであるが、テンソル構築部２でクラスの粒度調整結果から、一つの評価行為から、複数の（ユーザ、クラス、アイテム）の関係が生じている場合は、末端クラスに対応するクラスid(c)に対応する関係と対応する予測値を選定する。
【００４０】
なお、上記の構成では、粒度調整部１を含む構成としているが、粒度調整部１を具備しない構成も考えられる。この場合、テンソル構築部２は、外部から入力されるタクソノミ上の末端クラスを利用するものとする。
【００４１】
以下に、本発明と従来技術との差異を述べる。
【００４２】
非特許文献２の行列分解により行動を予測する技術は、タクソノミを用いておらず、語彙の曖昧化の解消及びクラスの粒度を調整することで、テンソルのスパーシティを回避したり、複数の粒度からなる関係補強などは行わない。
【００４３】
非特許文献４は、行列分解の研究であり、テンソル分解でない。また、アイテムのタクソノミは用いるが、複数粒度のクラスを用いていない。
【００４４】
＜実験＞
twitter（登録商標）上での音楽視聴履歴をクロールしたデータセットを用い、ptuckerで検証を実施した。７／６から７／１３日までのデータセットを用い、７／１４から７／２１のデータセットでの視聴を予測した結果を以下に示す。
【００４５】
１．行列分解の場合（非特許文献２の方法）
rmse=0.2317
２．テンソル分解の場合（非特許文献３の方法）
rmse=0.2024
３．タグではなくクラスを用いた場合（本発明）
rmse=0.2018
４．最下層クラス＋上位クラスを用いた場合（複数粒度のクラスを混ぜ込んでテンソルを構築した場合）
rmse=0.1967
上記の１．は、２次元行列分散に適用した場合（「matrix factorization」に相当）であり、非特許文献２そのものではないが、非常に近い手法である。
【００４６】
上記から、結果として、本発明の手法が、他の場合に比べて精度が良いことを確認した。
【００４７】
なお、上記の図１に示す欠損値推定装置、図３に示す商品推薦装置の構成要素の動作をプログラムとして構築し、欠損値推定装置、商品推薦装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【００４８】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。
【符号の説明】
【００４９】
１  粒度調整部
２  テンソル構築部
３  欠損値推定部
４  記憶部
５  商品予測部
【図１】
2014096118.tif 000005
【図２】
2014096118.tif 000006
【図３】
2014096118.tif 000007