Probabilistic Latent Semantic Visualization: Topic Model for Visualizing Documents Tomoharu Iwata, Takeshi Yamada ,Naonori Ueda @NTT CS研 ,KDD 2008 11/6 機械学習勉強会 江原 遥 Visualizationを 長年やっている方 (それ以外もたくさん・・・)
Visuzalizationという分野がある 「自然言語処理は地味で学生に人気がない! もっとVisualにすれば人気が出るはずだ!」 荒牧さん@NLP若手の会 この論文が、まさしくこれをやってくれています。 企業でありそうな話: 「言語の研究室にいたんだから、このアンケート、なんかいい感じに処理しといてよ」と、製品アンケートのデータの山を渡される。 →ここで拗ねずに、真面目に定式化したのがこの論文
どういう論文? PLSAをVisualization用に拡張した論文。 「同じようなトピックの文書が近くになる様に、文書を2,3次元にプロットする」のが、この論文の目的。
今日の説明の構成 今日は、 LSA→PLSA→LDA→PLSV という流れで説明していきます。分かっている方は、フォローしていただけるとありがたいです。
パラメータ数による比較 K: topicの数 V: 語彙数 N: 文書数 D: 2次元か3次元(Visuzalization用) モデル 効率的な解法 LSA (KV+KN) SVD (Lanczos法) PLSA KV+KN EM Nが入っているのでoverfitしやすい LDA KV+K 変分ベイズ 問題のNを消した PLSV KV+(K+N)D Dが小さい時、Nを抑えられる K: topicの数 V: 語彙数 N: 文書数 D: 2次元か3次元(Visuzalization用)
LSA (SVD, 特異値分解) という書き方が一般的ですが・・・ 実は、こうバラして書いたほうがずっとわかりやすいと思う:
SVDのイメージ \ \ \ \ N (元の行列) =
特異値分解はバラした方がよくわかる
べき乗法
SVDの求め方 Sparse Matrix: べき乗法 →Lanczos法 Dense Matrix: LSIのライブラリはほとんどコレでやっている。 HITSアルゴリズムやる時にも使う Dense Matrix: dq-ds法など最近新しい専用のがあるらしい
NNの固有値分解
LSA->PLSA
LSA->PLSA(2) LSAとPLSAだと解き方が全然違うのに、PLSAがLSAの拡張ということになっているのは、次の式による: 直行行列でない
LSA->PLSA(2) Aspect Modelの行列表記 ふつうは、行列表記すると分からなくなるので、みんなバラして(分解して)書いている。 (LSAの時は、みんなカッコつけてバラさないのに・・・)
PLSAのイメージ \ \ \ \ P (元の行列) =
PLSAはGraphical Modelで、 二通りにかける (a)と(b)は、モデル的に等価。 つまり、(b)でパラメータを推定したら、ベイズの定理でひっくり返すだけで、(a)のパラメータが求まる。 ただし、解く時は、(b)に対してEM-algorithmを使って解く。
bleiの元論文では (a)の形でPLSAが書いてある Hoffmann ‘99 blei 04
PLSAの解き方:EM P(潜在変数|データ)が計算できる ことが、EMの要。
PLSIからLDAにしたい動機: パラメータ数 PLSI: KV+KN個のパラメータ:文書数Nに線形 LDA: KV+K個のパラメータ:
PLSA->LDA K次元x1 K次元x文書数 θm: topic proportion。文書中のtopicの比率。K(topic数)次元ベクトル PLSI:文書数だけtopic proportionを作成→パラメタKN個, overfit LDA:overfit対策でDirichlet分布からサンプルしてα1…αKのK個に K次元x1 K次元x文書数
LDAだとEMが動かない 赤枠:EMが動かない intractable due to the coupling between θ and β1:K in the summation over latent topics EMは動かない。普通は、MCMC, 変分ベイズ….
PLSV
PLSV 目的:D=2,3次元のユークリッド空間に、ドキュメントを、「なるべくトピックの近いドキュメントが近くになるように」プロットすること (-3.1, 3) トピックの座標 文書の座標 トピックはK個>>D次元に注意
PLSV K
KN >> DN+DKが、この論文のキモ PLSA -> PLSV θm: topic proportion。文書中のtopicの比率。K次元ベクトル。 PLSA:文書数だけtopic proportionを作成→パラメタKN個, overfit PLSV:文書数だけD次元座標を作成。topicもD次元座標で表現。 D次元空間のtopic-文書の距離でtopic proportion決定。DN+DK個 KN >> DN+DKが、この論文のキモ D次元x文書数 K D次元xK 注:論文中ではKが Z(large Z)に相当 K次元x文書数
LDAとも比べてみる D次元x文書数 D次元xK K次元x1 θm: topic proportion。文書中のtopicの比率。K(topic数)次元ベクトル LDA:overfit対策でDirichlet分布からサンプルしてα1…αKのK個に PLSV:文書数だけD次元座標を作成。topicもD次元座標で表現。 D次元空間のtopic-文書の距離でtopic proportion決定。DN+DK個 D次元x文書数 K D次元xK K次元x1 注:論文中ではKが Z(large Z)に相当
topicやwordがmultinomialで出てくるのは普通 K
Dirichlet分布が出てくるけど、Bayesじゃないから、EMで解ける
PLSVの解き方 posteriorをEMでMAP推定 事後対数尤度: E-step 単にMult.
M-step Q関数を 最大化したい θに関してはexactに出る: xとφに関しては、gradient求めて準ニュートン法 θとxn,φzを交互に最大化?
Parametric Embedding (PE) 筆者が過去に提案した、一般の文書生成モデルをVisualizeする方法。PLSAをPEで表示するよりもPLSVの方が、良いVisuzalizationが可能だ、ということを言いたいので導入。 ←与える文書生成モデルでのtopic proportion。入力。 PLSAなら、P(z|d) = P(d,z)/(Σk P(d|z)P(z)) 与えた文書生成モデルとtopic proportionが似ている座標の取り方をKL最小化で見つける gradient-basedで最適化: (たぶんBFGS?):
評価 データセット3つ:NIPS, 20News, EachMovie NIPS: 593 documents, 14036 vocabulary 13research areas 20News data: 20 newsgroups 20,000 articles, 6754 vocabulary 20 discussion group EachMovie: Collaborative filteringの標準的なbenchmark data movies→documents, users→wordsと読み変え 764 movies, 7180 users, 10genres
k-NN Accuracy Visualization空間でk-nearest neighborして Visuzalizationの精度を求める :k-NNを使った時のx_nのlabelの予測値
ご清聴ありがとうございました