Successfully reported this slideshow.
いまさら聞けない	
  “モデル”	
  の話	
DSIRNLP	
  #5	
  (ゆるふわ枠)	
  
2014/01/11	
  @スマートニュース株式会社	
  
Koji	
  Matsuda	
  a.k.a	
  @condiAo...
自己紹介タイム	
•  学生でも教員でも無いですが,大学にお世話になっています	
  
•  すずかけ論文読み会という勉強会で月イチくらいで発表して
ます	
  
–  多摩川以西(?)の機械学習屋さん(ファン)で小規模に	
  
–  現在の...
ことの始まり	
2013年初夏:研究室(自然言語処理メイン)の	
  
メンバーと草津温泉に行きました.その車中にて.	
学生	
  
さん	

先生から「モデルを考えよう」というアドバイスを頂くのです
が,具体的に何をしたらいいのでしょう?	...
わきみちです	

4
 “Unsupervised	
  TranscripAon	
  of	
  Historical	
  Documents”	
  	
  
[Kirkpatrick+,	
  ACL	
  2013]	

解読	

「さまざまな要因を考慮...
言われてみれば	
•  「モデルを考える」といわれても,具体的な方法
論を教わったことはあまり無いように思えます	
  
–  そもそも「モデル」って何でしょう???	
  

•  そこそこ長く研究に携わっている方なら,自然に
理解している概...
このトークの主旨	
•  「モデル」とは何か,をいくつかの例から帰納
的に明らかにすることを試みます	
  
•  同時に,「モデルを考える」とはどのような営
みかを考えてみます	
  
研究者の皆様にはあまりにも自明な話であり,退屈
かもしれ...
「モデル」という言葉の意味	
•  人によってさまざま.	
  
–  アプリケーション屋さんが使う「モデル」	
  
–  数理屋さんが使う「モデル」	
  
•  これほど多義な言葉もそうそう無い	
  
•  この多義性が,「つかめなさ」...
NLP	
  まわりの色々なモデル	
•  言語モデル:単語列に確率を割り当てるため
のモデル	
  
–  n-­‐gram言語モデル,	
  RNN言語モデル,…	
  

•  言語の背後にある「構造」のためのモデル	
  
–  隠れマ...
言語モデルの例	
  
(n-­‐gram言語モデル)	
•  ある文(単語列)の確率を求めたい	
  
–  P(	
  I	
  can	
  fly	
  )	
  

•  ある単語の出現確率は,直前n-­‐1個の単語に
しか依存しない,...
構造モデルの例	
  
(隠れマルコフモデル)	
•  ある文の確率を求めたい/文のそれぞれの単語に
品詞を付与したい	
  
–  品詞: 名詞,形容詞,副詞等	
  

•  単語の出現確率は品詞(隠れ変数)にのみ依存,品
詞は一つ前の語の...
文書分類モデルの例	
  
(ナイーブベイズモデル)	
•  ある文書が予め決められたどのカテゴリーに
属するかを判定したい	
  
–  ポジティブ/ネガティブ	
  etc…	
  
–  スポーツ/政治/芸能/経済	
  etc…	
  ...
「モデル」の本質/仮定・捨象	
•  三つのモデルを駆け足で眺めてみましたが,以上に
共通する要素は何だったでしょうか	
  
–  n-­‐gramモデル:単語の生起確率は直前の単語にしか依
存しないと <仮定>	
  
–  隠れマルコフモ...
「モデル」の本質/パラメータ	
•  <仮定>(ストーリーの骨組み) を決めた上で,そ
の詳細はデータに「語らせる」	
  
–  n-­‐gramモデル: ある語が出現したもとでの,直後の
語の出現確率	
  
•  回数をカウントするだけ	...
(脇道)複雑さと信頼性のトレードオフ	
•  しかし,その	
  <仮定>/<捨象>	
  は,正しいですか?	
  
•  できることなら,捨象をできるだけ行わず,用い
ることのできる情報をすべて使いたい	
  
–  しかし,モデルが複雑性...
(脇道)複雑さへの対処	
•  複雑なモデルにおいても,できるだけ信頼性
の高いパラメータを求めたい,という要求	
  
–  それに対する一つの答えとして,たとえばモデル
の「階層化」があります	
  
–  例)	
  LDA	
