無限潜在特徴モデルを実装した
引き続きノンパラベイズ。今回はノンパラベイズ本の7.4節で説明されてる無限潜在特徴モデル(Infinite latent feature model; ILFM)を実装した。
ノンパラメトリックベイズ 点過程と統計的機械学習の数理 (機械学習プロフェッショナルシリーズ)
- 作者: 佐藤一誠
- 出版社/メーカー: 講談社
- 発売日: 2016/04/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
無限潜在特徴モデル
一言で言えば、潜在次元に無限次元を仮定する行列分解。
与えられたデータ行列 をバイナリ行列 と特徴行列 の積に分解する。
バイナリ行列の要素 はサンプル n が k 番目の潜在特徴を持つか持たないかを表している。k番目の潜在特徴は のk番目の行ベクトル で表されている。つまり、あるサンプルのデータベクトル は無限個ある潜在特徴のうちのいくつかの和になっている。
通常の行列分解では分解後の行列の潜在次元数 K を予め決めなきゃいけないんだけど、このモデルはノンパラベイズなので決めなくて良い。データから勝手に決まる。さすがノンパラベイズ。
モデルの説明とパラメータ推定の説明は上の本に詳しく書いてあるので割愛。
実装
特に注意すべき点はないと思うけど、強いて言うならサンプリングの事後分布を計算するときにunderflowしないように対数のまま正規化してやるくらい。
実験
alpha
を小さく設定してもどうしても真のK
より大きな潜在次元数が推定されてしまう。何か間違ってるのかこういうもんなのか判断ができない。相対誤差は十分(?)小さくなってる。