102
テテテテテテテテテテテテテ テテテテ テテテ () テテテテテテテテテテテテテ テテ テテ

テキストマイニングのための 基礎技術(前編)

  • Upload
    sulwyn

  • View
    44

  • Download
    5

Embed Size (px)

DESCRIPTION

テキストマイニングのための 基礎技術(前編). 北陸先端科学技術大学院大学 鶴岡 慶雅. スケジュール. 1 日目 10:00 – 12:00 データ構造、辞書、 索引付け 12:00 – 13:00 昼食休憩 13:00 – 14:45 実習(検索エンジンの作成) 14:45 – 15:00 コーヒーブレイク 15:00 – 16:30 ベクトル空間モデル 資料 http://www.jaist.ac.jp/~tsuruoka/alaginseminar2010/. スケジュール. 2 日目 10:00 – 12:00 データマイニング入門、機械学習 - PowerPoint PPT Presentation

Citation preview

Page 1: テキストマイニングのための 基礎技術(前編)

テキストマイニングのための基礎技術(前編)北陸先端科学技術大学院大学鶴岡 慶雅

Page 2: テキストマイニングのための 基礎技術(前編)

スケジュール• 1日目

10:00 – 12:00 データ構造、辞書、索引付け12:00 – 13:00 昼食休憩13:00 – 14:45 実習(検索エンジンの作成)14:45 – 15:00 コーヒーブレイク15:00 – 16:30 ベクトル空間モデル資料

http://www.jaist.ac.jp/~tsuruoka/alaginseminar2010/

Page 3: テキストマイニングのための 基礎技術(前編)

スケジュール• 2日目

10:00 – 12:00 データマイニング入門、機械学習12:00 – 13:00 昼食休憩13:00 – 14:45 実習(クラスタリング、機械学習)14:45 – 15:00 コーヒーブレイク15:00 – 16:30 機械学習(続き)資料

http://www.jaist.ac.jp/~tsuruoka/alaginseminar2010/

Page 4: テキストマイニングのための 基礎技術(前編)

参考書• Introduction to Information Retrieval

– Manning, Raghavan and Schütze– Cambridge University Press. 2008. – http://nlp.stanford.edu/IR-book/information-retrieval

-book.html

• The Elements of Statistical Learning (2nd edition)– Hastie, Tibshirani and Friedman– Springer-Verlag. 2008– http://www-stat.stanford.edu/~tibs/ElemStatLearn/

Page 5: テキストマイニングのための 基礎技術(前編)

自己紹介• 経歴

– 東京大学工学系研究科(工学博士)– 東京大学理学部

• 科学技術振興機構 研究員– University of Manchester

• National Centre for Text Mining (NaCTeM)– 北陸先端科学技術大学院大学

• 研究分野– 自然言語処理– テキストマイニング– ゲーム AI

Page 6: テキストマイニングのための 基礎技術(前編)

激指(げきさし)

Windows XP/Vista/7PlayStation2PSPニンテンドー DS

• コンピュータ将棋プログラム• 2010 年世界コンピュータ将棋選手権優勝(4度目)• 機械学習を用いた探索制御、形勢判断• レーティング:約 3000 点(プロ棋士レベル)

Page 7: テキストマイニングのための 基礎技術(前編)

デモ• FACTA+

– 医学・生物学文献用の情報検索システム– 1700 万文献– 概念間の直接・間接的な関係を検索

http://refine1-nactem.mc.man.ac.uk/facta/

Page 8: テキストマイニングのための 基礎技術(前編)

デモ• GENIA tagger

– 英語用の言語処理ツール– Tokenization– 品詞タグ付け– 原型の出力– 浅い構文解析– 固有表現認識

http://www-tsujii.is.s.u-tokyo.ac.jp/GENIA/tagger/

Page 9: テキストマイニングのための 基礎技術(前編)

テキスト処理のためのデータ構造• 文書⇒数値列• ハッシュテーブル• 辞書• N グラム• 転置インデックス• 接尾辞配列

Page 10: テキストマイニングのための 基礎技術(前編)

文字列から数値列へ

• 文字列をそのまま扱うのは速度・メモリ効率が悪い• 文字列を数値列に変換

文書 ID 文書D0 Humpty Dumpty sat on a wallD1 Humpty Dumpty had a great fallD2 All the king's horses and all the king's menD3 Couldn't put Humpty together again

Page 11: テキストマイニングのための 基礎技術(前編)

入力を単語に分割(英語)• Tokenization

Humpty Dumpy sat on a wall,

