SlideShare a Scribd company logo
1 of 40
Download to read offline
@siero5335
#ぞくパタ
ドワンゴ様@東銀座
2016/1/12
第15回「続・わかりやすいパターン認識」読書会
第13章: 共クラスタリング
 目次
	
  
13.1	
  関係データに対する共クラスタリング	
  
	
  
13.2	
  無限関係モデル	
  
	
  
13.3	
  IRMの学習	
  
 13.1	
  関係データに対する共クラスタリング	
  
 	
  	
  13.1	
  関係データに対する共クラスタリング	
  
共クラスタリングとは?
顧客と商品など、人と人、人とモノのつながりを表す
関係データを上手く扱うための手法
顧客だけ、商品だけのクラスタリングはこれまでも
やってきたが、共クラスタリングでは行・列双方を適
切に並び替えることで、顧客・商品を同時にクラスタ
リングできるようにな。
このように、異なる種類のオブジェクトを同時にクラ
スタリングする手法を共クラスタリングと呼ぶ
 	
  	
  13.1	
  関係データの例	
  
1	
 2	
 3	
1	
 2	
 3	
 4	
 	
 1 2 3 4
1 	
  	
  	
  	
2 	
  	
  	
  	
3 	
  	
  	
  	
商品
顧
客
オブジェクト間のつながりをエッジとしたグラフで、あるいは、
オブジェクト間にエッジがある時を1、ない時を0とする2値行
列で表現できる。
 	
  	
  13.1	
  共クラスタリング色々	
  
From	
  K-­‐means	
  to	
  higher-­‐way	
  co-­‐clustering:	
  mul:linear	
  decomposi:on	
  
with	
  sparse	
  latent	
  factors	
  
h>ps://www.cs.cmu.edu/~epapalex/papers/PapSidBroTSP2011R2.pdf	
  
K-­‐means,	
  ユークリッド距離を基にした共クラスタリング	
  
	
  
"blockcluster:	
  Coclustering	
  Package	
  for	
  Binary,	
  Categorical,	
  
Con:ngency	
  and	
  Con:nuous	
  Data-­‐Sets”	
  
h>ps://cran.r-­‐project.org/web/packages/blockcluster/index.html	
  
EMアルゴリズムを基にした共クラスタリング	
  
 	
  	
  13.1	
  共クラスタリング実行例	
  
"blockcluster:	
  Coclustering	
  Package	
  for	
  Binary,	
  Categorical,	
  
Con:ngency	
  and	
  Con:nuous	
  Data-­‐Sets”	
  
h>ps://cran.r-­‐project.org/web/packages/blockcluster/index.html	
パッケージ解説はこちら:	
  h>p://qiita.com/siero5335/items/f8e704035d7bdd5965be	
EMアルゴリズムを基にした共クラスタリング	
  
 	
  	
  13.1	
  共クラスタリング実行例	
  
"blockcluster:	
  Coclustering	
  Package	
  for	
  Binary,	
  Categorical,	
  
Con:ngency	
  and	
  Con:nuous	
  Data-­‐Sets”	
  
h>ps://cran.r-­‐project.org/web/packages/blockcluster/index.html	
パッケージ解説はこちら:	
  h>p://qiita.com/siero5335/items/f8e704035d7bdd5965be	
尤度を見ながらクラスタ数を最適化していく	
  
 	
  	
  13.1	
  共クラスタリング実行例	
  
"blockcluster:	
  Coclustering	
  Package	
  for	
  Binary,	
  Categorical,	
  
Con:ngency	
  and	
  Con:nuous	
  Data-­‐Sets”	
  
h>ps://cran.r-­‐project.org/web/packages/blockcluster/index.html	
パッケージ解説はこちら:	
  h>p://qiita.com/siero5335/items/f8e704035d7bdd5965be	
つまりクラスタ数は自分で決めないとだめ	
  
 	
  	
  13.1	
  共クラスタリング色々	
  
From	
  K-­‐means	
  to	
  higher-­‐way	
  co-­‐clustering:	
  mul:linear	
  decomposi:on	
  
with	
  sparse	
  latent	
  factors	
  
h>ps://www.cs.cmu.edu/~epapalex/papers/PapSidBroTSP2011R2.pdf	
  
K-­‐means,	
  ユークリッド距離を基にした共クラスタリング	
  
	
  
"blockcluster:	
  Coclustering	
  Package	
  for	
  Binary,	
  Categorical,	
  Con:ngency	
  
and	
  Con:nuous	
  Data-­‐Sets”	
  
h>ps://cran.r-­‐project.org/web/packages/blockcluster/index.html	
  
EMアルゴリズムを基にした共クラスタリング	
  
	
  
本書	
無限関係モデル(IRM)による共クラスタリング	
  
ノンパラベイズに基づいてるからクラスタ数も自動決定できるよ!	
  
	
  
顧客と商品の例なら観測データから同時にクラスタリングすることで、
どんな顧客がどんな商品を買うかの関係を自動抽出することに相当	
  
 13.2	
  無限関係モデル	
  (IRM)	
  
当
 13.2	
  無限関係モデル	
  (IRM)	
  
当	
K:	
  顧客の総数	
  
L:	
  商品の総数	
  
R:	
  顧客・商品の関係を表す行列	
  
Rkl:	
  Rの(k,	
  l)成分	
  
Rkl	
  =1:	
  顧客kが商品lを購入した	
  	
  
Rkl	
  =0:顧客kが商品lを購入しなかった 	
  
S1:	
  顧客に対する潜在変数 	
S2:	
  商品に対する潜在変数 	
c1:	
  顧客クラスタの数	
  
c2:	
  商品クラスタの数	
ω1
i:	
  i番目の顧客クラスタ	
  
ω2
j:	
  j番目の商品クラスタ	
  
S1
k:	
  顧客kの所属する顧客クラスタ	
  
S2
l:	
  商品lの所属する商品クラスタ	
S1
k	
  =	
  ω1
i:	
  	
  顧客kが顧客クラスタω1に属する	
  
S2
l:	
  =ω2
j:	
  商品lが顧客クラスタω2
jに属する	
  
	
  
θij	
  =	
  θ(ω1
i,	
  ω2
j):	
  (i,	
  j)のパラメータブロック	
def
 13.2	
  無限関係モデル	
  (IRM)	
  
s!
|!α!~!"#(α)
s!|!α!~!"#(α)
!"#!! = 1,…,!,
!"#!! = 1,…,!,
CRPの事前分布で顧客クラスタS1、
商品クラスタS2が独立に分割される
 13.2	
  無限関係モデル	
  (IRM)	
  
s!
|!α!~!"#(α)
s!|!α!~!"#(α)
!"#!! = 1,…,!,
!"#!! = 1,…,!,
!!"|!!
!
=!ω!
!
,!!
!
=!ω!
!
,Θ~!!"#$(!!":!θ!")
!!
!
= ω!
!
, !!
!
= ω!
!
θ !!
!
, !!
!
= θ ω!
!
, ω!
!
=!θ!"
CRPの事前分布で顧客クラスタS1、
商品クラスタS2が独立に分割される	
となり、顧客商品の関係を表す行列Rklが	
  
