現在,「補助変数を用いた零過剰ポアソン非負値行列因子分解」と題して,研究に取り組んでおります.このページでは,こちらの研究内容についてご紹介します.
行列とは,運動会で整列するときのように,数字を以下のようにきれいに並べたものをいいます.
上記の図は,
横方向に数字が3列分,並んでいる
縦方向に数字が4列分,並んでいる
という2つの見方ができます.
1.の見方の場合の3本の列のことを,数学では『行(row)』と言います.
一方で,2.の見方の場合の4本の列のことを,『列(column)』と言います.
普通に暮らしているときは,例えばラーメン店に人が横に並んでいようが,縦に並んでいようが,どちらも日本語では「列」あるいは「行列」という言葉を使いますが,数学の世界では上記のように横に並んだものは『行』,縦に並んだものは『列』と言います.(ちなみにラーメン店の「行列」は英語では「line」です.)
そしてこの『行』を縦に並べたもの,あるいは別の見方をすれば,『列』を横に並べたもののことを,『行列(matrix)』というわけです.そして,上記の『行列』は,『行』が3本,『列』が4本あるので,『3×4行列』という言い方をします.(「×」は「かける」と読みます.)
このような『行列』は,データを整理する際に便利です.例えば,10人の買い物客が3つの商品それぞれについて何個買ったのかを調べたとします.このとき,ある買い物客Aさんの3つの商品の買った個数を表す数字を横に並べて,次にBさんの3つの商品の買った個数を表す数字を横に並べて・・・というのを10人分繰り返せば,10本の『行』を作ることができます.この10本の『行』を上から順に縦に並べていくと,これは『10×3行列』になります.このとき,この『行列』は,10個の数字を縦に並べた『列』が3本ある,という見方もできます.
「『行』が10本ある」という見方をすれば,「10人の買い物客が3つの商品をどれくらい買ったのか」という視点でデータを眺めることができますし,「『列』が3本ある」という見方をすれば,「3つの商品が10人の買い物客にどれくらい買われたのか」という視点でみることができます.このように,『行列』を使ってデータを整理して眺めることで,データの解釈が可能になります.
非負値行列とは、全ての値が、0以上の値で成り立っているような行列のことを言います。例えば、何らかのイベントが起きた回数や、ものの個数(カウント)を行列にまとめたものは、非負値行列になります。上記の購買個数に関するデータがまさにそれです。
非負値行列因子分解とは、データとして得た非負値行列を、2つのより小さい行列の積で表すことを意味します。英語で書くとNonnegative Matrix Factorizationであり,略してNMFと呼ばれます.NMFでは,2つの行列の積とデータの間の誤差を小さくするように、2つの行列を求めます。これを行い、求められた2つの小さい行列を見ることで、データに隠れている構造を把握することが可能となります。
例として、以下の図をご覧ください。これは,12人の人が,3つのウェブサイトを,ある一定期間で何回閲覧したか,をまとめたデータ行列(左から1つ目の行列)にNMFを適用した例です.左から3つ目の行列と一番右の行列がNMFによって推定された小さい行列になります。2つの小さい行列の行列積が,左から2つ目の行列です.この行列と,一番左のデータ行列の誤差が小さくなるように,2つの小さい行列を推定します.小さい2つの行列のうち、右側の行列は、閲覧したウェブサイトのパターンを表します。1行目は、w1とw2の値が大きいので、これら2つのウェブサイトを閲覧する人のパターンを意味します。2行目は、w3のみの値が大きいので、w3のウェブサイトを閲覧する人のパターンを意味します。このように,NMFにより、これら2つのウェブサイト閲覧パターンを抽出することができます.いくつのパターンを抽出するかは,解析者が決める必要があります.このパターンの数は,分解された左側の行列の列数(あるいは右側の行列の行数)に相当し,基底数(Number of bases)と呼びます.
この例では、3列しかない、とても小さい行列ですから、わざわざ非負値行列因子分解をしなくても、データを直接眺めればそのようなパターンがありそうだということは容易に理解できるかもしれません.しかしながら,得られたデータ行列のサイズがとても大きい場合は、そういうわけにはいかず、ここにNMFを行うメリット、意義があります。
左から3つ目の小さい行列は,各ユーザーが,先に述べた2つの閲覧パターンにどれくらい従っているのか,を表しています.例えば2番目のユーザは,1つ目のパターンでは10.3,2つ目のパターンでは3.2となっていますので,どちらかといえばw1とw2を閲覧する傾向が強い,ということがわかります.
零過剰とは,データに0が多いことを意味する言葉です.零過剰なデータ,零過剰な行列,などと使います.データに0が多い場合は,(設定する基底数にもよりますが)NMFにおけるデータ行列と近似行列の近似精度が悪くなる傾向にあります.近似精度が悪い場合は,NMFで推定された小さい行列を用いた解釈が,得られたデータの事実を反映していない可能性があります.
ポアソンとは,確率分布のひとつであるポアソン分布のことです.正しいさいころの目では1~6の数字が同じ確率で出ますが,ポアソン分布では,0以上の整数値それぞれに対して確率が与えられており,その確率に従って,0以上の整数値のうちのひとつが出ます.これまで例として挙げてきた,カウントデータの統計モデルを考える際に用いられます.以下の図は,期待値が2の場合のポアソン分布の確率関数です.
零過剰ポアソンとは,ポアソン分布と,確率100%で0をとる確率分布との混合分布のことを指します.混合分布とは,2つ以上の確率分布を,それぞれに割り当てられた混合比率をかけて足し算して得られる確率分布のことです.零過剰ポアソン分布は零の多いカウントデータに対して応用されます.提案手法は,こちらの零過剰ポアソン分布に基づき,開発しました.下図は零過剰ポアソン分布を模式的に表したものです.確率1で0をとる分布とポアソン分布の,ある混合比率"w"(wは0から1の値)での重み付け平均となっていることがわかります.
補助変数(Concomitant variable)とは,マーケティングサイエンスの分野でよく用いられる用語で,人々の行動を決定づける,人が持つ要因のことを指すことが多いです.例えば,年齢,性別,職業,収入,などといった人口動態変数や,価値意識や消費意識といった心理的変数が,補助変数として用いられます.本研究では,購買やWeb閲覧といった行動を統計モデルで表現する際に,どの統計モデルに従うのかを説明する変数として,これら補助変数を用いて,解釈の幅を広げることを試みています.
こちらのスライドをご覧ください.
謝辞:本研究はJSPS 科研費JP17H06779 の助成を受けたものです.