Humpty Dumpy sat on a wall ,

• ルールベースのスクリプト– カンマ、ピリオド、括弧などを切り離す– Tokenizer.sed

• http://www.cis.upenn.edu/~treebank/tokenizer.sed

Page 12: テキストマイニングのための 基礎技術(前編)

入力を単語に分割(日本語)• 単語分割  すももももももももものうち

  すもも も もも も もも の うち• 曖昧性が大きく英語よりもはるかに難しい

– 統計、機械学習を用いた手法が主流– MeCab http://mecab.sourceforge.net/

– JUMAN http://www-lab25.kuee.kyoto-u.ac.jp/nl-resource/juman.html

Page 13: テキストマイニングのための 基礎技術(前編)

単語列から数値列へ入力単語列( tokenization 済)

数値列

文書 ID 文書D1 Humpty Dumpty sat on a wall

D2 Humpty Dumpty had a great fall

D3 All the king 's horses and all the king 's men

D4 Could n't put Humpty together again

文書 ID 文書D1 0 1 2 3 4 5

D2 0 1 6 4 7 8

D3 9 10 11 12 13 14 15 10 11 12 16

D4 17 18 19 0 20 21

Page 14: テキストマイニングのための 基礎技術(前編)

単語と数値の対応表

• 出現した単語列の辞書をつくる必要• 単純に配列に格納すると、辞書引きのたびに O(n) の計算量( n は辞書中の単語数)

Humpty Dumpty sat on a wallHumpty Dumpty had a great fall…

Humpty 0Dumpty 1

sat 2on 3a 4

wall 5had 6

great 7fall 8

Page 15: テキストマイニングのための 基礎技術(前編)

連想配列• 添え字に文字列を使える配列例( Python)

dictionary.has_key(’Humpty’) dictionary[’Humpty’] = 2

• 辞書引きの計算量– O(1): ハッシュテーブルによる実装– O(log n): 平衡 2 分探索木などによる実装

• 多くのプログラミング言語で標準装備

Page 16: テキストマイニングのための 基礎技術(前編)

ハッシュテーブル( Hash Tables )

• 文字列をハッシュ関数を用いて適当な数値に変換• ハッシュテーブルのサイズで余りをとると、テーブル上での位置が一意に決まる• O(1) の計算量で辞書引きができる

0 空き: :

260 空き261 (Humpty, 0)262 空き

: :1033 空き

Humpty 261

int hash_function(string s) h = 0 for i = 0 to s.length h = h * 101 h = h + s[i] return h % hashtable.size

適当な素数

文字列 数値(ハッシュ値) ハッシュテーブル

Page 17: テキストマイニングのための 基礎技術(前編)

ハッシュテーブル• 衝突( collision )

–違う文字列から同じハッシュ値が計算されてしまうことがある• チェイン法( chaining )

– エントリをリストへのポインターにして複数の要素を保持する• オープンアドレス法( open addressing )

– 空のエントリを探す

Page 18: テキストマイニングのための 基礎技術(前編)

トライ木( Trie )

• 前方一致検索が効率的に実行できる• 実装: ダブル配列( double array )など

b ac

k

l

back

balll

tbat

cu t cut

Page 19: テキストマイニングのための 基礎技術(前編)

索引付け( indexing )• 情報検索

– クエリーにマッチする文書を取得• 基本操作:ある単語が出現する文書すべてを取得

• 文書を頭から単純にスキャンするのは、文書量が増えると遅くなる

Page 20: テキストマイニングのための 基礎技術(前編)

転置インデックス( inverted index )

• 単語ごとにそれが出現する文書 ID のリスト

文書ID

文書D1 Humpty Dumpty sat on a wall

D2 Humpty Dumpty had a great fall

D3 All the king 's horses and all the king 's men

D4 Could n't put Humpty together again

単語 文書 ID のリスト

Humpty 1, 2, 3

Dumpty 1, 2

sat 1

on 1

a 1, 2

wall 1

had 2

great 2

fall 2

: :

転置インデックス

Page 21: テキストマイニングのための 基礎技術(前編)

全文検索• 転置インデックスなどの単語ベースの索引付けでは、全文検索ができない• 全文検索

– クエリーの文字列が出現している場所をすべて見つける– 単語区切りの境界は関係なし

Page 22: テキストマイニングのための 基礎技術(前編)

接尾辞配列( suffix array )abracadabra

Index Suffix

0 abracadabra

1 bracadabra

2 racadabra

3 acadabra

4 cadabra

5 adabra

6 dabra

7 abra

8 bra

