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

3.3節 変分近似法(前半)
3.3節 変分近似法(前半)3.3節 変分近似法(前半)
3.3節 変分近似法(前半)tn1031
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門Kawamoto_Kazuhiko
 
DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜Jun Okumura
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方joisino
 
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシンShinya Shimizu
 
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)Yoshitake Takebayashi
 
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured PredictionDeep Learning JP
 
DSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめDSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめsleepy_yoshi
 
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic DatasetsDeep Learning JP
 
Newman アルゴリズムによるソーシャルグラフのクラスタリング
Newman アルゴリズムによるソーシャルグラフのクラスタリングNewman アルゴリズムによるソーシャルグラフのクラスタリング
Newman アルゴリズムによるソーシャルグラフのクラスタリングAtsushi KOMIYA
 
ICLR2020の異常検知論文の紹介 (2019/11/23)
ICLR2020の異常検知論文の紹介 (2019/11/23)ICLR2020の異常検知論文の紹介 (2019/11/23)
ICLR2020の異常検知論文の紹介 (2019/11/23)ぱんいち すみもと
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoderSho Tatsuno
 
多様な強化学習の概念と課題認識
多様な強化学習の概念と課題認識多様な強化学習の概念と課題認識
多様な強化学習の概念と課題認識佑 甲野
 
[DL輪読会]Deep Learning 第5章 機械学習の基礎
[DL輪読会]Deep Learning 第5章 機械学習の基礎[DL輪読会]Deep Learning 第5章 機械学習の基礎
[DL輪読会]Deep Learning 第5章 機械学習の基礎Deep Learning JP
 
密度比推定による時系列データの異常検知
密度比推定による時系列データの異常検知密度比推定による時系列データの異常検知
密度比推定による時系列データの異常検知- Core Concept Technologies
 
無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)Shuyo Nakatani
 
ブラックボックス最適化とその応用
ブラックボックス最適化とその応用ブラックボックス最適化とその応用
ブラックボックス最適化とその応用gree_tech
 
ブースティング入門
ブースティング入門ブースティング入門
ブースティング入門Retrieva inc.
 
深層生成モデルと世界モデル
深層生成モデルと世界モデル深層生成モデルと世界モデル
深層生成モデルと世界モデルMasahiro Suzuki
 

What's hot (20)

3.3節 変分近似法(前半)
3.3節 変分近似法(前半)3.3節 変分近似法(前半)
3.3節 変分近似法(前半)
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門
 
DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方
 
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン
 
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
 
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
 
DSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめDSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめ
 
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
 
Newman アルゴリズムによるソーシャルグラフのクラスタリング
Newman アルゴリズムによるソーシャルグラフのクラスタリングNewman アルゴリズムによるソーシャルグラフのクラスタリング
Newman アルゴリズムによるソーシャルグラフのクラスタリング
 
Mean Teacher
Mean TeacherMean Teacher
Mean Teacher
 
ICLR2020の異常検知論文の紹介 (2019/11/23)
ICLR2020の異常検知論文の紹介 (2019/11/23)ICLR2020の異常検知論文の紹介 (2019/11/23)
ICLR2020の異常検知論文の紹介 (2019/11/23)
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
 
多様な強化学習の概念と課題認識
多様な強化学習の概念と課題認識多様な強化学習の概念と課題認識
多様な強化学習の概念と課題認識
 
[DL輪読会]Deep Learning 第5章 機械学習の基礎
[DL輪読会]Deep Learning 第5章 機械学習の基礎[DL輪読会]Deep Learning 第5章 機械学習の基礎
[DL輪読会]Deep Learning 第5章 機械学習の基礎
 
密度比推定による時系列データの異常検知
密度比推定による時系列データの異常検知密度比推定による時系列データの異常検知
密度比推定による時系列データの異常検知
 
無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)
 
ブラックボックス最適化とその応用
ブラックボックス最適化とその応用ブラックボックス最適化とその応用
ブラックボックス最適化とその応用
 
ブースティング入門
ブースティング入門ブースティング入門
ブースティング入門
 
深層生成モデルと世界モデル
深層生成モデルと世界モデル深層生成モデルと世界モデル
深層生成モデルと世界モデル
 

More from Akifumi Eguchi

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