Rohit Singh, Tommi Jaakkola, and Ali Mohammad. 6.867 Machine Learning. Fall 2006. Massachusetts Institute of Technology: MIT OpenCourseWare, https://ocw.mit.edu. License: Creative Commons BY-NC-SA.
モデル選択理論難しすぎ
Mixture models
mixture model(混合モデル)は与えられたデータの曖昧さを捉えるモデルで,データの背後に有る,観測できない要因についての仮定を行う. 観測された一つのexampleをxというベクトルで表すとする. exampleはm個の要因(1,...mとする)のどれかによって生成されているmをcomponentの数という. j∈{1,..m}その要因であるとすると,xの事後確率はP(x|j)である. またjの頻度をP(j)とすると,P(x,j)=P(j)P(x|j). 実際のjが何であるかは一般にはわからず,全ての{1,...,m}について混合して,xの確率
P(x)=m∑j=1P(x|j)P(j)
となる.
Example: Student exam model: 1-year
例えば,学生たち{1,...,n}の試験の結果D1={x1,...xn},xi=(問1の点数, 問2の点数,...)をモデル化することを考える. 学生たちは,例えば学士での専攻のような,Dでは与えられていない要因によってことなった正答/誤答の傾向が存在すると仮定する. そのような要因が合計でm個(このmを選ぶのはmodel selectionの問題である)あって,さらに個々の学生がどれに該当するかわからないときのモデリングを考える.
それぞれの学生の点数が独立とするなら
P(x1,...,xn|θ)=n∏t=1[m∑j=1P(xt|j)P(j)]である.
Example: student exam model: K-years
上の例で,過去K年間のデータがあるとする. k年での学生数nkで,xk,tは学生tのk年目の試験結果とする(tはただのインデックスで,tが同じだからといって同じ学生であるというわけではない). mとP(x|j)は変わらないと仮定する. しかし学生の数nkは各年でことなって,jの頻度P(j)も一定でなく,P(j|k)と条件付きにする. この場合のmixture modelは
P(x|k,θ)=m∑j=1P(x|θj)P(j|k)
そして全てのデータD={D1,...,Dk}を考えたときの尤度は
L(D;θ)=K∏k=1nk∏t=1P(xk,t|k,θ)=K∏k=1nk∏t=1(m∑j=1P(xk,t|θj)P(j|k))
となる.ここでのθは{θj},{P(j|k)}をも決定する.
Collaborative filtering
mixture modelは推薦システムにもよく使われる. n人のユーザにm本の映画を推薦する問題を考える. ユーザはmのうち極わずかだけに点数をつけているとして,つけていない映画たちをどう評価するかを推測するのが我々の課題である. このような問題をcollaborative filtering(協調フィルタリング)という.
点数はrij∈{1,...,5}をつけられるとする. ただしrijはユーザiの映画jに対する評価とする. ユーザたちが実際に与えた評価をDとする. rijが与えられているときrij∈IDと書く.
collaborative filteringでは,ユーザと映画の両方にいくつかの種類があって,それが評価に影響すると仮定する.すなわち,それぞれの映画が”movie types” zm∈{1,..,Km}の分布の上にあって,ユーザも”user types” zu∈{1,...,Ku}の分布の上にあるとする. 有る映画が,すべてのユーザにとって同じタイプであるとは考えず,それぞれの映画が,その映画に対応した特徴のバッグをもっており,それぞれのユーザごとにそのバッグからタイプを取り出すと考える. この仮定はユーザにも適用される. すなわち点数を付けるたびに,そのユーザのタイプのバッグからタイプが取り出される.
rij∉IDを以下によって推測する.
P(zm|j)から映画jのタイプをサンプルし,またP(zj|i)からユーザiのタイプをサンプルする. さらにP(rij|zu,zm)からrijをサンプルするのである. これを全てのzm,zuに足し合わせて
P(rij|i,j,θ)=Kj∑zu=1Km∑zm=1P(rij|zu,zm)P(zu|i)P(zm|j)
となる. θはタイプから評価への写像{P(r|zu,zm)}と{P(zu|i)},{P(zm|j)}を決定する.
Dを与えられたときの尤度は
L(D;θ)=∏(i,j)∈IDP(rij|i,j,θ)
である.
さらに,ユーザの評価のスタイルもモデルに組み込める. 例えば3,4,5のような高評価に偏った評価をする人や,1と5のみのような極端な評価をする人を考えることが出来る.このような評価スタイルの集合を{1,...,Ks}とする.ユーザのスタイルは全ての映画に一貫しているが,個々のユーザにどうスタイルを割り当てるかは未知とする. ユーザがスタイルs∈{1,...,Ks}をもつ確率はP(s)と書ける. スタイルも{1,..,Ks}すべてをPS(s)を重みにして総和を考えて尤度を求めるとすると,尤度L′は,
L′(D;θ)=n∏i=1[Ks∑s=1P(s)∏j:(i,j)∈ID(Ku∑zu=1Km∑zm=1P(rij|zu,zm,s)P(zu|i)P(zm|j))_(1)]
となる.(1): user iがスタイルsによって評価する尤度
このモデルは
(Ks−1)_P(s)+(5−1)KuKmKs_P(r|zu,zm,s)+n(Ku−1)_P(zu|i)+m(Km−1)_P(zm|j)
個のパラメータを持つ.
さらに充実したモデルでは,”missing elements”のモデル,すなわちある映画の評価がなぜなされないかもモデル化するはずである.
Estimating mixtures: the EM-algorithm (期待値最大化法)
midture modelの例をいくつか見てきた. データによく合うようにパラメータを設定する方法を論じる. xの要因jが不明なので,{1,..,m}で総和を取ってきたのだが,まずは要因がわかっているモデルを考える.
Complete data
P(x;θ)=m∑j=1P(j)N(x;μj,Σj)
それぞれのxtに対応するjtが既知であると仮定して議論する. δ(j|t)={1 (j=jt)0 (j≠jt)を使うと便利である. log-likelihoddは
l(x1,...,xn,j1,...,jn;θ)=n∑t=1log[P(jt)N(x;μjt,Σjt)]=n∑t=1m∑j=1δ(j|t)log[P(j)N(xt;μj,Σj)]=m∑j=1(n∑t=1δ(j|t))logP(j)+m∑j=1(n∑t=1δ(j|t)logN(xt;μj,Σj))
尤度を最大とするパラメータをハットで表すと,
ˆP(j)=ˆn(j)n, ˆn(j)=∑nt=1δ(j|t)
ˆμj=1ˆn(j)∑nt=1δ(j|t)xt, ˆΣj=1ˆn(j)∑nt=1δ(j|t)(xt−^μj)(xt−ˆμj)T
となる.このように{jt}が既知である場合には,最尤推定は簡単に行えるとわかる.
Imcomplete data
jtがわかっていない場合を考える. θ(l)を初期のパラメータとする. このパラメータで,あるxtがjによって生成される確率は
P(j|xt,θ(l))=P(l)(j)N(xt;μ(l)j,Σ(l)j)∑mj′=1P(l)(j′)N(xt;μ(l)j′,Σ(l)j′)=P(l)(j)N(xt;μ(l)j,Σ(l)j)P(xt;θ(l))
δ(j|t)という二値の割当の代わりに,p(l)(j|t)=P(j|xt,θ(l))という”soft”な割当を使うのである. この割当はθ(l)によっており,θを更新していくたびに変化していく.
これらの結果から,Expectation Maximization algorithm (EM)が導かれる. EMは全てのmixture modelと更に広範なモデルに適用できる. Gaussian mixtureでのEM-algorithmは以下の通り.
Algorithm (EM)
(step1)
θ(0)を定める. 例えばP(0)(j)=1/mとし,μ(0)jをランダムに選んだDの点に,Σ(0)jをDの分散行列としたりなどする.
(E-step)
p(l)(j|t)=P(j|xt,θ(l))をθ(l)によって評価する.
(M-step)
パラメータを,
P(l+1)(j)=ˆn(j)n, ˆn(j)=n∑t=1p(l)(j|t)μ(l+1)j=1ˆn(j)n∑t=1p(l)(j|t)xtΣ(l+1)j=1ˆn(j)n∑t=1p(l)(j|t)(xt−μ(l+1)j)(xt−μ(l+1)j)T
によって更新する.
この更新則によってlog-likelihoodは増加し,またパラメータは収束することが証明されているが, その極限ではd/dθl(D;θ)=0が成立することしか保証されていない.
Example
2つのGaussianのmixture modelを考える. fig.2 はEM-algorithmのイテレーションの様子である.
0 件のコメント:
コメントを投稿