9 ra

10 a

文書Index Suffix

10 a

7 abra

0 abracadabra

3 acadabra

5 adabra

8 bra

1 bracadabra

4 cadabra

6 dabra

9 ra

2 racadabra

Suffix の辞書順にソート

Suffix Array

Page 23: テキストマイニングのための 基礎技術(前編)

接尾辞配列( suffix array )abracadabra文書

Index Suffix

10 a

7 abra

0 abracadabra

3 acadabra

5 adabra

8 bra

1 bracadabra

4 cadabra

6 dabra

9 ra

2 racadabra

Suffix Array

文書中から ra が出現する位置をすべて知りたい場合

Suffix Array 上で 2 分探索O(log n) で検索できる!

1

23

Page 24: テキストマイニングのための 基礎技術(前編)

実習1 検索エンジンの作成• ファイルから文書集合を読み込む• 文書を単語列に変換• 転置インデックスを作成• クエリー(単語)にマッチする文書を返す• 余裕があれば全文検索も

Page 25: テキストマイニングのための 基礎技術(前編)

ベクトル空間モデル• ベクトル空間モデル• tf-idf• 類似度• 再現率・適合率

Page 26: テキストマイニングのための 基礎技術(前編)

ベクトル空間モデル• 文書やクエリを高次元空間における点で表現

似てる文書

Page 27: テキストマイニングのための 基礎技術(前編)

ベクトル空間モデル• 単語の出現回数でベクトルを作ると

0 Humpty1 Dumpty2 sat3 on4 a5 wall6 had7 great8 fall

d1 = (1, 1, 1, 1, 1, 1, 0, 0, 0)

d2 = (1, 1, 0, 0, 1, 0, 1, 1, 1)

次元

単語 “ Humpty” の出現回数

単語D1 Humpty Dumpty sat on a wall

D2 Humpty Dumpty had a great fall

Page 28: テキストマイニングのための 基礎技術(前編)

文書の類似度• コサイン類似度( cosine similarity )

– ベクトルが同じ方向を向いていれば 1、直交してると 0

21

2121 cos,

dddd

DDsimilarity

(1, 1, 1, 1, 1, 1, 0, 0, 0)

(1, 1, 0, 0, 1, 0, 1, 1, 1)

5.066

3, 21 DDsimilarity

D1 Humpty Dumpty sat on a wall

D2 Humpty Dumpty had a great fall

167.0, 41 DDsimilarity参考

Page 29: テキストマイニングのための 基礎技術(前編)

tf-idf

• 単語の重み付け手法–頻度を直接用いた場合、機能語( a, the, on,

to など)の頻度に大きく影響される–意味的に重要な単語の重みを大きくしたい

tIDFtdTFw td ,,

の長さ文書の頻度単語

d, ttdTF

を含む文書数単語総文書数t

tIDF log

Term Frequency (TF) Inverse Document Frequency (IDF)

重み

珍しい単語ほど重みが大きくなる

Page 30: テキストマイニングのための 基礎技術(前編)

情報検索( information retrieval )

• クエリで取得したい情報を指定

文書集合

クエリ

Page 31: テキストマイニングのための 基礎技術(前編)

性能評価• 適合率( precision )

– 検索ノイズがどれだけ少ないか• 再現率( recall )

– 検索漏れがどれだけ少ないか• f-score

–適合率と再現率の調和平均

Page 32: テキストマイニングのための 基礎技術(前編)

性能評価• 適合率( precision )

• 再現率( recall )

• f-score

取得された文書数取得された関連文書数

P

関連文書数取得された関連文書数

R

RPPR

RP

F

2

112

Page 33: テキストマイニングのための 基礎技術(前編)

データマイニング入門• クラスタリング

–階層クラスタリング– K-means クラスタリング– スペクトラルクラスタリング

• 類似度・相関の計算• 相関ルールの抽出

Page 34: テキストマイニングのための 基礎技術(前編)

クラスタリング• 似たようなサンプルをまとめあげる

–階層的クラスタリング–非階層的クラスタリング

Page 35: テキストマイニングのための 基礎技術(前編)

検索エンジン + クラスタリングhttp://clusty.com

Page 36: テキストマイニングのための 基礎技術(前編)

階層的クラスタリング• サンプル間に距離を定義

–例 ベクトル空間モデルによるコサイン類似度• アルゴリズム1. すべてのサンプルを個別のクラスタとして開始2. もっとも近いクラスタ同士を統合し新たなクラスタとする3. すべてのクラスタが統合されるまで 2 に戻り繰り返す

