読者です 読者をやめる 読者になる 読者になる

ベイジアンネットワークを少しだけかじった

WSDM2012のExploring Social Influence via Posterior Effect of
Word-of-Mouth Recommendationsという論文を読んでいたら、ベイジアンネットワークなるものが出てきた。

論文の内容はソーシャルメディア上での口コミが与える影響みたいな感じですが、この辺で詰んだのでちょっと調べてみた。


この資料がとてもわかりやすかったので、ほぼそのまま
http://www.ne.jp/asahi/hiroki/suyari/BayesianNetworkIntro1.pdf

ネットワークの特徴として
1.各ノードがそれぞれ確率変数で表され
2.ノード間の矢印が因果関係を表し
3.その因果関係が条件付確率で定量化されている有向非循環グラフ

ということらしい。

こんなん

f:id:A_Koide0519:20120218010526p:image

各々のノードに確率変数が与えられていて、各矢印が、D_1,\dots,D_3T_1,T_2に与える影響を表している。
この影響の度合いは、条件付き確率で定義される。

簡単な例

f:id:A_Koide0519:20120218010527p:image

※一番下の行は1,1でした。

ここで、T_1=1となるとき、その要因となる因子を知りたいとする。このとき、明確な答えが出せないので、確信度という指標を利用する。

BEL(X)=P(X|e)

今回の問題の場合は、

BEL(D_1=1)=P(D_1|T_1=1)
BEL(D_2=1)=P(D_2|T_1=1)
BEL(D_1=1,D_2=1)=P(D_1,D_2|T_1=1)

となる。つまり、事後確率になる。

一番上だけベイズの定理を利用して解くと

P(D_1|T_1=1)=\frac{P(D_1,T_1=1)}{P(T_1=1)}=\frac{P(T_1|D_1=1)P(D_1=1)}{P(T_1=1)}
=\frac{0.001*0.998*0.940+0.001*0.002*0.950}{0.999*0.998*0.001+0.999*0.002*0.290+0.001*0.998*0.940+0.001*0.002*0.950} \approx 0.37

ほかの値は

P(D_2|T_1=1) \approx 0.23,P(D_1,D_2|T_1=1) \approx 0.00076

今回の場合は、D_1が高くなる一方で、同時に起こる可能性は低いこともわかる。

実際には、収集データの不足の補完(EMアルゴリズム)や、グラフ構造の決定などの課題があるらしい。

本当は簡単なコードかこうと思ったけど、ちょっとつらいので、なし。