text categorization
DESCRIPTION
text categorization or classification for its topicTRANSCRIPT
Text Categorization
Text Categorization
HIRAKATA
Univ. of Tokyo, CS
April 28, 2014
Text Categorization
1 Introduction
2 Decision Trees
3 Maximum Entropy Modeling
4 Perceptrons
5 k-nearest neighbor classification
6 比較
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
Text Categorization
Introduction
text classification
goal:
document -> topic (theme)
ニュースを興味在るものにフィルタするとかいう適用例がある
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
これの正負によって二値に分類
Text Categorization
Introduction
keywords
local optimum手法に依っては大域的最適解が保証されてたりされてなかったりするhill climbing線形分離に就いての山登り法として perceptrons がある
Text Categorization
Introduction
正解率
二値分類の場合自然に recall, precision が定義できる (略)
macro-averaging
三つ以上のカテゴリ (c1, c2, ..)に分類する場合全ての i に就いて ci v.s. ¬ci という分割で recall, precision を計算して平均をとる
Text Categorization
Introduction
techniques
本章では次の 4つの技巧を紹介するdecision trees
maximum entropy modeling
perceptrons
k nearest neighbor classification
Text Categorization
Decision Trees
決定木
1 start at the top node
2 test question, branching
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
Text Categorization
Decision Trees
splitting
決定木を作るために次の 2つの尺度が必要splitting criterion
stopping criterion
stopping criterion は自明である (!) それ以上分割できなくなればつまりあるノードでそこにある要素が全て同じカテゴリーならばそこで止めればよい
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))
で表される
Text Categorization
Decision Trees
剪定
過学習を避けるために一旦木を作った後に剪定を行うよくある剪定の方法はノードごとにそのノードが寄与してる尺度を計算する (Quinlan 1993)
1 1つずつノードを消していって n 個の木を作る2 n 個の木について validation を行って (精度を調べて)最適なものを選択する
Text Categorization
Decision Trees
剪定
過学習を避けるために一旦木を作った後に剪定を行うよくある剪定の方法はノードごとにそのノードが寄与してる尺度を計算する (Quinlan 1993)
1 1つずつノードを消していって n 個の木を作る
2 n 個の木について validation を行って (精度を調べて)最適なものを選択する
Text Categorization
Decision Trees
剪定
過学習を避けるために一旦木を作った後に剪定を行うよくある剪定の方法はノードごとにそのノードが寄与してる尺度を計算する (Quinlan 1993)
1 1つずつノードを消していって n 個の木を作る2 n 個の木について validation を行って (精度を調べて)最適なものを選択する
Text Categorization
Decision Trees
剪定による精度の絵
Figure 16.4 参照剪定するノードの数を増やすにつれて
training set に対する精度は下がるtest set に対する精度は中程でピーク
Text Categorization
Decision Trees
cross-validation
validation set を用いた手法は training set の大部分が無駄になるもっと良い手法として n-fold cross-validation を用いること
n個に分割n − 1個を training set, 1個を validation set として精度の平均をとる
Text Categorization
Decision Trees
決定木まとめ
決定木はナイーブベイズ分類器, 線形回帰, ロジスティク回帰より複雑データセットが小さい場合 上手く分離できず失敗する問題が単純ならば より単純な手法を使うほうが好ましい
Text Categorization
Maximum Entropy Modeling
最大エントロピーモデルとは
異なるソースから成る情報を分類するためのフレームワーク
分類の問題をいくつかの (たいていは大量の)featureとして記述するfeatureとはそのモデルにおける制約制約を満たす中でエントロピーを最大化するfeatureの選択と学習は共に行われる (重み付のこと??)
最大エントロピーモデルを用いる目的はできるだけ不確かさを保つことにある
Text Categorization
Maximum Entropy Modeling
最大エントロピーモデルとは
異なるソースから成る情報を分類するためのフレームワーク分類の問題をいくつかの (たいていは大量の)featureとして記述するfeatureとはそのモデルにおける制約制約を満たす中でエントロピーを最大化するfeatureの選択と学習は共に行われる (重み付のこと??)
最大エントロピーモデルを用いる目的はできるだけ不確かさを保つことにある
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とする
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)の比較を行えばよい
Text Categorization
Maximum Entropy Modeling
generalized iterative scaling
以下の制約を満たすような最大エントロピーを与える分布p∗を探す
制約
訓練データにおける分布 p̃での featureの期待値と一致すること
Ep∗[fi ] = Ep̃[fi ]
generalized iterative scaling とはこのような p∗を探すためのアルゴリズム
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)
を用いる
Text Categorization
Maximum Entropy Modeling
等式の右辺は簡単に簡約できて
Ep̃[fi ] =∑(x ,c)
p̃(x , c)fi(x , c)
=1
N
N∑j=1
fi(xj , c)
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)
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
Text Categorization
Perceptrons
パーセプトロン
gradient descent (山登り法) の簡単な例線形分離するdecide ‘yes’ for x⃗ ⇐⇒ w⃗ · x⃗ > θ
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]
Text Categorization
k-nearest neighbor classification
k近傍法; kNN
原理
新しいオブジェクトを分類するには訓練データから一番似てるものを探せばいい
肝は似てるとする尺度関数を持ってくること(鷲の絵の例え)
もしそのような尺度を知らないのならば kNNは使えない
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に含める
Text Categorization
k-nearest neighbor classification
kNNまとめ
大事なのは、similarity metric
kの値はそれに比べれば重要ではない他の肝は計算量 訓練データとの類似度を毎回計算したら大変
Text Categorization
比較
以上の手法の比較
for Reuters category “earnings”
決定木 96.0 %最大エントロピーモデル 93.91 %パーセプトロン 83.3 %1-NN 95.3 %