Page 37: テキストマイニングのための 基礎技術(前編)

階層的クラスタリング• 例 デンドログラム( Dendrogram)

1

2

3

4

5

1 2 3 4 5

Page 38: テキストマイニングのための 基礎技術(前編)

クラスタ間の距離の定義

最短距離法( single link ) 最長距離法( complete link )

群平均法( group-average )重心法( centroid )

Page 39: テキストマイニングのための 基礎技術(前編)

階層的クラスタリング• 計算量

–ナイーブに実装すると O(n3)– 効率的な実装 O(n2 log n )

• サンプル数が多くなると大変

Page 40: テキストマイニングのための 基礎技術(前編)

k-means 法• クラスタの重心• 最小化• アルゴリズム

1. k個の代表点 c1,…ck をランダムに選択2. すべての点を代表点がもっとも近いクラスタに割り当て3. 各クラスタの重心を代表点にして2へ戻り繰り返す

k

i Cxi

i

cxd1

2,

ic

Page 41: テキストマイニングのための 基礎技術(前編)

k-means 法• 実装が簡単• 計算量が小さい

• クラスタ数 k をあらかじめ決めておく必要• すべてのクラスタがほぼ同じサイズ• 初期値のランダムな配置に依存

Page 42: テキストマイニングのための 基礎技術(前編)

スペクトラルクラスタリング

(Lee and Choi, 2004)

k-meansspectral clustering

Page 43: テキストマイニングのための 基礎技術(前編)

スペクトラルクラスタリング• 準備

Ai i

n

j iji

ij

dAvol

A

dddiag

sd

s

,...,1D

S 類似度行列頂点 i の次数(接続しているエッジの類似度の和)

次数行列(サブ)グラフ A の頂点の数

Page 44: テキストマイニングのための 基礎技術(前編)

グラフラプラシアン• グラフラプラシアン( graph Laplacian )

• 性質SDL SDIL 1~

正規化バージョン

N

i

N

iiiii

N

i

N

iiiii

N

iii

T

ffs

sfffd

1 1

2

1 11

2

21

Lff

Page 45: テキストマイニングのための 基礎技術(前編)

スペクトラルクラスタリング• 入力:類似度行列 S, クラスタ数 k

1. グラフラプラシアンの固有ベクトルを固有値が小さいものから k 個求める (最初のは無視)2. それらの固有ベクトルを並べて行列 V を作成3. 行列 V の個々の行を、 k 次元空間上の位置とみなし、頂点を空間上の点として配置4. K-means アルゴリズムでそれらの点をクラスタリング

Page 46: テキストマイニングのための 基礎技術(前編)

スペクトラルクラスタリング• グラフをサブグラフに分割

BvolAvolBAcutBANcut

BABAcutBARatioCut

11,,

11,,

Page 47: テキストマイニングのための 基礎技術(前編)

関連する概念・単語の抽出文書 ID 糖尿病 狭心症 痛み 疲労感

D1 1 1 1 0

D2 0 0 1 0

D3 1 1 1 0

D4 1 1 1 1

D5 0 0 0 1

D6 1 0 1 1

D7 0 0 1 0

D8 0 0 1 0

共起頻度狭心症 3

痛み 4

疲労感 2

• 糖尿病と関係が深い症状は?「糖尿病」との共起頻度

単に「痛み」がありふれた単語だからでは?

Page 48: テキストマイニングのための 基礎技術(前編)

Pointwise Mutual Information

• Pointwise Mutual Information (PMI)

• 偶然共起するよりもどれだけ多く共起したか– X と Y が独立なら PMI = 0

YfreqXfreq

YXfreqNYPXP

YXPPMI

,log

,log

2

2

Page 49: テキストマイニングのための 基礎技術(前編)

Pointwise Mutual Information

文書 ID 糖尿病 狭心症 痛み 疲労感D1 1 1 1 0

D2 0 0 0 0

D3 1 0 1 1

D4 1 1 1 1

D5 0 0 1 1

PMI

狭心症 0.74

痛み 0.32

疲労感 0.15

• 糖尿病と関係が深い症状は?「糖尿病」との PMI

P(糖尿病 ) = 0.6P(狭心症 ) = 0.4P(痛み ) = 0.8P(疲労感 ) = 0.6

P(糖尿病 , 狭心症 ) = 0.4P(糖尿病 , 痛み ) = 0.6P(糖尿病 , 疲労感 ) = 0.4

Page 50: テキストマイニングのための 基礎技術(前編)

Symmetric Conditional Probability

