text categorization

33
Text Categorization Text Categorization HIRAKATA Univ. of Tokyo, CS April 28, 2014

Upload: cympfh

Post on 05-Jul-2015

141 views

Category:

Technology


4 download

DESCRIPTION

text categorization or classification for its topic

TRANSCRIPT

Page 1: Text Categorization

Text Categorization

Text Categorization

HIRAKATA

Univ. of Tokyo, CS

April 28, 2014

Page 2: Text Categorization

Text Categorization

1 Introduction

2 Decision Trees

3 Maximum Entropy Modeling

4 Perceptrons

5 k-nearest neighbor classification

6 比較

Page 3: Text Categorization

Text Categorization

Introduction

classification

NLPにおける重要な問題 classification あるいはcategorization は任意の objectを 2つ以上の classあるいはcategoryに割り当てること

上 2つはもうやった。Problem Object Categoriestagging context of word the word’s tagsdisambiguation context of word the word’s senseauthor document authorslanguage document languagestext categorization document topics

Page 4: Text Categorization

Text Categorization

Introduction

text classification

goal:

document -> topic (theme)

ニュースを興味在るものにフィルタするとかいう適用例がある

Page 5: Text Categorization

Text Categorization

Introduction

統計的分類の一般的な特徴づけ

訓練データ object があって各々の objectは一つ以上のクラスがラベル付けされている

(x⃗ , c)

where

x⃗ ∈ Rn is a vector of measurements,

c is the class label.

linear classification

g(x⃗) = w⃗ · x⃗ + w0

これの正負によって二値に分類

Page 6: Text Categorization

Text Categorization

Introduction

keywords

local optimum手法に依っては大域的最適解が保証されてたりされてなかったりするhill climbing線形分離に就いての山登り法として perceptrons がある

Page 7: Text Categorization

Text Categorization

Introduction

正解率

二値分類の場合自然に recall, precision が定義できる (略)

macro-averaging

三つ以上のカテゴリ (c1, c2, ..)に分類する場合全ての i に就いて ci v.s. ¬ci という分割で recall, precision を計算して平均をとる

Page 8: Text Categorization

Text Categorization

Introduction

techniques

本章では次の 4つの技巧を紹介するdecision trees

maximum entropy modeling

perceptrons

k nearest neighbor classification

Page 9: Text Categorization

Text Categorization

Decision Trees

決定木

1 start at the top node

2 test question, branching

Page 10: Text Categorization

Text Categorization

Decision Trees

K 個の term (word) を定めて document j を次のK 次元の整数ベクトルで表現する

xj = (sij , . . . , sKj)

where

sij = round

(10× 1 + log(tfij)

1 + log(ℓj)

)tfij とは document j における term i の出現頻度ℓj とは document j の長さ

例えば 89 words からなる docuemnt j に 6回 term i が出現した場合そのスコアは sij = 10× 1+log(6)

1+log(89)≈ 5.09

Page 11: Text Categorization

Text Categorization

Decision Trees

splitting

決定木を作るために次の 2つの尺度が必要splitting criterion

stopping criterion

stopping criterion は自明である (!) それ以上分割できなくなればつまりあるノードでそこにある要素が全て同じカテゴリーならばそこで止めればよい

Page 12: Text Categorization

Text Categorization

Decision Trees

information gain

splitting criterion としてここではmaximum information gainを用いる属性 a について 値 y で分割するときその減少量は

G (a, y) = H(t)− H(t|a) = H(t)− (pLH(tL) + pRH(tR))

で表される

Page 13: Text Categorization

Text Categorization

Decision Trees

剪定

過学習を避けるために一旦木を作った後に剪定を行うよくある剪定の方法はノードごとにそのノードが寄与してる尺度を計算する (Quinlan 1993)

1 1つずつノードを消していって n 個の木を作る2 n 個の木について validation を行って (精度を調べて)最適なものを選択する

Page 14: Text Categorization

Text Categorization

Decision Trees

剪定

過学習を避けるために一旦木を作った後に剪定を行うよくある剪定の方法はノードごとにそのノードが寄与してる尺度を計算する (Quinlan 1993)

1 1つずつノードを消していって n 個の木を作る

2 n 個の木について validation を行って (精度を調べて)最適なものを選択する

Page 15: Text Categorization

Text Categorization

Decision Trees

剪定

過学習を避けるために一旦木を作った後に剪定を行うよくある剪定の方法はノードごとにそのノードが寄与してる尺度を計算する (Quinlan 1993)

1 1つずつノードを消していって n 個の木を作る2 n 個の木について validation を行って (精度を調べて)最適なものを選択する

Page 16: Text Categorization

Text Categorization

Decision Trees

剪定による精度の絵

Figure 16.4 参照剪定するノードの数を増やすにつれて

training set に対する精度は下がるtest set に対する精度は中程でピーク

Page 17: Text Categorization

Text Categorization

Decision Trees

cross-validation

validation set を用いた手法は training set の大部分が無駄になるもっと良い手法として n-fold cross-validation を用いること

n個に分割n − 1個を training set, 1個を validation set として精度の平均をとる

Page 18: Text Categorization

Text Categorization

Decision Trees

決定木まとめ

決定木はナイーブベイズ分類器, 線形回帰, ロジスティク回帰より複雑データセットが小さい場合 上手く分離できず失敗する問題が単純ならば より単純な手法を使うほうが好ましい

