行動ログ解析の補足

画面操作キー(全画面,ワイド表示,ソースコードハイライト)

はじめに

  • 行動ログ解析には,計算機知識(疎行列の読み込み,操作)と行列によるデータ解析の知識が必要
  • 本スライドは,後者の1つである「相関」について補足
  • 行動ログ解析において相関を使うとは,「あるアイテムについて関心があるユーザに,そのアイテムと相関が高いアイテムを推薦する」であったり「相関が高い情報を参考に行動(購買,評価)を予測する」ことなどである.
  • 相関について注意することは,ユーザの行動を特徴ベクトルと考えているときは,アイテム間の相関が計算され,アイテムの特徴を特徴ベクトルと考えているときは,ユーザ間の相関が計算されることである.
  • 特徴ベクトル集合を行列で考え,その列ベクトルを特徴ベクトルとする場合,着目する相関を得るためには,行列の転置が必要なことがある.行列の転置を考慮すれば,アイテム間とユーザ間の相関のいずれもが計算可能.

相関(1)

\[ \boldsymbol{x}_i = \left(\begin{array}{c} x_{1i} \\ \vdots \\ x_{mi} \\ \vdots \\ x_{Mi} \end{array} \right), \boldsymbol{X} = \left( \begin{array}{ccccc} x_{11} & \cdots & x_{1i} & \cdots & x_{1N} \\ \vdots & \ddots & \vdots & \ddots & \vdots \\ x_{m1} & \cdots & x_{mi} & \cdots & x_{mN} \\ \vdots & \ddots & \vdots & \ddots & \vdots \\ x_{M1} & \cdots & x_{Mi} & \cdots & x_{MN} \end{array} \right) \]
  • 特徴ベクトル\({\boldsymbol x}\)を列ベクトル(\(M\)次元)で表し,\({\boldsymbol x}_i\)を\(N\)本束ねたものを\({\boldsymbol X}\)と表します
  • 例えば,特徴ベクトルが,都道府県のテスト結果{数学A,数学B,国語A,国語B}とします.
  • この場合,特徴ベクトルのある次元と別の次元との相関を考えることは,
  • 例えば数学Aができる県は数学Bができる(相関大)か関係ない(相関≒0)かを見ること

相関(2)

  • 式の\(r\)は,ある2つの次元(\(x\)と\(y\))の相関(ネイマン・ピアソンの積率相関).\(x_i\)は\(i\)番目の要素,\(\bar{x}\)は\(x\)の平均
  • \[ r = \frac{\sum_{i=1}^N(x_i-\bar{x})(y_i-\bar{y})} {\sqrt{\sum_{i=1}^N (x_i-\bar{x})^2}\sqrt{\sum_{i=1}^N (y_i-\bar{y})^2}}\]
  • 平均\(\bar{x},\bar{y}\)からの差\((x_i-\bar{x}), (y_i-\bar{y})\)で考える.数学Aが平均より良い時,数学Bは平均より良いのかをみる
  • 分子は\(x,y\)の共分散(平均からの差の相関情報).ただし,下図左のように,\(x\)方向と\(y\)方向の広がり(標準偏差\(\sigma_x,\sigma_y\))は一定しない.そこで,分母\(\sigma_x \sigma_y\)で割り正規化する(直方体の箱にラグビーボールを斜めに入れ,立方体に変形するイメージ).これらを整理すると
  • 相関の式は,平均からの差分で考え(原点を分布の中心に移動し),大きさを正規化した下図右の散布図で,\(r = \frac{1}{N}\sum_{i=1}^N x_i y_i\)を計算すること.正規化により,相関\(r\)は-1から1までになる