文書集合全...
モデル?アルゴリズム?	
•  「モデル」と同様にさまざまな使われ方をする言
葉として「アルゴリズム」があります	
  
•  モデルとアルゴリズムは,異なるものであると考
えたほうが良いように思えます	
  
–  ただし,境界線はあいまい	...
ここまでのまとめ	
•  「モデル」とは何か	
  
–  ある現象をとらえるために(大胆な)仮定を置くこと	
  
仮定	
  
問題がどのような構造をしているのか	
  
枠組みだけ残し不要な要素を捨象	
  

データ	

アルゴリズム	...
モデルを考えよう/	
  
Playing	
  with	
  your	
  Problem	
•  	
  問題の性質を考えましょう	
  
–  その問題は「分類」で表すのが本当に適切ですか?	
  
•  じつは「選好関係」ではないか...
(脇道)確率モデルを組み上げる時は	
•  推論が効率的にできる構造になっているか	
  
–  鎖状(クリークの数え上げが楽)	
  
•  ループがあると,ちょっと難しくなる	
  

–  仮定する分布が共役ペアになっているか	
  
•...
「モデル」を中心に据えた論文を	
  
いっぱい読みましょう	
•  結局のところ,自分の中に「モデルのモデル/モ
デルの索引」をつくり上げることが必要になる	
  
•  確率モデルを扱った論文は難しい,と言われま
すが,コツさえつかめば何と...
モデルを「実装」する	
•  「仮定」「データ」「アルゴリズム」の三本柱のうち,最も
実装がたいへんなのは「アルゴリズム」の部分	
  
•  多くの場合は	
  <目的関数>	
  に対する	
  <最適化問題>	
  に
落とすことができま...
モデルを「実装」する	
  
(確率モデルの例)	
•  ProbabilisAc	
  Programming	
  
–  確率モデルの	
  <仮定>	
  を記述して,データを与えるとよし
なに推論してくれる枠組み	
  
–  See...
モデルを「実装」する	
  
(HBCによるLDAの例)	
η	

α	

z	

θ	

β	

w	

単語	
文書	

alpha
eta
beta_{k}
theta_{d}
z_{d,n}
w_{d,n}

~
~
~
~
~
~

...
モデルを「実装」する	
  
(ニューラルネットの例)	
•  Torch7	
  (	
  hpp://torch.ch/	
  )	
  の例	

100U	

25U	

50U	

require "nn”!
mlp = nn.Sequ...
まとめ(前半) モデルとは何か	
•  ある現象をとらえるために(大胆な)仮定を置く
こと	
  
•  モデルを構成する四要素	
仮定	
  
問題がどのような構造をしているのか	
  
枠組みだけ残し不要な要素を捨象	
  

データ	

...
まとめ(後半)	
  Playing	
  with	
  your	
  Model	
•  「モデルを考える」ときには,	
  
–  直面している問題の性質を考えましょう	
  
•  分類で表すことが適切な問題なのか	
  
•  構造...
Upcoming SlideShare
Loading in …5
×

いまさら聞けない “モデル” の話 @DSIRNLP#5

11,904 views

Published on

DSIRNLP#5 の 松田の発表です

Published in: Technology
  • Be the first to comment

