IIR 輪講復習 #18 Matrix decompositions and latent semantic indexing
お知らせ たつをさんによる補足情報 復習資料おきば
参考 csli.stanford.edu/~hinrich/information- retrieval-book.html csli.stanford.edu/~hinrich/information- retrieval-book.html 本資料は書籍の輪読会に向けたサマリ 本資料内で一部上記ドキュメント, スライド からの引用あり
本章のテーマ 行列の特異値分解 (Singular value decompositions, SVD) 潜在的意味インデキシング (Latent semantic indexing, LSI)
単語文書行列 単語文書行列 C 情報検索アルゴリズムのキモ M 単語 ( 辞書 ) 、 N 文書 → M 次元, N 列 内積計算 → スコアリング IIR これまで (7 章 ) スパースであることを利用して枝狩り 転置インデックスが利用できる
LSI は何がしたいか C をより小さな行列 C k に近似したい どのように近似 ? → C と C k の二乗誤差を最 小に なぜ ? 次元を「削減」することで計算量を下げる 次元を「縮退」させることで適合度を上げる car で automobile を検索
次元の削減 行列 C の次元 ・・・ 単語 × 要らない次元 ( 行 ) をいきなり削る ○ 似たような次元 ( 行 ) をまとめてから要らな い次元を捨てる どうやって ? 行列の特異値分解 (SVD)
固有値と次元の重み
固有値 (eigenvalue) Ax = λx x はベクトル λ ・・・ 固有値, x ・・・ 固有ベクトル 特性方程式 |A - λI| = 0 により算出 写像 A により方向を変えないベクトル 固有値、固有ベクトル 便利な数学的性質を多数持つ 行列の対角化 → A n, 量子力学, 主成分分析, PageRank, HITS etc その行列の性質をよく表現する値, ベクトルであり、 行列を分解するのにも使える。にも関わらず、行列 自身がそれを内包しているところが面白い
固有値と次元の重み λ 1 = 30, λ 2 = 20, λ 3 = 1 固有値, 固有ベクトル 固有ベクトルどうしは一次独立。例として、適当なベクトル v は固有 ベクトルの線形結合で以下のように表せる
固有値と次元の重み ( 続き ) 固有ベクトルの線形結合で表現した v を S で写像してみる (ちなみにλ 1 = 30, λ 2 = 20, λ 3 = 1) S による写像において、相対的に小さな固有値に対応する固有ベクト ル (ここではx 3 )の次元の影響が小さいことが分かる
固有値と次元の重み ( 続き ) 小さな固有値に対応した固有ベクトルの 次元は行列の性質に与える影響が小さい 行列を固有ベクトルで表現、すなわち基 底を固有ベクトルに変更できれば、小さ な固有値の次元を無視することで近似で きる そこで固有値による行列分解 S = UΛU -1
SVD
M ≠ N 行列を分解したい 固有値分解で次元削減の手がかりが得ら れる、しかし固有値分解は正方行列 (M = N) にしか利用できない 単語文書行列は多くの場合 M ≠ N M ≠ N でも固有値絡みで行列を分解でき ないか → SVD C = UΣV T
SVD 任意の行列 C に対して C = UΣV T U = CC t の固有ベクトルを列とする行列 V = C t C の固有ベクトルを列とする行列 CCt, CtC ・・・ 自己相関行列 U, V は自己相関行列 = 対称行列から求めた固有ベクトルを 成分にしている。対称行列の固有ベクトルは固有ベクトル同 士で必ず直交するので U, V は直交行列 Σ は特異値 σ ij = (λ ij ) 1/2 を対角成分とする対角行列 固有値分解によく似たかたち σ は U, V t を構成するベクトルの「基底としての重 み」を表している σ の値に従って次元を削減できる
SVD による行列の低階数近似 C = UΣV t の Σ を構成する σ ij のうち、値が小さな 物を 0 にする ランク ( 階数 ) が下がる = 基底の数が減る Σ → Σ k C k = UΣ k V t 重要な基底だけを残して小さな行列に近似したことになる C k の近似の妥当性 σ の値による低階数近似は C と C k の二乗誤差 ( フロ ベニウスノルム ) を最小化することが知られている
SVD は何をしているのか 1.C の行ベクトルの張る空間の正規直交基底と、 列ベクトルの張る空間の正規直交基底を同時に 求めている 2. データを表現するのに最適な基底として自己相 関行列の固有ベクトルを求めている U と V t さらに各基底の重要度を特異値 σ が与える 単語文書行列の SVD → 文書を表現するの最適 な正規直交基底と単語を表現するのに最適な正 規直交基底を同時に求めている
単語文書行列の SVD による次元圧縮 Latent semantic indexing SVD で小さくした C k にいつもの内積計算な ど 単語文書行列を SVD したときに使った CC t, C t C は単語の共起、文書の共起 基底を固有ベクトルに変更したことで、 SVD は似たような共起をする単語, 文書の次元を 一つにまとめたことになる ゆえに、小さな行列に近似したにも関わらず 適合率が向上する
主成分分析と SVD ※『情報検索アルゴリズム』より
主成分分析と SVD 主成分分析 ・・・ 多変量解析 基底を変換して情報量の多い軸で変量を 解析する l 2 軸は無視できる!
主成分分析と SVD ( 続き ) 主成分分析の基底の求め方 特定の次元を削減したときに情報量を損なわ ないように 情報量を損なわない = 情報量を最大にする 情報量最大 = データの分散が大きくなる基底 を選ぶ データの分散を考えたい → 共分散行列を利 用する
主成分分析と SVD ( 続き ) 共分散行列 対角成分が分散、それ以外が共分散 (μ i は次元 i 番目の平均, D が単語文書行列, S が共分散 行列)
主成分分析と SVD ( 続き ) 共分散行列を固有値分解する S は (D - M)(D - M) T → 対称行列 S = UΛU T 分解により得られた行列 U への写像 固有ベクトルが各列 ・・・ 固有空間への写像 元々のデータを U に写像して ( 固有ベクトルの 張る固有空間への基底変換 ) から共分散行列 S ' を 求めてみる d = Ud' → U -1 d = U -1 Ud' → U -1 d = Ud' → U t d = d' → d' = U t d S' = U T SU = Λ
主成分分析と SVD ( 続き ) 固有空間へ写像したデータの共分散行列が Λ Λ は対角行列 → Λ の対角成分は固有値 共分散行列の対角成分は分散、それ以外が共分散 → 共分散行列の固有値 = 分散 ! 基底を固有ベクトルに変換してから、対応する 固有値が大きな次元を扱うことは、分散が大き な次元を扱っていることに等しい 固有ベクトル = 主成分
主成分分析と SVD ( 続き ) 共分散行列は自己相関行列 (D - M)(D - M) T 自己相関行列 ・・・ 自分自身の転置との積 AA T データを表現するのに最適な基底として自己 相関行列の固有ベクトルを求めている → SVD と同じ 主成分分析と SVD は本質的に等価な技術
まとめ 大きな固有値に対応した固有ベクトルは、その 固有ベクトルが張る空間において重要な基底に なる 基底を固有ベクトルへ変更し、固有値の大きい 次元を考えられるようにするのが SVD や主成分 分析 自己相関行列が共起を表しているため、固有値の大 きな基底は似たような次元をまとめたものとみなせ る = 情報量が大きい次元への " 縮約 " 単語文書行列を SVD により低階数近似すると計 算量が減り、適合率が向上する ・・・ LSI
参考文献 北研二, 津田和彦, 獅子堀正幹 『情報検索 アルゴリズム』, 共立出版, 2002 金谷健一『これなら分かる応用数学教室 ― 最小二乗法からウェーブレットまで』, 共 立出版, 2003