パラメータθijのベルヌーイ分布Bern(Rkl:θij)から生成される
 13.2	
  無限関係モデル	
  (IRM)	
  
s!
|!α!~!"#(α)
s!
|!α!~!"#(α)
!"#!! = 1,…,!,
!"#!! = 1,…,!,
θ !!
!
,!!
!
|!,!!~!"(!,!)
!!"|!!
!
=!ω!
!
,!!
!
=!ω!
!
,Θ~!!"#$(!!":!θ!")
!!
!
= ω!
!
, !!
!
= ω!
!
θ !!
!
, !!
!
= θ ω!
!
, ω!
!
=!θ!"
となり、顧客商品の関係を表す行列Rklが	
  
パラメータθijのベルヌーイ分布Bern(Rkl:θij)から生成される	
θijは区間[0,1]の値を取るので、θijの事前分布として	
  
パラメータa,	
  bのベータ分布Be(a,b)を取る	
CRPの事前分布で顧客クラスタS1、
商品クラスタS2が独立に分割される
 13.2	
  無限関係モデル	
  (IRM)	
  
商品	
顧
客
共
ク
ラ
ス
タ
リ
ン
グ
 13.2	
  無限関係モデル	
  (IRM)	
  
商品	
顧
客
共
ク
ラ
ス
タ
リ
ン
グ
ω1
1	
ω2
1	
ω3
1	
ω4
1	
ω1
2	
ω2
2	
 ω3
2	
15人の顧客が4つ、10種の商品が3つのクラスタに分割される
 13.2	
  無限関係モデル	
  (IRM)	
  
商品	
顧
客
共
ク
ラ
ス
タ
リ
ン
グ
i	
  =	
  1	
2	
3	
4	
j	
  =1	
2	
 3	
θij	
  =	
  0.2	
θij	
  =	
  
0.9	
θij	
  =	
  
0.1	
θij	
  =	
  0	
θij	
  =	
  
0.7	
θij	
  =	
  
0.7	
θij	
  =	
  
0.1	
θij	
  =	
  0.9	
θij	
  =	
  0.2	
θij	
  =	
  
0.9	
θij	
  =	
  
0.1	
θij	
  =	
  0.1	
顧客クラスタi,	
  商品クラスタjの直積からなる各(i,	
  j)	
  ブロックに対し、	
  
θijの値(0≤θij≤1)がベータ分布から決定される
 13.2	
  無限関係モデル	
  (IRM)	
  
商品	
顧
客
共
ク
ラ
ス
タ
リ
ン
グ
i	
  =	
  1	
2	
3	
4	
j	
  =1	
2	
 3	
θij	
  =	
  0.2	
θij	
  =	
  
0.9	
θij	
  =	
  
0.1	
θij	
  =	
  0	
θij	
  =	
  
0.7	
θij	
  =	
  
0.7	
θij	
  =	
  
0.1	
θij	
  =	
  0.9	
θij	
  =	
  0.2	
θij	
  =	
  
0.9	
θij	
  =	
  
0.1	
θij	
  =	
  0.1	
θ12の大半は1	
  	
  
	
  
	
  θ12	
  =	
  0.9よりRklが0.9の確率で1を発生させるベルヌーイ分布から決まるため	
  
	
  
	
  θijは顧客クラスタω1
iと商品クラスタω2
jの関係を表す確率に相当する。
 13.2	
  無限関係モデル	
  (IRM)	
  
商品	
顧
客
共
ク
ラ
ス
タ
リ
ン
グ
i	
  =	
  1	
2	
3	
4	
j	
  =1	
2	
 3	
θij	
  =	
  0.2	
θij	
  =	
  
0.9	
θij	
  =	
  
0.1	
θij	
  =	
  0	
θij	
  =	
  
0.7	
θij	
  =	
  
0.7	
θij	
  =	
  
0.1	
θij	
  =	
  0.9	
θij	
  =	
  0.2	
θij	
  =	
  
0.9	
θij	
  =	
  
0.1	
θij	
  =	
  0.1	
ベータ分布のパラメータa,	
  bの値を変えることでθijの値が[0,1]の範囲で
変化する。このため、α,	
  a,	
  bの値を変えることでIRMからさまざまな関係
データ行列を生成することができる。
 13.3	
  IRMの学習	
  
 13.3	
  IRMの学習	
  
各オブジェクトの所属クラスタ	
  (s1,	
  s2)	
  が既知であれば、その情報
と観測データから共クラスタリングが可能だが、実際に既知なの
は観測データのみ	
  
	
  
IRMの学習は、観測データの背後にある共クラスタリング構造(s1,	
  
s2)	
  を、観測データとIRMの生成モデルから推定すること	
  
	
  
 13.3	
  IRMの学習	
  
各オブジェクトの所属クラスタ	
  (s1,	
  s2)	
  が既知であれば、その情報
と観測データから共クラスタリングが可能だが、実際に既知なの
は観測データのみ	
  
	
  
IRMの学習は、観測データの背後にある共クラスタリング構造(s1,	
  
s2)	
  を、観測データとIRMの生成モデルから推定すること	
  
	
  
具体的には、観測データRが得られた下で、下記で示されたパラ
メータを積分消去して得られたs1,	
  s2の事後確率を最大化するs1,	
  s2
を求める問題に帰着	
  
	
  
	
  
	
  
! !!, !! ! =!
! ! !!, !! ! !! !(!!)
!(!)
 13.3	
  IRMの学習	
  
各オブジェクトの所属クラスタ	
  (s1,	
  s2)	
  が既知であれば、その情報
と観測データから共クラスタリングが可能だが、実際に既知なの
は観測データのみ	
  
	
  
IRMの学習は、観測データの背後にある共クラスタリング構造(s1,	
  
s2)	
  を、観測データとIRMの生成モデルから推定すること	
  
	
  
具体的には、観測データRが得られた下で、下記で示されたパラ
メータを積分消去して得られたs1,	
  s2の事後確率を最大化するs1,	
  s2
を求める問題に帰着	
  
	
  
	
  
	
  
ここで、s1,	
  s2の事前分布P(s1),	
  P(s2)はいずれもCPR(α)	
  
ディリクレ過程混合モデルに対するギブスサンプリングで	
  (s1,	
  s2)
を逐次サンプリングし、P(s1,	
  s2|R)を最大化する(s1,	
  s2)を解とする
! !!, !! ! =!
! ! !!, !! ! !! !(!!)
!(!)
 13.3	
  IRMの学習:	
  用語追加	
  
当	
K:	
  顧客の総数	
  
L:	
  商品の総数	
  
R:	
  顧客・商品の関係を表す行列	
  
Rkl:	
  Rの(k,	
  l)成分	
  
Rkl	
  =1:	
  顧客kが商品lを購入した	
  	
  
Rkl	
  =0:顧客kが商品lを購入しなかった 	
  