相関(3)

  • \(M\)次元のベクトル集合があるとき,考えうる相関は次元同士の組み合わせだけある
  • 行列演算を使えば,すべての組み合わせの相関を一度に求めることが可能(p.120のcalcP.cpp参照)
  • 特徴ベクトル\({\boldsymbol x}\)の平均を\({\boldsymbol \mu}\)とする.\({\boldsymbol \mu}=\frac{1}{N}{\boldsymbol X}{\boldsymbol 1}\)(\({\boldsymbol 1}\)は全要素1の列ベクトル), \({\boldsymbol 1}^t{\boldsymbol 1}=N\), \({\boldsymbol D}={\boldsymbol X}-{\boldsymbol \mu}{\boldsymbol 1}^t\).すると分散共分散行列\({\boldsymbol C}_{ov}\)は下記で計算できる(p.108参照.途中は導出過程) \begin{align*} {\boldsymbol C}_{ov}&=\frac{1}{N}{\boldsymbol D}{\boldsymbol D}^t = \frac{1}{N}({\boldsymbol X}- {\boldsymbol \mu}{\boldsymbol 1}^t)({\boldsymbol X}-{\boldsymbol \mu}{\boldsymbol 1}^t)^t \\ &= \frac{1}{N}{\boldsymbol X}{\boldsymbol X}^t - \frac{1}{N}{\boldsymbol X}({\boldsymbol \mu}{\boldsymbol 1}^t)^t - \frac{1}{N}{\boldsymbol \mu}{\boldsymbol 1}^t{\boldsymbol X}^t + \frac{1}{N}{\boldsymbol \mu}{\boldsymbol 1}^t({\boldsymbol \mu}{\boldsymbol 1}^t)^t \\ &= \frac{1}{N}{\boldsymbol X}{\boldsymbol X}^t - \frac{1}{N}{\boldsymbol X}{\boldsymbol 1}{\boldsymbol \mu}^t -\frac{1}{N}{\boldsymbol \mu}({\boldsymbol X}{\boldsymbol 1})^t + \frac{1}{N}{\boldsymbol \mu}{\boldsymbol 1}^t{\boldsymbol 1}{\boldsymbol \mu}^t\\ &= \frac{1}{N}{\boldsymbol X}{\boldsymbol X}^t - {\boldsymbol \mu}{\boldsymbol \mu}^t - {\boldsymbol \mu}{\boldsymbol \mu}^t + {\boldsymbol \mu}{\boldsymbol \mu}^t = \frac{1}{N}{\boldsymbol X}{\boldsymbol X}^t - {\boldsymbol \mu}{\boldsymbol \mu}^t \end{align*}
  • ここで,要素が各次元\(m\)の標準偏差の逆数\(1/\sigma_m\)(\({\boldsymbol C}_{ov}\)の対角成分の平方根の逆数)である対角行列\({\boldsymbol T}\)を使うと,要素\(ij\)が次元\(i\)と\(j\)の相関となる\(M\times M\)の相関行列\({\boldsymbol P}\)は,\({\boldsymbol C}_{ov}\)と下記の関係になる \[{\boldsymbol P} = {\boldsymbol T}{\boldsymbol C}_{ov}{\boldsymbol T}. \]

相関(4)

  • 特徴ベクトルの変換\({\boldsymbol y}={\boldsymbol A}^t{\boldsymbol x}\)後の分散共分散行列\({\boldsymbol C}'_{ov}\)が,変換前の分散共分散行列\({\boldsymbol C}_{ov}\)を用いて,\({\boldsymbol C}'_{ov}= {\boldsymbol A}^t{\boldsymbol C}_{ov}{\boldsymbol A}\)と表せる(教科書p.111)ことから
  • 相関行列\({\boldsymbol P}\)の式 \[{\boldsymbol P} = {\boldsymbol T}{\boldsymbol C}_{ov}{\boldsymbol T}, \] は,特徴ベクトル\({\boldsymbol x}\)を \[{\boldsymbol y}={\boldsymbol T}^t{\boldsymbol x},\] で変換してから分散共分散行列を計算したもの(\({\boldsymbol T}^t={\boldsymbol T}\)に注意)であることを表している
  • 特徴ベクトルをわざわざ変換してから分散共分散行列を計算する必要はないが,変換して注目する2つの次元についての散布図を作成することで,相関関係の有無が視覚的に確認できる(教科書p.121参照)

<Thank You!>

行動ログ解析の補足 内山俊郎