いまさら聞けない “モデル” の話 @DSIRNLP#5

  1. 1. いまさら聞けない  “モデル”  の話 DSIRNLP  #5  (ゆるふわ枠)   2014/01/11  @スマートニュース株式会社   Koji  Matsuda  a.k.a  @condiAonal ※発表スライドは後ほどslideshareに公開します 1
  2. 2. 自己紹介タイム •  学生でも教員でも無いですが,大学にお世話になっています   •  すずかけ論文読み会という勉強会で月イチくらいで発表して ます   –  多摩川以西(?)の機械学習屋さん(ファン)で小規模に   –  現在のところクローズド.発表資料の多くは参加者により公開されて います.   •  求職中です!!!! 2
  3. 3. ことの始まり 2013年初夏:研究室(自然言語処理メイン)の   メンバーと草津温泉に行きました.その車中にて. 学生   さん 先生から「モデルを考えよう」というアドバイスを頂くのです が,具体的に何をしたらいいのでしょう?   とりあえず,「問題の性質」を考えるのがいいんじゃない?   学生   さん 私 うーん問題の性質,と言われても,ただの分類問題のように思え ます.「こういう特徴量が効く」というだけでは,研究としてちょっと つまらないですよね?   ぐぬぬ〜(気持ちはたいへん分かるが,うまいアドバイスが 思いつかない)   私 3
  4. 4. わきみちです 4
  5. 5.  “Unsupervised  TranscripAon  of  Historical  Documents”     [Kirkpatrick+,  ACL  2013] 解読 「さまざまな要因を考慮しながら確率モデルを組み上げる」   という意味で,お手本のような論文なのでおすすめです 5
  6. 6. 言われてみれば •  「モデルを考える」といわれても,具体的な方法 論を教わったことはあまり無いように思えます   –  そもそも「モデル」って何でしょう???   •  そこそこ長く研究に携わっている方なら,自然に 理解している概念も,研究を始めたばかりの学 生さんにはなかなか難しい   –  これは「モデル」の話に限りませんが・・・   •  この問題意識を共有したい!!   –  そうだ 勉強会で話してみよう!   6
  7. 7. このトークの主旨 •  「モデル」とは何か,をいくつかの例から帰納 的に明らかにすることを試みます   •  同時に,「モデルを考える」とはどのような営 みかを考えてみます   研究者の皆様にはあまりにも自明な話であり,退屈 かもしれません   「自分だったらどう説明するか」ということを考えなが らお聞き頂ければ幸いです   ※フィードバック歓迎です!   願わくば,悩める大学院生/新入社員のための幽かな希望の光とならんことを 7
  8. 8. 「モデル」という言葉の意味 •  人によってさまざま.   –  アプリケーション屋さんが使う「モデル」   –  数理屋さんが使う「モデル」   •  これほど多義な言葉もそうそう無い   •  この多義性が,「つかめなさ」を生んでいる一因   •  天下り的に「モデル」とはこういう意味だ!と定義 するのは難しい(というか,議論が終わらない)   •  そこで今回は,自然言語処理においてよく用いら れる幾つかのモデルから共通の特徴を抜き出す ことができないか考えてみます   8
  9. 9. NLP  まわりの色々なモデル •  言語モデル:単語列に確率を割り当てるため のモデル   –  n-­‐gram言語モデル,  RNN言語モデル,…   •  言語の背後にある「構造」のためのモデル   –  隠れマルコフモデル(HMM),マルコフ確率場 (MRF/CRF),…   •   分類モデル   –  ナイーブベイズ,SVM,  … 9
  10. 10. 言語モデルの例   (n-­‐gram言語モデル) •  ある文(単語列)の確率を求めたい   –  P(  I  can  fly  )   •  ある単語の出現確率は,直前n-­‐1個の単語に しか依存しない,と仮定   –  2-­‐gramモデルなら,,,   –  P(I  can  fly)  =  P(I|<S>)P(can|I)P(fly|can)   •  それ以前の文脈や,統語的な特徴は全て捨 象   10
  11. 11. 構造モデルの例   (隠れマルコフモデル) •  ある文の確率を求めたい/文のそれぞれの単語に 品詞を付与したい   –  品詞: 名詞,形容詞,副詞等   •  単語の出現確率は品詞(隠れ変数)にのみ依存,品 詞は一つ前の語の品詞にのみ依存と仮定   –  離れた位置にある語についての情報は捨象   11
  12. 12. 文書分類モデルの例   (ナイーブベイズモデル) •  ある文書が予め決められたどのカテゴリーに 属するかを判定したい   –  ポジティブ/ネガティブ  etc…   –  スポーツ/政治/芸能/経済  etc…   •  すべての単語は(カテゴリーが決まった条件 のもとで)お互いに独立に生起する,と仮定   –  ある単語が出現すると,他の単語も出現しやすく なる,といった現象は捨象 12
  13. 13. 「モデル」の本質/仮定・捨象 •  三つのモデルを駆け足で眺めてみましたが,以上に 共通する要素は何だったでしょうか   –  n-­‐gramモデル:単語の生起確率は直前の単語にしか依 存しないと <仮定>   –  隠れマルコフモデル:単語の生起確率は品詞と一つ前の 語の品詞にしか依存しないと <仮定>   –  ナイーブベイズモデル:単語の生起確率はカテゴリが決 まったもとでお互いに独立であると <仮定>   •   <仮定>  を行い,大勢に影響しない要素を <捨象>   することこそ,「モデル」の本質(キリッ   –  言い切って進めます 13
  14. 14. 「モデル」の本質/パラメータ •  <仮定>(ストーリーの骨組み) を決めた上で,そ の詳細はデータに「語らせる」   –  n-­‐gramモデル: ある語が出現したもとでの,直後の 語の出現確率   •  回数をカウントするだけ   –  隠れマルコフモデル: ある品詞から他の品詞への遷 移確率,ある品詞がある語を出力する確率   •  複数の変数(品詞,語の出現回数)が絡み合っているので ちょっと複雑   –  ナイーブベイズモデル:あるカテゴリのもとでの,ある 語の出現確率   •  回数をカウントするだけ   14
  15. 15. (脇道)複雑さと信頼性のトレードオフ •  しかし,その  <仮定>/<捨象>  は,正しいですか?   •  できることなら,捨象をできるだけ行わず,用い ることのできる情報をすべて使いたい   –  しかし,モデルが複雑性を増せば増すほど,「稀な」 事象に対応するパラメータが増えていきます   •  n-­‐gramモデルにおいて  n  を大きくした場合   •  サイコロを一度だけふって「このサイコロは6しか出ない」と 言っているようなもの   •  何を用い何を捨てるか,というのは腕の見せ所   –  ただし,比較的ロバストな学習モデルもあります 15
  16. 16. (脇道)複雑さへの対処 •  複雑なモデルにおいても,できるだけ信頼性 の高いパラメータを求めたい,という要求   –  それに対する一つの答えとして,たとえばモデル の「階層化」があります   –  例)  LDA 文書集合全体 のパラメータ α θ 単語レベルの 確率変数 β z 文書レベル のパラメータ w 単語 文書 ※他にも,正則化(MAP推定),スムージングなど,いくつものアプローチがあります 16
  17. 17. モデル?アルゴリズム? •  「モデル」と同様にさまざまな使われ方をする言 葉として「アルゴリズム」があります   •  モデルとアルゴリズムは,異なるものであると考 えたほうが良いように思えます   –  ただし,境界線はあいまい   •  私の理解   –  「モデル」はあくまで,<目的>の数理的な表現   –  その<目的>にいかに到達するか,が「アルゴリズム」 の領分   •  匠の技 17
  18. 18. ここまでのまとめ •  「モデル」とは何か   –  ある現象をとらえるために(大胆な)仮定を置くこと   仮定   問題がどのような構造をしているのか   枠組みだけ残し不要な要素を捨象   データ アルゴリズム   <仮定>  のもとで,データから   パラメータを導きだす方法   パラメータ   <仮定>では定まっていない,モデルの詳 細な状態を表す変数   18
  19. 19. モデルを考えよう/   Playing  with  your  Problem •   問題の性質を考えましょう   –  その問題は「分類」で表すのが本当に適切ですか?   •  じつは「選好関係」ではないか?「回帰」ではないか?   –  ある事例に対するラベルが,他の事例のラベルに影 響を与える場合,構造を扱えるモデルを検討   •  例)品詞ラベルは,周囲の語の品詞に依存する   –  モデルの内部の状態を他のモデルへ渡すようなこと を考えているなら,確率モデルが有用かもしれません   •  全体を一つの確率モデルとして記述することができれば, 見通しが良くなるかも   19
  20. 20. (脇道)確率モデルを組み上げる時は •  推論が効率的にできる構造になっているか   –  鎖状(クリークの数え上げが楽)   •  ループがあると,ちょっと難しくなる   –  仮定する分布が共役ペアになっているか   •  Dirichlet  /  MulAnomialなど     •  条件付き確率のモデル化で十分ではないか   –  同時確率より表現能力は劣るが,リッチな素性を 入れ込める   –  HMM(同時確率)に対するCRF(条件付き確率)   20
  21. 21. 「モデル」を中心に据えた論文を   いっぱい読みましょう •  結局のところ,自分の中に「モデルのモデル/モ デルの索引」をつくり上げることが必要になる   •  確率モデルを扱った論文は難しい,と言われま すが,コツさえつかめば何とかなる   –  その論文は「何をモデル化しているか」   –  それぞれの変数について   •  何を表しているか:現実世界の何と対応しているか   •  ドメインはなにか:スカラーか,ベクトルか,確率分布か   –  どういう  <仮定>  を置いているか   •   何を  <捨象>  しているか,それは重要ではないのか   背景のグラフィカルモデルは     21 “Joint  Modeling  of  a  Matrix  with  Associated  Text  via  Latent  Binary  Features”  [Zhang  and  Carin,  NIPS  2012]  より
  22. 22. モデルを「実装」する •  「仮定」「データ」「アルゴリズム」の三本柱のうち,最も 実装がたいへんなのは「アルゴリズム」の部分   •  多くの場合は  <目的関数>  に対する  <最適化問題>  に 落とすことができます   –  非常に研究が進んでいる分野   •  この部分をある程度サボるためのツールキットが出て きています   –  確率モデル  :  infer.net,BUGS/Stan,  HBC,  …   –  ニューラルネット  :  Pylearn2,  Torch,  …   –  組み合わせ最適化:CPLEXなどのLPソルバー   –  連続最適化: libLBFGS(準ニュートン法のパッケージ)など 22
  23. 23. モデルを「実装」する   (確率モデルの例) •  ProbabilisAc  Programming   –  確率モデルの  <仮定>  を記述して,データを与えるとよし なに推論してくれる枠組み   –  See  also  :  hpp://probabilisAc-­‐programming.org/   –  例) HBC:  Hierarchical  Bayes  Compiler  による  LDA alpha eta beta_{k} theta_{d} z_{d,n} w_{d,n} ~ ~ ~ ~ ~ ~ Gam(0.1,1)! Gam(0.1,1)! DirSym(eta, V) , DirSym(alpha, K) , Mult(theta_{d}) , Mult(beta_{z_{d,n}}), k d d d in in in in [1,K]! [1,D]! [1,D] , n in [1,N_{d}]! [1,D] , n in [1,N_{d}] HBCは現在メンテナンスされていないので,あまりおすすめはできません   実際に使うなら,  BUGS,  Stan,  infer.net(非商用のみ)がホットなようです   BUGS/Stan  は勉強会があるそうです  [検索] 23
  24. 24. モデルを「実装」する   (HBCによるLDAの例) η α z θ β w 単語 文書 alpha eta beta_{k} theta_{d} z_{d,n} w_{d,n} ~ ~ ~ ~ ~ ~ Gam(0.1,1)! Gam(0.1,1)! DirSym(eta, V) , DirSym(alpha, K) , Mult(theta_{d}) , Mult(beta_{z_{d,n}}), k d d d in in in in [1,K]! [1,D]! [1,D] , n in [1,N_{d}]! [1,D] , n in [1,N_{d}] 24
  25. 25. モデルを「実装」する   (ニューラルネットの例) •  Torch7  (  hpp://torch.ch/  )  の例 100U 25U 50U require "nn”! mlp = nn.Sequential() -- 多層のネットワーク! mlp:add( nn.Linear(100, 25) ) – 入力100ユニット -> 中間25ユニット! mlp:add( nn.Tanh() ) – 活性化関数は tanh! mlp:add( nn.Linear(25, 50) ) – 出力層は50クラス! mlp:add( nn.SoftMax() )! criterion = nn.ClassNLLCriterion()! trainer = nn.StochasticGradient(mlp, criterion) – 最適化はSGD! trainer:train(dataset) 25
  26. 26. まとめ(前半) モデルとは何か •  ある現象をとらえるために(大胆な)仮定を置く こと   •  モデルを構成する四要素 仮定   問題がどのような構造をしているのか   枠組みだけ残し不要な要素を捨象   データ アルゴリズム   <仮定>  のもとで,データから   パラメータを導きだす方法   パラメータ   <仮定>では定まっていない,モデルの詳 細な状態を表す変数   26
  27. 27. まとめ(後半)  Playing  with  your  Model •  「モデルを考える」ときには,   –  直面している問題の性質を考えましょう   •  分類で表すことが適切な問題なのか   •  構造(他の変数との絡み)を考慮する必要があるのか   –  「アルゴリズム」については先人の知恵を借りるこ とが可能か,時間を割いて調べてみる価値があ りそうです   というようなことを,研究を始めたばかり(始めるつもり)   の人に伝えたいです 27

×