S1:	
  顧客に対する潜在変数 	
S2:	
  商品に対する潜在変数 	
c1:	
  顧客クラスタの数	
  
c2:	
  商品クラスタの数	
ω1
i:	
  i番目の顧客クラスタ	
  
ω2
j:	
  j番目の商品クラスタ	
  
S1
k:	
  顧客kの所属する顧客クラスタ	
  
S2
l:	
  商品lの所属する商品クラスタ	
S1
k	
  =	
  ω1
i:	
  	
  顧客kが顧客クラスタω1に属する	
  
S2
l:	
  =ω2
j:	
  商品lが顧客クラスタω2
jに属する	
  
	
  
θij	
  =	
  θ(ω1
i,	
  ω2
j):	
  (i,	
  j)のパラメータブロック	
def	
Rk,+:顧客kの全商品に対する購買情報	
  
R-­‐k,+:	
  RからRk,+を除いた余りの要素集合	
  
S1
-­‐k:	
  S1からS1
kを引いた余りの要素集合	
  
n1
i:	
  顧客クラスタω1
iに属するk以外の顧客数	
  
θi,+:	
  (i,j)ブロックのパラメータ集合
 13.3	
  IRMの学習	
  
このs1
kをギブスサンプリングするための事後確率は以下の通り	
!!
!
=!ω!
!
!!,!!, !!!
!
, !!, !!!,! ∝ !! !!
!
=!ω!
!
!!!
!
!(!!,!!|!!
!
=!ω!
!
, !!, !!!,!)
 13.3	
  IRMの学習:	
  事後確率右辺第1項	
  
! !!
!
=!ω!
!
!!!
!
!!
!
! − 1 + α
α
! − 1 + α
このs1
kをギブスサンプリングするための事後確率は以下の通り	
!!
!
=!ω!
!
!!,!!, !!!
!
, !!, !!!,! ∝ !! !!
!
=!ω!
!
!!!
!
!(!!,!!|!!
!
=!ω!
!
, !!, !!!,!)
既存クラスタ	
新規クラスタ
(!!,!!|!!
!
=!ω!
!
, !!, !!!,!) ∝
!!
!
=!ω!
!
!!,!!, !!!
!
, !!, !!!,! ∝ !! !!
!
=!ω!
!
!!!
!
!(!!,!!|!!
!
=!ω!
!
, !!, !!!,!)
 13.3	
  IRMの学習:	
  事後確率右辺第2項	
  
