Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Text classification zansa

1,506 views

Published on

第4回Zansa 慶應義塾大学 櫻井教授ご講演資料

Published in: Education
  • Be the first to comment

Text classification zansa

  1. 1. ちょっと変わったテキスト分 類 櫻井彰人
  2. 2. テキスト分類• メール、ツイート、文書等文字列 で表現されたものを分類すること – (できるだけ)内容に従って分類すべきときを言う – × 印刷文字の文書と手書き文字の文書 – × 郵便番号に従ったハガキの分類 – ○ スパムメールとハムメール、 • × 発信IPアドレスでスパムと判定する – ○ 読みたいニュースとそれ以外 「テキスト分類」 課題の名前、技術の名前 NTTソリューションより拝借 http://www.ntts.co.jp/products/knowledgeocean/outline.html
  3. 3. テキスト分類の方法• テキスト(文字列)を数値ベクトルで表 現する – ベクトル: 同じ長さ, 同じ位置は同じ意味 しばしば、「特徴ベクトル」と呼ばれる• 教師データで学習する – テキスト+(分類先の)クラス番号• 未知データに備える
  4. 4. テキストの特徴ベクトル• 最も普通には、 – 特徴ベクトルの座標軸は、単語 – 特徴ベクトルの座標値は、出現頻度 本日 データ スライドテキスト1: ( 3, … , 7, … , 2, … )テキスト2: ( 2, … , 4, … , 3, … )• これを通常 bag-of-words 表現という – “bag”ではない、ベクトルだと言わないでください – ベクトルになっているのは、現在の計算機技術の都合 – 意味があるのは、文書中に、「本日」が2回出現、「データ」が 4回出現」という、単語・度数の対の集合 http://teacher.scholastic.com/products/instructor/Mar04_paragraphs.htm
  5. 5. テキストx テキスト2 テキスト2 問合せ 学習 分類器 学習結 テキスト1 果: 分類境界 テキスト1 本日 データ スライドテキスト1: ( 3, … , 7, … , 2, … )テキスト2: ( 2, … , 4, … , 3, … )
  6. 6. ちょっと変わったテキスト分類 クラス0 所属クラスが未知のテキスト クラス1吾輩は猫である。名前はまだ無い。 吾輩は近頃運動を始めた。 蓮華寺では下宿を兼ねた。瀬川丑松 が急に転宿(やどがへ)を これ、丑松や、猪子といふ御客様が ようやくの思いで笹原を這い出すと向うに 大きな池がある。 お前(めへ)を尋ねて来たぞい。 こう暑くては猫といえどもやり切れない。 それが最後にお志保を見た時の丑松 の言葉であつた。 Zipで圧縮し、長さを求める吾輩は猫である。名前はまだ無い。 …… 蓮華寺では下宿を兼ねた。 …… ようやくの思いで笹原を這い出すと …….. 346,780 216,445 これ、丑松や、猪子といふ御客様が…….. こう暑くては猫といえどもやり切れない。 それが最後にお志保を見た時の丑松 Zipで圧縮し、長さを求める吾輩は猫である。名前はまだ無い。 …… 蓮華寺では下宿を兼ねた。 …… ようやくの思いで笹原を這い出すと …….. 346,799 216,466 これ、丑松や、猪子といふ御客様が…….. こう暑くては猫といえどもやり切れない。 それが最後にお志保を見た時の丑松 吾輩は近頃運動を始めた。 吾輩は近頃運動を始めた。 長さの差を求める 19 < 21 未知テキストはクラス0に属すべき 注: この例自体は少々インチキ
  7. 7. 比較従来方法 ちょっと変わった方法• 言語知識を活用して • 精度向上に限度があ 精度向上が図れる る• 言語知識が必要。 – Minorな言語では利用 • 言語知識が不要 できない % mecab – コストがかかる すもももももももものうち すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ も 助詞,係助詞,*,*,*,*,も,モ,モ言語知識: もも 名詞,一般,*,*,*,*,もも,モモ,モモ単語。活用。語根。単語への分割方 の 助詞,連体化,*,*,*,*,の,ノ,ノ法。 うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ EOS分類に不適切な単語(stop word)
  8. 8. 他分野への適用• 文字列なら適用可能 R. Cilibrasi, P.M.B. Vitanyi, R. de Wolf, Algorithmic clustering of music based on string compression, Computer Music J., 28:4 (2004), 49-67. なお、ショパンの前奏曲Op.28は、バッハの平均律クラヴィーア曲集に 触発されたと言われている
  9. 9. これを説明するには• Algorithmic Information Theory• Bayes の定理と事後確率最大化• 学習とは、規則性を見出すこと
  10. 10. ちょっと、記号を• 圧縮プログラムを Z と書く. さらに、Z(x) で x を圧縮した結果の長さを 表す• そうすると、やっていることは、 if Z(C1x) Z(C1) < Z(C2x) Z(C2) then x C1 otherwise x C2• では、なぜ、これでいいのか?
  11. 11. 結構深い理論が控えている• if Z(C1x) Z(C1) < Z(C2x) Z(C2) then x C1 log2 Pr(x | C1 ) log2 Pr(x | C2 ) 「ある」だけではな くて、我々の直観に であるような確率分布 Pr がある。 合う必要がある。実 際、結構合う。その• つまりこれは、 理由もある程度は説 明できる if Pr( x |C1 ) > Pr( x |C2 ) then x C1 学習=規則性の発見 ゆえ、事後確率最大のクラスを求めている
  12. 12. 補足: 分類との関係• 機械学習による分類を、確率的に考える と Pr(x | C1 ) Pr(x | C2 ) x Ci 最大値が : : Pr(x | Ci ) Pr(x | Ck ) log2 Pr(x | C1 ) log2 Pr(x | C2 ) x Ci 最小値が : : log2 Pr(x | Ci ) log2 Pr(x | Ck )
  13. 13. となると、• if Z(C1x) Z(C1) < Z(C2x) Z(C2) then x C1 log2 Pr(x | C1 ) log2 Pr(x | C2 ) はどうしてか?という疑問があるでしょう。
  14. 14. 再掲: ちょっと変わったテキスト分 類 クラス0 所属クラスが未知のテキスト クラス1吾輩は猫である。名前はまだ無い。 吾輩は近頃運動を始めた。 蓮華寺では下宿を兼ねた。瀬川丑松 が急に転宿(やどがへ)を これ、丑松や、猪子といふ御客様が ようやくの思いで笹原を這い出すと向うに 大きな池がある。 お前(めへ)を尋ねて来たぞい。 こう暑くては猫といえどもやり切れない。 それが最後にお志保を見た時の丑松 の言葉であつた。 Zipで圧縮し、長さを求める吾輩は猫である。名前はまだ無い。 …… 蓮華寺では下宿を兼ねた。 …… ようやくの思いで笹原を這い出すと …….. 346,780 216,445 これ、丑松や、猪子といふ御客様が…….. こう暑くては猫といえどもやり切れない。 それが最後にお志保を見た時の丑松 Zipで圧縮し、長さを求める吾輩は猫である。名前はまだ無い。 …… 蓮華寺では下宿を兼ねた。 …… ようやくの思いで笹原を這い出すと …….. 346,799 216,466 これ、丑松や、猪子といふ御客様が…….. こう暑くては猫といえどもやり切れない。 それが最後にお志保を見た時の丑松 吾輩は近頃運動を始めた。 吾輩は近頃運動を始めた。 長さの差を求める 19 < 21クラス0に属する確率が約 2-19 だ 未知テキストはクラス0に属すべき 注: 確率値も少々インチキと言っている。 注: この例自体は少々インチキ
  15. 15. ここから少し迷路に入ります
  16. 16. 原理の説明: 乱雑さ• ちょっと(大いに?)話は変わります。• 次の2つの数字列のうち、どちらがより ランダム? 111111111111111111101111110111 111100001001100100111001001001
  17. 17. 原理の説明: 乱雑さ• (情報源の)ランダムさは、エントロ ピーで測れるということをご存じ? 無記憶情報源 P(1) p(1)=0.5 H (0.5,0.5) 11111000010011…. = P(1) p(1)=0.92 H (0.92,0.08) 0.4021111011111111…. = Shannon の情報理論 エントロピー or 平均情報量
  18. 18. エントロピー関数 1.0 0.8H ( p, q) p log2 p q log2 q 0.6 h(x) 0.4 0.2 0.0 0.2 0.4 0.6 0.8 1.0 xH ( p1,..., pm ) p1 log2 p1 ... pm log2 pm
  19. 19. しかし、• エントロピーでは測れない、ランダムさ がある• この2つはどちらがランダムであろう か?• いや、こう聞こう、どちらが珍しい(た まにしかみれない⇒珍しい⇒価値がある 01000101111010100111 (?)) 01010101010101010101
  20. 20. しかし、• 無記憶情報源から生成されたと考える(よくある仮 定)と、• この2つの数字列は同じ情報源から生成され(最尤 推定) 無記憶情報源• しかも、生起確率は等しい。つまり、どちらも珍し さは同じ。 P(1) p(1)=0.5 H (0.5,0.5) 101000101111010100111 = 20 生起確率= 2 P(1) p(1)=0.5 H (0.5,0.5) 101010101010101010101 = 20 生起確率= 2
  21. 21. この直観を説明する方法はある か?• この直観 01000101111010100111 は規則性なし 01010101010101010101 は規則性あり 規則性なし=ランダムである=珍しくない 規則性あり=ランダムでない=めずらしい を説明する数学を作ろう と考えた数学者がいる。
  22. 22. Algorithmic Complexity • その代表者は、 Kolmogorov, Solomonoff, Chaitin (from www.solomonoff85thmemorial.monash.edu/) (from cs.umaine.edu/~chaitin/)(from Wikipedia) Chaitin’s Algorithmic Information Theory Algorithmic Probability 2 ( the size in bits of P ) program P halts
  23. 23. それはさておき• ある数字列(文字列でもよい)の複雑度を、 それを出力するプログラムのうち、最も短 いものの長さ(ビット数で数える)と定義 した• 計算機 C に基づく、文字列 x の複雑度 HC(x) は、 x を出力する最小のプログラム p min p C ( p) x の長さ: – HC(x) =
  24. 24. 例• Ruby では 10.times{ print “01” } 01010101010101010101 print "01000101111010100111" 01000101111010100111• つまり、01010101010101010101 の方が規 則性があるという判断になる。 以上の議論は雑すぎる。実際には、もっと 正確な議論が行われる Chaitin はLISPで議論した
  25. 25. 再掲: それはさておき• ある数字列(文字列でもよい)の複雑度を、 それを出力するプログラムのうち、最も短 いものの長さ(ビット数で数える)と定義 確率 した• 計算機 C に基づく、文字列 x の複雑度 HC(x) は、 x を出力する最小のプログラム p min p C ( p) x の長さ: HC(x) は、x を一番圧縮したときの、 圧縮ファイルの長さです。 – HC(x) = このプログラム p は、 「解凍プログラム+圧縮したファイル」 と考えても、ほぼ、よいのです。
  26. 26. 理論の展開 • 実は、 HC(x) の C としては universal Turing machine なら何でもよい TM条件付き確率 H U ( x) min p p x U ( p) x 条件付き複雑度 HU ( x | y ) min p min q1 min q2 U ( p, y ) x U ( q1 ) yx U ( q2 ) y TM TM y x x q1 p y y q2 y
  27. 27. 理論の展開:確率と複雑度• U に対応したある確率分布 PU があり、 P ( x) 2 HU ( x ) log2 P ( x) U HU ( x) U P ( x | y) 2 HU ( x| y ) log2 P ( x | y) U HU ( x | y) U• ところが、 HU ( x | y) HU ( yx) HU ( y) であるから、log2 P ( x | y) HU ( yx) HU ( y) U 注: 「 log (ある事象の生起確率)」 は「その事象の情報量」
  28. 28. 分類との関係• 機械学習による分類を、確率的に考える と Pr(x | C1 ) Pr(x | C2 ) x Ci 最大値が : : Pr(x | Ci ) Pr(x | Ck ) log2 Pr(x | C1 ) log2 Pr(x | C2 ) x Ci 最小値が : : log2 Pr(x | Ci ) log2 Pr(x | Ck )
  29. 29. テキスト分類との関係• 記号をサボって、Ci で Ci のテキストを表 す HU (C1 x) HU (C1 ) HU (C2 x) HU (C2 ) x Ci : 最大値が : HU (Ci x) HU (Ci ) HU (Ck x) HU (Ck ) log2 P ( x | y) U HU ( yx) HU ( y)
  30. 30. ちょっと脱線 情報理論的不完全性定理 (Chaitin)• 形式的システム FA は、公理 A に推論規則 F を適用して得られる定理の集合である。• 形式的システム FA は、ある文字列が複雑 度 H(A)+cF 以上になることを証明できない。 – 特に、H(s)>n の時に限り A ⊧ F H(s)>n である なら、 A ⊧ F H(s)>n となるのは n<H(A)+cF の 時に限られる。
  31. 31. ちょっと脱線 結果の別表現(Chaitin)• 算術を含む無矛盾な形式的体系 S (前記 A と F を併せたもの)に対して次の条件を 満たす整定数 cS N が存在する: 真なる H(w)>cS が証明できない。
  32. 32. ちょっと脱線 結果の拡張• 集合 {w| H(w)>g(|w|)} は帰納的可算な無限 集合を含まない。 – g は全域的で帰納的な増加関数• PA が H(w)>c なるどんな形の文も証明でき なくなるような定数 c が存在する
  33. 33. 圧縮プログラムとの関係• 計算機 C に基づく、文字列 x の複雑度 HC(x) は、 x を出力する最小のプログラム p の長 さ: min p HC(x) は、x を一番圧縮したとき C ( p) x – HC(x) = の、圧縮ファイルの長さです。 このプログラム p は、 「解凍プログラム+圧縮したファイル• 実は関数 HC(x) は計算 と考えても、ほぼ、よいのです。 不能である• そこで、できるだけよい圧縮プログラム Z を用意して、 HC(x) Z(x)の長さ( Z(x) ) 思考実験でプログラムを書いてみよう としてよいのでは?
  34. 34. 再再掲: ちょっと変わったテキスト 分類 クラス0 所属クラスが未知のテキスト クラス1吾輩は猫である。名前はまだ無い。 吾輩は近頃運動を始めた。 蓮華寺では下宿を兼ねた。瀬川丑松 が急に転宿(やどがへ)を これ、丑松や、猪子といふ御客様が ようやくの思いで笹原を這い出すと向うに 大きな池がある。 お前(めへ)を尋ねて来たぞい。 こう暑くては猫といえどもやり切れない。 それが最後にお志保を見た時の丑松 の言葉であつた。 Zipで圧縮し、長さを求める吾輩は猫である。名前はまだ無い。 …… 蓮華寺では下宿を兼ねた。 …… ようやくの思いで笹原を這い出すと …….. 346,780 216,445 これ、丑松や、猪子といふ御客様が…….. こう暑くては猫といえどもやり切れない。 それが最後にお志保を見た時の丑松 Zipで圧縮し、長さを求める吾輩は猫である。名前はまだ無い。 …… 蓮華寺では下宿を兼ねた。 …… ようやくの思いで笹原を這い出すと …….. 346,799 216,466 これ、丑松や、猪子といふ御客様が…….. こう暑くては猫といえどもやり切れない。 それが最後にお志保を見た時の丑松 吾輩は近頃運動を始めた。 吾輩は近頃運動を始めた。 長さの差を求める 19 < 21 未知テキストはクラス0に属すべき 注: この例自体は少々インチキ
  35. 35. 実際にうまくいくのか?• 結構、うまくいく。 – 知らない言語で、とにかくテキスト分類をす るなら、これしか方法はない• ただ、かなりうまくいくようにするには 工夫が必要。

×