• Symmetric Conditional Probability (SCP)

• 両方向の条件付確率の積

XfreqYfreq

YXfreq

XfreqYXfreq

YfreqYXfreq

XYPYXPSCP

2,

,,||

Page 51: テキストマイニングのための 基礎技術(前編)

Symmetric Conditional Probability

文書 ID 糖尿病 狭心症 痛み 疲労感D1 1 1 1 0

D2 0 0 0 0

D3 1 0 1 1

D4 1 1 1 1

D5 0 0 1 1

SCP

狭心症 0.67

痛み 0.75

疲労感 0.44

• 糖尿病と関係が深い症状は?「糖尿病」との SCP

P(狭心症 |糖尿病 ) = 0.67P(痛み |糖尿病 ) = 1P(疲労感 |糖尿病 ) = 0.67

P(糖尿病 | 狭心症 ) = 1P(糖尿病 |痛み ) = 0.75P(糖尿病 |疲労感 ) = 0.67

Page 52: テキストマイニングのための 基礎技術(前編)

相関ルール( Association Rule ) の抽出• パンとはちみつを買う人はバターも買う  Association Rule: {パン、はちみつ} ⇒ バター

履歴 ID パン はちみつ

バター

牛乳1 1 1 0 1

2 0 0 1 0

3 1 0 1 1

4 1 1 1 0

5 0 1 0 1

Page 53: テキストマイニングのための 基礎技術(前編)

Association Rule の評価• 相関ルール(Association Rule)

• 支持度( support)

• 確信度( confidence)

• リフト( lift)

BA

N

BAfreqBAT ,

AfreqBAfreqBAC ,

BfreqAfreq

BAfreqNBT

BACBAL ,

Page 54: テキストマイニングのための 基礎技術(前編)

テキスト処理のための機械学習• Naive Bayes モデル• 平均化パーセプトロン• 対数線形モデル、 L1正則化• 条件付確率場

Page 55: テキストマイニングのための 基礎技術(前編)

教師付学習によるテキスト分類• 学習データ

–正解のラベルがついた事例(サンプル)の集合

• 未知の事例

文書 ID 文書 正解カテゴリD1 Humpty Dumpty sat on a wall 好き( like)D2 Humpty Dumpty had a great fall 好き( like )D3 All the king's horses and all the king's men 嫌い( dislike )D4 Couldn't put Humpty together again 嫌い( dislike )

文書 正解カテゴリHumpty Dumpty hit a wall ?

Page 56: テキストマイニングのための 基礎技術(前編)

テキスト分類の応用• テキスト分類

– 文書をトピックごとに整理する– スパムメールのフィルタリング–製品レビューの自動判定(好意的かどうか)– 文書のランキング– etc.

Page 57: テキストマイニングのための 基礎技術(前編)

Naive Bayes モデル• Naive Bayes モデル

– 単純な確率的生成モデルを利用した分類器Pros• 確率値を出力• 理論、実装が簡単• 問題によっては高い分類精度• 学習は非常に効率的• 分類も高速• 半教師付学習に簡単に拡張 可能

Cons• 属性間の条件付独立性 を仮定

Page 58: テキストマイニングのための 基礎技術(前編)

• Thomas Bayes (1702 – 1761)

• 因果関係の順方向(確率的事象の生成方向)のモデルを利用して、逆方向の確率を計算することができる

Bayes の定理

BP

ABPAPBAP

Page 59: テキストマイニングのための 基礎技術(前編)

Naive Bayes モデル• 属性      からなるサンプルの分類

ijij

c

jnjc

n

jnj

c

njc

NB

caPcP

caaaPcP

aaaP

caaaPcP

aaacPc

j

j

j

j

argmax

,...,,argmax

,...,,

,...,,argmax

,...,,argmax

21

21

21

21 ベイズの定理分母はクラスによらず一定属性の条件付独立性

naaa ,...,, 21

Page 60: テキストマイニングのための 基礎技術(前編)

j

j

jjdislikelikec

ijij

dislikelikecNB

cwallaP

cDumptyaP

cHumptyaPcP

caPcPc

j

j

""

...

""

""argmax

argmax

5

2

1,

5

1,

Naive Bayes モデルによる分類文書 正解カテゴリ

Humpty Dumpty hit a wall ?

Page 61: テキストマイニングのための 基礎技術(前編)

• データがスパースすぎて確率が推定できない

• 位置は無視• add-one スムージング

単語の条件付確率の推定 likeDumptyaP ""2

カテゴリ “ like” の文書において先頭から2番目の単語が “ Dumpty” である確率

