SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
自然言語のための機械学習勉強会
    第5章:系列ラベリング
          @kisa12012
目次
   5.1:系列ラベリング概論
   5.2:隠れマルコフモデル(HMM)
   5.3:系列ラベリングの逐次的手法
   5.4:条件付確率場(CRF)
   5.5:まとめ
目次
   5.1:系列ラベリング概論
   5.2:隠れマルコフモデル(HMM)
   5.3:系列ラベリングの逐次的手法
   5.4:条件付確率場(CRF)
   5.5:まとめ
5.1 系列ラベリング概論
   系列ラベリング
       品詞タグ付け
       チャンキング(文書内から人名・地名の抽出)


   品詞タグ付け
                   “Nurture passes nature.”
                     名詞     動詞      名詞

       系列(sequence) ”Nurture passes nature.”
         いくつかの要素が連なったもの
       系列ラベリング(sequential labeling) 『Nurture←名詞』を付与
         系列内のそれぞれにラベルを付けること
5.1 系列ラベリング概論
“Nurture passes nature.”   の”pass”に着目
  名詞      動詞      名詞

    “pass”は、今回の例では動詞。しかし、 “nice pass.” のように、直前に
     形容詞が来る場合には名詞となりやすい。
    ある要素のラベルが、その直前のラベルに依存する
       ←要素を系列として見る事で、精度向上を図る



    系列ラベリングでは、要素のラベルが系列内の他のラベルに依存する
     場合を扱う
        直前のラベルが形容詞であれば、passは名詞の確率が高い
        直前のラベルが名詞であれば、passは動詞の確率が高い
5.1 系列ラベリング概論
   チャンキング(chunking) [5.5章]
       言語表現の意味的あるいは文法的にまとまった部分を発見する研究
       名詞句の抽出や人名抽出などが挙げられる

         “After stubbing out the cigarette, Lunvalet talked to me.”
                                              人名

    “Lunvalet”という人名が存在することを知らなくても、文脈から推測する
    ことが出来る

       複数語からなる表現が人を指していることもある
               “Suddenly, the tall German guy talked to me.”
                   O       B I        I    I    O     O O
                                    人

    B(人名開始単語),I(人名部),O(その他)のようにタグ付けがしたい
5.1 系列ラベリング概論
B,I,Oのように抽出のための用いられるラベルをIOB2タグという
IOB2タグ付けも系列ラベリングの一種


   系列ラベリングの問題点
       可能なラベル列の組み合わせ数が膨大
           [組み合わせ数] = [品詞種類数]の[要素数]乗
       可能な品詞列を全て列挙して分類器を作成することは不可能
       系列ラベリングには、特別な手法が必要となる


       文書は文・単語の系列と見ることが出来るため、系列ラベリングは言語
        処理において非常に有用
目次
   5.1:系列ラベリング概論
   5.2:隠れマルコフモデル(HMM)
   5.3:系列ラベリングの逐次的手法
   5.4:条件付確率場(CRF)
   5.5:まとめ
5.2 隠れマルコフモデル(HMM)
   隠れマルコフモデル(Hidden Markov Model)
       系列ラベリングに用いることが出来る非常にシンプルなモデル
       通常は、ラベルの付いていない系列データのみが与えられたときにパ
        ラメータを推定する手法の事を指す。しかし、ここでは系列ラベリングの
        ためのラベル付き訓練データが与えられている状態を想定している




           要    要   要   要    要       要
           素    素   素   素    素       素

           ラ    ラ   ラ    ラ   ラ       ラ
           ベ    ベ   ベ    ベ   ベ       ベ
           ル    ル   ル    ル   ル       ル
5.2.1 HMMの導入
   数式表記の定義
        x = ( x1 , x2 ,..., xk ) : 系列
        y = ( y1 , y2 ,..., yk ) :ラベル列


   仮定
       各状態は、その直前の状態のみに依存すると仮定
       つまり、(xi,yi)は、(xi-1,yi-1)にのみ依存すると仮定
       より詳細には、 xiはyiにのみ、 yiはyi-1にのみ依存すると仮定
5.2.1 HMMの導入
xとyの同時確率は、以下の式で導出できる
 P (x, y ) = P ( xk , yk | xk −1 , yk −1 ) P( xk −1 , yk −1 | xk − 2 , yk − 2 )...P ( x1 , y1 | x0 , y0 )
            = ∏ P ( xi , yi | xi −1 , yi −1 )
                 i

            = ∏ P( xi | yi ) P( yi | yi −1 )
                 i




簡単のため、ダミー要素(x0,y0)を用意し、以下の式を用いた
  P( x1 , y1 ) = P( x1 , y1 | x0 , y0 )
      P( y1 ) = P( y1 | y0 )