Page 19: Text Categorization

Text Categorization

Maximum Entropy Modeling

最大エントロピーモデルとは

異なるソースから成る情報を分類するためのフレームワーク

分類の問題をいくつかの (たいていは大量の)featureとして記述するfeatureとはそのモデルにおける制約制約を満たす中でエントロピーを最大化するfeatureの選択と学習は共に行われる (重み付のこと??)

最大エントロピーモデルを用いる目的はできるだけ不確かさを保つことにある

Page 20: Text Categorization

Text Categorization

Maximum Entropy Modeling

最大エントロピーモデルとは

異なるソースから成る情報を分類するためのフレームワーク分類の問題をいくつかの (たいていは大量の)featureとして記述するfeatureとはそのモデルにおける制約制約を満たす中でエントロピーを最大化するfeatureの選択と学習は共に行われる (重み付のこと??)

最大エントロピーモデルを用いる目的はできるだけ不確かさを保つことにある

Page 21: Text Categorization

Text Categorization

Maximum Entropy Modeling

featureの定義

feature

feature fi とは

fi(x⃗j , c) =

{1 sij > 0 ∧ c = 1

0 otherwise

sij は前に書いたスコアc は x⃗j で記述される documentのクラスだけど注目してるあるクラスならば 1 さもなくば 0とする

Page 22: Text Categorization

Text Categorization

Maximum Entropy Modeling

loglinear models

maximum entropy modeling の 1つ

loglinear models

p(x⃗ , c) =1

Z

K∏i=1

αfi (x⃗ ,c)i

αi が feature fi に対する重みで実際の分類には p(x , 0) <> p(x , 1)の比較を行えばよい

Page 23: Text Categorization

Text Categorization

Maximum Entropy Modeling

generalized iterative scaling

以下の制約を満たすような最大エントロピーを与える分布p∗を探す

制約

訓練データにおける分布 p̃での featureの期待値と一致すること

Ep∗[fi ] = Ep̃[fi ]

generalized iterative scaling とはこのような p∗を探すためのアルゴリズム

Page 24: Text Categorization

Text Categorization

Maximum Entropy Modeling

先の等式Ep∗[fi ] = Ep̃[fi ]

を満たすために

fK+1 = C −K∑i=1

fi

を追加するここで C は (定数ならなんでもよさそうだけど)

C := max(x ,c)

K∑i=1

fi(x , c)

を用いる

Page 25: Text Categorization

Text Categorization

Maximum Entropy Modeling

等式の右辺は簡単に簡約できて

Ep̃[fi ] =∑(x ,c)

p̃(x , c)fi(x , c)

=1

N

N∑j=1

fi(xj , c)

Page 26: Text Categorization

Text Categorization

Maximum Entropy Modeling

左辺は ∀x⃗ として訓練データ中の x⃗1..x⃗N に制限をする近似を用いて計算する (Lau 1004)

Ep[fi ] =∑(x ,c)

p(x , c)fi(x , c)

=N∑j=1

∑c

1

Np(c |xj)fi(xj , c)

Page 27: Text Categorization

Text Categorization

Maximum Entropy Modeling

実際には次のようにして αi を学習する1 p1 = {α1

i }i=1..K+1 ; 何でもいいけど通常は全部 1 にする2 let n = 1

3 pn+1 ← update pn

αn+1i = αn

i ri

where ri =

(Ep̃[fi ]

Enp [fi ]

)1/C

4 until converged { let n = n + 1; goto 2 }5 let p∗ = pn

Page 28: Text Categorization

Text Categorization

Perceptrons

パーセプトロン

gradient descent (山登り法) の簡単な例線形分離するdecide ‘yes’ for x⃗ ⇐⇒ w⃗ · x⃗ > θ

Page 29: Text Categorization

Text Categorization

Perceptrons

学習

ϕ(w ′) = [w1..wK ; θ] · [x1..xK ;−1]T

w ′ は左の行ベクトルϕの勾配に沿って w を動かす

∇ϕ(w ′) = [x ;−1]

1 訓練データ中の (xj , c); c ∈ {−1, 1} について

2

{c == (wxj > θ) =⇒ continue

otherwise =⇒ w ′ ← w ′ + c × [xj ;−1]

Page 30: Text Categorization

Text Categorization

k-nearest neighbor classification

k近傍法; kNN

原理

新しいオブジェクトを分類するには訓練データから一番似てるものを探せばいい

肝は似てるとする尺度関数を持ってくること(鷲の絵の例え)

もしそのような尺度を知らないのならば kNNは使えない

Page 31: Text Categorization

Text Categorization

k-nearest neighbor classification

1NN algorithm

訓練データ X によって y を分類する1 simmax(y) = max

x∈Xsim(x , y)

2 let A = {x ∈ X |sim(x , y) = simmax(y)}3 decide c = argmax

csize{class(x)|x ∈ A}

k > 1 ならば similality が k 番目に高いものまでを Aに含める

Page 32: Text Categorization

Text Categorization

k-nearest neighbor classification

kNNまとめ

大事なのは、similarity metric

kの値はそれに比べれば重要ではない他の肝は計算量 訓練データとの類似度を毎回計算したら大変

Page 33: Text Categorization

Text Categorization

比較

以上の手法の比較

for Reuters category “earnings”

決定木 96.0 %最大エントロピーモデル 93.91 %パーセプトロン 83.3 %1-NN 95.3 %