Vocabularycwfreq

cwfreqcwfreq

cwfreqcwaP

kjk

jk

kjk

jkjki

,

1,1,

1,

Page 62: テキストマイニングのための 基礎技術(前編)

学習文書 ID 文書 正解カテゴリ

D1 Humpty Dumpty sat on a wall 好き( like )D2 Humpty Dumpty had a great fall 好き( like )D3 All the king 's horses and all the king 's men 嫌い( dislike )D4 Could n't put Humpty together again 嫌い( dislike )

• 学習データから個々の確率値を推定

42

42

dislikeP

likeP

026.0221710|

088.0221212|

dislikeDumptyP

likeDumptyP

Page 63: テキストマイニングのための 基礎技術(前編)

Naive Bayes モデルの問題点• 特徴間に条件付独立性を仮定している• 実際には依存関係がある特徴を利用したい場面が多い例) 単語の Unigram と Bigram

• 依存関係を気にせずに様々な特徴を使うことのできる機械学習モデルがほしい

Page 64: テキストマイニングのための 基礎技術(前編)

N グラム( n-gram )• N個の単語(あるいは文字等)の並び

UnigramsHumptyDumpysatona:

BigramsHumpty DumptyDumpty satsat onon aa wall:

TrigramsHumpty Dumpty satDumpty sat onsat on a on a wall:

文書 ID 文書D1 Humpty Dumpty sat on a wall

D2 Humpty Dumpty had a great fall

D3 All the king's horses and all the king's men

D4 Couldn't put Humpty together again

Page 65: テキストマイニングのための 基礎技術(前編)

パーセプトロン学習• 学習とは、学習データを利用して、正例・負例をうまく分離する平面を見つけること

Page 66: テキストマイニングのための 基礎技術(前編)

パーセプトロン学習• 学習データが線形分離可能であれば、学習データを正しく分離する平面を見つけられる

Page 67: テキストマイニングのための 基礎技術(前編)

• 線形モデルによる2値分類線形モデル

xwx Tfy

0,10,1

aa

af

wx

x

: サンプル: 特徴ベクトル: 重みベクトル

重みベクトルと特徴ベクトルの内積をとって、それがゼロ以上であれば +1 (正例と判定)、そうでなければ -1 (負例と判定)を返す関数

10 xバイアス要素

Page 68: テキストマイニングのための 基礎技術(前編)

パーセプトロン学習アルゴリズム1. 重みベクトルを要素 0で初期化2. 学習データからランダムにサンプルを選択3. 分類が間違っていたら以下の式で重みベクトルを更新 正例の場合 負例の場合4. すべてのサンプルを正しく分類できるまで 2に戻り繰り返す

xww xww

Page 69: テキストマイニングのための 基礎技術(前編)

学習例  OR の学習• 学習データ

1

001

1

1

t

x

1

101

2

2

t

x

1

011

3

3

t

x

1

111

4

4

t

x

負例 正例 正例 正例

Page 70: テキストマイニングのための 基礎技術(前編)

• x1

Step 1

1

001

1

1

t

x

000

w

1

00000101

ffy x

不正解! 1xww

001

w

Page 71: テキストマイニングのための 基礎技術(前編)

• x4

Step 2

001

w

1

11010113

ffy x

不正解! 4xww

110

w

1

111

4

4

t

x

Page 72: テキストマイニングのための 基礎技術(前編)

• x2

Step 3

110

w

1

11101102

ffy x

正解! ww

110

w

1

101

2

2

t

x

Page 73: テキストマイニングのための 基礎技術(前編)

• x3

Step 4

110

w

1

10111103

ffy x

正解! ww

110

w

1

011

3

3

t

x

Page 74: テキストマイニングのための 基礎技術(前編)

• x1

Step 5

110

w

1

00101101

ffy x

111

w

1

001

1

1

t

x

不正解! 1xww

Page 75: テキストマイニングのための 基礎技術(前編)

分離平面• 最終的な重みベクトル

111

w

0xw T

01 ts

入力(特徴ベクトルの 2番目、 3番目の要素)をそれぞれ s, t とすると

分離平面 s

t

1

1

Page 76: テキストマイニングのための 基礎技術(前編)

なぜうまく学習できるのか?• 正例の分類に失敗した場合

xwx Tfy

この部分の値が小さすぎた

2xxwxxw TT

xww として重みベクトルを更新すると

もともとの値 必ず正少なくとも同じサンプルに関しては間違いにくくなっている

Page 77: テキストマイニングのための 基礎技術(前編)