5.2.2 パラメータ推定
 訓練データ: D = {( x (1) , y (1) ),..., (x , y
                                                              (D)   (D)
                                                                          )} の最尤推定解を求めることで、パラ
 メータP( x | y ), P( y | y ' ) を推定する
 まず、対数尤度 log P( D) を下式のように表す


log P ( D ) =           ∑ log P(x         (i )
                                                 , y (i ) )
                ( x ( i ) , y ( i ) )∈D

                                                                         
           = ∑  ∑ log P ( x j | y j ) + ∑ log P ( y j | y j −1 ) 
                                     
                                         (i ) (i )              (i ) (i )
                                                                          
             ( x ( i ) , y ( i ) )∈D  j           j                      
           = ∑ n(( x, y ), D) log P( x | y ) + ∑ n(( y ' , y ), D) log P( y | y ' )
                 x, y                                                     y, y'

           = ∑ [データDで、xにラベルyが付与された回数] log p x| y
                 x, y

            + ∑ [データDで、ラベルy'の次にラベルyが出現した回数] log q y '| y
                  y ', y
5.2.2 パラメータ推定
制約条件を考慮すると、最尤推定解は以下の問題を解くことで導出できる
    max ∑ n(( x, y ), D) log p x| y + ∑ n(( y ' , y ), D) log q y| y '
           x, y                                y, y'

         s.t.           ∑p
                        x
                             x| y   =1   ∑p
                                         y
                                              y| y '   =1


ラグランジュ法を用いて、最大化するパラメータを求めると、以下の式になる
                                                                         (演習問題1)
                  n(( x, y ), D)
      p x| y   =
                 ∑ n(( x, y), D)
                    x

                    n(( y ' , y ), D)
      q y| y ' =
                   ∑ n(( y' , y), D)
                    x
                              要素とラベル、ラベルとラベルの組み合わせの出現頻度を
                              パラメータとしているだけなので、当たり前の結果
5.2.3 HMMの推論
ある系列xが与えられたときの最適なラベル列yを求めたい
    ⇒この最適化問題を解きたい: y max = arg max P(x, y )
                                   y
しかし、冒頭に述べたように、ラベル列の組み合わせ数が膨大なので、全て
列挙することは不可能


   Viterbi algorithm(ヴィタビアルゴリズム)
       上の最適化問題を効率的に解くアルゴリズム
       一種の動的計画法
       先頭の要素から順番にラベルを付与していく
Viterbi algorithm Pseudocode(前半)
入力:系列x
for j=2 to |x|
  for all yj
      t ( j , y j ) = max[log P( x j , y j | x j −1 , y j −1 ) + t ( j − 1, y j −1 )]
                      y j −1

      s ( j , y j ) = arg max[log P( x j , y j | x j −1 , y j −1 ) + t ( j − 1, y j −1 )]
                           y j −1

  end for
                                    全ての要素に対応する全てのラベルについて、どのラベル
end for                             から遷移する確率が高いかを比較する

t(j,yj):要素jに対応するラベルがyjをとる条件のもと、確率が最大となるラ
ベル列をとる確率。
s(j,yj):確率が最大となるラベルをとった場合のyj-1を保存。アルゴリズムの
後半で使用。
Viterbi algorithm Pseudocode(後半)
前半部のイメージ




                                     最適なラベル列を探す

後半部
入力:t(|x|,y),s
y|max = arg max t (| x |, y )
  x|
             y

for j=|x|-1 to 1
        y max = s ( j + 1, y max )
          j                  j +1

end for          最適なラベル列を後ろ側の要素から順に、逆向きに取り出している
目次
   5.1:系列ラベリング概論
   5.2:隠れマルコフモデル(HMM)
   5.3:系列ラベリングの逐次的手法
   5.4:条件付確率場(CRF)
   5.5:まとめ
5.3 通常の分類器の逐次適用
   4章の分類器を逐次的に用いることで、系列ラベリングを行う
    方法もある
       Ex. P ( y j | x j −1 , x j , x j +1 y j −1 )




    分類器はなんでもよい(Naïve Bayes/SVMなど)


   分類器の逐次適用の特徴
       直後の要素を用いる事もできる
       各要素について、様々な素性を用いることが出来る
       一般的に、計算時間が増大する
       ラベル系列全体の確からしさは考慮していない
目次
   5.1:系列ラベリング概論
   5.2:隠れマルコフモデル(HMM)
   5.3:系列ラベリングの逐次的手法
   5.4:条件付確率場(CRF)
   5.5:まとめ
5.4 条件付確率場(CRF)
   条件付確率場(Conditional Random Field)
       CRFと呼ばれることが多い
       様々な素性を用いることが出来、またラベル系列全体の確からしさにも
        焦点を当てた学習を行えるモデル
       4.5節の対数線形モデルを系列ラベリング問題へ適用したもの

訓練データ: D = {( x (1) , y (1) ),..., (x
                                              (D)        (D)
                                                    ,y         )} が与えられたとする
この時、ラベル列の系列に対する条件付き確率を以下のようにおく
                                 1
                 P ( y | x) =           exp(w ⋅ Φ(x, y))
                                Z x,w
                 w : 素性に対する重みベクトル
                                                                             
                 Z x,w   : 正規化係数 Z x, w =
                                                    ∑       exp(w ⋅ Φ(x, y)) 
                                                                              
                                                        y                    
5.4.1 条件付確率場(CRF)の導入
最適なラベル列を求めたい。よって、以下の最大化問題を解く
                    1
     y ∗ = arg max       exp(w ⋅ Φ(x, y))
               y   Z x,w
        = arg max w ⋅ Φ(x, y)
               y

ただし、この最大化問題を解くのは非常に時間がかかるため、yは隣り合う
ラベルyt,yt-1にのみに依存するという条件をおく
         φk (x, y ) = ∑ φk (x, yt , yt −1 )
                        t

         w ⋅ Φ(x, y) = w ⋅ ∑ φk (x, yt , yt −1 )
                                    t

                        = ∑ w ⋅ φk (x, yt , yt −1 )
                            t

         y ∗ = arg max ∑ w ⋅ φk (x, yt , yt −1 )
                    y           t
5.4.1 条件付確率場(CRF)の導入
y ∗ = arg max ∑ w ⋅ φk (x, yt , yt −1 )
          y           t

上式ならば、wが分かっていればViterbi Algorithmで高速に解くことがで
きる
              t ( j , y j ) = max[log P( x j , y j | x j −1 , y j −1 ) + t ( j − 1, y j −1 )]
                              y j −1

              s ( j , y j ) = arg max[log P( x j , y j | x j −1 , y j −1 ) + t ( j − 1, y j −1 )]
                                    y j −1




              t ( j , y j ) = max[w ⋅ Φ(x, y j , y j −1 ) + t ( j − 1, y j −1 )]
                              y j −1

              s ( j , y j ) = arg max[w ⋅ Φ(x, y j , y j −1 ) + t ( j − 1, y j −1 )]
                                    y j −1



モデルの拡張も容易に可能
          φk (x, y ) = ∑ φk (x, yt , yt −1 , yt − 2 )
                                t
5.4.2 条件付確率場(CRF)の学習
Wの学習方法
以下の目的関数を最大化する

  L(w ) =   ∑ log P(y | x) = ∑ w ⋅ Φ(x, y) − log Z
                 D                        D
                                                                        x,w
                                                                                     実際は、正則化項を加えた目的
                                                                                     関数を最適化する場合が多い
                                                                                            L(w ) − C | w | 2
しかし、上式は解析的に解くことが不可能
最急勾配法(1.2.2節)を用いる(準ニュートン法や確率的勾配法が用いられやすい)

      w new = w old + ε∇ w L(w old )
                                                                                
 ∇ w L(w   old
                 )=   ∑    Φ ( x (i ) , y (i ) ) −
                                                     ∑   P ( y | x )Φ ( x , y ) 
                                                                 (i )         (i )
                                                                                 
                      D                              y                          

                      系列ラベリングではyの組み合わせが膨大で、
                           P(y|x)が計算不可能
5.4.2 条件付確率場(CRF)の学習
  ∑ P ( y | x )Φ ( x , y ) = ∑ P ( y | x )∑ Φ ( x , y , y )
     y
                    (i )          (i )

                                                         y
                                                                                (i )

                                                                                             t
                                                                                                          (i )
                                                                                                                  t    t −1


                                                =     ∑ ∑ P( y , y
                                                         t        yt , yt −1
                                                                                    t        t −1     | x (i ) )Φ (x (i ) , yt , yt −1 )


と変形することで、P( yt , yt −1 | x (i ) ) が計算できればよい形となる

    ϕ t ( yt , yt −1 ) = exp( w ⋅ Φ (x, yt , yt −1 ))とおけば、
                         ϕ t ( yt , yt −1 )
     P ( y | x) =   ∏  t
                                   Z x,w
                                                      と書けるので、


    P( yt , yt −1 | x) =        ∑ ∑ P ( y | x)
                               y 0:t −2 y t +1:T +1


                                  ∑ ∑ ∏ϕ ( y , y
                           1
                =                                                      t'      t'        t '−1 )
                       Z x, w     y 0:t −2 y t +1:T +1       t'

                       ϕ t ( yt , yt −1 )
                =
                               Z x, w            ∑ ∑ ∏ϕ ( y , y
                                                 y 0:t −2 y t +1:T +1 t '≠ t
                                                                                        t'       t'     t '−1 )
5.4.2 条件付確率場(CRF)の学習
  ∑ ∑ ∏ϕ ( y , y )
 y 0:t −2 y t +1:T +1 t '≠ t
                                  t'        t'       t '−1


                    t −1                                         T +1                                                            t                           
        = 
              ∑∏          ϕ t ' ( yt ' , yt '−1 ) 
                                                                ∑∏      ϕ t ' ( yt ' , yt '−1 ) 
                                                                                                  
                                                                                                         α ( yt , t ) = 
                                                                                                                            ∑∏           ϕ t ' ( yt ' , yt '−1 ) 
                                                                                                                                                                  
           y 0:t −2 t '=1                          y t +1:T +1 t '=t +1                                              y 0:t −2 t '=1                          
        = α ( yt −1 , t − 1) β ( yt , t )                                                                                              T +1                          
                                            1
                                                                                                         β ( yt , t ) = 
                                                                                                                              ∑∏             ϕ t ' ( yt ' , yt '−1 ) 
                                                                                                                                                                      
 P( yt , yt −1 | x) =                                ϕ t ( yt , yt −1 )α ( yt −1 , t − 1) β ( yt , t )                   y t +1:T +1 t '=t +1                        
                                           Z x,w

                 上式が高速に計算できればよい

  α ( yt , t ) =         ∑ϕ ( y , y    t         t    t −1 )α ( yt −1 , t   − 1)
                                                                                                                      α                               β
                          yt −1

  β ( yt , t ) =         ∑ϕ
                          yt +1
                                       t +1 ( yt +1 , yt ) β ( yt +1 , t      + 1)

         Z x,w =         ∑α ( y
                           yT
                                             T ,T )          を利用すれば、DPを用いて高速に計算可能になる
5.4.2 条件付確率場(CRF)の学習
α ( yt , t ), β ( yt , t ) を利用したこのような算法は、前向き・後ろ向きアルゴリズム
(forward-backward algorithm)の一種
一般のCRFは、系列上のノードだけでなく、グラフ上のノードのラベリング問
題に適用可能(Ex.係り受け解析)
目次
   5.1:系列ラベリング概論
   5.2:隠れマルコフモデル(HMM)
   5.3:系列ラベリングの逐次的手法
   5.4:条件付確率場(CRF)
   5.5:まとめ
5.5 まとめ
   系列ラベリング
       隠れマルコフモデル(HMM)
       分類器の逐次適用
       条件付確率場(CRF)
        の3種について、説明をした
       系列ラベリング全体としては、NLP2006チュートリアルも参照するとよ
        い
        http://www.geocities.co.jp/Technopolis/5893/publication/N
        LP2006slide.pdf

       HMMのforward-backward algorithm : Baum- Welch
        algorithm
       これは、EM algorithmの一種(3.5節)
5.5 まとめ
   分類器による逐次適用による系列ラベリングで特筆すべきもの
       YamChaにも用いられているSVMを用いた系列ラベリング


   CRFを自然言語処理に応用したものとして、MALLET,CRF++など
   木構造に対してCRFを扱うには、確率伝播法(belief propagation)が
    必要
     (Bishop本:8.4節)

   チャンキングにはIOB2タグ以外にも、様々な変種が存在

Weitere ähnliche Inhalte

Was ist angesagt?

今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン
Shinya Shimizu
 
PoisoningAttackSVM (ICMLreading2012)
PoisoningAttackSVM (ICMLreading2012)PoisoningAttackSVM (ICMLreading2012)
PoisoningAttackSVM (ICMLreading2012)
Hidekazu Oiwa
 
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
ryotat
 

Was ist angesagt? (20)

深層学習と活性化関数
深層学習と活性化関数深層学習と活性化関数
深層学習と活性化関数
 
パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)
 
PRML Chapter 5
PRML Chapter 5PRML Chapter 5
PRML Chapter 5
 
Prml5 6
Prml5 6Prml5 6
Prml5 6
 
Prml sec6
Prml sec6Prml sec6
Prml sec6
 
PRML 5.2.1-5.3.3 ニューラルネットワークの学習 (誤差逆伝播) / Training Neural Networks (Backpropa...
PRML 5.2.1-5.3.3 ニューラルネットワークの学習 (誤差逆伝播) / Training Neural Networks (Backpropa...PRML 5.2.1-5.3.3 ニューラルネットワークの学習 (誤差逆伝播) / Training Neural Networks (Backpropa...
PRML 5.2.1-5.3.3 ニューラルネットワークの学習 (誤差逆伝播) / Training Neural Networks (Backpropa...
 
機械学習と深層学習の数理
機械学習と深層学習の数理機械学習と深層学習の数理
機械学習と深層学習の数理
 
深層学習 Day1レポート
深層学習 Day1レポート深層学習 Day1レポート
深層学習 Day1レポート
 
テンソル多重線形ランクの推定法について(Estimation of Multi-linear Tensor Rank)
テンソル多重線形ランクの推定法について(Estimation of Multi-linear Tensor Rank)テンソル多重線形ランクの推定法について(Estimation of Multi-linear Tensor Rank)
テンソル多重線形ランクの推定法について(Estimation of Multi-linear Tensor Rank)
 
PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現
 
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン
 
第8章 ガウス過程回帰による異常検知
第8章 ガウス過程回帰による異常検知第8章 ガウス過程回帰による異常検知
第8章 ガウス過程回帰による異常検知
 
2値分類・多クラス分類
2値分類・多クラス分類2値分類・多クラス分類
2値分類・多クラス分類
 
パターン認識と機械学習 §6.2 カーネル関数の構成
パターン認識と機械学習 §6.2 カーネル関数の構成パターン認識と機械学習 §6.2 カーネル関数の構成
パターン認識と機械学習 §6.2 カーネル関数の構成
 
はじぱた7章F5up
はじぱた7章F5upはじぱた7章F5up
はじぱた7章F5up
 
20150803.山口大学集中講義
20150803.山口大学集中講義20150803.山口大学集中講義
20150803.山口大学集中講義
 
PoisoningAttackSVM (ICMLreading2012)
PoisoningAttackSVM (ICMLreading2012)PoisoningAttackSVM (ICMLreading2012)
PoisoningAttackSVM (ICMLreading2012)
 
クラシックな機械学習の入門  5. サポートベクターマシン
クラシックな機械学習の入門  5. サポートベクターマシンクラシックな機械学習の入門  5. サポートベクターマシン
クラシックな機械学習の入門  5. サポートベクターマシン
 
Sparse estimation tutorial 2014
Sparse estimation tutorial 2014Sparse estimation tutorial 2014
Sparse estimation tutorial 2014
 
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
 

Andere mochten auch

Introduction to Japanese Morphological Analysis
Introduction to Japanese Morphological AnalysisIntroduction to Japanese Morphological Analysis
Introduction to Japanese Morphological Analysis
Takeshi Arabiki
 
Prml Reading Group 10 8.3
Prml Reading Group 10 8.3Prml Reading Group 10 8.3
Prml Reading Group 10 8.3
正志 坪坂
 
Web本文抽出 using crf
Web本文抽出 using crfWeb本文抽出 using crf
Web本文抽出 using crf
Shuyo Nakatani
 
条件付き確率場の推論と学習
条件付き確率場の推論と学習条件付き確率場の推論と学習
条件付き確率場の推論と学習
Masaki Saito
 
言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo
Shuyo Nakatani
 

Andere mochten auch (20)

ACL 2014 読み会
ACL 2014 読み会ACL 2014 読み会
ACL 2014 読み会
 
CRF を使った Web 本文抽出 for WebDB Forum 2011
CRF を使った Web 本文抽出 for WebDB Forum 2011CRF を使った Web 本文抽出 for WebDB Forum 2011
CRF を使った Web 本文抽出 for WebDB Forum 2011
 
系列ラベリングの基礎
系列ラベリングの基礎系列ラベリングの基礎
系列ラベリングの基礎
 
Introduction to Japanese Morphological Analysis
Introduction to Japanese Morphological AnalysisIntroduction to Japanese Morphological Analysis
Introduction to Japanese Morphological Analysis
 
Prml Reading Group 10 8.3
Prml Reading Group 10 8.3Prml Reading Group 10 8.3
Prml Reading Group 10 8.3
 
Web本文抽出 using crf
Web本文抽出 using crfWeb本文抽出 using crf
Web本文抽出 using crf
 
Zipf? (ジップ則のひみつ?) #DSIRNLP
Zipf? (ジップ則のひみつ?) #DSIRNLPZipf? (ジップ則のひみつ?) #DSIRNLP
Zipf? (ジップ則のひみつ?) #DSIRNLP
 
入門自然言語処理入門
入門自然言語処理入門入門自然言語処理入門
入門自然言語処理入門
 
自然言語処理のための機械学習入門1章
自然言語処理のための機械学習入門1章自然言語処理のための機械学習入門1章
自然言語処理のための機械学習入門1章
 
条件付き確率場の推論と学習
条件付き確率場の推論と学習条件付き確率場の推論と学習
条件付き確率場の推論と学習
 
Crfと素性テンプレート
Crfと素性テンプレートCrfと素性テンプレート
Crfと素性テンプレート
 
HMM, MEMM, CRF メモ
HMM, MEMM, CRF メモHMM, MEMM, CRF メモ
HMM, MEMM, CRF メモ
 
Signl213
Signl213 Signl213
Signl213
 
クックパッド特売情報 における自然言語処理 〜固有表現抽出を利用した検索システム〜
クックパッド特売情報 における自然言語処理 〜固有表現抽出を利用した検索システム〜クックパッド特売情報 における自然言語処理 〜固有表現抽出を利用した検索システム〜
クックパッド特売情報 における自然言語処理 〜固有表現抽出を利用した検索システム〜
 
言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo
 
CRF を使った Web 本文抽出
CRF を使った Web 本文抽出CRF を使った Web 本文抽出
CRF を使った Web 本文抽出
 
文脈自由文法の話
文脈自由文法の話文脈自由文法の話
文脈自由文法の話
 
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
 
深層学習時代の自然言語処理
深層学習時代の自然言語処理深層学習時代の自然言語処理
深層学習時代の自然言語処理
 
論文紹介:「End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF」
論文紹介:「End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF」論文紹介:「End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF」
論文紹介:「End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF」
 

Ähnlich wie NLPforml5

mathemaical_notation
mathemaical_notationmathemaical_notation
mathemaical_notation
Kenta Oono
 
パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰
sleipnir002
 
070 統計的推測 母集団と推定
070 統計的推測 母集団と推定070 統計的推測 母集団と推定
070 統計的推測 母集団と推定
t2tarumi
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
Miyoshi Yuya
 
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
Preferred Networks
 

Ähnlich wie NLPforml5 (20)

東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
 
Deep Learning を実装する
Deep Learning を実装するDeep Learning を実装する
Deep Learning を実装する
 
Deep learning _linear_algebra___probablity___information
Deep learning _linear_algebra___probablity___informationDeep learning _linear_algebra___probablity___information
Deep learning _linear_algebra___probablity___information
 
Infomation geometry(overview)
Infomation geometry(overview)Infomation geometry(overview)
Infomation geometry(overview)
 
mathemaical_notation
mathemaical_notationmathemaical_notation
mathemaical_notation
 
第4回MachineLearningのための数学塾資料(浅川)
第4回MachineLearningのための数学塾資料(浅川)第4回MachineLearningのための数学塾資料(浅川)
第4回MachineLearningのための数学塾資料(浅川)
 
Topic model
Topic modelTopic model
Topic model
 
パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰
 
070 統計的推測 母集団と推定
070 統計的推測 母集団と推定070 統計的推測 母集団と推定
070 統計的推測 母集団と推定
 
PRML セミナー
PRML セミナーPRML セミナー
PRML セミナー
 
8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論
 
ラグランジュ未定乗数法
ラグランジュ未定乗数法ラグランジュ未定乗数法
ラグランジュ未定乗数法
 
演習発表 Sari v.1.1
演習発表 Sari v.1.1演習発表 Sari v.1.1
演習発表 Sari v.1.1
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
 
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
 
Introduction to Categorical Programming (Revised)
Introduction to Categorical Programming (Revised)Introduction to Categorical Programming (Revised)
Introduction to Categorical Programming (Revised)
 
17th cvsaisentan takmin
17th cvsaisentan takmin17th cvsaisentan takmin
17th cvsaisentan takmin
 
Learning Latent Space Energy Based Prior Modelの解説
Learning Latent Space Energy Based Prior Modelの解説Learning Latent Space Energy Based Prior Modelの解説
Learning Latent Space Energy Based Prior Modelの解説
 
20170422 数学カフェ Part1
20170422 数学カフェ Part120170422 数学カフェ Part1
20170422 数学カフェ Part1
 
代数的実数とCADの実装紹介
代数的実数とCADの実装紹介代数的実数とCADの実装紹介
代数的実数とCADの実装紹介
 

Mehr von Hidekazu Oiwa (9)

NIPS2014読み会 NIPS参加報告
NIPS2014読み会 NIPS参加報告NIPS2014読み会 NIPS参加報告
NIPS2014読み会 NIPS参加報告
 
SGD+α: 確率的勾配降下法の現在と未来
SGD+α: 確率的勾配降下法の現在と未来SGD+α: 確率的勾配降下法の現在と未来
SGD+α: 確率的勾配降下法の現在と未来
 
ICML2013読み会 Large-Scale Learning with Less RAM via Randomization
ICML2013読み会 Large-Scale Learning with Less RAM via RandomizationICML2013読み会 Large-Scale Learning with Less RAM via Randomization
ICML2013読み会 Large-Scale Learning with Less RAM via Randomization
 
Incentive Compatible Regression Learning (Mathematical Informatics Reading)
Incentive Compatible Regression Learning (Mathematical Informatics Reading)Incentive Compatible Regression Learning (Mathematical Informatics Reading)
Incentive Compatible Regression Learning (Mathematical Informatics Reading)
 
OnlineClassifiers
OnlineClassifiersOnlineClassifiers
OnlineClassifiers
 
Prml9
Prml9Prml9
Prml9
 
IBMModel2
IBMModel2IBMModel2
IBMModel2
 
Pfi last seminar
Pfi last seminarPfi last seminar
Pfi last seminar
 
Arow
ArowArow
Arow
 

NLPforml5

  • 1. 自然言語のための機械学習勉強会 第5章:系列ラベリング @kisa12012
  • 2. 目次  5.1:系列ラベリング概論  5.2:隠れマルコフモデル(HMM)  5.3:系列ラベリングの逐次的手法  5.4:条件付確率場(CRF)  5.5:まとめ
  • 3. 目次  5.1:系列ラベリング概論  5.2:隠れマルコフモデル(HMM)  5.3:系列ラベリングの逐次的手法  5.4:条件付確率場(CRF)  5.5:まとめ
  • 4. 5.1 系列ラベリング概論  系列ラベリング  品詞タグ付け  チャンキング(文書内から人名・地名の抽出)  品詞タグ付け “Nurture passes nature.” 名詞 動詞 名詞  系列(sequence) ”Nurture passes nature.” いくつかの要素が連なったもの  系列ラベリング(sequential labeling) 『Nurture←名詞』を付与 系列内のそれぞれにラベルを付けること
  • 5. 5.1 系列ラベリング概論 “Nurture passes nature.” の”pass”に着目 名詞 動詞 名詞  “pass”は、今回の例では動詞。しかし、 “nice pass.” のように、直前に 形容詞が来る場合には名詞となりやすい。  ある要素のラベルが、その直前のラベルに依存する ←要素を系列として見る事で、精度向上を図る  系列ラベリングでは、要素のラベルが系列内の他のラベルに依存する 場合を扱う 直前のラベルが形容詞であれば、passは名詞の確率が高い 直前のラベルが名詞であれば、passは動詞の確率が高い
  • 6. 5.1 系列ラベリング概論  チャンキング(chunking) [5.5章]  言語表現の意味的あるいは文法的にまとまった部分を発見する研究  名詞句の抽出や人名抽出などが挙げられる “After stubbing out the cigarette, Lunvalet talked to me.” 人名 “Lunvalet”という人名が存在することを知らなくても、文脈から推測する ことが出来る  複数語からなる表現が人を指していることもある “Suddenly, the tall German guy talked to me.” O B I I I O O O 人 B(人名開始単語),I(人名部),O(その他)のようにタグ付けがしたい
  • 7. 5.1 系列ラベリング概論 B,I,Oのように抽出のための用いられるラベルをIOB2タグという IOB2タグ付けも系列ラベリングの一種  系列ラベリングの問題点  可能なラベル列の組み合わせ数が膨大  [組み合わせ数] = [品詞種類数]の[要素数]乗  可能な品詞列を全て列挙して分類器を作成することは不可能  系列ラベリングには、特別な手法が必要となる  文書は文・単語の系列と見ることが出来るため、系列ラベリングは言語 処理において非常に有用
  • 8. 目次  5.1:系列ラベリング概論  5.2:隠れマルコフモデル(HMM)  5.3:系列ラベリングの逐次的手法  5.4:条件付確率場(CRF)  5.5:まとめ
  • 9. 5.2 隠れマルコフモデル(HMM)  隠れマルコフモデル(Hidden Markov Model)  系列ラベリングに用いることが出来る非常にシンプルなモデル  通常は、ラベルの付いていない系列データのみが与えられたときにパ ラメータを推定する手法の事を指す。しかし、ここでは系列ラベリングの ためのラベル付き訓練データが与えられている状態を想定している 要 要 要 要 要 要 素 素 素 素 素 素 ラ ラ ラ ラ ラ ラ ベ ベ ベ ベ ベ ベ ル ル ル ル ル ル
  • 10. 5.2.1 HMMの導入  数式表記の定義 x = ( x1 , x2 ,..., xk ) : 系列 y = ( y1 , y2 ,..., yk ) :ラベル列  仮定  各状態は、その直前の状態のみに依存すると仮定  つまり、(xi,yi)は、(xi-1,yi-1)にのみ依存すると仮定  より詳細には、 xiはyiにのみ、 yiはyi-1にのみ依存すると仮定
  • 11. 5.2.1 HMMの導入 xとyの同時確率は、以下の式で導出できる P (x, y ) = P ( xk , yk | xk −1 , yk −1 ) P( xk −1 , yk −1 | xk − 2 , yk − 2 )...P ( x1 , y1 | x0 , y0 ) = ∏ P ( xi , yi | xi −1 , yi −1 ) i = ∏ P( xi | yi ) P( yi | yi −1 ) i 簡単のため、ダミー要素(x0,y0)を用意し、以下の式を用いた P( x1 , y1 ) = P( x1 , y1 | x0 , y0 ) P( y1 ) = P( y1 | y0 )
  • 12. 5.2.2 パラメータ推定 訓練データ: D = {( x (1) , y (1) ),..., (x , y (D) (D) )} の最尤推定解を求めることで、パラ メータP( x | y ), P( y | y ' ) を推定する まず、対数尤度 log P( D) を下式のように表す log P ( D ) = ∑ log P(x (i ) , y (i ) ) ( x ( i ) , y ( i ) )∈D   = ∑  ∑ log P ( x j | y j ) + ∑ log P ( y j | y j −1 )   (i ) (i ) (i ) (i )  ( x ( i ) , y ( i ) )∈D  j j  = ∑ n(( x, y ), D) log P( x | y ) + ∑ n(( y ' , y ), D) log P( y | y ' ) x, y y, y' = ∑ [データDで、xにラベルyが付与された回数] log p x| y x, y + ∑ [データDで、ラベルy'の次にラベルyが出現した回数] log q y '| y y ', y
  • 13. 5.2.2 パラメータ推定 制約条件を考慮すると、最尤推定解は以下の問題を解くことで導出できる max ∑ n(( x, y ), D) log p x| y + ∑ n(( y ' , y ), D) log q y| y ' x, y y, y' s.t. ∑p x x| y =1 ∑p y y| y ' =1 ラグランジュ法を用いて、最大化するパラメータを求めると、以下の式になる (演習問題1) n(( x, y ), D) p x| y = ∑ n(( x, y), D) x n(( y ' , y ), D) q y| y ' = ∑ n(( y' , y), D) x 要素とラベル、ラベルとラベルの組み合わせの出現頻度を パラメータとしているだけなので、当たり前の結果
  • 14. 5.2.3 HMMの推論 ある系列xが与えられたときの最適なラベル列yを求めたい ⇒この最適化問題を解きたい: y max = arg max P(x, y ) y しかし、冒頭に述べたように、ラベル列の組み合わせ数が膨大なので、全て 列挙することは不可能  Viterbi algorithm(ヴィタビアルゴリズム)  上の最適化問題を効率的に解くアルゴリズム  一種の動的計画法  先頭の要素から順番にラベルを付与していく
  • 15. Viterbi algorithm Pseudocode(前半) 入力:系列x for j=2 to |x| for all yj t ( j , y j ) = max[log P( x j , y j | x j −1 , y j −1 ) + t ( j − 1, y j −1 )] y j −1 s ( j , y j ) = arg max[log P( x j , y j | x j −1 , y j −1 ) + t ( j − 1, y j −1 )] y j −1 end for 全ての要素に対応する全てのラベルについて、どのラベル end for から遷移する確率が高いかを比較する t(j,yj):要素jに対応するラベルがyjをとる条件のもと、確率が最大となるラ ベル列をとる確率。 s(j,yj):確率が最大となるラベルをとった場合のyj-1を保存。アルゴリズムの 後半で使用。
  • 16. Viterbi algorithm Pseudocode(後半) 前半部のイメージ 最適なラベル列を探す 後半部 入力:t(|x|,y),s y|max = arg max t (| x |, y ) x| y for j=|x|-1 to 1 y max = s ( j + 1, y max ) j j +1 end for 最適なラベル列を後ろ側の要素から順に、逆向きに取り出している
  • 17. 目次  5.1:系列ラベリング概論  5.2:隠れマルコフモデル(HMM)  5.3:系列ラベリングの逐次的手法  5.4:条件付確率場(CRF)  5.5:まとめ
  • 18. 5.3 通常の分類器の逐次適用  4章の分類器を逐次的に用いることで、系列ラベリングを行う 方法もある  Ex. P ( y j | x j −1 , x j , x j +1 y j −1 ) 分類器はなんでもよい(Naïve Bayes/SVMなど)  分類器の逐次適用の特徴  直後の要素を用いる事もできる  各要素について、様々な素性を用いることが出来る  一般的に、計算時間が増大する  ラベル系列全体の確からしさは考慮していない
  • 19. 目次  5.1:系列ラベリング概論  5.2:隠れマルコフモデル(HMM)  5.3:系列ラベリングの逐次的手法  5.4:条件付確率場(CRF)  5.5:まとめ
  • 20. 5.4 条件付確率場(CRF)  条件付確率場(Conditional Random Field)  CRFと呼ばれることが多い  様々な素性を用いることが出来、またラベル系列全体の確からしさにも 焦点を当てた学習を行えるモデル  4.5節の対数線形モデルを系列ラベリング問題へ適用したもの 訓練データ: D = {( x (1) , y (1) ),..., (x (D) (D) ,y )} が与えられたとする この時、ラベル列の系列に対する条件付き確率を以下のようにおく 1 P ( y | x) = exp(w ⋅ Φ(x, y)) Z x,w w : 素性に対する重みベクトル   Z x,w : 正規化係数 Z x, w =  ∑ exp(w ⋅ Φ(x, y))    y 
  • 21. 5.4.1 条件付確率場(CRF)の導入 最適なラベル列を求めたい。よって、以下の最大化問題を解く 1 y ∗ = arg max exp(w ⋅ Φ(x, y)) y Z x,w = arg max w ⋅ Φ(x, y) y ただし、この最大化問題を解くのは非常に時間がかかるため、yは隣り合う ラベルyt,yt-1にのみに依存するという条件をおく φk (x, y ) = ∑ φk (x, yt , yt −1 ) t w ⋅ Φ(x, y) = w ⋅ ∑ φk (x, yt , yt −1 ) t = ∑ w ⋅ φk (x, yt , yt −1 ) t y ∗ = arg max ∑ w ⋅ φk (x, yt , yt −1 ) y t
  • 22. 5.4.1 条件付確率場(CRF)の導入 y ∗ = arg max ∑ w ⋅ φk (x, yt , yt −1 ) y t 上式ならば、wが分かっていればViterbi Algorithmで高速に解くことがで きる t ( j , y j ) = max[log P( x j , y j | x j −1 , y j −1 ) + t ( j − 1, y j −1 )] y j −1 s ( j , y j ) = arg max[log P( x j , y j | x j −1 , y j −1 ) + t ( j − 1, y j −1 )] y j −1 t ( j , y j ) = max[w ⋅ Φ(x, y j , y j −1 ) + t ( j − 1, y j −1 )] y j −1 s ( j , y j ) = arg max[w ⋅ Φ(x, y j , y j −1 ) + t ( j − 1, y j −1 )] y j −1 モデルの拡張も容易に可能 φk (x, y ) = ∑ φk (x, yt , yt −1 , yt − 2 ) t
  • 23. 5.4.2 条件付確率場(CRF)の学習 Wの学習方法 以下の目的関数を最大化する L(w ) = ∑ log P(y | x) = ∑ w ⋅ Φ(x, y) − log Z D D x,w 実際は、正則化項を加えた目的 関数を最適化する場合が多い L(w ) − C | w | 2 しかし、上式は解析的に解くことが不可能 最急勾配法(1.2.2節)を用いる(準ニュートン法や確率的勾配法が用いられやすい) w new = w old + ε∇ w L(w old )   ∇ w L(w old )= ∑  Φ ( x (i ) , y (i ) ) −  ∑ P ( y | x )Φ ( x , y )  (i ) (i )  D  y  系列ラベリングではyの組み合わせが膨大で、 P(y|x)が計算不可能
  • 24. 5.4.2 条件付確率場(CRF)の学習 ∑ P ( y | x )Φ ( x , y ) = ∑ P ( y | x )∑ Φ ( x , y , y ) y (i ) (i ) y (i ) t (i ) t t −1 = ∑ ∑ P( y , y t yt , yt −1 t t −1 | x (i ) )Φ (x (i ) , yt , yt −1 ) と変形することで、P( yt , yt −1 | x (i ) ) が計算できればよい形となる ϕ t ( yt , yt −1 ) = exp( w ⋅ Φ (x, yt , yt −1 ))とおけば、 ϕ t ( yt , yt −1 ) P ( y | x) = ∏ t Z x,w と書けるので、 P( yt , yt −1 | x) = ∑ ∑ P ( y | x) y 0:t −2 y t +1:T +1 ∑ ∑ ∏ϕ ( y , y 1 = t' t' t '−1 ) Z x, w y 0:t −2 y t +1:T +1 t' ϕ t ( yt , yt −1 ) = Z x, w ∑ ∑ ∏ϕ ( y , y y 0:t −2 y t +1:T +1 t '≠ t t' t' t '−1 )
  • 25. 5.4.2 条件付確率場(CRF)の学習 ∑ ∑ ∏ϕ ( y , y ) y 0:t −2 y t +1:T +1 t '≠ t t' t' t '−1  t −1  T +1   t  =   ∑∏ ϕ t ' ( yt ' , yt '−1 )   ∑∏ ϕ t ' ( yt ' , yt '−1 )   α ( yt , t ) =   ∑∏ ϕ t ' ( yt ' , yt '−1 )    y 0:t −2 t '=1  y t +1:T +1 t '=t +1   y 0:t −2 t '=1  = α ( yt −1 , t − 1) β ( yt , t )  T +1  1 β ( yt , t ) =   ∑∏ ϕ t ' ( yt ' , yt '−1 )   P( yt , yt −1 | x) = ϕ t ( yt , yt −1 )α ( yt −1 , t − 1) β ( yt , t )  y t +1:T +1 t '=t +1  Z x,w 上式が高速に計算できればよい α ( yt , t ) = ∑ϕ ( y , y t t t −1 )α ( yt −1 , t − 1) α β yt −1 β ( yt , t ) = ∑ϕ yt +1 t +1 ( yt +1 , yt ) β ( yt +1 , t + 1) Z x,w = ∑α ( y yT T ,T ) を利用すれば、DPを用いて高速に計算可能になる
  • 26. 5.4.2 条件付確率場(CRF)の学習 α ( yt , t ), β ( yt , t ) を利用したこのような算法は、前向き・後ろ向きアルゴリズム (forward-backward algorithm)の一種 一般のCRFは、系列上のノードだけでなく、グラフ上のノードのラベリング問 題に適用可能(Ex.係り受け解析)
  • 27. 目次  5.1:系列ラベリング概論  5.2:隠れマルコフモデル(HMM)  5.3:系列ラベリングの逐次的手法  5.4:条件付確率場(CRF)  5.5:まとめ
  • 28. 5.5 まとめ  系列ラベリング  隠れマルコフモデル(HMM)  分類器の逐次適用  条件付確率場(CRF) の3種について、説明をした  系列ラベリング全体としては、NLP2006チュートリアルも参照するとよ い http://www.geocities.co.jp/Technopolis/5893/publication/N LP2006slide.pdf  HMMのforward-backward algorithm : Baum- Welch algorithm  これは、EM algorithmの一種(3.5節)
  • 29. 5.5 まとめ  分類器による逐次適用による系列ラベリングで特筆すべきもの  YamChaにも用いられているSVMを用いた系列ラベリング  CRFを自然言語処理に応用したものとして、MALLET,CRF++など  木構造に対してCRFを扱うには、確率伝播法(belief propagation)が 必要 (Bishop本:8.4節)  チャンキングにはIOB2タグ以外にも、様々な変種が存在