このs1
kをギブスサンプリングするための事後確率は以下の通り	
!(
!
!!" !!
!
=!ω!
!
, !!, θ!,! !(θ!,!|!!
!
=!ω!
!
, !!!
!
, !!, !!!,!)!θ!,!
!(
!
!!" !!
!
=!ω!
!
, !!, θ!,! !!(θ!,!)!θ!,!
既存クラスタ	
新規クラスタ
!(
!
!!" !!
!
=!ω!
!
, !!, θ!,! !(θ!,!|!!
!
=!ω!
!
, !!!
!
, !!, !!!,!)!θ!,!
(!!,!!|!!
!
=!ω!
!
, !!, !!!,!) ∝
!!
!
=!ω!
!
!!,!!, !!!
!
, !!, !!!,! ∝ !! !!
!
=!ω!
!
!!!
!
!(!!,!!|!!
!
=!ω!
!
, !!, !!!,!)
 13.3	
  IRMの学習:	
  事後確率右辺第2項,	
  尤度項	
  
このs1
kをギブスサンプリングするための事後確率は以下の通り	
!(
!
!!" !!
!
=!ω!
!
, !!, θ!,! !!(θ!,!)!θ!,!
既存クラスタ	
新規クラスタ	
!
!
!!" !!
!
= ω!
!
, !!
, θ!,! =! !
!!
(!!"|θ!")!!
!
(!).!!
!
(!)
= θ!"
!(!,!)(!,!)
!
(1 − θ!")!(!,!)(!,!)
尤度項
 13.3	
  IRMの学習:	
  事後確率右辺第2項,	
  尤度項	
  
!
!
!!" !!
!
= ω!
!
, !!
, θ!,! =! !
!!
(!!"|θ!")!!
!
(!).!!
!
(!)
= θ!"
!(!,!)(!,!)
!
(1 − θ!")!(!,!)(!,!)
. δ!
!
(!)δ!
!
(!)
1	
  (s1
k	
  =	
  ω1
i)	
otherwise	
1	
  (s2
l	
  =	
  ω2
j)	
otherwise	
! !,! !,! = !!" δ!
!
(!) δ!(!)
! !,! !,! =! (1 − !!") δ!
!
(!) δ!(!)
尤度項
 13.3	
  IRMの学習:	
  事後確率右辺第2項,	
  尤度項	
  
!
!
!!" !!
!
= ω!
!
, !!
, θ!,! =! !
!!
(!!"|θ!")!!
!
(!).!!
!
(!)
= θ!"
!(!,!)(!,!)
!
(1 − θ!")!(!,!)(!,!)
. δ!
!
(!)δ!
!
(!)
1	
  (s1
k	
  =	
  ω1
i)	
otherwise	
1	
  (s2
l	
  =	
  ω2
j)	
otherwise	
n(k,+)(i,j):	
  商品ω2
jに属する商品のうち顧客ω1
iに属する顧客kが買った商品数	
  
n(k,+)(i,j):	
  商品ω2
jに属する商品のうち顧客ω1
iに属する顧客kが買わなかった
商品数	
! !,! !,! = !!" δ!
!
(!) δ!(!)
! !,! !,! =! (1 − !!") δ!
!
(!) δ!(!)
!(
!
!!" !!
!
=!ω!
!
, !!
, θ!,! !(θ!,!|!!
!
=!ω!
!
, !!!
!
, !!
, !!!,!)!θ!,!
既存クラスタ	
 13.3	
  IRMの学習:	
  既存クラスタ右辺第2項	
  
! θ!,! !!
!
=!ω!
!
, !!!
!
, !!, !!!,!
=! θ!" !!
!
=!ω!
!
, !!!
!
, !!
, !!!,!
!
=!
P(!!!,!|!!!!
!
, !!
, θ!")!(θ!")
P(!!!,!|!!!!
!
, !!, θ!")!(θ!")!θ!"
!
=!
( P !!!! θ!"
!!!(!) !!(!)
!!!!! )! !(θ!")
( P !!!! θ!"
!!!(!) !!(!)
!!!!! )! !(θ!")!θ!"!
ここで、p(θij)	
  =	
  Be(θij;	
  a,b)とすると、	
!(θ!"|!!
!
=!ω!
!
, !!, !!!,!) = !"(θ!"; ! !,! !,! + !, ! !,! !,! + !)
= θ!"
!(!,!)(!,!)
!
(1 − θ!")!(!,!)(!,!)
 13.3	
  IRMの学習:	
  既存クラスタ右辺第2項	
  
!(θ!"|!!
!
=!ω!
!
, !!, !!!,!) = !"(θ!"; ! !,! !,! + !, ! !,! !,! + !)
!(
!
!!" !!
!
=!ω!
!
, !!
, θ!,! !(θ!,!|!!
!
=!ω!
!
, !!!
!
, !!
, !!!,!)!θ!,!
上記を下式に代入すると	
!(!!,!!|!!
!
=!ω!
!
, !!
, !!!,!)
=
θ!"
! !,! !,! !!!!
(1 − θ)! !,! !,! !!!!!θ!"
!(! !!,! !,! + !, ! !!,! !,! + !)
!
=
!(! !,! !,! + !, ! !,! !,! + !)
!(! !!,! !,! + !, ! !!,! !,! + !)
! Bはベータ分布	
ωiが既存クラスタのとき
 13.3	
  IRMの学習:	
  新規クラスタ	
  
!(
!
!!" !!
!
=!ω!
!
, !!
, θ!,! !!(θ!,!)!θ!,!
!(!!,!!|!!
!
=!ω!
!
, !!
, !!!,!)
= θ!"
!(!,!)(!,!)
!
(1 − θ!")!(!,!)(!,!)
!(θ!"|!!
!
=!ω!
!
, !!, !!!,!) = !"(θ!"; ! !,! !,! + !, ! !,! !,! + !)
上記を下式に代入すると	
ωiが新規クラスタのとき	
=
!(! !,! !,! + !, ! !,! !,! + !)
!(!, !)
!
 13.3 IRMの学習: S1
k, S2
lの事後確率
!(!!
!
= ω!
!
|!!!,!!, !!!
!
, !!
, !!!,!) ∝
!!
!
! − 1 + α
!(! !,! !,! + !, ! !,! !,! + !)
!(! !!,! !,! + !, ! !!,! !,! + !)
α
! − 1 + α
!(! !,! !,! + !, ! !,! !,! + !)
!(!, !)
既存クラスタ	
新規クラスタ	
S1
kの事後確率
 13.3 IRMの学習: S1
k, S2
lの事後確率
!(!!
!
= ω!
!
|!!!,!!, !!!
!
, !!
, !!!,!) ∝
!!
!
! − 1 + α
!(! !,! !,! + !, ! !,! !,! + !)
!(! !!,! !,! + !, ! !!,! !,! + !)
α
! − 1 + α
!(! !,! !,! + !, ! !,! !,! + !)
!(!, !)
!(!!
!
= ω!
!
|!!!,!!, !!!
!
, !!
, !!,!!) ∝
!!
!
! − 1 + α
!(! !,! !,! + !, ! !,! !,! + !)
!(! !,!! !,! + !, ! !,!! !,! + !)
α
! − 1 + α
!(! !,! !,! + !, ! !,! !,! + !)
!(!, !)
既存クラスタ	
新規クラスタ	
既存クラスタ	
新規クラスタ	
S2
lの事後確率
S1
kの事後確率
 13.3	
  IRMによる共クラスタリングアルゴリズム	
  
入力: 関係データ行列R
出力: 行・列オブジェクトの所属クラスタを表す潜在変数
   s1={s1
1... s1
K}, s2={s2
1... s2
L}, 行・列クラスタ数c1, c2
Step1: 初期設定
・s1, s2を初期化(行・列クラスタ数をc1, c2とする)
・事後確率の最大値をPmax <- 0とする
 13.3	
  IRMによる共クラスタリングアルゴリズム	
  
入力: 関係データ行列R
出力: 行・列オブジェクトの所属クラスタを表す潜在変数
   s1={s1
1... s1
K}, s2={s2
1... s2
L}, 行・列クラスタ数c1, c2
Step1: 初期設定
・s1, s2を初期化(行・列クラスタ数をc1, c2とする)
・事後確率の最大値をPmax <- 0とする
Step2: 所属クラスタの更新
・行オブジェクトkの所属クラスタs1
K更新のためにkをクラスタ
から除外する
・空きクラスタが発生すればc1 <- c1-1として取り除き、i以降の
クラスタインデックスを1減らす
・                からs1
Kを確率的に求める
・列についても同様にクラスタを更新する
!(!!
!
= ω!
!
|!!!,!!, !!!
!
, !!
, !!!,!) ∝
 13.3	
  IRMによる共クラスタリングアルゴリズム	
  
Step3: 事後確率最大化
! !!
, !!
! =!
! ! !!, !! ! !! !(!!)
!(!)
・今のs1, s2から下式を使って事後確率vを計算する
! !!
, !!
! !∝ ! !!
!!
!(!|!!
, !!
)
= ! !! !! !(!!" θ!" !! θ!! !θ!!
!!
!!!
!!
!!!
= !
v > Pmaxなら(事後確率の最大値が更新されたら)
Pmax <- v, s1<- {s1
1... s1
K}, s2<- {s2
1... s2
L}
それ以外ならPmax, s1, s2 を保持する
 13.3	
  IRMによる共クラスタリングアルゴリズム	
  
Step3: 事後確率最大化
! !!
, !!
! =!
! ! !!, !! ! !! !(!!)
!(!)
・今のs1, s2から下式を使って事後確率vを計算する
! !!
, !!
! !∝ ! !!
!!
!(!|!!
, !!
)
= ! !! !! !(!!" θ!" !! θ!! !θ!!
!!
!!!
!!
!!!
= !
v > Pmaxなら(事後確率の最大値が更新されたら)
Pmax <- v, s1<- {s1
1... s1
K}, s2<- {s2
1... s2
L}
それ以外ならPmax, s1, s2 を保持する
Step4: 収束判定
・Pmaxが更新されなくなったらギブスサンプリング終了
・更新されるなら2に戻る

More Related Content

What's hot

[Tokyor08] Rによるデータサイエンス 第2部 第3章 対応分析
[Tokyor08] Rによるデータサイエンス第2部 第3章 対応分析[Tokyor08] Rによるデータサイエンス第2部 第3章 対応分析
[Tokyor08] Rによるデータサイエンス 第2部 第3章 対応分析
Yohei Sato
 
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
. .
 
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!
takehikoihayashi
 

What's hot (20)

5分で分かる自己組織化マップ
5分で分かる自己組織化マップ5分で分かる自己組織化マップ
5分で分かる自己組織化マップ
 
データサイエンス概論第一=2-2 クラスタリング
データサイエンス概論第一=2-2 クラスタリングデータサイエンス概論第一=2-2 クラスタリング
データサイエンス概論第一=2-2 クラスタリング
 
言語と画像の表現学習
言語と画像の表現学習言語と画像の表現学習
言語と画像の表現学習
 
非線形データの次元圧縮 150905 WACODE 2nd
非線形データの次元圧縮 150905 WACODE 2nd非線形データの次元圧縮 150905 WACODE 2nd
非線形データの次元圧縮 150905 WACODE 2nd
 
Rの高速化
Rの高速化Rの高速化
Rの高速化
 
Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説Cmdstanr入門とreduce_sum()解説
Cmdstanr入門とreduce_sum()解説
 
DiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ー
DiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ーDiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ー
DiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ー
 
R実践 機械学習による異常検知 01
R実践 機械学習による異常検知 01R実践 機械学習による異常検知 01
R実践 機械学習による異常検知 01
 
Fisher線形判別分析とFisher Weight Maps
Fisher線形判別分析とFisher Weight MapsFisher線形判別分析とFisher Weight Maps
Fisher線形判別分析とFisher Weight Maps
 
[Tokyor08] Rによるデータサイエンス 第2部 第3章 対応分析
[Tokyor08] Rによるデータサイエンス第2部 第3章 対応分析[Tokyor08] Rによるデータサイエンス第2部 第3章 対応分析
[Tokyor08] Rによるデータサイエンス 第2部 第3章 対応分析
 
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
 
[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習
 
主成分分析
主成分分析主成分分析
主成分分析
 
階層ベイズとWAIC
階層ベイズとWAIC階層ベイズとWAIC
階層ベイズとWAIC
 
AdaFace(CVPR2022)
AdaFace(CVPR2022)AdaFace(CVPR2022)
AdaFace(CVPR2022)
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!
 
SHAP値の考え方を理解する(木構造編)
SHAP値の考え方を理解する(木構造編)SHAP値の考え方を理解する(木構造編)
SHAP値の考え方を理解する(木構造編)
 
AHC-Lab M1勉強会 論文の読み方・書き方
AHC-Lab M1勉強会 論文の読み方・書き方AHC-Lab M1勉強会 論文の読み方・書き方
AHC-Lab M1勉強会 論文の読み方・書き方
 
Stan超初心者入門
Stan超初心者入門Stan超初心者入門
Stan超初心者入門
 

More from Akifumi Eguchi

みどりぼん9章前半
みどりぼん9章前半みどりぼん9章前半
みどりぼん9章前半
Akifumi Eguchi
 

More from Akifumi Eguchi (19)

PlaidML Kerasでやっていく #TokyoR 73
PlaidML Kerasでやっていく #TokyoR 73PlaidML Kerasでやっていく #TokyoR 73
PlaidML Kerasでやっていく #TokyoR 73
 
High-order factorization machines with R #tokyor 61
High-order factorization machines with R  #tokyor 61High-order factorization machines with R  #tokyor 61
High-order factorization machines with R #tokyor 61
 
Randomforestで高次元の変数重要度を見る #japanr LT
 Randomforestで高次元の変数重要度を見る #japanr LT Randomforestで高次元の変数重要度を見る #japanr LT
Randomforestで高次元の変数重要度を見る #japanr LT
 
統計的学習の基礎6章前半 #カステラ本
統計的学習の基礎6章前半 #カステラ本統計的学習の基礎6章前半 #カステラ本
統計的学習の基礎6章前半 #カステラ本
 
Dslt祭り2夜
Dslt祭り2夜Dslt祭り2夜
Dslt祭り2夜
 
環境化学データ解析入門: 愛媛大講演資料 160728
環境化学データ解析入門: 愛媛大講演資料 160728環境化学データ解析入門: 愛媛大講演資料 160728
環境化学データ解析入門: 愛媛大講演資料 160728
 
統計的学習の基礎, 副読本紹介: An Introduction to Statistical Learning
統計的学習の基礎, 副読本紹介: An Introduction to Statistical Learning統計的学習の基礎, 副読本紹介: An Introduction to Statistical Learning
統計的学習の基礎, 副読本紹介: An Introduction to Statistical Learning
 
Mxnetで回帰 #TokyoR 53th
Mxnetで回帰 #TokyoR 53thMxnetで回帰 #TokyoR 53th
Mxnetで回帰 #TokyoR 53th
 
子どもたちの未来を支える機械学習: 定量的構造活性相関 (QSAR) による有機ハロゲン化合物の母子間移行率予測
子どもたちの未来を支える機械学習: 定量的構造活性相関 (QSAR) による有機ハロゲン化合物の母子間移行率予測子どもたちの未来を支える機械学習: 定量的構造活性相関 (QSAR) による有機ハロゲン化合物の母子間移行率予測
子どもたちの未来を支える機械学習: 定量的構造活性相関 (QSAR) による有機ハロゲン化合物の母子間移行率予測
 
Deep learningもくもくハッカソンまとめup用
Deep learningもくもくハッカソンまとめup用Deep learningもくもくハッカソンまとめup用
Deep learningもくもくハッカソンまとめup用
 
Tokyo webmining 43 "化学物質汚染のデータ解析・リスク評価についての私見"
Tokyo webmining 43 "化学物質汚染のデータ解析・リスク評価についての私見"Tokyo webmining 43 "化学物質汚染のデータ解析・リスク評価についての私見"
Tokyo webmining 43 "化学物質汚染のデータ解析・リスク評価についての私見"
 
第2回ぞくパタ
第2回ぞくパタ第2回ぞくパタ
第2回ぞくパタ
 
第一回ぞくパタ
第一回ぞくパタ第一回ぞくパタ
第一回ぞくパタ
 
ぞくパタ はじめに
ぞくパタ はじめにぞくパタ はじめに
ぞくパタ はじめに
 
Tokyo.r #44 lt.pptx
Tokyo.r #44 lt.pptxTokyo.r #44 lt.pptx
Tokyo.r #44 lt.pptx
 
Tokyo r #43
Tokyo r #43Tokyo r #43
Tokyo r #43
 
みどりぼん9章前半
みどりぼん9章前半みどりぼん9章前半
みどりぼん9章前半
 
みどりぼん3章前半
みどりぼん3章前半みどりぼん3章前半
みどりぼん3章前半
 
Tokyo R #39
Tokyo R #39Tokyo R #39
Tokyo R #39
 

ぞくパタ最終回: 13章「共クラスタリング」

  • 2.  目次   13.1  関係データに対する共クラスタリング     13.2  無限関係モデル     13.3  IRMの学習  
  • 4.      13.1  関係データに対する共クラスタリング   共クラスタリングとは? 顧客と商品など、人と人、人とモノのつながりを表す 関係データを上手く扱うための手法 顧客だけ、商品だけのクラスタリングはこれまでも やってきたが、共クラスタリングでは行・列双方を適 切に並び替えることで、顧客・商品を同時にクラスタ リングできるようにな。 このように、異なる種類のオブジェクトを同時にクラ スタリングする手法を共クラスタリングと呼ぶ
  • 5.      13.1  関係データの例   1 2 3 1 2 3 4   1 2 3 4 1        2        3        商品 顧 客 オブジェクト間のつながりをエッジとしたグラフで、あるいは、 オブジェクト間にエッジがある時を1、ない時を0とする2値行 列で表現できる。
  • 6.      13.1  共クラスタリング色々   From  K-­‐means  to  higher-­‐way  co-­‐clustering:  mul:linear  decomposi:on   with  sparse  latent  factors   h>ps://www.cs.cmu.edu/~epapalex/papers/PapSidBroTSP2011R2.pdf   K-­‐means,  ユークリッド距離を基にした共クラスタリング     "blockcluster:  Coclustering  Package  for  Binary,  Categorical,   Con:ngency  and  Con:nuous  Data-­‐Sets”   h>ps://cran.r-­‐project.org/web/packages/blockcluster/index.html   EMアルゴリズムを基にした共クラスタリング  
  • 7.      13.1  共クラスタリング実行例   "blockcluster:  Coclustering  Package  for  Binary,  Categorical,   Con:ngency  and  Con:nuous  Data-­‐Sets”   h>ps://cran.r-­‐project.org/web/packages/blockcluster/index.html パッケージ解説はこちら:  h>p://qiita.com/siero5335/items/f8e704035d7bdd5965be EMアルゴリズムを基にした共クラスタリング  
  • 8.      13.1  共クラスタリング実行例   "blockcluster:  Coclustering  Package  for  Binary,  Categorical,   Con:ngency  and  Con:nuous  Data-­‐Sets”   h>ps://cran.r-­‐project.org/web/packages/blockcluster/index.html パッケージ解説はこちら:  h>p://qiita.com/siero5335/items/f8e704035d7bdd5965be 尤度を見ながらクラスタ数を最適化していく  
  • 9.      13.1  共クラスタリング実行例   "blockcluster:  Coclustering  Package  for  Binary,  Categorical,   Con:ngency  and  Con:nuous  Data-­‐Sets”   h>ps://cran.r-­‐project.org/web/packages/blockcluster/index.html パッケージ解説はこちら:  h>p://qiita.com/siero5335/items/f8e704035d7bdd5965be つまりクラスタ数は自分で決めないとだめ  
  • 10.      13.1  共クラスタリング色々   From  K-­‐means  to  higher-­‐way  co-­‐clustering:  mul:linear  decomposi:on   with  sparse  latent  factors   h>ps://www.cs.cmu.edu/~epapalex/papers/PapSidBroTSP2011R2.pdf   K-­‐means,  ユークリッド距離を基にした共クラスタリング     "blockcluster:  Coclustering  Package  for  Binary,  Categorical,  Con:ngency   and  Con:nuous  Data-­‐Sets”   h>ps://cran.r-­‐project.org/web/packages/blockcluster/index.html   EMアルゴリズムを基にした共クラスタリング     本書 無限関係モデル(IRM)による共クラスタリング   ノンパラベイズに基づいてるからクラスタ数も自動決定できるよ!     顧客と商品の例なら観測データから同時にクラスタリングすることで、 どんな顧客がどんな商品を買うかの関係を自動抽出することに相当  
  • 12.  13.2  無限関係モデル  (IRM)   当 K:  顧客の総数   L:  商品の総数   R:  顧客・商品の関係を表す行列   Rkl:  Rの(k,  l)成分   Rkl  =1:  顧客kが商品lを購入した     Rkl  =0:顧客kが商品lを購入しなかった   S1:  顧客に対する潜在変数 S2:  商品に対する潜在変数 c1:  顧客クラスタの数   c2:  商品クラスタの数 ω1 i:  i番目の顧客クラスタ   ω2 j:  j番目の商品クラスタ   S1 k:  顧客kの所属する顧客クラスタ   S2 l:  商品lの所属する商品クラスタ S1 k  =  ω1 i:    顧客kが顧客クラスタω1に属する   S2 l:  =ω2 j:  商品lが顧客クラスタω2 jに属する     θij  =  θ(ω1 i,  ω2 j):  (i,  j)のパラメータブロック def
  • 13.  13.2  無限関係モデル  (IRM)   s! |!α!~!"#(α) s!|!α!~!"#(α) !"#!! = 1,…,!, !"#!! = 1,…,!, CRPの事前分布で顧客クラスタS1、 商品クラスタS2が独立に分割される
  • 14.  13.2  無限関係モデル  (IRM)   s! |!α!~!"#(α) s!|!α!~!"#(α) !"#!! = 1,…,!, !"#!! = 1,…,!, !!"|!! ! =!ω! ! ,!! ! =!ω! ! ,Θ~!!"#$(!!":!θ!") !! ! = ω! ! , !! ! = ω! ! θ !! ! , !! ! = θ ω! ! , ω! ! =!θ!" CRPの事前分布で顧客クラスタS1、 商品クラスタS2が独立に分割される となり、顧客商品の関係を表す行列Rklが   パラメータθijのベルヌーイ分布Bern(Rkl:θij)から生成される
  • 15.  13.2  無限関係モデル  (IRM)   s! |!α!~!"#(α) s! |!α!~!"#(α) !"#!! = 1,…,!, !"#!! = 1,…,!, θ !! ! ,!! ! |!,!!~!"(!,!) !!"|!! ! =!ω! ! ,!! ! =!ω! ! ,Θ~!!"#$(!!":!θ!") !! ! = ω! ! , !! ! = ω! ! θ !! ! , !! ! = θ ω! ! , ω! ! =!θ!" となり、顧客商品の関係を表す行列Rklが   パラメータθijのベルヌーイ分布Bern(Rkl:θij)から生成される θijは区間[0,1]の値を取るので、θijの事前分布として   パラメータa,  bのベータ分布Be(a,b)を取る CRPの事前分布で顧客クラスタS1、 商品クラスタS2が独立に分割される
  • 16.  13.2  無限関係モデル  (IRM)   商品 顧 客 共 ク ラ ス タ リ ン グ
  • 17.  13.2  無限関係モデル  (IRM)   商品 顧 客 共 ク ラ ス タ リ ン グ ω1 1 ω2 1 ω3 1 ω4 1 ω1 2 ω2 2 ω3 2 15人の顧客が4つ、10種の商品が3つのクラスタに分割される
  • 18.  13.2  無限関係モデル  (IRM)   商品 顧 客 共 ク ラ ス タ リ ン グ i  =  1 2 3 4 j  =1 2 3 θij  =  0.2 θij  =   0.9 θij  =   0.1 θij  =  0 θij  =   0.7 θij  =   0.7 θij  =   0.1 θij  =  0.9 θij  =  0.2 θij  =   0.9 θij  =   0.1 θij  =  0.1 顧客クラスタi,  商品クラスタjの直積からなる各(i,  j)  ブロックに対し、   θijの値(0≤θij≤1)がベータ分布から決定される
  • 19.  13.2  無限関係モデル  (IRM)   商品 顧 客 共 ク ラ ス タ リ ン グ i  =  1 2 3 4 j  =1 2 3 θij  =  0.2 θij  =   0.9 θij  =   0.1 θij  =  0 θij  =   0.7 θij  =   0.7 θij  =   0.1 θij  =  0.9 θij  =  0.2 θij  =   0.9 θij  =   0.1 θij  =  0.1 θ12の大半は1        θ12  =  0.9よりRklが0.9の確率で1を発生させるベルヌーイ分布から決まるため      θijは顧客クラスタω1 iと商品クラスタω2 jの関係を表す確率に相当する。
  • 20.  13.2  無限関係モデル  (IRM)   商品 顧 客 共 ク ラ ス タ リ ン グ i  =  1 2 3 4 j  =1 2 3 θij  =  0.2 θij  =   0.9 θij  =   0.1 θij  =  0 θij  =   0.7 θij  =   0.7 θij  =   0.1 θij  =  0.9 θij  =  0.2 θij  =   0.9 θij  =   0.1 θij  =  0.1 ベータ分布のパラメータa,  bの値を変えることでθijの値が[0,1]の範囲で 変化する。このため、α,  a,  bの値を変えることでIRMからさまざまな関係 データ行列を生成することができる。
  • 22.  13.3  IRMの学習   各オブジェクトの所属クラスタ  (s1,  s2)  が既知であれば、その情報 と観測データから共クラスタリングが可能だが、実際に既知なの は観測データのみ     IRMの学習は、観測データの背後にある共クラスタリング構造(s1,   s2)  を、観測データとIRMの生成モデルから推定すること    
  • 23.  13.3  IRMの学習   各オブジェクトの所属クラスタ  (s1,  s2)  が既知であれば、その情報 と観測データから共クラスタリングが可能だが、実際に既知なの は観測データのみ     IRMの学習は、観測データの背後にある共クラスタリング構造(s1,   s2)  を、観測データとIRMの生成モデルから推定すること     具体的には、観測データRが得られた下で、下記で示されたパラ メータを積分消去して得られたs1,  s2の事後確率を最大化するs1,  s2 を求める問題に帰着         ! !!, !! ! =! ! ! !!, !! ! !! !(!!) !(!)
  • 24.  13.3  IRMの学習   各オブジェクトの所属クラスタ  (s1,  s2)  が既知であれば、その情報 と観測データから共クラスタリングが可能だが、実際に既知なの は観測データのみ     IRMの学習は、観測データの背後にある共クラスタリング構造(s1,   s2)  を、観測データとIRMの生成モデルから推定すること     具体的には、観測データRが得られた下で、下記で示されたパラ メータを積分消去して得られたs1,  s2の事後確率を最大化するs1,  s2 を求める問題に帰着         ここで、s1,  s2の事前分布P(s1),  P(s2)はいずれもCPR(α)   ディリクレ過程混合モデルに対するギブスサンプリングで  (s1,  s2) を逐次サンプリングし、P(s1,  s2|R)を最大化する(s1,  s2)を解とする ! !!, !! ! =! ! ! !!, !! ! !! !(!!) !(!)
  • 25.  13.3  IRMの学習:  用語追加   当 K:  顧客の総数   L:  商品の総数   R:  顧客・商品の関係を表す行列   Rkl:  Rの(k,  l)成分   Rkl  =1:  顧客kが商品lを購入した     Rkl  =0:顧客kが商品lを購入しなかった   S1:  顧客に対する潜在変数 S2:  商品に対する潜在変数 c1:  顧客クラスタの数   c2:  商品クラスタの数 ω1 i:  i番目の顧客クラスタ   ω2 j:  j番目の商品クラスタ   S1 k:  顧客kの所属する顧客クラスタ   S2 l:  商品lの所属する商品クラスタ S1 k  =  ω1 i:    顧客kが顧客クラスタω1に属する   S2 l:  =ω2 j:  商品lが顧客クラスタω2 jに属する     θij  =  θ(ω1 i,  ω2 j):  (i,  j)のパラメータブロック def Rk,+:顧客kの全商品に対する購買情報   R-­‐k,+:  RからRk,+を除いた余りの要素集合   S1 -­‐k:  S1からS1 kを引いた余りの要素集合   n1 i:  顧客クラスタω1 iに属するk以外の顧客数   θi,+:  (i,j)ブロックのパラメータ集合
  • 27.  13.3  IRMの学習:  事後確率右辺第1項   ! !! ! =!ω! ! !!! ! !! ! ! − 1 + α α ! − 1 + α このs1 kをギブスサンプリングするための事後確率は以下の通り !! ! =!ω! ! !!,!!, !!! ! , !!, !!!,! ∝ !! !! ! =!ω! ! !!! ! !(!!,!!|!! ! =!ω! ! , !!, !!!,!) 既存クラスタ 新規クラスタ
  • 28. (!!,!!|!! ! =!ω! ! , !!, !!!,!) ∝ !! ! =!ω! ! !!,!!, !!! ! , !!, !!!,! ∝ !! !! ! =!ω! ! !!! ! !(!!,!!|!! ! =!ω! ! , !!, !!!,!)  13.3  IRMの学習:  事後確率右辺第2項   このs1 kをギブスサンプリングするための事後確率は以下の通り !( ! !!" !! ! =!ω! ! , !!, θ!,! !(θ!,!|!! ! =!ω! ! , !!! ! , !!, !!!,!)!θ!,! !( ! !!" !! ! =!ω! ! , !!, θ!,! !!(θ!,!)!θ!,! 既存クラスタ 新規クラスタ
  • 29. !( ! !!" !! ! =!ω! ! , !!, θ!,! !(θ!,!|!! ! =!ω! ! , !!! ! , !!, !!!,!)!θ!,! (!!,!!|!! ! =!ω! ! , !!, !!!,!) ∝ !! ! =!ω! ! !!,!!, !!! ! , !!, !!!,! ∝ !! !! ! =!ω! ! !!! ! !(!!,!!|!! ! =!ω! ! , !!, !!!,!)  13.3  IRMの学習:  事後確率右辺第2項,  尤度項   このs1 kをギブスサンプリングするための事後確率は以下の通り !( ! !!" !! ! =!ω! ! , !!, θ!,! !!(θ!,!)!θ!,! 既存クラスタ 新規クラスタ ! ! !!" !! ! = ω! ! , !! , θ!,! =! ! !! (!!"|θ!")!! ! (!).!! ! (!) = θ!" !(!,!)(!,!) ! (1 − θ!")!(!,!)(!,!) 尤度項
  • 30.  13.3  IRMの学習:  事後確率右辺第2項,  尤度項   ! ! !!" !! ! = ω! ! , !! , θ!,! =! ! !! (!!"|θ!")!! ! (!).!! ! (!) = θ!" !(!,!)(!,!) ! (1 − θ!")!(!,!)(!,!) . δ! ! (!)δ! ! (!) 1  (s1 k  =  ω1 i) otherwise 1  (s2 l  =  ω2 j) otherwise ! !,! !,! = !!" δ! ! (!) δ!(!) ! !,! !,! =! (1 − !!") δ! ! (!) δ!(!) 尤度項
  • 31.  13.3  IRMの学習:  事後確率右辺第2項,  尤度項   ! ! !!" !! ! = ω! ! , !! , θ!,! =! ! !! (!!"|θ!")!! ! (!).!! ! (!) = θ!" !(!,!)(!,!) ! (1 − θ!")!(!,!)(!,!) . δ! ! (!)δ! ! (!) 1  (s1 k  =  ω1 i) otherwise 1  (s2 l  =  ω2 j) otherwise n(k,+)(i,j):  商品ω2 jに属する商品のうち顧客ω1 iに属する顧客kが買った商品数   n(k,+)(i,j):  商品ω2 jに属する商品のうち顧客ω1 iに属する顧客kが買わなかった 商品数 ! !,! !,! = !!" δ! ! (!) δ!(!) ! !,! !,! =! (1 − !!") δ! ! (!) δ!(!)
  • 32. !( ! !!" !! ! =!ω! ! , !! , θ!,! !(θ!,!|!! ! =!ω! ! , !!! ! , !! , !!!,!)!θ!,! 既存クラスタ  13.3  IRMの学習:  既存クラスタ右辺第2項   ! θ!,! !! ! =!ω! ! , !!! ! , !!, !!!,! =! θ!" !! ! =!ω! ! , !!! ! , !! , !!!,! ! =! P(!!!,!|!!!! ! , !! , θ!")!(θ!") P(!!!,!|!!!! ! , !!, θ!")!(θ!")!θ!" ! =! ( P !!!! θ!" !!!(!) !!(!) !!!!! )! !(θ!") ( P !!!! θ!" !!!(!) !!(!) !!!!! )! !(θ!")!θ!"! ここで、p(θij)  =  Be(θij;  a,b)とすると、 !(θ!"|!! ! =!ω! ! , !!, !!!,!) = !"(θ!"; ! !,! !,! + !, ! !,! !,! + !)
  • 33. = θ!" !(!,!)(!,!) ! (1 − θ!")!(!,!)(!,!)  13.3  IRMの学習:  既存クラスタ右辺第2項   !(θ!"|!! ! =!ω! ! , !!, !!!,!) = !"(θ!"; ! !,! !,! + !, ! !,! !,! + !) !( ! !!" !! ! =!ω! ! , !! , θ!,! !(θ!,!|!! ! =!ω! ! , !!! ! , !! , !!!,!)!θ!,! 上記を下式に代入すると !(!!,!!|!! ! =!ω! ! , !! , !!!,!) = θ!" ! !,! !,! !!!! (1 − θ)! !,! !,! !!!!!θ!" !(! !!,! !,! + !, ! !!,! !,! + !) ! = !(! !,! !,! + !, ! !,! !,! + !) !(! !!,! !,! + !, ! !!,! !,! + !) ! Bはベータ分布 ωiが既存クラスタのとき
  • 34.  13.3  IRMの学習:  新規クラスタ   !( ! !!" !! ! =!ω! ! , !! , θ!,! !!(θ!,!)!θ!,! !(!!,!!|!! ! =!ω! ! , !! , !!!,!) = θ!" !(!,!)(!,!) ! (1 − θ!")!(!,!)(!,!) !(θ!"|!! ! =!ω! ! , !!, !!!,!) = !"(θ!"; ! !,! !,! + !, ! !,! !,! + !) 上記を下式に代入すると ωiが新規クラスタのとき = !(! !,! !,! + !, ! !,! !,! + !) !(!, !) !
  • 35.  13.3 IRMの学習: S1 k, S2 lの事後確率 !(!! ! = ω! ! |!!!,!!, !!! ! , !! , !!!,!) ∝ !! ! ! − 1 + α !(! !,! !,! + !, ! !,! !,! + !) !(! !!,! !,! + !, ! !!,! !,! + !) α ! − 1 + α !(! !,! !,! + !, ! !,! !,! + !) !(!, !) 既存クラスタ 新規クラスタ S1 kの事後確率
  • 36.  13.3 IRMの学習: S1 k, S2 lの事後確率 !(!! ! = ω! ! |!!!,!!, !!! ! , !! , !!!,!) ∝ !! ! ! − 1 + α !(! !,! !,! + !, ! !,! !,! + !) !(! !!,! !,! + !, ! !!,! !,! + !) α ! − 1 + α !(! !,! !,! + !, ! !,! !,! + !) !(!, !) !(!! ! = ω! ! |!!!,!!, !!! ! , !! , !!,!!) ∝ !! ! ! − 1 + α !(! !,! !,! + !, ! !,! !,! + !) !(! !,!! !,! + !, ! !,!! !,! + !) α ! − 1 + α !(! !,! !,! + !, ! !,! !,! + !) !(!, !) 既存クラスタ 新規クラスタ 既存クラスタ 新規クラスタ S2 lの事後確率 S1 kの事後確率
  • 37.  13.3  IRMによる共クラスタリングアルゴリズム   入力: 関係データ行列R 出力: 行・列オブジェクトの所属クラスタを表す潜在変数    s1={s1 1... s1 K}, s2={s2 1... s2 L}, 行・列クラスタ数c1, c2 Step1: 初期設定 ・s1, s2を初期化(行・列クラスタ数をc1, c2とする) ・事後確率の最大値をPmax <- 0とする
  • 38.  13.3  IRMによる共クラスタリングアルゴリズム   入力: 関係データ行列R 出力: 行・列オブジェクトの所属クラスタを表す潜在変数    s1={s1 1... s1 K}, s2={s2 1... s2 L}, 行・列クラスタ数c1, c2 Step1: 初期設定 ・s1, s2を初期化(行・列クラスタ数をc1, c2とする) ・事後確率の最大値をPmax <- 0とする Step2: 所属クラスタの更新 ・行オブジェクトkの所属クラスタs1 K更新のためにkをクラスタ から除外する ・空きクラスタが発生すればc1 <- c1-1として取り除き、i以降の クラスタインデックスを1減らす ・                からs1 Kを確率的に求める ・列についても同様にクラスタを更新する !(!! ! = ω! ! |!!!,!!, !!! ! , !! , !!!,!) ∝
  • 39.  13.3  IRMによる共クラスタリングアルゴリズム   Step3: 事後確率最大化 ! !! , !! ! =! ! ! !!, !! ! !! !(!!) !(!) ・今のs1, s2から下式を使って事後確率vを計算する ! !! , !! ! !∝ ! !! !! !(!|!! , !! ) = ! !! !! !(!!" θ!" !! θ!! !θ!! !! !!! !! !!! = ! v > Pmaxなら(事後確率の最大値が更新されたら) Pmax <- v, s1<- {s1 1... s1 K}, s2<- {s2 1... s2 L} それ以外ならPmax, s1, s2 を保持する
  • 40.  13.3  IRMによる共クラスタリングアルゴリズム   Step3: 事後確率最大化 ! !! , !! ! =! ! ! !!, !! ! !! !(!!) !(!) ・今のs1, s2から下式を使って事後確率vを計算する ! !! , !! ! !∝ ! !! !! !(!|!! , !! ) = ! !! !! !(!!" θ!" !! θ!! !θ!! !! !!! !! !!! = ! v > Pmaxなら(事後確率の最大値が更新されたら) Pmax <- v, s1<- {s1 1... s1 K}, s2<- {s2 1... s2 L} それ以外ならPmax, s1, s2 を保持する Step4: 収束判定 ・Pmaxが更新されなくなったらギブスサンプリング終了 ・更新されるなら2に戻る