平均化パーセプトロン( Averaged Perceptron )• 学習データが線形分離可能であるとは限らない ⇒ 収束しないかもしれない• 過学習の危険性• 平均化パーセプトロン

–収束を待たない–重みベクトルは学習の開始から終了までの平均をとったものを最終結果として出力する

Page 78: テキストマイニングのための 基礎技術(前編)

平均化された重みベクトルの計算• w の履歴をすべて保存しておく必要はない

11

334

223

112

1

:

0

TTT uww

uwwuwwuww

w

和を1つのベクトルで保持していけばよい

1

1

1

11

1

11

T

ttT

T

tt

T

tt

tT

w

tTTT

u

uw

求めたい平均

Page 79: テキストマイニングのための 基礎技術(前編)

実習2 機械学習• Naive Bayes モデルによるテキスト分類器• (平均化)パーセプトロンによる分類器

Page 80: テキストマイニングのための 基礎技術(前編)

対数線形モデル

• 例 品詞タグ付け

Verb

He opened it

単語が “ opened”最後の 2 文字が “ ed”最初の 2 文字が “ op” :

素性(特徴量)

判定のための手がかり

Page 81: テキストマイニングのための 基礎技術(前編)

確率的に分類

• 品詞タグ: Noun もしくは Verb

VerbNoun

VerbVerb

VerbNounNounNoun

scorescorescoreP

scorescorescoreP

Page 82: テキストマイニングのための 基礎技術(前編)

確率的に分類

• 確率が素性の重みの掛け算で表されるとする

28.03742

42

NounP

素性 重みsuffix=ed & tag=Noun 2suffix=ed & tag=Verb 7prefix=op & tag=Noun 4prefix=op & tag=Verb 3

72.03742

37

VerbP?

He opened it

Page 83: テキストマイニングのための 基礎技術(前編)

尤度• 3個の事例からなる学習データの尤度

57.05685

85Noun

P

Features Weight: :

suffix=ed & tag=Noun 2

suffix=ed & tag=Verb 7

prefix=cl & tag=Noun 3

prefix=cl & tag=Verb 4

: :

43.05685

56Verb

P

Verb

She closed it

Noun Noun 18.0

473232Noun

P

82.04732

47Verb

P

69.02291

91Noun

P

31.02291

22Verb

P

32.0

69.082.057.0likelihood

尤度が大きくなるように素性の重みをチューニングしたい

Page 84: テキストマイニングのための 基礎技術(前編)

• 対数線形モデル

• 素性関数– 入力を特徴付ける– 例

ちゃんと式で書くと

F

iii xf

Zxq

1

exp1

素性関数重み

y iii yxfwxZ ,exp

otherwise0Verbis &ed""isofsuffixif1

,1234

yxyxf

正規化

iiiw yxfw

xZxyp ,exp1|

Page 85: テキストマイニングのための 基礎技術(前編)

対数線形モデルの学習

• 学習データの条件付対数尤度

jj

ijjii

j ijjii

j

jjjw

jjjw

xZyxfw

yxfwxZ

xyp

xypL

log,

,exp1log

|log

|loglog

Page 86: テキストマイニングのための 基礎技術(前編)

• 勾配

j y ijiijk

y ijii

jjk

j y ijii

k

y ijii

jjk

j y ijii

kjjk

jj

kjjk

k

yxfwyxfyxfw

yxf

yxfwwyxfw

yxf

yxfww

yxf

xZw

yxfw

L

,exp,,exp

1,

,exp,exp

1,

,explog,

log,log

dxxdg

xdgxgdf

dxxgdf

対数線形モデルの最尤推定

Page 87: テキストマイニングのための 基礎技術(前編)

• 勾配 (続き)

j yjjkjjk

j y

y ijii

ijii

jkjjkk

xypyxfyxf

yxfw

yxfwyxfyxf

wL

|,,

,exp

,exp,,log

現在のパラメータで確率的に分類したときの素性の出現回数の期待値

対数線形モデルの最尤推定

素性の実際の出現回数

Page 88: テキストマイニングのための 基礎技術(前編)

対数線形モデルの学習

• 尤度を最大にするパラメータを求める– 勾配降下法– (擬似)ニュートン法– 確率的勾配降下法– など

• 確率的勾配降下法は実装が簡単、収束も速い

Page 89: テキストマイニングのための 基礎技術(前編)

勾配法

1w

2w

objective

Page 90: テキストマイニングのための 基礎技術(前編)

正則化( regularization )• 学習データに対するオーバーフィッティング

–素性の重みにペナルティをかける• L1 正則化

–ほとんどの素性の重みがゼロになる– モデルサイズが小さい– メモリ、ディスクスペースを節約

i

i

N

j

jj wCpL1

;|log wxyw

90

Page 91: テキストマイニングのための 基礎技術(前編)

構造をもつ出力• カテゴリ例) テキスト分類

• 系列例) 品詞タグ付け、固有表現認識、浅い構文解析

• 木例) 構文解析、意味解析.

解析器

解析器

解析器

入力

入力

入力

Page 92: テキストマイニングのための 基礎技術(前編)

raw(unstructured)

text

part-of-speechtagging

named entityrecognition

syntacticparsing

annotated(structured)

text

text processing

dictionary ontology

………………………....... Secretion of TNF was abolished by BHA in PMA-stimulated U937 cells. ……………………

Secretion of TNF was abolished by BHA in PMA-stimulated U937 cells .

NN IN NN VBZ VBN IN NN IN JJ NN NNS .

protein_molecule organic_compound cell_line

PP PP NP

PP

VP

VP

NP

NP

S

negative regulation

Page 93: テキストマイニングのための 基礎技術(前編)

品詞タグ付け( Part-Of-Speech Tagging )

• 個々の単語の品詞を解析• 英語の品詞タグ例

NN: Noun IN: PrepositionNNP: Proper noun VBD: Verb, past tenseDT: Determiner VBN: Verb, past participle : :

Paul Krugman, a professor at Princeton University, wasNNP NNP , DT NN IN NNP NNP , VBDawarded the Nobel Prize in Economics on Monday. VBN DT NNP NNP IN NNP IN NNP

Page 94: テキストマイニングのための 基礎技術(前編)

固有表現認識( Named entity recognition )We have shown that interleukin-1 (IL-1) and IL-2 control protein protein proteinIL-2 receptor alpha (IL-2R alpha) gene transcription in DNACD4-CD8-murine T lymphocyte precursors. cell_line

• 固有表現カテゴリ例• Gene• Protein• Disease• etc.

Page 95: テキストマイニングのための 基礎技術(前編)

構文解析

Estimated volume was a light 2.4 million ounces .

VBN NN VBD DT JJ CD CD NNS .

QP

NP

VP

NP

S

Page 96: テキストマイニングのための 基礎技術(前編)

条件付確率場( Conditional Random Fields )• 系列を予測するための対数線形モデル

• 基本的には、分類のための対数線形モデルと同じ• ただし、可能な出力の数が指数爆発するので少し工夫が必要

F

i

n

tttiin yytf

ZyyP

1 111 ,,,exp1)|...( xx

Page 97: テキストマイニングのための 基礎技術(前編)

条件付確率場( Conditional Random Fields )• 解決策

– 素性の形を限定– 動的計画法( dynamic programming )を利用して計算量を小さく抑える

• 使用可能な特徴(1次のモデルの場合)– 品詞タグ– 連続する品詞タグ

Page 98: テキストマイニングのための 基礎技術(前編)

特徴量• 特徴はノードとエッジ上に定義される

Noun

Verb

Noun

Verb

Noun

Verb

Noun

Verb

He has opened it

W0=He&

Tag = Noun

Tagleft = Noun&

Tagright = Noun

Page 99: テキストマイニングのための 基礎技術(前編)

Z(x) を単純に計算するとNoun Noun Noun Noun

Noun Noun Noun Verb

Noun Noun Verb Noun

Noun Noun Verb Verb

Noun Verb Noun Noun

Noun Verb Noun Verb

Noun Verb Verb Noun

Noun Verb Verb Verb

Verb Noun Noun Noun

Verb Noun Noun Verb

Verb Noun Verb Noun

Verb Noun Verb Verb

Verb Verb Noun Noun

Verb Verb Noun Verb

Verb Verb Verb Noun

Verb Verb Verb Verb

Page 100: テキストマイニングのための 基礎技術(前編)

動的計画法• 計算の途中結果を再利用

Noun

Verb

Noun

Verb

Noun

Verb

Noun

Verb

He has opened it

forward

Page 101: テキストマイニングのための 基礎技術(前編)

動的計画法• 計算の途中結果を再利用

Noun

Verb

Noun

Verb

Noun

Verb

Noun

Verb

backward

He has opened it

Page 102: テキストマイニングのための 基礎技術(前編)

動的計画法• 周辺分布の計算

Noun

Verb

Noun

Verb

Noun

Verb

Noun

Verb

He has opened it